@eui/components 18.2.4-snapshot-1733710123090 → 18.2.4-snapshot-1733882948889
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/components/EuiMenuComponent.html +25 -1
- package/docs/components/EuiMenuItemComponent.html +19 -0
- package/docs/components/EuiSidebarMenuComponent.html +25 -1
- package/docs/dependencies.html +2 -2
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/eui-icon/eui-icon-svg.component.mjs +2 -2
- package/esm2022/eui-icon-button/eui-icon-button.component.mjs +2 -2
- package/esm2022/eui-icon-button-expander/eui-icon-button-expander.component.mjs +2 -2
- package/esm2022/eui-icon-state/eui-icon-state.component.mjs +2 -2
- package/esm2022/eui-input-checkbox/eui-input-checkbox.component.mjs +2 -2
- package/esm2022/eui-menu/eui-menu-item.component.mjs +6 -3
- package/esm2022/eui-menu/eui-menu.component.mjs +7 -3
- package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +7 -3
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +1 -1
- package/esm2022/layout/eui-toolbar/toolbar-search/toolbar-search.component.mjs +2 -2
- package/eui-menu/eui-menu-item.component.d.ts +3 -1
- package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
- package/eui-menu/eui-menu.component.d.ts +3 -1
- package/eui-menu/eui-menu.component.d.ts.map +1 -1
- package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts +3 -1
- package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-icon-button-expander.mjs +2 -2
- package/fesm2022/eui-components-eui-icon-button-expander.mjs.map +1 -1
- package/fesm2022/eui-components-eui-icon-button.mjs +2 -2
- package/fesm2022/eui-components-eui-icon-button.mjs.map +1 -1
- package/fesm2022/eui-components-eui-icon-state.mjs +2 -2
- package/fesm2022/eui-components-eui-icon-state.mjs.map +1 -1
- package/fesm2022/eui-components-eui-icon.mjs +2 -2
- package/fesm2022/eui-components-eui-icon.mjs.map +1 -1
- package/fesm2022/eui-components-eui-input-checkbox.mjs +2 -2
- package/fesm2022/eui-components-eui-input-checkbox.mjs.map +1 -1
- package/fesm2022/eui-components-eui-menu.mjs +11 -4
- package/fesm2022/eui-components-eui-menu.mjs.map +1 -1
- package/fesm2022/eui-components-eui-sidebar-menu.mjs +6 -2
- package/fesm2022/eui-components-eui-sidebar-menu.mjs.map +1 -1
- package/fesm2022/eui-components-layout.mjs +2 -2
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/layout/eui-toolbar/toolbar-search/toolbar-search.component.d.ts.map +1 -1
- package/package.json +3 -3
@@ -30,6 +30,7 @@ export class EuiMenuComponent {
|
|
30
30
|
this.hasFilter = false;
|
31
31
|
this.hasIcons = false;
|
32
32
|
this.hasTooltip = true;
|
33
|
+
this.hasTooltipOnExpanded = false;
|
33
34
|
/**
|
34
35
|
* Expand all items in the menu. Affects only items that have no expanded property set.
|
35
36
|
* e.g. items = [{label: test, expanded: true}, {label: test2, expanded: false}, {label: test3}] will expand only test3.
|
@@ -509,11 +510,11 @@ export class EuiMenuComponent {
|
|
509
510
|
return this.filterInput?.nativeElement?.value.length > 0;
|
510
511
|
}
|
511
512
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiMenuComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
512
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EuiMenuComponent, selector: "eui-menu", inputs: { items: "items", searchFilterLabel: "searchFilterLabel", externalLinkLabel: "externalLinkLabel", fragmentId: "fragmentId", filterValue: "filterValue", isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], isFlat: ["isFlat", "isFlat", booleanAttribute], hasScrollToItem: ["hasScrollToItem", "hasScrollToItem", booleanAttribute], hasBoldRootLevel: ["hasBoldRootLevel", "hasBoldRootLevel", booleanAttribute] }, outputs: { isClick: "isClick", itemClick: "itemClick", expandToggle: "expandToggle" }, host: { listeners: { "click": "stopPropagation($event)" }, properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true, read: ElementRef }, { propertyName: "menuItemsComponents", predicate: EuiMenuItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (hasFilter) {\n <div class=\"eui-menu-filter\" [class.eui-menu-filter--collapsed]=\"isCollapsed\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n #filterInput\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n @for (item of items; track item.id; let index = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"></ng-template>\n }\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\"\n [hasExpandIcon]=\"hasExpandIcon\">\n <!-- if the menu item has children, render the children -->\n @if (shouldRenderChild(item)) {\n <ul euiList class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n @for (child of item.children; track child.id; let childIndex = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n }\n </ul>\n }\n </eui-menu-item>\n</ng-template>\n", styles: [".eui-18 .eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-18 .eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-menu [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-18 .eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-18 .eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-18 .eui-menu--collapsed .eui-menu-item__link-content-block,.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-18 .eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-18 .eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-18 .eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-18 .eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-18 .eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-18 .eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-18 .eui-menu-filter--collapsed{padding:0;height:0}.eui-18 .eui-menu-filter--collapsed .eui-icon-svg{display:none}.eui-18 .eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-18 .eui-menu-item:focus-visible>.eui-menu-item__content{outline:1px solid var(--eui-c-primary);outline-offset:-2px}.eui-18 .eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-18 .eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);min-height:var(--eui-s-4xl);padding:0 var(--eui-s-xs) 0 var(--eui-s-m);margin-bottom:calc(-1 * var(--eui-s-2xs));border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-18 .eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-18 .eui-menu-item__link-start-block:empty{display:none}.eui-18 .eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-18 .eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{cursor:default;color:var(--eui-c-primary-darker);font:var(--eui-f-bold);opacity:var(--eui-o-75);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-18 .eui-menu-item__link:hover:not(.eui-menu-item--disabled):not(.eui-menu-item__link-category){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-18 .eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-18 .eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-18 .eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-18 .eui-menu-item--expanded{display:flex;flex-direction:column}.eui-18 .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-18 .eui-menu-item .eui-menu-sub .eui-menu-item__link{min-height:var(--eui-s-3xl);padding-left:var(--eui-s-xl);border-top:0}.eui-18 .eui-menu-item--bold>.eui-menu-item__content>.eui-menu-item__link{font:var(--eui-f-m-bold)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.EuiIconInputComponent, selector: "eui-icon-input", inputs: ["euiIconPositionStart", "euiIconPositionEnd"] }, { kind: "component", type: i4.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i5.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["isInvalid"] }, { kind: "component", type: i6.EuiMenuItemComponent, selector: "eui-menu-item", inputs: ["item", "parent", "hasExpandIcon", "hasIcon", "hasTooltip", "isCollapsed", "hasCollapsedInitials", "hasBoldRootLevel"], outputs: ["expandToggle", "itemClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
513
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EuiMenuComponent, selector: "eui-menu", inputs: { items: "items", searchFilterLabel: "searchFilterLabel", externalLinkLabel: "externalLinkLabel", fragmentId: "fragmentId", filterValue: "filterValue", isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], hasTooltipOnExpanded: ["hasTooltipOnExpanded", "hasTooltipOnExpanded", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], isFlat: ["isFlat", "isFlat", booleanAttribute], hasScrollToItem: ["hasScrollToItem", "hasScrollToItem", booleanAttribute], hasBoldRootLevel: ["hasBoldRootLevel", "hasBoldRootLevel", booleanAttribute] }, outputs: { isClick: "isClick", itemClick: "itemClick", expandToggle: "expandToggle" }, host: { listeners: { "click": "stopPropagation($event)" }, properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true, read: ElementRef }, { propertyName: "menuItemsComponents", predicate: EuiMenuItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (hasFilter) {\n <div class=\"eui-menu-filter\" [class.eui-menu-filter--collapsed]=\"isCollapsed\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n #filterInput\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n @for (item of items; track item.id; let index = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"></ng-template>\n }\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [hasTooltipOnExpanded]=\"hasTooltipOnExpanded\"\n [isCollapsed]=\"isCollapsed\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\"\n [hasExpandIcon]=\"hasExpandIcon\">\n <!-- if the menu item has children, render the children -->\n @if (shouldRenderChild(item)) {\n <ul euiList class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n @for (child of item.children; track child.id; let childIndex = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n }\n </ul>\n }\n </eui-menu-item>\n</ng-template>\n", styles: [".eui-18 .eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-18 .eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-menu [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-18 .eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-18 .eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-18 .eui-menu--collapsed .eui-menu-item__link-content-block,.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-18 .eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-18 .eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-18 .eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-18 .eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-18 .eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-18 .eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-18 .eui-menu-filter--collapsed{padding:0;height:0}.eui-18 .eui-menu-filter--collapsed .eui-icon-svg{display:none}.eui-18 .eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-18 .eui-menu-item:focus-visible>.eui-menu-item__content{outline:1px solid var(--eui-c-primary);outline-offset:-2px}.eui-18 .eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-18 .eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);min-height:var(--eui-s-4xl);padding:0 var(--eui-s-xs) 0 var(--eui-s-m);margin-bottom:calc(-1 * var(--eui-s-2xs));border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-18 .eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-18 .eui-menu-item__link-start-block:empty{display:none}.eui-18 .eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-18 .eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{cursor:default;color:var(--eui-c-primary-darker);font:var(--eui-f-bold);opacity:var(--eui-o-75);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-18 .eui-menu-item__link:hover:not(.eui-menu-item--disabled):not(.eui-menu-item__link-category){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-18 .eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-18 .eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-18 .eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-18 .eui-menu-item--expanded{display:flex;flex-direction:column}.eui-18 .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-18 .eui-menu-item .eui-menu-sub .eui-menu-item__link{min-height:var(--eui-s-3xl);padding-left:var(--eui-s-xl);border-top:0}.eui-18 .eui-menu-item--bold>.eui-menu-item__content>.eui-menu-item__link{font:var(--eui-f-m-bold)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.EuiIconInputComponent, selector: "eui-icon-input", inputs: ["euiIconPositionStart", "euiIconPositionEnd"] }, { kind: "component", type: i4.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i5.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["isInvalid"] }, { kind: "component", type: i6.EuiMenuItemComponent, selector: "eui-menu-item", inputs: ["item", "parent", "hasExpandIcon", "hasIcon", "hasTooltip", "hasTooltipOnExpanded", "isCollapsed", "hasCollapsedInitials", "hasBoldRootLevel"], outputs: ["expandToggle", "itemClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
513
514
|
}
|
514
515
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiMenuComponent, decorators: [{
|
515
516
|
type: Component,
|
516
|
-
args: [{ selector: 'eui-menu', encapsulation: ViewEncapsulation.None, template: "@if (hasFilter) {\n <div class=\"eui-menu-filter\" [class.eui-menu-filter--collapsed]=\"isCollapsed\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n #filterInput\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n @for (item of items; track item.id; let index = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"></ng-template>\n }\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\"\n [hasExpandIcon]=\"hasExpandIcon\">\n <!-- if the menu item has children, render the children -->\n @if (shouldRenderChild(item)) {\n <ul euiList class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n @for (child of item.children; track child.id; let childIndex = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n }\n </ul>\n }\n </eui-menu-item>\n</ng-template>\n", styles: [".eui-18 .eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-18 .eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-menu [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-18 .eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-18 .eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-18 .eui-menu--collapsed .eui-menu-item__link-content-block,.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-18 .eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-18 .eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-18 .eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-18 .eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-18 .eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-18 .eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-18 .eui-menu-filter--collapsed{padding:0;height:0}.eui-18 .eui-menu-filter--collapsed .eui-icon-svg{display:none}.eui-18 .eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-18 .eui-menu-item:focus-visible>.eui-menu-item__content{outline:1px solid var(--eui-c-primary);outline-offset:-2px}.eui-18 .eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-18 .eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);min-height:var(--eui-s-4xl);padding:0 var(--eui-s-xs) 0 var(--eui-s-m);margin-bottom:calc(-1 * var(--eui-s-2xs));border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-18 .eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-18 .eui-menu-item__link-start-block:empty{display:none}.eui-18 .eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-18 .eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{cursor:default;color:var(--eui-c-primary-darker);font:var(--eui-f-bold);opacity:var(--eui-o-75);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-18 .eui-menu-item__link:hover:not(.eui-menu-item--disabled):not(.eui-menu-item__link-category){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-18 .eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-18 .eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-18 .eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-18 .eui-menu-item--expanded{display:flex;flex-direction:column}.eui-18 .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-18 .eui-menu-item .eui-menu-sub .eui-menu-item__link{min-height:var(--eui-s-3xl);padding-left:var(--eui-s-xl);border-top:0}.eui-18 .eui-menu-item--bold>.eui-menu-item__content>.eui-menu-item__link{font:var(--eui-f-m-bold)}\n"] }]
|
517
|
+
args: [{ selector: 'eui-menu', encapsulation: ViewEncapsulation.None, template: "@if (hasFilter) {\n <div class=\"eui-menu-filter\" [class.eui-menu-filter--collapsed]=\"isCollapsed\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n #filterInput\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n @for (item of items; track item.id; let index = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"></ng-template>\n }\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [hasTooltipOnExpanded]=\"hasTooltipOnExpanded\"\n [isCollapsed]=\"isCollapsed\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\"\n [hasExpandIcon]=\"hasExpandIcon\">\n <!-- if the menu item has children, render the children -->\n @if (shouldRenderChild(item)) {\n <ul euiList class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n @for (child of item.children; track child.id; let childIndex = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n }\n </ul>\n }\n </eui-menu-item>\n</ng-template>\n", styles: [".eui-18 .eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-18 .eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-menu [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-18 .eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-18 .eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-18 .eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-18 .eui-menu--collapsed .eui-menu-item__link-content-block,.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-18 .eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-18 .eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-18 .eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-18 .eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-18 .eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-18 .eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-18 .eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-18 .eui-menu-filter--collapsed{padding:0;height:0}.eui-18 .eui-menu-filter--collapsed .eui-icon-svg{display:none}.eui-18 .eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-18 .eui-menu-item:focus-visible>.eui-menu-item__content{outline:1px solid var(--eui-c-primary);outline-offset:-2px}.eui-18 .eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-18 .eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);min-height:var(--eui-s-4xl);padding:0 var(--eui-s-xs) 0 var(--eui-s-m);margin-bottom:calc(-1 * var(--eui-s-2xs));border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-18 .eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-18 .eui-menu-item__link-start-block:empty{display:none}.eui-18 .eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-18 .eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{cursor:default;color:var(--eui-c-primary-darker);font:var(--eui-f-bold);opacity:var(--eui-o-75);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-18 .eui-menu-item__link:hover:not(.eui-menu-item--disabled):not(.eui-menu-item__link-category){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-18 .eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-18 .eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-18 .eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-18 .eui-menu-item--expanded{display:flex;flex-direction:column}.eui-18 .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-18 .eui-menu-item .eui-menu-sub .eui-menu-item__link{min-height:var(--eui-s-3xl);padding-left:var(--eui-s-xl);border-top:0}.eui-18 .eui-menu-item--bold>.eui-menu-item__content>.eui-menu-item__link{font:var(--eui-f-m-bold)}\n"] }]
|
517
518
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { menuItemsComponents: [{
|
518
519
|
type: ViewChildren,
|
519
520
|
args: [EuiMenuItemComponent]
|
@@ -548,6 +549,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
548
549
|
}], hasTooltip: [{
|
549
550
|
type: Input,
|
550
551
|
args: [{ transform: booleanAttribute }]
|
552
|
+
}], hasTooltipOnExpanded: [{
|
553
|
+
type: Input,
|
554
|
+
args: [{ transform: booleanAttribute }]
|
551
555
|
}], expandAllItems: [{
|
552
556
|
type: Input,
|
553
557
|
args: [{ transform: booleanAttribute }]
|
@@ -575,4 +579,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
575
579
|
type: HostListener,
|
576
580
|
args: ['click', ['$event']]
|
577
581
|
}] } });
|
578
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLW1lbnUvZXVpLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLW1lbnUvZXVpLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLEtBQUssRUFFTCxNQUFNLEVBQ04sWUFBWSxFQUdaLFlBQVksRUFDWixnQkFBZ0IsRUFHaEIsWUFBWSxFQUdaLFNBQVMsRUFDVCxVQUFVLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEwQixhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUFTakUsTUFBTSxPQUFPLGdCQUFnQjtJQUl6QixJQUNXLFVBQVU7UUFDakIsT0FBTztZQUNILFVBQVU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3QyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFBLENBQUMsQ0FBQyxFQUFFO1NBQ3JDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUE4QkQsWUFDWSxNQUFjLEVBQ2QsS0FBcUIsRUFDckIs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LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIE9uRGVzdHJveSxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGNvbnN1bWVFdmVudCB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZXVpLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXVpTWVudUl0ZW0gfSBmcm9tICcuL21vZGVscy9ldWktbWVudS1pdGVtLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktbWVudScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZHJlbihFdWlNZW51SXRlbUNvbXBvbmVudCkgcHJvdGVjdGVkIG1lbnVJdGVtc0NvbXBvbmVudHM6IFF1ZXJ5TGlzdDxFdWlNZW51SXRlbUNvbXBvbmVudD47XG4gICAgQFZpZXdDaGlsZCgnZmlsdGVySW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgcHJvdGVjdGVkIGZpbHRlcklucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnZXVpLW1lbnUnLFxuICAgICAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA/ICdldWktbWVudS0tY29sbGFwc2VkJyA6ICcnLFxuICAgICAgICAgICAgIXRoaXMuaGFzSWNvbnMgPyAnZXVpLW1lbnUtLW5vLWljb25zJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc0ZsYXQgPyAnZXVpLW1lbnUtLWZsYXQnOiAnJyxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGl0ZW1zOiBFdWlNZW51SXRlbVtdO1xuICAgIEBJbnB1dCgpIHNlYXJjaEZpbHRlckxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZXh0ZXJuYWxMaW5rTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBmcmFnbWVudElkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZmlsdGVyVmFsdWUgPSAnJztcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNDb2xsYXBzZWRJbml0aWFscyA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNGaWx0ZXIgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzSWNvbnMgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzVG9vbHRpcCA9IHRydWU7XG4gICAgLyoqXG4gICAgICogRXhwYW5kIGFsbCBpdGVtcyBpbiB0aGUgbWVudS4gQWZmZWN0cyBvbmx5IGl0ZW1zIHRoYXQgaGF2ZSBubyBleHBhbmRlZCBwcm9wZXJ0eSBzZXQuXG4gICAgICogZS5nLiBpdGVtcyA9IFt7bGFiZWw6IHRlc3QsIGV4cGFuZGVkOiB0cnVlfSwge2xhYmVsOiB0ZXN0MiwgZXhwYW5kZWQ6IGZhbHNlfSwge2xhYmVsOiB0ZXN0M31dIHdpbGwgZXhwYW5kIG9ubHkgdGVzdDMuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGV4cGFuZEFsbEl0ZW1zID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzRmxhdCA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNTY3JvbGxUb0l0ZW0gPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQm9sZFJvb3RMZXZlbCA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIGlzQ2xpY2s6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgaXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8RXVpTWVudUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdWlNZW51SXRlbT4oKTtcbiAgICBAT3V0cHV0KCkgZXhwYW5kVG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjxFdWlNZW51SXRlbT4oKTtcblxuICAgIHByb3RlY3RlZCBoYXNFeHBhbmRJY29uID0gdHJ1ZTtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgZm9jdXNLZXlNYW5hZ2VyOiBGb2N1c0tleU1hbmFnZXI8RXVpTWVudUl0ZW1Db21wb25lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHt9XG5cbiAgICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBwYXNzIHRoZSBldmVudCBhcyBNb3VzZUV2ZW50LiBXaWxsIGJlIHJlbW92ZWQgb24gbmV4dCBlVUkgcmVsZWFzZS5cbiAgICAgKiBAcGFyYW0gZXZlbnRcbiAgICAgKi9cbiAgICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBmaW5kcyBmaXJzdCBjaGlsZCB3aGVuIEFycm93RG93blxuICAgICAgICBjb25zdCBmaXJzdENoaWxkID0gdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5jaGlsZHJlbj8gdGhpcy5maW5kRmlyc3RGaWx0ZXJlZEl0ZW0odGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5jaGlsZHJlbikgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlSXRlbSA9IHRoaXMuZmluZEZvY3VzYWJsZUl0ZW0oZmlyc3RDaGlsZCk7XG4gICAgICAgIC8vIGZpbmRzIHRoZSBwYXJlbnQgZWxlbWVudFxuICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLnBhcmVudDtcbiAgICAgICAgY29uc3QgcGFyZW50Rm9jdXNhYmxlSXRlbSA9IHRoaXMuZmluZEZvY3VzYWJsZUl0ZW0ocGFyZW50KTtcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0VudGVyJzoge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uaXNMaW5rSXRlbSB8fCB0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtLmlzVXJsSXRlbSkgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uZGlzYWJsZWRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbS5vbkNsaWNrKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0Jzoge1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaXNGaWx0ZXJFbmFibGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0uYWN0aW9uSWNvbil7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tBY3Rpb25JY29uRm9jdXNTdGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0uZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lm9uRXhwYW5kVG9nZ2xlKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmlzRmlsdGVyRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZih0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmFjdGlvbkljb24pe1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQWN0aW9uSWNvbkZvY3VzU3RhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0uZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0ub25FeHBhbmRUb2dnbGUoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6IHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNob3VsZFJlbmRlckNoaWxkKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vZm9jdXNlcyBmaXJzdCBjaGlsZFxuICAgICAgICAgICAgICAgICAgICBmaXJzdEZvY3VzYWJsZUl0ZW0/LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oZmlyc3RGb2N1c2FibGVJdGVtKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBmaW5kcyBsYXN0IGZpbHRlcmVkIGNoaWxkIHdoZW4gQXJyb3dEb3duIGFuZCBuYXZpZ2F0aW5nIHdpdGhpbiBzdWJtZW51XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQ2hpbGRyZW4gPSB0aGlzLmZpbmRGaWx0ZXJlZEl0ZW1zKHBhcmVudC5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RDaGlsZEluZGV4ID0gKGZpbHRlcmVkQ2hpbGRyZW4/Lmxlbmd0aCkgLSAxO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0Q2hpbGQgPSBmaWx0ZXJlZENoaWxkcmVuW2xhc3RDaGlsZEluZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZUl0ZW0gPSB0aGlzLmZpbmRGb2N1c2FibGVJdGVtKGxhc3RDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBhY3RpdmUgaXRlbSBpcyB0aGUgbGFzdCBjaGlsZCwgcHV0cyB0aGUgZm9jdXMgb24gdGhlIG5leHQgcGFyZW50XG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0gPT09IGxhc3RGb2N1c2FibGVJdGVtKXtcbiAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbShwYXJlbnRGb2N1c2FibGVJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuc2V0TmV4dEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0odGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4ICsxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHNraXBzIHJlbWFpbmluZyBjaGlsZHJlbiBpbiB0aGUgcXVlcnkgbGlzdCB3aGVuIHRoZXJlIGlzIGV4cGFuZGVkIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuc2tpcFByZWRpY2F0ZShtZW51SXRlbSA9PiBtZW51SXRlbS5wYXJlbnQgIT0gdW5kZWZpbmVkIHx8IG1lbnVJdGVtLml0ZW0udmlzaWJsZSA9PT0gZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOiB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGZpbmRzIGZpcnN0IGZpbHRlcmVkIGNoaWxkIHdoZW4gQXJyb3dVcFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maW5kRmlsdGVyZWRJdGVtcyhwYXJlbnQuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENoaWxkVXAgPSBmaWx0ZXJlZENoaWxkcmVuWycwJ11cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVJdGVtVXAgPSB0aGlzLmZpbmRGb2N1c2FibGVJdGVtKGZpcnN0Q2hpbGRVcCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gbmF2aWdhdGluZyB1cCBvbiBhIHN1Ym1lbnUgZm9jdXNlcyB0aGUgcGFyZW50IGlmIHRoZSBhY3RpdmUgaXRlbSBpcyB0aGUgZmlyc3QgY2hpbGRcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbSA9PT0gZmlyc3RGb2N1c2FibGVJdGVtVXApe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShwYXJlbnRGb2N1c2FibGVJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleCAtMSk7XG4gICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiBuYXZpZ2F0aW5nIHVwIGZyb20gYSBwYXJlbnQgZWxlbWVudCB0byBhbiBleHBhbmRlZCBzdWJtZW51LCBmaW5kcyB0aGUgbGFzdCBjaGlsZCBhbmQgZm9jdXNlcyBpdFxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnNob3VsZFJlbmRlckNoaWxkKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0pKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQ2hpbGRyZW4gPSB0aGlzLmZpbmRGaWx0ZXJlZEl0ZW1zKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0uY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdENoaWxkSW5kZXhVcCA9IChmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCkgLSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZUl0ZW1VcCA9dGhpcy5maW5kRm9jdXNhYmxlSXRlbShmaWx0ZXJlZENoaWxkcmVuW2xhc3RDaGlsZEluZGV4VXBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0obGFzdEZvY3VzYWJsZUl0ZW1VcCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmNvbmZpZ3VyZUl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgICAgICAgICAgLy8gZ2V0IGN1cnJlbnQgdXJsXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgICAgICAgICAgLy8gZmluZCBhbiBpdGVtIHRoYXQgbWF0Y2hlcyB0aGUgY3VycmVudCB1cmwgb3IgdGhlIG1vc3QgcmVsZXZhbnQgb25lXG4gICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5maW5kTW9zdFJlbGV2YW50SXRlbShjdXJyZW50VXJsLCB0aGlzLml0ZW1zKTtcbiAgICAgICAgICAgIC8vIGV4cGFuZCB0byB0aGF0IGl0ZW1cbiAgICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5leHBhbmRUb0dpdmVuSXRlbShpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEV4cGFuZCAvIENvbGxhcHNlIEFsbCBpdGVtc1xuICAgICAgICBpZiAoY2hhbmdlcy5leHBhbmRBbGxJdGVtcykge1xuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuc2V0RXhwYW5kZWRUb0FsbEl0ZW1zKGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzLmV4cGFuZEFsbEl0ZW1zLmN1cnJlbnRWYWx1ZSksIHRoaXMuaXRlbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuZmlsdGVyVmFsdWUgJiYgdGhpcy5oYXNGaWx0ZXIpIHtcbiAgICAgICAgICAgIHRoaXMub25GaWx0ZXIoY2hhbmdlcy5maWx0ZXJWYWx1ZS5jdXJyZW50VmFsdWUgPz8gJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVmcmVzaCB3aGVuIGludGVyYWN0aXZlIGNvbGxhcHNlZCB0byBpbml0aWFsc1xuICAgICAgICBpZiAoY2hhbmdlcy5oYXNDb2xsYXBzZWRJbml0aWFscykge1xuICAgICAgICAgICAgdGhpcy5oYXNDb2xsYXBzZWRJbml0aWFscyA9IGNoYW5nZXMuaGFzQ29sbGFwc2VkSW5pdGlhbHMuY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuY29uZmlndXJlSXRlbXModGhpcy5pdGVtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZihjaGFuZ2VzLmhhc1Njcm9sbFRvSXRlbSl7XG4gICAgICAgICAgICB0aGlzLmhhc1Njcm9sbFRvSXRlbSA9IGNoYW5nZXMuaGFzU2Nyb2xsVG9JdGVtLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIGlmKHRoaXMuaGFzU2Nyb2xsVG9JdGVtKXtcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvSXRlbSh0aGlzLnJvdXRlci51cmwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYoY2hhbmdlcy5oYXNGaWx0ZXIpe1xuICAgICAgICAgICAgdGhpcy5oYXNGaWx0ZXIgPSBjaGFuZ2VzLmhhc0ZpbHRlci5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBpZighdGhpcy5oYXNGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBpdGVyYXRlIHRocm91Z2ggYWxsIGl0ZW1zIGFuZCByZXNldCB0aGUgZmlsdGVyZWQgcHJvcGVydHlcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5maWx0ZXJNZW51SXRlbXModGhpcy5pdGVtcywgJycpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gTGFiZWxzIGRlZmF1bHQgdmFsdWVzIC0gVE9ETyA6IHRyYW5zbGF0aW9uc1xuICAgICAgICBpZiAoIXRoaXMuc2VhcmNoRmlsdGVyTGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoRmlsdGVyTGFiZWwgPSAnU2VhcmNoIGZpbHRlcic7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzdWJzY3JpcHRpb24gdG8gcm91dGVzIHVybCBjaGFuZ2VzIGZvciBhY3RpdmF0aW5nIHRoZSBzY3JvbGxJbnRvVmlld1xuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgLy8gSGFuZGxlIHJvdXRlIGNoYW5nZSBldmVudFxuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1Njcm9sbFRvSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvSXRlbShldmVudC51cmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBpbnN0YW50aWF0ZXMgRm9jdXNLZXlNYW5hZ2VyIHdpdGggdGhlIHF1ZXJ5IGxpc3Qgb2YgaXRlbXMgZW5hYmxpbmcgd3JhcHBpbmdcbiAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKHRoaXMubWVudUl0ZW1zQ29tcG9uZW50cykud2l0aFdyYXAoKTtcblxuICAgICAgICAvLyBzY3JvbGxzIHRvIHRoZSBpdGVtIHRoYXQgbWF0Y2hlcyB0aGUgY3VycmVudCB1cmxcbiAgICAgICAgaWYodGhpcy5oYXNTY3JvbGxUb0l0ZW0pe1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0l0ZW0odGhpcy5yb3V0ZXIudXJsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6dm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNsaWNrKGl0ZW06IEV1aU1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGlmICghaXRlbS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgaWYgKGl0ZW0udXJsRXh0ZXJuYWwpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihpdGVtLnVybEV4dGVybmFsLCBpdGVtLnVybEV4dGVybmFsVGFyZ2V0IHx8ICdfYmxhbmsnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS51cmwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbaXRlbS51cmxdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUsIGZyYWdtZW50OiB0aGlzLmZyYWdtZW50SWQgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaXRlbS5jb21tYW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uY29tbWFuZCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25FeHBhbmRUb2dnbGUoaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXRlbS5saW5rKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXM/Lm1hcCgoaXQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXQuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdC5pZCA9PT0gaXRlbS5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXQuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzQ2xpY2suZW1pdCh0cnVlKTtcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2suZW1pdChpdGVtKTtcblxuICAgICAgICBjb25zdCBmb2N1c2VkSXRlbSA9IHRoaXMuZmluZEZvY3VzYWJsZUl0ZW0oaXRlbSk7XG4gICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oZm9jdXNlZEl0ZW0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkV4cGFuZFRvZ2dsZShpdGVtOiBFdWlNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgdGhpcy5leHBhbmRUb2dnbGUuZW1pdChpdGVtKTtcbiAgICAgICAgICAgIHRoaXMub25FeHBhbmRUb2dnbGVkKGl0ZW0sIHRoaXMuaXRlbXMpO1xuICAgICAgICAgICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgd2h5IHRoZSBhYm92ZSBpcyBuZWVkZWQuIENhbiBpdCBiZSBzaW1wbHkgXCJpdGVtLmV4cGFuZGVkID0gIWl0ZW0uZXhwYW5kZWQ7XCIgP1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uTWVudUZpbHRlckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN1bWVFdmVudChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmlsdGVyIHRoZSBtZW51IGl0ZW1zIGJhc2VkIG9uIHRoZSBpbnB1dCB2YWx1ZVxuICAgICAqIEBwYXJhbSBldmVudFxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb25GaWx0ZXIoZXZlbnQ6IEV2ZW50KTogdm9pZDtcbiAgICBwcm90ZWN0ZWQgb25GaWx0ZXIodmFsdWU6IHN0cmluZyk6IHZvaWQ7XG4gICAgcHJvdGVjdGVkIG9uRmlsdGVyKGV2ZW50T3JWYWx1ZTogRXZlbnQgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudE9yVmFsdWUgaW5zdGFuY2VvZiBFdmVudFxuICAgICAgICAgICAgPyAoZXZlbnRPclZhbHVlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZVxuICAgICAgICAgICAgOiBldmVudE9yVmFsdWU7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmZpbHRlck1lbnVJdGVtcyh0aGlzLml0ZW1zLCB2YWx1ZSk7XG4gICAgICAgIHRoaXMuaGFzRXhwYW5kSWNvbiA9ICEodGhpcy5pc0ZpbHRlckVuYWJsZWQoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGNoaWxkcmVuIG9mIGFuIGl0ZW0gc2hvdWxkIGJlIHJlbmRlcmVkLiBUaGUgY2hpbGRyZW4gc2hvdWxkIGJlIHJlbmRlcmVkIGlmIHRoZSBpdGVtIGlzIGV4cGFuZGVkXG4gICAgICogb3IgaWYgdGhlIGl0ZW0gaXMgZmlsdGVyZWQgYW5kIHRoZSBmaWx0ZXIgaW5wdXQgaGFzIGEgdmFsdWUuIFRoZXJlIGFyZSB0d28gY2FzZXMgd2hlbiB0aGUgZmlsdGVyIGlucHV0IGhhcyBhIHZhbHVlOlxuICAgICAqIDEuIFRoZSB1c2VyIGhhcyB0eXBlZCBzb21ldGhpbmcgaW4gdGhlIGZpbHRlciBpbnB1dFxuICAgICAqIDIuIFRoZSB1c2VyIGhhcyB0eXBlZCBzb21ldGhpbmcgaW4gdGhlIGZpbHRlciBpbnB1dCBhbmQgdGhlIGl0ZW0gaXMgZmlsdGVyZWRcbiAgICAgKiBJbiBnZW5lcmFsIHRoZXJlIGFyZSB0d28gc3RhdGVzIHRvIGJlIHRha2VuIGludG8gYWNjb3VudCwgdGhlIGV4cGFuZGVkIHN0YXRlIGFuZCB0aGUgZmlsdGVyZWQgc3RhdGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbVxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2hvdWxkUmVuZGVyQ2hpbGQoaXRlbTogRXVpTWVudUl0ZW0pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0/LmNoaWxkcmVuICYmXG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgaXRlbT8uZXhwYW5kZWQgfHwgKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc0ZpbHRlciAmJlxuICAgICAgICAgICAgICAgICAgICBpdGVtPy5maWx0ZXJlZCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRmlsdGVyRW5hYmxlZCgpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZpbmRzIHRoZSBFdWlNZW51SXRlbUNvbXBvbmVudCBpbiB0aGUgcXVlcmllZCBmb2N1c2FibGVJdGVtc1tdIHRoYXQgIG1hdGNoZXMgdGhlIHBhc3NlZCBFdWlNZW51SXRlbSBvYmplY3RcbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZW51SXRlbSBhbiBFdWlNZW51SXRlbVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaW5kRm9jdXNhYmxlSXRlbShtZW51SXRlbTogRXVpTWVudUl0ZW0gKTogRXVpTWVudUl0ZW1Db21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5tZW51SXRlbXNDb21wb25lbnRzLmZpbmQoXG4gICAgICAgICAgICAoZm9jdXNhYmxlSXRlbSkgPT4gZm9jdXNhYmxlSXRlbS5pdGVtLmxhYmVsID09PSBtZW51SXRlbT8ubGFiZWwgJiYgZm9jdXNhYmxlSXRlbS5pdGVtLmlkID09PSBtZW51SXRlbS5pZCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBmaW5kcyB0aGUgZmlyc3QgaXRlbSB0aGF0IGlzIGZpbHRlcmVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVudUl0ZW1zIGFuIGFycmF5IG9mIEV1aU1lbnVJdGVtXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRGaXJzdEZpbHRlcmVkSXRlbShtZW51SXRlbXM6IEV1aU1lbnVJdGVtIFtdKTogRXVpTWVudUl0ZW0ge1xuICAgICAgICByZXR1cm4gbWVudUl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uZmlsdGVyZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGZpbmRzIGFsbCBmaWx0ZXJlZCBtZW51IGl0ZW1zXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVudUl0ZW1zIGFuIGFycmF5IG9mIEV1aU1lbnVJdGVtXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRGaWx0ZXJlZEl0ZW1zKG1lbnVJdGVtczogRXVpTWVudUl0ZW0gW10pOiBFdWlNZW51SXRlbSBbXSB7XG4gICAgICAgIHJldHVybiBtZW51SXRlbXMuZmlsdGVyKChpdGVtcykgPT4gaXRlbXMuZmlsdGVyZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNoZWNrcyB0aGUgZm9jdXMgc3RhdGUgb2YgdGhlIGFjdGlvbiBpY29uXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY2hlY2tBY3Rpb25JY29uRm9jdXNTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGFjdGlvbiBpY29uIGlzIGZvY3VzZWQgYW5kIGlmIG5vdCBmb2N1cyBpdCwgb3RoZXJ3aXNlIGZvY3VzIHRoZSBhY3RpdmUgaXRlbVxuICAgICAgICAhdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbS5pc0FjdGlvbkljb25Gb2N1c2VkID8gdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbS5mb2N1c0FjdGlvbkljb24oKSA6IHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBmaWx0ZXIgYWxsIG1lbnUgaXRlbXMgZ2l2ZW4gYSB2YWx1ZVxuICAgICAqXG4gICAgICogQHBhcmFtIG1lbnVJdGVtcyBhbiBhcnJheSBvZiBtZW51IGl0ZW1zXG4gICAgICogQHBhcmFtIGZpbHRlclZhbHVlIHRoZSB2YWx1ZSB0byBmaWx0ZXIgbWVudSBpdGVtc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaWx0ZXJNZW51SXRlbXMobWVudUl0ZW1zOiBFdWlNZW51SXRlbVtdLCBmaWx0ZXJWYWx1ZTogc3RyaW5nKTogRXVpTWVudUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiBtZW51SXRlbXM/Lm1hcCgoaXRlbTogRXVpTWVudUl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvdW5kID0gaXRlbS5sYWJlbD8udG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlclZhbHVlLnRvTG93ZXJDYXNlKCkpICE9PSAtMTtcbiAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IHRoaXMuZmlsdGVyTWVudUl0ZW1zKGl0ZW0uY2hpbGRyZW4sIGZpbHRlclZhbHVlKTtcbiAgICAgICAgICAgICAgICBpdGVtLmZpbHRlcmVkID0gaXRlbS5jaGlsZHJlbi5maWx0ZXIoKGwpID0+IGxbJ2ZpbHRlcmVkJ10gPT09IHRydWUpLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5maWx0ZXJlZCA9IGZvdW5kO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpdGVtLmZpbHRlcmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSkgfHwgW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZXhwYW5kIC8gY29sbGFwc2UgYWxsIGl0ZW1zXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXNFeHBhbmRlZFxuICAgICAqIEBwYXJhbSBpdGVtc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRFeHBhbmRlZFRvQWxsSXRlbXMoaXNFeHBhbmRlZDogYm9vbGVhbiwgaXRlbXM6IEV1aU1lbnVJdGVtW10pOiBFdWlNZW51SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zPy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5leHBhbmRlZCA9IGl0ZW0uZXhwYW5kZWQgPz8gaXNFeHBhbmRlZDtcbiAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gdGhpcy5zZXRFeHBhbmRlZFRvQWxsSXRlbXMoaXNFeHBhbmRlZCwgaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpdGVtLCB7IHZpc2libGU6IGl0ZW0udmlzaWJsZSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGl0ZW0udmlzaWJsZSB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZXhwYW5kIC8gY29sbGFwc2UgYSBtZW51IGl0ZW1cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtIFRoZSBpdGVtIHdoZXJlIHRoZSBcImV4cGFuZFwiIGhhZCBiZWVuIHRvZ2dsZWRcbiAgICAgKiBAcGFyYW0gaXRlbXMgVGhlIGl0ZW1zIGxpc3QgKHVzZWQgZm9yIHJlY3Vyc2lvbilcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgb25FeHBhbmRUb2dnbGVkKGl0ZW06IEV1aU1lbnVJdGVtLCBpdGVtczogRXVpTWVudUl0ZW1bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpdGVtSWR4ID0gaXRlbXM/LmluZGV4T2YoaXRlbSk7XG4gICAgICAgIGlmIChpdGVtSWR4ID4gLTEpIHtcbiAgICAgICAgICAgIGl0ZW1zW2l0ZW1JZHhdLmV4cGFuZGVkID0gIWl0ZW1zW2l0ZW1JZHhdLmV4cGFuZGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXRlbXMuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25FeHBhbmRUb2dnbGVkKGl0ZW0sIGkuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY29uZmlndXJlIGFuIGFycmF5IG9mIGl0ZW1zIHdpdGggdmlzaWJsZSwgZmlsdGVyZWQgYW5kIGV4cGFuZCAoaW4gY2FzZSBvZiBleHBhbmRBbGxJdGVtcyBmbGFnIGVuYWJsZWQpIHByb3BlcnRpZXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtcyBBbiBhcnJheSBvZiBFdWlNZW51SXRlbVxuICAgICAqIEBwYXJhbSBwYXJlbnQgdGhlIHBhcmVudCBpdGVtIG9mIGl0ZW1zIGlmIGV4aXN0c1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBjb25maWd1cmVJdGVtcyhpdGVtczogRXVpTWVudUl0ZW1bXSwgcGFyZW50PzogRXVpTWVudUl0ZW0pOiBFdWlNZW51SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zPy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIC8vIHJlY3Vyc2lvbiBpbiBjYXNlIHRoZXJlIGFyZSBjaGlsZHJlblxuICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gdGhpcy5jb25maWd1cmVJdGVtcyhpdGVtLmNoaWxkcmVuLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAvLyBleHBhbmQgYWxsIHBhcmVudHMgd2l0aCBjaGlsZHJlblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmV4cGFuZEFsbEl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHBvaW50IHRvIHRoZSBwYXJlbnRcbiAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICBpdGVtLnBhcmVudCA9IHBhcmVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZSBpdGVtcyBhcmUgY29uZmlndXJlZCB3aXRoIGEgdW5pcXVlIGlkXG4gICAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcz8ubWFwKChpdGVtKSA9PiB0aGlzLnNldFJhbmRvbUlkKGl0ZW0pKTtcblxuICAgICAgICAgICAgaWYgKGl0ZW0ubGFiZWwgJiYgdGhpcy5oYXNDb2xsYXBzZWRJbml0aWFscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdvcmRzID0gaXRlbS5sYWJlbC5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgIGlmICh3b3Jkcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5pbml0aWFscyA9IGAke2l0ZW0ubGFiZWwuc3Vic3RyaW5nKDAsIDEpfSR7aXRlbS5sYWJlbC5zdWJzdHJpbmcoMSwgMSl9YDtcblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaW5pdGlhbHMgPSBgJHt3b3Jkc1swXS5zdWJzdHJpbmcoMCwgMSl9JHt3b3Jkc1sxXS5zdWJzdHJpbmcoMCwgMSl9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKGl0ZW0sIHsgdmlzaWJsZTogaXRlbS52aXNpYmxlID09PSB1bmRlZmluZWQgPyB0cnVlIDogaXRlbS52aXNpYmxlLCBmaWx0ZXJlZDogdHJ1ZSB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2l2ZW4gYSBVUkwgYW5kIGEgbGlzdCBvZiBpdGVtcywgaXQgd2lsbCBleHBhbmQgdGhlIGl0ZW0gdGhhdCBtYXRjaGVzIHRoZSBVUkwuIElmIG5vdCBpdGVtIG1hdGNoZXMgZXhhY3RseSB0aGUgdXJsLCB0aGVuIGl0IHdpbGxcbiAgICAgKiBtYXRjaCB0aGUgaXRlbSB0aGF0IGlzIG1vc3QgcmVsZXZhbnQgdG8gdGhhdCB1cmwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsXG4gICAgICogQHBhcmFtIGl0ZW1zXG4gICAgICogQHBhcmFtIHJlbGV2YW50SXRlbVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaW5kTW9zdFJlbGV2YW50SXRlbSh1cmw6IHN0cmluZywgaXRlbXM6IEV1aU1lbnVJdGVtW10sIHJlbGV2YW50SXRlbT86IEV1aU1lbnVJdGVtKTogRXVpTWVudUl0ZW0ge1xuICAgICAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLnVybCAmJiB1cmwuaW5kZXhPZihpdGVtLnVybC5zdWJzdHJpbmcoMSkpID4gLTEpIHtcbiAgICAgICAgICAgICAgICByZWxldmFudEl0ZW0gPSB0aGlzLmdldE1vc3RSZWxldmFudEl0ZW0odXJsLCByZWxldmFudEl0ZW0sIGl0ZW0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHJlbGV2YW50SXRlbSA9IHRoaXMuZmluZE1vc3RSZWxldmFudEl0ZW0odXJsLCBpdGVtLmNoaWxkcmVuLCByZWxldmFudEl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVsZXZhbnRJdGVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdpdmVuIHR3byBpdGVtcyB3aXRoIHVybCByZXR1cm4gdGhlIG9uZSB3aXRoIHRoZSBtb3N0IHJlbGV2YW50IHVybCB0aGF0IG1hdGNoZXMgZ2l2ZW4gdXJsXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIEEgVVJMIHRvIGJlIG1hdGNoZWQgd2l0aCB0aGUgb25lIG9mIGdpdmVuIGl0ZW1zXG4gICAgICogQHBhcmFtIGl0ZW0xXG4gICAgICogQHBhcmFtIGl0ZW0yXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldE1vc3RSZWxldmFudEl0ZW0odXJsOiBzdHJpbmcsIGl0ZW0xOiBFdWlNZW51SXRlbSwgaXRlbTI6IEV1aU1lbnVJdGVtKTogRXVpTWVudUl0ZW0ge1xuICAgICAgICBjb25zdCByZW1haW5kZXIxID0gdXJsLnJlcGxhY2UoaXRlbTE/LnVybCB8fCAnJywgJycpO1xuICAgICAgICBjb25zdCByZW1haW5kZXIyID0gdXJsLnJlcGxhY2UoaXRlbTI/LnVybCB8fCAnJywgJycpO1xuXG4gICAgICAgIHJldHVybiByZW1haW5kZXIxLmxlbmd0aCA8IHJlbWFpbmRlcjIubGVuZ3RoID8gaXRlbTEgOiBpdGVtMjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHaXZlbiBhbiBpdGVtLCBpZiB0aGVyZSdzIGEgcGFyZW50IGV4cGFuZCBpdCB1bnRpbCB5b3UgcmVhY2ggdGhlIHJvb3QgaXRlbVxuICAgICAqXG4gICAgICogQHBhcmFtIGl0ZW0gR2l2ZW4gbWVudSBpdGVtXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGV4cGFuZFRvR2l2ZW5JdGVtKGl0ZW06IEV1aU1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIGlmIChpdGVtLnBhcmVudCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiAoaXRlbS5wYXJlbnQuZXhwYW5kZWQgPSB0cnVlKSk7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZFRvR2l2ZW5JdGVtKGl0ZW0ucGFyZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBhIHJhbmRvbSBpZCB0byBhbiBpdGVtIGFuZCBpdHMgY2hpbGQgaWYgdGhleSBkb24ndCBoYXZlIG9uZVxuICAgICAqIEBwYXJhbSBpdGVtXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFJhbmRvbUlkKGl0ZW06IEV1aU1lbnVJdGVtKTogRXVpTWVudUl0ZW0ge1xuICAgICAgICBpdGVtLmlkID0gaXRlbS5pZCB8fCBjcnlwdG8ucmFuZG9tVVVJRCgpO1xuICAgICAgICBpZihpdGVtLmNoaWxkcmVuKXtcbiAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gPSBpdGVtLmNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXRSYW5kb21JZChjaGlsZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTY3JvbGwgdG8gYW4gaXRlbSBpZiBpdCdzIG5vdCB2aXNpYmxlIGluIHRoZSB2aWV3cG9ydFxuICAgICAqIEBwYXJhbSB1cmxcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgc2Nyb2xsVG9JdGVtKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbmRNb3N0UmVsZXZhbnRJdGVtKHVybCwgdGhpcy5pdGVtcyk7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICAvLyBjaGFuZ2UgdGhlIHN0YXRlIG9mIHRoYXQgaXRlbSB0byBleHBhbmRlZCBpZiBpdCdzIG5vdFxuICAgICAgICAgICAgdGhpcy5leHBhbmRUb0dpdmVuSXRlbShpdGVtKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoXyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVudUl0ZW0gPSB0aGlzLm1lbnVJdGVtc0NvbXBvbmVudHM/LmZpbmQoKG1lbnVJdGVtKSA9PiBtZW51SXRlbS5pdGVtLmlkID09PSBpdGVtLmlkKTtcbiAgICAgICAgICAgICAgICBpZihtZW51SXRlbSAmJiAhbWVudUl0ZW0uZWxlbWVudElzVmlzaWJsZUluVmlld3BvcnQoKSl7XG4gICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDMwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgZmlsdGVyIGlucHV0IGhhcyBhIHZhbHVlXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGlzRmlsdGVyRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVySW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LnZhbHVlLmxlbmd0aCA+IDBcbiAgICB9XG59XG4iLCJAaWYgKGhhc0ZpbHRlcikge1xuICAgIDxkaXYgY2xhc3M9XCJldWktbWVudS1maWx0ZXJcIiBbY2xhc3MuZXVpLW1lbnUtZmlsdGVyLS1jb2xsYXBzZWRdPVwiaXNDb2xsYXBzZWRcIiAoY2xpY2spPVwib25NZW51RmlsdGVyQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICA8ZXVpLWljb24taW5wdXQ+XG4gICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWNsLXNlYXJjaFwiIGZpbGxDb2xvcj1cIm5ldXRyYWwtbGlnaHRlclwiIGFyaWEtbGFiZWw9XCJTZWFyY2ggSWNvblwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgI2ZpbHRlcklucHV0XG4gICAgICAgICAgICAgICAgZXVpSW5wdXRUZXh0XG4gICAgICAgICAgICAgICAgW2V1aUNsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25GaWx0ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaEZpbHRlckxhYmVsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlYXJjaEZpbHRlckxhYmVsXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmlsdGVyVmFsdWVcIiAvPlxuICAgICAgICA8L2V1aS1pY29uLWlucHV0PlxuICAgIDwvZGl2PlxufVxuXG48dWwgZXVpTGlzdCBjbGFzcz1cImV1aS1tZW51XCIgcm9sZT1cIm1lbnViYXJcIiBhcmlhLW9yaWVudGF0aW9uPVwidmVydGljYWxcIiB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiPlxuICAgIEBpZiAoaXRlbXMpIHtcbiAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgaXRlbS5pZDsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVudUl0ZW1UZW1wbGF0ZVJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IG1lbnVJdGVtOiBpdGVtLCBpbmRleDogaW5kZXggfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJldWktbWVudS0tbm8taXRlbXNcIj5ObyBtZW51IGl0ZW1zIGRlZmluZWQ8L3NwYW4+XG4gICAgfVxuPC91bD5cblxuPCEtLSBkZXNjcmliZSB0aGUgcmVjdXJzaXZlIHRlbXBsYXRlIG9mIHRoZSBtZW51IGl0ZW0gLS0+XG48bmctdGVtcGxhdGUgI21lbnVJdGVtVGVtcGxhdGVSZWYgbGV0LWl0ZW09XCJtZW51SXRlbVwiIGxldC1wYXJlbnQ9XCJwYXJlbnRcIiBsZXQtaT1cImluZGV4XCI+XG4gICAgPCEtLSByZW5kZXIgdGhlIG1lbnUgaXRlbS0tPlxuICAgIDxldWktbWVudS1pdGVtXG4gICAgICAgICpuZ0lmPVwiaXRlbS5maWx0ZXJlZFwiXG4gICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICBbcGFyZW50XT1cInBhcmVudFwiXG4gICAgICAgIFtoYXNJY29uXT1cImhhc0ljb25zXCJcbiAgICAgICAgW2hhc1Rvb2x0aXBdPVwiaGFzVG9vbHRpcFwiXG4gICAgICAgIFtpc0NvbGxhcHNlZF09XCJpc0NvbGxhcHNlZFwiXG4gICAgICAgIFtoYXNCb2xkUm9vdExldmVsXT1cImhhc0JvbGRSb290TGV2ZWxcIlxuICAgICAgICBbaGFzQ29sbGFwc2VkSW5pdGlhbHNdPVwiaGFzQ29sbGFwc2VkSW5pdGlhbHNcIlxuICAgICAgICAoZXhwYW5kVG9nZ2xlKT1cIm9uRXhwYW5kVG9nZ2xlKCRldmVudClcIlxuICAgICAgICAoaXRlbUNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIFtoYXNFeHBhbmRJY29uXT1cImhhc0V4cGFuZEljb25cIj5cbiAgICAgICAgPCEtLSBpZiB0aGUgbWVudSBpdGVtIGhhcyBjaGlsZHJlbiwgcmVuZGVyIHRoZSBjaGlsZHJlbiAtLT5cbiAgICAgICAgQGlmIChzaG91bGRSZW5kZXJDaGlsZChpdGVtKSkge1xuICAgICAgICAgICAgPHVsIGV1aUxpc3QgY2xhc3M9XCJldWktbWVudSBldWktbWVudS1zdWJcIiByb2xlPVwibWVudVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5sYWJlbFwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChjaGlsZCBvZiBpdGVtLmNoaWxkcmVuOyB0cmFjayBjaGlsZC5pZDsgbGV0IGNoaWxkSW5kZXggPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVJdGVtVGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBtZW51SXRlbTogY2hpbGQsIGluZGV4OiBjaGlsZEluZGV4LCBwYXJlbnQ6IGl0ZW0gfVwiPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIH1cbiAgICA8L2V1aS1tZW51LWl0ZW0+XG48L25nLXRlbXBsYXRlPlxuIl19
|
582
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLW1lbnUvZXVpLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLW1lbnUvZXVpLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLEtBQUssRUFFTCxNQUFNLEVBQ04sWUFBWSxFQUdaLFlBQVksRUFDWixnQkFBZ0IsRUFHaEIsWUFBWSxFQUdaLFNBQVMsRUFDVCxVQUFVLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEwQixhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUFTakUsTUFBTSxPQUFPLGdCQUFnQjtJQUl6QixJQUNXLFVBQVU7UUFDakIsT0FBTztZQUNILFVBQVU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3QyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFBLENBQUMsQ0FBQyxFQUFFO1NBQ3JDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUErQkQsWUFDWSxNQUFjLEVBQ2QsS0FBcUIsRUFDckIs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TGQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBjb25zdW1lRXZlbnQgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgRXVpTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2V1aS1tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEV1aU1lbnVJdGVtIH0gZnJvbSAnLi9tb2RlbHMvZXVpLW1lbnUtaXRlbS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGRyZW4oRXVpTWVudUl0ZW1Db21wb25lbnQpIHByb3RlY3RlZCBtZW51SXRlbXNDb21wb25lbnRzOiBRdWVyeUxpc3Q8RXVpTWVudUl0ZW1Db21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2ZpbHRlcklucHV0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIHByb3RlY3RlZCBmaWx0ZXJJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2V1aS1tZW51JyxcbiAgICAgICAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPyAnZXVpLW1lbnUtLWNvbGxhcHNlZCcgOiAnJyxcbiAgICAgICAgICAgICF0aGlzLmhhc0ljb25zID8gJ2V1aS1tZW51LS1uby1pY29ucycgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNGbGF0ID8gJ2V1aS1tZW51LS1mbGF0JzogJycsXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBpdGVtczogRXVpTWVudUl0ZW1bXTtcbiAgICBASW5wdXQoKSBzZWFyY2hGaWx0ZXJMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGV4dGVybmFsTGlua0xhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZnJhZ21lbnRJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZpbHRlclZhbHVlID0gJyc7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQ29sbGFwc2VkSW5pdGlhbHMgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzRmlsdGVyID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc0ljb25zID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1Rvb2x0aXAgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNUb29sdGlwT25FeHBhbmRlZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEV4cGFuZCBhbGwgaXRlbXMgaW4gdGhlIG1lbnUuIEFmZmVjdHMgb25seSBpdGVtcyB0aGF0IGhhdmUgbm8gZXhwYW5kZWQgcHJvcGVydHkgc2V0LlxuICAgICAqIGUuZy4gaXRlbXMgPSBbe2xhYmVsOiB0ZXN0LCBleHBhbmRlZDogdHJ1ZX0sIHtsYWJlbDogdGVzdDIsIGV4cGFuZGVkOiBmYWxzZX0sIHtsYWJlbDogdGVzdDN9XSB3aWxsIGV4cGFuZCBvbmx5IHRlc3QzLlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBleHBhbmRBbGxJdGVtcyA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0ZsYXQgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzU2Nyb2xsVG9JdGVtID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc0JvbGRSb290TGV2ZWwgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBpc0NsaWNrOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEV1aU1lbnVJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8RXVpTWVudUl0ZW0+KCk7XG4gICAgQE91dHB1dCgpIGV4cGFuZFRvZ2dsZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXVpTWVudUl0ZW0+KCk7XG5cbiAgICBwcm90ZWN0ZWQgaGFzRXhwYW5kSWNvbiA9IHRydWU7XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIGZvY3VzS2V5TWFuYWdlcjogRm9jdXNLZXlNYW5hZ2VyPEV1aU1lbnVJdGVtQ29tcG9uZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7fVxuXG4gICAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZDtcbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgcGFzcyB0aGUgZXZlbnQgYXMgTW91c2VFdmVudC4gV2lsbCBiZSByZW1vdmVkIG9uIG5leHQgZVVJIHJlbGVhc2UuXG4gICAgICogQHBhcmFtIGV2ZW50XG4gICAgICovXG4gICAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gZmluZHMgZmlyc3QgY2hpbGQgd2hlbiBBcnJvd0Rvd25cbiAgICAgICAgY29uc3QgZmlyc3RDaGlsZCA9IHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0uY2hpbGRyZW4/IHRoaXMuZmluZEZpcnN0RmlsdGVyZWRJdGVtKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW0uY2hpbGRyZW4pIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUl0ZW0gPSB0aGlzLmZpbmRGb2N1c2FibGVJdGVtKGZpcnN0Q2hpbGQpO1xuICAgICAgICAvLyBmaW5kcyB0aGUgcGFyZW50IGVsZW1lbnRcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5wYXJlbnQ7XG4gICAgICAgIGNvbnN0IHBhcmVudEZvY3VzYWJsZUl0ZW0gPSB0aGlzLmZpbmRGb2N1c2FibGVJdGVtKHBhcmVudCk7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlICdFbnRlcic6IHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtLmlzTGlua0l0ZW0gfHwgdGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbS5pc1VybEl0ZW0pICYmXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtLmRpc2FibGVkXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0ub25DbGljayhldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6IHtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmlzRmlsdGVyRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZih0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmFjdGlvbkljb24pe1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQWN0aW9uSWNvbkZvY3VzU3RhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5vbkV4cGFuZFRvZ2dsZShldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOiB7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pc0ZpbHRlckVuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYodGhpcy5mb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbS5hY3Rpb25JY29uKXtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0FjdGlvbkljb25Gb2N1c1N0YXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtLm9uRXhwYW5kVG9nZ2xlKGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOiB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaG91bGRSZW5kZXJDaGlsZCh0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICAvL2ZvY3VzZXMgZmlyc3QgY2hpbGRcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RGb2N1c2FibGVJdGVtPy5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKGZpcnN0Rm9jdXNhYmxlSXRlbSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZmluZHMgbGFzdCBmaWx0ZXJlZCBjaGlsZCB3aGVuIEFycm93RG93biBhbmQgbmF2aWdhdGluZyB3aXRoaW4gc3VibWVudVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maW5kRmlsdGVyZWRJdGVtcyhwYXJlbnQuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0Q2hpbGRJbmRleCA9IChmaWx0ZXJlZENoaWxkcmVuPy5sZW5ndGgpIC0gMTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdENoaWxkID0gZmlsdGVyZWRDaGlsZHJlbltsYXN0Q2hpbGRJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RGb2N1c2FibGVJdGVtID0gdGhpcy5maW5kRm9jdXNhYmxlSXRlbShsYXN0Q2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgYWN0aXZlIGl0ZW0gaXMgdGhlIGxhc3QgY2hpbGQsIHB1dHMgdGhlIGZvY3VzIG9uIHRoZSBuZXh0IHBhcmVudFxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtID09PSBsYXN0Rm9jdXNhYmxlSXRlbSl7XG4gICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0ocGFyZW50Rm9jdXNhYmxlSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnNldE5leHRJdGVtQWN0aXZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleCArMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBza2lwcyByZW1haW5pbmcgY2hpbGRyZW4gaW4gdGhlIHF1ZXJ5IGxpc3Qgd2hlbiB0aGVyZSBpcyBleHBhbmRlZCBub2RlXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnNraXBQcmVkaWNhdGUobWVudUl0ZW0gPT4gbWVudUl0ZW0ucGFyZW50ICE9IHVuZGVmaW5lZCB8fCBtZW51SXRlbS5pdGVtLnZpc2libGUgPT09IGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzoge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBmaW5kcyBmaXJzdCBmaWx0ZXJlZCBjaGlsZCB3aGVuIEFycm93VXBcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmluZEZpbHRlcmVkSXRlbXMocGFyZW50LmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RDaGlsZFVwID0gZmlsdGVyZWRDaGlsZHJlblsnMCddXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlSXRlbVVwID0gdGhpcy5maW5kRm9jdXNhYmxlSXRlbShmaXJzdENoaWxkVXApO1xuICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIG5hdmlnYXRpbmcgdXAgb24gYSBzdWJtZW51IGZvY3VzZXMgdGhlIHBhcmVudCBpZiB0aGUgYWN0aXZlIGl0ZW0gaXMgdGhlIGZpcnN0IGNoaWxkXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0gPT09IGZpcnN0Rm9jdXNhYmxlSXRlbVVwKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0ocGFyZW50Rm9jdXNhYmxlSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c0tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSh0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXggLTEpO1xuICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gbmF2aWdhdGluZyB1cCBmcm9tIGEgcGFyZW50IGVsZW1lbnQgdG8gYW4gZXhwYW5kZWQgc3VibWVudSwgZmluZHMgdGhlIGxhc3QgY2hpbGQgYW5kIGZvY3VzZXMgaXRcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5zaG91bGRSZW5kZXJDaGlsZCh0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtKSl7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZENoaWxkcmVuID0gdGhpcy5maW5kRmlsdGVyZWRJdGVtcyh0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RDaGlsZEluZGV4VXAgPSAoZmlsdGVyZWRDaGlsZHJlbi5sZW5ndGgpIC0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RGb2N1c2FibGVJdGVtVXAgPXRoaXMuZmluZEZvY3VzYWJsZUl0ZW0oZmlsdGVyZWRDaGlsZHJlbltsYXN0Q2hpbGRJbmRleFVwXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGxhc3RGb2N1c2FibGVJdGVtVXApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLml0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5jb25maWd1cmVJdGVtcyh0aGlzLml0ZW1zKTtcbiAgICAgICAgICAgIC8vIGdldCBjdXJyZW50IHVybFxuICAgICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcbiAgICAgICAgICAgIC8vIGZpbmQgYW4gaXRlbSB0aGF0IG1hdGNoZXMgdGhlIGN1cnJlbnQgdXJsIG9yIHRoZSBtb3N0IHJlbGV2YW50IG9uZVxuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZmluZE1vc3RSZWxldmFudEl0ZW0oY3VycmVudFVybCwgdGhpcy5pdGVtcyk7XG4gICAgICAgICAgICAvLyBleHBhbmQgdG8gdGhhdCBpdGVtXG4gICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kVG9HaXZlbkl0ZW0oaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFeHBhbmQgLyBDb2xsYXBzZSBBbGwgaXRlbXNcbiAgICAgICAgaWYgKGNoYW5nZXMuZXhwYW5kQWxsSXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLnNldEV4cGFuZGVkVG9BbGxJdGVtcyhjb2VyY2VCb29sZWFuUHJvcGVydHkoY2hhbmdlcy5leHBhbmRBbGxJdGVtcy5jdXJyZW50VmFsdWUpLCB0aGlzLml0ZW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzLmZpbHRlclZhbHVlICYmIHRoaXMuaGFzRmlsdGVyKSB7XG4gICAgICAgICAgICB0aGlzLm9uRmlsdGVyKGNoYW5nZXMuZmlsdGVyVmFsdWUuY3VycmVudFZhbHVlID8/ICcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlZnJlc2ggd2hlbiBpbnRlcmFjdGl2ZSBjb2xsYXBzZWQgdG8gaW5pdGlhbHNcbiAgICAgICAgaWYgKGNoYW5nZXMuaGFzQ29sbGFwc2VkSW5pdGlhbHMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzQ29sbGFwc2VkSW5pdGlhbHMgPSBjaGFuZ2VzLmhhc0NvbGxhcHNlZEluaXRpYWxzLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLmNvbmZpZ3VyZUl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYoY2hhbmdlcy5oYXNTY3JvbGxUb0l0ZW0pe1xuICAgICAgICAgICAgdGhpcy5oYXNTY3JvbGxUb0l0ZW0gPSBjaGFuZ2VzLmhhc1Njcm9sbFRvSXRlbS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBpZih0aGlzLmhhc1Njcm9sbFRvSXRlbSl7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0l0ZW0odGhpcy5yb3V0ZXIudXJsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmKGNoYW5nZXMuaGFzRmlsdGVyKXtcbiAgICAgICAgICAgIHRoaXMuaGFzRmlsdGVyID0gY2hhbmdlcy5oYXNGaWx0ZXIuY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgaWYoIXRoaXMuaGFzRmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgLy8gaXRlcmF0ZSB0aHJvdWdoIGFsbCBpdGVtcyBhbmQgcmVzZXQgdGhlIGZpbHRlcmVkIHByb3BlcnR5XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuZmlsdGVyTWVudUl0ZW1zKHRoaXMuaXRlbXMsICcnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIExhYmVscyBkZWZhdWx0IHZhbHVlcyAtIFRPRE8gOiB0cmFuc2xhdGlvbnNcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaEZpbHRlckxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaEZpbHRlckxhYmVsID0gJ1NlYXJjaCBmaWx0ZXInO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3Vic2NyaXB0aW9uIHRvIHJvdXRlcyB1cmwgY2hhbmdlcyBmb3IgYWN0aXZhdGluZyB0aGUgc2Nyb2xsSW50b1ZpZXdcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSByb3V0ZSBjaGFuZ2UgZXZlbnRcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTY3JvbGxUb0l0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0l0ZW0oZXZlbnQudXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gaW5zdGFudGlhdGVzIEZvY3VzS2V5TWFuYWdlciB3aXRoIHRoZSBxdWVyeSBsaXN0IG9mIGl0ZW1zIGVuYWJsaW5nIHdyYXBwaW5nXG4gICAgICAgIHRoaXMuZm9jdXNLZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLm1lbnVJdGVtc0NvbXBvbmVudHMpLndpdGhXcmFwKCk7XG5cbiAgICAgICAgLy8gc2Nyb2xscyB0byB0aGUgaXRlbSB0aGF0IG1hdGNoZXMgdGhlIGN1cnJlbnQgdXJsXG4gICAgICAgIGlmKHRoaXMuaGFzU2Nyb2xsVG9JdGVtKXtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9JdGVtKHRoaXMucm91dGVyLnVybCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOnZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DbGljayhpdGVtOiBFdWlNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAoIWl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGlmIChpdGVtLnVybEV4dGVybmFsKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oaXRlbS51cmxFeHRlcm5hbCwgaXRlbS51cmxFeHRlcm5hbFRhcmdldCB8fCAnX2JsYW5rJyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0udXJsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2l0ZW0udXJsXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBmcmFnbWVudDogdGhpcy5mcmFnbWVudElkIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0uY29tbWFuZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmNvbW1hbmQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXhwYW5kVG9nZ2xlKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW0ubGluaykge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zPy5tYXAoKGl0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0LmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXQuaWQgPT09IGl0ZW0uaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0LmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0NsaWNrLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoaXRlbSk7XG5cbiAgICAgICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmZpbmRGb2N1c2FibGVJdGVtKGl0ZW0pO1xuICAgICAgICB0aGlzLmZvY3VzS2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKGZvY3VzZWRJdGVtKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25FeHBhbmRUb2dnbGUoaXRlbTogRXVpTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kVG9nZ2xlLmVtaXQoaXRlbSk7XG4gICAgICAgICAgICB0aGlzLm9uRXhwYW5kVG9nZ2xlZChpdGVtLCB0aGlzLml0ZW1zKTtcbiAgICAgICAgICAgIC8vIFRPRE86IGludmVzdGlnYXRlIHdoeSB0aGUgYWJvdmUgaXMgbmVlZGVkLiBDYW4gaXQgYmUgc2ltcGx5IFwiaXRlbS5leHBhbmRlZCA9ICFpdGVtLmV4cGFuZGVkO1wiID9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbk1lbnVGaWx0ZXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdW1lRXZlbnQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbHRlciB0aGUgbWVudSBpdGVtcyBiYXNlZCBvbiB0aGUgaW5wdXQgdmFsdWVcbiAgICAgKiBAcGFyYW0gZXZlbnRcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG9uRmlsdGVyKGV2ZW50OiBFdmVudCk6IHZvaWQ7XG4gICAgcHJvdGVjdGVkIG9uRmlsdGVyKHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xuICAgIHByb3RlY3RlZCBvbkZpbHRlcihldmVudE9yVmFsdWU6IEV2ZW50IHwgc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnRPclZhbHVlIGluc3RhbmNlb2YgRXZlbnRcbiAgICAgICAgICAgID8gKGV2ZW50T3JWYWx1ZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWVcbiAgICAgICAgICAgIDogZXZlbnRPclZhbHVlO1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5maWx0ZXJNZW51SXRlbXModGhpcy5pdGVtcywgdmFsdWUpO1xuICAgICAgICB0aGlzLmhhc0V4cGFuZEljb24gPSAhKHRoaXMuaXNGaWx0ZXJFbmFibGVkKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHRoZSBjaGlsZHJlbiBvZiBhbiBpdGVtIHNob3VsZCBiZSByZW5kZXJlZC4gVGhlIGNoaWxkcmVuIHNob3VsZCBiZSByZW5kZXJlZCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZFxuICAgICAqIG9yIGlmIHRoZSBpdGVtIGlzIGZpbHRlcmVkIGFuZCB0aGUgZmlsdGVyIGlucHV0IGhhcyBhIHZhbHVlLiBUaGVyZSBhcmUgdHdvIGNhc2VzIHdoZW4gdGhlIGZpbHRlciBpbnB1dCBoYXMgYSB2YWx1ZTpcbiAgICAgKiAxLiBUaGUgdXNlciBoYXMgdHlwZWQgc29tZXRoaW5nIGluIHRoZSBmaWx0ZXIgaW5wdXRcbiAgICAgKiAyLiBUaGUgdXNlciBoYXMgdHlwZWQgc29tZXRoaW5nIGluIHRoZSBmaWx0ZXIgaW5wdXQgYW5kIHRoZSBpdGVtIGlzIGZpbHRlcmVkXG4gICAgICogSW4gZ2VuZXJhbCB0aGVyZSBhcmUgdHdvIHN0YXRlcyB0byBiZSB0YWtlbiBpbnRvIGFjY291bnQsIHRoZSBleHBhbmRlZCBzdGF0ZSBhbmQgdGhlIGZpbHRlcmVkIHN0YXRlLlxuICAgICAqXG4gICAgICogQHBhcmFtIGl0ZW1cbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNob3VsZFJlbmRlckNoaWxkKGl0ZW06IEV1aU1lbnVJdGVtKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpdGVtPy5jaGlsZHJlbiAmJlxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgIGl0ZW0/LmV4cGFuZGVkIHx8IChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNGaWx0ZXIgJiZcbiAgICAgICAgICAgICAgICAgICAgaXRlbT8uZmlsdGVyZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZpbHRlckVuYWJsZWQoKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBmaW5kcyB0aGUgRXVpTWVudUl0ZW1Db21wb25lbnQgaW4gdGhlIHF1ZXJpZWQgZm9jdXNhYmxlSXRlbXNbXSB0aGF0ICBtYXRjaGVzIHRoZSBwYXNzZWQgRXVpTWVudUl0ZW0gb2JqZWN0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWVudUl0ZW0gYW4gRXVpTWVudUl0ZW1cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZEZvY3VzYWJsZUl0ZW0obWVudUl0ZW06IEV1aU1lbnVJdGVtICk6IEV1aU1lbnVJdGVtQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWVudUl0ZW1zQ29tcG9uZW50cy5maW5kKFxuICAgICAgICAgICAgKGZvY3VzYWJsZUl0ZW0pID0+IGZvY3VzYWJsZUl0ZW0uaXRlbS5sYWJlbCA9PT0gbWVudUl0ZW0/LmxhYmVsICYmIGZvY3VzYWJsZUl0ZW0uaXRlbS5pZCA9PT0gbWVudUl0ZW0uaWQsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZmluZHMgdGhlIGZpcnN0IGl0ZW0gdGhhdCBpcyBmaWx0ZXJlZFxuICAgICAqXG4gICAgICogQHBhcmFtIG1lbnVJdGVtcyBhbiBhcnJheSBvZiBFdWlNZW51SXRlbVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaW5kRmlyc3RGaWx0ZXJlZEl0ZW0obWVudUl0ZW1zOiBFdWlNZW51SXRlbSBbXSk6IEV1aU1lbnVJdGVtIHtcbiAgICAgICAgcmV0dXJuIG1lbnVJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmZpbHRlcmVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBmaW5kcyBhbGwgZmlsdGVyZWQgbWVudSBpdGVtc1xuICAgICAqXG4gICAgICogQHBhcmFtIG1lbnVJdGVtcyBhbiBhcnJheSBvZiBFdWlNZW51SXRlbVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaW5kRmlsdGVyZWRJdGVtcyhtZW51SXRlbXM6IEV1aU1lbnVJdGVtIFtdKTogRXVpTWVudUl0ZW0gW10ge1xuICAgICAgICByZXR1cm4gbWVudUl0ZW1zLmZpbHRlcigoaXRlbXMpID0+IGl0ZW1zLmZpbHRlcmVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjaGVja3MgdGhlIGZvY3VzIHN0YXRlIG9mIHRoZSBhY3Rpb24gaWNvblxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGNoZWNrQWN0aW9uSWNvbkZvY3VzU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIC8vIGNoZWNrIGlmIHRoZSBhY3Rpb24gaWNvbiBpcyBmb2N1c2VkIGFuZCBpZiBub3QgZm9jdXMgaXQsIG90aGVyd2lzZSBmb2N1cyB0aGUgYWN0aXZlIGl0ZW1cbiAgICAgICAgIXRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uaXNBY3Rpb25JY29uRm9jdXNlZCA/IHRoaXMuZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uZm9jdXNBY3Rpb25JY29uKCkgOiB0aGlzLmZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZmlsdGVyIGFsbCBtZW51IGl0ZW1zIGdpdmVuIGEgdmFsdWVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZW51SXRlbXMgYW4gYXJyYXkgb2YgbWVudSBpdGVtc1xuICAgICAqIEBwYXJhbSBmaWx0ZXJWYWx1ZSB0aGUgdmFsdWUgdG8gZmlsdGVyIG1lbnUgaXRlbXNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmlsdGVyTWVudUl0ZW1zKG1lbnVJdGVtczogRXVpTWVudUl0ZW1bXSwgZmlsdGVyVmFsdWU6IHN0cmluZyk6IEV1aU1lbnVJdGVtW10ge1xuICAgICAgICByZXR1cm4gbWVudUl0ZW1zPy5tYXAoKGl0ZW06IEV1aU1lbnVJdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZCA9IGl0ZW0ubGFiZWw/LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXJWYWx1ZS50b0xvd2VyQ2FzZSgpKSAhPT0gLTE7XG4gICAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gPSB0aGlzLmZpbHRlck1lbnVJdGVtcyhpdGVtLmNoaWxkcmVuLCBmaWx0ZXJWYWx1ZSk7XG4gICAgICAgICAgICAgICAgaXRlbS5maWx0ZXJlZCA9IGl0ZW0uY2hpbGRyZW4uZmlsdGVyKChsKSA9PiBsWydmaWx0ZXJlZCddID09PSB0cnVlKS5sZW5ndGggPiAwO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgICAgIGl0ZW0uZmlsdGVyZWQgPSBmb3VuZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaXRlbS5maWx0ZXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH0pIHx8IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGV4cGFuZCAvIGNvbGxhcHNlIGFsbCBpdGVtc1xuICAgICAqXG4gICAgICogQHBhcmFtIGlzRXhwYW5kZWRcbiAgICAgKiBAcGFyYW0gaXRlbXNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0RXhwYW5kZWRUb0FsbEl0ZW1zKGlzRXhwYW5kZWQ6IGJvb2xlYW4sIGl0ZW1zOiBFdWlNZW51SXRlbVtdKTogRXVpTWVudUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiBpdGVtcz8ubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGl0ZW0uZXhwYW5kZWQgPSBpdGVtLmV4cGFuZGVkID8/IGlzRXhwYW5kZWQ7XG4gICAgICAgICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IHRoaXMuc2V0RXhwYW5kZWRUb0FsbEl0ZW1zKGlzRXhwYW5kZWQsIGl0ZW0uY2hpbGRyZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oaXRlbSwgeyB2aXNpYmxlOiBpdGVtLnZpc2libGUgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBpdGVtLnZpc2libGUgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGV4cGFuZCAvIGNvbGxhcHNlIGEgbWVudSBpdGVtXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbSBUaGUgaXRlbSB3aGVyZSB0aGUgXCJleHBhbmRcIiBoYWQgYmVlbiB0b2dnbGVkXG4gICAgICogQHBhcmFtIGl0ZW1zIFRoZSBpdGVtcyBsaXN0ICh1c2VkIGZvciByZWN1cnNpb24pXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIG9uRXhwYW5kVG9nZ2xlZChpdGVtOiBFdWlNZW51SXRlbSwgaXRlbXM6IEV1aU1lbnVJdGVtW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXRlbUlkeCA9IGl0ZW1zPy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICBpZiAoaXRlbUlkeCA+IC0xKSB7XG4gICAgICAgICAgICBpdGVtc1tpdGVtSWR4XS5leHBhbmRlZCA9ICFpdGVtc1tpdGVtSWR4XS5leHBhbmRlZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goKGkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXhwYW5kVG9nZ2xlZChpdGVtLCBpLmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNvbmZpZ3VyZSBhbiBhcnJheSBvZiBpdGVtcyB3aXRoIHZpc2libGUsIGZpbHRlcmVkIGFuZCBleHBhbmQgKGluIGNhc2Ugb2YgZXhwYW5kQWxsSXRlbXMgZmxhZyBlbmFibGVkKSBwcm9wZXJ0aWVzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbXMgQW4gYXJyYXkgb2YgRXVpTWVudUl0ZW1cbiAgICAgKiBAcGFyYW0gcGFyZW50IHRoZSBwYXJlbnQgaXRlbSBvZiBpdGVtcyBpZiBleGlzdHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY29uZmlndXJlSXRlbXMoaXRlbXM6IEV1aU1lbnVJdGVtW10sIHBhcmVudD86IEV1aU1lbnVJdGVtKTogRXVpTWVudUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiBpdGVtcz8ubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAvLyByZWN1cnNpb24gaW4gY2FzZSB0aGVyZSBhcmUgY2hpbGRyZW5cbiAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IHRoaXMuY29uZmlndXJlSXRlbXMoaXRlbS5jaGlsZHJlbiwgaXRlbSk7XG4gICAgICAgICAgICAgICAgLy8gZXhwYW5kIGFsbCBwYXJlbnRzIHdpdGggY2hpbGRyZW5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5leHBhbmRBbGxJdGVtcykge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBwb2ludCB0byB0aGUgcGFyZW50XG4gICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgaXRlbS5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgaXRlbXMgYXJlIGNvbmZpZ3VyZWQgd2l0aCBhIHVuaXF1ZSBpZFxuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXM/Lm1hcCgoaXRlbSkgPT4gdGhpcy5zZXRSYW5kb21JZChpdGVtKSk7XG5cbiAgICAgICAgICAgIGlmIChpdGVtLmxhYmVsICYmIHRoaXMuaGFzQ29sbGFwc2VkSW5pdGlhbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB3b3JkcyA9IGl0ZW0ubGFiZWwuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICBpZiAod29yZHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaW5pdGlhbHMgPSBgJHtpdGVtLmxhYmVsLnN1YnN0cmluZygwLCAxKX0ke2l0ZW0ubGFiZWwuc3Vic3RyaW5nKDEsIDEpfWA7XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmluaXRpYWxzID0gYCR7d29yZHNbMF0uc3Vic3RyaW5nKDAsIDEpfSR7d29yZHNbMV0uc3Vic3RyaW5nKDAsIDEpfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpdGVtLCB7IHZpc2libGU6IGl0ZW0udmlzaWJsZSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGl0ZW0udmlzaWJsZSwgZmlsdGVyZWQ6IHRydWUgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdpdmVuIGEgVVJMIGFuZCBhIGxpc3Qgb2YgaXRlbXMsIGl0IHdpbGwgZXhwYW5kIHRoZSBpdGVtIHRoYXQgbWF0Y2hlcyB0aGUgVVJMLiBJZiBub3QgaXRlbSBtYXRjaGVzIGV4YWN0bHkgdGhlIHVybCwgdGhlbiBpdCB3aWxsXG4gICAgICogbWF0Y2ggdGhlIGl0ZW0gdGhhdCBpcyBtb3N0IHJlbGV2YW50IHRvIHRoYXQgdXJsLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVybFxuICAgICAqIEBwYXJhbSBpdGVtc1xuICAgICAqIEBwYXJhbSByZWxldmFudEl0ZW1cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZE1vc3RSZWxldmFudEl0ZW0odXJsOiBzdHJpbmcsIGl0ZW1zOiBFdWlNZW51SXRlbVtdLCByZWxldmFudEl0ZW0/OiBFdWlNZW51SXRlbSk6IEV1aU1lbnVJdGVtIHtcbiAgICAgICAgaWYgKCFpdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS51cmwgJiYgdXJsLmluZGV4T2YoaXRlbS51cmwuc3Vic3RyaW5nKDEpKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgcmVsZXZhbnRJdGVtID0gdGhpcy5nZXRNb3N0UmVsZXZhbnRJdGVtKHVybCwgcmVsZXZhbnRJdGVtLCBpdGVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICByZWxldmFudEl0ZW0gPSB0aGlzLmZpbmRNb3N0UmVsZXZhbnRJdGVtKHVybCwgaXRlbS5jaGlsZHJlbiwgcmVsZXZhbnRJdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlbGV2YW50SXRlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHaXZlbiB0d28gaXRlbXMgd2l0aCB1cmwgcmV0dXJuIHRoZSBvbmUgd2l0aCB0aGUgbW9zdCByZWxldmFudCB1cmwgdGhhdCBtYXRjaGVzIGdpdmVuIHVybFxuICAgICAqXG4gICAgICogQHBhcmFtIHVybCBBIFVSTCB0byBiZSBtYXRjaGVkIHdpdGggdGhlIG9uZSBvZiBnaXZlbiBpdGVtc1xuICAgICAqIEBwYXJhbSBpdGVtMVxuICAgICAqIEBwYXJhbSBpdGVtMlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRNb3N0UmVsZXZhbnRJdGVtKHVybDogc3RyaW5nLCBpdGVtMTogRXVpTWVudUl0ZW0sIGl0ZW0yOiBFdWlNZW51SXRlbSk6IEV1aU1lbnVJdGVtIHtcbiAgICAgICAgY29uc3QgcmVtYWluZGVyMSA9IHVybC5yZXBsYWNlKGl0ZW0xPy51cmwgfHwgJycsICcnKTtcbiAgICAgICAgY29uc3QgcmVtYWluZGVyMiA9IHVybC5yZXBsYWNlKGl0ZW0yPy51cmwgfHwgJycsICcnKTtcblxuICAgICAgICByZXR1cm4gcmVtYWluZGVyMS5sZW5ndGggPCByZW1haW5kZXIyLmxlbmd0aCA/IGl0ZW0xIDogaXRlbTI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2l2ZW4gYW4gaXRlbSwgaWYgdGhlcmUncyBhIHBhcmVudCBleHBhbmQgaXQgdW50aWwgeW91IHJlYWNoIHRoZSByb290IGl0ZW1cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtIEdpdmVuIG1lbnUgaXRlbVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBleHBhbmRUb0dpdmVuSXRlbShpdGVtOiBFdWlNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbS5wYXJlbnQpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gKGl0ZW0ucGFyZW50LmV4cGFuZGVkID0gdHJ1ZSkpO1xuICAgICAgICAgICAgdGhpcy5leHBhbmRUb0dpdmVuSXRlbShpdGVtLnBhcmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgYSByYW5kb20gaWQgdG8gYW4gaXRlbSBhbmQgaXRzIGNoaWxkIGlmIHRoZXkgZG9uJ3QgaGF2ZSBvbmVcbiAgICAgKiBAcGFyYW0gaXRlbVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRSYW5kb21JZChpdGVtOiBFdWlNZW51SXRlbSk6IEV1aU1lbnVJdGVtIHtcbiAgICAgICAgaXRlbS5pZCA9IGl0ZW0uaWQgfHwgY3J5cHRvLnJhbmRvbVVVSUQoKTtcbiAgICAgICAgaWYoaXRlbS5jaGlsZHJlbil7XG4gICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gaXRlbS5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0UmFuZG9tSWQoY2hpbGQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2Nyb2xsIHRvIGFuIGl0ZW0gaWYgaXQncyBub3QgdmlzaWJsZSBpbiB0aGUgdmlld3BvcnRcbiAgICAgKiBAcGFyYW0gdXJsXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHNjcm9sbFRvSXRlbSh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5maW5kTW9zdFJlbGV2YW50SXRlbSh1cmwsIHRoaXMuaXRlbXMpO1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgLy8gY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGF0IGl0ZW0gdG8gZXhwYW5kZWQgaWYgaXQncyBub3RcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kVG9HaXZlbkl0ZW0oaXRlbSk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KF8gPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy5tZW51SXRlbXNDb21wb25lbnRzPy5maW5kKChtZW51SXRlbSkgPT4gbWVudUl0ZW0uaXRlbS5pZCA9PT0gaXRlbS5pZCk7XG4gICAgICAgICAgICAgICAgaWYobWVudUl0ZW0gJiYgIW1lbnVJdGVtLmVsZW1lbnRJc1Zpc2libGVJblZpZXdwb3J0KCkpe1xuICAgICAgICAgICAgICAgICAgICBtZW51SXRlbS5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGZpbHRlciBpbnB1dCBoYXMgYSB2YWx1ZVxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBpc0ZpbHRlckVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcklucHV0Py5uYXRpdmVFbGVtZW50Py52YWx1ZS5sZW5ndGggPiAwXG4gICAgfVxufVxuIiwiQGlmIChoYXNGaWx0ZXIpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXVpLW1lbnUtZmlsdGVyXCIgW2NsYXNzLmV1aS1tZW51LWZpbHRlci0tY29sbGFwc2VkXT1cImlzQ29sbGFwc2VkXCIgKGNsaWNrKT1cIm9uTWVudUZpbHRlckNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPGV1aS1pY29uLWlucHV0PlxuICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWVjbC1zZWFyY2hcIiBmaWxsQ29sb3I9XCJuZXV0cmFsLWxpZ2h0ZXJcIiBhcmlhLWxhYmVsPVwiU2VhcmNoIEljb25cIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNmaWx0ZXJJbnB1dFxuICAgICAgICAgICAgICAgIGV1aUlucHV0VGV4dFxuICAgICAgICAgICAgICAgIFtldWlDbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uRmlsdGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hGaWx0ZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZWFyY2hGaWx0ZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZpbHRlclZhbHVlXCIgLz5cbiAgICAgICAgPC9ldWktaWNvbi1pbnB1dD5cbiAgICA8L2Rpdj5cbn1cblxuPHVsIGV1aUxpc3QgY2xhc3M9XCJldWktbWVudVwiIHJvbGU9XCJtZW51YmFyXCIgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCIgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIj5cbiAgICBAaWYgKGl0ZW1zKSB7XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrIGl0ZW0uaWQ7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVJdGVtVGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBtZW51SXRlbTogaXRlbSwgaW5kZXg6IGluZGV4IH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXVpLW1lbnUtLW5vLWl0ZW1zXCI+Tm8gbWVudSBpdGVtcyBkZWZpbmVkPC9zcGFuPlxuICAgIH1cbjwvdWw+XG5cbjwhLS0gZGVzY3JpYmUgdGhlIHJlY3Vyc2l2ZSB0ZW1wbGF0ZSBvZiB0aGUgbWVudSBpdGVtIC0tPlxuPG5nLXRlbXBsYXRlICNtZW51SXRlbVRlbXBsYXRlUmVmIGxldC1pdGVtPVwibWVudUl0ZW1cIiBsZXQtcGFyZW50PVwicGFyZW50XCIgbGV0LWk9XCJpbmRleFwiPlxuICAgIDwhLS0gcmVuZGVyIHRoZSBtZW51IGl0ZW0tLT5cbiAgICA8ZXVpLW1lbnUtaXRlbVxuICAgICAgICAqbmdJZj1cIml0ZW0uZmlsdGVyZWRcIlxuICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgW3BhcmVudF09XCJwYXJlbnRcIlxuICAgICAgICBbaGFzSWNvbl09XCJoYXNJY29uc1wiXG4gICAgICAgIFtoYXNUb29sdGlwXT1cImhhc1Rvb2x0aXBcIlxuICAgICAgICBbaGFzVG9vbHRpcE9uRXhwYW5kZWRdPVwiaGFzVG9vbHRpcE9uRXhwYW5kZWRcIlxuICAgICAgICBbaXNDb2xsYXBzZWRdPVwiaXNDb2xsYXBzZWRcIlxuICAgICAgICBbaGFzQm9sZFJvb3RMZXZlbF09XCJoYXNCb2xkUm9vdExldmVsXCJcbiAgICAgICAgW2hhc0NvbGxhcHNlZEluaXRpYWxzXT1cImhhc0NvbGxhcHNlZEluaXRpYWxzXCJcbiAgICAgICAgKGV4cGFuZFRvZ2dsZSk9XCJvbkV4cGFuZFRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgKGl0ZW1DbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuICAgICAgICBbaGFzRXhwYW5kSWNvbl09XCJoYXNFeHBhbmRJY29uXCI+XG4gICAgICAgIDwhLS0gaWYgdGhlIG1lbnUgaXRlbSBoYXMgY2hpbGRyZW4sIHJlbmRlciB0aGUgY2hpbGRyZW4gLS0+XG4gICAgICAgIEBpZiAoc2hvdWxkUmVuZGVyQ2hpbGQoaXRlbSkpIHtcbiAgICAgICAgICAgIDx1bCBldWlMaXN0IGNsYXNzPVwiZXVpLW1lbnUgZXVpLW1lbnUtc3ViXCIgcm9sZT1cIm1lbnVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0ubGFiZWxcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoY2hpbGQgb2YgaXRlbS5jaGlsZHJlbjsgdHJhY2sgY2hpbGQuaWQ7IGxldCBjaGlsZEluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51SXRlbVRlbXBsYXRlUmVmXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgbWVudUl0ZW06IGNoaWxkLCBpbmRleDogY2hpbGRJbmRleCwgcGFyZW50OiBpdGVtIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICB9XG4gICAgPC9ldWktbWVudS1pdGVtPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
@@ -11,6 +11,7 @@ export class EuiSidebarMenuComponent {
|
|
11
11
|
this.hasFilter = false;
|
12
12
|
this.hasIcons = false;
|
13
13
|
this.hasTooltip = true;
|
14
|
+
this.hasTooltipOnExpanded = false;
|
14
15
|
this.expandAllItems = false;
|
15
16
|
this.hasBoldRootLevel = false;
|
16
17
|
this.style = '';
|
@@ -25,11 +26,11 @@ export class EuiSidebarMenuComponent {
|
|
25
26
|
this.menuClick.emit(event);
|
26
27
|
}
|
27
28
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiSidebarMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: EuiSidebarMenuComponent, isStandalone: true, selector: "eui-sidebar-menu", inputs: { items: "items", hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], hasBoldRootLevel: ["hasBoldRootLevel", "hasBoldRootLevel", booleanAttribute], style: "style", fragmentId: "fragmentId", searchFilterLabel: "searchFilterLabel", externalTarget: "externalTarget", filterValue: "filterValue" }, outputs: { menuClick: "menuClick", itemClick: "itemClick" }, host: { properties: { "class": "this.string" } }, ngImport: i0, template: "<!--TODO: set the classes into one div container instead of two-->\n<div class=\"eui-sidebar-menu__container\" [class.eui-sidebar-menu__container--collapsed]=\"isCollapsed\" [style]=\"style\">\n <div class=\"eui-sidebar-menu__content\">\n <eui-menu\n [items]=\"items\"\n [hasFilter]=\"hasFilter\"\n [hasIcons]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n [expandAllItems]=\"expandAllItems\"\n [fragmentId]=\"fragmentId\"\n [searchFilterLabel]=\"searchFilterLabel\"\n [filterValue]=\"filterValue\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n (isClick)=\"onMenuClicked($event)\"\n (itemClick)=\"onMenuItemClicked($event)\">\n </eui-menu>\n </div>\n</div>\n", styles: [".eui-18 .eui-sidebar-menu{display:flex;height:100%;width:100%}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container{background-color:var(--eui-c-bg);height:100%;width:100%}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-c-neutral-bg-light)}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}@-moz-document url-prefix(){.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container{scrollbar-color:var(--eui-c-neutral-lighter) var(--eui-c-neutral-bg-light);scrollbar-width:auto}}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content{display:flex;flex-direction:column;height:100%;position:relative}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container--collapsed{position:relative;width:var(--eui-app-sidebar-width-close-active)}\n"], dependencies: [{ kind: "ngmodule", type: EuiMenuModule }, { kind: "component", type: i1.EuiMenuComponent, selector: "eui-menu", inputs: ["items", "searchFilterLabel", "externalLinkLabel", "fragmentId", "filterValue", "isCollapsed", "hasCollapsedInitials", "hasFilter", "hasIcons", "hasTooltip", "expandAllItems", "isFlat", "hasScrollToItem", "hasBoldRootLevel"], outputs: ["isClick", "itemClick", "expandToggle"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: EuiSidebarMenuComponent, isStandalone: true, selector: "eui-sidebar-menu", inputs: { items: "items", hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], hasTooltipOnExpanded: ["hasTooltipOnExpanded", "hasTooltipOnExpanded", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], hasBoldRootLevel: ["hasBoldRootLevel", "hasBoldRootLevel", booleanAttribute], style: "style", fragmentId: "fragmentId", searchFilterLabel: "searchFilterLabel", externalTarget: "externalTarget", filterValue: "filterValue" }, outputs: { menuClick: "menuClick", itemClick: "itemClick" }, host: { properties: { "class": "this.string" } }, ngImport: i0, template: "<!--TODO: set the classes into one div container instead of two-->\n<div class=\"eui-sidebar-menu__container\" [class.eui-sidebar-menu__container--collapsed]=\"isCollapsed\" [style]=\"style\">\n <div class=\"eui-sidebar-menu__content\">\n <eui-menu\n [items]=\"items\"\n [hasFilter]=\"hasFilter\"\n [hasIcons]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [hasTooltipOnExpanded]=\"hasTooltipOnExpanded\"\n [isCollapsed]=\"isCollapsed\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n [expandAllItems]=\"expandAllItems\"\n [fragmentId]=\"fragmentId\"\n [searchFilterLabel]=\"searchFilterLabel\"\n [filterValue]=\"filterValue\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n (isClick)=\"onMenuClicked($event)\"\n (itemClick)=\"onMenuItemClicked($event)\">\n </eui-menu>\n </div>\n</div>\n", styles: [".eui-18 .eui-sidebar-menu{display:flex;height:100%;width:100%}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container{background-color:var(--eui-c-bg);height:100%;width:100%}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-c-neutral-bg-light)}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}@-moz-document url-prefix(){.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container{scrollbar-color:var(--eui-c-neutral-lighter) var(--eui-c-neutral-bg-light);scrollbar-width:auto}}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content{display:flex;flex-direction:column;height:100%;position:relative}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container--collapsed{position:relative;width:var(--eui-app-sidebar-width-close-active)}\n"], dependencies: [{ kind: "ngmodule", type: EuiMenuModule }, { kind: "component", type: i1.EuiMenuComponent, selector: "eui-menu", inputs: ["items", "searchFilterLabel", "externalLinkLabel", "fragmentId", "filterValue", "isCollapsed", "hasCollapsedInitials", "hasFilter", "hasIcons", "hasTooltip", "hasTooltipOnExpanded", "expandAllItems", "isFlat", "hasScrollToItem", "hasBoldRootLevel"], outputs: ["isClick", "itemClick", "expandToggle"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
29
30
|
}
|
30
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiSidebarMenuComponent, decorators: [{
|
31
32
|
type: Component,
|
32
|
-
args: [{ selector: 'eui-sidebar-menu', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, standalone: true, imports: [EuiMenuModule], template: "<!--TODO: set the classes into one div container instead of two-->\n<div class=\"eui-sidebar-menu__container\" [class.eui-sidebar-menu__container--collapsed]=\"isCollapsed\" [style]=\"style\">\n <div class=\"eui-sidebar-menu__content\">\n <eui-menu\n [items]=\"items\"\n [hasFilter]=\"hasFilter\"\n [hasIcons]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n [expandAllItems]=\"expandAllItems\"\n [fragmentId]=\"fragmentId\"\n [searchFilterLabel]=\"searchFilterLabel\"\n [filterValue]=\"filterValue\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n (isClick)=\"onMenuClicked($event)\"\n (itemClick)=\"onMenuItemClicked($event)\">\n </eui-menu>\n </div>\n</div>\n", styles: [".eui-18 .eui-sidebar-menu{display:flex;height:100%;width:100%}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container{background-color:var(--eui-c-bg);height:100%;width:100%}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-c-neutral-bg-light)}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}@-moz-document url-prefix(){.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container{scrollbar-color:var(--eui-c-neutral-lighter) var(--eui-c-neutral-bg-light);scrollbar-width:auto}}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content{display:flex;flex-direction:column;height:100%;position:relative}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container--collapsed{position:relative;width:var(--eui-app-sidebar-width-close-active)}\n"] }]
|
33
|
+
args: [{ selector: 'eui-sidebar-menu', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, standalone: true, imports: [EuiMenuModule], template: "<!--TODO: set the classes into one div container instead of two-->\n<div class=\"eui-sidebar-menu__container\" [class.eui-sidebar-menu__container--collapsed]=\"isCollapsed\" [style]=\"style\">\n <div class=\"eui-sidebar-menu__content\">\n <eui-menu\n [items]=\"items\"\n [hasFilter]=\"hasFilter\"\n [hasIcons]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [hasTooltipOnExpanded]=\"hasTooltipOnExpanded\"\n [isCollapsed]=\"isCollapsed\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n [expandAllItems]=\"expandAllItems\"\n [fragmentId]=\"fragmentId\"\n [searchFilterLabel]=\"searchFilterLabel\"\n [filterValue]=\"filterValue\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n (isClick)=\"onMenuClicked($event)\"\n (itemClick)=\"onMenuItemClicked($event)\">\n </eui-menu>\n </div>\n</div>\n", styles: [".eui-18 .eui-sidebar-menu{display:flex;height:100%;width:100%}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container{background-color:var(--eui-c-bg);height:100%;width:100%}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-c-neutral-bg-light)}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}@-moz-document url-prefix(){.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container{scrollbar-color:var(--eui-c-neutral-lighter) var(--eui-c-neutral-bg-light);scrollbar-width:auto}}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container .eui-sidebar-menu__content{display:flex;flex-direction:column;height:100%;position:relative}.eui-18 .eui-sidebar-menu .eui-sidebar-menu__container--collapsed{position:relative;width:var(--eui-app-sidebar-width-close-active)}\n"] }]
|
33
34
|
}], propDecorators: { string: [{
|
34
35
|
type: HostBinding,
|
35
36
|
args: ['class']
|
@@ -50,6 +51,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
50
51
|
}], hasTooltip: [{
|
51
52
|
type: Input,
|
52
53
|
args: [{ transform: booleanAttribute }]
|
54
|
+
}], hasTooltipOnExpanded: [{
|
55
|
+
type: Input,
|
56
|
+
args: [{ transform: booleanAttribute }]
|
53
57
|
}], expandAllItems: [{
|
54
58
|
type: Input,
|
55
59
|
args: [{ transform: booleanAttribute }]
|
@@ -71,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
71
75
|
}], itemClick: [{
|
72
76
|
type: Output
|
73
77
|
}] } });
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXNpZGViYXItbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktc2lkZWJhci1tZW51L2V1aS1zaWRlYmFyLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXNpZGViYXItbWVudS9ldWktc2lkZWJhci1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxKLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBV3pELE1BQU0sT0FBTyx1QkFBdUI7SUFUcEM7UUFVMEIsV0FBTSxHQUFHLGtCQUFrQixDQUFDO1FBRXpDLFVBQUssR0FBa0IsRUFBRSxDQUFDO1FBRUsseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFeEQsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUlYLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGNBQVMsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCxjQUFTLEdBQThCLElBQUksWUFBWSxFQUFFLENBQUM7S0FTdkU7SUFQYSxpQkFBaUIsQ0FBQyxJQUFpQjtRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRVMsYUFBYSxDQUFDLEtBQWM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzsrR0E1QlEsdUJBQXVCO21HQUF2Qix1QkFBdUIscUpBS1osZ0JBQWdCLCtDQUNoQixnQkFBZ0IseUNBQ2hCLGdCQUFnQixzQ0FDaEIsZ0JBQWdCLDRDQUNoQixnQkFBZ0IsMEVBQ2hCLGdCQUFnQix3REFDaEIsZ0JBQWdCLDhEQUNoQixnQkFBZ0IsNFJDekJ4QyxrOEJBcUJBLHN2Q0RWYyxhQUFhOzs0RkFFZCx1QkFBdUI7a0JBVG5DLFNBQVM7K0JBQ0ksa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE9BQU8saUJBQ2pDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsYUFBYSxDQUFDOzhCQUdGLE1BQU07c0JBQTNCLFdBQVc7dUJBQUMsT0FBTztnQkFFWCxLQUFLO3NCQUFiLEtBQUs7Z0JBRWtDLG9CQUFvQjtzQkFBM0QsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxXQUFXO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFNBQVM7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLG9CQUFvQjtzQkFBM0QsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxjQUFjO3NCQUFyRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLGdCQUFnQjtzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFN0IsS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3RW5jYXBzdWxhdGlvbiwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXVpTWVudUl0ZW0gfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLW1lbnUnO1xuaW1wb3J0IHsgRXVpTWVudU1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktbWVudSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXNpZGViYXItbWVudScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1zaWRlYmFyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL19zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtFdWlNZW51TW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpU2lkZWJhck1lbnVDb21wb25lbnQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBzdHJpbmcgPSAnZXVpLXNpZGViYXItbWVudSc7XG5cbiAgICBASW5wdXQoKSBpdGVtczogRXVpTWVudUl0ZW1bXSA9IFtdO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc0NvbGxhcHNlZEluaXRpYWxzID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzQ29sbGFwc2VkID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc0ZpbHRlciA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNJY29ucyA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNUb29sdGlwID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzVG9vbHRpcE9uRXhwYW5kZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZXhwYW5kQWxsSXRlbXMgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzQm9sZFJvb3RMZXZlbCA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc3R5bGUgPSAnJztcbiAgICBASW5wdXQoKSBmcmFnbWVudElkOiBzdHJpbmc7IC8vIEFuY2hvciB0byBuYXZpZ2F0ZSB0byAoc2VlIGV1aS1tZW51KVxuICAgIEBJbnB1dCgpIHNlYXJjaEZpbHRlckxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZXh0ZXJuYWxUYXJnZXQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBmaWx0ZXJWYWx1ZSA9ICcnO1xuICAgIEBPdXRwdXQoKSBtZW51Q2xpY2s6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgaXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8RXVpTWVudUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHJvdGVjdGVkIG9uTWVudUl0ZW1DbGlja2VkKGl0ZW06IEV1aU1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoaXRlbSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uTWVudUNsaWNrZWQoZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51Q2xpY2suZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiPCEtLVRPRE86IHNldCB0aGUgY2xhc3NlcyBpbnRvIG9uZSBkaXYgY29udGFpbmVyIGluc3RlYWQgb2YgdHdvLS0+XG48ZGl2IGNsYXNzPVwiZXVpLXNpZGViYXItbWVudV9fY29udGFpbmVyXCIgW2NsYXNzLmV1aS1zaWRlYmFyLW1lbnVfX2NvbnRhaW5lci0tY29sbGFwc2VkXT1cImlzQ29sbGFwc2VkXCIgW3N0eWxlXT1cInN0eWxlXCI+XG4gICAgPGRpdiBjbGFzcz1cImV1aS1zaWRlYmFyLW1lbnVfX2NvbnRlbnRcIj5cbiAgICAgICAgPGV1aS1tZW51XG4gICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgICAgICAgICAgW2hhc0ZpbHRlcl09XCJoYXNGaWx0ZXJcIlxuICAgICAgICAgICAgW2hhc0ljb25zXT1cImhhc0ljb25zXCJcbiAgICAgICAgICAgIFtoYXNUb29sdGlwXT1cImhhc1Rvb2x0aXBcIlxuICAgICAgICAgICAgW2hhc1Rvb2x0aXBPbkV4cGFuZGVkXT1cImhhc1Rvb2x0aXBPbkV4cGFuZGVkXCJcbiAgICAgICAgICAgIFtpc0NvbGxhcHNlZF09XCJpc0NvbGxhcHNlZFwiXG4gICAgICAgICAgICBbaGFzQ29sbGFwc2VkSW5pdGlhbHNdPVwiaGFzQ29sbGFwc2VkSW5pdGlhbHNcIlxuICAgICAgICAgICAgW2V4cGFuZEFsbEl0ZW1zXT1cImV4cGFuZEFsbEl0ZW1zXCJcbiAgICAgICAgICAgIFtmcmFnbWVudElkXT1cImZyYWdtZW50SWRcIlxuICAgICAgICAgICAgW3NlYXJjaEZpbHRlckxhYmVsXT1cInNlYXJjaEZpbHRlckxhYmVsXCJcbiAgICAgICAgICAgIFtmaWx0ZXJWYWx1ZV09XCJmaWx0ZXJWYWx1ZVwiXG4gICAgICAgICAgICBbaGFzQm9sZFJvb3RMZXZlbF09XCJoYXNCb2xkUm9vdExldmVsXCJcbiAgICAgICAgICAgIChpc0NsaWNrKT1cIm9uTWVudUNsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoaXRlbUNsaWNrKT1cIm9uTWVudUl0ZW1DbGlja2VkKCRldmVudClcIj5cbiAgICAgICAgPC9ldWktbWVudT5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
@@ -52,7 +52,7 @@ export class EuiAppSidebarMenuComponent {
|
|
52
52
|
this.sidebarItemToggle.emit(event);
|
53
53
|
}
|
54
54
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiAppSidebarMenuComponent, deps: [{ token: i1.EuiAppShellService }], target: i0.ɵɵFactoryTarget.Component }); }
|
55
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: EuiAppSidebarMenuComponent, selector: "eui-app-sidebar-menu", inputs: { hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], isFlat: ["isFlat", "isFlat", booleanAttribute], hasScrollToItem: ["hasScrollToItem", "hasScrollToItem", booleanAttribute], hasBoldRootLevel: ["hasBoldRootLevel", "hasBoldRootLevel", booleanAttribute], items: "items" }, outputs: { sidebarItemClick: "sidebarItemClick", sidebarItemToggle: "sidebarItemToggle" }, host: { properties: { "class": "this.class" } }, usesOnChanges: true, ngImport: i0, template: "<eui-menu\n [items]=\"items\"\n [hasFilter]=\"hasFilter\"\n [hasIcons]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [expandAllItems]=\"expandAllItems\"\n [isFlat]=\"isFlat\"\n [hasScrollToItem]=\"hasScrollToItem\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n [isCollapsed]=\"!(asService.state$ | async).isSidebarOpen\"\n (itemClick)=\"onMenuItemClicked($event)\"\n (expandToggle)=\"onSidebarItemToggled($event)\">\n</eui-menu>\n", dependencies: [{ kind: "component", type: i2.EuiMenuComponent, selector: "eui-menu", inputs: ["items", "searchFilterLabel", "externalLinkLabel", "fragmentId", "filterValue", "isCollapsed", "hasCollapsedInitials", "hasFilter", "hasIcons", "hasTooltip", "expandAllItems", "isFlat", "hasScrollToItem", "hasBoldRootLevel"], outputs: ["isClick", "itemClick", "expandToggle"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
|
55
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.13", type: EuiAppSidebarMenuComponent, selector: "eui-app-sidebar-menu", inputs: { hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], isFlat: ["isFlat", "isFlat", booleanAttribute], hasScrollToItem: ["hasScrollToItem", "hasScrollToItem", booleanAttribute], hasBoldRootLevel: ["hasBoldRootLevel", "hasBoldRootLevel", booleanAttribute], items: "items" }, outputs: { sidebarItemClick: "sidebarItemClick", sidebarItemToggle: "sidebarItemToggle" }, host: { properties: { "class": "this.class" } }, usesOnChanges: true, ngImport: i0, template: "<eui-menu\n [items]=\"items\"\n [hasFilter]=\"hasFilter\"\n [hasIcons]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [expandAllItems]=\"expandAllItems\"\n [isFlat]=\"isFlat\"\n [hasScrollToItem]=\"hasScrollToItem\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n [isCollapsed]=\"!(asService.state$ | async).isSidebarOpen\"\n (itemClick)=\"onMenuItemClicked($event)\"\n (expandToggle)=\"onSidebarItemToggled($event)\">\n</eui-menu>\n", dependencies: [{ kind: "component", type: i2.EuiMenuComponent, selector: "eui-menu", inputs: ["items", "searchFilterLabel", "externalLinkLabel", "fragmentId", "filterValue", "isCollapsed", "hasCollapsedInitials", "hasFilter", "hasIcons", "hasTooltip", "hasTooltipOnExpanded", "expandAllItems", "isFlat", "hasScrollToItem", "hasBoldRootLevel"], outputs: ["isClick", "itemClick", "expandToggle"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
|
56
56
|
}
|
57
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EuiAppSidebarMenuComponent, decorators: [{
|
58
58
|
type: Component,
|
@@ -80,7 +80,7 @@ export class EuiToolbarSearchComponent {
|
|
80
80
|
this.search.emit(e);
|
81
81
|
}
|
82
82
|
onSearchInput(e) {
|
83
|
-
if (e.code === 'Enter') {
|
83
|
+
if (e.code === 'Enter' || e.code === 'NumpadEnter') {
|
84
84
|
this.searchTerm = this.searchInput;
|
85
85
|
this.search.emit(this.searchInput);
|
86
86
|
}
|
@@ -148,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
148
148
|
type: ContentChildren,
|
149
149
|
args: [EuiTemplateDirective]
|
150
150
|
}] } });
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGF5b3V0L2V1aS10b29sYmFyL3Rvb2xiYXItc2VhcmNoL3Rvb2xiYXItc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xheW91dC9ldWktdG9vbGJhci90b29sYmFyLXNlYXJjaC90b29sYmFyLXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQzNGLGdCQUFnQixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7OztBQXNCdEUsTUFBTSxPQUFPLHlCQUF5QjtJQUNsQyxJQUNXLFVBQVU7UUFDakIsT0FBTztZQUNILG9CQUFvQjtZQUNwQixJQUFJLENBQUMs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c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVrQyxjQUFjO3NCQUFyRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxrQkFBa0I7c0JBQXpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTVCLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUVnQyxTQUFTO3NCQUEvQyxlQUFlO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIENvbnRlbnRDaGlsZHJlbiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFRlbXBsYXRlUmVmLFxuICAgIEFmdGVyVmlld0luaXQsIFF1ZXJ5TGlzdCwgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBBZnRlckNvbnRlbnRJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdWlBdXRvQ29tcGxldGVJdGVtLCBFdWlBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWF1dG9jb21wbGV0ZSc7XG5cbmltcG9ydCB7IEV1aVRlbXBsYXRlRGlyZWN0aXZlLCBFdWlUZW1wbGF0ZURpcmVjdGl2ZU1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9kaXJlY3RpdmVzJztcbmltcG9ydCB7IEV1aUJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktYnV0dG9uJztcbmltcG9ydCB7IEV1aUljb25Nb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWljb24nO1xuaW1wb3J0IHsgRXVpSWNvbklucHV0TW9kdWxlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1pY29uLWlucHV0JztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFdWlJbnB1dFRleHRNb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWlucHV0LXRleHQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgRXVpSWNvbkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktaWNvbi1idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS10b29sYmFyLXNlYXJjaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rvb2xiYXItc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vdG9vbGJhci1zZWFyY2guY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEV1aUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgRXVpSWNvbk1vZHVsZSxcbiAgICAgICAgRXVpSWNvbkJ1dHRvbk1vZHVsZSxcbiAgICAgICAgRXVpQXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgICAgICBFdWlJY29uSW5wdXRNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIEV1aUlucHV0VGV4dE1vZHVsZSxcbiAgICAgICAgRXVpVGVtcGxhdGVEaXJlY3RpdmVNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVG9vbGJhclNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2V1aS10b29sYmFyLXNlYXJjaCcsXG4gICAgICAgICAgICB0aGlzLmlzSW5wdXRGb2N1cyA/ICdldWktdG9vbGJhci1zZWFyY2gtLWZvY3VzJyA6ICcnLFxuICAgICAgICAgICAgIXRoaXMuaGFzRXhwYW5kQW5pbWF0aW9uID8gJ2V1aS10b29sYmFyLXNlYXJjaC0tbm8tYW5pbWF0aW9uJzogJycsXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAgIC50cmltKCk7XG4gICAgfVxuXG4gICAgaXNJbnB1dEZvY3VzID0gZmFsc2U7XG4gICAgc2VhcmNoVGVybTogc3RyaW5nO1xuICAgIHNlYXJjaElucHV0ID0gJyc7XG5cbiAgICBwdWJsaWMgcmVzdWx0SXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogRXVpQXV0b0NvbXBsZXRlSXRlbSB9PjtcblxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBwYW5lbFdpZHRoID0gJzI1dncnO1xuICAgIEBJbnB1dCgpIHNlYXJjaFJlc3VsdHM6IEV1aUF1dG9Db21wbGV0ZUl0ZW1bXSA9IFtdO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzQXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzSW5wdXRUZXh0ID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1NlYXJjaEJ1dHRvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNFeHBhbmRBbmltYXRpb24gPSB0cnVlO1xuXG4gICAgQE91dHB1dCgpIHNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEV1aUF1dG9Db21wbGV0ZUl0ZW1bXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNlYXJjaENsaWNrOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgaW5wdXRGb2N1czogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgaW5wdXRCbHVyOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihFdWlUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8RXVpVGVtcGxhdGVEaXJlY3RpdmU+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQXV0b2NvbXBsZXRlKSB7XG4gICAgICAgICAgICB0aGlzLmlzSW5wdXRUZXh0ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0lucHV0VGV4dCkge1xuICAgICAgICAgICAgdGhpcy5pc0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzSW5wdXRUZXh0ICYmICF0aGlzLmlzQXV0b2NvbXBsZXRlKSB7XG4gICAgICAgICAgICB0aGlzLmlzQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uZ2V0VHlwZSgpID09PSAncmVzdWx0SXRlbVRlbXBsYXRlJykge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0SXRlbVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TZWxlY3Rpb25DaGFuZ2UoaXRlbXM6IEV1aUF1dG9Db21wbGV0ZUl0ZW1bXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KGl0ZW1zKTtcbiAgICB9XG5cbiAgICBvbklucHV0Rm9jdXMoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRGb2N1cy5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5pc0lucHV0Rm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uSW5wdXRCbHVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaGFzU2VhcmNoQnV0dG9uIHx8ICh0aGlzLmhhc1NlYXJjaEJ1dHRvbiAmJiB0aGlzLnNlYXJjaElucHV0ID09PSAnJykpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRCbHVyLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5pc0lucHV0Rm9jdXMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VhcmNoKGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSBlO1xuICAgICAgICB0aGlzLnNlYXJjaC5lbWl0KGUpO1xuICAgIH1cblxuICAgIG9uU2VhcmNoSW5wdXQoZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZS5jb2RlID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSB0aGlzLnNlYXJjaElucHV0O1xuICAgICAgICAgICAgdGhpcy5zZWFyY2guZW1pdCh0aGlzLnNlYXJjaElucHV0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VhcmNoQ2xpY2soaXNJY29uT25seTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoaXNJY29uT25seSkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hDbGljay5lbWl0KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc0lucHV0Rm9jdXMgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlYXJjaElucHV0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hDbGljay5lbWl0KHRoaXMuc2VhcmNoSW5wdXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmICgoYXNTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc0x0TGFyZ2VUYWJsZXQpIHtcbiAgICA8ZXVpLWljb24tYnV0dG9uIGljb249XCJldWktZWNsLXNlYXJjaFwiIChidXR0b25DbGljayk9XCJvblNlYXJjaENsaWNrKHRydWUpXCIvPlxuXG59IEBlbHNlIHtcbiAgICA8ZXVpLWljb24taW5wdXQgZXVpSWNvblBvc2l0aW9uRW5kPlxuICAgICAgICBAaWYgKGlzQXV0b2NvbXBsZXRlKSB7XG4gICAgICAgICAgICA8ZXVpLWF1dG9jb21wbGV0ZSBbYXV0b2NvbXBsZXRlRGF0YV09XCJzZWFyY2hSZXN1bHRzXCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXJMYWJlbH19XCJcbiAgICAgICAgICAgICAgICBwYW5lbFdpZHRoPVwie3twYW5lbFdpZHRofX1cIlxuICAgICAgICAgICAgICAgIChpbnB1dEJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGlucHV0Rm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlKT1cIm9uU2VhcmNoKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHRlbXBsYXRlcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1vcHRpb24gZXVpVGVtcGxhdGU9XCJkcm9wZG93bk9wdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlc3VsdEl0ZW1UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBvcHRpb24gfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9ldWktYXV0b2NvbXBsZXRlPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoaXNJbnB1dFRleHQpIHtcbiAgICAgICAgICAgICAgICA8aW5wdXQgZXVpSW5wdXRUZXh0IGNsYXNzPVwibXl3cC1zZWFyY2gtYmFyX19pbnB1dFwiIFsobmdNb2RlbCldPVwic2VhcmNoSW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyTGFiZWwgfX1cIlxuICAgICAgICAgICAgICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIiAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCIgKGtleWRvd24pPVwib25TZWFyY2hJbnB1dCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoaGFzU2VhcmNoQnV0dG9uKSB7XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZXVpLXRvb2xiYXItc2VhcmNoX19pbnB1dC1idXR0b25cIlxuICAgICAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICBldWlTaXplU1xuICAgICAgICAgICAgICAgIFtldWlTZWNvbmRhcnldPVwiaXNJbnB1dEZvY3VzXCJcbiAgICAgICAgICAgICAgICBbZXVpUHJpbWFyeV09XCIhaXNJbnB1dEZvY3VzXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWFyY2hDbGljayhmYWxzZSlcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJzZWFyY2ggYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWVjbC1zZWFyY2hcIiBzaXplPVwic1wiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWVjbC1zZWFyY2hcIiBzaXplPVwic1wiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICB9XG4gICAgPC9ldWktaWNvbi1pbnB1dD5cblxufVxuXG4iXX0=
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGF5b3V0L2V1aS10b29sYmFyL3Rvb2xiYXItc2VhcmNoL3Rvb2xiYXItc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xheW91dC9ldWktdG9vbGJhci90b29sYmFyLXNlYXJjaC90b29sYmFyLXNlYXJjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQzNGLGdCQUFnQixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7OztBQXNCdEUsTUFBTSxPQUFPLHlCQUF5QjtJQUNsQyxJQUNXLFVBQVU7UUFDakIsT0FBTztZQUNILG9CQUFvQjtZQUNwQixJQUFJLENBQUMs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V0FBVzt1QkFBQyxPQUFPO2dCQWlCWCxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVrQyxjQUFjO3NCQUFyRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxrQkFBa0I7c0JBQXpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTVCLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUVnQyxTQUFTO3NCQUEvQyxlQUFlO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIENvbnRlbnRDaGlsZHJlbiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFRlbXBsYXRlUmVmLFxuICAgIEFmdGVyVmlld0luaXQsIFF1ZXJ5TGlzdCwgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBBZnRlckNvbnRlbnRJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdWlBdXRvQ29tcGxldGVJdGVtLCBFdWlBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWF1dG9jb21wbGV0ZSc7XG5cbmltcG9ydCB7IEV1aVRlbXBsYXRlRGlyZWN0aXZlLCBFdWlUZW1wbGF0ZURpcmVjdGl2ZU1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9kaXJlY3RpdmVzJztcbmltcG9ydCB7IEV1aUJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktYnV0dG9uJztcbmltcG9ydCB7IEV1aUljb25Nb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWljb24nO1xuaW1wb3J0IHsgRXVpSWNvbklucHV0TW9kdWxlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1pY29uLWlucHV0JztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFdWlJbnB1dFRleHRNb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWlucHV0LXRleHQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgRXVpSWNvbkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktaWNvbi1idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS10b29sYmFyLXNlYXJjaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rvb2xiYXItc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vdG9vbGJhci1zZWFyY2guY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEV1aUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgRXVpSWNvbk1vZHVsZSxcbiAgICAgICAgRXVpSWNvbkJ1dHRvbk1vZHVsZSxcbiAgICAgICAgRXVpQXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgICAgICBFdWlJY29uSW5wdXRNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIEV1aUlucHV0VGV4dE1vZHVsZSxcbiAgICAgICAgRXVpVGVtcGxhdGVEaXJlY3RpdmVNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVG9vbGJhclNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2V1aS10b29sYmFyLXNlYXJjaCcsXG4gICAgICAgICAgICB0aGlzLmlzSW5wdXRGb2N1cyA/ICdldWktdG9vbGJhci1zZWFyY2gtLWZvY3VzJyA6ICcnLFxuICAgICAgICAgICAgIXRoaXMuaGFzRXhwYW5kQW5pbWF0aW9uID8gJ2V1aS10b29sYmFyLXNlYXJjaC0tbm8tYW5pbWF0aW9uJzogJycsXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAgIC50cmltKCk7XG4gICAgfVxuXG4gICAgaXNJbnB1dEZvY3VzID0gZmFsc2U7XG4gICAgc2VhcmNoVGVybTogc3RyaW5nO1xuICAgIHNlYXJjaElucHV0ID0gJyc7XG5cbiAgICBwdWJsaWMgcmVzdWx0SXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogRXVpQXV0b0NvbXBsZXRlSXRlbSB9PjtcblxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBwYW5lbFdpZHRoID0gJzI1dncnO1xuICAgIEBJbnB1dCgpIHNlYXJjaFJlc3VsdHM6IEV1aUF1dG9Db21wbGV0ZUl0ZW1bXSA9IFtdO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzQXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzSW5wdXRUZXh0ID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1NlYXJjaEJ1dHRvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNFeHBhbmRBbmltYXRpb24gPSB0cnVlO1xuXG4gICAgQE91dHB1dCgpIHNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEV1aUF1dG9Db21wbGV0ZUl0ZW1bXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNlYXJjaENsaWNrOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgaW5wdXRGb2N1czogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgaW5wdXRCbHVyOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihFdWlUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8RXVpVGVtcGxhdGVEaXJlY3RpdmU+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQXV0b2NvbXBsZXRlKSB7XG4gICAgICAgICAgICB0aGlzLmlzSW5wdXRUZXh0ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0lucHV0VGV4dCkge1xuICAgICAgICAgICAgdGhpcy5pc0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzSW5wdXRUZXh0ICYmICF0aGlzLmlzQXV0b2NvbXBsZXRlKSB7XG4gICAgICAgICAgICB0aGlzLmlzQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uZ2V0VHlwZSgpID09PSAncmVzdWx0SXRlbVRlbXBsYXRlJykge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0SXRlbVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TZWxlY3Rpb25DaGFuZ2UoaXRlbXM6IEV1aUF1dG9Db21wbGV0ZUl0ZW1bXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KGl0ZW1zKTtcbiAgICB9XG5cbiAgICBvbklucHV0Rm9jdXMoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRGb2N1cy5lbWl0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5pc0lucHV0Rm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uSW5wdXRCbHVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaGFzU2VhcmNoQnV0dG9uIHx8ICh0aGlzLmhhc1NlYXJjaEJ1dHRvbiAmJiB0aGlzLnNlYXJjaElucHV0ID09PSAnJykpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRCbHVyLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5pc0lucHV0Rm9jdXMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VhcmNoKGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSBlO1xuICAgICAgICB0aGlzLnNlYXJjaC5lbWl0KGUpO1xuICAgIH1cblxuICAgIG9uU2VhcmNoSW5wdXQoZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZS5jb2RlID09PSAnRW50ZXInIHx8IGUuY29kZSA9PT0gJ051bXBhZEVudGVyJykge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gdGhpcy5zZWFyY2hJbnB1dDtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoLmVtaXQodGhpcy5zZWFyY2hJbnB1dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNlYXJjaENsaWNrKGlzSWNvbk9ubHk6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzSWNvbk9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoQ2xpY2suZW1pdChudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNJbnB1dEZvY3VzID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWFyY2hJbnB1dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoQ2xpY2suZW1pdCh0aGlzLnNlYXJjaElucHV0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAoKGFzU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNMdExhcmdlVGFibGV0KSB7XG4gICAgPGV1aS1pY29uLWJ1dHRvbiBpY29uPVwiZXVpLWVjbC1zZWFyY2hcIiAoYnV0dG9uQ2xpY2spPVwib25TZWFyY2hDbGljayh0cnVlKVwiLz5cblxufSBAZWxzZSB7XG4gICAgPGV1aS1pY29uLWlucHV0IGV1aUljb25Qb3NpdGlvbkVuZD5cbiAgICAgICAgQGlmIChpc0F1dG9jb21wbGV0ZSkge1xuICAgICAgICAgICAgPGV1aS1hdXRvY29tcGxldGUgW2F1dG9jb21wbGV0ZURhdGFdPVwic2VhcmNoUmVzdWx0c1wiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyTGFiZWx9fVwiXG4gICAgICAgICAgICAgICAgcGFuZWxXaWR0aD1cInt7cGFuZWxXaWR0aH19XCJcbiAgICAgICAgICAgICAgICAoaW5wdXRCbHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChpbnB1dEZvY3VzKT1cIm9uSW5wdXRGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChpbnB1dENoYW5nZSk9XCJvblNlYXJjaCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgQGlmICh0ZW1wbGF0ZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtb3B0aW9uIGV1aVRlbXBsYXRlPVwiZHJvcGRvd25PcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyZXN1bHRJdGVtVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogb3B0aW9uIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZXVpLWF1dG9jb21wbGV0ZT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKGlzSW5wdXRUZXh0KSB7XG4gICAgICAgICAgICAgICAgPGlucHV0IGV1aUlucHV0VGV4dCBjbGFzcz1cIm15d3Atc2VhcmNoLWJhcl9faW5wdXRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaElucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlckxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGZvY3VzKT1cIm9uSW5wdXRGb2N1cygkZXZlbnQpXCIgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiIChrZXlkb3duKT1cIm9uU2VhcmNoSW5wdXQoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGhhc1NlYXJjaEJ1dHRvbikge1xuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImV1aS10b29sYmFyLXNlYXJjaF9faW5wdXQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpU2l6ZVNcbiAgICAgICAgICAgICAgICBbZXVpU2Vjb25kYXJ5XT1cImlzSW5wdXRGb2N1c1wiXG4gICAgICAgICAgICAgICAgW2V1aVByaW1hcnldPVwiIWlzSW5wdXRGb2N1c1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VhcmNoQ2xpY2soZmFsc2UpXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwic2VhcmNoIGJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1lY2wtc2VhcmNoXCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1lY2wtc2VhcmNoXCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgfVxuICAgIDwvZXVpLWljb24taW5wdXQ+XG5cbn1cblxuIl19
|
@@ -24,6 +24,7 @@ export declare class EuiMenuItemComponent implements OnInit, OnChanges, Focusabl
|
|
24
24
|
isActionIconFocused: boolean;
|
25
25
|
hasIcon: boolean;
|
26
26
|
hasTooltip: boolean;
|
27
|
+
hasTooltipOnExpanded: boolean;
|
27
28
|
isCollapsed: boolean;
|
28
29
|
hasCollapsedInitials: boolean;
|
29
30
|
hasBoldRootLevel: boolean;
|
@@ -57,9 +58,10 @@ export declare class EuiMenuItemComponent implements OnInit, OnChanges, Focusabl
|
|
57
58
|
*/
|
58
59
|
private getCssClasses;
|
59
60
|
static ɵfac: i0.ɵɵFactoryDeclaration<EuiMenuItemComponent, never>;
|
60
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<EuiMenuItemComponent, "eui-menu-item", never, { "item": { "alias": "item"; "required": false; }; "parent": { "alias": "parent"; "required": false; }; "hasExpandIcon": { "alias": "hasExpandIcon"; "required": false; }; "hasIcon": { "alias": "hasIcon"; "required": false; }; "hasTooltip": { "alias": "hasTooltip"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "hasCollapsedInitials": { "alias": "hasCollapsedInitials"; "required": false; }; "hasBoldRootLevel": { "alias": "hasBoldRootLevel"; "required": false; }; }, { "expandToggle": "expandToggle"; "itemClick": "itemClick"; }, never, ["*"], false, never>;
|
61
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EuiMenuItemComponent, "eui-menu-item", never, { "item": { "alias": "item"; "required": false; }; "parent": { "alias": "parent"; "required": false; }; "hasExpandIcon": { "alias": "hasExpandIcon"; "required": false; }; "hasIcon": { "alias": "hasIcon"; "required": false; }; "hasTooltip": { "alias": "hasTooltip"; "required": false; }; "hasTooltipOnExpanded": { "alias": "hasTooltipOnExpanded"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "hasCollapsedInitials": { "alias": "hasCollapsedInitials"; "required": false; }; "hasBoldRootLevel": { "alias": "hasBoldRootLevel"; "required": false; }; }, { "expandToggle": "expandToggle"; "itemClick": "itemClick"; }, never, ["*"], false, never>;
|
61
62
|
static ngAcceptInputType_hasIcon: unknown;
|
62
63
|
static ngAcceptInputType_hasTooltip: unknown;
|
64
|
+
static ngAcceptInputType_hasTooltipOnExpanded: unknown;
|
63
65
|
static ngAcceptInputType_isCollapsed: unknown;
|
64
66
|
static ngAcceptInputType_hasCollapsedInitials: unknown;
|
65
67
|
static ngAcceptInputType_hasBoldRootLevel: unknown;
|