@dotglitch/ngx-common 1.1.6 → 1.1.8
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/components/command-palette/command-palette.component.d.ts +1 -1
- package/components/tooltip/tooltip.component.d.ts +2 -2
- package/directives/tooltip.directive.d.ts +2 -2
- package/esm2022/components/command-palette/command-palette.component.mjs +15 -7
- package/esm2022/components/tooltip/tooltip.component.mjs +4 -4
- package/esm2022/directives/tooltip.directive.mjs +4 -3
- package/esm2022/services/command-palette.service.mjs +4 -2
- package/esm2022/types/tooltip.mjs +1 -1
- package/fesm2022/dotglitch-ngx-common.mjs +21 -11
- package/fesm2022/dotglitch-ngx-common.mjs.map +1 -1
- package/package.json +1 -1
- package/types/tooltip.d.ts +5 -0
|
@@ -10,7 +10,7 @@ export declare class CommandPaletteComponent implements OnInit {
|
|
|
10
10
|
activeIndex: number;
|
|
11
11
|
commands: CommandAction[];
|
|
12
12
|
filteredCommands: CommandAction[];
|
|
13
|
-
constructor(commandPalette: CommandPaletteService, dialog: MatDialogRef<any
|
|
13
|
+
constructor(commandPalette: CommandPaletteService, dialog: MatDialogRef<any>, data: any);
|
|
14
14
|
ngOnInit(): void;
|
|
15
15
|
onKeyDown(evt: KeyboardEvent): void;
|
|
16
16
|
executeCommand(command: CommandAction): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TemplateRef, Type, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
|
3
|
-
import {
|
|
3
|
+
import { TooltipOptions } from '../../types/tooltip';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare const calcTooltipBounds: (template: TemplateRef<any> | Type<any>, data: any) => Promise<DOMRect>;
|
|
6
6
|
export declare class TooltipComponent {
|
|
@@ -9,7 +9,7 @@ export declare class TooltipComponent {
|
|
|
9
9
|
dialog: MatDialog;
|
|
10
10
|
dialogRef: MatDialogRef<any>;
|
|
11
11
|
data: any;
|
|
12
|
-
config:
|
|
12
|
+
config: TooltipOptions;
|
|
13
13
|
ownerCords: DOMRect;
|
|
14
14
|
selfCords: any;
|
|
15
15
|
template: TemplateRef<any> | Type<any>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TemplateRef, Type, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
2
|
+
import { MatDialog, MatDialogConfig } from '@angular/material/dialog';
|
|
3
3
|
import { TooltipOptions } from '../types/tooltip';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class TooltipDirective {
|
|
@@ -28,4 +28,4 @@ export declare class TooltipDirective {
|
|
|
28
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, never>;
|
|
29
29
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[ngxTooltip],[ngx-tooltip]", never, { "template": { "alias": "ngx-tooltip"; "required": false; }; "config": { "alias": "ngx-tooltip-config"; "required": false; }; "data": { "alias": "ngx-tooltip-context"; "required": false; }; }, {}, never, never, true, never>;
|
|
30
30
|
}
|
|
31
|
-
export declare const openTooltip: (dialog: MatDialog, template: TemplateRef<any> | Type<any>, data: any, el: HTMLElement, config?: TooltipOptions, focusTrap?: boolean) => Promise<any>;
|
|
31
|
+
export declare const openTooltip: (dialog: MatDialog, template: TemplateRef<any> | Type<any>, data: any, el: HTMLElement, config?: TooltipOptions, focusTrap?: boolean, matPopupOptions?: MatDialogConfig<any>) => Promise<any>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Component, HostListener, Input } from '@angular/core';
|
|
1
|
+
import { Component, HostListener, Inject, Input } from '@angular/core';
|
|
2
2
|
import { MatInputModule } from '@angular/material/input';
|
|
3
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
4
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
4
5
|
import { NgScrollbarModule } from 'ngx-scrollbar';
|
|
5
6
|
import { ShortcutComponent } from './shortcut/shortcut.component';
|
|
@@ -11,13 +12,14 @@ import * as i4 from "@angular/material/form-field";
|
|
|
11
12
|
import * as i5 from "@angular/cdk/scrolling";
|
|
12
13
|
import * as i6 from "ngx-scrollbar";
|
|
13
14
|
export class CommandPaletteComponent {
|
|
14
|
-
constructor(commandPalette, dialog) {
|
|
15
|
+
constructor(commandPalette, dialog, data) {
|
|
15
16
|
this.commandPalette = commandPalette;
|
|
16
17
|
this.dialog = dialog;
|
|
17
18
|
this.queryString = "";
|
|
18
19
|
this.activeIndex = 0;
|
|
19
20
|
this.commands = [];
|
|
20
21
|
this.filteredCommands = [];
|
|
22
|
+
this.contextElement = this.contextElement ?? data.contextElement;
|
|
21
23
|
}
|
|
22
24
|
ngOnInit() {
|
|
23
25
|
this.commands = this.commandPalette.getRegisteredCommands(this.contextElement)
|
|
@@ -31,15 +33,18 @@ export class CommandPaletteComponent {
|
|
|
31
33
|
// Fire the first command
|
|
32
34
|
if (this.filteredCommands.length > 0)
|
|
33
35
|
this.executeCommand(this.filteredCommands[this.activeIndex]);
|
|
36
|
+
evt.stopPropagation();
|
|
34
37
|
return;
|
|
35
38
|
}
|
|
36
39
|
if (evt.key == "ArrowUp") {
|
|
37
40
|
// Fire the first command
|
|
38
41
|
this.activeIndex = Math.max(this.activeIndex - 1, 0);
|
|
42
|
+
evt.stopPropagation();
|
|
39
43
|
return;
|
|
40
44
|
}
|
|
41
45
|
if (evt.key == "ArrowDown") {
|
|
42
46
|
this.activeIndex = Math.min(this.filteredCommands.length - 1, this.activeIndex + 1);
|
|
47
|
+
evt.stopPropagation();
|
|
43
48
|
return;
|
|
44
49
|
}
|
|
45
50
|
this.activeIndex = 0;
|
|
@@ -92,8 +97,8 @@ export class CommandPaletteComponent {
|
|
|
92
97
|
onBlur() {
|
|
93
98
|
// this.dialog.close();
|
|
94
99
|
}
|
|
95
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CommandPaletteComponent, deps: [{ token: i1.CommandPaletteService }, { token: i2.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: CommandPaletteComponent, isStandalone: true, selector: "app-command-palette", inputs: { contextElement: "contextElement" }, host: { listeners: { "window:blur": "onBlur()" } }, ngImport: i0, template: "<mat-form-field style=\"width: 100%; padding: 8px 8px 0 8px\">\n <input\n matInput\n type=\"text\"\n [value]=\"queryString\"\n (keydown)=\"onKeyDown($event)\"\n >\n</mat-form-field>\n\n@if (filteredCommands.length == 0) {\n <div class=\"commands\">\n <div class=\"command selected\"
|
|
100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CommandPaletteComponent, deps: [{ token: i1.CommandPaletteService }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
101
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: CommandPaletteComponent, isStandalone: true, selector: "app-command-palette", inputs: { contextElement: "contextElement" }, host: { listeners: { "window:blur": "onBlur()" } }, ngImport: i0, template: "<mat-form-field style=\"width: 100%; padding: 8px 8px 0 8px\">\n <input\n matInput\n type=\"text\"\n [value]=\"queryString\"\n (keydown)=\"onKeyDown($event)\"\n >\n</mat-form-field>\n\n@if (filteredCommands.length == 0) {\n <div class=\"commands\">\n <div class=\"command selected\">\n <div class=\"label\">No matching results.</div>\n </div>\n </div>\n}\n@else {\n <div\n class=\"commands\"\n [style.flex]=\"(filteredCommands.length * 28) + 'px'\"\n >\n <ng-scrollbar>\n <cdk-virtual-scroll-viewport itemSize=\"28\" scrollViewport>\n <div\n *cdkVirtualFor=\"let command of filteredCommands; let index = index\"\n class=\"command\"\n [class.selected]=\"index==activeIndex\"\n (click)=\"executeCommand(command)\"\n >\n <div\n class=\"label\"\n [innerHTML]=\"command['_renderedLabel'] || command.label || command.description\"\n ></div>\n <div>\n @for (shortcut of (command.shortcutKey?.find ? command.shortcutKey : [command.shortcutKey]); track shortcut) {\n @if (shortcut) {\n <app-shortcut [shortcut]=\"shortcut\"></app-shortcut>\n }\n }\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-scrollbar>\n </div>\n}\n\n", styles: [":host{display:flex;flex-direction:column;width:860px;max-height:460px;border:1px solid #484848;border-radius:5px;background-color:#222;-webkit-user-select:none;user-select:none}.commands{max-height:100%;overflow:hidden}.commands .command{display:flex;height:28px;padding-left:16px;padding-right:32px;align-items:center;border-radius:3px;justify-content:space-between}.commands .command:hover{background-color:#2a2d2e}.commands .command.selected{background-color:#04395e}.commands .command .label ::ng-deep b{color:#2196f3}ng-scrollbar.ng-scrollbar{--scrollbar-padding: 0px;--scrollbar-size: 14px;--scrollbar-border-radius: 0;--scrollbar-thumb-color: #0000;--scrollbar-thumb-transition: height ease-out .15s, width ease-out .15s, background-color ease 1.2s}ng-scrollbar.ng-scrollbar:hover{--scrollbar-thumb-color: #444}cdk-virtual-scroll-viewport{height:100%}:host ::ng-deep .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding:4px 0}:host ::ng-deep .mat-mdc-form-field-infix{min-height:32px}:host ::ng-deep .mat-mdc-text-field-wrapper{margin-bottom:8px}:host ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}::ng-deep .dark :host{border:1px solid #e5e5e5;background-color:#f8f8f8}::ng-deep .dark :host .commands .command:hover{background-color:#f2f2f2}::ng-deep .dark :host .commands .command.selected{background-color:#e8e8e8}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i5.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i5.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i5.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: NgScrollbarModule }, { kind: "component", type: i6.NgScrollbar, selector: "ng-scrollbar", inputs: ["disabled", "sensorDisabled", "pointerEventsDisabled", "viewportPropagateMouseMove", "autoHeightDisabled", "autoWidthDisabled", "viewClass", "trackClass", "thumbClass", "minThumbSize", "trackClickScrollDuration", "pointerEventsMethod", "track", "visibility", "appearance", "position", "sensorDebounce", "scrollAuditTime"], outputs: ["updated"], exportAs: ["ngScrollbar"] }, { kind: "directive", type: i6.ScrollViewport, selector: "[scrollViewport]" }, { kind: "component", type: ShortcutComponent, selector: "app-shortcut", inputs: ["shortcut"] }] }); }
|
|
97
102
|
}
|
|
98
103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CommandPaletteComponent, decorators: [{
|
|
99
104
|
type: Component,
|
|
@@ -102,11 +107,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
102
107
|
ScrollingModule,
|
|
103
108
|
NgScrollbarModule,
|
|
104
109
|
ShortcutComponent
|
|
105
|
-
], standalone: true, template: "<mat-form-field style=\"width: 100%; padding: 8px 8px 0 8px\">\n <input\n matInput\n type=\"text\"\n [value]=\"queryString\"\n (keydown)=\"onKeyDown($event)\"\n >\n</mat-form-field>\n\n@if (filteredCommands.length == 0) {\n <div class=\"commands\">\n <div class=\"command selected\"
|
|
106
|
-
}], ctorParameters: () => [{ type: i1.CommandPaletteService }, { type: i2.MatDialogRef }
|
|
110
|
+
], standalone: true, template: "<mat-form-field style=\"width: 100%; padding: 8px 8px 0 8px\">\n <input\n matInput\n type=\"text\"\n [value]=\"queryString\"\n (keydown)=\"onKeyDown($event)\"\n >\n</mat-form-field>\n\n@if (filteredCommands.length == 0) {\n <div class=\"commands\">\n <div class=\"command selected\">\n <div class=\"label\">No matching results.</div>\n </div>\n </div>\n}\n@else {\n <div\n class=\"commands\"\n [style.flex]=\"(filteredCommands.length * 28) + 'px'\"\n >\n <ng-scrollbar>\n <cdk-virtual-scroll-viewport itemSize=\"28\" scrollViewport>\n <div\n *cdkVirtualFor=\"let command of filteredCommands; let index = index\"\n class=\"command\"\n [class.selected]=\"index==activeIndex\"\n (click)=\"executeCommand(command)\"\n >\n <div\n class=\"label\"\n [innerHTML]=\"command['_renderedLabel'] || command.label || command.description\"\n ></div>\n <div>\n @for (shortcut of (command.shortcutKey?.find ? command.shortcutKey : [command.shortcutKey]); track shortcut) {\n @if (shortcut) {\n <app-shortcut [shortcut]=\"shortcut\"></app-shortcut>\n }\n }\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-scrollbar>\n </div>\n}\n\n", styles: [":host{display:flex;flex-direction:column;width:860px;max-height:460px;border:1px solid #484848;border-radius:5px;background-color:#222;-webkit-user-select:none;user-select:none}.commands{max-height:100%;overflow:hidden}.commands .command{display:flex;height:28px;padding-left:16px;padding-right:32px;align-items:center;border-radius:3px;justify-content:space-between}.commands .command:hover{background-color:#2a2d2e}.commands .command.selected{background-color:#04395e}.commands .command .label ::ng-deep b{color:#2196f3}ng-scrollbar.ng-scrollbar{--scrollbar-padding: 0px;--scrollbar-size: 14px;--scrollbar-border-radius: 0;--scrollbar-thumb-color: #0000;--scrollbar-thumb-transition: height ease-out .15s, width ease-out .15s, background-color ease 1.2s}ng-scrollbar.ng-scrollbar:hover{--scrollbar-thumb-color: #444}cdk-virtual-scroll-viewport{height:100%}:host ::ng-deep .mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) .mat-mdc-form-field-infix{padding:4px 0}:host ::ng-deep .mat-mdc-form-field-infix{min-height:32px}:host ::ng-deep .mat-mdc-text-field-wrapper{margin-bottom:8px}:host ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}::ng-deep .dark :host{border:1px solid #e5e5e5;background-color:#f8f8f8}::ng-deep .dark :host .commands .command:hover{background-color:#f2f2f2}::ng-deep .dark :host .commands .command.selected{background-color:#e8e8e8}\n"] }]
|
|
111
|
+
}], ctorParameters: () => [{ type: i1.CommandPaletteService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
|
|
112
|
+
type: Inject,
|
|
113
|
+
args: [MAT_DIALOG_DATA]
|
|
114
|
+
}] }], propDecorators: { contextElement: [{
|
|
107
115
|
type: Input
|
|
108
116
|
}], onBlur: [{
|
|
109
117
|
type: HostListener,
|
|
110
118
|
args: ["window:blur"]
|
|
111
119
|
}] } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9jb21tYW5kLXBhbGV0dGUvY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9jb21tYW5kLXBhbGV0dGUvY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7QUFjbEUsTUFBTSxPQUFPLHVCQUF1QjtJQVVoQyxZQUNxQixjQUFxQyxFQUNyQyxNQUF5QjtRQUR6QixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFSOUMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFFaEIsYUFBUSxHQUFvQixFQUFFLENBQUM7UUFDL0IscUJBQWdCLEdBQW9CLEVBQUUsQ0FBQztJQU92QyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQ3pFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLElB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Q0FBQyxDQUFFLE1BQU0sQ0FBQzt3QkFDMUYsU0FBUyxHQUFHLEtBQUssR0FBQyxDQUFDLENBQUM7cUJBQ3ZCO2lCQUNKO2dCQUVELGFBQWEsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUV4QyxJQUFJLE9BQU8sRUFBRTtvQkFDVCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxhQUFhLENBQUM7b0JBQzFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ2pDO2FBQ0o7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFzQjtRQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFHRCxNQUFNO1FBQ0YsdUJBQXVCO0lBQzNCLENBQUM7OEdBOUdRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGlMQ3BCcEMsK2pEQTRDQSxndUNEL0JRLGNBQWMscWpCQUNkLGVBQWUsMmpCQUNmLGlCQUFpQixpakJBQ2pCLGlCQUFpQjs7MkZBSVosdUJBQXVCO2tCQVpuQyxTQUFTOytCQUNJLHFCQUFxQixXQUd0Qjt3QkFDTCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixpQkFBaUI7cUJBQ3BCLGNBQ1csSUFBSTtxSEFJUCxjQUFjO3NCQUF0QixLQUFLO2dCQTBHTixNQUFNO3NCQURMLFlBQVk7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tYW5kQWN0aW9uLCBDb21tYW5kUGFsZXR0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tYW5kLXBhbGV0dGUuc2VydmljZSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IE5nU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnbmd4LXNjcm9sbGJhcic7XG5pbXBvcnQgeyBTaG9ydGN1dENvbXBvbmVudCB9IGZyb20gJy4vc2hvcnRjdXQvc2hvcnRjdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY29tbWFuZC1wYWxldHRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb21tYW5kLXBhbGV0dGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgICAgIE5nU2Nyb2xsYmFyTW9kdWxlLFxuICAgICAgICBTaG9ydGN1dENvbXBvbmVudFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kUGFsZXR0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKSBjb250ZXh0RWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBxdWVyeVN0cmluZyA9IFwiXCI7XG4gICAgYWN0aXZlSW5kZXggPSAwO1xuXG4gICAgY29tbWFuZHM6IENvbW1hbmRBY3Rpb25bXSA9IFtdO1xuICAgIGZpbHRlcmVkQ29tbWFuZHM6IENvbW1hbmRBY3Rpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZFBhbGV0dGU6IENvbW1hbmRQYWxldHRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZ1JlZjxhbnk+XG4gICAgKSB7XG5cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5jb21tYW5kcyA9IHRoaXMuY29tbWFuZFBhbGV0dGUuZ2V0UmVnaXN0ZXJlZENvbW1hbmRzKHRoaXMuY29udGV4dEVsZW1lbnQpXG4gICAgICAgICAgICAuZmlsdGVyKGMgPT4gYy52aXNpYmxlSW5MaXN0ICE9IGZhbHNlKTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZENvbW1hbmRzID0gdGhpcy5jb21tYW5kcztcblxuICAgICAgICAvLyBSZXNldCB0aGUgZmlsdGVyIGxhYmVsc1xuICAgICAgICB0aGlzLmNvbW1hbmRzLmZvckVhY2goY29tbWFuZCA9PiBjb21tYW5kWydfcmVuZGVyZWRMYWJlbCddID0gJycpO1xuICAgIH1cblxuICAgIG9uS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2dC5rZXkgPT0gXCJFbnRlclwiKSB7XG4gICAgICAgICAgICAvLyBGaXJlIHRoZSBmaXJzdCBjb21tYW5kXG4gICAgICAgICAgICBpZiAodGhpcy5maWx0ZXJlZENvbW1hbmRzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgdGhpcy5leGVjdXRlQ29tbWFuZCh0aGlzLmZpbHRlcmVkQ29tbWFuZHNbdGhpcy5hY3RpdmVJbmRleF0pO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZ0LmtleSA9PSBcIkFycm93VXBcIikge1xuICAgICAgICAgICAgLy8gRmlyZSB0aGUgZmlyc3QgY29tbWFuZFxuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IE1hdGgubWF4KHRoaXMuYWN0aXZlSW5kZXgtMSwgMCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZ0LmtleSA9PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gTWF0aC5taW4odGhpcy5maWx0ZXJlZENvbW1hbmRzLmxlbmd0aC0xLCB0aGlzLmFjdGl2ZUluZGV4KzEpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMDtcbiAgICAgICAgdGhpcy5jb21tYW5kcy5mb3JFYWNoKGMgPT4gY1snX3JlbmRlcmVkTGFiZWwnXSA9ICcnKTtcblxuICAgICAgICAvLyBDaGVjayBpbiB0aGUgbmV4dCB0aWNrIHRvIGdldCB0aGUgaW5wdXQnc1xuICAgICAgICAvLyB2YWx1ZSBzbyB0aGF0IGl0J3MgdXBkYXRlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlTdHJpbmcgPSAoZXZ0LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcblxuICAgICAgICAgICAgLy8gV2hpdGVzcGFjZSBkb2Vzbid0IGNvdW50LlxuICAgICAgICAgICAgaWYgKHRoaXMucXVlcnlTdHJpbmcudHJpbSgpLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZENvbW1hbmRzID0gdGhpcy5jb21tYW5kcztcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5Q2hhcnMgPSB0aGlzLnF1ZXJ5U3RyaW5nXG4gICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAuc3BsaXQoJycpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXRjaGVkQ29tbWFuZHM6IENvbW1hbmRBY3Rpb25bXSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbW1hbmQgb2YgdGhpcy5jb21tYW5kcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbGFiZWwgfSA9IGNvbW1hbmQ7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kQ2hhcnMgPSBsYWJlbFxuICAgICAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJycpO1xuXG4gICAgICAgICAgICAgICAgbGV0IHJlbmRlcmVkTGFiZWwgPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgbGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgaXNNYXRjaCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoYXIgb2YgcXVlcnlDaGFycykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGNvbW1hbmRDaGFycy5pbmRleE9mKGNoYXIsIGxhc3RJbmRleCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVkTGFiZWwgKz0gbGFiZWwuc2xpY2UobGFzdEluZGV4LCBpbmRleCkgKyBgPGI+JHtsYWJlbC5zbGljZShpbmRleCwgaW5kZXgrMSkgfTwvYj5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gaW5kZXgrMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlbmRlcmVkTGFiZWwgKz0gbGFiZWwuc2xpY2UobGFzdEluZGV4KTtcblxuICAgICAgICAgICAgICAgIGlmIChpc01hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRbJ19yZW5kZXJlZExhYmVsJ10gPSByZW5kZXJlZExhYmVsO1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVkQ29tbWFuZHMucHVzaChjb21tYW5kKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDb21tYW5kcyA9IG1hdGNoZWRDb21tYW5kcztcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBleGVjdXRlQ29tbWFuZChjb21tYW5kOiBDb21tYW5kQWN0aW9uKSB7XG4gICAgICAgIHRoaXMuY29tbWFuZFBhbGV0dGUuaW52b2tlQWN0aW9uKGNvbW1hbmQpO1xuICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6Ymx1clwiKVxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgLy8gdGhpcy5kaWFsb2cuY2xvc2UoKTtcbiAgICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJ3aWR0aDogMTAwJTsgcGFkZGluZzogOHB4IDhweCAwIDhweFwiPlxuICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFt2YWx1ZV09XCJxdWVyeVN0cmluZ1wiXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICA+XG48L21hdC1mb3JtLWZpZWxkPlxuXG5AaWYgKGZpbHRlcmVkQ29tbWFuZHMubGVuZ3RoID09IDApIHtcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWFuZHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1hbmQgc2VsZWN0ZWRcIj48ZGl2IGNsYXNzPVwibGFiZWxcIj5ObyBtYXRjaGluZyByZXN1bHRzLjwvZGl2PjwvZGl2PlxuICAgIDwvZGl2PlxufVxuQGVsc2Uge1xuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjb21tYW5kc1wiXG4gICAgICAgIFtzdHlsZS5mbGV4XT1cIihmaWx0ZXJlZENvbW1hbmRzLmxlbmd0aCAqIDI4KSArICdweCdcIlxuICAgID5cbiAgICAgICAgPG5nLXNjcm9sbGJhcj5cbiAgICAgICAgICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgaXRlbVNpemU9XCIyOFwiIHNjcm9sbFZpZXdwb3J0PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgY29tbWFuZCBvZiBmaWx0ZXJlZENvbW1hbmRzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29tbWFuZFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpbmRleD09YWN0aXZlSW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhlY3V0ZUNvbW1hbmQoY29tbWFuZClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImNvbW1hbmRbJ19yZW5kZXJlZExhYmVsJ10gfHwgY29tbWFuZC5sYWJlbCB8fCBjb21tYW5kLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoc2hvcnRjdXQgb2YgKGNvbW1hbmQuc2hvcnRjdXRLZXk/LmZpbmQgPyBjb21tYW5kLnNob3J0Y3V0S2V5IDogW2NvbW1hbmQuc2hvcnRjdXRLZXldKTsgdHJhY2sgc2hvcnRjdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3J0Y3V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtc2hvcnRjdXQgW3Nob3J0Y3V0XT1cInNob3J0Y3V0XCI+PC9hcHAtc2hvcnRjdXQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgICAgICA8L25nLXNjcm9sbGJhcj5cbiAgICA8L2Rpdj5cbn1cblxuIl19
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9jb21tYW5kLXBhbGV0dGUvY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9jb21tYW5kLXBhbGV0dGUvY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7QUFjbEUsTUFBTSxPQUFPLHVCQUF1QjtJQVVoQyxZQUNxQixjQUFxQyxFQUNyQyxNQUF5QixFQUNqQixJQUFTO1FBRmpCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQVI5QyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQixhQUFRLEdBQW9CLEVBQUUsQ0FBQztRQUMvQixxQkFBZ0IsR0FBb0IsRUFBRSxDQUFDO1FBT25DLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDekUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUV0QywwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQWtCO1FBQ3hCLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUU7WUFDcEIseUJBQXlCO1lBQ3pCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUVqRSxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdEIsT0FBTztTQUNWO1FBRUQsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLFNBQVMsRUFBRTtZQUN0Qix5QkFBeUI7WUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRW5ELEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN0QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxHQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWhGLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN0QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXJELDRDQUE0QztRQUM1Qyw2QkFBNkI7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxXQUFXLEdBQUksR0FBRyxDQUFDLE1BQTJCLENBQUMsS0FBSyxDQUFDO1lBRTFELDRCQUE0QjtZQUM1QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3RDLE9BQU87YUFDVjtZQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXO2lCQUM5QixXQUFXLEVBQUU7aUJBQ2IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRWYsTUFBTSxlQUFlLEdBQW9CLEVBQUUsQ0FBQztZQUU1QyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUM7Z0JBRTFCLE1BQU0sWUFBWSxHQUFHLEtBQUs7cUJBQ3JCLFdBQVcsRUFBRTtxQkFDYixLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBRWYsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO2dCQUN2QixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztnQkFFbkIsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUU7b0JBQzNCLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUVwRCxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsRUFBRTt3QkFDYixPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUNoQixNQUFNO3FCQUNUO3lCQUNJO3dCQUNELGFBQWEsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBQyxDQUFDLENBQUUsTUFBTSxDQUFDO3dCQUMxRixTQUFTLEdBQUcsS0FBSyxHQUFDLENBQUMsQ0FBQztxQkFDdkI7aUJBQ0o7Z0JBRUQsYUFBYSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBRXhDLElBQUksT0FBTyxFQUFFO29CQUNULE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGFBQWEsQ0FBQztvQkFDMUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDakM7YUFDSjtZQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQXNCO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUdELE1BQU07UUFDRix1QkFBdUI7SUFDM0IsQ0FBQzs4R0FwSFEsdUJBQXVCLG1GQWFwQixlQUFlO2tHQWJsQix1QkFBdUIsaUxDcEJwQyx1bERBOENBLDI3Q0RqQ1EsY0FBYyxxakJBQ2QsZUFBZSwyakJBQ2YsaUJBQWlCLGlqQkFDakIsaUJBQWlCOzsyRkFJWix1QkFBdUI7a0JBWm5DLFNBQVM7K0JBQ0kscUJBQXFCLFdBR3RCO3dCQUNMLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGlCQUFpQjtxQkFDcEIsY0FDVyxJQUFJOzswQkFlWCxNQUFNOzJCQUFDLGVBQWU7eUNBWGxCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBZ0hOLE1BQU07c0JBREwsWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbWFuZEFjdGlvbiwgQ29tbWFuZFBhbGV0dGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29tbWFuZC1wYWxldHRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IE5nU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnbmd4LXNjcm9sbGJhcic7XG5pbXBvcnQgeyBTaG9ydGN1dENvbXBvbmVudCB9IGZyb20gJy4vc2hvcnRjdXQvc2hvcnRjdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY29tbWFuZC1wYWxldHRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb21tYW5kLXBhbGV0dGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgICAgIE5nU2Nyb2xsYmFyTW9kdWxlLFxuICAgICAgICBTaG9ydGN1dENvbXBvbmVudFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kUGFsZXR0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKSBjb250ZXh0RWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBxdWVyeVN0cmluZyA9IFwiXCI7XG4gICAgYWN0aXZlSW5kZXggPSAwO1xuXG4gICAgY29tbWFuZHM6IENvbW1hbmRBY3Rpb25bXSA9IFtdO1xuICAgIGZpbHRlcmVkQ29tbWFuZHM6IENvbW1hbmRBY3Rpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZFBhbGV0dGU6IENvbW1hbmRQYWxldHRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZ1JlZjxhbnk+LFxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgZGF0YTogYW55XG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29udGV4dEVsZW1lbnQgPSB0aGlzLmNvbnRleHRFbGVtZW50ID8/IGRhdGEuY29udGV4dEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY29tbWFuZHMgPSB0aGlzLmNvbW1hbmRQYWxldHRlLmdldFJlZ2lzdGVyZWRDb21tYW5kcyh0aGlzLmNvbnRleHRFbGVtZW50KVxuICAgICAgICAgICAgLmZpbHRlcihjID0+IGMudmlzaWJsZUluTGlzdCAhPSBmYWxzZSk7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRDb21tYW5kcyA9IHRoaXMuY29tbWFuZHM7XG5cbiAgICAgICAgLy8gUmVzZXQgdGhlIGZpbHRlciBsYWJlbHNcbiAgICAgICAgdGhpcy5jb21tYW5kcy5mb3JFYWNoKGNvbW1hbmQgPT4gY29tbWFuZFsnX3JlbmRlcmVkTGFiZWwnXSA9ICcnKTtcbiAgICB9XG5cbiAgICBvbktleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChldnQua2V5ID09IFwiRW50ZXJcIikge1xuICAgICAgICAgICAgLy8gRmlyZSB0aGUgZmlyc3QgY29tbWFuZFxuICAgICAgICAgICAgaWYgKHRoaXMuZmlsdGVyZWRDb21tYW5kcy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgIHRoaXMuZXhlY3V0ZUNvbW1hbmQodGhpcy5maWx0ZXJlZENvbW1hbmRzW3RoaXMuYWN0aXZlSW5kZXhdKTtcblxuICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2dC5rZXkgPT0gXCJBcnJvd1VwXCIpIHtcbiAgICAgICAgICAgIC8vIEZpcmUgdGhlIGZpcnN0IGNvbW1hbmRcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBNYXRoLm1heCh0aGlzLmFjdGl2ZUluZGV4LTEsIDApO1xuXG4gICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZ0LmtleSA9PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gTWF0aC5taW4odGhpcy5maWx0ZXJlZENvbW1hbmRzLmxlbmd0aC0xLCB0aGlzLmFjdGl2ZUluZGV4KzEpO1xuXG4gICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMDtcbiAgICAgICAgdGhpcy5jb21tYW5kcy5mb3JFYWNoKGMgPT4gY1snX3JlbmRlcmVkTGFiZWwnXSA9ICcnKTtcblxuICAgICAgICAvLyBDaGVjayBpbiB0aGUgbmV4dCB0aWNrIHRvIGdldCB0aGUgaW5wdXQnc1xuICAgICAgICAvLyB2YWx1ZSBzbyB0aGF0IGl0J3MgdXBkYXRlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlTdHJpbmcgPSAoZXZ0LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcblxuICAgICAgICAgICAgLy8gV2hpdGVzcGFjZSBkb2Vzbid0IGNvdW50LlxuICAgICAgICAgICAgaWYgKHRoaXMucXVlcnlTdHJpbmcudHJpbSgpLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZENvbW1hbmRzID0gdGhpcy5jb21tYW5kcztcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5Q2hhcnMgPSB0aGlzLnF1ZXJ5U3RyaW5nXG4gICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAuc3BsaXQoJycpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXRjaGVkQ29tbWFuZHM6IENvbW1hbmRBY3Rpb25bXSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbW1hbmQgb2YgdGhpcy5jb21tYW5kcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbGFiZWwgfSA9IGNvbW1hbmQ7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kQ2hhcnMgPSBsYWJlbFxuICAgICAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJycpO1xuXG4gICAgICAgICAgICAgICAgbGV0IHJlbmRlcmVkTGFiZWwgPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgbGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgaXNNYXRjaCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoYXIgb2YgcXVlcnlDaGFycykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGNvbW1hbmRDaGFycy5pbmRleE9mKGNoYXIsIGxhc3RJbmRleCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc01hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVkTGFiZWwgKz0gbGFiZWwuc2xpY2UobGFzdEluZGV4LCBpbmRleCkgKyBgPGI+JHtsYWJlbC5zbGljZShpbmRleCwgaW5kZXgrMSkgfTwvYj5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gaW5kZXgrMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlbmRlcmVkTGFiZWwgKz0gbGFiZWwuc2xpY2UobGFzdEluZGV4KTtcblxuICAgICAgICAgICAgICAgIGlmIChpc01hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRbJ19yZW5kZXJlZExhYmVsJ10gPSByZW5kZXJlZExhYmVsO1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVkQ29tbWFuZHMucHVzaChjb21tYW5kKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDb21tYW5kcyA9IG1hdGNoZWRDb21tYW5kcztcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBleGVjdXRlQ29tbWFuZChjb21tYW5kOiBDb21tYW5kQWN0aW9uKSB7XG4gICAgICAgIHRoaXMuY29tbWFuZFBhbGV0dGUuaW52b2tlQWN0aW9uKGNvbW1hbmQpO1xuICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6Ymx1clwiKVxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgLy8gdGhpcy5kaWFsb2cuY2xvc2UoKTtcbiAgICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJ3aWR0aDogMTAwJTsgcGFkZGluZzogOHB4IDhweCAwIDhweFwiPlxuICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFt2YWx1ZV09XCJxdWVyeVN0cmluZ1wiXG4gICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICA+XG48L21hdC1mb3JtLWZpZWxkPlxuXG5AaWYgKGZpbHRlcmVkQ29tbWFuZHMubGVuZ3RoID09IDApIHtcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWFuZHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1hbmQgc2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPk5vIG1hdGNoaW5nIHJlc3VsdHMuPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuQGVsc2Uge1xuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjb21tYW5kc1wiXG4gICAgICAgIFtzdHlsZS5mbGV4XT1cIihmaWx0ZXJlZENvbW1hbmRzLmxlbmd0aCAqIDI4KSArICdweCdcIlxuICAgID5cbiAgICAgICAgPG5nLXNjcm9sbGJhcj5cbiAgICAgICAgICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgaXRlbVNpemU9XCIyOFwiIHNjcm9sbFZpZXdwb3J0PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgY29tbWFuZCBvZiBmaWx0ZXJlZENvbW1hbmRzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29tbWFuZFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpbmRleD09YWN0aXZlSW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhlY3V0ZUNvbW1hbmQoY29tbWFuZClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImNvbW1hbmRbJ19yZW5kZXJlZExhYmVsJ10gfHwgY29tbWFuZC5sYWJlbCB8fCBjb21tYW5kLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoc2hvcnRjdXQgb2YgKGNvbW1hbmQuc2hvcnRjdXRLZXk/LmZpbmQgPyBjb21tYW5kLnNob3J0Y3V0S2V5IDogW2NvbW1hbmQuc2hvcnRjdXRLZXldKTsgdHJhY2sgc2hvcnRjdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3J0Y3V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtc2hvcnRjdXQgW3Nob3J0Y3V0XT1cInNob3J0Y3V0XCI+PC9hcHAtc2hvcnRjdXQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgICAgICA8L25nLXNjcm9sbGJhcj5cbiAgICA8L2Rpdj5cbn1cblxuIl19
|
|
@@ -58,7 +58,7 @@ export class TooltipComponent {
|
|
|
58
58
|
this.template = this.template || this._data?.template;
|
|
59
59
|
this.ownerCords = this.ownerCords || this._data?.ownerCords;
|
|
60
60
|
this.selfCords = this.selfCords || this._data?.selfCords;
|
|
61
|
-
this.isLockedOpen = this._data?.isLockedOpen;
|
|
61
|
+
this.isLockedOpen = this._data?.isLockedOpen || this.config?.stayOpen;
|
|
62
62
|
}
|
|
63
63
|
ngOnInit() {
|
|
64
64
|
const selfY = parseInt(this.selfCords.top.replace('px', ''));
|
|
@@ -106,7 +106,7 @@ export class TooltipComponent {
|
|
|
106
106
|
this.dialogRef.close();
|
|
107
107
|
}
|
|
108
108
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TooltipComponent, deps: [{ token: i0.ViewContainerRef }, { token: MAT_DIALOG_DATA, optional: true }, { token: i1.MatDialog, optional: true }, { token: i1.MatDialogRef, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TooltipComponent, isStandalone: true, selector: "ngx-tooltip", inputs: { data: "data", config: "config", ownerCords: "ownerCords", selfCords: "selfCords", template: "template" }, host: { listeners: { "window:resize": "onClose()", "window:blur": "onClose()", "pointerleave": "onClose()" } }, ngImport: i0, template: "<!-- Mouse event blocker for pointer leave -->\n<div\n *ngIf=\"coverRectCords\"\n class=\"owner-mask\"\n [style.top]=\"coverRectCords.top + 'px'\"\n [style.left]=\"coverRectCords.left + 'px'\"\n [style.height]=\"coverRectCords.height + 'px'\"\n [style.width]=\"coverRectCords.width + 'px'\"\n style=\"z-index: -1;\"\n></div>\n\n<div class=\"void\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped &&
|
|
109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TooltipComponent, isStandalone: true, selector: "ngx-tooltip", inputs: { data: "data", config: "config", ownerCords: "ownerCords", selfCords: "selfCords", template: "template" }, host: { listeners: { "window:resize": "onClose()", "window:blur": "onClose()", "pointerleave": "onClose()" } }, ngImport: i0, template: "<!-- Mouse event blocker for pointer leave -->\n<div\n *ngIf=\"coverRectCords\"\n class=\"owner-mask\"\n [style.top]=\"coverRectCords.top + 'px'\"\n [style.left]=\"coverRectCords.left + 'px'\"\n [style.height]=\"coverRectCords.height + 'px'\"\n [style.width]=\"coverRectCords.width + 'px'\"\n style=\"z-index: -1;\"\n></div>\n\n<div class=\"void\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"hasBootstrapped && closeOnVoid(true)\"\n></div>\n\n<div\n #container\n class=\"container\"\n>\n <ng-container\n *ngIf=\"isTemplate == false\"\n [ngComponentOutlet]=\"$any(template)\"\n >\n </ng-container>\n\n <ng-container\n *ngIf=\"isTemplate == true\"\n >\n <ng-container\n [ngTemplateOutlet]=\"$any(template)\"\n [ngTemplateOutletContext]=\"{\n '$implicit': data,\n 'dialog': dialogRef,\n 'element': container,\n 'tooltip': this\n }\"\n ></ng-container>\n </ng-container>\n</div>\n", styles: ["::ng-deep .cdk-overlay-container .ngx-tooltip{--mdc-dialog-container-color: var(--ngx-tooltip-background-color, #2f2f2f)}::ng-deep .cdk-overlay-container .ngx-tooltip .mdc-dialog__container{transform-origin:top left}::ng-deep .cdk-overlay-container .ngx-tooltip .mdc-dialog--open .mdc-dialog__container{transform:none}::ng-deep .cdk-overlay-container .ngx-tooltip .mdc-dialog__surface{overflow:visible;background-color:#0000}::ng-deep .cdk-overlay-container .context-menu-backdrop.cdk-overlay-backdrop-showing{opacity:0}::ng-deep .cdk-overlay-pane.ngx-tooltip .mat-dialog-container{padding:0}:host{min-width:2px;min-height:2px;display:block}.void,.owner-mask{position:absolute}.void{top:-100vh;right:-100vw;bottom:-100vh;left:-100vw;z-index:-2}.container{width:100%;height:100%;background:var(--ngx-tooltip-background-color, #333);border-radius:6px;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type:
|
|
110
110
|
// NgIf,
|
|
111
111
|
// NgTemplateOutlet,
|
|
112
112
|
// NgComponentOutlet,
|
|
@@ -119,7 +119,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
119
119
|
// NgTemplateOutlet,
|
|
120
120
|
// NgComponentOutlet,
|
|
121
121
|
CommonModule,
|
|
122
|
-
], standalone: true, template: "<!-- Mouse event blocker for pointer leave -->\n<div\n *ngIf=\"coverRectCords\"\n class=\"owner-mask\"\n [style.top]=\"coverRectCords.top + 'px'\"\n [style.left]=\"coverRectCords.left + 'px'\"\n [style.height]=\"coverRectCords.height + 'px'\"\n [style.width]=\"coverRectCords.width + 'px'\"\n style=\"z-index: -1;\"\n></div>\n\n<div class=\"void\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped &&
|
|
122
|
+
], standalone: true, template: "<!-- Mouse event blocker for pointer leave -->\n<div\n *ngIf=\"coverRectCords\"\n class=\"owner-mask\"\n [style.top]=\"coverRectCords.top + 'px'\"\n [style.left]=\"coverRectCords.left + 'px'\"\n [style.height]=\"coverRectCords.height + 'px'\"\n [style.width]=\"coverRectCords.width + 'px'\"\n style=\"z-index: -1;\"\n></div>\n\n<div class=\"void\"\n (pointerenter)=\"pointerIsOnVoid = true; hasBootstrapped && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"hasBootstrapped && closeOnVoid(true)\"\n></div>\n\n<div\n #container\n class=\"container\"\n>\n <ng-container\n *ngIf=\"isTemplate == false\"\n [ngComponentOutlet]=\"$any(template)\"\n >\n </ng-container>\n\n <ng-container\n *ngIf=\"isTemplate == true\"\n >\n <ng-container\n [ngTemplateOutlet]=\"$any(template)\"\n [ngTemplateOutletContext]=\"{\n '$implicit': data,\n 'dialog': dialogRef,\n 'element': container,\n 'tooltip': this\n }\"\n ></ng-container>\n </ng-container>\n</div>\n", styles: ["::ng-deep .cdk-overlay-container .ngx-tooltip{--mdc-dialog-container-color: var(--ngx-tooltip-background-color, #2f2f2f)}::ng-deep .cdk-overlay-container .ngx-tooltip .mdc-dialog__container{transform-origin:top left}::ng-deep .cdk-overlay-container .ngx-tooltip .mdc-dialog--open .mdc-dialog__container{transform:none}::ng-deep .cdk-overlay-container .ngx-tooltip .mdc-dialog__surface{overflow:visible;background-color:#0000}::ng-deep .cdk-overlay-container .context-menu-backdrop.cdk-overlay-backdrop-showing{opacity:0}::ng-deep .cdk-overlay-pane.ngx-tooltip .mat-dialog-container{padding:0}:host{min-width:2px;min-height:2px;display:block}.void,.owner-mask{position:absolute}.void{top:-100vh;right:-100vw;bottom:-100vh;left:-100vw;z-index:-2}.container{width:100%;height:100%;background:var(--ngx-tooltip-background-color, #333);border-radius:6px;overflow:hidden}\n"] }]
|
|
123
123
|
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
124
124
|
type: Optional
|
|
125
125
|
}, {
|
|
@@ -149,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
149
149
|
type: HostListener,
|
|
150
150
|
args: ["pointerleave"]
|
|
151
151
|
}] } });
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUl0QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsUUFBc0MsRUFBRSxJQUFTLEVBQUUsRUFBRTtJQUN6RixNQUFNLElBQUksR0FBRztRQUNULElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtRQUNoQixRQUFRO1FBQ1IsTUFBTSxFQUFFLEVBQUU7UUFDVixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7UUFDdEMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTtRQUMvQyxFQUFFLEVBQUUsSUFBSTtLQUNYLENBQUE7SUFDRCw0RUFB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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBUZW1wbGF0ZVJlZiwgVHlwZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlQXBwbGljYXRpb24gfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQb3B1cE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcy9wb3B1cCc7XG5cblxuZXhwb3J0IGNvbnN0IGNhbGNUb29sdGlwQm91bmRzID0gYXN5bmMgKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgVHlwZTxhbnk+LCBkYXRhOiBhbnkpID0+IHtcbiAgICBjb25zdCBhcmdzID0ge1xuICAgICAgICBkYXRhOiBkYXRhIHx8IHt9LFxuICAgICAgICB0ZW1wbGF0ZSxcbiAgICAgICAgY29uZmlnOiB7fSxcbiAgICAgICAgc2VsZkNvcmRzOiB7IGxlZnQ6IFwiMHB4XCIsIHRvcDogXCIwcHhcIiB9LFxuICAgICAgICBvd25lckNvcmRzOiB7IHg6IDAsIHk6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICB9XG4gICAgLy8gRm9yY2libHkgYm9vdHN0cmFwIHRoZSBjdHggbWVudSBvdXRzaWRlIG9mIHRoZSBjbGllbnQgYXBwbGljYXRpb24ncyB6b25lLlxuICAgIGNvbnN0IGFwcCA9IGF3YWl0IGNyZWF0ZUFwcGxpY2F0aW9uKHtcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7IHByb3ZpZGU6IE1BVF9ESUFMT0dfREFUQSwgdXNlVmFsdWU6IGFyZ3MgfVxuICAgICAgICBdXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIGRlbC5zdHlsZS5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIjtcbiAgICBkZWwuc3R5bGUubGVmdCA9ICctMTAwMHZ3JztcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChkZWwpO1xuXG4gICAgY29uc3QgYmFzZSA9IGFwcC5ib290c3RyYXAoVG9vbHRpcENvbXBvbmVudCwgZGVsKTtcbiAgICBjb25zdCB7IGluc3RhbmNlIH0gPSBiYXNlO1xuXG4gICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20oYXBwLmlzU3RhYmxlKTtcblxuICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCA9IGluc3RhbmNlLnZpZXdDb250YWluZXI/LmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgYXBwLmRlc3Ryb3koKTtcbiAgICBkZWwucmVtb3ZlKCk7XG5cbiAgICByZXR1cm4gcmVjdDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtdG9vbHRpcCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Rvb2x0aXAuY29tcG9uZW50LnNjc3MnXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vIE5nSWYsXG4gICAgICAgIC8vIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIC8vIE5nQ29tcG9uZW50T3V0bGV0LFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGRhdGE6IGFueTtcbiAgICBASW5wdXQoKSBjb25maWc6IFBvcHVwT3B0aW9ucztcbiAgICBASW5wdXQoKSBvd25lckNvcmRzOiBET01SZWN0O1xuICAgIEBJbnB1dCgpIHNlbGZDb3JkcztcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IFR5cGU8YW55PjtcblxuICAgIHB1YmxpYyBpc1RlbXBsYXRlOiBib29sZWFuO1xuICAgIHB1YmxpYyBoYXNCb290c3RyYXBwZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgcG9pbnRlcklzT25Wb2lkID0gZmFsc2U7XG4gICAgcHVibGljIGlzTG9ja2VkT3BlbiA9IGZhbHNlO1xuXG4gICAgY292ZXJSZWN0Q29yZHMgPSB7XG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICB3aWR0aDogMFxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgX2RhdGE6IGFueSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLCAvLyBvcHRpb25hbCBvbmx5IGZvciB0aGUgcHVycG9zZSBvZiBlc3RpbWF0aW5nIGRpbWVuc2lvbnNcbiAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPGFueT4sXG4gICAgKSB7XG4gICAgICAgIC8vIERlZmF1bHRzIGFyZSBzZXQgYmVmb3JlIEBJbnB1dCgpIGhvb2tzIGV2YWx1YXRlXG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YSB8fCB0aGlzLl9kYXRhPy5kYXRhIHx8IHt9O1xuICAgICAgICB0aGlzLmNvbmZpZyA9IHRoaXMuY29uZmlnIHx8IHRoaXMuX2RhdGE/LmNvbmZpZztcbiAgICAgICAgdGhpcy5kaWFsb2cgPSB0aGlzLmRpYWxvZyB8fCB0aGlzLl9kYXRhPy5kaWFsb2c7XG4gICAgICAgIHRoaXMudGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlIHx8IHRoaXMuX2RhdGE/LnRlbXBsYXRlO1xuICAgICAgICB0aGlzLm93bmVyQ29yZHMgPSB0aGlzLm93bmVyQ29yZHMgfHwgdGhpcy5fZGF0YT8ub3duZXJDb3JkcztcbiAgICAgICAgdGhpcy5zZWxmQ29yZHMgPSB0aGlzLnNlbGZDb3JkcyB8fCB0aGlzLl9kYXRhPy5zZWxmQ29yZHM7XG4gICAgICAgIHRoaXMuaXNMb2NrZWRPcGVuID0gdGhpcy5fZGF0YT8uaXNMb2NrZWRPcGVuO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuXG4gICAgICAgIGNvbnN0IHNlbGZZID0gcGFyc2VJbnQodGhpcy5zZWxmQ29yZHMudG9wLnJlcGxhY2UoJ3B4JywgJycpKTtcbiAgICAgICAgY29uc3Qgc2VsZlggPSBwYXJzZUludCh0aGlzLnNlbGZDb3Jkcy5sZWZ0LnJlcGxhY2UoJ3B4JywgJycpKTtcblxuICAgICAgICB0aGlzLmNvdmVyUmVjdENvcmRzID0ge1xuICAgICAgICAgICAgdG9wOiB0aGlzLm93bmVyQ29yZHMueSAtIHNlbGZZIC0gMTYsXG4gICAgICAgICAgICBsZWZ0OiB0aGlzLm93bmVyQ29yZHMueCAtIHNlbGZYIC0gMTYsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMub3duZXJDb3Jkcy5oZWlnaHQgKyAzMixcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLm93bmVyQ29yZHMud2lkdGggKyAzMlxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGVtcGxhdGUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZilcbiAgICAgICAgICAgIHRoaXMuaXNUZW1wbGF0ZSA9IHRydWU7XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB0aGlzLnRlbXBsYXRlID09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICAgIHRoaXMuaXNUZW1wbGF0ZSA9IGZhbHNlO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnJlY29nbml6ZWQgdGVtcGxhdGUgb2JqZWN0IHByb3ZpZGVkLlwiKTtcblxuICAgICAgICAvLyBUT0RPOiByZXNvbHZlIHRoZSBldmVudCBob29rIHdpdGggdGhlIC52b2lkIGVsZW1lbnRcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhc0Jvb3RzdHJhcHBlZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy5wb2ludGVySXNPblZvaWQgJiYgIXRoaXMuaXNMb2NrZWRPcGVuKVxuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIH0sIDIwMCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgZXZ0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2NrZWRPcGVuID0gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIGV2dCA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzTG9ja2VkT3BlbiA9IHRydWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaFwiLCBldnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0xvY2tlZE9wZW4gPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSB0aGUgdG9vbHRpcCBpZiB0aGVzZSBhY3Rpb25zIG9jY3VyXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIilcbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OmJsdXJcIilcbiAgICBASG9zdExpc3RlbmVyKFwicG9pbnRlcmxlYXZlXCIpXG4gICAgcHJpdmF0ZSBvbkNsb3NlKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNMb2NrZWRPcGVuKVxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgY2xvc2VPblZvaWQoZm9yY2UgPSBmYWxzZSkge1xuICAgICAgICBpZiAoIXRoaXMuaXNMb2NrZWRPcGVuIHx8IGZvcmNlKVxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG59XG4iLCI8IS0tIE1vdXNlIGV2ZW50IGJsb2NrZXIgZm9yIHBvaW50ZXIgbGVhdmUgLS0+XG48ZGl2XG4gICAgKm5nSWY9XCJjb3ZlclJlY3RDb3Jkc1wiXG4gICAgY2xhc3M9XCJvd25lci1tYXNrXCJcbiAgICBbc3R5bGUudG9wXT1cImNvdmVyUmVjdENvcmRzLnRvcCArICdweCdcIlxuICAgIFtzdHlsZS5sZWZ0XT1cImNvdmVyUmVjdENvcmRzLmxlZnQgKyAncHgnXCJcbiAgICBbc3R5bGUuaGVpZ2h0XT1cImNvdmVyUmVjdENvcmRzLmhlaWdodCArICdweCdcIlxuICAgIFtzdHlsZS53aWR0aF09XCJjb3ZlclJlY3RDb3Jkcy53aWR0aCArICdweCdcIlxuICAgIHN0eWxlPVwiei1pbmRleDogLTE7XCJcbj48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInZvaWRcIlxuICAgIChwb2ludGVyZW50ZXIpPVwicG9pbnRlcklzT25Wb2lkID0gdHJ1ZTsgaGFzQm9vdHN0cmFwcGVkICYmICFpc0xvY2tlZE9wZW4gJiYgY2xvc2VPblZvaWQoKVwiXG4gICAgKHBvaW50ZXJsZWF2ZSk9XCJwb2ludGVySXNPblZvaWQgPSBmYWxzZVwiXG4gICAgKHBvaW50ZXJkb3duKT1cImhhc0Jvb3RzdHJhcHBlZCAmJiBjbG9zZU9uVm9pZCh0cnVlKVwiXG4+PC9kaXY+XG5cbjxkaXZcbiAgICAjY29udGFpbmVyXG4gICAgY2xhc3M9XCJjb250YWluZXJcIlxuPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJpc1RlbXBsYXRlID09IGZhbHNlXCJcbiAgICAgICAgW25nQ29tcG9uZW50T3V0bGV0XT1cIiRhbnkodGVtcGxhdGUpXCJcbiAgICA+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiaXNUZW1wbGF0ZSA9PSB0cnVlXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkodGVtcGxhdGUpXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgJyRpbXBsaWNpdCc6IGRhdGEsXG4gICAgICAgICAgICAgICAgJ2RpYWxvZyc6IGRpYWxvZ1JlZixcbiAgICAgICAgICAgICAgICAnZWxlbWVudCc6IGNvbnRhaW5lcixcbiAgICAgICAgICAgICAgICAndG9vbHRpcCc6IHRoaXNcbiAgICAgICAgICAgIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUl0QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsUUFBc0MsRUFBRSxJQUFTLEVBQUUsRUFBRTtJQUN6RixNQUFNLElBQUksR0FBRztRQUNULElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtRQUNoQixRQUFRO1FBQ1IsTUFBTSxFQUFFLEVBQUU7UUFDVixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7UUFDdEMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTtRQUMvQyxFQUFFLEVBQUUsSUFBSTtLQUNYLENBQUE7SUFDRCw0RUFB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QkFDMUIsWUFBWTt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBUZW1wbGF0ZVJlZiwgVHlwZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlQXBwbGljYXRpb24gfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb29sdGlwT3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL3Rvb2x0aXAnO1xuXG5cbmV4cG9ydCBjb25zdCBjYWxjVG9vbHRpcEJvdW5kcyA9IGFzeW5jICh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IFR5cGU8YW55PiwgZGF0YTogYW55KSA9PiB7XG4gICAgY29uc3QgYXJncyA9IHtcbiAgICAgICAgZGF0YTogZGF0YSB8fCB7fSxcbiAgICAgICAgdGVtcGxhdGUsXG4gICAgICAgIGNvbmZpZzoge30sXG4gICAgICAgIHNlbGZDb3JkczogeyBsZWZ0OiBcIjBweFwiLCB0b3A6IFwiMHB4XCIgfSxcbiAgICAgICAgb3duZXJDb3JkczogeyB4OiAwLCB5OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwIH0sXG4gICAgICAgIGlkOiBudWxsXG4gICAgfVxuICAgIC8vIEZvcmNpYmx5IGJvb3RzdHJhcCB0aGUgY3R4IG1lbnUgb3V0c2lkZSBvZiB0aGUgY2xpZW50IGFwcGxpY2F0aW9uJ3Mgem9uZS5cbiAgICBjb25zdCBhcHAgPSBhd2FpdCBjcmVhdGVBcHBsaWNhdGlvbih7XG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgeyBwcm92aWRlOiBNQVRfRElBTE9HX0RBVEEsIHVzZVZhbHVlOiBhcmdzIH1cbiAgICAgICAgXVxuICAgIH0pO1xuXG4gICAgY29uc3QgZGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICBkZWwuc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XG4gICAgZGVsLnN0eWxlLmxlZnQgPSAnLTEwMDB2dyc7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZGVsKTtcblxuICAgIGNvbnN0IGJhc2UgPSBhcHAuYm9vdHN0cmFwKFRvb2x0aXBDb21wb25lbnQsIGRlbCk7XG4gICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gYmFzZTtcblxuICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKGFwcC5pc1N0YWJsZSk7XG5cbiAgICBjb25zdCBlbDogSFRNTEVsZW1lbnQgPSBpbnN0YW5jZS52aWV3Q29udGFpbmVyPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50O1xuXG4gICAgY29uc3QgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGFwcC5kZXN0cm95KCk7XG4gICAgZGVsLnJlbW92ZSgpO1xuXG4gICAgcmV0dXJuIHJlY3Q7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LXRvb2x0aXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b29sdGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvLyBOZ0lmLFxuICAgICAgICAvLyBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICAvLyBOZ0NvbXBvbmVudE91dGxldCxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBkYXRhOiBhbnk7XG4gICAgQElucHV0KCkgY29uZmlnOiBUb29sdGlwT3B0aW9ucztcbiAgICBASW5wdXQoKSBvd25lckNvcmRzOiBET01SZWN0O1xuICAgIEBJbnB1dCgpIHNlbGZDb3JkcztcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IFR5cGU8YW55PjtcblxuICAgIHB1YmxpYyBpc1RlbXBsYXRlOiBib29sZWFuO1xuICAgIHB1YmxpYyBoYXNCb290c3RyYXBwZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgcG9pbnRlcklzT25Wb2lkID0gZmFsc2U7XG4gICAgcHVibGljIGlzTG9ja2VkT3BlbiA9IGZhbHNlO1xuXG4gICAgY292ZXJSZWN0Q29yZHMgPSB7XG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICB3aWR0aDogMFxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgX2RhdGE6IGFueSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLCAvLyBvcHRpb25hbCBvbmx5IGZvciB0aGUgcHVycG9zZSBvZiBlc3RpbWF0aW5nIGRpbWVuc2lvbnNcbiAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPGFueT4sXG4gICAgKSB7XG4gICAgICAgIC8vIERlZmF1bHRzIGFyZSBzZXQgYmVmb3JlIEBJbnB1dCgpIGhvb2tzIGV2YWx1YXRlXG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YSB8fCB0aGlzLl9kYXRhPy5kYXRhIHx8IHt9O1xuICAgICAgICB0aGlzLmNvbmZpZyA9IHRoaXMuY29uZmlnIHx8IHRoaXMuX2RhdGE/LmNvbmZpZztcbiAgICAgICAgdGhpcy5kaWFsb2cgPSB0aGlzLmRpYWxvZyB8fCB0aGlzLl9kYXRhPy5kaWFsb2c7XG4gICAgICAgIHRoaXMudGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlIHx8IHRoaXMuX2RhdGE/LnRlbXBsYXRlO1xuICAgICAgICB0aGlzLm93bmVyQ29yZHMgPSB0aGlzLm93bmVyQ29yZHMgfHwgdGhpcy5fZGF0YT8ub3duZXJDb3JkcztcbiAgICAgICAgdGhpcy5zZWxmQ29yZHMgPSB0aGlzLnNlbGZDb3JkcyB8fCB0aGlzLl9kYXRhPy5zZWxmQ29yZHM7XG4gICAgICAgIHRoaXMuaXNMb2NrZWRPcGVuID0gdGhpcy5fZGF0YT8uaXNMb2NrZWRPcGVuIHx8IHRoaXMuY29uZmlnPy5zdGF5T3BlbjtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcblxuICAgICAgICBjb25zdCBzZWxmWSA9IHBhcnNlSW50KHRoaXMuc2VsZkNvcmRzLnRvcC5yZXBsYWNlKCdweCcsICcnKSk7XG4gICAgICAgIGNvbnN0IHNlbGZYID0gcGFyc2VJbnQodGhpcy5zZWxmQ29yZHMubGVmdC5yZXBsYWNlKCdweCcsICcnKSk7XG5cbiAgICAgICAgdGhpcy5jb3ZlclJlY3RDb3JkcyA9IHtcbiAgICAgICAgICAgIHRvcDogdGhpcy5vd25lckNvcmRzLnkgLSBzZWxmWSAtIDE2LFxuICAgICAgICAgICAgbGVmdDogdGhpcy5vd25lckNvcmRzLnggLSBzZWxmWCAtIDE2LFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLm93bmVyQ29yZHMuaGVpZ2h0ICsgMzIsXG4gICAgICAgICAgICB3aWR0aDogdGhpcy5vd25lckNvcmRzLndpZHRoICsgMzJcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRlbXBsYXRlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpXG4gICAgICAgICAgICB0aGlzLmlzVGVtcGxhdGUgPSB0cnVlO1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy50ZW1wbGF0ZSA9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICB0aGlzLmlzVGVtcGxhdGUgPSBmYWxzZTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5yZWNvZ25pemVkIHRlbXBsYXRlIG9iamVjdCBwcm92aWRlZC5cIik7XG5cbiAgICAgICAgLy8gVE9ETzogcmVzb2x2ZSB0aGUgZXZlbnQgaG9vayB3aXRoIHRoZSAudm9pZCBlbGVtZW50XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYXNCb290c3RyYXBwZWQgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMucG9pbnRlcklzT25Wb2lkICYmICF0aGlzLmlzTG9ja2VkT3BlbilcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgICB9LCAyMDApO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGV2dCA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzTG9ja2VkT3BlbiA9IHRydWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVyZG93blwiLCBldnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0xvY2tlZE9wZW4gPSB0cnVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hcIiwgZXZ0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2NrZWRPcGVuID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgdGhlIHRvb2x0aXAgaWYgdGhlc2UgYWN0aW9ucyBvY2N1clxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIpXG4gICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpibHVyXCIpXG4gICAgQEhvc3RMaXN0ZW5lcihcInBvaW50ZXJsZWF2ZVwiKVxuICAgIHByaXZhdGUgb25DbG9zZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTG9ja2VkT3BlbilcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIGNsb3NlT25Wb2lkKGZvcmNlID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTG9ja2VkT3BlbiB8fCBmb3JjZSlcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxufVxuIiwiPCEtLSBNb3VzZSBldmVudCBibG9ja2VyIGZvciBwb2ludGVyIGxlYXZlIC0tPlxuPGRpdlxuICAgICpuZ0lmPVwiY292ZXJSZWN0Q29yZHNcIlxuICAgIGNsYXNzPVwib3duZXItbWFza1wiXG4gICAgW3N0eWxlLnRvcF09XCJjb3ZlclJlY3RDb3Jkcy50b3AgKyAncHgnXCJcbiAgICBbc3R5bGUubGVmdF09XCJjb3ZlclJlY3RDb3Jkcy5sZWZ0ICsgJ3B4J1wiXG4gICAgW3N0eWxlLmhlaWdodF09XCJjb3ZlclJlY3RDb3Jkcy5oZWlnaHQgKyAncHgnXCJcbiAgICBbc3R5bGUud2lkdGhdPVwiY292ZXJSZWN0Q29yZHMud2lkdGggKyAncHgnXCJcbiAgICBzdHlsZT1cInotaW5kZXg6IC0xO1wiXG4+PC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJ2b2lkXCJcbiAgICAocG9pbnRlcmVudGVyKT1cInBvaW50ZXJJc09uVm9pZCA9IHRydWU7IGhhc0Jvb3RzdHJhcHBlZCAmJiBjbG9zZU9uVm9pZCgpXCJcbiAgICAocG9pbnRlcmxlYXZlKT1cInBvaW50ZXJJc09uVm9pZCA9IGZhbHNlXCJcbiAgICAocG9pbnRlcmRvd24pPVwiaGFzQm9vdHN0cmFwcGVkICYmIGNsb3NlT25Wb2lkKHRydWUpXCJcbj48L2Rpdj5cblxuPGRpdlxuICAgICNjb250YWluZXJcbiAgICBjbGFzcz1cImNvbnRhaW5lclwiXG4+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cImlzVGVtcGxhdGUgPT0gZmFsc2VcIlxuICAgICAgICBbbmdDb21wb25lbnRPdXRsZXRdPVwiJGFueSh0ZW1wbGF0ZSlcIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJpc1RlbXBsYXRlID09IHRydWVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueSh0ZW1wbGF0ZSlcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAnJGltcGxpY2l0JzogZGF0YSxcbiAgICAgICAgICAgICAgICAnZGlhbG9nJzogZGlhbG9nUmVmLFxuICAgICAgICAgICAgICAgICdlbGVtZW50JzogY29udGFpbmVyLFxuICAgICAgICAgICAgICAgICd0b29sdGlwJzogdGhpc1xuICAgICAgICAgICAgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
@@ -106,7 +106,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
106
106
|
args: ['pointerleave', ['$event']]
|
|
107
107
|
}] } });
|
|
108
108
|
// Helper to open the context menu without using the directive.
|
|
109
|
-
export const openTooltip = async (dialog, template, data, el, config, focusTrap = false) => {
|
|
109
|
+
export const openTooltip = async (dialog, template, data, el, config, focusTrap = false, matPopupOptions) => {
|
|
110
110
|
const rect = await calcTooltipBounds(template, data);
|
|
111
111
|
const ownerCords = el.getBoundingClientRect();
|
|
112
112
|
const cords = getPosition(el, config, rect);
|
|
@@ -126,7 +126,8 @@ export const openTooltip = async (dialog, template, data, el, config, focusTrap
|
|
|
126
126
|
},
|
|
127
127
|
panelClass: ["ngx-tooltip", 'ngx-' + specificId].concat(config?.customClass || []),
|
|
128
128
|
position: cords,
|
|
129
|
-
hasBackdrop: false
|
|
129
|
+
hasBackdrop: false,
|
|
130
|
+
...matPopupOptions
|
|
130
131
|
})
|
|
131
132
|
.afterClosed()
|
|
132
133
|
.subscribe(s => {
|
|
@@ -134,4 +135,4 @@ export const openTooltip = async (dialog, template, data, el, config, focusTrap
|
|
|
134
135
|
});
|
|
135
136
|
});
|
|
136
137
|
};
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ0osT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEksT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQzs7O0FBUzdCLE1BQU0sT0FBTyxnQkFBZ0I7SUF3QnpCLFlBQ1ksTUFBaUIsRUFDakIsYUFBK0I7UUFEL0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFuQjNDOztXQUVHO1FBRTBCLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBRXpEOztXQUVHO1FBRTJCLFNBQUksR0FBUSxFQUFFLENBQUM7UUFJckMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQXdCL0IsaUJBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQWxCN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUU7WUFDdEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztZQUNuQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lB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QUFDO0FBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEhvc3RMaXN0ZW5lciwgVGVtcGxhdGVSZWYsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGdldFBvc2l0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyAgfSBmcm9tICcuLi90eXBlcy9wb3B1cCc7aW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCwgY2FsY1Rvb2x0aXBCb3VuZHMgfSBmcm9tICcuLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy90b29sdGlwJztcbmltcG9ydCB7IHVsaWQgfSBmcm9tICd1bGlkeCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25neFRvb2x0aXBdLFtuZ3gtdG9vbHRpcF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBNYXREaWFsb2dcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSB7XG5cbiAgICAvKipcbiAgICAgKi9cbiAgICBASW5wdXQoXCJuZ3hUb29sdGlwXCIpXG4gICAgQElucHV0KFwibmd4LXRvb2x0aXBcIikgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBvcGVuaW5nIHRoZSBhcHAgbWVudVxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neFRvb2x0aXBDb25maWdcIilcbiAgICBASW5wdXQoXCJuZ3gtdG9vbHRpcC1jb25maWdcIikgY29uZmlnOiBUb29sdGlwT3B0aW9ucyA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogQXJiaXRyYXJ5IGRhdGEgdG8gcGFzcyBpbnRvIHRoZSB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neFRvb2x0aXBDb250ZXh0XCIpXG4gICAgQElucHV0KFwibmd4LXRvb2x0aXAtY29udGV4dFwiKSBkYXRhOiBhbnkgPSB7fTtcblxuXG4gICAgcHJpdmF0ZSBkaWFsb2dJbnN0YW5jZTogTWF0RGlhbG9nUmVmPGFueT47XG4gICAgcHJpdmF0ZSBpc0N1cnNvck92ZXJUYXJnZXQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGlzRnJlZXplT25LZXlDb2RlQm91bmQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmZyZWV6ZU9uS2V5Q29kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5pc0ZyZWV6ZU9uS2V5Q29kZUJvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbktleURvd25FdnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmlzRnJlZXplT25LZXlDb2RlQm91bmQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbktleURvd25FdnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGV2dCkge1xuICAgICAgICAvLyBUT0RPOiBmYWRlIG1lc3NhZ2UgJ3Rvb2x0aXAgaXMgbG9ja2VkIG9wZW4nXG4gICAgICAgIGlmIChldnQuY29kZSA9PSAoXCJGMlwiKSkge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dJbnN0YW5jZS5jb21wb25lbnRJbnN0YW5jZS5pc0xvY2tlZE9wZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgb25LZXlEb3duRXZ0ID0gdGhpcy5vbktleURvd24uYmluZCh0aGlzKTtcblxuICAgIC8vIE5lZWRzIHRvIGJlIHB1YmxpYyBzbyB3ZSBjYW4gbWFudWFsbHkgb3BlbiB0aGUgZGlhbG9nXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmVudGVyJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgYXN5bmMgb25Qb2ludGVyRW50ZXIoZXZ0OiBQb2ludGVyRXZlbnQpIHtcbiAgICAgICAgLy8gSWYgdGhlIHRlbXBsYXRlIGlzIG5vdCBhIHRlbXBsYXRlIHJlZiwgZG8gbm90aGluZy5cbiAgICAgICAgaWYgKCEodGhpcy50ZW1wbGF0ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSlcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAvLyBJZiB0aGUgY2xpY2sgdHJpZ2dlciBpcyBzZXQsIHdlIHdpbGwgaW1tZWRpYXRlbHkgb3BlbiB0aGUgdG9vbHRpcC5cbiAgICAgICAgLy8gVGhpcyB3aWxsIGJ5cGFzcyBhbGwgb3RoZXIgdHJpZ2dlcnMuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZz8udHJpZ2dlcnM/LmluY2x1ZGVzKFwiY2xpY2tcIikpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kaWFsb2dJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy52aWV3Q29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICAgICAgICAgIGRhdGEuaXNMb2NrZWRPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0luc3RhbmNlID0gYXdhaXQgb3BlblRvb2x0aXAodGhpcy5kaWFsb2csIHRoaXMudGVtcGxhdGUsIHRoaXMuZGF0YSwgZWwsIHRoaXMuY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNDdXJzb3JPdmVyVGFyZ2V0ID0gdHJ1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBjdXJzb3IgbW92ZWQgYXdheSBpbiB0aGUgdGltZVxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzQ3Vyc29yT3ZlclRhcmdldClcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaWFsb2dJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy52aWV3Q29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0luc3RhbmNlID0gYXdhaXQgb3BlblRvb2x0aXAodGhpcy5kaWFsb2csIHRoaXMudGVtcGxhdGUsIHRoaXMuZGF0YSwgZWwsIHRoaXMuY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdGhpcy5jb25maWcuZGVsYXkgPz8gMjUwKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVybGVhdmUnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBhc3luYyBvblBvaW50ZXJMZWF2ZShldnQ6IFBvaW50ZXJFdmVudCkge1xuICAgICAgICB0aGlzLmlzQ3Vyc29yT3ZlclRhcmdldCA9IGZhbHNlO1xuICAgIH1cbn1cblxuLy8gSGVscGVyIHRvIG9wZW4gdGhlIGNvbnRleHQgbWVudSB3aXRob3V0IHVzaW5nIHRoZSBkaXJlY3RpdmUuXG5leHBvcnQgY29uc3Qgb3BlblRvb2x0aXAgPSBhc3luYyAoXG4gICAgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT4sXG4gICAgZGF0YTogYW55LFxuICAgIGVsOiBIVE1MRWxlbWVudCxcbiAgICBjb25maWc/OiBUb29sdGlwT3B0aW9ucyxcbiAgICBmb2N1c1RyYXAgPSBmYWxzZVxuKSA9PiB7XG5cbiAgICBjb25zdCByZWN0ID0gYXdhaXQgY2FsY1Rvb2x0aXBCb3VuZHModGVtcGxhdGUsIGRhdGEpO1xuICAgIGNvbnN0IG93bmVyQ29yZHMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBjb3JkcyA9IGdldFBvc2l0aW9uKGVsLCBjb25maWcsIHJlY3QpO1xuICAgIGNvbnN0IHNwZWNpZmljSWQgPSB1bGlkKCk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzID0+IHtcbiAgICAgICAgZGlhbG9nLm9wZW4oVG9vbHRpcENvbXBvbmVudCwge1xuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmb2N1c1RyYXAsXG4gICAgICAgICAgICByZXN0b3JlRm9jdXM6IGZvY3VzVHJhcCxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBkaWFsb2csXG4gICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgY29uZmlnOiBjb25maWcsXG4gICAgICAgICAgICAgICAgb3duZXJDb3Jkczogb3duZXJDb3JkcyxcbiAgICAgICAgICAgICAgICBzZWxmQ29yZHM6IGNvcmRzLFxuICAgICAgICAgICAgICAgIGlkOiBzcGVjaWZpY0lkXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogW1wibmd4LXRvb2x0aXBcIiwgJ25neC0nICsgc3BlY2lmaWNJZF0uY29uY2F0KGNvbmZpZz8uY3VzdG9tQ2xhc3MgfHwgW10pLFxuICAgICAgICAgICAgcG9zaXRpb246IGNvcmRzLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgLnN1YnNjcmliZShzID0+IHtcbiAgICAgICAgICAgICAgICByZXMocyk7XG4gICAgICAgICAgICB9KVxuICAgIH0pIGFzIFByb21pc2U8YW55Pjtcbn07XG4iXX0=
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLFNBQVMsRUFBaUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ0osT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEksT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQzs7O0FBUzdCLE1BQU0sT0FBTyxnQkFBZ0I7SUF3QnpCLFlBQ1ksTUFBaUIsRUFDakIsYUFBK0I7UUFEL0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFuQjNDOztXQUVHO1FBRTBCLFdBQU0sR0FBbUIsRUFBRSxDQUFDO1FBRXpEOztXQUVHO1FBRTJCLFNBQUksR0FBUSxFQUFFLENBQUM7UUFJckMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQXdCL0IsaUJBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQWxCN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUU7WUFDdEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztZQUNuQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lB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LENBQUMsQ0FBQTtJQUNWLENBQUMsQ0FBaUIsQ0FBQztBQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBIb3N0TGlzdGVuZXIsIFRlbXBsYXRlUmVmLCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGdldFBvc2l0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyAgfSBmcm9tICcuLi90eXBlcy9wb3B1cCc7aW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCwgY2FsY1Rvb2x0aXBCb3VuZHMgfSBmcm9tICcuLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy90b29sdGlwJztcbmltcG9ydCB7IHVsaWQgfSBmcm9tICd1bGlkeCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25neFRvb2x0aXBdLFtuZ3gtdG9vbHRpcF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBNYXREaWFsb2dcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSB7XG5cbiAgICAvKipcbiAgICAgKi9cbiAgICBASW5wdXQoXCJuZ3hUb29sdGlwXCIpXG4gICAgQElucHV0KFwibmd4LXRvb2x0aXBcIikgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBvcGVuaW5nIHRoZSBhcHAgbWVudVxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neFRvb2x0aXBDb25maWdcIilcbiAgICBASW5wdXQoXCJuZ3gtdG9vbHRpcC1jb25maWdcIikgY29uZmlnOiBUb29sdGlwT3B0aW9ucyA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogQXJiaXRyYXJ5IGRhdGEgdG8gcGFzcyBpbnRvIHRoZSB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neFRvb2x0aXBDb250ZXh0XCIpXG4gICAgQElucHV0KFwibmd4LXRvb2x0aXAtY29udGV4dFwiKSBkYXRhOiBhbnkgPSB7fTtcblxuXG4gICAgcHJpdmF0ZSBkaWFsb2dJbnN0YW5jZTogTWF0RGlhbG9nUmVmPGFueT47XG4gICAgcHJpdmF0ZSBpc0N1cnNvck92ZXJUYXJnZXQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGlzRnJlZXplT25LZXlDb2RlQm91bmQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmZyZWV6ZU9uS2V5Q29kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5pc0ZyZWV6ZU9uS2V5Q29kZUJvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbktleURvd25FdnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmlzRnJlZXplT25LZXlDb2RlQm91bmQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbktleURvd25FdnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGV2dCkge1xuICAgICAgICAvLyBUT0RPOiBmYWRlIG1lc3NhZ2UgJ3Rvb2x0aXAgaXMgbG9ja2VkIG9wZW4nXG4gICAgICAgIGlmIChldnQuY29kZSA9PSAoXCJGMlwiKSkge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dJbnN0YW5jZS5jb21wb25lbnRJbnN0YW5jZS5pc0xvY2tlZE9wZW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgb25LZXlEb3duRXZ0ID0gdGhpcy5vbktleURvd24uYmluZCh0aGlzKTtcblxuICAgIC8vIE5lZWRzIHRvIGJlIHB1YmxpYyBzbyB3ZSBjYW4gbWFudWFsbHkgb3BlbiB0aGUgZGlhbG9nXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmVudGVyJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgYXN5bmMgb25Qb2ludGVyRW50ZXIoZXZ0OiBQb2ludGVyRXZlbnQpIHtcbiAgICAgICAgLy8gSWYgdGhlIHRlbXBsYXRlIGlzIG5vdCBhIHRlbXBsYXRlIHJlZiwgZG8gbm90aGluZy5cbiAgICAgICAgaWYgKCEodGhpcy50ZW1wbGF0ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSlcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAvLyBJZiB0aGUgY2xpY2sgdHJpZ2dlciBpcyBzZXQsIHdlIHdpbGwgaW1tZWRpYXRlbHkgb3BlbiB0aGUgdG9vbHRpcC5cbiAgICAgICAgLy8gVGhpcyB3aWxsIGJ5cGFzcyBhbGwgb3RoZXIgdHJpZ2dlcnMuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZz8udHJpZ2dlcnM/LmluY2x1ZGVzKFwiY2xpY2tcIikpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kaWFsb2dJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy52aWV3Q29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICAgICAgICAgIGRhdGEuaXNMb2NrZWRPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0luc3RhbmNlID0gYXdhaXQgb3BlblRvb2x0aXAodGhpcy5kaWFsb2csIHRoaXMudGVtcGxhdGUsIHRoaXMuZGF0YSwgZWwsIHRoaXMuY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNDdXJzb3JPdmVyVGFyZ2V0ID0gdHJ1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBjdXJzb3IgbW92ZWQgYXdheSBpbiB0aGUgdGltZVxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzQ3Vyc29yT3ZlclRhcmdldClcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaWFsb2dJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy52aWV3Q29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0luc3RhbmNlID0gYXdhaXQgb3BlblRvb2x0aXAodGhpcy5kaWFsb2csIHRoaXMudGVtcGxhdGUsIHRoaXMuZGF0YSwgZWwsIHRoaXMuY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdGhpcy5jb25maWcuZGVsYXkgPz8gMjUwKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVybGVhdmUnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBhc3luYyBvblBvaW50ZXJMZWF2ZShldnQ6IFBvaW50ZXJFdmVudCkge1xuICAgICAgICB0aGlzLmlzQ3Vyc29yT3ZlclRhcmdldCA9IGZhbHNlO1xuICAgIH1cbn1cblxuLy8gSGVscGVyIHRvIG9wZW4gdGhlIGNvbnRleHQgbWVudSB3aXRob3V0IHVzaW5nIHRoZSBkaXJlY3RpdmUuXG5leHBvcnQgY29uc3Qgb3BlblRvb2x0aXAgPSBhc3luYyAoXG4gICAgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT4sXG4gICAgZGF0YTogYW55LFxuICAgIGVsOiBIVE1MRWxlbWVudCxcbiAgICBjb25maWc/OiBUb29sdGlwT3B0aW9ucyxcbiAgICBmb2N1c1RyYXAgPSBmYWxzZSxcbiAgICBtYXRQb3B1cE9wdGlvbnM/OiBNYXREaWFsb2dDb25maWc8YW55PlxuKSA9PiB7XG5cbiAgICBjb25zdCByZWN0ID0gYXdhaXQgY2FsY1Rvb2x0aXBCb3VuZHModGVtcGxhdGUsIGRhdGEpO1xuICAgIGNvbnN0IG93bmVyQ29yZHMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBjb3JkcyA9IGdldFBvc2l0aW9uKGVsLCBjb25maWcsIHJlY3QpO1xuICAgIGNvbnN0IHNwZWNpZmljSWQgPSB1bGlkKCk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzID0+IHtcbiAgICAgICAgZGlhbG9nLm9wZW4oVG9vbHRpcENvbXBvbmVudCwge1xuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmb2N1c1RyYXAsXG4gICAgICAgICAgICByZXN0b3JlRm9jdXM6IGZvY3VzVHJhcCxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBkaWFsb2csXG4gICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgY29uZmlnOiBjb25maWcsXG4gICAgICAgICAgICAgICAgb3duZXJDb3Jkczogb3duZXJDb3JkcyxcbiAgICAgICAgICAgICAgICBzZWxmQ29yZHM6IGNvcmRzLFxuICAgICAgICAgICAgICAgIGlkOiBzcGVjaWZpY0lkXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogW1wibmd4LXRvb2x0aXBcIiwgJ25neC0nICsgc3BlY2lmaWNJZF0uY29uY2F0KGNvbmZpZz8uY3VzdG9tQ2xhc3MgfHwgW10pLFxuICAgICAgICAgICAgcG9zaXRpb246IGNvcmRzLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgLi4ubWF0UG9wdXBPcHRpb25zXG4gICAgICAgIH0pXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgLnN1YnNjcmliZShzID0+IHtcbiAgICAgICAgICAgICAgICByZXMocyk7XG4gICAgICAgICAgICB9KVxuICAgIH0pIGFzIFByb21pc2U8YW55Pjtcbn07XG4iXX0=
|
|
@@ -145,7 +145,9 @@ export class CommandPaletteService {
|
|
|
145
145
|
position: {
|
|
146
146
|
top: "8px"
|
|
147
147
|
},
|
|
148
|
-
data: {
|
|
148
|
+
data: {
|
|
149
|
+
contextElement: document.activeElement
|
|
150
|
+
}
|
|
149
151
|
});
|
|
150
152
|
}
|
|
151
153
|
/**
|
|
@@ -200,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
200
202
|
providedIn: 'root'
|
|
201
203
|
}]
|
|
202
204
|
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.LazyLoaderService }] });
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1wYWxldHRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3NlcnZpY2VzL2NvbW1hbmQtcGFsZXR0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOzs7O0FBRWxHLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsQ0FBQztBQTZIdEUsTUFBTSxPQUFPLHFCQUFxQjtJQUs5QixZQUNxQixNQUFpQixFQUNqQixVQUE2QjtRQUQ3QixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBTDFDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQU92QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQzdCLDREQUE0RDtZQUM1RCxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXpDLHNEQUFzRDtnQkFDdEQsa0RBQWtEO2dCQUNsRCw2QkFBNkI7Z0JBQzdCLHlEQUF5RDtn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QUMsQ0FBQztTQUN0RjtJQUNMLENBQUM7SUFPRCxxQkFBcUIsQ0FBQyxVQUF5QyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQTJCLEVBQUU7UUFDdkcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDbEIsT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDM0I7UUFFRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxxQkFBcUIsQ0FBQyxVQUF1QixRQUFRLENBQUMsSUFBSSxFQUFFLFVBQTJCLEVBQUU7UUFDckYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ0gscUJBQXFCLENBQUMsVUFBdUIsUUFBUSxDQUFDLElBQUk7UUFDdEQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JFLENBQUM7OEdBak9RLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRmxCLE1BQU07OzJGQUVULHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBIb3N0TGlzdGVuZXIsIFR5cGUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IENvbnNvbGVMb2dnZXIsIExvZ0ljb24gfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBMYXp5TG9hZGVyU2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvbGF6eS1sb2FkZXIvbGF6eS1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tYW5kUGFsZXR0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29tbWFuZC1wYWxldHRlL2NvbW1hbmQtcGFsZXR0ZS5jb21wb25lbnQnO1xuXG5jb25zdCB7IGxvZywgd2FybiwgZXJyIH0gPSBDb25zb2xlTG9nZ2VyKFwiQ29tbWFuZFBhbGV0dGVcIiwgXCIjMjE5NmYzXCIpO1xuXG50eXBlIEtleUNvZGUgPSBcIkJhY2tzcGFjZVwiIHwgXCJUYWJcIiB8IFwiRW50ZXJcIiB8IFwiU2hpZnRMZWZ0XCIgfCBcIlNoaWZ0UmlnaHRcIlxuICAgIHwgXCJDb250cm9sTGVmdFwiIHwgXCJDb250cm9sUmlnaHRcIiB8IFwiQWx0TGVmdFwiIHwgXCJBbHRSaWdodFwiIHwgXCJQYXVzZVwiIHwgXCJDYXBzTG9ja1wiXG4gICAgfCBcIkVzY2FwZVwiIHwgXCJTcGFjZVwiIHwgXCJQYWdlVXBcIiB8IFwiUGFnZURvd25cIiB8IFwiRW5kXCIgfCBcIkhvbWVcIiB8IFwiQXJyb3dMZWZ0XCJcbiAgICB8IFwiQXJyb3dVcFwiIHwgXCJBcnJvd1JpZ2h0XCIgfCBcIkFycm93RG93blwiIHwgXCJQcmludFNjcmVlblwiIHwgXCJJbnNlcnRcIiB8IFwiRGVsZXRlXCJcbiAgICB8IFwiTWV0YUxlZnRcIiB8IFwiTWV0YVJpZ2h0XCIgfCBcIkNvbnRleHRNZW51XCIgfCBcIk51bXBhZDBcIiB8IFwiTnVtcGFkMVwiIHwgXCJOdW1wYWQyXCJcbiAgICB8IFwiTnVtcGFkM1wiIHwgXCJOdW1wYWQ0XCIgfCBcIk51bXBhZDVcIiB8IFwiTnVtcGFkNlwiIHwgXCJOdW1wYWQ3XCIgfCBcIk51bXBhZDhcIlxuICAgIHwgXCJOdW1wYWQ5XCIgfCBcIk51bXBhZE11bHRpcGx5XCIgfCBcIk51bXBhZEFkZFwiIHwgXCJOdW1wYWRTdWJ0cmFjdFwiXG4gICAgfCBcIk51bXBhZERlY2ltYWxcIiB8IFwiTnVtcGFkRGl2aWRlXCJcbiAgICB8IFwiRjFcIiB8IFwiRjJcIiB8IFwiRjNcIiB8IFwiRjRcIiB8IFwiRjVcIiB8IFwiRjZcIiB8IFwiRjdcIiB8IFwiRjhcIiB8IFwiRjlcIiB8IFwiRjEwXCIgfCBcIkYxMVwiIHwgXCJGMTJcIlxuICAgIHwgXCJOdW1Mb2NrXCIgfCBcIlNjcm9sbExvY2tcIiB8IFwiU2VtaWNvbG9uXCIgfCBcIkVxdWFsXCIgfCBcIkNvbW1hXCIgfCBcIk1pbnVzXCJcbiAgICB8IFwiUGVyaW9kXCIgfCBcIlNsYXNoXCIgfCBcIkJhY2txdW90ZVwiIHwgXCJCcmFja2V0TGVmdFwiIHwgXCJCYWNrc2xhc2hcIlxuICAgIHwgXCJCcmFja2V0UmlnaHRcIiB8IFwiUXVvdGVcIiB8IFwiYmFja3NwYWNlXCIgfCBcInRhYlwiIHwgXCJlbnRlclwiIHwgXCJzaGlmdGxlZnRcIlxuICAgIHwgXCJzaGlmdHJpZ2h0XCIgfCBcImNvbnRyb2xsZWZ0XCIgfCBcImNvbnRyb2xyaWdodFwiIHwgXCJhbHRsZWZ0XCIgfCBcImFsdHJpZ2h0XCJcbiAgICB8IFwicGF1c2VcIiB8IFwiY2Fwc2xvY2tcIiB8IFwiZXNjYXBlXCIgfCBcInNwYWNlXCIgfCBcInBhZ2V1cFwiIHwgXCJwYWdlZG93blwiIHwgXCJlbmRcIlxuICAgIHwgXCJob21lXCIgfCBcImFycm93bGVmdFwiIHwgXCJhcnJvd3VwXCIgfCBcImFycm93cmlnaHRcIiB8IFwiYXJyb3dkb3duXCIgfCBcInByaW50c2NyZWVuXCJcbiAgICB8IFwiaW5zZXJ0XCIgfCBcImRlbGV0ZVwiIHwgXCJtZXRhbGVmdFwiIHwgXCJtZXRhcmlnaHRcIiB8IFwiY29udGV4dG1lbnVcIlxuICAgIHwgXCJudW1wYWQwXCIgfCBcIm51bXBhZDFcIiB8IFwibnVtcGFkMlwiIHwgXCJudW1wYWQzXCIgfCBcIm51bXBhZDRcIiB8IFwibnVtcGFkNVwiXG4gICAgfCBcIm51bXBhZDZcIiB8IFwibnVtcGFkN1wiIHwgXCJudW1wYWQ4XCIgfCBcIm51bXBhZDlcIiB8IFwibnVtcGFkbXVsdGlwbHlcIiB8IFwibnVtcGFkYWRkXCJcbiAgICB8IFwibnVtcGFkc3VidHJhY3RcIiB8IFwibnVtcGFkZGVjaW1hbFwiIHwgXCJudW1wYWRkaXZpZGVcIlxuICAgIHwgXCJmMVwiIHwgXCJmMlwiIHwgXCJmM1wiIHwgXCJmNFwiIHwgXCJmNVwiIHwgXCJmNlwiIHwgXCJmN1wiIHwgXCJmOFwiIHwgXCJmOVwiIHwgXCJmMTBcIiB8IFwiZjExXCIgfCBcImYxMlwiXG4gICAgfCBcIm51bWxvY2tcIiB8IFwic2Nyb2xsbG9ja1wiIHwgXCJzZW1pY29sb25cIiB8IFwiZXF1YWxcIiB8IFwiY29tbWFcIiB8IFwibWludXNcIiB8IFwicGVyaW9kXCJcbiAgICB8IFwic2xhc2hcIiB8IFwiYmFja3F1b3RlXCIgfCBcImJyYWNrZXRsZWZ0XCIgfCBcImJhY2tzbGFzaFwiIHwgXCJicmFja2V0cmlnaHRcIiB8IFwicXVvdGVcIlxuICAgIHwgXCJBXCIgfCBcIkJcIiB8IFwiQ1wiIHwgXCJEXCIgfCBcIkVcIiB8IFwiRlwiIHwgXCJHXCIgfCBcIkhcIiB8IFwiSVwiIHwgXCJKXCIgfCBcIktcIiB8IFwiTFwiIHwgXCJNXCJcbiAgICB8IFwiTlwiIHwgXCJPXCIgfCBcIlBcIiB8IFwiUVwiIHwgXCJSXCIgfCBcIlNcIiB8IFwiVFwiIHwgXCJVXCIgfCBcIlZcIiB8IFwiV1wiIHwgXCJYXCIgfCBcIllcIiB8IFwiWlwiXG4gICAgfCBcImFcIiB8IFwiYlwiIHwgXCJjXCIgfCBcImRcIiB8IFwiZVwiIHwgXCJmXCIgfCBcImdcIiB8IFwiaFwiIHwgXCJpXCIgfCBcImpcIiB8IFwia1wiIHwgXCJsXCIgfCBcIm1cIlxuICAgIHwgXCJuXCIgfCBcIm9cIiB8IFwicFwiIHwgXCJxXCIgfCBcInJcIiB8IFwic1wiIHwgXCJ0XCIgfCBcInVcIiB8IFwidlwiIHwgXCJ3XCIgfCBcInhcIiB8IFwieVwiIHwgXCJ6XCI7XG5cbi8vIGN0cmwrYWx0K21ldGErc2hpZnRcbnR5cGUgS2V5UHJlZml4ID1cbiAgICBgY3RybGAgfFxuICAgIGBjdHJsK2FsdGAgfFxuICAgIGBjdHJsK2FsdCtzaGlmdGAgfFxuICAgIGBjdHJsK2FsdCtzaGlmdCttZXRhYCB8XG4gICAgYGN0cmwrYWx0K21ldGFgIHxcbiAgICBgY3RybCtzaGlmdGAgfFxuICAgIGBjdHJsK3NoaWZ0K21ldGFgIHxcbiAgICBgY3RybCttZXRhYCB8XG4gICAgYGFsdGAgfFxuICAgIGBhbHQrc2hpZnRgIHxcbiAgICBgYWx0K3NoaWZ0K21ldGFgIHxcbiAgICBgYWx0K21ldGFgIHxcbiAgICBgc2hpZnRgIHxcbiAgICBgc2hpZnQrbWV0YWAgfFxuICAgIGBtZXRhYFxuXG5leHBvcnQgdHlwZSBLZXliaW5kRXZlbnQgPSAoZTogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIEtleWJpbmRDb2RlID0gYCR7S2V5UHJlZml4fSske0tleUNvZGV9YCB8IEtleUNvZGU7XG5cblxuXG5leHBvcnQgdHlwZSBDb21tYW5kQWN0aW9uPFQgPSBhbnk+ID0ge1xuICAgIC8qKlxuICAgICAqIFRoZSBub24tbW9kaWZpZXIga2V5KHMpIHRoYXQgbXVzdCBiZSBwcmVzc2VkIGZvciB0aGUgZXZlbnQgdG8gZmlyZS5cbiAgICAgKi9cbiAgICBzaG9ydGN1dEtleT86IEtleWJpbmRDb2RlIHwgS2V5YmluZENvZGVbXSxcblxuICAgIC8qKlxuICAgICAqIEFjdGlvbiB0aGF0IGlzIGludm9rZWQgd2hlbiB0aGUga2V5Ym9hcmQgc2hvcnRjdXQgaXMgcHJlc3NlZCBvciB0aGUgaXRlbVxuICAgICAqIGlzIGFjdGl2YXRlZCBpbiB0aGUgR1VJIG1lbnVcbiAgICAgKiBJZiB0aGUgR1VJIG1lbnUgaXMgb3BlbiwgaXQgd2lsbCBzaG93IGEgc3Bpbm5lciBpZiB0aGUgYWN0aW9uIHJldHVybnMgYSBgUHJvbWlzZWBcbiAgICAgKi9cbiAgICBhY3Rpb24/OiAoZXZ0OiBLZXlib2FyZEV2ZW50LCBkYXRhPzogVCkgPT4gUHJvbWlzZTxhbnk+IHwgYW55LFxuXG4gICAgLyoqXG4gICAgICogQXJiaXRyYXJ5IGRhdGEgb2JqZWN0IHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBhY3Rpb25cbiAgICAgKi9cbiAgICBkYXRhPzogVCxcblxuICAgIC8qKlxuICAgICAqIExhYmVsIGluIHRoZSBjb21tYW5kIHBhbGV0dGUgcG9wdXBcbiAgICAgKi9cbiAgICBsYWJlbD86IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIEtleXdvcmRzIHRoYXQgY2FuIGhlbHAgcGljayB0aGlzIGNvbW1hbmRcbiAgICAgKi9cbiAgICBrZXl3b3Jkcz86IHN0cmluZyB8IHN0cmluZ1tdLFxuXG4gICAgLyoqXG4gICAgICogRGVzY3JpcHRpb24gZm9yIHRoZSBwb3B1cFxuICAgICAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogVGhlIHJvb3QgYW5jZXN0b3IgZWxlbWVudCBvZiB0aGUgYWN0aW9uXG4gICAgICogKFRoaXMgYWxsb3dzIHNjb3BpbmcgY29tbWFuZHMgdG8gc3BlY2lmaWMgSFRNTCBlbGVtZW50cylcbiAgICAgKiBUaGlzIHJlcXVpcmVzIHRoYXQgdGhlIGV2ZW50IHRhcmdldCBtdXN0IGJlIGEgZGVzY2VuZGFudFxuICAgICAqXG4gICAgICogSWYgdGhlcmUgYXJlIG11bHRpcGxlIG1hdGNoaW5nIGRlc2NlbmRhbnRzLCBvbmx5XG4gICAgICogdGhlIGZ1cnRoZXN0IGRlc2NlbmRhbnQgd2lsbCBiZSBmaXJlZFxuICAgICAqL1xuICAgIHJvb3RFbGVtZW50PzogSFRNTEVsZW1lbnQsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIHRoZSByb290LiBVc2VkIGZvciB0aGUgVUkgY29udHJvbCBhbmQgZGVidWdnaW5nLlxuICAgICAqL1xuICAgIHJvb3ROYW1lPzogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogQ29udHJvbCB3aGV0aGVyIHRoaXMgY29tbWFuZCBhY3Rpb24gaXMgdmlzaWJsZSBpbiB0aGUgcG9wdXAgY29tbWFuZFxuICAgICAqIHBhbGV0dGUgR1VJLlxuICAgICAqL1xuICAgIHZpc2libGVJbkxpc3Q/OiBib29sZWFuLFxuXG4gICAgLyoqXG4gICAgICogRW5hYmxlIHNlbGVjdGluZyBhbiBpdGVtIHRvIHNob3cgYSBsaXN0IG9mIHN1Yi1pdGVtc1xuICAgICAqL1xuICAgIHN1Yk1lbnU/OiBDb21tYW5kQWN0aW9uPFQ+W10gfCAoKCkgPT4gUHJvbWlzZTxDb21tYW5kQWN0aW9uPFQ+W10+KSB8ICgoKSA9PiBDb21tYW5kQWN0aW9uPFQ+W10pXG5cbn07XG5cbnR5cGUgQ29tbWFuZEJsb2NrID0ge1xuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIGFjdGlvbnM6IENvbW1hbmRBY3Rpb25bXTtcbn07XG5cbmV4cG9ydCB0eXBlIENvbW1hbmRQYWxldHRlT3B0aW9ucyA9IHtcbiAgICBrZXliaW5kOiBLZXliaW5kQ29kZVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbW1hbmRQYWxldHRlU2VydmljZSB7XG5cbiAgICBwcml2YXRlIGNvbW1hbmRCbG9ja3M6IENvbW1hbmRCbG9ja1tdID0gW107XG4gICAgcHJpdmF0ZSBpbnRlcnZhbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxhenlMb2FkZXI6IExhenlMb2FkZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCAoZXZ0KSA9PiB0aGlzLm9uS2V5RG93bihldnQpKTtcblxuICAgICAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgLy8gR28gYmFja3dhcmRzIHNpbmNlIHdlJ3JlIHNwbGljaW5nIGl0ZW1zIG91dCBvZiB0aGUgYXJyYXkuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5jb21tYW5kQmxvY2tzLmxlbmd0aDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBsZXQgY29tbWFuZEJsb2NrID0gdGhpcy5jb21tYW5kQmxvY2tzW2ldO1xuXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgaW5kZXggaXMgc29tZWhvdyBudWxsLCByaXAgaXQgb3V0IG9mXG4gICAgICAgICAgICAgICAgLy8gdGhlIGFycmF5IGFuZCB3YWl0IGZvciBjbGVhbnVwIHRvIHRyaWdnZXIgYWdhaW5cbiAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHJlc3Qgb2YgdGhlIGFycmF5LlxuICAgICAgICAgICAgICAgIC8vIFRPRE86IENvdWxkIHRoaXMgbGVhZCB0byBsZWFrcyB3aGVyZSB0aGluZ3MgYXQgdGhlIGVuZFxuICAgICAgICAgICAgICAgIC8vIG5ldmVyIGdldCBjbGVhbmVkP1xuICAgICAgICAgICAgICAgIGlmIChjb21tYW5kQmxvY2sgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbW1hbmRCbG9ja3Muc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGVsZW1lbnQgaGFzIGJlZW4gZGlzY29ubmVjdGVkIGZyb20gdGhlIERPTSwgd2Ugd2lsbFxuICAgICAgICAgICAgICAgIC8vIHRyZWF0IGl0IGFzIGhhdmluZyBiZWVuIHBlcm1hbmVudGx5IHJlbW92ZWQuXG4gICAgICAgICAgICAgICAgLy8gVE9ETzogQ291bGQgdGhpcyBldmVyIGNhdXNlIHVuaW50ZW5kZWQgY29uc2VxdWVuY2VzP1xuICAgICAgICAgICAgICAgIGlmICghY29tbWFuZEJsb2NrPy5lbGVtZW50LmlzQ29ubmVjdGVkKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbW1hbmRCbG9ja3Muc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCA1ICogNjAgKiAxMDAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29tbWFuZEJsb2NrcyhlbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFBhdGg6IEhUTUxFbGVtZW50W10gPSBbZWxlbWVudF07XG4gICAgICAgIGxldCBjdXJyZW50VGFyZ2V0OiBIVE1MRWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGVsZW1lbnRQYXRoLnVuc2hpZnQoY3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXQucGFyZW50RWxlbWVudCk7XG4gICAgICAgIH0gd2hpbGUgKGN1cnJlbnRUYXJnZXQucGFyZW50RWxlbWVudCk7XG5cbiAgICAgICAgLy8gT3JkZXJlZCBtYXRjaGluZyBjb21tYW5kIGJsb2NrcywgY2xvc2VzdCBmaXJzdFxuICAgICAgICBjb25zdCBtYXRjaGluZ0NvbW1hbmRCbG9ja3M6IENvbW1hbmRCbG9ja1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBlbGVtZW50UGF0aCkge1xuICAgICAgICAgICAgY29uc3QgY29tbWFuZEJsb2NrID0gdGhpcy5jb21tYW5kQmxvY2tzLmZpbmQoY2IgPT4gY2IuZWxlbWVudCA9PSBlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChjb21tYW5kQmxvY2spIHtcbiAgICAgICAgICAgICAgICBtYXRjaGluZ0NvbW1hbmRCbG9ja3MudW5zaGlmdChjb21tYW5kQmxvY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoaW5nQ29tbWFuZEJsb2NrcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUga2V5ZG93biBldmVudHNcbiAgICAgKlxuICAgICAqIElmIGFuIGV2ZW50IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgRE9NIHRyZWUsIHdlIGRvbid0IG5lZWRcbiAgICAgKiB0byBleHBsaWNpdGx5IHJlbW92ZSB0aGUgYmluZGluZ3MsIGFzIHRoZXkgd2lsbCBuZXZlciBmaXJlXG4gICAgICpcbiAgICAgKiBXZSBwZXJpb2RpY2FsbHkgY2hlY2sgYW5kIHJlbW92ZSB1bmNvbm5lY3RlZCBjb21tYW5kIGJsb2Nrc1xuICAgICAqL1xuICAgIHByaXZhdGUgb25LZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCBtYXRjaGluZ0NvbW1hbmRCbG9ja3MgPSB0aGlzLmdldENvbW1hbmRCbG9ja3MoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICAgICAgLy8gU3RyaW5nIGluIGZvcm1hdCBgY3RybCthbHQrRmAsIGBjdHJsK0ZgIGV0Yy5cbiAgICAgICAgY29uc3Qga2V5ID0gW1xuICAgICAgICAgICAgZXZ0LmN0cmxLZXkgPyBcImN0cmxcIiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGV2dC5hbHRLZXkgPyBcImFsdFwiIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZXZ0LnNoaWZ0S2V5ID8gXCJzaGlmdFwiIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZXZ0Lm1ldGFLZXkgPyBcIm1ldGFcIiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGV2dC5jb2RlLnN0YXJ0c1dpdGgoXCJLZXlcIikgPyBldnQua2V5IDogZXZ0LmNvZGVcbiAgICAgICAgXS5maWx0ZXIoYSA9PiBhKS5qb2luKCcrJykudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNvbW1hbmRCbG9jayBvZiBtYXRjaGluZ0NvbW1hbmRCbG9ja3MpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IGNvbW1hbmRCbG9jay5hY3Rpb25zLmZpbmQoYSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYS5zaG9ydGN1dEtleSlcbiAgICAgICAgICAgICAgICAgICAgPyBhLnNob3J0Y3V0S2V5LmluY2x1ZGVzKGtleSBhcyBhbnkpXG4gICAgICAgICAgICAgICAgICAgIDogYS5zaG9ydGN1dEtleSA9PSBrZXkgYXMgYW55XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGFjdGlvbikge1xuICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlQWN0aW9uKGFjdGlvbik7XG5cbiAgICAgICAgICAgICAgICAvLyBFeGVjdXRlIHRoZSBhY3Rpb24gYW5kIG1vdmUgb24uXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gS2VlcCBjaGVja2luZyBmb3IgbWF0Y2hpbmcgYWN0aW9uc1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgZXhlY3V0aW9uIHJlYWNoZXMgdGhpcyBwb2ludCwgdGhlcmUgd2VyZSBubyBtYXRjaGluZyBhY3Rpb25zIG9uIHRoZVxuICAgICAgICAvLyBwYXRoIG9mIGVsZW1lbnRzIHRoYXQgd2VyZSByZWdpc3RlcmVkLlxuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQ29tbWFuZChlbGVtZW50OiBIVE1MRWxlbWVudCwgYWN0aW9uOiBDb21tYW5kQWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmRCbG9jayA9IHRoaXMuY29tbWFuZEJsb2Nrcy5maW5kKGIgPT4gYi5lbGVtZW50ID09IGVsZW1lbnQpID8/ICgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYiA9IHsgZWxlbWVudCwgYWN0aW9uczogW10gfTtcbiAgICAgICAgICAgIHRoaXMuY29tbWFuZEJsb2Nrcy5wdXNoKGNiKTtcbiAgICAgICAgICAgIHJldHVybiBjYjtcbiAgICAgICAgfSkoKTtcblxuICAgICAgICAvLyBUaGlzIGlzIGxpa2VseSBhIGR1cGxpY2F0ZSBlbnRyeVxuICAgICAgICBpZiAoY29tbWFuZEJsb2NrLmFjdGlvbnMuZmluZChhID0+IGEuc2hvcnRjdXRLZXkgJiYgYS5zaG9ydGN1dEtleSA9PSBhY3Rpb24uc2hvcnRjdXRLZXkpKSB7XG4gICAgICAgICAgICB3YXJuKGBJbnNlcnRpbmcgZHVwbGljYXRlIGFjdGlvbiBvbiBlbGVtZW50YCwgeyBlbGVtZW50LCBhY3Rpb24gfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsb2coTG9nSWNvbi5jaXJjbGVfYmx1ZSwgYEluc2VydGVkIGFjdGlvbmAsIGFjdGlvbilcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1ha2UgdGhlIHNob3J0Y3V0IGtleXMgbG93ZXJjYXNlIHNvIGNhc2Ugc2Vuc2l0aXZpdHkgZG9lc24ndCBzY2FscCBzb21lb25lXG4gICAgICAgIGlmIChhY3Rpb24uc2hvcnRjdXRLZXkpIHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFjdGlvbi5zaG9ydGN1dEtleSkpXG4gICAgICAgICAgICAgICAgYWN0aW9uLnNob3J0Y3V0S2V5ID0gYWN0aW9uLnNob3J0Y3V0S2V5Lm1hcChrID0+IGsudG9Mb3dlckNhc2UoKSkgYXMgYW55O1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGFjdGlvbi5zaG9ydGN1dEtleSA9IGFjdGlvbi5zaG9ydGN1dEtleS50b0xvd2VyQ2FzZSgpIGFzIGFueTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbW1hbmRCbG9jay5hY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUNvbW1hbmQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGFjdGlvbjogQ29tbWFuZEFjdGlvbiB8IHN0cmluZykge1xuICAgICAgICBjb25zdCBjb21tYW5kQmxvY2sgPSB0aGlzLmNvbW1hbmRCbG9ja3MuZmluZChiID0+IGIuZWxlbWVudCA9PSBlbGVtZW50KSA/PyB7IGVsZW1lbnQsIGFjdGlvbnM6IFtdIH07XG4gICAgICAgIGNvbnN0IGFjdGlvbkluZGV4ID0gY29tbWFuZEJsb2NrPy5hY3Rpb25zLmZpbmRJbmRleChhID0+IHR5cGVvZiBhY3Rpb24gPT0gXCJzdHJpbmdcIiA/IGEuc2hvcnRjdXRLZXkgPT0gYWN0aW9uIDogYSA9PSBhY3Rpb24pO1xuXG4gICAgICAgIGlmICghY29tbWFuZEJsb2NrKSB7XG4gICAgICAgICAgICBlcnIoTG9nSWNvbi53YXJuaW5nLCBgQ2Fubm90IHJlbW92ZSBjb21tYW5kOiBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW55IGNvbW1hbmRzIHJlZ2lzdGVyZWRgLCB7IGVsZW1lbnQsIGFjdGlvbiB9KVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGFjdGlvbkluZGV4ID09IC0xKSB7XG4gICAgICAgICAgICB3YXJuKExvZ0ljb24ud2FybmluZywgYENhbm5vdCByZW1vdmUgY29tbWFuZDogbm90IHByZXNlbnQgaW4gbGlzdGAsIHsgZWxlbWVudCwgYWN0aW9uIH0pXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb21tYW5kQmxvY2suYWN0aW9ucy5zcGxpY2UoYWN0aW9uSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cbiAgICBpbml0aWFsaXplKG9wdGlvbnM6IENvbW1hbmRQYWxldHRlT3B0aW9ucykge1xuICAgICAgICB0aGlzLmF0dGFjaEVsZW1lbnRDb21tYW5kcyhbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2hvcnRjdXRLZXk6IG9wdGlvbnMua2V5YmluZCxcbiAgICAgICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMub3BlblBhbGV0dGUoKSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJPcGVuIHRoZSBjb21tYW5kIHBhbGV0dGVcIixcbiAgICAgICAgICAgICAgICBrZXl3b3JkczogW1wiY29tbWFuZFwiLCBcInByb21wdFwiLCBcImNvbnNvbGVcIiwgXCJhY3Rpb25zXCJdLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIkNvbW1hbmQgUGFsZXR0ZVwiLFxuICAgICAgICAgICAgICAgIHZpc2libGVJbkxpc3Q6IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgIF0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW4gdGhlIGNvbW1hbmQgcGFsZXR0ZVxuICAgICAqL1xuICAgIG9wZW5QYWxldHRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2cub3BlbihDb21tYW5kUGFsZXR0ZUNvbXBvbmVudCwge1xuICAgICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgICAgICB0b3A6IFwiOHB4XCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhOiB7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGljIGhlbHBlciB0byBpbnZva2UgYW4gYWN0aW9uLlxuICAgICAqL1xuICAgIGludm9rZUFjdGlvbihhY3Rpb246IENvbW1hbmRBY3Rpb24sIGFyZ3M/KSB7XG4gICAgICAgIGNvbnN0IGZuID0gYWN0aW9uLmFjdGlvbjtcbiAgICAgICAgaWYgKHR5cGVvZiBmbiA9PSAnZnVuY3Rpb24nKSB7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gZm4oYXJncyk7XG5cbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgcHJvbWlzZXMgc28gdGhhdCB0aGUgR1VJIGNhbiBzaG93IHNwaW5uZXJzIGZvciB0aGVtXG4gICAgICAgICAgICAgICAgaWYgKHJlcyBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChleCkge1xuICAgICAgICAgICAgICAgIGVycihMb2dJY29uLmJvbWIsIGBFeGVjdXRpbmcgYWN0aW9uIHRocmV3IGFuIGVycm9yYCwgeyBhY3Rpb24gfSwgZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgd2FybihMb2dJY29uLndhcm5pbmcsIGBDYW5ub3QgZXhlY3V0ZSBhY3Rpb24sIHR5cGUgaXMgbm90IFwiZnVuY3Rpb25cImAsIHsgYWN0aW9uIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXR0YWNoIGNvbW1hbmRzIHRvIGFuIEVsZW1lbnQgYW5kIGl0J3Mgc3VidHJlZVxuICAgICAqL1xuICAgIGF0dGFjaEVsZW1lbnRDb21tYW5kcyhhY3Rpb25zOiBDb21tYW5kQWN0aW9uW10pXG4gICAgYXR0YWNoRWxlbWVudENvbW1hbmRzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBhY3Rpb25zOiBDb21tYW5kQWN0aW9uW10pXG4gICAgYXR0YWNoRWxlbWVudENvbW1hbmRzKGVsZW1lbnQ6IENvbW1hbmRBY3Rpb25bXSB8IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuYm9keSwgYWN0aW9uczogQ29tbWFuZEFjdGlvbltdID0gW10pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIGFjdGlvbnMgPSBlbGVtZW50O1xuICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmJvZHk7XG4gICAgICAgIH1cblxuICAgICAgICBhY3Rpb25zLmZvckVhY2goYSA9PiB0aGlzLmFkZENvbW1hbmQoZWxlbWVudCBhcyBhbnksIGEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRhY2ggc3BlY2lmaWVkIGNvbW1hbmRzIGZyb20gYW4gRWxlbWVudCBzdWJ0cmVlXG4gICAgICovXG4gICAgZGV0YWNoRWxlbWVudENvbW1hbmRzKGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuYm9keSwgYWN0aW9uczogQ29tbWFuZEFjdGlvbltdID0gW10pIHtcbiAgICAgICAgYWN0aW9ucy5mb3JFYWNoKGEgPT4gdGhpcy5yZW1vdmVDb21tYW5kKGVsZW1lbnQsIGEpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdGhlIGxpc3Qgb2YgcmVnaXN0ZXJlZCBjb21tYW5kcyB1bmRlciBhIGdpdmVuIGVsZW1lbnRcbiAgICAgKi9cbiAgICBnZXRSZWdpc3RlcmVkQ29tbWFuZHMoZWxlbWVudDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbW1hbmRCbG9ja3MoZWxlbWVudCkubWFwKGMgPT4gYy5hY3Rpb25zKS5mbGF0KCk7XG4gICAgfVxufVxuIl19
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1wYWxldHRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3NlcnZpY2VzL2NvbW1hbmQtcGFsZXR0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDOzs7O0FBRWxHLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsQ0FBQztBQTZIdEUsTUFBTSxPQUFPLHFCQUFxQjtJQUs5QixZQUNxQixNQUFpQixFQUNqQixVQUE2QjtRQUQ3QixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBTDFDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQU92QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQzdCLDREQUE0RDtZQUM1RCxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXpDLHNEQUFzRDtnQkFDdEQsa0RBQWtEO2dCQUNsRCw2QkFBNkI7Z0JBQzdCLHlEQUF5RDtn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QUUsK0NBQStDLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3RGO0lBQ0wsQ0FBQztJQU9ELHFCQUFxQixDQUFDLFVBQXlDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBMkIsRUFBRTtRQUN2RyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEIsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUNsQixPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztTQUMzQjtRQUVELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNILHFCQUFxQixDQUFDLFVBQXVCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBMkIsRUFBRTtRQUNyRixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxxQkFBcUIsQ0FBQyxVQUF1QixRQUFRLENBQUMsSUFBSTtRQUN0RCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckUsQ0FBQzs4R0FqT1EscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGbEIsTUFBTTs7MkZBRVQscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEhvc3RMaXN0ZW5lciwgVHlwZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ29uc29sZUxvZ2dlciwgTG9nSWNvbiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IExhenlMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9sYXp5LWxvYWRlci9sYXp5LWxvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1hbmRQYWxldHRlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb21tYW5kLXBhbGV0dGUvY29tbWFuZC1wYWxldHRlLmNvbXBvbmVudCc7XG5cbmNvbnN0IHsgbG9nLCB3YXJuLCBlcnIgfSA9IENvbnNvbGVMb2dnZXIoXCJDb21tYW5kUGFsZXR0ZVwiLCBcIiMyMTk2ZjNcIik7XG5cbnR5cGUgS2V5Q29kZSA9IFwiQmFja3NwYWNlXCIgfCBcIlRhYlwiIHwgXCJFbnRlclwiIHwgXCJTaGlmdExlZnRcIiB8IFwiU2hpZnRSaWdodFwiXG4gICAgfCBcIkNvbnRyb2xMZWZ0XCIgfCBcIkNvbnRyb2xSaWdodFwiIHwgXCJBbHRMZWZ0XCIgfCBcIkFsdFJpZ2h0XCIgfCBcIlBhdXNlXCIgfCBcIkNhcHNMb2NrXCJcbiAgICB8IFwiRXNjYXBlXCIgfCBcIlNwYWNlXCIgfCBcIlBhZ2VVcFwiIHwgXCJQYWdlRG93blwiIHwgXCJFbmRcIiB8IFwiSG9tZVwiIHwgXCJBcnJvd0xlZnRcIlxuICAgIHwgXCJBcnJvd1VwXCIgfCBcIkFycm93UmlnaHRcIiB8IFwiQXJyb3dEb3duXCIgfCBcIlByaW50U2NyZWVuXCIgfCBcIkluc2VydFwiIHwgXCJEZWxldGVcIlxuICAgIHwgXCJNZXRhTGVmdFwiIHwgXCJNZXRhUmlnaHRcIiB8IFwiQ29udGV4dE1lbnVcIiB8IFwiTnVtcGFkMFwiIHwgXCJOdW1wYWQxXCIgfCBcIk51bXBhZDJcIlxuICAgIHwgXCJOdW1wYWQzXCIgfCBcIk51bXBhZDRcIiB8IFwiTnVtcGFkNVwiIHwgXCJOdW1wYWQ2XCIgfCBcIk51bXBhZDdcIiB8IFwiTnVtcGFkOFwiXG4gICAgfCBcIk51bXBhZDlcIiB8IFwiTnVtcGFkTXVsdGlwbHlcIiB8IFwiTnVtcGFkQWRkXCIgfCBcIk51bXBhZFN1YnRyYWN0XCJcbiAgICB8IFwiTnVtcGFkRGVjaW1hbFwiIHwgXCJOdW1wYWREaXZpZGVcIlxuICAgIHwgXCJGMVwiIHwgXCJGMlwiIHwgXCJGM1wiIHwgXCJGNFwiIHwgXCJGNVwiIHwgXCJGNlwiIHwgXCJGN1wiIHwgXCJGOFwiIHwgXCJGOVwiIHwgXCJGMTBcIiB8IFwiRjExXCIgfCBcIkYxMlwiXG4gICAgfCBcIk51bUxvY2tcIiB8IFwiU2Nyb2xsTG9ja1wiIHwgXCJTZW1pY29sb25cIiB8IFwiRXF1YWxcIiB8IFwiQ29tbWFcIiB8IFwiTWludXNcIlxuICAgIHwgXCJQZXJpb2RcIiB8IFwiU2xhc2hcIiB8IFwiQmFja3F1b3RlXCIgfCBcIkJyYWNrZXRMZWZ0XCIgfCBcIkJhY2tzbGFzaFwiXG4gICAgfCBcIkJyYWNrZXRSaWdodFwiIHwgXCJRdW90ZVwiIHwgXCJiYWNrc3BhY2VcIiB8IFwidGFiXCIgfCBcImVudGVyXCIgfCBcInNoaWZ0bGVmdFwiXG4gICAgfCBcInNoaWZ0cmlnaHRcIiB8IFwiY29udHJvbGxlZnRcIiB8IFwiY29udHJvbHJpZ2h0XCIgfCBcImFsdGxlZnRcIiB8IFwiYWx0cmlnaHRcIlxuICAgIHwgXCJwYXVzZVwiIHwgXCJjYXBzbG9ja1wiIHwgXCJlc2NhcGVcIiB8IFwic3BhY2VcIiB8IFwicGFnZXVwXCIgfCBcInBhZ2Vkb3duXCIgfCBcImVuZFwiXG4gICAgfCBcImhvbWVcIiB8IFwiYXJyb3dsZWZ0XCIgfCBcImFycm93dXBcIiB8IFwiYXJyb3dyaWdodFwiIHwgXCJhcnJvd2Rvd25cIiB8IFwicHJpbnRzY3JlZW5cIlxuICAgIHwgXCJpbnNlcnRcIiB8IFwiZGVsZXRlXCIgfCBcIm1ldGFsZWZ0XCIgfCBcIm1ldGFyaWdodFwiIHwgXCJjb250ZXh0bWVudVwiXG4gICAgfCBcIm51bXBhZDBcIiB8IFwibnVtcGFkMVwiIHwgXCJudW1wYWQyXCIgfCBcIm51bXBhZDNcIiB8IFwibnVtcGFkNFwiIHwgXCJudW1wYWQ1XCJcbiAgICB8IFwibnVtcGFkNlwiIHwgXCJudW1wYWQ3XCIgfCBcIm51bXBhZDhcIiB8IFwibnVtcGFkOVwiIHwgXCJudW1wYWRtdWx0aXBseVwiIHwgXCJudW1wYWRhZGRcIlxuICAgIHwgXCJudW1wYWRzdWJ0cmFjdFwiIHwgXCJudW1wYWRkZWNpbWFsXCIgfCBcIm51bXBhZGRpdmlkZVwiXG4gICAgfCBcImYxXCIgfCBcImYyXCIgfCBcImYzXCIgfCBcImY0XCIgfCBcImY1XCIgfCBcImY2XCIgfCBcImY3XCIgfCBcImY4XCIgfCBcImY5XCIgfCBcImYxMFwiIHwgXCJmMTFcIiB8IFwiZjEyXCJcbiAgICB8IFwibnVtbG9ja1wiIHwgXCJzY3JvbGxsb2NrXCIgfCBcInNlbWljb2xvblwiIHwgXCJlcXVhbFwiIHwgXCJjb21tYVwiIHwgXCJtaW51c1wiIHwgXCJwZXJpb2RcIlxuICAgIHwgXCJzbGFzaFwiIHwgXCJiYWNrcXVvdGVcIiB8IFwiYnJhY2tldGxlZnRcIiB8IFwiYmFja3NsYXNoXCIgfCBcImJyYWNrZXRyaWdodFwiIHwgXCJxdW90ZVwiXG4gICAgfCBcIkFcIiB8IFwiQlwiIHwgXCJDXCIgfCBcIkRcIiB8IFwiRVwiIHwgXCJGXCIgfCBcIkdcIiB8IFwiSFwiIHwgXCJJXCIgfCBcIkpcIiB8IFwiS1wiIHwgXCJMXCIgfCBcIk1cIlxuICAgIHwgXCJOXCIgfCBcIk9cIiB8IFwiUFwiIHwgXCJRXCIgfCBcIlJcIiB8IFwiU1wiIHwgXCJUXCIgfCBcIlVcIiB8IFwiVlwiIHwgXCJXXCIgfCBcIlhcIiB8IFwiWVwiIHwgXCJaXCJcbiAgICB8IFwiYVwiIHwgXCJiXCIgfCBcImNcIiB8IFwiZFwiIHwgXCJlXCIgfCBcImZcIiB8IFwiZ1wiIHwgXCJoXCIgfCBcImlcIiB8IFwialwiIHwgXCJrXCIgfCBcImxcIiB8IFwibVwiXG4gICAgfCBcIm5cIiB8IFwib1wiIHwgXCJwXCIgfCBcInFcIiB8IFwiclwiIHwgXCJzXCIgfCBcInRcIiB8IFwidVwiIHwgXCJ2XCIgfCBcIndcIiB8IFwieFwiIHwgXCJ5XCIgfCBcInpcIjtcblxuLy8gY3RybCthbHQrbWV0YStzaGlmdFxudHlwZSBLZXlQcmVmaXggPVxuICAgIGBjdHJsYCB8XG4gICAgYGN0cmwrYWx0YCB8XG4gICAgYGN0cmwrYWx0K3NoaWZ0YCB8XG4gICAgYGN0cmwrYWx0K3NoaWZ0K21ldGFgIHxcbiAgICBgY3RybCthbHQrbWV0YWAgfFxuICAgIGBjdHJsK3NoaWZ0YCB8XG4gICAgYGN0cmwrc2hpZnQrbWV0YWAgfFxuICAgIGBjdHJsK21ldGFgIHxcbiAgICBgYWx0YCB8XG4gICAgYGFsdCtzaGlmdGAgfFxuICAgIGBhbHQrc2hpZnQrbWV0YWAgfFxuICAgIGBhbHQrbWV0YWAgfFxuICAgIGBzaGlmdGAgfFxuICAgIGBzaGlmdCttZXRhYCB8XG4gICAgYG1ldGFgXG5cbmV4cG9ydCB0eXBlIEtleWJpbmRFdmVudCA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgS2V5YmluZENvZGUgPSBgJHtLZXlQcmVmaXh9KyR7S2V5Q29kZX1gIHwgS2V5Q29kZTtcblxuXG5cbmV4cG9ydCB0eXBlIENvbW1hbmRBY3Rpb248VCA9IGFueT4gPSB7XG4gICAgLyoqXG4gICAgICogVGhlIG5vbi1tb2RpZmllciBrZXkocykgdGhhdCBtdXN0IGJlIHByZXNzZWQgZm9yIHRoZSBldmVudCB0byBmaXJlLlxuICAgICAqL1xuICAgIHNob3J0Y3V0S2V5PzogS2V5YmluZENvZGUgfCBLZXliaW5kQ29kZVtdLFxuXG4gICAgLyoqXG4gICAgICogQWN0aW9uIHRoYXQgaXMgaW52b2tlZCB3aGVuIHRoZSBrZXlib2FyZCBzaG9ydGN1dCBpcyBwcmVzc2VkIG9yIHRoZSBpdGVtXG4gICAgICogaXMgYWN0aXZhdGVkIGluIHRoZSBHVUkgbWVudVxuICAgICAqIElmIHRoZSBHVUkgbWVudSBpcyBvcGVuLCBpdCB3aWxsIHNob3cgYSBzcGlubmVyIGlmIHRoZSBhY3Rpb24gcmV0dXJucyBhIGBQcm9taXNlYFxuICAgICAqL1xuICAgIGFjdGlvbj86IChldnQ6IEtleWJvYXJkRXZlbnQsIGRhdGE/OiBUKSA9PiBQcm9taXNlPGFueT4gfCBhbnksXG5cbiAgICAvKipcbiAgICAgKiBBcmJpdHJhcnkgZGF0YSBvYmplY3QgdG8gYmUgcGFzc2VkIGludG8gdGhlIGFjdGlvblxuICAgICAqL1xuICAgIGRhdGE/OiBULFxuXG4gICAgLyoqXG4gICAgICogTGFiZWwgaW4gdGhlIGNvbW1hbmQgcGFsZXR0ZSBwb3B1cFxuICAgICAqL1xuICAgIGxhYmVsPzogc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogS2V5d29yZHMgdGhhdCBjYW4gaGVscCBwaWNrIHRoaXMgY29tbWFuZFxuICAgICAqL1xuICAgIGtleXdvcmRzPzogc3RyaW5nIHwgc3RyaW5nW10sXG5cbiAgICAvKipcbiAgICAgKiBEZXNjcmlwdGlvbiBmb3IgdGhlIHBvcHVwXG4gICAgICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcm9vdCBhbmNlc3RvciBlbGVtZW50IG9mIHRoZSBhY3Rpb25cbiAgICAgKiAoVGhpcyBhbGxvd3Mgc2NvcGluZyBjb21tYW5kcyB0byBzcGVjaWZpYyBIVE1MIGVsZW1lbnRzKVxuICAgICAqIFRoaXMgcmVxdWlyZXMgdGhhdCB0aGUgZXZlbnQgdGFyZ2V0IG11c3QgYmUgYSBkZXNjZW5kYW50XG4gICAgICpcbiAgICAgKiBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgbWF0Y2hpbmcgZGVzY2VuZGFudHMsIG9ubHlcbiAgICAgKiB0aGUgZnVydGhlc3QgZGVzY2VuZGFudCB3aWxsIGJlIGZpcmVkXG4gICAgICovXG4gICAgcm9vdEVsZW1lbnQ/OiBIVE1MRWxlbWVudCxcblxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBmb3IgdGhlIHJvb3QuIFVzZWQgZm9yIHRoZSBVSSBjb250cm9sIGFuZCBkZWJ1Z2dpbmcuXG4gICAgICovXG4gICAgcm9vdE5hbWU/OiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBDb250cm9sIHdoZXRoZXIgdGhpcyBjb21tYW5kIGFjdGlvbiBpcyB2aXNpYmxlIGluIHRoZSBwb3B1cCBjb21tYW5kXG4gICAgICogcGFsZXR0ZSBHVUkuXG4gICAgICovXG4gICAgdmlzaWJsZUluTGlzdD86IGJvb2xlYW4sXG5cbiAgICAvKipcbiAgICAgKiBFbmFibGUgc2VsZWN0aW5nIGFuIGl0ZW0gdG8gc2hvdyBhIGxpc3Qgb2Ygc3ViLWl0ZW1zXG4gICAgICovXG4gICAgc3ViTWVudT86IENvbW1hbmRBY3Rpb248VD5bXSB8ICgoKSA9PiBQcm9taXNlPENvbW1hbmRBY3Rpb248VD5bXT4pIHwgKCgpID0+IENvbW1hbmRBY3Rpb248VD5bXSlcblxufTtcblxudHlwZSBDb21tYW5kQmxvY2sgPSB7XG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gICAgYWN0aW9uczogQ29tbWFuZEFjdGlvbltdO1xufTtcblxuZXhwb3J0IHR5cGUgQ29tbWFuZFBhbGV0dGVPcHRpb25zID0ge1xuICAgIGtleWJpbmQ6IEtleWJpbmRDb2RlXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29tbWFuZFBhbGV0dGVTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgY29tbWFuZEJsb2NrczogQ29tbWFuZEJsb2NrW10gPSBbXTtcbiAgICBwcml2YXRlIGludGVydmFsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbGF6eUxvYWRlcjogTGF6eUxvYWRlclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIChldnQpID0+IHRoaXMub25LZXlEb3duKGV2dCkpO1xuXG4gICAgICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBHbyBiYWNrd2FyZHMgc2luY2Ugd2UncmUgc3BsaWNpbmcgaXRlbXMgb3V0IG9mIHRoZSBhcnJheS5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSB0aGlzLmNvbW1hbmRCbG9ja3MubGVuZ3RoOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgICAgIGxldCBjb21tYW5kQmxvY2sgPSB0aGlzLmNvbW1hbmRCbG9ja3NbaV07XG5cbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBpbmRleCBpcyBzb21laG93IG51bGwsIHJpcCBpdCBvdXQgb2ZcbiAgICAgICAgICAgICAgICAvLyB0aGUgYXJyYXkgYW5kIHdhaXQgZm9yIGNsZWFudXAgdG8gdHJpZ2dlciBhZ2FpblxuICAgICAgICAgICAgICAgIC8vIGZvciB0aGUgcmVzdCBvZiB0aGUgYXJyYXkuXG4gICAgICAgICAgICAgICAgLy8gVE9ETzogQ291bGQgdGhpcyBsZWFkIHRvIGxlYWtzIHdoZXJlIHRoaW5ncyBhdCB0aGUgZW5kXG4gICAgICAgICAgICAgICAgLy8gbmV2ZXIgZ2V0IGNsZWFuZWQ/XG4gICAgICAgICAgICAgICAgaWYgKGNvbW1hbmRCbG9jayA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tbWFuZEJsb2Nrcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZWxlbWVudCBoYXMgYmVlbiBkaXNjb25uZWN0ZWQgZnJvbSB0aGUgRE9NLCB3ZSB3aWxsXG4gICAgICAgICAgICAgICAgLy8gdHJlYXQgaXQgYXMgaGF2aW5nIGJlZW4gcGVybWFuZW50bHkgcmVtb3ZlZC5cbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBDb3VsZCB0aGlzIGV2ZXIgY2F1c2UgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXM/XG4gICAgICAgICAgICAgICAgaWYgKCFjb21tYW5kQmxvY2s/LmVsZW1lbnQuaXNDb25uZWN0ZWQpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tbWFuZEJsb2Nrcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDUgKiA2MCAqIDEwMDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb21tYW5kQmxvY2tzKGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICBjb25zdCBlbGVtZW50UGF0aDogSFRNTEVsZW1lbnRbXSA9IFtlbGVtZW50XTtcbiAgICAgICAgbGV0IGN1cnJlbnRUYXJnZXQ6IEhUTUxFbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgZWxlbWVudFBhdGgudW5zaGlmdChjdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldC5wYXJlbnRFbGVtZW50KTtcbiAgICAgICAgfSB3aGlsZSAoY3VycmVudFRhcmdldC5wYXJlbnRFbGVtZW50KTtcblxuICAgICAgICAvLyBPcmRlcmVkIG1hdGNoaW5nIGNvbW1hbmQgYmxvY2tzLCBjbG9zZXN0IGZpcnN0XG4gICAgICAgIGNvbnN0IG1hdGNoaW5nQ29tbWFuZEJsb2NrczogQ29tbWFuZEJsb2NrW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGVsZW1lbnRQYXRoKSB7XG4gICAgICAgICAgICBjb25zdCBjb21tYW5kQmxvY2sgPSB0aGlzLmNvbW1hbmRCbG9ja3MuZmluZChjYiA9PiBjYi5lbGVtZW50ID09IGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKGNvbW1hbmRCbG9jaykge1xuICAgICAgICAgICAgICAgIG1hdGNoaW5nQ29tbWFuZEJsb2Nrcy51bnNoaWZ0KGNvbW1hbmRCbG9jayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWF0Y2hpbmdDb21tYW5kQmxvY2tzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBrZXlkb3duIGV2ZW50c1xuICAgICAqXG4gICAgICogSWYgYW4gZXZlbnQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBET00gdHJlZSwgd2UgZG9uJ3QgbmVlZFxuICAgICAqIHRvIGV4cGxpY2l0bHkgcmVtb3ZlIHRoZSBiaW5kaW5ncywgYXMgdGhleSB3aWxsIG5ldmVyIGZpcmVcbiAgICAgKlxuICAgICAqIFdlIHBlcmlvZGljYWxseSBjaGVjayBhbmQgcmVtb3ZlIHVuY29ubmVjdGVkIGNvbW1hbmQgYmxvY2tzXG4gICAgICovXG4gICAgcHJpdmF0ZSBvbktleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IG1hdGNoaW5nQ29tbWFuZEJsb2NrcyA9IHRoaXMuZ2V0Q29tbWFuZEJsb2NrcyhldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcblxuICAgICAgICAvLyBTdHJpbmcgaW4gZm9ybWF0IGBjdHJsK2FsdCtGYCwgYGN0cmwrRmAgZXRjLlxuICAgICAgICBjb25zdCBrZXkgPSBbXG4gICAgICAgICAgICBldnQuY3RybEtleSA/IFwiY3RybFwiIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZXZ0LmFsdEtleSA/IFwiYWx0XCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBldnQuc2hpZnRLZXkgPyBcInNoaWZ0XCIgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBldnQubWV0YUtleSA/IFwibWV0YVwiIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZXZ0LmNvZGUuc3RhcnRzV2l0aChcIktleVwiKSA/IGV2dC5rZXkgOiBldnQuY29kZVxuICAgICAgICBdLmZpbHRlcihhID0+IGEpLmpvaW4oJysnKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIGZvciAoY29uc3QgY29tbWFuZEJsb2NrIG9mIG1hdGNoaW5nQ29tbWFuZEJsb2Nrcykge1xuICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gY29tbWFuZEJsb2NrLmFjdGlvbnMuZmluZChhID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShhLnNob3J0Y3V0S2V5KVxuICAgICAgICAgICAgICAgICAgICA/IGEuc2hvcnRjdXRLZXkuaW5jbHVkZXMoa2V5IGFzIGFueSlcbiAgICAgICAgICAgICAgICAgICAgOiBhLnNob3J0Y3V0S2V5ID09IGtleSBhcyBhbnlcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5pbnZva2VBY3Rpb24oYWN0aW9uKTtcblxuICAgICAgICAgICAgICAgIC8vIEV4ZWN1dGUgdGhlIGFjdGlvbiBhbmQgbW92ZSBvbi5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBLZWVwIGNoZWNraW5nIGZvciBtYXRjaGluZyBhY3Rpb25zXG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBleGVjdXRpb24gcmVhY2hlcyB0aGlzIHBvaW50LCB0aGVyZSB3ZXJlIG5vIG1hdGNoaW5nIGFjdGlvbnMgb24gdGhlXG4gICAgICAgIC8vIHBhdGggb2YgZWxlbWVudHMgdGhhdCB3ZXJlIHJlZ2lzdGVyZWQuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRDb21tYW5kKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBhY3Rpb246IENvbW1hbmRBY3Rpb24pIHtcbiAgICAgICAgY29uc3QgY29tbWFuZEJsb2NrID0gdGhpcy5jb21tYW5kQmxvY2tzLmZpbmQoYiA9PiBiLmVsZW1lbnQgPT0gZWxlbWVudCkgPz8gKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNiID0geyBlbGVtZW50LCBhY3Rpb25zOiBbXSB9O1xuICAgICAgICAgICAgdGhpcy5jb21tYW5kQmxvY2tzLnB1c2goY2IpO1xuICAgICAgICAgICAgcmV0dXJuIGNiO1xuICAgICAgICB9KSgpO1xuXG4gICAgICAgIC8vIFRoaXMgaXMgbGlrZWx5IGEgZHVwbGljYXRlIGVudHJ5XG4gICAgICAgIGlmIChjb21tYW5kQmxvY2suYWN0aW9ucy5maW5kKGEgPT4gYS5zaG9ydGN1dEtleSAmJiBhLnNob3J0Y3V0S2V5ID09IGFjdGlvbi5zaG9ydGN1dEtleSkpIHtcbiAgICAgICAgICAgIHdhcm4oYEluc2VydGluZyBkdXBsaWNhdGUgYWN0aW9uIG9uIGVsZW1lbnRgLCB7IGVsZW1lbnQsIGFjdGlvbiB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxvZyhMb2dJY29uLmNpcmNsZV9ibHVlLCBgSW5zZXJ0ZWQgYWN0aW9uYCwgYWN0aW9uKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gTWFrZSB0aGUgc2hvcnRjdXQga2V5cyBsb3dlcmNhc2Ugc28gY2FzZSBzZW5zaXRpdml0eSBkb2Vzbid0IHNjYWxwIHNvbWVvbmVcbiAgICAgICAgaWYgKGFjdGlvbi5zaG9ydGN1dEtleSkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0aW9uLnNob3J0Y3V0S2V5KSlcbiAgICAgICAgICAgICAgICBhY3Rpb24uc2hvcnRjdXRLZXkgPSBhY3Rpb24uc2hvcnRjdXRLZXkubWFwKGsgPT4gay50b0xvd2VyQ2FzZSgpKSBhcyBhbnk7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgYWN0aW9uLnNob3J0Y3V0S2V5ID0gYWN0aW9uLnNob3J0Y3V0S2V5LnRvTG93ZXJDYXNlKCkgYXMgYW55O1xuICAgICAgICB9XG5cbiAgICAgICAgY29tbWFuZEJsb2NrLmFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlQ29tbWFuZChlbGVtZW50OiBIVE1MRWxlbWVudCwgYWN0aW9uOiBDb21tYW5kQWN0aW9uIHwgc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmRCbG9jayA9IHRoaXMuY29tbWFuZEJsb2Nrcy5maW5kKGIgPT4gYi5lbGVtZW50ID09IGVsZW1lbnQpID8/IHsgZWxlbWVudCwgYWN0aW9uczogW10gfTtcbiAgICAgICAgY29uc3QgYWN0aW9uSW5kZXggPSBjb21tYW5kQmxvY2s/LmFjdGlvbnMuZmluZEluZGV4KGEgPT4gdHlwZW9mIGFjdGlvbiA9PSBcInN0cmluZ1wiID8gYS5zaG9ydGN1dEtleSA9PSBhY3Rpb24gOiBhID09IGFjdGlvbik7XG5cbiAgICAgICAgaWYgKCFjb21tYW5kQmxvY2spIHtcbiAgICAgICAgICAgIGVycihMb2dJY29uLndhcm5pbmcsIGBDYW5ub3QgcmVtb3ZlIGNvbW1hbmQ6IGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhbnkgY29tbWFuZHMgcmVnaXN0ZXJlZGAsIHsgZWxlbWVudCwgYWN0aW9uIH0pXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoYWN0aW9uSW5kZXggPT0gLTEpIHtcbiAgICAgICAgICAgIHdhcm4oTG9nSWNvbi53YXJuaW5nLCBgQ2Fubm90IHJlbW92ZSBjb21tYW5kOiBub3QgcHJlc2VudCBpbiBsaXN0YCwgeyBlbGVtZW50LCBhY3Rpb24gfSlcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbW1hbmRCbG9jay5hY3Rpb25zLnNwbGljZShhY3Rpb25JbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqL1xuICAgIGluaXRpYWxpemUob3B0aW9uczogQ29tbWFuZFBhbGV0dGVPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuYXR0YWNoRWxlbWVudENvbW1hbmRzKFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaG9ydGN1dEtleTogb3B0aW9ucy5rZXliaW5kLFxuICAgICAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5vcGVuUGFsZXR0ZSgpLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIk9wZW4gdGhlIGNvbW1hbmQgcGFsZXR0ZVwiLFxuICAgICAgICAgICAgICAgIGtleXdvcmRzOiBbXCJjb21tYW5kXCIsIFwicHJvbXB0XCIsIFwiY29uc29sZVwiLCBcImFjdGlvbnNcIl0sXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiQ29tbWFuZCBQYWxldHRlXCIsXG4gICAgICAgICAgICAgICAgdmlzaWJsZUluTGlzdDogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3BlbiB0aGUgY29tbWFuZCBwYWxldHRlXG4gICAgICovXG4gICAgb3BlblBhbGV0dGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZy5vcGVuKENvbW1hbmRQYWxldHRlQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgICAgIHRvcDogXCI4cHhcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBjb250ZXh0RWxlbWVudDogZG9jdW1lbnQuYWN0aXZlRWxlbWVudFxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQdWJsaWMgaGVscGVyIHRvIGludm9rZSBhbiBhY3Rpb24uXG4gICAgICovXG4gICAgaW52b2tlQWN0aW9uKGFjdGlvbjogQ29tbWFuZEFjdGlvbiwgYXJncz8pIHtcbiAgICAgICAgY29uc3QgZm4gPSBhY3Rpb24uYWN0aW9uO1xuICAgICAgICBpZiAodHlwZW9mIGZuID09ICdmdW5jdGlvbicpIHtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBmbihhcmdzKTtcblxuICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBwcm9taXNlcyBzbyB0aGF0IHRoZSBHVUkgY2FuIHNob3cgc3Bpbm5lcnMgZm9yIHRoZW1cbiAgICAgICAgICAgICAgICBpZiAocmVzIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgICAgICAgZXJyKExvZ0ljb24uYm9tYiwgYEV4ZWN1dGluZyBhY3Rpb24gdGhyZXcgYW4gZXJyb3JgLCB7IGFjdGlvbiB9LCBleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB3YXJuKExvZ0ljb24ud2FybmluZywgYENhbm5vdCBleGVjdXRlIGFjdGlvbiwgdHlwZSBpcyBub3QgXCJmdW5jdGlvblwiYCwgeyBhY3Rpb24gfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBdHRhY2ggY29tbWFuZHMgdG8gYW4gRWxlbWVudCBhbmQgaXQncyBzdWJ0cmVlXG4gICAgICovXG4gICAgYXR0YWNoRWxlbWVudENvbW1hbmRzKGFjdGlvbnM6IENvbW1hbmRBY3Rpb25bXSlcbiAgICBhdHRhY2hFbGVtZW50Q29tbWFuZHMoZWxlbWVudDogSFRNTEVsZW1lbnQsIGFjdGlvbnM6IENvbW1hbmRBY3Rpb25bXSlcbiAgICBhdHRhY2hFbGVtZW50Q29tbWFuZHMoZWxlbWVudDogQ29tbWFuZEFjdGlvbltdIHwgSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5ib2R5LCBhY3Rpb25zOiBDb21tYW5kQWN0aW9uW10gPSBbXSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlbGVtZW50KSkge1xuICAgICAgICAgICAgYWN0aW9ucyA9IGVsZW1lbnQ7XG4gICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuYm9keTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFjdGlvbnMuZm9yRWFjaChhID0+IHRoaXMuYWRkQ29tbWFuZChlbGVtZW50IGFzIGFueSwgYSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGFjaCBzcGVjaWZpZWQgY29tbWFuZHMgZnJvbSBhbiBFbGVtZW50IHN1YnRyZWVcbiAgICAgKi9cbiAgICBkZXRhY2hFbGVtZW50Q29tbWFuZHMoZWxlbWVudDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5ib2R5LCBhY3Rpb25zOiBDb21tYW5kQWN0aW9uW10gPSBbXSkge1xuICAgICAgICBhY3Rpb25zLmZvckVhY2goYSA9PiB0aGlzLnJlbW92ZUNvbW1hbmQoZWxlbWVudCwgYSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiB0aGUgbGlzdCBvZiByZWdpc3RlcmVkIGNvbW1hbmRzIHVuZGVyIGEgZ2l2ZW4gZWxlbWVudFxuICAgICAqL1xuICAgIGdldFJlZ2lzdGVyZWRDb21tYW5kcyhlbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29tbWFuZEJsb2NrcyhlbGVtZW50KS5tYXAoYyA9PiBjLmFjdGlvbnMpLmZsYXQoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdHlwZXMvdG9vbHRpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9wdXBPcHRpb25zIH0gZnJvbSAnLi9wb3B1cCc7XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBPcHRpb25zID0gUGFydGlhbDxQb3B1cE9wdGlvbnMgJiB7XG4gICAgLyoqXG4gICAgICogRHVyYXRpb24gaW4gbXMgZm9yIGhvdyBsb25nIHRoZSBtb3VzZVxuICAgICAqIG5lZWRzIHRvIGJlIG92ZXIgdGhlIGVsZW1lbnQgYmVmb3JlIHRoZVxuICAgICAqIHRvb2x0aXAgd2lsbCBiZSB2aXNpYmxlXG4gICAgICogIC0gRGVmYXVsdCBgMjUwYFxuICAgICAqICAtIE9ubHkgYXBwbGllcyB3aGVuIHRyaWdnZXIgaXMgYGhvdmVyYC5cbiAgICAgKi9cbiAgICBkZWxheTogbnVtYmVyLFxuXG4gICAgLyoqXG4gICAgICogQSBrZXkgdGhlIHVzZXIgY2FuIHByZXNzIHRvIGtlZXAgYSB0b29sdGlwIHZpc2libGUuXG4gICAgICogIC0gRGVmYXVsdCBgRjJgXG4gICAgICovXG4gICAgZnJlZXplT25LZXlDb2RlOiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBXaGF0IHVzZXIgaW50ZXJhY3Rpb24gZXZlbnQgc2hvdWxkIG1ha2UgdGhlIHRvb2x0aXAgYXBwZWFyLlxuICAgICAqICAtIERlZmF1bHQgYGhvdmVyYFxuICAgICAqL1xuICAgIHRyaWdnZXJzOiAoXCJjbGlja1wiIHwgXCJob3ZlclwiKVtdLFxuXG4gICAgLyoqXG4gICAgICogU2V0IHRvIGB0cnVlYCB0byBrZWVwIHRoZSB0b29sdGlwIG9wZW4gd2hlbiBob3ZlcmVkIG92ZXIuXG4gICAgICogUHJpbWFyaWx5IHVzZWQgZm9yIHBvcHBpbmcgdXAgaW50ZXJhY3RpdmUgY29tcG9uZW50c1xuICAgICAqL1xuICAgIHN0YXlPcGVuOiBib29sZWFuXG59PjtcbiJdfQ==
|