@toolbox-web/grid 0.3.3 → 0.4.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.
Files changed (148) hide show
  1. package/all.d.ts +19 -19
  2. package/all.d.ts.map +1 -1
  3. package/all.js +1798 -1201
  4. package/all.js.map +1 -1
  5. package/index.js +2215 -2026
  6. package/index.js.map +1 -1
  7. package/lib/core/grid.d.ts +22 -12
  8. package/lib/core/grid.d.ts.map +1 -1
  9. package/lib/core/internal/columns.d.ts +0 -9
  10. package/lib/core/internal/columns.d.ts.map +1 -1
  11. package/lib/core/internal/config-manager.d.ts +236 -0
  12. package/lib/core/internal/config-manager.d.ts.map +1 -0
  13. package/lib/core/internal/editing.d.ts +3 -3
  14. package/lib/core/internal/editing.d.ts.map +1 -1
  15. package/lib/core/internal/event-delegation.d.ts.map +1 -1
  16. package/lib/core/internal/header.d.ts.map +1 -1
  17. package/lib/core/internal/keyboard.d.ts.map +1 -1
  18. package/lib/core/internal/render-scheduler.d.ts +123 -0
  19. package/lib/core/internal/render-scheduler.d.ts.map +1 -0
  20. package/lib/core/internal/rows.d.ts +8 -3
  21. package/lib/core/internal/rows.d.ts.map +1 -1
  22. package/lib/core/internal/sanitize.d.ts +2 -2
  23. package/lib/core/internal/sanitize.d.ts.map +1 -1
  24. package/lib/core/internal/shell.d.ts +40 -2
  25. package/lib/core/internal/shell.d.ts.map +1 -1
  26. package/lib/core/internal/validate-config.d.ts +25 -0
  27. package/lib/core/internal/validate-config.d.ts.map +1 -0
  28. package/lib/core/plugin/base-plugin.d.ts +118 -0
  29. package/lib/core/plugin/base-plugin.d.ts.map +1 -1
  30. package/lib/core/plugin/index.d.ts +1 -0
  31. package/lib/core/plugin/index.d.ts.map +1 -1
  32. package/lib/core/plugin/plugin-manager.d.ts +13 -2
  33. package/lib/core/plugin/plugin-manager.d.ts.map +1 -1
  34. package/lib/core/plugin/types.d.ts +17 -3
  35. package/lib/core/plugin/types.d.ts.map +1 -1
  36. package/lib/core/types.d.ts +112 -12
  37. package/lib/core/types.d.ts.map +1 -1
  38. package/lib/plugins/clipboard/ClipboardPlugin.d.ts +7 -1
  39. package/lib/plugins/clipboard/ClipboardPlugin.d.ts.map +1 -1
  40. package/lib/plugins/clipboard/index.js +78 -22
  41. package/lib/plugins/clipboard/index.js.map +1 -1
  42. package/lib/plugins/column-virtualization/index.js +72 -21
  43. package/lib/plugins/column-virtualization/index.js.map +1 -1
  44. package/lib/plugins/context-menu/index.js +53 -2
  45. package/lib/plugins/context-menu/index.js.map +1 -1
  46. package/lib/plugins/editing/EditingPlugin.d.ts +117 -0
  47. package/lib/plugins/editing/EditingPlugin.d.ts.map +1 -0
  48. package/lib/{core/internal → plugins/editing}/editors.d.ts +1 -1
  49. package/lib/plugins/editing/editors.d.ts.map +1 -0
  50. package/lib/plugins/editing/index.d.ts +8 -0
  51. package/lib/plugins/editing/index.d.ts.map +1 -0
  52. package/lib/plugins/editing/index.js +721 -0
  53. package/lib/plugins/editing/index.js.map +1 -0
  54. package/lib/plugins/editing/types.d.ts +45 -0
  55. package/lib/plugins/editing/types.d.ts.map +1 -0
  56. package/lib/plugins/export/ExportPlugin.d.ts.map +1 -1
  57. package/lib/plugins/export/index.js +68 -17
  58. package/lib/plugins/export/index.js.map +1 -1
  59. package/lib/plugins/filtering/FilteringPlugin.d.ts.map +1 -1
  60. package/lib/plugins/filtering/index.js +103 -50
  61. package/lib/plugins/filtering/index.js.map +1 -1
  62. package/lib/plugins/grouping-columns/grouping-columns.d.ts +4 -4
  63. package/lib/plugins/grouping-columns/grouping-columns.d.ts.map +1 -1
  64. package/lib/plugins/grouping-columns/index.js +80 -29
  65. package/lib/plugins/grouping-columns/index.js.map +1 -1
  66. package/lib/plugins/grouping-rows/GroupingRowsPlugin.d.ts.map +1 -1
  67. package/lib/plugins/grouping-rows/grouping-rows.d.ts.map +1 -1
  68. package/lib/plugins/grouping-rows/index.js +62 -11
  69. package/lib/plugins/grouping-rows/index.js.map +1 -1
  70. package/lib/plugins/master-detail/MasterDetailPlugin.d.ts +2 -2
  71. package/lib/plugins/master-detail/MasterDetailPlugin.d.ts.map +1 -1
  72. package/lib/plugins/master-detail/index.js +156 -102
  73. package/lib/plugins/master-detail/index.js.map +1 -1
  74. package/lib/plugins/master-detail/types.d.ts +12 -2
  75. package/lib/plugins/master-detail/types.d.ts.map +1 -1
  76. package/lib/plugins/multi-sort/MultiSortPlugin.d.ts.map +1 -1
  77. package/lib/plugins/multi-sort/index.js +75 -22
  78. package/lib/plugins/multi-sort/index.js.map +1 -1
  79. package/lib/plugins/pinned-columns/index.js +57 -6
  80. package/lib/plugins/pinned-columns/index.js.map +1 -1
  81. package/lib/plugins/pinned-rows/PinnedRowsPlugin.d.ts.map +1 -1
  82. package/lib/plugins/pinned-rows/index.js +61 -9
  83. package/lib/plugins/pinned-rows/index.js.map +1 -1
  84. package/lib/plugins/pivot/index.js +58 -7
  85. package/lib/plugins/pivot/index.js.map +1 -1
  86. package/lib/plugins/reorder/ReorderPlugin.d.ts.map +1 -1
  87. package/lib/plugins/reorder/index.js +75 -19
  88. package/lib/plugins/reorder/index.js.map +1 -1
  89. package/lib/plugins/selection/index.js +57 -6
  90. package/lib/plugins/selection/index.js.map +1 -1
  91. package/lib/plugins/server-side/index.js +60 -9
  92. package/lib/plugins/server-side/index.js.map +1 -1
  93. package/lib/plugins/tree/TreePlugin.d.ts +3 -3
  94. package/lib/plugins/tree/TreePlugin.d.ts.map +1 -1
  95. package/lib/plugins/tree/index.js +181 -126
  96. package/lib/plugins/tree/index.js.map +1 -1
  97. package/lib/plugins/tree/tree-data.d.ts +6 -6
  98. package/lib/plugins/tree/tree-data.d.ts.map +1 -1
  99. package/lib/plugins/tree/tree-detect.d.ts +5 -9
  100. package/lib/plugins/tree/tree-detect.d.ts.map +1 -1
  101. package/lib/plugins/tree/types.d.ts +16 -4
  102. package/lib/plugins/tree/types.d.ts.map +1 -1
  103. package/lib/plugins/undo-redo/UndoRedoPlugin.d.ts +7 -1
  104. package/lib/plugins/undo-redo/UndoRedoPlugin.d.ts.map +1 -1
  105. package/lib/plugins/undo-redo/index.js +65 -6
  106. package/lib/plugins/undo-redo/index.js.map +1 -1
  107. package/lib/plugins/visibility/VisibilityPlugin.d.ts +7 -1
  108. package/lib/plugins/visibility/VisibilityPlugin.d.ts.map +1 -1
  109. package/lib/plugins/visibility/index.js +61 -2
  110. package/lib/plugins/visibility/index.js.map +1 -1
  111. package/package.json +1 -1
  112. package/public.d.ts +104 -13
  113. package/public.d.ts.map +1 -1
  114. package/umd/grid.all.umd.js +37 -19
  115. package/umd/grid.all.umd.js.map +1 -1
  116. package/umd/grid.umd.js +25 -7
  117. package/umd/grid.umd.js.map +1 -1
  118. package/umd/plugins/clipboard.umd.js +2 -2
  119. package/umd/plugins/clipboard.umd.js.map +1 -1
  120. package/umd/plugins/editing.umd.js +2 -0
  121. package/umd/plugins/editing.umd.js.map +1 -0
  122. package/umd/plugins/export.umd.js +2 -2
  123. package/umd/plugins/export.umd.js.map +1 -1
  124. package/umd/plugins/filtering.umd.js +1 -1
  125. package/umd/plugins/filtering.umd.js.map +1 -1
  126. package/umd/plugins/grouping-columns.umd.js +1 -1
  127. package/umd/plugins/grouping-columns.umd.js.map +1 -1
  128. package/umd/plugins/grouping-rows.umd.js +1 -1
  129. package/umd/plugins/grouping-rows.umd.js.map +1 -1
  130. package/umd/plugins/master-detail.umd.js +1 -1
  131. package/umd/plugins/master-detail.umd.js.map +1 -1
  132. package/umd/plugins/multi-sort.umd.js +1 -1
  133. package/umd/plugins/multi-sort.umd.js.map +1 -1
  134. package/umd/plugins/pinned-rows.umd.js +1 -1
  135. package/umd/plugins/pinned-rows.umd.js.map +1 -1
  136. package/umd/plugins/reorder.umd.js +1 -1
  137. package/umd/plugins/reorder.umd.js.map +1 -1
  138. package/umd/plugins/tree.umd.js +1 -1
  139. package/umd/plugins/tree.umd.js.map +1 -1
  140. package/umd/plugins/undo-redo.umd.js +1 -1
  141. package/umd/plugins/undo-redo.umd.js.map +1 -1
  142. package/umd/plugins/visibility.umd.js +1 -1
  143. package/umd/plugins/visibility.umd.js.map +1 -1
  144. package/lib/core/internal/column-state.d.ts +0 -124
  145. package/lib/core/internal/column-state.d.ts.map +0 -1
  146. package/lib/core/internal/editors.d.ts.map +0 -1
  147. package/lib/core/internal/grid-internals.d.ts +0 -83
  148. package/lib/core/internal/grid-internals.d.ts.map +0 -1
@@ -1,6 +1,12 @@
1
1
  import { HeaderContentDefinition, IconValue, ShellConfig, ToolbarButtonConfig, ToolbarButtonInfo, ToolPanelDefinition } from '../types';
2
2
  /**
3
3
  * State for managing shell UI.
4
+ *
5
+ * NOTE: This interface is being refactored. Config-like properties are moving
6
+ * to effectiveConfig.shell. Only runtime state should remain here.
7
+ *
8
+ * @deprecated Properties that are configuration (toolPanels, headerContents, etc.)
9
+ * are moving to ShellConfig in types.ts. Use ShellRuntimeState for new code.
4
10
  */
5
11
  export interface ShellState {
6
12
  /** Registered tool panels (from plugins + consumer API) */
@@ -30,14 +36,43 @@ export interface ShellState {
30
36
  /** Cleanup functions for toolbar button render returns */
31
37
  toolbarButtonCleanups: Map<string, () => void>;
32
38
  }
39
+ /**
40
+ * Runtime-only shell state (not configuration).
41
+ *
42
+ * Configuration (toolPanels, headerContents, toolbarButtons, title) lives in
43
+ * effectiveConfig.shell. This state holds runtime UI state and cleanup functions.
44
+ */
45
+ export interface ShellRuntimeState {
46
+ /** Whether the tool panel sidebar is currently open */
47
+ isPanelOpen: boolean;
48
+ /** Which accordion sections are currently expanded (by panel ID) */
49
+ expandedSections: Set<string>;
50
+ /** Cleanup functions for header content render returns */
51
+ headerContentCleanups: Map<string, () => void>;
52
+ /** Cleanup functions for each panel section's render return */
53
+ panelCleanups: Map<string, () => void>;
54
+ /** Cleanup functions for toolbar button render returns */
55
+ toolbarButtonCleanups: Map<string, () => void>;
56
+ /** IDs of tool panels registered from light DOM (to avoid re-parsing) */
57
+ lightDomToolPanelIds: Set<string>;
58
+ /** IDs of tool panels registered via registerToolPanel API */
59
+ apiToolPanelIds: Set<string>;
60
+ /** Whether a <tbw-grid-tool-buttons> container was found in light DOM */
61
+ hasToolButtonsContainer: boolean;
62
+ }
63
+ /**
64
+ * Create initial shell runtime state.
65
+ */
66
+ export declare function createShellRuntimeState(): ShellRuntimeState;
33
67
  /**
34
68
  * Create initial shell state.
35
69
  */
36
70
  export declare function createShellState(): ShellState;
37
71
  /**
38
72
  * Determine if shell header should be rendered.
73
+ * Reads only from effectiveConfig.shell (single source of truth).
39
74
  */
40
- export declare function shouldRenderShellHeader(config: ShellConfig | undefined, state: ShellState): boolean;
75
+ export declare function shouldRenderShellHeader(config: ShellConfig | undefined): boolean;
41
76
  /**
42
77
  * Render the shell header HTML.
43
78
  *
@@ -236,7 +271,10 @@ export declare const GRID_CONTENT_HTML = "\n <div class=\"tbw-scroll-area\">\n
236
271
  * @param icons - Optional icons
237
272
  * @returns Whether shell is active (for post-render setup)
238
273
  */
239
- export declare function buildGridDOMIntoShadow(shadowRoot: ShadowRoot, shellConfig: ShellConfig | undefined, state: ShellState, icons?: {
274
+ export declare function buildGridDOMIntoShadow(shadowRoot: ShadowRoot, shellConfig: ShellConfig | undefined, runtimeState: {
275
+ isPanelOpen: boolean;
276
+ expandedSections: Set<string>;
277
+ }, icons?: {
240
278
  toolPanel?: IconValue;
241
279
  expand?: IconValue;
242
280
  collapse?: IconValue;
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/core/internal/shell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/core/internal/shell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { BaseGridPlugin } from '../plugin';
2
+ import { GridConfig } from '../types';
3
+ /**
4
+ * Validate that column properties requiring plugins have those plugins loaded.
5
+ *
6
+ * @param config - The merged grid configuration
7
+ * @param plugins - The array of loaded plugins
8
+ * @throws Error if a plugin-owned property is used without the plugin
9
+ */
10
+ export declare function validatePluginProperties<T>(config: GridConfig<T>, plugins: readonly BaseGridPlugin[]): void;
11
+ /**
12
+ * Validate plugin-to-plugin dependencies.
13
+ * Called by PluginManager when attaching a new plugin.
14
+ *
15
+ * Dependencies are read from the plugin's static `dependencies` property.
16
+ *
17
+ * For hard dependencies (required: true), throws an error if the dependency is not loaded.
18
+ * For soft dependencies (required: false), logs an info message but continues.
19
+ *
20
+ * @param plugin - The plugin instance being attached
21
+ * @param loadedPlugins - The array of already-loaded plugins
22
+ * @throws Error if a required dependency is missing
23
+ */
24
+ export declare function validatePluginDependencies(plugin: BaseGridPlugin, loadedPlugins: readonly BaseGridPlugin[]): void;
25
+ //# sourceMappingURL=validate-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-config.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/core/internal/validate-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,UAAU,CAAC;AAwGzD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAiF3G;AAyCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAmCjH"}
@@ -9,6 +9,13 @@ export type { CellClickEvent, CellCoords, CellEditor, CellMouseEvent, CellRender
9
9
  export interface GridElement extends GridElementRef {
10
10
  getPlugin<T extends BaseGridPlugin>(PluginClass: new (...args: any[]) => T): T | undefined;
11
11
  getPluginByName(name: string): BaseGridPlugin | undefined;
12
+ /**
13
+ * Get a plugin's state by plugin name.
14
+ * This is a loose-coupling method for plugins to access other plugins' state
15
+ * without importing the plugin class directly.
16
+ * @internal Plugin API
17
+ */
18
+ getPluginState?(name: string): unknown;
12
19
  }
13
20
  /**
14
21
  * Header render context for plugin header renderers.
@@ -19,12 +26,61 @@ export interface PluginHeaderRenderContext {
19
26
  /** Column index */
20
27
  colIndex: number;
21
28
  }
29
+ /**
30
+ * Declares a dependency on another plugin.
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * export class UndoRedoPlugin extends BaseGridPlugin {
35
+ * static readonly dependencies: PluginDependency[] = [
36
+ * { name: 'editing', required: true },
37
+ * ];
38
+ * }
39
+ * ```
40
+ */
41
+ export interface PluginDependency {
42
+ /**
43
+ * The name of the required plugin (matches the plugin's `name` property).
44
+ * Use string names for loose coupling - avoids static imports.
45
+ */
46
+ name: string;
47
+ /**
48
+ * Whether this dependency is required (hard) or optional (soft).
49
+ * - `true`: Plugin cannot function without it. Throws error if missing.
50
+ * - `false`: Plugin works with reduced functionality. Logs info if missing.
51
+ * @default true
52
+ */
53
+ required?: boolean;
54
+ /**
55
+ * Human-readable reason for this dependency.
56
+ * Shown in error/info messages to help users understand why.
57
+ * @example "UndoRedoPlugin needs EditingPlugin to track cell edits"
58
+ */
59
+ reason?: string;
60
+ }
22
61
  /**
23
62
  * Abstract base class for all grid plugins.
24
63
  *
25
64
  * @template TConfig - Configuration type for the plugin
26
65
  */
27
66
  export declare abstract class BaseGridPlugin<TConfig = unknown> implements GridPlugin {
67
+ #private;
68
+ /**
69
+ * Plugin dependencies - declare other plugins this one requires.
70
+ *
71
+ * Dependencies are validated when the plugin is attached.
72
+ * Required dependencies throw an error if missing.
73
+ * Optional dependencies log an info message if missing.
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * static readonly dependencies: PluginDependency[] = [
78
+ * { name: 'editing', required: true, reason: 'Tracks cell edits for undo/redo' },
79
+ * { name: 'selection', required: false, reason: 'Enables selection-based undo' },
80
+ * ];
81
+ * ```
82
+ */
83
+ static readonly dependencies?: PluginDependency[];
28
84
  /** Unique plugin identifier (derived from class name by default) */
29
85
  abstract readonly name: string;
30
86
  /** Plugin version - override in subclass if needed */
@@ -53,16 +109,78 @@ export declare abstract class BaseGridPlugin<TConfig = unknown> implements GridP
53
109
  /**
54
110
  * Called when the plugin is attached to a grid.
55
111
  * Override to set up event listeners, initialize state, etc.
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * attach(grid: GridElement): void {
116
+ * super.attach(grid);
117
+ * // Set up document-level listeners with auto-cleanup
118
+ * document.addEventListener('keydown', this.handleEscape, {
119
+ * signal: this.disconnectSignal
120
+ * });
121
+ * }
122
+ * ```
56
123
  */
57
124
  attach(grid: GridElement): void;
58
125
  /**
59
126
  * Called when the plugin is detached from a grid.
60
127
  * Override to clean up event listeners, timers, etc.
128
+ *
129
+ * @example
130
+ * ```ts
131
+ * detach(): void {
132
+ * // Clean up any state not handled by disconnectSignal
133
+ * this.selectedRows.clear();
134
+ * this.cache = null;
135
+ * }
136
+ * ```
61
137
  */
62
138
  detach(): void;
139
+ /**
140
+ * Called when another plugin is attached to the same grid.
141
+ * Use for inter-plugin coordination, e.g., to integrate with new plugins.
142
+ *
143
+ * @param name - The name of the plugin that was attached
144
+ * @param plugin - The plugin instance (for direct access if needed)
145
+ *
146
+ * @example
147
+ * ```ts
148
+ * onPluginAttached(name: string, plugin: BaseGridPlugin): void {
149
+ * if (name === 'selection') {
150
+ * // Integrate with selection plugin
151
+ * this.selectionPlugin = plugin as SelectionPlugin;
152
+ * }
153
+ * }
154
+ * ```
155
+ */
156
+ onPluginAttached?(name: string, plugin: BaseGridPlugin): void;
157
+ /**
158
+ * Called when another plugin is detached from the same grid.
159
+ * Use to clean up inter-plugin references.
160
+ *
161
+ * @param name - The name of the plugin that was detached
162
+ *
163
+ * @example
164
+ * ```ts
165
+ * onPluginDetached(name: string): void {
166
+ * if (name === 'selection') {
167
+ * this.selectionPlugin = undefined;
168
+ * }
169
+ * }
170
+ * ```
171
+ */
172
+ onPluginDetached?(name: string): void;
63
173
  /**
64
174
  * Get another plugin instance from the same grid.
65
175
  * Use for inter-plugin communication.
176
+ *
177
+ * @example
178
+ * ```ts
179
+ * const selection = this.getPlugin(SelectionPlugin);
180
+ * if (selection) {
181
+ * const selectedRows = selection.getSelectedRows();
182
+ * }
183
+ * ```
66
184
  */
67
185
  protected getPlugin<T extends BaseGridPlugin>(PluginClass: new (...args: any[]) => T): T | undefined;
68
186
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"base-plugin.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/core/plugin/base-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-plugin.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/core/plugin/base-plugin.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,6 @@
7
7
  export { BaseGridPlugin, PLUGIN_QUERIES } from './base-plugin';
8
8
  export type { CellClickEvent, CellCoords, CellEditor, CellMouseEvent, CellRenderer, ContextMenuItem, ContextMenuParams, GridElement, HeaderClickEvent, HeaderRenderer, KeyboardModifiers, PluginCellRenderContext, PluginHeaderRenderContext, PluginQuery, RowClickEvent, ScrollEvent, } from './base-plugin';
9
9
  export { PluginManager } from './plugin-manager';
10
+ export type { PluginDependency } from './base-plugin';
10
11
  export type { ColumnConfig } from '../types';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/core/plugin/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,YAAY,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/core/plugin/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,YAAY,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAItD,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -1,12 +1,17 @@
1
1
  import { ColumnConfig } from '../types';
2
- import { BaseGridPlugin, CellClickEvent, CellEditor, CellMouseEvent, CellRenderer, HeaderClickEvent, HeaderRenderer, PluginQuery, RowClickEvent, ScrollEvent } from './base-plugin';
2
+ import { BaseGridPlugin, CellClickEvent, CellEditor, CellMouseEvent, CellRenderer, GridElement, HeaderClickEvent, HeaderRenderer, PluginQuery, RowClickEvent, ScrollEvent } from './base-plugin';
3
3
  /**
4
4
  * Manages plugins for a single grid instance.
5
+ *
6
+ * Plugins are executed in array order. This is intentional and documented behavior.
7
+ * Place plugins in the order you want their hooks to execute.
5
8
  */
6
9
  export declare class PluginManager {
7
10
  private grid;
8
11
  /** Plugin instances in order of attachment */
9
12
  private plugins;
13
+ /** Get all registered plugins (read-only) */
14
+ getPlugins(): readonly BaseGridPlugin[];
10
15
  /** Map from plugin class to instance for fast lookup */
11
16
  private pluginMap;
12
17
  /** Cell renderers registered by plugins */
@@ -15,17 +20,19 @@ export declare class PluginManager {
15
20
  private headerRenderers;
16
21
  /** Cell editors registered by plugins */
17
22
  private cellEditors;
18
- constructor(grid: any);
23
+ constructor(grid: GridElement);
19
24
  /**
20
25
  * Attach all plugins from the config.
21
26
  */
22
27
  attachAll(plugins: BaseGridPlugin[]): void;
23
28
  /**
24
29
  * Attach a plugin to this grid.
30
+ * Validates dependencies and notifies other plugins of the new attachment.
25
31
  */
26
32
  attach(plugin: BaseGridPlugin): void;
27
33
  /**
28
34
  * Detach all plugins and clean up.
35
+ * Notifies plugins of detachment via onPluginDetached hook.
29
36
  */
30
37
  detachAll(): void;
31
38
  /**
@@ -44,6 +51,10 @@ export declare class PluginManager {
44
51
  * Get all attached plugins.
45
52
  */
46
53
  getAll(): readonly BaseGridPlugin[];
54
+ /**
55
+ * Get names of all registered plugins (for debugging).
56
+ */
57
+ getRegisteredPluginNames(): string[];
47
58
  /**
48
59
  * Get a cell renderer by type name.
49
60
  */
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/core/plugin/plugin-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/core/plugin/plugin-manager.ts"],"names":[],"mappings":"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"}
@@ -176,21 +176,35 @@ export interface CellEditor {
176
176
  /**
177
177
  * Minimal grid interface for plugins.
178
178
  * This avoids circular imports with the full DataGridElement.
179
+ *
180
+ * Member prefixes indicate accessibility:
181
+ * - `_underscore` = protected members accessible to plugins (marked @internal in full interface)
179
182
  */
180
183
  export interface GridElementRef {
181
184
  shadowRoot: ShadowRoot | null;
185
+ /** Current rows (after plugin processing like grouping, filtering). */
182
186
  rows: unknown[];
187
+ /** Original unfiltered/unprocessed rows. */
188
+ sourceRows: unknown[];
189
+ /** Column configurations. */
183
190
  columns: ColumnConfig[];
191
+ /** Visible columns only (excludes hidden). Use for rendering. @internal */
192
+ _visibleColumns: ColumnConfig[];
193
+ /** Full grid configuration. */
184
194
  gridConfig: GridConfig;
185
- /** Current focused row index */
195
+ /** Current focused row index. @internal */
186
196
  _focusRow: number;
187
- /** Current focused column index */
197
+ /** Current focused column index. @internal */
188
198
  _focusCol: number;
189
- /** AbortSignal that is aborted when the grid disconnects from the DOM */
199
+ /** AbortSignal that is aborted when the grid disconnects from the DOM. */
190
200
  disconnectSignal: AbortSignal;
201
+ /** Request a full re-render of the grid. */
191
202
  requestRender(): void;
203
+ /** Request a lightweight style update without rebuilding DOM. */
192
204
  requestAfterRender(): void;
205
+ /** Force a layout pass. */
193
206
  forceLayout(): Promise<void>;
207
+ /** Dispatch an event from the grid element. */
194
208
  dispatchEvent(event: Event): boolean;
195
209
  }
196
210
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/core/plugin/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/core/plugin/types.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,11 @@ export interface PublicGrid<T = any> {
59
59
  getRegisteredStyles?: () => string[];
60
60
  }
61
61
  /**
62
- * Internal-only augmented interface for DataGrid component
62
+ * Internal-only augmented interface for DataGrid component.
63
+ *
64
+ * Member prefixes indicate accessibility:
65
+ * - `_underscore` = protected members - private outside core, accessible to plugins. Marked with @internal.
66
+ * - `__doubleUnderscore` = deeply internal members - private outside core, only for internal functions.
63
67
  */
64
68
  export interface InternalGrid<T = any> extends PublicGrid<T>, GridConfig<T> {
65
69
  shadowRoot: ShadowRoot | null;
@@ -69,32 +73,53 @@ export interface InternalGrid<T = any> extends PublicGrid<T>, GridConfig<T> {
69
73
  _visibleColumns: ColumnInternal<T>[];
70
74
  _headerRowEl: HTMLElement;
71
75
  _bodyEl: HTMLElement;
72
- _rowPool: HTMLElement[];
76
+ _rowPool: RowElementInternal[];
73
77
  _resizeController: ResizeController;
74
78
  _sortState: {
75
79
  field: string;
76
80
  direction: 1 | -1;
77
81
  } | null;
82
+ /** Original unfiltered/unprocessed rows. @internal */
83
+ sourceRows: T[];
84
+ /** Framework adapter instance (set by Grid directives). @internal */
85
+ __frameworkAdapter?: FrameworkAdapter;
78
86
  __originalOrder: T[];
79
87
  __rowRenderEpoch: number;
80
88
  __didInitialAutoSize?: boolean;
81
89
  __lightDomColumnsCache?: ColumnInternal[];
82
90
  __originalColumnNodes?: HTMLElement[];
91
+ /** Cell display value cache. @internal */
92
+ __cellDisplayCache?: Map<number, string[]>;
93
+ /** Cache epoch for cell display values. @internal */
94
+ __cellCacheEpoch?: number;
95
+ /** Cached header row count for virtualization. @internal */
96
+ __cachedHeaderRowCount?: number;
97
+ /** Cached flag for whether grid has special columns (custom renderers, etc.). @internal */
98
+ __hasSpecialColumns?: boolean;
99
+ /** Cached flag for whether any plugin has renderRow hooks. @internal */
100
+ __hasRenderRowPlugins?: boolean;
83
101
  _gridTemplate: string;
84
102
  _virtualization: VirtualState;
85
103
  _focusRow: number;
86
104
  _focusCol: number;
87
- _activeEditRows: number;
88
- _rowEditSnapshots: Map<number, T>;
89
- _changedRowIndices: Set<number>;
105
+ /** Currently active edit row index. Injected by EditingPlugin. @internal */
106
+ _activeEditRows?: number;
107
+ /** Snapshots of row data before editing. Injected by EditingPlugin. @internal */
108
+ _rowEditSnapshots?: Map<number, T>;
109
+ /** Set of row indices that have been modified. Injected by EditingPlugin. @internal */
110
+ _changedRowIndices?: Set<number>;
111
+ /** Get all changed rows. Injected by EditingPlugin. */
90
112
  changedRows?: T[];
113
+ /** Get indices of all changed rows. Injected by EditingPlugin. */
91
114
  changedRowIndices?: number[];
92
115
  effectiveConfig?: GridConfig<T>;
93
116
  findHeaderRow?: () => HTMLElement;
94
117
  refreshVirtualWindow: (full: boolean) => void;
95
118
  updateTemplate?: () => void;
96
119
  findRenderedRowElement?: (rowIndex: number) => HTMLElement | null;
120
+ /** Begin bulk edit on a row. Injected by EditingPlugin. */
97
121
  beginBulkEdit?: (rowIndex: number) => void;
122
+ /** Commit active row edit. Injected by EditingPlugin. */
98
123
  commitActiveRowEdit?: () => void;
99
124
  /** Dispatch cell click to plugin system, returns true if handled */
100
125
  _dispatchCellClick?: (event: MouseEvent, rowIndex: number, colIndex: number, cellEl: HTMLElement) => boolean;
@@ -137,10 +162,6 @@ export interface BaseColumnConfig<TRow = any, TValue = any> {
137
162
  resizable?: boolean;
138
163
  /** Optional custom comparator for sorting (a,b) -> number */
139
164
  sortComparator?: (a: TValue, b: TValue, rowA: TRow, rowB: TRow) => number;
140
- /** Whether the field is editable (enables editors) */
141
- editable?: boolean;
142
- /** Optional custom editor factory or element tag name */
143
- editor?: ColumnEditorSpec<TRow, TValue>;
144
165
  /** For select/typeahead types - available options */
145
166
  options?: Array<{
146
167
  label: string;
@@ -249,7 +270,7 @@ export interface CellRenderContext<TRow = any, TValue = any> {
249
270
  */
250
271
  cellEl?: HTMLElement;
251
272
  }
252
- export type ColumnViewRenderer<TRow = unknown, TValue = unknown> = (ctx: CellRenderContext<TRow, TValue>) => Node | string | void;
273
+ export type ColumnViewRenderer<TRow = unknown, TValue = unknown> = (ctx: CellRenderContext<TRow, TValue>) => Node | string | void | null;
253
274
  /**
254
275
  * Framework adapter interface for handling framework-specific component instantiation.
255
276
  * Allows framework libraries (Angular, React, Vue) to register handlers that convert
@@ -307,7 +328,23 @@ export interface FrameworkAdapter {
307
328
  */
308
329
  createToolPanelRenderer?(element: HTMLElement): ((container: HTMLElement) => void | (() => void)) | undefined;
309
330
  }
310
- export interface ColumnInternal<T = any> extends ColumnConfig<T> {
331
+ /**
332
+ * Column internal properties used during light DOM parsing.
333
+ * Stores attribute-based names before they're resolved to actual functions.
334
+ * @internal
335
+ */
336
+ export interface ColumnParsedAttributes {
337
+ /** Editor name from `editor` attribute (resolved later) */
338
+ __editorName?: string;
339
+ /** Renderer name from `renderer` attribute (resolved later) */
340
+ __rendererName?: string;
341
+ }
342
+ /**
343
+ * Extended column config used internally.
344
+ * Includes all internal properties needed during grid lifecycle.
345
+ * @internal
346
+ */
347
+ export interface ColumnInternal<T = any> extends ColumnConfig<T>, ColumnParsedAttributes {
311
348
  __autoSized?: boolean;
312
349
  __userResized?: boolean;
313
350
  __renderedWidth?: number;
@@ -316,9 +353,42 @@ export interface ColumnInternal<T = any> extends ColumnConfig<T> {
316
353
  __viewTemplate?: HTMLElement;
317
354
  __editorTemplate?: HTMLElement;
318
355
  __headerTemplate?: HTMLElement;
319
- __compiledView?: (ctx: CellContext<T>) => string;
356
+ __compiledView?: CompiledViewFunction<T>;
320
357
  __compiledEditor?: (ctx: EditorExecContext<T>) => string;
321
358
  }
359
+ /**
360
+ * Row element with internal tracking properties.
361
+ * Used during virtualization and row pooling.
362
+ * @internal
363
+ */
364
+ export interface RowElementInternal extends HTMLElement {
365
+ /** Epoch marker for row render invalidation */
366
+ __epoch?: number;
367
+ /** Reference to the row data object for change detection */
368
+ __rowDataRef?: unknown;
369
+ /** Count of cells currently in edit mode */
370
+ __editingCellCount?: number;
371
+ /** Flag indicating this is a custom-rendered row (group row, etc.) */
372
+ __isCustomRow?: boolean;
373
+ }
374
+ /**
375
+ * Type-safe access to element.part API (DOMTokenList-like).
376
+ * Used for CSS ::part styling support.
377
+ * @internal
378
+ */
379
+ export interface ElementWithPart {
380
+ part?: DOMTokenList;
381
+ }
382
+ /**
383
+ * Compiled view function type with optional blocked flag.
384
+ * The __blocked flag is set when a template contains unsafe expressions.
385
+ * @internal
386
+ */
387
+ export interface CompiledViewFunction<T = any> {
388
+ (ctx: CellContext<T>): string;
389
+ /** Set to true when template was blocked due to unsafe expressions */
390
+ __blocked?: boolean;
391
+ }
322
392
  /**
323
393
  * Runtime cell context used internally for compiled template execution.
324
394
  */
@@ -359,6 +429,14 @@ export interface VirtualState {
359
429
  /** Spacer element inside faux scrollbar for setting virtual height */
360
430
  totalHeightEl: HTMLElement | null;
361
431
  }
432
+ /**
433
+ * Union type for input-like elements that have a `value` property.
434
+ * Covers standard form elements and custom elements with value semantics.
435
+ * @internal
436
+ */
437
+ export type InputLikeElement = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | {
438
+ value: unknown;
439
+ };
362
440
  /**
363
441
  * Group row rendering customization options.
364
442
  * Used within grouping-rows plugin config for presentation of group rows.
@@ -624,6 +702,18 @@ export interface ShellConfig {
624
702
  header?: ShellHeaderConfig;
625
703
  /** Tool panel configuration */
626
704
  toolPanel?: ToolPanelConfig;
705
+ /**
706
+ * Registered tool panels (from plugins, API, or Light DOM).
707
+ * These are the actual panel definitions that can be opened.
708
+ * @internal Set by ConfigManager during merge
709
+ */
710
+ toolPanels?: ToolPanelDefinition[];
711
+ /**
712
+ * Registered header content sections (from plugins or API).
713
+ * Content rendered in the center of the shell header.
714
+ * @internal Set by ConfigManager during merge
715
+ */
716
+ headerContents?: HeaderContentDefinition[];
627
717
  }
628
718
  /**
629
719
  * Shell header bar configuration
@@ -633,6 +723,16 @@ export interface ShellHeaderConfig {
633
723
  title?: string;
634
724
  /** Custom toolbar buttons (rendered before tool panel toggles) */
635
725
  toolbarButtons?: ToolbarButtonConfig[];
726
+ /**
727
+ * Light DOM header content elements (parsed from <tbw-grid-header> children).
728
+ * @internal Set by ConfigManager during merge
729
+ */
730
+ lightDomContent?: HTMLElement[];
731
+ /**
732
+ * Whether a tool buttons container was found in light DOM.
733
+ * @internal Set by ConfigManager during merge
734
+ */
735
+ hasToolButtonsContainer?: boolean;
636
736
  }
637
737
  /**
638
738
  * Tool panel configuration