1
This commit is contained in:
71
admin/node_modules/element-plus/lib/components/table/src/layout-observer.js
generated
vendored
Normal file
71
admin/node_modules/element-plus/lib/components/table/src/layout-observer.js
generated
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
var vue = require('vue');
|
||||
|
||||
function useLayoutObserver(root) {
|
||||
const instance = vue.getCurrentInstance();
|
||||
vue.onBeforeMount(() => {
|
||||
tableLayout.value.addObserver(instance);
|
||||
});
|
||||
vue.onMounted(() => {
|
||||
onColumnsChange(tableLayout.value);
|
||||
onScrollableChange(tableLayout.value);
|
||||
});
|
||||
vue.onUpdated(() => {
|
||||
onColumnsChange(tableLayout.value);
|
||||
onScrollableChange(tableLayout.value);
|
||||
});
|
||||
vue.onUnmounted(() => {
|
||||
tableLayout.value.removeObserver(instance);
|
||||
});
|
||||
const tableLayout = vue.computed(() => {
|
||||
const layout = root.layout;
|
||||
if (!layout) {
|
||||
throw new Error("Can not find table layout.");
|
||||
}
|
||||
return layout;
|
||||
});
|
||||
const onColumnsChange = (layout) => {
|
||||
var _a;
|
||||
const cols = ((_a = root.vnode.el) == null ? void 0 : _a.querySelectorAll("colgroup > col")) || [];
|
||||
if (!cols.length)
|
||||
return;
|
||||
const flattenColumns = layout.getFlattenColumns();
|
||||
const columnsMap = {};
|
||||
flattenColumns.forEach((column) => {
|
||||
columnsMap[column.id] = column;
|
||||
});
|
||||
for (let i = 0, j = cols.length; i < j; i++) {
|
||||
const col = cols[i];
|
||||
const name = col.getAttribute("name");
|
||||
const column = columnsMap[name];
|
||||
if (column) {
|
||||
col.setAttribute("width", column.realWidth || column.width);
|
||||
}
|
||||
}
|
||||
};
|
||||
const onScrollableChange = (layout) => {
|
||||
var _a, _b;
|
||||
const cols = ((_a = root.vnode.el) == null ? void 0 : _a.querySelectorAll("colgroup > col[name=gutter]")) || [];
|
||||
for (let i = 0, j = cols.length; i < j; i++) {
|
||||
const col = cols[i];
|
||||
col.setAttribute("width", layout.scrollY.value ? layout.gutterWidth : "0");
|
||||
}
|
||||
const ths = ((_b = root.vnode.el) == null ? void 0 : _b.querySelectorAll("th.gutter")) || [];
|
||||
for (let i = 0, j = ths.length; i < j; i++) {
|
||||
const th = ths[i];
|
||||
th.style.width = layout.scrollY.value ? `${layout.gutterWidth}px` : "0";
|
||||
th.style.display = layout.scrollY.value ? "" : "none";
|
||||
}
|
||||
};
|
||||
return {
|
||||
tableLayout: tableLayout.value,
|
||||
onColumnsChange,
|
||||
onScrollableChange
|
||||
};
|
||||
}
|
||||
|
||||
exports["default"] = useLayoutObserver;
|
||||
//# sourceMappingURL=layout-observer.js.map
|
||||
Reference in New Issue
Block a user