@skyux/angular-tree-component 9.5.1 → 9.6.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.
@@ -31,7 +31,7 @@
31
31
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree.module.ts",
32
32
  "line": 34,
33
33
  "character": 13,
34
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree.module.ts#L34"
34
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree.module.ts#L34"
35
35
  }
36
36
  ],
37
37
  "decorators": [
@@ -122,7 +122,7 @@
122
122
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
123
123
  "line": 36,
124
124
  "character": 9,
125
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L36"
125
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L36"
126
126
  }
127
127
  ],
128
128
  "type": {
@@ -168,7 +168,7 @@
168
168
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
169
169
  "line": 45,
170
170
  "character": 9,
171
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L45"
171
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L45"
172
172
  }
173
173
  ],
174
174
  "type": {
@@ -214,7 +214,7 @@
214
214
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
215
215
  "line": 54,
216
216
  "character": 9,
217
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L54"
217
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L54"
218
218
  }
219
219
  ],
220
220
  "type": {
@@ -241,7 +241,7 @@
241
241
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
242
242
  "line": 65,
243
243
  "character": 9,
244
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L65"
244
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L65"
245
245
  }
246
246
  ],
247
247
  "type": {
@@ -288,7 +288,7 @@
288
288
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
289
289
  "line": 63,
290
290
  "character": 9,
291
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L63"
291
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L63"
292
292
  }
293
293
  ],
294
294
  "type": {
@@ -315,7 +315,7 @@
315
315
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
316
316
  "line": 68,
317
317
  "character": 9,
318
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L68"
318
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L68"
319
319
  }
320
320
  ],
321
321
  "type": {
@@ -342,7 +342,7 @@
342
342
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
343
343
  "line": 83,
344
344
  "character": 9,
345
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L83"
345
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L83"
346
346
  }
347
347
  ],
348
348
  "signatures": [
@@ -357,7 +357,7 @@
357
357
  "fileName": "lib/modules/angular-tree/angular-tree-wrapper.component.ts",
358
358
  "line": 83,
359
359
  "character": 2,
360
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L83"
360
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L83"
361
361
  }
362
362
  ],
363
363
  "type": {
@@ -381,7 +381,7 @@
381
381
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
382
382
  "line": 70,
383
383
  "character": 9,
384
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L70"
384
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L70"
385
385
  }
386
386
  ],
387
387
  "signatures": [
@@ -396,7 +396,7 @@
396
396
  "fileName": "lib/modules/angular-tree/angular-tree-wrapper.component.ts",
397
397
  "line": 70,
398
398
  "character": 2,
399
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L70"
399
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L70"
400
400
  }
401
401
  ],
402
402
  "type": {
@@ -430,7 +430,7 @@
430
430
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
431
431
  "line": 91,
432
432
  "character": 9,
433
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L91"
433
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L91"
434
434
  }
435
435
  ],
436
436
  "signatures": [
@@ -445,7 +445,7 @@
445
445
  "fileName": "lib/modules/angular-tree/angular-tree-wrapper.component.ts",
446
446
  "line": 91,
447
447
  "character": 2,
448
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L91"
448
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L91"
449
449
  }
450
450
  ],
451
451
  "type": {
@@ -469,7 +469,7 @@
469
469
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
470
470
  "line": 102,
471
471
  "character": 9,
472
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L102"
472
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L102"
473
473
  }
474
474
  ],
475
475
  "signatures": [
@@ -484,7 +484,7 @@
484
484
  "fileName": "lib/modules/angular-tree/angular-tree-wrapper.component.ts",
485
485
  "line": 102,
486
486
  "character": 2,
487
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L102"
487
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L102"
488
488
  }
489
489
  ],
490
490
  "type": {
@@ -508,7 +508,7 @@
508
508
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
509
509
  "line": 106,
510
510
  "character": 9,
511
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L106"
511
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L106"
512
512
  }
513
513
  ],
514
514
  "signatures": [
@@ -523,7 +523,7 @@
523
523
  "fileName": "lib/modules/angular-tree/angular-tree-wrapper.component.ts",
524
524
  "line": 106,
525
525
  "character": 2,
526
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L106"
526
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L106"
527
527
  }
528
528
  ],
529
529
  "type": {
@@ -547,7 +547,7 @@
547
547
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
548
548
  "line": 110,
549
549
  "character": 9,
550
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L110"
550
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L110"
551
551
  }
552
552
  ],
553
553
  "signatures": [
@@ -562,7 +562,7 @@
562
562
  "fileName": "lib/modules/angular-tree/angular-tree-wrapper.component.ts",
563
563
  "line": 110,
564
564
  "character": 2,
565
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L110"
565
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L110"
566
566
  }
567
567
  ],
568
568
  "type": {
@@ -586,7 +586,7 @@
586
586
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
587
587
  "line": 138,
588
588
  "character": 9,
589
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L138"
589
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L138"
590
590
  }
591
591
  ],
592
592
  "signatures": [
@@ -601,7 +601,7 @@
601
601
  "fileName": "lib/modules/angular-tree/angular-tree-wrapper.component.ts",
602
602
  "line": 138,
603
603
  "character": 2,
604
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L138"
604
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L138"
605
605
  }
606
606
  ],
607
607
  "type": {
@@ -649,7 +649,7 @@
649
649
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-wrapper.component.ts",
650
650
  "line": 29,
651
651
  "character": 13,
652
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L29"
652
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts#L29"
653
653
  }
654
654
  ],
655
655
  "implementedTypes": [
@@ -728,9 +728,9 @@
728
728
  "sources": [
729
729
  {
730
730
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
731
- "line": 138,
731
+ "line": 140,
732
732
  "character": 2,
733
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L138"
733
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L140"
734
734
  }
735
735
  ],
736
736
  "signatures": [
@@ -743,9 +743,9 @@
743
743
  "sources": [
744
744
  {
745
745
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
746
- "line": 138,
746
+ "line": 140,
747
747
  "character": 2,
748
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L138"
748
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L140"
749
749
  }
750
750
  ],
751
751
  "parameters": [
@@ -849,7 +849,7 @@
849
849
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
850
850
  "line": 39,
851
851
  "character": 9,
852
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L39"
852
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L39"
853
853
  }
854
854
  ],
855
855
  "type": {
@@ -913,7 +913,7 @@
913
913
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
914
914
  "line": 47,
915
915
  "character": 9,
916
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L47"
916
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L47"
917
917
  }
918
918
  ],
919
919
  "type": {
@@ -944,7 +944,7 @@
944
944
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
945
945
  "line": 108,
946
946
  "character": 9,
947
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L108"
947
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L108"
948
948
  }
949
949
  ],
950
950
  "type": {
@@ -1001,7 +1001,7 @@
1001
1001
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1002
1002
  "line": 53,
1003
1003
  "character": 9,
1004
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L53"
1004
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L53"
1005
1005
  }
1006
1006
  ],
1007
1007
  "type": {
@@ -1027,13 +1027,13 @@
1027
1027
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1028
1028
  "line": 55,
1029
1029
  "character": 13,
1030
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L55"
1030
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L55"
1031
1031
  },
1032
1032
  {
1033
1033
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1034
1034
  "line": 66,
1035
1035
  "character": 13,
1036
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L66"
1036
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L66"
1037
1037
  }
1038
1038
  ],
1039
1039
  "getSignature": {
@@ -1047,7 +1047,7 @@
1047
1047
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1048
1048
  "line": 66,
1049
1049
  "character": 2,
1050
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L66"
1050
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L66"
1051
1051
  }
1052
1052
  ],
1053
1053
  "type": {
@@ -1066,7 +1066,7 @@
1066
1066
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1067
1067
  "line": 55,
1068
1068
  "character": 2,
1069
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L55"
1069
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L55"
1070
1070
  }
1071
1071
  ],
1072
1072
  "parameters": [
@@ -1102,7 +1102,7 @@
1102
1102
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1103
1103
  "line": 70,
1104
1104
  "character": 13,
1105
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L70"
1105
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L70"
1106
1106
  }
1107
1107
  ],
1108
1108
  "setSignature": {
@@ -1116,7 +1116,7 @@
1116
1116
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1117
1117
  "line": 70,
1118
1118
  "character": 2,
1119
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L70"
1119
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L70"
1120
1120
  }
1121
1121
  ],
1122
1122
  "parameters": [
@@ -1152,13 +1152,13 @@
1152
1152
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1153
1153
  "line": 77,
1154
1154
  "character": 13,
1155
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L77"
1155
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L77"
1156
1156
  },
1157
1157
  {
1158
1158
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1159
1159
  "line": 84,
1160
1160
  "character": 13,
1161
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L84"
1161
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L84"
1162
1162
  }
1163
1163
  ],
1164
1164
  "getSignature": {
@@ -1172,7 +1172,7 @@
1172
1172
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1173
1173
  "line": 84,
1174
1174
  "character": 2,
1175
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L84"
1175
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L84"
1176
1176
  }
1177
1177
  ],
1178
1178
  "type": {
@@ -1191,7 +1191,7 @@
1191
1191
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1192
1192
  "line": 77,
1193
1193
  "character": 2,
1194
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L77"
1194
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L77"
1195
1195
  }
1196
1196
  ],
1197
1197
  "parameters": [
@@ -1227,13 +1227,13 @@
1227
1227
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1228
1228
  "line": 88,
1229
1229
  "character": 13,
1230
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L88"
1230
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L88"
1231
1231
  },
1232
1232
  {
1233
1233
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1234
1234
  "line": 95,
1235
1235
  "character": 13,
1236
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L95"
1236
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L95"
1237
1237
  }
1238
1238
  ],
1239
1239
  "getSignature": {
@@ -1247,7 +1247,7 @@
1247
1247
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1248
1248
  "line": 95,
1249
1249
  "character": 2,
1250
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L95"
1250
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L95"
1251
1251
  }
1252
1252
  ],
1253
1253
  "type": {
@@ -1266,7 +1266,7 @@
1266
1266
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1267
1267
  "line": 88,
1268
1268
  "character": 2,
1269
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L88"
1269
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L88"
1270
1270
  }
1271
1271
  ],
1272
1272
  "parameters": [
@@ -1302,13 +1302,13 @@
1302
1302
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1303
1303
  "line": 99,
1304
1304
  "character": 13,
1305
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L99"
1305
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L99"
1306
1306
  },
1307
1307
  {
1308
1308
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1309
1309
  "line": 103,
1310
1310
  "character": 13,
1311
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L103"
1311
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L103"
1312
1312
  }
1313
1313
  ],
1314
1314
  "getSignature": {
@@ -1322,7 +1322,7 @@
1322
1322
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1323
1323
  "line": 103,
1324
1324
  "character": 2,
1325
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L103"
1325
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L103"
1326
1326
  }
1327
1327
  ],
1328
1328
  "type": {
@@ -1341,7 +1341,7 @@
1341
1341
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1342
1342
  "line": 99,
1343
1343
  "character": 2,
1344
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L99"
1344
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L99"
1345
1345
  }
1346
1346
  ],
1347
1347
  "parameters": [
@@ -1375,9 +1375,9 @@
1375
1375
  "sources": [
1376
1376
  {
1377
1377
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1378
- "line": 183,
1378
+ "line": 185,
1379
1379
  "character": 9,
1380
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L183"
1380
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L185"
1381
1381
  }
1382
1382
  ],
1383
1383
  "signatures": [
@@ -1390,9 +1390,9 @@
1390
1390
  "sources": [
1391
1391
  {
1392
1392
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1393
- "line": 183,
1393
+ "line": 185,
1394
1394
  "character": 2,
1395
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L183"
1395
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L185"
1396
1396
  }
1397
1397
  ],
1398
1398
  "type": {
@@ -1424,9 +1424,9 @@
1424
1424
  "sources": [
1425
1425
  {
1426
1426
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1427
- "line": 148,
1427
+ "line": 150,
1428
1428
  "character": 9,
1429
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L148"
1429
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L150"
1430
1430
  }
1431
1431
  ],
1432
1432
  "signatures": [
@@ -1439,9 +1439,9 @@
1439
1439
  "sources": [
1440
1440
  {
1441
1441
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1442
- "line": 148,
1442
+ "line": 150,
1443
1443
  "character": 2,
1444
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L148"
1444
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L150"
1445
1445
  }
1446
1446
  ],
1447
1447
  "type": {
@@ -1473,9 +1473,9 @@
1473
1473
  "sources": [
1474
1474
  {
1475
1475
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1476
- "line": 251,
1476
+ "line": 253,
1477
1477
  "character": 9,
1478
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L251"
1478
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L253"
1479
1479
  }
1480
1480
  ],
1481
1481
  "signatures": [
@@ -1488,9 +1488,9 @@
1488
1488
  "sources": [
1489
1489
  {
1490
1490
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1491
- "line": 251,
1491
+ "line": 253,
1492
1492
  "character": 2,
1493
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L251"
1493
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L253"
1494
1494
  }
1495
1495
  ],
1496
1496
  "type": {
@@ -1512,9 +1512,9 @@
1512
1512
  "sources": [
1513
1513
  {
1514
1514
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1515
- "line": 269,
1515
+ "line": 271,
1516
1516
  "character": 9,
1517
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L269"
1517
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L271"
1518
1518
  }
1519
1519
  ],
1520
1520
  "signatures": [
@@ -1527,9 +1527,9 @@
1527
1527
  "sources": [
1528
1528
  {
1529
1529
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1530
- "line": 269,
1530
+ "line": 271,
1531
1531
  "character": 2,
1532
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L269"
1532
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L271"
1533
1533
  }
1534
1534
  ],
1535
1535
  "parameters": [
@@ -1569,9 +1569,9 @@
1569
1569
  "sources": [
1570
1570
  {
1571
1571
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1572
- "line": 261,
1572
+ "line": 263,
1573
1573
  "character": 9,
1574
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L261"
1574
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L263"
1575
1575
  }
1576
1576
  ],
1577
1577
  "signatures": [
@@ -1584,9 +1584,9 @@
1584
1584
  "sources": [
1585
1585
  {
1586
1586
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1587
- "line": 261,
1587
+ "line": 263,
1588
1588
  "character": 2,
1589
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L261"
1589
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L263"
1590
1590
  }
1591
1591
  ],
1592
1592
  "type": {
@@ -1608,9 +1608,9 @@
1608
1608
  "sources": [
1609
1609
  {
1610
1610
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1611
- "line": 265,
1611
+ "line": 267,
1612
1612
  "character": 9,
1613
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L265"
1613
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L267"
1614
1614
  }
1615
1615
  ],
1616
1616
  "signatures": [
@@ -1623,9 +1623,9 @@
1623
1623
  "sources": [
1624
1624
  {
1625
1625
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1626
- "line": 265,
1626
+ "line": 267,
1627
1627
  "character": 2,
1628
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L265"
1628
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L267"
1629
1629
  }
1630
1630
  ],
1631
1631
  "type": {
@@ -1647,9 +1647,9 @@
1647
1647
  "sources": [
1648
1648
  {
1649
1649
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1650
- "line": 236,
1650
+ "line": 238,
1651
1651
  "character": 9,
1652
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L236"
1652
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L238"
1653
1653
  }
1654
1654
  ],
1655
1655
  "signatures": [
@@ -1662,9 +1662,9 @@
1662
1662
  "sources": [
1663
1663
  {
1664
1664
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1665
- "line": 236,
1665
+ "line": 238,
1666
1666
  "character": 2,
1667
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L236"
1667
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L238"
1668
1668
  }
1669
1669
  ],
1670
1670
  "type": {
@@ -1686,9 +1686,9 @@
1686
1686
  "sources": [
1687
1687
  {
1688
1688
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1689
- "line": 221,
1689
+ "line": 223,
1690
1690
  "character": 9,
1691
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L221"
1691
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L223"
1692
1692
  }
1693
1693
  ],
1694
1694
  "signatures": [
@@ -1701,9 +1701,9 @@
1701
1701
  "sources": [
1702
1702
  {
1703
1703
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1704
- "line": 221,
1704
+ "line": 223,
1705
1705
  "character": 2,
1706
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L221"
1706
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L223"
1707
1707
  }
1708
1708
  ],
1709
1709
  "type": {
@@ -1725,9 +1725,9 @@
1725
1725
  "sources": [
1726
1726
  {
1727
1727
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1728
- "line": 232,
1728
+ "line": 234,
1729
1729
  "character": 9,
1730
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L232"
1730
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L234"
1731
1731
  }
1732
1732
  ],
1733
1733
  "signatures": [
@@ -1740,9 +1740,9 @@
1740
1740
  "sources": [
1741
1741
  {
1742
1742
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1743
- "line": 232,
1743
+ "line": 234,
1744
1744
  "character": 2,
1745
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L232"
1745
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L234"
1746
1746
  }
1747
1747
  ],
1748
1748
  "type": {
@@ -1764,9 +1764,9 @@
1764
1764
  "sources": [
1765
1765
  {
1766
1766
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1767
- "line": 244,
1767
+ "line": 246,
1768
1768
  "character": 9,
1769
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L244"
1769
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L246"
1770
1770
  }
1771
1771
  ],
1772
1772
  "signatures": [
@@ -1779,9 +1779,9 @@
1779
1779
  "sources": [
1780
1780
  {
1781
1781
  "fileName": "lib/modules/angular-tree/angular-tree-node.component.ts",
1782
- "line": 244,
1782
+ "line": 246,
1783
1783
  "character": 2,
1784
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L244"
1784
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L246"
1785
1785
  }
1786
1786
  ],
1787
1787
  "type": {
@@ -1840,7 +1840,7 @@
1840
1840
  "fileName": "projects/angular-tree-component/src/modules/angular-tree/angular-tree-node.component.ts",
1841
1841
  "line": 33,
1842
1842
  "character": 13,
1843
- "url": "https://github.com/blackbaud/skyux/blob/001e3c0/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L33"
1843
+ "url": "https://github.com/blackbaud/skyux/blob/014ac6c/libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts#L33"
1844
1844
  }
1845
1845
  ],
1846
1846
  "implementedTypes": [
@@ -66,7 +66,9 @@ export class SkyAngularTreeNodeComponent {
66
66
  }
67
67
  set nodeName(value) {
68
68
  this.#_nodeName = value;
69
- this.#contentInfoProvider.patchInfo({ descriptor: value });
69
+ this.#contentInfoProvider.patchInfo({
70
+ descriptor: { type: 'text', value },
71
+ });
70
72
  }
71
73
  get nodeName() {
72
74
  return this.#_nodeName;
@@ -266,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
266
268
  type: ViewChild,
267
269
  args: ['nodeContentWrapper', { read: ElementRef }]
268
270
  }] } });
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7OztBQUc5RTs7Ozs7Ozs7O0dBU0c7QUFNSCxNQUFNLE9BQU8sMkJBQTJCO0lBc0J0QyxJQUFXLGVBQWUsQ0FBQyxLQUF5QjtRQUNsRCxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQzdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxJQUFJLENBQUMscUJBQXFCLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ25EO1NBQ0Y7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LENBQUMsTUFBTTtvQkFDZixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztvQkFDdEIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsQ0FDcEQsQ0FBQztTQUNIO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQzs4R0FyVFUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsa0hBRjNCLENBQUMsNEJBQTRCLEVBQUUsc0JBQXNCLENBQUMsa0lBNEV4QixVQUFVLDZCQzFHckQsc2xJQW1IQTs7MkZEbkZhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx1QkFBdUIsYUFFdEIsQ0FBQyw0QkFBNEIsRUFBRSxzQkFBc0IsQ0FBQzs7MEJBOEc5RCxRQUFROzRDQXRHSixLQUFLO3NCQURYLEtBQUs7Z0JBU0MsSUFBSTtzQkFEVixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkF3REMscUJBQXFCO3NCQUQzQixTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVHJlZVN0YXRlLCBUcmVlTm9kZSB9IGZyb20gJ0BibGFja2JhdWQvYW5ndWxhci10cmVlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lDb250ZW50SW5mb1Byb3ZpZGVyIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lBbmd1bGFyVHJlZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9hbmd1bGFyLXRyZWUtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vYW5ndWxhci10cmVlLXdyYXBwZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBSZXBsYWNlcyB0aGUgZGVmYXVsdCB0cmVlIG5vZGUgdGVtcGxhdGUgd2l0aCBhIFNLWSBVWCBub2RlIGFzIHBhcnQgb2YgdGhlIGBTa3lBbmd1bGFyVHJlZU1vZHVsZWAgdGhhdFxuICogcHJvdmlkZXMgU0tZIFVYIGNvbXBvbmVudHMgYW5kIHN0eWxlcyB0byBjb21wbGVtZW50IHRoZSBgYW5ndWxhci10cmVlLWNvbXBvbmVudGAgbGlicmFyeSBhbmQgYXBwbHkgU0tZIFVYXG4gKiB0aGVtZXMgYW5kIGZ1bmN0aW9uYWxpdHkgdG8gaGllcmFyY2hpY2FsIGxpc3Qgdmlld3MuIFlvdSBtdXN0IHdyYXAgdGhpcyBjb21wb25lbnQgaW4gYW4gYG5nLXRlbXBsYXRlYFxuICogdGFnIHdpdGggdGhlIHRlbXBsYXRlIHJlZmVyZW5jZSB2YXJpYWJsZSBgI3RyZWVOb2RlRnVsbFRlbXBsYXRlYC4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRyZWUgbm9kZSB0ZW1wbGF0ZXMsXG4gKiBzZWUgdGhlIFtBbmd1bGFyIHRyZWUgY29tcG9uZW50IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcy90ZW1wbGF0ZXMpLlxuICogVG8gZGlzcGxheSBjb250ZXh0IG1lbnVzIHdpdGggYWN0aW9ucyBmb3IgaW5kaXZpZHVhbCBpdGVtcyBpbiBoaWVyYXJjaGljYWwgbGlzdHMsIHBsYWNlXG4gKiBbZHJvcGRvd25zXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4LXBvcG92ZXJzL2RvY3MvZHJvcGRvd24/ZG9jcy1hY3RpdmUtdGFiPWRlc2lnbikgaW5zaWRlIHRoZVxuICogQW5ndWxhciB0cmVlIG5vZGUgY29tcG9uZW50LCB3aGljaCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgc3R5bGluZyBhbmQgcG9zaXRpb25pbmcgZm9yIGNvbnRleHQgbWVudXMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hbmd1bGFyLXRyZWUtbm9kZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmd1bGFyLXRyZWUtbm9kZS5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1NreUFuZ3VsYXJUcmVlQWRhcHRlclNlcnZpY2UsIFNreUNvbnRlbnRJbmZvUHJvdmlkZXJdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBbmd1bGFyVHJlZU5vZGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICAvKipcbiAgICogVGhlIGBpbmRleGAgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50IGBuZy10ZW1wbGF0ZWAuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBgbm9kZWAgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50IGBuZy10ZW1wbGF0ZWAuIEZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYFRyZWVOb2RlYCBvYmplY3QsIHNlZSB0aGVcbiAgICogW0FuZ3VsYXIgdHJlZSBjb21wb25lbnQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL2FwaSkuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG5vZGU6IFRyZWVOb2RlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRlbXBsYXRlc2AgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50IGBuZy10ZW1wbGF0ZWAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGVtcGxhdGVzOiBhbnk7XG5cbiAgcHVibGljIHNldCBjaGlsZEZvY3VzSW5kZXgodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy4jX2NoaWxkRm9jdXNJbmRleCkge1xuICAgICAgdGhpcy4jX2NoaWxkRm9jdXNJbmRleCA9IHZhbHVlO1xuICAgICAgaWYgKHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCA+IDAgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLiNmb2N1c2FibGVDaGlsZHJlblt2YWx1ZV0uZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjaGlsZEZvY3VzSW5kZXgoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2NoaWxkRm9jdXNJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZm9jdXNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMudGFiSW5kZXggPSB2YWx1ZSA/IDAgOiAtMTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBpc1BhcnRpYWxseVNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLiNfaXNQYXJ0aWFsbHlTZWxlY3RlZCkge1xuICAgICAgdGhpcy4jX2lzUGFydGlhbGx5U2VsZWN0ZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNQYXJ0aWFsbHlTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2lzUGFydGlhbGx5U2VsZWN0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IGlzU2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19pc1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLiNfaXNTZWxlY3RlZCA9IHZhbHVlO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaXNTZWxlY3RlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdGFiSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuI190YWJJbmRleCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfdGFiSW5kZXg7XG4gIH1cblxuICBAVmlld0NoaWxkKCdub2RlQ29udGVudFdyYXBwZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIG5vZGVDb250ZW50V3JhcHBlclJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgc2V0IG5vZGVOYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNfbm9kZU5hbWUgPSB2YWx1ZTtcbiAgICB0aGlzLiNjb250ZW50SW5mb1Byb3ZpZGVyLnBhdGNoSW5mbyh7IGRlc2NyaXB0b3I6IHZhbHVlIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBub2RlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfbm9kZU5hbWU7XG4gIH1cblxuICAjZm9jdXNhYmxlQ2hpbGRyZW46IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICAjbW91c2VEb3duID0gZmFsc2U7XG5cbiAgI19jaGlsZEZvY3VzSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjX2lzUGFydGlhbGx5U2VsZWN0ZWQgPSBmYWxzZTtcblxuICAjX2lzU2VsZWN0ZWQgPSBmYWxzZTtcblxuICAjX3RhYkluZGV4ID0gLTE7XG5cbiAgI19ub2RlTmFtZSA9ICcnO1xuXG4gICNhZGFwdGVyU2VydmljZTogU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2NvbnRlbnRJbmZvUHJvdmlkZXIgPSBpbmplY3QoU2t5Q29udGVudEluZm9Qcm92aWRlcik7XG4gICNza3lBbmd1bGFyVHJlZVdyYXBwZXI6IFNreUFuZ3VsYXJUcmVlV3JhcHBlckNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreUFuZ3VsYXJUcmVlQWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgc2t5QW5ndWxhclRyZWVXcmFwcGVyPzogU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmID0gY2hhbmdlRGV0ZWN0b3JSZWY7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UgPSBhZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIgPSBza3lBbmd1bGFyVHJlZVdyYXBwZXI7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGA8c2t5LWFuZ3VsYXItdHJlZS1ub2RlLXdyYXBwZXI+IG11c3QgYmUgd3JhcHBlZCBpbnNpZGUgYSA8c2t5LWFuZ3VsYXItdHJlZS13cmFwcGVyPiBjb21wb25lbnQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICB0aGlzLm5vZGVOYW1lID0gdGhpcy5ub2RlLmRhdGEubmFtZTtcbiAgICAgIC8vIEJlY2F1c2Ugd2UncmUgYmluZGluZyB0aGUgY2hlY2tib3ggdG8gbm9kZSdzIGNoaWxkcmVuIHByb3BlcnRpZXMsIHdlIG5lZWQgdG8gbWFudWFsbHkgY29udHJvbCBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgLy8gSGVyZSwgd2UgbGlzdGVuIHRvIHRoZSB0cmVlJ3Mgc3RhdGUgYW5kIGZvcmNlIGNoYW5nZSBkZXRlY3Rpb24gaW4gdGhlIHNldHRlcnMgaWYgdGhlIHZhbHVlIGhhcyBjaGFuZ2VkLlxuICAgICAgdGhpcy5ub2RlLnRyZWVNb2RlbC5zdWJzY3JpYmVUb1N0YXRlKChzdGF0ZTogSVRyZWVTdGF0ZSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICAgICAgdGhpcy5pc1NlbGVjdGVkID0gdGhpcy5ub2RlLmlzU2VsZWN0ZWQ7XG4gICAgICAgICAgdGhpcy5pc1BhcnRpYWxseVNlbGVjdGVkID0gdGhpcy5ub2RlLmlzUGFydGlhbGx5U2VsZWN0ZWQ7XG5cbiAgICAgICAgICBpZiAoc3RhdGUuZm9jdXNlZE5vZGVJZCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gc3RhdGUuZm9jdXNlZE5vZGVJZCA9PT0gdGhpcy5ub2RlLmlkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMubm9kZS50cmVlTW9kZWwuc3Vic2NyaWJlKCd1cGRhdGVEYXRhJywgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICAgICAgdGhpcy5ub2RlTmFtZSA9IHRoaXMubm9kZS5kYXRhLm5hbWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBNYWtlIHRoZSBmaXJzdCByb290IG5vZGUgdGFiYmFibGUuXG4gICAgICBpZiAodGhpcy5ub2RlLmlzUm9vdCAmJiB0aGlzLm5vZGUuaW5kZXggPT09IDApIHtcbiAgICAgICAgdGhpcy50YWJJbmRleCA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBXYWl0IDFzIGZvciB0aGUgbm9kZSB0byByZW5kZXIsIHRoZW4gcmVzZXQgYWxsIGNoaWxkIHRhYkluZGV4ZXMgdG8gLTEuXG4gICAgLy8gVW5pdHMgc21hbGxlciB0aGFuIDFzIG1heSBjb25zaXN0ZW50bHkgZmFpbCBpZiB0aGVyZSBhcmUgbWFueSBub2Rlcywgb3IgbXVsdGlwbGUgdHJlZXMgYXJlIG9uIHRoZSBzYW1lIHNjcmVlbi5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm5vZGVDb250ZW50V3JhcHBlclJlZikge1xuICAgICAgICB0aGlzLiNmb2N1c2FibGVDaGlsZHJlbiA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKFxuICAgICAgICAgIHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0VGFiSW5kZXhPZkZvY3VzYWJsZUVscyhcbiAgICAgICAgICB0aGlzLm5vZGVDb250ZW50V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIC0xXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICAvKipcbiAgICogSWYgc2luZ2xlLXNlbGVjdCwgc2V0IGFyaWEtc2VsZWN0ZWQ9dHJ1ZSBmb3IgdGhlIHNlbGVjdGVkIG5vZGUgYW5kIHVuZGVmaW5lZCBmb3IgYWxsIHRoZSBvdGhlcnMuXG4gICAqIEZvciBtdWx0aXBsZS1zZWxlY3QsIHNldCBhcmlhLXNlbGVjdGVkIHRvIGVpdGhlciB0cnVlIG9yIGZhbHNlLlxuICAgKiBJZiBub2RlIGNhbm5vdCBiZSBzZWxlY3RlZCwgYXJpYS1zZWxlY3RlZCBzaG91bGQgYmUgdW5kZWZpbmVkIChlLmcuIHBhcmVudCBub2RlcyBpbiBsZWFmLXNlbGVjdC1vbmx5IG1vZGUpLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBhcmlhU2VsZWN0ZWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyLnNlbGVjdFNpbmdsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaXNTZWxlY3RlZCA/IHRydWUgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLiNpc1NlbGVjdGFibGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiAhIXRoaXMuaXNTZWxlY3RlZDtcbiAgfVxuXG4gIHB1YmxpYyBzaG93Q2hlY2tib3goKTogYm9vbGVhbiB7XG4gICAgLy8gQ2hlY2sgZm9yIGNoZWNrYm94IG1vZGUgZW5hYmxlZCwgYnV0IGFsc28gcmVzcGVjdCBsZWFmLW5vZGUgYW5kIHNpbmdsZS1zZWxlY3Qgc2V0dGluZ3MuXG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5ub2RlICYmXG4gICAgICB0aGlzLm5vZGUub3B0aW9ucy51c2VDaGVja2JveCAmJlxuICAgICAgdGhpcy4jaXNTZWxlY3RhYmxlKCkgJiZcbiAgICAgICghdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyIHx8XG4gICAgICAgICF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIuc2VsZWN0U2luZ2xlKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1NlbGVjdGVkQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI2lzU2VsZWN0YWJsZSgpICYmIHRoaXMuaXNTZWxlY3RlZCAmJiAhdGhpcy5pc1BhcnRpYWxseVNlbGVjdGVkO1xuICB9XG5cbiAgcHVibGljIHNob3dBY3RpdmVDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLm5vZGUgJiZcbiAgICAgIHRoaXMubm9kZS5pc0FjdGl2ZSAmJlxuICAgICAgIXRoaXMubm9kZS50cmVlTW9kZWwub3B0aW9ucy51c2VDaGVja2JveFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1RvZ2dsZVBsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5ub2RlPy5oYXNDaGlsZHJlbiAmJlxuICAgICAgIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlcj8uc2VsZWN0TGVhZk5vZGVzT25seVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cygpOiB2b2lkIHtcbiAgICAvLyA8dHJlZS1ub2RlLWNvbnRlbnQ+IGhhcyBpdHMgb3duIGNsaWNrIGhhbmRsZXIsIHNvIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhpcyBmb2N1cyBldmVudFxuICAgIC8vIGlzIGNvbWluZyBmcm9tIHRoZSBtb3VzZSBjbGljayBvciB0aGUga2V5Ym9hcmQgdG8gcHJldmVudCB0aGUgbG9naWMgZnJvbSBydW5uaW5nIHR3aWNlLlxuICAgIGlmICghdGhpcy4jbW91c2VEb3duKSB7XG4gICAgICB0aGlzLm5vZGU/LnRyZWVNb2RlbC5zZXRGb2N1cyh0cnVlKTtcbiAgICAgIHRoaXMubm9kZT8uZm9jdXMoKTtcbiAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk1vdXNlRG93bigpOiB2b2lkIHtcbiAgICB0aGlzLiNtb3VzZURvd24gPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIG9uTW91c2VVcCgpOiB2b2lkIHtcbiAgICB0aGlzLiNtb3VzZURvd24gPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBldmVudC50YXJnZXQpIHtcbiAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSAndXAnOlxuICAgICAgICBjYXNlICdhcnJvd3VwJzpcbiAgICAgICAgICAvLyBGb2N1cyBvbiBwcmV2aW91cyBub2RlLlxuICAgICAgICAgIHRoaXMubm9kZT8udHJlZU1vZGVsLmZvY3VzUHJldmlvdXNOb2RlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZG93bic6XG4gICAgICAgIGNhc2UgJ2Fycm93ZG93bic6XG4gICAgICAgICAgLy8gRm9jdXMgb24gbmV4dCBub2RlLlxuICAgICAgICAgIHRoaXMubm9kZT8udHJlZU1vZGVsLmZvY3VzTmV4dE5vZGUoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgY2FzZSAnYXJyb3dsZWZ0JzpcbiAgICAgICAgICAvLyBDeWNsZSBiYWNrd2FyZHMgdGhyb3VnaCBpbnRlcmFjdGl2ZSBjaGlsZCBlbGVtZW50c1xuICAgICAgICAgIC8vIElmIHVzZXIgcmVhY2hlcyB0aGUgYmVnaW5uaW5nLCBhY3RpdmF0ZSBkcmlsbCB1cC5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICh0aGlzLmNoaWxkRm9jdXNJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGlsZEZvY3VzSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5vZGU/LnNldElzRXhwYW5kZWQoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgY2FzZSAnYXJyb3dyaWdodCc6XG4gICAgICAgICAgLy8gQ3ljbGUgZm9yd2FyZCB0aHJvdWdoIGludGVyYWN0aXZlIGNoaWxkIGVsZW1lbnRzLlxuICAgICAgICAgIC8vIElmIHVzZXIgcmVhY2hlcyB0aGUgZW5kLCBhY3RpdmF0ZSBkcmlsbCBkb3duLlxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy4jZm9jdXNhYmxlQ2hpbGRyZW4ubGVuZ3RoIDw9IDAgfHxcbiAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4ID09PSB0aGlzLiNmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGggLSAxXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGU/LnNldElzRXhwYW5kZWQodHJ1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoaWxkRm9jdXNJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4ID0gMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjaXNTZWxlY3RhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICEhdGhpcy5ub2RlICYmXG4gICAgICAgICh0aGlzLm5vZGUuaXNMZWFmIHx8XG4gICAgICAgICAgIXRoaXMubm9kZS5oYXNDaGlsZHJlbiB8fFxuICAgICAgICAgICF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIuc2VsZWN0TGVhZk5vZGVzT25seSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJub2RlICYmIGluZGV4ICE9PSB1bmRlZmluZWRcIlxuICBbY2xhc3NdPVwibm9kZS5nZXRDbGFzcygpXCJcbiAgW2NsYXNzLnRyZWUtbm9kZV09XCJ0cnVlXCJcbiAgW2NsYXNzLnRyZWUtbm9kZS1hY3RpdmVdPVwibm9kZS5pc0FjdGl2ZVwiXG4gIFtjbGFzcy50cmVlLW5vZGUtY29sbGFwc2VkXT1cIm5vZGUuaXNDb2xsYXBzZWQgJiYgbm9kZS5oYXNDaGlsZHJlblwiXG4gIFtjbGFzcy50cmVlLW5vZGUtZXhwYW5kZWRdPVwibm9kZS5pc0V4cGFuZGVkICYmIG5vZGUuaGFzQ2hpbGRyZW5cIlxuICBbY2xhc3MudHJlZS1ub2RlLWZvY3VzZWRdPVwibm9kZS5pc0ZvY3VzZWRcIlxuICBbY2xhc3MudHJlZS1ub2RlLWxlYWZdPVwibm9kZS5pc0xlYWZcIlxuPlxuICA8dHJlZS1ub2RlLWRyb3Atc2xvdFxuICAgICpuZ0lmPVwiaW5kZXggPT09IDBcIlxuICAgIFtkcm9wSW5kZXhdPVwibm9kZS5pbmRleFwiXG4gICAgW25vZGVdPVwibm9kZS5wYXJlbnRcIlxuICA+XG4gIDwvdHJlZS1ub2RlLWRyb3Atc2xvdD5cblxuICA8IS0tICNyZWdpb24gPHRyZWUtbm9kZS13cmFwcGVyPiBjdXN0b20gdGVtcGxhdGUgLS0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJub2RlLXdyYXBwZXJcIlxuICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgW2FsbG93RHJhZ292ZXJTdHlsaW5nXT1cIm5vZGUuYWxsb3dEcmFnb3ZlclN0eWxpbmcoKVwiXG4gICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIm5vZGUuaXNBY3RpdmVcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwibm9kZS5jaGlsZHJlbj8ubGVuZ3RoID8gbm9kZS5pc0V4cGFuZGVkIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJhcmlhU2VsZWN0ZWQoKVwiXG4gICAgW2F0dHIuZGF0YS1ub2RlLWlkXT1cIm5vZGUuaWRcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4XCJcbiAgICBbY2xhc3Muc2t5LWFuZ3VsYXItdHJlZS1ub2RlLWFjdGl2ZV09XCJzaG93QWN0aXZlQ2xhc3MoKVwiXG4gICAgW2NsYXNzLnNreS1hbmd1bGFyLXRyZWUtbm9kZS1zZWxlY3RlZF09XCJzaG93U2VsZWN0ZWRDbGFzcygpXCJcbiAgICBbc3R5bGUucGFkZGluZy1sZWZ0XT1cIm5vZGUuZ2V0Tm9kZVBhZGRpbmcoKVwiXG4gICAgW3RyZWVBbGxvd0Ryb3BdPVwibm9kZS5hbGxvd0Ryb3BcIlxuICAgIFt0cmVlRHJhZ109XCJub2RlXCJcbiAgICBbdHJlZURyYWdFbmFibGVkXT1cIm5vZGUuYWxsb3dEcmFnKClcIlxuICAgIChjb250ZXh0bWVudSk9XCJub2RlLm1vdXNlQWN0aW9uKCdjb250ZXh0TWVudScsICRldmVudClcIlxuICAgIChkYmxjbGljayk9XCJub2RlLm1vdXNlQWN0aW9uKCdkYmxDbGljaycsICRldmVudClcIlxuICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oKVwiXG4gICAgKG1vdXNldXApPVwib25Nb3VzZVVwKClcIlxuICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAodHJlZURyb3ApPVwibm9kZS5vbkRyb3AoJGV2ZW50KVwiXG4gICAgKHRyZWVEcm9wRHJhZ0VudGVyKT1cIm5vZGUubW91c2VBY3Rpb24oJ2RyYWdFbnRlcicsICRldmVudClcIlxuICAgICh0cmVlRHJvcERyYWdMZWF2ZSk9XCJub2RlLm1vdXNlQWN0aW9uKCdkcmFnTGVhdmUnLCAkZXZlbnQpXCJcbiAgICAodHJlZURyb3BEcmFnT3Zlcik9XCJub2RlLm1vdXNlQWN0aW9uKCdkcmFnT3ZlcicsICRldmVudClcIlxuICAgICNub2RlQ29udGVudFdyYXBwZXJcbiAgPlxuICAgIDwhLS0gI3JlZ2lvbiA8dHJlZS1ub2RlLWV4cGFuZGVyPiBjdXN0b20gdGVtcGxhdGUgLS0tPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktdG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJub2RlLmhhc0NoaWxkcmVuXCJcbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluayBza3ktdG9nZ2xlLWNoaWxkcmVuXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm5vZGVOYW1lXCJcbiAgICAgICAgW2NsYXNzLnRvZ2dsZS1jaGlsZHJlbi13cmFwcGVyLWV4cGFuZGVkXT1cIm5vZGUuaXNFeHBhbmRlZFwiXG4gICAgICAgIFtjbGFzcy50b2dnbGUtY2hpbGRyZW4td3JhcHBlci1jb2xsYXBzZWRdPVwibm9kZS5pc0NvbGxhcHNlZFwiXG4gICAgICAgIChjbGljayk9XCJub2RlLm1vdXNlQWN0aW9uKCdleHBhbmRlckNsaWNrJywgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktaWNvblxuICAgICAgICAgIFtpY29uXT1cIm5vZGUuaXNFeHBhbmRlZCA/ICdjaGV2cm9uLWRvd24nIDogJ2NoZXZyb24tcmlnaHQnXCJcbiAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAvPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8c3BhbiAqbmdJZj1cInNob3dUb2dnbGVQbGFjZWhvbGRlcigpXCIgY2xhc3M9XCJ0b2dnbGUtY2hpbGRyZW4tcGxhY2Vob2xkZXJcIj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tICNlbmRyZWdpb24gPHRyZWUtbm9kZS1leHBhbmRlcj4gLS0tPlxuXG4gICAgPCEtLSBOb3RlOiB3ZSd2ZSBtYWRlIGNoYW5nZXMgdG8gdGhlIGNsaWNrIGV2ZW50LCB0YWJpbmRleCwgYW5kIGNsYXNzZXMgd2hlbiBjb21wYXJlZCB0byB0aGUgb3JpZ2luYWwgdGVtcGxhdGUuIC0tPlxuICAgIDwhLS0gaHR0cHM6Ly9naXRodWIuY29tLzUwMHRlY2gvYW5ndWxhci10cmVlLWNvbXBvbmVudC9ibG9iL21hc3Rlci9saWIvY29tcG9uZW50cy90cmVlLW5vZGUtd3JhcHBlci5jb21wb25lbnQudHMgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm5vZGUtY29udGVudC13cmFwcGVyXCI+XG4gICAgICA8c2t5LWNoZWNrYm94XG4gICAgICAgICpuZ0lmPVwic2hvd0NoZWNrYm94KClcIlxuICAgICAgICBbY2hlY2tlZF09XCJpc1NlbGVjdGVkXCJcbiAgICAgICAgW2lkXT1cIm5vZGUuZGF0YS5pZFwiXG4gICAgICAgIFtsYWJlbF09XCJub2RlTmFtZVwiXG4gICAgICAgIFtpbmRldGVybWluYXRlXT1cImlzUGFydGlhbGx5U2VsZWN0ZWRcIlxuICAgICAgICAoY2hhbmdlKT1cIm5vZGUubW91c2VBY3Rpb24oJ2NoZWNrYm94Q2xpY2snLCAkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvc2t5LWNoZWNrYm94PlxuXG4gICAgICA8c2t5LWFuZ3VsYXItdHJlZS1jb250ZXh0LW1lbnU+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1kcm9wZG93blwiIC8+XG4gICAgICA8L3NreS1hbmd1bGFyLXRyZWUtY29udGV4dC1tZW51PlxuXG4gICAgICA8dHJlZS1ub2RlLWNvbnRlbnRcbiAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgW25vZGVdPVwibm9kZVwiXG4gICAgICAgIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZXM/LnRyZWVOb2RlVGVtcGxhdGVcIlxuICAgICAgICAoY2xpY2spPVwibm9kZS5tb3VzZUFjdGlvbignY2xpY2snLCAkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvdHJlZS1ub2RlLWNvbnRlbnRcbiAgICAgID48c3BhbiBjbGFzcz1cInNreS1jb250cm9sLWhlbHAtY29udGFpbmVyXCJcbiAgICAgICAgPjxuZy1jb250ZW50IHNlbGVjdD1cIi5za3ktY29udHJvbC1oZWxwXCI+PC9uZy1jb250ZW50XG4gICAgICA+PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVzPy50cmVlTm9kZVdyYXBwZXJUZW1wbGF0ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICRpbXBsaWNpdDogbm9kZSxcbiAgICAgIG5vZGU6IG5vZGUsXG4gICAgICBpbmRleDogaW5kZXgsXG4gICAgICB0ZW1wbGF0ZXM6IHRlbXBsYXRlc1xuICAgIH1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tICNlbmRyZWdpb24gPHRyZWUtbm9kZS13cmFwcGVyPiAtLT5cblxuICA8dHJlZS1ub2RlLWNoaWxkcmVuIHJvbGU9XCJncm91cFwiIFtub2RlXT1cIm5vZGVcIiBbdGVtcGxhdGVzXT1cInRlbXBsYXRlc1wiPlxuICA8L3RyZWUtbm9kZS1jaGlsZHJlbj5cblxuICA8dHJlZS1ub2RlLWRyb3Atc2xvdCBbZHJvcEluZGV4XT1cIm5vZGUuaW5kZXggKyAxXCIgW25vZGVdPVwibm9kZS5wYXJlbnRcIj5cbiAgPC90cmVlLW5vZGUtZHJvcC1zbG90PlxuPC9kaXY+XG4iXX0=
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7OztBQUc5RTs7Ozs7Ozs7O0dBU0c7QUFNSCxNQUFNLE9BQU8sMkJBQTJCO0lBc0J0QyxJQUFXLGVBQWUsQ0FBQyxLQUF5QjtRQUNsRCxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQzdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxJQUFJLENBQUMscUJBQXFCLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ25EO1NBQ0Y7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LElBQUk7Z0JBQ1gsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07b0JBQ2YsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7b0JBQ3RCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLENBQ3BELENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7OEdBdlRVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGtIQUYzQixDQUFDLDRCQUE0QixFQUFFLHNCQUFzQixDQUFDLGtJQTRFeEIsVUFBVSw2QkMxR3JELHNsSUFtSEE7OzJGRG5GYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsdUJBQXVCLGFBRXRCLENBQUMsNEJBQTRCLEVBQUUsc0JBQXNCLENBQUM7OzBCQWdIOUQsUUFBUTs0Q0F4R0osS0FBSztzQkFEWCxLQUFLO2dCQVNDLElBQUk7c0JBRFYsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUs7Z0JBd0RDLHFCQUFxQjtzQkFEM0IsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVRyZWVTdGF0ZSwgVHJlZU5vZGUgfSBmcm9tICdAYmxhY2tiYXVkL2FuZ3VsYXItdHJlZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q29udGVudEluZm9Qcm92aWRlciB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vYW5ndWxhci10cmVlLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lBbmd1bGFyVHJlZVdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogUmVwbGFjZXMgdGhlIGRlZmF1bHQgdHJlZSBub2RlIHRlbXBsYXRlIHdpdGggYSBTS1kgVVggbm9kZSBhcyBwYXJ0IG9mIHRoZSBgU2t5QW5ndWxhclRyZWVNb2R1bGVgIHRoYXRcbiAqIHByb3ZpZGVzIFNLWSBVWCBjb21wb25lbnRzIGFuZCBzdHlsZXMgdG8gY29tcGxlbWVudCB0aGUgYGFuZ3VsYXItdHJlZS1jb21wb25lbnRgIGxpYnJhcnkgYW5kIGFwcGx5IFNLWSBVWFxuICogdGhlbWVzIGFuZCBmdW5jdGlvbmFsaXR5IHRvIGhpZXJhcmNoaWNhbCBsaXN0IHZpZXdzLiBZb3UgbXVzdCB3cmFwIHRoaXMgY29tcG9uZW50IGluIGFuIGBuZy10ZW1wbGF0ZWBcbiAqIHRhZyB3aXRoIHRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgdmFyaWFibGUgYCN0cmVlTm9kZUZ1bGxUZW1wbGF0ZWAuIEZvciBpbmZvcm1hdGlvbiBhYm91dCB0cmVlIG5vZGUgdGVtcGxhdGVzLFxuICogc2VlIHRoZSBbQW5ndWxhciB0cmVlIGNvbXBvbmVudCBkb2N1bWVudGF0aW9uXShodHRwczovL2FuZ3VsYXIyLXRyZWUucmVhZG1lLmlvL2RvY3MvdGVtcGxhdGVzKS5cbiAqIFRvIGRpc3BsYXkgY29udGV4dCBtZW51cyB3aXRoIGFjdGlvbnMgZm9yIGluZGl2aWR1YWwgaXRlbXMgaW4gaGllcmFyY2hpY2FsIGxpc3RzLCBwbGFjZVxuICogW2Ryb3Bkb3duc10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC1wb3BvdmVycy9kb2NzL2Ryb3Bkb3duP2RvY3MtYWN0aXZlLXRhYj1kZXNpZ24pIGluc2lkZSB0aGVcbiAqIEFuZ3VsYXIgdHJlZSBub2RlIGNvbXBvbmVudCwgd2hpY2ggYXV0b21hdGljYWxseSBoYW5kbGVzIHN0eWxpbmcgYW5kIHBvc2l0aW9uaW5nIGZvciBjb250ZXh0IG1lbnVzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYW5ndWxhci10cmVlLW5vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtTa3lBbmd1bGFyVHJlZUFkYXB0ZXJTZXJ2aWNlLCBTa3lDb250ZW50SW5mb1Byb3ZpZGVyXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVOb2RlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IHtcbiAgLyoqXG4gICAqIFRoZSBgaW5kZXhgIHByb3BlcnR5IGZyb20gdGhlIHBhcmVudCBgbmctdGVtcGxhdGVgLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgYG5vZGVgIHByb3BlcnR5IGZyb20gdGhlIHBhcmVudCBgbmctdGVtcGxhdGVgLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBUcmVlTm9kZWAgb2JqZWN0LCBzZWUgdGhlXG4gICAqIFtBbmd1bGFyIHRyZWUgY29tcG9uZW50IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcy9hcGkpLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBub2RlOiBUcmVlTm9kZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGB0ZW1wbGF0ZXNgIHByb3BlcnR5IGZyb20gdGhlIHBhcmVudCBgbmctdGVtcGxhdGVgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRlbXBsYXRlczogYW55O1xuXG4gIHB1YmxpYyBzZXQgY2hpbGRGb2N1c0luZGV4KHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19jaGlsZEZvY3VzSW5kZXgpIHtcbiAgICAgIHRoaXMuI19jaGlsZEZvY3VzSW5kZXggPSB2YWx1ZTtcbiAgICAgIGlmICh0aGlzLiNmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGggPiAwICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy4jZm9jdXNhYmxlQ2hpbGRyZW5bdmFsdWVdLmZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm5vZGVDb250ZW50V3JhcHBlclJlZj8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpbGRGb2N1c0luZGV4KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19jaGlsZEZvY3VzSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgc2V0IGZvY3VzZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRhYkluZGV4ID0gdmFsdWUgPyAwIDogLTE7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLm5vZGVDb250ZW50V3JhcHBlclJlZj8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgaXNQYXJ0aWFsbHlTZWxlY3RlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy4jX2lzUGFydGlhbGx5U2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuI19pc1BhcnRpYWxseVNlbGVjdGVkID0gdmFsdWU7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzUGFydGlhbGx5U2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19pc1BhcnRpYWxseVNlbGVjdGVkO1xuICB9XG5cbiAgcHVibGljIHNldCBpc1NlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLiNfaXNTZWxlY3RlZCkge1xuICAgICAgdGhpcy4jX2lzU2VsZWN0ZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2lzU2VsZWN0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IHRhYkluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLiNfdGFiSW5kZXggPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jX3RhYkluZGV4O1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnbm9kZUNvbnRlbnRXcmFwcGVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBub2RlQ29udGVudFdyYXBwZXJSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIHNldCBub2RlTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy4jX25vZGVOYW1lID0gdmFsdWU7XG4gICAgdGhpcy4jY29udGVudEluZm9Qcm92aWRlci5wYXRjaEluZm8oe1xuICAgICAgZGVzY3JpcHRvcjogeyB0eXBlOiAndGV4dCcsIHZhbHVlIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IG5vZGVOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19ub2RlTmFtZTtcbiAgfVxuXG4gICNmb2N1c2FibGVDaGlsZHJlbjogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gICNtb3VzZURvd24gPSBmYWxzZTtcblxuICAjX2NoaWxkRm9jdXNJbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICNfaXNQYXJ0aWFsbHlTZWxlY3RlZCA9IGZhbHNlO1xuXG4gICNfaXNTZWxlY3RlZCA9IGZhbHNlO1xuXG4gICNfdGFiSW5kZXggPSAtMTtcblxuICAjX25vZGVOYW1lID0gJyc7XG5cbiAgI2FkYXB0ZXJTZXJ2aWNlOiBTa3lBbmd1bGFyVHJlZUFkYXB0ZXJTZXJ2aWNlO1xuICAjY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmO1xuICAjY29udGVudEluZm9Qcm92aWRlciA9IGluamVjdChTa3lDb250ZW50SW5mb1Byb3ZpZGVyKTtcbiAgI3NreUFuZ3VsYXJUcmVlV3JhcHBlcjogU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBhZGFwdGVyU2VydmljZTogU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBza3lBbmd1bGFyVHJlZVdyYXBwZXI/OiBTa3lBbmd1bGFyVHJlZVdyYXBwZXJDb21wb25lbnRcbiAgKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYgPSBjaGFuZ2VEZXRlY3RvclJlZjtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlciA9IHNreUFuZ3VsYXJUcmVlV3JhcHBlcjtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlcikge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYDxza3ktYW5ndWxhci10cmVlLW5vZGUtd3JhcHBlcj4gbXVzdCBiZSB3cmFwcGVkIGluc2lkZSBhIDxza3ktYW5ndWxhci10cmVlLXdyYXBwZXI+IGNvbXBvbmVudC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIHRoaXMubm9kZU5hbWUgPSB0aGlzLm5vZGUuZGF0YS5uYW1lO1xuICAgICAgLy8gQmVjYXVzZSB3ZSdyZSBiaW5kaW5nIHRoZSBjaGVja2JveCB0byBub2RlJ3MgY2hpbGRyZW4gcHJvcGVydGllcywgd2UgbmVlZCB0byBtYW51YWxseSBjb250cm9sIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgICAvLyBIZXJlLCB3ZSBsaXN0ZW4gdG8gdGhlIHRyZWUncyBzdGF0ZSBhbmQgZm9yY2UgY2hhbmdlIGRldGVjdGlvbiBpbiB0aGUgc2V0dGVycyBpZiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQuXG4gICAgICB0aGlzLm5vZGUudHJlZU1vZGVsLnN1YnNjcmliZVRvU3RhdGUoKHN0YXRlOiBJVHJlZVN0YXRlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWQgPSB0aGlzLm5vZGUuaXNTZWxlY3RlZDtcbiAgICAgICAgICB0aGlzLmlzUGFydGlhbGx5U2VsZWN0ZWQgPSB0aGlzLm5vZGUuaXNQYXJ0aWFsbHlTZWxlY3RlZDtcblxuICAgICAgICAgIGlmIChzdGF0ZS5mb2N1c2VkTm9kZUlkKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWQgPSBzdGF0ZS5mb2N1c2VkTm9kZUlkID09PSB0aGlzLm5vZGUuaWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5ub2RlLnRyZWVNb2RlbC5zdWJzY3JpYmUoJ3VwZGF0ZURhdGEnLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgICAgICB0aGlzLm5vZGVOYW1lID0gdGhpcy5ub2RlLmRhdGEubmFtZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIE1ha2UgdGhlIGZpcnN0IHJvb3Qgbm9kZSB0YWJiYWJsZS5cbiAgICAgIGlmICh0aGlzLm5vZGUuaXNSb290ICYmIHRoaXMubm9kZS5pbmRleCA9PT0gMCkge1xuICAgICAgICB0aGlzLnRhYkluZGV4ID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIFdhaXQgMXMgZm9yIHRoZSBub2RlIHRvIHJlbmRlciwgdGhlbiByZXNldCBhbGwgY2hpbGQgdGFiSW5kZXhlcyB0byAtMS5cbiAgICAvLyBVbml0cyBzbWFsbGVyIHRoYW4gMXMgbWF5IGNvbnNpc3RlbnRseSBmYWlsIGlmIHRoZXJlIGFyZSBtYW55IG5vZGVzLCBvciBtdWx0aXBsZSB0cmVlcyBhcmUgb24gdGhlIHNhbWUgc2NyZWVuLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmKSB7XG4gICAgICAgIHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuID0gdGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oXG4gICAgICAgICAgdGhpcy5ub2RlQ29udGVudFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICApO1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRUYWJJbmRleE9mRm9jdXNhYmxlRWxzKFxuICAgICAgICAgIHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgLTFcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBzaW5nbGUtc2VsZWN0LCBzZXQgYXJpYS1zZWxlY3RlZD10cnVlIGZvciB0aGUgc2VsZWN0ZWQgbm9kZSBhbmQgdW5kZWZpbmVkIGZvciBhbGwgdGhlIG90aGVycy5cbiAgICogRm9yIG11bHRpcGxlLXNlbGVjdCwgc2V0IGFyaWEtc2VsZWN0ZWQgdG8gZWl0aGVyIHRydWUgb3IgZmFsc2UuXG4gICAqIElmIG5vZGUgY2Fubm90IGJlIHNlbGVjdGVkLCBhcmlhLXNlbGVjdGVkIHNob3VsZCBiZSB1bmRlZmluZWQgKGUuZy4gcGFyZW50IG5vZGVzIGluIGxlYWYtc2VsZWN0LW9ubHkgbW9kZSkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGFyaWFTZWxlY3RlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIuc2VsZWN0U2luZ2xlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc1NlbGVjdGVkID8gdHJ1ZSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuI2lzU2VsZWN0YWJsZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuICEhdGhpcy5pc1NlbGVjdGVkO1xuICB9XG5cbiAgcHVibGljIHNob3dDaGVja2JveCgpOiBib29sZWFuIHtcbiAgICAvLyBDaGVjayBmb3IgY2hlY2tib3ggbW9kZSBlbmFibGVkLCBidXQgYWxzbyByZXNwZWN0IGxlYWYtbm9kZSBhbmQgc2luZ2xlLXNlbGVjdCBzZXR0aW5ncy5cbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLm5vZGUgJiZcbiAgICAgIHRoaXMubm9kZS5vcHRpb25zLnVzZUNoZWNrYm94ICYmXG4gICAgICB0aGlzLiNpc1NlbGVjdGFibGUoKSAmJlxuICAgICAgKCF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIgfHxcbiAgICAgICAgIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlci5zZWxlY3RTaW5nbGUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93U2VsZWN0ZWRDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jaXNTZWxlY3RhYmxlKCkgJiYgdGhpcy5pc1NlbGVjdGVkICYmICF0aGlzLmlzUGFydGlhbGx5U2VsZWN0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2hvd0FjdGl2ZUNsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMubm9kZSAmJlxuICAgICAgdGhpcy5ub2RlLmlzQWN0aXZlICYmXG4gICAgICAhdGhpcy5ub2RlLnRyZWVNb2RlbC5vcHRpb25zLnVzZUNoZWNrYm94XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93VG9nZ2xlUGxhY2Vob2xkZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICF0aGlzLm5vZGU/Lmhhc0NoaWxkcmVuICYmXG4gICAgICAhdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyPy5zZWxlY3RMZWFmTm9kZXNPbmx5XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzKCk6IHZvaWQge1xuICAgIC8vIDx0cmVlLW5vZGUtY29udGVudD4gaGFzIGl0cyBvd24gY2xpY2sgaGFuZGxlciwgc28gd2UgbmVlZCB0byBjaGVjayBpZiB0aGlzIGZvY3VzIGV2ZW50XG4gICAgLy8gaXMgY29taW5nIGZyb20gdGhlIG1vdXNlIGNsaWNrIG9yIHRoZSBrZXlib2FyZCB0byBwcmV2ZW50IHRoZSBsb2dpYyBmcm9tIHJ1bm5pbmcgdHdpY2UuXG4gICAgaWYgKCF0aGlzLiNtb3VzZURvd24pIHtcbiAgICAgIHRoaXMubm9kZT8udHJlZU1vZGVsLnNldEZvY3VzKHRydWUpO1xuICAgICAgdGhpcy5ub2RlPy5mb2N1cygpO1xuICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTW91c2VEb3duKCk6IHZvaWQge1xuICAgIHRoaXMuI21vdXNlRG93biA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgb25Nb3VzZVVwKCk6IHZvaWQge1xuICAgIHRoaXMuI21vdXNlRG93biA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCkge1xuICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlICd1cCc6XG4gICAgICAgIGNhc2UgJ2Fycm93dXAnOlxuICAgICAgICAgIC8vIEZvY3VzIG9uIHByZXZpb3VzIG5vZGUuXG4gICAgICAgICAgdGhpcy5ub2RlPy50cmVlTW9kZWwuZm9jdXNQcmV2aW91c05vZGUoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdkb3duJzpcbiAgICAgICAgY2FzZSAnYXJyb3dkb3duJzpcbiAgICAgICAgICAvLyBGb2N1cyBvbiBuZXh0IG5vZGUuXG4gICAgICAgICAgdGhpcy5ub2RlPy50cmVlTW9kZWwuZm9jdXNOZXh0Tm9kZSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBjYXNlICdhcnJvd2xlZnQnOlxuICAgICAgICAgIC8vIEN5Y2xlIGJhY2t3YXJkcyB0aHJvdWdoIGludGVyYWN0aXZlIGNoaWxkIGVsZW1lbnRzXG4gICAgICAgICAgLy8gSWYgdXNlciByZWFjaGVzIHRoZSBiZWdpbm5pbmcsIGFjdGl2YXRlIGRyaWxsIHVwLlxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKHRoaXMuY2hpbGRGb2N1c0luZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoaWxkRm9jdXNJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4LS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubm9kZT8uc2V0SXNFeHBhbmRlZChmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICBjYXNlICdhcnJvd3JpZ2h0JzpcbiAgICAgICAgICAvLyBDeWNsZSBmb3J3YXJkIHRocm91Z2ggaW50ZXJhY3RpdmUgY2hpbGQgZWxlbWVudHMuXG4gICAgICAgICAgLy8gSWYgdXNlciByZWFjaGVzIHRoZSBlbmQsIGFjdGl2YXRlIGRyaWxsIGRvd24uXG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLiNmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGggPD0gMCB8fFxuICAgICAgICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXggPT09IHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCAtIDFcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMubm9kZT8uc2V0SXNFeHBhbmRlZCh0cnVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2hpbGRGb2N1c0luZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXggPSAwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXgrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNpc1NlbGVjdGFibGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlcikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgISF0aGlzLm5vZGUgJiZcbiAgICAgICAgKHRoaXMubm9kZS5pc0xlYWYgfHxcbiAgICAgICAgICAhdGhpcy5ub2RlLmhhc0NoaWxkcmVuIHx8XG4gICAgICAgICAgIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlci5zZWxlY3RMZWFmTm9kZXNPbmx5KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cIm5vZGUgJiYgaW5kZXggIT09IHVuZGVmaW5lZFwiXG4gIFtjbGFzc109XCJub2RlLmdldENsYXNzKClcIlxuICBbY2xhc3MudHJlZS1ub2RlXT1cInRydWVcIlxuICBbY2xhc3MudHJlZS1ub2RlLWFjdGl2ZV09XCJub2RlLmlzQWN0aXZlXCJcbiAgW2NsYXNzLnRyZWUtbm9kZS1jb2xsYXBzZWRdPVwibm9kZS5pc0NvbGxhcHNlZCAmJiBub2RlLmhhc0NoaWxkcmVuXCJcbiAgW2NsYXNzLnRyZWUtbm9kZS1leHBhbmRlZF09XCJub2RlLmlzRXhwYW5kZWQgJiYgbm9kZS5oYXNDaGlsZHJlblwiXG4gIFtjbGFzcy50cmVlLW5vZGUtZm9jdXNlZF09XCJub2RlLmlzRm9jdXNlZFwiXG4gIFtjbGFzcy50cmVlLW5vZGUtbGVhZl09XCJub2RlLmlzTGVhZlwiXG4+XG4gIDx0cmVlLW5vZGUtZHJvcC1zbG90XG4gICAgKm5nSWY9XCJpbmRleCA9PT0gMFwiXG4gICAgW2Ryb3BJbmRleF09XCJub2RlLmluZGV4XCJcbiAgICBbbm9kZV09XCJub2RlLnBhcmVudFwiXG4gID5cbiAgPC90cmVlLW5vZGUtZHJvcC1zbG90PlxuXG4gIDwhLS0gI3JlZ2lvbiA8dHJlZS1ub2RlLXdyYXBwZXI+IGN1c3RvbSB0ZW1wbGF0ZSAtLS0+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm5vZGUtd3JhcHBlclwiXG4gICAgcm9sZT1cInRyZWVpdGVtXCJcbiAgICBbYWxsb3dEcmFnb3ZlclN0eWxpbmddPVwibm9kZS5hbGxvd0RyYWdvdmVyU3R5bGluZygpXCJcbiAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwibm9kZS5pc0FjdGl2ZVwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJub2RlLmNoaWxkcmVuPy5sZW5ndGggPyBub2RlLmlzRXhwYW5kZWQgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImFyaWFTZWxlY3RlZCgpXCJcbiAgICBbYXR0ci5kYXRhLW5vZGUtaWRdPVwibm9kZS5pZFwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgIFtjbGFzcy5za3ktYW5ndWxhci10cmVlLW5vZGUtYWN0aXZlXT1cInNob3dBY3RpdmVDbGFzcygpXCJcbiAgICBbY2xhc3Muc2t5LWFuZ3VsYXItdHJlZS1ub2RlLXNlbGVjdGVkXT1cInNob3dTZWxlY3RlZENsYXNzKClcIlxuICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwibm9kZS5nZXROb2RlUGFkZGluZygpXCJcbiAgICBbdHJlZUFsbG93RHJvcF09XCJub2RlLmFsbG93RHJvcFwiXG4gICAgW3RyZWVEcmFnXT1cIm5vZGVcIlxuICAgIFt0cmVlRHJhZ0VuYWJsZWRdPVwibm9kZS5hbGxvd0RyYWcoKVwiXG4gICAgKGNvbnRleHRtZW51KT1cIm5vZGUubW91c2VBY3Rpb24oJ2NvbnRleHRNZW51JywgJGV2ZW50KVwiXG4gICAgKGRibGNsaWNrKT1cIm5vZGUubW91c2VBY3Rpb24oJ2RibENsaWNrJywgJGV2ZW50KVwiXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigpXCJcbiAgICAobW91c2V1cCk9XCJvbk1vdXNlVXAoKVwiXG4gICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICh0cmVlRHJvcCk9XCJub2RlLm9uRHJvcCgkZXZlbnQpXCJcbiAgICAodHJlZURyb3BEcmFnRW50ZXIpPVwibm9kZS5tb3VzZUFjdGlvbignZHJhZ0VudGVyJywgJGV2ZW50KVwiXG4gICAgKHRyZWVEcm9wRHJhZ0xlYXZlKT1cIm5vZGUubW91c2VBY3Rpb24oJ2RyYWdMZWF2ZScsICRldmVudClcIlxuICAgICh0cmVlRHJvcERyYWdPdmVyKT1cIm5vZGUubW91c2VBY3Rpb24oJ2RyYWdPdmVyJywgJGV2ZW50KVwiXG4gICAgI25vZGVDb250ZW50V3JhcHBlclxuICA+XG4gICAgPCEtLSAjcmVnaW9uIDx0cmVlLW5vZGUtZXhwYW5kZXI+IGN1c3RvbSB0ZW1wbGF0ZSAtLS0+XG4gICAgPGRpdiBjbGFzcz1cInNreS10b2dnbGUtY2hpbGRyZW4td3JhcHBlclwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIm5vZGUuaGFzQ2hpbGRyZW5cIlxuICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS10b2dnbGUtY2hpbGRyZW5cIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibm9kZU5hbWVcIlxuICAgICAgICBbY2xhc3MudG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXItZXhwYW5kZWRdPVwibm9kZS5pc0V4cGFuZGVkXCJcbiAgICAgICAgW2NsYXNzLnRvZ2dsZS1jaGlsZHJlbi13cmFwcGVyLWNvbGxhcHNlZF09XCJub2RlLmlzQ29sbGFwc2VkXCJcbiAgICAgICAgKGNsaWNrKT1cIm5vZGUubW91c2VBY3Rpb24oJ2V4cGFuZGVyQ2xpY2snLCAkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgW2ljb25dPVwibm9kZS5pc0V4cGFuZGVkID8gJ2NoZXZyb24tZG93bicgOiAnY2hldnJvbi1yaWdodCdcIlxuICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwic2hvd1RvZ2dsZVBsYWNlaG9sZGVyKClcIiBjbGFzcz1cInRvZ2dsZS1jaGlsZHJlbi1wbGFjZWhvbGRlclwiPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gI2VuZHJlZ2lvbiA8dHJlZS1ub2RlLWV4cGFuZGVyPiAtLS0+XG5cbiAgICA8IS0tIE5vdGU6IHdlJ3ZlIG1hZGUgY2hhbmdlcyB0byB0aGUgY2xpY2sgZXZlbnQsIHRhYmluZGV4LCBhbmQgY2xhc3NlcyB3aGVuIGNvbXBhcmVkIHRvIHRoZSBvcmlnaW5hbCB0ZW1wbGF0ZS4gLS0+XG4gICAgPCEtLSBodHRwczovL2dpdGh1Yi5jb20vNTAwdGVjaC9hbmd1bGFyLXRyZWUtY29tcG9uZW50L2Jsb2IvbWFzdGVyL2xpYi9jb21wb25lbnRzL3RyZWUtbm9kZS13cmFwcGVyLmNvbXBvbmVudC50cyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibm9kZS1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgIDxza3ktY2hlY2tib3hcbiAgICAgICAgKm5nSWY9XCJzaG93Q2hlY2tib3goKVwiXG4gICAgICAgIFtjaGVja2VkXT1cImlzU2VsZWN0ZWRcIlxuICAgICAgICBbaWRdPVwibm9kZS5kYXRhLmlkXCJcbiAgICAgICAgW2xhYmVsXT1cIm5vZGVOYW1lXCJcbiAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiaXNQYXJ0aWFsbHlTZWxlY3RlZFwiXG4gICAgICAgIChjaGFuZ2UpPVwibm9kZS5tb3VzZUFjdGlvbignY2hlY2tib3hDbGljaycsICRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9za3ktY2hlY2tib3g+XG5cbiAgICAgIDxza3ktYW5ndWxhci10cmVlLWNvbnRleHQtbWVudT5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWRyb3Bkb3duXCIgLz5cbiAgICAgIDwvc2t5LWFuZ3VsYXItdHJlZS1jb250ZXh0LW1lbnU+XG5cbiAgICAgIDx0cmVlLW5vZGUtY29udGVudFxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbbm9kZV09XCJub2RlXCJcbiAgICAgICAgW3RlbXBsYXRlXT1cInRlbXBsYXRlcz8udHJlZU5vZGVUZW1wbGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJub2RlLm1vdXNlQWN0aW9uKCdjbGljaycsICRldmVudClcIlxuICAgICAgPlxuICAgICAgPC90cmVlLW5vZGUtY29udGVudFxuICAgICAgPjxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIlxuICAgICAgICA+PG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1jb250cm9sLWhlbHBcIj48L25nLWNvbnRlbnRcbiAgICAgID48L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZXM/LnRyZWVOb2RlV3JhcHBlclRlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgJGltcGxpY2l0OiBub2RlLFxuICAgICAgbm9kZTogbm9kZSxcbiAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgIHRlbXBsYXRlczogdGVtcGxhdGVzXG4gICAgfVwiXG4gID5cbiAgPC9uZy1jb250YWluZXI+XG4gIDwhLS0gI2VuZHJlZ2lvbiA8dHJlZS1ub2RlLXdyYXBwZXI+IC0tPlxuXG4gIDx0cmVlLW5vZGUtY2hpbGRyZW4gcm9sZT1cImdyb3VwXCIgW25vZGVdPVwibm9kZVwiIFt0ZW1wbGF0ZXNdPVwidGVtcGxhdGVzXCI+XG4gIDwvdHJlZS1ub2RlLWNoaWxkcmVuPlxuXG4gIDx0cmVlLW5vZGUtZHJvcC1zbG90IFtkcm9wSW5kZXhdPVwibm9kZS5pbmRleCArIDFcIiBbbm9kZV09XCJub2RlLnBhcmVudFwiPlxuICA8L3RyZWUtbm9kZS1kcm9wLXNsb3Q+XG48L2Rpdj5cbiJdfQ==
@@ -384,7 +384,9 @@ class SkyAngularTreeNodeComponent {
384
384
  }
385
385
  set nodeName(value) {
386
386
  this.#_nodeName = value;
387
- this.#contentInfoProvider.patchInfo({ descriptor: value });
387
+ this.#contentInfoProvider.patchInfo({
388
+ descriptor: { type: 'text', value },
389
+ });
388
390
  }
389
391
  get nodeName() {
390
392
  return this.#_nodeName;
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-angular-tree-component.mjs","sources":["../../../../../libs/components/angular-tree-component/src/lib/modules/shared/sky-angular-tree-component-resources.module.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-context-menu.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-context-menu.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-adapter.service.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-toolbar.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-toolbar.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree.module.ts","../../../../../libs/components/angular-tree-component/src/skyux-angular-tree-component.ts"],"sourcesContent":["/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-angular-tree-component' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n SkyLibResourcesService,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_angular_tree_clear_all: { message: 'Clear all' },\n skyux_angular_tree_click_to_expand: { message: 'Click to expand' },\n skyux_angular_tree_collapse_all: { message: 'Collapse' },\n skyux_angular_tree_expand_all: { message: 'Expand' },\n skyux_angular_tree_select_all: { message: 'Select all' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\nexport class SkyAngularTreeComponentResourcesProvider\n implements SkyLibResourcesProvider\n{\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyAngularTreeComponentResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyAngularTreeComponentResourcesModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-angular-tree-context-menu',\n templateUrl: './angular-tree-context-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAngularTreeContextMenuComponent {}\n","<div class=\"sky-angular-tree-context-menu\">\n <ng-content />\n</div>\n","import { Injectable } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyAngularTreeAdapterService {\n #coreAdapterService: SkyCoreAdapterService;\n\n constructor(coreAdapterService: SkyCoreAdapterService) {\n this.#coreAdapterService = coreAdapterService;\n }\n\n public getFocusableChildren(element: HTMLElement): HTMLElement[] {\n return this.#coreAdapterService.getFocusableChildren(element);\n }\n\n public setTabIndexOfFocusableEls(\n element: HTMLElement,\n tabIndex: number\n ): void {\n const focusableEls = this.#coreAdapterService.getFocusableChildren(element);\n let index = focusableEls.length;\n while (index--) {\n focusableEls[index].tabIndex = tabIndex;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-angular-tree-toolbar',\n templateUrl: './angular-tree-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyTreeViewToolbarComponent {\n @Input()\n public showSelectButtons: boolean | undefined;\n\n @Output()\n public clearAllClick = new EventEmitter<void>();\n\n @Output()\n public collapseAllClick = new EventEmitter<void>();\n\n @Output()\n public expandAllClick = new EventEmitter<void>();\n\n @Output()\n public selectAllClick = new EventEmitter<void>();\n\n public onClearAllClick(): void {\n this.clearAllClick.emit();\n }\n\n public onCollapseAllClick(): void {\n this.collapseAllClick.emit();\n }\n\n public onExpandAllClick(): void {\n this.expandAllClick.emit();\n }\n\n public onSelectAllClick(): void {\n this.selectAllClick.emit();\n }\n}\n","<div class=\"sky-angular-tree-toolbar\" role=\"toolbar\">\n <sky-toolbar>\n <sky-toolbar-item *ngIf=\"showSelectButtons\">\n <button\n class=\"sky-btn sky-btn-link sky-angular-tree-select-all-btn\"\n type=\"button\"\n (click)=\"onSelectAllClick()\"\n >\n {{ 'skyux_angular_tree_select_all' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item *ngIf=\"showSelectButtons\">\n <button\n class=\"sky-btn sky-btn-link sky-angular-tree-clear-all-btn\"\n type=\"button\"\n (click)=\"onClearAllClick()\"\n >\n {{ 'skyux_angular_tree_clear_all' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-expand-all-btn\"\n title=\"{{ 'skyux_angular_tree_expand_all' | skyLibResources }}\"\n type=\"button\"\n (click)=\"onExpandAllClick()\"\n >\n <sky-icon icon=\"angle-double-down\" />\n </button>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-collapse-all-btn\"\n title=\"{{ 'skyux_angular_tree_collapse_all' | skyLibResources }}\"\n type=\"button\"\n (click)=\"onCollapseAllClick()\"\n >\n <sky-icon icon=\"angle-double-up\" />\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n} from '@angular/core';\nimport {\n KEYS,\n TREE_ACTIONS,\n TreeComponent,\n TreeModel,\n TreeNode,\n} from '@blackbaud/angular-tree-component';\nimport { IDTypeDictionary } from '@blackbaud/angular-tree-component/lib/defs/api';\n\n/**\n * Wraps the Angular `tree-root` component as part of the `SkyAngularTreeModule` that provides\n * SKY UX components and styles to complement the `angular-tree-component` library and apply SKY UX\n * themes and functionality to hierarchical list views. For information about the `tree-root` component, see the\n * [Angular tree component documentation](https://angular2-tree.readme.io/docs).\n */\n@Component({\n selector: 'sky-angular-tree-wrapper',\n templateUrl: './angular-tree-wrapper.component.html',\n styleUrls: ['./angular-tree-wrapper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAngularTreeWrapperComponent implements AfterViewInit {\n /**\n * Whether to render the tree view in read-only mode.\n * This mode disables selected and active states on the tree view nodes.\n * @default false\n */\n @Input()\n public readOnly: boolean | undefined = false;\n\n /**\n * Whether to use leaf-only selection mode. For tree views with\n * [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes),\n * this mode limits user selections to leaf nodes and prevents users from selecting parent nodes.\n * @default false\n */\n @Input()\n public selectLeafNodesOnly: boolean | undefined = false;\n\n /**\n * Whether to use single-select mode. For tree views with\n * [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes),\n * this mode limits user selections to one node at a time.\n * @default false\n */\n @Input()\n public selectSingle: boolean | undefined = false;\n\n /**\n * Whether to display a toolbar with buttons to expand and collapse all nodes and buttons to select and clear all checkboxes.\n * The select and clear buttons only appear when you enable checkboxes.\n * To enable [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes).\n * @default false\n */\n @Input()\n public showToolbar: boolean | undefined = false;\n\n public selectableNodeIds: IDTypeDictionary = {};\n\n @ContentChild(TreeComponent)\n public treeComponent: TreeComponent | undefined;\n\n public ngAfterViewInit(): void {\n if (\n this.selectSingle &&\n this.treeComponent?.treeModel.options.useTriState\n ) {\n console.warn(\n 'Single select mode should not be enabled while the tree is in triState mode (cascading selection). ' +\n 'Please set \"useTriState\" to \"false\" if you want to remain in single select mode.'\n );\n }\n this.#overrideActionMapping();\n }\n\n public multiselectable(): boolean {\n return (\n !!this.treeComponent &&\n this.treeComponent.treeModel.options.useCheckbox &&\n !this.selectSingle\n );\n }\n\n public onClearAllClick(): void {\n /* istanbul ignore else */\n if (!this.selectSingle && this.treeComponent) {\n const currentState = this.treeComponent.treeModel.getState();\n this.treeComponent.state = {\n ...currentState,\n selectedLeafNodeIds: {},\n };\n }\n }\n\n public onCollapseAllClick(): void {\n this.treeComponent?.treeModel.collapseAll();\n }\n\n public onExpandAllClick(): void {\n this.treeComponent?.treeModel.expandAll();\n }\n\n public onSelectAllClick(): void {\n /* istanbul ignore else */\n if (!this.selectSingle && this.treeComponent) {\n // Get a list of all node ids that are selectable.\n this.selectableNodeIds = {};\n const getSelectableNodeIds = (node: TreeNode) => {\n const selectable =\n node.isSelectable() &&\n !(node.hasChildren && this.selectLeafNodesOnly);\n if (selectable && !node.data.virtual) {\n this.selectableNodeIds[node.id] = true;\n }\n if (!node.children) {\n return;\n }\n node.children.forEach((child) => getSelectableNodeIds(child));\n };\n getSelectableNodeIds(this.treeComponent.treeModel.virtualRoot);\n\n // Update tree state with new list of selected node ids.\n const currentState = this.treeComponent.treeModel.getState();\n this.treeComponent.state = {\n ...currentState,\n selectedLeafNodeIds: this.selectableNodeIds,\n };\n }\n }\n\n public showSelectButtons(): boolean {\n return (\n !!this.treeComponent &&\n this.treeComponent.treeModel.options.useCheckbox &&\n !this.selectSingle\n );\n }\n\n #isSelectable(node: TreeNode): boolean {\n return node.isLeaf || !node.hasChildren || !this.selectLeafNodesOnly;\n }\n\n #nodeDefaultAction(tree: TreeModel, node: TreeNode, event: any): void {\n if (this.readOnly) {\n return;\n }\n\n if (node.options.useCheckbox && this.#isSelectable(node)) {\n this.#toggleSelected(node, event);\n } else {\n TREE_ACTIONS.TOGGLE_ACTIVE(tree, node, event);\n }\n\n return;\n }\n\n #onKeyDownAction(tree: TreeModel, node: TreeNode, event: any): void {\n const targetNodeId = event.target.getAttribute('data-node-id');\n\n // Key press did not happen on the node.\n if (targetNodeId !== node.id.toString()) {\n // angular-tree-component will preventDefault() on anything using a key action handler,\n // thus stopping \"enter\" and \"space\" keys to throw \"click\" events on interactive elements.\n // This logic ensures components looking for \"clicks\" on those keystrokes still work (dropdown component).\n // https://github.com/500tech/angular-tree-component/blob/master/lib/models/tree.model.ts#L341\n /* istanbul ignore else */\n if (event.defaultPrevented) {\n event.target.click();\n }\n\n return;\n }\n\n this.#nodeDefaultAction(tree, node, event);\n }\n\n #overrideActionMapping(): void {\n const defaultActionMapping =\n this.treeComponent?.treeModel.options.actionMapping;\n\n if (defaultActionMapping?.mouse) {\n // Override default click/enter/space action to check for unsupported options (leaf node, single-select).\n defaultActionMapping.mouse.click = (tree, node, event) =>\n this.#nodeDefaultAction(tree, node, event);\n }\n\n if (defaultActionMapping?.keys) {\n defaultActionMapping.keys[KEYS.SPACE] = (tree, node, event) =>\n this.#onKeyDownAction(tree, node, event);\n defaultActionMapping.keys[KEYS.ENTER] = (tree, node, event) =>\n this.#onKeyDownAction(tree, node, event);\n\n // Disable left/right arrow keys to support navigating through interactive elements with keyboard.\n // See onArrowLeft() / onArrowRight() methods inside the angular-tree-node.component.ts.\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.RIGHT] = (tree, node, $event) => undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.LEFT] = (tree, node, $event) => undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.DOWN] = (tree, node, $event) => undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.UP] = (tree, node, $event) => undefined;\n }\n }\n\n #toggleSelected(node: TreeNode, event: any): void {\n // If single-selection is enabled, only select the node clicked.\n if (this.selectSingle && !node.isSelected) {\n const oldState = this.treeComponent?.treeModel.getState();\n const newState = {\n expandedNodeIds: oldState?.expandedNodeIds,\n selectedLeafNodeIds: Object.assign({}, node.id, { [node.id]: true }),\n activeNodeIds: oldState?.activeNodeIds,\n hiddenNodeIds: oldState?.hiddenNodeIds,\n focusedNodeId: node.id,\n };\n // Reconstruct the state in one go, so we don't create multiple events for the consumer.\n this.treeComponent?.treeModel.setState(newState);\n } else {\n TREE_ACTIONS.TOGGLE_SELECTED(node.treeModel, node, event);\n }\n }\n}\n","<div\n class=\"sky-angular-tree-wrapper\"\n [class.sky-angular-tree-read-only]=\"readOnly\"\n>\n <sky-angular-tree-toolbar\n *ngIf=\"showToolbar\"\n [showSelectButtons]=\"showSelectButtons()\"\n (clearAllClick)=\"onClearAllClick()\"\n (collapseAllClick)=\"onCollapseAllClick()\"\n (expandAllClick)=\"onExpandAllClick()\"\n (selectAllClick)=\"onSelectAllClick()\"\n >\n </sky-angular-tree-toolbar>\n <div\n class=\"sky-angular-tree-root\"\n role=\"tree\"\n [attr.aria-multiselectable]=\"multiselectable()\"\n >\n <ng-content select=\"tree-root\" />\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n Optional,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { ITreeState, TreeNode } from '@blackbaud/angular-tree-component';\nimport { SkyContentInfoProvider } from '@skyux/core';\n\nimport { SkyAngularTreeAdapterService } from './angular-tree-adapter.service';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\n\n/**\n * Replaces the default tree node template with a SKY UX node as part of the `SkyAngularTreeModule` that\n * provides SKY UX components and styles to complement the `angular-tree-component` library and apply SKY UX\n * themes and functionality to hierarchical list views. You must wrap this component in an `ng-template`\n * tag with the template reference variable `#treeNodeFullTemplate`. For information about tree node templates,\n * see the [Angular tree component documentation](https://angular2-tree.readme.io/docs/templates).\n * To display context menus with actions for individual items in hierarchical lists, place\n * [dropdowns](https://developer.blackbaud.com/skyux-popovers/docs/dropdown?docs-active-tab=design) inside the\n * Angular tree node component, which automatically handles styling and positioning for context menus.\n */\n@Component({\n selector: 'sky-angular-tree-node',\n templateUrl: './angular-tree-node.component.html',\n providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider],\n})\nexport class SkyAngularTreeNodeComponent implements AfterViewInit, OnInit {\n /**\n * The `index` property from the parent `ng-template`.\n * @required\n */\n @Input()\n public index: number | undefined;\n\n /**\n * The `node` property from the parent `ng-template`. For information about the `TreeNode` object, see the\n * [Angular tree component documentation](https://angular2-tree.readme.io/docs/api).\n * @required\n */\n @Input()\n public node: TreeNode | undefined;\n\n /**\n * The `templates` property from the parent `ng-template`.\n */\n @Input()\n public templates: any;\n\n public set childFocusIndex(value: number | undefined) {\n if (value !== this.#_childFocusIndex) {\n this.#_childFocusIndex = value;\n if (this.#focusableChildren.length > 0 && value !== undefined) {\n this.#focusableChildren[value].focus();\n } else {\n this.nodeContentWrapperRef?.nativeElement.focus();\n }\n }\n }\n\n public get childFocusIndex(): number | undefined {\n return this.#_childFocusIndex;\n }\n\n public set focused(value: boolean) {\n this.tabIndex = value ? 0 : -1;\n if (value) {\n this.nodeContentWrapperRef?.nativeElement.focus();\n }\n }\n\n public set isPartiallySelected(value: boolean) {\n if (value !== this.#_isPartiallySelected) {\n this.#_isPartiallySelected = value;\n this.#changeDetectorRef.markForCheck();\n }\n }\n\n public get isPartiallySelected(): boolean {\n return this.#_isPartiallySelected;\n }\n\n public set isSelected(value: boolean) {\n if (value !== this.#_isSelected) {\n this.#_isSelected = value;\n this.#changeDetectorRef.markForCheck();\n }\n }\n\n public get isSelected(): boolean {\n return this.#_isSelected;\n }\n\n public set tabIndex(value: number) {\n this.#_tabIndex = value;\n }\n\n public get tabIndex(): number {\n return this.#_tabIndex;\n }\n\n @ViewChild('nodeContentWrapper', { read: ElementRef })\n public nodeContentWrapperRef: ElementRef | undefined;\n\n protected set nodeName(value: string) {\n this.#_nodeName = value;\n this.#contentInfoProvider.patchInfo({ descriptor: value });\n }\n\n protected get nodeName(): string {\n return this.#_nodeName;\n }\n\n #focusableChildren: HTMLElement[] = [];\n\n #mouseDown = false;\n\n #_childFocusIndex: number | undefined;\n\n #_isPartiallySelected = false;\n\n #_isSelected = false;\n\n #_tabIndex = -1;\n\n #_nodeName = '';\n\n #adapterService: SkyAngularTreeAdapterService;\n #changeDetectorRef: ChangeDetectorRef;\n #contentInfoProvider = inject(SkyContentInfoProvider);\n #skyAngularTreeWrapper: SkyAngularTreeWrapperComponent | undefined;\n\n constructor(\n changeDetectorRef: ChangeDetectorRef,\n adapterService: SkyAngularTreeAdapterService,\n @Optional() skyAngularTreeWrapper?: SkyAngularTreeWrapperComponent\n ) {\n this.#changeDetectorRef = changeDetectorRef;\n this.#adapterService = adapterService;\n this.#skyAngularTreeWrapper = skyAngularTreeWrapper;\n }\n\n public ngOnInit(): void {\n if (!this.#skyAngularTreeWrapper) {\n console.error(\n `<sky-angular-tree-node-wrapper> must be wrapped inside a <sky-angular-tree-wrapper> component.`\n );\n }\n\n if (this.node) {\n this.nodeName = this.node.data.name;\n // Because we're binding the checkbox to node's children properties, we need to manually control change detection.\n // Here, we listen to the tree's state and force change detection in the setters if the value has changed.\n this.node.treeModel.subscribeToState((state: ITreeState) => {\n if (this.node) {\n this.isSelected = this.node.isSelected;\n this.isPartiallySelected = this.node.isPartiallySelected;\n\n if (state.focusedNodeId) {\n this.focused = state.focusedNodeId === this.node.id;\n }\n }\n });\n\n this.node.treeModel.subscribe('updateData', () => {\n if (this.node) {\n this.nodeName = this.node.data.name;\n }\n });\n\n // Make the first root node tabbable.\n if (this.node.isRoot && this.node.index === 0) {\n this.tabIndex = 0;\n }\n }\n }\n\n public ngAfterViewInit(): void {\n // Wait 1s for the node to render, then reset all child tabIndexes to -1.\n // Units smaller than 1s may consistently fail if there are many nodes, or multiple trees are on the same screen.\n setTimeout(() => {\n if (this.nodeContentWrapperRef) {\n this.#focusableChildren = this.#adapterService.getFocusableChildren(\n this.nodeContentWrapperRef.nativeElement\n );\n this.#adapterService.setTabIndexOfFocusableEls(\n this.nodeContentWrapperRef.nativeElement,\n -1\n );\n }\n }, 1000);\n }\n\n /**\n * If single-select, set aria-selected=true for the selected node and undefined for all the others.\n * For multiple-select, set aria-selected to either true or false.\n * If node cannot be selected, aria-selected should be undefined (e.g. parent nodes in leaf-select-only mode).\n * @internal\n */\n public ariaSelected(): boolean | undefined {\n if (!this.#skyAngularTreeWrapper) {\n return;\n }\n\n if (this.#skyAngularTreeWrapper.selectSingle) {\n return this.isSelected ? true : undefined;\n }\n\n if (!this.#isSelectable()) {\n return;\n }\n\n return !!this.isSelected;\n }\n\n public showCheckbox(): boolean {\n // Check for checkbox mode enabled, but also respect leaf-node and single-select settings.\n return (\n !!this.node &&\n this.node.options.useCheckbox &&\n this.#isSelectable() &&\n (!this.#skyAngularTreeWrapper ||\n !this.#skyAngularTreeWrapper.selectSingle)\n );\n }\n\n public showSelectedClass(): boolean {\n return this.#isSelectable() && this.isSelected && !this.isPartiallySelected;\n }\n\n public showActiveClass(): boolean {\n return (\n !!this.node &&\n this.node.isActive &&\n !this.node.treeModel.options.useCheckbox\n );\n }\n\n public showTogglePlaceholder(): boolean {\n return (\n !this.node?.hasChildren &&\n !this.#skyAngularTreeWrapper?.selectLeafNodesOnly\n );\n }\n\n public onFocus(): void {\n // <tree-node-content> has its own click handler, so we need to check if this focus event\n // is coming from the mouse click or the keyboard to prevent the logic from running twice.\n if (!this.#mouseDown) {\n this.node?.treeModel.setFocus(true);\n this.node?.focus();\n this.childFocusIndex = undefined;\n }\n }\n\n public onMouseDown(): void {\n this.#mouseDown = true;\n }\n\n public onMouseUp(): void {\n this.#mouseDown = false;\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (document.activeElement === event.target) {\n const key = event.key.toLowerCase();\n switch (key) {\n case 'up':\n case 'arrowup':\n // Focus on previous node.\n this.node?.treeModel.focusPreviousNode();\n break;\n\n case 'down':\n case 'arrowdown':\n // Focus on next node.\n this.node?.treeModel.focusNextNode();\n break;\n\n case 'left':\n case 'arrowleft':\n // Cycle backwards through interactive child elements\n // If user reaches the beginning, activate drill up.\n /* istanbul ignore else */\n if (this.childFocusIndex !== undefined) {\n if (this.childFocusIndex === 0) {\n this.childFocusIndex = undefined;\n } else {\n this.childFocusIndex--;\n }\n } else {\n this.node?.setIsExpanded(false);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'right':\n case 'arrowright':\n // Cycle forward through interactive child elements.\n // If user reaches the end, activate drill down.\n /* istanbul ignore else */\n if (\n this.#focusableChildren.length <= 0 ||\n this.childFocusIndex === this.#focusableChildren.length - 1\n ) {\n this.node?.setIsExpanded(true);\n } else {\n if (this.childFocusIndex === undefined) {\n this.childFocusIndex = 0;\n } else {\n this.childFocusIndex++;\n }\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n }\n\n #isSelectable(): boolean {\n if (this.#skyAngularTreeWrapper) {\n return (\n !!this.node &&\n (this.node.isLeaf ||\n !this.node.hasChildren ||\n !this.#skyAngularTreeWrapper.selectLeafNodesOnly)\n );\n } else {\n return false;\n }\n }\n}\n","<div\n *ngIf=\"node && index !== undefined\"\n [class]=\"node.getClass()\"\n [class.tree-node]=\"true\"\n [class.tree-node-active]=\"node.isActive\"\n [class.tree-node-collapsed]=\"node.isCollapsed && node.hasChildren\"\n [class.tree-node-expanded]=\"node.isExpanded && node.hasChildren\"\n [class.tree-node-focused]=\"node.isFocused\"\n [class.tree-node-leaf]=\"node.isLeaf\"\n>\n <tree-node-drop-slot\n *ngIf=\"index === 0\"\n [dropIndex]=\"node.index\"\n [node]=\"node.parent\"\n >\n </tree-node-drop-slot>\n\n <!-- #region <tree-node-wrapper> custom template --->\n <div\n class=\"node-wrapper\"\n role=\"treeitem\"\n [allowDragoverStyling]=\"node.allowDragoverStyling()\"\n [attr.aria-current]=\"node.isActive\"\n [attr.aria-expanded]=\"node.children?.length ? node.isExpanded : null\"\n [attr.aria-selected]=\"ariaSelected()\"\n [attr.data-node-id]=\"node.id\"\n [attr.tabindex]=\"tabIndex\"\n [class.sky-angular-tree-node-active]=\"showActiveClass()\"\n [class.sky-angular-tree-node-selected]=\"showSelectedClass()\"\n [style.padding-left]=\"node.getNodePadding()\"\n [treeAllowDrop]=\"node.allowDrop\"\n [treeDrag]=\"node\"\n [treeDragEnabled]=\"node.allowDrag()\"\n (contextmenu)=\"node.mouseAction('contextMenu', $event)\"\n (dblclick)=\"node.mouseAction('dblClick', $event)\"\n (focus)=\"onFocus()\"\n (mousedown)=\"onMouseDown()\"\n (mouseup)=\"onMouseUp()\"\n (keydown)=\"onKeyDown($event)\"\n (treeDrop)=\"node.onDrop($event)\"\n (treeDropDragEnter)=\"node.mouseAction('dragEnter', $event)\"\n (treeDropDragLeave)=\"node.mouseAction('dragLeave', $event)\"\n (treeDropDragOver)=\"node.mouseAction('dragOver', $event)\"\n #nodeContentWrapper\n >\n <!-- #region <tree-node-expander> custom template --->\n <div class=\"sky-toggle-children-wrapper\">\n <button\n *ngIf=\"node.hasChildren\"\n class=\"sky-btn sky-btn-link sky-toggle-children\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"nodeName\"\n [class.toggle-children-wrapper-expanded]=\"node.isExpanded\"\n [class.toggle-children-wrapper-collapsed]=\"node.isCollapsed\"\n (click)=\"node.mouseAction('expanderClick', $event)\"\n >\n <sky-icon\n [icon]=\"node.isExpanded ? 'chevron-down' : 'chevron-right'\"\n size=\"sm\"\n />\n </button>\n <span *ngIf=\"showTogglePlaceholder()\" class=\"toggle-children-placeholder\">\n </span>\n </div>\n <!-- #endregion <tree-node-expander> --->\n\n <!-- Note: we've made changes to the click event, tabindex, and classes when compared to the original template. -->\n <!-- https://github.com/500tech/angular-tree-component/blob/master/lib/components/tree-node-wrapper.component.ts -->\n <div class=\"node-content-wrapper\">\n <sky-checkbox\n *ngIf=\"showCheckbox()\"\n [checked]=\"isSelected\"\n [id]=\"node.data.id\"\n [label]=\"nodeName\"\n [indeterminate]=\"isPartiallySelected\"\n (change)=\"node.mouseAction('checkboxClick', $event)\"\n >\n </sky-checkbox>\n\n <sky-angular-tree-context-menu>\n <ng-content select=\"sky-dropdown\" />\n </sky-angular-tree-context-menu>\n\n <tree-node-content\n [index]=\"index\"\n [node]=\"node\"\n [template]=\"templates?.treeNodeTemplate\"\n (click)=\"node.mouseAction('click', $event)\"\n >\n </tree-node-content\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\"></ng-content\n ></span>\n </div>\n </div>\n\n <ng-container\n [ngTemplateOutlet]=\"templates?.treeNodeWrapperTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: node,\n node: node,\n index: index,\n templates: templates\n }\"\n >\n </ng-container>\n <!-- #endregion <tree-node-wrapper> -->\n\n <tree-node-children role=\"group\" [node]=\"node\" [templates]=\"templates\">\n </tree-node-children>\n\n <tree-node-drop-slot [dropIndex]=\"node.index + 1\" [node]=\"node.parent\">\n </tree-node-drop-slot>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TreeModule } from '@blackbaud/angular-tree-component';\nimport { SkyCoreAdapterService } from '@skyux/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyToolbarModule } from '@skyux/layout';\n\nimport { SkyAngularTreeComponentResourcesModule } from '../shared/sky-angular-tree-component-resources.module';\n\nimport { SkyAngularTreeContextMenuComponent } from './angular-tree-context-menu.component';\nimport { SkyAngularTreeNodeComponent } from './angular-tree-node.component';\nimport { SkyTreeViewToolbarComponent } from './angular-tree-toolbar.component';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\n\n@NgModule({\n declarations: [\n SkyAngularTreeContextMenuComponent,\n SkyAngularTreeNodeComponent,\n SkyAngularTreeWrapperComponent,\n SkyTreeViewToolbarComponent,\n ],\n imports: [\n CommonModule,\n SkyAngularTreeComponentResourcesModule,\n SkyCheckboxModule,\n SkyIconModule,\n SkyToolbarModule,\n TreeModule,\n ],\n providers: [SkyCoreAdapterService],\n exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent],\n})\nexport class SkyAngularTreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.SkyTreeViewToolbarComponent","i1.SkyAngularTreeAdapterService","i2.SkyAngularTreeWrapperComponent","i3","i4","i5","i7.SkyAngularTreeContextMenuComponent"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-angular-tree-component.mjs","sources":["../../../../../libs/components/angular-tree-component/src/lib/modules/shared/sky-angular-tree-component-resources.module.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-context-menu.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-context-menu.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-adapter.service.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-toolbar.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-toolbar.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-wrapper.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.ts","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree-node.component.html","../../../../../libs/components/angular-tree-component/src/lib/modules/angular-tree/angular-tree.module.ts","../../../../../libs/components/angular-tree-component/src/skyux-angular-tree-component.ts"],"sourcesContent":["/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-angular-tree-component' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n SkyLibResourcesService,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_angular_tree_clear_all: { message: 'Clear all' },\n skyux_angular_tree_click_to_expand: { message: 'Click to expand' },\n skyux_angular_tree_collapse_all: { message: 'Collapse' },\n skyux_angular_tree_expand_all: { message: 'Expand' },\n skyux_angular_tree_select_all: { message: 'Select all' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\nexport class SkyAngularTreeComponentResourcesProvider\n implements SkyLibResourcesProvider\n{\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyAngularTreeComponentResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyAngularTreeComponentResourcesModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-angular-tree-context-menu',\n templateUrl: './angular-tree-context-menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAngularTreeContextMenuComponent {}\n","<div class=\"sky-angular-tree-context-menu\">\n <ng-content />\n</div>\n","import { Injectable } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyAngularTreeAdapterService {\n #coreAdapterService: SkyCoreAdapterService;\n\n constructor(coreAdapterService: SkyCoreAdapterService) {\n this.#coreAdapterService = coreAdapterService;\n }\n\n public getFocusableChildren(element: HTMLElement): HTMLElement[] {\n return this.#coreAdapterService.getFocusableChildren(element);\n }\n\n public setTabIndexOfFocusableEls(\n element: HTMLElement,\n tabIndex: number\n ): void {\n const focusableEls = this.#coreAdapterService.getFocusableChildren(element);\n let index = focusableEls.length;\n while (index--) {\n focusableEls[index].tabIndex = tabIndex;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-angular-tree-toolbar',\n templateUrl: './angular-tree-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyTreeViewToolbarComponent {\n @Input()\n public showSelectButtons: boolean | undefined;\n\n @Output()\n public clearAllClick = new EventEmitter<void>();\n\n @Output()\n public collapseAllClick = new EventEmitter<void>();\n\n @Output()\n public expandAllClick = new EventEmitter<void>();\n\n @Output()\n public selectAllClick = new EventEmitter<void>();\n\n public onClearAllClick(): void {\n this.clearAllClick.emit();\n }\n\n public onCollapseAllClick(): void {\n this.collapseAllClick.emit();\n }\n\n public onExpandAllClick(): void {\n this.expandAllClick.emit();\n }\n\n public onSelectAllClick(): void {\n this.selectAllClick.emit();\n }\n}\n","<div class=\"sky-angular-tree-toolbar\" role=\"toolbar\">\n <sky-toolbar>\n <sky-toolbar-item *ngIf=\"showSelectButtons\">\n <button\n class=\"sky-btn sky-btn-link sky-angular-tree-select-all-btn\"\n type=\"button\"\n (click)=\"onSelectAllClick()\"\n >\n {{ 'skyux_angular_tree_select_all' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item *ngIf=\"showSelectButtons\">\n <button\n class=\"sky-btn sky-btn-link sky-angular-tree-clear-all-btn\"\n type=\"button\"\n (click)=\"onClearAllClick()\"\n >\n {{ 'skyux_angular_tree_clear_all' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-expand-all-btn\"\n title=\"{{ 'skyux_angular_tree_expand_all' | skyLibResources }}\"\n type=\"button\"\n (click)=\"onExpandAllClick()\"\n >\n <sky-icon icon=\"angle-double-down\" />\n </button>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-collapse-all-btn\"\n title=\"{{ 'skyux_angular_tree_collapse_all' | skyLibResources }}\"\n type=\"button\"\n (click)=\"onCollapseAllClick()\"\n >\n <sky-icon icon=\"angle-double-up\" />\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n} from '@angular/core';\nimport {\n KEYS,\n TREE_ACTIONS,\n TreeComponent,\n TreeModel,\n TreeNode,\n} from '@blackbaud/angular-tree-component';\nimport { IDTypeDictionary } from '@blackbaud/angular-tree-component/lib/defs/api';\n\n/**\n * Wraps the Angular `tree-root` component as part of the `SkyAngularTreeModule` that provides\n * SKY UX components and styles to complement the `angular-tree-component` library and apply SKY UX\n * themes and functionality to hierarchical list views. For information about the `tree-root` component, see the\n * [Angular tree component documentation](https://angular2-tree.readme.io/docs).\n */\n@Component({\n selector: 'sky-angular-tree-wrapper',\n templateUrl: './angular-tree-wrapper.component.html',\n styleUrls: ['./angular-tree-wrapper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyAngularTreeWrapperComponent implements AfterViewInit {\n /**\n * Whether to render the tree view in read-only mode.\n * This mode disables selected and active states on the tree view nodes.\n * @default false\n */\n @Input()\n public readOnly: boolean | undefined = false;\n\n /**\n * Whether to use leaf-only selection mode. For tree views with\n * [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes),\n * this mode limits user selections to leaf nodes and prevents users from selecting parent nodes.\n * @default false\n */\n @Input()\n public selectLeafNodesOnly: boolean | undefined = false;\n\n /**\n * Whether to use single-select mode. For tree views with\n * [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes),\n * this mode limits user selections to one node at a time.\n * @default false\n */\n @Input()\n public selectSingle: boolean | undefined = false;\n\n /**\n * Whether to display a toolbar with buttons to expand and collapse all nodes and buttons to select and clear all checkboxes.\n * The select and clear buttons only appear when you enable checkboxes.\n * To enable [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes).\n * @default false\n */\n @Input()\n public showToolbar: boolean | undefined = false;\n\n public selectableNodeIds: IDTypeDictionary = {};\n\n @ContentChild(TreeComponent)\n public treeComponent: TreeComponent | undefined;\n\n public ngAfterViewInit(): void {\n if (\n this.selectSingle &&\n this.treeComponent?.treeModel.options.useTriState\n ) {\n console.warn(\n 'Single select mode should not be enabled while the tree is in triState mode (cascading selection). ' +\n 'Please set \"useTriState\" to \"false\" if you want to remain in single select mode.'\n );\n }\n this.#overrideActionMapping();\n }\n\n public multiselectable(): boolean {\n return (\n !!this.treeComponent &&\n this.treeComponent.treeModel.options.useCheckbox &&\n !this.selectSingle\n );\n }\n\n public onClearAllClick(): void {\n /* istanbul ignore else */\n if (!this.selectSingle && this.treeComponent) {\n const currentState = this.treeComponent.treeModel.getState();\n this.treeComponent.state = {\n ...currentState,\n selectedLeafNodeIds: {},\n };\n }\n }\n\n public onCollapseAllClick(): void {\n this.treeComponent?.treeModel.collapseAll();\n }\n\n public onExpandAllClick(): void {\n this.treeComponent?.treeModel.expandAll();\n }\n\n public onSelectAllClick(): void {\n /* istanbul ignore else */\n if (!this.selectSingle && this.treeComponent) {\n // Get a list of all node ids that are selectable.\n this.selectableNodeIds = {};\n const getSelectableNodeIds = (node: TreeNode) => {\n const selectable =\n node.isSelectable() &&\n !(node.hasChildren && this.selectLeafNodesOnly);\n if (selectable && !node.data.virtual) {\n this.selectableNodeIds[node.id] = true;\n }\n if (!node.children) {\n return;\n }\n node.children.forEach((child) => getSelectableNodeIds(child));\n };\n getSelectableNodeIds(this.treeComponent.treeModel.virtualRoot);\n\n // Update tree state with new list of selected node ids.\n const currentState = this.treeComponent.treeModel.getState();\n this.treeComponent.state = {\n ...currentState,\n selectedLeafNodeIds: this.selectableNodeIds,\n };\n }\n }\n\n public showSelectButtons(): boolean {\n return (\n !!this.treeComponent &&\n this.treeComponent.treeModel.options.useCheckbox &&\n !this.selectSingle\n );\n }\n\n #isSelectable(node: TreeNode): boolean {\n return node.isLeaf || !node.hasChildren || !this.selectLeafNodesOnly;\n }\n\n #nodeDefaultAction(tree: TreeModel, node: TreeNode, event: any): void {\n if (this.readOnly) {\n return;\n }\n\n if (node.options.useCheckbox && this.#isSelectable(node)) {\n this.#toggleSelected(node, event);\n } else {\n TREE_ACTIONS.TOGGLE_ACTIVE(tree, node, event);\n }\n\n return;\n }\n\n #onKeyDownAction(tree: TreeModel, node: TreeNode, event: any): void {\n const targetNodeId = event.target.getAttribute('data-node-id');\n\n // Key press did not happen on the node.\n if (targetNodeId !== node.id.toString()) {\n // angular-tree-component will preventDefault() on anything using a key action handler,\n // thus stopping \"enter\" and \"space\" keys to throw \"click\" events on interactive elements.\n // This logic ensures components looking for \"clicks\" on those keystrokes still work (dropdown component).\n // https://github.com/500tech/angular-tree-component/blob/master/lib/models/tree.model.ts#L341\n /* istanbul ignore else */\n if (event.defaultPrevented) {\n event.target.click();\n }\n\n return;\n }\n\n this.#nodeDefaultAction(tree, node, event);\n }\n\n #overrideActionMapping(): void {\n const defaultActionMapping =\n this.treeComponent?.treeModel.options.actionMapping;\n\n if (defaultActionMapping?.mouse) {\n // Override default click/enter/space action to check for unsupported options (leaf node, single-select).\n defaultActionMapping.mouse.click = (tree, node, event) =>\n this.#nodeDefaultAction(tree, node, event);\n }\n\n if (defaultActionMapping?.keys) {\n defaultActionMapping.keys[KEYS.SPACE] = (tree, node, event) =>\n this.#onKeyDownAction(tree, node, event);\n defaultActionMapping.keys[KEYS.ENTER] = (tree, node, event) =>\n this.#onKeyDownAction(tree, node, event);\n\n // Disable left/right arrow keys to support navigating through interactive elements with keyboard.\n // See onArrowLeft() / onArrowRight() methods inside the angular-tree-node.component.ts.\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.RIGHT] = (tree, node, $event) => undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.LEFT] = (tree, node, $event) => undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.DOWN] = (tree, node, $event) => undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.UP] = (tree, node, $event) => undefined;\n }\n }\n\n #toggleSelected(node: TreeNode, event: any): void {\n // If single-selection is enabled, only select the node clicked.\n if (this.selectSingle && !node.isSelected) {\n const oldState = this.treeComponent?.treeModel.getState();\n const newState = {\n expandedNodeIds: oldState?.expandedNodeIds,\n selectedLeafNodeIds: Object.assign({}, node.id, { [node.id]: true }),\n activeNodeIds: oldState?.activeNodeIds,\n hiddenNodeIds: oldState?.hiddenNodeIds,\n focusedNodeId: node.id,\n };\n // Reconstruct the state in one go, so we don't create multiple events for the consumer.\n this.treeComponent?.treeModel.setState(newState);\n } else {\n TREE_ACTIONS.TOGGLE_SELECTED(node.treeModel, node, event);\n }\n }\n}\n","<div\n class=\"sky-angular-tree-wrapper\"\n [class.sky-angular-tree-read-only]=\"readOnly\"\n>\n <sky-angular-tree-toolbar\n *ngIf=\"showToolbar\"\n [showSelectButtons]=\"showSelectButtons()\"\n (clearAllClick)=\"onClearAllClick()\"\n (collapseAllClick)=\"onCollapseAllClick()\"\n (expandAllClick)=\"onExpandAllClick()\"\n (selectAllClick)=\"onSelectAllClick()\"\n >\n </sky-angular-tree-toolbar>\n <div\n class=\"sky-angular-tree-root\"\n role=\"tree\"\n [attr.aria-multiselectable]=\"multiselectable()\"\n >\n <ng-content select=\"tree-root\" />\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n Optional,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { ITreeState, TreeNode } from '@blackbaud/angular-tree-component';\nimport { SkyContentInfoProvider } from '@skyux/core';\n\nimport { SkyAngularTreeAdapterService } from './angular-tree-adapter.service';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\n\n/**\n * Replaces the default tree node template with a SKY UX node as part of the `SkyAngularTreeModule` that\n * provides SKY UX components and styles to complement the `angular-tree-component` library and apply SKY UX\n * themes and functionality to hierarchical list views. You must wrap this component in an `ng-template`\n * tag with the template reference variable `#treeNodeFullTemplate`. For information about tree node templates,\n * see the [Angular tree component documentation](https://angular2-tree.readme.io/docs/templates).\n * To display context menus with actions for individual items in hierarchical lists, place\n * [dropdowns](https://developer.blackbaud.com/skyux-popovers/docs/dropdown?docs-active-tab=design) inside the\n * Angular tree node component, which automatically handles styling and positioning for context menus.\n */\n@Component({\n selector: 'sky-angular-tree-node',\n templateUrl: './angular-tree-node.component.html',\n providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider],\n})\nexport class SkyAngularTreeNodeComponent implements AfterViewInit, OnInit {\n /**\n * The `index` property from the parent `ng-template`.\n * @required\n */\n @Input()\n public index: number | undefined;\n\n /**\n * The `node` property from the parent `ng-template`. For information about the `TreeNode` object, see the\n * [Angular tree component documentation](https://angular2-tree.readme.io/docs/api).\n * @required\n */\n @Input()\n public node: TreeNode | undefined;\n\n /**\n * The `templates` property from the parent `ng-template`.\n */\n @Input()\n public templates: any;\n\n public set childFocusIndex(value: number | undefined) {\n if (value !== this.#_childFocusIndex) {\n this.#_childFocusIndex = value;\n if (this.#focusableChildren.length > 0 && value !== undefined) {\n this.#focusableChildren[value].focus();\n } else {\n this.nodeContentWrapperRef?.nativeElement.focus();\n }\n }\n }\n\n public get childFocusIndex(): number | undefined {\n return this.#_childFocusIndex;\n }\n\n public set focused(value: boolean) {\n this.tabIndex = value ? 0 : -1;\n if (value) {\n this.nodeContentWrapperRef?.nativeElement.focus();\n }\n }\n\n public set isPartiallySelected(value: boolean) {\n if (value !== this.#_isPartiallySelected) {\n this.#_isPartiallySelected = value;\n this.#changeDetectorRef.markForCheck();\n }\n }\n\n public get isPartiallySelected(): boolean {\n return this.#_isPartiallySelected;\n }\n\n public set isSelected(value: boolean) {\n if (value !== this.#_isSelected) {\n this.#_isSelected = value;\n this.#changeDetectorRef.markForCheck();\n }\n }\n\n public get isSelected(): boolean {\n return this.#_isSelected;\n }\n\n public set tabIndex(value: number) {\n this.#_tabIndex = value;\n }\n\n public get tabIndex(): number {\n return this.#_tabIndex;\n }\n\n @ViewChild('nodeContentWrapper', { read: ElementRef })\n public nodeContentWrapperRef: ElementRef | undefined;\n\n protected set nodeName(value: string) {\n this.#_nodeName = value;\n this.#contentInfoProvider.patchInfo({\n descriptor: { type: 'text', value },\n });\n }\n\n protected get nodeName(): string {\n return this.#_nodeName;\n }\n\n #focusableChildren: HTMLElement[] = [];\n\n #mouseDown = false;\n\n #_childFocusIndex: number | undefined;\n\n #_isPartiallySelected = false;\n\n #_isSelected = false;\n\n #_tabIndex = -1;\n\n #_nodeName = '';\n\n #adapterService: SkyAngularTreeAdapterService;\n #changeDetectorRef: ChangeDetectorRef;\n #contentInfoProvider = inject(SkyContentInfoProvider);\n #skyAngularTreeWrapper: SkyAngularTreeWrapperComponent | undefined;\n\n constructor(\n changeDetectorRef: ChangeDetectorRef,\n adapterService: SkyAngularTreeAdapterService,\n @Optional() skyAngularTreeWrapper?: SkyAngularTreeWrapperComponent\n ) {\n this.#changeDetectorRef = changeDetectorRef;\n this.#adapterService = adapterService;\n this.#skyAngularTreeWrapper = skyAngularTreeWrapper;\n }\n\n public ngOnInit(): void {\n if (!this.#skyAngularTreeWrapper) {\n console.error(\n `<sky-angular-tree-node-wrapper> must be wrapped inside a <sky-angular-tree-wrapper> component.`\n );\n }\n\n if (this.node) {\n this.nodeName = this.node.data.name;\n // Because we're binding the checkbox to node's children properties, we need to manually control change detection.\n // Here, we listen to the tree's state and force change detection in the setters if the value has changed.\n this.node.treeModel.subscribeToState((state: ITreeState) => {\n if (this.node) {\n this.isSelected = this.node.isSelected;\n this.isPartiallySelected = this.node.isPartiallySelected;\n\n if (state.focusedNodeId) {\n this.focused = state.focusedNodeId === this.node.id;\n }\n }\n });\n\n this.node.treeModel.subscribe('updateData', () => {\n if (this.node) {\n this.nodeName = this.node.data.name;\n }\n });\n\n // Make the first root node tabbable.\n if (this.node.isRoot && this.node.index === 0) {\n this.tabIndex = 0;\n }\n }\n }\n\n public ngAfterViewInit(): void {\n // Wait 1s for the node to render, then reset all child tabIndexes to -1.\n // Units smaller than 1s may consistently fail if there are many nodes, or multiple trees are on the same screen.\n setTimeout(() => {\n if (this.nodeContentWrapperRef) {\n this.#focusableChildren = this.#adapterService.getFocusableChildren(\n this.nodeContentWrapperRef.nativeElement\n );\n this.#adapterService.setTabIndexOfFocusableEls(\n this.nodeContentWrapperRef.nativeElement,\n -1\n );\n }\n }, 1000);\n }\n\n /**\n * If single-select, set aria-selected=true for the selected node and undefined for all the others.\n * For multiple-select, set aria-selected to either true or false.\n * If node cannot be selected, aria-selected should be undefined (e.g. parent nodes in leaf-select-only mode).\n * @internal\n */\n public ariaSelected(): boolean | undefined {\n if (!this.#skyAngularTreeWrapper) {\n return;\n }\n\n if (this.#skyAngularTreeWrapper.selectSingle) {\n return this.isSelected ? true : undefined;\n }\n\n if (!this.#isSelectable()) {\n return;\n }\n\n return !!this.isSelected;\n }\n\n public showCheckbox(): boolean {\n // Check for checkbox mode enabled, but also respect leaf-node and single-select settings.\n return (\n !!this.node &&\n this.node.options.useCheckbox &&\n this.#isSelectable() &&\n (!this.#skyAngularTreeWrapper ||\n !this.#skyAngularTreeWrapper.selectSingle)\n );\n }\n\n public showSelectedClass(): boolean {\n return this.#isSelectable() && this.isSelected && !this.isPartiallySelected;\n }\n\n public showActiveClass(): boolean {\n return (\n !!this.node &&\n this.node.isActive &&\n !this.node.treeModel.options.useCheckbox\n );\n }\n\n public showTogglePlaceholder(): boolean {\n return (\n !this.node?.hasChildren &&\n !this.#skyAngularTreeWrapper?.selectLeafNodesOnly\n );\n }\n\n public onFocus(): void {\n // <tree-node-content> has its own click handler, so we need to check if this focus event\n // is coming from the mouse click or the keyboard to prevent the logic from running twice.\n if (!this.#mouseDown) {\n this.node?.treeModel.setFocus(true);\n this.node?.focus();\n this.childFocusIndex = undefined;\n }\n }\n\n public onMouseDown(): void {\n this.#mouseDown = true;\n }\n\n public onMouseUp(): void {\n this.#mouseDown = false;\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (document.activeElement === event.target) {\n const key = event.key.toLowerCase();\n switch (key) {\n case 'up':\n case 'arrowup':\n // Focus on previous node.\n this.node?.treeModel.focusPreviousNode();\n break;\n\n case 'down':\n case 'arrowdown':\n // Focus on next node.\n this.node?.treeModel.focusNextNode();\n break;\n\n case 'left':\n case 'arrowleft':\n // Cycle backwards through interactive child elements\n // If user reaches the beginning, activate drill up.\n /* istanbul ignore else */\n if (this.childFocusIndex !== undefined) {\n if (this.childFocusIndex === 0) {\n this.childFocusIndex = undefined;\n } else {\n this.childFocusIndex--;\n }\n } else {\n this.node?.setIsExpanded(false);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'right':\n case 'arrowright':\n // Cycle forward through interactive child elements.\n // If user reaches the end, activate drill down.\n /* istanbul ignore else */\n if (\n this.#focusableChildren.length <= 0 ||\n this.childFocusIndex === this.#focusableChildren.length - 1\n ) {\n this.node?.setIsExpanded(true);\n } else {\n if (this.childFocusIndex === undefined) {\n this.childFocusIndex = 0;\n } else {\n this.childFocusIndex++;\n }\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n }\n\n #isSelectable(): boolean {\n if (this.#skyAngularTreeWrapper) {\n return (\n !!this.node &&\n (this.node.isLeaf ||\n !this.node.hasChildren ||\n !this.#skyAngularTreeWrapper.selectLeafNodesOnly)\n );\n } else {\n return false;\n }\n }\n}\n","<div\n *ngIf=\"node && index !== undefined\"\n [class]=\"node.getClass()\"\n [class.tree-node]=\"true\"\n [class.tree-node-active]=\"node.isActive\"\n [class.tree-node-collapsed]=\"node.isCollapsed && node.hasChildren\"\n [class.tree-node-expanded]=\"node.isExpanded && node.hasChildren\"\n [class.tree-node-focused]=\"node.isFocused\"\n [class.tree-node-leaf]=\"node.isLeaf\"\n>\n <tree-node-drop-slot\n *ngIf=\"index === 0\"\n [dropIndex]=\"node.index\"\n [node]=\"node.parent\"\n >\n </tree-node-drop-slot>\n\n <!-- #region <tree-node-wrapper> custom template --->\n <div\n class=\"node-wrapper\"\n role=\"treeitem\"\n [allowDragoverStyling]=\"node.allowDragoverStyling()\"\n [attr.aria-current]=\"node.isActive\"\n [attr.aria-expanded]=\"node.children?.length ? node.isExpanded : null\"\n [attr.aria-selected]=\"ariaSelected()\"\n [attr.data-node-id]=\"node.id\"\n [attr.tabindex]=\"tabIndex\"\n [class.sky-angular-tree-node-active]=\"showActiveClass()\"\n [class.sky-angular-tree-node-selected]=\"showSelectedClass()\"\n [style.padding-left]=\"node.getNodePadding()\"\n [treeAllowDrop]=\"node.allowDrop\"\n [treeDrag]=\"node\"\n [treeDragEnabled]=\"node.allowDrag()\"\n (contextmenu)=\"node.mouseAction('contextMenu', $event)\"\n (dblclick)=\"node.mouseAction('dblClick', $event)\"\n (focus)=\"onFocus()\"\n (mousedown)=\"onMouseDown()\"\n (mouseup)=\"onMouseUp()\"\n (keydown)=\"onKeyDown($event)\"\n (treeDrop)=\"node.onDrop($event)\"\n (treeDropDragEnter)=\"node.mouseAction('dragEnter', $event)\"\n (treeDropDragLeave)=\"node.mouseAction('dragLeave', $event)\"\n (treeDropDragOver)=\"node.mouseAction('dragOver', $event)\"\n #nodeContentWrapper\n >\n <!-- #region <tree-node-expander> custom template --->\n <div class=\"sky-toggle-children-wrapper\">\n <button\n *ngIf=\"node.hasChildren\"\n class=\"sky-btn sky-btn-link sky-toggle-children\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"nodeName\"\n [class.toggle-children-wrapper-expanded]=\"node.isExpanded\"\n [class.toggle-children-wrapper-collapsed]=\"node.isCollapsed\"\n (click)=\"node.mouseAction('expanderClick', $event)\"\n >\n <sky-icon\n [icon]=\"node.isExpanded ? 'chevron-down' : 'chevron-right'\"\n size=\"sm\"\n />\n </button>\n <span *ngIf=\"showTogglePlaceholder()\" class=\"toggle-children-placeholder\">\n </span>\n </div>\n <!-- #endregion <tree-node-expander> --->\n\n <!-- Note: we've made changes to the click event, tabindex, and classes when compared to the original template. -->\n <!-- https://github.com/500tech/angular-tree-component/blob/master/lib/components/tree-node-wrapper.component.ts -->\n <div class=\"node-content-wrapper\">\n <sky-checkbox\n *ngIf=\"showCheckbox()\"\n [checked]=\"isSelected\"\n [id]=\"node.data.id\"\n [label]=\"nodeName\"\n [indeterminate]=\"isPartiallySelected\"\n (change)=\"node.mouseAction('checkboxClick', $event)\"\n >\n </sky-checkbox>\n\n <sky-angular-tree-context-menu>\n <ng-content select=\"sky-dropdown\" />\n </sky-angular-tree-context-menu>\n\n <tree-node-content\n [index]=\"index\"\n [node]=\"node\"\n [template]=\"templates?.treeNodeTemplate\"\n (click)=\"node.mouseAction('click', $event)\"\n >\n </tree-node-content\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\"></ng-content\n ></span>\n </div>\n </div>\n\n <ng-container\n [ngTemplateOutlet]=\"templates?.treeNodeWrapperTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: node,\n node: node,\n index: index,\n templates: templates\n }\"\n >\n </ng-container>\n <!-- #endregion <tree-node-wrapper> -->\n\n <tree-node-children role=\"group\" [node]=\"node\" [templates]=\"templates\">\n </tree-node-children>\n\n <tree-node-drop-slot [dropIndex]=\"node.index + 1\" [node]=\"node.parent\">\n </tree-node-drop-slot>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TreeModule } from '@blackbaud/angular-tree-component';\nimport { SkyCoreAdapterService } from '@skyux/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyToolbarModule } from '@skyux/layout';\n\nimport { SkyAngularTreeComponentResourcesModule } from '../shared/sky-angular-tree-component-resources.module';\n\nimport { SkyAngularTreeContextMenuComponent } from './angular-tree-context-menu.component';\nimport { SkyAngularTreeNodeComponent } from './angular-tree-node.component';\nimport { SkyTreeViewToolbarComponent } from './angular-tree-toolbar.component';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\n\n@NgModule({\n declarations: [\n SkyAngularTreeContextMenuComponent,\n SkyAngularTreeNodeComponent,\n SkyAngularTreeWrapperComponent,\n SkyTreeViewToolbarComponent,\n ],\n imports: [\n CommonModule,\n SkyAngularTreeComponentResourcesModule,\n SkyCheckboxModule,\n SkyIconModule,\n SkyToolbarModule,\n TreeModule,\n ],\n providers: [SkyCoreAdapterService],\n exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent],\n})\nexport class SkyAngularTreeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.SkyTreeViewToolbarComponent","i1.SkyAngularTreeAdapterService","i2.SkyAngularTreeWrapperComponent","i3","i4","i5","i7.SkyAngularTreeContextMenuComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/angular-tree-component",
3
- "version": "9.5.1",
3
+ "version": "9.6.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -33,11 +33,11 @@
33
33
  "@angular/common": "^16.2.5",
34
34
  "@angular/core": "^16.2.5",
35
35
  "@blackbaud/angular-tree-component": "^1.0.0",
36
- "@skyux/core": "9.5.1",
37
- "@skyux/forms": "9.5.1",
38
- "@skyux/i18n": "9.5.1",
39
- "@skyux/indicators": "9.5.1",
40
- "@skyux/layout": "9.5.1"
36
+ "@skyux/core": "9.6.0",
37
+ "@skyux/forms": "9.6.0",
38
+ "@skyux/i18n": "9.6.0",
39
+ "@skyux/indicators": "9.6.0",
40
+ "@skyux/layout": "9.6.0"
41
41
  },
42
42
  "dependencies": {
43
43
  "tslib": "^2.6.2"