@memberjunction/ng-trees 5.43.0 → 5.45.0

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.
@@ -3,9 +3,10 @@ import * as i1 from "./tree/tree.component";
3
3
  import * as i2 from "./tree-dropdown/tree-dropdown.component";
4
4
  import * as i3 from "@angular/common";
5
5
  import * as i4 from "@angular/forms";
6
+ import * as i5 from "@memberjunction/ng-ui-components";
6
7
  export declare class NgTreesModule {
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<NgTreesModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<NgTreesModule, [typeof i1.TreeComponent, typeof i2.TreeDropdownComponent], [typeof i3.CommonModule, typeof i4.FormsModule], [typeof i1.TreeComponent, typeof i2.TreeDropdownComponent]>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgTreesModule, [typeof i1.TreeComponent, typeof i2.TreeDropdownComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i5.MJEmptyStateComponent], [typeof i1.TreeComponent, typeof i2.TreeDropdownComponent]>;
9
10
  static ɵinj: i0.ɵɵInjectorDeclaration<NgTreesModule>;
10
11
  }
11
12
  //# sourceMappingURL=ng-trees.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-trees.module.d.ts","sourceRoot":"","sources":["../../src/lib/ng-trees.module.ts"],"names":[],"mappings":";;;;;AAcA,qBAca,aAAa;yCAAb,aAAa;0CAAb,aAAa;0CAAb,aAAa;CAAI"}
1
+ {"version":3,"file":"ng-trees.module.d.ts","sourceRoot":"","sources":["../../src/lib/ng-trees.module.ts"],"names":[],"mappings":";;;;;;AAeA,qBAea,aAAa;yCAAb,aAAa;0CAAb,aAAa;0CAAb,aAAa;CAAI"}
@@ -6,6 +6,7 @@
6
6
  import { NgModule } from '@angular/core';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { FormsModule } from '@angular/forms';
9
+ import { MJEmptyStateComponent } from '@memberjunction/ng-ui-components';
9
10
  // Components
10
11
  import { TreeComponent } from './tree/tree.component';
11
12
  import { TreeDropdownComponent } from './tree-dropdown/tree-dropdown.component';
@@ -14,7 +15,8 @@ export class NgTreesModule {
14
15
  static ɵfac = function NgTreesModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NgTreesModule)(); };
15
16
  static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NgTreesModule });
16
17
  static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
17
- FormsModule] });
18
+ FormsModule,
19
+ MJEmptyStateComponent] });
18
20
  }
19
21
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NgTreesModule, [{
20
22
  type: NgModule,
@@ -25,7 +27,8 @@ export class NgTreesModule {
25
27
  ],
26
28
  imports: [
27
29
  CommonModule,
28
- FormsModule
30
+ FormsModule,
31
+ MJEmptyStateComponent
29
32
  ],
30
33
  exports: [
31
34
  TreeComponent,
@@ -35,6 +38,7 @@ export class NgTreesModule {
35
38
  }], null, null); })();
36
39
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(NgTreesModule, { declarations: [TreeComponent,
37
40
  TreeDropdownComponent], imports: [CommonModule,
38
- FormsModule], exports: [TreeComponent,
41
+ FormsModule,
42
+ MJEmptyStateComponent], exports: [TreeComponent,
39
43
  TreeDropdownComponent] }); })();
40
44
  //# sourceMappingURL=ng-trees.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-trees.module.js","sourceRoot":"","sources":["../../src/lib/ng-trees.module.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;;AAgBhF,MAAM,OAAO,aAAa;uGAAb,aAAa;4DAAb,aAAa;gEARlB,YAAY;YACZ,WAAW;;iFAON,aAAa;cAdzB,QAAQ;eAAC;gBACN,YAAY,EAAE;oBACV,aAAa;oBACb,qBAAqB;iBACxB;gBACD,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;iBACd;gBACD,OAAO,EAAE;oBACL,aAAa;oBACb,qBAAqB;iBACxB;aACJ;;wFACY,aAAa,mBAZlB,aAAa;QACb,qBAAqB,aAGrB,YAAY;QACZ,WAAW,aAGX,aAAa;QACb,qBAAqB","sourcesContent":["/**\n * NgTrees Module for @memberjunction/ng-trees\n *\n * Provides tree and tree dropdown components for hierarchical entity selection.\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n// Components\nimport { TreeComponent } from './tree/tree.component';\nimport { TreeDropdownComponent } from './tree-dropdown/tree-dropdown.component';\n\n@NgModule({\n declarations: [\n TreeComponent,\n TreeDropdownComponent\n ],\n imports: [\n CommonModule,\n FormsModule\n ],\n exports: [\n TreeComponent,\n TreeDropdownComponent\n ]\n})\nexport class NgTreesModule { }\n"]}
1
+ {"version":3,"file":"ng-trees.module.js","sourceRoot":"","sources":["../../src/lib/ng-trees.module.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;;AAiBhF,MAAM,OAAO,aAAa;uGAAb,aAAa;4DAAb,aAAa;gEATlB,YAAY;YACZ,WAAW;YACX,qBAAqB;;iFAOhB,aAAa;cAfzB,QAAQ;eAAC;gBACN,YAAY,EAAE;oBACV,aAAa;oBACb,qBAAqB;iBACxB;gBACD,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;oBACX,qBAAqB;iBACxB;gBACD,OAAO,EAAE;oBACL,aAAa;oBACb,qBAAqB;iBACxB;aACJ;;wFACY,aAAa,mBAblB,aAAa;QACb,qBAAqB,aAGrB,YAAY;QACZ,WAAW;QACX,qBAAqB,aAGrB,aAAa;QACb,qBAAqB","sourcesContent":["/**\n * NgTrees Module for @memberjunction/ng-trees\n *\n * Provides tree and tree dropdown components for hierarchical entity selection.\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MJEmptyStateComponent } from '@memberjunction/ng-ui-components';\n\n// Components\nimport { TreeComponent } from './tree/tree.component';\nimport { TreeDropdownComponent } from './tree-dropdown/tree-dropdown.component';\n\n@NgModule({\n declarations: [\n TreeComponent,\n TreeDropdownComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n MJEmptyStateComponent\n ],\n exports: [\n TreeComponent,\n TreeDropdownComponent\n ]\n})\nexport class NgTreesModule { }\n"]}
@@ -30,10 +30,17 @@ export declare class TreeComponent implements OnInit, OnDestroy {
30
30
  private _selectedIDs;
31
31
  set SelectedIDs(value: string[]);
32
32
  get SelectedIDs(): string[];
33
- /** Initially expanded node IDs (null = auto-expand first level) */
33
+ /** Initially expanded node IDs (null = defer to DefaultExpansion) */
34
34
  private _expandedIDs;
35
35
  set ExpandedIDs(value: string[] | null);
36
36
  get ExpandedIDs(): string[] | null;
37
+ /**
38
+ * Initial expansion applied when ExpandedIDs is null:
39
+ * 'first-level' (default) expands only the root branches, 'all' expands every
40
+ * branch (small pickers where the whole catalog should be visible), 'none'
41
+ * starts fully collapsed.
42
+ */
43
+ DefaultExpansion: 'first-level' | 'all' | 'none';
37
44
  /** Show expand/collapse all buttons */
38
45
  private _showExpandCollapseAll;
39
46
  set ShowExpandCollapseAll(value: boolean);
@@ -356,6 +363,6 @@ export declare class TreeComponent implements OnInit, OnDestroy {
356
363
  */
357
364
  private escapeHtml;
358
365
  static ɵfac: i0.ɵɵFactoryDeclaration<TreeComponent, never>;
359
- static ɵcmp: i0.ɵɵComponentDeclaration<TreeComponent, "mj-tree", never, { "BranchConfig": { "alias": "BranchConfig"; "required": false; }; "LeafConfig": { "alias": "LeafConfig"; "required": false; }; "SelectionMode": { "alias": "SelectionMode"; "required": false; }; "SelectableTypes": { "alias": "SelectableTypes"; "required": false; }; "SelectedIDs": { "alias": "SelectedIDs"; "required": false; }; "ExpandedIDs": { "alias": "ExpandedIDs"; "required": false; }; "ShowExpandCollapseAll": { "alias": "ShowExpandCollapseAll"; "required": false; }; "EnableKeyboardNavigation": { "alias": "EnableKeyboardNavigation"; "required": false; }; "KeyboardConfig": { "alias": "KeyboardConfig"; "required": false; }; "StyleConfig": { "alias": "StyleConfig"; "required": false; }; "IndentSize": { "alias": "IndentSize"; "required": false; }; "ShowLoading": { "alias": "ShowLoading"; "required": false; }; "EmptyMessage": { "alias": "EmptyMessage"; "required": false; }; "EmptyIcon": { "alias": "EmptyIcon"; "required": false; }; "AutoLoad": { "alias": "AutoLoad"; "required": false; }; "ShowIcons": { "alias": "ShowIcons"; "required": false; }; "ShowDescriptions": { "alias": "ShowDescriptions"; "required": false; }; "ShowBadges": { "alias": "ShowBadges"; "required": false; }; "AnimateExpandCollapse": { "alias": "AnimateExpandCollapse"; "required": false; }; }, { "BeforeNodeSelect": "BeforeNodeSelect"; "AfterNodeSelect": "AfterNodeSelect"; "BeforeNodeDeselect": "BeforeNodeDeselect"; "AfterNodeDeselect": "AfterNodeDeselect"; "BeforeNodeExpand": "BeforeNodeExpand"; "AfterNodeExpand": "AfterNodeExpand"; "BeforeNodeCollapse": "BeforeNodeCollapse"; "AfterNodeCollapse": "AfterNodeCollapse"; "BeforeNodeClick": "BeforeNodeClick"; "AfterNodeClick": "AfterNodeClick"; "BeforeNodeDoubleClick": "BeforeNodeDoubleClick"; "AfterNodeDoubleClick": "AfterNodeDoubleClick"; "BeforeDataLoad": "BeforeDataLoad"; "AfterDataLoad": "AfterDataLoad"; "BeforeKeyboardNavigate": "BeforeKeyboardNavigate"; "AfterKeyboardNavigate": "AfterKeyboardNavigate"; "SelectionChange": "SelectionChange"; }, never, never, false, never>;
366
+ static ɵcmp: i0.ɵɵComponentDeclaration<TreeComponent, "mj-tree", never, { "BranchConfig": { "alias": "BranchConfig"; "required": false; }; "LeafConfig": { "alias": "LeafConfig"; "required": false; }; "SelectionMode": { "alias": "SelectionMode"; "required": false; }; "SelectableTypes": { "alias": "SelectableTypes"; "required": false; }; "SelectedIDs": { "alias": "SelectedIDs"; "required": false; }; "ExpandedIDs": { "alias": "ExpandedIDs"; "required": false; }; "DefaultExpansion": { "alias": "DefaultExpansion"; "required": false; }; "ShowExpandCollapseAll": { "alias": "ShowExpandCollapseAll"; "required": false; }; "EnableKeyboardNavigation": { "alias": "EnableKeyboardNavigation"; "required": false; }; "KeyboardConfig": { "alias": "KeyboardConfig"; "required": false; }; "StyleConfig": { "alias": "StyleConfig"; "required": false; }; "IndentSize": { "alias": "IndentSize"; "required": false; }; "ShowLoading": { "alias": "ShowLoading"; "required": false; }; "EmptyMessage": { "alias": "EmptyMessage"; "required": false; }; "EmptyIcon": { "alias": "EmptyIcon"; "required": false; }; "AutoLoad": { "alias": "AutoLoad"; "required": false; }; "ShowIcons": { "alias": "ShowIcons"; "required": false; }; "ShowDescriptions": { "alias": "ShowDescriptions"; "required": false; }; "ShowBadges": { "alias": "ShowBadges"; "required": false; }; "AnimateExpandCollapse": { "alias": "AnimateExpandCollapse"; "required": false; }; }, { "BeforeNodeSelect": "BeforeNodeSelect"; "AfterNodeSelect": "AfterNodeSelect"; "BeforeNodeDeselect": "BeforeNodeDeselect"; "AfterNodeDeselect": "AfterNodeDeselect"; "BeforeNodeExpand": "BeforeNodeExpand"; "AfterNodeExpand": "AfterNodeExpand"; "BeforeNodeCollapse": "BeforeNodeCollapse"; "AfterNodeCollapse": "AfterNodeCollapse"; "BeforeNodeClick": "BeforeNodeClick"; "AfterNodeClick": "AfterNodeClick"; "BeforeNodeDoubleClick": "BeforeNodeDoubleClick"; "AfterNodeDoubleClick": "AfterNodeDoubleClick"; "BeforeDataLoad": "BeforeDataLoad"; "AfterDataLoad": "AfterDataLoad"; "BeforeKeyboardNavigate": "BeforeKeyboardNavigate"; "AfterKeyboardNavigate": "AfterKeyboardNavigate"; "SelectionChange": "SelectionChange"; }, never, never, false, never>;
360
367
  }
361
368
  //# sourceMappingURL=tree.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree.component.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/tree.component.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAIH,YAAY,EACZ,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,UAAU,EAEb,MAAM,eAAe,CAAC;AAGvB,OAAO,EACH,QAAQ,EACR,gBAAgB,EAChB,cAAc,EAEd,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,EAC/B,8BAA8B,EACjC,MAAM,uBAAuB,CAAC;;AAE/B,qBAMa,aAAc,YAAW,MAAM,EAAE,SAAS;IAiS/C,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,UAAU;IA7R/B,wDAAwD;IACxD,OAAO,CAAC,aAAa,CAAiC;IACtD,IACI,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAUvC;IACD,IAAI,YAAY,IAAI,gBAAgB,CAEnC;IAED,yCAAyC;IACzC,OAAO,CAAC,WAAW,CAAC,CAAiB;IACrC,IACI,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,EAU/C;IACD,IAAI,UAAU,IAAI,cAAc,GAAG,SAAS,CAE3C;IAED,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAA+B;IACrD,IACI,aAAa,CAAC,KAAK,EAAE,iBAAiB,EAEzC;IACD,IAAI,aAAa,IAAI,iBAAiB,CAErC;IAED,8DAA8D;IAC9D,OAAO,CAAC,gBAAgB,CAA+B;IACvD,IACI,eAAe,CAAC,KAAK,EAAE,mBAAmB,EAE7C;IACD,IAAI,eAAe,IAAI,mBAAmB,CAEzC;IAED,kCAAkC;IAClC,OAAO,CAAC,YAAY,CAAgB;IACpC,IACI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAO9B;IACD,IAAI,WAAW,IAAI,MAAM,EAAE,CAE1B;IAED,mEAAmE;IACnE,OAAO,CAAC,YAAY,CAAyB;IAC7C,IACI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAErC;IACD,IAAI,WAAW,IAAI,MAAM,EAAE,GAAG,IAAI,CAEjC;IAED,uCAAuC;IACvC,OAAO,CAAC,sBAAsB,CAAkB;IAChD,IACI,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAEvC;IACD,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAED,iCAAiC;IACjC,OAAO,CAAC,yBAAyB,CAAiB;IAClD,IACI,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAE1C;IACD,IAAI,wBAAwB,IAAI,OAAO,CAEtC;IAED,6BAA6B;IAC7B,OAAO,CAAC,eAAe,CAA0B;IACjD,IACI,cAAc,CAAC,KAAK,EAAE,kBAAkB,EAE3C;IACD,IAAI,cAAc,IAAI,kBAAkB,CAEvC;IAED,0BAA0B;IAC1B,OAAO,CAAC,YAAY,CAAuB;IAC3C,IACI,WAAW,CAAC,KAAK,EAAE,eAAe,EAErC;IACD,IAAI,WAAW,IAAI,eAAe,CAEjC;IAED,iCAAiC;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,IACI,UAAU,CAAC,KAAK,EAAE,MAAM,EAE3B;IACD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,6BAA6B;IAC7B,OAAO,CAAC,YAAY,CAAiB;IACrC,IACI,WAAW,CAAC,KAAK,EAAE,OAAO,EAE7B;IACD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,0BAA0B;IAC1B,OAAO,CAAC,aAAa,CAA4B;IACjD,IACI,YAAY,CAAC,KAAK,EAAE,MAAM,EAE7B;IACD,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,uBAAuB;IACvB,OAAO,CAAC,UAAU,CAAqC;IACvD,IACI,SAAS,CAAC,KAAK,EAAE,MAAM,EAE1B;IACD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,6BAA6B;IAC7B,OAAO,CAAC,SAAS,CAAiB;IAClC,IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,sBAAsB;IACtB,OAAO,CAAC,UAAU,CAAiB;IACnC,IACI,SAAS,CAAC,KAAK,EAAE,OAAO,EAE3B;IACD,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,6BAA6B;IAC7B,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,IACI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAElC;IACD,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,uBAAuB;IACvB,OAAO,CAAC,WAAW,CAAiB;IACpC,IACI,UAAU,CAAC,KAAK,EAAE,OAAO,EAE5B;IACD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,8BAA8B;IAC9B,OAAO,CAAC,sBAAsB,CAAiB;IAC/C,IACI,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAEvC;IACD,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAMS,gBAAgB,0CAAiD;IACjE,eAAe,yCAAgD;IAC/D,kBAAkB,4CAAmD;IACrE,iBAAiB,2CAAkD;IACnE,gBAAgB,0CAAiD;IACjE,eAAe,yCAAgD;IAC/D,kBAAkB,4CAAmD;IACrE,iBAAiB,2CAAkD;IACnE,eAAe,yCAAgD;IAC/D,cAAc,wCAA+C;IAC7D,qBAAqB,+CAAsD;IAC3E,oBAAoB,8CAAqD;IACzE,cAAc,wCAA+C;IAC7D,aAAa,uCAA8C;IAC3D,sBAAsB,gDAAuD;IAC7E,qBAAqB,+CAAsD;IAErF,sFAAsF;IAC5E,eAAe,2BAAkC;IAM3D,6BAA6B;IACtB,KAAK,EAAE,QAAQ,EAAE,CAAM;IAE9B,8BAA8B;IACvB,WAAW,EAAE,QAAQ,EAAE,CAAM;IAEpC,4BAA4B;IACrB,SAAS,EAAE,QAAQ,EAAE,CAAM;IAElC,+BAA+B;IACxB,aAAa,EAAE,QAAQ,EAAE,CAAM;IAEtC,uDAAuD;IAChD,WAAW,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAE3C,oBAAoB;IACb,SAAS,EAAE,OAAO,CAAS;IAElC,mCAAmC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE1C,2BAA2B;IACpB,QAAQ,EAAE,OAAO,CAAS;IAEjC,6CAA6C;IACtC,iBAAiB,EAAE,MAAM,CAAM;IAMtC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,kBAAkB,CAAkB;IAE5C,2CAA2C;IAC3C,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,YAAY,CAA2B;gBAO1B,GAAG,EAAE,iBAAiB,EACtB,UAAU,EAAE,UAAU;IAO3C,QAAQ,IAAI,IAAI;IAOhB,WAAW,IAAI,IAAI;IAQnB;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrC;;OAEG;IACI,gBAAgB,IAAI,QAAQ,EAAE;IAIrC;;OAEG;IACI,cAAc,IAAI,MAAM,EAAE;IAIjC;;;;OAIG;IACI,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,GAAE,OAAc,GAAG,IAAI;IAgCnE;;OAEG;IACI,cAAc,IAAI,IAAI;IAS7B;;OAEG;IACI,SAAS,IAAI,IAAI;IAKxB;;OAEG;IACI,WAAW,IAAI,IAAI;IAK1B;;OAEG;IACI,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAkBhD;;OAEG;IACI,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAI5C;;OAEG;IACI,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,GAAG,QAAQ,EAAE;IAUpE;;OAEG;IACI,WAAW,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;QACL,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC1B,GACP,QAAQ,EAAE;IAuCb;;OAEG;IACI,UAAU,IAAI,IAAI;IAQzB;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAgC3D;;OAEG;IACI,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAmBjE;;OAEG;IACI,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAUtD,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAwH5C;;OAEG;YACW,QAAQ;IAkItB;;OAEG;YACW,YAAY;IAiB1B;;OAEG;YACW,UAAU;IA0BxB;;;OAGG;YACW,oBAAoB;IAoHlC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+D5B;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAwH9B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IASjC;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAWpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAgBjB;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,sBAAsB;IAW9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiE3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAwBlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,4BAA4B;IAWpC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAQ9B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAqDlC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAsBrC;;OAEG;IACI,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAU7C;;OAEG;IACI,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAmB9D;;OAEG;IACI,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASrD;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM;IAIvD;;OAEG;IACI,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAyBlD;;OAEG;IACH,OAAO,CAAC,UAAU;yCA7tDT,aAAa;2CAAb,aAAa;CAkuDzB"}
1
+ {"version":3,"file":"tree.component.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/tree.component.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { createDefaultTreeNode } from '../models/tree-types';
10
10
  import { BeforeNodeSelectEventArgs, AfterNodeSelectEventArgs, BeforeNodeDeselectEventArgs, AfterNodeDeselectEventArgs, BeforeNodeExpandEventArgs, AfterNodeExpandEventArgs, BeforeNodeCollapseEventArgs, AfterNodeCollapseEventArgs, BeforeNodeClickEventArgs, AfterNodeClickEventArgs, BeforeNodeDoubleClickEventArgs, AfterNodeDoubleClickEventArgs, BeforeDataLoadEventArgs, AfterDataLoadEventArgs, BeforeKeyboardNavigateEventArgs, AfterKeyboardNavigateEventArgs } from '../events/tree-events';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "@angular/common";
13
+ import * as i2 from "@memberjunction/ng-ui-components";
13
14
  const _c0 = a0 => ({ node: a0 });
14
15
  const _c1 = (a0, a1) => ({ "fa-chevron-right": a0, "fa-chevron-down": a1 });
15
16
  function TreeComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
@@ -49,23 +50,16 @@ function TreeComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
49
50
  i0.ɵɵelementEnd()();
50
51
  } }
51
52
  function TreeComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
52
- i0.ɵɵelementStart(0, "div", 5);
53
- i0.ɵɵelement(1, "i");
54
- i0.ɵɵelementStart(2, "span", 18);
55
- i0.ɵɵtext(3);
56
- i0.ɵɵelementEnd()();
53
+ i0.ɵɵelement(0, "mj-empty-state", 5);
57
54
  } if (rf & 2) {
58
55
  const ctx_r1 = i0.ɵɵnextContext();
59
- i0.ɵɵadvance();
60
- i0.ɵɵclassMap(ctx_r1.EmptyIcon + " tree-empty__icon");
61
- i0.ɵɵadvance(2);
62
- i0.ɵɵtextInterpolate(ctx_r1.EmptyMessage);
56
+ i0.ɵɵproperty("Icon", ctx_r1.EmptyIcon)("Title", ctx_r1.EmptyMessage);
63
57
  } }
64
58
  function TreeComponent_Conditional_5_For_2_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
65
59
  i0.ɵɵelementContainer(0);
66
60
  } }
67
61
  function TreeComponent_Conditional_5_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
68
- i0.ɵɵtemplate(0, TreeComponent_Conditional_5_For_2_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 19);
62
+ i0.ɵɵtemplate(0, TreeComponent_Conditional_5_For_2_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 18);
69
63
  } if (rf & 2) {
70
64
  const node_r4 = i0.ɵɵnextContext().$implicit;
71
65
  i0.ɵɵnextContext(2);
@@ -88,20 +82,20 @@ function TreeComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
88
82
  i0.ɵɵrepeater(ctx_r1.Nodes);
89
83
  } }
90
84
  function TreeComponent_ng_template_6_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
91
- i0.ɵɵelement(0, "i", 31);
85
+ i0.ɵɵelement(0, "i", 30);
92
86
  } if (rf & 2) {
93
87
  const node_r7 = i0.ɵɵnextContext(2).node;
94
88
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c1, !node_r7.Expanded, node_r7.Expanded));
95
89
  } }
96
90
  function TreeComponent_ng_template_6_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
97
- i0.ɵɵelement(0, "span", 32);
91
+ i0.ɵɵelement(0, "span", 31);
98
92
  } }
99
93
  function TreeComponent_ng_template_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
100
94
  const _r8 = i0.ɵɵgetCurrentView();
101
- i0.ɵɵelementStart(0, "span", 30);
95
+ i0.ɵɵelementStart(0, "span", 29);
102
96
  i0.ɵɵlistener("click", function TreeComponent_ng_template_6_Conditional_1_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const node_r7 = i0.ɵɵnextContext().node; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onToggleClick(node_r7, $event)); });
103
- i0.ɵɵconditionalCreate(1, TreeComponent_ng_template_6_Conditional_1_Conditional_1_Template, 1, 4, "i", 31);
104
- i0.ɵɵconditionalCreate(2, TreeComponent_ng_template_6_Conditional_1_Conditional_2_Template, 1, 0, "span", 32);
97
+ i0.ɵɵconditionalCreate(1, TreeComponent_ng_template_6_Conditional_1_Conditional_1_Template, 1, 4, "i", 30);
98
+ i0.ɵɵconditionalCreate(2, TreeComponent_ng_template_6_Conditional_1_Conditional_2_Template, 1, 0, "span", 31);
105
99
  i0.ɵɵelementEnd();
106
100
  } if (rf & 2) {
107
101
  const node_r7 = i0.ɵɵnextContext().node;
@@ -111,10 +105,10 @@ function TreeComponent_ng_template_6_Conditional_1_Template(rf, ctx) { if (rf &
111
105
  i0.ɵɵconditional(node_r7.Children.length === 0 ? 2 : -1);
112
106
  } }
113
107
  function TreeComponent_ng_template_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
114
- i0.ɵɵelement(0, "span", 22);
108
+ i0.ɵɵelement(0, "span", 21);
115
109
  } }
116
110
  function TreeComponent_ng_template_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
117
- i0.ɵɵelementStart(0, "span", 33);
111
+ i0.ɵɵelementStart(0, "span", 32);
118
112
  i0.ɵɵelement(1, "i");
119
113
  i0.ɵɵelementEnd();
120
114
  } if (rf & 2) {
@@ -124,7 +118,7 @@ function TreeComponent_ng_template_6_Conditional_3_Template(rf, ctx) { if (rf &
124
118
  i0.ɵɵclassMap(node_r7.Icon);
125
119
  } }
126
120
  function TreeComponent_ng_template_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
127
- i0.ɵɵelementStart(0, "span", 26);
121
+ i0.ɵɵelementStart(0, "span", 25);
128
122
  i0.ɵɵtext(1);
129
123
  i0.ɵɵelementEnd();
130
124
  } if (rf & 2) {
@@ -133,7 +127,7 @@ function TreeComponent_ng_template_6_Conditional_6_Template(rf, ctx) { if (rf &
133
127
  i0.ɵɵtextInterpolate1(" ", node_r7.Description, " ");
134
128
  } }
135
129
  function TreeComponent_ng_template_6_Conditional_7_Template(rf, ctx) { if (rf & 1) {
136
- i0.ɵɵelementStart(0, "span", 27);
130
+ i0.ɵɵelementStart(0, "span", 26);
137
131
  i0.ɵɵtext(1);
138
132
  i0.ɵɵelementEnd();
139
133
  } if (rf & 2) {
@@ -142,15 +136,15 @@ function TreeComponent_ng_template_6_Conditional_7_Template(rf, ctx) { if (rf &
142
136
  i0.ɵɵtextInterpolate1(" ", node_r7.Badge, " ");
143
137
  } }
144
138
  function TreeComponent_ng_template_6_Conditional_8_Template(rf, ctx) { if (rf & 1) {
145
- i0.ɵɵelementStart(0, "span", 28);
146
- i0.ɵɵelement(1, "i", 34);
139
+ i0.ɵɵelementStart(0, "span", 27);
140
+ i0.ɵɵelement(1, "i", 33);
147
141
  i0.ɵɵelementEnd();
148
142
  } }
149
143
  function TreeComponent_ng_template_6_Conditional_9_For_2_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
150
144
  i0.ɵɵelementContainer(0);
151
145
  } }
152
146
  function TreeComponent_ng_template_6_Conditional_9_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
153
- i0.ɵɵtemplate(0, TreeComponent_ng_template_6_Conditional_9_For_2_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 19);
147
+ i0.ɵɵtemplate(0, TreeComponent_ng_template_6_Conditional_9_For_2_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 18);
154
148
  } if (rf & 2) {
155
149
  const child_r9 = i0.ɵɵnextContext().$implicit;
156
150
  i0.ɵɵnextContext(3);
@@ -164,7 +158,7 @@ function TreeComponent_ng_template_6_Conditional_9_For_2_Template(rf, ctx) { if
164
158
  i0.ɵɵconditional(child_r9.Visible ? 0 : -1);
165
159
  } }
166
160
  function TreeComponent_ng_template_6_Conditional_9_Template(rf, ctx) { if (rf & 1) {
167
- i0.ɵɵelementStart(0, "div", 35);
161
+ i0.ɵɵelementStart(0, "div", 34);
168
162
  i0.ɵɵrepeaterCreate(1, TreeComponent_ng_template_6_Conditional_9_For_2_Template, 1, 1, null, null, i0.ɵɵcomponentInstance().trackNode, true);
169
163
  i0.ɵɵelementEnd();
170
164
  } if (rf & 2) {
@@ -176,19 +170,19 @@ function TreeComponent_ng_template_6_Conditional_9_Template(rf, ctx) { if (rf &
176
170
  } }
177
171
  function TreeComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
178
172
  const _r6 = i0.ɵɵgetCurrentView();
179
- i0.ɵɵelementStart(0, "div", 20);
173
+ i0.ɵɵelementStart(0, "div", 19);
180
174
  i0.ɵɵlistener("click", function TreeComponent_ng_template_6_Template_div_click_0_listener($event) { const node_r7 = i0.ɵɵrestoreView(_r6).node; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onNodeClick(node_r7, $event)); })("dblclick", function TreeComponent_ng_template_6_Template_div_dblclick_0_listener($event) { const node_r7 = i0.ɵɵrestoreView(_r6).node; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onNodeDoubleClick(node_r7, $event)); });
181
- i0.ɵɵconditionalCreate(1, TreeComponent_ng_template_6_Conditional_1_Template, 3, 2, "span", 21);
182
- i0.ɵɵconditionalCreate(2, TreeComponent_ng_template_6_Conditional_2_Template, 1, 0, "span", 22);
183
- i0.ɵɵconditionalCreate(3, TreeComponent_ng_template_6_Conditional_3_Template, 2, 4, "span", 23);
184
- i0.ɵɵelementStart(4, "span", 24);
185
- i0.ɵɵelement(5, "span", 25);
186
- i0.ɵɵconditionalCreate(6, TreeComponent_ng_template_6_Conditional_6_Template, 2, 1, "span", 26);
175
+ i0.ɵɵconditionalCreate(1, TreeComponent_ng_template_6_Conditional_1_Template, 3, 2, "span", 20);
176
+ i0.ɵɵconditionalCreate(2, TreeComponent_ng_template_6_Conditional_2_Template, 1, 0, "span", 21);
177
+ i0.ɵɵconditionalCreate(3, TreeComponent_ng_template_6_Conditional_3_Template, 2, 4, "span", 22);
178
+ i0.ɵɵelementStart(4, "span", 23);
179
+ i0.ɵɵelement(5, "span", 24);
180
+ i0.ɵɵconditionalCreate(6, TreeComponent_ng_template_6_Conditional_6_Template, 2, 1, "span", 25);
187
181
  i0.ɵɵelementEnd();
188
- i0.ɵɵconditionalCreate(7, TreeComponent_ng_template_6_Conditional_7_Template, 2, 1, "span", 27);
189
- i0.ɵɵconditionalCreate(8, TreeComponent_ng_template_6_Conditional_8_Template, 2, 0, "span", 28);
182
+ i0.ɵɵconditionalCreate(7, TreeComponent_ng_template_6_Conditional_7_Template, 2, 1, "span", 26);
183
+ i0.ɵɵconditionalCreate(8, TreeComponent_ng_template_6_Conditional_8_Template, 2, 0, "span", 27);
190
184
  i0.ɵɵelementEnd();
191
- i0.ɵɵconditionalCreate(9, TreeComponent_ng_template_6_Conditional_9_Template, 3, 2, "div", 29);
185
+ i0.ɵɵconditionalCreate(9, TreeComponent_ng_template_6_Conditional_9_Template, 3, 2, "div", 28);
192
186
  } if (rf & 2) {
193
187
  const node_r7 = ctx.node;
194
188
  const ctx_r1 = i0.ɵɵnextContext();
@@ -279,7 +273,7 @@ export class TreeComponent {
279
273
  get SelectedIDs() {
280
274
  return this._selectedIDs;
281
275
  }
282
- /** Initially expanded node IDs (null = auto-expand first level) */
276
+ /** Initially expanded node IDs (null = defer to DefaultExpansion) */
283
277
  _expandedIDs = null;
284
278
  set ExpandedIDs(value) {
285
279
  this._expandedIDs = value;
@@ -287,6 +281,13 @@ export class TreeComponent {
287
281
  get ExpandedIDs() {
288
282
  return this._expandedIDs;
289
283
  }
284
+ /**
285
+ * Initial expansion applied when ExpandedIDs is null:
286
+ * 'first-level' (default) expands only the root branches, 'all' expands every
287
+ * branch (small pickers where the whole catalog should be visible), 'none'
288
+ * starts fully collapsed.
289
+ */
290
+ DefaultExpansion = 'first-level';
290
291
  /** Show expand/collapse all buttons */
291
292
  _showExpandCollapseAll = false;
292
293
  set ShowExpandCollapseAll(value) {
@@ -1302,11 +1303,20 @@ export class TreeComponent {
1302
1303
  */
1303
1304
  applyInitialExpansion() {
1304
1305
  if (this._expandedIDs === null) {
1305
- // Auto-expand first level
1306
- for (const node of this.Nodes) {
1307
- if (node.Type === 'branch') {
1308
- node.Expanded = true;
1309
- }
1306
+ switch (this.DefaultExpansion) {
1307
+ case 'all':
1308
+ this.expandAllRecursive(this.Nodes);
1309
+ break;
1310
+ case 'none':
1311
+ break;
1312
+ default:
1313
+ // Auto-expand first level
1314
+ for (const node of this.Nodes) {
1315
+ if (node.Type === 'branch') {
1316
+ node.Expanded = true;
1317
+ }
1318
+ }
1319
+ break;
1310
1320
  }
1311
1321
  }
1312
1322
  else {
@@ -1625,12 +1635,12 @@ export class TreeComponent {
1625
1635
  static ɵfac = function TreeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TreeComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef)); };
1626
1636
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TreeComponent, selectors: [["mj-tree"]], hostBindings: function TreeComponent_HostBindings(rf, ctx) { if (rf & 1) {
1627
1637
  i0.ɵɵlistener("keydown", function TreeComponent_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); });
1628
- } }, inputs: { BranchConfig: "BranchConfig", LeafConfig: "LeafConfig", SelectionMode: "SelectionMode", SelectableTypes: "SelectableTypes", SelectedIDs: "SelectedIDs", ExpandedIDs: "ExpandedIDs", ShowExpandCollapseAll: "ShowExpandCollapseAll", EnableKeyboardNavigation: "EnableKeyboardNavigation", KeyboardConfig: "KeyboardConfig", StyleConfig: "StyleConfig", IndentSize: "IndentSize", ShowLoading: "ShowLoading", EmptyMessage: "EmptyMessage", EmptyIcon: "EmptyIcon", AutoLoad: "AutoLoad", ShowIcons: "ShowIcons", ShowDescriptions: "ShowDescriptions", ShowBadges: "ShowBadges", AnimateExpandCollapse: "AnimateExpandCollapse" }, outputs: { BeforeNodeSelect: "BeforeNodeSelect", AfterNodeSelect: "AfterNodeSelect", BeforeNodeDeselect: "BeforeNodeDeselect", AfterNodeDeselect: "AfterNodeDeselect", BeforeNodeExpand: "BeforeNodeExpand", AfterNodeExpand: "AfterNodeExpand", BeforeNodeCollapse: "BeforeNodeCollapse", AfterNodeCollapse: "AfterNodeCollapse", BeforeNodeClick: "BeforeNodeClick", AfterNodeClick: "AfterNodeClick", BeforeNodeDoubleClick: "BeforeNodeDoubleClick", AfterNodeDoubleClick: "AfterNodeDoubleClick", BeforeDataLoad: "BeforeDataLoad", AfterDataLoad: "AfterDataLoad", BeforeKeyboardNavigate: "BeforeKeyboardNavigate", AfterKeyboardNavigate: "AfterKeyboardNavigate", SelectionChange: "SelectionChange" }, standalone: false, decls: 8, vars: 6, consts: [["nodeTemplate", ""], ["tabindex", "0", 3, "ngClass"], [1, "tree-loading"], [1, "tree-error"], [1, "tree-toolbar"], [1, "tree-empty"], [1, "tree-content"], [1, "tree-loading__spinner"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "tree-loading__text"], [1, "fa-solid", "fa-exclamation-triangle", "tree-error__icon"], [1, "tree-error__message"], [1, "tree-error__retry", 3, "click"], [1, "fa-solid", "fa-refresh"], ["title", "Expand All", 1, "tree-toolbar__btn", 3, "click"], [1, "fa-solid", "fa-plus-square"], ["title", "Collapse All", 1, "tree-toolbar__btn", 3, "click"], [1, "fa-solid", "fa-minus-square"], [1, "tree-empty__message"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["role", "treeitem", 3, "click", "dblclick", "ngClass"], [1, "tree-node-toggle"], [1, "tree-node-leaf-spacer"], [1, "tree-node-icon", 3, "color"], [1, "tree-node-content"], [1, "tree-node-label", 3, "innerHTML"], [1, "tree-node-description"], [1, "tree-node-badge"], [1, "tree-node-selected-indicator"], ["role", "group", 1, "tree-node-children", 3, "tree-node-children--animated"], [1, "tree-node-toggle", 3, "click"], [1, "fa-solid", "tree-node-toggle__icon", 3, "ngClass"], [1, "tree-node-toggle__spacer"], [1, "tree-node-icon"], [1, "fa-solid", "fa-check"], ["role", "group", 1, "tree-node-children"]], template: function TreeComponent_Template(rf, ctx) { if (rf & 1) {
1638
+ } }, inputs: { BranchConfig: "BranchConfig", LeafConfig: "LeafConfig", SelectionMode: "SelectionMode", SelectableTypes: "SelectableTypes", SelectedIDs: "SelectedIDs", ExpandedIDs: "ExpandedIDs", DefaultExpansion: "DefaultExpansion", ShowExpandCollapseAll: "ShowExpandCollapseAll", EnableKeyboardNavigation: "EnableKeyboardNavigation", KeyboardConfig: "KeyboardConfig", StyleConfig: "StyleConfig", IndentSize: "IndentSize", ShowLoading: "ShowLoading", EmptyMessage: "EmptyMessage", EmptyIcon: "EmptyIcon", AutoLoad: "AutoLoad", ShowIcons: "ShowIcons", ShowDescriptions: "ShowDescriptions", ShowBadges: "ShowBadges", AnimateExpandCollapse: "AnimateExpandCollapse" }, outputs: { BeforeNodeSelect: "BeforeNodeSelect", AfterNodeSelect: "AfterNodeSelect", BeforeNodeDeselect: "BeforeNodeDeselect", AfterNodeDeselect: "AfterNodeDeselect", BeforeNodeExpand: "BeforeNodeExpand", AfterNodeExpand: "AfterNodeExpand", BeforeNodeCollapse: "BeforeNodeCollapse", AfterNodeCollapse: "AfterNodeCollapse", BeforeNodeClick: "BeforeNodeClick", AfterNodeClick: "AfterNodeClick", BeforeNodeDoubleClick: "BeforeNodeDoubleClick", AfterNodeDoubleClick: "AfterNodeDoubleClick", BeforeDataLoad: "BeforeDataLoad", AfterDataLoad: "AfterDataLoad", BeforeKeyboardNavigate: "BeforeKeyboardNavigate", AfterKeyboardNavigate: "AfterKeyboardNavigate", SelectionChange: "SelectionChange" }, standalone: false, decls: 8, vars: 6, consts: [["nodeTemplate", ""], ["tabindex", "0", 3, "ngClass"], [1, "tree-loading"], [1, "tree-error"], [1, "tree-toolbar"], ["Size", "compact", 1, "tree-empty", 3, "Icon", "Title"], [1, "tree-content"], [1, "tree-loading__spinner"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "tree-loading__text"], [1, "fa-solid", "fa-exclamation-triangle", "tree-error__icon"], [1, "tree-error__message"], [1, "tree-error__retry", 3, "click"], [1, "fa-solid", "fa-refresh"], ["title", "Expand All", 1, "tree-toolbar__btn", 3, "click"], [1, "fa-solid", "fa-plus-square"], ["title", "Collapse All", 1, "tree-toolbar__btn", 3, "click"], [1, "fa-solid", "fa-minus-square"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["role", "treeitem", 3, "click", "dblclick", "ngClass"], [1, "tree-node-toggle"], [1, "tree-node-leaf-spacer"], [1, "tree-node-icon", 3, "color"], [1, "tree-node-content"], [1, "tree-node-label", 3, "innerHTML"], [1, "tree-node-description"], [1, "tree-node-badge"], [1, "tree-node-selected-indicator"], ["role", "group", 1, "tree-node-children", 3, "tree-node-children--animated"], [1, "tree-node-toggle", 3, "click"], [1, "fa-solid", "tree-node-toggle__icon", 3, "ngClass"], [1, "tree-node-toggle__spacer"], [1, "tree-node-icon"], [1, "fa-solid", "fa-check"], ["role", "group", 1, "tree-node-children"]], template: function TreeComponent_Template(rf, ctx) { if (rf & 1) {
1629
1639
  i0.ɵɵelementStart(0, "div", 1);
1630
1640
  i0.ɵɵconditionalCreate(1, TreeComponent_Conditional_1_Template, 5, 0, "div", 2);
1631
1641
  i0.ɵɵconditionalCreate(2, TreeComponent_Conditional_2_Template, 7, 1, "div", 3);
1632
1642
  i0.ɵɵconditionalCreate(3, TreeComponent_Conditional_3_Template, 5, 0, "div", 4);
1633
- i0.ɵɵconditionalCreate(4, TreeComponent_Conditional_4_Template, 4, 3, "div", 5);
1643
+ i0.ɵɵconditionalCreate(4, TreeComponent_Conditional_4_Template, 1, 2, "mj-empty-state", 5);
1634
1644
  i0.ɵɵconditionalCreate(5, TreeComponent_Conditional_5_Template, 3, 0, "div", 6);
1635
1645
  i0.ɵɵelementEnd();
1636
1646
  i0.ɵɵtemplate(6, TreeComponent_ng_template_6_Template, 10, 15, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
@@ -1646,11 +1656,11 @@ export class TreeComponent {
1646
1656
  i0.ɵɵconditional(ctx.IsLoaded && ctx.Nodes.length === 0 && !ctx.ErrorMessage && !ctx.IsLoading ? 4 : -1);
1647
1657
  i0.ɵɵadvance();
1648
1658
  i0.ɵɵconditional(ctx.Nodes.length > 0 && !ctx.IsLoading ? 5 : -1);
1649
- } }, dependencies: [i1.NgClass, i1.NgTemplateOutlet], styles: ["\n\n\n\n\n\n\n\n\n\n\n\n\n[_nghost-%COMP%] {\n \n\n --tree-bg: var(--mj-bg-surface);\n --tree-border-color: var(--mj-border-default);\n --tree-text-color: var(--mj-text-primary);\n --tree-text-secondary: var(--mj-text-muted);\n --tree-text-muted: var(--mj-text-disabled);\n\n \n\n --tree-node-hover-bg: var(--mj-bg-surface-sunken);\n --tree-node-selected-bg: var(--mj-brand-primary-subtle);\n --tree-node-selected-border: var(--mj-brand-primary);\n --tree-node-focused-outline: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n --tree-node-match-bg: var(--mj-status-warning-subtle);\n\n \n\n --tree-icon-color: var(--mj-brand-primary);\n --tree-icon-leaf-color: var(--mj-text-muted);\n --tree-toggle-color: var(--mj-text-disabled);\n\n \n\n --tree-node-padding-y: 8px;\n --tree-node-padding-x: 12px;\n --tree-node-gap: 8px;\n --tree-icon-size: 16px;\n --tree-toggle-size: 12px;\n\n \n\n --tree-transition-duration: 150ms;\n --tree-animation-easing: ease-out;\n\n \n\n --tree-badge-bg: var(--mj-border-default);\n --tree-badge-color: var(--mj-text-muted);\n --tree-badge-size: 12px;\n\n display: block;\n width: 100%;\n height: 100%;\n}\n\n\n\n\n\n\n.tree-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n background: var(--tree-bg);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n outline: none;\n}\n\n.tree-container[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--tree-node-focused-outline);\n outline-offset: -2px;\n}\n\n\n\n\n\n\n.tree-loading[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 16px;\n gap: 12px;\n color: var(--tree-text-muted);\n}\n\n.tree-loading__spinner[_ngcontent-%COMP%] {\n font-size: var(--mj-text-2xl);\n color: var(--tree-icon-color);\n}\n\n.tree-loading__text[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n}\n\n\n\n\n\n\n.tree-error[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 16px;\n gap: 12px;\n text-align: center;\n}\n\n.tree-error__icon[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--mj-status-error);\n}\n\n.tree-error__message[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n color: var(--tree-text-secondary);\n max-width: 280px;\n}\n\n.tree-error__retry[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n border: 1px solid var(--tree-border-color);\n border-radius: var(--mj-radius-md);\n background: var(--tree-bg);\n color: var(--tree-text-color);\n font-size: var(--mj-text-sm);\n cursor: pointer;\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-error__retry[_ngcontent-%COMP%]:hover {\n background: var(--tree-node-hover-bg);\n border-color: var(--tree-icon-color);\n color: var(--tree-icon-color);\n}\n\n\n\n\n\n\n.tree-empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 16px;\n gap: 12px;\n color: var(--tree-text-muted);\n}\n\n.tree-empty__icon[_ngcontent-%COMP%] {\n font-size: 40px;\n opacity: 0.5;\n}\n\n.tree-empty__message[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n}\n\n\n\n\n\n\n.tree-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 8px 12px;\n border-bottom: 1px solid var(--tree-border-color);\n background: var(--tree-node-hover-bg);\n}\n\n.tree-toolbar__btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: var(--mj-radius-sm);\n background: transparent;\n color: var(--tree-text-secondary);\n cursor: pointer;\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-toolbar__btn[_ngcontent-%COMP%]:hover {\n background: var(--tree-bg);\n color: var(--tree-icon-color);\n}\n\n\n\n\n\n\n.tree-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 4px 0;\n}\n\n\n\n\n\n\n.tree-node[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--tree-node-gap);\n padding: var(--tree-node-padding-y) var(--tree-node-padding-x);\n cursor: pointer;\n user-select: none;\n border-left: 3px solid transparent;\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n min-height: 36px;\n}\n\n.tree-node[_ngcontent-%COMP%]:hover {\n background: var(--tree-node-hover-bg);\n}\n\n.tree-node--selected[_ngcontent-%COMP%] {\n background: var(--tree-node-selected-bg);\n border-left-color: var(--tree-node-selected-border);\n}\n\n.tree-node--selected[_ngcontent-%COMP%]:hover {\n background: var(--tree-node-selected-bg);\n}\n\n.tree-node--focused[_ngcontent-%COMP%] {\n outline: 2px solid var(--tree-node-focused-outline);\n outline-offset: -2px;\n}\n\n\n\n.tree-search-highlight[_ngcontent-%COMP%] {\n background: var(--tree-node-match-bg);\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 500;\n}\n\n\n\n\n\n\n.tree-node-toggle[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n border-radius: var(--mj-radius-sm);\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-node-toggle[_ngcontent-%COMP%]:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.tree-node-toggle__icon[_ngcontent-%COMP%] {\n font-size: var(--tree-toggle-size);\n color: var(--tree-toggle-color);\n transition: transform var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-node--expanded[_ngcontent-%COMP%] .tree-node-toggle__icon[_ngcontent-%COMP%] {\n color: var(--tree-icon-color);\n}\n\n.tree-node-toggle__spacer[_ngcontent-%COMP%] {\n width: var(--tree-toggle-size);\n}\n\n.tree-node-leaf-spacer[_ngcontent-%COMP%] {\n width: 20px;\n flex-shrink: 0;\n}\n\n\n\n\n\n\n.tree-node-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--tree-icon-size);\n flex-shrink: 0;\n font-size: var(--tree-icon-size);\n color: var(--tree-icon-color);\n}\n\n.tree-node--leaf[_ngcontent-%COMP%] .tree-node-icon[_ngcontent-%COMP%] {\n color: var(--tree-icon-leaf-color);\n}\n\n\n\n\n\n\n.tree-node-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.tree-node-label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: 500;\n color: var(--tree-text-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.tree-node--leaf[_ngcontent-%COMP%] .tree-node-label[_ngcontent-%COMP%] {\n font-weight: 400;\n}\n\n.tree-node-description[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--tree-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n\n\n\n\n\n.tree-node-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n border-radius: 10px;\n background: var(--tree-badge-bg);\n color: var(--tree-badge-color);\n font-size: var(--tree-badge-size);\n font-weight: 500;\n flex-shrink: 0;\n}\n\n\n\n\n\n\n.tree-node-selected-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: var(--mj-radius-full);\n background: var(--tree-node-selected-border);\n color: var(--mj-text-inverse);\n font-size: 10px;\n flex-shrink: 0;\n}\n\n\n\n\n\n\n.tree-node-children[_ngcontent-%COMP%] {\n overflow: hidden;\n}\n\n.tree-node-children--animated[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_tree-expand var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n@keyframes _ngcontent-%COMP%_tree-expand {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n\n\n\n\n\n.tree-content[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n}\n\n.tree-content[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.tree-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--tree-border-color);\n border-radius: var(--mj-radius-sm);\n}\n\n.tree-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: var(--tree-toggle-color);\n}\n\n\n\n\n\n\n@media (max-width: 480px) {\n [_nghost-%COMP%] {\n --tree-node-padding-y: 10px;\n --tree-node-padding-x: 10px;\n --tree-icon-size: 18px;\n }\n\n .tree-node-label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base);\n }\n}"] });
1659
+ } }, dependencies: [i1.NgClass, i1.NgTemplateOutlet, i2.MJEmptyStateComponent], styles: ["\n\n\n\n\n\n\n\n\n\n\n\n\n[_nghost-%COMP%] {\n \n\n --tree-bg: var(--mj-bg-surface);\n --tree-border-color: var(--mj-border-default);\n --tree-text-color: var(--mj-text-primary);\n --tree-text-secondary: var(--mj-text-muted);\n --tree-text-muted: var(--mj-text-disabled);\n\n \n\n --tree-node-hover-bg: var(--mj-bg-surface-sunken);\n --tree-node-selected-bg: var(--mj-brand-primary-subtle);\n --tree-node-selected-border: var(--mj-brand-primary);\n --tree-node-focused-outline: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n --tree-node-match-bg: var(--mj-status-warning-subtle);\n\n \n\n --tree-icon-color: var(--mj-brand-primary);\n --tree-icon-leaf-color: var(--mj-text-muted);\n --tree-toggle-color: var(--mj-text-disabled);\n\n \n\n --tree-node-padding-y: 8px;\n --tree-node-padding-x: 12px;\n --tree-node-gap: 8px;\n --tree-icon-size: 16px;\n --tree-toggle-size: 12px;\n\n \n\n --tree-transition-duration: 150ms;\n --tree-animation-easing: ease-out;\n\n \n\n --tree-badge-bg: var(--mj-border-default);\n --tree-badge-color: var(--mj-text-muted);\n --tree-badge-size: 12px;\n\n display: block;\n width: 100%;\n height: 100%;\n}\n\n\n\n\n\n\n.tree-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n background: var(--tree-bg);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n outline: none;\n}\n\n.tree-container[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--tree-node-focused-outline);\n outline-offset: -2px;\n}\n\n\n\n\n\n\n.tree-loading[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 16px;\n gap: 12px;\n color: var(--tree-text-muted);\n}\n\n.tree-loading__spinner[_ngcontent-%COMP%] {\n font-size: var(--mj-text-2xl);\n color: var(--tree-icon-color);\n}\n\n.tree-loading__text[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n}\n\n\n\n\n\n\n.tree-error[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 16px;\n gap: 12px;\n text-align: center;\n}\n\n.tree-error__icon[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--mj-status-error);\n}\n\n.tree-error__message[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n color: var(--tree-text-secondary);\n max-width: 280px;\n}\n\n.tree-error__retry[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n border: 1px solid var(--tree-border-color);\n border-radius: var(--mj-radius-md);\n background: var(--tree-bg);\n color: var(--tree-text-color);\n font-size: var(--mj-text-sm);\n cursor: pointer;\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-error__retry[_ngcontent-%COMP%]:hover {\n background: var(--tree-node-hover-bg);\n border-color: var(--tree-icon-color);\n color: var(--tree-icon-color);\n}\n\n\n\n\n\n\n.tree-empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 16px;\n gap: 12px;\n color: var(--tree-text-muted);\n}\n\n.tree-empty__icon[_ngcontent-%COMP%] {\n font-size: 40px;\n opacity: 0.5;\n}\n\n.tree-empty__message[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n}\n\n\n\n\n\n\n.tree-toolbar[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 8px 12px;\n border-bottom: 1px solid var(--tree-border-color);\n background: var(--tree-node-hover-bg);\n}\n\n.tree-toolbar__btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: var(--mj-radius-sm);\n background: transparent;\n color: var(--tree-text-secondary);\n cursor: pointer;\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-toolbar__btn[_ngcontent-%COMP%]:hover {\n background: var(--tree-bg);\n color: var(--tree-icon-color);\n}\n\n\n\n\n\n\n.tree-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 4px 0;\n}\n\n\n\n\n\n\n.tree-node[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--tree-node-gap);\n padding: var(--tree-node-padding-y) var(--tree-node-padding-x);\n cursor: pointer;\n user-select: none;\n border-left: 3px solid transparent;\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n min-height: 36px;\n}\n\n.tree-node[_ngcontent-%COMP%]:hover {\n background: var(--tree-node-hover-bg);\n}\n\n.tree-node--selected[_ngcontent-%COMP%] {\n background: var(--tree-node-selected-bg);\n border-left-color: var(--tree-node-selected-border);\n}\n\n.tree-node--selected[_ngcontent-%COMP%]:hover {\n background: var(--tree-node-selected-bg);\n}\n\n.tree-node--focused[_ngcontent-%COMP%] {\n outline: 2px solid var(--tree-node-focused-outline);\n outline-offset: -2px;\n}\n\n\n\n.tree-search-highlight[_ngcontent-%COMP%] {\n background: var(--tree-node-match-bg);\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 500;\n}\n\n\n\n\n\n\n.tree-node-toggle[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n border-radius: var(--mj-radius-sm);\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-node-toggle[_ngcontent-%COMP%]:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.tree-node-toggle__icon[_ngcontent-%COMP%] {\n font-size: var(--tree-toggle-size);\n color: var(--tree-toggle-color);\n transition: transform var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-node--expanded[_ngcontent-%COMP%] .tree-node-toggle__icon[_ngcontent-%COMP%] {\n color: var(--tree-icon-color);\n}\n\n.tree-node-toggle__spacer[_ngcontent-%COMP%] {\n width: var(--tree-toggle-size);\n}\n\n.tree-node-leaf-spacer[_ngcontent-%COMP%] {\n width: 20px;\n flex-shrink: 0;\n}\n\n\n\n\n\n\n.tree-node-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--tree-icon-size);\n flex-shrink: 0;\n font-size: var(--tree-icon-size);\n color: var(--tree-icon-color);\n}\n\n.tree-node--leaf[_ngcontent-%COMP%] .tree-node-icon[_ngcontent-%COMP%] {\n color: var(--tree-icon-leaf-color);\n}\n\n\n\n\n\n\n.tree-node-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.tree-node-label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: 500;\n color: var(--tree-text-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.tree-node--leaf[_ngcontent-%COMP%] .tree-node-label[_ngcontent-%COMP%] {\n font-weight: 400;\n}\n\n.tree-node-description[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--tree-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n\n\n\n\n\n.tree-node-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n border-radius: 10px;\n background: var(--tree-badge-bg);\n color: var(--tree-badge-color);\n font-size: var(--tree-badge-size);\n font-weight: 500;\n flex-shrink: 0;\n}\n\n\n\n\n\n\n.tree-node-selected-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: var(--mj-radius-full);\n background: var(--tree-node-selected-border);\n color: var(--mj-text-inverse);\n font-size: 10px;\n flex-shrink: 0;\n}\n\n\n\n\n\n\n.tree-node-children[_ngcontent-%COMP%] {\n overflow: hidden;\n}\n\n.tree-node-children--animated[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_tree-expand var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n@keyframes _ngcontent-%COMP%_tree-expand {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n\n\n\n\n\n.tree-content[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n}\n\n.tree-content[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.tree-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--tree-border-color);\n border-radius: var(--mj-radius-sm);\n}\n\n.tree-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: var(--tree-toggle-color);\n}\n\n\n\n\n\n\n@media (max-width: 480px) {\n [_nghost-%COMP%] {\n --tree-node-padding-y: 10px;\n --tree-node-padding-x: 10px;\n --tree-icon-size: 18px;\n }\n\n .tree-node-label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-base);\n }\n}"] });
1650
1660
  }
1651
1661
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TreeComponent, [{
1652
1662
  type: Component,
1653
- args: [{ standalone: false, selector: 'mj-tree', template: "<!-- Tree Component Template -->\n<div [ngClass]=\"getContainerClasses()\" tabindex=\"0\">\n\n <!-- Loading State -->\n @if (IsLoading && ShowLoading) {\n <div class=\"tree-loading\">\n <div class=\"tree-loading__spinner\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n </div>\n <span class=\"tree-loading__text\">Loading...</span>\n </div>\n }\n\n <!-- Error State -->\n @if (ErrorMessage && !IsLoading) {\n <div class=\"tree-error\">\n <i class=\"fa-solid fa-exclamation-triangle tree-error__icon\"></i>\n <span class=\"tree-error__message\">{{ ErrorMessage }}</span>\n <button class=\"tree-error__retry\" (click)=\"Refresh()\">\n <i class=\"fa-solid fa-refresh\"></i>\n Retry\n </button>\n </div>\n }\n\n <!-- Toolbar -->\n @if (ShowExpandCollapseAll && Nodes.length > 0 && !IsLoading) {\n <div class=\"tree-toolbar\">\n <button\n class=\"tree-toolbar__btn\"\n (click)=\"ExpandAll()\"\n title=\"Expand All\">\n <i class=\"fa-solid fa-plus-square\"></i>\n </button>\n <button\n class=\"tree-toolbar__btn\"\n (click)=\"CollapseAll()\"\n title=\"Collapse All\">\n <i class=\"fa-solid fa-minus-square\"></i>\n </button>\n </div>\n }\n\n <!-- Empty State -->\n @if (IsLoaded && Nodes.length === 0 && !ErrorMessage && !IsLoading) {\n <div class=\"tree-empty\">\n <i [class]=\"EmptyIcon + ' tree-empty__icon'\"></i>\n <span class=\"tree-empty__message\">{{ EmptyMessage }}</span>\n </div>\n }\n\n <!-- Tree Content -->\n @if (Nodes.length > 0 && !IsLoading) {\n <div class=\"tree-content\">\n @for (node of Nodes; track trackNode($index, node)) {\n @if (node.Visible) {\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { node: node }\"></ng-container>\n }\n }\n </div>\n }\n</div>\n\n<!-- Recursive Node Template -->\n<ng-template #nodeTemplate let-node=\"node\">\n <div\n [ngClass]=\"getNodeClasses(node)\"\n [style.padding-left]=\"getNodePadding(node)\"\n [attr.data-node-id]=\"node.ID\"\n [attr.data-node-type]=\"node.Type\"\n [attr.aria-expanded]=\"node.Type === 'branch' ? node.Expanded : null\"\n [attr.aria-selected]=\"node.Selected\"\n role=\"treeitem\"\n (click)=\"onNodeClick(node, $event)\"\n (dblclick)=\"onNodeDoubleClick(node, $event)\">\n\n <!-- Toggle Button (for branches with children) -->\n @if (node.Type === 'branch') {\n <span\n class=\"tree-node-toggle\"\n (click)=\"onToggleClick(node, $event)\">\n @if (node.Children.length > 0) {\n <i\n class=\"fa-solid tree-node-toggle__icon\"\n [ngClass]=\"{\n 'fa-chevron-right': !node.Expanded,\n 'fa-chevron-down': node.Expanded\n }\">\n </i>\n }\n @if (node.Children.length === 0) {\n <span\n class=\"tree-node-toggle__spacer\">\n </span>\n }\n </span>\n }\n\n <!-- Leaf Spacer (to align with branches, only when not at root level) -->\n @if (node.Type === 'leaf' && node.Level > 0) {\n <span\n class=\"tree-node-leaf-spacer\"\n >\n </span>\n }\n\n <!-- Icon -->\n @if (ShowIcons) {\n <span\n class=\"tree-node-icon\"\n [style.color]=\"node.Color || null\">\n <i [class]=\"node.Icon\"></i>\n </span>\n }\n\n <!-- Content -->\n <span class=\"tree-node-content\">\n <!-- Label with search highlight -->\n <span class=\"tree-node-label\" [innerHTML]=\"getHighlightedLabel(node)\"></span>\n\n <!-- Description -->\n @if (ShowDescriptions && node.Description) {\n <span\n class=\"tree-node-description\"\n >\n {{ node.Description }}\n </span>\n }\n </span>\n\n <!-- Badge -->\n @if (ShowBadges && node.Badge) {\n <span\n class=\"tree-node-badge\"\n >\n {{ node.Badge }}\n </span>\n }\n\n <!-- Selection Indicator -->\n @if (node.Selected) {\n <span class=\"tree-node-selected-indicator\">\n <i class=\"fa-solid fa-check\"></i>\n </span>\n }\n </div>\n\n <!-- Children (if expanded) -->\n @if (node.Type === 'branch' && node.Expanded && node.Children.length > 0) {\n <div\n class=\"tree-node-children\"\n [class.tree-node-children--animated]=\"AnimateExpandCollapse\"\n role=\"group\">\n @for (child of node.Children; track trackNode($index, child)) {\n @if (child.Visible) {\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { node: child }\"></ng-container>\n }\n }\n </div>\n }\n</ng-template>\n", styles: ["/**\n * Tree Component Styles\n *\n * Uses CSS custom properties for easy theming.\n * Containers can override these variables to customize appearance.\n */\n\n/* ========================================\n CSS Variables (Theming)\n ======================================== */\n\n:host {\n /* Colors */\n --tree-bg: var(--mj-bg-surface);\n --tree-border-color: var(--mj-border-default);\n --tree-text-color: var(--mj-text-primary);\n --tree-text-secondary: var(--mj-text-muted);\n --tree-text-muted: var(--mj-text-disabled);\n\n /* Node Colors */\n --tree-node-hover-bg: var(--mj-bg-surface-sunken);\n --tree-node-selected-bg: var(--mj-brand-primary-subtle);\n --tree-node-selected-border: var(--mj-brand-primary);\n --tree-node-focused-outline: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n --tree-node-match-bg: var(--mj-status-warning-subtle);\n\n /* Icon Colors */\n --tree-icon-color: var(--mj-brand-primary);\n --tree-icon-leaf-color: var(--mj-text-muted);\n --tree-toggle-color: var(--mj-text-disabled);\n\n /* Spacing */\n --tree-node-padding-y: 8px;\n --tree-node-padding-x: 12px;\n --tree-node-gap: 8px;\n --tree-icon-size: 16px;\n --tree-toggle-size: 12px;\n\n /* Animation */\n --tree-transition-duration: 150ms;\n --tree-animation-easing: ease-out;\n\n /* Badge */\n --tree-badge-bg: var(--mj-border-default);\n --tree-badge-color: var(--mj-text-muted);\n --tree-badge-size: 12px;\n\n display: block;\n width: 100%;\n height: 100%;\n}\n\n/* ========================================\n Container\n ======================================== */\n\n.tree-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n background: var(--tree-bg);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n outline: none;\n}\n\n.tree-container:focus-visible {\n outline: 2px solid var(--tree-node-focused-outline);\n outline-offset: -2px;\n}\n\n/* ========================================\n Loading State\n ======================================== */\n\n.tree-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 16px;\n gap: 12px;\n color: var(--tree-text-muted);\n}\n\n.tree-loading__spinner {\n font-size: var(--mj-text-2xl);\n color: var(--tree-icon-color);\n}\n\n.tree-loading__text {\n font-size: var(--mj-text-sm);\n}\n\n/* ========================================\n Error State\n ======================================== */\n\n.tree-error {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 16px;\n gap: 12px;\n text-align: center;\n}\n\n.tree-error__icon {\n font-size: 32px;\n color: var(--mj-status-error);\n}\n\n.tree-error__message {\n font-size: var(--mj-text-sm);\n color: var(--tree-text-secondary);\n max-width: 280px;\n}\n\n.tree-error__retry {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n border: 1px solid var(--tree-border-color);\n border-radius: var(--mj-radius-md);\n background: var(--tree-bg);\n color: var(--tree-text-color);\n font-size: var(--mj-text-sm);\n cursor: pointer;\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-error__retry:hover {\n background: var(--tree-node-hover-bg);\n border-color: var(--tree-icon-color);\n color: var(--tree-icon-color);\n}\n\n/* ========================================\n Empty State\n ======================================== */\n\n.tree-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 16px;\n gap: 12px;\n color: var(--tree-text-muted);\n}\n\n.tree-empty__icon {\n font-size: 40px;\n opacity: 0.5;\n}\n\n.tree-empty__message {\n font-size: var(--mj-text-sm);\n}\n\n/* ========================================\n Toolbar\n ======================================== */\n\n.tree-toolbar {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 8px 12px;\n border-bottom: 1px solid var(--tree-border-color);\n background: var(--tree-node-hover-bg);\n}\n\n.tree-toolbar__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: var(--mj-radius-sm);\n background: transparent;\n color: var(--tree-text-secondary);\n cursor: pointer;\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-toolbar__btn:hover {\n background: var(--tree-bg);\n color: var(--tree-icon-color);\n}\n\n/* ========================================\n Tree Content\n ======================================== */\n\n.tree-content {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 4px 0;\n}\n\n/* ========================================\n Tree Node\n ======================================== */\n\n.tree-node {\n display: flex;\n align-items: center;\n gap: var(--tree-node-gap);\n padding: var(--tree-node-padding-y) var(--tree-node-padding-x);\n cursor: pointer;\n user-select: none;\n border-left: 3px solid transparent;\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n min-height: 36px;\n}\n\n.tree-node:hover {\n background: var(--tree-node-hover-bg);\n}\n\n.tree-node--selected {\n background: var(--tree-node-selected-bg);\n border-left-color: var(--tree-node-selected-border);\n}\n\n.tree-node--selected:hover {\n background: var(--tree-node-selected-bg);\n}\n\n.tree-node--focused {\n outline: 2px solid var(--tree-node-focused-outline);\n outline-offset: -2px;\n}\n\n/* Search highlight for matching text portion */\n.tree-search-highlight {\n background: var(--tree-node-match-bg);\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 500;\n}\n\n/* ========================================\n Toggle Button\n ======================================== */\n\n.tree-node-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n border-radius: var(--mj-radius-sm);\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-node-toggle:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.tree-node-toggle__icon {\n font-size: var(--tree-toggle-size);\n color: var(--tree-toggle-color);\n transition: transform var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-node--expanded .tree-node-toggle__icon {\n color: var(--tree-icon-color);\n}\n\n.tree-node-toggle__spacer {\n width: var(--tree-toggle-size);\n}\n\n.tree-node-leaf-spacer {\n width: 20px;\n flex-shrink: 0;\n}\n\n/* ========================================\n Node Icon\n ======================================== */\n\n.tree-node-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--tree-icon-size);\n flex-shrink: 0;\n font-size: var(--tree-icon-size);\n color: var(--tree-icon-color);\n}\n\n.tree-node--leaf .tree-node-icon {\n color: var(--tree-icon-leaf-color);\n}\n\n/* ========================================\n Node Content\n ======================================== */\n\n.tree-node-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.tree-node-label {\n font-size: var(--mj-text-sm);\n font-weight: 500;\n color: var(--tree-text-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.tree-node--leaf .tree-node-label {\n font-weight: 400;\n}\n\n.tree-node-description {\n font-size: var(--mj-text-xs);\n color: var(--tree-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ========================================\n Node Badge\n ======================================== */\n\n.tree-node-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n border-radius: 10px;\n background: var(--tree-badge-bg);\n color: var(--tree-badge-color);\n font-size: var(--tree-badge-size);\n font-weight: 500;\n flex-shrink: 0;\n}\n\n/* ========================================\n Selection Indicator\n ======================================== */\n\n.tree-node-selected-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: var(--mj-radius-full);\n background: var(--tree-node-selected-border);\n color: var(--mj-text-inverse);\n font-size: 10px;\n flex-shrink: 0;\n}\n\n/* ========================================\n Children Container\n ======================================== */\n\n.tree-node-children {\n overflow: hidden;\n}\n\n.tree-node-children--animated {\n animation: tree-expand var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n@keyframes tree-expand {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* ========================================\n Scrollbar Styling\n ======================================== */\n\n.tree-content::-webkit-scrollbar {\n width: 8px;\n}\n\n.tree-content::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.tree-content::-webkit-scrollbar-thumb {\n background: var(--tree-border-color);\n border-radius: var(--mj-radius-sm);\n}\n\n.tree-content::-webkit-scrollbar-thumb:hover {\n background: var(--tree-toggle-color);\n}\n\n/* ========================================\n Responsive Adjustments\n ======================================== */\n\n@media (max-width: 480px) {\n :host {\n --tree-node-padding-y: 10px;\n --tree-node-padding-x: 10px;\n --tree-icon-size: 18px;\n }\n\n .tree-node-label {\n font-size: var(--mj-text-base);\n }\n}\n"] }]
1663
+ args: [{ standalone: false, selector: 'mj-tree', template: "<!-- Tree Component Template -->\n<div [ngClass]=\"getContainerClasses()\" tabindex=\"0\">\n\n <!-- Loading State -->\n @if (IsLoading && ShowLoading) {\n <div class=\"tree-loading\">\n <div class=\"tree-loading__spinner\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n </div>\n <span class=\"tree-loading__text\">Loading...</span>\n </div>\n }\n\n <!-- Error State -->\n @if (ErrorMessage && !IsLoading) {\n <div class=\"tree-error\">\n <i class=\"fa-solid fa-exclamation-triangle tree-error__icon\"></i>\n <span class=\"tree-error__message\">{{ ErrorMessage }}</span>\n <button class=\"tree-error__retry\" (click)=\"Refresh()\">\n <i class=\"fa-solid fa-refresh\"></i>\n Retry\n </button>\n </div>\n }\n\n <!-- Toolbar -->\n @if (ShowExpandCollapseAll && Nodes.length > 0 && !IsLoading) {\n <div class=\"tree-toolbar\">\n <button\n class=\"tree-toolbar__btn\"\n (click)=\"ExpandAll()\"\n title=\"Expand All\">\n <i class=\"fa-solid fa-plus-square\"></i>\n </button>\n <button\n class=\"tree-toolbar__btn\"\n (click)=\"CollapseAll()\"\n title=\"Collapse All\">\n <i class=\"fa-solid fa-minus-square\"></i>\n </button>\n </div>\n }\n\n <!-- Empty State -->\n @if (IsLoaded && Nodes.length === 0 && !ErrorMessage && !IsLoading) {\n <mj-empty-state class=\"tree-empty\" Size=\"compact\"\n [Icon]=\"EmptyIcon\" [Title]=\"EmptyMessage\" />\n }\n\n <!-- Tree Content -->\n @if (Nodes.length > 0 && !IsLoading) {\n <div class=\"tree-content\">\n @for (node of Nodes; track trackNode($index, node)) {\n @if (node.Visible) {\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { node: node }\"></ng-container>\n }\n }\n </div>\n }\n</div>\n\n<!-- Recursive Node Template -->\n<ng-template #nodeTemplate let-node=\"node\">\n <div\n [ngClass]=\"getNodeClasses(node)\"\n [style.padding-left]=\"getNodePadding(node)\"\n [attr.data-node-id]=\"node.ID\"\n [attr.data-node-type]=\"node.Type\"\n [attr.aria-expanded]=\"node.Type === 'branch' ? node.Expanded : null\"\n [attr.aria-selected]=\"node.Selected\"\n role=\"treeitem\"\n (click)=\"onNodeClick(node, $event)\"\n (dblclick)=\"onNodeDoubleClick(node, $event)\">\n\n <!-- Toggle Button (for branches with children) -->\n @if (node.Type === 'branch') {\n <span\n class=\"tree-node-toggle\"\n (click)=\"onToggleClick(node, $event)\">\n @if (node.Children.length > 0) {\n <i\n class=\"fa-solid tree-node-toggle__icon\"\n [ngClass]=\"{\n 'fa-chevron-right': !node.Expanded,\n 'fa-chevron-down': node.Expanded\n }\">\n </i>\n }\n @if (node.Children.length === 0) {\n <span\n class=\"tree-node-toggle__spacer\">\n </span>\n }\n </span>\n }\n\n <!-- Leaf Spacer (to align with branches, only when not at root level) -->\n @if (node.Type === 'leaf' && node.Level > 0) {\n <span\n class=\"tree-node-leaf-spacer\"\n >\n </span>\n }\n\n <!-- Icon -->\n @if (ShowIcons) {\n <span\n class=\"tree-node-icon\"\n [style.color]=\"node.Color || null\">\n <i [class]=\"node.Icon\"></i>\n </span>\n }\n\n <!-- Content -->\n <span class=\"tree-node-content\">\n <!-- Label with search highlight -->\n <span class=\"tree-node-label\" [innerHTML]=\"getHighlightedLabel(node)\"></span>\n\n <!-- Description -->\n @if (ShowDescriptions && node.Description) {\n <span\n class=\"tree-node-description\"\n >\n {{ node.Description }}\n </span>\n }\n </span>\n\n <!-- Badge -->\n @if (ShowBadges && node.Badge) {\n <span\n class=\"tree-node-badge\"\n >\n {{ node.Badge }}\n </span>\n }\n\n <!-- Selection Indicator -->\n @if (node.Selected) {\n <span class=\"tree-node-selected-indicator\">\n <i class=\"fa-solid fa-check\"></i>\n </span>\n }\n </div>\n\n <!-- Children (if expanded) -->\n @if (node.Type === 'branch' && node.Expanded && node.Children.length > 0) {\n <div\n class=\"tree-node-children\"\n [class.tree-node-children--animated]=\"AnimateExpandCollapse\"\n role=\"group\">\n @for (child of node.Children; track trackNode($index, child)) {\n @if (child.Visible) {\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { node: child }\"></ng-container>\n }\n }\n </div>\n }\n</ng-template>\n", styles: ["/**\n * Tree Component Styles\n *\n * Uses CSS custom properties for easy theming.\n * Containers can override these variables to customize appearance.\n */\n\n/* ========================================\n CSS Variables (Theming)\n ======================================== */\n\n:host {\n /* Colors */\n --tree-bg: var(--mj-bg-surface);\n --tree-border-color: var(--mj-border-default);\n --tree-text-color: var(--mj-text-primary);\n --tree-text-secondary: var(--mj-text-muted);\n --tree-text-muted: var(--mj-text-disabled);\n\n /* Node Colors */\n --tree-node-hover-bg: var(--mj-bg-surface-sunken);\n --tree-node-selected-bg: var(--mj-brand-primary-subtle);\n --tree-node-selected-border: var(--mj-brand-primary);\n --tree-node-focused-outline: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n --tree-node-match-bg: var(--mj-status-warning-subtle);\n\n /* Icon Colors */\n --tree-icon-color: var(--mj-brand-primary);\n --tree-icon-leaf-color: var(--mj-text-muted);\n --tree-toggle-color: var(--mj-text-disabled);\n\n /* Spacing */\n --tree-node-padding-y: 8px;\n --tree-node-padding-x: 12px;\n --tree-node-gap: 8px;\n --tree-icon-size: 16px;\n --tree-toggle-size: 12px;\n\n /* Animation */\n --tree-transition-duration: 150ms;\n --tree-animation-easing: ease-out;\n\n /* Badge */\n --tree-badge-bg: var(--mj-border-default);\n --tree-badge-color: var(--mj-text-muted);\n --tree-badge-size: 12px;\n\n display: block;\n width: 100%;\n height: 100%;\n}\n\n/* ========================================\n Container\n ======================================== */\n\n.tree-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n background: var(--tree-bg);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n outline: none;\n}\n\n.tree-container:focus-visible {\n outline: 2px solid var(--tree-node-focused-outline);\n outline-offset: -2px;\n}\n\n/* ========================================\n Loading State\n ======================================== */\n\n.tree-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 16px;\n gap: 12px;\n color: var(--tree-text-muted);\n}\n\n.tree-loading__spinner {\n font-size: var(--mj-text-2xl);\n color: var(--tree-icon-color);\n}\n\n.tree-loading__text {\n font-size: var(--mj-text-sm);\n}\n\n/* ========================================\n Error State\n ======================================== */\n\n.tree-error {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 16px;\n gap: 12px;\n text-align: center;\n}\n\n.tree-error__icon {\n font-size: 32px;\n color: var(--mj-status-error);\n}\n\n.tree-error__message {\n font-size: var(--mj-text-sm);\n color: var(--tree-text-secondary);\n max-width: 280px;\n}\n\n.tree-error__retry {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n border: 1px solid var(--tree-border-color);\n border-radius: var(--mj-radius-md);\n background: var(--tree-bg);\n color: var(--tree-text-color);\n font-size: var(--mj-text-sm);\n cursor: pointer;\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-error__retry:hover {\n background: var(--tree-node-hover-bg);\n border-color: var(--tree-icon-color);\n color: var(--tree-icon-color);\n}\n\n/* ========================================\n Empty State\n ======================================== */\n\n.tree-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 16px;\n gap: 12px;\n color: var(--tree-text-muted);\n}\n\n.tree-empty__icon {\n font-size: 40px;\n opacity: 0.5;\n}\n\n.tree-empty__message {\n font-size: var(--mj-text-sm);\n}\n\n/* ========================================\n Toolbar\n ======================================== */\n\n.tree-toolbar {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 8px 12px;\n border-bottom: 1px solid var(--tree-border-color);\n background: var(--tree-node-hover-bg);\n}\n\n.tree-toolbar__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: var(--mj-radius-sm);\n background: transparent;\n color: var(--tree-text-secondary);\n cursor: pointer;\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-toolbar__btn:hover {\n background: var(--tree-bg);\n color: var(--tree-icon-color);\n}\n\n/* ========================================\n Tree Content\n ======================================== */\n\n.tree-content {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 4px 0;\n}\n\n/* ========================================\n Tree Node\n ======================================== */\n\n.tree-node {\n display: flex;\n align-items: center;\n gap: var(--tree-node-gap);\n padding: var(--tree-node-padding-y) var(--tree-node-padding-x);\n cursor: pointer;\n user-select: none;\n border-left: 3px solid transparent;\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n min-height: 36px;\n}\n\n.tree-node:hover {\n background: var(--tree-node-hover-bg);\n}\n\n.tree-node--selected {\n background: var(--tree-node-selected-bg);\n border-left-color: var(--tree-node-selected-border);\n}\n\n.tree-node--selected:hover {\n background: var(--tree-node-selected-bg);\n}\n\n.tree-node--focused {\n outline: 2px solid var(--tree-node-focused-outline);\n outline-offset: -2px;\n}\n\n/* Search highlight for matching text portion */\n.tree-search-highlight {\n background: var(--tree-node-match-bg);\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 500;\n}\n\n/* ========================================\n Toggle Button\n ======================================== */\n\n.tree-node-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n border-radius: var(--mj-radius-sm);\n transition: all var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-node-toggle:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.tree-node-toggle__icon {\n font-size: var(--tree-toggle-size);\n color: var(--tree-toggle-color);\n transition: transform var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n.tree-node--expanded .tree-node-toggle__icon {\n color: var(--tree-icon-color);\n}\n\n.tree-node-toggle__spacer {\n width: var(--tree-toggle-size);\n}\n\n.tree-node-leaf-spacer {\n width: 20px;\n flex-shrink: 0;\n}\n\n/* ========================================\n Node Icon\n ======================================== */\n\n.tree-node-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--tree-icon-size);\n flex-shrink: 0;\n font-size: var(--tree-icon-size);\n color: var(--tree-icon-color);\n}\n\n.tree-node--leaf .tree-node-icon {\n color: var(--tree-icon-leaf-color);\n}\n\n/* ========================================\n Node Content\n ======================================== */\n\n.tree-node-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.tree-node-label {\n font-size: var(--mj-text-sm);\n font-weight: 500;\n color: var(--tree-text-color);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.tree-node--leaf .tree-node-label {\n font-weight: 400;\n}\n\n.tree-node-description {\n font-size: var(--mj-text-xs);\n color: var(--tree-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ========================================\n Node Badge\n ======================================== */\n\n.tree-node-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n border-radius: 10px;\n background: var(--tree-badge-bg);\n color: var(--tree-badge-color);\n font-size: var(--tree-badge-size);\n font-weight: 500;\n flex-shrink: 0;\n}\n\n/* ========================================\n Selection Indicator\n ======================================== */\n\n.tree-node-selected-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: var(--mj-radius-full);\n background: var(--tree-node-selected-border);\n color: var(--mj-text-inverse);\n font-size: 10px;\n flex-shrink: 0;\n}\n\n/* ========================================\n Children Container\n ======================================== */\n\n.tree-node-children {\n overflow: hidden;\n}\n\n.tree-node-children--animated {\n animation: tree-expand var(--tree-transition-duration) var(--tree-animation-easing);\n}\n\n@keyframes tree-expand {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* ========================================\n Scrollbar Styling\n ======================================== */\n\n.tree-content::-webkit-scrollbar {\n width: 8px;\n}\n\n.tree-content::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.tree-content::-webkit-scrollbar-thumb {\n background: var(--tree-border-color);\n border-radius: var(--mj-radius-sm);\n}\n\n.tree-content::-webkit-scrollbar-thumb:hover {\n background: var(--tree-toggle-color);\n}\n\n/* ========================================\n Responsive Adjustments\n ======================================== */\n\n@media (max-width: 480px) {\n :host {\n --tree-node-padding-y: 10px;\n --tree-node-padding-x: 10px;\n --tree-icon-size: 18px;\n }\n\n .tree-node-label {\n font-size: var(--mj-text-base);\n }\n}\n"] }]
1654
1664
  }], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], { BranchConfig: [{
1655
1665
  type: Input
1656
1666
  }], LeafConfig: [{
@@ -1663,6 +1673,8 @@ export class TreeComponent {
1663
1673
  type: Input
1664
1674
  }], ExpandedIDs: [{
1665
1675
  type: Input
1676
+ }], DefaultExpansion: [{
1677
+ type: Input
1666
1678
  }], ShowExpandCollapseAll: [{
1667
1679
  type: Input
1668
1680
  }], EnableKeyboardNavigation: [{