@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.
- package/all.d.ts +19 -19
- package/all.d.ts.map +1 -1
- package/all.js +1798 -1201
- package/all.js.map +1 -1
- package/index.js +2215 -2026
- package/index.js.map +1 -1
- package/lib/core/grid.d.ts +22 -12
- package/lib/core/grid.d.ts.map +1 -1
- package/lib/core/internal/columns.d.ts +0 -9
- package/lib/core/internal/columns.d.ts.map +1 -1
- package/lib/core/internal/config-manager.d.ts +236 -0
- package/lib/core/internal/config-manager.d.ts.map +1 -0
- package/lib/core/internal/editing.d.ts +3 -3
- package/lib/core/internal/editing.d.ts.map +1 -1
- package/lib/core/internal/event-delegation.d.ts.map +1 -1
- package/lib/core/internal/header.d.ts.map +1 -1
- package/lib/core/internal/keyboard.d.ts.map +1 -1
- package/lib/core/internal/render-scheduler.d.ts +123 -0
- package/lib/core/internal/render-scheduler.d.ts.map +1 -0
- package/lib/core/internal/rows.d.ts +8 -3
- package/lib/core/internal/rows.d.ts.map +1 -1
- package/lib/core/internal/sanitize.d.ts +2 -2
- package/lib/core/internal/sanitize.d.ts.map +1 -1
- package/lib/core/internal/shell.d.ts +40 -2
- package/lib/core/internal/shell.d.ts.map +1 -1
- package/lib/core/internal/validate-config.d.ts +25 -0
- package/lib/core/internal/validate-config.d.ts.map +1 -0
- package/lib/core/plugin/base-plugin.d.ts +118 -0
- package/lib/core/plugin/base-plugin.d.ts.map +1 -1
- package/lib/core/plugin/index.d.ts +1 -0
- package/lib/core/plugin/index.d.ts.map +1 -1
- package/lib/core/plugin/plugin-manager.d.ts +13 -2
- package/lib/core/plugin/plugin-manager.d.ts.map +1 -1
- package/lib/core/plugin/types.d.ts +17 -3
- package/lib/core/plugin/types.d.ts.map +1 -1
- package/lib/core/types.d.ts +112 -12
- package/lib/core/types.d.ts.map +1 -1
- package/lib/plugins/clipboard/ClipboardPlugin.d.ts +7 -1
- package/lib/plugins/clipboard/ClipboardPlugin.d.ts.map +1 -1
- package/lib/plugins/clipboard/index.js +78 -22
- package/lib/plugins/clipboard/index.js.map +1 -1
- package/lib/plugins/column-virtualization/index.js +72 -21
- package/lib/plugins/column-virtualization/index.js.map +1 -1
- package/lib/plugins/context-menu/index.js +53 -2
- package/lib/plugins/context-menu/index.js.map +1 -1
- package/lib/plugins/editing/EditingPlugin.d.ts +117 -0
- package/lib/plugins/editing/EditingPlugin.d.ts.map +1 -0
- package/lib/{core/internal → plugins/editing}/editors.d.ts +1 -1
- package/lib/plugins/editing/editors.d.ts.map +1 -0
- package/lib/plugins/editing/index.d.ts +8 -0
- package/lib/plugins/editing/index.d.ts.map +1 -0
- package/lib/plugins/editing/index.js +721 -0
- package/lib/plugins/editing/index.js.map +1 -0
- package/lib/plugins/editing/types.d.ts +45 -0
- package/lib/plugins/editing/types.d.ts.map +1 -0
- package/lib/plugins/export/ExportPlugin.d.ts.map +1 -1
- package/lib/plugins/export/index.js +68 -17
- package/lib/plugins/export/index.js.map +1 -1
- package/lib/plugins/filtering/FilteringPlugin.d.ts.map +1 -1
- package/lib/plugins/filtering/index.js +103 -50
- package/lib/plugins/filtering/index.js.map +1 -1
- package/lib/plugins/grouping-columns/grouping-columns.d.ts +4 -4
- package/lib/plugins/grouping-columns/grouping-columns.d.ts.map +1 -1
- package/lib/plugins/grouping-columns/index.js +80 -29
- package/lib/plugins/grouping-columns/index.js.map +1 -1
- package/lib/plugins/grouping-rows/GroupingRowsPlugin.d.ts.map +1 -1
- package/lib/plugins/grouping-rows/grouping-rows.d.ts.map +1 -1
- package/lib/plugins/grouping-rows/index.js +62 -11
- package/lib/plugins/grouping-rows/index.js.map +1 -1
- package/lib/plugins/master-detail/MasterDetailPlugin.d.ts +2 -2
- package/lib/plugins/master-detail/MasterDetailPlugin.d.ts.map +1 -1
- package/lib/plugins/master-detail/index.js +156 -102
- package/lib/plugins/master-detail/index.js.map +1 -1
- package/lib/plugins/master-detail/types.d.ts +12 -2
- package/lib/plugins/master-detail/types.d.ts.map +1 -1
- package/lib/plugins/multi-sort/MultiSortPlugin.d.ts.map +1 -1
- package/lib/plugins/multi-sort/index.js +75 -22
- package/lib/plugins/multi-sort/index.js.map +1 -1
- package/lib/plugins/pinned-columns/index.js +57 -6
- package/lib/plugins/pinned-columns/index.js.map +1 -1
- package/lib/plugins/pinned-rows/PinnedRowsPlugin.d.ts.map +1 -1
- package/lib/plugins/pinned-rows/index.js +61 -9
- package/lib/plugins/pinned-rows/index.js.map +1 -1
- package/lib/plugins/pivot/index.js +58 -7
- package/lib/plugins/pivot/index.js.map +1 -1
- package/lib/plugins/reorder/ReorderPlugin.d.ts.map +1 -1
- package/lib/plugins/reorder/index.js +75 -19
- package/lib/plugins/reorder/index.js.map +1 -1
- package/lib/plugins/selection/index.js +57 -6
- package/lib/plugins/selection/index.js.map +1 -1
- package/lib/plugins/server-side/index.js +60 -9
- package/lib/plugins/server-side/index.js.map +1 -1
- package/lib/plugins/tree/TreePlugin.d.ts +3 -3
- package/lib/plugins/tree/TreePlugin.d.ts.map +1 -1
- package/lib/plugins/tree/index.js +181 -126
- package/lib/plugins/tree/index.js.map +1 -1
- package/lib/plugins/tree/tree-data.d.ts +6 -6
- package/lib/plugins/tree/tree-data.d.ts.map +1 -1
- package/lib/plugins/tree/tree-detect.d.ts +5 -9
- package/lib/plugins/tree/tree-detect.d.ts.map +1 -1
- package/lib/plugins/tree/types.d.ts +16 -4
- package/lib/plugins/tree/types.d.ts.map +1 -1
- package/lib/plugins/undo-redo/UndoRedoPlugin.d.ts +7 -1
- package/lib/plugins/undo-redo/UndoRedoPlugin.d.ts.map +1 -1
- package/lib/plugins/undo-redo/index.js +65 -6
- package/lib/plugins/undo-redo/index.js.map +1 -1
- package/lib/plugins/visibility/VisibilityPlugin.d.ts +7 -1
- package/lib/plugins/visibility/VisibilityPlugin.d.ts.map +1 -1
- package/lib/plugins/visibility/index.js +61 -2
- package/lib/plugins/visibility/index.js.map +1 -1
- package/package.json +1 -1
- package/public.d.ts +104 -13
- package/public.d.ts.map +1 -1
- package/umd/grid.all.umd.js +37 -19
- package/umd/grid.all.umd.js.map +1 -1
- package/umd/grid.umd.js +25 -7
- package/umd/grid.umd.js.map +1 -1
- package/umd/plugins/clipboard.umd.js +2 -2
- package/umd/plugins/clipboard.umd.js.map +1 -1
- package/umd/plugins/editing.umd.js +2 -0
- package/umd/plugins/editing.umd.js.map +1 -0
- package/umd/plugins/export.umd.js +2 -2
- package/umd/plugins/export.umd.js.map +1 -1
- package/umd/plugins/filtering.umd.js +1 -1
- package/umd/plugins/filtering.umd.js.map +1 -1
- package/umd/plugins/grouping-columns.umd.js +1 -1
- package/umd/plugins/grouping-columns.umd.js.map +1 -1
- package/umd/plugins/grouping-rows.umd.js +1 -1
- package/umd/plugins/grouping-rows.umd.js.map +1 -1
- package/umd/plugins/master-detail.umd.js +1 -1
- package/umd/plugins/master-detail.umd.js.map +1 -1
- package/umd/plugins/multi-sort.umd.js +1 -1
- package/umd/plugins/multi-sort.umd.js.map +1 -1
- package/umd/plugins/pinned-rows.umd.js +1 -1
- package/umd/plugins/pinned-rows.umd.js.map +1 -1
- package/umd/plugins/reorder.umd.js +1 -1
- package/umd/plugins/reorder.umd.js.map +1 -1
- package/umd/plugins/tree.umd.js +1 -1
- package/umd/plugins/tree.umd.js.map +1 -1
- package/umd/plugins/undo-redo.umd.js +1 -1
- package/umd/plugins/undo-redo.umd.js.map +1 -1
- package/umd/plugins/visibility.umd.js +1 -1
- package/umd/plugins/visibility.umd.js.map +1 -1
- package/lib/core/internal/column-state.d.ts +0 -124
- package/lib/core/internal/column-state.d.ts.map +0 -1
- package/lib/core/internal/editors.d.ts.map +0 -1
- package/lib/core/internal/grid-internals.d.ts +0 -83
- 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
|
|
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,
|
|
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":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAclB
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,SAAS,EACT,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,YAAY,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,SAAS,CAAC,CAAC,SAAS,cAAc,EAAE,WAAW,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC3F,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;
|
|
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:
|
|
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":"AAAA
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,EAAE,UAAU,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,aAAa,EAAE,UAAU,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,UAAU,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,KAAK,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,qDAAqD;IACrD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mDAAmD;IACnD,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,+BAA+B;IAC/B,aAAa,EAAE,UAAU,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,OAAO,EAAE,CAAC,CAAC;CACZ;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc;IACzB,yFAAyF;;IAEzF,sFAAsF;;CAE9E,CAAC;AAEX;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,qBAAqB;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,0BAA0B;IAC1B,GAAG,EAAE,OAAO,CAAC;IACb,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,uBAAuB,KAAK,MAAM,GAAG,WAAW,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,GAAG,WAAW,CAAC;AAEvG;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,GAAG,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;IAC5G,QAAQ,CAAC,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;IACzC,KAAK,CAAC,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;CACpC;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../libs/grid/src/lib/core/plugin/types.ts"],"names":[],"mappings":"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"}
|
package/lib/core/types.d.ts
CHANGED
|
@@ -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:
|
|
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
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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
|
-
|
|
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?:
|
|
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
|