@skyux/angular-tree-component 13.11.5 → 14.0.0-alpha.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.
|
@@ -43,11 +43,11 @@ SkyLibResourcesService.addResources(RESOURCES);
|
|
|
43
43
|
* Import into any component library module that needs to use resource strings.
|
|
44
44
|
*/
|
|
45
45
|
class SkyAngularTreeComponentResourcesModule {
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
47
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
48
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
47
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, exports: [SkyI18nModule] }); }
|
|
48
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, imports: [SkyI18nModule] }); }
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, decorators: [{
|
|
51
51
|
type: NgModule,
|
|
52
52
|
args: [{
|
|
53
53
|
exports: [SkyI18nModule],
|
|
@@ -58,10 +58,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
58
58
|
* @internal
|
|
59
59
|
*/
|
|
60
60
|
class SkyAngularTreeContextMenuComponent {
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SkyAngularTreeContextMenuComponent, isStandalone: true, selector: "sky-angular-tree-context-menu", ngImport: i0, template: "<div class=\"sky-angular-tree-context-menu\">\n <ng-content />\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
63
63
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeContextMenuComponent, decorators: [{
|
|
65
65
|
type: Component,
|
|
66
66
|
args: [{ selector: 'sky-angular-tree-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-angular-tree-context-menu\">\n <ng-content />\n</div>\n" }]
|
|
67
67
|
}] });
|
|
@@ -81,10 +81,10 @@ class SkyAngularTreeAdapterService {
|
|
|
81
81
|
focusableEls[index].tabIndex = tabIndex;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
85
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
84
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
85
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeAdapterService }); }
|
|
86
86
|
}
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeAdapterService, decorators: [{
|
|
88
88
|
type: Injectable
|
|
89
89
|
}] });
|
|
90
90
|
|
|
@@ -110,10 +110,10 @@ class SkyAngularTreeToolbarComponent {
|
|
|
110
110
|
onSelectAllClick() {
|
|
111
111
|
this.selectAllClick.emit();
|
|
112
112
|
}
|
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
114
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SkyAngularTreeToolbarComponent, isStandalone: true, selector: "sky-angular-tree-toolbar", inputs: { showSelectButtons: "showSelectButtons" }, outputs: { clearAllClick: "clearAllClick", collapseAllClick: "collapseAllClick", expandAllClick: "expandAllClick", selectAllClick: "selectAllClick" }, ngImport: i0, template: "<div class=\"sky-angular-tree-toolbar\" role=\"toolbar\">\n <sky-toolbar>\n @if (showSelectButtons) {\n <sky-toolbar-item>\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>\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 }\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 type=\"button\"\n [title]=\"'skyux_angular_tree_expand_all' | skyLibResources\"\n (click)=\"onExpandAllClick()\"\n >\n <sky-icon iconName=\"chevron-double-down\" />\n </button>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-collapse-all-btn\"\n type=\"button\"\n [title]=\"'skyux_angular_tree_collapse_all' | skyLibResources\"\n (click)=\"onCollapseAllClick()\"\n >\n <sky-icon iconName=\"chevron-double-up\" />\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar>\n</div>\n", dependencies: [{ kind: "ngmodule", type: SkyI18nModule }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyToolbarModule }, { kind: "component", type: i2.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i2.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i2.λ40, selector: "sky-toolbar-view-actions" }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
115
115
|
}
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeToolbarComponent, decorators: [{
|
|
117
117
|
type: Component,
|
|
118
118
|
args: [{ selector: 'sky-angular-tree-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyI18nModule, SkyIconModule, SkyToolbarModule], template: "<div class=\"sky-angular-tree-toolbar\" role=\"toolbar\">\n <sky-toolbar>\n @if (showSelectButtons) {\n <sky-toolbar-item>\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>\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 }\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 type=\"button\"\n [title]=\"'skyux_angular_tree_expand_all' | skyLibResources\"\n (click)=\"onExpandAllClick()\"\n >\n <sky-icon iconName=\"chevron-double-down\" />\n </button>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-collapse-all-btn\"\n type=\"button\"\n [title]=\"'skyux_angular_tree_collapse_all' | skyLibResources\"\n (click)=\"onCollapseAllClick()\"\n >\n <sky-icon iconName=\"chevron-double-up\" />\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar>\n</div>\n" }]
|
|
119
119
|
}], propDecorators: { showSelectButtons: [{
|
|
@@ -294,10 +294,10 @@ class SkyAngularTreeWrapperComponent {
|
|
|
294
294
|
TREE_ACTIONS.TOGGLE_SELECTED(node.treeModel, node, event);
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
298
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
297
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
298
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SkyAngularTreeWrapperComponent, isStandalone: true, selector: "sky-angular-tree-wrapper", inputs: { readOnly: "readOnly", selectLeafNodesOnly: "selectLeafNodesOnly", selectSingle: "selectSingle", showToolbar: "showToolbar" }, queries: [{ propertyName: "treeComponent", first: true, predicate: TreeComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"sky-angular-tree-wrapper\"\n [class.sky-angular-tree-read-only]=\"readOnly\"\n>\n @if (showToolbar) {\n <sky-angular-tree-toolbar\n [showSelectButtons]=\"showSelectButtons()\"\n (clearAllClick)=\"onClearAllClick()\"\n (collapseAllClick)=\"onCollapseAllClick()\"\n (expandAllClick)=\"onExpandAllClick()\"\n (selectAllClick)=\"onSelectAllClick()\"\n />\n }\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", styles: [".sky-angular-tree-wrapper:not(.sky-theme-modern *){--sky-override-angular-tree-context-menu-margin: 0 10px 0 0;--sky-override-angular-tree-node-active-background-color: #eeeeef;--sky-override-angular-tree-node-border-left-active: 4px solid #00b4f1;--sky-override-angular-tree-node-border-left-selected: 4px solid transparent;--sky-override-angular-tree-node-drop-slot-dragging-background-color: #eeeeef;--sky-override-angular-tree-node-drop-slot-dragging-border: 1px solid #e2e3e4;--sky-override-angular-tree-node-padding-left-base: 0;--sky-override-angular-tree-node-selected-background-color: #f1eef6;--sky-override-angular-tree-node-wrapper-background-color: transparent;--sky-override-angular-tree-node-wrapper-background-color-active: transparent;--sky-override-angular-tree-node-wrapper-background-color-focus: transparent;--sky-override-angular-tree-node-wrapper-background-color-hover: transparent;--sky-override-angular-tree-node-wrapper-border-left: 4px solid transparent;--sky-override-angular-tree-node-wrapper-border-radius: 0;--sky-override-angular-tree-node-wrapper-padding: 4px 5px;--sky-override-tree-children-padding: 30px;--sky-override-angular-tree-node-wrapper-standard-box-shadow-active: none;--sky-override-angular-tree-node-wrapper-standard-box-shadow-base: none;--sky-override-angular-tree-node-wrapper-standard-box-shadow-focus: none;--sky-override-angular-tree-node-wrapper-standard-box-shadow-hover: none;--sky-override-angular-tree-node-wrapper-standard-outline-active: auto;--sky-override-angular-tree-node-wrapper-standard-outline-focus: auto;--sky-override-angular-tree-switch-control-margin: 0 8px 0 0;--sky-override-angular-tree-toggle-children-height: 20px;--sky-override-angular-tree-toggle-children-margin: 0 10px 0 0;--sky-override-angular-tree-toggle-children-padding: 0;--sky-override-angular-tree-toggle-children-placeholder-height: 19px;--sky-override-angular-tree-toggle-children-placeholder-margin: 0 10px 0 0;--sky-override-angular-tree-toggle-children-placeholder-width: 20px;--sky-override-angular-tree-toggle-children-width: 20px;--sky-override-angular-tree-toggle-color: var(--sky-text-color-deemphasized);--sky-override-angular-tree-wrapper-background-color: transparent}.sky-angular-tree-wrapper{background-color:var(--sky-override-angular-tree-wrapper-background-color, var(--sky-color-background-container-base))}.sky-angular-tree-wrapper ::ng-deep .angular-tree-component{cursor:initial;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sky-angular-tree-wrapper ::ng-deep .node-wrapper{display:flex;align-items:center;background-color:var(--sky-override-angular-tree-node-wrapper-background-color, var(--sky-color-background-nav-base));padding:var(--sky-override-angular-tree-node-wrapper-padding, calc(var(--sky-comp-tree-node-space-inset-top) - 1px) var(--sky-comp-tree-node-space-inset-right));padding-left:max(var(--sky-angular-tree-node-padding),var(--sky-override-angular-tree-node-padding-left-base, var(--sky-comp-tree-node-space-inset-left)));border-left:var(--sky-override-angular-tree-node-wrapper-border-left, var(--sky-border-width-selected-m) solid transparent);border-radius:var(--sky-override-angular-tree-node-wrapper-border-radius, var(--sky-border-radius-xs) var(--sky-border-radius-0) var(--sky-border-radius-0) var(--sky-border-radius-xs));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-base, inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-nav-base))}.sky-angular-tree-wrapper ::ng-deep .node-wrapper:focus-visible{background-color:var(--sky-override-angular-tree-node-wrapper-background-color-focus, var(--sky-color-background-nav-focus));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-focus, inset 0 0 0 var(--sky-border-width-action-focus) var(--sky-color-border-nav-focus));outline:var(--sky-override-angular-tree-node-wrapper-standard-outline-focus, none)}.sky-angular-tree-wrapper ::ng-deep .node-content-wrapper{display:flex;align-items:center;padding:0;cursor:pointer}.sky-angular-tree-wrapper ::ng-deep .tree-children{padding-left:var(--sky-override-tree-children-padding, var(--sky-comp-tree-child-space-inset-left));overflow:hidden}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children{color:var(--sky-override-angular-tree-toggle-color, var(--sky-color-text-deemphasized));margin:var(--sky-override-angular-tree-toggle-children-margin, 0 var(--sky-space-gap-action_group-s) 0 0);height:var(--sky-override-angular-tree-toggle-children-height, \"\");width:var(--sky-override-angular-tree-toggle-children-width, \"\");padding:var(--sky-override-angular-tree-toggle-children-padding, var(--sky-comp-button-borderless-space-inset-top) var(--sky-comp-button-borderless-space-inset-right) var(--sky-comp-button-borderless-space-inset-bottom) var(--sky-comp-button-borderless-space-inset-left));line-height:1}.sky-angular-tree-wrapper ::ng-deep .toggle-children-placeholder{display:inline-block;height:var(--sky-override-angular-tree-toggle-children-placeholder-height, calc(var(--sky-size-icon-s) + var(--sky-comp-button-borderless-space-inset-top) + var(--sky-comp-button-borderless-space-inset-bottom)));width:var(--sky-override-angular-tree-toggle-children-placeholder-width, calc(var(--sky-size-icon-s) + var(--sky-comp-button-borderless-space-inset-left) + var(--sky-comp-button-borderless-space-inset-right)));margin:var(--sky-override-angular-tree-toggle-children-placeholder-margin, 0 var(--sky-space-inline-s) 0 0)}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected{background:var(--sky-override-angular-tree-node-selected-background-color, var(--sky-color-background-selected-soft))}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected:not(.sky-angular-tree-node-has-checkbox){border-left:var(--sky-override-angular-tree-node-border-left-selected, var(--sky-border-width-selected-m) solid var(--sky-color-border-selected))}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-active{background:var(--sky-override-angular-tree-node-active-background-color, var(--sky-color-background-selected-soft));border-left:var(--sky-override-angular-tree-node-border-left-active, var(--sky-border-width-selected-m) solid var(--sky-color-border-selected))}.sky-angular-tree-wrapper ::ng-deep sky-checkbox{display:inline-flex}.sky-angular-tree-wrapper ::ng-deep .sky-switch-control{margin:var(--sky-override-angular-tree-switch-control-margin, 0 var(--sky-space-gap-action_group-s) 0 0)}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-context-menu{margin:var(--sky-override-angular-tree-context-menu-margin, 0 var(--sky-space-gap-action_group-s) 0 0)}.sky-angular-tree-wrapper ::ng-deep .node-drop-slot{display:block;height:2px}.sky-angular-tree-wrapper ::ng-deep .node-drop-slot.is-dragging-over{height:20px;background:var(--sky-override-angular-tree-node-drop-slot-dragging-background-color, var(--sky-color-background-action-soft));border:var(--sky-override-angular-tree-node-drop-slot-dragging-border, var(--sky-border-width-container-base) solid var(--sky-color-border-container-base))}.sky-angular-tree-wrapper.sky-angular-tree-read-only ::ng-deep .node-content-wrapper{cursor:initial}.sky-angular-tree-wrapper:not(.sky-angular-tree-read-only) ::ng-deep .node-wrapper:hover{background-color:var(--sky-override-angular-tree-node-wrapper-background-color-hover, var(--sky-color-background-nav-hover));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-hover, inset 0 0 0 var(--sky-border-width-action-hover) var(--sky-color-border-nav-hover))}.sky-angular-tree-wrapper:not(.sky-angular-tree-read-only) ::ng-deep .node-wrapper:active{background:var(--sky-override-angular-tree-node-wrapper-background-color-active, var(--sky-color-background-nav-active));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-active, inset 0 0 0 var(--sky-border-width-action-active) var(--sky-color-border-nav-active));outline:var(--sky-override-angular-tree-node-wrapper-standard-outline-active, none)}\n"], dependencies: [{ kind: "component", type: SkyAngularTreeToolbarComponent, selector: "sky-angular-tree-toolbar", inputs: ["showSelectButtons"], outputs: ["clearAllClick", "collapseAllClick", "expandAllClick", "selectAllClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
299
299
|
}
|
|
300
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
300
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeWrapperComponent, decorators: [{
|
|
301
301
|
type: Component,
|
|
302
302
|
args: [{ selector: 'sky-angular-tree-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyAngularTreeToolbarComponent], template: "<div\n class=\"sky-angular-tree-wrapper\"\n [class.sky-angular-tree-read-only]=\"readOnly\"\n>\n @if (showToolbar) {\n <sky-angular-tree-toolbar\n [showSelectButtons]=\"showSelectButtons()\"\n (clearAllClick)=\"onClearAllClick()\"\n (collapseAllClick)=\"onCollapseAllClick()\"\n (expandAllClick)=\"onExpandAllClick()\"\n (selectAllClick)=\"onSelectAllClick()\"\n />\n }\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", styles: [".sky-angular-tree-wrapper:not(.sky-theme-modern *){--sky-override-angular-tree-context-menu-margin: 0 10px 0 0;--sky-override-angular-tree-node-active-background-color: #eeeeef;--sky-override-angular-tree-node-border-left-active: 4px solid #00b4f1;--sky-override-angular-tree-node-border-left-selected: 4px solid transparent;--sky-override-angular-tree-node-drop-slot-dragging-background-color: #eeeeef;--sky-override-angular-tree-node-drop-slot-dragging-border: 1px solid #e2e3e4;--sky-override-angular-tree-node-padding-left-base: 0;--sky-override-angular-tree-node-selected-background-color: #f1eef6;--sky-override-angular-tree-node-wrapper-background-color: transparent;--sky-override-angular-tree-node-wrapper-background-color-active: transparent;--sky-override-angular-tree-node-wrapper-background-color-focus: transparent;--sky-override-angular-tree-node-wrapper-background-color-hover: transparent;--sky-override-angular-tree-node-wrapper-border-left: 4px solid transparent;--sky-override-angular-tree-node-wrapper-border-radius: 0;--sky-override-angular-tree-node-wrapper-padding: 4px 5px;--sky-override-tree-children-padding: 30px;--sky-override-angular-tree-node-wrapper-standard-box-shadow-active: none;--sky-override-angular-tree-node-wrapper-standard-box-shadow-base: none;--sky-override-angular-tree-node-wrapper-standard-box-shadow-focus: none;--sky-override-angular-tree-node-wrapper-standard-box-shadow-hover: none;--sky-override-angular-tree-node-wrapper-standard-outline-active: auto;--sky-override-angular-tree-node-wrapper-standard-outline-focus: auto;--sky-override-angular-tree-switch-control-margin: 0 8px 0 0;--sky-override-angular-tree-toggle-children-height: 20px;--sky-override-angular-tree-toggle-children-margin: 0 10px 0 0;--sky-override-angular-tree-toggle-children-padding: 0;--sky-override-angular-tree-toggle-children-placeholder-height: 19px;--sky-override-angular-tree-toggle-children-placeholder-margin: 0 10px 0 0;--sky-override-angular-tree-toggle-children-placeholder-width: 20px;--sky-override-angular-tree-toggle-children-width: 20px;--sky-override-angular-tree-toggle-color: var(--sky-text-color-deemphasized);--sky-override-angular-tree-wrapper-background-color: transparent}.sky-angular-tree-wrapper{background-color:var(--sky-override-angular-tree-wrapper-background-color, var(--sky-color-background-container-base))}.sky-angular-tree-wrapper ::ng-deep .angular-tree-component{cursor:initial;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sky-angular-tree-wrapper ::ng-deep .node-wrapper{display:flex;align-items:center;background-color:var(--sky-override-angular-tree-node-wrapper-background-color, var(--sky-color-background-nav-base));padding:var(--sky-override-angular-tree-node-wrapper-padding, calc(var(--sky-comp-tree-node-space-inset-top) - 1px) var(--sky-comp-tree-node-space-inset-right));padding-left:max(var(--sky-angular-tree-node-padding),var(--sky-override-angular-tree-node-padding-left-base, var(--sky-comp-tree-node-space-inset-left)));border-left:var(--sky-override-angular-tree-node-wrapper-border-left, var(--sky-border-width-selected-m) solid transparent);border-radius:var(--sky-override-angular-tree-node-wrapper-border-radius, var(--sky-border-radius-xs) var(--sky-border-radius-0) var(--sky-border-radius-0) var(--sky-border-radius-xs));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-base, inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-nav-base))}.sky-angular-tree-wrapper ::ng-deep .node-wrapper:focus-visible{background-color:var(--sky-override-angular-tree-node-wrapper-background-color-focus, var(--sky-color-background-nav-focus));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-focus, inset 0 0 0 var(--sky-border-width-action-focus) var(--sky-color-border-nav-focus));outline:var(--sky-override-angular-tree-node-wrapper-standard-outline-focus, none)}.sky-angular-tree-wrapper ::ng-deep .node-content-wrapper{display:flex;align-items:center;padding:0;cursor:pointer}.sky-angular-tree-wrapper ::ng-deep .tree-children{padding-left:var(--sky-override-tree-children-padding, var(--sky-comp-tree-child-space-inset-left));overflow:hidden}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children{color:var(--sky-override-angular-tree-toggle-color, var(--sky-color-text-deemphasized));margin:var(--sky-override-angular-tree-toggle-children-margin, 0 var(--sky-space-gap-action_group-s) 0 0);height:var(--sky-override-angular-tree-toggle-children-height, \"\");width:var(--sky-override-angular-tree-toggle-children-width, \"\");padding:var(--sky-override-angular-tree-toggle-children-padding, var(--sky-comp-button-borderless-space-inset-top) var(--sky-comp-button-borderless-space-inset-right) var(--sky-comp-button-borderless-space-inset-bottom) var(--sky-comp-button-borderless-space-inset-left));line-height:1}.sky-angular-tree-wrapper ::ng-deep .toggle-children-placeholder{display:inline-block;height:var(--sky-override-angular-tree-toggle-children-placeholder-height, calc(var(--sky-size-icon-s) + var(--sky-comp-button-borderless-space-inset-top) + var(--sky-comp-button-borderless-space-inset-bottom)));width:var(--sky-override-angular-tree-toggle-children-placeholder-width, calc(var(--sky-size-icon-s) + var(--sky-comp-button-borderless-space-inset-left) + var(--sky-comp-button-borderless-space-inset-right)));margin:var(--sky-override-angular-tree-toggle-children-placeholder-margin, 0 var(--sky-space-inline-s) 0 0)}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected{background:var(--sky-override-angular-tree-node-selected-background-color, var(--sky-color-background-selected-soft))}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected:not(.sky-angular-tree-node-has-checkbox){border-left:var(--sky-override-angular-tree-node-border-left-selected, var(--sky-border-width-selected-m) solid var(--sky-color-border-selected))}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-active{background:var(--sky-override-angular-tree-node-active-background-color, var(--sky-color-background-selected-soft));border-left:var(--sky-override-angular-tree-node-border-left-active, var(--sky-border-width-selected-m) solid var(--sky-color-border-selected))}.sky-angular-tree-wrapper ::ng-deep sky-checkbox{display:inline-flex}.sky-angular-tree-wrapper ::ng-deep .sky-switch-control{margin:var(--sky-override-angular-tree-switch-control-margin, 0 var(--sky-space-gap-action_group-s) 0 0)}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-context-menu{margin:var(--sky-override-angular-tree-context-menu-margin, 0 var(--sky-space-gap-action_group-s) 0 0)}.sky-angular-tree-wrapper ::ng-deep .node-drop-slot{display:block;height:2px}.sky-angular-tree-wrapper ::ng-deep .node-drop-slot.is-dragging-over{height:20px;background:var(--sky-override-angular-tree-node-drop-slot-dragging-background-color, var(--sky-color-background-action-soft));border:var(--sky-override-angular-tree-node-drop-slot-dragging-border, var(--sky-border-width-container-base) solid var(--sky-color-border-container-base))}.sky-angular-tree-wrapper.sky-angular-tree-read-only ::ng-deep .node-content-wrapper{cursor:initial}.sky-angular-tree-wrapper:not(.sky-angular-tree-read-only) ::ng-deep .node-wrapper:hover{background-color:var(--sky-override-angular-tree-node-wrapper-background-color-hover, var(--sky-color-background-nav-hover));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-hover, inset 0 0 0 var(--sky-border-width-action-hover) var(--sky-color-border-nav-hover))}.sky-angular-tree-wrapper:not(.sky-angular-tree-read-only) ::ng-deep .node-wrapper:active{background:var(--sky-override-angular-tree-node-wrapper-background-color-active, var(--sky-color-background-nav-active));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-active, inset 0 0 0 var(--sky-border-width-action-active) var(--sky-color-border-nav-active));outline:var(--sky-override-angular-tree-node-wrapper-standard-outline-active, none)}\n"] }]
|
|
303
303
|
}], propDecorators: { readOnly: [{
|
|
@@ -551,10 +551,10 @@ class SkyAngularTreeNodeComponent {
|
|
|
551
551
|
return false;
|
|
552
552
|
}
|
|
553
553
|
}
|
|
554
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
555
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
554
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
555
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SkyAngularTreeNodeComponent, isStandalone: true, selector: "sky-angular-tree-node", inputs: { index: "index", node: "node", templates: "templates", helpKey: "helpKey", helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle" }, providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider], viewQueries: [{ propertyName: "nodeContentWrapperRef", first: true, predicate: ["nodeContentWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if (node && index !== undefined) {\n <div\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 @if (index === 0) {\n <tree-node-drop-slot [dropIndex]=\"node.index\" [node]=\"node.parent\" />\n }\n\n <!-- #region <tree-node-wrapper> custom template --->\n <div\n #nodeContentWrapper\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-has-checkbox]=\"showCheckbox()\"\n [class.sky-angular-tree-node-selected]=\"showSelectedClass()\"\n [style.--sky-angular-tree-node-padding]=\"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 >\n <!-- #region <tree-node-expander> custom template --->\n <div class=\"sky-toggle-children-wrapper\">\n @if (node.hasChildren) {\n <button\n class=\"sky-btn sky-btn-icon-borderless 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 [iconName]=\"node.isExpanded ? 'chevron-down' : 'chevron-right'\"\n />\n </button>\n }\n @if (showTogglePlaceholder()) {\n <span class=\"toggle-children-placeholder\"> </span>\n }\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 @if (showCheckbox()) {\n <sky-checkbox\n [checked]=\"isSelected\"\n [id]=\"node.data.id\"\n [label]=\"nodeName\"\n [indeterminate]=\"isPartiallySelected\"\n (change)=\"node.mouseAction('checkboxClick', $event)\"\n />\n }\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 /><span class=\"sky-control-help-container\">\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"nodeName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n } @else {\n <ng-content select=\".sky-control-help\" />\n }\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 <!-- #endregion <tree-node-wrapper> -->\n\n <tree-node-children role=\"group\" [node]=\"node\" [templates]=\"templates\" />\n\n <tree-node-drop-slot [dropIndex]=\"node.index + 1\" [node]=\"node.parent\" />\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: TreeModule }, { kind: "component", type: i1$1.TreeNodeContent, selector: "tree-node-content", inputs: ["node", "index", "template"] }, { kind: "directive", type: i1$1.TreeDropDirective, selector: "[treeDrop]", inputs: ["allowDragoverStyling", "treeAllowDrop"], outputs: ["treeDrop", "treeDropDragOver", "treeDropDragLeave", "treeDropDragEnter"] }, { kind: "directive", type: i1$1.TreeDragDirective, selector: "[treeDrag]", inputs: ["treeDrag", "treeDragEnabled"] }, { kind: "component", type: i1$1.TreeNodeChildrenComponent, selector: "tree-node-children", inputs: ["node", "templates"] }, { kind: "component", type: i1$1.TreeNodeDropSlot, selector: "TreeNodeDropSlot, tree-node-drop-slot", inputs: ["node", "dropIndex"] }, { kind: "component", type: SkyAngularTreeContextMenuComponent, selector: "sky-angular-tree-context-menu" }, { kind: "ngmodule", type: SkyCheckboxModule }, { kind: "component", type: i2$1.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "helpPopoverContent", "helpPopoverTitle", "iconName", "checkboxType", "checked", "indeterminate", "required", "labelText", "labelHidden", "hintText", "stacked", "helpKey"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i3$1.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
556
556
|
}
|
|
557
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
557
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeNodeComponent, decorators: [{
|
|
558
558
|
type: Component,
|
|
559
559
|
args: [{ selector: 'sky-angular-tree-node', providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider], imports: [
|
|
560
560
|
TreeModule,
|
|
@@ -582,18 +582,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
582
582
|
}] } });
|
|
583
583
|
|
|
584
584
|
class SkyAngularTreeModule {
|
|
585
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
586
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
585
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
586
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeModule, imports: [SkyAngularTreeComponentResourcesModule,
|
|
587
587
|
SkyAngularTreeContextMenuComponent,
|
|
588
588
|
SkyAngularTreeNodeComponent,
|
|
589
589
|
SkyAngularTreeToolbarComponent,
|
|
590
590
|
SkyAngularTreeWrapperComponent], exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent] }); }
|
|
591
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
591
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeModule, providers: [SkyCoreAdapterService], imports: [SkyAngularTreeComponentResourcesModule,
|
|
592
592
|
SkyAngularTreeNodeComponent,
|
|
593
593
|
SkyAngularTreeToolbarComponent,
|
|
594
594
|
SkyAngularTreeWrapperComponent] }); }
|
|
595
595
|
}
|
|
596
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
596
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SkyAngularTreeModule, decorators: [{
|
|
597
597
|
type: NgModule,
|
|
598
598
|
args: [{
|
|
599
599
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-angular-tree-component.mjs","sources":["../tmp-esm2022/lib/modules/shared/sky-angular-tree-component-resources.module.js","../tmp-esm2022/lib/modules/angular-tree/angular-tree-context-menu.component.js","../tmp-esm2022/lib/modules/angular-tree/angular-tree-adapter.service.js","../tmp-esm2022/lib/modules/angular-tree/angular-tree-toolbar.component.js","../tmp-esm2022/lib/modules/angular-tree/angular-tree-wrapper.component.js","../tmp-esm2022/lib/modules/angular-tree/angular-tree-node.component.js","../tmp-esm2022/lib/modules/angular-tree/angular-tree.module.js","../tmp-esm2022/skyux-angular-tree-component.js"],"sourcesContent":["/* istanbul ignore file */\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 { SkyI18nModule, SkyLibResourcesService, } from '@skyux/i18n';\nimport * as i0 from \"@angular/core\";\nconst RESOURCES = {\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 'FR-CA': {\n skyux_angular_tree_clear_all: { message: 'Effacer tout' },\n skyux_angular_tree_click_to_expand: { message: 'Cliquez pour agrandir' },\n skyux_angular_tree_collapse_all: { message: 'Réduire' },\n skyux_angular_tree_expand_all: { message: 'Agrandir' },\n skyux_angular_tree_select_all: { message: 'Sélectionner tout' },\n },\n};\nSkyLibResourcesService.addResources(RESOURCES);\n/**\n * Import into any component library module that needs to use resource strings.\n */\nexport class SkyAngularTreeComponentResourcesModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWFuZ3VsYXItdHJlZS1jb21wb25lbnQtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFuZ3VsYXItdHJlZS1jb21wb25lbnQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsNEJBQTRCLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFO1FBQ3RELGtDQUFrQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFO1FBQ2xFLCtCQUErQixFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUN4RCw2QkFBNkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUU7UUFDcEQsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO0tBQ3pEO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsNEJBQTRCLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFO1FBQ3pELGtDQUFrQyxFQUFFLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFO1FBQ3hFLCtCQUErQixFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtRQUN2RCw2QkFBNkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7UUFDdEQsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7S0FDaEU7Q0FDRixDQUFDO0FBRUYsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRS9DOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNDQUFzQzsrR0FBdEMsc0NBQXNDO2dIQUF0QyxzQ0FBc0MsWUFGdkMsYUFBYTtnSEFFWixzQ0FBc0MsWUFGdkMsYUFBYTs7NEZBRVosc0NBQXNDO2tCQUhsRCxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktYW5ndWxhci10cmVlLWNvbXBvbmVudCcgc2NoZW1hdGljLlxuICogVG8gdXBkYXRlIHRoaXMgZmlsZSwgc2ltcGx5IHJlcnVuIHRoZSBjb21tYW5kLlxuICovXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5STE4bk1vZHVsZSxcbiAgU2t5TGliUmVzb3VyY2VzLFxuICBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmNvbnN0IFJFU09VUkNFUzogUmVjb3JkPHN0cmluZywgU2t5TGliUmVzb3VyY2VzPiA9IHtcbiAgJ0VOLVVTJzoge1xuICAgIHNreXV4X2FuZ3VsYXJfdHJlZV9jbGVhcl9hbGw6IHsgbWVzc2FnZTogJ0NsZWFyIGFsbCcgfSxcbiAgICBza3l1eF9hbmd1bGFyX3RyZWVfY2xpY2tfdG9fZXhwYW5kOiB7IG1lc3NhZ2U6ICdDbGljayB0byBleHBhbmQnIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2NvbGxhcHNlX2FsbDogeyBtZXNzYWdlOiAnQ29sbGFwc2UnIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2V4cGFuZF9hbGw6IHsgbWVzc2FnZTogJ0V4cGFuZCcgfSxcbiAgICBza3l1eF9hbmd1bGFyX3RyZWVfc2VsZWN0X2FsbDogeyBtZXNzYWdlOiAnU2VsZWN0IGFsbCcgfSxcbiAgfSxcbiAgJ0ZSLUNBJzoge1xuICAgIHNreXV4X2FuZ3VsYXJfdHJlZV9jbGVhcl9hbGw6IHsgbWVzc2FnZTogJ0VmZmFjZXIgdG91dCcgfSxcbiAgICBza3l1eF9hbmd1bGFyX3RyZWVfY2xpY2tfdG9fZXhwYW5kOiB7IG1lc3NhZ2U6ICdDbGlxdWV6IHBvdXIgYWdyYW5kaXInIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2NvbGxhcHNlX2FsbDogeyBtZXNzYWdlOiAnUsOpZHVpcmUnIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2V4cGFuZF9hbGw6IHsgbWVzc2FnZTogJ0FncmFuZGlyJyB9LFxuICAgIHNreXV4X2FuZ3VsYXJfdHJlZV9zZWxlY3RfYWxsOiB7IG1lc3NhZ2U6ICdTw6lsZWN0aW9ubmVyIHRvdXQnIH0sXG4gIH0sXG59O1xuXG5Ta3lMaWJSZXNvdXJjZXNTZXJ2aWNlLmFkZFJlc291cmNlcyhSRVNPVVJDRVMpO1xuXG4vKipcbiAqIEltcG9ydCBpbnRvIGFueSBjb21wb25lbnQgbGlicmFyeSBtb2R1bGUgdGhhdCBuZWVkcyB0byB1c2UgcmVzb3VyY2Ugc3RyaW5ncy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1NreUkxOG5Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBbmd1bGFyVHJlZUNvbXBvbmVudFJlc291cmNlc01vZHVsZSB7fVxuIl19","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyAngularTreeContextMenuComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", type: SkyAngularTreeContextMenuComponent, isStandalone: true, selector: \"sky-angular-tree-context-menu\", ngImport: i0, template: \"<div class=\\\"sky-angular-tree-context-menu\\\">\\n <ng-content />\\n</div>\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeContextMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-angular-tree-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: \"<div class=\\\"sky-angular-tree-context-menu\\\">\\n <ng-content />\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLWNvbnRleHQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS1jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRW5FOztHQUVHO0FBTUgsTUFBTSxPQUFPLGtDQUFrQzsrR0FBbEMsa0NBQWtDO21HQUFsQyxrQ0FBa0MseUZDVi9DLDJFQUdBOzs0RkRPYSxrQ0FBa0M7a0JBTDlDLFNBQVM7K0JBQ0UsK0JBQStCLG1CQUV4Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYW5ndWxhci10cmVlLWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmd1bGFyLXRyZWUtY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFuZ3VsYXJUcmVlQ29udGV4dE1lbnVDb21wb25lbnQge31cbiIsIjxkaXYgY2xhc3M9XCJza3ktYW5ndWxhci10cmVlLWNvbnRleHQtbWVudVwiPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+XG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\nimport * as i0 from \"@angular/core\";\n/**\n * @internal\n */\nexport class SkyAngularTreeAdapterService {\n #coreAdapterService = inject(SkyCoreAdapterService);\n getFocusableChildren(element) {\n return this.#coreAdapterService.getFocusableChildren(element);\n }\n setTabIndexOfFocusableEls(element, tabIndex) {\n const focusableEls = this.#coreAdapterService.getFocusableChildren(element);\n let index = focusableEls.length;\n while (index--) {\n focusableEls[index].tabIndex = tabIndex;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeAdapterService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeAdapterService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvbW9kdWxlcy9hbmd1bGFyLXRyZWUvYW5ndWxhci10cmVlLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRXBEOztHQUVHO0FBRUgsTUFBTSxPQUFPLDRCQUE0QjtJQUM5QixtQkFBbUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUV0RCxvQkFBb0IsQ0FBQyxPQUFvQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU0seUJBQXlCLENBQzlCLE9BQW9CLEVBQ3BCLFFBQWdCO1FBRWhCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RSxJQUFJLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE9BQU8sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDOytHQWhCVSw0QkFBNEI7bUhBQTVCLDRCQUE0Qjs7NEZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSB7XG4gIHJlYWRvbmx5ICNjb3JlQWRhcHRlclNlcnZpY2UgPSBpbmplY3QoU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlKTtcblxuICBwdWJsaWMgZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIHNldFRhYkluZGV4T2ZGb2N1c2FibGVFbHMoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgdGFiSW5kZXg6IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZm9jdXNhYmxlRWxzID0gdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpO1xuICAgIGxldCBpbmRleCA9IGZvY3VzYWJsZUVscy5sZW5ndGg7XG4gICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgIGZvY3VzYWJsZUVsc1tpbmRleF0udGFiSW5kZXggPSB0YWJJbmRleDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@skyux/icon\";\nimport * as i2 from \"@skyux/layout\";\nimport * as i3 from \"@skyux/i18n\";\n/**\n * @internal\n */\nexport class SkyAngularTreeToolbarComponent {\n constructor() {\n this.clearAllClick = new EventEmitter();\n this.collapseAllClick = new EventEmitter();\n this.expandAllClick = new EventEmitter();\n this.selectAllClick = new EventEmitter();\n }\n onClearAllClick() {\n this.clearAllClick.emit();\n }\n onCollapseAllClick() {\n this.collapseAllClick.emit();\n }\n onExpandAllClick() {\n this.expandAllClick.emit();\n }\n onSelectAllClick() {\n this.selectAllClick.emit();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: SkyAngularTreeToolbarComponent, isStandalone: true, selector: \"sky-angular-tree-toolbar\", inputs: { showSelectButtons: \"showSelectButtons\" }, outputs: { clearAllClick: \"clearAllClick\", collapseAllClick: \"collapseAllClick\", expandAllClick: \"expandAllClick\", selectAllClick: \"selectAllClick\" }, ngImport: i0, template: \"<div class=\\\"sky-angular-tree-toolbar\\\" role=\\\"toolbar\\\">\\n <sky-toolbar>\\n @if (showSelectButtons) {\\n <sky-toolbar-item>\\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>\\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 }\\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 type=\\\"button\\\"\\n [title]=\\\"'skyux_angular_tree_expand_all' | skyLibResources\\\"\\n (click)=\\\"onExpandAllClick()\\\"\\n >\\n <sky-icon iconName=\\\"chevron-double-down\\\" />\\n </button>\\n <button\\n class=\\\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-collapse-all-btn\\\"\\n type=\\\"button\\\"\\n [title]=\\\"'skyux_angular_tree_collapse_all' | skyLibResources\\\"\\n (click)=\\\"onCollapseAllClick()\\\"\\n >\\n <sky-icon iconName=\\\"chevron-double-up\\\" />\\n </button>\\n </sky-toolbar-view-actions>\\n </sky-toolbar>\\n</div>\\n\", dependencies: [{ kind: \"ngmodule\", type: SkyI18nModule }, { kind: \"ngmodule\", type: SkyIconModule }, { kind: \"component\", type: i1.λ1, selector: \"sky-icon\", inputs: [\"iconName\", \"variant\", \"iconSize\"] }, { kind: \"ngmodule\", type: SkyToolbarModule }, { kind: \"component\", type: i2.λ37, selector: \"sky-toolbar\", inputs: [\"listDescriptor\"] }, { kind: \"component\", type: i2.λ39, selector: \"sky-toolbar-item\" }, { kind: \"component\", type: i2.λ40, selector: \"sky-toolbar-view-actions\" }, { kind: \"pipe\", type: i3.SkyLibResourcesPipe, name: \"skyLibResources\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeToolbarComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-angular-tree-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyI18nModule, SkyIconModule, SkyToolbarModule], template: \"<div class=\\\"sky-angular-tree-toolbar\\\" role=\\\"toolbar\\\">\\n <sky-toolbar>\\n @if (showSelectButtons) {\\n <sky-toolbar-item>\\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>\\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 }\\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 type=\\\"button\\\"\\n [title]=\\\"'skyux_angular_tree_expand_all' | skyLibResources\\\"\\n (click)=\\\"onExpandAllClick()\\\"\\n >\\n <sky-icon iconName=\\\"chevron-double-down\\\" />\\n </button>\\n <button\\n class=\\\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-collapse-all-btn\\\"\\n type=\\\"button\\\"\\n [title]=\\\"'skyux_angular_tree_collapse_all' | skyLibResources\\\"\\n (click)=\\\"onCollapseAllClick()\\\"\\n >\\n <sky-icon iconName=\\\"chevron-double-up\\\" />\\n </button>\\n </sky-toolbar-view-actions>\\n </sky-toolbar>\\n</div>\\n\" }]\n }], propDecorators: { showSelectButtons: [{\n type: Input\n }], clearAllClick: [{\n type: Output\n }], collapseAllClick: [{\n type: Output\n }], expandAllClick: [{\n type: Output\n }], selectAllClick: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBRWpEOztHQUVHO0FBT0gsTUFBTSxPQUFPLDhCQUE4QjtJQU4zQztRQVdTLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUd6QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRzVDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUcxQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FpQmxEO0lBZlEsZUFBZTtRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzsrR0E5QlUsOEJBQThCO21HQUE5Qiw4QkFBOEIsK1JDcEIzQyxzOUNBMENBLDJDRHhCWSxhQUFhLDhCQUFFLGFBQWEscUlBQUUsZ0JBQWdCOzs0RkFFN0MsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLDBCQUEwQixtQkFFbkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLENBQUM7O3NCQUd4RCxLQUFLOztzQkFHTCxNQUFNOztzQkFHTixNQUFNOztzQkFHTixNQUFNOztzQkFHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUkxOG5Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuaW1wb3J0IHsgU2t5VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9sYXlvdXQnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYW5ndWxhci10cmVlLXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYW5ndWxhci10cmVlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1NreUkxOG5Nb2R1bGUsIFNreUljb25Nb2R1bGUsIFNreVRvb2xiYXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBbmd1bGFyVHJlZVRvb2xiYXJDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1NlbGVjdEJ1dHRvbnM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjbGVhckFsbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY29sbGFwc2VBbGxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGV4cGFuZEFsbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0QWxsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIG9uQ2xlYXJBbGxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQWxsQ2xpY2suZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uQ29sbGFwc2VBbGxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxhcHNlQWxsQ2xpY2suZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uRXhwYW5kQWxsQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRBbGxDbGljay5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RBbGxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdEFsbENsaWNrLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNreS1hbmd1bGFyLXRyZWUtdG9vbGJhclwiIHJvbGU9XCJ0b29sYmFyXCI+XG4gIDxza3ktdG9vbGJhcj5cbiAgICBAaWYgKHNob3dTZWxlY3RCdXR0b25zKSB7XG4gICAgICA8c2t5LXRvb2xiYXItaXRlbT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LWFuZ3VsYXItdHJlZS1zZWxlY3QtYWxsLWJ0blwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0QWxsQ2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnc2t5dXhfYW5ndWxhcl90cmVlX3NlbGVjdF9hbGwnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9za3ktdG9vbGJhci1pdGVtPlxuICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1hbmd1bGFyLXRyZWUtY2xlYXItYWxsLWJ0blwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXJBbGxDbGljaygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdza3l1eF9hbmd1bGFyX3RyZWVfY2xlYXJfYWxsJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICB9XG4gICAgPHNreS10b29sYmFyLXZpZXctYWN0aW9ucz5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0IHNreS1hbmd1bGFyLXRyZWUtZXhwYW5kLWFsbC1idG5cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW3RpdGxlXT1cIidza3l1eF9hbmd1bGFyX3RyZWVfZXhwYW5kX2FsbCcgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAoY2xpY2spPVwib25FeHBhbmRBbGxDbGljaygpXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pY29uIGljb25OYW1lPVwiY2hldnJvbi1kb3VibGUtZG93blwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0IHNreS1hbmd1bGFyLXRyZWUtY29sbGFwc2UtYWxsLWJ0blwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbdGl0bGVdPVwiJ3NreXV4X2FuZ3VsYXJfdHJlZV9jb2xsYXBzZV9hbGwnIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ29sbGFwc2VBbGxDbGljaygpXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pY29uIGljb25OYW1lPVwiY2hldnJvbi1kb3VibGUtdXBcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9za3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gIDwvc2t5LXRvb2xiYXI+XG48L2Rpdj5cbiJdfQ==","import { ChangeDetectionStrategy, Component, ContentChild, Input, } from '@angular/core';\nimport { KEYS, TREE_ACTIONS, TreeComponent, } from '@blackbaud/angular-tree-component';\nimport { SkyAngularTreeToolbarComponent } from './angular-tree-toolbar.component';\nimport * as i0 from \"@angular/core\";\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 */\nexport class SkyAngularTreeWrapperComponent {\n constructor() {\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 this.readOnly = false;\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 this.selectLeafNodesOnly = false;\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 this.selectSingle = false;\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 this.showToolbar = false;\n this.selectableNodeIds = {};\n }\n ngAfterViewInit() {\n if (this.selectSingle &&\n this.treeComponent?.treeModel.options.useTriState) {\n console.warn('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 this.#overrideActionMapping();\n }\n multiselectable() {\n return (!!this.treeComponent &&\n this.treeComponent.treeModel.options.useCheckbox &&\n !this.selectSingle);\n }\n onClearAllClick() {\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 onCollapseAllClick() {\n this.treeComponent?.treeModel.collapseAll();\n }\n onExpandAllClick() {\n this.treeComponent?.treeModel.expandAll();\n }\n onSelectAllClick() {\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) => {\n const selectable = 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 // 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 showSelectButtons() {\n return (!!this.treeComponent &&\n this.treeComponent.treeModel.options.useCheckbox &&\n !this.selectSingle);\n }\n #isSelectable(node) {\n return node.isLeaf || !node.hasChildren || !this.selectLeafNodesOnly;\n }\n #nodeDefaultAction(tree, node, event) {\n if (this.readOnly) {\n return;\n }\n if (node.options.useCheckbox && this.#isSelectable(node)) {\n this.#toggleSelected(node, event);\n }\n else {\n TREE_ACTIONS.TOGGLE_ACTIVE(tree, node, event);\n }\n return;\n }\n #onKeyDownAction(tree, node, event) {\n const targetNodeId = event.target.getAttribute('data-node-id');\n // Key press did not happen on the node.\n if (!node || 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 return;\n }\n this.#nodeDefaultAction(tree, node, event);\n }\n #overrideActionMapping() {\n const defaultActionMapping = this.treeComponent?.treeModel.options.actionMapping;\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) => this.#nodeDefaultAction(tree, node, event);\n }\n if (defaultActionMapping?.keys) {\n defaultActionMapping.keys[KEYS.SPACE] = (tree, node, event) => this.#onKeyDownAction(tree, node, event);\n defaultActionMapping.keys[KEYS.ENTER] = (tree, node, event) => this.#onKeyDownAction(tree, node, event);\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 #toggleSelected(node, event) {\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 }\n else {\n TREE_ACTIONS.TOGGLE_SELECTED(node.treeModel, node, event);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: SkyAngularTreeWrapperComponent, isStandalone: true, selector: \"sky-angular-tree-wrapper\", inputs: { readOnly: \"readOnly\", selectLeafNodesOnly: \"selectLeafNodesOnly\", selectSingle: \"selectSingle\", showToolbar: \"showToolbar\" }, queries: [{ propertyName: \"treeComponent\", first: true, predicate: TreeComponent, descendants: true }], ngImport: i0, template: \"<div\\n class=\\\"sky-angular-tree-wrapper\\\"\\n [class.sky-angular-tree-read-only]=\\\"readOnly\\\"\\n>\\n @if (showToolbar) {\\n <sky-angular-tree-toolbar\\n [showSelectButtons]=\\\"showSelectButtons()\\\"\\n (clearAllClick)=\\\"onClearAllClick()\\\"\\n (collapseAllClick)=\\\"onCollapseAllClick()\\\"\\n (expandAllClick)=\\\"onExpandAllClick()\\\"\\n (selectAllClick)=\\\"onSelectAllClick()\\\"\\n />\\n }\\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\", styles: [\".sky-angular-tree-wrapper:not(.sky-theme-modern *){--sky-override-angular-tree-context-menu-margin: 0 10px 0 0;--sky-override-angular-tree-node-active-background-color: #eeeeef;--sky-override-angular-tree-node-border-left-active: 4px solid #00b4f1;--sky-override-angular-tree-node-border-left-selected: 4px solid transparent;--sky-override-angular-tree-node-drop-slot-dragging-background-color: #eeeeef;--sky-override-angular-tree-node-drop-slot-dragging-border: 1px solid #e2e3e4;--sky-override-angular-tree-node-padding-left-base: 0;--sky-override-angular-tree-node-selected-background-color: #f1eef6;--sky-override-angular-tree-node-wrapper-background-color: transparent;--sky-override-angular-tree-node-wrapper-background-color-active: transparent;--sky-override-angular-tree-node-wrapper-background-color-focus: transparent;--sky-override-angular-tree-node-wrapper-background-color-hover: transparent;--sky-override-angular-tree-node-wrapper-border-left: 4px solid transparent;--sky-override-angular-tree-node-wrapper-border-radius: 0;--sky-override-angular-tree-node-wrapper-padding: 4px 5px;--sky-override-tree-children-padding: 30px;--sky-override-angular-tree-node-wrapper-standard-box-shadow-active: none;--sky-override-angular-tree-node-wrapper-standard-box-shadow-base: none;--sky-override-angular-tree-node-wrapper-standard-box-shadow-focus: none;--sky-override-angular-tree-node-wrapper-standard-box-shadow-hover: none;--sky-override-angular-tree-node-wrapper-standard-outline-active: auto;--sky-override-angular-tree-node-wrapper-standard-outline-focus: auto;--sky-override-angular-tree-switch-control-margin: 0 8px 0 0;--sky-override-angular-tree-toggle-children-height: 20px;--sky-override-angular-tree-toggle-children-margin: 0 10px 0 0;--sky-override-angular-tree-toggle-children-padding: 0;--sky-override-angular-tree-toggle-children-placeholder-height: 19px;--sky-override-angular-tree-toggle-children-placeholder-margin: 0 10px 0 0;--sky-override-angular-tree-toggle-children-placeholder-width: 20px;--sky-override-angular-tree-toggle-children-width: 20px;--sky-override-angular-tree-toggle-color: var(--sky-text-color-deemphasized);--sky-override-angular-tree-wrapper-background-color: transparent}.sky-angular-tree-wrapper{background-color:var(--sky-override-angular-tree-wrapper-background-color, var(--sky-color-background-container-base))}.sky-angular-tree-wrapper ::ng-deep .angular-tree-component{cursor:initial;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sky-angular-tree-wrapper ::ng-deep .node-wrapper{display:flex;align-items:center;background-color:var(--sky-override-angular-tree-node-wrapper-background-color, var(--sky-color-background-nav-base));padding:var(--sky-override-angular-tree-node-wrapper-padding, calc(var(--sky-comp-tree-node-space-inset-top) - 1px) var(--sky-comp-tree-node-space-inset-right));padding-left:max(var(--sky-angular-tree-node-padding),var(--sky-override-angular-tree-node-padding-left-base, var(--sky-comp-tree-node-space-inset-left)));border-left:var(--sky-override-angular-tree-node-wrapper-border-left, var(--sky-border-width-selected-m) solid transparent);border-radius:var(--sky-override-angular-tree-node-wrapper-border-radius, var(--sky-border-radius-xs) var(--sky-border-radius-0) var(--sky-border-radius-0) var(--sky-border-radius-xs));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-base, inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-nav-base))}.sky-angular-tree-wrapper ::ng-deep .node-wrapper:focus-visible{background-color:var(--sky-override-angular-tree-node-wrapper-background-color-focus, var(--sky-color-background-nav-focus));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-focus, inset 0 0 0 var(--sky-border-width-action-focus) var(--sky-color-border-nav-focus));outline:var(--sky-override-angular-tree-node-wrapper-standard-outline-focus, none)}.sky-angular-tree-wrapper ::ng-deep .node-content-wrapper{display:flex;align-items:center;padding:0;cursor:pointer}.sky-angular-tree-wrapper ::ng-deep .tree-children{padding-left:var(--sky-override-tree-children-padding, var(--sky-comp-tree-child-space-inset-left));overflow:hidden}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children{color:var(--sky-override-angular-tree-toggle-color, var(--sky-color-text-deemphasized));margin:var(--sky-override-angular-tree-toggle-children-margin, 0 var(--sky-space-gap-action_group-s) 0 0);height:var(--sky-override-angular-tree-toggle-children-height, \\\"\\\");width:var(--sky-override-angular-tree-toggle-children-width, \\\"\\\");padding:var(--sky-override-angular-tree-toggle-children-padding, var(--sky-comp-button-borderless-space-inset-top) var(--sky-comp-button-borderless-space-inset-right) var(--sky-comp-button-borderless-space-inset-bottom) var(--sky-comp-button-borderless-space-inset-left));line-height:1}.sky-angular-tree-wrapper ::ng-deep .toggle-children-placeholder{display:inline-block;height:var(--sky-override-angular-tree-toggle-children-placeholder-height, calc(var(--sky-size-icon-s) + var(--sky-comp-button-borderless-space-inset-top) + var(--sky-comp-button-borderless-space-inset-bottom)));width:var(--sky-override-angular-tree-toggle-children-placeholder-width, calc(var(--sky-size-icon-s) + var(--sky-comp-button-borderless-space-inset-left) + var(--sky-comp-button-borderless-space-inset-right)));margin:var(--sky-override-angular-tree-toggle-children-placeholder-margin, 0 var(--sky-space-inline-s) 0 0)}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected{background:var(--sky-override-angular-tree-node-selected-background-color, var(--sky-color-background-selected-soft))}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected:not(.sky-angular-tree-node-has-checkbox){border-left:var(--sky-override-angular-tree-node-border-left-selected, var(--sky-border-width-selected-m) solid var(--sky-color-border-selected))}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-active{background:var(--sky-override-angular-tree-node-active-background-color, var(--sky-color-background-selected-soft));border-left:var(--sky-override-angular-tree-node-border-left-active, var(--sky-border-width-selected-m) solid var(--sky-color-border-selected))}.sky-angular-tree-wrapper ::ng-deep sky-checkbox{display:inline-flex}.sky-angular-tree-wrapper ::ng-deep .sky-switch-control{margin:var(--sky-override-angular-tree-switch-control-margin, 0 var(--sky-space-gap-action_group-s) 0 0)}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-context-menu{margin:var(--sky-override-angular-tree-context-menu-margin, 0 var(--sky-space-gap-action_group-s) 0 0)}.sky-angular-tree-wrapper ::ng-deep .node-drop-slot{display:block;height:2px}.sky-angular-tree-wrapper ::ng-deep .node-drop-slot.is-dragging-over{height:20px;background:var(--sky-override-angular-tree-node-drop-slot-dragging-background-color, var(--sky-color-background-action-soft));border:var(--sky-override-angular-tree-node-drop-slot-dragging-border, var(--sky-border-width-container-base) solid var(--sky-color-border-container-base))}.sky-angular-tree-wrapper.sky-angular-tree-read-only ::ng-deep .node-content-wrapper{cursor:initial}.sky-angular-tree-wrapper:not(.sky-angular-tree-read-only) ::ng-deep .node-wrapper:hover{background-color:var(--sky-override-angular-tree-node-wrapper-background-color-hover, var(--sky-color-background-nav-hover));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-hover, inset 0 0 0 var(--sky-border-width-action-hover) var(--sky-color-border-nav-hover))}.sky-angular-tree-wrapper:not(.sky-angular-tree-read-only) ::ng-deep .node-wrapper:active{background:var(--sky-override-angular-tree-node-wrapper-background-color-active, var(--sky-color-background-nav-active));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-active, inset 0 0 0 var(--sky-border-width-action-active) var(--sky-color-border-nav-active));outline:var(--sky-override-angular-tree-node-wrapper-standard-outline-active, none)}\\n\"], dependencies: [{ kind: \"component\", type: SkyAngularTreeToolbarComponent, selector: \"sky-angular-tree-toolbar\", inputs: [\"showSelectButtons\"], outputs: [\"clearAllClick\", \"collapseAllClick\", \"expandAllClick\", \"selectAllClick\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeWrapperComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-angular-tree-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyAngularTreeToolbarComponent], template: \"<div\\n class=\\\"sky-angular-tree-wrapper\\\"\\n [class.sky-angular-tree-read-only]=\\\"readOnly\\\"\\n>\\n @if (showToolbar) {\\n <sky-angular-tree-toolbar\\n [showSelectButtons]=\\\"showSelectButtons()\\\"\\n (clearAllClick)=\\\"onClearAllClick()\\\"\\n (collapseAllClick)=\\\"onCollapseAllClick()\\\"\\n (expandAllClick)=\\\"onExpandAllClick()\\\"\\n (selectAllClick)=\\\"onSelectAllClick()\\\"\\n />\\n }\\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\", styles: [\".sky-angular-tree-wrapper:not(.sky-theme-modern *){--sky-override-angular-tree-context-menu-margin: 0 10px 0 0;--sky-override-angular-tree-node-active-background-color: #eeeeef;--sky-override-angular-tree-node-border-left-active: 4px solid #00b4f1;--sky-override-angular-tree-node-border-left-selected: 4px solid transparent;--sky-override-angular-tree-node-drop-slot-dragging-background-color: #eeeeef;--sky-override-angular-tree-node-drop-slot-dragging-border: 1px solid #e2e3e4;--sky-override-angular-tree-node-padding-left-base: 0;--sky-override-angular-tree-node-selected-background-color: #f1eef6;--sky-override-angular-tree-node-wrapper-background-color: transparent;--sky-override-angular-tree-node-wrapper-background-color-active: transparent;--sky-override-angular-tree-node-wrapper-background-color-focus: transparent;--sky-override-angular-tree-node-wrapper-background-color-hover: transparent;--sky-override-angular-tree-node-wrapper-border-left: 4px solid transparent;--sky-override-angular-tree-node-wrapper-border-radius: 0;--sky-override-angular-tree-node-wrapper-padding: 4px 5px;--sky-override-tree-children-padding: 30px;--sky-override-angular-tree-node-wrapper-standard-box-shadow-active: none;--sky-override-angular-tree-node-wrapper-standard-box-shadow-base: none;--sky-override-angular-tree-node-wrapper-standard-box-shadow-focus: none;--sky-override-angular-tree-node-wrapper-standard-box-shadow-hover: none;--sky-override-angular-tree-node-wrapper-standard-outline-active: auto;--sky-override-angular-tree-node-wrapper-standard-outline-focus: auto;--sky-override-angular-tree-switch-control-margin: 0 8px 0 0;--sky-override-angular-tree-toggle-children-height: 20px;--sky-override-angular-tree-toggle-children-margin: 0 10px 0 0;--sky-override-angular-tree-toggle-children-padding: 0;--sky-override-angular-tree-toggle-children-placeholder-height: 19px;--sky-override-angular-tree-toggle-children-placeholder-margin: 0 10px 0 0;--sky-override-angular-tree-toggle-children-placeholder-width: 20px;--sky-override-angular-tree-toggle-children-width: 20px;--sky-override-angular-tree-toggle-color: var(--sky-text-color-deemphasized);--sky-override-angular-tree-wrapper-background-color: transparent}.sky-angular-tree-wrapper{background-color:var(--sky-override-angular-tree-wrapper-background-color, var(--sky-color-background-container-base))}.sky-angular-tree-wrapper ::ng-deep .angular-tree-component{cursor:initial;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sky-angular-tree-wrapper ::ng-deep .node-wrapper{display:flex;align-items:center;background-color:var(--sky-override-angular-tree-node-wrapper-background-color, var(--sky-color-background-nav-base));padding:var(--sky-override-angular-tree-node-wrapper-padding, calc(var(--sky-comp-tree-node-space-inset-top) - 1px) var(--sky-comp-tree-node-space-inset-right));padding-left:max(var(--sky-angular-tree-node-padding),var(--sky-override-angular-tree-node-padding-left-base, var(--sky-comp-tree-node-space-inset-left)));border-left:var(--sky-override-angular-tree-node-wrapper-border-left, var(--sky-border-width-selected-m) solid transparent);border-radius:var(--sky-override-angular-tree-node-wrapper-border-radius, var(--sky-border-radius-xs) var(--sky-border-radius-0) var(--sky-border-radius-0) var(--sky-border-radius-xs));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-base, inset 0 0 0 var(--sky-border-width-action-base) var(--sky-color-border-nav-base))}.sky-angular-tree-wrapper ::ng-deep .node-wrapper:focus-visible{background-color:var(--sky-override-angular-tree-node-wrapper-background-color-focus, var(--sky-color-background-nav-focus));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-focus, inset 0 0 0 var(--sky-border-width-action-focus) var(--sky-color-border-nav-focus));outline:var(--sky-override-angular-tree-node-wrapper-standard-outline-focus, none)}.sky-angular-tree-wrapper ::ng-deep .node-content-wrapper{display:flex;align-items:center;padding:0;cursor:pointer}.sky-angular-tree-wrapper ::ng-deep .tree-children{padding-left:var(--sky-override-tree-children-padding, var(--sky-comp-tree-child-space-inset-left));overflow:hidden}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children{color:var(--sky-override-angular-tree-toggle-color, var(--sky-color-text-deemphasized));margin:var(--sky-override-angular-tree-toggle-children-margin, 0 var(--sky-space-gap-action_group-s) 0 0);height:var(--sky-override-angular-tree-toggle-children-height, \\\"\\\");width:var(--sky-override-angular-tree-toggle-children-width, \\\"\\\");padding:var(--sky-override-angular-tree-toggle-children-padding, var(--sky-comp-button-borderless-space-inset-top) var(--sky-comp-button-borderless-space-inset-right) var(--sky-comp-button-borderless-space-inset-bottom) var(--sky-comp-button-borderless-space-inset-left));line-height:1}.sky-angular-tree-wrapper ::ng-deep .toggle-children-placeholder{display:inline-block;height:var(--sky-override-angular-tree-toggle-children-placeholder-height, calc(var(--sky-size-icon-s) + var(--sky-comp-button-borderless-space-inset-top) + var(--sky-comp-button-borderless-space-inset-bottom)));width:var(--sky-override-angular-tree-toggle-children-placeholder-width, calc(var(--sky-size-icon-s) + var(--sky-comp-button-borderless-space-inset-left) + var(--sky-comp-button-borderless-space-inset-right)));margin:var(--sky-override-angular-tree-toggle-children-placeholder-margin, 0 var(--sky-space-inline-s) 0 0)}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected{background:var(--sky-override-angular-tree-node-selected-background-color, var(--sky-color-background-selected-soft))}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected:not(.sky-angular-tree-node-has-checkbox){border-left:var(--sky-override-angular-tree-node-border-left-selected, var(--sky-border-width-selected-m) solid var(--sky-color-border-selected))}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-active{background:var(--sky-override-angular-tree-node-active-background-color, var(--sky-color-background-selected-soft));border-left:var(--sky-override-angular-tree-node-border-left-active, var(--sky-border-width-selected-m) solid var(--sky-color-border-selected))}.sky-angular-tree-wrapper ::ng-deep sky-checkbox{display:inline-flex}.sky-angular-tree-wrapper ::ng-deep .sky-switch-control{margin:var(--sky-override-angular-tree-switch-control-margin, 0 var(--sky-space-gap-action_group-s) 0 0)}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-context-menu{margin:var(--sky-override-angular-tree-context-menu-margin, 0 var(--sky-space-gap-action_group-s) 0 0)}.sky-angular-tree-wrapper ::ng-deep .node-drop-slot{display:block;height:2px}.sky-angular-tree-wrapper ::ng-deep .node-drop-slot.is-dragging-over{height:20px;background:var(--sky-override-angular-tree-node-drop-slot-dragging-background-color, var(--sky-color-background-action-soft));border:var(--sky-override-angular-tree-node-drop-slot-dragging-border, var(--sky-border-width-container-base) solid var(--sky-color-border-container-base))}.sky-angular-tree-wrapper.sky-angular-tree-read-only ::ng-deep .node-content-wrapper{cursor:initial}.sky-angular-tree-wrapper:not(.sky-angular-tree-read-only) ::ng-deep .node-wrapper:hover{background-color:var(--sky-override-angular-tree-node-wrapper-background-color-hover, var(--sky-color-background-nav-hover));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-hover, inset 0 0 0 var(--sky-border-width-action-hover) var(--sky-color-border-nav-hover))}.sky-angular-tree-wrapper:not(.sky-angular-tree-read-only) ::ng-deep .node-wrapper:active{background:var(--sky-override-angular-tree-node-wrapper-background-color-active, var(--sky-color-background-nav-active));box-shadow:var(--sky-override-angular-tree-node-wrapper-standard-box-shadow-active, inset 0 0 0 var(--sky-border-width-action-active) var(--sky-color-border-nav-active));outline:var(--sky-override-angular-tree-node-wrapper-standard-outline-active, none)}\\n\"] }]\n }], propDecorators: { readOnly: [{\n type: Input\n }], selectLeafNodesOnly: [{\n type: Input\n }], selectSingle: [{\n type: Input\n }], showToolbar: [{\n type: Input\n }], treeComponent: [{\n type: ContentChild,\n args: [TreeComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLElBQUksRUFDSixZQUFZLEVBQ1osYUFBYSxHQUdkLE1BQU0sbUNBQW1DLENBQUM7QUFFM0MsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRWxGOzs7OztHQUtHO0FBUUgsTUFBTSxPQUFPLDhCQUE4QjtJQVAzQztRQVFFOzs7O1dBSUc7UUFFSSxhQUFRLEdBQXdCLEtBQUssQ0FBQztRQUU3Qzs7Ozs7V0FLRztRQUVJLHdCQUFtQixHQUF3QixLQUFLLENBQUM7UUFFeEQ7Ozs7O1dBS0c7UUFFSSxpQkFBWSxHQUF3QixLQUFLLENBQUM7UUFFakQ7Ozs7O1dBS0c7UUFFSSxnQkFBVyxHQUF3QixLQUFLLENBQUM7UUFFekMsc0JBQWlCLEdBQTRCLEVBQUUsQ0FBQztLQXlLeEQ7SUFwS1EsZUFBZTtRQUNwQixJQUNFLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQ2pELENBQUM7WUFDRCxPQUFP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TSxXQUN0QyxDQUFDLDhCQUE4QixDQUFDOztzQkFReEMsS0FBSzs7c0JBU0wsS0FBSzs7c0JBU0wsS0FBSzs7c0JBU0wsS0FBSzs7c0JBS0wsWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBLRVlTLFxuICBUUkVFX0FDVElPTlMsXG4gIFRyZWVDb21wb25lbnQsXG4gIFRyZWVNb2RlbCxcbiAgVHJlZU5vZGUsXG59IGZyb20gJ0BibGFja2JhdWQvYW5ndWxhci10cmVlLWNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vYW5ndWxhci10cmVlLXRvb2xiYXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBXcmFwcyB0aGUgQW5ndWxhciBgdHJlZS1yb290YCBjb21wb25lbnQgYXMgcGFydCBvZiB0aGUgYFNreUFuZ3VsYXJUcmVlTW9kdWxlYCB0aGF0IHByb3ZpZGVzXG4gKiBTS1kgVVggY29tcG9uZW50cyBhbmQgc3R5bGVzIHRvIGNvbXBsZW1lbnQgdGhlIGBhbmd1bGFyLXRyZWUtY29tcG9uZW50YCBsaWJyYXJ5IGFuZCBhcHBseSBTS1kgVVhcbiAqIHRoZW1lcyBhbmQgZnVuY3Rpb25hbGl0eSB0byBoaWVyYXJjaGljYWwgbGlzdCB2aWV3cy4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgdHJlZS1yb290YCBjb21wb25lbnQsIHNlZSB0aGVcbiAqIFtBbmd1bGFyIHRyZWUgY29tcG9uZW50IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcykuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hbmd1bGFyLXRyZWUtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbU2t5QW5ndWxhclRyZWVUb29sYmFyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlbmRlciB0aGUgdHJlZSB2aWV3IGluIHJlYWQtb25seSBtb2RlLlxuICAgKiBUaGlzIG1vZGUgZGlzYWJsZXMgc2VsZWN0ZWQgYW5kIGFjdGl2ZSBzdGF0ZXMgb24gdGhlIHRyZWUgdmlldyBub2Rlcy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZWFkT25seTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBsZWFmLW9ubHkgc2VsZWN0aW9uIG1vZGUuIEZvciB0cmVlIHZpZXdzIHdpdGhcbiAgICogW2NoZWNrYm94ZXNdKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcy90cmktc3RhdGUtY2hlY2tib3hlcyksXG4gICAqIHRoaXMgbW9kZSBsaW1pdHMgdXNlciBzZWxlY3Rpb25zIHRvIGxlYWYgbm9kZXMgYW5kIHByZXZlbnRzIHVzZXJzIGZyb20gc2VsZWN0aW5nIHBhcmVudCBub2Rlcy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RMZWFmTm9kZXNPbmx5OiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXNlIHNpbmdsZS1zZWxlY3QgbW9kZS4gRm9yIHRyZWUgdmlld3Mgd2l0aFxuICAgKiBbY2hlY2tib3hlc10oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL3RyaS1zdGF0ZS1jaGVja2JveGVzKSxcbiAgICogdGhpcyBtb2RlIGxpbWl0cyB1c2VyIHNlbGVjdGlvbnMgdG8gb25lIG5vZGUgYXQgYSB0aW1lLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdFNpbmdsZTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSB0b29sYmFyIHdpdGggYnV0dG9ucyB0byBleHBhbmQgYW5kIGNvbGxhcHNlIGFsbCBub2RlcyBhbmQgYnV0dG9ucyB0byBzZWxlY3QgYW5kIGNsZWFyIGFsbCBjaGVja2JveGVzLlxuICAgKiBUaGUgc2VsZWN0IGFuZCBjbGVhciBidXR0b25zIG9ubHkgYXBwZWFyIHdoZW4geW91IGVuYWJsZSBjaGVja2JveGVzLlxuICAgKiBUbyBlbmFibGUgW2NoZWNrYm94ZXNdKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcy90cmktc3RhdGUtY2hlY2tib3hlcykuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgc2VsZWN0YWJsZU5vZGVJZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgQENvbnRlbnRDaGlsZChUcmVlQ29tcG9uZW50KVxuICBwdWJsaWMgdHJlZUNvbXBvbmVudDogVHJlZUNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2VsZWN0U2luZ2xlICYmXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5vcHRpb25zLnVzZVRyaVN0YXRlXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdTaW5nbGUgc2VsZWN0IG1vZGUgc2hvdWxkIG5vdCBiZSBlbmFibGVkIHdoaWxlIHRoZSB0cmVlIGlzIGluIHRyaVN0YXRlIG1vZGUgKGNhc2NhZGluZyBzZWxlY3Rpb24pLiAnICtcbiAgICAgICAgICAnUGxlYXNlIHNldCBcInVzZVRyaVN0YXRlXCIgdG8gXCJmYWxzZVwiIGlmIHlvdSB3YW50IHRvIHJlbWFpbiBpbiBzaW5nbGUgc2VsZWN0IG1vZGUuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuI292ZXJyaWRlQWN0aW9uTWFwcGluZygpO1xuICB9XG5cbiAgcHVibGljIG11bHRpc2VsZWN0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLnRyZWVDb21wb25lbnQgJiZcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwub3B0aW9ucy51c2VDaGVja2JveCAmJlxuICAgICAgIXRoaXMuc2VsZWN0U2luZ2xlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsZWFyQWxsQ2xpY2soKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuc2VsZWN0U2luZ2xlICYmIHRoaXMudHJlZUNvbXBvbmVudCkge1xuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5nZXRTdGF0ZSgpO1xuICAgICAgdGhpcy50cmVlQ29tcG9uZW50LnN0YXRlID0ge1xuICAgICAgICAuLi5jdXJyZW50U3RhdGUsXG4gICAgICAgIHNlbGVjdGVkTGVhZk5vZGVJZHM6IHt9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Db2xsYXBzZUFsbENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMudHJlZUNvbXBvbmVudD8udHJlZU1vZGVsLmNvbGxhcHNlQWxsKCk7XG4gIH1cblxuICBwdWJsaWMgb25FeHBhbmRBbGxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5leHBhbmRBbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdEFsbENsaWNrKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCF0aGlzLnNlbGVjdFNpbmdsZSAmJiB0aGlzLnRyZWVDb21wb25lbnQpIHtcbiAgICAgIC8vIEdldCBhIGxpc3Qgb2YgYWxsIG5vZGUgaWRzIHRoYXQgYXJlIHNlbGVjdGFibGUuXG4gICAgICB0aGlzLnNlbGVjdGFibGVOb2RlSWRzID0ge307XG4gICAgICBjb25zdCBnZXRTZWxlY3RhYmxlTm9kZUlkcyA9IChub2RlOiBUcmVlTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RhYmxlID1cbiAgICAgICAgICBub2RlLmlzU2VsZWN0YWJsZSgpICYmXG4gICAgICAgICAgIShub2RlLmhhc0NoaWxkcmVuICYmIHRoaXMuc2VsZWN0TGVhZk5vZGVzT25seSk7XG4gICAgICAgIGlmIChzZWxlY3RhYmxlICYmICFub2RlLmRhdGEudmlydHVhbCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZU5vZGVJZHNbbm9kZS5pZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiBnZXRTZWxlY3RhYmxlTm9kZUlkcyhjaGlsZCkpO1xuICAgICAgfTtcbiAgICAgIGdldFNlbGVjdGFibGVOb2RlSWRzKHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwudmlydHVhbFJvb3QpO1xuXG4gICAgICAvLyBVcGRhdGUgdHJlZSBzdGF0ZSB3aXRoIG5ldyBsaXN0IG9mIHNlbGVjdGVkIG5vZGUgaWRzLlxuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5nZXRTdGF0ZSgpO1xuICAgICAgdGhpcy50cmVlQ29tcG9uZW50LnN0YXRlID0ge1xuICAgICAgICAuLi5jdXJyZW50U3RhdGUsXG4gICAgICAgIHNlbGVjdGVkTGVhZk5vZGVJZHM6IHRoaXMuc2VsZWN0YWJsZU5vZGVJZHMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93U2VsZWN0QnV0dG9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLnRyZWVDb21wb25lbnQgJiZcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwub3B0aW9ucy51c2VDaGVja2JveCAmJlxuICAgICAgIXRoaXMuc2VsZWN0U2luZ2xlXG4gICAgKTtcbiAgfVxuXG4gICNpc1NlbGVjdGFibGUobm9kZTogVHJlZU5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbm9kZS5pc0xlYWYgfHwgIW5vZGUuaGFzQ2hpbGRyZW4gfHwgIXRoaXMuc2VsZWN0TGVhZk5vZGVzT25seTtcbiAgfVxuXG4gICNub2RlRGVmYXVsdEFjdGlvbih0cmVlOiBUcmVlTW9kZWwsIG5vZGU6IFRyZWVOb2RlLCBldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5vcHRpb25zLnVzZUNoZWNrYm94ICYmIHRoaXMuI2lzU2VsZWN0YWJsZShub2RlKSkge1xuICAgICAgdGhpcy4jdG9nZ2xlU2VsZWN0ZWQobm9kZSwgZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBUUkVFX0FDVElPTlMuVE9HR0xFX0FDVElWRSh0cmVlLCBub2RlLCBldmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgI29uS2V5RG93bkFjdGlvbih0cmVlOiBUcmVlTW9kZWwsIG5vZGU6IFRyZWVOb2RlLCBldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0Tm9kZUlkID0gZXZlbnQudGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS1ub2RlLWlkJyk7XG5cbiAgICAvLyBLZXkgcHJlc3MgZGlkIG5vdCBoYXBwZW4gb24gdGhlIG5vZGUuXG4gICAgaWYgKCFub2RlIHx8IHRhcmdldE5vZGVJZCAhPT0gbm9kZS5pZC50b1N0cmluZygpKSB7XG4gICAgICAvLyBhbmd1bGFyLXRyZWUtY29tcG9uZW50IHdpbGwgcHJldmVudERlZmF1bHQoKSBvbiBhbnl0aGluZyB1c2luZyBhIGtleSBhY3Rpb24gaGFuZGxlcixcbiAgICAgIC8vIHRodXMgc3RvcHBpbmcgXCJlbnRlclwiIGFuZCBcInNwYWNlXCIga2V5cyB0byB0aHJvdyBcImNsaWNrXCIgZXZlbnRzIG9uIGludGVyYWN0aXZlIGVsZW1lbnRzLlxuICAgICAgLy8gVGhpcyBsb2dpYyBlbnN1cmVzIGNvbXBvbmVudHMgbG9va2luZyBmb3IgXCJjbGlja3NcIiBvbiB0aG9zZSBrZXlzdHJva2VzIHN0aWxsIHdvcmsgKGRyb3Bkb3duIGNvbXBvbmVudCkuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vNTAwdGVjaC9hbmd1bGFyLXRyZWUtY29tcG9uZW50L2Jsb2IvbWFzdGVyL2xpYi9tb2RlbHMvdHJlZS5tb2RlbC50cyNMMzQxXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgZXZlbnQudGFyZ2V0LmNsaWNrKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiNub2RlRGVmYXVsdEFjdGlvbih0cmVlLCBub2RlLCBldmVudCk7XG4gIH1cblxuICAjb3ZlcnJpZGVBY3Rpb25NYXBwaW5nKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRBY3Rpb25NYXBwaW5nID1cbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudD8udHJlZU1vZGVsLm9wdGlvbnMuYWN0aW9uTWFwcGluZztcblxuICAgIGlmIChkZWZhdWx0QWN0aW9uTWFwcGluZz8ubW91c2UpIHtcbiAgICAgIC8vIE92ZXJyaWRlIGRlZmF1bHQgY2xpY2svZW50ZXIvc3BhY2UgYWN0aW9uIHRvIGNoZWNrIGZvciB1bnN1cHBvcnRlZCBvcHRpb25zIChsZWFmIG5vZGUsIHNpbmdsZS1zZWxlY3QpLlxuICAgICAgZGVmYXVsdEFjdGlvbk1hcHBpbmcubW91c2UuY2xpY2sgPSAodHJlZSwgbm9kZSwgZXZlbnQpOiB2b2lkID0+XG4gICAgICAgIHRoaXMuI25vZGVEZWZhdWx0QWN0aW9uKHRyZWUsIG5vZGUsIGV2ZW50KTtcbiAgICB9XG5cbiAgICBpZiAoZGVmYXVsdEFjdGlvbk1hcHBpbmc/LmtleXMpIHtcbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5TUEFDRV0gPSAodHJlZSwgbm9kZSwgZXZlbnQpOiB2b2lkID0+XG4gICAgICAgIHRoaXMuI29uS2V5RG93bkFjdGlvbih0cmVlLCBub2RlLCBldmVudCk7XG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuRU5URVJdID0gKHRyZWUsIG5vZGUsIGV2ZW50KTogdm9pZCA9PlxuICAgICAgICB0aGlzLiNvbktleURvd25BY3Rpb24odHJlZSwgbm9kZSwgZXZlbnQpO1xuXG4gICAgICAvLyBEaXNhYmxlIGxlZnQvcmlnaHQgYXJyb3cga2V5cyB0byBzdXBwb3J0IG5hdmlnYXRpbmcgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aXRoIGtleWJvYXJkLlxuICAgICAgLy8gU2VlIG9uQXJyb3dMZWZ0KCkgLyBvbkFycm93UmlnaHQoKSBtZXRob2RzIGluc2lkZSB0aGUgYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50LnRzLlxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5SSUdIVF0gPSAodHJlZSwgbm9kZSwgJGV2ZW50KTogdm9pZCA9PlxuICAgICAgICB1bmRlZmluZWQ7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgZGVmYXVsdEFjdGlvbk1hcHBpbmcua2V5c1tLRVlTLkxFRlRdID0gKHRyZWUsIG5vZGUsICRldmVudCk6IHZvaWQgPT5cbiAgICAgICAgdW5kZWZpbmVkO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5ET1dOXSA9ICh0cmVlLCBub2RlLCAkZXZlbnQpOiB2b2lkID0+XG4gICAgICAgIHVuZGVmaW5lZDtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuVVBdID0gKHRyZWUsIG5vZGUsICRldmVudCk6IHZvaWQgPT5cbiAgICAgICAgdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gICN0b2dnbGVTZWxlY3RlZChub2RlOiBUcmVlTm9kZSwgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIC8vIElmIHNpbmdsZS1zZWxlY3Rpb24gaXMgZW5hYmxlZCwgb25seSBzZWxlY3QgdGhlIG5vZGUgY2xpY2tlZC5cbiAgICBpZiAodGhpcy5zZWxlY3RTaW5nbGUgJiYgIW5vZGUuaXNTZWxlY3RlZCkge1xuICAgICAgY29uc3Qgb2xkU3RhdGUgPSB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5nZXRTdGF0ZSgpO1xuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGV4cGFuZGVkTm9kZUlkczogb2xkU3RhdGU/LmV4cGFuZGVkTm9kZUlkcyxcbiAgICAgICAgc2VsZWN0ZWRMZWFmTm9kZUlkczogT2JqZWN0LmFzc2lnbih7fSwgbm9kZS5pZCwgeyBbbm9kZS5pZF06IHRydWUgfSksXG4gICAgICAgIGFjdGl2ZU5vZGVJZHM6IG9sZFN0YXRlPy5hY3RpdmVOb2RlSWRzLFxuICAgICAgICBoaWRkZW5Ob2RlSWRzOiBvbGRTdGF0ZT8uaGlkZGVuTm9kZUlkcyxcbiAgICAgICAgZm9jdXNlZE5vZGVJZDogbm9kZS5pZCxcbiAgICAgIH07XG4gICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgc3RhdGUgaW4gb25lIGdvLCBzbyB3ZSBkb24ndCBjcmVhdGUgbXVsdGlwbGUgZXZlbnRzIGZvciB0aGUgY29uc3VtZXIuXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5zZXRTdGF0ZShuZXdTdGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFRSRUVfQUNUSU9OUy5UT0dHTEVfU0VMRUNURUQobm9kZS50cmVlTW9kZWwsIG5vZGUsIGV2ZW50KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktYW5ndWxhci10cmVlLXdyYXBwZXJcIlxuICBbY2xhc3Muc2t5LWFuZ3VsYXItdHJlZS1yZWFkLW9ubHldPVwicmVhZE9ubHlcIlxuPlxuICBAaWYgKHNob3dUb29sYmFyKSB7XG4gICAgPHNreS1hbmd1bGFyLXRyZWUtdG9vbGJhclxuICAgICAgW3Nob3dTZWxlY3RCdXR0b25zXT1cInNob3dTZWxlY3RCdXR0b25zKClcIlxuICAgICAgKGNsZWFyQWxsQ2xpY2spPVwib25DbGVhckFsbENsaWNrKClcIlxuICAgICAgKGNvbGxhcHNlQWxsQ2xpY2spPVwib25Db2xsYXBzZUFsbENsaWNrKClcIlxuICAgICAgKGV4cGFuZEFsbENsaWNrKT1cIm9uRXhwYW5kQWxsQ2xpY2soKVwiXG4gICAgICAoc2VsZWN0QWxsQ2xpY2spPVwib25TZWxlY3RBbGxDbGljaygpXCJcbiAgICAvPlxuICB9XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1hbmd1bGFyLXRyZWUtcm9vdFwiXG4gICAgcm9sZT1cInRyZWVcIlxuICAgIFthdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXT1cIm11bHRpc2VsZWN0YWJsZSgpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInRyZWUtcm9vdFwiIC8+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectorRef, Component, ElementRef, Input, ViewChild, inject, } from '@angular/core';\nimport { TreeModule, } from '@blackbaud/angular-tree-component';\nimport { SkyContentInfoProvider } from '@skyux/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyAngularTreeAdapterService } from './angular-tree-adapter.service';\nimport { SkyAngularTreeContextMenuComponent } from './angular-tree-context-menu.component';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@blackbaud/angular-tree-component\";\nimport * as i2 from \"@skyux/forms\";\nimport * as i3 from \"@skyux/help-inline\";\nimport * as i4 from \"@skyux/icon\";\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 */\nexport class SkyAngularTreeNodeComponent {\n set childFocusIndex(value) {\n if (value !== this.#_childFocusIndex) {\n this.#_childFocusIndex = value;\n if (this.#focusableChildren.length > 0 && value !== undefined) {\n this.#focusableChildren[value].focus();\n }\n else {\n this.nodeContentWrapperRef?.nativeElement.focus();\n }\n }\n }\n get childFocusIndex() {\n return this.#_childFocusIndex;\n }\n set focused(value) {\n this.tabIndex = value ? 0 : -1;\n if (value) {\n this.nodeContentWrapperRef?.nativeElement.focus();\n }\n }\n set isPartiallySelected(value) {\n if (value !== this.#_isPartiallySelected) {\n this.#_isPartiallySelected = value;\n this.#changeDetectorRef.markForCheck();\n }\n }\n get isPartiallySelected() {\n return this.#_isPartiallySelected;\n }\n set isSelected(value) {\n if (value !== this.#_isSelected) {\n this.#_isSelected = value;\n this.#changeDetectorRef.markForCheck();\n }\n }\n get isSelected() {\n return this.#_isSelected;\n }\n set tabIndex(value) {\n this.#_tabIndex = value;\n }\n get tabIndex() {\n return this.#_tabIndex;\n }\n set nodeName(value) {\n this.#_nodeName = value;\n this.#contentInfoProvider.patchInfo({\n descriptor: { type: 'text', value },\n });\n }\n get nodeName() {\n return this.#_nodeName;\n }\n #focusableChildren = [];\n #mouseDown = false;\n #_childFocusIndex;\n #_isPartiallySelected = false;\n #_isSelected = false;\n #_tabIndex = -1;\n #_nodeName = '';\n #adapterService = inject(SkyAngularTreeAdapterService);\n #changeDetectorRef = inject(ChangeDetectorRef);\n #contentInfoProvider = inject(SkyContentInfoProvider);\n #skyAngularTreeWrapper = inject(SkyAngularTreeWrapperComponent, {\n optional: true,\n });\n ngOnInit() {\n if (!this.#skyAngularTreeWrapper) {\n console.error(`<sky-angular-tree-node-wrapper> must be wrapped inside a <sky-angular-tree-wrapper> component.`);\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) => {\n if (this.node) {\n this.isSelected = this.node.isSelected;\n this.isPartiallySelected = this.node.isPartiallySelected;\n if (state.focusedNodeId) {\n this.focused = state.focusedNodeId === this.node.id;\n }\n }\n });\n this.node.treeModel.subscribe('updateData', () => {\n if (this.node) {\n this.nodeName = this.node.data.name;\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 ngAfterViewInit() {\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(this.nodeContentWrapperRef.nativeElement);\n this.#adapterService.setTabIndexOfFocusableEls(this.nodeContentWrapperRef.nativeElement, -1);\n }\n }, 1000);\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 ariaSelected() {\n if (!this.#skyAngularTreeWrapper) {\n return;\n }\n if (this.#skyAngularTreeWrapper.selectSingle) {\n return this.isSelected ? true : undefined;\n }\n if (!this.#isSelectable()) {\n return;\n }\n return !!this.isSelected;\n }\n showCheckbox() {\n // Check for checkbox mode enabled, but also respect leaf-node and single-select settings.\n return (!!this.node &&\n this.node.options.useCheckbox &&\n this.#isSelectable() &&\n (!this.#skyAngularTreeWrapper ||\n !this.#skyAngularTreeWrapper.selectSingle));\n }\n showSelectedClass() {\n return this.#isSelectable() && this.isSelected && !this.isPartiallySelected;\n }\n showActiveClass() {\n return (!!this.node &&\n this.node.isActive &&\n !this.node.treeModel.options.useCheckbox);\n }\n showTogglePlaceholder() {\n return (!this.node?.hasChildren &&\n !this.#skyAngularTreeWrapper?.selectLeafNodesOnly);\n }\n onFocus() {\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 onMouseDown() {\n this.#mouseDown = true;\n }\n onMouseUp() {\n this.#mouseDown = false;\n }\n onKeyDown(event) {\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 case 'down':\n case 'arrowdown':\n // Focus on next node.\n this.node?.treeModel.focusNextNode();\n break;\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 }\n else {\n this.childFocusIndex--;\n }\n }\n else {\n this.node?.setIsExpanded(false);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\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 (this.#focusableChildren.length <= 0 ||\n this.childFocusIndex === this.#focusableChildren.length - 1) {\n this.node?.setIsExpanded(true);\n }\n else {\n if (this.childFocusIndex === undefined) {\n this.childFocusIndex = 0;\n }\n else {\n this.childFocusIndex++;\n }\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n default:\n break;\n }\n }\n }\n #isSelectable() {\n if (this.#skyAngularTreeWrapper) {\n return (!!this.node &&\n (this.node.isLeaf ||\n !this.node.hasChildren ||\n !this.#skyAngularTreeWrapper.selectLeafNodesOnly));\n }\n else {\n return false;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: SkyAngularTreeNodeComponent, isStandalone: true, selector: \"sky-angular-tree-node\", inputs: { index: \"index\", node: \"node\", templates: \"templates\", helpKey: \"helpKey\", helpPopoverContent: \"helpPopoverContent\", helpPopoverTitle: \"helpPopoverTitle\" }, providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider], viewQueries: [{ propertyName: \"nodeContentWrapperRef\", first: true, predicate: [\"nodeContentWrapper\"], descendants: true, read: ElementRef }], ngImport: i0, template: \"@if (node && index !== undefined) {\\n <div\\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 @if (index === 0) {\\n <tree-node-drop-slot [dropIndex]=\\\"node.index\\\" [node]=\\\"node.parent\\\" />\\n }\\n\\n <!-- #region <tree-node-wrapper> custom template --->\\n <div\\n #nodeContentWrapper\\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-has-checkbox]=\\\"showCheckbox()\\\"\\n [class.sky-angular-tree-node-selected]=\\\"showSelectedClass()\\\"\\n [style.--sky-angular-tree-node-padding]=\\\"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 >\\n <!-- #region <tree-node-expander> custom template --->\\n <div class=\\\"sky-toggle-children-wrapper\\\">\\n @if (node.hasChildren) {\\n <button\\n class=\\\"sky-btn sky-btn-icon-borderless 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 [iconName]=\\\"node.isExpanded ? 'chevron-down' : 'chevron-right'\\\"\\n />\\n </button>\\n }\\n @if (showTogglePlaceholder()) {\\n <span class=\\\"toggle-children-placeholder\\\"> </span>\\n }\\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 @if (showCheckbox()) {\\n <sky-checkbox\\n [checked]=\\\"isSelected\\\"\\n [id]=\\\"node.data.id\\\"\\n [label]=\\\"nodeName\\\"\\n [indeterminate]=\\\"isPartiallySelected\\\"\\n (change)=\\\"node.mouseAction('checkboxClick', $event)\\\"\\n />\\n }\\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 /><span class=\\\"sky-control-help-container\\\">\\n @if (helpKey || helpPopoverContent) {\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"nodeName\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n />\\n } @else {\\n <ng-content select=\\\".sky-control-help\\\" />\\n }\\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 <!-- #endregion <tree-node-wrapper> -->\\n\\n <tree-node-children role=\\\"group\\\" [node]=\\\"node\\\" [templates]=\\\"templates\\\" />\\n\\n <tree-node-drop-slot [dropIndex]=\\\"node.index + 1\\\" [node]=\\\"node.parent\\\" />\\n </div>\\n}\\n\", dependencies: [{ kind: \"ngmodule\", type: TreeModule }, { kind: \"component\", type: i1.TreeNodeContent, selector: \"tree-node-content\", inputs: [\"node\", \"index\", \"template\"] }, { kind: \"directive\", type: i1.TreeDropDirective, selector: \"[treeDrop]\", inputs: [\"allowDragoverStyling\", \"treeAllowDrop\"], outputs: [\"treeDrop\", \"treeDropDragOver\", \"treeDropDragLeave\", \"treeDropDragEnter\"] }, { kind: \"directive\", type: i1.TreeDragDirective, selector: \"[treeDrag]\", inputs: [\"treeDrag\", \"treeDragEnabled\"] }, { kind: \"component\", type: i1.TreeNodeChildrenComponent, selector: \"tree-node-children\", inputs: [\"node\", \"templates\"] }, { kind: \"component\", type: i1.TreeNodeDropSlot, selector: \"TreeNodeDropSlot, tree-node-drop-slot\", inputs: [\"node\", \"dropIndex\"] }, { kind: \"component\", type: SkyAngularTreeContextMenuComponent, selector: \"sky-angular-tree-context-menu\" }, { kind: \"ngmodule\", type: SkyCheckboxModule }, { kind: \"component\", type: i2.λ3, selector: \"sky-checkbox\", inputs: [\"label\", \"labelledBy\", \"id\", \"disabled\", \"tabindex\", \"name\", \"helpPopoverContent\", \"helpPopoverTitle\", \"iconName\", \"checkboxType\", \"checked\", \"indeterminate\", \"required\", \"labelText\", \"labelHidden\", \"hintText\", \"stacked\", \"helpKey\"], outputs: [\"change\", \"checkedChange\", \"disabledChange\", \"indeterminateChange\"] }, { kind: \"ngmodule\", type: SkyHelpInlineModule }, { kind: \"component\", type: i3.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"ngmodule\", type: SkyIconModule }, { kind: \"component\", type: i4.λ1, selector: \"sky-icon\", inputs: [\"iconName\", \"variant\", \"iconSize\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeNodeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-angular-tree-node', providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider], imports: [\n TreeModule,\n SkyAngularTreeContextMenuComponent,\n SkyCheckboxModule,\n SkyHelpInlineModule,\n SkyIconModule,\n NgTemplateOutlet,\n ], template: \"@if (node && index !== undefined) {\\n <div\\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 @if (index === 0) {\\n <tree-node-drop-slot [dropIndex]=\\\"node.index\\\" [node]=\\\"node.parent\\\" />\\n }\\n\\n <!-- #region <tree-node-wrapper> custom template --->\\n <div\\n #nodeContentWrapper\\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-has-checkbox]=\\\"showCheckbox()\\\"\\n [class.sky-angular-tree-node-selected]=\\\"showSelectedClass()\\\"\\n [style.--sky-angular-tree-node-padding]=\\\"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 >\\n <!-- #region <tree-node-expander> custom template --->\\n <div class=\\\"sky-toggle-children-wrapper\\\">\\n @if (node.hasChildren) {\\n <button\\n class=\\\"sky-btn sky-btn-icon-borderless 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 [iconName]=\\\"node.isExpanded ? 'chevron-down' : 'chevron-right'\\\"\\n />\\n </button>\\n }\\n @if (showTogglePlaceholder()) {\\n <span class=\\\"toggle-children-placeholder\\\"> </span>\\n }\\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 @if (showCheckbox()) {\\n <sky-checkbox\\n [checked]=\\\"isSelected\\\"\\n [id]=\\\"node.data.id\\\"\\n [label]=\\\"nodeName\\\"\\n [indeterminate]=\\\"isPartiallySelected\\\"\\n (change)=\\\"node.mouseAction('checkboxClick', $event)\\\"\\n />\\n }\\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 /><span class=\\\"sky-control-help-container\\\">\\n @if (helpKey || helpPopoverContent) {\\n <sky-help-inline\\n [helpKey]=\\\"helpKey\\\"\\n [labelText]=\\\"nodeName\\\"\\n [popoverContent]=\\\"helpPopoverContent\\\"\\n [popoverTitle]=\\\"helpPopoverTitle\\\"\\n />\\n } @else {\\n <ng-content select=\\\".sky-control-help\\\" />\\n }\\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 <!-- #endregion <tree-node-wrapper> -->\\n\\n <tree-node-children role=\\\"group\\\" [node]=\\\"node\\\" [templates]=\\\"templates\\\" />\\n\\n <tree-node-drop-slot [dropIndex]=\\\"node.index + 1\\\" [node]=\\\"node.parent\\\" />\\n </div>\\n}\\n\" }]\n }], propDecorators: { index: [{\n type: Input\n }], node: [{\n type: Input\n }], templates: [{\n type: Input\n }], helpKey: [{\n type: Input\n }], helpPopoverContent: [{\n type: Input\n }], helpPopoverTitle: [{\n type: Input\n }], nodeContentWrapperRef: [{\n type: ViewChild,\n args: ['nodeContentWrapper', { read: ElementRef }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR0wsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsVUFBVSxHQUVYLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7QUFFbEY7Ozs7Ozs7OztHQVNHO0FBY0gsTUFBTSxPQUFPLDJCQUEyQjtJQTZDdEMsSUFB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O2tCQWJ2QyxTQUFTOytCQUNFLHVCQUF1QixhQUV0QixDQUFDLDRCQUE0QixFQUFFLHNCQUFzQixDQUFDLFdBQ3hEO3dCQUNQLFVBQVU7d0JBQ1Ysa0NBQWtDO3dCQUNsQyxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCOztzQkFPQSxLQUFLOztzQkFRTCxLQUFLOztzQkFNTCxLQUFLOztzQkFRTCxLQUFLOztzQkFRTCxLQUFLOztzQkFPTCxLQUFLOztzQkF1REwsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJVHJlZVN0YXRlLFxuICBUcmVlTW9kdWxlLFxuICBUcmVlTm9kZSxcbn0gZnJvbSAnQGJsYWNrYmF1ZC9hbmd1bGFyLXRyZWUtY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNvbnRlbnRJbmZvUHJvdmlkZXIgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lTW9kdWxlIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaWNvbic7XG5cbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5QW5ndWxhclRyZWVDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vYW5ndWxhci10cmVlLWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIFJlcGxhY2VzIHRoZSBkZWZhdWx0IHRyZWUgbm9kZSB0ZW1wbGF0ZSB3aXRoIGEgU0tZIFVYIG5vZGUgYXMgcGFydCBvZiB0aGUgYFNreUFuZ3VsYXJUcmVlTW9kdWxlYCB0aGF0XG4gKiBwcm92aWRlcyBTS1kgVVggY29tcG9uZW50cyBhbmQgc3R5bGVzIHRvIGNvbXBsZW1lbnQgdGhlIGBhbmd1bGFyLXRyZWUtY29tcG9uZW50YCBsaWJyYXJ5IGFuZCBhcHBseSBTS1kgVVhcbiAqIHRoZW1lcyBhbmQgZnVuY3Rpb25hbGl0eSB0byBoaWVyYXJjaGljYWwgbGlzdCB2aWV3cy4gWW91IG11c3Qgd3JhcCB0aGlzIGNvbXBvbmVudCBpbiBhbiBgbmctdGVtcGxhdGVgXG4gKiB0YWcgd2l0aCB0aGUgdGVtcGxhdGUgcmVmZXJlbmNlIHZhcmlhYmxlIGAjdHJlZU5vZGVGdWxsVGVtcGxhdGVgLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgdHJlZSBub2RlIHRlbXBsYXRlcyxcbiAqIHNlZSB0aGUgW0FuZ3VsYXIgdHJlZSBjb21wb25lbnQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL3RlbXBsYXRlcykuXG4gKiBUbyBkaXNwbGF5IGNvbnRleHQgbWVudXMgd2l0aCBhY3Rpb25zIGZvciBpbmRpdmlkdWFsIGl0ZW1zIGluIGhpZXJhcmNoaWNhbCBsaXN0cywgcGxhY2VcbiAqIFtkcm9wZG93bnNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtcG9wb3ZlcnMvZG9jcy9kcm9wZG93bj9kb2NzLWFjdGl2ZS10YWI9ZGVzaWduKSBpbnNpZGUgdGhlXG4gKiBBbmd1bGFyIHRyZWUgbm9kZSBjb21wb25lbnQsIHdoaWNoIGF1dG9tYXRpY2FsbHkgaGFuZGxlcyBzdHlsaW5nIGFuZCBwb3NpdGlvbmluZyBmb3IgY29udGV4dCBtZW51cy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFuZ3VsYXItdHJlZS1ub2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSwgU2t5Q29udGVudEluZm9Qcm92aWRlcl0sXG4gIGltcG9ydHM6IFtcbiAgICBUcmVlTW9kdWxlLFxuICAgIFNreUFuZ3VsYXJUcmVlQ29udGV4dE1lbnVDb21wb25lbnQsXG4gICAgU2t5Q2hlY2tib3hNb2R1bGUsXG4gICAgU2t5SGVscElubGluZU1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFuZ3VsYXJUcmVlTm9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgYGluZGV4YCBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJlbnQgYG5nLXRlbXBsYXRlYC5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGBub2RlYCBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJlbnQgYG5nLXRlbXBsYXRlYC4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgVHJlZU5vZGVgIG9iamVjdCwgc2VlIHRoZVxuICAgKiBbQW5ndWxhciB0cmVlIGNvbXBvbmVudCBkb2N1bWVudGF0aW9uXShodHRwczovL2FuZ3VsYXIyLXRyZWUucmVhZG1lLmlvL2RvY3MvYXBpKS5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbm9kZTogVHJlZU5vZGUgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBgdGVtcGxhdGVzYCBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJlbnQgYG5nLXRlbXBsYXRlYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0ZW1wbGF0ZXM6IGFueTtcblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBwbGFjZWQgYmVzaWRlIHRoZSB0cmVlIG5vZGUgbGFiZWwuIENsaWNraW5nIHRoZSBidXR0b24gaW52b2tlcyBbZ2xvYmFsIGhlbHBdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vZGV2ZWxvcC9nbG9iYWwtaGVscClcbiAgICogYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSB0cmVlIG5vZGUuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2V0IGNoaWxkRm9jdXNJbmRleCh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLiNfY2hpbGRGb2N1c0luZGV4KSB7XG4gICAgICB0aGlzLiNfY2hpbGRGb2N1c0luZGV4ID0gdmFsdWU7XG4gICAgICBpZiAodGhpcy4jZm9jdXNhYmxlQ2hpbGRyZW4ubGVuZ3RoID4gMCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuW3ZhbHVlXS5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ub2RlQ29udGVudFdyYXBwZXJSZWY/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaWxkRm9jdXNJbmRleCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfY2hpbGRGb2N1c0luZGV4O1xuICB9XG5cbiAgcHVibGljIHNldCBmb2N1c2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy50YWJJbmRleCA9IHZhbHVlID8gMCA6IC0xO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5ub2RlQ29udGVudFdyYXBwZXJSZWY/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IGlzUGFydGlhbGx5U2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19pc1BhcnRpYWxseVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLiNfaXNQYXJ0aWFsbHlTZWxlY3RlZCA9IHZhbHVlO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpc1BhcnRpYWxseVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaXNQYXJ0aWFsbHlTZWxlY3RlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgaXNTZWxlY3RlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy4jX2lzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuI19pc1NlbGVjdGVkID0gdmFsdWU7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19pc1NlbGVjdGVkO1xuICB9XG5cbiAgcHVibGljIHNldCB0YWJJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy4jX3RhYkluZGV4ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI190YWJJbmRleDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ25vZGVDb250ZW50V3JhcHBlcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgbm9kZUNvbnRlbnRXcmFwcGVyUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBzZXQgbm9kZU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuI19ub2RlTmFtZSA9IHZhbHVlO1xuICAgIHRoaXMuI2NvbnRlbnRJbmZvUHJvdmlkZXIucGF0Y2hJbmZvKHtcbiAgICAgIGRlc2NyaXB0b3I6IHsgdHlwZTogJ3RleHQnLCB2YWx1ZSB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBub2RlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfbm9kZU5hbWU7XG4gIH1cblxuICAjZm9jdXNhYmxlQ2hpbGRyZW46IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICAjbW91c2VEb3duID0gZmFsc2U7XG5cbiAgI19jaGlsZEZvY3VzSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjX2lzUGFydGlhbGx5U2VsZWN0ZWQgPSBmYWxzZTtcblxuICAjX2lzU2VsZWN0ZWQgPSBmYWxzZTtcblxuICAjX3RhYkluZGV4ID0gLTE7XG5cbiAgI19ub2RlTmFtZSA9ICcnO1xuXG4gIHJlYWRvbmx5ICNhZGFwdGVyU2VydmljZSA9IGluamVjdChTa3lBbmd1bGFyVHJlZUFkYXB0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI2NvbnRlbnRJbmZvUHJvdmlkZXIgPSBpbmplY3QoU2t5Q29udGVudEluZm9Qcm92aWRlcik7XG4gIHJlYWRvbmx5ICNza3lBbmd1bGFyVHJlZVdyYXBwZXIgPSBpbmplY3QoU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50LCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gIH0pO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlcikge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYDxza3ktYW5ndWxhci10cmVlLW5vZGUtd3JhcHBlcj4gbXVzdCBiZSB3cmFwcGVkIGluc2lkZSBhIDxza3ktYW5ndWxhci10cmVlLXdyYXBwZXI+IGNvbXBvbmVudC5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICB0aGlzLm5vZGVOYW1lID0gdGhpcy5ub2RlLmRhdGEubmFtZTtcbiAgICAgIC8vIEJlY2F1c2Ugd2UncmUgYmluZGluZyB0aGUgY2hlY2tib3ggdG8gbm9kZSdzIGNoaWxkcmVuIHByb3BlcnRpZXMsIHdlIG5lZWQgdG8gbWFudWFsbHkgY29udHJvbCBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgLy8gSGVyZSwgd2UgbGlzdGVuIHRvIHRoZSB0cmVlJ3Mgc3RhdGUgYW5kIGZvcmNlIGNoYW5nZSBkZXRlY3Rpb24gaW4gdGhlIHNldHRlcnMgaWYgdGhlIHZhbHVlIGhhcyBjaGFuZ2VkLlxuICAgICAgdGhpcy5ub2RlLnRyZWVNb2RlbC5zdWJzY3JpYmVUb1N0YXRlKChzdGF0ZTogSVRyZWVTdGF0ZSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICAgICAgdGhpcy5pc1NlbGVjdGVkID0gdGhpcy5ub2RlLmlzU2VsZWN0ZWQ7XG4gICAgICAgICAgdGhpcy5pc1BhcnRpYWxseVNlbGVjdGVkID0gdGhpcy5ub2RlLmlzUGFydGlhbGx5U2VsZWN0ZWQ7XG5cbiAgICAgICAgICBpZiAoc3RhdGUuZm9jdXNlZE5vZGVJZCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gc3RhdGUuZm9jdXNlZE5vZGVJZCA9PT0gdGhpcy5ub2RlLmlkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMubm9kZS50cmVlTW9kZWwuc3Vic2NyaWJlKCd1cGRhdGVEYXRhJywgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5ub2RlKSB7XG4gICAgICAgICAgdGhpcy5ub2RlTmFtZSA9IHRoaXMubm9kZS5kYXRhLm5hbWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBNYWtlIHRoZSBmaXJzdCByb290IG5vZGUgdGFiYmFibGUuXG4gICAgICBpZiAodGhpcy5ub2RlLmlzUm9vdCAmJiB0aGlzLm5vZGUuaW5kZXggPT09IDApIHtcbiAgICAgICAgdGhpcy50YWJJbmRleCA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBXYWl0IDFzIGZvciB0aGUgbm9kZSB0byByZW5kZXIsIHRoZW4gcmVzZXQgYWxsIGNoaWxkIHRhYkluZGV4ZXMgdG8gLTEuXG4gICAgLy8gVW5pdHMgc21hbGxlciB0aGFuIDFzIG1heSBjb25zaXN0ZW50bHkgZmFpbCBpZiB0aGVyZSBhcmUgbWFueSBub2Rlcywgb3IgbXVsdGlwbGUgdHJlZXMgYXJlIG9uIHRoZSBzYW1lIHNjcmVlbi5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm5vZGVDb250ZW50V3JhcHBlclJlZikge1xuICAgICAgICB0aGlzLiNmb2N1c2FibGVDaGlsZHJlbiA9IHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKFxuICAgICAgICAgIHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLnNldFRhYkluZGV4T2ZGb2N1c2FibGVFbHMoXG4gICAgICAgICAgdGhpcy5ub2RlQ29udGVudFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAtMSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBzaW5nbGUtc2VsZWN0LCBzZXQgYXJpYS1zZWxlY3RlZD10cnVlIGZvciB0aGUgc2VsZWN0ZWQgbm9kZSBhbmQgdW5kZWZpbmVkIGZvciBhbGwgdGhlIG90aGVycy5cbiAgICogRm9yIG11bHRpcGxlLXNlbGVjdCwgc2V0IGFyaWEtc2VsZWN0ZWQgdG8gZWl0aGVyIHRydWUgb3IgZmFsc2UuXG4gICAqIElmIG5vZGUgY2Fubm90IGJlIHNlbGVjdGVkLCBhcmlhLXNlbGVjdGVkIHNob3VsZCBiZSB1bmRlZmluZWQgKGUuZy4gcGFyZW50IG5vZGVzIGluIGxlYWYtc2VsZWN0LW9ubHkgbW9kZSkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGFyaWFTZWxlY3RlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIuc2VsZWN0U2luZ2xlKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc1NlbGVjdGVkID8gdHJ1ZSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuI2lzU2VsZWN0YWJsZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuICEhdGhpcy5pc1NlbGVjdGVkO1xuICB9XG5cbiAgcHVibGljIHNob3dDaGVja2JveCgpOiBib29sZWFuIHtcbiAgICAvLyBDaGVjayBmb3IgY2hlY2tib3ggbW9kZSBlbmFibGVkLCBidXQgYWxzbyByZXNwZWN0IGxlYWYtbm9kZSBhbmQgc2luZ2xlLXNlbGVjdCBzZXR0aW5ncy5cbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLm5vZGUgJiZcbiAgICAgIHRoaXMubm9kZS5vcHRpb25zLnVzZUNoZWNrYm94ICYmXG4gICAgICB0aGlzLiNpc1NlbGVjdGFibGUoKSAmJlxuICAgICAgKCF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIgfHxcbiAgICAgICAgIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlci5zZWxlY3RTaW5nbGUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93U2VsZWN0ZWRDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jaXNTZWxlY3RhYmxlKCkgJiYgdGhpcy5pc1NlbGVjdGVkICYmICF0aGlzLmlzUGFydGlhbGx5U2VsZWN0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2hvd0FjdGl2ZUNsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMubm9kZSAmJlxuICAgICAgdGhpcy5ub2RlLmlzQWN0aXZlICYmXG4gICAgICAhdGhpcy5ub2RlLnRyZWVNb2RlbC5vcHRpb25zLnVzZUNoZWNrYm94XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93VG9nZ2xlUGxhY2Vob2xkZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICF0aGlzLm5vZGU/Lmhhc0NoaWxkcmVuICYmXG4gICAgICAhdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyPy5zZWxlY3RMZWFmTm9kZXNPbmx5XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzKCk6IHZvaWQge1xuICAgIC8vIDx0cmVlLW5vZGUtY29udGVudD4gaGFzIGl0cyBvd24gY2xpY2sgaGFuZGxlciwgc28gd2UgbmVlZCB0byBjaGVjayBpZiB0aGlzIGZvY3VzIGV2ZW50XG4gICAgLy8gaXMgY29taW5nIGZyb20gdGhlIG1vdXNlIGNsaWNrIG9yIHRoZSBrZXlib2FyZCB0byBwcmV2ZW50IHRoZSBsb2dpYyBmcm9tIHJ1bm5pbmcgdHdpY2UuXG4gICAgaWYgKCF0aGlzLiNtb3VzZURvd24pIHtcbiAgICAgIHRoaXMubm9kZT8udHJlZU1vZGVsLnNldEZvY3VzKHRydWUpO1xuICAgICAgdGhpcy5ub2RlPy5mb2N1cygpO1xuICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTW91c2VEb3duKCk6IHZvaWQge1xuICAgIHRoaXMuI21vdXNlRG93biA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgb25Nb3VzZVVwKCk6IHZvaWQge1xuICAgIHRoaXMuI21vdXNlRG93biA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCkge1xuICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlICd1cCc6XG4gICAgICAgIGNhc2UgJ2Fycm93dXAnOlxuICAgICAgICAgIC8vIEZvY3VzIG9uIHByZXZpb3VzIG5vZGUuXG4gICAgICAgICAgdGhpcy5ub2RlPy50cmVlTW9kZWwuZm9jdXNQcmV2aW91c05vZGUoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdkb3duJzpcbiAgICAgICAgY2FzZSAnYXJyb3dkb3duJzpcbiAgICAgICAgICAvLyBGb2N1cyBvbiBuZXh0IG5vZGUuXG4gICAgICAgICAgdGhpcy5ub2RlPy50cmVlTW9kZWwuZm9jdXNOZXh0Tm9kZSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBjYXNlICdhcnJvd2xlZnQnOlxuICAgICAgICAgIC8vIEN5Y2xlIGJhY2t3YXJkcyB0aHJvdWdoIGludGVyYWN0aXZlIGNoaWxkIGVsZW1lbnRzXG4gICAgICAgICAgLy8gSWYgdXNlciByZWFjaGVzIHRoZSBiZWdpbm5pbmcsIGFjdGl2YXRlIGRyaWxsIHVwLlxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKHRoaXMuY2hpbGRGb2N1c0luZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoaWxkRm9jdXNJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4LS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubm9kZT8uc2V0SXNFeHBhbmRlZChmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICBjYXNlICdhcnJvd3JpZ2h0JzpcbiAgICAgICAgICAvLyBDeWNsZSBmb3J3YXJkIHRocm91Z2ggaW50ZXJhY3RpdmUgY2hpbGQgZWxlbWVudHMuXG4gICAgICAgICAgLy8gSWYgdXNlciByZWFjaGVzIHRoZSBlbmQsIGFjdGl2YXRlIGRyaWxsIGRvd24uXG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLiNmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGggPD0gMCB8fFxuICAgICAgICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXggPT09IHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCAtIDFcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMubm9kZT8uc2V0SXNFeHBhbmRlZCh0cnVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2hpbGRGb2N1c0luZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXggPSAwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXgrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNpc1NlbGVjdGFibGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlcikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgISF0aGlzLm5vZGUgJiZcbiAgICAgICAgKHRoaXMubm9kZS5pc0xlYWYgfHxcbiAgICAgICAgICAhdGhpcy5ub2RlLmhhc0NoaWxkcmVuIHx8XG4gICAgICAgICAgIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlci5zZWxlY3RMZWFmTm9kZXNPbmx5KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIiwiQGlmIChub2RlICYmIGluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgPGRpdlxuICAgIFtjbGFzc109XCJub2RlLmdldENsYXNzKClcIlxuICAgIFtjbGFzcy50cmVlLW5vZGVdPVwidHJ1ZVwiXG4gICAgW2NsYXNzLnRyZWUtbm9kZS1hY3RpdmVdPVwibm9kZS5pc0FjdGl2ZVwiXG4gICAgW2NsYXNzLnRyZWUtbm9kZS1jb2xsYXBzZWRdPVwibm9kZS5pc0NvbGxhcHNlZCAmJiBub2RlLmhhc0NoaWxkcmVuXCJcbiAgICBbY2xhc3MudHJlZS1ub2RlLWV4cGFuZGVkXT1cIm5vZGUuaXNFeHBhbmRlZCAmJiBub2RlLmhhc0NoaWxkcmVuXCJcbiAgICBbY2xhc3MudHJlZS1ub2RlLWZvY3VzZWRdPVwibm9kZS5pc0ZvY3VzZWRcIlxuICAgIFtjbGFzcy50cmVlLW5vZGUtbGVhZl09XCJub2RlLmlzTGVhZlwiXG4gID5cbiAgICBAaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICA8dHJlZS1ub2RlLWRyb3Atc2xvdCBbZHJvcEluZGV4XT1cIm5vZGUuaW5kZXhcIiBbbm9kZV09XCJub2RlLnBhcmVudFwiIC8+XG4gICAgfVxuXG4gICAgPCEtLSAjcmVnaW9uIDx0cmVlLW5vZGUtd3JhcHBlcj4gY3VzdG9tIHRlbXBsYXRlIC0tLT5cbiAgICA8ZGl2XG4gICAgICAjbm9kZUNvbnRlbnRXcmFwcGVyXG4gICAgICBjbGFzcz1cIm5vZGUtd3JhcHBlclwiXG4gICAgICByb2xlPVwidHJlZWl0ZW1cIlxuICAgICAgW2FsbG93RHJhZ292ZXJTdHlsaW5nXT1cIm5vZGUuYWxsb3dEcmFnb3ZlclN0eWxpbmcoKVwiXG4gICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwibm9kZS5pc0FjdGl2ZVwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm5vZGUuY2hpbGRyZW4/Lmxlbmd0aCA/IG5vZGUuaXNFeHBhbmRlZCA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJhcmlhU2VsZWN0ZWQoKVwiXG4gICAgICBbYXR0ci5kYXRhLW5vZGUtaWRdPVwibm9kZS5pZFwiXG4gICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJJbmRleFwiXG4gICAgICBbY2xhc3Muc2t5LWFuZ3VsYXItdHJlZS1ub2RlLWFjdGl2ZV09XCJzaG93QWN0aXZlQ2xhc3MoKVwiXG4gICAgICBbY2xhc3Muc2t5LWFuZ3VsYXItdHJlZS1ub2RlLWhhcy1jaGVja2JveF09XCJzaG93Q2hlY2tib3goKVwiXG4gICAgICBbY2xhc3Muc2t5LWFuZ3VsYXItdHJlZS1ub2RlLXNlbGVjdGVkXT1cInNob3dTZWxlY3RlZENsYXNzKClcIlxuICAgICAgW3N0eWxlLi0tc2t5LWFuZ3VsYXItdHJlZS1ub2RlLXBhZGRpbmddPVwibm9kZS5nZXROb2RlUGFkZGluZygpXCJcbiAgICAgIFt0cmVlQWxsb3dEcm9wXT1cIm5vZGUuYWxsb3dEcm9wXCJcbiAgICAgIFt0cmVlRHJhZ109XCJub2RlXCJcbiAgICAgIFt0cmVlRHJhZ0VuYWJsZWRdPVwibm9kZS5hbGxvd0RyYWcoKVwiXG4gICAgICAoY29udGV4dG1lbnUpPVwibm9kZS5tb3VzZUFjdGlvbignY29udGV4dE1lbnUnLCAkZXZlbnQpXCJcbiAgICAgIChkYmxjbGljayk9XCJub2RlLm1vdXNlQWN0aW9uKCdkYmxDbGljaycsICRldmVudClcIlxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKClcIlxuICAgICAgKG1vdXNldXApPVwib25Nb3VzZVVwKClcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgKHRyZWVEcm9wKT1cIm5vZGUub25Ecm9wKCRldmVudClcIlxuICAgICAgKHRyZWVEcm9wRHJhZ0VudGVyKT1cIm5vZGUubW91c2VBY3Rpb24oJ2RyYWdFbnRlcicsICRldmVudClcIlxuICAgICAgKHRyZWVEcm9wRHJhZ0xlYXZlKT1cIm5vZGUubW91c2VBY3Rpb24oJ2RyYWdMZWF2ZScsICRldmVudClcIlxuICAgICAgKHRyZWVEcm9wRHJhZ092ZXIpPVwibm9kZS5tb3VzZUFjdGlvbignZHJhZ092ZXInLCAkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8IS0tICNyZWdpb24gPHRyZWUtbm9kZS1leHBhbmRlcj4gY3VzdG9tIHRlbXBsYXRlIC0tLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktdG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXJcIj5cbiAgICAgICAgQGlmIChub2RlLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4taWNvbi1ib3JkZXJsZXNzIHNreS10b2dnbGUtY2hpbGRyZW5cIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibm9kZU5hbWVcIlxuICAgICAgICAgICAgW2NsYXNzLnRvZ2dsZS1jaGlsZHJlbi13cmFwcGVyLWV4cGFuZGVkXT1cIm5vZGUuaXNFeHBhbmRlZFwiXG4gICAgICAgICAgICBbY2xhc3MudG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXItY29sbGFwc2VkXT1cIm5vZGUuaXNDb2xsYXBzZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm5vZGUubW91c2VBY3Rpb24oJ2V4cGFuZGVyQ2xpY2snLCAkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAgICAgW2ljb25OYW1lXT1cIm5vZGUuaXNFeHBhbmRlZCA/ICdjaGV2cm9uLWRvd24nIDogJ2NoZXZyb24tcmlnaHQnXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChzaG93VG9nZ2xlUGxhY2Vob2xkZXIoKSkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9nZ2xlLWNoaWxkcmVuLXBsYWNlaG9sZGVyXCI+IDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tICNlbmRyZWdpb24gPHRyZWUtbm9kZS1leHBhbmRlcj4gLS0tPlxuXG4gICAgICA8IS0tIE5vdGU6IHdlJ3ZlIG1hZGUgY2hhbmdlcyB0byB0aGUgY2xpY2sgZXZlbnQsIHRhYmluZGV4LCBhbmQgY2xhc3NlcyB3aGVuIGNvbXBhcmVkIHRvIHRoZSBvcmlnaW5hbCB0ZW1wbGF0ZS4gLS0+XG4gICAgICA8IS0tIGh0dHBzOi8vZ2l0aHViLmNvbS81MDB0ZWNoL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvYmxvYi9tYXN0ZXIvbGliL2NvbXBvbmVudHMvdHJlZS1ub2RlLXdyYXBwZXIuY29tcG9uZW50LnRzIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm5vZGUtY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgIEBpZiAoc2hvd0NoZWNrYm94KCkpIHtcbiAgICAgICAgICA8c2t5LWNoZWNrYm94XG4gICAgICAgICAgICBbY2hlY2tlZF09XCJpc1NlbGVjdGVkXCJcbiAgICAgICAgICAgIFtpZF09XCJub2RlLmRhdGEuaWRcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIm5vZGVOYW1lXCJcbiAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cImlzUGFydGlhbGx5U2VsZWN0ZWRcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJub2RlLm1vdXNlQWN0aW9uKCdjaGVja2JveENsaWNrJywgJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuXG4gICAgICAgIDxza3ktYW5ndWxhci10cmVlLWNvbnRleHQtbWVudT5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktZHJvcGRvd25cIiAvPlxuICAgICAgICA8L3NreS1hbmd1bGFyLXRyZWUtY29udGV4dC1tZW51PlxuXG4gICAgICAgIDx0cmVlLW5vZGUtY29udGVudFxuICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgW25vZGVdPVwibm9kZVwiXG4gICAgICAgICAgW3RlbXBsYXRlXT1cInRlbXBsYXRlcz8udHJlZU5vZGVUZW1wbGF0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm5vZGUubW91c2VBY3Rpb24oJ2NsaWNrJywgJGV2ZW50KVwiXG4gICAgICAgIC8+PHNwYW4gY2xhc3M9XCJza3ktY29udHJvbC1oZWxwLWNvbnRhaW5lclwiPlxuICAgICAgICAgIEBpZiAoaGVscEtleSB8fCBoZWxwUG9wb3ZlckNvbnRlbnQpIHtcbiAgICAgICAgICAgIDxza3ktaGVscC1pbmxpbmVcbiAgICAgICAgICAgICAgW2hlbHBLZXldPVwiaGVscEtleVwiXG4gICAgICAgICAgICAgIFtsYWJlbFRleHRdPVwibm9kZU5hbWVcIlxuICAgICAgICAgICAgICBbcG9wb3ZlckNvbnRlbnRdPVwiaGVscFBvcG92ZXJDb250ZW50XCJcbiAgICAgICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJoZWxwUG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWNvbnRyb2wtaGVscFwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlcz8udHJlZU5vZGVXcmFwcGVyVGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgJGltcGxpY2l0OiBub2RlLFxuICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICBpbmRleDogaW5kZXgsXG4gICAgICAgIHRlbXBsYXRlczogdGVtcGxhdGVzXG4gICAgICB9XCJcbiAgICAvPlxuICAgIDwhLS0gI2VuZHJlZ2lvbiA8dHJlZS1ub2RlLXdyYXBwZXI+IC0tPlxuXG4gICAgPHRyZWUtbm9kZS1jaGlsZHJlbiByb2xlPVwiZ3JvdXBcIiBbbm9kZV09XCJub2RlXCIgW3RlbXBsYXRlc109XCJ0ZW1wbGF0ZXNcIiAvPlxuXG4gICAgPHRyZWUtbm9kZS1kcm9wLXNsb3QgW2Ryb3BJbmRleF09XCJub2RlLmluZGV4ICsgMVwiIFtub2RlXT1cIm5vZGUucGFyZW50XCIgLz5cbiAgPC9kaXY+XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\nimport { SkyAngularTreeComponentResourcesModule } from '../shared/sky-angular-tree-component-resources.module';\nimport { SkyAngularTreeContextMenuComponent } from './angular-tree-context-menu.component';\nimport { SkyAngularTreeNodeComponent } from './angular-tree-node.component';\nimport { SkyAngularTreeToolbarComponent } from './angular-tree-toolbar.component';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\nimport * as i0 from \"@angular/core\";\nexport class SkyAngularTreeModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeModule, imports: [SkyAngularTreeComponentResourcesModule,\n SkyAngularTreeContextMenuComponent,\n SkyAngularTreeNodeComponent,\n SkyAngularTreeToolbarComponent,\n SkyAngularTreeWrapperComponent], exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeModule, providers: [SkyCoreAdapterService], imports: [SkyAngularTreeComponentResourcesModule,\n SkyAngularTreeNodeComponent,\n SkyAngularTreeToolbarComponent,\n SkyAngularTreeWrapperComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAngularTreeModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n SkyAngularTreeComponentResourcesModule,\n SkyAngularTreeContextMenuComponent,\n SkyAngularTreeNodeComponent,\n SkyAngularTreeToolbarComponent,\n SkyAngularTreeWrapperComponent,\n ],\n providers: [SkyCoreAdapterService],\n exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvbW9kdWxlcy9hbmd1bGFyLXRyZWUvYW5ndWxhci10cmVlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUUvRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFhbEYsTUFBTSxPQUFPLG9CQUFvQjsrR0FBcEIsb0JBQW9CO2dIQUFwQixvQkFBb0IsWUFUN0Isc0NBQXNDO1lBQ3RDLGtDQUFrQztZQUNsQywyQkFBMkI7WUFDM0IsOEJBQThCO1lBQzlCLDhCQUE4QixhQUd0QiwyQkFBMkIsRUFBRSw4QkFBOEI7Z0hBRTFELG9CQUFvQixhQUhwQixDQUFDLHFCQUFxQixDQUFDLFlBTmhDLHNDQUFzQztZQUV0QywyQkFBMkI7WUFDM0IsOEJBQThCO1lBQzlCLDhCQUE4Qjs7NEZBS3JCLG9CQUFvQjtrQkFYaEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1Asc0NBQXNDO3dCQUN0QyxrQ0FBa0M7d0JBQ2xDLDJCQUEyQjt3QkFDM0IsOEJBQThCO3dCQUM5Qiw4QkFBOEI7cUJBQy9CO29CQUNELFNBQVMsRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSw4QkFBOEIsQ0FBQztpQkFDdkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lBbmd1bGFyVHJlZUNvbXBvbmVudFJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktYW5ndWxhci10cmVlLWNvbXBvbmVudC1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5QW5ndWxhclRyZWVDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vYW5ndWxhci10cmVlLWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QW5ndWxhclRyZWVOb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9hbmd1bGFyLXRyZWUtbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QW5ndWxhclRyZWVUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9hbmd1bGFyLXRyZWUtdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgU2t5QW5ndWxhclRyZWVDb21wb25lbnRSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5QW5ndWxhclRyZWVDb250ZXh0TWVudUNvbXBvbmVudCxcbiAgICBTa3lBbmd1bGFyVHJlZU5vZGVDb21wb25lbnQsXG4gICAgU2t5QW5ndWxhclRyZWVUb29sYmFyQ29tcG9uZW50LFxuICAgIFNreUFuZ3VsYXJUcmVlV3JhcHBlckNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlXSxcbiAgZXhwb3J0czogW1NreUFuZ3VsYXJUcmVlTm9kZUNvbXBvbmVudCwgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtYW5ndWxhci10cmVlLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9za3l1eC1hbmd1bGFyLXRyZWUtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1","i2","i3","i4"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA,MAAM,SAAS,GAAG;AAClB,IAAI,OAAO,EAAE;AACb,QAAQ,4BAA4B,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;AAC9D,QAAQ,kCAAkC,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AAC1E,QAAQ,+BAA+B,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAChE,QAAQ,6BAA6B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;AAC5D,QAAQ,6BAA6B,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;AAChE,KAAK;AACL,IAAI,OAAO,EAAE;AACb,QAAQ,4BAA4B,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;AACjE,QAAQ,kCAAkC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE;AAChF,QAAQ,+BAA+B,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;AAC/D,QAAQ,6BAA6B,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC9D,QAAQ,6BAA6B,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;AACvE,KAAK;AACL,CAAC;AACD,sBAAsB,CAAC,YAAY,CAAC,SAAS,CAAC;AAC9C;AACA;AACA;AACO,MAAM,sCAAsC,CAAC;AACpD,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AACpL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AACpL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE,UAAU,EAAE,CAAC;AACjJ,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,aAAa,CAAC;AAC5C,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACtCb;AACA;AACA;AACO,MAAM,kCAAkC,CAAC;AAChD,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACrM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,kCAAkC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,+BAA+B,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,2EAA2E,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjW;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,UAAU,EAAE,CAAC;AAC7I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,2EAA2E,EAAE;AACxM,SAAS,CAAC,EAAE,CAAC;;ACTb;AACA;AACA;AACO,MAAM,4BAA4B,CAAC;AAC1C,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,OAAO,CAAC;AACrE,IAAI;AACJ,IAAI,yBAAyB,CAAC,OAAO,EAAE,QAAQ,EAAE;AACjD,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,OAAO,CAAC;AACnF,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM;AACvC,QAAQ,OAAO,KAAK,EAAE,EAAE;AACxB,YAAY,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,QAAQ;AACnD,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAChM,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;AACnJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACvI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACfb;AACA;AACA;AACO,MAAM,8BAA8B,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAE;AAC/C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,YAAY,EAAE;AAClD,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,EAAE;AAChD,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,EAAE;AAChD,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACjC,IAAI;AACJ,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AACpC,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAClC,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAClC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACjM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,s9CAAs9C,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,0BAA0B,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC19E;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,s9CAAs9C,EAAE;AACzoD,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,iBAAiB,EAAE,CAAC;AAClD,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;AC1CnB;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,8BAA8B,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,mBAAmB,GAAG,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK;AAChC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,EAAE;AACnC,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,IAAI,CAAC,YAAY;AAC7B,YAAY,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE;AAC/D,YAAY,OAAO,CAAC,IAAI,CAAC,qGAAqG;AAC9H,gBAAgB,kFAAkF,CAAC;AACnG,QAAQ;AACR,QAAQ,IAAI,CAAC,sBAAsB,EAAE;AACrC,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa;AACpC,YAAY,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW;AAC5D,YAAY,CAAC,IAAI,CAAC,YAAY;AAC9B,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;AACtD,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE;AACxE,YAAY,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG;AACvC,gBAAgB,GAAG,YAAY;AAC/B,gBAAgB,mBAAmB,EAAE,EAAE;AACvC,aAAa;AACb,QAAQ;AACR,IAAI;AACJ,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,WAAW,EAAE;AACnD,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,EAAE;AACjD,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;AACtD;AACA,YAAY,IAAI,CAAC,iBAAiB,GAAG,EAAE;AACvC,YAAY,MAAM,oBAAoB,GAAG,CAAC,IAAI,KAAK;AACnD,gBAAgB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE;AACtD,oBAAoB,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,mBAAmB,CAAC;AACnE,gBAAgB,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACtD,oBAAoB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;AAC1D,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACpC,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC7E,YAAY,CAAC;AACb,YAAY,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC;AAC1E;AACA,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE;AACxE,YAAY,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG;AACvC,gBAAgB,GAAG,YAAY;AAC/B,gBAAgB,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;AAC3D,aAAa;AACb,QAAQ;AACR,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa;AACpC,YAAY,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW;AAC5D,YAAY,CAAC,IAAI,CAAC,YAAY;AAC9B,IAAI;AACJ,IAAI,aAAa,CAAC,IAAI,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,mBAAmB;AAC5E,IAAI;AACJ,IAAI,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;AAC1C,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AAClE,YAAY,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC;AAC7C,QAAQ;AACR,aAAa;AACb,YAAY,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AACzD,QAAQ;AACR,QAAQ;AACR,IAAI;AACJ,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;AACxC,QAAQ,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC;AACtE;AACA,QAAQ,IAAI,CAAC,IAAI,IAAI,YAAY,KAAK,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,YAAY,IAAI,KAAK,CAAC,gBAAgB,EAAE;AACxC,gBAAgB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;AACpC,YAAY;AACZ,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AAClD,IAAI;AACJ,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,aAAa;AACxF,QAAQ,IAAI,oBAAoB,EAAE,KAAK,EAAE;AACzC;AACA,YAAY,oBAAoB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AAChH,QAAQ;AACR,QAAQ,IAAI,oBAAoB,EAAE,IAAI,EAAE;AACxC,YAAY,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AACnH,YAAY,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AACnH;AACA;AACA;AACA,YAAY,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS;AACrF;AACA,YAAY,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS;AACpF;AACA,YAAY,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS;AACpF;AACA,YAAY,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS;AAClF,QAAQ;AACR,IAAI;AACJ,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE;AACjC;AACA,QAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACnD,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,EAAE;AACrE,YAAY,MAAM,QAAQ,GAAG;AAC7B,gBAAgB,eAAe,EAAE,QAAQ,EAAE,eAAe;AAC1D,gBAAgB,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;AACpF,gBAAgB,aAAa,EAAE,QAAQ,EAAE,aAAa;AACtD,gBAAgB,aAAa,EAAE,QAAQ,EAAE,aAAa;AACtD,gBAAgB,aAAa,EAAE,IAAI,CAAC,EAAE;AACtC,aAAa;AACb;AACA,YAAY,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC5D,QAAQ;AACR,aAAa;AACb,YAAY,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC;AACrE,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACjM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,+kBAA+kB,EAAE,MAAM,EAAE,CAAC,q8PAAq8P,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACnwS;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,8BAA8B,CAAC,EAAE,QAAQ,EAAE,+kBAA+kB,EAAE,MAAM,EAAE,CAAC,q8PAAq8P,CAAC,EAAE;AACnsR,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC;AACzC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;AACtC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,aAAa;AACpC,aAAa,CAAC,EAAE,EAAE,CAAC;;AC5KnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,2BAA2B,CAAC;AACzC,IAAI,IAAI,eAAe,CAAC,KAAK,EAAE;AAC/B,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,EAAE;AAC9C,YAAY,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC1C,YAAY,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,SAAS,EAAE;AAC3E,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE;AACtD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,KAAK,EAAE;AACjE,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,iBAAiB;AACrC,IAAI;AACJ,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AACtC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,qBAAqB,EAAE,aAAa,CAAC,KAAK,EAAE;AAC7D,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,mBAAmB,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,qBAAqB,EAAE;AAClD,YAAY,IAAI,CAAC,qBAAqB,GAAG,KAAK;AAC9C,YAAY,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAClD,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,mBAAmB,GAAG;AAC9B,QAAQ,OAAO,IAAI,CAAC,qBAAqB;AACzC,IAAI;AACJ,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE;AAC1B,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE;AACzC,YAAY,IAAI,CAAC,YAAY,GAAG,KAAK;AACrC,YAAY,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAClD,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,YAAY;AAChC,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK;AAC/B,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK;AAC/B,QAAQ,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;AAC5C,YAAY,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAC/C,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B,IAAI;AACJ,IAAI,kBAAkB,GAAG,EAAE;AAC3B,IAAI,UAAU,GAAG,KAAK;AACtB,IAAI,iBAAiB;AACrB,IAAI,qBAAqB,GAAG,KAAK;AACjC,IAAI,YAAY,GAAG,KAAK;AACxB,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAI,UAAU,GAAG,EAAE;AACnB,IAAI,eAAe,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAC1D,IAAI,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAClD,IAAI,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACzD,IAAI,sBAAsB,GAAG,MAAM,CAAC,8BAA8B,EAAE;AACpE,QAAQ,QAAQ,EAAE,IAAI;AACtB,KAAK,CAAC;AACN,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC1C,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,8FAA8F,CAAC,CAAC;AAC3H,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;AACvB,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;AAC/C;AACA;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,KAAK,KAAK;AAC5D,gBAAgB,IAAI,IAAI,CAAC,IAAI,EAAE;AAC/B,oBAAoB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU;AAC1D,oBAAoB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB;AAC5E,oBAAoB,IAAI,KAAK,CAAC,aAAa,EAAE;AAC7C,wBAAwB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;AAC3E,oBAAoB;AACpB,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM;AAC9D,gBAAgB,IAAI,IAAI,CAAC,IAAI,EAAE;AAC/B,oBAAoB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;AACvD,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd;AACA,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;AAC3D,gBAAgB,IAAI,CAAC,QAAQ,GAAG,CAAC;AACjC,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB;AACA;AACA,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5C,gBAAgB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;AAC7H,gBAAgB,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAC5G,YAAY;AACZ,QAAQ,CAAC,EAAE,IAAI,CAAC;AAChB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC1C,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE;AACtD,YAAY,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS;AACrD,QAAQ;AACR,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;AACnC,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU;AAChC,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB;AACA,QAAQ,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI;AAC3B,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW;AACzC,YAAY,IAAI,CAAC,aAAa,EAAE;AAChC,aAAa,CAAC,IAAI,CAAC,sBAAsB;AACzC,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC;AAC1D,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,mBAAmB;AACnF,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI;AAC3B,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC9B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW;AACpD,IAAI;AACJ,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW;AACvC,YAAY,CAAC,IAAI,CAAC,sBAAsB,EAAE,mBAAmB;AAC7D,IAAI;AACJ,IAAI,OAAO,GAAG;AACd;AACA;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC9B,YAAY,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC/C,YAAY,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;AAC9B,YAAY,IAAI,CAAC,eAAe,GAAG,SAAS;AAC5C,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI;AAC9B,IAAI;AACJ,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK;AAC/B,IAAI;AACJ,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB;AACA,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,CAAC,MAAM,EAAE;AACrD,YAAY,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE;AAC/C,YAAY,QAAQ,GAAG;AACvB,gBAAgB,KAAK,IAAI;AACzB,gBAAgB,KAAK,SAAS;AAC9B;AACA,oBAAoB,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,iBAAiB,EAAE;AAC5D,oBAAoB;AACpB,gBAAgB,KAAK,MAAM;AAC3B,gBAAgB,KAAK,WAAW;AAChC;AACA,oBAAoB,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE;AACxD,oBAAoB;AACpB,gBAAgB,KAAK,MAAM;AAC3B,gBAAgB,KAAK,WAAW;AAChC;AACA;AACA;AACA,oBAAoB,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;AAC5D,wBAAwB,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE;AACxD,4BAA4B,IAAI,CAAC,eAAe,GAAG,SAAS;AAC5D,wBAAwB;AACxB,6BAA6B;AAC7B,4BAA4B,IAAI,CAAC,eAAe,EAAE;AAClD,wBAAwB;AACxB,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;AACvD,oBAAoB;AACpB,oBAAoB,KAAK,CAAC,eAAe,EAAE;AAC3C,oBAAoB,KAAK,CAAC,cAAc,EAAE;AAC1C,oBAAoB;AACpB,gBAAgB,KAAK,OAAO;AAC5B,gBAAgB,KAAK,YAAY;AACjC;AACA;AACA;AACA,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,CAAC;AAC3D,wBAAwB,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;AACrF,wBAAwB,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;AACtD,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;AAChE,4BAA4B,IAAI,CAAC,eAAe,GAAG,CAAC;AACpD,wBAAwB;AACxB,6BAA6B;AAC7B,4BAA4B,IAAI,CAAC,eAAe,EAAE;AAClD,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,KAAK,CAAC,eAAe,EAAE;AAC3C,oBAAoB,KAAK,CAAC,cAAc,EAAE;AAC1C,oBAAoB;AACpB,gBAAgB;AAChB,oBAAoB;AACpB;AACA,QAAQ;AACR,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,IAAI,CAAC,sBAAsB,EAAE;AACzC,YAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI;AAC/B,iBAAiB,IAAI,CAAC,IAAI,CAAC,MAAM;AACjC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW;AAC1C,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC;AACrE,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,CAAC,4BAA4B,EAAE,sBAAsB,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,0jJAA0jJ,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,sBAAsB,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,yBAAyB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,uCAAuC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kCAAkC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACr9N;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,uBAAuB,EAAE,SAAS,EAAE,CAAC,4BAA4B,EAAE,sBAAsB,CAAC,EAAE,OAAO,EAAE;AACpI,wBAAwB,UAAU;AAClC,wBAAwB,kCAAkC;AAC1D,wBAAwB,iBAAiB;AACzC,wBAAwB,mBAAmB;AAC3C,wBAAwB,aAAa;AACrC,wBAAwB,gBAAgB;AACxC,qBAAqB,EAAE,QAAQ,EAAE,0jJAA0jJ,EAAE;AAC7lJ,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC;AACtC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACrC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,qBAAqB,EAAE,CAAC;AACxC,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;AACjE,aAAa,CAAC,EAAE,EAAE,CAAC;;ACjRZ,MAAM,oBAAoB,CAAC;AAClC,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,sCAAsC;AACtL,YAAY,kCAAkC;AAC9C,YAAY,2BAA2B;AACvC,YAAY,8BAA8B;AAC1C,YAAY,8BAA8B,CAAC,EAAE,OAAO,EAAE,CAAC,2BAA2B,EAAE,8BAA8B,CAAC,EAAE,CAAC,CAAC;AACvH,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC,sCAAsC;AAC1N,YAAY,2BAA2B;AACvC,YAAY,8BAA8B;AAC1C,YAAY,8BAA8B,CAAC,EAAE,CAAC,CAAC;AAC/C;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,sCAAsC;AAC9D,wBAAwB,kCAAkC;AAC1D,wBAAwB,2BAA2B;AACnD,wBAAwB,8BAA8B;AACtD,wBAAwB,8BAA8B;AACtD,qBAAqB;AACrB,oBAAoB,SAAS,EAAE,CAAC,qBAAqB,CAAC;AACtD,oBAAoB,OAAO,EAAE,CAAC,2BAA2B,EAAE,8BAA8B,CAAC;AAC1F,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACjCb;AACA;AACA;;;;"}
|
|
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 * 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 SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<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 'FR-CA': {\n skyux_angular_tree_clear_all: { message: 'Effacer tout' },\n skyux_angular_tree_click_to_expand: { message: 'Cliquez pour agrandir' },\n skyux_angular_tree_collapse_all: { message: 'Réduire' },\n skyux_angular_tree_expand_all: { message: 'Agrandir' },\n skyux_angular_tree_select_all: { message: 'Sélectionner tout' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\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, inject } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyAngularTreeAdapterService {\n readonly #coreAdapterService = inject(SkyCoreAdapterService);\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';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\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 imports: [SkyI18nModule, SkyIconModule, SkyToolbarModule],\n})\nexport class SkyAngularTreeToolbarComponent {\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 @if (showSelectButtons) {\n <sky-toolbar-item>\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>\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 }\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 type=\"button\"\n [title]=\"'skyux_angular_tree_expand_all' | skyLibResources\"\n (click)=\"onExpandAllClick()\"\n >\n <sky-icon iconName=\"chevron-double-down\" />\n </button>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-collapse-all-btn\"\n type=\"button\"\n [title]=\"'skyux_angular_tree_collapse_all' | skyLibResources\"\n (click)=\"onCollapseAllClick()\"\n >\n <sky-icon iconName=\"chevron-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';\n\nimport { SkyAngularTreeToolbarComponent } from './angular-tree-toolbar.component';\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 imports: [SkyAngularTreeToolbarComponent],\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: Record<string, unknown> = {};\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): void => {\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 (!node || 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): void =>\n this.#nodeDefaultAction(tree, node, event);\n }\n\n if (defaultActionMapping?.keys) {\n defaultActionMapping.keys[KEYS.SPACE] = (tree, node, event): void =>\n this.#onKeyDownAction(tree, node, event);\n defaultActionMapping.keys[KEYS.ENTER] = (tree, node, event): void =>\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): void =>\n undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.LEFT] = (tree, node, $event): void =>\n undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.DOWN] = (tree, node, $event): void =>\n undefined;\n /* istanbul ignore next */\n defaultActionMapping.keys[KEYS.UP] = (tree, node, $event): void =>\n 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 @if (showToolbar) {\n <sky-angular-tree-toolbar\n [showSelectButtons]=\"showSelectButtons()\"\n (clearAllClick)=\"onClearAllClick()\"\n (collapseAllClick)=\"onCollapseAllClick()\"\n (expandAllClick)=\"onExpandAllClick()\"\n (selectAllClick)=\"onSelectAllClick()\"\n />\n }\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 { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnInit,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n ITreeState,\n TreeModule,\n TreeNode,\n} from '@blackbaud/angular-tree-component';\nimport { SkyContentInfoProvider } from '@skyux/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\n\nimport { SkyAngularTreeAdapterService } from './angular-tree-adapter.service';\nimport { SkyAngularTreeContextMenuComponent } from './angular-tree-context-menu.component';\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 imports: [\n TreeModule,\n SkyAngularTreeContextMenuComponent,\n SkyCheckboxModule,\n SkyHelpInlineModule,\n SkyIconModule,\n NgTemplateOutlet,\n ],\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 /**\n * A help key that identifies the global help content to display. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is placed beside the tree node label. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help)\n * as configured by the application.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * The content of the help popover. When specified, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the tree node. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\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 readonly #adapterService = inject(SkyAngularTreeAdapterService);\n readonly #changeDetectorRef = inject(ChangeDetectorRef);\n readonly #contentInfoProvider = inject(SkyContentInfoProvider);\n readonly #skyAngularTreeWrapper = inject(SkyAngularTreeWrapperComponent, {\n optional: true,\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","@if (node && index !== undefined) {\n <div\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 @if (index === 0) {\n <tree-node-drop-slot [dropIndex]=\"node.index\" [node]=\"node.parent\" />\n }\n\n <!-- #region <tree-node-wrapper> custom template --->\n <div\n #nodeContentWrapper\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-has-checkbox]=\"showCheckbox()\"\n [class.sky-angular-tree-node-selected]=\"showSelectedClass()\"\n [style.--sky-angular-tree-node-padding]=\"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 >\n <!-- #region <tree-node-expander> custom template --->\n <div class=\"sky-toggle-children-wrapper\">\n @if (node.hasChildren) {\n <button\n class=\"sky-btn sky-btn-icon-borderless 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 [iconName]=\"node.isExpanded ? 'chevron-down' : 'chevron-right'\"\n />\n </button>\n }\n @if (showTogglePlaceholder()) {\n <span class=\"toggle-children-placeholder\"> </span>\n }\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 @if (showCheckbox()) {\n <sky-checkbox\n [checked]=\"isSelected\"\n [id]=\"node.data.id\"\n [label]=\"nodeName\"\n [indeterminate]=\"isPartiallySelected\"\n (change)=\"node.mouseAction('checkboxClick', $event)\"\n />\n }\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 /><span class=\"sky-control-help-container\">\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"nodeName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n } @else {\n <ng-content select=\".sky-control-help\" />\n }\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 <!-- #endregion <tree-node-wrapper> -->\n\n <tree-node-children role=\"group\" [node]=\"node\" [templates]=\"templates\" />\n\n <tree-node-drop-slot [dropIndex]=\"node.index + 1\" [node]=\"node.parent\" />\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\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 { SkyAngularTreeToolbarComponent } from './angular-tree-toolbar.component';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\n\n@NgModule({\n imports: [\n SkyAngularTreeComponentResourcesModule,\n SkyAngularTreeContextMenuComponent,\n SkyAngularTreeNodeComponent,\n SkyAngularTreeToolbarComponent,\n SkyAngularTreeWrapperComponent,\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","i3","i4"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/angular-tree-component",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "14.0.0-alpha.0",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -16,28 +16,28 @@
|
|
|
16
16
|
},
|
|
17
17
|
"homepage": "https://github.com/blackbaud/skyux#readme",
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"@angular/common": "^
|
|
20
|
-
"@angular/core": "^
|
|
19
|
+
"@angular/common": "^21.0.8",
|
|
20
|
+
"@angular/core": "^21.0.8",
|
|
21
21
|
"@blackbaud/angular-tree-component": "^1.0.0",
|
|
22
|
-
"@skyux/core": "
|
|
23
|
-
"@skyux/forms": "
|
|
24
|
-
"@skyux/help-inline": "
|
|
25
|
-
"@skyux/i18n": "
|
|
26
|
-
"@skyux/icon": "
|
|
27
|
-
"@skyux/layout": "
|
|
22
|
+
"@skyux/core": "14.0.0-alpha.0",
|
|
23
|
+
"@skyux/forms": "14.0.0-alpha.0",
|
|
24
|
+
"@skyux/help-inline": "14.0.0-alpha.0",
|
|
25
|
+
"@skyux/i18n": "14.0.0-alpha.0",
|
|
26
|
+
"@skyux/icon": "14.0.0-alpha.0",
|
|
27
|
+
"@skyux/layout": "14.0.0-alpha.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"tslib": "^2.8.1"
|
|
31
31
|
},
|
|
32
32
|
"sideEffects": false,
|
|
33
33
|
"module": "fesm2022/skyux-angular-tree-component.mjs",
|
|
34
|
-
"typings": "
|
|
34
|
+
"typings": "types/skyux-angular-tree-component.d.ts",
|
|
35
35
|
"exports": {
|
|
36
36
|
"./package.json": {
|
|
37
37
|
"default": "./package.json"
|
|
38
38
|
},
|
|
39
39
|
".": {
|
|
40
|
-
"types": "./
|
|
40
|
+
"types": "./types/skyux-angular-tree-component.d.ts",
|
|
41
41
|
"default": "./fesm2022/skyux-angular-tree-component.mjs"
|
|
42
42
|
}
|
|
43
43
|
}
|
|
File without changes
|