@acorex/components 21.0.0-next.46 → 21.0.0-next.47

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/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "21.0.0-next.46",
3
+ "version": "21.0.0-next.47",
4
4
  "peerDependencies": {
5
- "@acorex/core": "21.0.0-next.46",
6
- "@acorex/cdk": "21.0.0-next.46",
5
+ "@acorex/core": "21.0.0-next.47",
6
+ "@acorex/cdk": "21.0.0-next.47",
7
7
  "@angular/common": "^20.0.0",
8
8
  "@angular/core": "^20.0.0",
9
9
  "@angular/cdk": "^20.0.0",
@@ -192,14 +192,14 @@
192
192
  "types": "./decorators/index.d.ts",
193
193
  "default": "./fesm2022/acorex-components-decorators.mjs"
194
194
  },
195
- "./dialog": {
196
- "types": "./dialog/index.d.ts",
197
- "default": "./fesm2022/acorex-components-dialog.mjs"
198
- },
199
195
  "./drawer": {
200
196
  "types": "./drawer/index.d.ts",
201
197
  "default": "./fesm2022/acorex-components-drawer.mjs"
202
198
  },
199
+ "./dialog": {
200
+ "types": "./dialog/index.d.ts",
201
+ "default": "./fesm2022/acorex-components-dialog.mjs"
202
+ },
203
203
  "./drawer-legacy": {
204
204
  "types": "./drawer-legacy/index.d.ts",
205
205
  "default": "./fesm2022/acorex-components-drawer-legacy.mjs"
@@ -121,6 +121,8 @@ interface AXTreeViewItemTemplateContext {
121
121
  expanded: boolean;
122
122
  childrenCount: number;
123
123
  loading: boolean;
124
+ /** Whether the node is effectively disabled (considering inheritance from parents) */
125
+ disabled: boolean;
124
126
  }
125
127
  type AXTreeViewViewLook = 'default' | 'card' | 'with-line';
126
128
  type AXTreeViewDragArea = 'handler' | 'item';
@@ -233,6 +235,8 @@ declare class AXTreeViewComponent {
233
235
  readonly childrenCountField: _angular_core.InputSignal<string>;
234
236
  /** Field name for custom data. Default: `'data'` */
235
237
  readonly dataField: _angular_core.InputSignal<string>;
238
+ /** Whether disabled state is inherited from parent nodes. Default: `true`. */
239
+ readonly inheritDisabled: _angular_core.InputSignal<boolean>;
236
240
  /** Emitted before a drop operation - set canceled to true to prevent drop */
237
241
  readonly onBeforeDrop: _angular_core.OutputEmitterRef<AXTreeViewBeforeDropEvent>;
238
242
  /** Emitted when a node is toggled (expanded/collapsed) */
@@ -325,9 +329,22 @@ declare class AXTreeViewComponent {
325
329
  */
326
330
  protected setNodeIndeterminate(node: AXTreeViewNode, value: boolean): void;
327
331
  /**
328
- * Get node disabled state
332
+ * Get node's own disabled state (without inheritance)
329
333
  */
330
334
  protected getNodeDisabled(node: AXTreeViewNode): boolean;
335
+ /**
336
+ * Check if node is effectively disabled (considering inheritance from parents)
337
+ * When inheritDisabled is true:
338
+ * - Returns true if node itself is disabled
339
+ * - Returns true if any ancestor is disabled AND node doesn't have explicit `disabled: false`
340
+ * When inheritDisabled is false:
341
+ * - Only returns node's own disabled state
342
+ */
343
+ protected isNodeEffectivelyDisabled(node: AXTreeViewNode): boolean;
344
+ /**
345
+ * Check if any ancestor of the node is disabled
346
+ */
347
+ private isAnyAncestorDisabled;
331
348
  /**
332
349
  * Get node hidden state
333
350
  */
@@ -373,7 +390,7 @@ declare class AXTreeViewComponent {
373
390
  */
374
391
  deleteSelected(): void;
375
392
  /**
376
- * Select all nodes in the tree
393
+ * Select all nodes in the tree (respects disabled state)
377
394
  */
378
395
  selectAll(): void;
379
396
  /**
@@ -528,6 +545,12 @@ declare class AXTreeViewComponent {
528
545
  * @returns true if node has children, false otherwise
529
546
  */
530
547
  hasChildren(nodeId: string): boolean;
548
+ /**
549
+ * Check if a node is disabled (considering inheritance from parent nodes)
550
+ * @param nodeId - The ID of the node
551
+ * @returns true if node is disabled (directly or inherited), false otherwise
552
+ */
553
+ isDisabled(nodeId: string): boolean;
531
554
  /**
532
555
  * Get template context for a node
533
556
  */
@@ -591,6 +614,7 @@ declare class AXTreeViewComponent {
591
614
  onNodeClickHandle(node: AXTreeViewNode, event: Event): void;
592
615
  /**
593
616
  * Toggle node expansion state with lazy loading support
617
+ * Note: Disabled nodes can still be toggled (expanded/collapsed) for better UX
594
618
  */
595
619
  toggleNode(node: AXTreeViewNode, event: Event): Promise<void>;
596
620
  /**
@@ -715,7 +739,7 @@ declare class AXTreeViewComponent {
715
739
  */
716
740
  private handleError;
717
741
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTreeViewComponent, never>;
718
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTreeViewComponent, "ax-tree-view", never, { "datasource": { "alias": "datasource"; "required": true; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "selectionBehavior": { "alias": "selectionBehavior"; "required": false; "isSignal": true; }; "dragArea": { "alias": "dragArea"; "required": false; "isSignal": true; }; "dragBehavior": { "alias": "dragBehavior"; "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"; "onNodeDoubleClick": "onNodeDoubleClick"; "onNodeClick": "onNodeClick"; "onSelectionChange": "onSelectionChange"; "onOrderChange": "onOrderChange"; "onMoveChange": "onMoveChange"; "onItemsChange": "onItemsChange"; }, never, never, true, never>;
742
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTreeViewComponent, "ax-tree-view", never, { "datasource": { "alias": "datasource"; "required": true; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "selectionBehavior": { "alias": "selectionBehavior"; "required": false; "isSignal": true; }; "dragArea": { "alias": "dragArea"; "required": false; "isSignal": true; }; "dragBehavior": { "alias": "dragBehavior"; "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; }; "inheritDisabled": { "alias": "inheritDisabled"; "required": false; "isSignal": true; }; }, { "datasource": "datasourceChange"; "onBeforeDrop": "onBeforeDrop"; "onNodeToggle": "onNodeToggle"; "onNodeSelect": "onNodeSelect"; "onNodeDoubleClick": "onNodeDoubleClick"; "onNodeClick": "onNodeClick"; "onSelectionChange": "onSelectionChange"; "onOrderChange": "onOrderChange"; "onMoveChange": "onMoveChange"; "onItemsChange": "onItemsChange"; }, never, never, true, never>;
719
743
  }
720
744
 
721
745
  declare class AXTreeViewModule {
@@ -735,7 +759,7 @@ declare class AXTreeViewService {
735
759
  /**
736
760
  * Find a node by ID in the tree
737
761
  */
738
- findNodeById(nodes: AXTreeViewNode[], id: string, idField?: string): AXTreeViewNode | null;
762
+ findNodeById(nodes: AXTreeViewNode[], id: string, idField?: string, childrenField?: string): AXTreeViewNode | null;
739
763
  /**
740
764
  * Find parent node of a given node
741
765
  */
@@ -808,7 +832,7 @@ declare class AXTreeViewService {
808
832
  /**
809
833
  * Find parent node by list ID
810
834
  */
811
- findParentByListId(nodes: AXTreeViewNode[], listId: string, idField?: string): AXTreeViewNode | undefined;
835
+ findParentByListId(nodes: AXTreeViewNode[], listId: string, idField?: string, childrenField?: string): AXTreeViewNode | undefined;
812
836
  /**
813
837
  * Generate unique list ID for each node
814
838
  */