@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.
package/documentation.json
CHANGED
|
@@ -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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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":
|
|
731
|
+
"line": 140,
|
|
732
732
|
"character": 2,
|
|
733
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
746
|
+
"line": 140,
|
|
747
747
|
"character": 2,
|
|
748
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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":
|
|
1378
|
+
"line": 185,
|
|
1379
1379
|
"character": 9,
|
|
1380
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1393
|
+
"line": 185,
|
|
1394
1394
|
"character": 2,
|
|
1395
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1427
|
+
"line": 150,
|
|
1428
1428
|
"character": 9,
|
|
1429
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1442
|
+
"line": 150,
|
|
1443
1443
|
"character": 2,
|
|
1444
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1476
|
+
"line": 253,
|
|
1477
1477
|
"character": 9,
|
|
1478
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1491
|
+
"line": 253,
|
|
1492
1492
|
"character": 2,
|
|
1493
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1515
|
+
"line": 271,
|
|
1516
1516
|
"character": 9,
|
|
1517
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1530
|
+
"line": 271,
|
|
1531
1531
|
"character": 2,
|
|
1532
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1572
|
+
"line": 263,
|
|
1573
1573
|
"character": 9,
|
|
1574
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1587
|
+
"line": 263,
|
|
1588
1588
|
"character": 2,
|
|
1589
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1611
|
+
"line": 267,
|
|
1612
1612
|
"character": 9,
|
|
1613
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1626
|
+
"line": 267,
|
|
1627
1627
|
"character": 2,
|
|
1628
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1650
|
+
"line": 238,
|
|
1651
1651
|
"character": 9,
|
|
1652
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1665
|
+
"line": 238,
|
|
1666
1666
|
"character": 2,
|
|
1667
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1689
|
+
"line": 223,
|
|
1690
1690
|
"character": 9,
|
|
1691
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1704
|
+
"line": 223,
|
|
1705
1705
|
"character": 2,
|
|
1706
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1728
|
+
"line": 234,
|
|
1729
1729
|
"character": 9,
|
|
1730
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1743
|
+
"line": 234,
|
|
1744
1744
|
"character": 2,
|
|
1745
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1767
|
+
"line": 246,
|
|
1768
1768
|
"character": 9,
|
|
1769
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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":
|
|
1782
|
+
"line": 246,
|
|
1783
1783
|
"character": 2,
|
|
1784
|
-
"url": "https://github.com/blackbaud/skyux/blob/
|
|
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/
|
|
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({
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7OztBQUc5RTs7Ozs7Ozs7O0dBU0c7QUFNSCxNQUFNLE9BQU8sMkJBQTJCO0lBc0J0QyxJQUFXLGVBQWUsQ0FBQyxLQUF5QjtRQUNsRCxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQzdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxJQUFJLENBQUMscUJBQXFCLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ25EO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRCxJQUFXLG1CQUFtQixDQUFDLEtBQWM7UUFDM0MsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ3hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7WUFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLFVBQVUsQ0FBQyxLQUFjO1FBQ2xDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsUUFBUSxDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUtELElBQWMsUUFBUSxDQUFDLEtBQWE7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFjLFFBQVE7UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0IsR0FBa0IsRUFBRSxDQUFDO0lBRXZDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFbkIsaUJBQWlCLENBQXFCO0lBRXRDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUU5QixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRXJCLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVoQixVQUFVLEdBQUcsRUFBRSxDQUFDO0lBRWhCLGVBQWUsQ0FBK0I7SUFDOUMsa0JBQWtCLENBQW9CO0lBQ3RDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3RELHNCQUFzQixDQUE2QztJQUVuRSxZQUNFLGlCQUFvQyxFQUNwQyxjQUE0QyxFQUNoQyxxQkFBc0Q7UUFFbEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDO1FBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztJQUN0RCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FDWCxnR0FBZ0csQ0FDakcsQ0FBQztTQUNIO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDcEMsa0hBQWtIO1lBQ2xILDBHQUEwRztZQUMxRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtnQkFDekQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7b0JBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO29CQUV6RCxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUU7d0JBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztxQkFDckQ7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO2dCQUMvQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ3JDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxxQ0FBcUM7WUFDckMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO2FBQ25CO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sZUFBZTtRQUNwQix5RUFBeUU7UUFDekUsaUhBQWlIO1FBQ2pILFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQ2pFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQ3pDLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyx5QkFBeUIsQ0FDNUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsRUFDeEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksWUFBWTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQ2hDLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1NBQzNDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN6QixPQUFPO1NBQ1I7UUFFRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFTSxZQUFZO1FBQ2pCLDBGQUEwRjtRQUMxRixPQUFPLENBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVztZQUM3QixJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCO2dCQUMzQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUM5RSxDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLENBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ2xCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FDekMsQ0FBQztJQUNKLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXO1lBQ3ZCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLG1CQUFtQixDQUNsRCxDQUFDO0lBQ0osQ0FBQztJQUVNLE9BQU87UUFDWix5RkFBeUY7UUFDekYsMEZBQTBGO1FBQzFGLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQW9CO1FBQ25DLDBCQUEwQjtRQUMxQixJQUFJLFFBQVEsQ0FBQyxhQUFhLEtBQUssS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUMzQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLFFBQVEsR0FBRyxFQUFFO2dCQUNYLEtBQUssSUFBSSxDQUFDO2dCQUNWLEtBQUssU0FBUztvQkFDWiwwQkFBMEI7b0JBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQ3pDLE1BQU07Z0JBRVIsS0FBSyxNQUFNLENBQUM7Z0JBQ1osS0FBSyxXQUFXO29CQUNkLHNCQUFzQjtvQkFDdEIsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3JDLE1BQU07Z0JBRVIsS0FBSyxNQUFNLENBQUM7Z0JBQ1osS0FBSyxXQUFXO29CQUNkLHFEQUFxRDtvQkFDckQsb0RBQW9EO29CQUNwRCwwQkFBMEI7b0JBQzFCLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUU7d0JBQ3RDLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxDQUFDLEVBQUU7NEJBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO3lCQUNsQzs2QkFBTTs0QkFDTCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7eUJBQ3hCO3FCQUNGO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNqQztvQkFDRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdkIsTUFBTTtnQkFFUixLQUFLLE9BQU8sQ0FBQztnQkFDYixLQUFLLFlBQVk7b0JBQ2Ysb0RBQW9EO29CQUNwRCxnREFBZ0Q7b0JBQ2hELDBCQUEwQjtvQkFDMUIsSUFDRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxJQUFJLENBQUM7d0JBQ25DLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQzNEO3dCQUNBLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNoQzt5QkFBTTt3QkFDTCxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssU0FBUyxFQUFFOzRCQUN0QyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQzt5QkFDMUI7NkJBQU07NEJBQ0wsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO3lCQUN4QjtxQkFDRjtvQkFDRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdkIsTUFBTTtnQkFFUjtvQkFDRSxNQUFNO2FBQ1Q7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDL0IsT0FBTyxDQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSTtnQkFDWCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtvQkFDZixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztvQkFDdEIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsQ0FDcEQsQ0FBQztTQUNIO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQzs4R0FyVFUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsa0hBRjNCLENBQUMsNEJBQTRCLEVBQUUsc0JBQXNCLENBQUMsa0lBNEV4QixVQUFVLDZCQzFHckQsc2xJQW1IQTs7MkZEbkZhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx1QkFBdUIsYUFFdEIsQ0FBQyw0QkFBNEIsRUFBRSxzQkFBc0IsQ0FBQzs7MEJBOEc5RCxRQUFROzRDQXRHSixLQUFLO3NCQURYLEtBQUs7Z0JBU0MsSUFBSTtzQkFEVixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkF3REMscUJBQXFCO3NCQUQzQixTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVHJlZVN0YXRlLCBUcmVlTm9kZSB9IGZyb20gJ0BibGFja2JhdWQvYW5ndWxhci10cmVlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lDb250ZW50SW5mb1Byb3ZpZGVyIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lBbmd1bGFyVHJlZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9hbmd1bGFyLXRyZWUtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vYW5ndWxhci10cmVlLXdyYXBwZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBSZXBsYWNlcyB0aGUgZGVmYXVsdCB0cmVlIG5vZGUgdGVtcGxhdGUgd2l0aCBhIFNLWSBVWCBub2RlIGFzIHBhcnQgb2YgdGhlIGBTa3lBbmd1bGFyVHJlZU1vZHVsZWAgdGhhdFxuICogcHJvdmlkZXMgU0tZIFVYIGNvbXBvbmVudHMgYW5kIHN0eWxlcyB0byBjb21wbGVtZW50IHRoZSBgYW5ndWxhci10cmVlLWNvbXBvbmVudGAgbGlicmFyeSBhbmQgYXBwbHkgU0tZIFVYXG4gKiB0aGVtZXMgYW5kIGZ1bmN0aW9uYWxpdHkgdG8gaGllcmFyY2hpY2FsIGxpc3Qgdmlld3MuIFlvdSBtdXN0IHdyYXAgdGhpcyBjb21wb25lbnQgaW4gYW4gYG5nLXRlbXBsYXRlYFxuICogdGFnIHdpdGggdGhlIHRlbXBsYXRlIHJlZmVyZW5jZSB2YXJpYWJsZSBgI3RyZWVOb2RlRnVsbFRlbXBsYXRlYC4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRyZWUgbm9kZSB0ZW1wbGF0ZXMsXG4gKiBzZWUgdGhlIFtBbmd1bGFyIHRyZWUgY29tcG9uZW50IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcy90ZW1wbGF0ZXMpLlxuICogVG8gZGlzcGxheSBjb250ZXh0IG1lbnVzIHdpdGggYWN0aW9ucyBmb3IgaW5kaXZpZHVhbCBpdGVtcyBpbiBoaWVyYXJjaGljYWwgbGlzdHMsIHBsYWNlXG4gKiBbZHJvcGRvd25zXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4LXBvcG92ZXJzL2RvY3MvZHJvcGRvd24/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({
|
|
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.
|
|
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.
|
|
37
|
-
"@skyux/forms": "9.
|
|
38
|
-
"@skyux/i18n": "9.
|
|
39
|
-
"@skyux/indicators": "9.
|
|
40
|
-
"@skyux/layout": "9.
|
|
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"
|