@acorex/components 21.0.0-next.38 → 21.0.0-next.39
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/calendar/index.d.ts +4 -0
- package/fesm2022/acorex-components-calendar.mjs +15 -0
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +4 -1
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +6 -5
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +1099 -214
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/number-box/index.d.ts +1 -1
- package/package.json +3 -3
- package/tree-view/index.d.ts +368 -41
package/number-box/index.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ declare class AXNumberBoxComponent extends AXNumberBoxComponent_base {
|
|
|
29
29
|
protected mode: _angular_core.WritableSignal<"digits" | "thousandsSeparator" | "decimal">;
|
|
30
30
|
private input;
|
|
31
31
|
protected stringValue: _angular_core.WritableSignal<string>;
|
|
32
|
-
protected internalValueChanged(value: number): void;
|
|
32
|
+
protected internalValueChanged(value: number | undefined): void;
|
|
33
33
|
private plusValue;
|
|
34
34
|
private minusValue;
|
|
35
35
|
protected handleOnKeydownEvent(e: KeyboardEvent): void;
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/components",
|
|
3
|
-
"version": "21.0.0-next.
|
|
3
|
+
"version": "21.0.0-next.39",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/core": "21.0.0-next.
|
|
6
|
-
"@acorex/cdk": "21.0.0-next.
|
|
5
|
+
"@acorex/core": "21.0.0-next.39",
|
|
6
|
+
"@acorex/cdk": "21.0.0-next.39",
|
|
7
7
|
"@angular/common": "^20.0.0",
|
|
8
8
|
"@angular/core": "^20.0.0",
|
|
9
9
|
"@angular/cdk": "^20.0.0",
|
package/tree-view/index.d.ts
CHANGED
|
@@ -64,19 +64,33 @@ interface AXTreeViewBeforeDropEvent extends AXEvent {
|
|
|
64
64
|
currentIndex: number;
|
|
65
65
|
canceled: boolean;
|
|
66
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Tree view node interface.
|
|
69
|
+
*
|
|
70
|
+
* By default, nodes should have the following structure:
|
|
71
|
+
* ```typescript
|
|
72
|
+
* {
|
|
73
|
+
* id: string; // Unique identifier for the node
|
|
74
|
+
* title: string; // Display text for the node
|
|
75
|
+
* tooltip?: string; // Optional tooltip text
|
|
76
|
+
* icon?: string; // Optional icon class name
|
|
77
|
+
* expanded?: boolean; // Whether the node is expanded
|
|
78
|
+
* selected?: boolean; // Whether the node is selected
|
|
79
|
+
* indeterminate?: boolean; // Whether the checkbox is in indeterminate state
|
|
80
|
+
* disabled?: boolean; // Whether the node is disabled
|
|
81
|
+
* hidden?: boolean; // Whether the node is hidden
|
|
82
|
+
* children?: AXTreeViewNode[]; // Child nodes
|
|
83
|
+
* childrenCount?: number; // Count of children (for lazy loading)
|
|
84
|
+
* data?: unknown; // Optional custom data
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* However, you can use custom field names by providing field name inputs
|
|
89
|
+
* (idField, titleField, etc.) to the component. The component will then
|
|
90
|
+
* use those field names to access node properties.
|
|
91
|
+
*/
|
|
67
92
|
interface AXTreeViewNode {
|
|
68
|
-
|
|
69
|
-
label: string;
|
|
70
|
-
icon?: string;
|
|
71
|
-
expanded?: boolean;
|
|
72
|
-
selected?: boolean;
|
|
73
|
-
indeterminate?: boolean;
|
|
74
|
-
disabled?: boolean;
|
|
75
|
-
visible?: boolean;
|
|
76
|
-
children?: AXTreeViewNode[];
|
|
77
|
-
childrenCount?: number;
|
|
78
|
-
loading?: boolean;
|
|
79
|
-
data?: unknown;
|
|
93
|
+
[key: string]: unknown;
|
|
80
94
|
}
|
|
81
95
|
interface AXTreeViewNodeToggleEvent extends AXHtmlEvent {
|
|
82
96
|
node: AXTreeViewNode;
|
|
@@ -84,6 +98,9 @@ interface AXTreeViewNodeToggleEvent extends AXHtmlEvent {
|
|
|
84
98
|
interface AXTreeViewNodeSelectEvent extends AXHtmlEvent {
|
|
85
99
|
node: AXTreeViewNode;
|
|
86
100
|
}
|
|
101
|
+
interface AXTreeViewSelectionChangeEvent extends AXEvent {
|
|
102
|
+
selectedNodes: AXTreeViewNode[];
|
|
103
|
+
}
|
|
87
104
|
interface AXTreeViewDropEvent extends AXEvent {
|
|
88
105
|
node: AXTreeViewNode;
|
|
89
106
|
previousParent?: AXTreeViewNode;
|
|
@@ -102,7 +119,37 @@ interface AXTreeViewItemTemplateContext {
|
|
|
102
119
|
type AXTreeViewViewLook = 'default' | 'card' | 'with-line';
|
|
103
120
|
type AXTreeViewDragMode = 'none' | 'handler' | 'item';
|
|
104
121
|
type AXTreeViewDragOperationType = 'order-only' | 'move' | 'both';
|
|
105
|
-
type AXTreeViewSelectMode = 'single' | 'multiple';
|
|
122
|
+
type AXTreeViewSelectMode = 'none' | 'single' | 'multiple';
|
|
123
|
+
/**
|
|
124
|
+
* Selection behavior mode for tree nodes.
|
|
125
|
+
*
|
|
126
|
+
* Controls how node selection behaves in the tree:
|
|
127
|
+
* - **'all'**: No restrictions or special behavior. Any node can be selected independently.
|
|
128
|
+
* - **'intermediate'**: When children are selected, parent nodes show indeterminate state.
|
|
129
|
+
* If all children are selected, parent becomes selected; if some are selected, parent shows indeterminate.
|
|
130
|
+
* - **'leaf'**: Only leaf nodes (nodes with no children) can be selected. Parent nodes cannot be selected.
|
|
131
|
+
* - **'nested'**: Selecting a parent node automatically selects all its children (cascading selection).
|
|
132
|
+
* - **'intermediate-nested'**: Combines both behaviors - selecting parent selects children AND children selection affects parent state.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* // Allow any node to be selected
|
|
137
|
+
* <ax-tree-view [selectionBehavior]="'all'" />
|
|
138
|
+
*
|
|
139
|
+
* // Only leaf nodes can be selected
|
|
140
|
+
* <ax-tree-view [selectionBehavior]="'leaf'" />
|
|
141
|
+
*
|
|
142
|
+
* // Parent shows indeterminate when children are selected
|
|
143
|
+
* <ax-tree-view [selectionBehavior]="'intermediate'" />
|
|
144
|
+
*
|
|
145
|
+
* // Selecting parent selects all children
|
|
146
|
+
* <ax-tree-view [selectionBehavior]="'nested'" />
|
|
147
|
+
*
|
|
148
|
+
* // Both: selecting parent selects children AND children affect parent state
|
|
149
|
+
* <ax-tree-view [selectionBehavior]="'intermediate-nested'" />
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
type AXTreeViewSelectionBehavior = 'all' | 'intermediate' | 'leaf' | 'nested' | 'intermediate-nested';
|
|
106
153
|
/**
|
|
107
154
|
* Function type for lazy loading tree nodes
|
|
108
155
|
*/
|
|
@@ -138,10 +185,8 @@ declare class AXTreeViewComponent {
|
|
|
138
185
|
readonly selectMode: _angular_core.InputSignal<AXTreeViewSelectMode>;
|
|
139
186
|
/** Whether to show checkboxes for selection (only applies to multiple mode) */
|
|
140
187
|
readonly showCheckbox: _angular_core.InputSignal<boolean>;
|
|
141
|
-
/**
|
|
142
|
-
readonly
|
|
143
|
-
/** When true, selecting a child makes parents indeterminate (only for multiple mode) */
|
|
144
|
-
readonly intermediateState: _angular_core.InputSignal<boolean>;
|
|
188
|
+
/** Selection behavior: 'all' (select anything, no special behavior), 'intermediate' (parent indeterminate state when children selected), 'leaf' (only leaf nodes selectable), 'nested' (selecting parent selects all children) */
|
|
189
|
+
readonly selectionBehavior: _angular_core.InputSignal<AXTreeViewSelectionBehavior>;
|
|
145
190
|
/** When true, clicking on a node toggles its selection (works for both single and multiple modes) */
|
|
146
191
|
readonly checkOnClick: _angular_core.InputSignal<boolean>;
|
|
147
192
|
/** Drag and drop mode: 'none' (disabled), 'handler' (drag handle), 'item' (entire item) */
|
|
@@ -158,18 +203,42 @@ declare class AXTreeViewComponent {
|
|
|
158
203
|
readonly collapsedIcon: _angular_core.InputSignal<string>;
|
|
159
204
|
/** Indent size in pixels for each level */
|
|
160
205
|
readonly indentSize: _angular_core.InputSignal<number>;
|
|
161
|
-
/** Node height in pixels */
|
|
162
|
-
readonly nodeHeight: _angular_core.InputSignal<"compact" | "normal" | "comfortable">;
|
|
163
206
|
/** Visual style variant */
|
|
164
207
|
readonly look: _angular_core.InputSignal<AXTreeViewViewLook>;
|
|
165
208
|
/** Custom template for tree items */
|
|
166
|
-
readonly
|
|
209
|
+
readonly nodeTemplate: _angular_core.InputSignal<TemplateRef<AXTreeViewItemTemplateContext>>;
|
|
210
|
+
/** Field name for node ID (default: 'id') */
|
|
211
|
+
readonly idField: _angular_core.InputSignal<string>;
|
|
212
|
+
/** Field name for node title (default: 'title') */
|
|
213
|
+
readonly titleField: _angular_core.InputSignal<string>;
|
|
214
|
+
/** Field name for node tooltip (default: 'tooltip') */
|
|
215
|
+
readonly tooltipField: _angular_core.InputSignal<string>;
|
|
216
|
+
/** Field name for node icon (default: 'icon') */
|
|
217
|
+
readonly iconField: _angular_core.InputSignal<string>;
|
|
218
|
+
/** Field name for expanded state (default: 'expanded') */
|
|
219
|
+
readonly expandedField: _angular_core.InputSignal<string>;
|
|
220
|
+
/** Field name for selected state (default: 'selected') */
|
|
221
|
+
readonly selectedField: _angular_core.InputSignal<string>;
|
|
222
|
+
/** Field name for indeterminate state (default: 'indeterminate') */
|
|
223
|
+
readonly indeterminateField: _angular_core.InputSignal<string>;
|
|
224
|
+
/** Field name for disabled state (default: 'disabled') */
|
|
225
|
+
readonly disabledField: _angular_core.InputSignal<string>;
|
|
226
|
+
/** Field name for hidden state (default: 'hidden') */
|
|
227
|
+
readonly hiddenField: _angular_core.InputSignal<string>;
|
|
228
|
+
/** Field name for children array (default: 'children') */
|
|
229
|
+
readonly childrenField: _angular_core.InputSignal<string>;
|
|
230
|
+
/** Field name for children count (default: 'childrenCount') */
|
|
231
|
+
readonly childrenCountField: _angular_core.InputSignal<string>;
|
|
232
|
+
/** Field name for custom data (default: 'data') */
|
|
233
|
+
readonly dataField: _angular_core.InputSignal<string>;
|
|
167
234
|
/** Emitted before a drop operation - set canceled to true to prevent drop */
|
|
168
235
|
readonly onBeforeDrop: _angular_core.OutputEmitterRef<AXTreeViewBeforeDropEvent>;
|
|
169
236
|
/** Emitted when a node is toggled (expanded/collapsed) */
|
|
170
237
|
readonly onNodeToggle: _angular_core.OutputEmitterRef<AXTreeViewNodeToggleEvent>;
|
|
171
238
|
/** Emitted when a node is selected/deselected */
|
|
172
239
|
readonly onNodeSelect: _angular_core.OutputEmitterRef<AXTreeViewNodeSelectEvent>;
|
|
240
|
+
/** Emitted when selection changes - returns all currently selected nodes */
|
|
241
|
+
readonly onSelectionChange: _angular_core.OutputEmitterRef<AXTreeViewSelectionChangeEvent>;
|
|
173
242
|
/** Emitted when nodes are reordered within the same parent */
|
|
174
243
|
readonly onOrderChange: _angular_core.OutputEmitterRef<AXTreeViewDropEvent>;
|
|
175
244
|
/** Emitted when a node is moved to a different parent */
|
|
@@ -191,6 +260,84 @@ declare class AXTreeViewComponent {
|
|
|
191
260
|
private isUpdatingFromDatasource;
|
|
192
261
|
/** Computed to check if datasource is a function */
|
|
193
262
|
private readonly isLazyDataSource;
|
|
263
|
+
/** Computed: Returns true when selection is restricted to leaf nodes only */
|
|
264
|
+
protected readonly isLeafOnlyMode: _angular_core.Signal<boolean>;
|
|
265
|
+
/** Computed: Returns true when selecting a parent automatically selects all its children */
|
|
266
|
+
protected readonly cascadesToChildren: _angular_core.Signal<boolean>;
|
|
267
|
+
/** Computed: Returns true when parent nodes show indeterminate state based on children selection */
|
|
268
|
+
protected readonly hasIntermediateState: _angular_core.Signal<boolean>;
|
|
269
|
+
/**
|
|
270
|
+
* Get a property value from a node using the configured field name
|
|
271
|
+
*/
|
|
272
|
+
protected getNodeProp<T = unknown>(node: AXTreeViewNode, fieldName: string, defaultValue?: T): T;
|
|
273
|
+
/**
|
|
274
|
+
* Set a property value on a node using the configured field name
|
|
275
|
+
*/
|
|
276
|
+
protected setNodeProp(node: AXTreeViewNode, fieldName: string, value: unknown): void;
|
|
277
|
+
/**
|
|
278
|
+
* Get node ID
|
|
279
|
+
*/
|
|
280
|
+
protected getNodeId(node: AXTreeViewNode): string;
|
|
281
|
+
/**
|
|
282
|
+
* Get node title
|
|
283
|
+
*/
|
|
284
|
+
protected getNodeTitle(node: AXTreeViewNode): string;
|
|
285
|
+
/**
|
|
286
|
+
* Get node tooltip
|
|
287
|
+
*/
|
|
288
|
+
protected getNodeTooltip(node: AXTreeViewNode): string | undefined;
|
|
289
|
+
/**
|
|
290
|
+
* Get node icon
|
|
291
|
+
*/
|
|
292
|
+
protected getNodeIcon(node: AXTreeViewNode): string | undefined;
|
|
293
|
+
/**
|
|
294
|
+
* Get node expanded state
|
|
295
|
+
*/
|
|
296
|
+
protected getNodeExpanded(node: AXTreeViewNode): boolean;
|
|
297
|
+
/**
|
|
298
|
+
* Set node expanded state
|
|
299
|
+
*/
|
|
300
|
+
protected setNodeExpanded(node: AXTreeViewNode, value: boolean): void;
|
|
301
|
+
/**
|
|
302
|
+
* Get node selected state
|
|
303
|
+
*/
|
|
304
|
+
protected getNodeSelected(node: AXTreeViewNode): boolean;
|
|
305
|
+
/**
|
|
306
|
+
* Set node selected state
|
|
307
|
+
*/
|
|
308
|
+
protected setNodeSelected(node: AXTreeViewNode, value: boolean): void;
|
|
309
|
+
/**
|
|
310
|
+
* Get node indeterminate state
|
|
311
|
+
*/
|
|
312
|
+
protected getNodeIndeterminate(node: AXTreeViewNode): boolean;
|
|
313
|
+
/**
|
|
314
|
+
* Set node indeterminate state
|
|
315
|
+
*/
|
|
316
|
+
protected setNodeIndeterminate(node: AXTreeViewNode, value: boolean): void;
|
|
317
|
+
/**
|
|
318
|
+
* Get node disabled state
|
|
319
|
+
*/
|
|
320
|
+
protected getNodeDisabled(node: AXTreeViewNode): boolean;
|
|
321
|
+
/**
|
|
322
|
+
* Get node hidden state
|
|
323
|
+
*/
|
|
324
|
+
protected getNodeHidden(node: AXTreeViewNode): boolean;
|
|
325
|
+
/**
|
|
326
|
+
* Get node children array
|
|
327
|
+
*/
|
|
328
|
+
protected getNodeChildren(node: AXTreeViewNode): AXTreeViewNode[] | undefined;
|
|
329
|
+
/**
|
|
330
|
+
* Set node children array
|
|
331
|
+
*/
|
|
332
|
+
protected setNodeChildren(node: AXTreeViewNode, value: AXTreeViewNode[] | undefined): void;
|
|
333
|
+
/**
|
|
334
|
+
* Get node children count
|
|
335
|
+
*/
|
|
336
|
+
protected getNodeChildrenCount(node: AXTreeViewNode): number | undefined;
|
|
337
|
+
/**
|
|
338
|
+
* Set node children count
|
|
339
|
+
*/
|
|
340
|
+
protected setNodeChildrenCount(node: AXTreeViewNode, value: number | undefined): void;
|
|
194
341
|
/**
|
|
195
342
|
* Expand all nodes in the tree (with lazy loading support)
|
|
196
343
|
*/
|
|
@@ -235,6 +382,142 @@ declare class AXTreeViewComponent {
|
|
|
235
382
|
* Check if a node is currently loading
|
|
236
383
|
*/
|
|
237
384
|
isNodeLoading(nodeId: string): boolean;
|
|
385
|
+
/**
|
|
386
|
+
* Get loading state for a node (internal state)
|
|
387
|
+
*/
|
|
388
|
+
getNodeLoading(node: AXTreeViewNode): boolean;
|
|
389
|
+
/**
|
|
390
|
+
* Edit/update a node's properties
|
|
391
|
+
* @param nodeId - The ID of the node to edit
|
|
392
|
+
* @param updates - Partial node object with properties to update
|
|
393
|
+
* @returns true if node was found and updated, false otherwise
|
|
394
|
+
*/
|
|
395
|
+
editNode(nodeId: string, updates: Partial<AXTreeViewNode>): boolean;
|
|
396
|
+
/**
|
|
397
|
+
* Add a child node to a parent node
|
|
398
|
+
* @param parentId - The ID of the parent node
|
|
399
|
+
* @param childNode - The child node to add
|
|
400
|
+
* @param index - Optional index to insert at (default: append to end)
|
|
401
|
+
* @returns true if parent was found and child was added, false otherwise
|
|
402
|
+
*/
|
|
403
|
+
addChild(parentId: string, childNode: AXTreeViewNode, index?: number): boolean;
|
|
404
|
+
/**
|
|
405
|
+
* Remove a node from the tree
|
|
406
|
+
* @param nodeId - The ID of the node to remove
|
|
407
|
+
* @returns The removed node if found, null otherwise
|
|
408
|
+
*/
|
|
409
|
+
removeNode(nodeId: string): AXTreeViewNode | null;
|
|
410
|
+
/**
|
|
411
|
+
* Expand a specific node
|
|
412
|
+
* @param nodeId - The ID of the node to expand
|
|
413
|
+
* @returns Promise that resolves when expansion is complete (if lazy loading)
|
|
414
|
+
*/
|
|
415
|
+
expandNode(nodeId: string): Promise<void>;
|
|
416
|
+
/**
|
|
417
|
+
* Collapse a specific node
|
|
418
|
+
* @param nodeId - The ID of the node to collapse
|
|
419
|
+
*/
|
|
420
|
+
collapseNode(nodeId: string): void;
|
|
421
|
+
/**
|
|
422
|
+
* Toggle expansion state of a specific node
|
|
423
|
+
* @param nodeId - The ID of the node to toggle
|
|
424
|
+
* @returns Promise that resolves when toggle is complete (if lazy loading)
|
|
425
|
+
*/
|
|
426
|
+
toggleNodeExpansion(nodeId: string): Promise<void>;
|
|
427
|
+
/**
|
|
428
|
+
* Programmatically select a node
|
|
429
|
+
* @param nodeId - The ID of the node to select
|
|
430
|
+
* @returns true if node was found and selected, false otherwise
|
|
431
|
+
*/
|
|
432
|
+
selectNode(nodeId: string): boolean;
|
|
433
|
+
/**
|
|
434
|
+
* Programmatically deselect a node
|
|
435
|
+
* @param nodeId - The ID of the node to deselect
|
|
436
|
+
* @returns true if node was found and deselected, false otherwise
|
|
437
|
+
*/
|
|
438
|
+
deselectNode(nodeId: string): boolean;
|
|
439
|
+
/**
|
|
440
|
+
* Get parent node of a given node
|
|
441
|
+
* @param nodeId - The ID of the node
|
|
442
|
+
* @returns The parent node if found, null otherwise
|
|
443
|
+
*/
|
|
444
|
+
getParent(nodeId: string): AXTreeViewNode | null;
|
|
445
|
+
/**
|
|
446
|
+
* Get children of a node
|
|
447
|
+
* @param nodeId - The ID of the parent node
|
|
448
|
+
* @returns Array of child nodes, or null if node not found
|
|
449
|
+
*/
|
|
450
|
+
getChildren(nodeId: string): AXTreeViewNode[] | null;
|
|
451
|
+
/**
|
|
452
|
+
* Get all root nodes
|
|
453
|
+
* @returns Array of root nodes
|
|
454
|
+
*/
|
|
455
|
+
getRootNodes(): AXTreeViewNode[];
|
|
456
|
+
/**
|
|
457
|
+
* Get all nodes in a flat array
|
|
458
|
+
* @returns Array of all nodes in the tree
|
|
459
|
+
*/
|
|
460
|
+
getAllNodes(): AXTreeViewNode[];
|
|
461
|
+
/**
|
|
462
|
+
* Get the path to a node (array of parent IDs from root to node)
|
|
463
|
+
* @param nodeId - The ID of the node
|
|
464
|
+
* @returns Array of node IDs representing the path, or empty array if node not found
|
|
465
|
+
*/
|
|
466
|
+
getNodePath(nodeId: string): string[];
|
|
467
|
+
/**
|
|
468
|
+
* Get the level/depth of a node (0 = root level)
|
|
469
|
+
* @param nodeId - The ID of the node
|
|
470
|
+
* @returns The level of the node, or -1 if node not found
|
|
471
|
+
*/
|
|
472
|
+
getNodeLevel(nodeId: string): number;
|
|
473
|
+
/**
|
|
474
|
+
* Programmatically move a node to a new parent
|
|
475
|
+
* @param nodeId - The ID of the node to move
|
|
476
|
+
* @param newParentId - The ID of the new parent (undefined for root level)
|
|
477
|
+
* @param index - Optional index to insert at (default: append to end)
|
|
478
|
+
* @returns true if move was successful, false otherwise
|
|
479
|
+
*/
|
|
480
|
+
moveNode(nodeId: string, newParentId?: string, index?: number): boolean;
|
|
481
|
+
/**
|
|
482
|
+
* Clone a node (creates a deep copy)
|
|
483
|
+
* @param nodeId - The ID of the node to clone
|
|
484
|
+
* @returns The cloned node, or null if node not found
|
|
485
|
+
*/
|
|
486
|
+
cloneNode(nodeId: string): AXTreeViewNode | null;
|
|
487
|
+
/**
|
|
488
|
+
* Focus a specific node by ID
|
|
489
|
+
* @param nodeId - The ID of the node to focus
|
|
490
|
+
* @returns true if node was found and focused, false otherwise
|
|
491
|
+
*/
|
|
492
|
+
focusNode(nodeId: string): boolean;
|
|
493
|
+
/**
|
|
494
|
+
* Get all expanded nodes
|
|
495
|
+
* @returns Array of expanded nodes
|
|
496
|
+
*/
|
|
497
|
+
getExpandedNodes(): AXTreeViewNode[];
|
|
498
|
+
/**
|
|
499
|
+
* Get all collapsed nodes that have children
|
|
500
|
+
* @returns Array of collapsed nodes with children
|
|
501
|
+
*/
|
|
502
|
+
getCollapsedNodes(): AXTreeViewNode[];
|
|
503
|
+
/**
|
|
504
|
+
* Check if a node is expanded
|
|
505
|
+
* @param nodeId - The ID of the node
|
|
506
|
+
* @returns true if node is expanded, false otherwise
|
|
507
|
+
*/
|
|
508
|
+
isNodeExpanded(nodeId: string): boolean;
|
|
509
|
+
/**
|
|
510
|
+
* Check if a node is selected
|
|
511
|
+
* @param nodeId - The ID of the node
|
|
512
|
+
* @returns true if node is selected, false otherwise
|
|
513
|
+
*/
|
|
514
|
+
isNodeSelected(nodeId: string): boolean;
|
|
515
|
+
/**
|
|
516
|
+
* Check if a node has children
|
|
517
|
+
* @param nodeId - The ID of the node
|
|
518
|
+
* @returns true if node has children, false otherwise
|
|
519
|
+
*/
|
|
520
|
+
hasChildren(nodeId: string): boolean;
|
|
238
521
|
/**
|
|
239
522
|
* Get template context for a node
|
|
240
523
|
*/
|
|
@@ -251,6 +534,19 @@ declare class AXTreeViewComponent {
|
|
|
251
534
|
* Check if checkboxes should be shown (only for multiple mode)
|
|
252
535
|
*/
|
|
253
536
|
shouldShowCheckbox(): boolean;
|
|
537
|
+
/**
|
|
538
|
+
* Check if a node is a leaf (has no children)
|
|
539
|
+
* A node is a leaf if it has no loaded children AND no childrenCount (or childrenCount is 0)
|
|
540
|
+
*/
|
|
541
|
+
isLeafNode(node: AXTreeViewNode): boolean;
|
|
542
|
+
/**
|
|
543
|
+
* Check if a node can be selected (considering selectMode and isLeafOnlyMode)
|
|
544
|
+
*/
|
|
545
|
+
canSelectNode(node: AXTreeViewNode): boolean;
|
|
546
|
+
/**
|
|
547
|
+
* Check if checkbox should be shown for a specific node
|
|
548
|
+
*/
|
|
549
|
+
shouldShowCheckboxForNode(node: AXTreeViewNode): boolean;
|
|
254
550
|
/**
|
|
255
551
|
* Generate unique list ID for each node
|
|
256
552
|
*/
|
|
@@ -271,6 +567,10 @@ declare class AXTreeViewComponent {
|
|
|
271
567
|
* Get ARIA selected state for a node
|
|
272
568
|
*/
|
|
273
569
|
getNodeAriaSelected(node: AXTreeViewNode): string | null;
|
|
570
|
+
/**
|
|
571
|
+
* Emit selection change event with all selected nodes
|
|
572
|
+
*/
|
|
573
|
+
private emitSelectionChange;
|
|
274
574
|
/**
|
|
275
575
|
* Handle node click - for single selection mode or multiple mode with checkOnClick enabled
|
|
276
576
|
*/
|
|
@@ -397,7 +697,7 @@ declare class AXTreeViewComponent {
|
|
|
397
697
|
*/
|
|
398
698
|
private handleError;
|
|
399
699
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTreeViewComponent, never>;
|
|
400
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTreeViewComponent, "ax-tree-view", never, { "datasource": { "alias": "datasource"; "required": true; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; "isSignal": true; }; "
|
|
700
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTreeViewComponent, "ax-tree-view", never, { "datasource": { "alias": "datasource"; "required": true; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; "isSignal": true; }; "selectionBehavior": { "alias": "selectionBehavior"; "required": false; "isSignal": true; }; "checkOnClick": { "alias": "checkOnClick"; "required": false; "isSignal": true; }; "dragMode": { "alias": "dragMode"; "required": false; "isSignal": true; }; "dragOperationType": { "alias": "dragOperationType"; "required": false; "isSignal": true; }; "showIcons": { "alias": "showIcons"; "required": false; "isSignal": true; }; "showChildrenBadge": { "alias": "showChildrenBadge"; "required": false; "isSignal": true; }; "expandedIcon": { "alias": "expandedIcon"; "required": false; "isSignal": true; }; "collapsedIcon": { "alias": "collapsedIcon"; "required": false; "isSignal": true; }; "indentSize": { "alias": "indentSize"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "nodeTemplate": { "alias": "nodeTemplate"; "required": false; "isSignal": true; }; "idField": { "alias": "idField"; "required": false; "isSignal": true; }; "titleField": { "alias": "titleField"; "required": false; "isSignal": true; }; "tooltipField": { "alias": "tooltipField"; "required": false; "isSignal": true; }; "iconField": { "alias": "iconField"; "required": false; "isSignal": true; }; "expandedField": { "alias": "expandedField"; "required": false; "isSignal": true; }; "selectedField": { "alias": "selectedField"; "required": false; "isSignal": true; }; "indeterminateField": { "alias": "indeterminateField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "hiddenField": { "alias": "hiddenField"; "required": false; "isSignal": true; }; "childrenField": { "alias": "childrenField"; "required": false; "isSignal": true; }; "childrenCountField": { "alias": "childrenCountField"; "required": false; "isSignal": true; }; "dataField": { "alias": "dataField"; "required": false; "isSignal": true; }; }, { "datasource": "datasourceChange"; "onBeforeDrop": "onBeforeDrop"; "onNodeToggle": "onNodeToggle"; "onNodeSelect": "onNodeSelect"; "onSelectionChange": "onSelectionChange"; "onOrderChange": "onOrderChange"; "onMoveChange": "onMoveChange"; "onItemsChange": "onItemsChange"; }, never, never, true, never>;
|
|
401
701
|
}
|
|
402
702
|
|
|
403
703
|
declare class AXTreeViewModule {
|
|
@@ -417,16 +717,16 @@ declare class AXTreeViewService {
|
|
|
417
717
|
/**
|
|
418
718
|
* Find a node by ID in the tree
|
|
419
719
|
*/
|
|
420
|
-
findNodeById(nodes: AXTreeViewNode[], id: string): AXTreeViewNode | null;
|
|
720
|
+
findNodeById(nodes: AXTreeViewNode[], id: string, idField?: string): AXTreeViewNode | null;
|
|
421
721
|
/**
|
|
422
722
|
* Find parent node of a given node
|
|
423
723
|
*/
|
|
424
|
-
findParentNode(nodes: AXTreeViewNode[], targetNode: AXTreeViewNode): AXTreeViewNode | undefined;
|
|
724
|
+
findParentNode(nodes: AXTreeViewNode[], targetNode: AXTreeViewNode, idField?: string, childrenField?: string): AXTreeViewNode | undefined;
|
|
425
725
|
/**
|
|
426
726
|
* Check if targetNode is a descendant of ancestorNode (or the same node)
|
|
427
727
|
* Prevents circular references by checking if target exists in ancestor's children tree
|
|
428
728
|
*/
|
|
429
|
-
isValidDropTarget(movedNode: AXTreeViewNode, targetNode: AXTreeViewNode): boolean;
|
|
729
|
+
isValidDropTarget(movedNode: AXTreeViewNode, targetNode: AXTreeViewNode, idField?: string, childrenField?: string): boolean;
|
|
430
730
|
/**
|
|
431
731
|
* Check if targetNode is a descendant of ancestorNode
|
|
432
732
|
*/
|
|
@@ -434,67 +734,67 @@ declare class AXTreeViewService {
|
|
|
434
734
|
/**
|
|
435
735
|
* Build a flat list of all visible focusable nodes
|
|
436
736
|
*/
|
|
437
|
-
buildFlatNodeList(nodes: AXTreeViewNode[]): AXTreeViewFlatNode[];
|
|
737
|
+
buildFlatNodeList(nodes: AXTreeViewNode[], hiddenField?: string, disabledField?: string, expandedField?: string, childrenField?: string): AXTreeViewFlatNode[];
|
|
438
738
|
/**
|
|
439
739
|
* Check if node has children
|
|
440
740
|
*/
|
|
441
|
-
hasChildren(node: AXTreeViewNode): boolean;
|
|
741
|
+
hasChildren(node: AXTreeViewNode, childrenField?: string): boolean;
|
|
442
742
|
/**
|
|
443
743
|
* Check if node can be lazy loaded
|
|
444
744
|
*/
|
|
445
|
-
canLazyLoad(node: AXTreeViewNode, isLazyDataSource: boolean): boolean;
|
|
745
|
+
canLazyLoad(node: AXTreeViewNode, isLazyDataSource: boolean, childrenCountField?: string, childrenField?: string): boolean;
|
|
446
746
|
/**
|
|
447
747
|
* Recursively select/deselect all children
|
|
448
748
|
*/
|
|
449
|
-
selectAllChildren(children: AXTreeViewNode[], selected: boolean): void;
|
|
749
|
+
selectAllChildren(children: AXTreeViewNode[], selected: boolean, selectedField?: string, indeterminateField?: string, childrenField?: string): void;
|
|
450
750
|
/**
|
|
451
751
|
* Get selection state of children
|
|
452
752
|
*/
|
|
453
|
-
getChildrenSelectionState(children: AXTreeViewNode[]): AXTreeViewChildrenSelectionState;
|
|
753
|
+
getChildrenSelectionState(children: AXTreeViewNode[], selectedField?: string, indeterminateField?: string): AXTreeViewChildrenSelectionState;
|
|
454
754
|
/**
|
|
455
755
|
* Update parent node states based on children selection (with intermediate state support)
|
|
456
756
|
*/
|
|
457
|
-
updateParentStates(nodes: AXTreeViewNode[], changedNode: AXTreeViewNode, intermediateState: boolean): void;
|
|
757
|
+
updateParentStates(nodes: AXTreeViewNode[], changedNode: AXTreeViewNode, intermediateState: boolean, idField?: string, childrenField?: string, selectedField?: string, indeterminateField?: string): void;
|
|
458
758
|
/**
|
|
459
759
|
* Recursively deselect all nodes
|
|
460
760
|
*/
|
|
461
|
-
deselectAllNodes(nodes: AXTreeViewNode[]): void;
|
|
761
|
+
deselectAllNodes(nodes: AXTreeViewNode[], selectedField?: string, indeterminateField?: string, childrenField?: string): void;
|
|
462
762
|
/**
|
|
463
763
|
* Recursively set selection state for all nodes
|
|
464
764
|
*/
|
|
465
|
-
setAllSelection(nodes: AXTreeViewNode[], selected: boolean): void;
|
|
765
|
+
setAllSelection(nodes: AXTreeViewNode[], selected: boolean, selectedField?: string, indeterminateField?: string, childrenField?: string): void;
|
|
466
766
|
/**
|
|
467
767
|
* Recursively count selected nodes
|
|
468
768
|
*/
|
|
469
|
-
countSelected(nodes: AXTreeViewNode[]): number;
|
|
769
|
+
countSelected(nodes: AXTreeViewNode[], selectedField?: string, childrenField?: string): number;
|
|
470
770
|
/**
|
|
471
771
|
* Recursively collect selected nodes
|
|
472
772
|
*/
|
|
473
|
-
collectSelected(nodes: AXTreeViewNode[], result: AXTreeViewNode[]): void;
|
|
773
|
+
collectSelected(nodes: AXTreeViewNode[], result: AXTreeViewNode[], selectedField?: string, childrenField?: string): void;
|
|
474
774
|
/**
|
|
475
775
|
* Recursively remove selected nodes
|
|
476
776
|
*/
|
|
477
|
-
removeSelected(nodes: AXTreeViewNode[]): void;
|
|
777
|
+
removeSelected(nodes: AXTreeViewNode[], selectedField?: string, indeterminateField?: string, childrenField?: string): void;
|
|
478
778
|
/**
|
|
479
779
|
* Recursively update all parent states in the tree (used after deletion)
|
|
480
780
|
*/
|
|
481
|
-
updateAllParentStates(nodes: AXTreeViewNode[], intermediateState: boolean): void;
|
|
781
|
+
updateAllParentStates(nodes: AXTreeViewNode[], intermediateState: boolean, childrenField?: string, selectedField?: string, indeterminateField?: string): void;
|
|
482
782
|
/**
|
|
483
783
|
* Recursively set expanded state (with lazy loading)
|
|
484
784
|
*/
|
|
485
|
-
setExpandedState(nodes: AXTreeViewNode[], expanded: boolean, isLazyDataSource: boolean, loadNodeChildren: (node: AXTreeViewNode) => Promise<void
|
|
785
|
+
setExpandedState(nodes: AXTreeViewNode[], expanded: boolean, isLazyDataSource: boolean, loadNodeChildren: (node: AXTreeViewNode) => Promise<void>, expandedField?: string, childrenField?: string, childrenCountField?: string): Promise<void>;
|
|
486
786
|
/**
|
|
487
787
|
* Get array reference by drop list ID
|
|
488
788
|
*/
|
|
489
|
-
getArrayByListId(nodes: AXTreeViewNode[], listId: string): AXTreeViewNode[] | null;
|
|
789
|
+
getArrayByListId(nodes: AXTreeViewNode[], listId: string, idField?: string, childrenField?: string): AXTreeViewNode[] | null;
|
|
490
790
|
/**
|
|
491
791
|
* Find parent node by list ID
|
|
492
792
|
*/
|
|
493
|
-
findParentByListId(nodes: AXTreeViewNode[], listId: string): AXTreeViewNode | undefined;
|
|
793
|
+
findParentByListId(nodes: AXTreeViewNode[], listId: string, idField?: string): AXTreeViewNode | undefined;
|
|
494
794
|
/**
|
|
495
795
|
* Generate unique list ID for each node
|
|
496
796
|
*/
|
|
497
|
-
getListId(node?:
|
|
797
|
+
getListId(node: AXTreeViewNode | undefined, idField?: string): string;
|
|
498
798
|
/**
|
|
499
799
|
* Get root list ID constant
|
|
500
800
|
*/
|
|
@@ -507,9 +807,36 @@ declare class AXTreeViewService {
|
|
|
507
807
|
* Get list prefix constant
|
|
508
808
|
*/
|
|
509
809
|
getListPrefix(): string;
|
|
810
|
+
/**
|
|
811
|
+
* Get all nodes in a flat array
|
|
812
|
+
*/
|
|
813
|
+
getAllNodes(nodes: AXTreeViewNode[], childrenField?: string): AXTreeViewNode[];
|
|
814
|
+
/**
|
|
815
|
+
* Get the path to a node (array of parent nodes from root to node)
|
|
816
|
+
*/
|
|
817
|
+
getNodePath(nodes: AXTreeViewNode[], nodeId: string): AXTreeViewNode[];
|
|
818
|
+
/**
|
|
819
|
+
* Get the level/depth of a node (0 = root level)
|
|
820
|
+
*/
|
|
821
|
+
getNodeLevel(nodes: AXTreeViewNode[], nodeId: string): number;
|
|
822
|
+
/**
|
|
823
|
+
* Get sibling nodes of a given node
|
|
824
|
+
*/
|
|
825
|
+
getSiblings(nodes: AXTreeViewNode[], nodeId: string, idField?: string, childrenField?: string): AXTreeViewNode[];
|
|
826
|
+
/**
|
|
827
|
+
* Clone a node (creates a deep copy)
|
|
828
|
+
*/
|
|
829
|
+
cloneNode(node: AXTreeViewNode, idField?: string, titleField?: string, tooltipField?: string, iconField?: string, expandedField?: string, selectedField?: string, indeterminateField?: string, disabledField?: string, hiddenField?: string, childrenCountField?: string, dataField?: string, childrenField?: string): AXTreeViewNode;
|
|
830
|
+
/**
|
|
831
|
+
* Validate node structure (check for required fields and circular references)
|
|
832
|
+
*/
|
|
833
|
+
validateNode(node: AXTreeViewNode, visitedIds?: Set<string>, idField?: string, titleField?: string, childrenField?: string, childrenCountField?: string): {
|
|
834
|
+
valid: boolean;
|
|
835
|
+
errors: string[];
|
|
836
|
+
};
|
|
510
837
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTreeViewService, never>;
|
|
511
838
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXTreeViewService>;
|
|
512
839
|
}
|
|
513
840
|
|
|
514
841
|
export { AXTreeViewComponent, AXTreeViewModule, AXTreeViewService };
|
|
515
|
-
export type { AXTreeViewBeforeDropEvent, AXTreeViewCallback, AXTreeViewChildrenSelectionState, AXTreeViewDataSource, AXTreeViewDragMode, AXTreeViewDragOperationType, AXTreeViewDropEvent, AXTreeViewFlatNode, AXTreeViewItemTemplateContext, AXTreeViewNode, AXTreeViewNodeSelectEvent, AXTreeViewNodeToggleEvent, AXTreeViewSelectMode, AXTreeViewViewLook };
|
|
842
|
+
export type { AXTreeViewBeforeDropEvent, AXTreeViewCallback, AXTreeViewChildrenSelectionState, AXTreeViewDataSource, AXTreeViewDragMode, AXTreeViewDragOperationType, AXTreeViewDropEvent, AXTreeViewFlatNode, AXTreeViewItemTemplateContext, AXTreeViewNode, AXTreeViewNodeSelectEvent, AXTreeViewNodeToggleEvent, AXTreeViewSelectMode, AXTreeViewSelectionBehavior, AXTreeViewSelectionChangeEvent, AXTreeViewViewLook };
|