@toolbox-web/grid 1.9.1 → 1.10.0

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.
Files changed (76) hide show
  1. package/all.js +1082 -975
  2. package/all.js.map +1 -1
  3. package/index.js +350 -324
  4. package/index.js.map +1 -1
  5. package/lib/core/grid.d.ts +40 -1
  6. package/lib/core/grid.d.ts.map +1 -1
  7. package/lib/core/plugin/base-plugin.d.ts +11 -0
  8. package/lib/core/plugin/base-plugin.d.ts.map +1 -1
  9. package/lib/core/types.d.ts +0 -64
  10. package/lib/core/types.d.ts.map +1 -1
  11. package/lib/plugins/clipboard/index.js +9 -0
  12. package/lib/plugins/clipboard/index.js.map +1 -1
  13. package/lib/plugins/column-virtualization/ColumnVirtualizationPlugin.d.ts +3 -0
  14. package/lib/plugins/column-virtualization/ColumnVirtualizationPlugin.d.ts.map +1 -1
  15. package/lib/plugins/column-virtualization/index.js +90 -57
  16. package/lib/plugins/column-virtualization/index.js.map +1 -1
  17. package/lib/plugins/context-menu/index.js +9 -0
  18. package/lib/plugins/context-menu/index.js.map +1 -1
  19. package/lib/plugins/editing/EditingPlugin.d.ts +69 -0
  20. package/lib/plugins/editing/EditingPlugin.d.ts.map +1 -1
  21. package/lib/plugins/editing/editors.d.ts.map +1 -1
  22. package/lib/plugins/editing/index.d.ts +1 -1
  23. package/lib/plugins/editing/index.d.ts.map +1 -1
  24. package/lib/plugins/editing/index.js +435 -293
  25. package/lib/plugins/editing/index.js.map +1 -1
  26. package/lib/plugins/editing/types.d.ts +117 -1
  27. package/lib/plugins/editing/types.d.ts.map +1 -1
  28. package/lib/plugins/export/index.js +38 -29
  29. package/lib/plugins/export/index.js.map +1 -1
  30. package/lib/plugins/filtering/index.js +14 -5
  31. package/lib/plugins/filtering/index.js.map +1 -1
  32. package/lib/plugins/grouping-columns/index.js +9 -0
  33. package/lib/plugins/grouping-columns/index.js.map +1 -1
  34. package/lib/plugins/grouping-rows/index.js +63 -54
  35. package/lib/plugins/grouping-rows/index.js.map +1 -1
  36. package/lib/plugins/master-detail/index.js +25 -16
  37. package/lib/plugins/master-detail/index.js.map +1 -1
  38. package/lib/plugins/multi-sort/index.js +13 -4
  39. package/lib/plugins/multi-sort/index.js.map +1 -1
  40. package/lib/plugins/pinned-columns/index.js +13 -4
  41. package/lib/plugins/pinned-columns/index.js.map +1 -1
  42. package/lib/plugins/pinned-rows/index.js +16 -7
  43. package/lib/plugins/pinned-rows/index.js.map +1 -1
  44. package/lib/plugins/pivot/index.js +13 -4
  45. package/lib/plugins/pivot/index.js.map +1 -1
  46. package/lib/plugins/print/index.js +9 -0
  47. package/lib/plugins/print/index.js.map +1 -1
  48. package/lib/plugins/reorder/index.js +13 -4
  49. package/lib/plugins/reorder/index.js.map +1 -1
  50. package/lib/plugins/responsive/index.js +42 -33
  51. package/lib/plugins/responsive/index.js.map +1 -1
  52. package/lib/plugins/row-reorder/index.js +9 -0
  53. package/lib/plugins/row-reorder/index.js.map +1 -1
  54. package/lib/plugins/selection/index.js +9 -0
  55. package/lib/plugins/selection/index.js.map +1 -1
  56. package/lib/plugins/server-side/index.js +29 -20
  57. package/lib/plugins/server-side/index.js.map +1 -1
  58. package/lib/plugins/tree/index.js +20 -11
  59. package/lib/plugins/tree/index.js.map +1 -1
  60. package/lib/plugins/undo-redo/index.js +15 -6
  61. package/lib/plugins/undo-redo/index.js.map +1 -1
  62. package/lib/plugins/visibility/index.js +9 -0
  63. package/lib/plugins/visibility/index.js.map +1 -1
  64. package/package.json +1 -1
  65. package/public.d.ts +1 -1
  66. package/public.d.ts.map +1 -1
  67. package/umd/grid.all.umd.js +20 -20
  68. package/umd/grid.all.umd.js.map +1 -1
  69. package/umd/grid.umd.js +14 -14
  70. package/umd/grid.umd.js.map +1 -1
  71. package/umd/plugins/column-virtualization.umd.js +1 -1
  72. package/umd/plugins/column-virtualization.umd.js.map +1 -1
  73. package/umd/plugins/editing.umd.js +1 -1
  74. package/umd/plugins/editing.umd.js.map +1 -1
  75. package/umd/plugins/pinned-rows.umd.js +1 -1
  76. package/umd/plugins/pinned-rows.umd.js.map +1 -1
@@ -1,4 +1,4 @@
1
- const b = '<svg viewBox="0 0 16 16" width="12" height="12"><path fill="currentColor" d="M6 10.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"/></svg>', A = {
1
+ const b = '<svg viewBox="0 0 16 16" width="12" height="12"><path fill="currentColor" d="M6 10.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z"/></svg>', R = {
2
2
  expand: "▶",
3
3
  collapse: "▼",
4
4
  sortAsc: "▲",
@@ -11,7 +11,7 @@ const b = '<svg viewBox="0 0 16 16" width="12" height="12"><path fill="currentCo
11
11
  filterActive: b,
12
12
  print: "🖨️"
13
13
  };
14
- class R {
14
+ class A {
15
15
  /**
16
16
  * Plugin dependencies - declare other plugins this one requires.
17
17
  *
@@ -208,10 +208,19 @@ class R {
208
208
  }
209
209
  /**
210
210
  * Request a re-render of the grid.
211
+ * Uses ROWS phase - does NOT trigger processColumns hooks.
211
212
  */
212
213
  requestRender() {
213
214
  this.grid?.requestRender?.();
214
215
  }
216
+ /**
217
+ * Request a columns re-render of the grid.
218
+ * Uses COLUMNS phase - triggers processColumns hooks.
219
+ * Use this when your plugin needs to reprocess column configuration.
220
+ */
221
+ requestColumnsRender() {
222
+ this.grid?.requestColumnsRender?.();
223
+ }
215
224
  /**
216
225
  * Request a re-render and restore focus styling afterward.
217
226
  * Use this when a plugin action (like expand/collapse) triggers a render
@@ -292,7 +301,7 @@ class R {
292
301
  */
293
302
  get gridIcons() {
294
303
  const t = this.grid?.gridConfig?.icons ?? {};
295
- return { ...A, ...t };
304
+ return { ...R, ...t };
296
305
  }
297
306
  // #region Animation Helpers
298
307
  /**
@@ -515,7 +524,7 @@ function E(n, t, e, o, r) {
515
524
  };
516
525
  }
517
526
  const B = "@layer tbw-plugins{.tbw-footer{flex-shrink:0;z-index:var(--tbw-z-layer-pinned-rows, 20);background:var(--tbw-color-panel-bg)}.tbw-pinned-rows{display:flex;align-items:center;justify-content:space-between;padding:var(--tbw-button-padding, var(--tbw-spacing-md, .5rem) var(--tbw-spacing-lg, .75rem));background:var(--tbw-pinned-rows-bg, var(--tbw-color-panel-bg));border-top:1px solid var(--tbw-pinned-rows-border, var(--tbw-color-border));font-size:var(--tbw-font-size-xs, .75rem);color:var(--tbw-pinned-rows-color, var(--tbw-color-fg-muted));min-height:32px;box-sizing:border-box;min-width:fit-content}.tbw-pinned-rows-left,.tbw-pinned-rows-center,.tbw-pinned-rows-right{display:flex;align-items:center;gap:var(--tbw-spacing-xl, 1rem)}.tbw-pinned-rows-left{justify-content:flex-start}.tbw-pinned-rows-center{justify-content:center;flex:1}.tbw-pinned-rows-right{justify-content:flex-end}.tbw-status-panel{white-space:nowrap}.tbw-aggregation-rows{min-width:fit-content;background:var(--tbw-aggregation-bg, var(--tbw-color-header-bg))}.tbw-aggregation-rows-top{border-bottom:1px solid var(--tbw-aggregation-border, var(--tbw-color-border))}.tbw-aggregation-rows-bottom{border-top:1px solid var(--tbw-aggregation-border, var(--tbw-color-border))}.tbw-aggregation-row{display:grid;grid-template-columns:var(--tbw-column-template);font-size:var(--tbw-aggregation-font-size, .8em);font-weight:var(--tbw-aggregation-font-weight, 600)}.tbw-aggregation-cell{padding:var(--tbw-cell-padding, .125rem .5rem);min-height:var(--tbw-row-height, 1.75rem);display:block;align-items:center;border-right:1px solid var(--tbw-color-border-cell);overflow:hidden;text-overflow:ellipsis;white-space:var(--tbw-cell-white-space, nowrap)}.tbw-aggregation-cell:last-child{border-right:0}.tbw-aggregation-cell-full{grid-column:1 / -1;border-right:0}}";
518
- class x extends R {
527
+ class x extends A {
519
528
  /** @internal */
520
529
  name = "pinnedRows";
521
530
  /** @internal */
@@ -550,7 +559,7 @@ class x extends R {
550
559
  if (!e) return;
551
560
  this.footerWrapper && !e.contains(this.footerWrapper) && (this.footerWrapper = null, this.bottomAggregationContainer = null, this.infoBarElement = null), this.topAggregationContainer && !e.contains(this.topAggregationContainer) && (this.topAggregationContainer = null), this.infoBarElement && !e.contains(this.infoBarElement) && (this.infoBarElement = null);
552
561
  const o = this.getSelectionState(), r = this.getFilterState(), s = E(
553
- this.rows,
562
+ this.sourceRows,
554
563
  this.columns,
555
564
  this.grid,
556
565
  o,
@@ -566,7 +575,7 @@ class x extends R {
566
575
  this.topAggregationContainer,
567
576
  a,
568
577
  this.visibleColumns,
569
- this.rows
578
+ this.sourceRows
570
579
  );
571
580
  } else this.topAggregationContainer && (this.topAggregationContainer.remove(), this.topAggregationContainer = null);
572
581
  const u = this.config.showRowCount !== !1 || this.config.showSelectedCount && s.selectedRows > 0 || this.config.showFilteredCount && s.filteredRows !== s.totalRows || this.config.customPanels && this.config.customPanels.length > 0, h = u && this.config.position !== "top", g = l.length > 0 || h;
@@ -582,7 +591,7 @@ class x extends R {
582
591
  this.bottomAggregationContainer,
583
592
  l,
584
593
  this.visibleColumns,
585
- this.rows
594
+ this.sourceRows
586
595
  )), h && (this.infoBarElement = m(this.config, s), this.footerWrapper.appendChild(this.infoBarElement))) : this.cleanupFooter();
587
596
  }
588
597
  // #endregion