@skyux/angular-tree-component 11.0.0-alpha.9 → 11.0.0-beta.1

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.
@@ -19,10 +19,10 @@ export class SkyAngularTreeAdapterService {
19
19
  focusableEls[index].tabIndex = tabIndex;
20
20
  }
21
21
  }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeAdapterService, deps: [{ token: i1.SkyCoreAdapterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
23
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeAdapterService }); }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeAdapterService, deps: [{ token: i1.SkyCoreAdapterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeAdapterService }); }
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeAdapterService, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeAdapterService, decorators: [{
26
26
  type: Injectable
27
27
  }], ctorParameters: () => [{ type: i1.SkyCoreAdapterService }] });
28
28
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvbW9kdWxlcy9hbmd1bGFyLXRyZWUvYW5ndWxhci10cmVlLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHM0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLG1CQUFtQixDQUF3QjtJQUUzQyxZQUFZLGtCQUF5QztRQUNuRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7SUFDaEQsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE9BQW9CO1FBQzlDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTSx5QkFBeUIsQ0FDOUIsT0FBb0IsRUFDcEIsUUFBZ0I7UUFFaEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVFLElBQUksS0FBSyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDaEMsT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2YsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7OEdBcEJVLDRCQUE0QjtrSEFBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSB7XG4gICNjb3JlQWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcblxuICBjb25zdHJ1Y3Rvcihjb3JlQWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZSkge1xuICAgIHRoaXMuI2NvcmVBZGFwdGVyU2VydmljZSA9IGNvcmVBZGFwdGVyU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGb2N1c2FibGVDaGlsZHJlbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50W10ge1xuICAgIHJldHVybiB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oZWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VGFiSW5kZXhPZkZvY3VzYWJsZUVscyhcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICB0YWJJbmRleDogbnVtYmVyLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBmb2N1c2FibGVFbHMgPSB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oZWxlbWVudCk7XG4gICAgbGV0IGluZGV4ID0gZm9jdXNhYmxlRWxzLmxlbmd0aDtcbiAgICB3aGlsZSAoaW5kZXgtLSkge1xuICAgICAgZm9jdXNhYmxlRWxzW2luZGV4XS50YWJJbmRleCA9IHRhYkluZGV4O1xuICAgIH1cbiAgfVxufVxuIl19
@@ -4,10 +4,10 @@ import * as i0 from "@angular/core";
4
4
  * @internal
5
5
  */
6
6
  export class SkyAngularTreeContextMenuComponent {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: SkyAngularTreeContextMenuComponent, 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 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: SkyAngularTreeContextMenuComponent, 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 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeContextMenuComponent, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeContextMenuComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{ selector: 'sky-angular-tree-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-angular-tree-context-menu\">\n <ng-content />\n</div>\n" }]
13
13
  }] });
@@ -251,12 +251,12 @@ export class SkyAngularTreeNodeComponent {
251
251
  return false;
252
252
  }
253
253
  }
254
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeNodeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyAngularTreeAdapterService }, { token: i2.SkyAngularTreeWrapperComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
255
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: SkyAngularTreeNodeComponent, 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: "<div\n *ngIf=\"node && index !== undefined\"\n [class]=\"node.getClass()\"\n [class.tree-node]=\"true\"\n [class.tree-node-active]=\"node.isActive\"\n [class.tree-node-collapsed]=\"node.isCollapsed && node.hasChildren\"\n [class.tree-node-expanded]=\"node.isExpanded && node.hasChildren\"\n [class.tree-node-focused]=\"node.isFocused\"\n [class.tree-node-leaf]=\"node.isLeaf\"\n>\n <tree-node-drop-slot\n *ngIf=\"index === 0\"\n [dropIndex]=\"node.index\"\n [node]=\"node.parent\"\n >\n </tree-node-drop-slot>\n\n <!-- #region <tree-node-wrapper> custom template --->\n <div\n class=\"node-wrapper\"\n role=\"treeitem\"\n [allowDragoverStyling]=\"node.allowDragoverStyling()\"\n [attr.aria-current]=\"node.isActive\"\n [attr.aria-expanded]=\"node.children?.length ? node.isExpanded : null\"\n [attr.aria-selected]=\"ariaSelected()\"\n [attr.data-node-id]=\"node.id\"\n [attr.tabindex]=\"tabIndex\"\n [class.sky-angular-tree-node-active]=\"showActiveClass()\"\n [class.sky-angular-tree-node-selected]=\"showSelectedClass()\"\n [style.padding-left]=\"node.getNodePadding()\"\n [treeAllowDrop]=\"node.allowDrop\"\n [treeDrag]=\"node\"\n [treeDragEnabled]=\"node.allowDrag()\"\n (contextmenu)=\"node.mouseAction('contextMenu', $event)\"\n (dblclick)=\"node.mouseAction('dblClick', $event)\"\n (focus)=\"onFocus()\"\n (mousedown)=\"onMouseDown()\"\n (mouseup)=\"onMouseUp()\"\n (keydown)=\"onKeyDown($event)\"\n (treeDrop)=\"node.onDrop($event)\"\n (treeDropDragEnter)=\"node.mouseAction('dragEnter', $event)\"\n (treeDropDragLeave)=\"node.mouseAction('dragLeave', $event)\"\n (treeDropDragOver)=\"node.mouseAction('dragOver', $event)\"\n #nodeContentWrapper\n >\n <!-- #region <tree-node-expander> custom template --->\n <div class=\"sky-toggle-children-wrapper\">\n <button\n *ngIf=\"node.hasChildren\"\n class=\"sky-btn sky-btn-link sky-toggle-children\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"nodeName\"\n [class.toggle-children-wrapper-expanded]=\"node.isExpanded\"\n [class.toggle-children-wrapper-collapsed]=\"node.isCollapsed\"\n (click)=\"node.mouseAction('expanderClick', $event)\"\n >\n <sky-icon\n [icon]=\"node.isExpanded ? 'chevron-down' : 'chevron-right'\"\n size=\"sm\"\n />\n </button>\n <span *ngIf=\"showTogglePlaceholder()\" class=\"toggle-children-placeholder\">\n </span>\n </div>\n <!-- #endregion <tree-node-expander> --->\n\n <!-- Note: we've made changes to the click event, tabindex, and classes when compared to the original template. -->\n <!-- https://github.com/500tech/angular-tree-component/blob/master/lib/components/tree-node-wrapper.component.ts -->\n <div class=\"node-content-wrapper\">\n <sky-checkbox\n *ngIf=\"showCheckbox()\"\n [checked]=\"isSelected\"\n [id]=\"node.data.id\"\n [label]=\"nodeName\"\n [indeterminate]=\"isPartiallySelected\"\n (change)=\"node.mouseAction('checkboxClick', $event)\"\n >\n </sky-checkbox>\n\n <sky-angular-tree-context-menu>\n <ng-content select=\"sky-dropdown\" />\n </sky-angular-tree-context-menu>\n\n <tree-node-content\n [index]=\"index\"\n [node]=\"node\"\n [template]=\"templates?.treeNodeTemplate\"\n (click)=\"node.mouseAction('click', $event)\"\n >\n </tree-node-content\n ><span class=\"sky-control-help-container\">\n @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 </ng-container>\n <!-- #endregion <tree-node-wrapper> -->\n\n <tree-node-children role=\"group\" [node]=\"node\" [templates]=\"templates\">\n </tree-node-children>\n\n <tree-node-drop-slot [dropIndex]=\"node.index + 1\" [node]=\"node.parent\">\n </tree-node-drop-slot>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "helpPopoverContent", "helpPopoverTitle", "icon", "checkboxType", "checked", "indeterminate", "required", "labelText", "labelHidden", "hintText", "stacked", "helpKey"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "component", type: i5.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "component", type: i6.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "component", type: i7.TreeNodeContent, selector: "tree-node-content", inputs: ["node", "index", "template"] }, { kind: "directive", type: i7.TreeDropDirective, selector: "[treeDrop]", inputs: ["allowDragoverStyling", "treeAllowDrop"], outputs: ["treeDrop", "treeDropDragOver", "treeDropDragLeave", "treeDropDragEnter"] }, { kind: "directive", type: i7.TreeDragDirective, selector: "[treeDrag]", inputs: ["treeDrag", "treeDragEnabled"] }, { kind: "component", type: i7.TreeNodeChildrenComponent, selector: "tree-node-children", inputs: ["node", "templates"] }, { kind: "component", type: i7.TreeNodeDropSlot, selector: "TreeNodeDropSlot, tree-node-drop-slot", inputs: ["node", "dropIndex"] }, { kind: "component", type: i8.SkyAngularTreeContextMenuComponent, selector: "sky-angular-tree-context-menu" }] }); }
254
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeNodeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyAngularTreeAdapterService }, { token: i2.SkyAngularTreeWrapperComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
255
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: SkyAngularTreeNodeComponent, 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-selected]=\"showSelectedClass()\"\n [style.padding-left]=\"node.getNodePadding()\"\n [treeAllowDrop]=\"node.allowDrop\"\n [treeDrag]=\"node\"\n [treeDragEnabled]=\"node.allowDrag()\"\n (contextmenu)=\"node.mouseAction('contextMenu', $event)\"\n (dblclick)=\"node.mouseAction('dblClick', $event)\"\n (focus)=\"onFocus()\"\n (mousedown)=\"onMouseDown()\"\n (mouseup)=\"onMouseUp()\"\n (keydown)=\"onKeyDown($event)\"\n (treeDrop)=\"node.onDrop($event)\"\n (treeDropDragEnter)=\"node.mouseAction('dragEnter', $event)\"\n (treeDropDragLeave)=\"node.mouseAction('dragLeave', $event)\"\n (treeDropDragOver)=\"node.mouseAction('dragOver', $event)\"\n >\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-link sky-toggle-children\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"nodeName\"\n [class.toggle-children-wrapper-expanded]=\"node.isExpanded\"\n [class.toggle-children-wrapper-collapsed]=\"node.isCollapsed\"\n (click)=\"node.mouseAction('expanderClick', $event)\"\n >\n <sky-icon\n size=\"sm\"\n [icon]=\"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: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "helpPopoverContent", "helpPopoverTitle", "icon", "checkboxType", "checked", "indeterminate", "required", "labelText", "labelHidden", "hintText", "stacked", "helpKey"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "component", type: i5.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "component", type: i6.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "component", type: i7.TreeNodeContent, selector: "tree-node-content", inputs: ["node", "index", "template"] }, { kind: "directive", type: i7.TreeDropDirective, selector: "[treeDrop]", inputs: ["allowDragoverStyling", "treeAllowDrop"], outputs: ["treeDrop", "treeDropDragOver", "treeDropDragLeave", "treeDropDragEnter"] }, { kind: "directive", type: i7.TreeDragDirective, selector: "[treeDrag]", inputs: ["treeDrag", "treeDragEnabled"] }, { kind: "component", type: i7.TreeNodeChildrenComponent, selector: "tree-node-children", inputs: ["node", "templates"] }, { kind: "component", type: i7.TreeNodeDropSlot, selector: "TreeNodeDropSlot, tree-node-drop-slot", inputs: ["node", "dropIndex"] }, { kind: "component", type: i8.SkyAngularTreeContextMenuComponent, selector: "sky-angular-tree-context-menu" }] }); }
256
256
  }
257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeNodeComponent, decorators: [{
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeNodeComponent, decorators: [{
258
258
  type: Component,
259
- args: [{ selector: 'sky-angular-tree-node', providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider], template: "<div\n *ngIf=\"node && index !== undefined\"\n [class]=\"node.getClass()\"\n [class.tree-node]=\"true\"\n [class.tree-node-active]=\"node.isActive\"\n [class.tree-node-collapsed]=\"node.isCollapsed && node.hasChildren\"\n [class.tree-node-expanded]=\"node.isExpanded && node.hasChildren\"\n [class.tree-node-focused]=\"node.isFocused\"\n [class.tree-node-leaf]=\"node.isLeaf\"\n>\n <tree-node-drop-slot\n *ngIf=\"index === 0\"\n [dropIndex]=\"node.index\"\n [node]=\"node.parent\"\n >\n </tree-node-drop-slot>\n\n <!-- #region <tree-node-wrapper> custom template --->\n <div\n class=\"node-wrapper\"\n role=\"treeitem\"\n [allowDragoverStyling]=\"node.allowDragoverStyling()\"\n [attr.aria-current]=\"node.isActive\"\n [attr.aria-expanded]=\"node.children?.length ? node.isExpanded : null\"\n [attr.aria-selected]=\"ariaSelected()\"\n [attr.data-node-id]=\"node.id\"\n [attr.tabindex]=\"tabIndex\"\n [class.sky-angular-tree-node-active]=\"showActiveClass()\"\n [class.sky-angular-tree-node-selected]=\"showSelectedClass()\"\n [style.padding-left]=\"node.getNodePadding()\"\n [treeAllowDrop]=\"node.allowDrop\"\n [treeDrag]=\"node\"\n [treeDragEnabled]=\"node.allowDrag()\"\n (contextmenu)=\"node.mouseAction('contextMenu', $event)\"\n (dblclick)=\"node.mouseAction('dblClick', $event)\"\n (focus)=\"onFocus()\"\n (mousedown)=\"onMouseDown()\"\n (mouseup)=\"onMouseUp()\"\n (keydown)=\"onKeyDown($event)\"\n (treeDrop)=\"node.onDrop($event)\"\n (treeDropDragEnter)=\"node.mouseAction('dragEnter', $event)\"\n (treeDropDragLeave)=\"node.mouseAction('dragLeave', $event)\"\n (treeDropDragOver)=\"node.mouseAction('dragOver', $event)\"\n #nodeContentWrapper\n >\n <!-- #region <tree-node-expander> custom template --->\n <div class=\"sky-toggle-children-wrapper\">\n <button\n *ngIf=\"node.hasChildren\"\n class=\"sky-btn sky-btn-link sky-toggle-children\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"nodeName\"\n [class.toggle-children-wrapper-expanded]=\"node.isExpanded\"\n [class.toggle-children-wrapper-collapsed]=\"node.isCollapsed\"\n (click)=\"node.mouseAction('expanderClick', $event)\"\n >\n <sky-icon\n [icon]=\"node.isExpanded ? 'chevron-down' : 'chevron-right'\"\n size=\"sm\"\n />\n </button>\n <span *ngIf=\"showTogglePlaceholder()\" class=\"toggle-children-placeholder\">\n </span>\n </div>\n <!-- #endregion <tree-node-expander> --->\n\n <!-- Note: we've made changes to the click event, tabindex, and classes when compared to the original template. -->\n <!-- https://github.com/500tech/angular-tree-component/blob/master/lib/components/tree-node-wrapper.component.ts -->\n <div class=\"node-content-wrapper\">\n <sky-checkbox\n *ngIf=\"showCheckbox()\"\n [checked]=\"isSelected\"\n [id]=\"node.data.id\"\n [label]=\"nodeName\"\n [indeterminate]=\"isPartiallySelected\"\n (change)=\"node.mouseAction('checkboxClick', $event)\"\n >\n </sky-checkbox>\n\n <sky-angular-tree-context-menu>\n <ng-content select=\"sky-dropdown\" />\n </sky-angular-tree-context-menu>\n\n <tree-node-content\n [index]=\"index\"\n [node]=\"node\"\n [template]=\"templates?.treeNodeTemplate\"\n (click)=\"node.mouseAction('click', $event)\"\n >\n </tree-node-content\n ><span class=\"sky-control-help-container\">\n @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 </ng-container>\n <!-- #endregion <tree-node-wrapper> -->\n\n <tree-node-children role=\"group\" [node]=\"node\" [templates]=\"templates\">\n </tree-node-children>\n\n <tree-node-drop-slot [dropIndex]=\"node.index + 1\" [node]=\"node.parent\">\n </tree-node-drop-slot>\n</div>\n" }]
259
+ args: [{ selector: 'sky-angular-tree-node', providers: [SkyAngularTreeAdapterService, SkyContentInfoProvider], 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-selected]=\"showSelectedClass()\"\n [style.padding-left]=\"node.getNodePadding()\"\n [treeAllowDrop]=\"node.allowDrop\"\n [treeDrag]=\"node\"\n [treeDragEnabled]=\"node.allowDrag()\"\n (contextmenu)=\"node.mouseAction('contextMenu', $event)\"\n (dblclick)=\"node.mouseAction('dblClick', $event)\"\n (focus)=\"onFocus()\"\n (mousedown)=\"onMouseDown()\"\n (mouseup)=\"onMouseUp()\"\n (keydown)=\"onKeyDown($event)\"\n (treeDrop)=\"node.onDrop($event)\"\n (treeDropDragEnter)=\"node.mouseAction('dragEnter', $event)\"\n (treeDropDragLeave)=\"node.mouseAction('dragLeave', $event)\"\n (treeDropDragOver)=\"node.mouseAction('dragOver', $event)\"\n >\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-link sky-toggle-children\"\n tabindex=\"-1\"\n type=\"button\"\n [attr.aria-label]=\"nodeName\"\n [class.toggle-children-wrapper-expanded]=\"node.isExpanded\"\n [class.toggle-children-wrapper-collapsed]=\"node.isCollapsed\"\n (click)=\"node.mouseAction('expanderClick', $event)\"\n >\n <sky-icon\n size=\"sm\"\n [icon]=\"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" }]
260
260
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyAngularTreeAdapterService }, { type: i2.SkyAngularTreeWrapperComponent, decorators: [{
261
261
  type: Optional
262
262
  }] }], propDecorators: { index: [{
@@ -275,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
275
275
  type: ViewChild,
276
276
  args: ['nodeContentWrapper', { read: ElementRef }]
277
277
  }] } });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxRQUFRLEVBRVIsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7QUFHOUU7Ozs7Ozs7OztHQVNHO0FBTUgsTUFBTSxPQUFPLDJCQUEyQjtJQTZDdEMsSUFBVyxlQUFlLENBQUMsS0FBeUI7UUFDbEQsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMscUJBQXFCLEVBQUUsYUFBYSxDQUFDLEtBQUss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ZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElUcmVlU3RhdGUsIFRyZWVOb2RlIH0gZnJvbSAnQGJsYWNrYmF1ZC9hbmd1bGFyLXRyZWUtY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNvbnRlbnRJbmZvUHJvdmlkZXIgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIFJlcGxhY2VzIHRoZSBkZWZhdWx0IHRyZWUgbm9kZSB0ZW1wbGF0ZSB3aXRoIGEgU0tZIFVYIG5vZGUgYXMgcGFydCBvZiB0aGUgYFNreUFuZ3VsYXJUcmVlTW9kdWxlYCB0aGF0XG4gKiBwcm92aWRlcyBTS1kgVVggY29tcG9uZW50cyBhbmQgc3R5bGVzIHRvIGNvbXBsZW1lbnQgdGhlIGBhbmd1bGFyLXRyZWUtY29tcG9uZW50YCBsaWJyYXJ5IGFuZCBhcHBseSBTS1kgVVhcbiAqIHRoZW1lcyBhbmQgZnVuY3Rpb25hbGl0eSB0byBoaWVyYXJjaGljYWwgbGlzdCB2aWV3cy4gWW91IG11c3Qgd3JhcCB0aGlzIGNvbXBvbmVudCBpbiBhbiBgbmctdGVtcGxhdGVgXG4gKiB0YWcgd2l0aCB0aGUgdGVtcGxhdGUgcmVmZXJlbmNlIHZhcmlhYmxlIGAjdHJlZU5vZGVGdWxsVGVtcGxhdGVgLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgdHJlZSBub2RlIHRlbXBsYXRlcyxcbiAqIHNlZSB0aGUgW0FuZ3VsYXIgdHJlZSBjb21wb25lbnQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL3RlbXBsYXRlcykuXG4gKiBUbyBkaXNwbGF5IGNvbnRleHQgbWVudXMgd2l0aCBhY3Rpb25zIGZvciBpbmRpdmlkdWFsIGl0ZW1zIGluIGhpZXJhcmNoaWNhbCBsaXN0cywgcGxhY2VcbiAqIFtkcm9wZG93bnNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtcG9wb3ZlcnMvZG9jcy9kcm9wZG93bj9kb2NzLWFjdGl2ZS10YWI9ZGVzaWduKSBpbnNpZGUgdGhlXG4gKiBBbmd1bGFyIHRyZWUgbm9kZSBjb21wb25lbnQsIHdoaWNoIGF1dG9tYXRpY2FsbHkgaGFuZGxlcyBzdHlsaW5nIGFuZCBwb3NpdGlvbmluZyBmb3IgY29udGV4dCBtZW51cy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFuZ3VsYXItdHJlZS1ub2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSwgU2t5Q29udGVudEluZm9Qcm92aWRlcl0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFuZ3VsYXJUcmVlTm9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgYGluZGV4YCBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJlbnQgYG5nLXRlbXBsYXRlYC5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGBub2RlYCBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJlbnQgYG5nLXRlbXBsYXRlYC4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgVHJlZU5vZGVgIG9iamVjdCwgc2VlIHRoZVxuICAgKiBbQW5ndWxhciB0cmVlIGNvbXBvbmVudCBkb2N1bWVudGF0aW9uXShodHRwczovL2FuZ3VsYXIyLXRyZWUucmVhZG1lLmlvL2RvY3MvYXBpKS5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbm9kZTogVHJlZU5vZGUgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBgdGVtcGxhdGVzYCBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJlbnQgYG5nLXRlbXBsYXRlYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0ZW1wbGF0ZXM6IGFueTtcblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBwbGFjZWQgYmVzaWRlIHRoZSB0cmVlIG5vZGUgbGFiZWwuIENsaWNraW5nIHRoZSBidXR0b24gaW52b2tlcyBbZ2xvYmFsIGhlbHBdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vZGV2ZWxvcC9nbG9iYWwtaGVscClcbiAgICogYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSB0cmVlIG5vZGUuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2V0IGNoaWxkRm9jdXNJbmRleCh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLiNfY2hpbGRGb2N1c0luZGV4KSB7XG4gICAgICB0aGlzLiNfY2hpbGRGb2N1c0luZGV4ID0gdmFsdWU7XG4gICAgICBpZiAodGhpcy4jZm9jdXNhYmxlQ2hpbGRyZW4ubGVuZ3RoID4gMCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuW3ZhbHVlXS5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ub2RlQ29udGVudFdyYXBwZXJSZWY/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaWxkRm9jdXNJbmRleCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfY2hpbGRGb2N1c0luZGV4O1xuICB9XG5cbiAgcHVibGljIHNldCBmb2N1c2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy50YWJJbmRleCA9IHZhbHVlID8gMCA6IC0xO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5ub2RlQ29udGVudFdyYXBwZXJSZWY/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IGlzUGFydGlhbGx5U2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19pc1BhcnRpYWxseVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLiNfaXNQYXJ0aWFsbHlTZWxlY3RlZCA9IHZhbHVlO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpc1BhcnRpYWxseVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaXNQYXJ0aWFsbHlTZWxlY3RlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgaXNTZWxlY3RlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy4jX2lzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuI19pc1NlbGVjdGVkID0gdmFsdWU7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19pc1NlbGVjdGVkO1xuICB9XG5cbiAgcHVibGljIHNldCB0YWJJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy4jX3RhYkluZGV4ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI190YWJJbmRleDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ25vZGVDb250ZW50V3JhcHBlcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgbm9kZUNvbnRlbnRXcmFwcGVyUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBzZXQgbm9kZU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuI19ub2RlTmFtZSA9IHZhbHVlO1xuICAgIHRoaXMuI2NvbnRlbnRJbmZvUHJvdmlkZXIucGF0Y2hJbmZvKHtcbiAgICAgIGRlc2NyaXB0b3I6IHsgdHlwZTogJ3RleHQnLCB2YWx1ZSB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBub2RlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfbm9kZU5hbWU7XG4gIH1cblxuICAjZm9jdXNhYmxlQ2hpbGRyZW46IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICAjbW91c2VEb3duID0gZmFsc2U7XG5cbiAgI19jaGlsZEZvY3VzSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjX2lzUGFydGlhbGx5U2VsZWN0ZWQgPSBmYWxzZTtcblxuICAjX2lzU2VsZWN0ZWQgPSBmYWxzZTtcblxuICAjX3RhYkluZGV4ID0gLTE7XG5cbiAgI19ub2RlTmFtZSA9ICcnO1xuXG4gICNhZGFwdGVyU2VydmljZTogU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2NvbnRlbnRJbmZvUHJvdmlkZXIgPSBpbmplY3QoU2t5Q29udGVudEluZm9Qcm92aWRlcik7XG4gICNza3lBbmd1bGFyVHJlZVdyYXBwZXI6IFNreUFuZ3VsYXJUcmVlV3JhcHBlckNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreUFuZ3VsYXJUcmVlQWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgc2t5QW5ndWxhclRyZWVXcmFwcGVyPzogU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50LFxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvclJlZiA9IGNoYW5nZURldGVjdG9yUmVmO1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlID0gYWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyID0gc2t5QW5ndWxhclRyZWVXcmFwcGVyO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgPHNreS1hbmd1bGFyLXRyZWUtbm9kZS13cmFwcGVyPiBtdXN0IGJlIHdyYXBwZWQgaW5zaWRlIGEgPHNreS1hbmd1bGFyLXRyZWUtd3JhcHBlcj4gY29tcG9uZW50LmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIHRoaXMubm9kZU5hbWUgPSB0aGlzLm5vZGUuZGF0YS5uYW1lO1xuICAgICAgLy8gQmVjYXVzZSB3ZSdyZSBiaW5kaW5nIHRoZSBjaGVja2JveCB0byBub2RlJ3MgY2hpbGRyZW4gcHJvcGVydGllcywgd2UgbmVlZCB0byBtYW51YWxseSBjb250cm9sIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgICAvLyBIZXJlLCB3ZSBsaXN0ZW4gdG8gdGhlIHRyZWUncyBzdGF0ZSBhbmQgZm9yY2UgY2hhbmdlIGRldGVjdGlvbiBpbiB0aGUgc2V0dGVycyBpZiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQuXG4gICAgICB0aGlzLm5vZGUudHJlZU1vZGVsLnN1YnNjcmliZVRvU3RhdGUoKHN0YXRlOiBJVHJlZVN0YXRlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWQgPSB0aGlzLm5vZGUuaXNTZWxlY3RlZDtcbiAgICAgICAgICB0aGlzLmlzUGFydGlhbGx5U2VsZWN0ZWQgPSB0aGlzLm5vZGUuaXNQYXJ0aWFsbHlTZWxlY3RlZDtcblxuICAgICAgICAgIGlmIChzdGF0ZS5mb2N1c2VkTm9kZUlkKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWQgPSBzdGF0ZS5mb2N1c2VkTm9kZUlkID09PSB0aGlzLm5vZGUuaWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5ub2RlLnRyZWVNb2RlbC5zdWJzY3JpYmUoJ3VwZGF0ZURhdGEnLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgICAgICB0aGlzLm5vZGVOYW1lID0gdGhpcy5ub2RlLmRhdGEubmFtZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIE1ha2UgdGhlIGZpcnN0IHJvb3Qgbm9kZSB0YWJiYWJsZS5cbiAgICAgIGlmICh0aGlzLm5vZGUuaXNSb290ICYmIHRoaXMubm9kZS5pbmRleCA9PT0gMCkge1xuICAgICAgICB0aGlzLnRhYkluZGV4ID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIFdhaXQgMXMgZm9yIHRoZSBub2RlIHRvIHJlbmRlciwgdGhlbiByZXNldCBhbGwgY2hpbGQgdGFiSW5kZXhlcyB0byAtMS5cbiAgICAvLyBVbml0cyBzbWFsbGVyIHRoYW4gMXMgbWF5IGNvbnNpc3RlbnRseSBmYWlsIGlmIHRoZXJlIGFyZSBtYW55IG5vZGVzLCBvciBtdWx0aXBsZSB0cmVlcyBhcmUgb24gdGhlIHNhbWUgc2NyZWVuLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmKSB7XG4gICAgICAgIHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuID0gdGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oXG4gICAgICAgICAgdGhpcy5ub2RlQ29udGVudFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0VGFiSW5kZXhPZkZvY3VzYWJsZUVscyhcbiAgICAgICAgICB0aGlzLm5vZGVDb250ZW50V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIC0xLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHNpbmdsZS1zZWxlY3QsIHNldCBhcmlhLXNlbGVjdGVkPXRydWUgZm9yIHRoZSBzZWxlY3RlZCBub2RlIGFuZCB1bmRlZmluZWQgZm9yIGFsbCB0aGUgb3RoZXJzLlxuICAgKiBGb3IgbXVsdGlwbGUtc2VsZWN0LCBzZXQgYXJpYS1zZWxlY3RlZCB0byBlaXRoZXIgdHJ1ZSBvciBmYWxzZS5cbiAgICogSWYgbm9kZSBjYW5ub3QgYmUgc2VsZWN0ZWQsIGFyaWEtc2VsZWN0ZWQgc2hvdWxkIGJlIHVuZGVmaW5lZCAoZS5nLiBwYXJlbnQgbm9kZXMgaW4gbGVhZi1zZWxlY3Qtb25seSBtb2RlKS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYXJpYVNlbGVjdGVkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlci5zZWxlY3RTaW5nbGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzU2VsZWN0ZWQgPyB0cnVlIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICghdGhpcy4jaXNTZWxlY3RhYmxlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gISF0aGlzLmlzU2VsZWN0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2hvd0NoZWNrYm94KCk6IGJvb2xlYW4ge1xuICAgIC8vIENoZWNrIGZvciBjaGVja2JveCBtb2RlIGVuYWJsZWQsIGJ1dCBhbHNvIHJlc3BlY3QgbGVhZi1ub2RlIGFuZCBzaW5nbGUtc2VsZWN0IHNldHRpbmdzLlxuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMubm9kZSAmJlxuICAgICAgdGhpcy5ub2RlLm9wdGlvbnMudXNlQ2hlY2tib3ggJiZcbiAgICAgIHRoaXMuI2lzU2VsZWN0YWJsZSgpICYmXG4gICAgICAoIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlciB8fFxuICAgICAgICAhdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyLnNlbGVjdFNpbmdsZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNob3dTZWxlY3RlZENsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNpc1NlbGVjdGFibGUoKSAmJiB0aGlzLmlzU2VsZWN0ZWQgJiYgIXRoaXMuaXNQYXJ0aWFsbHlTZWxlY3RlZDtcbiAgfVxuXG4gIHB1YmxpYyBzaG93QWN0aXZlQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5ub2RlICYmXG4gICAgICB0aGlzLm5vZGUuaXNBY3RpdmUgJiZcbiAgICAgICF0aGlzLm5vZGUudHJlZU1vZGVsLm9wdGlvbnMudXNlQ2hlY2tib3hcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNob3dUb2dnbGVQbGFjZWhvbGRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXRoaXMubm9kZT8uaGFzQ2hpbGRyZW4gJiZcbiAgICAgICF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXI/LnNlbGVjdExlYWZOb2Rlc09ubHlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgLy8gPHRyZWUtbm9kZS1jb250ZW50PiBoYXMgaXRzIG93biBjbGljayBoYW5kbGVyLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgZm9jdXMgZXZlbnRcbiAgICAvLyBpcyBjb21pbmcgZnJvbSB0aGUgbW91c2UgY2xpY2sgb3IgdGhlIGtleWJvYXJkIHRvIHByZXZlbnQgdGhlIGxvZ2ljIGZyb20gcnVubmluZyB0d2ljZS5cbiAgICBpZiAoIXRoaXMuI21vdXNlRG93bikge1xuICAgICAgdGhpcy5ub2RlPy50cmVlTW9kZWwuc2V0Rm9jdXModHJ1ZSk7XG4gICAgICB0aGlzLm5vZGU/LmZvY3VzKCk7XG4gICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Nb3VzZURvd24oKTogdm9pZCB7XG4gICAgdGhpcy4jbW91c2VEb3duID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1vdXNlVXAoKTogdm9pZCB7XG4gICAgdGhpcy4jbW91c2VEb3duID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICBjb25zdCBrZXkgPSBldmVudC5rZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgIGNhc2UgJ3VwJzpcbiAgICAgICAgY2FzZSAnYXJyb3d1cCc6XG4gICAgICAgICAgLy8gRm9jdXMgb24gcHJldmlvdXMgbm9kZS5cbiAgICAgICAgICB0aGlzLm5vZGU/LnRyZWVNb2RlbC5mb2N1c1ByZXZpb3VzTm9kZSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgICBjYXNlICdhcnJvd2Rvd24nOlxuICAgICAgICAgIC8vIEZvY3VzIG9uIG5leHQgbm9kZS5cbiAgICAgICAgICB0aGlzLm5vZGU/LnRyZWVNb2RlbC5mb2N1c05leHROb2RlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIGNhc2UgJ2Fycm93bGVmdCc6XG4gICAgICAgICAgLy8gQ3ljbGUgYmFja3dhcmRzIHRocm91Z2ggaW50ZXJhY3RpdmUgY2hpbGQgZWxlbWVudHNcbiAgICAgICAgICAvLyBJZiB1c2VyIHJlYWNoZXMgdGhlIGJlZ2lubmluZywgYWN0aXZhdGUgZHJpbGwgdXAuXG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAodGhpcy5jaGlsZEZvY3VzSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2hpbGRGb2N1c0luZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXgtLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ub2RlPy5zZXRJc0V4cGFuZGVkKGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGNhc2UgJ2Fycm93cmlnaHQnOlxuICAgICAgICAgIC8vIEN5Y2xlIGZvcndhcmQgdGhyb3VnaCBpbnRlcmFjdGl2ZSBjaGlsZCBlbGVtZW50cy5cbiAgICAgICAgICAvLyBJZiB1c2VyIHJlYWNoZXMgdGhlIGVuZCwgYWN0aXZhdGUgZHJpbGwgZG93bi5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCA8PSAwIHx8XG4gICAgICAgICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleCA9PT0gdGhpcy4jZm9jdXNhYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5ub2RlPy5zZXRJc0V4cGFuZGVkKHRydWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGlsZEZvY3VzSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleCA9IDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2lzU2VsZWN0YWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhIXRoaXMubm9kZSAmJlxuICAgICAgICAodGhpcy5ub2RlLmlzTGVhZiB8fFxuICAgICAgICAgICF0aGlzLm5vZGUuaGFzQ2hpbGRyZW4gfHxcbiAgICAgICAgICAhdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyLnNlbGVjdExlYWZOb2Rlc09ubHkpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwibm9kZSAmJiBpbmRleCAhPT0gdW5kZWZpbmVkXCJcbiAgW2NsYXNzXT1cIm5vZGUuZ2V0Q2xhc3MoKVwiXG4gIFtjbGFzcy50cmVlLW5vZGVdPVwidHJ1ZVwiXG4gIFtjbGFzcy50cmVlLW5vZGUtYWN0aXZlXT1cIm5vZGUuaXNBY3RpdmVcIlxuICBbY2xhc3MudHJlZS1ub2RlLWNvbGxhcHNlZF09XCJub2RlLmlzQ29sbGFwc2VkICYmIG5vZGUuaGFzQ2hpbGRyZW5cIlxuICBbY2xhc3MudHJlZS1ub2RlLWV4cGFuZGVkXT1cIm5vZGUuaXNFeHBhbmRlZCAmJiBub2RlLmhhc0NoaWxkcmVuXCJcbiAgW2NsYXNzLnRyZWUtbm9kZS1mb2N1c2VkXT1cIm5vZGUuaXNGb2N1c2VkXCJcbiAgW2NsYXNzLnRyZWUtbm9kZS1sZWFmXT1cIm5vZGUuaXNMZWFmXCJcbj5cbiAgPHRyZWUtbm9kZS1kcm9wLXNsb3RcbiAgICAqbmdJZj1cImluZGV4ID09PSAwXCJcbiAgICBbZHJvcEluZGV4XT1cIm5vZGUuaW5kZXhcIlxuICAgIFtub2RlXT1cIm5vZGUucGFyZW50XCJcbiAgPlxuICA8L3RyZWUtbm9kZS1kcm9wLXNsb3Q+XG5cbiAgPCEtLSAjcmVnaW9uIDx0cmVlLW5vZGUtd3JhcHBlcj4gY3VzdG9tIHRlbXBsYXRlIC0tLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwibm9kZS13cmFwcGVyXCJcbiAgICByb2xlPVwidHJlZWl0ZW1cIlxuICAgIFthbGxvd0RyYWdvdmVyU3R5bGluZ109XCJub2RlLmFsbG93RHJhZ292ZXJTdHlsaW5nKClcIlxuICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJub2RlLmlzQWN0aXZlXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm5vZGUuY2hpbGRyZW4/Lmxlbmd0aCA/IG5vZGUuaXNFeHBhbmRlZCA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiYXJpYVNlbGVjdGVkKClcIlxuICAgIFthdHRyLmRhdGEtbm9kZS1pZF09XCJub2RlLmlkXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJJbmRleFwiXG4gICAgW2NsYXNzLnNreS1hbmd1bGFyLXRyZWUtbm9kZS1hY3RpdmVdPVwic2hvd0FjdGl2ZUNsYXNzKClcIlxuICAgIFtjbGFzcy5za3ktYW5ndWxhci10cmVlLW5vZGUtc2VsZWN0ZWRdPVwic2hvd1NlbGVjdGVkQ2xhc3MoKVwiXG4gICAgW3N0eWxlLnBhZGRpbmctbGVmdF09XCJub2RlLmdldE5vZGVQYWRkaW5nKClcIlxuICAgIFt0cmVlQWxsb3dEcm9wXT1cIm5vZGUuYWxsb3dEcm9wXCJcbiAgICBbdHJlZURyYWddPVwibm9kZVwiXG4gICAgW3RyZWVEcmFnRW5hYmxlZF09XCJub2RlLmFsbG93RHJhZygpXCJcbiAgICAoY29udGV4dG1lbnUpPVwibm9kZS5tb3VzZUFjdGlvbignY29udGV4dE1lbnUnLCAkZXZlbnQpXCJcbiAgICAoZGJsY2xpY2spPVwibm9kZS5tb3VzZUFjdGlvbignZGJsQ2xpY2snLCAkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKClcIlxuICAgIChtb3VzZXVwKT1cIm9uTW91c2VVcCgpXCJcbiAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgKHRyZWVEcm9wKT1cIm5vZGUub25Ecm9wKCRldmVudClcIlxuICAgICh0cmVlRHJvcERyYWdFbnRlcik9XCJub2RlLm1vdXNlQWN0aW9uKCdkcmFnRW50ZXInLCAkZXZlbnQpXCJcbiAgICAodHJlZURyb3BEcmFnTGVhdmUpPVwibm9kZS5tb3VzZUFjdGlvbignZHJhZ0xlYXZlJywgJGV2ZW50KVwiXG4gICAgKHRyZWVEcm9wRHJhZ092ZXIpPVwibm9kZS5tb3VzZUFjdGlvbignZHJhZ092ZXInLCAkZXZlbnQpXCJcbiAgICAjbm9kZUNvbnRlbnRXcmFwcGVyXG4gID5cbiAgICA8IS0tICNyZWdpb24gPHRyZWUtbm9kZS1leHBhbmRlcj4gY3VzdG9tIHRlbXBsYXRlIC0tLT5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LXRvZ2dsZS1jaGlsZHJlbi13cmFwcGVyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwibm9kZS5oYXNDaGlsZHJlblwiXG4gICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LXRvZ2dsZS1jaGlsZHJlblwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJub2RlTmFtZVwiXG4gICAgICAgIFtjbGFzcy50b2dnbGUtY2hpbGRyZW4td3JhcHBlci1leHBhbmRlZF09XCJub2RlLmlzRXhwYW5kZWRcIlxuICAgICAgICBbY2xhc3MudG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXItY29sbGFwc2VkXT1cIm5vZGUuaXNDb2xsYXBzZWRcIlxuICAgICAgICAoY2xpY2spPVwibm9kZS5tb3VzZUFjdGlvbignZXhwYW5kZXJDbGljaycsICRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICBbaWNvbl09XCJub2RlLmlzRXhwYW5kZWQgPyAnY2hldnJvbi1kb3duJyA6ICdjaGV2cm9uLXJpZ2h0J1wiXG4gICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPHNwYW4gKm5nSWY9XCJzaG93VG9nZ2xlUGxhY2Vob2xkZXIoKVwiIGNsYXNzPVwidG9nZ2xlLWNoaWxkcmVuLXBsYWNlaG9sZGVyXCI+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPCEtLSAjZW5kcmVnaW9uIDx0cmVlLW5vZGUtZXhwYW5kZXI+IC0tLT5cblxuICAgIDwhLS0gTm90ZTogd2UndmUgbWFkZSBjaGFuZ2VzIHRvIHRoZSBjbGljayBldmVudCwgdGFiaW5kZXgsIGFuZCBjbGFzc2VzIHdoZW4gY29tcGFyZWQgdG8gdGhlIG9yaWdpbmFsIHRlbXBsYXRlLiAtLT5cbiAgICA8IS0tIGh0dHBzOi8vZ2l0aHViLmNvbS81MDB0ZWNoL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvYmxvYi9tYXN0ZXIvbGliL2NvbXBvbmVudHMvdHJlZS1ub2RlLXdyYXBwZXIuY29tcG9uZW50LnRzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJub2RlLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAqbmdJZj1cInNob3dDaGVja2JveCgpXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZFwiXG4gICAgICAgIFtpZF09XCJub2RlLmRhdGEuaWRcIlxuICAgICAgICBbbGFiZWxdPVwibm9kZU5hbWVcIlxuICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJpc1BhcnRpYWxseVNlbGVjdGVkXCJcbiAgICAgICAgKGNoYW5nZSk9XCJub2RlLm1vdXNlQWN0aW9uKCdjaGVja2JveENsaWNrJywgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L3NreS1jaGVja2JveD5cblxuICAgICAgPHNreS1hbmd1bGFyLXRyZWUtY29udGV4dC1tZW51PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktZHJvcGRvd25cIiAvPlxuICAgICAgPC9za3ktYW5ndWxhci10cmVlLWNvbnRleHQtbWVudT5cblxuICAgICAgPHRyZWUtbm9kZS1jb250ZW50XG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICBbdGVtcGxhdGVdPVwidGVtcGxhdGVzPy50cmVlTm9kZVRlbXBsYXRlXCJcbiAgICAgICAgKGNsaWNrKT1cIm5vZGUubW91c2VBY3Rpb24oJ2NsaWNrJywgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8L3RyZWUtbm9kZS1jb250ZW50XG4gICAgICA+PHNwYW4gY2xhc3M9XCJza3ktY29udHJvbC1oZWxwLWNvbnRhaW5lclwiPlxuICAgICAgICBAaWYgKGhlbHBLZXkgfHwgaGVscFBvcG92ZXJDb250ZW50KSB7XG4gICAgICAgICAgPHNreS1oZWxwLWlubGluZVxuICAgICAgICAgICAgW2hlbHBLZXldPVwiaGVscEtleVwiXG4gICAgICAgICAgICBbbGFiZWxUZXh0XT1cIm5vZGVOYW1lXCJcbiAgICAgICAgICAgIFtwb3BvdmVyQ29udGVudF09XCJoZWxwUG9wb3ZlckNvbnRlbnRcIlxuICAgICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJoZWxwUG9wb3ZlclRpdGxlXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCIuc2t5LWNvbnRyb2wtaGVscFwiIC8+XG4gICAgICAgIH1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlcz8udHJlZU5vZGVXcmFwcGVyVGVtcGxhdGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAkaW1wbGljaXQ6IG5vZGUsXG4gICAgICBub2RlOiBub2RlLFxuICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgdGVtcGxhdGVzOiB0ZW1wbGF0ZXNcbiAgICB9XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPCEtLSAjZW5kcmVnaW9uIDx0cmVlLW5vZGUtd3JhcHBlcj4gLS0+XG5cbiAgPHRyZWUtbm9kZS1jaGlsZHJlbiByb2xlPVwiZ3JvdXBcIiBbbm9kZV09XCJub2RlXCIgW3RlbXBsYXRlc109XCJ0ZW1wbGF0ZXNcIj5cbiAgPC90cmVlLW5vZGUtY2hpbGRyZW4+XG5cbiAgPHRyZWUtbm9kZS1kcm9wLXNsb3QgW2Ryb3BJbmRleF09XCJub2RlLmluZGV4ICsgMVwiIFtub2RlXT1cIm5vZGUucGFyZW50XCI+XG4gIDwvdHJlZS1ub2RlLWRyb3Atc2xvdD5cbjwvZGl2PlxuIl19
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtbm9kZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxRQUFRLEVBRVIsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7QUFHOUU7Ozs7Ozs7OztHQVNHO0FBTUgsTUFBTSxPQUFPLDJCQUEyQjtJQTZDdEMsSUFBVyxlQUFlLENBQUMsS0FBeUI7UUFDbEQsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMscUJBQXFCLEVBQUUsYUFBYSxDQUFDLEtBQUss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ZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElUcmVlU3RhdGUsIFRyZWVOb2RlIH0gZnJvbSAnQGJsYWNrYmF1ZC9hbmd1bGFyLXRyZWUtY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNvbnRlbnRJbmZvUHJvdmlkZXIgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIFJlcGxhY2VzIHRoZSBkZWZhdWx0IHRyZWUgbm9kZSB0ZW1wbGF0ZSB3aXRoIGEgU0tZIFVYIG5vZGUgYXMgcGFydCBvZiB0aGUgYFNreUFuZ3VsYXJUcmVlTW9kdWxlYCB0aGF0XG4gKiBwcm92aWRlcyBTS1kgVVggY29tcG9uZW50cyBhbmQgc3R5bGVzIHRvIGNvbXBsZW1lbnQgdGhlIGBhbmd1bGFyLXRyZWUtY29tcG9uZW50YCBsaWJyYXJ5IGFuZCBhcHBseSBTS1kgVVhcbiAqIHRoZW1lcyBhbmQgZnVuY3Rpb25hbGl0eSB0byBoaWVyYXJjaGljYWwgbGlzdCB2aWV3cy4gWW91IG11c3Qgd3JhcCB0aGlzIGNvbXBvbmVudCBpbiBhbiBgbmctdGVtcGxhdGVgXG4gKiB0YWcgd2l0aCB0aGUgdGVtcGxhdGUgcmVmZXJlbmNlIHZhcmlhYmxlIGAjdHJlZU5vZGVGdWxsVGVtcGxhdGVgLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgdHJlZSBub2RlIHRlbXBsYXRlcyxcbiAqIHNlZSB0aGUgW0FuZ3VsYXIgdHJlZSBjb21wb25lbnQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL3RlbXBsYXRlcykuXG4gKiBUbyBkaXNwbGF5IGNvbnRleHQgbWVudXMgd2l0aCBhY3Rpb25zIGZvciBpbmRpdmlkdWFsIGl0ZW1zIGluIGhpZXJhcmNoaWNhbCBsaXN0cywgcGxhY2VcbiAqIFtkcm9wZG93bnNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtcG9wb3ZlcnMvZG9jcy9kcm9wZG93bj9kb2NzLWFjdGl2ZS10YWI9ZGVzaWduKSBpbnNpZGUgdGhlXG4gKiBBbmd1bGFyIHRyZWUgbm9kZSBjb21wb25lbnQsIHdoaWNoIGF1dG9tYXRpY2FsbHkgaGFuZGxlcyBzdHlsaW5nIGFuZCBwb3NpdGlvbmluZyBmb3IgY29udGV4dCBtZW51cy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFuZ3VsYXItdHJlZS1ub2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZSwgU2t5Q29udGVudEluZm9Qcm92aWRlcl0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFuZ3VsYXJUcmVlTm9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgYGluZGV4YCBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJlbnQgYG5nLXRlbXBsYXRlYC5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGBub2RlYCBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJlbnQgYG5nLXRlbXBsYXRlYC4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgVHJlZU5vZGVgIG9iamVjdCwgc2VlIHRoZVxuICAgKiBbQW5ndWxhciB0cmVlIGNvbXBvbmVudCBkb2N1bWVudGF0aW9uXShodHRwczovL2FuZ3VsYXIyLXRyZWUucmVhZG1lLmlvL2RvY3MvYXBpKS5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbm9kZTogVHJlZU5vZGUgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBgdGVtcGxhdGVzYCBwcm9wZXJ0eSBmcm9tIHRoZSBwYXJlbnQgYG5nLXRlbXBsYXRlYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0ZW1wbGF0ZXM6IGFueTtcblxuICAvKipcbiAgICogQSBoZWxwIGtleSB0aGF0IGlkZW50aWZpZXMgdGhlIGdsb2JhbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheS4gV2hlbiBzcGVjaWZpZWQsIGEgW2hlbHAgaW5saW5lXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvaGVscC1pbmxpbmUpXG4gICAqIGJ1dHRvbiBpcyBwbGFjZWQgYmVzaWRlIHRoZSB0cmVlIG5vZGUgbGFiZWwuIENsaWNraW5nIHRoZSBidXR0b24gaW52b2tlcyBbZ2xvYmFsIGhlbHBdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vZGV2ZWxvcC9nbG9iYWwtaGVscClcbiAgICogYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSB0cmVlIG5vZGUuIFRoZSBoZWxwIGlubGluZSBidXR0b24gZGlzcGxheXMgYSBbcG9wb3Zlcl0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3BvcG92ZXIpXG4gICAqIHdoZW4gY2xpY2tlZCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgYW5kIG9wdGlvbmFsIHRpdGxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgaGVscCBwb3BvdmVyLiBUaGlzIHByb3BlcnR5IG9ubHkgYXBwbGllcyB3aGVuIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlzXG4gICAqIGFsc28gc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhlbHBQb3BvdmVyVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2V0IGNoaWxkRm9jdXNJbmRleCh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLiNfY2hpbGRGb2N1c0luZGV4KSB7XG4gICAgICB0aGlzLiNfY2hpbGRGb2N1c0luZGV4ID0gdmFsdWU7XG4gICAgICBpZiAodGhpcy4jZm9jdXNhYmxlQ2hpbGRyZW4ubGVuZ3RoID4gMCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuW3ZhbHVlXS5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ub2RlQ29udGVudFdyYXBwZXJSZWY/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaWxkRm9jdXNJbmRleCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfY2hpbGRGb2N1c0luZGV4O1xuICB9XG5cbiAgcHVibGljIHNldCBmb2N1c2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy50YWJJbmRleCA9IHZhbHVlID8gMCA6IC0xO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5ub2RlQ29udGVudFdyYXBwZXJSZWY/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IGlzUGFydGlhbGx5U2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19pc1BhcnRpYWxseVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLiNfaXNQYXJ0aWFsbHlTZWxlY3RlZCA9IHZhbHVlO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpc1BhcnRpYWxseVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfaXNQYXJ0aWFsbHlTZWxlY3RlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgaXNTZWxlY3RlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy4jX2lzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuI19pc1NlbGVjdGVkID0gdmFsdWU7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19pc1NlbGVjdGVkO1xuICB9XG5cbiAgcHVibGljIHNldCB0YWJJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy4jX3RhYkluZGV4ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI190YWJJbmRleDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ25vZGVDb250ZW50V3JhcHBlcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgbm9kZUNvbnRlbnRXcmFwcGVyUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCBzZXQgbm9kZU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuI19ub2RlTmFtZSA9IHZhbHVlO1xuICAgIHRoaXMuI2NvbnRlbnRJbmZvUHJvdmlkZXIucGF0Y2hJbmZvKHtcbiAgICAgIGRlc2NyaXB0b3I6IHsgdHlwZTogJ3RleHQnLCB2YWx1ZSB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBub2RlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfbm9kZU5hbWU7XG4gIH1cblxuICAjZm9jdXNhYmxlQ2hpbGRyZW46IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICAjbW91c2VEb3duID0gZmFsc2U7XG5cbiAgI19jaGlsZEZvY3VzSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjX2lzUGFydGlhbGx5U2VsZWN0ZWQgPSBmYWxzZTtcblxuICAjX2lzU2VsZWN0ZWQgPSBmYWxzZTtcblxuICAjX3RhYkluZGV4ID0gLTE7XG5cbiAgI19ub2RlTmFtZSA9ICcnO1xuXG4gICNhZGFwdGVyU2VydmljZTogU2t5QW5ndWxhclRyZWVBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2NvbnRlbnRJbmZvUHJvdmlkZXIgPSBpbmplY3QoU2t5Q29udGVudEluZm9Qcm92aWRlcik7XG4gICNza3lBbmd1bGFyVHJlZVdyYXBwZXI6IFNreUFuZ3VsYXJUcmVlV3JhcHBlckNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreUFuZ3VsYXJUcmVlQWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgc2t5QW5ndWxhclRyZWVXcmFwcGVyPzogU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50LFxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvclJlZiA9IGNoYW5nZURldGVjdG9yUmVmO1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlID0gYWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyID0gc2t5QW5ndWxhclRyZWVXcmFwcGVyO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgPHNreS1hbmd1bGFyLXRyZWUtbm9kZS13cmFwcGVyPiBtdXN0IGJlIHdyYXBwZWQgaW5zaWRlIGEgPHNreS1hbmd1bGFyLXRyZWUtd3JhcHBlcj4gY29tcG9uZW50LmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgIHRoaXMubm9kZU5hbWUgPSB0aGlzLm5vZGUuZGF0YS5uYW1lO1xuICAgICAgLy8gQmVjYXVzZSB3ZSdyZSBiaW5kaW5nIHRoZSBjaGVja2JveCB0byBub2RlJ3MgY2hpbGRyZW4gcHJvcGVydGllcywgd2UgbmVlZCB0byBtYW51YWxseSBjb250cm9sIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgICAvLyBIZXJlLCB3ZSBsaXN0ZW4gdG8gdGhlIHRyZWUncyBzdGF0ZSBhbmQgZm9yY2UgY2hhbmdlIGRldGVjdGlvbiBpbiB0aGUgc2V0dGVycyBpZiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQuXG4gICAgICB0aGlzLm5vZGUudHJlZU1vZGVsLnN1YnNjcmliZVRvU3RhdGUoKHN0YXRlOiBJVHJlZVN0YXRlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWQgPSB0aGlzLm5vZGUuaXNTZWxlY3RlZDtcbiAgICAgICAgICB0aGlzLmlzUGFydGlhbGx5U2VsZWN0ZWQgPSB0aGlzLm5vZGUuaXNQYXJ0aWFsbHlTZWxlY3RlZDtcblxuICAgICAgICAgIGlmIChzdGF0ZS5mb2N1c2VkTm9kZUlkKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWQgPSBzdGF0ZS5mb2N1c2VkTm9kZUlkID09PSB0aGlzLm5vZGUuaWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5ub2RlLnRyZWVNb2RlbC5zdWJzY3JpYmUoJ3VwZGF0ZURhdGEnLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5vZGUpIHtcbiAgICAgICAgICB0aGlzLm5vZGVOYW1lID0gdGhpcy5ub2RlLmRhdGEubmFtZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIE1ha2UgdGhlIGZpcnN0IHJvb3Qgbm9kZSB0YWJiYWJsZS5cbiAgICAgIGlmICh0aGlzLm5vZGUuaXNSb290ICYmIHRoaXMubm9kZS5pbmRleCA9PT0gMCkge1xuICAgICAgICB0aGlzLnRhYkluZGV4ID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIFdhaXQgMXMgZm9yIHRoZSBub2RlIHRvIHJlbmRlciwgdGhlbiByZXNldCBhbGwgY2hpbGQgdGFiSW5kZXhlcyB0byAtMS5cbiAgICAvLyBVbml0cyBzbWFsbGVyIHRoYW4gMXMgbWF5IGNvbnNpc3RlbnRseSBmYWlsIGlmIHRoZXJlIGFyZSBtYW55IG5vZGVzLCBvciBtdWx0aXBsZSB0cmVlcyBhcmUgb24gdGhlIHNhbWUgc2NyZWVuLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubm9kZUNvbnRlbnRXcmFwcGVyUmVmKSB7XG4gICAgICAgIHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuID0gdGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oXG4gICAgICAgICAgdGhpcy5ub2RlQ29udGVudFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0VGFiSW5kZXhPZkZvY3VzYWJsZUVscyhcbiAgICAgICAgICB0aGlzLm5vZGVDb250ZW50V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIC0xLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIDEwMDApO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHNpbmdsZS1zZWxlY3QsIHNldCBhcmlhLXNlbGVjdGVkPXRydWUgZm9yIHRoZSBzZWxlY3RlZCBub2RlIGFuZCB1bmRlZmluZWQgZm9yIGFsbCB0aGUgb3RoZXJzLlxuICAgKiBGb3IgbXVsdGlwbGUtc2VsZWN0LCBzZXQgYXJpYS1zZWxlY3RlZCB0byBlaXRoZXIgdHJ1ZSBvciBmYWxzZS5cbiAgICogSWYgbm9kZSBjYW5ub3QgYmUgc2VsZWN0ZWQsIGFyaWEtc2VsZWN0ZWQgc2hvdWxkIGJlIHVuZGVmaW5lZCAoZS5nLiBwYXJlbnQgbm9kZXMgaW4gbGVhZi1zZWxlY3Qtb25seSBtb2RlKS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYXJpYVNlbGVjdGVkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlci5zZWxlY3RTaW5nbGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzU2VsZWN0ZWQgPyB0cnVlIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICghdGhpcy4jaXNTZWxlY3RhYmxlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gISF0aGlzLmlzU2VsZWN0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2hvd0NoZWNrYm94KCk6IGJvb2xlYW4ge1xuICAgIC8vIENoZWNrIGZvciBjaGVja2JveCBtb2RlIGVuYWJsZWQsIGJ1dCBhbHNvIHJlc3BlY3QgbGVhZi1ub2RlIGFuZCBzaW5nbGUtc2VsZWN0IHNldHRpbmdzLlxuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMubm9kZSAmJlxuICAgICAgdGhpcy5ub2RlLm9wdGlvbnMudXNlQ2hlY2tib3ggJiZcbiAgICAgIHRoaXMuI2lzU2VsZWN0YWJsZSgpICYmXG4gICAgICAoIXRoaXMuI3NreUFuZ3VsYXJUcmVlV3JhcHBlciB8fFxuICAgICAgICAhdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyLnNlbGVjdFNpbmdsZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNob3dTZWxlY3RlZENsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNpc1NlbGVjdGFibGUoKSAmJiB0aGlzLmlzU2VsZWN0ZWQgJiYgIXRoaXMuaXNQYXJ0aWFsbHlTZWxlY3RlZDtcbiAgfVxuXG4gIHB1YmxpYyBzaG93QWN0aXZlQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5ub2RlICYmXG4gICAgICB0aGlzLm5vZGUuaXNBY3RpdmUgJiZcbiAgICAgICF0aGlzLm5vZGUudHJlZU1vZGVsLm9wdGlvbnMudXNlQ2hlY2tib3hcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNob3dUb2dnbGVQbGFjZWhvbGRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXRoaXMubm9kZT8uaGFzQ2hpbGRyZW4gJiZcbiAgICAgICF0aGlzLiNza3lBbmd1bGFyVHJlZVdyYXBwZXI/LnNlbGVjdExlYWZOb2Rlc09ubHlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgLy8gPHRyZWUtbm9kZS1jb250ZW50PiBoYXMgaXRzIG93biBjbGljayBoYW5kbGVyLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgZm9jdXMgZXZlbnRcbiAgICAvLyBpcyBjb21pbmcgZnJvbSB0aGUgbW91c2UgY2xpY2sgb3IgdGhlIGtleWJvYXJkIHRvIHByZXZlbnQgdGhlIGxvZ2ljIGZyb20gcnVubmluZyB0d2ljZS5cbiAgICBpZiAoIXRoaXMuI21vdXNlRG93bikge1xuICAgICAgdGhpcy5ub2RlPy50cmVlTW9kZWwuc2V0Rm9jdXModHJ1ZSk7XG4gICAgICB0aGlzLm5vZGU/LmZvY3VzKCk7XG4gICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Nb3VzZURvd24oKTogdm9pZCB7XG4gICAgdGhpcy4jbW91c2VEb3duID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1vdXNlVXAoKTogdm9pZCB7XG4gICAgdGhpcy4jbW91c2VEb3duID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KSB7XG4gICAgICBjb25zdCBrZXkgPSBldmVudC5rZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgIGNhc2UgJ3VwJzpcbiAgICAgICAgY2FzZSAnYXJyb3d1cCc6XG4gICAgICAgICAgLy8gRm9jdXMgb24gcHJldmlvdXMgbm9kZS5cbiAgICAgICAgICB0aGlzLm5vZGU/LnRyZWVNb2RlbC5mb2N1c1ByZXZpb3VzTm9kZSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgICBjYXNlICdhcnJvd2Rvd24nOlxuICAgICAgICAgIC8vIEZvY3VzIG9uIG5leHQgbm9kZS5cbiAgICAgICAgICB0aGlzLm5vZGU/LnRyZWVNb2RlbC5mb2N1c05leHROb2RlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIGNhc2UgJ2Fycm93bGVmdCc6XG4gICAgICAgICAgLy8gQ3ljbGUgYmFja3dhcmRzIHRocm91Z2ggaW50ZXJhY3RpdmUgY2hpbGQgZWxlbWVudHNcbiAgICAgICAgICAvLyBJZiB1c2VyIHJlYWNoZXMgdGhlIGJlZ2lubmluZywgYWN0aXZhdGUgZHJpbGwgdXAuXG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAodGhpcy5jaGlsZEZvY3VzSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2hpbGRGb2N1c0luZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hpbGRGb2N1c0luZGV4ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGlsZEZvY3VzSW5kZXgtLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ub2RlPy5zZXRJc0V4cGFuZGVkKGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGNhc2UgJ2Fycm93cmlnaHQnOlxuICAgICAgICAgIC8vIEN5Y2xlIGZvcndhcmQgdGhyb3VnaCBpbnRlcmFjdGl2ZSBjaGlsZCBlbGVtZW50cy5cbiAgICAgICAgICAvLyBJZiB1c2VyIHJlYWNoZXMgdGhlIGVuZCwgYWN0aXZhdGUgZHJpbGwgZG93bi5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuI2ZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCA8PSAwIHx8XG4gICAgICAgICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleCA9PT0gdGhpcy4jZm9jdXNhYmxlQ2hpbGRyZW4ubGVuZ3RoIC0gMVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5ub2RlPy5zZXRJc0V4cGFuZGVkKHRydWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGlsZEZvY3VzSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleCA9IDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmNoaWxkRm9jdXNJbmRleCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2lzU2VsZWN0YWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAhIXRoaXMubm9kZSAmJlxuICAgICAgICAodGhpcy5ub2RlLmlzTGVhZiB8fFxuICAgICAgICAgICF0aGlzLm5vZGUuaGFzQ2hpbGRyZW4gfHxcbiAgICAgICAgICAhdGhpcy4jc2t5QW5ndWxhclRyZWVXcmFwcGVyLnNlbGVjdExlYWZOb2Rlc09ubHkpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKG5vZGUgJiYgaW5kZXggIT09IHVuZGVmaW5lZCkge1xuICA8ZGl2XG4gICAgW2NsYXNzXT1cIm5vZGUuZ2V0Q2xhc3MoKVwiXG4gICAgW2NsYXNzLnRyZWUtbm9kZV09XCJ0cnVlXCJcbiAgICBbY2xhc3MudHJlZS1ub2RlLWFjdGl2ZV09XCJub2RlLmlzQWN0aXZlXCJcbiAgICBbY2xhc3MudHJlZS1ub2RlLWNvbGxhcHNlZF09XCJub2RlLmlzQ29sbGFwc2VkICYmIG5vZGUuaGFzQ2hpbGRyZW5cIlxuICAgIFtjbGFzcy50cmVlLW5vZGUtZXhwYW5kZWRdPVwibm9kZS5pc0V4cGFuZGVkICYmIG5vZGUuaGFzQ2hpbGRyZW5cIlxuICAgIFtjbGFzcy50cmVlLW5vZGUtZm9jdXNlZF09XCJub2RlLmlzRm9jdXNlZFwiXG4gICAgW2NsYXNzLnRyZWUtbm9kZS1sZWFmXT1cIm5vZGUuaXNMZWFmXCJcbiAgPlxuICAgIEBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIDx0cmVlLW5vZGUtZHJvcC1zbG90IFtkcm9wSW5kZXhdPVwibm9kZS5pbmRleFwiIFtub2RlXT1cIm5vZGUucGFyZW50XCIgLz5cbiAgICB9XG5cbiAgICA8IS0tICNyZWdpb24gPHRyZWUtbm9kZS13cmFwcGVyPiBjdXN0b20gdGVtcGxhdGUgLS0tPlxuICAgIDxkaXZcbiAgICAgICNub2RlQ29udGVudFdyYXBwZXJcbiAgICAgIGNsYXNzPVwibm9kZS13cmFwcGVyXCJcbiAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICBbYWxsb3dEcmFnb3ZlclN0eWxpbmddPVwibm9kZS5hbGxvd0RyYWdvdmVyU3R5bGluZygpXCJcbiAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJub2RlLmlzQWN0aXZlXCJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwibm9kZS5jaGlsZHJlbj8ubGVuZ3RoID8gbm9kZS5pc0V4cGFuZGVkIDogbnVsbFwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImFyaWFTZWxlY3RlZCgpXCJcbiAgICAgIFthdHRyLmRhdGEtbm9kZS1pZF09XCJub2RlLmlkXCJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4XCJcbiAgICAgIFtjbGFzcy5za3ktYW5ndWxhci10cmVlLW5vZGUtYWN0aXZlXT1cInNob3dBY3RpdmVDbGFzcygpXCJcbiAgICAgIFtjbGFzcy5za3ktYW5ndWxhci10cmVlLW5vZGUtc2VsZWN0ZWRdPVwic2hvd1NlbGVjdGVkQ2xhc3MoKVwiXG4gICAgICBbc3R5bGUucGFkZGluZy1sZWZ0XT1cIm5vZGUuZ2V0Tm9kZVBhZGRpbmcoKVwiXG4gICAgICBbdHJlZUFsbG93RHJvcF09XCJub2RlLmFsbG93RHJvcFwiXG4gICAgICBbdHJlZURyYWddPVwibm9kZVwiXG4gICAgICBbdHJlZURyYWdFbmFibGVkXT1cIm5vZGUuYWxsb3dEcmFnKClcIlxuICAgICAgKGNvbnRleHRtZW51KT1cIm5vZGUubW91c2VBY3Rpb24oJ2NvbnRleHRNZW51JywgJGV2ZW50KVwiXG4gICAgICAoZGJsY2xpY2spPVwibm9kZS5tb3VzZUFjdGlvbignZGJsQ2xpY2snLCAkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigpXCJcbiAgICAgIChtb3VzZXVwKT1cIm9uTW91c2VVcCgpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICh0cmVlRHJvcCk9XCJub2RlLm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgICh0cmVlRHJvcERyYWdFbnRlcik9XCJub2RlLm1vdXNlQWN0aW9uKCdkcmFnRW50ZXInLCAkZXZlbnQpXCJcbiAgICAgICh0cmVlRHJvcERyYWdMZWF2ZSk9XCJub2RlLm1vdXNlQWN0aW9uKCdkcmFnTGVhdmUnLCAkZXZlbnQpXCJcbiAgICAgICh0cmVlRHJvcERyYWdPdmVyKT1cIm5vZGUubW91c2VBY3Rpb24oJ2RyYWdPdmVyJywgJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPCEtLSAjcmVnaW9uIDx0cmVlLW5vZGUtZXhwYW5kZXI+IGN1c3RvbSB0ZW1wbGF0ZSAtLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LXRvZ2dsZS1jaGlsZHJlbi13cmFwcGVyXCI+XG4gICAgICAgIEBpZiAobm9kZS5oYXNDaGlsZHJlbikge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWxpbmsgc2t5LXRvZ2dsZS1jaGlsZHJlblwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJub2RlTmFtZVwiXG4gICAgICAgICAgICBbY2xhc3MudG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXItZXhwYW5kZWRdPVwibm9kZS5pc0V4cGFuZGVkXCJcbiAgICAgICAgICAgIFtjbGFzcy50b2dnbGUtY2hpbGRyZW4td3JhcHBlci1jb2xsYXBzZWRdPVwibm9kZS5pc0NvbGxhcHNlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwibm9kZS5tb3VzZUFjdGlvbignZXhwYW5kZXJDbGljaycsICRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICBbaWNvbl09XCJub2RlLmlzRXhwYW5kZWQgPyAnY2hldnJvbi1kb3duJyA6ICdjaGV2cm9uLXJpZ2h0J1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoc2hvd1RvZ2dsZVBsYWNlaG9sZGVyKCkpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvZ2dsZS1jaGlsZHJlbi1wbGFjZWhvbGRlclwiPiA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSAjZW5kcmVnaW9uIDx0cmVlLW5vZGUtZXhwYW5kZXI+IC0tLT5cblxuICAgICAgPCEtLSBOb3RlOiB3ZSd2ZSBtYWRlIGNoYW5nZXMgdG8gdGhlIGNsaWNrIGV2ZW50LCB0YWJpbmRleCwgYW5kIGNsYXNzZXMgd2hlbiBjb21wYXJlZCB0byB0aGUgb3JpZ2luYWwgdGVtcGxhdGUuIC0tPlxuICAgICAgPCEtLSBodHRwczovL2dpdGh1Yi5jb20vNTAwdGVjaC9hbmd1bGFyLXRyZWUtY29tcG9uZW50L2Jsb2IvbWFzdGVyL2xpYi9jb21wb25lbnRzL3RyZWUtbm9kZS13cmFwcGVyLmNvbXBvbmVudC50cyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJub2RlLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICBAaWYgKHNob3dDaGVja2JveCgpKSB7XG4gICAgICAgICAgPHNreS1jaGVja2JveFxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZFwiXG4gICAgICAgICAgICBbaWRdPVwibm9kZS5kYXRhLmlkXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJub2RlTmFtZVwiXG4gICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJpc1BhcnRpYWxseVNlbGVjdGVkXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwibm9kZS5tb3VzZUFjdGlvbignY2hlY2tib3hDbGljaycsICRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cblxuICAgICAgICA8c2t5LWFuZ3VsYXItdHJlZS1jb250ZXh0LW1lbnU+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWRyb3Bkb3duXCIgLz5cbiAgICAgICAgPC9za3ktYW5ndWxhci10cmVlLWNvbnRleHQtbWVudT5cblxuICAgICAgICA8dHJlZS1ub2RlLWNvbnRlbnRcbiAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZXM/LnRyZWVOb2RlVGVtcGxhdGVcIlxuICAgICAgICAgIChjbGljayk9XCJub2RlLm1vdXNlQWN0aW9uKCdjbGljaycsICRldmVudClcIlxuICAgICAgICAvPjxzcGFuIGNsYXNzPVwic2t5LWNvbnRyb2wtaGVscC1jb250YWluZXJcIj5cbiAgICAgICAgICBAaWYgKGhlbHBLZXkgfHwgaGVscFBvcG92ZXJDb250ZW50KSB7XG4gICAgICAgICAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAgICAgICAgIFtoZWxwS2V5XT1cImhlbHBLZXlcIlxuICAgICAgICAgICAgICBbbGFiZWxUZXh0XT1cIm5vZGVOYW1lXCJcbiAgICAgICAgICAgICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwiaGVscFBvcG92ZXJUaXRsZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNreS1jb250cm9sLWhlbHBcIiAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZXM/LnRyZWVOb2RlV3JhcHBlclRlbXBsYXRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICRpbXBsaWNpdDogbm9kZSxcbiAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICB0ZW1wbGF0ZXM6IHRlbXBsYXRlc1xuICAgICAgfVwiXG4gICAgLz5cbiAgICA8IS0tICNlbmRyZWdpb24gPHRyZWUtbm9kZS13cmFwcGVyPiAtLT5cblxuICAgIDx0cmVlLW5vZGUtY2hpbGRyZW4gcm9sZT1cImdyb3VwXCIgW25vZGVdPVwibm9kZVwiIFt0ZW1wbGF0ZXNdPVwidGVtcGxhdGVzXCIgLz5cblxuICAgIDx0cmVlLW5vZGUtZHJvcC1zbG90IFtkcm9wSW5kZXhdPVwibm9kZS5pbmRleCArIDFcIiBbbm9kZV09XCJub2RlLnBhcmVudFwiIC8+XG4gIDwvZGl2PlxufVxuIl19
@@ -1,9 +1,8 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@skyux/icon";
5
- import * as i3 from "@skyux/layout";
6
- import * as i4 from "@skyux/i18n";
3
+ import * as i1 from "@skyux/icon";
4
+ import * as i2 from "@skyux/layout";
5
+ import * as i3 from "@skyux/i18n";
7
6
  /**
8
7
  * @internal
9
8
  */
@@ -26,12 +25,12 @@ export class SkyTreeViewToolbarComponent {
26
25
  onSelectAllClick() {
27
26
  this.selectAllClick.emit();
28
27
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyTreeViewToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: SkyTreeViewToolbarComponent, 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 <sky-toolbar-item *ngIf=\"showSelectButtons\">\n <button\n class=\"sky-btn sky-btn-link sky-angular-tree-select-all-btn\"\n type=\"button\"\n (click)=\"onSelectAllClick()\"\n >\n {{ 'skyux_angular_tree_select_all' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item *ngIf=\"showSelectButtons\">\n <button\n class=\"sky-btn sky-btn-link sky-angular-tree-clear-all-btn\"\n type=\"button\"\n (click)=\"onClearAllClick()\"\n >\n {{ 'skyux_angular_tree_clear_all' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-expand-all-btn\"\n title=\"{{ 'skyux_angular_tree_expand_all' | skyLibResources }}\"\n type=\"button\"\n (click)=\"onExpandAllClick()\"\n >\n <sky-icon icon=\"angle-double-down\" />\n </button>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-collapse-all-btn\"\n title=\"{{ 'skyux_angular_tree_collapse_all' | skyLibResources }}\"\n type=\"button\"\n (click)=\"onCollapseAllClick()\"\n >\n <sky-icon icon=\"angle-double-up\" />\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "component", type: i3.λ37, selector: "sky-toolbar", inputs: ["listDescriptor"] }, { kind: "component", type: i3.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i3.λ40, selector: "sky-toolbar-view-actions" }, { kind: "pipe", type: i4.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyTreeViewToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: SkyTreeViewToolbarComponent, 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 icon=\"angle-double-down\" />\n </button>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-collapse-all-btn\"\n type=\"button\"\n title=\"{{ 'skyux_angular_tree_collapse_all' | skyLibResources }}\"\n (click)=\"onCollapseAllClick()\"\n >\n <sky-icon icon=\"angle-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: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { 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 }); }
31
30
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyTreeViewToolbarComponent, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyTreeViewToolbarComponent, decorators: [{
33
32
  type: Component,
34
- args: [{ selector: 'sky-angular-tree-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-angular-tree-toolbar\" role=\"toolbar\">\n <sky-toolbar>\n <sky-toolbar-item *ngIf=\"showSelectButtons\">\n <button\n class=\"sky-btn sky-btn-link sky-angular-tree-select-all-btn\"\n type=\"button\"\n (click)=\"onSelectAllClick()\"\n >\n {{ 'skyux_angular_tree_select_all' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item *ngIf=\"showSelectButtons\">\n <button\n class=\"sky-btn sky-btn-link sky-angular-tree-clear-all-btn\"\n type=\"button\"\n (click)=\"onClearAllClick()\"\n >\n {{ 'skyux_angular_tree_clear_all' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-expand-all-btn\"\n title=\"{{ 'skyux_angular_tree_expand_all' | skyLibResources }}\"\n type=\"button\"\n (click)=\"onExpandAllClick()\"\n >\n <sky-icon icon=\"angle-double-down\" />\n </button>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-collapse-all-btn\"\n title=\"{{ 'skyux_angular_tree_collapse_all' | skyLibResources }}\"\n type=\"button\"\n (click)=\"onCollapseAllClick()\"\n >\n <sky-icon icon=\"angle-double-up\" />\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar>\n</div>\n" }]
33
+ args: [{ selector: 'sky-angular-tree-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, 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 icon=\"angle-double-down\" />\n </button>\n <button\n class=\"sky-btn sky-btn-default sky-margin-inline-default sky-angular-tree-collapse-all-btn\"\n type=\"button\"\n title=\"{{ 'skyux_angular_tree_collapse_all' | skyLibResources }}\"\n (click)=\"onCollapseAllClick()\"\n >\n <sky-icon icon=\"angle-double-up\" />\n </button>\n </sky-toolbar-view-actions>\n </sky-toolbar>\n</div>\n" }]
35
34
  }], propDecorators: { showSelectButtons: [{
36
35
  type: Input
37
36
  }], clearAllClick: [{
@@ -43,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
43
42
  }], selectAllClick: [{
44
43
  type: Output
45
44
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFFdkI7O0dBRUc7QUFNSCxNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBVVMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR3pDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHNUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRzFDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQWlCbEQ7SUFmUSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQTlCVSwyQkFBMkI7a0dBQTNCLDJCQUEyQiwyUUNoQnhDLGc4Q0F3Q0E7OzJGRHhCYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUVuQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUl4QyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsTUFBTTtnQkFJQSxnQkFBZ0I7c0JBRHRCLE1BQU07Z0JBSUEsY0FBYztzQkFEcEIsTUFBTTtnQkFJQSxjQUFjO3NCQURwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFuZ3VsYXItdHJlZS10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuZ3VsYXItdHJlZS10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreVRyZWVWaWV3VG9vbGJhckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93U2VsZWN0QnV0dG9uczogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNsZWFyQWxsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjb2xsYXBzZUFsbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZXhwYW5kQWxsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RBbGxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwdWJsaWMgb25DbGVhckFsbENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJBbGxDbGljay5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25Db2xsYXBzZUFsbENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGFwc2VBbGxDbGljay5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25FeHBhbmRBbGxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZEFsbENsaWNrLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdEFsbENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0QWxsQ2xpY2suZW1pdCgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LWFuZ3VsYXItdHJlZS10b29sYmFyXCIgcm9sZT1cInRvb2xiYXJcIj5cbiAgPHNreS10b29sYmFyPlxuICAgIDxza3ktdG9vbGJhci1pdGVtICpuZ0lmPVwic2hvd1NlbGVjdEJ1dHRvbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluayBza3ktYW5ndWxhci10cmVlLXNlbGVjdC1hbGwtYnRuXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJvblNlbGVjdEFsbENsaWNrKClcIlxuICAgICAgPlxuICAgICAgICB7eyAnc2t5dXhfYW5ndWxhcl90cmVlX3NlbGVjdF9hbGwnIHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgPHNreS10b29sYmFyLWl0ZW0gKm5nSWY9XCJzaG93U2VsZWN0QnV0dG9uc1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1hbmd1bGFyLXRyZWUtY2xlYXItYWxsLWJ0blwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwib25DbGVhckFsbENsaWNrKClcIlxuICAgICAgPlxuICAgICAgICB7eyAnc2t5dXhfYW5ndWxhcl90cmVlX2NsZWFyX2FsbCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICA8c2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1tYXJnaW4taW5saW5lLWRlZmF1bHQgc2t5LWFuZ3VsYXItdHJlZS1leHBhbmQtYWxsLWJ0blwiXG4gICAgICAgIHRpdGxlPVwie3sgJ3NreXV4X2FuZ3VsYXJfdHJlZV9leHBhbmRfYWxsJyB8IHNreUxpYlJlc291cmNlcyB9fVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwib25FeHBhbmRBbGxDbGljaygpXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pY29uIGljb249XCJhbmdsZS1kb3VibGUtZG93blwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0IHNreS1hbmd1bGFyLXRyZWUtY29sbGFwc2UtYWxsLWJ0blwiXG4gICAgICAgIHRpdGxlPVwie3sgJ3NreXV4X2FuZ3VsYXJfdHJlZV9jb2xsYXBzZV9hbGwnIHwgc2t5TGliUmVzb3VyY2VzIH19XCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJvbkNvbGxhcHNlQWxsQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktaWNvbiBpY29uPVwiYW5nbGUtZG91YmxlLXVwXCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvc2t5LXRvb2xiYXItdmlldy1hY3Rpb25zPlxuICA8L3NreS10b29sYmFyPlxuPC9kaXY+XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7OztBQUV2Qjs7R0FFRztBQU1ILE1BQU0sT0FBTywyQkFBMkI7SUFMeEM7UUFVUyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHekMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUc1QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHMUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBaUJsRDtJQWZRLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBOUJVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDJRQ2hCeEMsazlDQTBDQTs7MkZEMUJhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEIsbUJBRW5CLHVCQUF1QixDQUFDLE1BQU07OEJBSXhDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxhQUFhO3NCQURuQixNQUFNO2dCQUlBLGdCQUFnQjtzQkFEdEIsTUFBTTtnQkFJQSxjQUFjO3NCQURwQixNQUFNO2dCQUlBLGNBQWM7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYW5ndWxhci10cmVlLXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYW5ndWxhci10cmVlLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VHJlZVZpZXdUb29sYmFyQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcHVibGljIHNob3dTZWxlY3RCdXR0b25zOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2xlYXJBbGxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNvbGxhcHNlQWxsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBleHBhbmRBbGxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdEFsbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBvbkNsZWFyQWxsQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckFsbENsaWNrLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNvbGxhcHNlQWxsQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5jb2xsYXBzZUFsbENsaWNrLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkV4cGFuZEFsbENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kQWxsQ2xpY2suZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0QWxsQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RBbGxDbGljay5lbWl0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktYW5ndWxhci10cmVlLXRvb2xiYXJcIiByb2xlPVwidG9vbGJhclwiPlxuICA8c2t5LXRvb2xiYXI+XG4gICAgQGlmIChzaG93U2VsZWN0QnV0dG9ucykge1xuICAgICAgPHNreS10b29sYmFyLWl0ZW0+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1saW5rIHNreS1hbmd1bGFyLXRyZWUtc2VsZWN0LWFsbC1idG5cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdEFsbENsaWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ3NreXV4X2FuZ3VsYXJfdHJlZV9zZWxlY3RfYWxsJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvc2t5LXRvb2xiYXItaXRlbT5cbiAgICAgIDxza3ktdG9vbGJhci1pdGVtPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGluayBza3ktYW5ndWxhci10cmVlLWNsZWFyLWFsbC1idG5cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyQWxsQ2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnc2t5dXhfYW5ndWxhcl90cmVlX2NsZWFyX2FsbCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3NreS10b29sYmFyLWl0ZW0+XG4gICAgfVxuICAgIDxza3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHQgc2t5LW1hcmdpbi1pbmxpbmUtZGVmYXVsdCBza3ktYW5ndWxhci10cmVlLWV4cGFuZC1hbGwtYnRuXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHRpdGxlPVwie3sgJ3NreXV4X2FuZ3VsYXJfdHJlZV9leHBhbmRfYWxsJyB8IHNreUxpYlJlc291cmNlcyB9fVwiXG4gICAgICAgIChjbGljayk9XCJvbkV4cGFuZEFsbENsaWNrKClcIlxuICAgICAgPlxuICAgICAgICA8c2t5LWljb24gaWNvbj1cImFuZ2xlLWRvdWJsZS1kb3duXCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1tYXJnaW4taW5saW5lLWRlZmF1bHQgc2t5LWFuZ3VsYXItdHJlZS1jb2xsYXBzZS1hbGwtYnRuXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHRpdGxlPVwie3sgJ3NreXV4X2FuZ3VsYXJfdHJlZV9jb2xsYXBzZV9hbGwnIHwgc2t5TGliUmVzb3VyY2VzIH19XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ29sbGFwc2VBbGxDbGljaygpXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1pY29uIGljb249XCJhbmdsZS1kb3VibGUtdXBcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9za3ktdG9vbGJhci12aWV3LWFjdGlvbnM+XG4gIDwvc2t5LXRvb2xiYXI+XG48L2Rpdj5cbiJdfQ==
@@ -1,8 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, ContentChild, Input, } from '@angular/core';
2
2
  import { KEYS, TREE_ACTIONS, TreeComponent, } from '@blackbaud/angular-tree-component';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "./angular-tree-toolbar.component";
4
+ import * as i1 from "./angular-tree-toolbar.component";
6
5
  /**
7
6
  * Wraps the Angular `tree-root` component as part of the `SkyAngularTreeModule` that provides
8
7
  * SKY UX components and styles to complement the `angular-tree-component` library and apply SKY UX
@@ -169,12 +168,12 @@ export class SkyAngularTreeWrapperComponent {
169
168
  TREE_ACTIONS.TOGGLE_SELECTED(node.treeModel, node, event);
170
169
  }
171
170
  }
172
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
173
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: SkyAngularTreeWrapperComponent, 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 <sky-angular-tree-toolbar\n *ngIf=\"showToolbar\"\n [showSelectButtons]=\"showSelectButtons()\"\n (clearAllClick)=\"onClearAllClick()\"\n (collapseAllClick)=\"onCollapseAllClick()\"\n (expandAllClick)=\"onExpandAllClick()\"\n (selectAllClick)=\"onSelectAllClick()\"\n >\n </sky-angular-tree-toolbar>\n <div\n class=\"sky-angular-tree-root\"\n role=\"tree\"\n [attr.aria-multiselectable]=\"multiselectable()\"\n >\n <ng-content select=\"tree-root\" />\n </div>\n</div>\n", styles: [".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;padding:4px 5px;border-left:4px solid transparent}.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:30px;overflow:hidden}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children{color:#cdcfd2;cursor:pointer;min-height:19px;min-width:20px;margin:0 10px 0 0;padding:0;line-height:1}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children:hover{color:#979ba2;transition:color .15s}.sky-angular-tree-wrapper ::ng-deep .toggle-children-placeholder{display:inline-block;height:19px;width:20px;margin:0 10px 0 0}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected{background:#f1eef6}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-active{background-color:#eeeeef;color:#212327;border-left:4px solid #00b4f1}.sky-angular-tree-wrapper ::ng-deep sky-checkbox{display:inline-flex}.sky-angular-tree-wrapper ::ng-deep .sky-switch-control{margin:0 8px 0 0}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-context-menu{margin:0 10px 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:#eeeeef;border:1px solid #e2e3e4}.sky-angular-tree-wrapper.sky-angular-tree-read-only ::ng-deep .node-content-wrapper{cursor:initial}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SkyTreeViewToolbarComponent, selector: "sky-angular-tree-toolbar", inputs: ["showSelectButtons"], outputs: ["clearAllClick", "collapseAllClick", "expandAllClick", "selectAllClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
171
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
172
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: SkyAngularTreeWrapperComponent, 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 ::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;padding:4px 5px;border-left:4px solid transparent}.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:30px;overflow:hidden}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children{color:#cdcfd2;cursor:pointer;min-height:19px;min-width:20px;margin:0 10px 0 0;padding:0;line-height:1}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children:hover{color:#979ba2;transition:color .15s}.sky-angular-tree-wrapper ::ng-deep .toggle-children-placeholder{display:inline-block;height:19px;width:20px;margin:0 10px 0 0}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected{background:#f1eef6}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-active{background-color:#eeeeef;color:#212327;border-left:4px solid #00b4f1}.sky-angular-tree-wrapper ::ng-deep sky-checkbox{display:inline-flex}.sky-angular-tree-wrapper ::ng-deep .sky-switch-control{margin:0 8px 0 0}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-context-menu{margin:0 10px 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:#eeeeef;border:1px solid #e2e3e4}.sky-angular-tree-wrapper.sky-angular-tree-read-only ::ng-deep .node-content-wrapper{cursor:initial}\n"], dependencies: [{ kind: "component", type: i1.SkyTreeViewToolbarComponent, selector: "sky-angular-tree-toolbar", inputs: ["showSelectButtons"], outputs: ["clearAllClick", "collapseAllClick", "expandAllClick", "selectAllClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
174
173
  }
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeWrapperComponent, decorators: [{
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeWrapperComponent, decorators: [{
176
175
  type: Component,
177
- args: [{ selector: 'sky-angular-tree-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"sky-angular-tree-wrapper\"\n [class.sky-angular-tree-read-only]=\"readOnly\"\n>\n <sky-angular-tree-toolbar\n *ngIf=\"showToolbar\"\n [showSelectButtons]=\"showSelectButtons()\"\n (clearAllClick)=\"onClearAllClick()\"\n (collapseAllClick)=\"onCollapseAllClick()\"\n (expandAllClick)=\"onExpandAllClick()\"\n (selectAllClick)=\"onSelectAllClick()\"\n >\n </sky-angular-tree-toolbar>\n <div\n class=\"sky-angular-tree-root\"\n role=\"tree\"\n [attr.aria-multiselectable]=\"multiselectable()\"\n >\n <ng-content select=\"tree-root\" />\n </div>\n</div>\n", styles: [".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;padding:4px 5px;border-left:4px solid transparent}.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:30px;overflow:hidden}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children{color:#cdcfd2;cursor:pointer;min-height:19px;min-width:20px;margin:0 10px 0 0;padding:0;line-height:1}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children:hover{color:#979ba2;transition:color .15s}.sky-angular-tree-wrapper ::ng-deep .toggle-children-placeholder{display:inline-block;height:19px;width:20px;margin:0 10px 0 0}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected{background:#f1eef6}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-active{background-color:#eeeeef;color:#212327;border-left:4px solid #00b4f1}.sky-angular-tree-wrapper ::ng-deep sky-checkbox{display:inline-flex}.sky-angular-tree-wrapper ::ng-deep .sky-switch-control{margin:0 8px 0 0}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-context-menu{margin:0 10px 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:#eeeeef;border:1px solid #e2e3e4}.sky-angular-tree-wrapper.sky-angular-tree-read-only ::ng-deep .node-content-wrapper{cursor:initial}\n"] }]
176
+ args: [{ selector: 'sky-angular-tree-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, 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 ::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;padding:4px 5px;border-left:4px solid transparent}.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:30px;overflow:hidden}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children{color:#cdcfd2;cursor:pointer;min-height:19px;min-width:20px;margin:0 10px 0 0;padding:0;line-height:1}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children:hover{color:#979ba2;transition:color .15s}.sky-angular-tree-wrapper ::ng-deep .toggle-children-placeholder{display:inline-block;height:19px;width:20px;margin:0 10px 0 0}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected{background:#f1eef6}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-active{background-color:#eeeeef;color:#212327;border-left:4px solid #00b4f1}.sky-angular-tree-wrapper ::ng-deep sky-checkbox{display:inline-flex}.sky-angular-tree-wrapper ::ng-deep .sky-switch-control{margin:0 8px 0 0}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-context-menu{margin:0 10px 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:#eeeeef;border:1px solid #e2e3e4}.sky-angular-tree-wrapper.sky-angular-tree-read-only ::ng-deep .node-content-wrapper{cursor:initial}\n"] }]
178
177
  }], propDecorators: { readOnly: [{
179
178
  type: Input
180
179
  }], selectLeafNodesOnly: [{
@@ -187,4 +186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
187
186
  type: ContentChild,
188
187
  args: [TreeComponent]
189
188
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLElBQUksRUFDSixZQUFZLEVBQ1osYUFBYSxHQUdkLE1BQU0sbUNBQW1DLENBQUM7Ozs7QUFHM0M7Ozs7O0dBS0c7QUFPSCxNQUFNLE9BQU8sOEJBQThCO0lBTjNDO1FBT0U7Ozs7V0FJRztRQUVJLGFBQVEsR0FBd0IsS0FBSyxDQUFDO1FBRTdDOzs7OztXQUtHO1FBRUksd0JBQW1CLEdBQXdCLEtBQUssQ0FBQztRQUV4RDs7Ozs7V0FLRztRQUVJLGlCQUFZLEdBQXdCLEtBQUssQ0FBQztRQUVqRDs7Ozs7V0FLRztRQUVJLGdCQUFXLEdBQXdCLEtBQUssQ0FBQztRQUV6QyxzQkFBaUIsR0FBcUIsRUFBRSxDQUFDO0tBcUtqRDtJQWhLUSxlQUFlO1FBQ3BCLElBQ0UsSUFBSSxDQUFDLFlBQVk7WUFDakIsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFDakQsQ0FBQztZQUNELE9BQU8sQ0FBQyxJQUFJLENBQ1YscUdBQXFHO2dCQUNuRyxrRkFBa0YsQ0FDckYs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Z0JBVUMsV0FBVztzQkFEakIsS0FBSztnQkFNQyxhQUFhO3NCQURuQixZQUFZO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEtFWVMsXG4gIFRSRUVfQUNUSU9OUyxcbiAgVHJlZUNvbXBvbmVudCxcbiAgVHJlZU1vZGVsLFxuICBUcmVlTm9kZSxcbn0gZnJvbSAnQGJsYWNrYmF1ZC9hbmd1bGFyLXRyZWUtY29tcG9uZW50JztcbmltcG9ydCB7IElEVHlwZURpY3Rpb25hcnkgfSBmcm9tICdAYmxhY2tiYXVkL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvbGliL2RlZnMvYXBpJztcblxuLyoqXG4gKiBXcmFwcyB0aGUgQW5ndWxhciBgdHJlZS1yb290YCBjb21wb25lbnQgYXMgcGFydCBvZiB0aGUgYFNreUFuZ3VsYXJUcmVlTW9kdWxlYCB0aGF0IHByb3ZpZGVzXG4gKiBTS1kgVVggY29tcG9uZW50cyBhbmQgc3R5bGVzIHRvIGNvbXBsZW1lbnQgdGhlIGBhbmd1bGFyLXRyZWUtY29tcG9uZW50YCBsaWJyYXJ5IGFuZCBhcHBseSBTS1kgVVhcbiAqIHRoZW1lcyBhbmQgZnVuY3Rpb25hbGl0eSB0byBoaWVyYXJjaGljYWwgbGlzdCB2aWV3cy4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBgdHJlZS1yb290YCBjb21wb25lbnQsIHNlZSB0aGVcbiAqIFtBbmd1bGFyIHRyZWUgY29tcG9uZW50IGRvY3VtZW50YXRpb25dKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcykuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hbmd1bGFyLXRyZWUtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBbmd1bGFyVHJlZVdyYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVuZGVyIHRoZSB0cmVlIHZpZXcgaW4gcmVhZC1vbmx5IG1vZGUuXG4gICAqIFRoaXMgbW9kZSBkaXNhYmxlcyBzZWxlY3RlZCBhbmQgYWN0aXZlIHN0YXRlcyBvbiB0aGUgdHJlZSB2aWV3IG5vZGVzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHJlYWRPbmx5OiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXNlIGxlYWYtb25seSBzZWxlY3Rpb24gbW9kZS4gRm9yIHRyZWUgdmlld3Mgd2l0aFxuICAgKiBbY2hlY2tib3hlc10oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL3RyaS1zdGF0ZS1jaGVja2JveGVzKSxcbiAgICogdGhpcyBtb2RlIGxpbWl0cyB1c2VyIHNlbGVjdGlvbnMgdG8gbGVhZiBub2RlcyBhbmQgcHJldmVudHMgdXNlcnMgZnJvbSBzZWxlY3RpbmcgcGFyZW50IG5vZGVzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdExlYWZOb2Rlc09ubHk6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1c2Ugc2luZ2xlLXNlbGVjdCBtb2RlLiBGb3IgdHJlZSB2aWV3cyB3aXRoXG4gICAqIFtjaGVja2JveGVzXShodHRwczovL2FuZ3VsYXIyLXRyZWUucmVhZG1lLmlvL2RvY3MvdHJpLXN0YXRlLWNoZWNrYm94ZXMpLFxuICAgKiB0aGlzIG1vZGUgbGltaXRzIHVzZXIgc2VsZWN0aW9ucyB0byBvbmUgbm9kZSBhdCBhIHRpbWUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0U2luZ2xlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzcGxheSBhIHRvb2xiYXIgd2l0aCBidXR0b25zIHRvIGV4cGFuZCBhbmQgY29sbGFwc2UgYWxsIG5vZGVzIGFuZCBidXR0b25zIHRvIHNlbGVjdCBhbmQgY2xlYXIgYWxsIGNoZWNrYm94ZXMuXG4gICAqIFRoZSBzZWxlY3QgYW5kIGNsZWFyIGJ1dHRvbnMgb25seSBhcHBlYXIgd2hlbiB5b3UgZW5hYmxlIGNoZWNrYm94ZXMuXG4gICAqIFRvIGVuYWJsZSBbY2hlY2tib3hlc10oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL3RyaS1zdGF0ZS1jaGVja2JveGVzKS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93VG9vbGJhcjogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzZWxlY3RhYmxlTm9kZUlkczogSURUeXBlRGljdGlvbmFyeSA9IHt9O1xuXG4gIEBDb250ZW50Q2hpbGQoVHJlZUNvbXBvbmVudClcbiAgcHVibGljIHRyZWVDb21wb25lbnQ6IFRyZWVDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnNlbGVjdFNpbmdsZSAmJlxuICAgICAgdGhpcy50cmVlQ29tcG9uZW50Py50cmVlTW9kZWwub3B0aW9ucy51c2VUcmlTdGF0ZVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnU2luZ2xlIHNlbGVjdCBtb2RlIHNob3VsZCBub3QgYmUgZW5hYmxlZCB3aGlsZSB0aGUgdHJlZSBpcyBpbiB0cmlTdGF0ZSBtb2RlIChjYXNjYWRpbmcgc2VsZWN0aW9uKS4gJyArXG4gICAgICAgICAgJ1BsZWFzZSBzZXQgXCJ1c2VUcmlTdGF0ZVwiIHRvIFwiZmFsc2VcIiBpZiB5b3Ugd2FudCB0byByZW1haW4gaW4gc2luZ2xlIHNlbGVjdCBtb2RlLicsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLiNvdmVycmlkZUFjdGlvbk1hcHBpbmcoKTtcbiAgfVxuXG4gIHB1YmxpYyBtdWx0aXNlbGVjdGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy50cmVlQ29tcG9uZW50ICYmXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsLm9wdGlvbnMudXNlQ2hlY2tib3ggJiZcbiAgICAgICF0aGlzLnNlbGVjdFNpbmdsZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25DbGVhckFsbENsaWNrKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCF0aGlzLnNlbGVjdFNpbmdsZSAmJiB0aGlzLnRyZWVDb21wb25lbnQpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwuZ2V0U3RhdGUoKTtcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudC5zdGF0ZSA9IHtcbiAgICAgICAgLi4uY3VycmVudFN0YXRlLFxuICAgICAgICBzZWxlY3RlZExlYWZOb2RlSWRzOiB7fSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ29sbGFwc2VBbGxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5jb2xsYXBzZUFsbCgpO1xuICB9XG5cbiAgcHVibGljIG9uRXhwYW5kQWxsQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy50cmVlQ29tcG9uZW50Py50cmVlTW9kZWwuZXhwYW5kQWxsKCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RBbGxDbGljaygpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghdGhpcy5zZWxlY3RTaW5nbGUgJiYgdGhpcy50cmVlQ29tcG9uZW50KSB7XG4gICAgICAvLyBHZXQgYSBsaXN0IG9mIGFsbCBub2RlIGlkcyB0aGF0IGFyZSBzZWxlY3RhYmxlLlxuICAgICAgdGhpcy5zZWxlY3RhYmxlTm9kZUlkcyA9IHt9O1xuICAgICAgY29uc3QgZ2V0U2VsZWN0YWJsZU5vZGVJZHMgPSAobm9kZTogVHJlZU5vZGUpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0YWJsZSA9XG4gICAgICAgICAgbm9kZS5pc1NlbGVjdGFibGUoKSAmJlxuICAgICAgICAgICEobm9kZS5oYXNDaGlsZHJlbiAmJiB0aGlzLnNlbGVjdExlYWZOb2Rlc09ubHkpO1xuICAgICAgICBpZiAoc2VsZWN0YWJsZSAmJiAhbm9kZS5kYXRhLnZpcnR1YWwpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGFibGVOb2RlSWRzW25vZGUuaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gZ2V0U2VsZWN0YWJsZU5vZGVJZHMoY2hpbGQpKTtcbiAgICAgIH07XG4gICAgICBnZXRTZWxlY3RhYmxlTm9kZUlkcyh0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsLnZpcnR1YWxSb290KTtcblxuICAgICAgLy8gVXBkYXRlIHRyZWUgc3RhdGUgd2l0aCBuZXcgbGlzdCBvZiBzZWxlY3RlZCBub2RlIGlkcy5cbiAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwuZ2V0U3RhdGUoKTtcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudC5zdGF0ZSA9IHtcbiAgICAgICAgLi4uY3VycmVudFN0YXRlLFxuICAgICAgICBzZWxlY3RlZExlYWZOb2RlSWRzOiB0aGlzLnNlbGVjdGFibGVOb2RlSWRzLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvd1NlbGVjdEJ1dHRvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy50cmVlQ29tcG9uZW50ICYmXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsLm9wdGlvbnMudXNlQ2hlY2tib3ggJiZcbiAgICAgICF0aGlzLnNlbGVjdFNpbmdsZVxuICAgICk7XG4gIH1cblxuICAjaXNTZWxlY3RhYmxlKG5vZGU6IFRyZWVOb2RlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5vZGUuaXNMZWFmIHx8ICFub2RlLmhhc0NoaWxkcmVuIHx8ICF0aGlzLnNlbGVjdExlYWZOb2Rlc09ubHk7XG4gIH1cblxuICAjbm9kZURlZmF1bHRBY3Rpb24odHJlZTogVHJlZU1vZGVsLCBub2RlOiBUcmVlTm9kZSwgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG5vZGUub3B0aW9ucy51c2VDaGVja2JveCAmJiB0aGlzLiNpc1NlbGVjdGFibGUobm9kZSkpIHtcbiAgICAgIHRoaXMuI3RvZ2dsZVNlbGVjdGVkKG5vZGUsIGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgVFJFRV9BQ1RJT05TLlRPR0dMRV9BQ1RJVkUodHJlZSwgbm9kZSwgZXZlbnQpO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gICNvbktleURvd25BY3Rpb24odHJlZTogVHJlZU1vZGVsLCBub2RlOiBUcmVlTm9kZSwgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldE5vZGVJZCA9IGV2ZW50LnRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbm9kZS1pZCcpO1xuXG4gICAgLy8gS2V5IHByZXNzIGRpZCBub3QgaGFwcGVuIG9uIHRoZSBub2RlLlxuICAgIGlmICh0YXJnZXROb2RlSWQgIT09IG5vZGUuaWQudG9TdHJpbmcoKSkge1xuICAgICAgLy8gYW5ndWxhci10cmVlLWNvbXBvbmVudCB3aWxsIHByZXZlbnREZWZhdWx0KCkgb24gYW55dGhpbmcgdXNpbmcgYSBrZXkgYWN0aW9uIGhhbmRsZXIsXG4gICAgICAvLyB0aHVzIHN0b3BwaW5nIFwiZW50ZXJcIiBhbmQgXCJzcGFjZVwiIGtleXMgdG8gdGhyb3cgXCJjbGlja1wiIGV2ZW50cyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cy5cbiAgICAgIC8vIFRoaXMgbG9naWMgZW5zdXJlcyBjb21wb25lbnRzIGxvb2tpbmcgZm9yIFwiY2xpY2tzXCIgb24gdGhvc2Uga2V5c3Ryb2tlcyBzdGlsbCB3b3JrIChkcm9wZG93biBjb21wb25lbnQpLlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tLzUwMHRlY2gvYW5ndWxhci10cmVlLWNvbXBvbmVudC9ibG9iL21hc3Rlci9saWIvbW9kZWxzL3RyZWUubW9kZWwudHMjTDM0MVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgIGV2ZW50LnRhcmdldC5jbGljaygpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy4jbm9kZURlZmF1bHRBY3Rpb24odHJlZSwgbm9kZSwgZXZlbnQpO1xuICB9XG5cbiAgI292ZXJyaWRlQWN0aW9uTWFwcGluZygpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0QWN0aW9uTWFwcGluZyA9XG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5vcHRpb25zLmFjdGlvbk1hcHBpbmc7XG5cbiAgICBpZiAoZGVmYXVsdEFjdGlvbk1hcHBpbmc/Lm1vdXNlKSB7XG4gICAgICAvLyBPdmVycmlkZSBkZWZhdWx0IGNsaWNrL2VudGVyL3NwYWNlIGFjdGlvbiB0byBjaGVjayBmb3IgdW5zdXBwb3J0ZWQgb3B0aW9ucyAobGVhZiBub2RlLCBzaW5nbGUtc2VsZWN0KS5cbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLm1vdXNlLmNsaWNrID0gKHRyZWUsIG5vZGUsIGV2ZW50KSA9PlxuICAgICAgICB0aGlzLiNub2RlRGVmYXVsdEFjdGlvbih0cmVlLCBub2RlLCBldmVudCk7XG4gICAgfVxuXG4gICAgaWYgKGRlZmF1bHRBY3Rpb25NYXBwaW5nPy5rZXlzKSB7XG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuU1BBQ0VdID0gKHRyZWUsIG5vZGUsIGV2ZW50KSA9PlxuICAgICAgICB0aGlzLiNvbktleURvd25BY3Rpb24odHJlZSwgbm9kZSwgZXZlbnQpO1xuICAgICAgZGVmYXVsdEFjdGlvbk1hcHBpbmcua2V5c1tLRVlTLkVOVEVSXSA9ICh0cmVlLCBub2RlLCBldmVudCkgPT5cbiAgICAgICAgdGhpcy4jb25LZXlEb3duQWN0aW9uKHRyZWUsIG5vZGUsIGV2ZW50KTtcblxuICAgICAgLy8gRGlzYWJsZSBsZWZ0L3JpZ2h0IGFycm93IGtleXMgdG8gc3VwcG9ydCBuYXZpZ2F0aW5nIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgd2l0aCBrZXlib2FyZC5cbiAgICAgIC8vIFNlZSBvbkFycm93TGVmdCgpIC8gb25BcnJvd1JpZ2h0KCkgbWV0aG9kcyBpbnNpZGUgdGhlIGFuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC50cy5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuUklHSFRdID0gKHRyZWUsIG5vZGUsICRldmVudCkgPT4gdW5kZWZpbmVkO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5MRUZUXSA9ICh0cmVlLCBub2RlLCAkZXZlbnQpID0+IHVuZGVmaW5lZDtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuRE9XTl0gPSAodHJlZSwgbm9kZSwgJGV2ZW50KSA9PiB1bmRlZmluZWQ7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgZGVmYXVsdEFjdGlvbk1hcHBpbmcua2V5c1tLRVlTLlVQXSA9ICh0cmVlLCBub2RlLCAkZXZlbnQpID0+IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAjdG9nZ2xlU2VsZWN0ZWQobm9kZTogVHJlZU5vZGUsIGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAvLyBJZiBzaW5nbGUtc2VsZWN0aW9uIGlzIGVuYWJsZWQsIG9ubHkgc2VsZWN0IHRoZSBub2RlIGNsaWNrZWQuXG4gICAgaWYgKHRoaXMuc2VsZWN0U2luZ2xlICYmICFub2RlLmlzU2VsZWN0ZWQpIHtcbiAgICAgIGNvbnN0IG9sZFN0YXRlID0gdGhpcy50cmVlQ29tcG9uZW50Py50cmVlTW9kZWwuZ2V0U3RhdGUoKTtcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICBleHBhbmRlZE5vZGVJZHM6IG9sZFN0YXRlPy5leHBhbmRlZE5vZGVJZHMsXG4gICAgICAgIHNlbGVjdGVkTGVhZk5vZGVJZHM6IE9iamVjdC5hc3NpZ24oe30sIG5vZGUuaWQsIHsgW25vZGUuaWRdOiB0cnVlIH0pLFxuICAgICAgICBhY3RpdmVOb2RlSWRzOiBvbGRTdGF0ZT8uYWN0aXZlTm9kZUlkcyxcbiAgICAgICAgaGlkZGVuTm9kZUlkczogb2xkU3RhdGU/LmhpZGRlbk5vZGVJZHMsXG4gICAgICAgIGZvY3VzZWROb2RlSWQ6IG5vZGUuaWQsXG4gICAgICB9O1xuICAgICAgLy8gUmVjb25zdHJ1Y3QgdGhlIHN0YXRlIGluIG9uZSBnbywgc28gd2UgZG9uJ3QgY3JlYXRlIG11bHRpcGxlIGV2ZW50cyBmb3IgdGhlIGNvbnN1bWVyLlxuICAgICAgdGhpcy50cmVlQ29tcG9uZW50Py50cmVlTW9kZWwuc2V0U3RhdGUobmV3U3RhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBUUkVFX0FDVElPTlMuVE9HR0xFX1NFTEVDVEVEKG5vZGUudHJlZU1vZGVsLCBub2RlLCBldmVudCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LWFuZ3VsYXItdHJlZS13cmFwcGVyXCJcbiAgW2NsYXNzLnNreS1hbmd1bGFyLXRyZWUtcmVhZC1vbmx5XT1cInJlYWRPbmx5XCJcbj5cbiAgPHNreS1hbmd1bGFyLXRyZWUtdG9vbGJhclxuICAgICpuZ0lmPVwic2hvd1Rvb2xiYXJcIlxuICAgIFtzaG93U2VsZWN0QnV0dG9uc109XCJzaG93U2VsZWN0QnV0dG9ucygpXCJcbiAgICAoY2xlYXJBbGxDbGljayk9XCJvbkNsZWFyQWxsQ2xpY2soKVwiXG4gICAgKGNvbGxhcHNlQWxsQ2xpY2spPVwib25Db2xsYXBzZUFsbENsaWNrKClcIlxuICAgIChleHBhbmRBbGxDbGljayk9XCJvbkV4cGFuZEFsbENsaWNrKClcIlxuICAgIChzZWxlY3RBbGxDbGljayk9XCJvblNlbGVjdEFsbENsaWNrKClcIlxuICA+XG4gIDwvc2t5LWFuZ3VsYXItdHJlZS10b29sYmFyPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktYW5ndWxhci10cmVlLXJvb3RcIlxuICAgIHJvbGU9XCJ0cmVlXCJcbiAgICBbYXR0ci5hcmlhLW11bHRpc2VsZWN0YWJsZV09XCJtdWx0aXNlbGVjdGFibGUoKVwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ0cmVlLXJvb3RcIiAvPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLElBQUksRUFDSixZQUFZLEVBQ1osYUFBYSxHQUdkLE1BQU0sbUNBQW1DLENBQUM7OztBQUczQzs7Ozs7R0FLRztBQU9ILE1BQU0sT0FBTyw4QkFBOEI7SUFOM0M7UUFPRTs7OztXQUlHO1FBRUksYUFBUSxHQUF3QixLQUFLLENBQUM7UUFFN0M7Ozs7O1dBS0c7UUFFSSx3QkFBbUIsR0FBd0IsS0FBSyxDQUFDO1FBRXhEOzs7OztXQUtHO1FBRUksaUJBQVksR0FBd0IsS0FBSyxDQUFDO1FBRWpEOzs7OztXQUtHO1FBRUksZ0JBQVcsR0FBd0IsS0FBSyxDQUFDO1FBRXpDLHNCQUFpQixHQUFxQixFQUFFLENBQUM7S0FxS2pEO0lBaEtRLGVBQWU7UUFDcEIsSUFDRSxJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUNqRCxDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FDVixxR0FBcUc7Z0JBQ25HLGtGQUFrRixDQUNyRixD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QkFVQyxXQUFXO3NCQURqQixLQUFLO2dCQU1DLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgS0VZUyxcbiAgVFJFRV9BQ1RJT05TLFxuICBUcmVlQ29tcG9uZW50LFxuICBUcmVlTW9kZWwsXG4gIFRyZWVOb2RlLFxufSBmcm9tICdAYmxhY2tiYXVkL2FuZ3VsYXItdHJlZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgSURUeXBlRGljdGlvbmFyeSB9IGZyb20gJ0BibGFja2JhdWQvYW5ndWxhci10cmVlLWNvbXBvbmVudC9saWIvZGVmcy9hcGknO1xuXG4vKipcbiAqIFdyYXBzIHRoZSBBbmd1bGFyIGB0cmVlLXJvb3RgIGNvbXBvbmVudCBhcyBwYXJ0IG9mIHRoZSBgU2t5QW5ndWxhclRyZWVNb2R1bGVgIHRoYXQgcHJvdmlkZXNcbiAqIFNLWSBVWCBjb21wb25lbnRzIGFuZCBzdHlsZXMgdG8gY29tcGxlbWVudCB0aGUgYGFuZ3VsYXItdHJlZS1jb21wb25lbnRgIGxpYnJhcnkgYW5kIGFwcGx5IFNLWSBVWFxuICogdGhlbWVzIGFuZCBmdW5jdGlvbmFsaXR5IHRvIGhpZXJhcmNoaWNhbCBsaXN0IHZpZXdzLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGB0cmVlLXJvb3RgIGNvbXBvbmVudCwgc2VlIHRoZVxuICogW0FuZ3VsYXIgdHJlZSBjb21wb25lbnQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFuZ3VsYXItdHJlZS13cmFwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYW5ndWxhci10cmVlLXdyYXBwZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFuZ3VsYXJUcmVlV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAvKipcbiAgICogV2hldGhlciB0byByZW5kZXIgdGhlIHRyZWUgdmlldyBpbiByZWFkLW9ubHkgbW9kZS5cbiAgICogVGhpcyBtb2RlIGRpc2FibGVzIHNlbGVjdGVkIGFuZCBhY3RpdmUgc3RhdGVzIG9uIHRoZSB0cmVlIHZpZXcgbm9kZXMuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVhZE9ubHk6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgbGVhZi1vbmx5IHNlbGVjdGlvbiBtb2RlLiBGb3IgdHJlZSB2aWV3cyB3aXRoXG4gICAqIFtjaGVja2JveGVzXShodHRwczovL2FuZ3VsYXIyLXRyZWUucmVhZG1lLmlvL2RvY3MvdHJpLXN0YXRlLWNoZWNrYm94ZXMpLFxuICAgKiB0aGlzIG1vZGUgbGltaXRzIHVzZXIgc2VsZWN0aW9ucyB0byBsZWFmIG5vZGVzIGFuZCBwcmV2ZW50cyB1c2VycyBmcm9tIHNlbGVjdGluZyBwYXJlbnQgbm9kZXMuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0TGVhZk5vZGVzT25seTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBzaW5nbGUtc2VsZWN0IG1vZGUuIEZvciB0cmVlIHZpZXdzIHdpdGhcbiAgICogW2NoZWNrYm94ZXNdKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcy90cmktc3RhdGUtY2hlY2tib3hlcyksXG4gICAqIHRoaXMgbW9kZSBsaW1pdHMgdXNlciBzZWxlY3Rpb25zIHRvIG9uZSBub2RlIGF0IGEgdGltZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RTaW5nbGU6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNwbGF5IGEgdG9vbGJhciB3aXRoIGJ1dHRvbnMgdG8gZXhwYW5kIGFuZCBjb2xsYXBzZSBhbGwgbm9kZXMgYW5kIGJ1dHRvbnMgdG8gc2VsZWN0IGFuZCBjbGVhciBhbGwgY2hlY2tib3hlcy5cbiAgICogVGhlIHNlbGVjdCBhbmQgY2xlYXIgYnV0dG9ucyBvbmx5IGFwcGVhciB3aGVuIHlvdSBlbmFibGUgY2hlY2tib3hlcy5cbiAgICogVG8gZW5hYmxlIFtjaGVja2JveGVzXShodHRwczovL2FuZ3VsYXIyLXRyZWUucmVhZG1lLmlvL2RvY3MvdHJpLXN0YXRlLWNoZWNrYm94ZXMpLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dUb29sYmFyOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgcHVibGljIHNlbGVjdGFibGVOb2RlSWRzOiBJRFR5cGVEaWN0aW9uYXJ5ID0ge307XG5cbiAgQENvbnRlbnRDaGlsZChUcmVlQ29tcG9uZW50KVxuICBwdWJsaWMgdHJlZUNvbXBvbmVudDogVHJlZUNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2VsZWN0U2luZ2xlICYmXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5vcHRpb25zLnVzZVRyaVN0YXRlXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdTaW5nbGUgc2VsZWN0IG1vZGUgc2hvdWxkIG5vdCBiZSBlbmFibGVkIHdoaWxlIHRoZSB0cmVlIGlzIGluIHRyaVN0YXRlIG1vZGUgKGNhc2NhZGluZyBzZWxlY3Rpb24pLiAnICtcbiAgICAgICAgICAnUGxlYXNlIHNldCBcInVzZVRyaVN0YXRlXCIgdG8gXCJmYWxzZVwiIGlmIHlvdSB3YW50IHRvIHJlbWFpbiBpbiBzaW5nbGUgc2VsZWN0IG1vZGUuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuI292ZXJyaWRlQWN0aW9uTWFwcGluZygpO1xuICB9XG5cbiAgcHVibGljIG11bHRpc2VsZWN0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLnRyZWVDb21wb25lbnQgJiZcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwub3B0aW9ucy51c2VDaGVja2JveCAmJlxuICAgICAgIXRoaXMuc2VsZWN0U2luZ2xlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsZWFyQWxsQ2xpY2soKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuc2VsZWN0U2luZ2xlICYmIHRoaXMudHJlZUNvbXBvbmVudCkge1xuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5nZXRTdGF0ZSgpO1xuICAgICAgdGhpcy50cmVlQ29tcG9uZW50LnN0YXRlID0ge1xuICAgICAgICAuLi5jdXJyZW50U3RhdGUsXG4gICAgICAgIHNlbGVjdGVkTGVhZk5vZGVJZHM6IHt9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Db2xsYXBzZUFsbENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMudHJlZUNvbXBvbmVudD8udHJlZU1vZGVsLmNvbGxhcHNlQWxsKCk7XG4gIH1cblxuICBwdWJsaWMgb25FeHBhbmRBbGxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5leHBhbmRBbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdEFsbENsaWNrKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCF0aGlzLnNlbGVjdFNpbmdsZSAmJiB0aGlzLnRyZWVDb21wb25lbnQpIHtcbiAgICAgIC8vIEdldCBhIGxpc3Qgb2YgYWxsIG5vZGUgaWRzIHRoYXQgYXJlIHNlbGVjdGFibGUuXG4gICAgICB0aGlzLnNlbGVjdGFibGVOb2RlSWRzID0ge307XG4gICAgICBjb25zdCBnZXRTZWxlY3RhYmxlTm9kZUlkcyA9IChub2RlOiBUcmVlTm9kZSkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RhYmxlID1cbiAgICAgICAgICBub2RlLmlzU2VsZWN0YWJsZSgpICYmXG4gICAgICAgICAgIShub2RlLmhhc0NoaWxkcmVuICYmIHRoaXMuc2VsZWN0TGVhZk5vZGVzT25seSk7XG4gICAgICAgIGlmIChzZWxlY3RhYmxlICYmICFub2RlLmRhdGEudmlydHVhbCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZU5vZGVJZHNbbm9kZS5pZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiBnZXRTZWxlY3RhYmxlTm9kZUlkcyhjaGlsZCkpO1xuICAgICAgfTtcbiAgICAgIGdldFNlbGVjdGFibGVOb2RlSWRzKHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwudmlydHVhbFJvb3QpO1xuXG4gICAgICAvLyBVcGRhdGUgdHJlZSBzdGF0ZSB3aXRoIG5ldyBsaXN0IG9mIHNlbGVjdGVkIG5vZGUgaWRzLlxuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5nZXRTdGF0ZSgpO1xuICAgICAgdGhpcy50cmVlQ29tcG9uZW50LnN0YXRlID0ge1xuICAgICAgICAuLi5jdXJyZW50U3RhdGUsXG4gICAgICAgIHNlbGVjdGVkTGVhZk5vZGVJZHM6IHRoaXMuc2VsZWN0YWJsZU5vZGVJZHMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93U2VsZWN0QnV0dG9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISF0aGlzLnRyZWVDb21wb25lbnQgJiZcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwub3B0aW9ucy51c2VDaGVja2JveCAmJlxuICAgICAgIXRoaXMuc2VsZWN0U2luZ2xlXG4gICAgKTtcbiAgfVxuXG4gICNpc1NlbGVjdGFibGUobm9kZTogVHJlZU5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbm9kZS5pc0xlYWYgfHwgIW5vZGUuaGFzQ2hpbGRyZW4gfHwgIXRoaXMuc2VsZWN0TGVhZk5vZGVzT25seTtcbiAgfVxuXG4gICNub2RlRGVmYXVsdEFjdGlvbih0cmVlOiBUcmVlTW9kZWwsIG5vZGU6IFRyZWVOb2RlLCBldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5vcHRpb25zLnVzZUNoZWNrYm94ICYmIHRoaXMuI2lzU2VsZWN0YWJsZShub2RlKSkge1xuICAgICAgdGhpcy4jdG9nZ2xlU2VsZWN0ZWQobm9kZSwgZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBUUkVFX0FDVElPTlMuVE9HR0xFX0FDVElWRSh0cmVlLCBub2RlLCBldmVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgI29uS2V5RG93bkFjdGlvbih0cmVlOiBUcmVlTW9kZWwsIG5vZGU6IFRyZWVOb2RlLCBldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0Tm9kZUlkID0gZXZlbnQudGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS1ub2RlLWlkJyk7XG5cbiAgICAvLyBLZXkgcHJlc3MgZGlkIG5vdCBoYXBwZW4gb24gdGhlIG5vZGUuXG4gICAgaWYgKHRhcmdldE5vZGVJZCAhPT0gbm9kZS5pZC50b1N0cmluZygpKSB7XG4gICAgICAvLyBhbmd1bGFyLXRyZWUtY29tcG9uZW50IHdpbGwgcHJldmVudERlZmF1bHQoKSBvbiBhbnl0aGluZyB1c2luZyBhIGtleSBhY3Rpb24gaGFuZGxlcixcbiAgICAgIC8vIHRodXMgc3RvcHBpbmcgXCJlbnRlclwiIGFuZCBcInNwYWNlXCIga2V5cyB0byB0aHJvdyBcImNsaWNrXCIgZXZlbnRzIG9uIGludGVyYWN0aXZlIGVsZW1lbnRzLlxuICAgICAgLy8gVGhpcyBsb2dpYyBlbnN1cmVzIGNvbXBvbmVudHMgbG9va2luZyBmb3IgXCJjbGlja3NcIiBvbiB0aG9zZSBrZXlzdHJva2VzIHN0aWxsIHdvcmsgKGRyb3Bkb3duIGNvbXBvbmVudCkuXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vNTAwdGVjaC9hbmd1bGFyLXRyZWUtY29tcG9uZW50L2Jsb2IvbWFzdGVyL2xpYi9tb2RlbHMvdHJlZS5tb2RlbC50cyNMMzQxXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgZXZlbnQudGFyZ2V0LmNsaWNrKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiNub2RlRGVmYXVsdEFjdGlvbih0cmVlLCBub2RlLCBldmVudCk7XG4gIH1cblxuICAjb3ZlcnJpZGVBY3Rpb25NYXBwaW5nKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlZmF1bHRBY3Rpb25NYXBwaW5nID1cbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudD8udHJlZU1vZGVsLm9wdGlvbnMuYWN0aW9uTWFwcGluZztcblxuICAgIGlmIChkZWZhdWx0QWN0aW9uTWFwcGluZz8ubW91c2UpIHtcbiAgICAgIC8vIE92ZXJyaWRlIGRlZmF1bHQgY2xpY2svZW50ZXIvc3BhY2UgYWN0aW9uIHRvIGNoZWNrIGZvciB1bnN1cHBvcnRlZCBvcHRpb25zIChsZWFmIG5vZGUsIHNpbmdsZS1zZWxlY3QpLlxuICAgICAgZGVmYXVsdEFjdGlvbk1hcHBpbmcubW91c2UuY2xpY2sgPSAodHJlZSwgbm9kZSwgZXZlbnQpID0+XG4gICAgICAgIHRoaXMuI25vZGVEZWZhdWx0QWN0aW9uKHRyZWUsIG5vZGUsIGV2ZW50KTtcbiAgICB9XG5cbiAgICBpZiAoZGVmYXVsdEFjdGlvbk1hcHBpbmc/LmtleXMpIHtcbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5TUEFDRV0gPSAodHJlZSwgbm9kZSwgZXZlbnQpID0+XG4gICAgICAgIHRoaXMuI29uS2V5RG93bkFjdGlvbih0cmVlLCBub2RlLCBldmVudCk7XG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuRU5URVJdID0gKHRyZWUsIG5vZGUsIGV2ZW50KSA9PlxuICAgICAgICB0aGlzLiNvbktleURvd25BY3Rpb24odHJlZSwgbm9kZSwgZXZlbnQpO1xuXG4gICAgICAvLyBEaXNhYmxlIGxlZnQvcmlnaHQgYXJyb3cga2V5cyB0byBzdXBwb3J0IG5hdmlnYXRpbmcgdGhyb3VnaCBpbnRlcmFjdGl2ZSBlbGVtZW50cyB3aXRoIGtleWJvYXJkLlxuICAgICAgLy8gU2VlIG9uQXJyb3dMZWZ0KCkgLyBvbkFycm93UmlnaHQoKSBtZXRob2RzIGluc2lkZSB0aGUgYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50LnRzLlxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5SSUdIVF0gPSAodHJlZSwgbm9kZSwgJGV2ZW50KSA9PiB1bmRlZmluZWQ7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgZGVmYXVsdEFjdGlvbk1hcHBpbmcua2V5c1tLRVlTLkxFRlRdID0gKHRyZWUsIG5vZGUsICRldmVudCkgPT4gdW5kZWZpbmVkO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5ET1dOXSA9ICh0cmVlLCBub2RlLCAkZXZlbnQpID0+IHVuZGVmaW5lZDtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuVVBdID0gKHRyZWUsIG5vZGUsICRldmVudCkgPT4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gICN0b2dnbGVTZWxlY3RlZChub2RlOiBUcmVlTm9kZSwgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIC8vIElmIHNpbmdsZS1zZWxlY3Rpb24gaXMgZW5hYmxlZCwgb25seSBzZWxlY3QgdGhlIG5vZGUgY2xpY2tlZC5cbiAgICBpZiAodGhpcy5zZWxlY3RTaW5nbGUgJiYgIW5vZGUuaXNTZWxlY3RlZCkge1xuICAgICAgY29uc3Qgb2xkU3RhdGUgPSB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5nZXRTdGF0ZSgpO1xuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGV4cGFuZGVkTm9kZUlkczogb2xkU3RhdGU/LmV4cGFuZGVkTm9kZUlkcyxcbiAgICAgICAgc2VsZWN0ZWRMZWFmTm9kZUlkczogT2JqZWN0LmFzc2lnbih7fSwgbm9kZS5pZCwgeyBbbm9kZS5pZF06IHRydWUgfSksXG4gICAgICAgIGFjdGl2ZU5vZGVJZHM6IG9sZFN0YXRlPy5hY3RpdmVOb2RlSWRzLFxuICAgICAgICBoaWRkZW5Ob2RlSWRzOiBvbGRTdGF0ZT8uaGlkZGVuTm9kZUlkcyxcbiAgICAgICAgZm9jdXNlZE5vZGVJZDogbm9kZS5pZCxcbiAgICAgIH07XG4gICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgc3RhdGUgaW4gb25lIGdvLCBzbyB3ZSBkb24ndCBjcmVhdGUgbXVsdGlwbGUgZXZlbnRzIGZvciB0aGUgY29uc3VtZXIuXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5zZXRTdGF0ZShuZXdTdGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFRSRUVfQUNUSU9OUy5UT0dHTEVfU0VMRUNURUQobm9kZS50cmVlTW9kZWwsIG5vZGUsIGV2ZW50KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktYW5ndWxhci10cmVlLXdyYXBwZXJcIlxuICBbY2xhc3Muc2t5LWFuZ3VsYXItdHJlZS1yZWFkLW9ubHldPVwicmVhZE9ubHlcIlxuPlxuICBAaWYgKHNob3dUb29sYmFyKSB7XG4gICAgPHNreS1hbmd1bGFyLXRyZWUtdG9vbGJhclxuICAgICAgW3Nob3dTZWxlY3RCdXR0b25zXT1cInNob3dTZWxlY3RCdXR0b25zKClcIlxuICAgICAgKGNsZWFyQWxsQ2xpY2spPVwib25DbGVhckFsbENsaWNrKClcIlxuICAgICAgKGNvbGxhcHNlQWxsQ2xpY2spPVwib25Db2xsYXBzZUFsbENsaWNrKClcIlxuICAgICAgKGV4cGFuZEFsbENsaWNrKT1cIm9uRXhwYW5kQWxsQ2xpY2soKVwiXG4gICAgICAoc2VsZWN0QWxsQ2xpY2spPVwib25TZWxlY3RBbGxDbGljaygpXCJcbiAgICAvPlxuICB9XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1hbmd1bGFyLXRyZWUtcm9vdFwiXG4gICAgcm9sZT1cInRyZWVcIlxuICAgIFthdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXT1cIm11bHRpc2VsZWN0YWJsZSgpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInRyZWUtcm9vdFwiIC8+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -13,8 +13,8 @@ import { SkyTreeViewToolbarComponent } from './angular-tree-toolbar.component';
13
13
  import { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';
14
14
  import * as i0 from "@angular/core";
15
15
  export class SkyAngularTreeModule {
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeModule, declarations: [SkyAngularTreeContextMenuComponent,
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeModule, declarations: [SkyAngularTreeContextMenuComponent,
18
18
  SkyAngularTreeNodeComponent,
19
19
  SkyAngularTreeWrapperComponent,
20
20
  SkyTreeViewToolbarComponent], imports: [CommonModule,
@@ -24,7 +24,7 @@ export class SkyAngularTreeModule {
24
24
  SkyIconModule,
25
25
  SkyToolbarModule,
26
26
  TreeModule], exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent] }); }
27
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeModule, providers: [SkyCoreAdapterService], imports: [CommonModule,
27
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeModule, providers: [SkyCoreAdapterService], imports: [CommonModule,
28
28
  SkyAngularTreeComponentResourcesModule,
29
29
  SkyCheckboxModule,
30
30
  SkyHelpInlineModule,
@@ -32,7 +32,7 @@ export class SkyAngularTreeModule {
32
32
  SkyToolbarModule,
33
33
  TreeModule] }); }
34
34
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeModule, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeModule, decorators: [{
36
36
  type: NgModule,
37
37
  args: [{
38
38
  declarations: [
@@ -27,9 +27,9 @@ export class SkyAngularTreeComponentResourcesProvider {
27
27
  * Import into any component library module that needs to use resource strings.
28
28
  */
29
29
  export class SkyAngularTreeComponentResourcesModule {
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
31
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, exports: [SkyI18nModule] }); }
32
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, providers: [
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
31
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, exports: [SkyI18nModule] }); }
32
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, providers: [
33
33
  {
34
34
  provide: SKY_LIB_RESOURCES_PROVIDERS,
35
35
  useClass: SkyAngularTreeComponentResourcesProvider,
@@ -37,7 +37,7 @@ export class SkyAngularTreeComponentResourcesModule {
37
37
  },
38
38
  ], imports: [SkyI18nModule] }); }
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, decorators: [{
41
41
  type: NgModule,
42
42
  args: [{
43
43
  exports: [SkyI18nModule],