lc-vue-pro-table
Version:
vue3高级表格
1,332 lines (1,331 loc) • 52.2 kB
JavaScript
(function(){"use strict";try{if(typeof document<"u"){var A=document.createElement("style");A.appendChild(document.createTextNode('@font-face{font-family:iconfont;src:url(data:font/woff2;base64,d09GMgABAAAAAALwAAsAAAAAB0AAAAKjAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACDBgqCGIF2ATYCJAMMCwgABCAFhGcHNxtTBsgOJQWRwAjhgQBkBNVY2bO7z+wQPVB55AALRz6KnSElCFwqKkLdn/tlKRCnRKCA1OJLlvMnmzJrAJKVqMq+rg7v9Mnz6U/lTJAAPwuAJbTaTWNtLvW+FeMFClD3tJZKss9rBfEuc2PmBW3GzLhEoN68EpabNU2tyPWRQphQIGvCGGT18UhLFcjejygK5GuFauzKIl6qIj1Pb3gRvT7+WQx7kqpM7LN1p1qN7r///kIeq4yRvwkMAoxOqELG9M7ccdGdOWIlmgQr9ao1lFcrQpo1XqkQSVSv3vMfLxHVRG0jGAcl3ZSsRYK/cIUEMqhGDXYgl8B1NoXqDmfnujrV9NhxoVNNlh3DHm99YGnRj64s68mdJxvj677HV5dbXdkEOnazeDd+u3BtGberO3hVU27FWKN9TdCM/HWNfaNNnpf8cxNvyj4j81Diw8fQ7d/Q34fCV/rRKyaXoWV+KAUsmXFHy40uPsqLroix+ZnlOKT/6dOP/46zP8oPMreif7UNBfwajr3IXuB81N6RJ/jN2hmSWGiUXJokPUEgW2F7/3b1Mk6FCLT7GK93oGsJtToyJDUGkNUapAo3iSoNFlGt1hLqTale36CDxEqUOoyaJAitzpA0e4es1SNVuHdU6faNaq3+o95BuOzWYDRUlRwUAtRY2Y+1KmYiyiIis81Auw0KXpdsB27WQhynp6SV87VgAj7FHHMPzRCCYMKZEde454HBwLDEmQ5UIkUjhFSQmkqabpKiYkZUiQMKAlDDlPphWiqMCQnIovh5zQDVzUCBI6n2DGemBfNYuhRpCKpWNaFa7mQfsx5UBkEgMIKTnBFW4w8DBgYMJjUP0wEqQgrNiJSkQKokEayasr5u/LhdUE8cmCNFjqLcYr0mWw0zqIEjBAA=) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAASIAAsAAAAAB0AAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAARAAAAGA+AEw1Y21hcAAAAYgAAABWAAABhnWz1KRnbHlmAAAB4AAAAMAAAAEYAK5DzWhlYWQAAAKgAAAALQAAADYkGEcXaGhlYQAAAtAAAAAcAAAAJAfeA4RobXR4AAAC7AAAAAwAAAAMDAAAAGxvY2EAAAL4AAAACAAAAAgAJgCMbWF4cAAAAwAAAAAfAAAAIAETAEtuYW1lAAADIAAAAUAAAAJnEKM8sHBvc3QAAARgAAAAJgAAADdZ8NFCeJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGFhYJzAwMrAwNTJdIaBgaEfQjO+ZjBi5ACKMrAyM2AFAWmuKQwHnr9+mcrc8L+BgYH5DgOQZGBEUcQEAIqhDbR4nO2QsQ2AMAwEz05IgRiEgoGo6JgdRQwRPg5swUvnl9+uHpiAJDaRwQ6Mrl2pRZ6YI8/xU+SGX3c9W4PPJdOthLtG4dcSc303720NerP1HOAPBQoSlgAAeJxjYGQAAuY6pkYGIQYGRmUldk5GNW1GJTZxRjEjc0YzNeYSbw7Wf0/+PWHl8GZlYWJM5FLgYkxgZmFqYP9XydjOzsnyT4qXl/EZCycDAxvILKaPTDcYuBnEGRQYNBlMGeyApooZ2TGaqKmr8TGKCSOxGUXEjMxM1JTYBGEMZJWqcEEdXjkpfn5eEV1xHhEEkzFDUU8Rjv6twZRhyuHgl5KTYufh0dD9dxPBZnQUB+v6dxZKz0XIqUKEGADRHiqieJxjYGRgYADinEdJu+P5bb4ycLMwgMCDWsaFyDQLA9MNIMXBwATiAQAbxwkCAAAAeJxjYGRgYG7438AQw8IAAkCSkQEVMAMARwkCbAQAAAAEAAAABAAAAAAAAAAAJgCMeJxjYGRgYGBmsGdgYwABJiDmAkIGhv9gPgMAD0wBXwB4nIWRPW7CQBCFn8GQBJQoSqQ0aVYpKBLJ/JRIqVCgp6AHs+ZHttdaL0jUOU2OkBPkCOloc4pIedhDA0W82tlv3r6ZHckA7rCHh/K75y7ZwyWzkiu4wKNwlfqTsE9+Fq6hiZ5wnfqrcAMveBNusmPGDp5/xayFd2EPt/gQruAGn8JV6l/CPvlbuIYH/AjXqf8KNzDxroWbaHnhwOqp03M126lVaNLIpO54jvViE0/tqTzRNl+ZVHWDzlEa6VTbY5t8u+g5F6nImkQNeavj2KjMmrUOXbB0Luu325HoQWgSDGChMYVjnENhhh3jCiEMUkRFdGf5mO4FNohZaf91T+i2yKkfcoUuAnTOXCO60sJ5Ok2OLV/rUXV0K27LmoQ0lFrNSWKy4g883K2phNQDLIuqDH20uaITf1DMkPwB2JNvV3icY2BigAAuBuyAmZGJkZmRhYElJb88jy0jPycltYiBAQAlVgRcAAA=) format("woff"),url(data:font/ttf;base64,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) format("truetype")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pro-table-icon-down:before{content:""}.pro-table-icon-holder:before{content:""}.section-alert[data-v-d02200cf]{line-height:22px;padding:12px 24px;border-radius:4px;background-color:var(--el-fill-color-lighter);margin-bottom:8px;font-size:14px}.el-dropdown-link[data-v-6fc06e24]{line-height:32px;margin-left:4px;cursor:pointer}.el-dropdown-link i[data-v-6fc06e24]{font-size:14px}.el-dropdown-link[data-v-afb5ccd6]{line-height:32px;margin-left:4px;cursor:pointer}.el-dropdown-link i[data-v-afb5ccd6]{font-size:14px}.column-operate-item[data-v-78919a4d]{display:flex;align-items:center;height:30px}.column-operate-item.sortable-chosen[data-v-78919a4d]{background-color:#f5f7fa;border:2px solid var(--el-color-primary);border-radius:2px}.column-operate-item .operate-icon[data-v-78919a4d]{width:30px;font-size:14px;color:#666;cursor:move}.column-operate-item .operate-check[data-v-78919a4d]{width:30px}.column-operate-item .operate-label[data-v-78919a4d]{flex:1}.popover-footer[data-v-90afbc38]{text-align:right;margin-top:8px}.pro-table .hidden[data-v-e6f0e4da]{display:none}.pro-table[data-v-e6f0e4da]{display:flex;flex-direction:column}.pro-table .section-alert[data-v-e6f0e4da]{flex:none}.pro-table .table-main[data-v-e6f0e4da]{flex:1;overflow:hidden}')),document.head.appendChild(A)}}catch(B){console.error("vite-plugin-css-injected-by-js",B)}})();
var Ae = Object.defineProperty;
var Ee = (e, l, t) => l in e ? Ae(e, l, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[l] = t;
var J = (e, l, t) => (Ee(e, typeof l != "symbol" ? l + "" : l, t), t);
import { computed as d, ref as $, defineComponent as T, resolveComponent as P, openBlock as C, createElementBlock as D, unref as h, Fragment as ce, createTextVNode as W, createElementVNode as H, toDisplayString as fe, createCommentVNode as G, createBlock as L, withCtx as k, watch as Q, createVNode as I, pushScopeId as ye, popScopeId as Ce, nextTick as Ie, isVNode as Le, renderSlot as ae, renderList as $e, createApp as _e, normalizeStyle as Oe, onMounted as xe, watchPostEffect as Me, getCurrentInstance as Be, onUnmounted as He } from "vue";
import { findIndex as Z, get as we, isEqual as se, merge as Ne, cloneDeep as le, differenceWith as ge, isNumber as Ve, isFunction as Fe, isBoolean as De } from "lodash";
import { createInjectionState as Ge } from "@vueuse/shared";
import "ag-grid-community/styles/ag-grid.css";
import "ag-grid-community/styles/ag-theme-alpine.css";
import { AgGridVue as Pe } from "ag-grid-vue3";
import { ElCheckbox as Re, ElDropdown as je, ElDropdownMenu as Ke, ElDropdownItem as be } from "element-plus";
import ze from "vuedraggable";
import { v4 as Ue } from "uuid";
const We = ({
selectionRows: e,
selectionType: l,
tableConfig: t,
isSameRow: n
}) => {
const o = d(() => {
var p, b;
return l.value === "positive" ? ((p = t.value.data) == null ? void 0 : p.map((x) => e.value.some((A) => n(x, A)))) || [] : ((b = t.value.data) == null ? void 0 : b.map((x) => !e.value.some((A) => n(x, A)))) || [];
}), u = d(() => o.value.filter((p) => !!p)), r = d(() => {
var p;
return u.value.length === ((p = t.value.data) == null ? void 0 : p.length) && u.value.length > 0;
}), S = d(() => {
var p;
return u.value.length > 0 && u.value.length < (((p = t.value.data) == null ? void 0 : p.length) ?? 0);
}), f = (p) => {
e.value.splice(0, e.value.length), l.value = p;
}, a = (p) => {
Z(e.value, (x) => n(p, x)) < 0 && e.value.push(p);
}, v = (p) => {
const b = Z(e.value, (x) => n(p, x));
b > -1 && e.value.splice(b, 1);
}, m = () => {
var p;
(p = t.value.data) == null || p.forEach((b) => {
Z(e.value, (A) => n(b, A)) < 0 && e.value.push(b);
});
}, _ = () => {
var p;
(p = t.value.data) == null || p.forEach((b) => {
const x = Z(e.value, (A) => n(b, A));
x > -1 && e.value.splice(x, 1);
});
};
return {
checked: r,
indeterminate: S,
rowCheckedStatusList: o,
setType: f,
toggleAllSelection: () => {
const p = !r.value;
l.value === "positive" ? p === !0 ? m() : _() : p === !1 ? m() : _();
},
toggleRowSelection: (p, b) => {
l.value === "positive" ? b === !0 ? a(p) : v(p) : b === !1 ? a(p) : v(p);
}
};
}, qe = ({
selectionRows: e,
tableConfig: l,
isSameRow: t
}) => {
const n = d(() => {
var a;
return ((a = l.value.data) == null ? void 0 : a.map((v) => e.value.some((m) => t(v, m)))) || [];
}), o = d(() => n.value.filter((a) => a === !0)), u = d(() => o.value.length === n.value.length), r = d(() => o.value.length > 0 && o.value.length < n.value.length);
return {
checked: u,
indeterminate: r,
rowCheckedStatusList: n,
toggleRowSelection: (a, v) => {
const m = Z(e.value, (_) => t(_, a));
v === !0 ? m === -1 && e.value.push(a) : m !== -1 && e.value.splice(m, 1);
},
toggleAllSelection: () => {
var v, m;
!u.value === !0 ? (v = l.value.data) == null || v.forEach((_) => {
e.value.some((R) => t(_, R)) || e.value.push(_);
}) : (m = l.value.data) == null || m.forEach((_) => {
const R = Z(e.value, (O) => t(_, O));
R > -1 && e.value.splice(R, 1);
});
}
};
}, [Je, te] = Ge(() => {
const e = $([]), l = $([]), t = $([]), n = $("positive"), o = $({}), u = (w, y) => o.value.rowKey ? we(w, o.value.rowKey, void 0) === we(y, o.value.rowKey, void 0) && we(w, o.value.rowKey, void 0) !== void 0 : se(w, y), {
checked: r,
indeterminate: S,
setType: f,
toggleAllSelection: a,
rowCheckedStatusList: v,
toggleRowSelection: m
} = We({
selectionRows: t,
selectionType: n,
tableConfig: o,
isSameRow: u
}), {
checked: _,
indeterminate: R,
rowCheckedStatusList: O,
toggleRowSelection: p,
toggleAllSelection: b
} = qe({
selectionRows: t,
tableConfig: o,
isSameRow: u
}), x = (w, y) => {
e.value.splice(y, 0, w);
}, A = (w) => {
const y = Z(e.value, (N) => N.id === w.id);
Ne(e.value[y], w);
}, X = (w) => {
const y = Z(e.value, (N) => N.id === w.id);
e.value.splice(y, 1);
}, j = () => le(q.value), K = (w) => {
l.value = le(w);
}, Y = d(() => e.value.reduce((w, y) => (w[y.prop] = y, w), {})), q = d(() => {
const w = [];
return l.value.forEach((y) => {
e.value.find(({ prop: z }) => z === y.prop) && w.push(y);
}), e.value.forEach((y) => {
l.value.find(({ prop: z }) => z === y.prop) || w.push({
prop: y.prop,
show: !y.defaultHidden,
label: y.label,
disabled: y.disabled
});
}), w;
}), ee = d(() => {
const w = [];
return q.value.filter((y) => y.show === !0).forEach((y) => {
const N = e.value.find(({ prop: z }) => z === y.prop);
N && w.push(N);
}), w;
});
return {
tableConfig: o,
selectionRows: t,
selectionType: n,
columnConfigs: ee,
configMap: Y,
columns: q,
insertConfig: x,
updateConfig: A,
removeConfig: X,
getCustomColumns: j,
updateCustomColumns: K,
setTableConfig: (w) => {
o.value = w;
},
isSameRow: u,
reserveSelectionChecked: r,
reserveSelectionIndeterminate: S,
reserveSelectionSetType: f,
reserveSelectionToggleAll: a,
reserveSelectionRowCheckedStatusList: v,
reserveSelectionToggleRow: m,
selectionChecked: _,
selectionIndeterminate: R,
selectionRowCheckedStatusList: O,
selectionToggleRow: p,
selectionToggleAll: b
};
}), Qe = { class: "section-alert" }, Xe = /* @__PURE__ */ T({
__name: "index",
emits: ["clear"],
setup(e, { emit: l }) {
const { selectionType: t, selectionRows: n } = te(), o = () => {
l("clear");
};
return (u, r) => {
const S = P("el-button");
return C(), D("div", Qe, [
h(t) === "positive" ? (C(), D(ce, { key: 0 }, [
W(" 已选择 "),
H("strong", null, fe(h(n).length), 1),
W(" 条 ")
], 64)) : G("", !0),
h(t) === "reverse" ? (C(), D(ce, { key: 1 }, [
W(" 已选择全部,并排除 "),
H("strong", null, fe(h(n).length), 1),
W(" 条 ")
], 64)) : G("", !0),
h(n).length > 0 ? (C(), L(S, {
key: 2,
type: "primary",
link: "",
onClick: o
}, {
default: k(() => [
h(t) === "positive" ? (C(), D(ce, { key: 0 }, [
W(" 取消选择 ")
], 64)) : G("", !0),
h(t) === "reverse" ? (C(), D(ce, { key: 1 }, [
W(" 取消排除 ")
], 64)) : G("", !0)
]),
_: 1
})) : G("", !0)
]);
};
}
});
const re = (e, l) => {
const t = e.__vccOpts || e;
for (const [n, o] of l)
t[n] = o;
return t;
}, Ye = /* @__PURE__ */ re(Xe, [["__scopeId", "data-v-d02200cf"]]), Ze = /* @__PURE__ */ T({
__name: "default-slot",
props: {
row: null,
column: null,
index: null
},
setup(e) {
const l = e, {
reserveSelectionRowCheckedStatusList: t,
reserveSelectionToggleRow: n
} = te(), o = d(() => t.value[l.index]), u = (r) => {
n(l.row, r);
};
return (r, S) => {
const f = P("el-checkbox");
return C(), L(f, {
"model-value": h(o),
onChange: u
}, null, 8, ["model-value"]);
};
}
}), et = (e) => (ye("data-v-6fc06e24"), e = e(), Ce(), e), tt = { class: "selection-header" }, lt = /* @__PURE__ */ et(() => /* @__PURE__ */ H("span", { class: "el-dropdown-link" }, [
/* @__PURE__ */ H("i", { class: "iconfont pro-table-icon-down" })
], -1)), ot = /* @__PURE__ */ T({
__name: "header-slot",
props: {
column: null,
index: null
},
setup(e) {
const l = e, t = "positiveModel", n = "reverseModel", {
tableConfig: o,
selectionRows: u,
selectionType: r,
reserveSelectionChecked: S,
reserveSelectionIndeterminate: f,
reserveSelectionSetType: a,
reserveSelectionToggleAll: v
} = te();
l.column.reserveSelection === !0 && o.value.rowKey, Q(() => o.value.data, () => {
l.column.reserveSelection === !1 && u.value.splice(0, u.value.length);
}, { deep: !0 });
const m = (_) => {
_ === t ? a("positive") : _ === n && a("reverse");
};
return (_, R) => {
const O = P("el-checkbox"), p = P("el-dropdown-item"), b = P("el-dropdown-menu"), x = P("el-dropdown");
return C(), D("div", tt, [
I(O, {
"model-value": h(S),
indeterminate: h(f),
onChange: h(v)
}, null, 8, ["model-value", "indeterminate", "onChange"]),
I(x, {
trigger: "click",
onCommand: m
}, {
dropdown: k(() => [
I(b, null, {
default: k(() => [
h(r) === "reverse" ? (C(), L(p, {
key: 0,
command: t
}, {
default: k(() => [
W(" 取消全选 ")
]),
_: 1
})) : G("", !0),
h(r) === "positive" ? (C(), L(p, {
key: 1,
command: n
}, {
default: k(() => [
W(" 全部选择 ")
]),
_: 1
})) : G("", !0)
]),
_: 1
})
]),
default: k(() => [
lt
]),
_: 1
})
]);
};
}
});
const nt = /* @__PURE__ */ re(ot, [["__scopeId", "data-v-6fc06e24"]]);
function ct(e) {
return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !Le(e);
}
const at = /* @__PURE__ */ T({
props: {
config: {
type: Object,
required: !0
}
},
setup(e) {
const l = $(!0);
return Q(() => e.config, async () => {
l.value = !1, await Ie(), l.value = !0;
}, {
deep: !0
}), {
ready: l
};
},
render() {
if (this.ready === !1)
return;
const e = {};
return this.config.type === "reserveSelection" ? (e.default = (l) => I(Ze, {
row: l.row,
column: l.column,
index: l.$index
}, null), e.header = (l) => I(nt, {
column: l.column,
index: l.$index
}, null)) : (this.config.defaultRender && (e.default = (l) => this.config.defaultRender(l)), this.config.headerRender && (e.header = (l) => this.config.headerRender(l))), I(P("el-table-column"), {
prop: this.config.prop,
label: this.config.label,
type: this.config.type === "reserveSelection" ? void 0 : this.config.type,
index: this.config.index,
columnKey: this.config.columnKey,
width: this.config.type === "reserveSelection" ? 60 : this.config.width,
minWidth: this.config.minWidth,
fixed: this.config.fixed,
renderHeader: this.config.renderHeader,
sortable: this.config.sortable,
sortMethod: this.config.sortMethod,
sortBy: this.config.sortBy,
sortOrders: this.config.sortOrders,
resizable: this.config.resizable,
formatter: this.config.formatter,
showOverflowTooltip: this.config.showOverflowTooltip,
align: this.config.align,
headerAlign: this.config.headerAlign,
className: this.config.className,
labelClassName: this.config.labelClassName,
selectable: this.config.selectable,
reserveSelection: this.config.reserveSelection,
filters: this.config.filters,
filterPlacement: this.config.filterPlacement,
filterMultiple: this.config.filterMultiple,
filterMethod: this.config.filterMethod,
filteredValue: this.config.filteredValue,
defaultRender: this.config.defaultRender,
headerRender: this.config.headerRender
}, ct(e) ? e : {
default: () => [e]
});
}
}), st = /* @__PURE__ */ T({
__name: "table-render",
props: {
config: null
},
emits: [
"select",
"select-all",
"selection-change",
"cell-mouse-enter",
"cell-mouse-leave",
"cell-click",
"cell-dblclick",
"cell-contextmenu",
"row-click",
"row-contextmenu",
"row-dblclick",
"header-click",
"header-contextmenu",
"sort-change",
"filter-change",
"current-change",
"header-dragend",
"expand-change"
],
setup(e, { expose: l, emit: t }) {
const { columnConfigs: n, selectionRows: o } = te();
let u = [];
const r = $(), S = (...s) => t("select", ...s), f = (...s) => t("select-all", ...s), a = (...s) => {
t("selection-change", ...s), u = s[0].map((U) => U);
const F = s[0];
o.value.splice(0, o.value.length), F.forEach((U) => {
o.value.push(U);
});
}, v = (...s) => t("cell-mouse-enter", ...s), m = (...s) => t("cell-mouse-leave", ...s), _ = (...s) => t("cell-click", ...s), R = (...s) => t("cell-dblclick", ...s), O = (...s) => t("cell-contextmenu", ...s), p = (...s) => t("row-click", ...s), b = (...s) => t("row-contextmenu", ...s), x = (...s) => t("row-dblclick", ...s), A = (...s) => t("header-click", ...s), X = (...s) => t("header-contextmenu", ...s), j = (...s) => t("sort-change", ...s), K = (...s) => t("filter-change", ...s), Y = (...s) => t("current-change", ...s), q = (...s) => t("header-dragend", ...s), ee = (...s) => t("expand-change", ...s);
return Q(() => o.value, () => {
ge(o.value, u, se).forEach((U) => {
r.value.toggleRowSelection(U, !0);
}), ge(u, o.value, se).forEach((U) => {
r.value.toggleRowSelection(U, !1);
});
}, { deep: !0 }), l({
clearSelection: () => {
r.value.clearSelection(), o.value.splice(0, o.value.length);
},
getSelectionRows: () => r.value.getSelectionRows(),
toggleRowSelection: (s, F) => r.value.toggleRowSelection(s, F),
toggleAllSelection: () => r.value.toggleAllSelection(),
toggleRowExpansion: (s, F) => r.value.toggleRowExpansion(s, F),
setCurrentRow: (s) => r.value.setCurrentRow(s),
clearSort: () => r.value.clearSort(),
clearFilter: (s) => r.value.clearFilter(s),
doLayout: () => r.value.doLayout(),
sort: (s, F) => r.value.sort(s, F),
scrollTo: (s, F) => r.value.scrollTo(s, F),
setScrollTop: (s) => r.value.setScrollTop(s),
setScrollLeft: (s) => r.value.setScrollLeft(s)
}), (s, F) => {
const U = P("el-table");
return C(), L(U, {
ref_key: "tableRef",
ref: r,
data: e.config.data,
height: e.config.height,
"max-height": e.config.maxHeight,
stripe: e.config.stripe,
border: e.config.border,
size: e.config.size,
fit: e.config.fit,
"show-header": e.config.showHeader,
"highlight-current-row": e.config.highlightCurrentRow,
"current-row-key": e.config.currentRowKey,
"row-class-name": e.config.rowClassName,
"row-style": e.config.rowStyle,
"cell-class-name": e.config.cellClassName,
"cell-style": e.config.cellStyle,
"header-row-class-name": e.config.headerRowClassName,
"header-row-style": e.config.headerRowStyle,
"header-cell-class-name": e.config.headerCellClassName,
"header-cell-style": e.config.headerCellStyle,
"row-key": e.config.rowKey,
"empty-text": e.config.emptyText,
"default-expand-all": e.config.defaultExpandAll,
"expand-row-keys": e.config.expandRowKeys,
"default-sort": e.config.defaultSort,
"tooltip-effect": e.config.tooltipEffect,
"tooltip-options": e.config.tooltipOptions,
"show-summary": e.config.showSummary,
"sum-text": e.config.sumText,
"summary-method": e.config.summaryMethod,
"span-method": e.config.spanMethod,
"select-on-indeterminate": e.config.selectOnIndeterminate,
indent: e.config.indent,
lazy: e.config.lazy,
load: e.config.load,
"tree-props": e.config.treeProps,
"table-layout": e.config.tableLayout,
"scrollbar-always-on": e.config.scrollbarAlwaysOn,
flexible: e.config.flexible,
onSelect: S,
onSelectAll: f,
onSelectionChange: a,
onCellMouseEnter: v,
onCellMouseLeave: m,
onCellClick: _,
onCellDblclick: R,
onCellContextmenu: O,
onRowClick: p,
onRowContextmenu: b,
onRowDblclick: x,
onHeaderClick: A,
onHeaderContextmenu: X,
onSortChange: j,
onFilterChange: K,
onCurrentChange: Y,
onHeaderDragend: q,
onExpandChange: ee
}, {
append: k(() => [
ae(s.$slots, "append")
]),
empty: k(() => [
ae(s.$slots, "empty")
]),
default: k(() => [
(C(!0), D(ce, null, $e(h(n), (de) => (C(), L(h(at), {
key: de.id,
config: de
}, null, 8, ["config"]))), 128))
]),
_: 3
}, 8, ["data", "height", "max-height", "stripe", "border", "size", "fit", "show-header", "highlight-current-row", "current-row-key", "row-class-name", "row-style", "cell-class-name", "cell-style", "header-row-class-name", "header-row-style", "header-cell-class-name", "header-cell-style", "row-key", "empty-text", "default-expand-all", "expand-row-keys", "default-sort", "tooltip-effect", "tooltip-options", "show-summary", "sum-text", "summary-method", "span-method", "select-on-indeterminate", "indent", "lazy", "load", "tree-props", "table-layout", "scrollbar-always-on", "flexible"]);
};
}
}), rt = /* @__PURE__ */ T({
props: {
params: {
type: Object,
default: () => ({})
}
},
setup(e) {
const l = d(() => e.params.columnConfig), t = d(() => ({
row: e.params.data,
column: l,
$index: e.params.rowIndex
})), n = l.value.defaultRender;
return {
scope: t,
defaultRender: n
};
},
render() {
return I("div", null, {
default: () => this.defaultRender(this.scope)
});
}
}), it = /* @__PURE__ */ T({
props: {
params: {
type: Object,
default: () => ({})
}
},
setup(e) {
const l = d(() => e.params.columnConfig), t = d(() => ({
column: l,
$index: e.params.columnIndex
})), n = l.value.headerRender;
return {
scope: t,
headerRender: n
};
},
render() {
return I("div", null, {
default: () => this.headerRender(this.scope)
});
}
});
let ut = class {
constructor() {
J(this, "eGui");
J(this, "params");
J(this, "app");
}
init(l) {
this.params = l, this.eGui = document.createElement("div"), this.app = _e(it, { params: l }), this.app.mount(this.eGui);
}
getGui() {
return this.eGui;
}
destroy() {
this.app.unmount(), this.eGui = null;
}
};
const dt = /* @__PURE__ */ T({
__name: "cell-render",
props: {
params: {
type: Object,
default: () => ({})
}
},
setup(e) {
const l = e, t = d(() => l.params.tableConfig.value), n = d(() => l.params.selectionRowCheckedStatusList.value), o = d(() => l.params.rowIndex), u = d(() => n.value[o.value]), r = l.params.selectionToggleRow, S = (f) => {
var a;
r((a = t.value.data) == null ? void 0 : a[o.value], f);
};
return (f, a) => {
const v = P("el-checkbox");
return C(), L(v, {
"model-value": h(u),
onChange: S
}, null, 8, ["model-value"]);
};
}
}), pt = /* @__PURE__ */ T({
__name: "header-render",
props: {
params: {
type: Object,
default: () => ({})
}
},
setup(e) {
const l = e, t = d(() => l.params.columnConfig), n = d(() => l.params.selectionRows.value), o = d(() => l.params.tableConfig.value), u = d(() => l.params.selectionChecked.value), r = d(() => l.params.selectionIndeterminate.value), S = l.params.selectionToggleAll;
t.value.reserveSelection === !0 && o.value.rowKey, Q(() => o.value.data, () => {
t.value.reserveSelection === !1 && n.value.splice(0, n.value.length);
}, { deep: !0 });
const f = (a) => {
S(a);
};
return (a, v) => (C(), L(h(Re), {
"model-value": h(u),
indeterminate: h(r),
onChange: f
}, null, 8, ["model-value", "indeterminate"]));
}
});
let ft = class {
constructor() {
J(this, "eGui");
J(this, "params");
J(this, "app");
}
init(l) {
this.params = l, this.eGui = document.createElement("div"), this.app = _e(pt, { params: l }), this.app.mount(this.eGui);
}
getGui() {
return this.eGui;
}
destroy() {
this.app.unmount(), this.eGui = null;
}
};
const gt = /* @__PURE__ */ T({
__name: "cell-render",
props: {
params: {
type: Object,
default: () => ({})
}
},
setup(e) {
const l = e, t = d(() => l.params.columnConfig), n = d(() => {
if (t.value.index) {
if (Ve(t.value.index))
return t.value.index;
if (Fe(t.value.index))
return t.value.index(l.params.rowIndex);
}
return l.params.rowIndex + 1;
});
return (o, u) => (C(), D("span", null, fe(h(n)), 1));
}
}), ht = /* @__PURE__ */ T({
__name: "cell-render",
props: {
params: {
type: Object,
default: () => ({})
}
},
setup(e) {
const l = e, t = d(() => l.params.tableConfig.value), n = d(() => l.params.reserveSelectionRowCheckedStatusList.value), o = d(() => l.params.rowIndex), u = l.params.reserveSelectionToggleRow, r = d(() => n.value[o.value]), S = (f) => {
var a;
u((a = t.value.data) == null ? void 0 : a[o.value], f);
};
return (f, a) => {
const v = P("el-checkbox");
return C(), L(v, {
"model-value": h(r),
onChange: S
}, null, 8, ["model-value"]);
};
}
}), vt = (e) => (ye("data-v-afb5ccd6"), e = e(), Ce(), e), mt = { class: "selection-header" }, St = /* @__PURE__ */ vt(() => /* @__PURE__ */ H("span", { class: "el-dropdown-link" }, [
/* @__PURE__ */ H("i", { class: "iconfont pro-table-icon-down" })
], -1)), wt = /* @__PURE__ */ T({
__name: "header-render",
props: {
params: {
type: Object,
default: () => ({})
}
},
setup(e) {
const l = e, t = "positiveModel", n = "reverseModel", o = l.params.reserveSelectionSetType, u = l.params.reserveSelectionToggleAll, r = d(() => l.params.reserveSelectionChecked.value), S = d(() => l.params.reserveSelectionIndeterminate.value), f = d(() => l.params.columnConfig), a = d(() => l.params.selectionRows.value), v = d({
get: () => l.params.selectionType.value,
set: (R) => {
l.params.selectionType.value = R;
}
}), m = d(() => l.params.tableConfig.value);
f.value.reserveSelection === !0 && m.value.rowKey, Q(() => m.value.data, () => {
f.value.reserveSelection === !1 && a.value.splice(0, a.value.length);
}, { deep: !0 });
const _ = (R) => {
R === t ? o("positive") : R === n && o("reverse");
};
return (R, O) => (C(), D("div", mt, [
I(h(Re), {
"model-value": h(r),
indeterminate: h(S),
onChange: h(u)
}, null, 8, ["model-value", "indeterminate", "onChange"]),
I(h(je), {
trigger: "click",
onCommand: _
}, {
dropdown: k(() => [
I(h(Ke), null, {
default: k(() => [
h(v) === "reverse" ? (C(), L(h(be), {
key: 0,
command: t
}, {
default: k(() => [
W(" 取消全选 ")
]),
_: 1
})) : G("", !0),
h(v) === "positive" ? (C(), L(h(be), {
key: 1,
command: n
}, {
default: k(() => [
W(" 全部选择 ")
]),
_: 1
})) : G("", !0)
]),
_: 1
})
]),
default: k(() => [
St
]),
_: 1
})
]));
}
});
const yt = /* @__PURE__ */ re(wt, [["__scopeId", "data-v-afb5ccd6"]]);
class Ct {
constructor() {
J(this, "eGui");
J(this, "params");
J(this, "app");
}
init(l) {
this.params = l, this.eGui = document.createElement("div"), this.app = _e(yt, { params: l }), this.app.mount(this.eGui);
}
getGui() {
return this.eGui;
}
destroy() {
this.app.unmount(), this.eGui = null;
}
}
const _t = /* @__PURE__ */ T({
__name: "table-render",
props: {
config: null
},
emits: [
"selection-change",
"current-change",
"sort-change"
],
setup(e, { expose: l, emit: t }) {
const n = e, {
columnConfigs: o,
tableConfig: u,
selectionRows: r,
selectionType: S,
reserveSelectionChecked: f,
reserveSelectionIndeterminate: a,
reserveSelectionSetType: v,
reserveSelectionToggleAll: m,
reserveSelectionRowCheckedStatusList: _,
reserveSelectionToggleRow: R,
selectionChecked: O,
selectionIndeterminate: p,
selectionRowCheckedStatusList: b,
selectionToggleRow: x,
selectionToggleAll: A,
isSameRow: X
} = te();
let j = null, K = null;
const Y = d(() => n.config.data.length * 42 + 49 + 17 + 2), q = d(() => ({
height: `${n.config.height || Y.value}px`,
width: "100%"
})), ee = d(() => o.value.map((g, M) => {
var pe;
let B, V, c = {}, E = {};
return g.defaultRender && (B = rt), g.headerRender && (V = ut), g.type === "selection" ? (B = dt, V = ft, c = {
selectionRowCheckedStatusList: b,
selectionToggleRow: x
}, E = {
selectionChecked: O,
selectionIndeterminate: p,
selectionToggleAll: A
}) : g.type === "reserveSelection" ? (B = ht, V = Ct, c = {
reserveSelectionRowCheckedStatusList: _,
reserveSelectionToggleRow: R
}, E = {
reserveSelectionChecked: f,
reserveSelectionIndeterminate: a,
reserveSelectionSetType: v,
reserveSelectionToggleAll: m
}) : g.type === "index" && (B = gt), {
headerName: g.label,
field: g.prop,
cellRenderer: B,
cellRendererParams: Object.assign({
columnConfig: g,
tableConfig: u,
selectionRows: r,
selectionType: S
}, c),
suppressMovable: !0,
lockPosition: g.fixed ?? void 0,
headerComponent: V,
headerComponentParams: Object.assign({
columnConfig: g,
tableConfig: u,
columnIndex: M,
selectionRows: r,
selectionType: S
}, E),
width: g.width ?? void 0,
minWidth: g.minWidth ?? void 0,
sortable: g.sortable ?? void 0,
sortingOrder: ((pe = g.sortOrders) == null ? void 0 : pe.map((Te) => ({
ascending: "asc",
descending: "desc"
})[Te] || null)) ?? void 0,
sort: u.value.defaultSort && u.value.defaultSort.prop === g.prop ? u.value.defaultSort.order === "descending" ? "desc" : "asc" : void 0
};
})), oe = (g) => {
j = g.api, K = g.columnApi;
}, w = (g) => {
g.api.sizeColumnsToFit();
}, y = () => {
const g = j.getSelectedRows();
t("current-change", r.value.map((M) => M), g[0]);
}, N = (g) => {
g.api.sizeColumnsToFit();
}, z = (g) => {
const M = {
asc: "ascending",
desc: "descending"
}, V = g.columnApi.getColumnState().find((E) => !!E.sort), c = o.value.find((E) => E.prop === (V == null ? void 0 : V.colId));
t("sort-change", {
column: c,
prop: c == null ? void 0 : c.prop,
order: M[V == null ? void 0 : V.sort] || null
});
};
return Q(() => r.value, () => {
t("selection-change", r.value.map((g) => g));
}, { deep: !0 }), l({
clearSelection: () => {
r.value.splice(0, r.value.length);
},
getSelectionRows: () => r.value.map((g) => g),
toggleRowSelection: (g, M) => {
const B = Z(r.value, (V) => se(g, V));
De(M) ? M === !0 ? B === -1 && r.value.push(g) : B > -1 && r.value.splice(B, 1) : B === -1 ? r.value.push(g) : r.value.splice(B, 1);
},
toggleAllSelection: () => {
A();
},
toggleRowExpansion: () => {
},
setCurrentRow: (g) => {
j.forEachNodeAfterFilter((M) => {
X(g, M.data) && M.setSelected(!0, !0);
});
},
clearSort: () => {
K.applyColumnState({ defaultState: { sort: null } });
},
clearFilter: () => {
},
doLayout: () => {
},
sort: (g, M) => {
const B = {
ascending: "asc",
descending: "desc"
};
K.applyColumnState({
state: [
{
colId: g,
sort: B[M] ?? null
}
],
defaultState: { sort: null }
});
},
scrollTo: () => {
},
setScrollTop: () => {
},
setScrollLeft: () => {
throw new Error("not support");
}
}), (g, M) => (C(), L(h(Pe), {
style: Oe(h(q)),
class: "ag-theme-alpine",
"column-defs": h(ee),
"row-data": e.config.data,
"row-selection": "single",
onGridReady: oe,
onFirstDataRendered: w,
onSelectionChanged: y,
onGridColumnsChanged: N,
onSortChanged: z
}, null, 8, ["style", "column-defs", "row-data"]));
}
}), bt = (e) => (ye("data-v-78919a4d"), e = e(), Ce(), e), xt = { class: "column-operate-item" }, Rt = /* @__PURE__ */ bt(() => /* @__PURE__ */ H("div", { class: "operate-icon" }, [
/* @__PURE__ */ H("i", { class: "iconfont pro-table-icon-holder" })
], -1)), kt = { class: "operate-check" }, Tt = { class: "operate-label" }, At = /* @__PURE__ */ T({
__name: "column-operate-item",
props: {
show: { type: Boolean },
label: null,
disabled: { type: Boolean }
},
emits: ["update:modelValue"],
setup(e, { emit: l }) {
const t = (n) => {
l("update:modelValue", n);
};
return (n, o) => {
const u = P("el-checkbox");
return C(), D("div", xt, [
Rt,
H("div", kt, [
I(u, {
disabled: e.disabled,
"model-value": e.show,
"onUpdate:modelValue": t
}, null, 8, ["disabled", "model-value"])
]),
H("div", Tt, [
H("span", null, fe(e.label), 1)
])
]);
};
}
});
const Et = /* @__PURE__ */ re(At, [["__scopeId", "data-v-78919a4d"]]), It = { class: "column-operate" }, Lt = /* @__PURE__ */ T({
__name: "column-operate",
setup(e) {
const { columns: l, updateCustomColumns: t } = te(), n = $(le(l.value));
Q(() => n.value, (f) => {
t(le(f));
}, { deep: !0 });
const o = d(() => n.value.filter((a) => a.show === !0).length === n.value.length), u = d(() => {
const f = n.value.filter((a) => a.show === !0).length;
return f > 0 && f < n.value.length;
}), r = (f) => {
n.value.forEach((a) => {
a.disabled || (a.show = f);
});
}, S = (f, a) => {
f.show = a;
};
return (f, a) => {
const v = P("el-checkbox");
return C(), D("div", It, [
H("div", null, [
I(v, {
"model-value": h(o),
indeterminate: h(u),
"onUpdate:modelValue": r
}, {
default: k(() => [
W(" 列展示 ")
]),
_: 1
}, 8, ["model-value", "indeterminate"])
]),
I(h(ze), {
modelValue: n.value,
"onUpdate:modelValue": a[0] || (a[0] = (m) => n.value = m),
group: "people",
handle: ".operate-icon",
"item-key": "id"
}, {
item: k(({ element: m }) => [
I(Et, {
show: m.show,
label: m.label,
disabled: m.disabled,
"onUpdate:modelValue": (_) => S(m, _)
}, null, 8, ["show", "label", "disabled", "onUpdate:modelValue"])
]),
_: 1
}, 8, ["modelValue"])
]);
};
}
}), $t = /* @__PURE__ */ T({
__name: "custom-column-pop",
props: {
placement: {
type: String,
default: "bottom"
},
virtualRef: {
type: Object,
default: void 0
}
},
setup(e) {
const l = $(), t = $(), n = $(!1);
return (o, u) => {
const r = P("el-popover");
return C(), L(r, {
ref_key: "popoverRef",
ref: t,
placement: e.placement,
"virtual-ref": e.virtualRef,
trigger: "click",
"virtual-triggering": "",
onBeforeEnter: u[0] || (u[0] = (S) => n.value = !0),
onAfterLeave: u[1] || (u[1] = (S) => n.value = !1)
}, {
default: k(() => [
n.value ? (C(), L(Lt, {
key: 0,
ref_key: "columnOperateRef",
ref: l
}, null, 512)) : G("", !0)
]),
_: 1
}, 8, ["placement", "virtual-ref"]);
};
}
});
const Ot = /* @__PURE__ */ re($t, [["__scopeId", "data-v-90afbc38"]]), Mt = {
ref: "hiddenItems",
class: "hidden"
}, Bt = { class: "pro-table" }, Ht = {
key: 0,
class: "table-main"
}, Nt = /* @__PURE__ */ T({
__name: "pro-table-wrapper",
props: {
config: null
},
emits: [
"select",
"select-all",
"selection-change",
"cell-mouse-enter",
"cell-mouse-leave",
"cell-click",
"cell-dblclick",
"cell-contextmenu",
"row-click",
"row-contextmenu",
"row-dblclick",
"header-click",
"header-contextmenu",
"sort-change",
"filter-change",
"current-change",
"header-dragend",
"expand-change",
"row-selection-change"
],
setup(e, { expose: l, emit: t }) {
const n = e, { setTableConfig: o, selectionRows: u, selectionType: r } = te(), S = d(() => ({
"el-table": st,
"ag-grid": _t
})[n.config.renderTableType]), f = $(), a = $(), v = $(0), m = $(!1), _ = d(() => {
let c = n.config.height;
return c && n.config.showSelectionAlert && (c = Number(c) - v.value), {
...n.config,
height: c
};
});
xe(() => {
v.value = f.value.clientHeight, m.value = !0;
});
const R = (...c) => t("select", ...c), O = (...c) => t("select-all", ...c), p = (...c) => t("selection-change", ...c), b = (...c) => t("cell-mouse-enter", ...c), x = (...c) => t("cell-mouse-leave", ...c), A = (...c) => t("cell-click", ...c), X = (...c) => t("cell-dblclick", ...c), j = (...c) => t("cell-contextmenu", ...c), K = (...c) => t("row-click", ...c), Y = (...c) => t("row-contextmenu", ...c), q = (...c) => t("row-dblclick", ...c), ee = (...c) => t("header-click", ...c), oe = (...c) => t("header-contextmenu", ...c), w = (...c) => t("sort-change", ...c), y = (...c) => t("filter-change", ...c), N = (...c) => t("current-change", ...c), z = (...c) => t("header-dragend", ...c), ie = (...c) => t("expand-change", ...c), ue = () => {
a.value.clearSelection();
};
let ne = [];
return Q(() => u.value, () => {
const c = ge(u.value, ne, se), E = ge(ne, u.value, se);
(c.length > 0 || E.length > 0) && t("row-selection-change", le({
rows: u.value,
type: r.value
})), ne = u.value.map((pe) => pe);
}, { deep: !0 }), Q(() => r.value, () => {
t("row-selection-change", le({
rows: u.value,
type: r.value
}));
}), l({
getRowSelection: () => le({
rows: u.value,
type: r.value
}),
setTableConfig: o,
clearSelection: () => a.value.clearSelection(),
getSelectionRows: () => a.value.getSelectionRows(),
toggleRowSelection: (c, E) => a.value.toggleRowSelection(c, E),
toggleAllSelection: () => a.value.toggleAllSelection(),
toggleRowExpansion: (c, E) => a.value.toggleRowExpansion(c, E),
setCurrentRow: (c) => a.value.setCurrentRow(c),
clearSort: () => a.value.clearSort(),
clearFilter: (c) => a.value.clearFilter(c),
doLayout: () => a.value.doLayout(),
sort: (c, E) => a.value.sort(c, E),
scrollTo: (c, E) => a.value.scrollTo(c, E),
setScrollTop: (c) => a.value.setScrollTop(c),
setScrollLeft: (c) => a.value.setScrollLeft(c)
}), (c, E) => (C(), D(ce, null, [
H("div", Mt, [
ae(c.$slots, "default", {}, void 0, !0)
], 512),
H("div", Bt, [
H("div", {
ref_key: "sectionAlertRef",
ref: f,
class: "section-alert"
}, [
e.config.showSelectionAlert ? (C(), L(Ye, {
key: 0,
onClear: ue
})) : G("", !0)
], 512),
m.value ? (C(), D("div", Ht, [
I(h(S), {
ref_key: "tableRef",
ref: a,
config: h(_),
"section-alert-height": v.value,
onSelect: R,
onSelectAll: O,
onSelectionChange: p,
onCellMouseEnter: b,
onCellMouseLeave: x,
onCellClick: A,
onCellDblclick: X,
onCellContextmenu: j,
onRowClick: K,
onRowContextmenu: Y,
onRowDblclick: q,
onHeaderClick: ee,
onHeaderContextmenu: oe,
onSortChange: w,
onFilterChange: y,
onCurrentChange: N,
onHeaderDragend: z,
onExpandChange: ie
}, {
append: k(() => [
ae(c.$slots, "append", {}, void 0, !0)
]),
empty: k(() => [
ae(c.$slots, "empty", {}, void 0, !0)
]),
_: 3
}, 8, ["config", "section-alert-height"])
])) : G("", !0)
]),
m.value ? (C(), L(Ot, {
key: 0,
"virtual-ref": e.config.customColumnVirtualRef
}, null, 8, ["virtual-ref"])) : G("", !0)
], 64));
}
});
const Vt = /* @__PURE__ */ re(Nt, [["__scopeId", "data-v-e6f0e4da"]]), Yt = /* @__PURE__ */ T({
__name: "pro-table",
props: {
data: null,
height: null,
maxHeight: null,
stripe: { type: Boolean },
border: { type: Boolean },
size: null,
fit: { type: Boolean, default: !0 },
showHeader: { type: Boolean, default: !0 },
highlightCurrentRow: { type: Boolean },
currentRowKey: null,
rowClassName: null,
rowStyle: null,
cellClassName: null,
cellStyle: null,
headerRowClassName: null,
headerRowStyle: null,
headerCellClassName: null,
headerCellStyle: null,
rowKey: null,
emptyText: null,
defaultExpandAll: { type: Boolean },
expandRowKeys: null,
defaultSort: null,
tooltipEffect: null,
tooltipOptions: null,
showSummary: { type: Boolean },
sumText: null,
summaryMethod: null,
spanMethod: null,
selectOnIndeterminate: { type: Boolean, default: !0 },
indent: null,
lazy: { type: Boolean },
load: null,
treeProps: null,
tableLayout: null,
scrollbarAlwaysOn: { type: Boolean },
flexible: { type: Boolean },
showSelectionAlert: { type: Boolean },
customColumnVirtualRef: null,
renderTableType: { default: "el-table" }
},
emits: [
"select",
"select-all",
"selection-change",
"cell-mouse-enter",
"cell-mouse-leave",
"cell-click",
"cell-dblclick",
"cell-contextmenu",
"row-click",
"row-contextmenu",
"row-dblclick",
"header-click",
"header-contextmenu",
"sort-change",
"filter-change",
"current-change",
"header-dragend",
"expand-change"
],
setup(e, { expose: l, emit: t }) {
const n = e;
Je();
const o = $();
Me(() => {
var i;
(i = o.value) == null || i.setTableConfig(n);
});
const u = (...i) => t("select", ...i), r = (...i) => t("select-all", ...i), S = (...i) => t("selection-change", ...i), f = (...i) => t("cell-mouse-enter", ...i), a = (...i) => t("cell-mouse-leave", ...i), v = (...i) => t("cell-click", ...i), m = (...i) => t("cell-dblclick", ...i), _ = (...i) => t("cell-contextmenu", ...i), R = (...i) => t("row-click", ...i), O = (...i) => t("row-contextmenu", ...i), p = (...i) => t("row-dblclick", ...i), b = (...i) => t("header-click", ...i), x = (...i) => t("header-contextmenu", ...i), A = (...i) => t("sort-change", ...i), X = (...i) => t("filter-change", ...i), j = (...i) => t("current-change", ...i), K = (...i) => t("header-dragend", ...i), Y = (...i) => t("expand-change", ...i);
return l({
getRowSelection: () => o.value.getRowSelection(),
clearSelection: () => o.value.clearSelection(),
getSelectionRows: () => o.value.getSelectionRows(),
toggleRowSelection: (i, s) => o.value.toggleRowSelection(i, s),
toggleAllSelection: () => o.value.toggleAllSelection(),
toggleRowExpansion: (i, s) => o.value.toggleRowExpansion(i, s),
setCurrentRow: (i) => o.value.setCurrentRow(i),
clearSort: () => o.value.clearSort(),
clearFilter: (i) => o.value.clearFilter(i),
doLayout: () => o.value.doLayout(),
sort: (i, s) => o.value.sort(i, s),
scrollTo: (i, s) => o.value.scrollTo(i, s),
setScrollTop: (i) => o.value.setScrollTop(i),
setScrollLeft: (i) => o.value.setScrollLeft(i)
}), (i, s) => (C(), L(Vt, {
ref_key: "proTableWrapperRef",
ref: o,
config: n,
onSelect: u,
onSelectAll: r,
onSelectionChange: S,
onCellMouseEnter: f,
onCellMouseLeave: a,
onCellClick: v,
onCellDblclick: m,
onCellContextmenu: _,
onRowClick: R,
onRowContextmenu: O,
onRowDblclick: p,
onHeaderClick: b,
onHeaderContextmenu: x,
onSortChange: A,
onFilterChange: X,
onCurrentChange: j,
onHeaderDragend: K,
onExpandChange: Y
}, {
default: k(() => [
ae(i.$slots, "default")
]),
_: 3
}, 512));
}
}), Zt = /* @__PURE__ */ T({
props: {
type: {
type: String,
default: ""
},
index: {
type: [Number, Function],
default: void 0
},
label: {
type: String,
default: ""
},
columnKey: {
type: String,
default: void 0
},
prop: {
type: String,
required: !0
},
width: {
type: [String, Number],
default: void 0
},
minWidth: {
type: [String, Number],
default: void 0
},
fixed: {
type: [String, Boolean],
default: void 0
},
renderHeader: {
type: Function,
default: void 0
},
sortable: {
type: [Boolean, String],
default: !1
},