@memberjunction/ng-trees 3.4.0 → 4.0.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.
- package/dist/lib/ng-trees.module.d.ts +0 -5
- package/dist/lib/ng-trees.module.d.ts.map +1 -1
- package/dist/lib/ng-trees.module.js +0 -7
- package/dist/lib/ng-trees.module.js.map +1 -1
- package/dist/lib/tree/tree.component.d.ts.map +1 -1
- package/dist/lib/tree/tree.component.js +94 -98
- package/dist/lib/tree/tree.component.js.map +1 -1
- package/dist/lib/tree-dropdown/tree-dropdown.component.d.ts.map +1 -1
- package/dist/lib/tree-dropdown/tree-dropdown.component.js +38 -41
- package/dist/lib/tree-dropdown/tree-dropdown.component.js.map +1 -1
- package/dist/public-api.js +0 -3
- package/dist/public-api.js.map +1 -1
- package/package.json +11 -11
|
@@ -3,11 +3,6 @@ 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
|
-
/**
|
|
7
|
-
* Prevents tree-shaking of the NgTrees module.
|
|
8
|
-
* Import this in your application's module to ensure components are available.
|
|
9
|
-
*/
|
|
10
|
-
export declare function LoadNgTreesModule(): void;
|
|
11
6
|
export declare class NgTreesModule {
|
|
12
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgTreesModule, never>;
|
|
13
8
|
static ɵmod: i0.ɵɵNgModuleDeclaration<NgTreesModule, [typeof i1.TreeComponent, typeof i2.TreeDropdownComponent], [typeof i3.CommonModule, typeof i4.FormsModule], [typeof i1.TreeComponent, typeof i2.TreeDropdownComponent]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-trees.module.d.ts","sourceRoot":"","sources":["../../src/lib/ng-trees.module.ts"],"names":[],"mappings":";;;;;AAcA
|
|
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"}
|
|
@@ -10,13 +10,6 @@ import { FormsModule } from '@angular/forms';
|
|
|
10
10
|
import { TreeComponent } from './tree/tree.component';
|
|
11
11
|
import { TreeDropdownComponent } from './tree-dropdown/tree-dropdown.component';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
|
-
/**
|
|
14
|
-
* Prevents tree-shaking of the NgTrees module.
|
|
15
|
-
* Import this in your application's module to ensure components are available.
|
|
16
|
-
*/
|
|
17
|
-
export function LoadNgTreesModule() {
|
|
18
|
-
// This function exists to prevent tree-shaking
|
|
19
|
-
}
|
|
20
13
|
export class NgTreesModule {
|
|
21
14
|
static ɵfac = function NgTreesModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NgTreesModule)(); };
|
|
22
15
|
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NgTreesModule });
|
|
@@ -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;;
|
|
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"}
|
|
@@ -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;AAEvB,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,
|
|
1
|
+
{"version":3,"file":"tree.component.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/tree.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,24 +11,24 @@ import * as i0 from "@angular/core";
|
|
|
11
11
|
import * as i1 from "@angular/common";
|
|
12
12
|
const _c0 = a0 => ({ node: a0 });
|
|
13
13
|
const _c1 = (a0, a1) => ({ "fa-chevron-right": a0, "fa-chevron-down": a1 });
|
|
14
|
-
function
|
|
15
|
-
i0.ɵɵelementStart(0, "div",
|
|
16
|
-
i0.ɵɵelement(2, "i",
|
|
14
|
+
function TreeComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
15
|
+
i0.ɵɵelementStart(0, "div", 2)(1, "div", 7);
|
|
16
|
+
i0.ɵɵelement(2, "i", 8);
|
|
17
17
|
i0.ɵɵelementEnd();
|
|
18
|
-
i0.ɵɵelementStart(3, "span",
|
|
18
|
+
i0.ɵɵelementStart(3, "span", 9);
|
|
19
19
|
i0.ɵɵtext(4, "Loading...");
|
|
20
20
|
i0.ɵɵelementEnd()();
|
|
21
21
|
} }
|
|
22
|
-
function
|
|
22
|
+
function TreeComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
23
23
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
24
|
-
i0.ɵɵelementStart(0, "div",
|
|
25
|
-
i0.ɵɵelement(1, "i",
|
|
26
|
-
i0.ɵɵelementStart(2, "span",
|
|
24
|
+
i0.ɵɵelementStart(0, "div", 3);
|
|
25
|
+
i0.ɵɵelement(1, "i", 10);
|
|
26
|
+
i0.ɵɵelementStart(2, "span", 11);
|
|
27
27
|
i0.ɵɵtext(3);
|
|
28
28
|
i0.ɵɵelementEnd();
|
|
29
|
-
i0.ɵɵelementStart(4, "button",
|
|
30
|
-
i0.ɵɵlistener("click", function
|
|
31
|
-
i0.ɵɵelement(5, "i",
|
|
29
|
+
i0.ɵɵelementStart(4, "button", 12);
|
|
30
|
+
i0.ɵɵlistener("click", function TreeComponent_Conditional_2_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Refresh()); });
|
|
31
|
+
i0.ɵɵelement(5, "i", 13);
|
|
32
32
|
i0.ɵɵtext(6, " Retry ");
|
|
33
33
|
i0.ɵɵelementEnd()();
|
|
34
34
|
} if (rf & 2) {
|
|
@@ -36,21 +36,21 @@ function TreeComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
36
36
|
i0.ɵɵadvance(3);
|
|
37
37
|
i0.ɵɵtextInterpolate(ctx_r1.ErrorMessage);
|
|
38
38
|
} }
|
|
39
|
-
function
|
|
39
|
+
function TreeComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
40
40
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
41
|
-
i0.ɵɵelementStart(0, "div",
|
|
42
|
-
i0.ɵɵlistener("click", function
|
|
43
|
-
i0.ɵɵelement(2, "i",
|
|
41
|
+
i0.ɵɵelementStart(0, "div", 4)(1, "button", 14);
|
|
42
|
+
i0.ɵɵlistener("click", function TreeComponent_Conditional_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.ExpandAll()); });
|
|
43
|
+
i0.ɵɵelement(2, "i", 15);
|
|
44
44
|
i0.ɵɵelementEnd();
|
|
45
|
-
i0.ɵɵelementStart(3, "button",
|
|
46
|
-
i0.ɵɵlistener("click", function
|
|
47
|
-
i0.ɵɵelement(4, "i",
|
|
45
|
+
i0.ɵɵelementStart(3, "button", 16);
|
|
46
|
+
i0.ɵɵlistener("click", function TreeComponent_Conditional_3_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CollapseAll()); });
|
|
47
|
+
i0.ɵɵelement(4, "i", 17);
|
|
48
48
|
i0.ɵɵelementEnd()();
|
|
49
49
|
} }
|
|
50
|
-
function
|
|
51
|
-
i0.ɵɵelementStart(0, "div",
|
|
50
|
+
function TreeComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
+
i0.ɵɵelementStart(0, "div", 5);
|
|
52
52
|
i0.ɵɵelement(1, "i");
|
|
53
|
-
i0.ɵɵelementStart(2, "span",
|
|
53
|
+
i0.ɵɵelementStart(2, "span", 18);
|
|
54
54
|
i0.ɵɵtext(3);
|
|
55
55
|
i0.ɵɵelementEnd()();
|
|
56
56
|
} if (rf & 2) {
|
|
@@ -60,65 +60,60 @@ function TreeComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
60
60
|
i0.ɵɵadvance(2);
|
|
61
61
|
i0.ɵɵtextInterpolate(ctx_r1.EmptyMessage);
|
|
62
62
|
} }
|
|
63
|
-
function
|
|
63
|
+
function TreeComponent_Conditional_5_For_2_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
64
64
|
i0.ɵɵelementContainer(0);
|
|
65
65
|
} }
|
|
66
|
-
function
|
|
67
|
-
i0.ɵɵ
|
|
68
|
-
i0.ɵɵtemplate(1, TreeComponent_div_5_ng_container_1_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 26);
|
|
69
|
-
i0.ɵɵelementContainerEnd();
|
|
66
|
+
function TreeComponent_Conditional_5_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
67
|
+
i0.ɵɵtemplate(0, TreeComponent_Conditional_5_For_2_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 19);
|
|
70
68
|
} if (rf & 2) {
|
|
71
69
|
const node_r4 = i0.ɵɵnextContext().$implicit;
|
|
72
70
|
i0.ɵɵnextContext(2);
|
|
73
71
|
const nodeTemplate_r5 = i0.ɵɵreference(7);
|
|
74
|
-
i0.ɵɵadvance();
|
|
75
72
|
i0.ɵɵproperty("ngTemplateOutlet", nodeTemplate_r5)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, node_r4));
|
|
76
73
|
} }
|
|
77
|
-
function
|
|
78
|
-
i0.ɵɵ
|
|
79
|
-
i0.ɵɵtemplate(1, TreeComponent_div_5_ng_container_1_ng_container_1_Template, 2, 4, "ng-container", 25);
|
|
80
|
-
i0.ɵɵelementContainerEnd();
|
|
74
|
+
function TreeComponent_Conditional_5_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
75
|
+
i0.ɵɵconditionalCreate(0, TreeComponent_Conditional_5_For_2_Conditional_0_Template, 1, 4, "ng-container");
|
|
81
76
|
} if (rf & 2) {
|
|
82
77
|
const node_r4 = ctx.$implicit;
|
|
83
|
-
i0.ɵɵ
|
|
84
|
-
i0.ɵɵproperty("ngIf", node_r4.Visible);
|
|
78
|
+
i0.ɵɵconditional(node_r4.Visible ? 0 : -1);
|
|
85
79
|
} }
|
|
86
|
-
function
|
|
87
|
-
i0.ɵɵelementStart(0, "div",
|
|
88
|
-
i0.ɵɵ
|
|
80
|
+
function TreeComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
81
|
+
i0.ɵɵelementStart(0, "div", 6);
|
|
82
|
+
i0.ɵɵrepeaterCreate(1, TreeComponent_Conditional_5_For_2_Template, 1, 1, null, null, i0.ɵɵcomponentInstance().trackNode, true);
|
|
89
83
|
i0.ɵɵelementEnd();
|
|
90
84
|
} if (rf & 2) {
|
|
91
85
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
92
86
|
i0.ɵɵadvance();
|
|
93
|
-
i0.ɵɵ
|
|
87
|
+
i0.ɵɵrepeater(ctx_r1.Nodes);
|
|
94
88
|
} }
|
|
95
|
-
function
|
|
96
|
-
i0.ɵɵelement(0, "i",
|
|
89
|
+
function TreeComponent_ng_template_6_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
90
|
+
i0.ɵɵelement(0, "i", 31);
|
|
97
91
|
} if (rf & 2) {
|
|
98
92
|
const node_r7 = i0.ɵɵnextContext(2).node;
|
|
99
93
|
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c1, !node_r7.Expanded, node_r7.Expanded));
|
|
100
94
|
} }
|
|
101
|
-
function
|
|
102
|
-
i0.ɵɵelement(0, "span",
|
|
95
|
+
function TreeComponent_ng_template_6_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
96
|
+
i0.ɵɵelement(0, "span", 32);
|
|
103
97
|
} }
|
|
104
|
-
function
|
|
98
|
+
function TreeComponent_ng_template_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
105
99
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
106
|
-
i0.ɵɵelementStart(0, "span",
|
|
107
|
-
i0.ɵɵlistener("click", function
|
|
108
|
-
i0.ɵɵ
|
|
100
|
+
i0.ɵɵelementStart(0, "span", 30);
|
|
101
|
+
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)); });
|
|
102
|
+
i0.ɵɵconditionalCreate(1, TreeComponent_ng_template_6_Conditional_1_Conditional_1_Template, 1, 4, "i", 31);
|
|
103
|
+
i0.ɵɵconditionalCreate(2, TreeComponent_ng_template_6_Conditional_1_Conditional_2_Template, 1, 0, "span", 32);
|
|
109
104
|
i0.ɵɵelementEnd();
|
|
110
105
|
} if (rf & 2) {
|
|
111
106
|
const node_r7 = i0.ɵɵnextContext().node;
|
|
112
107
|
i0.ɵɵadvance();
|
|
113
|
-
i0.ɵɵ
|
|
108
|
+
i0.ɵɵconditional(node_r7.Children.length > 0 ? 1 : -1);
|
|
114
109
|
i0.ɵɵadvance();
|
|
115
|
-
i0.ɵɵ
|
|
110
|
+
i0.ɵɵconditional(node_r7.Children.length === 0 ? 2 : -1);
|
|
116
111
|
} }
|
|
117
|
-
function
|
|
118
|
-
i0.ɵɵelement(0, "span",
|
|
112
|
+
function TreeComponent_ng_template_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
113
|
+
i0.ɵɵelement(0, "span", 22);
|
|
119
114
|
} }
|
|
120
|
-
function
|
|
121
|
-
i0.ɵɵelementStart(0, "span",
|
|
115
|
+
function TreeComponent_ng_template_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
116
|
+
i0.ɵɵelementStart(0, "span", 33);
|
|
122
117
|
i0.ɵɵelement(1, "i");
|
|
123
118
|
i0.ɵɵelementEnd();
|
|
124
119
|
} if (rf & 2) {
|
|
@@ -127,8 +122,8 @@ function TreeComponent_ng_template_6_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
127
122
|
i0.ɵɵadvance();
|
|
128
123
|
i0.ɵɵclassMap(node_r7.Icon);
|
|
129
124
|
} }
|
|
130
|
-
function
|
|
131
|
-
i0.ɵɵelementStart(0, "span",
|
|
125
|
+
function TreeComponent_ng_template_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
126
|
+
i0.ɵɵelementStart(0, "span", 26);
|
|
132
127
|
i0.ɵɵtext(1);
|
|
133
128
|
i0.ɵɵelementEnd();
|
|
134
129
|
} if (rf & 2) {
|
|
@@ -136,8 +131,8 @@ function TreeComponent_ng_template_6_span_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
136
131
|
i0.ɵɵadvance();
|
|
137
132
|
i0.ɵɵtextInterpolate1(" ", node_r7.Description, " ");
|
|
138
133
|
} }
|
|
139
|
-
function
|
|
140
|
-
i0.ɵɵelementStart(0, "span",
|
|
134
|
+
function TreeComponent_ng_template_6_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
135
|
+
i0.ɵɵelementStart(0, "span", 27);
|
|
141
136
|
i0.ɵɵtext(1);
|
|
142
137
|
i0.ɵɵelementEnd();
|
|
143
138
|
} if (rf & 2) {
|
|
@@ -145,57 +140,54 @@ function TreeComponent_ng_template_6_span_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
145
140
|
i0.ɵɵadvance();
|
|
146
141
|
i0.ɵɵtextInterpolate1(" ", node_r7.Badge, " ");
|
|
147
142
|
} }
|
|
148
|
-
function
|
|
149
|
-
i0.ɵɵelementStart(0, "span",
|
|
150
|
-
i0.ɵɵelement(1, "i",
|
|
143
|
+
function TreeComponent_ng_template_6_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
144
|
+
i0.ɵɵelementStart(0, "span", 28);
|
|
145
|
+
i0.ɵɵelement(1, "i", 34);
|
|
151
146
|
i0.ɵɵelementEnd();
|
|
152
147
|
} }
|
|
153
|
-
function
|
|
148
|
+
function TreeComponent_ng_template_6_Conditional_9_For_2_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
154
149
|
i0.ɵɵelementContainer(0);
|
|
155
150
|
} }
|
|
156
|
-
function
|
|
157
|
-
i0.ɵɵ
|
|
158
|
-
i0.ɵɵtemplate(1, TreeComponent_ng_template_6_div_9_ng_container_1_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 26);
|
|
159
|
-
i0.ɵɵelementContainerEnd();
|
|
151
|
+
function TreeComponent_ng_template_6_Conditional_9_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
152
|
+
i0.ɵɵtemplate(0, TreeComponent_ng_template_6_Conditional_9_For_2_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 19);
|
|
160
153
|
} if (rf & 2) {
|
|
161
154
|
const child_r9 = i0.ɵɵnextContext().$implicit;
|
|
162
155
|
i0.ɵɵnextContext(3);
|
|
163
156
|
const nodeTemplate_r5 = i0.ɵɵreference(7);
|
|
164
|
-
i0.ɵɵadvance();
|
|
165
157
|
i0.ɵɵproperty("ngTemplateOutlet", nodeTemplate_r5)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, child_r9));
|
|
166
158
|
} }
|
|
167
|
-
function
|
|
168
|
-
i0.ɵɵ
|
|
169
|
-
i0.ɵɵtemplate(1, TreeComponent_ng_template_6_div_9_ng_container_1_ng_container_1_Template, 2, 4, "ng-container", 25);
|
|
170
|
-
i0.ɵɵelementContainerEnd();
|
|
159
|
+
function TreeComponent_ng_template_6_Conditional_9_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
+
i0.ɵɵconditionalCreate(0, TreeComponent_ng_template_6_Conditional_9_For_2_Conditional_0_Template, 1, 4, "ng-container");
|
|
171
161
|
} if (rf & 2) {
|
|
172
162
|
const child_r9 = ctx.$implicit;
|
|
173
|
-
i0.ɵɵ
|
|
174
|
-
i0.ɵɵproperty("ngIf", child_r9.Visible);
|
|
163
|
+
i0.ɵɵconditional(child_r9.Visible ? 0 : -1);
|
|
175
164
|
} }
|
|
176
|
-
function
|
|
177
|
-
i0.ɵɵelementStart(0, "div",
|
|
178
|
-
i0.ɵɵ
|
|
165
|
+
function TreeComponent_ng_template_6_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
166
|
+
i0.ɵɵelementStart(0, "div", 35);
|
|
167
|
+
i0.ɵɵrepeaterCreate(1, TreeComponent_ng_template_6_Conditional_9_For_2_Template, 1, 1, null, null, i0.ɵɵcomponentInstance().trackNode, true);
|
|
179
168
|
i0.ɵɵelementEnd();
|
|
180
169
|
} if (rf & 2) {
|
|
181
170
|
const node_r7 = i0.ɵɵnextContext().node;
|
|
182
171
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
183
172
|
i0.ɵɵclassProp("tree-node-children--animated", ctx_r1.AnimateExpandCollapse);
|
|
184
173
|
i0.ɵɵadvance();
|
|
185
|
-
i0.ɵɵ
|
|
174
|
+
i0.ɵɵrepeater(node_r7.Children);
|
|
186
175
|
} }
|
|
187
176
|
function TreeComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
|
|
188
177
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
189
|
-
i0.ɵɵelementStart(0, "div",
|
|
178
|
+
i0.ɵɵelementStart(0, "div", 20);
|
|
190
179
|
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)); });
|
|
191
|
-
i0.ɵɵ
|
|
192
|
-
i0.ɵɵ
|
|
193
|
-
i0.ɵɵ
|
|
194
|
-
i0.ɵɵ
|
|
180
|
+
i0.ɵɵconditionalCreate(1, TreeComponent_ng_template_6_Conditional_1_Template, 3, 2, "span", 21);
|
|
181
|
+
i0.ɵɵconditionalCreate(2, TreeComponent_ng_template_6_Conditional_2_Template, 1, 0, "span", 22);
|
|
182
|
+
i0.ɵɵconditionalCreate(3, TreeComponent_ng_template_6_Conditional_3_Template, 2, 4, "span", 23);
|
|
183
|
+
i0.ɵɵelementStart(4, "span", 24);
|
|
184
|
+
i0.ɵɵelement(5, "span", 25);
|
|
185
|
+
i0.ɵɵconditionalCreate(6, TreeComponent_ng_template_6_Conditional_6_Template, 2, 1, "span", 26);
|
|
195
186
|
i0.ɵɵelementEnd();
|
|
196
|
-
i0.ɵɵ
|
|
187
|
+
i0.ɵɵconditionalCreate(7, TreeComponent_ng_template_6_Conditional_7_Template, 2, 1, "span", 27);
|
|
188
|
+
i0.ɵɵconditionalCreate(8, TreeComponent_ng_template_6_Conditional_8_Template, 2, 0, "span", 28);
|
|
197
189
|
i0.ɵɵelementEnd();
|
|
198
|
-
i0.ɵɵ
|
|
190
|
+
i0.ɵɵconditionalCreate(9, TreeComponent_ng_template_6_Conditional_9_Template, 3, 2, "div", 29);
|
|
199
191
|
} if (rf & 2) {
|
|
200
192
|
const node_r7 = ctx.node;
|
|
201
193
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -203,21 +195,21 @@ function TreeComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
203
195
|
i0.ɵɵproperty("ngClass", ctx_r1.getNodeClasses(node_r7));
|
|
204
196
|
i0.ɵɵattribute("data-node-id", node_r7.ID)("data-node-type", node_r7.Type)("aria-expanded", node_r7.Type === "branch" ? node_r7.Expanded : null)("aria-selected", node_r7.Selected);
|
|
205
197
|
i0.ɵɵadvance();
|
|
206
|
-
i0.ɵɵ
|
|
198
|
+
i0.ɵɵconditional(node_r7.Type === "branch" ? 1 : -1);
|
|
207
199
|
i0.ɵɵadvance();
|
|
208
|
-
i0.ɵɵ
|
|
200
|
+
i0.ɵɵconditional(node_r7.Type === "leaf" && node_r7.Level > 0 ? 2 : -1);
|
|
209
201
|
i0.ɵɵadvance();
|
|
210
|
-
i0.ɵɵ
|
|
202
|
+
i0.ɵɵconditional(ctx_r1.ShowIcons ? 3 : -1);
|
|
211
203
|
i0.ɵɵadvance(2);
|
|
212
204
|
i0.ɵɵproperty("innerHTML", ctx_r1.getHighlightedLabel(node_r7), i0.ɵɵsanitizeHtml);
|
|
213
205
|
i0.ɵɵadvance();
|
|
214
|
-
i0.ɵɵ
|
|
206
|
+
i0.ɵɵconditional(ctx_r1.ShowDescriptions && node_r7.Description ? 6 : -1);
|
|
215
207
|
i0.ɵɵadvance();
|
|
216
|
-
i0.ɵɵ
|
|
208
|
+
i0.ɵɵconditional(ctx_r1.ShowBadges && node_r7.Badge ? 7 : -1);
|
|
217
209
|
i0.ɵɵadvance();
|
|
218
|
-
i0.ɵɵ
|
|
210
|
+
i0.ɵɵconditional(node_r7.Selected ? 8 : -1);
|
|
219
211
|
i0.ɵɵadvance();
|
|
220
|
-
i0.ɵɵ
|
|
212
|
+
i0.ɵɵconditional(node_r7.Type === "branch" && node_r7.Expanded && node_r7.Children.length > 0 ? 9 : -1);
|
|
221
213
|
} }
|
|
222
214
|
export class TreeComponent {
|
|
223
215
|
cdr;
|
|
@@ -1593,28 +1585,32 @@ export class TreeComponent {
|
|
|
1593
1585
|
static ɵfac = function TreeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TreeComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef)); };
|
|
1594
1586
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TreeComponent, selectors: [["mj-tree"]], hostBindings: function TreeComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
1595
1587
|
i0.ɵɵlistener("keydown", function TreeComponent_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); });
|
|
1596
|
-
} }, 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" }, decls: 8, vars: 6, consts: [["nodeTemplate", ""], ["tabindex", "0", 3, "ngClass"], [
|
|
1588
|
+
} }, 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) {
|
|
1597
1589
|
i0.ɵɵelementStart(0, "div", 1);
|
|
1598
|
-
i0.ɵɵ
|
|
1590
|
+
i0.ɵɵconditionalCreate(1, TreeComponent_Conditional_1_Template, 5, 0, "div", 2);
|
|
1591
|
+
i0.ɵɵconditionalCreate(2, TreeComponent_Conditional_2_Template, 7, 1, "div", 3);
|
|
1592
|
+
i0.ɵɵconditionalCreate(3, TreeComponent_Conditional_3_Template, 5, 0, "div", 4);
|
|
1593
|
+
i0.ɵɵconditionalCreate(4, TreeComponent_Conditional_4_Template, 4, 3, "div", 5);
|
|
1594
|
+
i0.ɵɵconditionalCreate(5, TreeComponent_Conditional_5_Template, 3, 0, "div", 6);
|
|
1599
1595
|
i0.ɵɵelementEnd();
|
|
1600
1596
|
i0.ɵɵtemplate(6, TreeComponent_ng_template_6_Template, 10, 15, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
1601
1597
|
} if (rf & 2) {
|
|
1602
1598
|
i0.ɵɵproperty("ngClass", ctx.getContainerClasses());
|
|
1603
1599
|
i0.ɵɵadvance();
|
|
1604
|
-
i0.ɵɵ
|
|
1600
|
+
i0.ɵɵconditional(ctx.IsLoading && ctx.ShowLoading ? 1 : -1);
|
|
1605
1601
|
i0.ɵɵadvance();
|
|
1606
|
-
i0.ɵɵ
|
|
1602
|
+
i0.ɵɵconditional(ctx.ErrorMessage && !ctx.IsLoading ? 2 : -1);
|
|
1607
1603
|
i0.ɵɵadvance();
|
|
1608
|
-
i0.ɵɵ
|
|
1604
|
+
i0.ɵɵconditional(ctx.ShowExpandCollapseAll && ctx.Nodes.length > 0 && !ctx.IsLoading ? 3 : -1);
|
|
1609
1605
|
i0.ɵɵadvance();
|
|
1610
|
-
i0.ɵɵ
|
|
1606
|
+
i0.ɵɵconditional(ctx.IsLoaded && ctx.Nodes.length === 0 && !ctx.ErrorMessage && !ctx.IsLoading ? 4 : -1);
|
|
1611
1607
|
i0.ɵɵadvance();
|
|
1612
|
-
i0.ɵɵ
|
|
1613
|
-
} }, dependencies: [i1.NgClass, i1.
|
|
1608
|
+
i0.ɵɵconditional(ctx.Nodes.length > 0 && !ctx.IsLoading ? 5 : -1);
|
|
1609
|
+
} }, 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: #ffffff;\n --tree-border-color: #e0e0e0;\n --tree-text-color: #333333;\n --tree-text-secondary: #666666;\n --tree-text-muted: #999999;\n\n \n\n --tree-node-hover-bg: #f5f7fa;\n --tree-node-selected-bg: #e3f2fd;\n --tree-node-selected-border: #2196f3;\n --tree-node-focused-outline: rgba(33, 150, 243, 0.5);\n --tree-node-match-bg: #fff3cd;\n\n \n\n --tree-icon-color: #5c6bc0;\n --tree-icon-leaf-color: #78909c;\n --tree-toggle-color: #9e9e9e;\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: #e0e0e0;\n --tree-badge-color: #666666;\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: 8px;\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: 24px;\n color: var(--tree-icon-color);\n}\n\n.tree-loading__text[_ngcontent-%COMP%] {\n font-size: 14px;\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: #f44336;\n}\n\n.tree-error__message[_ngcontent-%COMP%] {\n font-size: 14px;\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: 6px;\n background: var(--tree-bg);\n color: var(--tree-text-color);\n font-size: 13px;\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: 14px;\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: 4px;\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: 4px;\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: 14px;\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: 12px;\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: 50%;\n background: var(--tree-node-selected-border);\n color: white;\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: 4px;\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: 15px;\n }\n}"] });
|
|
1614
1610
|
}
|
|
1615
1611
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TreeComponent, [{
|
|
1616
1612
|
type: Component,
|
|
1617
|
-
args: [{ selector: 'mj-tree', template: "<!-- Tree Component Template -->\n<div [ngClass]=\"getContainerClasses()\" tabindex=\"0\">\n\n <!-- Loading State -->\n <div class=\"tree-loading\" *ngIf=\"IsLoading && ShowLoading\">\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 <!-- Error State -->\n <div class=\"tree-error\" *ngIf=\"ErrorMessage && !IsLoading\">\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 <!-- Toolbar -->\n <div class=\"tree-toolbar\" *ngIf=\"ShowExpandCollapseAll && Nodes.length > 0 && !IsLoading\">\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 <!-- Empty State -->\n <div class=\"tree-empty\" *ngIf=\"IsLoaded && Nodes.length === 0 && !ErrorMessage && !IsLoading\">\n <i [class]=\"EmptyIcon + ' tree-empty__icon'\"></i>\n <span class=\"tree-empty__message\">{{ EmptyMessage }}</span>\n </div>\n\n <!-- Tree Content -->\n <div class=\"tree-content\" *ngIf=\"Nodes.length > 0 && !IsLoading\">\n <ng-container *ngFor=\"let node of Nodes; trackBy: trackNode\">\n <ng-container *ngIf=\"node.Visible\">\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { node: node }\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\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 <span\n class=\"tree-node-toggle\"\n *ngIf=\"node.Type === 'branch'\"\n (click)=\"onToggleClick(node, $event)\">\n <i\n *ngIf=\"node.Children.length > 0\"\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 <span\n *ngIf=\"node.Children.length === 0\"\n class=\"tree-node-toggle__spacer\">\n </span>\n </span>\n\n <!-- Leaf Spacer (to align with branches, only when not at root level) -->\n <span\n class=\"tree-node-leaf-spacer\"\n *ngIf=\"node.Type === 'leaf' && node.Level > 0\">\n </span>\n\n <!-- Icon -->\n <span\n class=\"tree-node-icon\"\n *ngIf=\"ShowIcons\"\n [style.color]=\"node.Color || null\">\n <i [class]=\"node.Icon\"></i>\n </span>\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 <span\n class=\"tree-node-description\"\n *ngIf=\"ShowDescriptions && node.Description\">\n {{ node.Description }}\n </span>\n </span>\n\n <!-- Badge -->\n <span\n class=\"tree-node-badge\"\n *ngIf=\"ShowBadges && node.Badge\">\n {{ node.Badge }}\n </span>\n\n <!-- Selection Indicator -->\n <span class=\"tree-node-selected-indicator\" *ngIf=\"node.Selected\">\n <i class=\"fa-solid fa-check\"></i>\n </span>\n </div>\n\n <!-- Children (if expanded) -->\n <div\n class=\"tree-node-children\"\n *ngIf=\"node.Type === 'branch' && node.Expanded && node.Children.length > 0\"\n [class.tree-node-children--animated]=\"AnimateExpandCollapse\"\n role=\"group\">\n <ng-container *ngFor=\"let child of node.Children; trackBy: trackNode\">\n <ng-container *ngIf=\"child.Visible\">\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { node: child }\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\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: #ffffff;\n --tree-border-color: #e0e0e0;\n --tree-text-color: #333333;\n --tree-text-secondary: #666666;\n --tree-text-muted: #999999;\n\n /* Node Colors */\n --tree-node-hover-bg: #f5f7fa;\n --tree-node-selected-bg: #e3f2fd;\n --tree-node-selected-border: #2196f3;\n --tree-node-focused-outline: rgba(33, 150, 243, 0.5);\n --tree-node-match-bg: #fff3cd;\n\n /* Icon Colors */\n --tree-icon-color: #5c6bc0;\n --tree-icon-leaf-color: #78909c;\n --tree-toggle-color: #9e9e9e;\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: #e0e0e0;\n --tree-badge-color: #666666;\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: 8px;\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: 24px;\n color: var(--tree-icon-color);\n}\n\n.tree-loading__text {\n font-size: 14px;\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: #f44336;\n}\n\n.tree-error__message {\n font-size: 14px;\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: 6px;\n background: var(--tree-bg);\n color: var(--tree-text-color);\n font-size: 13px;\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: 14px;\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: 4px;\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: 4px;\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: 14px;\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: 12px;\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: 50%;\n background: var(--tree-node-selected-border);\n color: white;\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: 4px;\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: 15px;\n }\n}\n"] }]
|
|
1613
|
+
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: #ffffff;\n --tree-border-color: #e0e0e0;\n --tree-text-color: #333333;\n --tree-text-secondary: #666666;\n --tree-text-muted: #999999;\n\n /* Node Colors */\n --tree-node-hover-bg: #f5f7fa;\n --tree-node-selected-bg: #e3f2fd;\n --tree-node-selected-border: #2196f3;\n --tree-node-focused-outline: rgba(33, 150, 243, 0.5);\n --tree-node-match-bg: #fff3cd;\n\n /* Icon Colors */\n --tree-icon-color: #5c6bc0;\n --tree-icon-leaf-color: #78909c;\n --tree-toggle-color: #9e9e9e;\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: #e0e0e0;\n --tree-badge-color: #666666;\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: 8px;\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: 24px;\n color: var(--tree-icon-color);\n}\n\n.tree-loading__text {\n font-size: 14px;\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: #f44336;\n}\n\n.tree-error__message {\n font-size: 14px;\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: 6px;\n background: var(--tree-bg);\n color: var(--tree-text-color);\n font-size: 13px;\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: 14px;\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: 4px;\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: 4px;\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: 14px;\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: 12px;\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: 50%;\n background: var(--tree-node-selected-border);\n color: white;\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: 4px;\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: 15px;\n }\n}\n"] }]
|
|
1618
1614
|
}], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], { BranchConfig: [{
|
|
1619
1615
|
type: Input
|
|
1620
1616
|
}], LeafConfig: [{
|
|
@@ -1691,5 +1687,5 @@ export class TreeComponent {
|
|
|
1691
1687
|
type: HostListener,
|
|
1692
1688
|
args: ['keydown', ['$event']]
|
|
1693
1689
|
}] }); })();
|
|
1694
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TreeComponent, { className: "TreeComponent", filePath: "src/lib/tree/tree.component.ts", lineNumber:
|
|
1690
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TreeComponent, { className: "TreeComponent", filePath: "src/lib/tree/tree.component.ts", lineNumber: 55 }); })();
|
|
1695
1691
|
//# sourceMappingURL=tree.component.js.map
|