@toolbox-web/grid 0.0.4 → 0.0.5

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 (55) hide show
  1. package/all.d.ts +29 -6
  2. package/all.js +421 -421
  3. package/all.js.map +1 -1
  4. package/index.d.ts +28 -0
  5. package/index.js +774 -726
  6. package/index.js.map +1 -1
  7. package/lib/plugins/clipboard/index.js +55 -35
  8. package/lib/plugins/clipboard/index.js.map +1 -1
  9. package/lib/plugins/column-virtualization/index.js +49 -29
  10. package/lib/plugins/column-virtualization/index.js.map +1 -1
  11. package/lib/plugins/context-menu/index.js +35 -15
  12. package/lib/plugins/context-menu/index.js.map +1 -1
  13. package/lib/plugins/export/index.js +52 -32
  14. package/lib/plugins/export/index.js.map +1 -1
  15. package/lib/plugins/filtering/index.js +116 -99
  16. package/lib/plugins/filtering/index.js.map +1 -1
  17. package/lib/plugins/grouping-columns/index.js +42 -22
  18. package/lib/plugins/grouping-columns/index.js.map +1 -1
  19. package/lib/plugins/grouping-rows/index.js +20 -0
  20. package/lib/plugins/grouping-rows/index.js.map +1 -1
  21. package/lib/plugins/master-detail/index.js +50 -27
  22. package/lib/plugins/master-detail/index.js.map +1 -1
  23. package/lib/plugins/multi-sort/index.js +25 -5
  24. package/lib/plugins/multi-sort/index.js.map +1 -1
  25. package/lib/plugins/pinned-columns/index.js +20 -0
  26. package/lib/plugins/pinned-columns/index.js.map +1 -1
  27. package/lib/plugins/pinned-rows/index.js +20 -0
  28. package/lib/plugins/pinned-rows/index.js.map +1 -1
  29. package/lib/plugins/pivot/index.js +20 -0
  30. package/lib/plugins/pivot/index.js.map +1 -1
  31. package/lib/plugins/reorder/index.js +48 -28
  32. package/lib/plugins/reorder/index.js.map +1 -1
  33. package/lib/plugins/selection/index.js +51 -31
  34. package/lib/plugins/selection/index.js.map +1 -1
  35. package/lib/plugins/server-side/index.js +20 -0
  36. package/lib/plugins/server-side/index.js.map +1 -1
  37. package/lib/plugins/tree/index.js +76 -53
  38. package/lib/plugins/tree/index.js.map +1 -1
  39. package/lib/plugins/undo-redo/index.js +20 -0
  40. package/lib/plugins/undo-redo/index.js.map +1 -1
  41. package/lib/plugins/visibility/index.js +20 -0
  42. package/lib/plugins/visibility/index.js.map +1 -1
  43. package/package.json +1 -1
  44. package/umd/grid.all.umd.js +25 -25
  45. package/umd/grid.all.umd.js.map +1 -1
  46. package/umd/grid.umd.js +12 -12
  47. package/umd/grid.umd.js.map +1 -1
  48. package/umd/plugins/filtering.umd.js +3 -3
  49. package/umd/plugins/filtering.umd.js.map +1 -1
  50. package/umd/plugins/master-detail.umd.js +2 -2
  51. package/umd/plugins/master-detail.umd.js.map +1 -1
  52. package/umd/plugins/reorder.umd.js +1 -1
  53. package/umd/plugins/reorder.umd.js.map +1 -1
  54. package/umd/plugins/tree.umd.js +2 -2
  55. package/umd/plugins/tree.umd.js.map +1 -1
package/index.d.ts CHANGED
@@ -180,6 +180,24 @@ export declare abstract class BaseGridPlugin<TConfig = unknown> {
180
180
  * Get the shadow root of the grid.
181
181
  */
182
182
  protected get shadowRoot(): ShadowRoot | null;
183
+ /**
184
+ * Get the disconnect signal for event listener cleanup.
185
+ * This signal is aborted when the grid disconnects from the DOM.
186
+ * Use this when adding event listeners that should be cleaned up automatically.
187
+ *
188
+ * Best for:
189
+ * - Document/window-level listeners added in attach()
190
+ * - Listeners on the grid element itself
191
+ * - Any listener that should persist across renders
192
+ *
193
+ * Not needed for:
194
+ * - Listeners on elements created in afterRender() (removed with element)
195
+ *
196
+ * @example
197
+ * element.addEventListener('click', handler, { signal: this.disconnectSignal });
198
+ * document.addEventListener('keydown', handler, { signal: this.disconnectSignal });
199
+ */
200
+ protected get disconnectSignal(): AbortSignal;
183
201
  /**
184
202
  * Log a warning message.
185
203
  */
@@ -926,6 +944,14 @@ export declare class DataGridElement<T = any> extends HTMLElement implements Int
926
944
  get editOn(): string | undefined;
927
945
  set editOn(value: string | undefined);
928
946
  get effectiveConfig(): GridConfig<T>;
947
+ /**
948
+ * Get the disconnect signal for event listener cleanup.
949
+ * This signal is aborted when the grid disconnects from the DOM.
950
+ * Plugins and internal code can use this for automatic listener cleanup.
951
+ * @example
952
+ * element.addEventListener('click', handler, { signal: this.grid.disconnectSignal });
953
+ */
954
+ get disconnectSignal(): AbortSignal;
929
955
  constructor();
930
956
  /**
931
957
  * Get a plugin instance by its class.
@@ -1493,6 +1519,8 @@ export declare interface GridElement {
1493
1519
  rows: any[];
1494
1520
  columns: ColumnConfig[];
1495
1521
  gridConfig: any;
1522
+ /** AbortSignal that is aborted when the grid disconnects from the DOM */
1523
+ disconnectSignal: AbortSignal;
1496
1524
  requestRender(): void;
1497
1525
  requestAfterRender(): void;
1498
1526
  forceLayout(): Promise<void>;