'use strict';
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
var vue = require('vue');
|
var index = require('../../checkbox/index.js');
|
var index$1 = require('../../icon/index.js');
|
var iconsVue = require('@element-plus/icons-vue');
|
require('../../../utils/index.js');
|
var objects = require('../../../utils/objects.js');
|
|
const defaultClassNames = {
|
selection: "table-column--selection",
|
expand: "table__expand-column"
|
};
|
const cellStarts = {
|
default: {
|
order: ""
|
},
|
selection: {
|
width: 48,
|
minWidth: 48,
|
realWidth: 48,
|
order: ""
|
},
|
expand: {
|
width: 48,
|
minWidth: 48,
|
realWidth: 48,
|
order: ""
|
},
|
index: {
|
width: 48,
|
minWidth: 48,
|
realWidth: 48,
|
order: ""
|
}
|
};
|
const getDefaultClassName = (type) => {
|
return defaultClassNames[type] || "";
|
};
|
const cellForced = {
|
selection: {
|
renderHeader({ store }) {
|
function isDisabled() {
|
return store.states.data.value && store.states.data.value.length === 0;
|
}
|
return vue.h(index.ElCheckbox, {
|
disabled: isDisabled(),
|
size: store.states.tableSize.value,
|
indeterminate: store.states.selection.value.length > 0 && !store.states.isAllSelected.value,
|
"onUpdate:modelValue": store.toggleAllSelection,
|
modelValue: store.states.isAllSelected.value
|
});
|
},
|
renderCell({
|
row,
|
column,
|
store,
|
$index
|
}) {
|
return vue.h(index.ElCheckbox, {
|
disabled: column.selectable ? !column.selectable.call(null, row, $index) : false,
|
size: store.states.tableSize.value,
|
onChange: () => {
|
store.commit("rowSelectedChanged", row);
|
},
|
onClick: (event) => event.stopPropagation(),
|
modelValue: store.isSelected(row)
|
});
|
},
|
sortable: false,
|
resizable: false
|
},
|
index: {
|
renderHeader({ column }) {
|
return column.label || "#";
|
},
|
renderCell({
|
column,
|
$index
|
}) {
|
let i = $index + 1;
|
const index = column.index;
|
if (typeof index === "number") {
|
i = $index + index;
|
} else if (typeof index === "function") {
|
i = index($index);
|
}
|
return vue.h("div", {}, [i]);
|
},
|
sortable: false
|
},
|
expand: {
|
renderHeader({ column }) {
|
return column.label || "";
|
},
|
renderCell({
|
row,
|
store,
|
expanded
|
}) {
|
const { ns } = store;
|
const classes = [ns.e("expand-icon")];
|
if (expanded) {
|
classes.push(ns.em("expand-icon", "expanded"));
|
}
|
const callback = function(e) {
|
e.stopPropagation();
|
store.toggleRowExpansion(row);
|
};
|
return vue.h("div", {
|
class: classes,
|
onClick: callback
|
}, {
|
default: () => {
|
return [
|
vue.h(index$1.ElIcon, null, {
|
default: () => {
|
return [vue.h(iconsVue.ArrowRight)];
|
}
|
})
|
];
|
}
|
});
|
},
|
sortable: false,
|
resizable: false
|
}
|
};
|
function defaultRenderCell({
|
row,
|
column,
|
$index
|
}) {
|
var _a;
|
const property = column.property;
|
const value = property && objects.getProp(row, property).value;
|
if (column && column.formatter) {
|
return column.formatter(row, column, value, $index);
|
}
|
return ((_a = value == null ? void 0 : value.toString) == null ? void 0 : _a.call(value)) || "";
|
}
|
function treeCellPrefix({
|
row,
|
treeNode,
|
store
|
}, createPlaceholder = false) {
|
const { ns } = store;
|
if (!treeNode) {
|
if (createPlaceholder) {
|
return [
|
vue.h("span", {
|
class: ns.e("placeholder")
|
})
|
];
|
}
|
return null;
|
}
|
const ele = [];
|
const callback = function(e) {
|
e.stopPropagation();
|
if (treeNode.loading) {
|
return;
|
}
|
store.loadOrToggle(row);
|
};
|
if (treeNode.indent) {
|
ele.push(vue.h("span", {
|
class: ns.e("indent"),
|
style: { "padding-left": `${treeNode.indent}px` }
|
}));
|
}
|
if (typeof treeNode.expanded === "boolean" && !treeNode.noLazyChildren) {
|
const expandClasses = [
|
ns.e("expand-icon"),
|
treeNode.expanded ? ns.em("expand-icon", "expanded") : ""
|
];
|
let icon = iconsVue.ArrowRight;
|
if (treeNode.loading) {
|
icon = iconsVue.Loading;
|
}
|
ele.push(vue.h("div", {
|
class: expandClasses,
|
onClick: callback
|
}, {
|
default: () => {
|
return [
|
vue.h(index$1.ElIcon, { class: { [ns.is("loading")]: treeNode.loading } }, {
|
default: () => [vue.h(icon)]
|
})
|
];
|
}
|
}));
|
} else {
|
ele.push(vue.h("span", {
|
class: ns.e("placeholder")
|
}));
|
}
|
return ele;
|
}
|
|
exports.cellForced = cellForced;
|
exports.cellStarts = cellStarts;
|
exports.defaultRenderCell = defaultRenderCell;
|
exports.getDefaultClassName = getDefaultClassName;
|
exports.treeCellPrefix = treeCellPrefix;
|
//# sourceMappingURL=config.js.map
|