@toolbox-web/grid-vue 0.4.0 → 0.4.2
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.
- package/README.md +79 -0
- package/features/pinned-columns.d.ts +1 -1
- package/features/pinned-columns.js.map +1 -1
- package/index.js +166 -142
- package/index.js.map +1 -1
- package/lib/feature-props.d.ts +2 -2
- package/lib/vue-grid-adapter.d.ts +7 -0
- package/lib/vue-grid-adapter.d.ts.map +1 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { defineComponent as y, provide as L, inject as F, createApp as f, createVNode as k, ref as R, computed as ne, onMounted as T, onBeforeUnmount as q, watch as j, createElementBlock as O, openBlock as P, renderSlot as U, useSlots as
|
|
1
|
+
import { defineComponent as y, provide as L, inject as F, createApp as f, createVNode as k, ref as R, computed as ne, onMounted as T, onBeforeUnmount as q, watch as j, createElementBlock as O, openBlock as P, renderSlot as U, useSlots as B, h as C } from "vue";
|
|
2
2
|
import { DataGridElement as re } from "@toolbox-web/grid";
|
|
3
3
|
import { c as oe } from "./chunks/feature-registry-BgEOysSJ.js";
|
|
4
|
-
import { a as
|
|
4
|
+
import { a as Se, g as ke, b as Le, i as Fe, r as Me } from "./chunks/feature-registry-BgEOysSJ.js";
|
|
5
5
|
import { G as H } from "./chunks/use-grid-DwjXrO19.js";
|
|
6
6
|
import { u as Ae } from "./chunks/use-grid-DwjXrO19.js";
|
|
7
7
|
const K = /* @__PURE__ */ Symbol("grid-icons");
|
|
@@ -45,32 +45,32 @@ const de = y({
|
|
|
45
45
|
}
|
|
46
46
|
}), Q = /* @__PURE__ */ new WeakMap(), X = /* @__PURE__ */ new WeakMap(), v = /* @__PURE__ */ new WeakMap(), w = /* @__PURE__ */ new Map();
|
|
47
47
|
function le(i, e) {
|
|
48
|
-
const
|
|
49
|
-
if (
|
|
50
|
-
const r = w.get(
|
|
51
|
-
r.renderer = e, w.set(
|
|
48
|
+
const t = i.getAttribute("field"), n = v.get(i) ?? {};
|
|
49
|
+
if (n.renderer = e, v.set(i, n), t) {
|
|
50
|
+
const r = w.get(t) ?? {};
|
|
51
|
+
r.renderer = e, w.set(t, r);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
function ae(i, e) {
|
|
55
|
-
const
|
|
56
|
-
if (
|
|
57
|
-
const r = w.get(
|
|
58
|
-
r.editor = e, w.set(
|
|
55
|
+
const t = i.getAttribute("field"), n = v.get(i) ?? {};
|
|
56
|
+
if (n.editor = e, v.set(i, n), t) {
|
|
57
|
+
const r = w.get(t) ?? {};
|
|
58
|
+
r.editor = e, w.set(t, r);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
function ce(i) {
|
|
62
62
|
let e = v.get(i)?.renderer;
|
|
63
63
|
if (!e) {
|
|
64
|
-
const
|
|
65
|
-
|
|
64
|
+
const t = i.getAttribute("field");
|
|
65
|
+
t && (e = w.get(t)?.renderer);
|
|
66
66
|
}
|
|
67
67
|
return e;
|
|
68
68
|
}
|
|
69
69
|
function ue(i) {
|
|
70
70
|
let e = v.get(i)?.editor;
|
|
71
71
|
if (!e) {
|
|
72
|
-
const
|
|
73
|
-
|
|
72
|
+
const t = i.getAttribute("field");
|
|
73
|
+
t && (e = w.get(t)?.editor);
|
|
74
74
|
}
|
|
75
75
|
return e;
|
|
76
76
|
}
|
|
@@ -84,17 +84,19 @@ function G(i) {
|
|
|
84
84
|
if (typeof i == "function") {
|
|
85
85
|
const e = Function.prototype.toString.call(i);
|
|
86
86
|
if (e.startsWith("class ") || e.startsWith("class{")) return !0;
|
|
87
|
-
const
|
|
88
|
-
if ("__name" in
|
|
87
|
+
const t = i;
|
|
88
|
+
if ("__name" in t || typeof t.setup == "function") return !0;
|
|
89
89
|
}
|
|
90
90
|
return !1;
|
|
91
91
|
}
|
|
92
|
-
function
|
|
92
|
+
function V(i) {
|
|
93
93
|
return typeof i == "function" && !G(i);
|
|
94
94
|
}
|
|
95
95
|
const E = /* @__PURE__ */ Symbol.for("tbw:vue-processed");
|
|
96
96
|
class fe {
|
|
97
97
|
mountedViews = [];
|
|
98
|
+
/** Editor-specific views tracked separately for per-cell cleanup via releaseCell. */
|
|
99
|
+
editorViews = [];
|
|
98
100
|
typeDefaults = null;
|
|
99
101
|
// #region Config Processing
|
|
100
102
|
/**
|
|
@@ -122,8 +124,8 @@ class fe {
|
|
|
122
124
|
* @returns Processed config with DOM-returning functions
|
|
123
125
|
*/
|
|
124
126
|
processGridConfig(e) {
|
|
125
|
-
const
|
|
126
|
-
return e.columns && (
|
|
127
|
+
const t = { ...e };
|
|
128
|
+
return e.columns && (t.columns = e.columns.map((n) => this.processColumn(n))), e.typeDefaults && (t.typeDefaults = this.processTypeDefaults(e.typeDefaults)), t;
|
|
127
129
|
}
|
|
128
130
|
/**
|
|
129
131
|
* Processes typeDefaults, converting Vue component/VNode references
|
|
@@ -133,20 +135,20 @@ class fe {
|
|
|
133
135
|
* @returns Processed TypeDefault record
|
|
134
136
|
*/
|
|
135
137
|
processTypeDefaults(e) {
|
|
136
|
-
const
|
|
137
|
-
for (const [
|
|
138
|
+
const t = {};
|
|
139
|
+
for (const [n, r] of Object.entries(e)) {
|
|
138
140
|
const s = {
|
|
139
141
|
editorParams: r.editorParams
|
|
140
142
|
};
|
|
141
|
-
r.renderer && (G(r.renderer) ? s.renderer = this.createConfigComponentRenderer(r.renderer) :
|
|
143
|
+
r.renderer && (G(r.renderer) ? s.renderer = this.createConfigComponentRenderer(r.renderer) : V(r.renderer) && (s.renderer = this.createTypeRenderer(
|
|
142
144
|
r.renderer
|
|
143
145
|
))), r.editor && (G(r.editor) ? s.editor = this.createConfigComponentEditor(
|
|
144
146
|
r.editor
|
|
145
|
-
) :
|
|
147
|
+
) : V(r.editor) && (s.editor = this.createTypeEditor(
|
|
146
148
|
r.editor
|
|
147
|
-
))), r.filterPanelRenderer && (s.filterPanelRenderer = this.createFilterPanelRenderer(r.filterPanelRenderer)), n
|
|
149
|
+
))), r.filterPanelRenderer && (s.filterPanelRenderer = this.createFilterPanelRenderer(r.filterPanelRenderer)), t[n] = s;
|
|
148
150
|
}
|
|
149
|
-
return
|
|
151
|
+
return t;
|
|
150
152
|
}
|
|
151
153
|
/**
|
|
152
154
|
* Processes a single column configuration, converting Vue component references
|
|
@@ -156,26 +158,26 @@ class fe {
|
|
|
156
158
|
* @returns Processed ColumnConfig with DOM-returning functions
|
|
157
159
|
*/
|
|
158
160
|
processColumn(e) {
|
|
159
|
-
const
|
|
161
|
+
const t = { ...e };
|
|
160
162
|
if (e.renderer && !e.renderer[E]) {
|
|
161
163
|
if (G(e.renderer)) {
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
} else if (
|
|
165
|
-
const
|
|
166
|
-
|
|
164
|
+
const n = this.createConfigComponentRenderer(e.renderer);
|
|
165
|
+
n[E] = !0, t.renderer = n;
|
|
166
|
+
} else if (V(e.renderer)) {
|
|
167
|
+
const n = this.createConfigVNodeRenderer(e.renderer);
|
|
168
|
+
n[E] = !0, t.renderer = n;
|
|
167
169
|
}
|
|
168
170
|
}
|
|
169
171
|
if (e.editor && !e.editor[E]) {
|
|
170
172
|
if (G(e.editor)) {
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
} else if (
|
|
174
|
-
const
|
|
175
|
-
|
|
173
|
+
const n = this.createConfigComponentEditor(e.editor);
|
|
174
|
+
n[E] = !0, t.editor = n;
|
|
175
|
+
} else if (V(e.editor)) {
|
|
176
|
+
const n = this.createConfigVNodeEditor(e.editor);
|
|
177
|
+
n[E] = !0, t.editor = n;
|
|
176
178
|
}
|
|
177
179
|
}
|
|
178
|
-
return
|
|
180
|
+
return t;
|
|
179
181
|
}
|
|
180
182
|
/**
|
|
181
183
|
* Creates a DOM-returning renderer from a Vue component class.
|
|
@@ -183,22 +185,22 @@ class fe {
|
|
|
183
185
|
* @internal
|
|
184
186
|
*/
|
|
185
187
|
createConfigComponentRenderer(e) {
|
|
186
|
-
const
|
|
187
|
-
return (
|
|
188
|
-
const r =
|
|
188
|
+
const t = /* @__PURE__ */ new WeakMap();
|
|
189
|
+
return (n) => {
|
|
190
|
+
const r = n.cellEl;
|
|
189
191
|
if (r) {
|
|
190
|
-
const a =
|
|
192
|
+
const a = t.get(r);
|
|
191
193
|
if (a)
|
|
192
|
-
return a.update(
|
|
194
|
+
return a.update(n), a.container;
|
|
193
195
|
const c = document.createElement("div");
|
|
194
196
|
c.className = "vue-cell-renderer", c.style.display = "contents";
|
|
195
|
-
let u =
|
|
197
|
+
let u = n;
|
|
196
198
|
const g = e, h = f({
|
|
197
199
|
render() {
|
|
198
200
|
return k(g, { ...u });
|
|
199
201
|
}
|
|
200
202
|
});
|
|
201
|
-
return h.mount(c),
|
|
203
|
+
return h.mount(c), t.set(r, {
|
|
202
204
|
app: h,
|
|
203
205
|
container: c,
|
|
204
206
|
update: (_) => {
|
|
@@ -210,7 +212,7 @@ class fe {
|
|
|
210
212
|
s.className = "vue-cell-renderer", s.style.display = "contents";
|
|
211
213
|
const d = e, l = f({
|
|
212
214
|
render() {
|
|
213
|
-
return k(d, { ...
|
|
215
|
+
return k(d, { ...n });
|
|
214
216
|
}
|
|
215
217
|
});
|
|
216
218
|
return l.mount(s), this.mountedViews.push({ app: l, container: s }), s;
|
|
@@ -222,22 +224,22 @@ class fe {
|
|
|
222
224
|
* @internal
|
|
223
225
|
*/
|
|
224
226
|
createConfigVNodeRenderer(e) {
|
|
225
|
-
const
|
|
226
|
-
return (
|
|
227
|
-
const r =
|
|
227
|
+
const t = /* @__PURE__ */ new WeakMap();
|
|
228
|
+
return (n) => {
|
|
229
|
+
const r = n.cellEl;
|
|
228
230
|
if (r) {
|
|
229
|
-
const l =
|
|
231
|
+
const l = t.get(r);
|
|
230
232
|
if (l)
|
|
231
|
-
return l.update(
|
|
233
|
+
return l.update(n), l.container;
|
|
232
234
|
const a = document.createElement("div");
|
|
233
235
|
a.className = "vue-cell-renderer", a.style.display = "contents";
|
|
234
|
-
let c =
|
|
236
|
+
let c = n;
|
|
235
237
|
const u = f({
|
|
236
238
|
render() {
|
|
237
239
|
return e(c);
|
|
238
240
|
}
|
|
239
241
|
});
|
|
240
|
-
return u.mount(a),
|
|
242
|
+
return u.mount(a), t.set(r, {
|
|
241
243
|
app: u,
|
|
242
244
|
container: a,
|
|
243
245
|
update: (g) => {
|
|
@@ -249,7 +251,7 @@ class fe {
|
|
|
249
251
|
s.className = "vue-cell-renderer", s.style.display = "contents";
|
|
250
252
|
const d = f({
|
|
251
253
|
render() {
|
|
252
|
-
return e(
|
|
254
|
+
return e(n);
|
|
253
255
|
}
|
|
254
256
|
});
|
|
255
257
|
return d.mount(s), this.mountedViews.push({ app: d, container: s }), s;
|
|
@@ -261,15 +263,15 @@ class fe {
|
|
|
261
263
|
* @internal
|
|
262
264
|
*/
|
|
263
265
|
createConfigComponentEditor(e) {
|
|
264
|
-
return (
|
|
265
|
-
const
|
|
266
|
-
|
|
266
|
+
return (t) => {
|
|
267
|
+
const n = document.createElement("div");
|
|
268
|
+
n.className = "vue-cell-editor", n.style.display = "contents";
|
|
267
269
|
const r = e, s = f({
|
|
268
270
|
render() {
|
|
269
|
-
return k(r, { ...
|
|
271
|
+
return k(r, { ...t });
|
|
270
272
|
}
|
|
271
273
|
});
|
|
272
|
-
return s.mount(
|
|
274
|
+
return s.mount(n), this.editorViews.push({ app: s, container: n }), n;
|
|
273
275
|
};
|
|
274
276
|
}
|
|
275
277
|
/**
|
|
@@ -278,15 +280,15 @@ class fe {
|
|
|
278
280
|
* @internal
|
|
279
281
|
*/
|
|
280
282
|
createConfigVNodeEditor(e) {
|
|
281
|
-
return (
|
|
282
|
-
const
|
|
283
|
-
|
|
283
|
+
return (t) => {
|
|
284
|
+
const n = document.createElement("div");
|
|
285
|
+
n.className = "vue-cell-editor", n.style.display = "contents";
|
|
284
286
|
const r = f({
|
|
285
287
|
render() {
|
|
286
|
-
return e(
|
|
288
|
+
return e(t);
|
|
287
289
|
}
|
|
288
290
|
});
|
|
289
|
-
return r.mount(
|
|
291
|
+
return r.mount(n), this.editorViews.push({ app: r, container: n }), n;
|
|
290
292
|
};
|
|
291
293
|
}
|
|
292
294
|
// #endregion
|
|
@@ -304,28 +306,28 @@ class fe {
|
|
|
304
306
|
* Checks if a renderer or editor is registered for this element.
|
|
305
307
|
*/
|
|
306
308
|
canHandle(e) {
|
|
307
|
-
const
|
|
308
|
-
let
|
|
309
|
-
if (!
|
|
310
|
-
const d = w.get(
|
|
311
|
-
d && (d.renderer || d.editor) && (
|
|
309
|
+
const t = e.getAttribute("field");
|
|
310
|
+
let n = v.get(e);
|
|
311
|
+
if (!n && t) {
|
|
312
|
+
const d = w.get(t);
|
|
313
|
+
d && (d.renderer || d.editor) && (n = d, v.set(e, n));
|
|
312
314
|
}
|
|
313
|
-
const r =
|
|
314
|
-
return
|
|
315
|
+
const r = n?.renderer !== void 0, s = n?.editor !== void 0;
|
|
316
|
+
return n !== void 0 && (r || s);
|
|
315
317
|
}
|
|
316
318
|
/**
|
|
317
319
|
* Creates a view renderer function that renders a Vue component
|
|
318
320
|
* and returns its container DOM element.
|
|
319
321
|
*/
|
|
320
322
|
createRenderer(e) {
|
|
321
|
-
const
|
|
322
|
-
if (!
|
|
323
|
+
const t = ce(e);
|
|
324
|
+
if (!t)
|
|
323
325
|
return;
|
|
324
|
-
const
|
|
326
|
+
const n = /* @__PURE__ */ new WeakMap();
|
|
325
327
|
return (r) => {
|
|
326
328
|
const s = r.cellEl;
|
|
327
329
|
if (s) {
|
|
328
|
-
const a =
|
|
330
|
+
const a = n.get(s);
|
|
329
331
|
if (a)
|
|
330
332
|
return a.update(r), a.container;
|
|
331
333
|
const c = document.createElement("div");
|
|
@@ -333,10 +335,10 @@ class fe {
|
|
|
333
335
|
let u = r;
|
|
334
336
|
const g = f({
|
|
335
337
|
render() {
|
|
336
|
-
return
|
|
338
|
+
return t(u);
|
|
337
339
|
}
|
|
338
340
|
});
|
|
339
|
-
return g.mount(c),
|
|
341
|
+
return g.mount(c), n.set(s, {
|
|
340
342
|
app: g,
|
|
341
343
|
container: c,
|
|
342
344
|
update: (h) => {
|
|
@@ -348,7 +350,7 @@ class fe {
|
|
|
348
350
|
d.className = "vue-cell-renderer", d.style.display = "contents";
|
|
349
351
|
const l = f({
|
|
350
352
|
render() {
|
|
351
|
-
return
|
|
353
|
+
return t(r);
|
|
352
354
|
}
|
|
353
355
|
});
|
|
354
356
|
return l.mount(d), this.mountedViews.push({ app: l, container: d }), d;
|
|
@@ -359,17 +361,17 @@ class fe {
|
|
|
359
361
|
* Returns a function that creates the editor DOM element.
|
|
360
362
|
*/
|
|
361
363
|
createEditor(e) {
|
|
362
|
-
const
|
|
363
|
-
if (
|
|
364
|
-
return (
|
|
364
|
+
const t = ue(e);
|
|
365
|
+
if (t)
|
|
366
|
+
return (n) => {
|
|
365
367
|
const r = document.createElement("div");
|
|
366
368
|
r.className = "vue-cell-editor", r.style.display = "contents";
|
|
367
369
|
const s = f({
|
|
368
370
|
render() {
|
|
369
|
-
return n
|
|
371
|
+
return t(n);
|
|
370
372
|
}
|
|
371
373
|
});
|
|
372
|
-
return s.mount(r), this.
|
|
374
|
+
return s.mount(r), this.editorViews.push({ app: s, container: r }), r;
|
|
373
375
|
};
|
|
374
376
|
}
|
|
375
377
|
/**
|
|
@@ -377,11 +379,11 @@ class fe {
|
|
|
377
379
|
* Parses the <tbw-grid-detail> element and returns a Vue-based renderer.
|
|
378
380
|
*/
|
|
379
381
|
parseDetailElement(e) {
|
|
380
|
-
const
|
|
381
|
-
if (!n) return;
|
|
382
|
-
const t = n.querySelector("tbw-grid-detail");
|
|
382
|
+
const t = e.closest("tbw-grid");
|
|
383
383
|
if (!t) return;
|
|
384
|
-
const
|
|
384
|
+
const n = t.querySelector("tbw-grid-detail");
|
|
385
|
+
if (!n) return;
|
|
386
|
+
const r = Q.get(n);
|
|
385
387
|
if (r)
|
|
386
388
|
return (s, d) => {
|
|
387
389
|
const l = document.createElement("div");
|
|
@@ -403,11 +405,11 @@ class fe {
|
|
|
403
405
|
* Parses the <tbw-grid-responsive-card> element and returns a Vue-based renderer.
|
|
404
406
|
*/
|
|
405
407
|
parseResponsiveCardElement(e) {
|
|
406
|
-
const
|
|
407
|
-
if (!n) return;
|
|
408
|
-
const t = n.querySelector("tbw-grid-responsive-card");
|
|
408
|
+
const t = e.closest("tbw-grid");
|
|
409
409
|
if (!t) return;
|
|
410
|
-
const
|
|
410
|
+
const n = t.querySelector("tbw-grid-responsive-card");
|
|
411
|
+
if (!n) return;
|
|
412
|
+
const r = X.get(n);
|
|
411
413
|
if (r)
|
|
412
414
|
return (s, d) => {
|
|
413
415
|
const l = document.createElement("div");
|
|
@@ -456,28 +458,28 @@ class fe {
|
|
|
456
458
|
getTypeDefault(e) {
|
|
457
459
|
if (!this.typeDefaults)
|
|
458
460
|
return;
|
|
459
|
-
const
|
|
460
|
-
if (!
|
|
461
|
+
const t = this.typeDefaults[e];
|
|
462
|
+
if (!t)
|
|
461
463
|
return;
|
|
462
|
-
const
|
|
463
|
-
editorParams:
|
|
464
|
+
const n = {
|
|
465
|
+
editorParams: t.editorParams
|
|
464
466
|
};
|
|
465
|
-
return
|
|
467
|
+
return t.renderer && (n.renderer = this.createTypeRenderer(t.renderer)), t.editor && (n.editor = this.createTypeEditor(t.editor)), t.filterPanelRenderer && (n.filterPanelRenderer = this.createFilterPanelRenderer(t.filterPanelRenderer)), n;
|
|
466
468
|
}
|
|
467
469
|
/**
|
|
468
470
|
* Creates a renderer function from a Vue render function for type defaults.
|
|
469
471
|
* @internal
|
|
470
472
|
*/
|
|
471
473
|
createTypeRenderer(e) {
|
|
472
|
-
return (
|
|
473
|
-
const
|
|
474
|
-
|
|
474
|
+
return (t) => {
|
|
475
|
+
const n = document.createElement("span");
|
|
476
|
+
n.style.display = "contents";
|
|
475
477
|
const r = f({
|
|
476
478
|
render() {
|
|
477
|
-
return e(
|
|
479
|
+
return e(t);
|
|
478
480
|
}
|
|
479
481
|
});
|
|
480
|
-
return r.mount(
|
|
482
|
+
return r.mount(n), this.mountedViews.push({ app: r, container: n }), n;
|
|
481
483
|
};
|
|
482
484
|
}
|
|
483
485
|
/**
|
|
@@ -485,15 +487,15 @@ class fe {
|
|
|
485
487
|
* @internal
|
|
486
488
|
*/
|
|
487
489
|
createTypeEditor(e) {
|
|
488
|
-
return (
|
|
489
|
-
const
|
|
490
|
-
|
|
490
|
+
return (t) => {
|
|
491
|
+
const n = document.createElement("span");
|
|
492
|
+
n.style.display = "contents";
|
|
491
493
|
const r = f({
|
|
492
494
|
render() {
|
|
493
|
-
return e(
|
|
495
|
+
return e(t);
|
|
494
496
|
}
|
|
495
497
|
});
|
|
496
|
-
return r.mount(
|
|
498
|
+
return r.mount(n), this.editorViews.push({ app: r, container: n }), n;
|
|
497
499
|
};
|
|
498
500
|
}
|
|
499
501
|
/**
|
|
@@ -504,15 +506,15 @@ class fe {
|
|
|
504
506
|
* @internal
|
|
505
507
|
*/
|
|
506
508
|
createFilterPanelRenderer(e) {
|
|
507
|
-
return (
|
|
509
|
+
return (t, n) => {
|
|
508
510
|
const r = document.createElement("div");
|
|
509
511
|
r.style.display = "contents";
|
|
510
512
|
const s = f({
|
|
511
513
|
render() {
|
|
512
|
-
return e(
|
|
514
|
+
return e(n);
|
|
513
515
|
}
|
|
514
516
|
});
|
|
515
|
-
s.mount(r), this.mountedViews.push({ app: s, container: r }),
|
|
517
|
+
s.mount(r), this.mountedViews.push({ app: s, container: r }), t.appendChild(r);
|
|
516
518
|
};
|
|
517
519
|
}
|
|
518
520
|
// #endregion
|
|
@@ -520,12 +522,34 @@ class fe {
|
|
|
520
522
|
* Cleanup all mounted Vue apps.
|
|
521
523
|
*/
|
|
522
524
|
cleanup() {
|
|
523
|
-
for (const { app: e, container:
|
|
525
|
+
for (const { app: e, container: t } of this.mountedViews)
|
|
524
526
|
try {
|
|
525
|
-
e.unmount(),
|
|
527
|
+
e.unmount(), t.remove();
|
|
526
528
|
} catch {
|
|
527
529
|
}
|
|
528
530
|
this.mountedViews = [];
|
|
531
|
+
for (const { app: e, container: t } of this.editorViews)
|
|
532
|
+
try {
|
|
533
|
+
e.unmount(), t.remove();
|
|
534
|
+
} catch {
|
|
535
|
+
}
|
|
536
|
+
this.editorViews = [];
|
|
537
|
+
}
|
|
538
|
+
/**
|
|
539
|
+
* Called when a cell's content is about to be wiped.
|
|
540
|
+
* Destroys editor Vue apps whose container is inside the cell.
|
|
541
|
+
*/
|
|
542
|
+
releaseCell(e) {
|
|
543
|
+
for (let t = this.editorViews.length - 1; t >= 0; t--) {
|
|
544
|
+
const { app: n, container: r } = this.editorViews[t];
|
|
545
|
+
if (e.contains(r)) {
|
|
546
|
+
try {
|
|
547
|
+
n.unmount(), r.remove();
|
|
548
|
+
} catch {
|
|
549
|
+
}
|
|
550
|
+
this.editorViews.splice(t, 1);
|
|
551
|
+
}
|
|
552
|
+
}
|
|
529
553
|
}
|
|
530
554
|
}
|
|
531
555
|
const pe = fe, Re = /* @__PURE__ */ y({
|
|
@@ -671,13 +695,13 @@ const pe = fe, Re = /* @__PURE__ */ y({
|
|
|
671
695
|
}
|
|
672
696
|
},
|
|
673
697
|
emits: ["cell-commit", "row-commit", "cell-click", "cell-dblclick", "selection-change", "row-toggle", "sort-change", "ready"],
|
|
674
|
-
setup(i, { expose: e, emit:
|
|
675
|
-
let
|
|
698
|
+
setup(i, { expose: e, emit: t }) {
|
|
699
|
+
let n = !1, r = null;
|
|
676
700
|
function s() {
|
|
677
|
-
return
|
|
701
|
+
return n || (r = new pe(), re.registerAdapter(r), n = !0), r;
|
|
678
702
|
}
|
|
679
703
|
s();
|
|
680
|
-
const d = i, l =
|
|
704
|
+
const d = i, l = t, a = R(null);
|
|
681
705
|
L(H, a);
|
|
682
706
|
const c = J(), u = ie(), g = [
|
|
683
707
|
"selection",
|
|
@@ -756,8 +780,8 @@ const pe = fe, Re = /* @__PURE__ */ y({
|
|
|
756
780
|
get() {
|
|
757
781
|
return te.call(this);
|
|
758
782
|
},
|
|
759
|
-
set(
|
|
760
|
-
|
|
783
|
+
set(S) {
|
|
784
|
+
S && p ? D.call(this, p.processGridConfig(S)) : D.call(this, S);
|
|
761
785
|
},
|
|
762
786
|
configurable: !0
|
|
763
787
|
});
|
|
@@ -828,12 +852,12 @@ const pe = fe, Re = /* @__PURE__ */ y({
|
|
|
828
852
|
hidden: { type: Boolean }
|
|
829
853
|
},
|
|
830
854
|
setup(i) {
|
|
831
|
-
const e =
|
|
855
|
+
const e = B(), t = R(null);
|
|
832
856
|
return T(() => {
|
|
833
|
-
const
|
|
834
|
-
if (!
|
|
857
|
+
const n = t.value;
|
|
858
|
+
if (!n) return;
|
|
835
859
|
const r = !!e.cell, s = !!e.editor;
|
|
836
|
-
r && le(
|
|
860
|
+
r && le(n, (d) => {
|
|
837
861
|
const l = e.cell;
|
|
838
862
|
if (!l) return C("span");
|
|
839
863
|
const a = l({
|
|
@@ -842,7 +866,7 @@ const pe = fe, Re = /* @__PURE__ */ y({
|
|
|
842
866
|
column: d.column
|
|
843
867
|
});
|
|
844
868
|
return C("div", { style: "display: contents" }, a);
|
|
845
|
-
}), s && ae(
|
|
869
|
+
}), s && ae(n, (d) => {
|
|
846
870
|
const l = e.editor;
|
|
847
871
|
if (!l) return C("span");
|
|
848
872
|
const a = l({
|
|
@@ -858,9 +882,9 @@ const pe = fe, Re = /* @__PURE__ */ y({
|
|
|
858
882
|
});
|
|
859
883
|
return C("div", { style: "display: contents" }, a);
|
|
860
884
|
});
|
|
861
|
-
}), (
|
|
885
|
+
}), (n, r) => (P(), O("tbw-grid-column", {
|
|
862
886
|
ref_key: "columnRef",
|
|
863
|
-
ref:
|
|
887
|
+
ref: t,
|
|
864
888
|
field: i.field,
|
|
865
889
|
header: i.header,
|
|
866
890
|
width: i.width,
|
|
@@ -881,11 +905,11 @@ const pe = fe, Re = /* @__PURE__ */ y({
|
|
|
881
905
|
animation: { type: [String, Boolean], default: "slide" }
|
|
882
906
|
},
|
|
883
907
|
setup(i) {
|
|
884
|
-
const e = R(null),
|
|
908
|
+
const e = R(null), t = B();
|
|
885
909
|
return T(() => {
|
|
886
|
-
const
|
|
887
|
-
!
|
|
888
|
-
}), (
|
|
910
|
+
const n = e.value;
|
|
911
|
+
!n || !t.default || Q.set(n, (r) => t.default?.(r));
|
|
912
|
+
}), (n, r) => (P(), O("tbw-grid-detail", {
|
|
889
913
|
ref_key: "detailRef",
|
|
890
914
|
ref: e,
|
|
891
915
|
"show-expand-column": i.showExpandColumn,
|
|
@@ -895,11 +919,11 @@ const pe = fe, Re = /* @__PURE__ */ y({
|
|
|
895
919
|
}), Pe = /* @__PURE__ */ y({
|
|
896
920
|
__name: "TbwGridResponsiveCard",
|
|
897
921
|
setup(i) {
|
|
898
|
-
const e = R(null),
|
|
922
|
+
const e = R(null), t = B();
|
|
899
923
|
return T(() => {
|
|
900
|
-
const
|
|
901
|
-
!
|
|
902
|
-
}), (
|
|
924
|
+
const n = e.value;
|
|
925
|
+
!n || !t.default || X.set(n, (r) => t.default?.(r));
|
|
926
|
+
}), (n, r) => (P(), O("tbw-grid-responsive-card", {
|
|
903
927
|
ref_key: "cardRef",
|
|
904
928
|
ref: e
|
|
905
929
|
}, null, 512));
|
|
@@ -907,7 +931,7 @@ const pe = fe, Re = /* @__PURE__ */ y({
|
|
|
907
931
|
}), _e = /* @__PURE__ */ y({
|
|
908
932
|
__name: "TbwGridToolButtons",
|
|
909
933
|
setup(i) {
|
|
910
|
-
return (e,
|
|
934
|
+
return (e, t) => (P(), O("tbw-grid-tool-buttons", null, [
|
|
911
935
|
U(e.$slots, "default")
|
|
912
936
|
]));
|
|
913
937
|
}
|
|
@@ -921,11 +945,11 @@ const pe = fe, Re = /* @__PURE__ */ y({
|
|
|
921
945
|
width: { default: "250px" }
|
|
922
946
|
},
|
|
923
947
|
setup(i) {
|
|
924
|
-
const e = R(null),
|
|
948
|
+
const e = R(null), t = B();
|
|
925
949
|
return T(() => {
|
|
926
|
-
const
|
|
927
|
-
!
|
|
928
|
-
}), (
|
|
950
|
+
const n = e.value;
|
|
951
|
+
!n || !t.default || ye.set(n, (r) => t.default?.(r));
|
|
952
|
+
}), (n, r) => (P(), O("tbw-grid-tool-panel", {
|
|
929
953
|
ref_key: "panelRef",
|
|
930
954
|
ref: e,
|
|
931
955
|
id: i.id,
|
|
@@ -936,11 +960,11 @@ const pe = fe, Re = /* @__PURE__ */ y({
|
|
|
936
960
|
}, null, 8, ve));
|
|
937
961
|
}
|
|
938
962
|
});
|
|
939
|
-
function Ge(i, e,
|
|
940
|
-
const
|
|
963
|
+
function Ge(i, e, t) {
|
|
964
|
+
const n = t ?? F(H, R(null));
|
|
941
965
|
let r = null;
|
|
942
966
|
T(() => {
|
|
943
|
-
const s =
|
|
967
|
+
const s = n.value;
|
|
944
968
|
if (!s) return;
|
|
945
969
|
const d = e;
|
|
946
970
|
s.addEventListener(i, d), r = () => s.removeEventListener(i, d);
|
|
@@ -968,8 +992,8 @@ const je = y({
|
|
|
968
992
|
},
|
|
969
993
|
setup(i, { slots: e }) {
|
|
970
994
|
return () => {
|
|
971
|
-
let
|
|
972
|
-
return i.typeDefaults && (
|
|
995
|
+
let t = e.default?.();
|
|
996
|
+
return i.typeDefaults && (t = C(de, { defaults: i.typeDefaults }, () => t)), i.icons && (t = C(se, { icons: i.icons }, () => t)), t;
|
|
973
997
|
};
|
|
974
998
|
}
|
|
975
999
|
});
|
|
@@ -988,7 +1012,7 @@ export {
|
|
|
988
1012
|
_e as TbwGridToolButtons,
|
|
989
1013
|
De as TbwGridToolPanel,
|
|
990
1014
|
pe as VueGridAdapter,
|
|
991
|
-
|
|
1015
|
+
Se as clearFeatureRegistry,
|
|
992
1016
|
oe as createPluginFromFeature,
|
|
993
1017
|
ke as getFeatureFactory,
|
|
994
1018
|
Le as getRegisteredFeatures,
|