datatables.net-vue3 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("vue"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("vue"),g=["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 D={name:"Datatables.netVue",inheritAttrs:!1,use(c){m=c}},h=l.defineComponent({...D,props:{ajax:null,columns:null,data:null,options:null},emits:g,setup(c,{expose:f}){const u=c,v=l.ref(null),i={},o=l.ref(),w=l.ref([]);l.watch(()=>u.data,t=>{let e=o.value;if(e){for(var n=Object.keys(i),s=0;s<n.length;s++)delete i[n[s]];e.clear(),e.rows.add(t).draw(!1)}},{deep:!0}),l.onMounted(()=>{var n,s;const t=l.getCurrentInstance();let e=u.options||{};if(u.data&&(e.data=u.data,k(e.data)),u.columns&&(e.columns=u.columns,b(e.columns,t)),u.ajax&&(e.ajax=u.ajax),e.columnDefs||(e.columnDefs=[]),t){let r=Object.keys(t.slots);for(let a=0;a<r.length;a++){let d=r[a];if(d.match(/^column\-/)){let p=d.replace("column-","");e.columnDefs.push({target:p.match(/^\d+$/)?parseInt(p):p+":name",render:"#"+d})}}b(e.columnDefs,t)}if(!m)throw new Error("DataTables library not set. See https://datatables.net/tn/19 for details.");o.value=new m(l.unref(v),e),(n=o.value)!=null&&n.page.info().serverSide&&((s=o.value)==null||s.on("preDraw",function(){let r=Object.keys(i);for(var a=0;a<r.length;a++)delete i[r[a]]}));for(let r of g)o.value&&t&&o.value.on(r,function(){var a=Array.from(arguments),d=a.shift();a.unshift({event:d,dt:o}),a.unshift(r),t.emit.apply(t,a)})}),l.onBeforeUnmount(()=>{var t;(t=o.value)==null||t.destroy(!0)});function k(t){w.value=t.value?t.value.slice():t.slice()}function y(t){return function(e,n,s,r){let a=r.row+","+r.col;if(!i[a]){let d=l.h("div",t({cellData:e,colIndex:r.col,rowData:s,rowIndex:r.row,type:n}));i[a]=document.createElement("div"),l.render(d,i[a])}return i[a]}}function b(t,e){if(e)for(let s=0;s<t.length;s++){let r=t[s];if(typeof r.render=="string"&&r.render.charAt(0)==="#"){var n=r.render.replace("#","");e.slots[n]&&(r.render=y(e.slots[n]))}else if(typeof r.render=="object"&&typeof r.render.display=="string"&&r.render.display.charAt(0)==="#"){var n=r.render.display.replace("#","");e.slots[n]&&(r.render.display=y(e.slots[n]))}}}return f({dt:o}),(t,e)=>e[0]||(l.setBlockTracking(-1),e[0]=l.createElementVNode("div",{class:"datatable"},[l.createElementVNode("table",l.mergeProps({ref_key:"table",ref:v},t.$attrs,{style:{width:"100%"}}),[l.renderSlot(t.$slots,"default")],16)]),l.setBlockTracking(1),e[0])}}),j=(()=>{const c=h;return c.install=f=>{f.component("Datatables.netVue",c)},c})();exports.DataTable=h;exports.default=j;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
const
|
|
1
|
+
import { defineComponent as j, ref as p, watch as x, onMounted as I, getCurrentInstance as A, unref as S, onBeforeUnmount as E, setBlockTracking as h, createElementVNode as g, mergeProps as O, renderSlot as R, h as T, render as _ } from "vue";
|
|
2
|
+
const w = [
|
|
3
3
|
"childRow",
|
|
4
4
|
"column-sizing",
|
|
5
5
|
"column-visibility",
|
|
@@ -45,14 +45,14 @@ const h = [
|
|
|
45
45
|
"user-select",
|
|
46
46
|
"stateRestore-change"
|
|
47
47
|
];
|
|
48
|
-
let
|
|
48
|
+
let m;
|
|
49
49
|
const C = {
|
|
50
50
|
name: "Datatables.netVue",
|
|
51
51
|
inheritAttrs: !1,
|
|
52
|
-
use(
|
|
53
|
-
|
|
52
|
+
use(u) {
|
|
53
|
+
m = u;
|
|
54
54
|
}
|
|
55
|
-
}, L = /* @__PURE__ */
|
|
55
|
+
}, L = /* @__PURE__ */ j({
|
|
56
56
|
...C,
|
|
57
57
|
props: {
|
|
58
58
|
ajax: null,
|
|
@@ -60,103 +60,108 @@ const C = {
|
|
|
60
60
|
data: null,
|
|
61
61
|
options: null
|
|
62
62
|
},
|
|
63
|
-
emits:
|
|
64
|
-
setup(
|
|
65
|
-
const
|
|
63
|
+
emits: w,
|
|
64
|
+
setup(u, { expose: d }) {
|
|
65
|
+
const o = u, y = p(null), i = {}, s = p(), k = p([]);
|
|
66
66
|
x(
|
|
67
|
-
() =>
|
|
67
|
+
() => o.data,
|
|
68
68
|
(t) => {
|
|
69
|
-
let e =
|
|
69
|
+
let e = s.value;
|
|
70
70
|
if (e) {
|
|
71
|
-
for (var n = Object.keys(
|
|
72
|
-
delete
|
|
71
|
+
for (var n = Object.keys(i), l = 0; l < n.length; l++)
|
|
72
|
+
delete i[n[l]];
|
|
73
73
|
e.clear(), e.rows.add(t).draw(!1);
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
{
|
|
77
77
|
deep: !0
|
|
78
78
|
}
|
|
79
|
-
),
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
79
|
+
), I(() => {
|
|
80
|
+
var n, l;
|
|
81
|
+
const t = A();
|
|
82
|
+
let e = o.options || {};
|
|
83
|
+
if (o.data && (e.data = o.data, D(e.data)), o.columns && (e.columns = o.columns, b(e.columns, t)), o.ajax && (e.ajax = o.ajax), e.columnDefs || (e.columnDefs = []), t) {
|
|
84
|
+
let r = Object.keys(t.slots);
|
|
85
|
+
for (let a = 0; a < r.length; a++) {
|
|
86
|
+
let c = r[a];
|
|
87
|
+
if (c.match(/^column\-/)) {
|
|
88
|
+
let f = c.replace("column-", "");
|
|
88
89
|
e.columnDefs.push({
|
|
89
|
-
target:
|
|
90
|
-
render: "#" +
|
|
90
|
+
target: f.match(/^\d+$/) ? parseInt(f) : f + ":name",
|
|
91
|
+
render: "#" + c
|
|
91
92
|
});
|
|
92
93
|
}
|
|
93
94
|
}
|
|
94
|
-
|
|
95
|
+
b(e.columnDefs, t);
|
|
95
96
|
}
|
|
96
|
-
if (!
|
|
97
|
+
if (!m)
|
|
97
98
|
throw new Error(
|
|
98
99
|
"DataTables library not set. See https://datatables.net/tn/19 for details."
|
|
99
100
|
);
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
s.value = new m(S(y), e), (n = s.value) != null && n.page.info().serverSide && ((l = s.value) == null || l.on("preDraw", function() {
|
|
102
|
+
let r = Object.keys(i);
|
|
103
|
+
for (var a = 0; a < r.length; a++)
|
|
104
|
+
delete i[r[a]];
|
|
105
|
+
}));
|
|
106
|
+
for (let r of w)
|
|
107
|
+
s.value && t && s.value.on(r, function() {
|
|
108
|
+
var a = Array.from(arguments), c = a.shift();
|
|
109
|
+
a.unshift({ event: c, dt: s }), a.unshift(r), t.emit.apply(t, a);
|
|
105
110
|
});
|
|
106
111
|
}), E(() => {
|
|
107
112
|
var t;
|
|
108
|
-
(t =
|
|
113
|
+
(t = s.value) == null || t.destroy(!0);
|
|
109
114
|
});
|
|
110
|
-
function
|
|
111
|
-
|
|
115
|
+
function D(t) {
|
|
116
|
+
k.value = t.value ? t.value.slice() : t.slice();
|
|
112
117
|
}
|
|
113
|
-
function
|
|
114
|
-
return function(e, n,
|
|
115
|
-
let
|
|
116
|
-
if (!
|
|
117
|
-
let
|
|
118
|
+
function v(t) {
|
|
119
|
+
return function(e, n, l, r) {
|
|
120
|
+
let a = r.row + "," + r.col;
|
|
121
|
+
if (!i[a]) {
|
|
122
|
+
let c = T("div", t({
|
|
118
123
|
cellData: e,
|
|
119
124
|
colIndex: r.col,
|
|
120
|
-
rowData:
|
|
125
|
+
rowData: l,
|
|
121
126
|
rowIndex: r.row,
|
|
122
127
|
type: n
|
|
123
128
|
}));
|
|
124
|
-
|
|
129
|
+
i[a] = document.createElement("div"), _(c, i[a]);
|
|
125
130
|
}
|
|
126
|
-
return
|
|
131
|
+
return i[a];
|
|
127
132
|
};
|
|
128
133
|
}
|
|
129
|
-
function
|
|
134
|
+
function b(t, e) {
|
|
130
135
|
if (e)
|
|
131
|
-
for (let
|
|
132
|
-
let r = t[
|
|
136
|
+
for (let l = 0; l < t.length; l++) {
|
|
137
|
+
let r = t[l];
|
|
133
138
|
if (typeof r.render == "string" && r.render.charAt(0) === "#") {
|
|
134
139
|
var n = r.render.replace("#", "");
|
|
135
|
-
e.slots[n] && (r.render =
|
|
140
|
+
e.slots[n] && (r.render = v(e.slots[n]));
|
|
136
141
|
} else if (typeof r.render == "object" && typeof r.render.display == "string" && r.render.display.charAt(0) === "#") {
|
|
137
142
|
var n = r.render.display.replace("#", "");
|
|
138
|
-
e.slots[n] && (r.render.display =
|
|
143
|
+
e.slots[n] && (r.render.display = v(e.slots[n]));
|
|
139
144
|
}
|
|
140
145
|
}
|
|
141
146
|
}
|
|
142
|
-
return
|
|
143
|
-
dt:
|
|
144
|
-
}), (t, e) => e[0] || (
|
|
145
|
-
|
|
147
|
+
return d({
|
|
148
|
+
dt: s
|
|
149
|
+
}), (t, e) => e[0] || (h(-1), e[0] = g("div", { class: "datatable" }, [
|
|
150
|
+
g("table", O({
|
|
146
151
|
ref_key: "table",
|
|
147
|
-
ref:
|
|
152
|
+
ref: y
|
|
148
153
|
}, t.$attrs, { style: { width: "100%" } }), [
|
|
149
|
-
|
|
154
|
+
R(t.$slots, "default")
|
|
150
155
|
], 16)
|
|
151
|
-
]),
|
|
156
|
+
]), h(1), e[0]);
|
|
152
157
|
}
|
|
153
|
-
}),
|
|
154
|
-
const
|
|
155
|
-
return
|
|
156
|
-
|
|
157
|
-
},
|
|
158
|
+
}), V = /* @__PURE__ */ (() => {
|
|
159
|
+
const u = L;
|
|
160
|
+
return u.install = (d) => {
|
|
161
|
+
d.component("Datatables.netVue", u);
|
|
162
|
+
}, u;
|
|
158
163
|
})();
|
|
159
164
|
export {
|
|
160
165
|
L as DataTable,
|
|
161
|
-
|
|
166
|
+
V as default
|
|
162
167
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(o,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],n):(o=typeof globalThis<"u"?globalThis:o||self,n((o.datatables=o.datatables||{},o.datatables["net-vue3"]={}),o.Vue))})(this,function(o,n){"use strict";const b=["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 p;const k={name:"Datatables.netVue",inheritAttrs:!1,use(u){p=u}},h=n.defineComponent({...k,props:{ajax:null,columns:null,data:null,options:null},emits:b,setup(u,{expose:m}){const d=u,g=n.ref(null),c={},i=n.ref(),j=n.ref([]);n.watch(()=>d.data,t=>{let e=i.value;if(e){for(var s=Object.keys(c),l=0;l<s.length;l++)delete c[s[l]];e.clear(),e.rows.add(t).draw(!1)}},{deep:!0}),n.onMounted(()=>{var s,l;const t=n.getCurrentInstance();let e=d.options||{};if(d.data&&(e.data=d.data,x(e.data)),d.columns&&(e.columns=d.columns,v(e.columns,t)),d.ajax&&(e.ajax=d.ajax),e.columnDefs||(e.columnDefs=[]),t){let r=Object.keys(t.slots);for(let a=0;a<r.length;a++){let f=r[a];if(f.match(/^column\-/)){let y=f.replace("column-","");e.columnDefs.push({target:y.match(/^\d+$/)?parseInt(y):y+":name",render:"#"+f})}}v(e.columnDefs,t)}if(!p)throw new Error("DataTables library not set. See https://datatables.net/tn/19 for details.");i.value=new p(n.unref(g),e),(s=i.value)!=null&&s.page.info().serverSide&&((l=i.value)==null||l.on("preDraw",function(){let r=Object.keys(c);for(var a=0;a<r.length;a++)delete c[r[a]]}));for(let r of b)i.value&&t&&i.value.on(r,function(){var a=Array.from(arguments),f=a.shift();a.unshift({event:f,dt:i}),a.unshift(r),t.emit.apply(t,a)})}),n.onBeforeUnmount(()=>{var t;(t=i.value)==null||t.destroy(!0)});function x(t){j.value=t.value?t.value.slice():t.slice()}function w(t){return function(e,s,l,r){let a=r.row+","+r.col;if(!c[a]){let f=n.h("div",t({cellData:e,colIndex:r.col,rowData:l,rowIndex:r.row,type:s}));c[a]=document.createElement("div"),n.render(f,c[a])}return c[a]}}function v(t,e){if(e)for(let l=0;l<t.length;l++){let r=t[l];if(typeof r.render=="string"&&r.render.charAt(0)==="#"){var s=r.render.replace("#","");e.slots[s]&&(r.render=w(e.slots[s]))}else if(typeof r.render=="object"&&typeof r.render.display=="string"&&r.render.display.charAt(0)==="#"){var s=r.render.display.replace("#","");e.slots[s]&&(r.render.display=w(e.slots[s]))}}}return m({dt:i}),(t,e)=>e[0]||(n.setBlockTracking(-1),e[0]=n.createElementVNode("div",{class:"datatable"},[n.createElementVNode("table",n.mergeProps({ref_key:"table",ref:g},t.$attrs,{style:{width:"100%"}}),[n.renderSlot(t.$slots,"default")],16)]),n.setBlockTracking(1),e[0])}}),D=(()=>{const u=h;return u.install=m=>{m.component("Datatables.netVue",u)},u})();o.DataTable=h,o.default=D,Object.defineProperties(o,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/package.json
CHANGED
package/src/DataTable.vue
CHANGED
|
@@ -137,6 +137,18 @@ onMounted(() => {
|
|
|
137
137
|
// Create the DataTable!
|
|
138
138
|
dt.value = new DataTablesLib(unref(table), options);
|
|
139
139
|
|
|
140
|
+
// When server-side processing is enabled, the data indexes for rows
|
|
141
|
+
// are reused, so we need to clear out any rendered elements for slots.
|
|
142
|
+
if (dt.value?.page.info().serverSide) {
|
|
143
|
+
dt.value?.on('preDraw', function () {
|
|
144
|
+
let keys = Object.keys(elements);
|
|
145
|
+
|
|
146
|
+
for (var i=0 ; i<keys.length ; i++) {
|
|
147
|
+
delete elements[keys[i]];
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
140
152
|
// Re-export all DataTables events by listening for them using DataTable's
|
|
141
153
|
// `on` method and then emit them to our Vue component
|
|
142
154
|
for (let eName of dtEvents) {
|