PSTW_CentralizeSystem/wwwroot/lib/Vue-Datatables/datatables.net-vue3.mjs
2026-03-06 14:39:09 +08:00

167 lines
4.3 KiB
JavaScript

import { defineComponent as x, ref as p, watch as j, onMounted as I, getCurrentInstance as A, unref as E, onBeforeUnmount as O, setBlockTracking as h, createElementVNode as g, mergeProps as T, renderSlot as R, h as S, render as _ } from "vue";
const w = [
"childRow",
"column-sizing",
"column-visibility",
"destroy",
"draw",
"error",
"init",
"length",
"order",
"page",
"preDraw",
"preInit",
"preXhr",
"processing",
"requestChild",
"search",
"stateLoadParams",
"stateLoaded",
"stateSaveParams",
"xhr",
"autoFill",
"preAutoFill",
"buttons-action",
"buttons-processing",
"column-reorder",
"key",
"key-blur",
"key-focus",
"key-refocus",
"key-return-submit",
"responsive-display",
"responsive-resize",
"rowgroup-datasrc",
"pre-row-reorder",
"row-reorder",
"row-reordered",
"dtsb-inserted",
"deselect",
"select",
"select-blur",
"selectItems",
"selectStyle",
"user-select",
"stateRestore-change"
];
let m;
const C = {
name: "Datatables.netVue",
inheritAttrs: !1,
use(i) {
m = i;
}
}, L = /* @__PURE__ */ x({
...C,
props: {
ajax: null,
columns: null,
data: null,
options: null
},
emits: w,
setup(i, { expose: c }) {
const o = i, y = p(null), u = {}, l = p(), D = p([]);
j(
() => o.data,
(t) => {
let e = l.value;
e && (f(e), e.clear(), e.rows.add(t).draw(!1));
},
{
deep: !0
}
), I(() => {
var a;
const t = A();
let e = Object.assign({}, o.options) || {};
if (o.data && (e.data = o.data, k(e.data)), o.columns && (e.columns = o.columns), e.columns && v(e.columns, t), o.ajax && (e.ajax = o.ajax), e.columnDefs || (e.columnDefs = []), t) {
let n = Object.keys(t.slots);
for (let r = 0; r < n.length; r++) {
let s = n[r];
if (s.match(/^column\-/)) {
let d = s.replace("column-", "");
e.columnDefs.push({
target: d.match(/^\d+$/) ? parseInt(d) : d + ":name",
render: "#" + s
});
}
}
v(e.columnDefs, t);
}
if (!m)
throw new Error(
"DataTables library not set. See https://datatables.net/tn/19 for details."
);
l.value = new m(E(y), e), (a = l.value) == null || a.on("preXhr", function() {
f(l.value);
});
for (let n of w)
l.value && t && l.value.on(n, function() {
var r = Array.from(arguments), s = r.shift();
r.unshift({ event: s, dt: l }), r.unshift(n), t.emit.apply(t, r);
});
}), O(() => {
var t;
f(l.value), (t = l.value) == null || t.destroy(!0);
});
function k(t) {
D.value = t.value ? t.value.slice() : t.slice();
}
function b(t) {
return function(e, a, n, r) {
let s = r.settings.sTableId + "," + r.row + "," + r.col;
if (!u[s]) {
let d = S("div", t({
cellData: e,
colIndex: r.col,
rowData: n,
rowIndex: r.row,
type: a
}));
u[s] = document.createElement("div"), _(d, u[s]);
}
return u[s];
};
}
function v(t, e) {
if (e)
for (let n = 0; n < t.length; n++) {
let r = t[n];
if (typeof r.render == "string" && r.render.charAt(0) === "#") {
var a = r.render.replace("#", "");
e.slots[a] && (r.render = b(e.slots[a]));
} else if (typeof r.render == "object" && typeof r.render.display == "string" && r.render.display.charAt(0) === "#") {
var a = r.render.display.replace("#", "");
e.slots[a] && (r.render.display = b(e.slots[a]));
}
}
}
function f(t) {
let e = Object.keys(u), a = t.table().node().id;
for (var n = 0; n < e.length; n++)
e[n].indexOf(a + ",") === 0 && delete u[e[n]];
}
return c({
dt: l
}), (t, e) => e[0] || (h(-1), e[0] = g("div", { class: "datatable" }, [
g("table", T({
ref_key: "table",
ref: y
}, t.$attrs, { style: { width: "100%" } }), [
R(t.$slots, "default")
], 16)
]), h(1), e[0]);
}
}), V = /* @__PURE__ */ (() => {
const i = L;
return i.install = (c) => {
c.component("Datatables.netVue", i);
}, i;
})();
export {
L as DataTable,
V as default
};