@skyux/popovers 7.8.1 → 7.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +321 -247
- package/esm2020/lib/modules/dropdown/dropdown.component.mjs +21 -7
- package/esm2020/lib/modules/popover/popover.component.mjs +22 -7
- package/fesm2015/skyux-popovers.mjs +41 -11
- package/fesm2015/skyux-popovers.mjs.map +1 -1
- package/fesm2020/skyux-popovers.mjs +39 -11
- package/fesm2020/skyux-popovers.mjs.map +1 -1
- package/lib/modules/dropdown/dropdown.component.d.ts +3 -3
- package/lib/modules/popover/popover.component.d.ts +3 -3
- package/package.json +6 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var _SkyDropdownComponent_instances, _SkyDropdownComponent_affixer, _SkyDropdownComponent_ngUnsubscribe, _SkyDropdownComponent_overlay, _SkyDropdownComponent__buttonStyle, _SkyDropdownComponent__buttonType, _SkyDropdownComponent__dismissOnBlur, _SkyDropdownComponent__horizontalAlignment, _SkyDropdownComponent__isOpen, _SkyDropdownComponent__trigger, _SkyDropdownComponent__triggerButton, _SkyDropdownComponent_positionTimeout, _SkyDropdownComponent_changeDetector, _SkyDropdownComponent_affixService, _SkyDropdownComponent_overlayService, _SkyDropdownComponent_logService, _SkyDropdownComponent_themeSvc, _SkyDropdownComponent_addEventListeners, _SkyDropdownComponent_createOverlay, _SkyDropdownComponent_destroyAffixer, _SkyDropdownComponent_destroyOverlay, _SkyDropdownComponent_createAffixer, _SkyDropdownComponent_handleIncomingMessages, _SkyDropdownComponent_sendMessage, _SkyDropdownComponent_positionDropdownMenu;
|
|
1
|
+
var _SkyDropdownComponent_instances, _SkyDropdownComponent_affixer, _SkyDropdownComponent_ngUnsubscribe, _SkyDropdownComponent_overlay, _SkyDropdownComponent__buttonStyle, _SkyDropdownComponent__buttonType, _SkyDropdownComponent__dismissOnBlur, _SkyDropdownComponent__horizontalAlignment, _SkyDropdownComponent__isOpen, _SkyDropdownComponent__trigger, _SkyDropdownComponent__triggerButton, _SkyDropdownComponent_positionTimeout, _SkyDropdownComponent_changeDetector, _SkyDropdownComponent_affixService, _SkyDropdownComponent_overlayService, _SkyDropdownComponent_logService, _SkyDropdownComponent_themeSvc, _SkyDropdownComponent_zIndex, _SkyDropdownComponent_addEventListeners, _SkyDropdownComponent_createOverlay, _SkyDropdownComponent_destroyAffixer, _SkyDropdownComponent_destroyOverlay, _SkyDropdownComponent_createAffixer, _SkyDropdownComponent_handleIncomingMessages, _SkyDropdownComponent_sendMessage, _SkyDropdownComponent_positionDropdownMenu;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import { ChangeDetectionStrategy, Component, ElementRef, Input, Optional, TemplateRef, ViewChild, } from '@angular/core';
|
|
4
|
-
import { SkyAffixAutoFitContext, } from '@skyux/core';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, Optional, TemplateRef, ViewChild, } from '@angular/core';
|
|
4
|
+
import { SKY_STACKING_CONTEXT, SkyAffixAutoFitContext, } from '@skyux/core';
|
|
5
5
|
import { Subject, fromEvent as observableFromEvent } from 'rxjs';
|
|
6
6
|
import { takeUntil } from 'rxjs/operators';
|
|
7
7
|
import { parseAffixHorizontalAlignment } from './dropdown-extensions';
|
|
@@ -17,7 +17,7 @@ const DEFAULT_BUTTON_TYPE = 'select';
|
|
|
17
17
|
* Creates a dropdown menu that displays menu items that users may select.
|
|
18
18
|
*/
|
|
19
19
|
export class SkyDropdownComponent {
|
|
20
|
-
constructor(changeDetector, affixService, overlayService, logService, themeSvc) {
|
|
20
|
+
constructor(changeDetector, affixService, overlayService, logService, themeSvc, stackingContext) {
|
|
21
21
|
_SkyDropdownComponent_instances.add(this);
|
|
22
22
|
/**
|
|
23
23
|
* Whether to disable the dropdown button.
|
|
@@ -48,11 +48,13 @@ export class SkyDropdownComponent {
|
|
|
48
48
|
_SkyDropdownComponent_overlayService.set(this, void 0);
|
|
49
49
|
_SkyDropdownComponent_logService.set(this, void 0);
|
|
50
50
|
_SkyDropdownComponent_themeSvc.set(this, void 0);
|
|
51
|
+
_SkyDropdownComponent_zIndex.set(this, void 0);
|
|
51
52
|
__classPrivateFieldSet(this, _SkyDropdownComponent_changeDetector, changeDetector, "f");
|
|
52
53
|
__classPrivateFieldSet(this, _SkyDropdownComponent_affixService, affixService, "f");
|
|
53
54
|
__classPrivateFieldSet(this, _SkyDropdownComponent_overlayService, overlayService, "f");
|
|
54
55
|
__classPrivateFieldSet(this, _SkyDropdownComponent_logService, logService, "f");
|
|
55
56
|
__classPrivateFieldSet(this, _SkyDropdownComponent_themeSvc, themeSvc, "f");
|
|
57
|
+
__classPrivateFieldSet(this, _SkyDropdownComponent_zIndex, stackingContext?.zIndex, "f");
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
58
60
|
* The background color for the dropdown button. Available values are `default`,
|
|
@@ -163,7 +165,7 @@ export class SkyDropdownComponent {
|
|
|
163
165
|
__classPrivateFieldGet(this, _SkyDropdownComponent_ngUnsubscribe, "f").complete();
|
|
164
166
|
}
|
|
165
167
|
}
|
|
166
|
-
_SkyDropdownComponent_affixer = new WeakMap(), _SkyDropdownComponent_ngUnsubscribe = new WeakMap(), _SkyDropdownComponent_overlay = new WeakMap(), _SkyDropdownComponent__buttonStyle = new WeakMap(), _SkyDropdownComponent__buttonType = new WeakMap(), _SkyDropdownComponent__dismissOnBlur = new WeakMap(), _SkyDropdownComponent__horizontalAlignment = new WeakMap(), _SkyDropdownComponent__isOpen = new WeakMap(), _SkyDropdownComponent__trigger = new WeakMap(), _SkyDropdownComponent__triggerButton = new WeakMap(), _SkyDropdownComponent_positionTimeout = new WeakMap(), _SkyDropdownComponent_changeDetector = new WeakMap(), _SkyDropdownComponent_affixService = new WeakMap(), _SkyDropdownComponent_overlayService = new WeakMap(), _SkyDropdownComponent_logService = new WeakMap(), _SkyDropdownComponent_themeSvc = new WeakMap(), _SkyDropdownComponent_instances = new WeakSet(), _SkyDropdownComponent_addEventListeners = function _SkyDropdownComponent_addEventListeners() {
|
|
168
|
+
_SkyDropdownComponent_affixer = new WeakMap(), _SkyDropdownComponent_ngUnsubscribe = new WeakMap(), _SkyDropdownComponent_overlay = new WeakMap(), _SkyDropdownComponent__buttonStyle = new WeakMap(), _SkyDropdownComponent__buttonType = new WeakMap(), _SkyDropdownComponent__dismissOnBlur = new WeakMap(), _SkyDropdownComponent__horizontalAlignment = new WeakMap(), _SkyDropdownComponent__isOpen = new WeakMap(), _SkyDropdownComponent__trigger = new WeakMap(), _SkyDropdownComponent__triggerButton = new WeakMap(), _SkyDropdownComponent_positionTimeout = new WeakMap(), _SkyDropdownComponent_changeDetector = new WeakMap(), _SkyDropdownComponent_affixService = new WeakMap(), _SkyDropdownComponent_overlayService = new WeakMap(), _SkyDropdownComponent_logService = new WeakMap(), _SkyDropdownComponent_themeSvc = new WeakMap(), _SkyDropdownComponent_zIndex = new WeakMap(), _SkyDropdownComponent_instances = new WeakSet(), _SkyDropdownComponent_addEventListeners = function _SkyDropdownComponent_addEventListeners() {
|
|
167
169
|
__classPrivateFieldGet(this, _SkyDropdownComponent_ngUnsubscribe, "f").next();
|
|
168
170
|
__classPrivateFieldGet(this, _SkyDropdownComponent_ngUnsubscribe, "f").complete();
|
|
169
171
|
__classPrivateFieldSet(this, _SkyDropdownComponent_ngUnsubscribe, new Subject(), "f");
|
|
@@ -256,6 +258,13 @@ _SkyDropdownComponent_affixer = new WeakMap(), _SkyDropdownComponent_ngUnsubscri
|
|
|
256
258
|
enableScroll: true,
|
|
257
259
|
enablePointerEvents: true,
|
|
258
260
|
});
|
|
261
|
+
if (__classPrivateFieldGet(this, _SkyDropdownComponent_zIndex, "f")) {
|
|
262
|
+
__classPrivateFieldGet(this, _SkyDropdownComponent_zIndex, "f")
|
|
263
|
+
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyDropdownComponent_ngUnsubscribe, "f")))
|
|
264
|
+
.subscribe((zIndex) => {
|
|
265
|
+
overlay.componentRef.instance.zIndex = zIndex.toString(10);
|
|
266
|
+
});
|
|
267
|
+
}
|
|
259
268
|
overlay.attachTemplate(this.menuContainerTemplateRef);
|
|
260
269
|
overlay.backdropClick
|
|
261
270
|
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyDropdownComponent_ngUnsubscribe, "f")))
|
|
@@ -332,13 +341,18 @@ _SkyDropdownComponent_affixer = new WeakMap(), _SkyDropdownComponent_ngUnsubscri
|
|
|
332
341
|
}
|
|
333
342
|
}), "f");
|
|
334
343
|
};
|
|
335
|
-
SkyDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyAffixService }, { token: i1.SkyOverlayService }, { token: i1.SkyLogService }, { token: i2.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
344
|
+
SkyDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyAffixService }, { token: i1.SkyOverlayService }, { token: i1.SkyLogService }, { token: i2.SkyThemeService, optional: true }, { token: SKY_STACKING_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
336
345
|
SkyDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.11", type: SkyDropdownComponent, selector: "sky-dropdown", inputs: { buttonStyle: "buttonStyle", buttonType: "buttonType", disabled: "disabled", dismissOnBlur: "dismissOnBlur", label: "label", horizontalAlignment: "horizontalAlignment", messageStream: "messageStream", title: "title", trigger: "trigger" }, viewQueries: [{ propertyName: "menuContainerElementRef", first: true, predicate: ["menuContainerElementRef"], descendants: true, read: ElementRef }, { propertyName: "menuContainerTemplateRef", first: true, predicate: ["menuContainerTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "triggerButton", first: true, predicate: ["triggerButton"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div class=\"sky-dropdown\">\n <button\n class=\"sky-btn sky-dropdown-button\"\n type=\"button\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"isOpen ? menuId : null\"\n [attr.aria-haspopup]=\"menuAriaRole\"\n [attr.aria-label]=\"\n label || ('skyux_dropdown_context_menu_default_label' | skyLibResources)\n \"\n [attr.title]=\"title\"\n [disabled]=\"disabled\"\n [ngClass]=\"[\n 'sky-dropdown-button-type-' + buttonType,\n 'sky-btn-' + buttonStyle\n ]\"\n #triggerButton\n >\n <ng-container [ngSwitch]=\"buttonType\">\n <ng-template ngSwitchCase=\"context-menu\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"ellipsis-h\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"ellipsis\"\n iconType=\"skyux\"\n ></sky-icon>\n </ng-template>\n\n <ng-template ngSwitchDefault>\n <div\n *ngIf=\"buttonType === 'select' || buttonType === 'tab' || !buttonType\"\n class=\"sky-dropdown-button-container\"\n >\n <div class=\"sky-dropdown-button-content-container\">\n <ng-content select=\"sky-dropdown-button\"> </ng-content>\n </div>\n <div class=\"sky-dropdown-button-icon-container\">\n <sky-icon\n *skyThemeIf=\"'default'\"\n class=\"sky-dropdown-caret\"\n icon=\"caret-down\"\n >\n </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n class=\"sky-dropdown-caret\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </div>\n </div>\n <div\n *ngIf=\"buttonType !== 'select' && buttonType !== 'tab' && buttonType\"\n >\n <sky-icon [icon]=\"buttonType\" size=\"lg\"></sky-icon>\n </div>\n </ng-template>\n </ng-container>\n </button>\n</div>\n\n<ng-template #menuContainerTemplateRef>\n <div\n class=\"sky-dropdown-menu-container\"\n [class.hidden]=\"!isVisible\"\n #menuContainerElementRef\n >\n <ng-content select=\"sky-dropdown-menu\"></ng-content>\n </div>\n</ng-template>\n", styles: [".sky-dropdown-button-type-tab{background-color:transparent;border:none;border-radius:4px 4px 0 0;color:var(--sky-text-color-deemphasized);cursor:pointer;display:inline-block;font-weight:600;line-height:1.8;padding:8px 16px;background-color:var(--sky-background-color-primary-dark);color:var(--sky-text-color-on-dark);max-width:100%;text-align:left}.sky-dropdown-button-type-tab:hover:not(.sky-btn-tab-disabled){background-color:var(--sky-background-color-neutral-light);color:var(--sky-text-color-default);text-decoration:none}.sky-dropdown-button-type-tab.sky-btn-tab-disabled{background-color:var(--sky-background-color-disabled);cursor:not-allowed;pointer-events:none;outline:none;text-decoration:none}.sky-dropdown-button-type-tab.sky-btn-tab-disabled:hover{color:var(--sky-text-color-deemphasized);cursor:default;text-decoration:none}.sky-dropdown-button-type-tab:hover:not(.sky-btn-tab-disabled){background-color:var(--sky-background-color-primary-dark);color:var(--sky-text-color-on-dark)}.sky-dropdown-button-type-context-menu{border-radius:50%;padding:3px 8px}:host-context(.sky-toolbar-container) .sky-dropdown-button.sky-btn-link{color:#212327}.sky-dropdown-caret{margin-left:10px}.sky-dropdown-button-container{display:flex}.sky-dropdown-button-content-container{flex-shrink:1;overflow:hidden;text-overflow:ellipsis}.sky-dropdown-button-icon-container{flex-grow:1}.sky-dropdown-menu-container{position:fixed}.hidden{visibility:hidden}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab{border:none;border-radius:0;color:var(--sky-text-color-deemphasized);font-weight:400;padding:10px 15px;transition:box-shadow .15s;background-color:transparent;color:var(--sky-text-color-default);box-shadow:none}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:hover:not(.sky-btn-tab-disabled):not(.sky-btn-tab-selected):not(.sky-dropdown-button-type-tab):not(:focus-visible){background-color:transparent;border-bottom:solid 1px var(--sky-highlight-color-info);color:var(--sky-text-color-default);padding-bottom:9px}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:focus-visible{background-color:transparent;color:var(--sky-text-color-default);outline:none}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:focus-visible:not(:active){color:var(--sky-text-color-default);outline:solid 2px var(--sky-background-color-primary-dark);outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:active{color:var(--sky-text-color-default);padding-bottom:7px}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab.sky-btn-tab-disabled{background-color:transparent;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:400;font-size:15px;font-style:italic}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab.sky-btn-tab-disabled .sky-btn-tab-close{font-size:16px}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:not(:active){border-bottom:solid 3px #1870B8;padding-bottom:7px}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:hover:not(.sky-btn-tab-disabled){background-color:transparent;color:var(--sky-text-color-default)}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab .sky-btn-tab-close,:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab .sky-tab-header-count{color:var(--sky-text-color-deemphasized)}:host-context(.sky-theme-modern) .sky-dropdown-caret{margin-left:10px}:host-context(.sky-theme-modern) .sky-dropdown-button-type-context-menu{border-radius:6px;padding:3px 8px;background-color:transparent}:host-context(.sky-theme-modern) .sky-dropdown-button-type-context-menu:not(:hover):not(:focus-visible){box-shadow:none}.sky-theme-modern .sky-dropdown-button-type-tab{border:none;border-radius:0;color:var(--sky-text-color-deemphasized);font-weight:400;padding:10px 15px;transition:box-shadow .15s;background-color:transparent;color:var(--sky-text-color-default);box-shadow:none}.sky-theme-modern .sky-dropdown-button-type-tab:hover:not(.sky-btn-tab-disabled):not(.sky-btn-tab-selected):not(.sky-dropdown-button-type-tab):not(:focus-visible){background-color:transparent;border-bottom:solid 1px var(--sky-highlight-color-info);color:var(--sky-text-color-default);padding-bottom:9px}.sky-theme-modern .sky-dropdown-button-type-tab:focus-visible{background-color:transparent;color:var(--sky-text-color-default);outline:none}.sky-theme-modern .sky-dropdown-button-type-tab:focus-visible:not(:active){color:var(--sky-text-color-default);outline:solid 2px var(--sky-background-color-primary-dark);outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-dropdown-button-type-tab:active{color:var(--sky-text-color-default);padding-bottom:7px}.sky-theme-modern .sky-dropdown-button-type-tab.sky-btn-tab-disabled{background-color:transparent;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:400;font-size:15px;font-style:italic}.sky-theme-modern .sky-dropdown-button-type-tab.sky-btn-tab-disabled .sky-btn-tab-close{font-size:16px}.sky-theme-modern .sky-dropdown-button-type-tab:not(:active){border-bottom:solid 3px #1870B8;padding-bottom:7px}.sky-theme-modern .sky-dropdown-button-type-tab:hover:not(.sky-btn-tab-disabled){background-color:transparent;color:var(--sky-text-color-default)}.sky-theme-modern .sky-dropdown-button-type-tab .sky-btn-tab-close,.sky-theme-modern .sky-dropdown-button-type-tab .sky-tab-header-count{color:var(--sky-text-color-deemphasized)}.sky-theme-modern .sky-dropdown-caret{margin-left:10px}.sky-theme-modern .sky-dropdown-button-type-context-menu{border-radius:6px;padding:3px 8px;background-color:transparent}.sky-theme-modern .sky-dropdown-button-type-context-menu:not(:hover):not(:focus-visible){box-shadow:none}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-dropdown-button-type-tab{color:#fff}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-dropdown-button-type-tab:hover{color:#fff}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-dropdown-button-type-tab .sky-btn-tab-close,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-dropdown-button-type-tab .sky-tab-header-count{color:#efefef}.sky-theme-modern.sky-theme-mode-dark .sky-dropdown-button-type-tab,.sky-theme-modern.sky-theme-mode-dark .sky-dropdown-button-type-tab:hover{color:#fff}.sky-theme-modern.sky-theme-mode-dark .sky-dropdown-button-type-tab .sky-btn-tab-close,.sky-theme-modern.sky-theme-mode-dark .sky-dropdown-button-type-tab .sky-tab-header-count{color:#efefef}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i4.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i2.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
337
346
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyDropdownComponent, decorators: [{
|
|
338
347
|
type: Component,
|
|
339
348
|
args: [{ selector: 'sky-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-dropdown\">\n <button\n class=\"sky-btn sky-dropdown-button\"\n type=\"button\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"isOpen ? menuId : null\"\n [attr.aria-haspopup]=\"menuAriaRole\"\n [attr.aria-label]=\"\n label || ('skyux_dropdown_context_menu_default_label' | skyLibResources)\n \"\n [attr.title]=\"title\"\n [disabled]=\"disabled\"\n [ngClass]=\"[\n 'sky-dropdown-button-type-' + buttonType,\n 'sky-btn-' + buttonStyle\n ]\"\n #triggerButton\n >\n <ng-container [ngSwitch]=\"buttonType\">\n <ng-template ngSwitchCase=\"context-menu\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"ellipsis-h\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"ellipsis\"\n iconType=\"skyux\"\n ></sky-icon>\n </ng-template>\n\n <ng-template ngSwitchDefault>\n <div\n *ngIf=\"buttonType === 'select' || buttonType === 'tab' || !buttonType\"\n class=\"sky-dropdown-button-container\"\n >\n <div class=\"sky-dropdown-button-content-container\">\n <ng-content select=\"sky-dropdown-button\"> </ng-content>\n </div>\n <div class=\"sky-dropdown-button-icon-container\">\n <sky-icon\n *skyThemeIf=\"'default'\"\n class=\"sky-dropdown-caret\"\n icon=\"caret-down\"\n >\n </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n class=\"sky-dropdown-caret\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </div>\n </div>\n <div\n *ngIf=\"buttonType !== 'select' && buttonType !== 'tab' && buttonType\"\n >\n <sky-icon [icon]=\"buttonType\" size=\"lg\"></sky-icon>\n </div>\n </ng-template>\n </ng-container>\n </button>\n</div>\n\n<ng-template #menuContainerTemplateRef>\n <div\n class=\"sky-dropdown-menu-container\"\n [class.hidden]=\"!isVisible\"\n #menuContainerElementRef\n >\n <ng-content select=\"sky-dropdown-menu\"></ng-content>\n </div>\n</ng-template>\n", styles: [".sky-dropdown-button-type-tab{background-color:transparent;border:none;border-radius:4px 4px 0 0;color:var(--sky-text-color-deemphasized);cursor:pointer;display:inline-block;font-weight:600;line-height:1.8;padding:8px 16px;background-color:var(--sky-background-color-primary-dark);color:var(--sky-text-color-on-dark);max-width:100%;text-align:left}.sky-dropdown-button-type-tab:hover:not(.sky-btn-tab-disabled){background-color:var(--sky-background-color-neutral-light);color:var(--sky-text-color-default);text-decoration:none}.sky-dropdown-button-type-tab.sky-btn-tab-disabled{background-color:var(--sky-background-color-disabled);cursor:not-allowed;pointer-events:none;outline:none;text-decoration:none}.sky-dropdown-button-type-tab.sky-btn-tab-disabled:hover{color:var(--sky-text-color-deemphasized);cursor:default;text-decoration:none}.sky-dropdown-button-type-tab:hover:not(.sky-btn-tab-disabled){background-color:var(--sky-background-color-primary-dark);color:var(--sky-text-color-on-dark)}.sky-dropdown-button-type-context-menu{border-radius:50%;padding:3px 8px}:host-context(.sky-toolbar-container) .sky-dropdown-button.sky-btn-link{color:#212327}.sky-dropdown-caret{margin-left:10px}.sky-dropdown-button-container{display:flex}.sky-dropdown-button-content-container{flex-shrink:1;overflow:hidden;text-overflow:ellipsis}.sky-dropdown-button-icon-container{flex-grow:1}.sky-dropdown-menu-container{position:fixed}.hidden{visibility:hidden}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab{border:none;border-radius:0;color:var(--sky-text-color-deemphasized);font-weight:400;padding:10px 15px;transition:box-shadow .15s;background-color:transparent;color:var(--sky-text-color-default);box-shadow:none}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:hover:not(.sky-btn-tab-disabled):not(.sky-btn-tab-selected):not(.sky-dropdown-button-type-tab):not(:focus-visible){background-color:transparent;border-bottom:solid 1px var(--sky-highlight-color-info);color:var(--sky-text-color-default);padding-bottom:9px}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:focus-visible{background-color:transparent;color:var(--sky-text-color-default);outline:none}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:focus-visible:not(:active){color:var(--sky-text-color-default);outline:solid 2px var(--sky-background-color-primary-dark);outline-offset:-2px;box-shadow:0 1px 8px #0000004d}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:active{color:var(--sky-text-color-default);padding-bottom:7px}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab.sky-btn-tab-disabled{background-color:transparent;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:400;font-size:15px;font-style:italic}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab.sky-btn-tab-disabled .sky-btn-tab-close{font-size:16px}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:not(:active){border-bottom:solid 3px #1870B8;padding-bottom:7px}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab:hover:not(.sky-btn-tab-disabled){background-color:transparent;color:var(--sky-text-color-default)}:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab .sky-btn-tab-close,:host-context(.sky-theme-modern) .sky-dropdown-button-type-tab .sky-tab-header-count{color:var(--sky-text-color-deemphasized)}:host-context(.sky-theme-modern) .sky-dropdown-caret{margin-left:10px}:host-context(.sky-theme-modern) .sky-dropdown-button-type-context-menu{border-radius:6px;padding:3px 8px;background-color:transparent}:host-context(.sky-theme-modern) .sky-dropdown-button-type-context-menu:not(:hover):not(:focus-visible){box-shadow:none}.sky-theme-modern .sky-dropdown-button-type-tab{border:none;border-radius:0;color:var(--sky-text-color-deemphasized);font-weight:400;padding:10px 15px;transition:box-shadow .15s;background-color:transparent;color:var(--sky-text-color-default);box-shadow:none}.sky-theme-modern .sky-dropdown-button-type-tab:hover:not(.sky-btn-tab-disabled):not(.sky-btn-tab-selected):not(.sky-dropdown-button-type-tab):not(:focus-visible){background-color:transparent;border-bottom:solid 1px var(--sky-highlight-color-info);color:var(--sky-text-color-default);padding-bottom:9px}.sky-theme-modern .sky-dropdown-button-type-tab:focus-visible{background-color:transparent;color:var(--sky-text-color-default);outline:none}.sky-theme-modern .sky-dropdown-button-type-tab:focus-visible:not(:active){color:var(--sky-text-color-default);outline:solid 2px var(--sky-background-color-primary-dark);outline-offset:-2px;box-shadow:0 1px 8px #0000004d}.sky-theme-modern .sky-dropdown-button-type-tab:active{color:var(--sky-text-color-default);padding-bottom:7px}.sky-theme-modern .sky-dropdown-button-type-tab.sky-btn-tab-disabled{background-color:transparent;font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:400;font-size:15px;font-style:italic}.sky-theme-modern .sky-dropdown-button-type-tab.sky-btn-tab-disabled .sky-btn-tab-close{font-size:16px}.sky-theme-modern .sky-dropdown-button-type-tab:not(:active){border-bottom:solid 3px #1870B8;padding-bottom:7px}.sky-theme-modern .sky-dropdown-button-type-tab:hover:not(.sky-btn-tab-disabled){background-color:transparent;color:var(--sky-text-color-default)}.sky-theme-modern .sky-dropdown-button-type-tab .sky-btn-tab-close,.sky-theme-modern .sky-dropdown-button-type-tab .sky-tab-header-count{color:var(--sky-text-color-deemphasized)}.sky-theme-modern .sky-dropdown-caret{margin-left:10px}.sky-theme-modern .sky-dropdown-button-type-context-menu{border-radius:6px;padding:3px 8px;background-color:transparent}.sky-theme-modern .sky-dropdown-button-type-context-menu:not(:hover):not(:focus-visible){box-shadow:none}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-dropdown-button-type-tab{color:#fff}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-dropdown-button-type-tab:hover{color:#fff}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-dropdown-button-type-tab .sky-btn-tab-close,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-dropdown-button-type-tab .sky-tab-header-count{color:#efefef}.sky-theme-modern.sky-theme-mode-dark .sky-dropdown-button-type-tab,.sky-theme-modern.sky-theme-mode-dark .sky-dropdown-button-type-tab:hover{color:#fff}.sky-theme-modern.sky-theme-mode-dark .sky-dropdown-button-type-tab .sky-btn-tab-close,.sky-theme-modern.sky-theme-mode-dark .sky-dropdown-button-type-tab .sky-tab-header-count{color:#efefef}\n"] }]
|
|
340
349
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyAffixService }, { type: i1.SkyOverlayService }, { type: i1.SkyLogService }, { type: i2.SkyThemeService, decorators: [{
|
|
341
350
|
type: Optional
|
|
351
|
+
}] }, { type: undefined, decorators: [{
|
|
352
|
+
type: Optional
|
|
353
|
+
}, {
|
|
354
|
+
type: Inject,
|
|
355
|
+
args: [SKY_STACKING_CONTEXT]
|
|
342
356
|
}] }]; }, propDecorators: { buttonStyle: [{
|
|
343
357
|
type: Input
|
|
344
358
|
}], buttonType: [{
|
|
@@ -375,4 +389,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
|
|
|
375
389
|
static: true,
|
|
376
390
|
}]
|
|
377
391
|
}] } });
|
|
378
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFHTCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsc0JBQXNCLEdBTXZCLE1BQU0sYUFBYSxDQUFDO0FBR3JCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLG1CQUFtQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUl0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7OztBQUd2RSxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQztBQUVyQzs7R0FFRztBQU9ILE1BQU0sT0FBTyxvQkFBb0I7SUFtTS9CLFlBQ0UsY0FBaUMsRUFDakMsWUFBNkIsRUFDN0IsY0FBaUMsRUFDakMsVUFBeUIsRUFDYixRQUEwQjs7UUE3SnhDOzs7V0FHRztRQUVJLGFBQVEsR0FBd0IsS0FBSyxDQUFDO1FBc0M3Qzs7OztXQUlHO1FBRUksa0JBQWEsR0FDbEIsSUFBSSxPQUFPLEVBQXNCLENBQUM7UUErQzdCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FB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LEtBQUs7Z0JBZUMsS0FBSztzQkFEWCxLQUFLO2dCQVFLLG1CQUFtQjtzQkFEN0IsS0FBSztnQkFpQkMsYUFBYTtzQkFEbkIsS0FBSztnQkFRQyxLQUFLO3NCQURYLEtBQUs7Z0JBY0ssT0FBTztzQkFEakIsS0FBSztnQkFxQkssdUJBQXVCO3NCQUhqQyxTQUFTO3VCQUFDLHlCQUF5QixFQUFFO3dCQUNwQyxJQUFJLEVBQUUsVUFBVTtxQkFDakI7Z0JBcUJNLHdCQUF3QjtzQkFKOUIsU0FBUzt1QkFBQywwQkFBMEIsRUFBRTt3QkFDckMsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQU9VLGFBQWE7c0JBSnZCLFNBQVM7dUJBQUMsZUFBZSxFQUFFO3dCQUMxQixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lBZmZpeEF1dG9GaXRDb250ZXh0LFxuICBTa3lBZmZpeFNlcnZpY2UsXG4gIFNreUFmZml4ZXIsXG4gIFNreUxvZ1NlcnZpY2UsXG4gIFNreU92ZXJsYXlJbnN0YW5jZSxcbiAgU2t5T3ZlcmxheVNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCBhcyBvYnNlcnZhYmxlRnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IHBhcnNlQWZmaXhIb3Jpem9udGFsQWxpZ25tZW50IH0gZnJvbSAnLi9kcm9wZG93bi1leHRlbnNpb25zJztcbmltcG9ydCB7IFNreURyb3Bkb3duQnV0dG9uVHlwZSB9IGZyb20gJy4vdHlwZXMvZHJvcGRvd24tYnV0dG9uLXR5cGUnO1xuaW1wb3J0IHsgU2t5RHJvcGRvd25Ib3Jpem9udGFsQWxpZ25tZW50IH0gZnJvbSAnLi90eXBlcy9kcm9wZG93bi1ob3Jpem9udGFsLWFsaWdubWVudCc7XG5pbXBvcnQgeyBTa3lEcm9wZG93bk1lc3NhZ2UgfSBmcm9tICcuL3R5cGVzL2Ryb3Bkb3duLW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2t5RHJvcGRvd25NZXNzYWdlVHlwZSB9IGZyb20gJy4vdHlwZXMvZHJvcGRvd24tbWVzc2FnZS10eXBlJztcbmltcG9ydCB7IFNreURyb3Bkb3duVHJpZ2dlclR5cGUgfSBmcm9tICcuL3R5cGVzL2Ryb3Bkb3duLXRyaWdnZXItdHlwZSc7XG5cbmNvbnN0IERFRkFVTFRfQlVUVE9OX1RZUEUgPSAnc2VsZWN0JztcblxuLyoqXG4gKiBDcmVhdGVzIGEgZHJvcGRvd24gbWVudSB0aGF0IGRpc3BsYXlzIG1lbnUgaXRlbXMgdGhhdCB1c2VycyBtYXkgc2VsZWN0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGRyb3Bkb3duIGJ1dHRvbi4gQXZhaWxhYmxlIHZhbHVlcyBhcmUgYGRlZmF1bHRgLFxuICAgKiBgcHJpbWFyeWAsIGFuZCBgbGlua2AuIFRoZXNlIHZhbHVlcyBzZXQgdGhlIGJhY2tncm91bmQgY29sb3IgYW5kIGhvdmVyIGJlaGF2aW9yIGZyb20gdGhlXG4gICAqIFtzZWNvbmRhcnkgYW5kIHByaW1hcnkgYnV0dG9uIGNsYXNzZXNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9idXR0b24pIHJlc3BlY3RpdmVseS5cbiAgICogQGRlZmF1bHQgXCJkZWZhdWx0XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYnV0dG9uU3R5bGUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19idXR0b25TdHlsZSA9IHZhbHVlID8/ICdkZWZhdWx0JztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYnV0dG9uU3R5bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX2J1dHRvblN0eWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGJ1dHRvbiB0byByZW5kZXIgYXMgdGhlIGRyb3Bkb3duJ3MgdHJpZ2dlciBlbGVtZW50LiBUbyBkaXNwbGF5IGEgYnV0dG9uXG4gICAqIHdpdGggYSBjYXJldCwgc3BlY2lmeSBgJ3NlbGVjdCdgIGFuZCByZW5kZXIgdGhlIGJ1dHRvbiB0ZXh0IG9yIGljb24gaW4gYVxuICAgKiBgc2t5LWRyb3Bkb3duLWJ1dHRvbmAgZWxlbWVudC4gVG8gZGlzcGxheSBhIHJvdW5kIGJ1dHRvbiB3aXRoIGFuIGVsbGlwc2lzLCBzcGVjaWZ5XG4gICAqIGAnY29udGV4dC1tZW51J2AuXG4gICAqIEBkZWZhdWx0IFwic2VsZWN0XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYnV0dG9uVHlwZSh2YWx1ZTogU2t5RHJvcGRvd25CdXR0b25UeXBlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2J1dHRvblR5cGUgPSB2YWx1ZSA/PyBERUZBVUxUX0JVVFRPTl9UWVBFO1xuXG4gICAgaWYgKHZhbHVlICYmICFbJ3NlbGVjdCcsICdjb250ZXh0LW1lbnUnLCAndGFiJ10uaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICB0aGlzLiNsb2dTZXJ2aWNlLmRlcHJlY2F0ZWQoXG4gICAgICAgICdTa3lEcm9wZG93bkNvbXBvbmVudC5idXR0b25UeXBlIEZvbnQgQXdlc29tZSBpY29uIGNsYXNzIG9wdGlvbicsXG4gICAgICAgIHtcbiAgICAgICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogNyxcbiAgICAgICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOlxuICAgICAgICAgICAgJ1NldCBgYnV0dG9uVHlwZWAgdG8gYHNlbGVjdGAgYW5kIHJlbmRlciBhIGA8c2t5LWljb24+YCBlbGVtZW50IHdpdGhpbiB0aGUgYDxza3ktZHJvcGRvd24tYnV0dG9uPmAgZWxlbWVudC4nLFxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgYnV0dG9uVHlwZSgpOiBTa3lEcm9wZG93bkJ1dHRvblR5cGUgfCBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfYnV0dG9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGRyb3Bkb3duIGJ1dHRvbi5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNsb3NlIHRoZSBkcm9wZG93biB3aGVuIHVzZXJzIGNsaWNrIGF3YXkgZnJvbSB0aGUgbWVudS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNtaXNzT25CbHVyKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2Rpc21pc3NPbkJsdXIgPSB2YWx1ZSA/PyB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNtaXNzT25CbHVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzbWlzc09uQmx1cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIGRyb3Bkb3duLiBUaGlzIHNldHMgdGhlIGRyb3Bkb3duJ3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSB0byBwcm92aWRlIGEgdGV4dCBlcXVpdmFsZW50IGZvciBzY3JlZW4gcmVhZGVyc1xuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLWxhYmVsKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgaG9yaXpvbnRhbCBhbGlnbm1lbnQgb2YgdGhlIGRyb3Bkb3duIG1lbnUgaW4gcmVsYXRpb24gdG8gdGhlIGRyb3Bkb3duIGJ1dHRvbi5cbiAgICogQGRlZmF1bHQgXCJsZWZ0XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaG9yaXpvbnRhbEFsaWdubWVudChcbiAgICB2YWx1ZTogU2t5RHJvcGRvd25Ib3Jpem9udGFsQWxpZ25tZW50IHwgdW5kZWZpbmVkXG4gICkge1xuICAgIHRoaXMuI19ob3Jpem9udGFsQWxpZ25tZW50ID0gdmFsdWUgPz8gJ2xlZnQnO1xuICB9XG5cbiAgcHVibGljIGdldCBob3Jpem9udGFsQWxpZ25tZW50KCk6IFNreURyb3Bkb3duSG9yaXpvbnRhbEFsaWdubWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI19ob3Jpem9udGFsQWxpZ25tZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBvYnNlcnZhYmxlIHRoYXQgc2VuZHMgY29tbWFuZHMgdG8gdGhlIGRyb3Bkb3duLiBUaGUgY29tbWFuZHMgc2hvdWxkIHJlc3BlY3RcbiAgICogdGhlIFtbU2t5RHJvcGRvd25NZXNzYWdlXV0gdHlwZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWVzc2FnZVN0cmVhbTogU3ViamVjdDxTa3lEcm9wZG93bk1lc3NhZ2U+IHwgdW5kZWZpbmVkID1cbiAgICBuZXcgU3ViamVjdDxTa3lEcm9wZG93bk1lc3NhZ2U+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSB0byBkaXNwbGF5IGluIGEgdG9vbHRpcCB3aGVuIHVzZXJzIGhvdmVyIHRoZSBtb3VzZSBvdmVyIHRoZSBkcm9wZG93biBidXR0b24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSG93IHVzZXJzIGludGVyYWN0IHdpdGggdGhlIGRyb3Bkb3duIGJ1dHRvbiB0byBleHBvc2UgdGhlIGRyb3Bkb3duIG1lbnUuXG4gICAqIFdlIHJlY29tbWVuZCB0aGUgZGVmYXVsdCBgY2xpY2tgIHZhbHVlIGJlY2F1c2UgdGhlIGBob3ZlcmAgdmFsdWUgY2FuIHBvc2VcbiAgICogW2FjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkgaXNzdWVzXG4gICAqIGZvciB1c2VycyBvbiB0b3VjaCBkZXZpY2VzIHN1Y2ggYXMgcGhvbmVzIGFuZCB0YWJsZXRzLlxuICAgKiBAZGVwcmVjYXRlZCBXZSByZWNvbW1lbmQgYWdhaW5zdCB1c2luZyB0aGlzIHByb3BlcnR5LiBJZiB5b3UgY2hvb3NlIHRvIHVzZSB0aGUgZGVwcmVjYXRlZFxuICAgKiBgaG92ZXJgIHZhbHVlIGFueXdheSwgd2UgcmVjb21tZW5kIHRoYXQgeW91IG5vdCB1c2UgaXQgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgYHRpdGxlYFxuICAgKiBwcm9wZXJ0eS5cbiAgICogQGRlZmF1bHQgXCJjbGlja1wiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHRyaWdnZXIodmFsdWU6IFNreURyb3Bkb3duVHJpZ2dlclR5cGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfdHJpZ2dlciA9IHZhbHVlID8/ICdjbGljayc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRyaWdnZXIoKTogU2t5RHJvcGRvd25UcmlnZ2VyVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuI190cmlnZ2VyO1xuICB9XG5cbiAgcHVibGljIHNldCBpc09wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNfaXNPcGVuID0gdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2lzT3BlbjtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ21lbnVDb250YWluZXJFbGVtZW50UmVmJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gIH0pXG4gIHB1YmxpYyBzZXQgbWVudUNvbnRhaW5lckVsZW1lbnRSZWYodmFsdWU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2Rlc3Ryb3lBZmZpeGVyKCk7XG4gICAgICB0aGlzLiNjcmVhdGVBZmZpeGVyKHZhbHVlKTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc01vdXNlRW50ZXIgPSBmYWxzZTtcblxuICBwdWJsaWMgaXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgcHVibGljIG1lbnVJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBtZW51QXJpYVJvbGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdtZW51Q29udGFpbmVyVGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgbWVudUNvbnRhaW5lclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyQnV0dG9uJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgc2V0IHRyaWdnZXJCdXR0b24odmFsdWU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfdHJpZ2dlckJ1dHRvbiA9IHZhbHVlO1xuICAgIHRoaXMuI2FkZEV2ZW50TGlzdGVuZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRyaWdnZXJCdXR0b24oKTogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI190cmlnZ2VyQnV0dG9uO1xuICB9XG5cbiAgI2FmZml4ZXI6IFNreUFmZml4ZXIgfCB1bmRlZmluZWQ7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNvdmVybGF5OiBTa3lPdmVybGF5SW5zdGFuY2UgfCB1bmRlZmluZWQ7XG5cbiAgI19idXR0b25TdHlsZSA9ICdkZWZhdWx0JztcblxuICAjX2J1dHRvblR5cGU6IFNreURyb3Bkb3duQnV0dG9uVHlwZSB8IHN0cmluZyA9IERFRkFVTFRfQlVUVE9OX1RZUEU7XG5cbiAgI19kaXNtaXNzT25CbHVyID0gdHJ1ZTtcblxuICAjX2hvcml6b250YWxBbGlnbm1lbnQ6IFNreURyb3Bkb3duSG9yaXpvbnRhbEFsaWdubWVudCA9ICdsZWZ0JztcblxuICAjX2lzT3BlbiA9IGZhbHNlO1xuXG4gICNfdHJpZ2dlcjogU2t5RHJvcGRvd25UcmlnZ2VyVHlwZSA9ICdjbGljayc7XG5cbiAgI190cmlnZ2VyQnV0dG9uOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNwb3NpdGlvblRpbWVvdXQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjYWZmaXhTZXJ2aWNlOiBTa3lBZmZpeFNlcnZpY2U7XG4gICNvdmVybGF5U2VydmljZTogU2t5T3ZlcmxheVNlcnZpY2U7XG4gICNsb2dTZXJ2aWNlOiBTa3lMb2dTZXJ2aWNlO1xuICAjdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgYWZmaXhTZXJ2aWNlOiBTa3lBZmZpeFNlcnZpY2UsXG4gICAgb3ZlcmxheVNlcnZpY2U6IFNreU92ZXJsYXlTZXJ2aWNlLFxuICAgIGxvZ1NlcnZpY2U6IFNreUxvZ1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgdGhlbWVTdmM/OiBTa3lUaGVtZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICB0aGlzLiNhZmZpeFNlcnZpY2UgPSBhZmZpeFNlcnZpY2U7XG4gICAgdGhpcy4jb3ZlcmxheVNlcnZpY2UgPSBvdmVybGF5U2VydmljZTtcbiAgICB0aGlzLiNsb2dTZXJ2aWNlID0gbG9nU2VydmljZTtcbiAgICB0aGlzLiN0aGVtZVN2YyA9IHRoZW1lU3ZjO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZVN0cmVhbVxuICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2U6IFNreURyb3Bkb3duTWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLiNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2UpO1xuICAgICAgfSk7XG5cbiAgICAvLyBMb2FkIHByb3BlciBpY29ucyBvbiB0aGVtZSBjaGFuZ2UuXG4gICAgdGhpcy4jdGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNkZXN0cm95QWZmaXhlcigpO1xuICAgIHRoaXMuI2Rlc3Ryb3lPdmVybGF5KCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuI3Bvc2l0aW9uVGltZW91dCk7XG5cbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjYWRkRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIGNvbnN0IGJ1dHRvbkVsZW1lbnQgPSB0aGlzLnRyaWdnZXJCdXR0b24/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGJ1dHRvbkVsZW1lbnQpIHtcbiAgICAgIG9ic2VydmFibGVGcm9tRXZlbnQoYnV0dG9uRWxlbWVudCwgJ2NsaWNrJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuI3NlbmRNZXNzYWdlKFNreURyb3Bkb3duTWVzc2FnZVR5cGUuQ2xvc2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiNzZW5kTWVzc2FnZShTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLk9wZW4pO1xuICAgICAgICAgICAgLy8gV2FpdCBmb3IgZHJvcGRvd24gdG8gb3BlbiwgdGhlbiBzZXQgZm9jdXMgb24gZmlyc3QgaXRlbS5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLiNzZW5kTWVzc2FnZShTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLkZvY3VzRmlyc3RJdGVtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIG9ic2VydmFibGVGcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oYnV0dG9uRWxlbWVudCwgJ2tleWRvd24nKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnZXNjYXBlJzpcbiAgICAgICAgICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgICAgICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuI3NlbmRNZXNzYWdlKFNreURyb3Bkb3duTWVzc2FnZVR5cGUuQ2xvc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuI3NlbmRNZXNzYWdlKFNreURyb3Bkb3duTWVzc2FnZVR5cGUuRm9jdXNUcmlnZ2VyQnV0dG9uKTtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAndGFiJzpcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPcGVuICYmIHRoaXMuZGlzbWlzc09uQmx1cikge1xuICAgICAgICAgICAgICAgIHRoaXMuI3NlbmRNZXNzYWdlKFNreURyb3Bkb3duTWVzc2FnZVR5cGUuQ2xvc2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdhcnJvd3VwJzpcbiAgICAgICAgICAgIGNhc2UgJ3VwJzpcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuI3NlbmRNZXNzYWdlKFNreURyb3Bkb3duTWVzc2FnZVR5cGUuT3Blbik7XG4gICAgICAgICAgICAgICAgdGhpcy4jc2VuZE1lc3NhZ2UoU2t5RHJvcGRvd25NZXNzYWdlVHlwZS5Gb2N1c0xhc3RJdGVtKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdlbnRlcic6XG4gICAgICAgICAgICBjYXNlICdhcnJvd2Rvd24nOlxuICAgICAgICAgICAgY2FzZSAnZG93bic6XG4gICAgICAgICAgICBjYXNlICcgJzogLy8gU3BhY2ViYXIuXG4gICAgICAgICAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jc2VuZE1lc3NhZ2UoU2t5RHJvcGRvd25NZXNzYWdlVHlwZS5PcGVuKTtcbiAgICAgICAgICAgICAgICB0aGlzLiNzZW5kTWVzc2FnZShTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLkZvY3VzRmlyc3RJdGVtKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIG9ic2VydmFibGVGcm9tRXZlbnQoYnV0dG9uRWxlbWVudCwgJ21vdXNlZW50ZXInKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNNb3VzZUVudGVyID0gdHJ1ZTtcbiAgICAgICAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnaG92ZXInKSB7XG4gICAgICAgICAgICB0aGlzLiNzZW5kTWVzc2FnZShTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLk9wZW4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIG9ic2VydmFibGVGcm9tRXZlbnQoYnV0dG9uRWxlbWVudCwgJ21vdXNlbGVhdmUnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNNb3VzZUVudGVyID0gZmFsc2U7XG4gICAgICAgICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gJ2hvdmVyJykge1xuICAgICAgICAgICAgLy8gQWxsb3cgdGhlIGRyb3Bkb3duIG1lbnUgdG8gc2V0IGlzTW91c2VFbnRlciBiZWZvcmUgY2hlY2tpbmcgaWYgdGhlIGNsb3NlIGFjdGlvblxuICAgICAgICAgICAgLy8gc2hvdWxkIGJlIHRha2VuLlxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghdGhpcy5pc01vdXNlRW50ZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiNzZW5kTWVzc2FnZShTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLkNsb3NlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjY3JlYXRlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jb3ZlcmxheSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1lbnVDb250YWluZXJUZW1wbGF0ZVJlZikge1xuICAgICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuI292ZXJsYXlTZXJ2aWNlLmNyZWF0ZSh7XG4gICAgICAgIGVuYWJsZVNjcm9sbDogdHJ1ZSxcbiAgICAgICAgZW5hYmxlUG9pbnRlckV2ZW50czogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBvdmVybGF5LmF0dGFjaFRlbXBsYXRlKHRoaXMubWVudUNvbnRhaW5lclRlbXBsYXRlUmVmKTtcblxuICAgICAgb3ZlcmxheS5iYWNrZHJvcENsaWNrXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuZGlzbWlzc09uQmx1cikge1xuICAgICAgICAgICAgdGhpcy4jc2VuZE1lc3NhZ2UoU2t5RHJvcGRvd25NZXNzYWdlVHlwZS5DbG9zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgdGhpcy4jb3ZlcmxheSA9IG92ZXJsYXk7XG4gICAgfVxuICB9XG5cbiAgI2Rlc3Ryb3lBZmZpeGVyKCk6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNhZmZpeGVyKSB7XG4gICAgICB0aGlzLiNhZmZpeGVyLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuI2FmZml4ZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgI2Rlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNvdmVybGF5KSB7XG4gICAgICB0aGlzLiNvdmVybGF5U2VydmljZS5jbG9zZSh0aGlzLiNvdmVybGF5KTtcbiAgICAgIHRoaXMuI292ZXJsYXkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgI2NyZWF0ZUFmZml4ZXIobWVudUNvbnRhaW5lckVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICBjb25zdCBhZmZpeGVyID0gdGhpcy4jYWZmaXhTZXJ2aWNlLmNyZWF0ZUFmZml4ZXIobWVudUNvbnRhaW5lckVsZW1lbnRSZWYpO1xuXG4gICAgYWZmaXhlci5wbGFjZW1lbnRDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IGNoYW5nZS5wbGFjZW1lbnQgIT09IG51bGw7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNhZmZpeGVyID0gYWZmaXhlcjtcbiAgfVxuXG4gICNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreURyb3Bkb3duTWVzc2FnZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgICAgY2FzZSBTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLk9wZW46XG4gICAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgICAgIHRoaXMuI3Bvc2l0aW9uRHJvcGRvd25NZW51KCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLkNsb3NlOlxuICAgICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy4jZGVzdHJveU92ZXJsYXkoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFNreURyb3Bkb3duTWVzc2FnZVR5cGUuUmVwb3NpdGlvbjpcbiAgICAgICAgICAvLyBPbmx5IHJlcG9zaXRpb24gdGhlIGRyb3Bkb3duIGlmIGl0IGlzIGFscmVhZHkgb3Blbi5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICh0aGlzLmlzT3BlbiAmJiB0aGlzLiNhZmZpeGVyKSB7XG4gICAgICAgICAgICB0aGlzLiNhZmZpeGVyLnJlYWZmaXgoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLkZvY3VzVHJpZ2dlckJ1dHRvbjpcbiAgICAgICAgICB0aGlzLnRyaWdnZXJCdXR0b24/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjc2VuZE1lc3NhZ2UodHlwZTogU2t5RHJvcGRvd25NZXNzYWdlVHlwZSk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZVN0cmVhbT8ubmV4dCh7IHR5cGUgfSk7XG4gIH1cblxuICAjcG9zaXRpb25Ecm9wZG93bk1lbnUoKTogdm9pZCB7XG4gICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLiNjcmVhdGVPdmVybGF5KCk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG5cbiAgICAvLyBFeHBsaWNpdGx5IGRlY2xhcmUgdGhlIGBzZXRUaW1lb3V0YCBmcm9tIHRoZSBgd2luZG93YCBvYmplY3QgaW4gb3JkZXIgdG8gdXNlIHRoZSBET00gdHlwaW5nc1xuICAgIC8vIGR1cmluZyBhIHVuaXQgdGVzdCAoaW5zdGVhZCBvZiBjb25mdXNpbmcgdGhpcyB3aXRoIE5vZGUncyBgc2V0VGltZW91dGApLlxuICAgIHRoaXMuI3Bvc2l0aW9uVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLiNhZmZpeGVyKSB7XG4gICAgICAgIHRoaXMuI2FmZml4ZXIuYWZmaXhUbyh0aGlzLnRyaWdnZXJCdXR0b24/Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICBhdXRvRml0Q29udGV4dDogU2t5QWZmaXhBdXRvRml0Q29udGV4dC5WaWV3cG9ydCxcbiAgICAgICAgICBlbmFibGVBdXRvRml0OiB0cnVlLFxuICAgICAgICAgIGhvcml6b250YWxBbGlnbm1lbnQ6IHBhcnNlQWZmaXhIb3Jpem9udGFsQWxpZ25tZW50KFxuICAgICAgICAgICAgdGhpcy5ob3Jpem9udGFsQWxpZ25tZW50XG4gICAgICAgICAgKSxcbiAgICAgICAgICBpc1N0aWNreTogdHJ1ZSxcbiAgICAgICAgICBwbGFjZW1lbnQ6ICdiZWxvdycsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktZHJvcGRvd25cIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwic2t5LWJ0biBza3ktZHJvcGRvd24tYnV0dG9uXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzT3BlblwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpc09wZW4gPyBtZW51SWQgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cIm1lbnVBcmlhUm9sZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgIGxhYmVsIHx8ICgnc2t5dXhfZHJvcGRvd25fY29udGV4dF9tZW51X2RlZmF1bHRfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgIFwiXG4gICAgW2F0dHIudGl0bGVdPVwidGl0bGVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW25nQ2xhc3NdPVwiW1xuICAgICAgJ3NreS1kcm9wZG93bi1idXR0b24tdHlwZS0nICsgYnV0dG9uVHlwZSxcbiAgICAgICdza3ktYnRuLScgKyBidXR0b25TdHlsZVxuICAgIF1cIlxuICAgICN0cmlnZ2VyQnV0dG9uXG4gID5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJidXR0b25UeXBlXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwiY29udGV4dC1tZW51XCI+XG4gICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJlbGxpcHNpcy1oXCI+PC9za3ktaWNvbj5cbiAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiXG4gICAgICAgICAgaWNvbj1cImVsbGlwc2lzXCJcbiAgICAgICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgICAgPjwvc2t5LWljb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJidXR0b25UeXBlID09PSAnc2VsZWN0JyB8fCBidXR0b25UeXBlID09PSAndGFiJyB8fCAhYnV0dG9uVHlwZVwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktZHJvcGRvd24tYnV0dG9uLWNvbnRhaW5lclwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWRyb3Bkb3duLWJ1dHRvbi1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWRyb3Bkb3duLWJ1dHRvblwiPiA8L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNreS1kcm9wZG93bi1idXR0b24taWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWRyb3Bkb3duLWNhcmV0XCJcbiAgICAgICAgICAgICAgaWNvbj1cImNhcmV0LWRvd25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9za3ktaWNvbj5cbiAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZHJvcGRvd24tY2FyZXRcIlxuICAgICAgICAgICAgICBpY29uPVwiY2hldnJvbi1kb3duXCJcbiAgICAgICAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NreS1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiYnV0dG9uVHlwZSAhPT0gJ3NlbGVjdCcgJiYgYnV0dG9uVHlwZSAhPT0gJ3RhYicgJiYgYnV0dG9uVHlwZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gW2ljb25dPVwiYnV0dG9uVHlwZVwiIHNpemU9XCJsZ1wiPjwvc2t5LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNtZW51Q29udGFpbmVyVGVtcGxhdGVSZWY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1kcm9wZG93bi1tZW51LWNvbnRhaW5lclwiXG4gICAgW2NsYXNzLmhpZGRlbl09XCIhaXNWaXNpYmxlXCJcbiAgICAjbWVudUNvbnRhaW5lckVsZW1lbnRSZWZcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1kcm9wZG93bi1tZW51XCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
392
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixzQkFBc0IsR0FPdkIsTUFBTSxhQUFhLENBQUM7QUFHckIsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLElBQUksbUJBQW1CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXRFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBR3ZFLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDO0FBRXJDOztHQUVHO0FBT0gsTUFBTSxPQUFPLG9CQUFvQjtJQW9NL0IsWUFDRSxjQUFpQyxFQUNqQyxZQUE2QixFQUM3QixjQUFpQyxFQUNqQyxVQUF5QixFQUNiLFFBQTBCLEVBR3RDLGVBQW9DOztRQWpLdEM7OztXQUdHO1FBRUksYUFBUSxHQUF3QixLQUFLLENBQUM7UUFzQzdDOzs7O1dBSUc7UUFFSSxrQkFBYSxHQUNsQixJQUFJLE9BQU8sRUFBc0Is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QyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLHVCQUFBLElBQUksNENBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDckM7SUFDSCxDQUFDLENBQUMsTUFBQSxDQUFDO0FBQ0wsQ0FBQztrSEEvYlUsb0JBQW9CLCtMQTJNckIsb0JBQW9CO3NHQTNNbkIsb0JBQW9CLDJaQWtJdkIsVUFBVSwrSEFtQlYsV0FBVyx1SEFNWCxVQUFVLDJDQ3pNcEIsd3JFQXVFQTs0RkR6QmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTTs7MEJBMk01QyxRQUFROzswQkFDUixRQUFROzswQkFDUixNQUFNOzJCQUFDLG9CQUFvQjs0Q0FuTW5CLFdBQVc7c0JBRHJCLEtBQUs7Z0JBaUJLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBeUJDLFFBQVE7c0JBRGQsS0FBSztnQkFRSyxhQUFhO3NCQUR2QixLQUFLO2dCQWVDLEtBQUs7c0JBRFgsS0FBSztnQkFRSyxtQkFBbUI7c0JBRDdCLEtBQUs7Z0JBaUJDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBUUMsS0FBSztzQkFEWCxLQUFLO2dCQWNLLE9BQU87c0JBRGpCLEtBQUs7Z0JBcUJLLHVCQUF1QjtzQkFIakMsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRTt3QkFDcEMsSUFBSSxFQUFFLFVBQVU7cUJBQ2pCO2dCQXFCTSx3QkFBd0I7c0JBSjlCLFNBQVM7dUJBQUMsMEJBQTBCLEVBQUU7d0JBQ3JDLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPVSxhQUFhO3NCQUp2QixTQUFTO3VCQUFDLGVBQWUsRUFBRTt3QkFDMUIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTS1lfU1RBQ0tJTkdfQ09OVEVYVCxcbiAgU2t5QWZmaXhBdXRvRml0Q29udGV4dCxcbiAgU2t5QWZmaXhTZXJ2aWNlLFxuICBTa3lBZmZpeGVyLFxuICBTa3lMb2dTZXJ2aWNlLFxuICBTa3lPdmVybGF5SW5zdGFuY2UsXG4gIFNreU92ZXJsYXlTZXJ2aWNlLFxuICBTa3lTdGFja2luZ0NvbnRleHQsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGZyb21FdmVudCBhcyBvYnNlcnZhYmxlRnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IHBhcnNlQWZmaXhIb3Jpem9udGFsQWxpZ25tZW50IH0gZnJvbSAnLi9kcm9wZG93bi1leHRlbnNpb25zJztcbmltcG9ydCB7IFNreURyb3Bkb3duQnV0dG9uVHlwZSB9IGZyb20gJy4vdHlwZXMvZHJvcGRvd24tYnV0dG9uLXR5cGUnO1xuaW1wb3J0IHsgU2t5RHJvcGRvd25Ib3Jpem9udGFsQWxpZ25tZW50IH0gZnJvbSAnLi90eXBlcy9kcm9wZG93bi1ob3Jpem9udGFsLWFsaWdubWVudCc7XG5pbXBvcnQgeyBTa3lEcm9wZG93bk1lc3NhZ2UgfSBmcm9tICcuL3R5cGVzL2Ryb3Bkb3duLW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2t5RHJvcGRvd25NZXNzYWdlVHlwZSB9IGZyb20gJy4vdHlwZXMvZHJvcGRvd24tbWVzc2FnZS10eXBlJztcbmltcG9ydCB7IFNreURyb3Bkb3duVHJpZ2dlclR5cGUgfSBmcm9tICcuL3R5cGVzL2Ryb3Bkb3duLXRyaWdnZXItdHlwZSc7XG5cbmNvbnN0IERFRkFVTFRfQlVUVE9OX1RZUEUgPSAnc2VsZWN0JztcblxuLyoqXG4gKiBDcmVhdGVzIGEgZHJvcGRvd24gbWVudSB0aGF0IGRpc3BsYXlzIG1lbnUgaXRlbXMgdGhhdCB1c2VycyBtYXkgc2VsZWN0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGRyb3Bkb3duIGJ1dHRvbi4gQXZhaWxhYmxlIHZhbHVlcyBhcmUgYGRlZmF1bHRgLFxuICAgKiBgcHJpbWFyeWAsIGFuZCBgbGlua2AuIFRoZXNlIHZhbHVlcyBzZXQgdGhlIGJhY2tncm91bmQgY29sb3IgYW5kIGhvdmVyIGJlaGF2aW9yIGZyb20gdGhlXG4gICAqIFtzZWNvbmRhcnkgYW5kIHByaW1hcnkgYnV0dG9uIGNsYXNzZXNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9idXR0b24pIHJlc3BlY3RpdmVseS5cbiAgICogQGRlZmF1bHQgXCJkZWZhdWx0XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYnV0dG9uU3R5bGUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19idXR0b25TdHlsZSA9IHZhbHVlID8/ICdkZWZhdWx0JztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYnV0dG9uU3R5bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX2J1dHRvblN0eWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGJ1dHRvbiB0byByZW5kZXIgYXMgdGhlIGRyb3Bkb3duJ3MgdHJpZ2dlciBlbGVtZW50LiBUbyBkaXNwbGF5IGEgYnV0dG9uXG4gICAqIHdpdGggYSBjYXJldCwgc3BlY2lmeSBgJ3NlbGVjdCdgIGFuZCByZW5kZXIgdGhlIGJ1dHRvbiB0ZXh0IG9yIGljb24gaW4gYVxuICAgKiBgc2t5LWRyb3Bkb3duLWJ1dHRvbmAgZWxlbWVudC4gVG8gZGlzcGxheSBhIHJvdW5kIGJ1dHRvbiB3aXRoIGFuIGVsbGlwc2lzLCBzcGVjaWZ5XG4gICAqIGAnY29udGV4dC1tZW51J2AuXG4gICAqIEBkZWZhdWx0IFwic2VsZWN0XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYnV0dG9uVHlwZSh2YWx1ZTogU2t5RHJvcGRvd25CdXR0b25UeXBlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2J1dHRvblR5cGUgPSB2YWx1ZSA/PyBERUZBVUxUX0JVVFRPTl9UWVBFO1xuXG4gICAgaWYgKHZhbHVlICYmICFbJ3NlbGVjdCcsICdjb250ZXh0LW1lbnUnLCAndGFiJ10uaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICB0aGlzLiNsb2dTZXJ2aWNlLmRlcHJlY2F0ZWQoXG4gICAgICAgICdTa3lEcm9wZG93bkNvbXBvbmVudC5idXR0b25UeXBlIEZvbnQgQXdlc29tZSBpY29uIGNsYXNzIG9wdGlvbicsXG4gICAgICAgIHtcbiAgICAgICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogNyxcbiAgICAgICAgICByZXBsYWNlbWVudFJlY29tbWVuZGF0aW9uOlxuICAgICAgICAgICAgJ1NldCBgYnV0dG9uVHlwZWAgdG8gYHNlbGVjdGAgYW5kIHJlbmRlciBhIGA8c2t5LWljb24+YCBlbGVtZW50IHdpdGhpbiB0aGUgYDxza3ktZHJvcGRvd24tYnV0dG9uPmAgZWxlbWVudC4nLFxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgYnV0dG9uVHlwZSgpOiBTa3lEcm9wZG93bkJ1dHRvblR5cGUgfCBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfYnV0dG9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc2FibGUgdGhlIGRyb3Bkb3duIGJ1dHRvbi5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNsb3NlIHRoZSBkcm9wZG93biB3aGVuIHVzZXJzIGNsaWNrIGF3YXkgZnJvbSB0aGUgbWVudS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNtaXNzT25CbHVyKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2Rpc21pc3NPbkJsdXIgPSB2YWx1ZSA/PyB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNtaXNzT25CbHVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzbWlzc09uQmx1cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIGRyb3Bkb3duLiBUaGlzIHNldHMgdGhlIGRyb3Bkb3duJ3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSB0byBwcm92aWRlIGEgdGV4dCBlcXVpdmFsZW50IGZvciBzY3JlZW4gcmVhZGVyc1xuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLWxhYmVsKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgaG9yaXpvbnRhbCBhbGlnbm1lbnQgb2YgdGhlIGRyb3Bkb3duIG1lbnUgaW4gcmVsYXRpb24gdG8gdGhlIGRyb3Bkb3duIGJ1dHRvbi5cbiAgICogQGRlZmF1bHQgXCJsZWZ0XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaG9yaXpvbnRhbEFsaWdubWVudChcbiAgICB2YWx1ZTogU2t5RHJvcGRvd25Ib3Jpem9udGFsQWxpZ25tZW50IHwgdW5kZWZpbmVkXG4gICkge1xuICAgIHRoaXMuI19ob3Jpem9udGFsQWxpZ25tZW50ID0gdmFsdWUgPz8gJ2xlZnQnO1xuICB9XG5cbiAgcHVibGljIGdldCBob3Jpem9udGFsQWxpZ25tZW50KCk6IFNreURyb3Bkb3duSG9yaXpvbnRhbEFsaWdubWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI19ob3Jpem9udGFsQWxpZ25tZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBvYnNlcnZhYmxlIHRoYXQgc2VuZHMgY29tbWFuZHMgdG8gdGhlIGRyb3Bkb3duLiBUaGUgY29tbWFuZHMgc2hvdWxkIHJlc3BlY3RcbiAgICogdGhlIFtbU2t5RHJvcGRvd25NZXNzYWdlXV0gdHlwZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWVzc2FnZVN0cmVhbTogU3ViamVjdDxTa3lEcm9wZG93bk1lc3NhZ2U+IHwgdW5kZWZpbmVkID1cbiAgICBuZXcgU3ViamVjdDxTa3lEcm9wZG93bk1lc3NhZ2U+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSB0byBkaXNwbGF5IGluIGEgdG9vbHRpcCB3aGVuIHVzZXJzIGhvdmVyIHRoZSBtb3VzZSBvdmVyIHRoZSBkcm9wZG93biBidXR0b24uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSG93IHVzZXJzIGludGVyYWN0IHdpdGggdGhlIGRyb3Bkb3duIGJ1dHRvbiB0byBleHBvc2UgdGhlIGRyb3Bkb3duIG1lbnUuXG4gICAqIFdlIHJlY29tbWVuZCB0aGUgZGVmYXVsdCBgY2xpY2tgIHZhbHVlIGJlY2F1c2UgdGhlIGBob3ZlcmAgdmFsdWUgY2FuIHBvc2VcbiAgICogW2FjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkgaXNzdWVzXG4gICAqIGZvciB1c2VycyBvbiB0b3VjaCBkZXZpY2VzIHN1Y2ggYXMgcGhvbmVzIGFuZCB0YWJsZXRzLlxuICAgKiBAZGVwcmVjYXRlZCBXZSByZWNvbW1lbmQgYWdhaW5zdCB1c2luZyB0aGlzIHByb3BlcnR5LiBJZiB5b3UgY2hvb3NlIHRvIHVzZSB0aGUgZGVwcmVjYXRlZFxuICAgKiBgaG92ZXJgIHZhbHVlIGFueXdheSwgd2UgcmVjb21tZW5kIHRoYXQgeW91IG5vdCB1c2UgaXQgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgYHRpdGxlYFxuICAgKiBwcm9wZXJ0eS5cbiAgICogQGRlZmF1bHQgXCJjbGlja1wiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHRyaWdnZXIodmFsdWU6IFNreURyb3Bkb3duVHJpZ2dlclR5cGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfdHJpZ2dlciA9IHZhbHVlID8/ICdjbGljayc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRyaWdnZXIoKTogU2t5RHJvcGRvd25UcmlnZ2VyVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuI190cmlnZ2VyO1xuICB9XG5cbiAgcHVibGljIHNldCBpc09wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNfaXNPcGVuID0gdmFsdWU7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2lzT3BlbjtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ21lbnVDb250YWluZXJFbGVtZW50UmVmJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gIH0pXG4gIHB1YmxpYyBzZXQgbWVudUNvbnRhaW5lckVsZW1lbnRSZWYodmFsdWU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2Rlc3Ryb3lBZmZpeGVyKCk7XG4gICAgICB0aGlzLiNjcmVhdGVBZmZpeGVyKHZhbHVlKTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc01vdXNlRW50ZXIgPSBmYWxzZTtcblxuICBwdWJsaWMgaXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgcHVibGljIG1lbnVJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBtZW51QXJpYVJvbGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdtZW51Q29udGFpbmVyVGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgbWVudUNvbnRhaW5lclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyQnV0dG9uJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgc2V0IHRyaWdnZXJCdXR0b24odmFsdWU6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfdHJpZ2dlckJ1dHRvbiA9IHZhbHVlO1xuICAgIHRoaXMuI2FkZEV2ZW50TGlzdGVuZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRyaWdnZXJCdXR0b24oKTogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI190cmlnZ2VyQnV0dG9uO1xuICB9XG5cbiAgI2FmZml4ZXI6IFNreUFmZml4ZXIgfCB1bmRlZmluZWQ7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNvdmVybGF5OiBTa3lPdmVybGF5SW5zdGFuY2UgfCB1bmRlZmluZWQ7XG5cbiAgI19idXR0b25TdHlsZSA9ICdkZWZhdWx0JztcblxuICAjX2J1dHRvblR5cGU6IFNreURyb3Bkb3duQnV0dG9uVHlwZSB8IHN0cmluZyA9IERFRkFVTFRfQlVUVE9OX1RZUEU7XG5cbiAgI19kaXNtaXNzT25CbHVyID0gdHJ1ZTtcblxuICAjX2hvcml6b250YWxBbGlnbm1lbnQ6IFNreURyb3Bkb3duSG9yaXpvbnRhbEFsaWdubWVudCA9ICdsZWZ0JztcblxuICAjX2lzT3BlbiA9IGZhbHNlO1xuXG4gICNfdHJpZ2dlcjogU2t5RHJvcGRvd25UcmlnZ2VyVHlwZSA9ICdjbGljayc7XG5cbiAgI190cmlnZ2VyQnV0dG9uOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNwb3NpdGlvblRpbWVvdXQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjYWZmaXhTZXJ2aWNlOiBTa3lBZmZpeFNlcnZpY2U7XG4gICNvdmVybGF5U2VydmljZTogU2t5T3ZlcmxheVNlcnZpY2U7XG4gICNsb2dTZXJ2aWNlOiBTa3lMb2dTZXJ2aWNlO1xuICAjdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI3pJbmRleDogT2JzZXJ2YWJsZTxudW1iZXI+IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBhZmZpeFNlcnZpY2U6IFNreUFmZml4U2VydmljZSxcbiAgICBvdmVybGF5U2VydmljZTogU2t5T3ZlcmxheVNlcnZpY2UsXG4gICAgbG9nU2VydmljZTogU2t5TG9nU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoU0tZX1NUQUNLSU5HX0NPTlRFWFQpXG4gICAgc3RhY2tpbmdDb250ZXh0PzogU2t5U3RhY2tpbmdDb250ZXh0XG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jYWZmaXhTZXJ2aWNlID0gYWZmaXhTZXJ2aWNlO1xuICAgIHRoaXMuI292ZXJsYXlTZXJ2aWNlID0gb3ZlcmxheVNlcnZpY2U7XG4gICAgdGhpcy4jbG9nU2VydmljZSA9IGxvZ1NlcnZpY2U7XG4gICAgdGhpcy4jdGhlbWVTdmMgPSB0aGVtZVN2YztcbiAgICB0aGlzLiN6SW5kZXggPSBzdGFja2luZ0NvbnRleHQ/LnpJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VTdHJlYW1cbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lEcm9wZG93bk1lc3NhZ2UpID0+IHtcbiAgICAgICAgdGhpcy4jaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhtZXNzYWdlKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gTG9hZCBwcm9wZXIgaWNvbnMgb24gdGhlbWUgY2hhbmdlLlxuICAgIHRoaXMuI3RoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jZGVzdHJveUFmZml4ZXIoKTtcbiAgICB0aGlzLiNkZXN0cm95T3ZlcmxheSgpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLiNwb3NpdGlvblRpbWVvdXQpO1xuXG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgI2FkZEV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBjb25zdCBidXR0b25FbGVtZW50ID0gdGhpcy50cmlnZ2VyQnV0dG9uPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChidXR0b25FbGVtZW50KSB7XG4gICAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGJ1dHRvbkVsZW1lbnQsICdjbGljaycpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLiNzZW5kTWVzc2FnZShTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLkNsb3NlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4jc2VuZE1lc3NhZ2UoU2t5RHJvcGRvd25NZXNzYWdlVHlwZS5PcGVuKTtcbiAgICAgICAgICAgIC8vIFdhaXQgZm9yIGRyb3Bkb3duIHRvIG9wZW4sIHRoZW4gc2V0IGZvY3VzIG9uIGZpcnN0IGl0ZW0uXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy4jc2VuZE1lc3NhZ2UoU2t5RHJvcGRvd25NZXNzYWdlVHlwZS5Gb2N1c0ZpcnN0SXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBvYnNlcnZhYmxlRnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGJ1dHRvbkVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2VzY2FwZSc6XG4gICAgICAgICAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgICAgICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLiNzZW5kTWVzc2FnZShTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLkNsb3NlKTtcbiAgICAgICAgICAgICAgICB0aGlzLiNzZW5kTWVzc2FnZShTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLkZvY3VzVHJpZ2dlckJ1dHRvbik7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ3RhYic6XG4gICAgICAgICAgICAgIGlmICh0aGlzLmlzT3BlbiAmJiB0aGlzLmRpc21pc3NPbkJsdXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiNzZW5kTWVzc2FnZShTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLkNsb3NlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnYXJyb3d1cCc6XG4gICAgICAgICAgICBjYXNlICd1cCc6XG4gICAgICAgICAgICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLiNzZW5kTWVzc2FnZShTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLk9wZW4pO1xuICAgICAgICAgICAgICAgIHRoaXMuI3NlbmRNZXNzYWdlKFNreURyb3Bkb3duTWVzc2FnZVR5cGUuRm9jdXNMYXN0SXRlbSk7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnZW50ZXInOlxuICAgICAgICAgICAgY2FzZSAnYXJyb3dkb3duJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgICAgICAgY2FzZSAnICc6IC8vIFNwYWNlYmFyLlxuICAgICAgICAgICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuI3NlbmRNZXNzYWdlKFNreURyb3Bkb3duTWVzc2FnZVR5cGUuT3Blbik7XG4gICAgICAgICAgICAgICAgdGhpcy4jc2VuZE1lc3NhZ2UoU2t5RHJvcGRvd25NZXNzYWdlVHlwZS5Gb2N1c0ZpcnN0SXRlbSk7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGJ1dHRvbkVsZW1lbnQsICdtb3VzZWVudGVyJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTW91c2VFbnRlciA9IHRydWU7XG4gICAgICAgICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gJ2hvdmVyJykge1xuICAgICAgICAgICAgdGhpcy4jc2VuZE1lc3NhZ2UoU2t5RHJvcGRvd25NZXNzYWdlVHlwZS5PcGVuKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGJ1dHRvbkVsZW1lbnQsICdtb3VzZWxlYXZlJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTW91c2VFbnRlciA9IGZhbHNlO1xuICAgICAgICAgIGlmICh0aGlzLnRyaWdnZXIgPT09ICdob3ZlcicpIHtcbiAgICAgICAgICAgIC8vIEFsbG93IHRoZSBkcm9wZG93biBtZW51IHRvIHNldCBpc01vdXNlRW50ZXIgYmVmb3JlIGNoZWNraW5nIGlmIHRoZSBjbG9zZSBhY3Rpb25cbiAgICAgICAgICAgIC8vIHNob3VsZCBiZSB0YWtlbi5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNNb3VzZUVudGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jc2VuZE1lc3NhZ2UoU2t5RHJvcGRvd25NZXNzYWdlVHlwZS5DbG9zZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI2NyZWF0ZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI292ZXJsYXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tZW51Q29udGFpbmVyVGVtcGxhdGVSZWYpIHtcbiAgICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLiNvdmVybGF5U2VydmljZS5jcmVhdGUoe1xuICAgICAgICBlbmFibGVTY3JvbGw6IHRydWUsXG4gICAgICAgIGVuYWJsZVBvaW50ZXJFdmVudHM6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMuI3pJbmRleCkge1xuICAgICAgICB0aGlzLiN6SW5kZXhcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoekluZGV4KSA9PiB7XG4gICAgICAgICAgICBvdmVybGF5LmNvbXBvbmVudFJlZi5pbnN0YW5jZS56SW5kZXggPSB6SW5kZXgudG9TdHJpbmcoMTApO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBvdmVybGF5LmF0dGFjaFRlbXBsYXRlKHRoaXMubWVudUNvbnRhaW5lclRlbXBsYXRlUmVmKTtcblxuICAgICAgb3ZlcmxheS5iYWNrZHJvcENsaWNrXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuZGlzbWlzc09uQmx1cikge1xuICAgICAgICAgICAgdGhpcy4jc2VuZE1lc3NhZ2UoU2t5RHJvcGRvd25NZXNzYWdlVHlwZS5DbG9zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgdGhpcy4jb3ZlcmxheSA9IG92ZXJsYXk7XG4gICAgfVxuICB9XG5cbiAgI2Rlc3Ryb3lBZmZpeGVyKCk6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNhZmZpeGVyKSB7XG4gICAgICB0aGlzLiNhZmZpeGVyLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuI2FmZml4ZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgI2Rlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNvdmVybGF5KSB7XG4gICAgICB0aGlzLiNvdmVybGF5U2VydmljZS5jbG9zZSh0aGlzLiNvdmVybGF5KTtcbiAgICAgIHRoaXMuI292ZXJsYXkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgI2NyZWF0ZUFmZml4ZXIobWVudUNvbnRhaW5lckVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICBjb25zdCBhZmZpeGVyID0gdGhpcy4jYWZmaXhTZXJ2aWNlLmNyZWF0ZUFmZml4ZXIobWVudUNvbnRhaW5lckVsZW1lbnRSZWYpO1xuXG4gICAgYWZmaXhlci5wbGFjZW1lbnRDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IGNoYW5nZS5wbGFjZW1lbnQgIT09IG51bGw7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNhZmZpeGVyID0gYWZmaXhlcjtcbiAgfVxuXG4gICNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreURyb3Bkb3duTWVzc2FnZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgICAgY2FzZSBTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLk9wZW46XG4gICAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgICAgIHRoaXMuI3Bvc2l0aW9uRHJvcGRvd25NZW51KCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLkNsb3NlOlxuICAgICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy4jZGVzdHJveU92ZXJsYXkoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFNreURyb3Bkb3duTWVzc2FnZVR5cGUuUmVwb3NpdGlvbjpcbiAgICAgICAgICAvLyBPbmx5IHJlcG9zaXRpb24gdGhlIGRyb3Bkb3duIGlmIGl0IGlzIGFscmVhZHkgb3Blbi5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICh0aGlzLmlzT3BlbiAmJiB0aGlzLiNhZmZpeGVyKSB7XG4gICAgICAgICAgICB0aGlzLiNhZmZpeGVyLnJlYWZmaXgoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBTa3lEcm9wZG93bk1lc3NhZ2VUeXBlLkZvY3VzVHJpZ2dlckJ1dHRvbjpcbiAgICAgICAgICB0aGlzLnRyaWdnZXJCdXR0b24/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjc2VuZE1lc3NhZ2UodHlwZTogU2t5RHJvcGRvd25NZXNzYWdlVHlwZSk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZVN0cmVhbT8ubmV4dCh7IHR5cGUgfSk7XG4gIH1cblxuICAjcG9zaXRpb25Ecm9wZG93bk1lbnUoKTogdm9pZCB7XG4gICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLiNjcmVhdGVPdmVybGF5KCk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG5cbiAgICAvLyBFeHBsaWNpdGx5IGRlY2xhcmUgdGhlIGBzZXRUaW1lb3V0YCBmcm9tIHRoZSBgd2luZG93YCBvYmplY3QgaW4gb3JkZXIgdG8gdXNlIHRoZSBET00gdHlwaW5nc1xuICAgIC8vIGR1cmluZyBhIHVuaXQgdGVzdCAoaW5zdGVhZCBvZiBjb25mdXNpbmcgdGhpcyB3aXRoIE5vZGUncyBgc2V0VGltZW91dGApLlxuICAgIHRoaXMuI3Bvc2l0aW9uVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLiNhZmZpeGVyKSB7XG4gICAgICAgIHRoaXMuI2FmZml4ZXIuYWZmaXhUbyh0aGlzLnRyaWdnZXJCdXR0b24/Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICBhdXRvRml0Q29udGV4dDogU2t5QWZmaXhBdXRvRml0Q29udGV4dC5WaWV3cG9ydCxcbiAgICAgICAgICBlbmFibGVBdXRvRml0OiB0cnVlLFxuICAgICAgICAgIGhvcml6b250YWxBbGlnbm1lbnQ6IHBhcnNlQWZmaXhIb3Jpem9udGFsQWxpZ25tZW50KFxuICAgICAgICAgICAgdGhpcy5ob3Jpem9udGFsQWxpZ25tZW50XG4gICAgICAgICAgKSxcbiAgICAgICAgICBpc1N0aWNreTogdHJ1ZSxcbiAgICAgICAgICBwbGFjZW1lbnQ6ICdiZWxvdycsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktZHJvcGRvd25cIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwic2t5LWJ0biBza3ktZHJvcGRvd24tYnV0dG9uXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzT3BlblwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpc09wZW4gPyBtZW51SWQgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cIm1lbnVBcmlhUm9sZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgIGxhYmVsIHx8ICgnc2t5dXhfZHJvcGRvd25fY29udGV4dF9tZW51X2RlZmF1bHRfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgIFwiXG4gICAgW2F0dHIudGl0bGVdPVwidGl0bGVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW25nQ2xhc3NdPVwiW1xuICAgICAgJ3NreS1kcm9wZG93bi1idXR0b24tdHlwZS0nICsgYnV0dG9uVHlwZSxcbiAgICAgICdza3ktYnRuLScgKyBidXR0b25TdHlsZVxuICAgIF1cIlxuICAgICN0cmlnZ2VyQnV0dG9uXG4gID5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJidXR0b25UeXBlXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hDYXNlPVwiY29udGV4dC1tZW51XCI+XG4gICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJlbGxpcHNpcy1oXCI+PC9za3ktaWNvbj5cbiAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiXG4gICAgICAgICAgaWNvbj1cImVsbGlwc2lzXCJcbiAgICAgICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgICAgPjwvc2t5LWljb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bmctdGVtcGxhdGUgbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJidXR0b25UeXBlID09PSAnc2VsZWN0JyB8fCBidXR0b25UeXBlID09PSAndGFiJyB8fCAhYnV0dG9uVHlwZVwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktZHJvcGRvd24tYnV0dG9uLWNvbnRhaW5lclwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2t5LWRyb3Bkb3duLWJ1dHRvbi1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWRyb3Bkb3duLWJ1dHRvblwiPiA8L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNreS1kcm9wZG93bi1idXR0b24taWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWRyb3Bkb3duLWNhcmV0XCJcbiAgICAgICAgICAgICAgaWNvbj1cImNhcmV0LWRvd25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9za3ktaWNvbj5cbiAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZHJvcGRvd24tY2FyZXRcIlxuICAgICAgICAgICAgICBpY29uPVwiY2hldnJvbi1kb3duXCJcbiAgICAgICAgICAgICAgaWNvblR5cGU9XCJza3l1eFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NreS1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiYnV0dG9uVHlwZSAhPT0gJ3NlbGVjdCcgJiYgYnV0dG9uVHlwZSAhPT0gJ3RhYicgJiYgYnV0dG9uVHlwZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gW2ljb25dPVwiYnV0dG9uVHlwZVwiIHNpemU9XCJsZ1wiPjwvc2t5LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNtZW51Q29udGFpbmVyVGVtcGxhdGVSZWY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1kcm9wZG93bi1tZW51LWNvbnRhaW5lclwiXG4gICAgW2NsYXNzLmhpZGRlbl09XCIhaXNWaXNpYmxlXCJcbiAgICAjbWVudUNvbnRhaW5lckVsZW1lbnRSZWZcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1kcm9wZG93bi1tZW51XCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
var _SkyPopoverComponent_instances, _SkyPopoverComponent_contentRef, _SkyPopoverComponent_isMarkedForCloseOnMouseLeave, _SkyPopoverComponent_ngUnsubscribe, _SkyPopoverComponent_overlay, _SkyPopoverComponent__alignment, _SkyPopoverComponent__dismissOnBlur, _SkyPopoverComponent__placement, _SkyPopoverComponent__popoverType, _SkyPopoverComponent_overlayService, _SkyPopoverComponent_setupOverlay;
|
|
1
|
+
var _SkyPopoverComponent_instances, _SkyPopoverComponent_contentRef, _SkyPopoverComponent_isMarkedForCloseOnMouseLeave, _SkyPopoverComponent_ngUnsubscribe, _SkyPopoverComponent_overlay, _SkyPopoverComponent__alignment, _SkyPopoverComponent__dismissOnBlur, _SkyPopoverComponent__placement, _SkyPopoverComponent__popoverType, _SkyPopoverComponent_overlayService, _SkyPopoverComponent_zIndex, _SkyPopoverComponent_setupOverlay;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild, } from '@angular/core';
|
|
3
|
+
import { Component, EventEmitter, Inject, Input, Optional, Output, TemplateRef, ViewChild, } from '@angular/core';
|
|
4
|
+
import { SKY_STACKING_CONTEXT, } from '@skyux/core';
|
|
4
5
|
import { Subject } from 'rxjs';
|
|
5
6
|
import { takeUntil } from 'rxjs/operators';
|
|
6
7
|
import { SkyPopoverContentComponent } from './popover-content.component';
|
|
@@ -8,7 +9,7 @@ import { SkyPopoverContext } from './popover-context';
|
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@skyux/core";
|
|
10
11
|
export class SkyPopoverComponent {
|
|
11
|
-
constructor(overlayService) {
|
|
12
|
+
constructor(overlayService, stackingContext) {
|
|
12
13
|
_SkyPopoverComponent_instances.add(this);
|
|
13
14
|
/**
|
|
14
15
|
* Fires when users close the popover.
|
|
@@ -39,7 +40,9 @@ export class SkyPopoverComponent {
|
|
|
39
40
|
_SkyPopoverComponent__placement.set(this, 'above');
|
|
40
41
|
_SkyPopoverComponent__popoverType.set(this, 'info');
|
|
41
42
|
_SkyPopoverComponent_overlayService.set(this, void 0);
|
|
43
|
+
_SkyPopoverComponent_zIndex.set(this, void 0);
|
|
42
44
|
__classPrivateFieldSet(this, _SkyPopoverComponent_overlayService, overlayService, "f");
|
|
45
|
+
__classPrivateFieldSet(this, _SkyPopoverComponent_zIndex, stackingContext?.zIndex, "f");
|
|
43
46
|
}
|
|
44
47
|
/**
|
|
45
48
|
* The horizontal alignment of the popover in relation to the trigger element.
|
|
@@ -140,12 +143,19 @@ export class SkyPopoverComponent {
|
|
|
140
143
|
__classPrivateFieldSet(this, _SkyPopoverComponent_isMarkedForCloseOnMouseLeave, true, "f");
|
|
141
144
|
}
|
|
142
145
|
}
|
|
143
|
-
_SkyPopoverComponent_contentRef = new WeakMap(), _SkyPopoverComponent_isMarkedForCloseOnMouseLeave = new WeakMap(), _SkyPopoverComponent_ngUnsubscribe = new WeakMap(), _SkyPopoverComponent_overlay = new WeakMap(), _SkyPopoverComponent__alignment = new WeakMap(), _SkyPopoverComponent__dismissOnBlur = new WeakMap(), _SkyPopoverComponent__placement = new WeakMap(), _SkyPopoverComponent__popoverType = new WeakMap(), _SkyPopoverComponent_overlayService = new WeakMap(), _SkyPopoverComponent_instances = new WeakSet(), _SkyPopoverComponent_setupOverlay = function _SkyPopoverComponent_setupOverlay() {
|
|
146
|
+
_SkyPopoverComponent_contentRef = new WeakMap(), _SkyPopoverComponent_isMarkedForCloseOnMouseLeave = new WeakMap(), _SkyPopoverComponent_ngUnsubscribe = new WeakMap(), _SkyPopoverComponent_overlay = new WeakMap(), _SkyPopoverComponent__alignment = new WeakMap(), _SkyPopoverComponent__dismissOnBlur = new WeakMap(), _SkyPopoverComponent__placement = new WeakMap(), _SkyPopoverComponent__popoverType = new WeakMap(), _SkyPopoverComponent_overlayService = new WeakMap(), _SkyPopoverComponent_zIndex = new WeakMap(), _SkyPopoverComponent_instances = new WeakSet(), _SkyPopoverComponent_setupOverlay = function _SkyPopoverComponent_setupOverlay() {
|
|
144
147
|
if (this.templateRef) {
|
|
145
148
|
const overlay = __classPrivateFieldGet(this, _SkyPopoverComponent_overlayService, "f").create({
|
|
146
149
|
enableScroll: true,
|
|
147
150
|
enablePointerEvents: true,
|
|
148
151
|
});
|
|
152
|
+
if (__classPrivateFieldGet(this, _SkyPopoverComponent_zIndex, "f")) {
|
|
153
|
+
__classPrivateFieldGet(this, _SkyPopoverComponent_zIndex, "f")
|
|
154
|
+
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyPopoverComponent_ngUnsubscribe, "f")))
|
|
155
|
+
.subscribe((zIndex) => {
|
|
156
|
+
overlay.componentRef.instance.zIndex = zIndex.toString(10);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
149
159
|
overlay.backdropClick
|
|
150
160
|
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyPopoverComponent_ngUnsubscribe, "f")))
|
|
151
161
|
.subscribe(() => {
|
|
@@ -186,12 +196,17 @@ _SkyPopoverComponent_contentRef = new WeakMap(), _SkyPopoverComponent_isMarkedFo
|
|
|
186
196
|
__classPrivateFieldSet(this, _SkyPopoverComponent_contentRef, contentRef, "f");
|
|
187
197
|
}
|
|
188
198
|
};
|
|
189
|
-
SkyPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyPopoverComponent, deps: [{ token: i1.SkyOverlayService }], target: i0.ɵɵFactoryTarget.Component });
|
|
199
|
+
SkyPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyPopoverComponent, deps: [{ token: i1.SkyOverlayService }, { token: SKY_STACKING_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
190
200
|
SkyPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.11", type: SkyPopoverComponent, selector: "sky-popover", inputs: { alignment: "alignment", dismissOnBlur: "dismissOnBlur", placement: "placement", popoverTitle: "popoverTitle", popoverType: "popoverType" }, outputs: { popoverClosed: "popoverClosed", popoverOpened: "popoverOpened" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-template #templateRef>\n <ng-content></ng-content>\n</ng-template>\n" });
|
|
191
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyPopoverComponent, decorators: [{
|
|
192
202
|
type: Component,
|
|
193
203
|
args: [{ selector: 'sky-popover', template: "<ng-template #templateRef>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
194
|
-
}], ctorParameters: function () { return [{ type: i1.SkyOverlayService }
|
|
204
|
+
}], ctorParameters: function () { return [{ type: i1.SkyOverlayService }, { type: undefined, decorators: [{
|
|
205
|
+
type: Optional
|
|
206
|
+
}, {
|
|
207
|
+
type: Inject,
|
|
208
|
+
args: [SKY_STACKING_CONTEXT]
|
|
209
|
+
}] }]; }, propDecorators: { alignment: [{
|
|
195
210
|
type: Input
|
|
196
211
|
}], dismissOnBlur: [{
|
|
197
212
|
type: Input
|
|
@@ -212,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
|
|
|
212
227
|
static: true,
|
|
213
228
|
}]
|
|
214
229
|
}] } });
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBU3RELE1BQU0sT0FBTyxtQkFBbUI7SUFpSDlCLFlBQVksY0FBaUM7O1FBbkQ3Qzs7V0FFRztRQUVJLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFFL0Q7O1dBRUc7UUFFSSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRS9EOzs7V0FHRztRQUNJLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFeEI7Ozs7V0FJRztRQUNJLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUV4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQVE1QixrREFBeUM7UUFFekMsNERBQWdDLEtBQUssRUFBQztRQUV0Qyw2Q0FBaUIsSUFBSSxPQUFPLEVBQVEsRUFBQztRQUVyQywrQ0FBeUM7UUFFekMsMENBQW1DLFFB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Vzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreU92ZXJsYXlJbnN0YW5jZSwgU2t5T3ZlcmxheVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5UG9wb3ZlckNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL3BvcG92ZXItY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UG9wb3ZlckNvbnRleHQgfSBmcm9tICcuL3BvcG92ZXItY29udGV4dCc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyQWxpZ25tZW50IH0gZnJvbSAnLi90eXBlcy9wb3BvdmVyLWFsaWdubWVudCc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyUGxhY2VtZW50IH0gZnJvbSAnLi90eXBlcy9wb3BvdmVyLXBsYWNlbWVudCc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyVHlwZSB9IGZyb20gJy4vdHlwZXMvcG9wb3Zlci10eXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreVBvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIGhvcml6b250YWwgYWxpZ25tZW50IG9mIHRoZSBwb3BvdmVyIGluIHJlbGF0aW9uIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQuXG4gICAqIFRoZSBgc2t5UG9wb3ZlckFsaWdubWVudGAgcHJvcGVydHkgb24gdGhlIHBvcG92ZXIgZGlyZWN0aXZlIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGlzIHByb3BlcnR5IHdoZW4gc3BlY2lmaWVkLlxuICAgKiBAZGVmYXVsdCBcImNlbnRlclwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFsaWdubWVudCh2YWx1ZTogU2t5UG9wb3ZlckFsaWdubWVudCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19hbGlnbm1lbnQgPSB2YWx1ZSA/PyAnY2VudGVyJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWxpZ25tZW50KCk6IFNreVBvcG92ZXJBbGlnbm1lbnQge1xuICAgIHJldHVybiB0aGlzLiNfYWxpZ25tZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2xvc2UgdGhlIHBvcG92ZXIgd2hlbiBpdCBsb3NlcyBmb2N1cy5cbiAgICogVG8gcmVxdWlyZSB1c2VycyB0byBjbGljayBhIHRyaWdnZXIgYnV0dG9uIHRvIGNsb3NlIHRoZSBwb3BvdmVyLCBzZXQgdGhpcyBpbnB1dCB0byBmYWxzZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNtaXNzT25CbHVyKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2Rpc21pc3NPbkJsdXIgPSB2YWx1ZSA/PyB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNtaXNzT25CbHVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzbWlzc09uQmx1cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGxhY2VtZW50IG9mIHRoZSBwb3BvdmVyIGluIHJlbGF0aW9uIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQuXG4gICAqIFRoZSBgc2t5UG9wb3ZlclBsYWNlbWVudGAgcHJvcGVydHkgb24gdGhlIHBvcG92ZXIgZGlyZWN0aXZlIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGlzIHByb3BlcnR5IHdoZW4gc3BlY2lmaWVkLlxuICAgKiBAZGVmYXVsdCBcImFib3ZlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGxhY2VtZW50KHZhbHVlOiBTa3lQb3BvdmVyUGxhY2VtZW50IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3BsYWNlbWVudCA9IHZhbHVlID8/ICdhYm92ZSc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBsYWNlbWVudCgpOiBTa3lQb3BvdmVyUGxhY2VtZW50IHtcbiAgICByZXR1cm4gdGhpcy4jX3BsYWNlbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgZm9yIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHBvcG92ZXJUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwb3BvdmVyLlxuICAgKiBAZGVmYXVsdCBcImluZm9cIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwb3BvdmVyVHlwZSh2YWx1ZTogU2t5UG9wb3ZlclR5cGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfcG9wb3ZlclR5cGUgPSB2YWx1ZSA/PyAnaW5mbyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBvcG92ZXJUeXBlKCk6IFNreVBvcG92ZXJUeXBlIHtcbiAgICByZXR1cm4gdGhpcy4jX3BvcG92ZXJUeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgY2xvc2UgdGhlIHBvcG92ZXIuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHBvcG92ZXJDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVBvcG92ZXJDb21wb25lbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgb3BlbiB0aGUgcG9wb3Zlci5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcG9wb3Zlck9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5UG9wb3ZlckNvbXBvbmVudD4oKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcG9wb3ZlciBpcyBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBvcGVuZWQgb3IgY2xvc2VkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBpc0FjdGl2ZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBVc2VkIGJ5IHVuaXQgdGVzdHMgdG8gZGlzYWJsZSBhbmltYXRpb25zIHNpbmNlIHRoZSBjb21wb25lbnQgaXMgaW5qZWN0ZWQgYXQgdGhlIGJvdHRvbSBvZiB0aGVcbiAgICogZG9jdW1lbnQgYm9keS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZW5hYmxlQW5pbWF0aW9ucyA9IHRydWU7XG5cbiAgcHVibGljIGlzTW91c2VFbnRlciA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUmVmJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAjY29udGVudFJlZiE6IFNreVBvcG92ZXJDb250ZW50Q29tcG9uZW50O1xuXG4gICNpc01hcmtlZEZvckNsb3NlT25Nb3VzZUxlYXZlID0gZmFsc2U7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNvdmVybGF5OiBTa3lPdmVybGF5SW5zdGFuY2UgfCB1bmRlZmluZWQ7XG5cbiAgI19hbGlnbm1lbnQ6IFNreVBvcG92ZXJBbGlnbm1lbnQgPSAnY2VudGVyJztcblxuICAjX2Rpc21pc3NPbkJsdXIgPSB0cnVlO1xuXG4gICNfcGxhY2VtZW50OiBTa3lQb3BvdmVyUGxhY2VtZW50ID0gJ2Fib3ZlJztcblxuICAjX3BvcG92ZXJUeXBlOiBTa3lQb3BvdmVyVHlwZSA9ICdpbmZvJztcblxuICAjb3ZlcmxheVNlcnZpY2U6IFNreU92ZXJsYXlTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKG92ZXJsYXlTZXJ2aWNlOiBTa3lPdmVybGF5U2VydmljZSkge1xuICAgIHRoaXMuI292ZXJsYXlTZXJ2aWNlID0gb3ZlcmxheVNlcnZpY2U7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuXG4gICAgaWYgKHRoaXMuI292ZXJsYXkpIHtcbiAgICAgIHRoaXMuI292ZXJsYXlTZXJ2aWNlLmNsb3NlKHRoaXMuI292ZXJsYXkpO1xuICAgICAgdGhpcy4jb3ZlcmxheSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUG9zaXRpb25zIHRoZSBwb3BvdmVyIG5leHQgdG8gYSBnaXZlbiBjYWxsZXIgZWxlbWVudC5cbiAgICogQHBhcmFtIGNhbGxlciBUaGUgZWxlbWVudCB0aGF0IG9wZW5lZCB0aGUgcG9wb3Zlci5cbiAgICogQHBhcmFtIHBsYWNlbWVudCBUaGUgcGxhY2VtZW50IG9mIHRoZSBwb3BvdmVyLlxuICAgKiBAcGFyYW0gYWxpZ25tZW50IFRoZSBob3Jpem9udGFsIGFsaWdubWVudCBvZiB0aGUgcG9wb3Zlci5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgcG9zaXRpb25OZXh0VG8oXG4gICAgY2FsbGVyOiBFbGVtZW50UmVmLFxuICAgIHBsYWNlbWVudD86IFNreVBvcG92ZXJQbGFjZW1lbnQsXG4gICAgYWxpZ25tZW50PzogU2t5UG9wb3ZlckFsaWdubWVudFxuICApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI292ZXJsYXkpIHtcbiAgICAgIHRoaXMuI3NldHVwT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIHRoaXMucGxhY2VtZW50ID0gcGxhY2VtZW50ID8/IHRoaXMucGxhY2VtZW50O1xuICAgIHRoaXMuYWxpZ25tZW50ID0gYWxpZ25tZW50ID8/IHRoaXMuYWxpZ25tZW50O1xuICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgdGhpcy4jY29udGVudFJlZi5vcGVuKGNhbGxlciwge1xuICAgICAgZGlzbWlzc09uQmx1cjogdGhpcy5kaXNtaXNzT25CbHVyLFxuICAgICAgZW5hYmxlQW5pbWF0aW9uczogdGhpcy5lbmFibGVBbmltYXRpb25zLFxuICAgICAgaG9yaXpvbnRhbEFsaWdubWVudDogdGhpcy5hbGlnbm1lbnQsXG4gICAgICBpc1N0YXRpYzogZmFsc2UsXG4gICAgICBwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50LFxuICAgICAgcG9wb3ZlclRpdGxlOiB0aGlzLnBvcG92ZXJUaXRsZSxcbiAgICAgIHBvcG92ZXJUeXBlOiB0aGlzLnBvcG92ZXJUeXBlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgcG9wb3Zlci5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgbmV4dCovXG4gICAgdGhpcy4jY29udGVudFJlZj8uY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCcmluZ3MgZm9jdXMgdG8gdGhlIHBvcG92ZXIgZWxlbWVudCBpZiBpdHMgb3Blbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYXBwbHlGb2N1cygpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBuZXh0Ki9cbiAgICB0aGlzLiNjb250ZW50UmVmPy5hcHBseUZvY3VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGZsYWcgdG8gdGhlIHBvcG92ZXIgdG8gY2xvc2Ugd2hlbiB0aGUgbW91c2UgbGVhdmVzIHRoZSBwb3BvdmVyJ3MgYm91bmRzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBtYXJrRm9yQ2xvc2VPbk1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgdGhpcy4jaXNNYXJrZWRGb3JDbG9zZU9uTW91c2VMZWF2ZSA9IHRydWU7XG4gIH1cblxuICAjc2V0dXBPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRlbXBsYXRlUmVmKSB7XG4gICAgICBjb25zdCBvdmVybGF5ID0gdGhpcy4jb3ZlcmxheVNlcnZpY2UuY3JlYXRlKHtcbiAgICAgICAgZW5hYmxlU2Nyb2xsOiB0cnVlLFxuICAgICAgICBlbmFibGVQb2ludGVyRXZlbnRzOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIG92ZXJsYXkuYmFja2Ryb3BDbGlja1xuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmRpc21pc3NPbkJsdXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBjb25zdCBjb250ZW50UmVmID0gb3ZlcmxheS5hdHRhY2hDb21wb25lbnQoU2t5UG9wb3ZlckNvbnRlbnRDb21wb25lbnQsIFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFNreVBvcG92ZXJDb250ZXh0LFxuICAgICAgICAgIHVzZVZhbHVlOiBuZXcgU2t5UG9wb3ZlckNvbnRleHQoe1xuICAgICAgICAgICAgY29udGVudFRlbXBsYXRlUmVmOiB0aGlzLnRlbXBsYXRlUmVmLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgXSk7XG5cbiAgICAgIGNvbnRlbnRSZWYub3BlbmVkLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnBvcG92ZXJPcGVuZWQuZW1pdCh0aGlzKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb250ZW50UmVmLmNsb3NlZC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgICAgIGlmICh0aGlzLmlzQWN0aXZlICYmIHRoaXMuI292ZXJsYXkpIHtcbiAgICAgICAgICB0aGlzLiNvdmVybGF5U2VydmljZS5jbG9zZSh0aGlzLiNvdmVybGF5KTtcbiAgICAgICAgICB0aGlzLiNvdmVybGF5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnBvcG92ZXJDbG9zZWQuZW1pdCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnRlbnRSZWYuaXNNb3VzZUVudGVyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoaXNNb3VzZUVudGVyKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc01vdXNlRW50ZXIgPSBpc01vdXNlRW50ZXI7XG4gICAgICAgICAgaWYgKHRoaXMuI2lzTWFya2VkRm9yQ2xvc2VPbk1vdXNlTGVhdmUpIHtcbiAgICAgICAgICAgIHRoaXMuI2lzTWFya2VkRm9yQ2xvc2VPbk1vdXNlTGVhdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLiNvdmVybGF5ID0gb3ZlcmxheTtcbiAgICAgIHRoaXMuI2NvbnRlbnRSZWYgPSBjb250ZW50UmVmO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVJlZj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxvQkFBb0IsR0FJckIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQVN0RCxNQUFNLE9BQU8sbUJBQW1CO0lBbUg5QixZQUNFLGNBQWlDLEVBR2pDLGVBQW9DOztRQXpEdEM7O1dBRUc7UUFFSSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRS9EOztXQUVHO1FBRUksa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUUvRDs7O1dBR0c7UUFDSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXhCOzs7O1dBSUc7UUFDSSxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFFeEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFRNUIsa0RBQXlDO1FBRXpDLDRE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SSxnQ0FBWSxPQUFPLE1BQUEsQ0FBQztRQUN4Qix1QkFBQSxJQUFJLG1DQUFlLFVBQVUsTUFBQSxDQUFDO0tBQy9CO0FBQ0gsQ0FBQztpSEEzUFUsbUJBQW1CLG1EQXNIcEIsb0JBQW9CO3FHQXRIbkIsbUJBQW1CLDZXQTBGdEIsV0FBVywyQ0MxSHJCLDJFQUdBOzRGRDZCYSxtQkFBbUI7a0JBSi9CLFNBQVM7K0JBQ0UsYUFBYTs7MEJBd0hwQixRQUFROzswQkFDUixNQUFNOzJCQUFDLG9CQUFvQjs0Q0EvR25CLFNBQVM7c0JBRG5CLEtBQUs7Z0JBZUssYUFBYTtzQkFEdkIsS0FBSztnQkFlSyxTQUFTO3NCQURuQixLQUFLO2dCQWFDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBUUssV0FBVztzQkFEckIsS0FBSztnQkFhQyxhQUFhO3NCQURuQixNQUFNO2dCQU9BLGFBQWE7c0JBRG5CLE1BQU07Z0JBc0JBLFdBQVc7c0JBSmpCLFNBQVM7dUJBQUMsYUFBYSxFQUFFO3dCQUN4QixJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNLWV9TVEFDS0lOR19DT05URVhULFxuICBTa3lPdmVybGF5SW5zdGFuY2UsXG4gIFNreU92ZXJsYXlTZXJ2aWNlLFxuICBTa3lTdGFja2luZ0NvbnRleHQsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lQb3BvdmVyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyQ29udGV4dCB9IGZyb20gJy4vcG9wb3Zlci1jb250ZXh0JztcbmltcG9ydCB7IFNreVBvcG92ZXJBbGlnbm1lbnQgfSBmcm9tICcuL3R5cGVzL3BvcG92ZXItYWxpZ25tZW50JztcbmltcG9ydCB7IFNreVBvcG92ZXJQbGFjZW1lbnQgfSBmcm9tICcuL3R5cGVzL3BvcG92ZXItcGxhY2VtZW50JztcbmltcG9ydCB7IFNreVBvcG92ZXJUeXBlIH0gZnJvbSAnLi90eXBlcy9wb3BvdmVyLXR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktcG9wb3ZlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgaG9yaXpvbnRhbCBhbGlnbm1lbnQgb2YgdGhlIHBvcG92ZXIgaW4gcmVsYXRpb24gdG8gdGhlIHRyaWdnZXIgZWxlbWVudC5cbiAgICogVGhlIGBza3lQb3BvdmVyQWxpZ25tZW50YCBwcm9wZXJ0eSBvbiB0aGUgcG9wb3ZlciBkaXJlY3RpdmUgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoaXMgcHJvcGVydHkgd2hlbiBzcGVjaWZpZWQuXG4gICAqIEBkZWZhdWx0IFwiY2VudGVyXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWxpZ25tZW50KHZhbHVlOiBTa3lQb3BvdmVyQWxpZ25tZW50IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FsaWdubWVudCA9IHZhbHVlID8/ICdjZW50ZXInO1xuICB9XG5cbiAgcHVibGljIGdldCBhbGlnbm1lbnQoKTogU2t5UG9wb3ZlckFsaWdubWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI19hbGlnbm1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBjbG9zZSB0aGUgcG9wb3ZlciB3aGVuIGl0IGxvc2VzIGZvY3VzLlxuICAgKiBUbyByZXF1aXJlIHVzZXJzIHRvIGNsaWNrIGEgdHJpZ2dlciBidXR0b24gdG8gY2xvc2UgdGhlIHBvcG92ZXIsIHNldCB0aGlzIGlucHV0IHRvIGZhbHNlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc21pc3NPbkJsdXIodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfZGlzbWlzc09uQmx1ciA9IHZhbHVlID8/IHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc21pc3NPbkJsdXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNtaXNzT25CbHVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwbGFjZW1lbnQgb2YgdGhlIHBvcG92ZXIgaW4gcmVsYXRpb24gdG8gdGhlIHRyaWdnZXIgZWxlbWVudC5cbiAgICogVGhlIGBza3lQb3BvdmVyUGxhY2VtZW50YCBwcm9wZXJ0eSBvbiB0aGUgcG9wb3ZlciBkaXJlY3RpdmUgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoaXMgcHJvcGVydHkgd2hlbiBzcGVjaWZpZWQuXG4gICAqIEBkZWZhdWx0IFwiYWJvdmVcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwbGFjZW1lbnQodmFsdWU6IFNreVBvcG92ZXJQbGFjZW1lbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfcGxhY2VtZW50ID0gdmFsdWUgPz8gJ2Fib3ZlJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGxhY2VtZW50KCk6IFNreVBvcG92ZXJQbGFjZW1lbnQge1xuICAgIHJldHVybiB0aGlzLiNfcGxhY2VtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBmb3IgdGhlIHBvcG92ZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcG9wb3ZlclRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHBvcG92ZXIuXG4gICAqIEBkZWZhdWx0IFwiaW5mb1wiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBvcG92ZXJUeXBlKHZhbHVlOiBTa3lQb3BvdmVyVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19wb3BvdmVyVHlwZSA9IHZhbHVlID8/ICdpbmZvJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcG9wb3ZlclR5cGUoKTogU2t5UG9wb3ZlclR5cGUge1xuICAgIHJldHVybiB0aGlzLiNfcG9wb3ZlclR5cGU7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBjbG9zZSB0aGUgcG9wb3Zlci5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcG9wb3ZlckNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5UG9wb3ZlckNvbXBvbmVudD4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBvcGVuIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBwb3BvdmVyT3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lQb3BvdmVyQ29tcG9uZW50PigpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwb3BvdmVyIGlzIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIG9wZW5lZCBvciBjbG9zZWQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGlzQWN0aXZlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFVzZWQgYnkgdW5pdCB0ZXN0cyB0byBkaXNhYmxlIGFuaW1hdGlvbnMgc2luY2UgdGhlIGNvbXBvbmVudCBpcyBpbmplY3RlZCBhdCB0aGUgYm90dG9tIG9mIHRoZVxuICAgKiBkb2N1bWVudCBib2R5LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBlbmFibGVBbmltYXRpb25zID0gdHJ1ZTtcblxuICBwdWJsaWMgaXNNb3VzZUVudGVyID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gICNjb250ZW50UmVmITogU2t5UG9wb3ZlckNvbnRlbnRDb21wb25lbnQ7XG5cbiAgI2lzTWFya2VkRm9yQ2xvc2VPbk1vdXNlTGVhdmUgPSBmYWxzZTtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI292ZXJsYXk6IFNreU92ZXJsYXlJbnN0YW5jZSB8IHVuZGVmaW5lZDtcblxuICAjX2FsaWdubWVudDogU2t5UG9wb3ZlckFsaWdubWVudCA9ICdjZW50ZXInO1xuXG4gICNfZGlzbWlzc09uQmx1ciA9IHRydWU7XG5cbiAgI19wbGFjZW1lbnQ6IFNreVBvcG92ZXJQbGFjZW1lbnQgPSAnYWJvdmUnO1xuXG4gICNfcG9wb3ZlclR5cGU6IFNreVBvcG92ZXJUeXBlID0gJ2luZm8nO1xuXG4gICNvdmVybGF5U2VydmljZTogU2t5T3ZlcmxheVNlcnZpY2U7XG5cbiAgI3pJbmRleDogT2JzZXJ2YWJsZTxudW1iZXI+IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG92ZXJsYXlTZXJ2aWNlOiBTa3lPdmVybGF5U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoU0tZX1NUQUNLSU5HX0NPTlRFWFQpXG4gICAgc3RhY2tpbmdDb250ZXh0PzogU2t5U3RhY2tpbmdDb250ZXh0XG4gICkge1xuICAgIHRoaXMuI292ZXJsYXlTZXJ2aWNlID0gb3ZlcmxheVNlcnZpY2U7XG4gICAgdGhpcy4jekluZGV4ID0gc3RhY2tpbmdDb250ZXh0Py56SW5kZXg7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuXG4gICAgaWYgKHRoaXMuI292ZXJsYXkpIHtcbiAgICAgIHRoaXMuI292ZXJsYXlTZXJ2aWNlLmNsb3NlKHRoaXMuI292ZXJsYXkpO1xuICAgICAgdGhpcy4jb3ZlcmxheSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUG9zaXRpb25zIHRoZSBwb3BvdmVyIG5leHQgdG8gYSBnaXZlbiBjYWxsZXIgZWxlbWVudC5cbiAgICogQHBhcmFtIGNhbGxlciBUaGUgZWxlbWVudCB0aGF0IG9wZW5lZCB0aGUgcG9wb3Zlci5cbiAgICogQHBhcmFtIHBsYWNlbWVudCBUaGUgcGxhY2VtZW50IG9mIHRoZSBwb3BvdmVyLlxuICAgKiBAcGFyYW0gYWxpZ25tZW50IFRoZSBob3Jpem9udGFsIGFsaWdubWVudCBvZiB0aGUgcG9wb3Zlci5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgcG9zaXRpb25OZXh0VG8oXG4gICAgY2FsbGVyOiBFbGVtZW50UmVmLFxuICAgIHBsYWNlbWVudD86IFNreVBvcG92ZXJQbGFjZW1lbnQsXG4gICAgYWxpZ25tZW50PzogU2t5UG9wb3ZlckFsaWdubWVudFxuICApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuI292ZXJsYXkpIHtcbiAgICAgIHRoaXMuI3NldHVwT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIHRoaXMucGxhY2VtZW50ID0gcGxhY2VtZW50ID8/IHRoaXMucGxhY2VtZW50O1xuICAgIHRoaXMuYWxpZ25tZW50ID0gYWxpZ25tZW50ID8/IHRoaXMuYWxpZ25tZW50O1xuICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgdGhpcy4jY29udGVudFJlZi5vcGVuKGNhbGxlciwge1xuICAgICAgZGlzbWlzc09uQmx1cjogdGhpcy5kaXNtaXNzT25CbHVyLFxuICAgICAgZW5hYmxlQW5pbWF0aW9uczogdGhpcy5lbmFibGVBbmltYXRpb25zLFxuICAgICAgaG9yaXpvbnRhbEFsaWdubWVudDogdGhpcy5hbGlnbm1lbnQsXG4gICAgICBpc1N0YXRpYzogZmFsc2UsXG4gICAgICBwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50LFxuICAgICAgcG9wb3ZlclRpdGxlOiB0aGlzLnBvcG92ZXJUaXRsZSxcbiAgICAgIHBvcG92ZXJUeXBlOiB0aGlzLnBvcG92ZXJUeXBlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgcG9wb3Zlci5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgbmV4dCovXG4gICAgdGhpcy4jY29udGVudFJlZj8uY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCcmluZ3MgZm9jdXMgdG8gdGhlIHBvcG92ZXIgZWxlbWVudCBpZiBpdHMgb3Blbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYXBwbHlGb2N1cygpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBuZXh0Ki9cbiAgICB0aGlzLiNjb250ZW50UmVmPy5hcHBseUZvY3VzKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGZsYWcgdG8gdGhlIHBvcG92ZXIgdG8gY2xvc2Ugd2hlbiB0aGUgbW91c2UgbGVhdmVzIHRoZSBwb3BvdmVyJ3MgYm91bmRzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBtYXJrRm9yQ2xvc2VPbk1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgdGhpcy4jaXNNYXJrZWRGb3JDbG9zZU9uTW91c2VMZWF2ZSA9IHRydWU7XG4gIH1cblxuICAjc2V0dXBPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRlbXBsYXRlUmVmKSB7XG4gICAgICBjb25zdCBvdmVybGF5ID0gdGhpcy4jb3ZlcmxheVNlcnZpY2UuY3JlYXRlKHtcbiAgICAgICAgZW5hYmxlU2Nyb2xsOiB0cnVlLFxuICAgICAgICBlbmFibGVQb2ludGVyRXZlbnRzOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIGlmICh0aGlzLiN6SW5kZXgpIHtcbiAgICAgICAgdGhpcy4jekluZGV4XG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHpJbmRleCkgPT4ge1xuICAgICAgICAgICAgb3ZlcmxheS5jb21wb25lbnRSZWYuaW5zdGFuY2UuekluZGV4ID0gekluZGV4LnRvU3RyaW5nKDEwKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgb3ZlcmxheS5iYWNrZHJvcENsaWNrXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuZGlzbWlzc09uQmx1cikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBvdmVybGF5LmF0dGFjaENvbXBvbmVudChTa3lQb3BvdmVyQ29udGVudENvbXBvbmVudCwgW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogU2t5UG9wb3ZlckNvbnRleHQsXG4gICAgICAgICAgdXNlVmFsdWU6IG5ldyBTa3lQb3BvdmVyQ29udGV4dCh7XG4gICAgICAgICAgICBjb250ZW50VGVtcGxhdGVSZWY6IHRoaXMudGVtcGxhdGVSZWYsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICBdKTtcblxuICAgICAgY29udGVudFJlZi5vcGVuZWQucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucG9wb3Zlck9wZW5lZC5lbWl0KHRoaXMpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnRlbnRSZWYuY2xvc2VkLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmUgJiYgdGhpcy4jb3ZlcmxheSkge1xuICAgICAgICAgIHRoaXMuI292ZXJsYXlTZXJ2aWNlLmNsb3NlKHRoaXMuI292ZXJsYXkpO1xuICAgICAgICAgIHRoaXMuI292ZXJsYXkgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMucG9wb3ZlckNsb3NlZC5lbWl0KHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgY29udGVudFJlZi5pc01vdXNlRW50ZXJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChpc01vdXNlRW50ZXIpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTW91c2VFbnRlciA9IGlzTW91c2VFbnRlcjtcbiAgICAgICAgICBpZiAodGhpcy4jaXNNYXJrZWRGb3JDbG9zZU9uTW91c2VMZWF2ZSkge1xuICAgICAgICAgICAgdGhpcy4jaXNNYXJrZWRGb3JDbG9zZU9uTW91c2VMZWF2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIHRoaXMuI292ZXJsYXkgPSBvdmVybGF5O1xuICAgICAgdGhpcy4jY29udGVudFJlZiA9IGNvbnRlbnRSZWY7XG4gICAgfVxuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlUmVmPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|