@skyux/angular-tree-component 13.0.0-beta.0 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,11 +44,11 @@ SkyLibResourcesService.addResources(RESOURCES);
44
44
  * Import into any component library module that needs to use resource strings.
45
45
  */
46
46
  class SkyAngularTreeComponentResourcesModule {
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
48
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, exports: [SkyI18nModule] }); }
49
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, imports: [SkyI18nModule] }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
48
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, exports: [SkyI18nModule] }); }
49
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, imports: [SkyI18nModule] }); }
50
50
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, decorators: [{
52
52
  type: NgModule,
53
53
  args: [{
54
54
  exports: [SkyI18nModule],
@@ -59,10 +59,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImpor
59
59
  * @internal
60
60
  */
61
61
  class SkyAngularTreeContextMenuComponent {
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.5", type: SkyAngularTreeContextMenuComponent, isStandalone: false, 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 }); }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: SkyAngularTreeContextMenuComponent, isStandalone: false, 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 }); }
64
64
  }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeContextMenuComponent, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeContextMenuComponent, decorators: [{
66
66
  type: Component,
67
67
  args: [{ selector: 'sky-angular-tree-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"sky-angular-tree-context-menu\">\n <ng-content />\n</div>\n" }]
68
68
  }] });
@@ -82,10 +82,10 @@ class SkyAngularTreeAdapterService {
82
82
  focusableEls[index].tabIndex = tabIndex;
83
83
  }
84
84
  }
85
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
86
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeAdapterService }); }
85
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
86
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeAdapterService }); }
87
87
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeAdapterService, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeAdapterService, decorators: [{
89
89
  type: Injectable
90
90
  }] });
91
91
 
@@ -111,10 +111,10 @@ class SkyTreeViewToolbarComponent {
111
111
  onSelectAllClick() {
112
112
  this.selectAllClick.emit();
113
113
  }
114
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyTreeViewToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
115
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.5", type: SkyTreeViewToolbarComponent, isStandalone: false, 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: "component", type: i1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { 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 }); }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyTreeViewToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
115
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: SkyTreeViewToolbarComponent, isStandalone: false, 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: "component", type: i1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { 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 }); }
116
116
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyTreeViewToolbarComponent, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyTreeViewToolbarComponent, decorators: [{
118
118
  type: Component,
119
119
  args: [{ selector: 'sky-angular-tree-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, 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" }]
120
120
  }], propDecorators: { showSelectButtons: [{
@@ -295,10 +295,10 @@ class SkyAngularTreeWrapperComponent {
295
295
  TREE_ACTIONS.TOGGLE_SELECTED(node.treeModel, node, event);
296
296
  }
297
297
  }
298
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
299
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.5", type: SkyAngularTreeWrapperComponent, isStandalone: false, 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: SkyTreeViewToolbarComponent, selector: "sky-angular-tree-toolbar", inputs: ["showSelectButtons"], outputs: ["clearAllClick", "collapseAllClick", "expandAllClick", "selectAllClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
298
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
299
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: SkyAngularTreeWrapperComponent, isStandalone: false, 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: SkyTreeViewToolbarComponent, selector: "sky-angular-tree-toolbar", inputs: ["showSelectButtons"], outputs: ["clearAllClick", "collapseAllClick", "expandAllClick", "selectAllClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
300
300
  }
301
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeWrapperComponent, decorators: [{
301
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeWrapperComponent, decorators: [{
302
302
  type: Component,
303
303
  args: [{ selector: 'sky-angular-tree-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, 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"] }]
304
304
  }], propDecorators: { readOnly: [{
@@ -552,10 +552,10 @@ class SkyAngularTreeNodeComponent {
552
552
  return false;
553
553
  }
554
554
  }
555
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
556
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.5", type: SkyAngularTreeNodeComponent, isStandalone: false, 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: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: "component", type: i3$1.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "component", type: i1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "component", type: i5.TreeNodeContent, selector: "tree-node-content", inputs: ["node", "index", "template"] }, { kind: "directive", type: i5.TreeDropDirective, selector: "[treeDrop]", inputs: ["allowDragoverStyling", "treeAllowDrop"], outputs: ["treeDrop", "treeDropDragOver", "treeDropDragLeave", "treeDropDragEnter"] }, { kind: "directive", type: i5.TreeDragDirective, selector: "[treeDrag]", inputs: ["treeDrag", "treeDragEnabled"] }, { kind: "component", type: i5.TreeNodeChildrenComponent, selector: "tree-node-children", inputs: ["node", "templates"] }, { kind: "component", type: i5.TreeNodeDropSlot, selector: "TreeNodeDropSlot, tree-node-drop-slot", inputs: ["node", "dropIndex"] }, { kind: "component", type: SkyAngularTreeContextMenuComponent, selector: "sky-angular-tree-context-menu" }] }); }
555
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
556
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: SkyAngularTreeNodeComponent, isStandalone: false, 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: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: "component", type: i3$1.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "component", type: i1.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "component", type: i5.TreeNodeContent, selector: "tree-node-content", inputs: ["node", "index", "template"] }, { kind: "directive", type: i5.TreeDropDirective, selector: "[treeDrop]", inputs: ["allowDragoverStyling", "treeAllowDrop"], outputs: ["treeDrop", "treeDropDragOver", "treeDropDragLeave", "treeDropDragEnter"] }, { kind: "directive", type: i5.TreeDragDirective, selector: "[treeDrag]", inputs: ["treeDrag", "treeDragEnabled"] }, { kind: "component", type: i5.TreeNodeChildrenComponent, selector: "tree-node-children", inputs: ["node", "templates"] }, { kind: "component", type: i5.TreeNodeDropSlot, selector: "TreeNodeDropSlot, tree-node-drop-slot", inputs: ["node", "dropIndex"] }, { kind: "component", type: SkyAngularTreeContextMenuComponent, selector: "sky-angular-tree-context-menu" }] }); }
557
557
  }
558
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeNodeComponent, decorators: [{
558
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeNodeComponent, decorators: [{
559
559
  type: Component,
560
560
  args: [{ selector: 'sky-angular-tree-node', providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider], standalone: false, 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" }]
561
561
  }], propDecorators: { index: [{
@@ -576,8 +576,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImpor
576
576
  }] } });
577
577
 
578
578
  class SkyAngularTreeModule {
579
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
580
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeModule, declarations: [SkyAngularTreeContextMenuComponent,
579
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
580
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeModule, declarations: [SkyAngularTreeContextMenuComponent,
581
581
  SkyAngularTreeNodeComponent,
582
582
  SkyAngularTreeWrapperComponent,
583
583
  SkyTreeViewToolbarComponent], imports: [CommonModule,
@@ -587,7 +587,7 @@ class SkyAngularTreeModule {
587
587
  SkyIconModule,
588
588
  SkyToolbarModule,
589
589
  TreeModule], exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent] }); }
590
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeModule, providers: [SkyCoreAdapterService], imports: [CommonModule,
590
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeModule, providers: [SkyCoreAdapterService], imports: [CommonModule,
591
591
  SkyAngularTreeComponentResourcesModule,
592
592
  SkyCheckboxModule,
593
593
  SkyHelpInlineModule,
@@ -595,7 +595,7 @@ class SkyAngularTreeModule {
595
595
  SkyToolbarModule,
596
596
  TreeModule] }); }
597
597
  }
598
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SkyAngularTreeModule, decorators: [{
598
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyAngularTreeModule, decorators: [{
599
599
  type: NgModule,
600
600
  args: [{
601
601
  declarations: [
@@ -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.0.5\", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWFuZ3VsYXItdHJlZS1jb21wb25lbnQtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFuZ3VsYXItdHJlZS1jb21wb25lbnQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsNEJBQTRCLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFO1FBQ3RELGtDQUFrQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFO1FBQ2xFLCtCQUErQixFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUN4RCw2QkFBNkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUU7UUFDcEQsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO0tBQ3pEO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsNEJBQTRCLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFO1FBQ3pELGtDQUFrQyxFQUFFLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFO1FBQ3hFLCtCQUErQixFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtRQUN2RCw2QkFBNkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7UUFDdEQsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7S0FDaEU7Q0FDRixDQUFDO0FBRUYsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRS9DOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNDQUFzQzs4R0FBdEMsc0NBQXNDOytHQUF0QyxzQ0FBc0MsWUFGdkMsYUFBYTsrR0FFWixzQ0FBc0MsWUFGdkMsYUFBYTs7MkZBRVosc0NBQXNDO2tCQUhsRCxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktYW5ndWxhci10cmVlLWNvbXBvbmVudCcgc2NoZW1hdGljLlxuICogVG8gdXBkYXRlIHRoaXMgZmlsZSwgc2ltcGx5IHJlcnVuIHRoZSBjb21tYW5kLlxuICovXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5STE4bk1vZHVsZSxcbiAgU2t5TGliUmVzb3VyY2VzLFxuICBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmNvbnN0IFJFU09VUkNFUzogUmVjb3JkPHN0cmluZywgU2t5TGliUmVzb3VyY2VzPiA9IHtcbiAgJ0VOLVVTJzoge1xuICAgIHNreXV4X2FuZ3VsYXJfdHJlZV9jbGVhcl9hbGw6IHsgbWVzc2FnZTogJ0NsZWFyIGFsbCcgfSxcbiAgICBza3l1eF9hbmd1bGFyX3RyZWVfY2xpY2tfdG9fZXhwYW5kOiB7IG1lc3NhZ2U6ICdDbGljayB0byBleHBhbmQnIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2NvbGxhcHNlX2FsbDogeyBtZXNzYWdlOiAnQ29sbGFwc2UnIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2V4cGFuZF9hbGw6IHsgbWVzc2FnZTogJ0V4cGFuZCcgfSxcbiAgICBza3l1eF9hbmd1bGFyX3RyZWVfc2VsZWN0X2FsbDogeyBtZXNzYWdlOiAnU2VsZWN0IGFsbCcgfSxcbiAgfSxcbiAgJ0ZSLUNBJzoge1xuICAgIHNreXV4X2FuZ3VsYXJfdHJlZV9jbGVhcl9hbGw6IHsgbWVzc2FnZTogJ0VmZmFjZXIgdG91dCcgfSxcbiAgICBza3l1eF9hbmd1bGFyX3RyZWVfY2xpY2tfdG9fZXhwYW5kOiB7IG1lc3NhZ2U6ICdDbGlxdWV6IHBvdXIgYWdyYW5kaXInIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2NvbGxhcHNlX2FsbDogeyBtZXNzYWdlOiAnUsOpZHVpcmUnIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2V4cGFuZF9hbGw6IHsgbWVzc2FnZTogJ0FncmFuZGlyJyB9LFxuICAgIHNreXV4X2FuZ3VsYXJfdHJlZV9zZWxlY3RfYWxsOiB7IG1lc3NhZ2U6ICdTw6lsZWN0aW9ubmVyIHRvdXQnIH0sXG4gIH0sXG59O1xuXG5Ta3lMaWJSZXNvdXJjZXNTZXJ2aWNlLmFkZFJlc291cmNlcyhSRVNPVVJDRVMpO1xuXG4vKipcbiAqIEltcG9ydCBpbnRvIGFueSBjb21wb25lbnQgbGlicmFyeSBtb2R1bGUgdGhhdCBuZWVkcyB0byB1c2UgcmVzb3VyY2Ugc3RyaW5ncy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1NreUkxOG5Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBbmd1bGFyVHJlZUNvbXBvbmVudFJlc291cmNlc01vZHVsZSB7fVxuIl19","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.0.5\", ngImport: i0, type: SkyAngularTreeContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: SkyAngularTreeContextMenuComponent, isStandalone: false, 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.0.5\", ngImport: i0, type: SkyAngularTreeContextMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-angular-tree-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: \"<div class=\\\"sky-angular-tree-context-menu\\\">\\n <ng-content />\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLWNvbnRleHQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS1jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRW5FOztHQUVHO0FBT0gsTUFBTSxPQUFPLGtDQUFrQzs4R0FBbEMsa0NBQWtDO2tHQUFsQyxrQ0FBa0MsMEZDWC9DLDJFQUdBOzsyRkRRYSxrQ0FBa0M7a0JBTjlDLFNBQVM7K0JBQ0UsK0JBQStCLG1CQUV4Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hbmd1bGFyLXRyZWUtY29udGV4dC1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuZ3VsYXItdHJlZS1jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFuZ3VsYXJUcmVlQ29udGV4dE1lbnVDb21wb25lbnQge31cbiIsIjxkaXYgY2xhc3M9XCJza3ktYW5ndWxhci10cmVlLWNvbnRleHQtbWVudVwiPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+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.0.5\", ngImport: i0, type: SkyAngularTreeAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAngularTreeAdapterService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAngularTreeAdapterService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvbW9kdWxlcy9hbmd1bGFyLXRyZWUvYW5ndWxhci10cmVlLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRXBEOztHQUVHO0FBRUgsTUFBTSxPQUFPLDRCQUE0QjtJQUM5QixtQkFBbUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUV0RCxvQkFBb0IsQ0FBQyxPQUFvQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU0seUJBQXlCLENBQzlCLE9BQW9CLEVBQ3BCLFFBQWdCO1FBRWhCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RSxJQUFJLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE9BQU8sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDOzhHQWhCVSw0QkFBNEI7a0hBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSB7XG4gIHJlYWRvbmx5ICNjb3JlQWRhcHRlclNlcnZpY2UgPSBpbmplY3QoU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlKTtcblxuICBwdWJsaWMgZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIHNldFRhYkluZGV4T2ZGb2N1c2FibGVFbHMoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgdGFiSW5kZXg6IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZm9jdXNhYmxlRWxzID0gdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpO1xuICAgIGxldCBpbmRleCA9IGZvY3VzYWJsZUVscy5sZW5ndGg7XG4gICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgIGZvY3VzYWJsZUVsc1tpbmRleF0udGFiSW5kZXggPSB0YWJJbmRleDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';\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 SkyTreeViewToolbarComponent {\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.0.5\", ngImport: i0, type: SkyTreeViewToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyTreeViewToolbarComponent, isStandalone: false, 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: \"component\", type: i1.λ1, selector: \"sky-icon\", inputs: [\"iconName\", \"variant\", \"iconSize\"] }, { 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.0.5\", ngImport: i0, type: SkyTreeViewToolbarComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-angular-tree-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7OztBQUV2Qjs7R0FFRztBQU9ILE1BQU0sT0FBTywyQkFBMkI7SUFOeEM7UUFXUyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHekMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUc1QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHMUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBaUJsRDtJQWZRLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBOUJVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdTQ2pCeEMsczlDQTBDQTs7MkZEekJhLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSwwQkFBMEIsbUJBRW5CLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzs4QkFJVixpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsTUFBTTtnQkFJQSxnQkFBZ0I7c0JBRHRCLE1BQU07Z0JBSUEsY0FBYztzQkFEcEIsTUFBTTtnQkFJQSxjQUFjO3NCQURwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFuZ3VsYXItdHJlZS10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuZ3VsYXItdHJlZS10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUcmVlVmlld1Rvb2xiYXJDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1NlbGVjdEJ1dHRvbnM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjbGVhckFsbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY29sbGFwc2VBbGxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGV4cGFuZEFsbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0QWxsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+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 * as i0 from \"@angular/core\";\nimport * as i1 from \"./angular-tree-toolbar.component\";\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.0.5\", ngImport: i0, type: SkyAngularTreeWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyAngularTreeWrapperComponent, isStandalone: false, 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: i1.SkyTreeViewToolbarComponent, 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.0.5\", ngImport: i0, type: SkyAngularTreeWrapperComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-angular-tree-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLElBQUksRUFDSixZQUFZLEVBQ1osYUFBYSxHQUdkLE1BQU0sbUNBQW1DLENBQUM7OztBQUUzQzs7Ozs7R0FLRztBQVFILE1BQU0sT0FBTyw4QkFBOEI7SUFQM0M7UUFRRTs7OztXQUlHO1FBRUksYUFBUSxHQUF3QixLQUFLLENBQUM7UUFFN0M7Ozs7O1dBS0c7UUFFSSx3QkFBbUIsR0FBd0IsS0FBSyxDQUFDO1FBRXhEOzs7OztXQUtHO1FBRUksaUJBQVksR0FBd0IsS0FBSyxDQUFDO1FBRWpEOzs7OztXQUtHO1FBRUksZ0JBQVcsR0FBd0IsS0FBSyxDQUFDO1FBRXpDLHNCQUFpQixHQUE0QixFQUFFLENBQUM7S0F5S3hEO0lBcEtRLGVBQWU7UUFDcEIsSUFDRSxJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUNqRCxDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FDVixxR0FBcUc7Z0JBQ25HLGtGQUFrRixDQUNyRixD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O2dCQVVDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBVUMsV0FBVztzQkFEakIsS0FBSztnQkFNQyxhQUFhO3NCQURuQixZQUFZO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEtFWVMsXG4gIFRSRUVfQUNUSU9OUyxcbiAgVHJlZUNvbXBvbmVudCxcbiAgVHJlZU1vZGVsLFxuICBUcmVlTm9kZSxcbn0gZnJvbSAnQGJsYWNrYmF1ZC9hbmd1bGFyLXRyZWUtY29tcG9uZW50JztcblxuLyoqXG4gKiBXcmFwcyB0aGUgQW5ndWxhciBgdHJlZS1yb290YCBjb21wb25lbnQgYXMgcGFydCBvZiB0aGUgYFNreUFuZ3VsYXJUcmVlTW9kdWxlYCB0aGF0IHByb3ZpZGVzXG4gKiBTS1kgVVggY29tcG9uZW50cyBhbmQgc3R5bGVzIHRvIGNvbXBsZW1lbnQgdGhlIGBhbmd1bGFyLXRyZWUtY29tcG9uZW50YCBsaWJyYXJ5IGFuZCBhcHBseSBTS1kgVVhcbiAqIHRoZW1lcyBhbmQgZnVuY3Rpb25hbGl0eSB0byBoaWVyYXJjaGljYWwgbGlzdCB2aWV3cy4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgdHJlZS1yb290YCBjb21wb25lbnQsIHNlZSB0aGVcbiAqIFtBbmd1bGFyIHRyZWUgY29tcG9uZW50IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcykuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hbmd1bGFyLXRyZWUtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlbmRlciB0aGUgdHJlZSB2aWV3IGluIHJlYWQtb25seSBtb2RlLlxuICAgKiBUaGlzIG1vZGUgZGlzYWJsZXMgc2VsZWN0ZWQgYW5kIGFjdGl2ZSBzdGF0ZXMgb24gdGhlIHRyZWUgdmlldyBub2Rlcy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZWFkT25seTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBsZWFmLW9ubHkgc2VsZWN0aW9uIG1vZGUuIEZvciB0cmVlIHZpZXdzIHdpdGhcbiAgICogW2NoZWNrYm94ZXNdKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcy90cmktc3RhdGUtY2hlY2tib3hlcyksXG4gICAqIHRoaXMgbW9kZSBsaW1pdHMgdXNlciBzZWxlY3Rpb25zIHRvIGxlYWYgbm9kZXMgYW5kIHByZXZlbnRzIHVzZXJzIGZyb20gc2VsZWN0aW5nIHBhcmVudCBub2Rlcy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RMZWFmTm9kZXNPbmx5OiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXNlIHNpbmdsZS1zZWxlY3QgbW9kZS4gRm9yIHRyZWUgdmlld3Mgd2l0aFxuICAgKiBbY2hlY2tib3hlc10oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL3RyaS1zdGF0ZS1jaGVja2JveGVzKSxcbiAgICogdGhpcyBtb2RlIGxpbWl0cyB1c2VyIHNlbGVjdGlvbnMgdG8gb25lIG5vZGUgYXQgYSB0aW1lLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdFNpbmdsZTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSB0b29sYmFyIHdpdGggYnV0dG9ucyB0byBleHBhbmQgYW5kIGNvbGxhcHNlIGFsbCBub2RlcyBhbmQgYnV0dG9ucyB0byBzZWxlY3QgYW5kIGNsZWFyIGFsbCBjaGVja2JveGVzLlxuICAgKiBUaGUgc2VsZWN0IGFuZCBjbGVhciBidXR0b25zIG9ubHkgYXBwZWFyIHdoZW4geW91IGVuYWJsZSBjaGVja2JveGVzLlxuICAgKiBUbyBlbmFibGUgW2NoZWNrYm94ZXNdKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcy90cmktc3RhdGUtY2hlY2tib3hlcykuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgc2VsZWN0YWJsZU5vZGVJZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgQENvbnRlbnRDaGlsZChUcmVlQ29tcG9uZW50KVxuICBwdWJsaWMgdHJlZUNvbXBvbmVudDogVHJlZUNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2VsZWN0U2luZ2xlICYmXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5vcHRpb25zLnVzZVRyaVN0YXRlXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdTaW5nbGUgc2VsZWN0IG1vZGUgc2hvdWxkIG5vdCBiZSBlbmFibGVkIHdoaWxlIHRoZSB0cmVlIGlzIGluIHRyaVN0YXRlIG1vZGUgKGNhc2NhZGluZyBzZWxlY3Rpb24pLiAnICtcbiAgICAgICAgICAnUGxlYXNlIHNldCBcInVzZVRyaVN0YXRlXCIgdG8gXCJmYWxzZVwiIGlmIHlvdSB3YW50IHRvIHJlbWFpbiBpbiBzaW5nbGUgc2VsZWN0IG1vZGUuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuI292ZXJyaWRlQWN0aW9uTWFwcGluZygpO1xuICB9XG5cbiAgcHVibGljIG11bHRpc2VsZWN0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLnRyZWVDb21wb25lbnQgJiZcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwub3B0aW9ucy51c2VDaGVja2JveCAmJlxuICAgICAgIXRoaXMuc2VsZWN0U2luZ2xlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsZWFyQWxsQ2xpY2soKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuc2VsZWN0U2luZ2xlICYmIHRoaXMudHJlZUNvbXBvbmVudCkge1xuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5nZXRTdGF0ZSgpO1xuICAgICAgdGhpcy50cmVlQ29tcG9uZW50LnN0YXRlID0ge1xuICAgICAgICAuLi5jdXJyZW50U3RhdGUsXG4gICAgICAgIHNlbGVjdGVkTGVhZk5vZGVJZHM6IHt9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Db2xsYXBzZUFsbENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMudHJlZUNvbXBvbmVudD8udHJlZU1vZGVsLmNvbGxhcHNlQWxsKCk7XG4gIH1cblxuICBwdWJsaWMgb25FeHBhbmRBbGxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5leHBhbmRBbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdEFsbENsaWNrKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCF0aGlzLnNlbGVjdFNpbmdsZSAmJiB0aGlzLnRyZWVDb21wb25lbnQpIHtcbiAgICAgIC8vIEdldCBhIGxpc3Qgb2YgYWxsIG5vZGUgaWRzIHRoYXQgYXJlIHNlbGVjdGFibGUuXG4gICAgICB0aGlzLnNlbGVjdGFibGVOb2RlSWRzID0ge307XG4gICAgICBjb25zdCBnZXRTZWxlY3RhYmxlTm9kZUlkcyA9IChub2RlOiBUcmVlTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RhYmxlID1cbiAgICAgICAgICBub2RlLmlzU2VsZWN0YWJsZSgpICYmXG4gICAgICAgICAgIShub2RlLmhhc0NoaWxkcmVuICYmIHRoaXMuc2VsZWN0TGVhZk5vZGVzT25seSk7XG4gICAgICAgIGlmIChzZWxlY3RhYmxlICYmICFub2RlLmRhdGEudmlydHVhbCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZU5vZGVJZHNbbm9kZS5pZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiBnZXRTZWxlY3RhYmxlTm9kZUlkcyhjaGlsZCkpO1xuICAgICAgfTtcbiAgICAgIGdldFNlbGVjdGFibGVOb2RlSWRzKHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwudmlydHVhbFJvb3QpO1xuXG4gICAgICAvLyBVcGRhdGUgdHJlZSBzdGF0ZSB3aXRoIG5ldyBsaXN0IG9mIHNlbGVjdGVkIG5vZGUgaWRzLlxuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5nZXRTdGF0ZSgpO1xuICAgICAgdGhpcy50cmVlQ29tcG9uZW50LnN0YXRlID0ge1xuICAgICAgICAuLi5jdXJyZW50U3RhdGUsXG4gICAgICAgIHNlbGVjdGVkTGVhZk5vZGVJZHM6IHRoaXMuc2VsZWN0YWJsZU5vZGVJZHMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93U2VsZWN0QnV0dG9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLnRyZWVDb21wb25lbnQgJiZcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwub3B0aW9ucy51c2VDaGVja2JveCAmJlxuICAgICAgIXRoaXMuc2VsZWN0U2luZ2xlXG4gICAgKTtcbiAgfVxuXG4gICNpc1NlbGVjdGFibGUobm9kZTogVHJlZU5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbm9kZS5pc0xlYWYgfHwgIW5vZGUuaGFzQ2hpbGRyZW4gfHwgIXRoaXMuc2VsZWN0TGVhZk5vZGVzT25seTtcbiAgfVxuXG4gICNub2RlRGVmYXVsdEFjdGlvbih0cmVlOiBUcmVlTW9kZWwsIG5vZGU6IFRyZWVOb2RlLCBldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5vcHRpb25zLnVzZUNoZWNrYm94ICYmIHRoaXMuI2lzU2VsZWN0YWJsZShub2RlKSkge1xuICAgICAgdGhpcy4jdG9nZ2xlU2VsZWN0ZWQobm9kZSwgZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBUUkVFX0FDVElPTlMuVE9HR0xFX0FDVElWRSh0cmVlLCBub2RlLCBldmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgI29uS2V5RG93bkFjdGlvbih0cmVlOiBUcmVlTW9kZWwsIG5vZGU6IFRyZWVOb2RlLCBldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0Tm9kZUlkID0gZXZlbnQudGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS1ub2RlLWlkJyk7XG5cbiAgICAvLyBLZXkgcHJlc3MgZGlkIG5vdCBoYXBwZW4gb24gdGhlIG5vZGUuXG4gICAgaWYgKCFub2RlIHx8IHRhcmdldE5vZGVJZCAhPT0gbm9kZS5pZC50b1N0cmluZygpKSB7XG4gICAgICAvLyBhbmd1bGFyLXRyZWUtY29tcG9uZW50IHdpbGwgcHJldmVudERlZmF1bHQoKSBvbiBhbnl0aGluZyB1c2luZyBhIGtleSBhY3Rpb24gaGFuZGxlcixcbiAgICAgIC8vIHRodXMgc3RvcHBpbmcgXCJlbnRlclwiIGFuZCBcInNwYWNlXCIga2V5cyB0byB0aHJvdyBcImNsaWNrXCIgZXZlbnRzIG9uIGludGVyYWN0aXZlIGVsZW1lbnRzLlxuICAgICAgLy8gVGhpcyBsb2dpYyBlbnN1cmVzIGNvbXBvbmVudHMgbG9va2luZyBmb3IgXCJjbGlja3NcIiBvbiB0aG9zZSBrZXlzdHJva2VzIHN0aWxsIHdvcmsgKGRyb3Bkb3duIGNvbXBvbmVudCkuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vNTAwdGVjaC9hbmd1bGFyLXRyZWUtY29tcG9uZW50L2Jsb2IvbWFzdGVyL2xpYi9tb2RlbHMvdHJlZS5tb2RlbC50cyNMMzQxXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgZXZlbnQudGFyZ2V0LmNsaWNrKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiNub2RlRGVmYXVsdEFjdGlvbih0cmVlLCBub2RlLCBldmVudCk7XG4gIH1cblxuICAjb3ZlcnJpZGVBY3Rpb25NYXBwaW5nKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRBY3Rpb25NYXBwaW5nID1cbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudD8udHJlZU1vZGVsLm9wdGlvbnMuYWN0aW9uTWFwcGluZztcblxuICAgIGlmIChkZWZhdWx0QWN0aW9uTWFwcGluZz8ubW91c2UpIHtcbiAgICAgIC8vIE92ZXJyaWRlIGRlZmF1bHQgY2xpY2svZW50ZXIvc3BhY2UgYWN0aW9uIHRvIGNoZWNrIGZvciB1bnN1cHBvcnRlZCBvcHRpb25zIChsZWFmIG5vZGUsIHNpbmdsZS1zZWxlY3QpLlxuICAgICAgZGVmYXVsdEFjdGlvbk1hcHBpbmcubW91c2UuY2xpY2sgPSAodHJlZSwgbm9kZSwgZXZlbnQpOiB2b2lkID0+XG4gICAgICAgIHRoaXMuI25vZGVEZWZhdWx0QWN0aW9uKHRyZWUsIG5vZGUsIGV2ZW50KTtcbiAgICB9XG5cbiAgICBpZiAoZGVmYXVsdEFjdGlvbk1hcHBpbmc/LmtleXMpIHtcbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5TUEFDRV0gPSAodHJlZSwgbm9kZSwgZXZlbnQpOiB2b2lkID0+XG4gICAgICAgIHRoaXMuI29uS2V5RG93bkFjdGlvbih0cmVlLCBub2RlLCBldmVudCk7XG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuRU5URVJdID0gKHRyZWUsIG5vZGUsIGV2ZW50KTogdm9pZCA9PlxuICAgICAgICB0aGlzLiNvbktleURvd25BY3Rpb24odHJlZSwgbm9kZSwgZXZlbnQpO1xuXG4gICAgICAvLyBEaXNhYmxlIGxlZnQvcmlnaHQgYXJyb3cga2V5cyB0byBzdXBwb3J0IG5hdmlnYXRpbmcgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aXRoIGtleWJvYXJkLlxuICAgICAgLy8gU2VlIG9uQXJyb3dMZWZ0KCkgLyBvbkFycm93UmlnaHQoKSBtZXRob2RzIGluc2lkZSB0aGUgYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50LnRzLlxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5SSUdIVF0gPSAodHJlZSwgbm9kZSwgJGV2ZW50KTogdm9pZCA9PlxuICAgICAgICB1bmRlZmluZWQ7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgZGVmYXVsdEFjdGlvbk1hcHBpbmcua2V5c1tLRVlTLkxFRlRdID0gKHRyZWUsIG5vZGUsICRldmVudCk6IHZvaWQgPT5cbiAgICAgICAgdW5kZWZpbmVkO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5ET1dOXSA9ICh0cmVlLCBub2RlLCAkZXZlbnQpOiB2b2lkID0+XG4gICAgICAgIHVuZGVmaW5lZDtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuVVBdID0gKHRyZWUsIG5vZGUsICRldmVudCk6IHZvaWQgPT5cbiAgICAgICAgdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gICN0b2dnbGVTZWxlY3RlZChub2RlOiBUcmVlTm9kZSwgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIC8vIElmIHNpbmdsZS1zZWxlY3Rpb24gaXMgZW5hYmxlZCwgb25seSBzZWxlY3QgdGhlIG5vZGUgY2xpY2tlZC5cbiAgICBpZiAodGhpcy5zZWxlY3RTaW5nbGUgJiYgIW5vZGUuaXNTZWxlY3RlZCkge1xuICAgICAgY29uc3Qgb2xkU3RhdGUgPSB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5nZXRTdGF0ZSgpO1xuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGV4cGFuZGVkTm9kZUlkczogb2xkU3RhdGU/LmV4cGFuZGVkTm9kZUlkcyxcbiAgICAgICAgc2VsZWN0ZWRMZWFmTm9kZUlkczogT2JqZWN0LmFzc2lnbih7fSwgbm9kZS5pZCwgeyBbbm9kZS5pZF06IHRydWUgfSksXG4gICAgICAgIGFjdGl2ZU5vZGVJZHM6IG9sZFN0YXRlPy5hY3RpdmVOb2RlSWRzLFxuICAgICAgICBoaWRkZW5Ob2RlSWRzOiBvbGRTdGF0ZT8uaGlkZGVuTm9kZUlkcyxcbiAgICAgICAgZm9jdXNlZE5vZGVJZDogbm9kZS5pZCxcbiAgICAgIH07XG4gICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgc3RhdGUgaW4gb25lIGdvLCBzbyB3ZSBkb24ndCBjcmVhdGUgbXVsdGlwbGUgZXZlbnRzIGZvciB0aGUgY29uc3VtZXIuXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5zZXRTdGF0ZShuZXdTdGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFRSRUVfQUNUSU9OUy5UT0dHTEVfU0VMRUNURUQobm9kZS50cmVlTW9kZWwsIG5vZGUsIGV2ZW50KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktYW5ndWxhci10cmVlLXdyYXBwZXJcIlxuICBbY2xhc3Muc2t5LWFuZ3VsYXItdHJlZS1yZWFkLW9ubHldPVwicmVhZE9ubHlcIlxuPlxuICBAaWYgKHNob3dUb29sYmFyKSB7XG4gICAgPHNreS1hbmd1bGFyLXRyZWUtdG9vbGJhclxuICAgICAgW3Nob3dTZWxlY3RCdXR0b25zXT1cInNob3dTZWxlY3RCdXR0b25zKClcIlxuICAgICAgKGNsZWFyQWxsQ2xpY2spPVwib25DbGVhckFsbENsaWNrKClcIlxuICAgICAgKGNvbGxhcHNlQWxsQ2xpY2spPVwib25Db2xsYXBzZUFsbENsaWNrKClcIlxuICAgICAgKGV4cGFuZEFsbENsaWNrKT1cIm9uRXhwYW5kQWxsQ2xpY2soKVwiXG4gICAgICAoc2VsZWN0QWxsQ2xpY2spPVwib25TZWxlY3RBbGxDbGljaygpXCJcbiAgICAvPlxuICB9XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1hbmd1bGFyLXRyZWUtcm9vdFwiXG4gICAgcm9sZT1cInRyZWVcIlxuICAgIFthdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXT1cIm11bHRpc2VsZWN0YWJsZSgpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInRyZWUtcm9vdFwiIC8+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild, inject, } from '@angular/core';\nimport { SkyContentInfoProvider } from '@skyux/core';\nimport { SkyAngularTreeAdapterService } from './angular-tree-adapter.service';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@skyux/forms\";\nimport * as i3 from \"@skyux/help-inline\";\nimport * as i4 from \"@skyux/icon\";\nimport * as i5 from \"@blackbaud/angular-tree-component\";\nimport * as i6 from \"./angular-tree-context-menu.component\";\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.0.5\", ngImport: i0, type: SkyAngularTreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: SkyAngularTreeNodeComponent, isStandalone: false, 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: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { 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: \"component\", type: i3.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"component\", type: i4.λ1, selector: \"sky-icon\", inputs: [\"iconName\", \"variant\", \"iconSize\"] }, { kind: \"component\", type: i5.TreeNodeContent, selector: \"tree-node-content\", inputs: [\"node\", \"index\", \"template\"] }, { kind: \"directive\", type: i5.TreeDropDirective, selector: \"[treeDrop]\", inputs: [\"allowDragoverStyling\", \"treeAllowDrop\"], outputs: [\"treeDrop\", \"treeDropDragOver\", \"treeDropDragLeave\", \"treeDropDragEnter\"] }, { kind: \"directive\", type: i5.TreeDragDirective, selector: \"[treeDrag]\", inputs: [\"treeDrag\", \"treeDragEnabled\"] }, { kind: \"component\", type: i5.TreeNodeChildrenComponent, selector: \"tree-node-children\", inputs: [\"node\", \"templates\"] }, { kind: \"component\", type: i5.TreeNodeDropSlot, selector: \"TreeNodeDropSlot, tree-node-drop-slot\", inputs: [\"node\", \"dropIndex\"] }, { kind: \"component\", type: i6.SkyAngularTreeContextMenuComponent, selector: \"sky-angular-tree-context-menu\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAngularTreeNodeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-angular-tree-node', providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider], standalone: false, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR0wsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7O0FBRWxGOzs7Ozs7Ozs7R0FTRztBQU9ILE1BQU0sT0FBTywyQkFBMkI7SUE2Q3RDLElBQVcsZUFBZSxDQUFDLEtBQXlCO1FBQ2xELElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDL0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzlELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QyxDQUFDO2lCQUFNLENB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ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElUcmVlU3RhdGUsIFRyZWVOb2RlIH0gZnJvbSAnQGJsYWNrYmF1ZC9hbmd1bGFyLXRyZWUtY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNvbnRlbnRJbmZvUHJvdmlkZXIgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIFJlcGxhY2VzIHRoZSBkZWZhdWx0IHRyZWUgbm9kZSB0ZW1wbGF0ZSB3aXRoIGEgU0tZIFVYIG5vZGUgYXMgcGFydCBvZiB0aGUgYFNreUFuZ3VsYXJUcmVlTW9kdWxlYCB0aGF0XG4gKiBwcm92aWRlcyBTS1kgVVggY29tcG9uZW50cyBhbmQgc3R5bGVzIHRvIGNvbXBsZW1lbnQgdGhlIGBhbmd1bGFyLXRyZWUtY29tcG9uZW50YCBsaWJyYXJ5IGFuZCBhcHBseSBTS1kgVVhcbiAqIHRoZW1lcyBhbmQgZnVuY3Rpb25hbGl0eSB0byBoaWVyYXJjaGljYWwgbGlzdCB2aWV3cy4gWW91IG11c3Qgd3JhcCB0aGlzIGNvbXBvbmVudCBpbiBhbiBgbmctdGVtcGxhdGVgXG4gKiB0YWcgd2l0aCB0aGUgdGVtcGxhdGUgcmVmZXJlbmNlIHZhcmlhYmxlIGAjdHJlZU5vZGVGdWxsVGVtcGxhdGVgLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgdHJlZSBub2RlIHRlbXBsYXRlcyxcbiAqIHNlZSB0aGUgW0FuZ3VsYXIgdHJlZSBjb21wb25lbnQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL3RlbXBsYXRlcykuXG4gKiBUbyBkaXNwbGF5IGNvbnRleHQgbWVudXMgd2l0aCBhY3Rpb25zIGZvciBpbmRpdmlkdWFsIGl0ZW1zIGluIGhpZXJhcmNoaWNhbCBsaXN0cywgcGxhY2VcbiAqIFtkcm9wZG93bnNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtcG9wb3ZlcnMvZG9jcy9kcm9wZG93bj9kb2NzLWFjdGl2ZS10YWI9ZGVzaWduKSBpbnNpZGUgdGhlXG4gKiBBbmd1bGFyIHRyZWUgbm9kZSBjb21wb25lbnQsIHdoaWNoIGF1dG9tYXRpY2FsbHkgaGFuZGxlcyBzdHlsaW5nIGFuZCBwb3NpdGlvbmluZyBmb3IgY29udGV4dCBtZW51cy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFuZ3VsYXItdHJlZS1ub2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSwgU2t5Q29udGVudEluZm9Qcm92aWRlcl0sXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBbmd1bGFyVHJlZU5vZGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICAvKipcbiAgICogVGhlIGBpbmRleGAgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50IGBuZy10ZW1wbGF0ZWAuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBgbm9kZWAgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50IGBuZy10ZW1wbGF0ZWAuIEZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYFRyZWVOb2RlYCBvYmplY3QsIHNlZSB0aGVcbiAgICogW0FuZ3VsYXIgdHJlZSBjb21wb25lbnQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL2FwaSkuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG5vZGU6IFRyZWVOb2RlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRlbXBsYXRlc2AgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50IGBuZy10ZW1wbGF0ZWAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGVtcGxhdGVzOiBhbnk7XG5cbiAgLyoqXG4gICAqIEEgaGVscCBrZXkgdGhhdCBpZGVudGlmaWVzIHRoZSBnbG9iYWwgaGVscCBjb250ZW50IHRvIGRpc3BsYXkuIFdoZW4gc3BlY2lmaWVkLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgcGxhY2VkIGJlc2lkZSB0aGUgdHJlZSBub2RlIGxhYmVsLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApXG4gICAqIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgdGhlIGhlbHAgcG9wb3Zlci4gV2hlbiBzcGVjaWZpZWQsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBhZGRlZCB0byB0aGUgdHJlZSBub2RlLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHNldCBjaGlsZEZvY3VzSW5kZXgodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy4jX2NoaWxkRm9jdXNJbmRleCkge1xuICAgICAgdGhpcy4jX2NoaWxkRm9jdXNJbmRleCA9IHZhbHVlO1xuICAgICAgaWYgKHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCA+IDAgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLiNmb2N1c2FibGVDaGlsZHJlblt2YWx1ZV0uZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjaGlsZEZvY3VzSW5kZXgoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2NoaWxkRm9jdXNJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZm9jdXNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMudGFiSW5kZXggPSB2YWx1ZSA/IDAgOiAtMTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBpc1BhcnRpYWxseVNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLiNfaXNQYXJ0aWFsbHlTZWxlY3RlZCkge1xuICAgICAgdGhpcy4jX2lzUGFydGlhbGx5U2VsZWN0ZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNQYXJ0aWFsbHlTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2lzUGFydGlhbGx5U2VsZWN0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IGlzU2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19pc1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLiNfaXNTZWxlY3RlZCA9IHZhbHVlO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaXNTZWxlY3RlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdGFiSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuI190YWJJbmRleCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfdGFiSW5kZXg7XG4gIH1cblxuICBAVmlld0NoaWxkKCdub2RlQ29udGVudFdyYXBwZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIG5vZGVDb250ZW50V3JhcHBlclJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgc2V0IG5vZGVOYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNfbm9kZU5hbWUgPSB2YWx1ZTtcbiAgICB0aGlzLiNjb250ZW50SW5mb1Byb3ZpZGVyLnBhdGNoSW5mbyh7XG4gICAgICBkZXNjcmlwdG9yOiB7IHR5cGU6ICd0ZXh0JywgdmFsdWUgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgbm9kZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX25vZGVOYW1lO1xuICB9XG5cbiAgI2ZvY3VzYWJsZUNoaWxkcmVuOiBIVE1MRWxlbWVudFtdID0gW107XG5cbiAgI21vdXNlRG93biA9IGZhbHNlO1xuXG4gICNfY2hpbGRGb2N1c0luZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgI19pc1BhcnRpYWxseVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgI19pc1NlbGVjdGVkID0gZmFsc2U7XG5cbiAgI190YWJJbmRleCA9IC0xO1xuXG4gICNfbm9kZU5hbWUgPSAnJztcblxuICByZWFkb25seSAjYWRhcHRlclNlcnZpY2UgPSBpbmplY3QoU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNjb250ZW50SW5mb1Byb3ZpZGVyID0gaW5qZWN0KFNreUNvbnRlbnRJbmZvUHJvdmlkZXIpO1xuICByZWFkb25seSAjc2t5QW5ndWxhclRyZWVXcmFwcGVyID0gaW5qZWN0KFNreUFuZ3VsYXJUcmVlV3JhcHBlckNvbXBvbmVudCwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGA8c2t5LWFuZ3VsYXItdHJlZS1ub2RlLXdyYXBwZXI+IG11c3QgYmUgd3JhcHBlZCBpbnNpZGUgYSA8c2t5LWFuZ3VsYXItdHJlZS13cmFwcGVyPiBjb21wb25lbnQuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgdGhpcy5ub2RlTmFtZSA9IHRoaXMubm9kZS5kYXRhLm5hbWU7XG4gICAgICAvLyBCZWNhdXNlIHdlJ3JlIGJpbmRpbmcgdGhlIGNoZWNrYm94IHRvIG5vZGUncyBjaGlsZHJlbiBwcm9wZXJ0aWVzLCB3ZSBuZWVkIHRvIG1hbnVhbGx5IGNvbnRyb2wgY2hhbmdlIGRldGVjdGlvbi5cbiAgICAgIC8vIEhlcmUsIHdlIGxpc3RlbiB0byB0aGUgdHJlZSdzIHN0YXRlIGFuZCBmb3JjZSBjaGFuZ2UgZGV0ZWN0aW9uIGluIHRoZSBzZXR0ZXJzIGlmIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZC5cbiAgICAgIHRoaXMubm9kZS50cmVlTW9kZWwuc3Vic2NyaWJlVG9TdGF0ZSgoc3RhdGU6IElUcmVlU3RhdGUpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZCA9IHRoaXMubm9kZS5pc1NlbGVjdGVkO1xuICAgICAgICAgIHRoaXMuaXNQYXJ0aWFsbHlTZWxlY3RlZCA9IHRoaXMubm9kZS5pc1BhcnRpYWxseVNlbGVjdGVkO1xuXG4gICAgICAgICAgaWYgKHN0YXRlLmZvY3VzZWROb2RlSWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IHN0YXRlLmZvY3VzZWROb2RlSWQgPT09IHRoaXMubm9kZS5pZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLm5vZGUudHJlZU1vZGVsLnN1YnNjcmliZSgndXBkYXRlRGF0YScsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgICAgIHRoaXMubm9kZU5hbWUgPSB0aGlzLm5vZGUuZGF0YS5uYW1lO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gTWFrZSB0aGUgZmlyc3Qgcm9vdCBub2RlIHRhYmJhYmxlLlxuICAgICAgaWYgKHRoaXMubm9kZS5pc1Jvb3QgJiYgdGhpcy5ub2RlLmluZGV4ID09PSAwKSB7XG4gICAgICAgIHRoaXMudGFiSW5kZXggPSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gV2FpdCAxcyBmb3IgdGhlIG5vZGUgdG8gcmVuZGVyLCB0aGVuIHJlc2V0IGFsbCBjaGlsZCB0YWJJbmRleGVzIHRvIC0xLlxuICAgIC8vIFVuaXRzIHNtYWxsZXIgdGhhbiAxcyBtYXkgY29uc2lzdGVudGx5IGZhaWwgaWYgdGhlcmUgYXJlIG1hbnkgbm9kZXMsIG9yIG11bHRpcGxlIHRyZWVzIGFyZSBvbiB0aGUgc2FtZSBzY3JlZW4uXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5ub2RlQ29udGVudFdyYXBwZXJSZWYpIHtcbiAgICAgICAgdGhpcy4jZm9jdXNhYmxlQ2hpbGRyZW4gPSB0aGlzLiNhZGFwdGVyU2VydmljZS5nZXRGb2N1c2FibGVDaGlsZHJlbihcbiAgICAgICAgICB0aGlzLm5vZGVDb250ZW50V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRUYWJJbmRleE9mRm9jdXNhYmxlRWxzKFxuICAgICAgICAgIHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgLTEsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICAvKipcbiAgICogSWYgc2luZ2xlLXNlbGVjdCwgc2V0IGFyaWEtc2VsZWN0ZWQ9dHJ1ZSBmb3IgdGhlIHNlbGVjdGVkIG5vZGUgYW5kIHVuZGVmaW5lZCBmb3IgYWxsIHRoZSBvdGhlcnMuXG4gICAqIEZvciBtdWx0aXBsZS1zZWxlY3QsIHNldCBhcmlhLXNlbGVjdGVkIHRvIGVpdGhlciB0cnVlIG9yIGZhbHNlLlxuICAgKiBJZiBub2RlIGNhbm5vdCBiZSBzZWxlY3RlZCwgYXJpYS1zZWxlY3RlZCBzaG91bGQgYmUgdW5kZWZpbmVkIChlLmcuIHBhcmVudCBub2RlcyBpbiBsZWFmLXNlbGVjdC1vbmx5IG1vZGUpLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBhcmlhU2VsZWN0ZWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyLnNlbGVjdFNpbmdsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaXNTZWxlY3RlZCA/IHRydWUgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLiNpc1NlbGVjdGFibGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiAhIXRoaXMuaXNTZWxlY3RlZDtcbiAgfVxuXG4gIHB1YmxpYyBzaG93Q2hlY2tib3goKTogYm9vbGVhbiB7XG4gICAgLy8gQ2hlY2sgZm9yIGNoZWNrYm94IG1vZGUgZW5hYmxlZCwgYnV0IGFsc28gcmVzcGVjdCBsZWFmLW5vZGUgYW5kIHNpbmdsZS1zZWxlY3Qgc2V0dGluZ3MuXG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5ub2RlICYmXG4gICAgICB0aGlzLm5vZGUub3B0aW9ucy51c2VDaGVja2JveCAmJlxuICAgICAgdGhpcy4jaXNTZWxlY3RhYmxlKCkgJiZcbiAgICAgICghdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyIHx8XG4gICAgICAgICF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIuc2VsZWN0U2luZ2xlKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1NlbGVjdGVkQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI2lzU2VsZWN0YWJsZSgpICYmIHRoaXMuaXNTZWxlY3RlZCAmJiAhdGhpcy5pc1BhcnRpYWxseVNlbGVjdGVkO1xuICB9XG5cbiAgcHVibGljIHNob3dBY3RpdmVDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLm5vZGUgJiZcbiAgICAgIHRoaXMubm9kZS5pc0FjdGl2ZSAmJlxuICAgICAgIXRoaXMubm9kZS50cmVlTW9kZWwub3B0aW9ucy51c2VDaGVja2JveFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1RvZ2dsZVBsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5ub2RlPy5oYXNDaGlsZHJlbiAmJlxuICAgICAgIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlcj8uc2VsZWN0TGVhZk5vZGVzT25seVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cygpOiB2b2lkIHtcbiAgICAvLyA8dHJlZS1ub2RlLWNvbnRlbnQ+IGhhcyBpdHMgb3duIGNsaWNrIGhhbmRsZXIsIHNvIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhpcyBmb2N1cyBldmVudFxuICAgIC8vIGlzIGNvbWluZyBmcm9tIHRoZSBtb3VzZSBjbGljayBvciB0aGUga2V5Ym9hcmQgdG8gcHJldmVudCB0aGUgbG9naWMgZnJvbSBydW5uaW5nIHR3aWNlLlxuICAgIGlmICghdGhpcy4jbW91c2VEb3duKSB7XG4gICAgICB0aGlzLm5vZGU/LnRyZWVNb2RlbC5zZXRGb2N1cyh0cnVlKTtcbiAgICAgIHRoaXMubm9kZT8uZm9jdXMoKTtcbiAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk1vdXNlRG93bigpOiB2b2lkIHtcbiAgICB0aGlzLiNtb3VzZURvd24gPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIG9uTW91c2VVcCgpOiB2b2lkIHtcbiAgICB0aGlzLiNtb3VzZURvd24gPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBldmVudC50YXJnZXQpIHtcbiAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSAndXAnOlxuICAgICAgICBjYXNlICdhcnJvd3VwJzpcbiAgICAgICAgICAvLyBGb2N1cyBvbiBwcmV2aW91cyBub2RlLlxuICAgICAgICAgIHRoaXMubm9kZT8udHJlZU1vZGVsLmZvY3VzUHJldmlvdXNOb2RlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZG93bic6XG4gICAgICAgIGNhc2UgJ2Fycm93ZG93bic6XG4gICAgICAgICAgLy8gRm9jdXMgb24gbmV4dCBub2RlLlxuICAgICAgICAgIHRoaXMubm9kZT8udHJlZU1vZGVsLmZvY3VzTmV4dE5vZGUoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgY2FzZSAnYXJyb3dsZWZ0JzpcbiAgICAgICAgICAvLyBDeWNsZSBiYWNrd2FyZHMgdGhyb3VnaCBpbnRlcmFjdGl2ZSBjaGlsZCBlbGVtZW50c1xuICAgICAgICAgIC8vIElmIHVzZXIgcmVhY2hlcyB0aGUgYmVnaW5uaW5nLCBhY3RpdmF0ZSBkcmlsbCB1cC5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICh0aGlzLmNoaWxkRm9jdXNJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGlsZEZvY3VzSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5vZGU/LnNldElzRXhwYW5kZWQoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgY2FzZSAnYXJyb3dyaWdodCc6XG4gICAgICAgICAgLy8gQ3ljbGUgZm9yd2FyZCB0aHJvdWdoIGludGVyYWN0aXZlIGNoaWxkIGVsZW1lbnRzLlxuICAgICAgICAgIC8vIElmIHVzZXIgcmVhY2hlcyB0aGUgZW5kLCBhY3RpdmF0ZSBkcmlsbCBkb3duLlxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy4jZm9jdXNhYmxlQ2hpbGRyZW4ubGVuZ3RoIDw9IDAgfHxcbiAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4ID09PSB0aGlzLiNmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGggLSAxXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGU/LnNldElzRXhwYW5kZWQodHJ1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoaWxkRm9jdXNJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4ID0gMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjaXNTZWxlY3RhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICEhdGhpcy5ub2RlICYmXG4gICAgICAgICh0aGlzLm5vZGUuaXNMZWFmIHx8XG4gICAgICAgICAgIXRoaXMubm9kZS5oYXNDaGlsZHJlbiB8fFxuICAgICAgICAgICF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIuc2VsZWN0TGVhZk5vZGVzT25seSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAobm9kZSAmJiBpbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gIDxkaXZcbiAgICBbY2xhc3NdPVwibm9kZS5nZXRDbGFzcygpXCJcbiAgICBbY2xhc3MudHJlZS1ub2RlXT1cInRydWVcIlxuICAgIFtjbGFzcy50cmVlLW5vZGUtYWN0aXZlXT1cIm5vZGUuaXNBY3RpdmVcIlxuICAgIFtjbGFzcy50cmVlLW5vZGUtY29sbGFwc2VkXT1cIm5vZGUuaXNDb2xsYXBzZWQgJiYgbm9kZS5oYXNDaGlsZHJlblwiXG4gICAgW2NsYXNzLnRyZWUtbm9kZS1leHBhbmRlZF09XCJub2RlLmlzRXhwYW5kZWQgJiYgbm9kZS5oYXNDaGlsZHJlblwiXG4gICAgW2NsYXNzLnRyZWUtbm9kZS1mb2N1c2VkXT1cIm5vZGUuaXNGb2N1c2VkXCJcbiAgICBbY2xhc3MudHJlZS1ub2RlLWxlYWZdPVwibm9kZS5pc0xlYWZcIlxuICA+XG4gICAgQGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgPHRyZWUtbm9kZS1kcm9wLXNsb3QgW2Ryb3BJbmRleF09XCJub2RlLmluZGV4XCIgW25vZGVdPVwibm9kZS5wYXJlbnRcIiAvPlxuICAgIH1cblxuICAgIDwhLS0gI3JlZ2lvbiA8dHJlZS1ub2RlLXdyYXBwZXI+IGN1c3RvbSB0ZW1wbGF0ZSAtLS0+XG4gICAgPGRpdlxuICAgICAgI25vZGVDb250ZW50V3JhcHBlclxuICAgICAgY2xhc3M9XCJub2RlLXdyYXBwZXJcIlxuICAgICAgcm9sZT1cInRyZWVpdGVtXCJcbiAgICAgIFthbGxvd0RyYWdvdmVyU3R5bGluZ109XCJub2RlLmFsbG93RHJhZ292ZXJTdHlsaW5nKClcIlxuICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIm5vZGUuaXNBY3RpdmVcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJub2RlLmNoaWxkcmVuPy5sZW5ndGggPyBub2RlLmlzRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiYXJpYVNlbGVjdGVkKClcIlxuICAgICAgW2F0dHIuZGF0YS1ub2RlLWlkXT1cIm5vZGUuaWRcIlxuICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgW2NsYXNzLnNreS1hbmd1bGFyLXRyZWUtbm9kZS1hY3RpdmVdPVwic2hvd0FjdGl2ZUNsYXNzKClcIlxuICAgICAgW2NsYXNzLnNreS1hbmd1bGFyLXRyZWUtbm9kZS1oYXMtY2hlY2tib3hdPVwic2hvd0NoZWNrYm94KClcIlxuICAgICAgW2NsYXNzLnNreS1hbmd1bGFyLXRyZWUtbm9kZS1zZWxlY3RlZF09XCJzaG93U2VsZWN0ZWRDbGFzcygpXCJcbiAgICAgIFtzdHlsZS4tLXNreS1hbmd1bGFyLXRyZWUtbm9kZS1wYWRkaW5nXT1cIm5vZGUuZ2V0Tm9kZVBhZGRpbmcoKVwiXG4gICAgICBbdHJlZUFsbG93RHJvcF09XCJub2RlLmFsbG93RHJvcFwiXG4gICAgICBbdHJlZURyYWddPVwibm9kZVwiXG4gICAgICBbdHJlZURyYWdFbmFibGVkXT1cIm5vZGUuYWxsb3dEcmFnKClcIlxuICAgICAgKGNvbnRleHRtZW51KT1cIm5vZGUubW91c2VBY3Rpb24oJ2NvbnRleHRNZW51JywgJGV2ZW50KVwiXG4gICAgICAoZGJsY2xpY2spPVwibm9kZS5tb3VzZUFjdGlvbignZGJsQ2xpY2snLCAkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigpXCJcbiAgICAgIChtb3VzZXVwKT1cIm9uTW91c2VVcCgpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICh0cmVlRHJvcCk9XCJub2RlLm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgICh0cmVlRHJvcERyYWdFbnRlcik9XCJub2RlLm1vdXNlQWN0aW9uKCdkcmFnRW50ZXInLCAkZXZlbnQpXCJcbiAgICAgICh0cmVlRHJvcERyYWdMZWF2ZSk9XCJub2RlLm1vdXNlQWN0aW9uKCdkcmFnTGVhdmUnLCAkZXZlbnQpXCJcbiAgICAgICh0cmVlRHJvcERyYWdPdmVyKT1cIm5vZGUubW91c2VBY3Rpb24oJ2RyYWdPdmVyJywgJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPCEtLSAjcmVnaW9uIDx0cmVlLW5vZGUtZXhwYW5kZXI+IGN1c3RvbSB0ZW1wbGF0ZSAtLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXRvZ2dsZS1jaGlsZHJlbi13cmFwcGVyXCI+XG4gICAgICAgIEBpZiAobm9kZS5oYXNDaGlsZHJlbikge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktdG9nZ2xlLWNoaWxkcmVuXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm5vZGVOYW1lXCJcbiAgICAgICAgICAgIFtjbGFzcy50b2dnbGUtY2hpbGRyZW4td3JhcHBlci1leHBhbmRlZF09XCJub2RlLmlzRXhwYW5kZWRcIlxuICAgICAgICAgICAgW2NsYXNzLnRvZ2dsZS1jaGlsZHJlbi13cmFwcGVyLWNvbGxhcHNlZF09XCJub2RlLmlzQ29sbGFwc2VkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJub2RlLm1vdXNlQWN0aW9uKCdleHBhbmRlckNsaWNrJywgJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJub2RlLmlzRXhwYW5kZWQgPyAnY2hldnJvbi1kb3duJyA6ICdjaGV2cm9uLXJpZ2h0J1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoc2hvd1RvZ2dsZVBsYWNlaG9sZGVyKCkpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvZ2dsZS1jaGlsZHJlbi1wbGFjZWhvbGRlclwiPiA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSAjZW5kcmVnaW9uIDx0cmVlLW5vZGUtZXhwYW5kZXI+IC0tLT5cblxuICAgICAgPCEtLSBOb3RlOiB3ZSd2ZSBtYWRlIGNoYW5nZXMgdG8gdGhlIGNsaWNrIGV2ZW50LCB0YWJpbmRleCwgYW5kIGNsYXNzZXMgd2hlbiBjb21wYXJlZCB0byB0aGUgb3JpZ2luYWwgdGVtcGxhdGUuIC0tPlxuICAgICAgPCEtLSBodHRwczovL2dpdGh1Yi5jb20vNTAwdGVjaC9hbmd1bGFyLXRyZWUtY29tcG9uZW50L2Jsb2IvbWFzdGVyL2xpYi9jb21wb25lbnRzL3RyZWUtbm9kZS13cmFwcGVyLmNvbXBvbmVudC50cyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJub2RlLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICBAaWYgKHNob3dDaGVja2JveCgpKSB7XG4gICAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZFwiXG4gICAgICAgICAgICBbaWRdPVwibm9kZS5kYXRhLmlkXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJub2RlTmFtZVwiXG4gICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJpc1BhcnRpYWxseVNlbGVjdGVkXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwibm9kZS5tb3VzZUFjdGlvbignY2hlY2tib3hDbGljaycsICRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cblxuICAgICAgICA8c2t5LWFuZ3VsYXItdHJlZS1jb250ZXh0LW1lbnU+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWRyb3Bkb3duXCIgLz5cbiAgICAgICAgPC9za3ktYW5ndWxhci10cmVlLWNvbnRleHQtbWVudT5cblxuICAgICAgICA8dHJlZS1ub2RlLWNvbnRlbnRcbiAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZXM/LnRyZWVOb2RlVGVtcGxhdGVcIlxuICAgICAgICAgIChjbGljayk9XCJub2RlLm1vdXNlQWN0aW9uKCdjbGljaycsICRldmVudClcIlxuICAgICAgICAvPjxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIj5cbiAgICAgICAgICBAaWYgKGhlbHBLZXkgfHwgaGVscFBvcG92ZXJDb250ZW50KSB7XG4gICAgICAgICAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAgICAgICAgIFtoZWxwS2V5XT1cImhlbHBLZXlcIlxuICAgICAgICAgICAgICBbbGFiZWxUZXh0XT1cIm5vZGVOYW1lXCJcbiAgICAgICAgICAgICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1jb250cm9sLWhlbHBcIiAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZXM/LnRyZWVOb2RlV3JhcHBlclRlbXBsYXRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICRpbXBsaWNpdDogbm9kZSxcbiAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICB0ZW1wbGF0ZXM6IHRlbXBsYXRlc1xuICAgICAgfVwiXG4gICAgLz5cbiAgICA8IS0tICNlbmRyZWdpb24gPHRyZWUtbm9kZS13cmFwcGVyPiAtLT5cblxuICAgIDx0cmVlLW5vZGUtY2hpbGRyZW4gcm9sZT1cImdyb3VwXCIgW25vZGVdPVwibm9kZVwiIFt0ZW1wbGF0ZXNdPVwidGVtcGxhdGVzXCIgLz5cblxuICAgIDx0cmVlLW5vZGUtZHJvcC1zbG90IFtkcm9wSW5kZXhdPVwibm9kZS5pbmRleCArIDFcIiBbbm9kZV09XCJub2RlLnBhcmVudFwiIC8+XG4gIDwvZGl2PlxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TreeModule } from '@blackbaud/angular-tree-component';\nimport { SkyCoreAdapterService } from '@skyux/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\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 { SkyTreeViewToolbarComponent } 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.0.5\", ngImport: i0, type: SkyAngularTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAngularTreeModule, declarations: [SkyAngularTreeContextMenuComponent,\n SkyAngularTreeNodeComponent,\n SkyAngularTreeWrapperComponent,\n SkyTreeViewToolbarComponent], imports: [CommonModule,\n SkyAngularTreeComponentResourcesModule,\n SkyCheckboxModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyToolbarModule,\n TreeModule], exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAngularTreeModule, providers: [SkyCoreAdapterService], imports: [CommonModule,\n SkyAngularTreeComponentResourcesModule,\n SkyCheckboxModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyToolbarModule,\n TreeModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SkyAngularTreeModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n SkyAngularTreeContextMenuComponent,\n SkyAngularTreeNodeComponent,\n SkyAngularTreeWrapperComponent,\n SkyTreeViewToolbarComponent,\n ],\n imports: [\n CommonModule,\n SkyAngularTreeComponentResourcesModule,\n SkyCheckboxModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyToolbarModule,\n TreeModule,\n ],\n providers: [SkyCoreAdapterService],\n exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvbW9kdWxlcy9hbmd1bGFyLXRyZWUvYW5ndWxhci10cmVlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUUvRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFxQmxGLE1BQU0sT0FBTyxvQkFBb0I7OEdBQXBCLG9CQUFvQjsrR0FBcEIsb0JBQW9CLGlCQWpCN0Isa0NBQWtDO1lBQ2xDLDJCQUEyQjtZQUMzQiw4QkFBOEI7WUFDOUIsMkJBQTJCLGFBRzNCLFlBQVk7WUFDWixzQ0FBc0M7WUFDdEMsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFVBQVUsYUFHRiwyQkFBMkIsRUFBRSw4QkFBOEI7K0dBRTFELG9CQUFvQixhQUhwQixDQUFDLHFCQUFxQixDQUFDLFlBUmhDLFlBQVk7WUFDWixzQ0FBc0M7WUFDdEMsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFVBQVU7OzJGQUtELG9CQUFvQjtrQkFuQmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGtDQUFrQzt3QkFDbEMsMkJBQTJCO3dCQUMzQiw4QkFBOEI7d0JBQzlCLDJCQUEyQjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osc0NBQXNDO3dCQUN0QyxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFVBQVU7cUJBQ1g7b0JBQ0QsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2xDLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixFQUFFLDhCQUE4QixDQUFDO2lCQUN2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJlZU1vZHVsZSB9IGZyb20gJ0BibGFja2JhdWQvYW5ndWxhci10cmVlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lDb3JlQWRhcHRlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lTW9kdWxlIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaWNvbic7XG5pbXBvcnQgeyBTa3lUb29sYmFyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5cbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlQ29tcG9uZW50UmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NreS1hbmd1bGFyLXRyZWUtY29tcG9uZW50LXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lBbmd1bGFyVHJlZUNvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9hbmd1bGFyLXRyZWUtY29udGV4dC1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBbmd1bGFyVHJlZU5vZGVDb21wb25lbnQgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUcmVlVmlld1Rvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBbmd1bGFyVHJlZVdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreUFuZ3VsYXJUcmVlQ29udGV4dE1lbnVDb21wb25lbnQsXG4gICAgU2t5QW5ndWxhclRyZWVOb2RlQ29tcG9uZW50LFxuICAgIFNreUFuZ3VsYXJUcmVlV3JhcHBlckNvbXBvbmVudCxcbiAgICBTa3lUcmVlVmlld1Rvb2xiYXJDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5QW5ndWxhclRyZWVDb21wb25lbnRSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5Q2hlY2tib3hNb2R1bGUsXG4gICAgU2t5SGVscElubGluZU1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreVRvb2xiYXJNb2R1bGUsXG4gICAgVHJlZU1vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlXSxcbiAgZXhwb3J0czogW1NreUFuZ3VsYXJUcmVlTm9kZUNvbXBvbmVudCwgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtYW5ndWxhci10cmVlLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9za3l1eC1hbmd1bGFyLXRyZWUtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.SkyTreeViewToolbarComponent","i1","i2","i3","i4","i6.SkyAngularTreeContextMenuComponent"],"mappings":"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"}
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.0\", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, exports: [SkyI18nModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, imports: [SkyI18nModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [SkyI18nModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWFuZ3VsYXItdHJlZS1jb21wb25lbnQtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFuZ3VsYXItdHJlZS1jb21wb25lbnQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxhQUFhLEVBRWIsc0JBQXNCLEdBQ3ZCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBb0M7SUFDakQsT0FBTyxFQUFFO1FBQ1AsNEJBQTRCLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFO1FBQ3RELGtDQUFrQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFO1FBQ2xFLCtCQUErQixFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUN4RCw2QkFBNkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUU7UUFDcEQsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO0tBQ3pEO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsNEJBQTRCLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFO1FBQ3pELGtDQUFrQyxFQUFFLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFO1FBQ3hFLCtCQUErQixFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtRQUN2RCw2QkFBNkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7UUFDdEQsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7S0FDaEU7Q0FDRixDQUFDO0FBRUYsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRS9DOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNDQUFzQzs4R0FBdEMsc0NBQXNDOytHQUF0QyxzQ0FBc0MsWUFGdkMsYUFBYTsrR0FFWixzQ0FBc0MsWUFGdkMsYUFBYTs7MkZBRVosc0NBQXNDO2tCQUhsRCxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktYW5ndWxhci10cmVlLWNvbXBvbmVudCcgc2NoZW1hdGljLlxuICogVG8gdXBkYXRlIHRoaXMgZmlsZSwgc2ltcGx5IHJlcnVuIHRoZSBjb21tYW5kLlxuICovXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5STE4bk1vZHVsZSxcbiAgU2t5TGliUmVzb3VyY2VzLFxuICBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmNvbnN0IFJFU09VUkNFUzogUmVjb3JkPHN0cmluZywgU2t5TGliUmVzb3VyY2VzPiA9IHtcbiAgJ0VOLVVTJzoge1xuICAgIHNreXV4X2FuZ3VsYXJfdHJlZV9jbGVhcl9hbGw6IHsgbWVzc2FnZTogJ0NsZWFyIGFsbCcgfSxcbiAgICBza3l1eF9hbmd1bGFyX3RyZWVfY2xpY2tfdG9fZXhwYW5kOiB7IG1lc3NhZ2U6ICdDbGljayB0byBleHBhbmQnIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2NvbGxhcHNlX2FsbDogeyBtZXNzYWdlOiAnQ29sbGFwc2UnIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2V4cGFuZF9hbGw6IHsgbWVzc2FnZTogJ0V4cGFuZCcgfSxcbiAgICBza3l1eF9hbmd1bGFyX3RyZWVfc2VsZWN0X2FsbDogeyBtZXNzYWdlOiAnU2VsZWN0IGFsbCcgfSxcbiAgfSxcbiAgJ0ZSLUNBJzoge1xuICAgIHNreXV4X2FuZ3VsYXJfdHJlZV9jbGVhcl9hbGw6IHsgbWVzc2FnZTogJ0VmZmFjZXIgdG91dCcgfSxcbiAgICBza3l1eF9hbmd1bGFyX3RyZWVfY2xpY2tfdG9fZXhwYW5kOiB7IG1lc3NhZ2U6ICdDbGlxdWV6IHBvdXIgYWdyYW5kaXInIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2NvbGxhcHNlX2FsbDogeyBtZXNzYWdlOiAnUsOpZHVpcmUnIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2V4cGFuZF9hbGw6IHsgbWVzc2FnZTogJ0FncmFuZGlyJyB9LFxuICAgIHNreXV4X2FuZ3VsYXJfdHJlZV9zZWxlY3RfYWxsOiB7IG1lc3NhZ2U6ICdTw6lsZWN0aW9ubmVyIHRvdXQnIH0sXG4gIH0sXG59O1xuXG5Ta3lMaWJSZXNvdXJjZXNTZXJ2aWNlLmFkZFJlc291cmNlcyhSRVNPVVJDRVMpO1xuXG4vKipcbiAqIEltcG9ydCBpbnRvIGFueSBjb21wb25lbnQgbGlicmFyeSBtb2R1bGUgdGhhdCBuZWVkcyB0byB1c2UgcmVzb3VyY2Ugc3RyaW5ncy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1NreUkxOG5Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBbmd1bGFyVHJlZUNvbXBvbmVudFJlc291cmNlc01vZHVsZSB7fVxuIl19","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.0\", ngImport: i0, type: SkyAngularTreeContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyAngularTreeContextMenuComponent, isStandalone: false, 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.0\", ngImport: i0, type: SkyAngularTreeContextMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-angular-tree-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: \"<div class=\\\"sky-angular-tree-context-menu\\\">\\n <ng-content />\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLWNvbnRleHQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS1jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRW5FOztHQUVHO0FBT0gsTUFBTSxPQUFPLGtDQUFrQzs4R0FBbEMsa0NBQWtDO2tHQUFsQyxrQ0FBa0MsMEZDWC9DLDJFQUdBOzsyRkRRYSxrQ0FBa0M7a0JBTjlDLFNBQVM7K0JBQ0UsK0JBQStCLG1CQUV4Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hbmd1bGFyLXRyZWUtY29udGV4dC1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuZ3VsYXItdHJlZS1jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFuZ3VsYXJUcmVlQ29udGV4dE1lbnVDb21wb25lbnQge31cbiIsIjxkaXYgY2xhc3M9XCJza3ktYW5ndWxhci10cmVlLWNvbnRleHQtbWVudVwiPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+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.0\", ngImport: i0, type: SkyAngularTreeAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAngularTreeAdapterService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAngularTreeAdapterService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvbW9kdWxlcy9hbmd1bGFyLXRyZWUvYW5ndWxhci10cmVlLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRXBEOztHQUVHO0FBRUgsTUFBTSxPQUFPLDRCQUE0QjtJQUM5QixtQkFBbUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUV0RCxvQkFBb0IsQ0FBQyxPQUFvQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU0seUJBQXlCLENBQzlCLE9BQW9CLEVBQ3BCLFFBQWdCO1FBRWhCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RSxJQUFJLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE9BQU8sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDOzhHQWhCVSw0QkFBNEI7a0hBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSB7XG4gIHJlYWRvbmx5ICNjb3JlQWRhcHRlclNlcnZpY2UgPSBpbmplY3QoU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlKTtcblxuICBwdWJsaWMgZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIHNldFRhYkluZGV4T2ZGb2N1c2FibGVFbHMoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgdGFiSW5kZXg6IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZm9jdXNhYmxlRWxzID0gdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpO1xuICAgIGxldCBpbmRleCA9IGZvY3VzYWJsZUVscy5sZW5ndGg7XG4gICAgd2hpbGUgKGluZGV4LS0pIHtcbiAgICAgIGZvY3VzYWJsZUVsc1tpbmRleF0udGFiSW5kZXggPSB0YWJJbmRleDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';\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 SkyTreeViewToolbarComponent {\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.0\", ngImport: i0, type: SkyTreeViewToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", type: SkyTreeViewToolbarComponent, isStandalone: false, 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: \"component\", type: i1.λ1, selector: \"sky-icon\", inputs: [\"iconName\", \"variant\", \"iconSize\"] }, { 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.0\", ngImport: i0, type: SkyTreeViewToolbarComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-angular-tree-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7OztBQUV2Qjs7R0FFRztBQU9ILE1BQU0sT0FBTywyQkFBMkI7SUFOeEM7UUFXUyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHekMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUc1QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHMUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBaUJsRDtJQWZRLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBOUJVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdTQ2pCeEMsczlDQTBDQTs7MkZEekJhLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSwwQkFBMEIsbUJBRW5CLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzs4QkFJVixpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsTUFBTTtnQkFJQSxnQkFBZ0I7c0JBRHRCLE1BQU07Z0JBSUEsY0FBYztzQkFEcEIsTUFBTTtnQkFJQSxjQUFjO3NCQURwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFuZ3VsYXItdHJlZS10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuZ3VsYXItdHJlZS10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUcmVlVmlld1Rvb2xiYXJDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1NlbGVjdEJ1dHRvbnM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjbGVhckFsbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY29sbGFwc2VBbGxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGV4cGFuZEFsbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0QWxsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+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 * as i0 from \"@angular/core\";\nimport * as i1 from \"./angular-tree-toolbar.component\";\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.0\", ngImport: i0, type: SkyAngularTreeWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", type: SkyAngularTreeWrapperComponent, isStandalone: false, 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: i1.SkyTreeViewToolbarComponent, 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.0\", ngImport: i0, type: SkyAngularTreeWrapperComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-angular-tree-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLElBQUksRUFDSixZQUFZLEVBQ1osYUFBYSxHQUdkLE1BQU0sbUNBQW1DLENBQUM7OztBQUUzQzs7Ozs7R0FLRztBQVFILE1BQU0sT0FBTyw4QkFBOEI7SUFQM0M7UUFRRTs7OztXQUlHO1FBRUksYUFBUSxHQUF3QixLQUFLLENBQUM7UUFFN0M7Ozs7O1dBS0c7UUFFSSx3QkFBbUIsR0FBd0IsS0FBSyxDQUFDO1FBRXhEOzs7OztXQUtHO1FBRUksaUJBQVksR0FBd0IsS0FBSyxDQUFDO1FBRWpEOzs7OztXQUtHO1FBRUksZ0JBQVcsR0FBd0IsS0FBSyxDQUFDO1FBRXpDLHNCQUFpQixHQUE0QixFQUFFLENBQUM7S0F5S3hEO0lBcEtRLGVBQWU7UUFDcEIsSUFDRSxJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUNqRCxDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FDVixxR0FBcUc7Z0JBQ25HLGtGQUFrRixDQUNyRixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLE9BQU8sQ0FDTCxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDaEQsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVNLGVBQWU7UUFDcEIsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRztnQkFDekIsR0FBRyxZQUFZO2dCQUNmLG1CQUFtQixFQUFFLEVBQUU7YUFDeEIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdDLGtEQUFrRDtZQUNsRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1lBQzVCLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxJQUFjLEVBQVEsRUFBRTtnQkFDcEQsTUFBTSxVQUFVLEdBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQ2xELElBQUksVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ3pDLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbkIsT0FBTztnQkFDVCxDQUFDO2dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLENBQUMsQ0FBQztZQUNGLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRS9ELHdEQUF3RDtZQUN4RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRztnQkFDekIsR0FBRyxZQUFZO2dCQUNmLG1CQUFtQixFQUFFLElBQUksQ0FBQyxpQkFBaUI7YUFDNUMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE9BQU8sQ0FDTCxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDaEQsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFjO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDdkUsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQWUsRUFBRSxJQUFjLEVBQUUsS0FBVTtRQUM1RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxPQUFPO0lBQ1QsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQWUsRUFBRSxJQUFjLEVBQUUsS0FBVTtRQUMxRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUvRCx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLElBQUksSUFBSSxZQUFZLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ2pELHVGQUF1RjtZQUN2RiwwRkFBMEY7WUFDMUYsMEdBQTBHO1lBQzFHLDhGQUE4RjtZQUM5RiwwQkFBMEI7WUFDMUIsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDM0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixDQUFDO1lBRUQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE1BQU0sb0JBQW9CLEdBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFFdEQsSUFBSSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNoQyx5R0FBeUc7WUFDekcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFRLEVBQUUsQ0FDN0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUVELElBQUksb0JBQW9CLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDL0Isb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFRLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0Msb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFRLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFM0Msa0dBQWtHO1lBQ2xHLHdGQUF3RjtZQUN4RiwwQkFBMEI7WUFDMUIsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFRLEVBQUUsQ0FDbkUsU0FBUyxDQUFDO1lBQ1osMEJBQTBCO1lBQzFCLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBUSxFQUFFLENBQ2xFLFNBQVMsQ0FBQztZQUNaLDBCQUEwQjtZQUMxQixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQVEsRUFBRSxDQUNsRSxTQUFTLENBQUM7WUFDWiwwQkFBMEI7WUFDMUIsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFRLEVBQUUsQ0FDaEUsU0FBUyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsSUFBYyxFQUFFLEtBQVU7UUFDeEMsZ0VBQWdFO1FBQ2hFLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxRCxNQUFNLFFBQVEsR0FBRztnQkFDZixlQUFlLEVBQUUsUUFBUSxFQUFFLGVBQWU7Z0JBQzFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDcEUsYUFBYSxFQUFFLFFBQVEsRUFBRSxhQUFhO2dCQUN0QyxhQUFhLEVBQUUsUUFBUSxFQUFFLGFBQWE7Z0JBQ3RDLGFBQWEsRUFBRSxJQUFJLENBQUMsRUFBRTthQUN2QixDQUFDO1lBQ0Ysd0ZBQXdGO1lBQ3hGLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNOLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7OEdBNU1VLDhCQUE4QjtrR0FBOUIsOEJBQThCLHdRQXNDM0IsYUFBYSxnRENsRTdCLCtrQkFxQkE7OzJGRE9hLDhCQUE4QjtrQkFQMUMsU0FBUzsrQkFDRSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSzs4QkFTVixRQUFRO3NCQURkLEtBQUs7Z0JBVUMsbUJBQW1CO3NCQUR6QixLQUFLO2dCQVVDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBVUMsV0FBVztzQkFEakIsS0FBSztnQkFNQyxhQUFhO3NCQURuQixZQUFZO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEtFWVMsXG4gIFRSRUVfQUNUSU9OUyxcbiAgVHJlZUNvbXBvbmVudCxcbiAgVHJlZU1vZGVsLFxuICBUcmVlTm9kZSxcbn0gZnJvbSAnQGJsYWNrYmF1ZC9hbmd1bGFyLXRyZWUtY29tcG9uZW50JztcblxuLyoqXG4gKiBXcmFwcyB0aGUgQW5ndWxhciBgdHJlZS1yb290YCBjb21wb25lbnQgYXMgcGFydCBvZiB0aGUgYFNreUFuZ3VsYXJUcmVlTW9kdWxlYCB0aGF0IHByb3ZpZGVzXG4gKiBTS1kgVVggY29tcG9uZW50cyBhbmQgc3R5bGVzIHRvIGNvbXBsZW1lbnQgdGhlIGBhbmd1bGFyLXRyZWUtY29tcG9uZW50YCBsaWJyYXJ5IGFuZCBhcHBseSBTS1kgVVhcbiAqIHRoZW1lcyBhbmQgZnVuY3Rpb25hbGl0eSB0byBoaWVyYXJjaGljYWwgbGlzdCB2aWV3cy4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgdHJlZS1yb290YCBjb21wb25lbnQsIHNlZSB0aGVcbiAqIFtBbmd1bGFyIHRyZWUgY29tcG9uZW50IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcykuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hbmd1bGFyLXRyZWUtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlbmRlciB0aGUgdHJlZSB2aWV3IGluIHJlYWQtb25seSBtb2RlLlxuICAgKiBUaGlzIG1vZGUgZGlzYWJsZXMgc2VsZWN0ZWQgYW5kIGFjdGl2ZSBzdGF0ZXMgb24gdGhlIHRyZWUgdmlldyBub2Rlcy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZWFkT25seTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBsZWFmLW9ubHkgc2VsZWN0aW9uIG1vZGUuIEZvciB0cmVlIHZpZXdzIHdpdGhcbiAgICogW2NoZWNrYm94ZXNdKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcy90cmktc3RhdGUtY2hlY2tib3hlcyksXG4gICAqIHRoaXMgbW9kZSBsaW1pdHMgdXNlciBzZWxlY3Rpb25zIHRvIGxlYWYgbm9kZXMgYW5kIHByZXZlbnRzIHVzZXJzIGZyb20gc2VsZWN0aW5nIHBhcmVudCBub2Rlcy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RMZWFmTm9kZXNPbmx5OiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXNlIHNpbmdsZS1zZWxlY3QgbW9kZS4gRm9yIHRyZWUgdmlld3Mgd2l0aFxuICAgKiBbY2hlY2tib3hlc10oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL3RyaS1zdGF0ZS1jaGVja2JveGVzKSxcbiAgICogdGhpcyBtb2RlIGxpbWl0cyB1c2VyIHNlbGVjdGlvbnMgdG8gb25lIG5vZGUgYXQgYSB0aW1lLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdFNpbmdsZTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSB0b29sYmFyIHdpdGggYnV0dG9ucyB0byBleHBhbmQgYW5kIGNvbGxhcHNlIGFsbCBub2RlcyBhbmQgYnV0dG9ucyB0byBzZWxlY3QgYW5kIGNsZWFyIGFsbCBjaGVja2JveGVzLlxuICAgKiBUaGUgc2VsZWN0IGFuZCBjbGVhciBidXR0b25zIG9ubHkgYXBwZWFyIHdoZW4geW91IGVuYWJsZSBjaGVja2JveGVzLlxuICAgKiBUbyBlbmFibGUgW2NoZWNrYm94ZXNdKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcy90cmktc3RhdGUtY2hlY2tib3hlcykuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgc2VsZWN0YWJsZU5vZGVJZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgQENvbnRlbnRDaGlsZChUcmVlQ29tcG9uZW50KVxuICBwdWJsaWMgdHJlZUNvbXBvbmVudDogVHJlZUNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2VsZWN0U2luZ2xlICYmXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5vcHRpb25zLnVzZVRyaVN0YXRlXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdTaW5nbGUgc2VsZWN0IG1vZGUgc2hvdWxkIG5vdCBiZSBlbmFibGVkIHdoaWxlIHRoZSB0cmVlIGlzIGluIHRyaVN0YXRlIG1vZGUgKGNhc2NhZGluZyBzZWxlY3Rpb24pLiAnICtcbiAgICAgICAgICAnUGxlYXNlIHNldCBcInVzZVRyaVN0YXRlXCIgdG8gXCJmYWxzZVwiIGlmIHlvdSB3YW50IHRvIHJlbWFpbiBpbiBzaW5nbGUgc2VsZWN0IG1vZGUuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuI292ZXJyaWRlQWN0aW9uTWFwcGluZygpO1xuICB9XG5cbiAgcHVibGljIG11bHRpc2VsZWN0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLnRyZWVDb21wb25lbnQgJiZcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwub3B0aW9ucy51c2VDaGVja2JveCAmJlxuICAgICAgIXRoaXMuc2VsZWN0U2luZ2xlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsZWFyQWxsQ2xpY2soKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuc2VsZWN0U2luZ2xlICYmIHRoaXMudHJlZUNvbXBvbmVudCkge1xuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5nZXRTdGF0ZSgpO1xuICAgICAgdGhpcy50cmVlQ29tcG9uZW50LnN0YXRlID0ge1xuICAgICAgICAuLi5jdXJyZW50U3RhdGUsXG4gICAgICAgIHNlbGVjdGVkTGVhZk5vZGVJZHM6IHt9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Db2xsYXBzZUFsbENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMudHJlZUNvbXBvbmVudD8udHJlZU1vZGVsLmNvbGxhcHNlQWxsKCk7XG4gIH1cblxuICBwdWJsaWMgb25FeHBhbmRBbGxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5leHBhbmRBbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdEFsbENsaWNrKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCF0aGlzLnNlbGVjdFNpbmdsZSAmJiB0aGlzLnRyZWVDb21wb25lbnQpIHtcbiAgICAgIC8vIEdldCBhIGxpc3Qgb2YgYWxsIG5vZGUgaWRzIHRoYXQgYXJlIHNlbGVjdGFibGUuXG4gICAgICB0aGlzLnNlbGVjdGFibGVOb2RlSWRzID0ge307XG4gICAgICBjb25zdCBnZXRTZWxlY3RhYmxlTm9kZUlkcyA9IChub2RlOiBUcmVlTm9kZSk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RhYmxlID1cbiAgICAgICAgICBub2RlLmlzU2VsZWN0YWJsZSgpICYmXG4gICAgICAgICAgIShub2RlLmhhc0NoaWxkcmVuICYmIHRoaXMuc2VsZWN0TGVhZk5vZGVzT25seSk7XG4gICAgICAgIGlmIChzZWxlY3RhYmxlICYmICFub2RlLmRhdGEudmlydHVhbCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZU5vZGVJZHNbbm9kZS5pZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiBnZXRTZWxlY3RhYmxlTm9kZUlkcyhjaGlsZCkpO1xuICAgICAgfTtcbiAgICAgIGdldFNlbGVjdGFibGVOb2RlSWRzKHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwudmlydHVhbFJvb3QpO1xuXG4gICAgICAvLyBVcGRhdGUgdHJlZSBzdGF0ZSB3aXRoIG5ldyBsaXN0IG9mIHNlbGVjdGVkIG5vZGUgaWRzLlxuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5nZXRTdGF0ZSgpO1xuICAgICAgdGhpcy50cmVlQ29tcG9uZW50LnN0YXRlID0ge1xuICAgICAgICAuLi5jdXJyZW50U3RhdGUsXG4gICAgICAgIHNlbGVjdGVkTGVhZk5vZGVJZHM6IHRoaXMuc2VsZWN0YWJsZU5vZGVJZHMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93U2VsZWN0QnV0dG9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLnRyZWVDb21wb25lbnQgJiZcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwub3B0aW9ucy51c2VDaGVja2JveCAmJlxuICAgICAgIXRoaXMuc2VsZWN0U2luZ2xlXG4gICAgKTtcbiAgfVxuXG4gICNpc1NlbGVjdGFibGUobm9kZTogVHJlZU5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbm9kZS5pc0xlYWYgfHwgIW5vZGUuaGFzQ2hpbGRyZW4gfHwgIXRoaXMuc2VsZWN0TGVhZk5vZGVzT25seTtcbiAgfVxuXG4gICNub2RlRGVmYXVsdEFjdGlvbih0cmVlOiBUcmVlTW9kZWwsIG5vZGU6IFRyZWVOb2RlLCBldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5vcHRpb25zLnVzZUNoZWNrYm94ICYmIHRoaXMuI2lzU2VsZWN0YWJsZShub2RlKSkge1xuICAgICAgdGhpcy4jdG9nZ2xlU2VsZWN0ZWQobm9kZSwgZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBUUkVFX0FDVElPTlMuVE9HR0xFX0FDVElWRSh0cmVlLCBub2RlLCBldmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgI29uS2V5RG93bkFjdGlvbih0cmVlOiBUcmVlTW9kZWwsIG5vZGU6IFRyZWVOb2RlLCBldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0Tm9kZUlkID0gZXZlbnQudGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS1ub2RlLWlkJyk7XG5cbiAgICAvLyBLZXkgcHJlc3MgZGlkIG5vdCBoYXBwZW4gb24gdGhlIG5vZGUuXG4gICAgaWYgKCFub2RlIHx8IHRhcmdldE5vZGVJZCAhPT0gbm9kZS5pZC50b1N0cmluZygpKSB7XG4gICAgICAvLyBhbmd1bGFyLXRyZWUtY29tcG9uZW50IHdpbGwgcHJldmVudERlZmF1bHQoKSBvbiBhbnl0aGluZyB1c2luZyBhIGtleSBhY3Rpb24gaGFuZGxlcixcbiAgICAgIC8vIHRodXMgc3RvcHBpbmcgXCJlbnRlclwiIGFuZCBcInNwYWNlXCIga2V5cyB0byB0aHJvdyBcImNsaWNrXCIgZXZlbnRzIG9uIGludGVyYWN0aXZlIGVsZW1lbnRzLlxuICAgICAgLy8gVGhpcyBsb2dpYyBlbnN1cmVzIGNvbXBvbmVudHMgbG9va2luZyBmb3IgXCJjbGlja3NcIiBvbiB0aG9zZSBrZXlzdHJva2VzIHN0aWxsIHdvcmsgKGRyb3Bkb3duIGNvbXBvbmVudCkuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vNTAwdGVjaC9hbmd1bGFyLXRyZWUtY29tcG9uZW50L2Jsb2IvbWFzdGVyL2xpYi9tb2RlbHMvdHJlZS5tb2RlbC50cyNMMzQxXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgZXZlbnQudGFyZ2V0LmNsaWNrKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiNub2RlRGVmYXVsdEFjdGlvbih0cmVlLCBub2RlLCBldmVudCk7XG4gIH1cblxuICAjb3ZlcnJpZGVBY3Rpb25NYXBwaW5nKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRBY3Rpb25NYXBwaW5nID1cbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudD8udHJlZU1vZGVsLm9wdGlvbnMuYWN0aW9uTWFwcGluZztcblxuICAgIGlmIChkZWZhdWx0QWN0aW9uTWFwcGluZz8ubW91c2UpIHtcbiAgICAgIC8vIE92ZXJyaWRlIGRlZmF1bHQgY2xpY2svZW50ZXIvc3BhY2UgYWN0aW9uIHRvIGNoZWNrIGZvciB1bnN1cHBvcnRlZCBvcHRpb25zIChsZWFmIG5vZGUsIHNpbmdsZS1zZWxlY3QpLlxuICAgICAgZGVmYXVsdEFjdGlvbk1hcHBpbmcubW91c2UuY2xpY2sgPSAodHJlZSwgbm9kZSwgZXZlbnQpOiB2b2lkID0+XG4gICAgICAgIHRoaXMuI25vZGVEZWZhdWx0QWN0aW9uKHRyZWUsIG5vZGUsIGV2ZW50KTtcbiAgICB9XG5cbiAgICBpZiAoZGVmYXVsdEFjdGlvbk1hcHBpbmc/LmtleXMpIHtcbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5TUEFDRV0gPSAodHJlZSwgbm9kZSwgZXZlbnQpOiB2b2lkID0+XG4gICAgICAgIHRoaXMuI29uS2V5RG93bkFjdGlvbih0cmVlLCBub2RlLCBldmVudCk7XG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuRU5URVJdID0gKHRyZWUsIG5vZGUsIGV2ZW50KTogdm9pZCA9PlxuICAgICAgICB0aGlzLiNvbktleURvd25BY3Rpb24odHJlZSwgbm9kZSwgZXZlbnQpO1xuXG4gICAgICAvLyBEaXNhYmxlIGxlZnQvcmlnaHQgYXJyb3cga2V5cyB0byBzdXBwb3J0IG5hdmlnYXRpbmcgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aXRoIGtleWJvYXJkLlxuICAgICAgLy8gU2VlIG9uQXJyb3dMZWZ0KCkgLyBvbkFycm93UmlnaHQoKSBtZXRob2RzIGluc2lkZSB0aGUgYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50LnRzLlxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5SSUdIVF0gPSAodHJlZSwgbm9kZSwgJGV2ZW50KTogdm9pZCA9PlxuICAgICAgICB1bmRlZmluZWQ7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgZGVmYXVsdEFjdGlvbk1hcHBpbmcua2V5c1tLRVlTLkxFRlRdID0gKHRyZWUsIG5vZGUsICRldmVudCk6IHZvaWQgPT5cbiAgICAgICAgdW5kZWZpbmVkO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5ET1dOXSA9ICh0cmVlLCBub2RlLCAkZXZlbnQpOiB2b2lkID0+XG4gICAgICAgIHVuZGVmaW5lZDtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuVVBdID0gKHRyZWUsIG5vZGUsICRldmVudCk6IHZvaWQgPT5cbiAgICAgICAgdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gICN0b2dnbGVTZWxlY3RlZChub2RlOiBUcmVlTm9kZSwgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIC8vIElmIHNpbmdsZS1zZWxlY3Rpb24gaXMgZW5hYmxlZCwgb25seSBzZWxlY3QgdGhlIG5vZGUgY2xpY2tlZC5cbiAgICBpZiAodGhpcy5zZWxlY3RTaW5nbGUgJiYgIW5vZGUuaXNTZWxlY3RlZCkge1xuICAgICAgY29uc3Qgb2xkU3RhdGUgPSB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5nZXRTdGF0ZSgpO1xuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGV4cGFuZGVkTm9kZUlkczogb2xkU3RhdGU/LmV4cGFuZGVkTm9kZUlkcyxcbiAgICAgICAgc2VsZWN0ZWRMZWFmTm9kZUlkczogT2JqZWN0LmFzc2lnbih7fSwgbm9kZS5pZCwgeyBbbm9kZS5pZF06IHRydWUgfSksXG4gICAgICAgIGFjdGl2ZU5vZGVJZHM6IG9sZFN0YXRlPy5hY3RpdmVOb2RlSWRzLFxuICAgICAgICBoaWRkZW5Ob2RlSWRzOiBvbGRTdGF0ZT8uaGlkZGVuTm9kZUlkcyxcbiAgICAgICAgZm9jdXNlZE5vZGVJZDogbm9kZS5pZCxcbiAgICAgIH07XG4gICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgc3RhdGUgaW4gb25lIGdvLCBzbyB3ZSBkb24ndCBjcmVhdGUgbXVsdGlwbGUgZXZlbnRzIGZvciB0aGUgY29uc3VtZXIuXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5zZXRTdGF0ZShuZXdTdGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFRSRUVfQUNUSU9OUy5UT0dHTEVfU0VMRUNURUQobm9kZS50cmVlTW9kZWwsIG5vZGUsIGV2ZW50KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktYW5ndWxhci10cmVlLXdyYXBwZXJcIlxuICBbY2xhc3Muc2t5LWFuZ3VsYXItdHJlZS1yZWFkLW9ubHldPVwicmVhZE9ubHlcIlxuPlxuICBAaWYgKHNob3dUb29sYmFyKSB7XG4gICAgPHNreS1hbmd1bGFyLXRyZWUtdG9vbGJhclxuICAgICAgW3Nob3dTZWxlY3RCdXR0b25zXT1cInNob3dTZWxlY3RCdXR0b25zKClcIlxuICAgICAgKGNsZWFyQWxsQ2xpY2spPVwib25DbGVhckFsbENsaWNrKClcIlxuICAgICAgKGNvbGxhcHNlQWxsQ2xpY2spPVwib25Db2xsYXBzZUFsbENsaWNrKClcIlxuICAgICAgKGV4cGFuZEFsbENsaWNrKT1cIm9uRXhwYW5kQWxsQ2xpY2soKVwiXG4gICAgICAoc2VsZWN0QWxsQ2xpY2spPVwib25TZWxlY3RBbGxDbGljaygpXCJcbiAgICAvPlxuICB9XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1hbmd1bGFyLXRyZWUtcm9vdFwiXG4gICAgcm9sZT1cInRyZWVcIlxuICAgIFthdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXT1cIm11bHRpc2VsZWN0YWJsZSgpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInRyZWUtcm9vdFwiIC8+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild, inject, } from '@angular/core';\nimport { SkyContentInfoProvider } from '@skyux/core';\nimport { SkyAngularTreeAdapterService } from './angular-tree-adapter.service';\nimport { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@skyux/forms\";\nimport * as i3 from \"@skyux/help-inline\";\nimport * as i4 from \"@skyux/icon\";\nimport * as i5 from \"@blackbaud/angular-tree-component\";\nimport * as i6 from \"./angular-tree-context-menu.component\";\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.0\", ngImport: i0, type: SkyAngularTreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.0\", type: SkyAngularTreeNodeComponent, isStandalone: false, 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: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { 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: \"component\", type: i3.λ1, selector: \"sky-help-inline\", inputs: [\"ariaControls\", \"ariaExpanded\", \"ariaLabel\", \"helpKey\", \"labelledBy\", \"labelText\", \"popoverContent\", \"popoverTitle\"], outputs: [\"actionClick\"] }, { kind: \"component\", type: i4.λ1, selector: \"sky-icon\", inputs: [\"iconName\", \"variant\", \"iconSize\"] }, { kind: \"component\", type: i5.TreeNodeContent, selector: \"tree-node-content\", inputs: [\"node\", \"index\", \"template\"] }, { kind: \"directive\", type: i5.TreeDropDirective, selector: \"[treeDrop]\", inputs: [\"allowDragoverStyling\", \"treeAllowDrop\"], outputs: [\"treeDrop\", \"treeDropDragOver\", \"treeDropDragLeave\", \"treeDropDragEnter\"] }, { kind: \"directive\", type: i5.TreeDragDirective, selector: \"[treeDrag]\", inputs: [\"treeDrag\", \"treeDragEnabled\"] }, { kind: \"component\", type: i5.TreeNodeChildrenComponent, selector: \"tree-node-children\", inputs: [\"node\", \"templates\"] }, { kind: \"component\", type: i5.TreeNodeDropSlot, selector: \"TreeNodeDropSlot, tree-node-drop-slot\", inputs: [\"node\", \"dropIndex\"] }, { kind: \"component\", type: i6.SkyAngularTreeContextMenuComponent, selector: \"sky-angular-tree-context-menu\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAngularTreeNodeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'sky-angular-tree-node', providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider], standalone: false, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR0wsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7O0FBRWxGOzs7Ozs7Ozs7R0FTRztBQU9ILE1BQU0sT0FBTywyQkFBMkI7SUE2Q3RDLElBQVcsZUFBZSxDQUFDLEtBQXlCO1FBQ2xELElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDL0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzlELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QyxDQUFDO2lCQUFNLENB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ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElUcmVlU3RhdGUsIFRyZWVOb2RlIH0gZnJvbSAnQGJsYWNrYmF1ZC9hbmd1bGFyLXRyZWUtY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNvbnRlbnRJbmZvUHJvdmlkZXIgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIFJlcGxhY2VzIHRoZSBkZWZhdWx0IHRyZWUgbm9kZSB0ZW1wbGF0ZSB3aXRoIGEgU0tZIFVYIG5vZGUgYXMgcGFydCBvZiB0aGUgYFNreUFuZ3VsYXJUcmVlTW9kdWxlYCB0aGF0XG4gKiBwcm92aWRlcyBTS1kgVVggY29tcG9uZW50cyBhbmQgc3R5bGVzIHRvIGNvbXBsZW1lbnQgdGhlIGBhbmd1bGFyLXRyZWUtY29tcG9uZW50YCBsaWJyYXJ5IGFuZCBhcHBseSBTS1kgVVhcbiAqIHRoZW1lcyBhbmQgZnVuY3Rpb25hbGl0eSB0byBoaWVyYXJjaGljYWwgbGlzdCB2aWV3cy4gWW91IG11c3Qgd3JhcCB0aGlzIGNvbXBvbmVudCBpbiBhbiBgbmctdGVtcGxhdGVgXG4gKiB0YWcgd2l0aCB0aGUgdGVtcGxhdGUgcmVmZXJlbmNlIHZhcmlhYmxlIGAjdHJlZU5vZGVGdWxsVGVtcGxhdGVgLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgdHJlZSBub2RlIHRlbXBsYXRlcyxcbiAqIHNlZSB0aGUgW0FuZ3VsYXIgdHJlZSBjb21wb25lbnQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL3RlbXBsYXRlcykuXG4gKiBUbyBkaXNwbGF5IGNvbnRleHQgbWVudXMgd2l0aCBhY3Rpb25zIGZvciBpbmRpdmlkdWFsIGl0ZW1zIGluIGhpZXJhcmNoaWNhbCBsaXN0cywgcGxhY2VcbiAqIFtkcm9wZG93bnNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtcG9wb3ZlcnMvZG9jcy9kcm9wZG93bj9kb2NzLWFjdGl2ZS10YWI9ZGVzaWduKSBpbnNpZGUgdGhlXG4gKiBBbmd1bGFyIHRyZWUgbm9kZSBjb21wb25lbnQsIHdoaWNoIGF1dG9tYXRpY2FsbHkgaGFuZGxlcyBzdHlsaW5nIGFuZCBwb3NpdGlvbmluZyBmb3IgY29udGV4dCBtZW51cy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFuZ3VsYXItdHJlZS1ub2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSwgU2t5Q29udGVudEluZm9Qcm92aWRlcl0sXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBbmd1bGFyVHJlZU5vZGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICAvKipcbiAgICogVGhlIGBpbmRleGAgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50IGBuZy10ZW1wbGF0ZWAuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBgbm9kZWAgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50IGBuZy10ZW1wbGF0ZWAuIEZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYFRyZWVOb2RlYCBvYmplY3QsIHNlZSB0aGVcbiAgICogW0FuZ3VsYXIgdHJlZSBjb21wb25lbnQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL2FwaSkuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG5vZGU6IFRyZWVOb2RlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgYHRlbXBsYXRlc2AgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50IGBuZy10ZW1wbGF0ZWAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGVtcGxhdGVzOiBhbnk7XG5cbiAgLyoqXG4gICAqIEEgaGVscCBrZXkgdGhhdCBpZGVudGlmaWVzIHRoZSBnbG9iYWwgaGVscCBjb250ZW50IHRvIGRpc3BsYXkuIFdoZW4gc3BlY2lmaWVkLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKVxuICAgKiBidXR0b24gaXMgcGxhY2VkIGJlc2lkZSB0aGUgdHJlZSBub2RlIGxhYmVsLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgW2dsb2JhbCBoZWxwXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2RldmVsb3AvZ2xvYmFsLWhlbHApXG4gICAqIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnQgb2YgdGhlIGhlbHAgcG9wb3Zlci4gV2hlbiBzcGVjaWZpZWQsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBhZGRlZCB0byB0aGUgdHJlZSBub2RlLiBUaGUgaGVscCBpbmxpbmUgYnV0dG9uIGRpc3BsYXlzIGEgW3BvcG92ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9wb3BvdmVyKVxuICAgKiB3aGVuIGNsaWNrZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBjb250ZW50IGFuZCBvcHRpb25hbCB0aXRsZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlckNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIGhlbHAgcG9wb3Zlci4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiBgaGVscFBvcG92ZXJDb250ZW50YCBpc1xuICAgKiBhbHNvIHNwZWNpZmllZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWxwUG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHNldCBjaGlsZEZvY3VzSW5kZXgodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy4jX2NoaWxkRm9jdXNJbmRleCkge1xuICAgICAgdGhpcy4jX2NoaWxkRm9jdXNJbmRleCA9IHZhbHVlO1xuICAgICAgaWYgKHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCA+IDAgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLiNmb2N1c2FibGVDaGlsZHJlblt2YWx1ZV0uZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjaGlsZEZvY3VzSW5kZXgoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2NoaWxkRm9jdXNJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZm9jdXNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMudGFiSW5kZXggPSB2YWx1ZSA/IDAgOiAtMTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBpc1BhcnRpYWxseVNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLiNfaXNQYXJ0aWFsbHlTZWxlY3RlZCkge1xuICAgICAgdGhpcy4jX2lzUGFydGlhbGx5U2VsZWN0ZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNQYXJ0aWFsbHlTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2lzUGFydGlhbGx5U2VsZWN0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IGlzU2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19pc1NlbGVjdGVkKSB7XG4gICAgICB0aGlzLiNfaXNTZWxlY3RlZCA9IHZhbHVlO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaXNTZWxlY3RlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdGFiSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuI190YWJJbmRleCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNfdGFiSW5kZXg7XG4gIH1cblxuICBAVmlld0NoaWxkKCdub2RlQ29udGVudFdyYXBwZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIG5vZGVDb250ZW50V3JhcHBlclJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgc2V0IG5vZGVOYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNfbm9kZU5hbWUgPSB2YWx1ZTtcbiAgICB0aGlzLiNjb250ZW50SW5mb1Byb3ZpZGVyLnBhdGNoSW5mbyh7XG4gICAgICBkZXNjcmlwdG9yOiB7IHR5cGU6ICd0ZXh0JywgdmFsdWUgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgbm9kZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX25vZGVOYW1lO1xuICB9XG5cbiAgI2ZvY3VzYWJsZUNoaWxkcmVuOiBIVE1MRWxlbWVudFtdID0gW107XG5cbiAgI21vdXNlRG93biA9IGZhbHNlO1xuXG4gICNfY2hpbGRGb2N1c0luZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgI19pc1BhcnRpYWxseVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgI19pc1NlbGVjdGVkID0gZmFsc2U7XG5cbiAgI190YWJJbmRleCA9IC0xO1xuXG4gICNfbm9kZU5hbWUgPSAnJztcblxuICByZWFkb25seSAjYWRhcHRlclNlcnZpY2UgPSBpbmplY3QoU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHJlYWRvbmx5ICNjb250ZW50SW5mb1Byb3ZpZGVyID0gaW5qZWN0KFNreUNvbnRlbnRJbmZvUHJvdmlkZXIpO1xuICByZWFkb25seSAjc2t5QW5ndWxhclRyZWVXcmFwcGVyID0gaW5qZWN0KFNreUFuZ3VsYXJUcmVlV3JhcHBlckNvbXBvbmVudCwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGA8c2t5LWFuZ3VsYXItdHJlZS1ub2RlLXdyYXBwZXI+IG11c3QgYmUgd3JhcHBlZCBpbnNpZGUgYSA8c2t5LWFuZ3VsYXItdHJlZS13cmFwcGVyPiBjb21wb25lbnQuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgdGhpcy5ub2RlTmFtZSA9IHRoaXMubm9kZS5kYXRhLm5hbWU7XG4gICAgICAvLyBCZWNhdXNlIHdlJ3JlIGJpbmRpbmcgdGhlIGNoZWNrYm94IHRvIG5vZGUncyBjaGlsZHJlbiBwcm9wZXJ0aWVzLCB3ZSBuZWVkIHRvIG1hbnVhbGx5IGNvbnRyb2wgY2hhbmdlIGRldGVjdGlvbi5cbiAgICAgIC8vIEhlcmUsIHdlIGxpc3RlbiB0byB0aGUgdHJlZSdzIHN0YXRlIGFuZCBmb3JjZSBjaGFuZ2UgZGV0ZWN0aW9uIGluIHRoZSBzZXR0ZXJzIGlmIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZC5cbiAgICAgIHRoaXMubm9kZS50cmVlTW9kZWwuc3Vic2NyaWJlVG9TdGF0ZSgoc3RhdGU6IElUcmVlU3RhdGUpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZCA9IHRoaXMubm9kZS5pc1NlbGVjdGVkO1xuICAgICAgICAgIHRoaXMuaXNQYXJ0aWFsbHlTZWxlY3RlZCA9IHRoaXMubm9kZS5pc1BhcnRpYWxseVNlbGVjdGVkO1xuXG4gICAgICAgICAgaWYgKHN0YXRlLmZvY3VzZWROb2RlSWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IHN0YXRlLmZvY3VzZWROb2RlSWQgPT09IHRoaXMubm9kZS5pZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLm5vZGUudHJlZU1vZGVsLnN1YnNjcmliZSgndXBkYXRlRGF0YScsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgICAgIHRoaXMubm9kZU5hbWUgPSB0aGlzLm5vZGUuZGF0YS5uYW1lO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gTWFrZSB0aGUgZmlyc3Qgcm9vdCBub2RlIHRhYmJhYmxlLlxuICAgICAgaWYgKHRoaXMubm9kZS5pc1Jvb3QgJiYgdGhpcy5ub2RlLmluZGV4ID09PSAwKSB7XG4gICAgICAgIHRoaXMudGFiSW5kZXggPSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gV2FpdCAxcyBmb3IgdGhlIG5vZGUgdG8gcmVuZGVyLCB0aGVuIHJlc2V0IGFsbCBjaGlsZCB0YWJJbmRleGVzIHRvIC0xLlxuICAgIC8vIFVuaXRzIHNtYWxsZXIgdGhhbiAxcyBtYXkgY29uc2lzdGVudGx5IGZhaWwgaWYgdGhlcmUgYXJlIG1hbnkgbm9kZXMsIG9yIG11bHRpcGxlIHRyZWVzIGFyZSBvbiB0aGUgc2FtZSBzY3JlZW4uXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5ub2RlQ29udGVudFdyYXBwZXJSZWYpIHtcbiAgICAgICAgdGhpcy4jZm9jdXNhYmxlQ2hpbGRyZW4gPSB0aGlzLiNhZGFwdGVyU2VydmljZS5nZXRGb2N1c2FibGVDaGlsZHJlbihcbiAgICAgICAgICB0aGlzLm5vZGVDb250ZW50V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRUYWJJbmRleE9mRm9jdXNhYmxlRWxzKFxuICAgICAgICAgIHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgLTEsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICAvKipcbiAgICogSWYgc2luZ2xlLXNlbGVjdCwgc2V0IGFyaWEtc2VsZWN0ZWQ9dHJ1ZSBmb3IgdGhlIHNlbGVjdGVkIG5vZGUgYW5kIHVuZGVmaW5lZCBmb3IgYWxsIHRoZSBvdGhlcnMuXG4gICAqIEZvciBtdWx0aXBsZS1zZWxlY3QsIHNldCBhcmlhLXNlbGVjdGVkIHRvIGVpdGhlciB0cnVlIG9yIGZhbHNlLlxuICAgKiBJZiBub2RlIGNhbm5vdCBiZSBzZWxlY3RlZCwgYXJpYS1zZWxlY3RlZCBzaG91bGQgYmUgdW5kZWZpbmVkIChlLmcuIHBhcmVudCBub2RlcyBpbiBsZWFmLXNlbGVjdC1vbmx5IG1vZGUpLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBhcmlhU2VsZWN0ZWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyLnNlbGVjdFNpbmdsZSkge1xuICAgICAgcmV0dXJuIHRoaXMuaXNTZWxlY3RlZCA/IHRydWUgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLiNpc1NlbGVjdGFibGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiAhIXRoaXMuaXNTZWxlY3RlZDtcbiAgfVxuXG4gIHB1YmxpYyBzaG93Q2hlY2tib3goKTogYm9vbGVhbiB7XG4gICAgLy8gQ2hlY2sgZm9yIGNoZWNrYm94IG1vZGUgZW5hYmxlZCwgYnV0IGFsc28gcmVzcGVjdCBsZWFmLW5vZGUgYW5kIHNpbmdsZS1zZWxlY3Qgc2V0dGluZ3MuXG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5ub2RlICYmXG4gICAgICB0aGlzLm5vZGUub3B0aW9ucy51c2VDaGVja2JveCAmJlxuICAgICAgdGhpcy4jaXNTZWxlY3RhYmxlKCkgJiZcbiAgICAgICghdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyIHx8XG4gICAgICAgICF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIuc2VsZWN0U2luZ2xlKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1NlbGVjdGVkQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI2lzU2VsZWN0YWJsZSgpICYmIHRoaXMuaXNTZWxlY3RlZCAmJiAhdGhpcy5pc1BhcnRpYWxseVNlbGVjdGVkO1xuICB9XG5cbiAgcHVibGljIHNob3dBY3RpdmVDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLm5vZGUgJiZcbiAgICAgIHRoaXMubm9kZS5pc0FjdGl2ZSAmJlxuICAgICAgIXRoaXMubm9kZS50cmVlTW9kZWwub3B0aW9ucy51c2VDaGVja2JveFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1RvZ2dsZVBsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5ub2RlPy5oYXNDaGlsZHJlbiAmJlxuICAgICAgIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlcj8uc2VsZWN0TGVhZk5vZGVzT25seVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cygpOiB2b2lkIHtcbiAgICAvLyA8dHJlZS1ub2RlLWNvbnRlbnQ+IGhhcyBpdHMgb3duIGNsaWNrIGhhbmRsZXIsIHNvIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhpcyBmb2N1cyBldmVudFxuICAgIC8vIGlzIGNvbWluZyBmcm9tIHRoZSBtb3VzZSBjbGljayBvciB0aGUga2V5Ym9hcmQgdG8gcHJldmVudCB0aGUgbG9naWMgZnJvbSBydW5uaW5nIHR3aWNlLlxuICAgIGlmICghdGhpcy4jbW91c2VEb3duKSB7XG4gICAgICB0aGlzLm5vZGU/LnRyZWVNb2RlbC5zZXRGb2N1cyh0cnVlKTtcbiAgICAgIHRoaXMubm9kZT8uZm9jdXMoKTtcbiAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk1vdXNlRG93bigpOiB2b2lkIHtcbiAgICB0aGlzLiNtb3VzZURvd24gPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIG9uTW91c2VVcCgpOiB2b2lkIHtcbiAgICB0aGlzLiNtb3VzZURvd24gPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBldmVudC50YXJnZXQpIHtcbiAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSAndXAnOlxuICAgICAgICBjYXNlICdhcnJvd3VwJzpcbiAgICAgICAgICAvLyBGb2N1cyBvbiBwcmV2aW91cyBub2RlLlxuICAgICAgICAgIHRoaXMubm9kZT8udHJlZU1vZGVsLmZvY3VzUHJldmlvdXNOb2RlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZG93bic6XG4gICAgICAgIGNhc2UgJ2Fycm93ZG93bic6XG4gICAgICAgICAgLy8gRm9jdXMgb24gbmV4dCBub2RlLlxuICAgICAgICAgIHRoaXMubm9kZT8udHJlZU1vZGVsLmZvY3VzTmV4dE5vZGUoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgY2FzZSAnYXJyb3dsZWZ0JzpcbiAgICAgICAgICAvLyBDeWNsZSBiYWNrd2FyZHMgdGhyb3VnaCBpbnRlcmFjdGl2ZSBjaGlsZCBlbGVtZW50c1xuICAgICAgICAgIC8vIElmIHVzZXIgcmVhY2hlcyB0aGUgYmVnaW5uaW5nLCBhY3RpdmF0ZSBkcmlsbCB1cC5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICh0aGlzLmNoaWxkRm9jdXNJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGlsZEZvY3VzSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5vZGU/LnNldElzRXhwYW5kZWQoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgY2FzZSAnYXJyb3dyaWdodCc6XG4gICAgICAgICAgLy8gQ3ljbGUgZm9yd2FyZCB0aHJvdWdoIGludGVyYWN0aXZlIGNoaWxkIGVsZW1lbnRzLlxuICAgICAgICAgIC8vIElmIHVzZXIgcmVhY2hlcyB0aGUgZW5kLCBhY3RpdmF0ZSBkcmlsbCBkb3duLlxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy4jZm9jdXNhYmxlQ2hpbGRyZW4ubGVuZ3RoIDw9IDAgfHxcbiAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4ID09PSB0aGlzLiNmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGggLSAxXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGU/LnNldElzRXhwYW5kZWQodHJ1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoaWxkRm9jdXNJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4ID0gMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjaXNTZWxlY3RhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgICEhdGhpcy5ub2RlICYmXG4gICAgICAgICh0aGlzLm5vZGUuaXNMZWFmIHx8XG4gICAgICAgICAgIXRoaXMubm9kZS5oYXNDaGlsZHJlbiB8fFxuICAgICAgICAgICF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXIuc2VsZWN0TGVhZk5vZGVzT25seSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAobm9kZSAmJiBpbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gIDxkaXZcbiAgICBbY2xhc3NdPVwibm9kZS5nZXRDbGFzcygpXCJcbiAgICBbY2xhc3MudHJlZS1ub2RlXT1cInRydWVcIlxuICAgIFtjbGFzcy50cmVlLW5vZGUtYWN0aXZlXT1cIm5vZGUuaXNBY3RpdmVcIlxuICAgIFtjbGFzcy50cmVlLW5vZGUtY29sbGFwc2VkXT1cIm5vZGUuaXNDb2xsYXBzZWQgJiYgbm9kZS5oYXNDaGlsZHJlblwiXG4gICAgW2NsYXNzLnRyZWUtbm9kZS1leHBhbmRlZF09XCJub2RlLmlzRXhwYW5kZWQgJiYgbm9kZS5oYXNDaGlsZHJlblwiXG4gICAgW2NsYXNzLnRyZWUtbm9kZS1mb2N1c2VkXT1cIm5vZGUuaXNGb2N1c2VkXCJcbiAgICBbY2xhc3MudHJlZS1ub2RlLWxlYWZdPVwibm9kZS5pc0xlYWZcIlxuICA+XG4gICAgQGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgPHRyZWUtbm9kZS1kcm9wLXNsb3QgW2Ryb3BJbmRleF09XCJub2RlLmluZGV4XCIgW25vZGVdPVwibm9kZS5wYXJlbnRcIiAvPlxuICAgIH1cblxuICAgIDwhLS0gI3JlZ2lvbiA8dHJlZS1ub2RlLXdyYXBwZXI+IGN1c3RvbSB0ZW1wbGF0ZSAtLS0+XG4gICAgPGRpdlxuICAgICAgI25vZGVDb250ZW50V3JhcHBlclxuICAgICAgY2xhc3M9XCJub2RlLXdyYXBwZXJcIlxuICAgICAgcm9sZT1cInRyZWVpdGVtXCJcbiAgICAgIFthbGxvd0RyYWdvdmVyU3R5bGluZ109XCJub2RlLmFsbG93RHJhZ292ZXJTdHlsaW5nKClcIlxuICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIm5vZGUuaXNBY3RpdmVcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJub2RlLmNoaWxkcmVuPy5sZW5ndGggPyBub2RlLmlzRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiYXJpYVNlbGVjdGVkKClcIlxuICAgICAgW2F0dHIuZGF0YS1ub2RlLWlkXT1cIm5vZGUuaWRcIlxuICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgW2NsYXNzLnNreS1hbmd1bGFyLXRyZWUtbm9kZS1hY3RpdmVdPVwic2hvd0FjdGl2ZUNsYXNzKClcIlxuICAgICAgW2NsYXNzLnNreS1hbmd1bGFyLXRyZWUtbm9kZS1oYXMtY2hlY2tib3hdPVwic2hvd0NoZWNrYm94KClcIlxuICAgICAgW2NsYXNzLnNreS1hbmd1bGFyLXRyZWUtbm9kZS1zZWxlY3RlZF09XCJzaG93U2VsZWN0ZWRDbGFzcygpXCJcbiAgICAgIFtzdHlsZS4tLXNreS1hbmd1bGFyLXRyZWUtbm9kZS1wYWRkaW5nXT1cIm5vZGUuZ2V0Tm9kZVBhZGRpbmcoKVwiXG4gICAgICBbdHJlZUFsbG93RHJvcF09XCJub2RlLmFsbG93RHJvcFwiXG4gICAgICBbdHJlZURyYWddPVwibm9kZVwiXG4gICAgICBbdHJlZURyYWdFbmFibGVkXT1cIm5vZGUuYWxsb3dEcmFnKClcIlxuICAgICAgKGNvbnRleHRtZW51KT1cIm5vZGUubW91c2VBY3Rpb24oJ2NvbnRleHRNZW51JywgJGV2ZW50KVwiXG4gICAgICAoZGJsY2xpY2spPVwibm9kZS5tb3VzZUFjdGlvbignZGJsQ2xpY2snLCAkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigpXCJcbiAgICAgIChtb3VzZXVwKT1cIm9uTW91c2VVcCgpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICh0cmVlRHJvcCk9XCJub2RlLm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgICh0cmVlRHJvcERyYWdFbnRlcik9XCJub2RlLm1vdXNlQWN0aW9uKCdkcmFnRW50ZXInLCAkZXZlbnQpXCJcbiAgICAgICh0cmVlRHJvcERyYWdMZWF2ZSk9XCJub2RlLm1vdXNlQWN0aW9uKCdkcmFnTGVhdmUnLCAkZXZlbnQpXCJcbiAgICAgICh0cmVlRHJvcERyYWdPdmVyKT1cIm5vZGUubW91c2VBY3Rpb24oJ2RyYWdPdmVyJywgJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPCEtLSAjcmVnaW9uIDx0cmVlLW5vZGUtZXhwYW5kZXI+IGN1c3RvbSB0ZW1wbGF0ZSAtLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXRvZ2dsZS1jaGlsZHJlbi13cmFwcGVyXCI+XG4gICAgICAgIEBpZiAobm9kZS5oYXNDaGlsZHJlbikge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktdG9nZ2xlLWNoaWxkcmVuXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm5vZGVOYW1lXCJcbiAgICAgICAgICAgIFtjbGFzcy50b2dnbGUtY2hpbGRyZW4td3JhcHBlci1leHBhbmRlZF09XCJub2RlLmlzRXhwYW5kZWRcIlxuICAgICAgICAgICAgW2NsYXNzLnRvZ2dsZS1jaGlsZHJlbi13cmFwcGVyLWNvbGxhcHNlZF09XCJub2RlLmlzQ29sbGFwc2VkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJub2RlLm1vdXNlQWN0aW9uKCdleHBhbmRlckNsaWNrJywgJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJub2RlLmlzRXhwYW5kZWQgPyAnY2hldnJvbi1kb3duJyA6ICdjaGV2cm9uLXJpZ2h0J1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoc2hvd1RvZ2dsZVBsYWNlaG9sZGVyKCkpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvZ2dsZS1jaGlsZHJlbi1wbGFjZWhvbGRlclwiPiA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSAjZW5kcmVnaW9uIDx0cmVlLW5vZGUtZXhwYW5kZXI+IC0tLT5cblxuICAgICAgPCEtLSBOb3RlOiB3ZSd2ZSBtYWRlIGNoYW5nZXMgdG8gdGhlIGNsaWNrIGV2ZW50LCB0YWJpbmRleCwgYW5kIGNsYXNzZXMgd2hlbiBjb21wYXJlZCB0byB0aGUgb3JpZ2luYWwgdGVtcGxhdGUuIC0tPlxuICAgICAgPCEtLSBodHRwczovL2dpdGh1Yi5jb20vNTAwdGVjaC9hbmd1bGFyLXRyZWUtY29tcG9uZW50L2Jsb2IvbWFzdGVyL2xpYi9jb21wb25lbnRzL3RyZWUtbm9kZS13cmFwcGVyLmNvbXBvbmVudC50cyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJub2RlLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICBAaWYgKHNob3dDaGVja2JveCgpKSB7XG4gICAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZFwiXG4gICAgICAgICAgICBbaWRdPVwibm9kZS5kYXRhLmlkXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJub2RlTmFtZVwiXG4gICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJpc1BhcnRpYWxseVNlbGVjdGVkXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwibm9kZS5tb3VzZUFjdGlvbignY2hlY2tib3hDbGljaycsICRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cblxuICAgICAgICA8c2t5LWFuZ3VsYXItdHJlZS1jb250ZXh0LW1lbnU+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWRyb3Bkb3duXCIgLz5cbiAgICAgICAgPC9za3ktYW5ndWxhci10cmVlLWNvbnRleHQtbWVudT5cblxuICAgICAgICA8dHJlZS1ub2RlLWNvbnRlbnRcbiAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZXM/LnRyZWVOb2RlVGVtcGxhdGVcIlxuICAgICAgICAgIChjbGljayk9XCJub2RlLm1vdXNlQWN0aW9uKCdjbGljaycsICRldmVudClcIlxuICAgICAgICAvPjxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIj5cbiAgICAgICAgICBAaWYgKGhlbHBLZXkgfHwgaGVscFBvcG92ZXJDb250ZW50KSB7XG4gICAgICAgICAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAgICAgICAgIFtoZWxwS2V5XT1cImhlbHBLZXlcIlxuICAgICAgICAgICAgICBbbGFiZWxUZXh0XT1cIm5vZGVOYW1lXCJcbiAgICAgICAgICAgICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1jb250cm9sLWhlbHBcIiAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZXM/LnRyZWVOb2RlV3JhcHBlclRlbXBsYXRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICRpbXBsaWNpdDogbm9kZSxcbiAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICB0ZW1wbGF0ZXM6IHRlbXBsYXRlc1xuICAgICAgfVwiXG4gICAgLz5cbiAgICA8IS0tICNlbmRyZWdpb24gPHRyZWUtbm9kZS13cmFwcGVyPiAtLT5cblxuICAgIDx0cmVlLW5vZGUtY2hpbGRyZW4gcm9sZT1cImdyb3VwXCIgW25vZGVdPVwibm9kZVwiIFt0ZW1wbGF0ZXNdPVwidGVtcGxhdGVzXCIgLz5cblxuICAgIDx0cmVlLW5vZGUtZHJvcC1zbG90IFtkcm9wSW5kZXhdPVwibm9kZS5pbmRleCArIDFcIiBbbm9kZV09XCJub2RlLnBhcmVudFwiIC8+XG4gIDwvZGl2PlxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TreeModule } from '@blackbaud/angular-tree-component';\nimport { SkyCoreAdapterService } from '@skyux/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyToolbarModule } from '@skyux/layout';\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 { SkyTreeViewToolbarComponent } 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.0\", ngImport: i0, type: SkyAngularTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAngularTreeModule, declarations: [SkyAngularTreeContextMenuComponent,\n SkyAngularTreeNodeComponent,\n SkyAngularTreeWrapperComponent,\n SkyTreeViewToolbarComponent], imports: [CommonModule,\n SkyAngularTreeComponentResourcesModule,\n SkyCheckboxModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyToolbarModule,\n TreeModule], exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAngularTreeModule, providers: [SkyCoreAdapterService], imports: [CommonModule,\n SkyAngularTreeComponentResourcesModule,\n SkyCheckboxModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyToolbarModule,\n TreeModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAngularTreeModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n SkyAngularTreeContextMenuComponent,\n SkyAngularTreeNodeComponent,\n SkyAngularTreeWrapperComponent,\n SkyTreeViewToolbarComponent,\n ],\n imports: [\n CommonModule,\n SkyAngularTreeComponentResourcesModule,\n SkyCheckboxModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyToolbarModule,\n TreeModule,\n ],\n providers: [SkyCoreAdapterService],\n exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvbW9kdWxlcy9hbmd1bGFyLXRyZWUvYW5ndWxhci10cmVlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUUvRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFxQmxGLE1BQU0sT0FBTyxvQkFBb0I7OEdBQXBCLG9CQUFvQjsrR0FBcEIsb0JBQW9CLGlCQWpCN0Isa0NBQWtDO1lBQ2xDLDJCQUEyQjtZQUMzQiw4QkFBOEI7WUFDOUIsMkJBQTJCLGFBRzNCLFlBQVk7WUFDWixzQ0FBc0M7WUFDdEMsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFVBQVUsYUFHRiwyQkFBMkIsRUFBRSw4QkFBOEI7K0dBRTFELG9CQUFvQixhQUhwQixDQUFDLHFCQUFxQixDQUFDLFlBUmhDLFlBQVk7WUFDWixzQ0FBc0M7WUFDdEMsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFVBQVU7OzJGQUtELG9CQUFvQjtrQkFuQmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGtDQUFrQzt3QkFDbEMsMkJBQTJCO3dCQUMzQiw4QkFBOEI7d0JBQzlCLDJCQUEyQjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osc0NBQXNDO3dCQUN0QyxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFVBQVU7cUJBQ1g7b0JBQ0QsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2xDLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixFQUFFLDhCQUE4QixDQUFDO2lCQUN2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJlZU1vZHVsZSB9IGZyb20gJ0BibGFja2JhdWQvYW5ndWxhci10cmVlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lDb3JlQWRhcHRlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lTW9kdWxlIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaWNvbic7XG5pbXBvcnQgeyBTa3lUb29sYmFyTW9kdWxlIH0gZnJvbSAnQHNreXV4L2xheW91dCc7XG5cbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlQ29tcG9uZW50UmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NreS1hbmd1bGFyLXRyZWUtY29tcG9uZW50LXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lBbmd1bGFyVHJlZUNvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9hbmd1bGFyLXRyZWUtY29udGV4dC1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBbmd1bGFyVHJlZU5vZGVDb21wb25lbnQgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lUcmVlVmlld1Rvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBbmd1bGFyVHJlZVdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreUFuZ3VsYXJUcmVlQ29udGV4dE1lbnVDb21wb25lbnQsXG4gICAgU2t5QW5ndWxhclRyZWVOb2RlQ29tcG9uZW50LFxuICAgIFNreUFuZ3VsYXJUcmVlV3JhcHBlckNvbXBvbmVudCxcbiAgICBTa3lUcmVlVmlld1Rvb2xiYXJDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5QW5ndWxhclRyZWVDb21wb25lbnRSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5Q2hlY2tib3hNb2R1bGUsXG4gICAgU2t5SGVscElubGluZU1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreVRvb2xiYXJNb2R1bGUsXG4gICAgVHJlZU1vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlXSxcbiAgZXhwb3J0czogW1NreUFuZ3VsYXJUcmVlTm9kZUNvbXBvbmVudCwgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtYW5ndWxhci10cmVlLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9za3l1eC1hbmd1bGFyLXRyZWUtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.SkyTreeViewToolbarComponent","i1","i2","i3","i4","i6.SkyAngularTreeContextMenuComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/angular-tree-component",
3
- "version": "13.0.0-beta.0",
3
+ "version": "13.0.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -16,15 +16,15 @@
16
16
  },
17
17
  "homepage": "https://github.com/blackbaud/skyux#readme",
18
18
  "peerDependencies": {
19
- "@angular/common": "^20.0.5",
20
- "@angular/core": "^20.0.5",
19
+ "@angular/common": "^20.3.0",
20
+ "@angular/core": "^20.3.0",
21
21
  "@blackbaud/angular-tree-component": "^1.0.0",
22
- "@skyux/core": "13.0.0-beta.0",
23
- "@skyux/forms": "13.0.0-beta.0",
24
- "@skyux/help-inline": "13.0.0-beta.0",
25
- "@skyux/i18n": "13.0.0-beta.0",
26
- "@skyux/icon": "13.0.0-beta.0",
27
- "@skyux/layout": "13.0.0-beta.0"
22
+ "@skyux/core": "13.0.0",
23
+ "@skyux/forms": "13.0.0",
24
+ "@skyux/help-inline": "13.0.0",
25
+ "@skyux/i18n": "13.0.0",
26
+ "@skyux/icon": "13.0.0",
27
+ "@skyux/layout": "13.0.0"
28
28
  },
29
29
  "dependencies": {
30
30
  "tslib": "^2.8.1"