@acorex/components 21.0.2-next.36 → 21.0.2-next.38

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.2-next.36",
3
+ "version": "21.0.2-next.38",
4
4
  "peerDependencies": {
5
- "@acorex/core": "21.0.2-next.36",
6
- "@acorex/cdk": "21.0.2-next.36",
5
+ "@acorex/core": "21.0.2-next.38",
6
+ "@acorex/cdk": "21.0.2-next.38",
7
7
  "polytype": ">=0.17.0",
8
8
  "angular-imask": ">=7.6.1",
9
9
  "gridstack": ">=12.0.0",
@@ -424,6 +424,10 @@
424
424
  "types": "./step-wizard/index.d.ts",
425
425
  "default": "./fesm2022/acorex-components-step-wizard.mjs"
426
426
  },
427
+ "./switch": {
428
+ "types": "./switch/index.d.ts",
429
+ "default": "./fesm2022/acorex-components-switch.mjs"
430
+ },
427
431
  "./tabs": {
428
432
  "types": "./tabs/index.d.ts",
429
433
  "default": "./fesm2022/acorex-components-tabs.mjs"
@@ -432,14 +436,14 @@
432
436
  "types": "./tag/index.d.ts",
433
437
  "default": "./fesm2022/acorex-components-tag.mjs"
434
438
  },
439
+ "./text-area": {
440
+ "types": "./text-area/index.d.ts",
441
+ "default": "./fesm2022/acorex-components-text-area.mjs"
442
+ },
435
443
  "./tag-box": {
436
444
  "types": "./tag-box/index.d.ts",
437
445
  "default": "./fesm2022/acorex-components-tag-box.mjs"
438
446
  },
439
- "./switch": {
440
- "types": "./switch/index.d.ts",
441
- "default": "./fesm2022/acorex-components-switch.mjs"
442
- },
443
447
  "./text-box": {
444
448
  "types": "./text-box/index.d.ts",
445
449
  "default": "./fesm2022/acorex-components-text-box.mjs"
@@ -448,22 +452,10 @@
448
452
  "types": "./time-duration/index.d.ts",
449
453
  "default": "./fesm2022/acorex-components-time-duration.mjs"
450
454
  },
451
- "./text-area": {
452
- "types": "./text-area/index.d.ts",
453
- "default": "./fesm2022/acorex-components-text-area.mjs"
454
- },
455
455
  "./time-line": {
456
456
  "types": "./time-line/index.d.ts",
457
457
  "default": "./fesm2022/acorex-components-time-line.mjs"
458
458
  },
459
- "./toast": {
460
- "types": "./toast/index.d.ts",
461
- "default": "./fesm2022/acorex-components-toast.mjs"
462
- },
463
- "./toolbar": {
464
- "types": "./toolbar/index.d.ts",
465
- "default": "./fesm2022/acorex-components-toolbar.mjs"
466
- },
467
459
  "./tooltip": {
468
460
  "types": "./tooltip/index.d.ts",
469
461
  "default": "./fesm2022/acorex-components-tooltip.mjs"
@@ -476,6 +468,18 @@
476
468
  "types": "./tree-view-legacy/index.d.ts",
477
469
  "default": "./fesm2022/acorex-components-tree-view-legacy.mjs"
478
470
  },
471
+ "./toolbar": {
472
+ "types": "./toolbar/index.d.ts",
473
+ "default": "./fesm2022/acorex-components-toolbar.mjs"
474
+ },
475
+ "./toast": {
476
+ "types": "./toast/index.d.ts",
477
+ "default": "./fesm2022/acorex-components-toast.mjs"
478
+ },
479
+ "./uploader": {
480
+ "types": "./uploader/index.d.ts",
481
+ "default": "./fesm2022/acorex-components-uploader.mjs"
482
+ },
479
483
  "./video-player": {
480
484
  "types": "./video-player/index.d.ts",
481
485
  "default": "./fesm2022/acorex-components-video-player.mjs"
@@ -483,10 +487,6 @@
483
487
  "./wysiwyg": {
484
488
  "types": "./wysiwyg/index.d.ts",
485
489
  "default": "./fesm2022/acorex-components-wysiwyg.mjs"
486
- },
487
- "./uploader": {
488
- "types": "./uploader/index.d.ts",
489
- "default": "./fesm2022/acorex-components-uploader.mjs"
490
490
  }
491
491
  }
492
492
  }
@@ -97,6 +97,14 @@ interface AXTreeViewNodeToggleEvent extends AXHtmlEvent {
97
97
  }
98
98
  interface AXTreeViewNodeSelectEvent extends AXHtmlEvent {
99
99
  node: AXTreeViewNode;
100
+ /** When false, the selection change was applied programmatically (controlled sync, selectNode, etc.). */
101
+ isUserInteraction?: boolean;
102
+ }
103
+ type AXTreeViewSelectionSource = 'user' | 'programmatic';
104
+ /** Options for {@link AXTreeViewComponent.selectAndReveal}. */
105
+ interface AXTreeViewSelectAndRevealOptions {
106
+ /** Ancestor node ids from root to parent for each target id (parallel to nodeIds). */
107
+ ancestorPaths?: string[][];
100
108
  }
101
109
  interface AXTreeViewNodeDoubleClickEvent extends AXHtmlEvent {
102
110
  node: AXTreeViewNode;
@@ -106,6 +114,8 @@ interface AXTreeViewNodeClickEvent extends AXHtmlEvent {
106
114
  }
107
115
  interface AXTreeViewSelectionChangeEvent extends AXEvent {
108
116
  selectedNodes: AXTreeViewNode[];
117
+ selectedIds: string[];
118
+ source: AXTreeViewSelectionSource;
109
119
  }
110
120
  interface AXTreeViewDropEvent extends AXEvent {
111
121
  node: AXTreeViewNode;
@@ -260,6 +270,13 @@ declare class AXTreeViewComponent {
260
270
  readonly doubleClickDuration: _angular_core.InputSignal<number>;
261
271
  /** Duration in milliseconds for detecting double-clicks. Default: `50`. */
262
272
  readonly tooltipDelay: _angular_core.InputSignal<number>;
273
+ /**
274
+ * When true, {@link selectedIds} is the source of truth: the tree applies it on load/reload
275
+ * and emits updates on user interaction. Default: `false` (existing imperative API unchanged).
276
+ */
277
+ readonly controlledSelection: _angular_core.InputSignal<boolean>;
278
+ /** Selected node ids (two-way). Used when {@link controlledSelection} is true. */
279
+ readonly selectedIds: _angular_core.ModelSignal<string[]>;
263
280
  /** Emitted before a drop operation - set canceled to true to prevent drop */
264
281
  readonly onBeforeDrop: _angular_core.OutputEmitterRef<AXTreeViewBeforeDropEvent>;
265
282
  /** Emitted when a node is toggled (expanded/collapsed) */
@@ -297,6 +314,11 @@ declare class AXTreeViewComponent {
297
314
  protected readonly directionCollapsedIcon: _angular_core.Signal<string>;
298
315
  /** Flag to prevent infinite loops when syncing datasource */
299
316
  private isUpdatingFromDatasource;
317
+ /** Bumped when controlled selection changes so stale async sync is ignored. */
318
+ private selectionSyncRevision;
319
+ private pendingApplySelectedIdsTimeout?;
320
+ /** Prevents selectedIds effect from re-applying when the model was updated from the tree. */
321
+ private isUpdatingSelectedIdsModel;
300
322
  /** Computed to check if datasource is a function */
301
323
  private readonly isLazyDataSource;
302
324
  /** Computed: Returns true when selection is restricted to leaf nodes only */
@@ -423,6 +445,15 @@ declare class AXTreeViewComponent {
423
445
  * Get all selected nodes
424
446
  */
425
447
  getSelectedNodes(): AXTreeViewNode[];
448
+ /**
449
+ * Returns selected node ids (from {@link selectedIds} when controlled, otherwise from tree state).
450
+ */
451
+ getSelectedIds(): string[];
452
+ /**
453
+ * Expands ancestor paths (when provided) and applies selection.
454
+ * Intended for lazy trees with {@link controlledSelection}.
455
+ */
456
+ selectAndReveal(nodeIds: string[], options?: AXTreeViewSelectAndRevealOptions): Promise<void>;
426
457
  /**
427
458
  * Delete selected nodes from the tree
428
459
  */
@@ -659,6 +690,16 @@ declare class AXTreeViewComponent {
659
690
  * Emit selection change event with all selected nodes
660
691
  */
661
692
  private emitSelectionChange;
693
+ private bumpSelectionSyncRevision;
694
+ private isSelectionSyncCurrent;
695
+ private normalizeSelectedIdsForMode;
696
+ private areSelectedIdsEqual;
697
+ private setSelectedIdsModel;
698
+ private syncSelectedIdsModelFromTree;
699
+ private scheduleApplySelectedIdsToTree;
700
+ private applySelectedIdsToTree;
701
+ private applySelectedIdsToTreeWithRetry;
702
+ private expandAncestorPaths;
662
703
  /**
663
704
  * Handle node double click
664
705
  */
@@ -797,7 +838,7 @@ declare class AXTreeViewComponent {
797
838
  */
798
839
  private handleError;
799
840
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTreeViewComponent, never>;
800
- 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; }; "expandOnDoubleClick": { "alias": "expandOnDoubleClick"; "required": false; "isSignal": true; }; "doubleClickDuration": { "alias": "doubleClickDuration"; "required": false; "isSignal": true; }; "tooltipDelay": { "alias": "tooltipDelay"; "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>;
841
+ 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; }; "expandOnDoubleClick": { "alias": "expandOnDoubleClick"; "required": false; "isSignal": true; }; "doubleClickDuration": { "alias": "doubleClickDuration"; "required": false; "isSignal": true; }; "tooltipDelay": { "alias": "tooltipDelay"; "required": false; "isSignal": true; }; "controlledSelection": { "alias": "controlledSelection"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; }, { "datasource": "datasourceChange"; "selectedIds": "selectedIdsChange"; "onBeforeDrop": "onBeforeDrop"; "onNodeToggle": "onNodeToggle"; "onNodeSelect": "onNodeSelect"; "onNodeDoubleClick": "onNodeDoubleClick"; "onNodeClick": "onNodeClick"; "onSelectionChange": "onSelectionChange"; "onOrderChange": "onOrderChange"; "onMoveChange": "onMoveChange"; "onItemsChange": "onItemsChange"; }, never, never, true, never>;
801
842
  }
802
843
 
803
844
  declare class AXTreeViewModule {
@@ -993,4 +1034,4 @@ declare class AXTreeViewService {
993
1034
  }
994
1035
 
995
1036
  export { AXTreeViewComponent, AXTreeViewModule, AXTreeViewService };
996
- export type { AXTreeViewBeforeDropEvent, AXTreeViewCallback, AXTreeViewChildrenSelectionState, AXTreeViewDataSource, AXTreeViewDragArea, AXTreeViewDragBehavior, AXTreeViewDropEvent, AXTreeViewFlatNode, AXTreeViewItemTemplateContext, AXTreeViewNode, AXTreeViewNodeClickEvent, AXTreeViewNodeDoubleClickEvent, AXTreeViewNodeSelectEvent, AXTreeViewNodeToggleEvent, AXTreeViewSelectMode, AXTreeViewSelectionBehavior, AXTreeViewSelectionChangeEvent, AXTreeViewViewLook };
1037
+ export type { AXTreeViewBeforeDropEvent, AXTreeViewCallback, AXTreeViewChildrenSelectionState, AXTreeViewDataSource, AXTreeViewDragArea, AXTreeViewDragBehavior, AXTreeViewDropEvent, AXTreeViewFlatNode, AXTreeViewItemTemplateContext, AXTreeViewNode, AXTreeViewNodeClickEvent, AXTreeViewNodeDoubleClickEvent, AXTreeViewNodeSelectEvent, AXTreeViewNodeToggleEvent, AXTreeViewSelectAndRevealOptions, AXTreeViewSelectMode, AXTreeViewSelectionBehavior, AXTreeViewSelectionChangeEvent, AXTreeViewSelectionSource, AXTreeViewViewLook };