@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/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 S, h as C } from "vue";
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 Ve, g as ke, b as Le, i as Fe, r as Me } from "./chunks/feature-registry-BgEOysSJ.js";
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 n = i.getAttribute("field"), t = v.get(i) ?? {};
49
- if (t.renderer = e, v.set(i, t), n) {
50
- const r = w.get(n) ?? {};
51
- r.renderer = e, w.set(n, r);
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 n = i.getAttribute("field"), t = v.get(i) ?? {};
56
- if (t.editor = e, v.set(i, t), n) {
57
- const r = w.get(n) ?? {};
58
- r.editor = e, w.set(n, r);
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 n = i.getAttribute("field");
65
- n && (e = w.get(n)?.renderer);
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 n = i.getAttribute("field");
73
- n && (e = w.get(n)?.editor);
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 n = i;
88
- if ("__name" in n || typeof n.setup == "function") return !0;
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 B(i) {
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 n = { ...e };
126
- return e.columns && (n.columns = e.columns.map((t) => this.processColumn(t))), e.typeDefaults && (n.typeDefaults = this.processTypeDefaults(e.typeDefaults)), n;
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 n = {};
137
- for (const [t, r] of Object.entries(e)) {
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) : B(r.renderer) && (s.renderer = this.createTypeRenderer(
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
- ) : B(r.editor) && (s.editor = this.createTypeEditor(
147
+ ) : V(r.editor) && (s.editor = this.createTypeEditor(
146
148
  r.editor
147
- ))), r.filterPanelRenderer && (s.filterPanelRenderer = this.createFilterPanelRenderer(r.filterPanelRenderer)), n[t] = s;
149
+ ))), r.filterPanelRenderer && (s.filterPanelRenderer = this.createFilterPanelRenderer(r.filterPanelRenderer)), t[n] = s;
148
150
  }
149
- return n;
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 n = { ...e };
161
+ const t = { ...e };
160
162
  if (e.renderer && !e.renderer[E]) {
161
163
  if (G(e.renderer)) {
162
- const t = this.createConfigComponentRenderer(e.renderer);
163
- t[E] = !0, n.renderer = t;
164
- } else if (B(e.renderer)) {
165
- const t = this.createConfigVNodeRenderer(e.renderer);
166
- t[E] = !0, n.renderer = t;
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 t = this.createConfigComponentEditor(e.editor);
172
- t[E] = !0, n.editor = t;
173
- } else if (B(e.editor)) {
174
- const t = this.createConfigVNodeEditor(e.editor);
175
- t[E] = !0, n.editor = t;
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 n;
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 n = /* @__PURE__ */ new WeakMap();
187
- return (t) => {
188
- const r = t.cellEl;
188
+ const t = /* @__PURE__ */ new WeakMap();
189
+ return (n) => {
190
+ const r = n.cellEl;
189
191
  if (r) {
190
- const a = n.get(r);
192
+ const a = t.get(r);
191
193
  if (a)
192
- return a.update(t), a.container;
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 = t;
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), n.set(r, {
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, { ...t });
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 n = /* @__PURE__ */ new WeakMap();
226
- return (t) => {
227
- const r = t.cellEl;
227
+ const t = /* @__PURE__ */ new WeakMap();
228
+ return (n) => {
229
+ const r = n.cellEl;
228
230
  if (r) {
229
- const l = n.get(r);
231
+ const l = t.get(r);
230
232
  if (l)
231
- return l.update(t), l.container;
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 = t;
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), n.set(r, {
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(t);
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 (n) => {
265
- const t = document.createElement("div");
266
- t.className = "vue-cell-editor", t.style.display = "contents";
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, { ...n });
271
+ return k(r, { ...t });
270
272
  }
271
273
  });
272
- return s.mount(t), this.mountedViews.push({ app: s, container: t }), t;
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 (n) => {
282
- const t = document.createElement("div");
283
- t.className = "vue-cell-editor", t.style.display = "contents";
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(n);
288
+ return e(t);
287
289
  }
288
290
  });
289
- return r.mount(t), this.mountedViews.push({ app: r, container: t }), t;
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 n = e.getAttribute("field");
308
- let t = v.get(e);
309
- if (!t && n) {
310
- const d = w.get(n);
311
- d && (d.renderer || d.editor) && (t = d, v.set(e, t));
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 = t?.renderer !== void 0, s = t?.editor !== void 0;
314
- return t !== void 0 && (r || s);
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 n = ce(e);
322
- if (!n)
323
+ const t = ce(e);
324
+ if (!t)
323
325
  return;
324
- const t = /* @__PURE__ */ new WeakMap();
326
+ const n = /* @__PURE__ */ new WeakMap();
325
327
  return (r) => {
326
328
  const s = r.cellEl;
327
329
  if (s) {
328
- const a = t.get(s);
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 n(u);
338
+ return t(u);
337
339
  }
338
340
  });
339
- return g.mount(c), t.set(s, {
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 n(r);
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 n = ue(e);
363
- if (n)
364
- return (t) => {
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(t);
371
+ return t(n);
370
372
  }
371
373
  });
372
- return s.mount(r), this.mountedViews.push({ app: s, container: r }), r;
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 n = e.closest("tbw-grid");
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 r = Q.get(t);
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 n = e.closest("tbw-grid");
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 r = X.get(t);
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 n = this.typeDefaults[e];
460
- if (!n)
461
+ const t = this.typeDefaults[e];
462
+ if (!t)
461
463
  return;
462
- const t = {
463
- editorParams: n.editorParams
464
+ const n = {
465
+ editorParams: t.editorParams
464
466
  };
465
- return n.renderer && (t.renderer = this.createTypeRenderer(n.renderer)), n.editor && (t.editor = this.createTypeEditor(n.editor)), n.filterPanelRenderer && (t.filterPanelRenderer = this.createFilterPanelRenderer(n.filterPanelRenderer)), t;
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 (n) => {
473
- const t = document.createElement("span");
474
- t.style.display = "contents";
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(n);
479
+ return e(t);
478
480
  }
479
481
  });
480
- return r.mount(t), this.mountedViews.push({ app: r, container: t }), t;
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 (n) => {
489
- const t = document.createElement("span");
490
- t.style.display = "contents";
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(n);
495
+ return e(t);
494
496
  }
495
497
  });
496
- return r.mount(t), this.mountedViews.push({ app: r, container: t }), t;
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 (n, t) => {
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(t);
514
+ return e(n);
513
515
  }
514
516
  });
515
- s.mount(r), this.mountedViews.push({ app: s, container: r }), n.appendChild(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: n } of this.mountedViews)
525
+ for (const { app: e, container: t } of this.mountedViews)
524
526
  try {
525
- e.unmount(), n.remove();
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: n }) {
675
- let t = !1, r = null;
698
+ setup(i, { expose: e, emit: t }) {
699
+ let n = !1, r = null;
676
700
  function s() {
677
- return t || (r = new pe(), re.registerAdapter(r), t = !0), r;
701
+ return n || (r = new pe(), re.registerAdapter(r), n = !0), r;
678
702
  }
679
703
  s();
680
- const d = i, l = n, a = R(null);
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(V) {
760
- V && p ? D.call(this, p.processGridConfig(V)) : D.call(this, V);
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 = S(), n = R(null);
855
+ const e = B(), t = R(null);
832
856
  return T(() => {
833
- const t = n.value;
834
- if (!t) return;
857
+ const n = t.value;
858
+ if (!n) return;
835
859
  const r = !!e.cell, s = !!e.editor;
836
- r && le(t, (d) => {
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(t, (d) => {
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
- }), (t, r) => (P(), O("tbw-grid-column", {
885
+ }), (n, r) => (P(), O("tbw-grid-column", {
862
886
  ref_key: "columnRef",
863
- ref: n,
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), n = S();
908
+ const e = R(null), t = B();
885
909
  return T(() => {
886
- const t = e.value;
887
- !t || !n.default || Q.set(t, (r) => n.default?.(r));
888
- }), (t, r) => (P(), O("tbw-grid-detail", {
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), n = S();
922
+ const e = R(null), t = B();
899
923
  return T(() => {
900
- const t = e.value;
901
- !t || !n.default || X.set(t, (r) => n.default?.(r));
902
- }), (t, r) => (P(), O("tbw-grid-responsive-card", {
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, n) => (P(), O("tbw-grid-tool-buttons", null, [
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), n = S();
948
+ const e = R(null), t = B();
925
949
  return T(() => {
926
- const t = e.value;
927
- !t || !n.default || ye.set(t, (r) => n.default?.(r));
928
- }), (t, r) => (P(), O("tbw-grid-tool-panel", {
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, n) {
940
- const t = n ?? F(H, R(null));
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 = t.value;
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 n = e.default?.();
972
- return i.typeDefaults && (n = C(de, { defaults: i.typeDefaults }, () => n)), i.icons && (n = C(se, { icons: i.icons }, () => n)), n;
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
- Ve as clearFeatureRegistry,
1015
+ Se as clearFeatureRegistry,
992
1016
  oe as createPluginFromFeature,
993
1017
  ke as getFeatureFactory,
994
1018
  Le as getRegisteredFeatures,