@dotglitch/ngx-common 1.0.3 → 1.0.7
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/tooltip/tooltip.component.d.ts +2 -0
- package/directives/menu.directive.d.ts +6 -2
- package/directives/tooltip.directive.d.ts +10 -5
- package/esm2020/components/menu/menu.component.mjs +3 -3
- package/esm2020/components/tooltip/tooltip.component.mjs +9 -4
- package/esm2020/directives/menu.directive.mjs +20 -9
- package/esm2020/directives/tooltip.directive.mjs +35 -5
- package/esm2020/public-api.mjs +6 -1
- package/esm2020/types/tooltip.mjs +2 -0
- package/fesm2015/dotglitch-ngx-common.mjs +70 -21
- package/fesm2015/dotglitch-ngx-common.mjs.map +1 -1
- package/fesm2020/dotglitch-ngx-common.mjs +64 -18
- package/fesm2020/dotglitch-ngx-common.mjs.map +1 -1
- package/package.json +2 -10
- package/public-api.d.ts +5 -0
- package/types/tooltip.d.ts +15 -0
|
@@ -16,6 +16,7 @@ export declare class TooltipComponent {
|
|
|
16
16
|
isTemplate: boolean;
|
|
17
17
|
hasBootstrapped: boolean;
|
|
18
18
|
pointerIsOnVoid: boolean;
|
|
19
|
+
isLockedOpen: boolean;
|
|
19
20
|
coverRectCords: {
|
|
20
21
|
top: number;
|
|
21
22
|
left: number;
|
|
@@ -30,6 +31,7 @@ export declare class TooltipComponent {
|
|
|
30
31
|
*/
|
|
31
32
|
private onClose;
|
|
32
33
|
private onPointerLeave;
|
|
34
|
+
closeOnVoid(): void;
|
|
33
35
|
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipComponent, [null, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
34
36
|
static ɵcmp: i0.ɵɵComponentDeclaration<TooltipComponent, "ngx-tooltip", never, { "data": "data"; "config": "config"; "ownerCords": "ownerCords"; "selfCords": "selfCords"; "template": "template"; }, {}, never, never, true, never>;
|
|
35
37
|
}
|
|
@@ -13,6 +13,10 @@ export declare class MenuDirective {
|
|
|
13
13
|
* The items that will be bound to the context menu.
|
|
14
14
|
*/
|
|
15
15
|
ctxMenuItems: MenuItem[];
|
|
16
|
+
/**
|
|
17
|
+
* The items that will be bound to the menu that pops
|
|
18
|
+
* up when the user clicks the element.
|
|
19
|
+
*/
|
|
16
20
|
menuItems: MenuItem[];
|
|
17
21
|
/**
|
|
18
22
|
* Configuration for opening the app menu
|
|
@@ -22,6 +26,6 @@ export declare class MenuDirective {
|
|
|
22
26
|
ngAfterViewInit(): void;
|
|
23
27
|
openMenu(evt: PointerEvent): Promise<[value: any]>;
|
|
24
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<MenuDirective, never>;
|
|
25
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<MenuDirective, "[ngx-
|
|
29
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MenuDirective, "[ngx-contextmenu],[ngx-menu],[ngxContextmenu],[ngxMenu]", never, { "data": "ngx-menu-context"; "ctxMenuItems": "ngx-contextmenu"; "menuItems": "ngx-menu"; "config": "ngx-menu-config"; }, {}, never, never, true, never>;
|
|
26
30
|
}
|
|
27
|
-
export declare const openMenu: (dialog: MatDialog, menuItems: MenuItem[], data: any, evt: PointerEvent, config?: MenuOptions) => Promise<any>;
|
|
31
|
+
export declare const openMenu: (dialog: MatDialog, menuItems: MenuItem[], data: any, evt: PointerEvent, config?: MenuOptions, el?: HTMLElement) => Promise<any>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TemplateRef, Type, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
-
import {
|
|
3
|
+
import { TooltipOptions } from '../types/tooltip';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class TooltipDirective {
|
|
6
6
|
private dialog;
|
|
@@ -11,16 +11,21 @@ export declare class TooltipDirective {
|
|
|
11
11
|
/**
|
|
12
12
|
* Configuration for opening the app menu
|
|
13
13
|
*/
|
|
14
|
-
config:
|
|
14
|
+
config: TooltipOptions;
|
|
15
15
|
/**
|
|
16
16
|
* Arbitrary data to pass into the template
|
|
17
17
|
*/
|
|
18
18
|
data: any;
|
|
19
|
-
constructor(dialog: MatDialog, viewContainer: ViewContainerRef);
|
|
20
|
-
ngOnInit(): void;
|
|
21
19
|
private dialogInstance;
|
|
20
|
+
private isCursorOverTarget;
|
|
21
|
+
private isFreezeOnKeyCodeBound;
|
|
22
|
+
constructor(dialog: MatDialog, viewContainer: ViewContainerRef);
|
|
23
|
+
ngOnDestroy(): void;
|
|
24
|
+
onKeyDown(evt: any): void;
|
|
25
|
+
private onKeyDownEvt;
|
|
22
26
|
onPointerEnter(evt: PointerEvent): Promise<void>;
|
|
27
|
+
onPointerLeave(evt: PointerEvent): Promise<void>;
|
|
23
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, never>;
|
|
24
29
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[ngxTooltip],[ngx-tooltip]", never, { "template": "ngx-tooltip"; "config": "ngx-tooltip-config"; "data": "ngx-tooltip-context"; }, {}, never, never, true, never>;
|
|
25
30
|
}
|
|
26
|
-
export declare const openTooltip: (dialog: MatDialog, template: TemplateRef<any> | Type<any>, data: any, el: HTMLElement, config?:
|
|
31
|
+
export declare const openTooltip: (dialog: MatDialog, template: TemplateRef<any> | Type<any>, data: any, el: HTMLElement, config?: TooltipOptions) => Promise<any>;
|
|
@@ -145,10 +145,10 @@ export class MenuComponent {
|
|
|
145
145
|
}
|
|
146
146
|
});
|
|
147
147
|
// Show the icon column if there are any items with an icon
|
|
148
|
-
this.showIconColumn = !!this.items
|
|
148
|
+
this.showIconColumn = !!this.items?.find(i => typeof i == "object" &&
|
|
149
149
|
typeof i['icon'] == "string" &&
|
|
150
150
|
i['icon'].length > 2);
|
|
151
|
-
this.showShortcutColumn = !!this.items
|
|
151
|
+
this.showShortcutColumn = !!this.items?.find(i => typeof i == "object" &&
|
|
152
152
|
typeof i['shortcut'] == "string" &&
|
|
153
153
|
i['shortcut'].length > 2);
|
|
154
154
|
// setTimeout(() => {
|
|
@@ -313,4 +313,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
313
313
|
type: HostListener,
|
|
314
314
|
args: ["window:resize"]
|
|
315
315
|
}] } });
|
|
316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZLLE9BQU8sRUFBZ0IsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RSxPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFHdEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxFQUFFLFNBQXFCLEVBQUUsT0FBWSxFQUFFLEVBQUU7SUFDNUUsTUFBTSxJQUFJLEdBQUc7UUFDVCxJQUFJLEVBQUUsT0FBTztRQUNiLEtBQUssRUFBRSxTQUFTO1FBQ2hCLE1BQU0sRUFBRSxFQUFFO1FBQ1YsRUFBRSxFQUFFLElBQUk7S0FDWCxDQUFBO0lBRUQsT0FBTyxtQkFBbUIsQ0FBQyxhQUFhLEVB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QUFDO1lBQ3hGLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSxDQUFDO1NBQ3ZDO1FBRUQsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQy9CLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUE7WUFDdEYsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxPQUFPLENBQUM7U0FDekM7SUFDTCxDQUFDOzswR0FqTlEsYUFBYSw4RUFrQkUsZUFBZTs4RkFsQjlCLGFBQWEsdVFDckcxQiw4M0xBaUlBLHl6RERwQ1EsSUFBSSw2RkFDSixPQUFPLG1IQUNQLGdCQUFnQixtSkFDaEIsYUFBYSxtTEFDYix3QkFBd0I7MkZBSW5CLGFBQWE7a0JBYnpCLFNBQVM7K0JBQ0ksVUFBVSxXQUdYO3dCQUNMLElBQUk7d0JBQ0osT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2Isd0JBQXdCO3FCQUMzQixjQUNXLElBQUk7OzBCQW9CWCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUNsQyxRQUFROzswQkFDUixRQUFROzRFQW5CRyxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLEVBQUU7c0JBQWpCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFzTEMsUUFBUTtzQkFEZixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0Zvck9mLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIGNyZWF0ZUFwcGxpY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lbnVJdGVtLCBNZW51T3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL21lbnUnO1xuXG5leHBvcnQgY29uc3QgY2FsY01lbnVJdGVtQm91bmRzID0gYXN5bmMgKG1lbnVJdGVtczogTWVudUl0ZW1bXSwgZGF0YU9iajogYW55KSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgZGF0YTogZGF0YU9iaixcbiAgICAgICAgaXRlbXM6IG1lbnVJdGVtcyxcbiAgICAgICAgY29uZmlnOiB7fSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gY2FsY0NvbXBvbmVudEJvdW5kcyhNZW51Q29tcG9uZW50LCBkYXRhKTtcbn1cblxuY29uc3QgY2FsY0NvbXBvbmVudEJvdW5kcyA9IGFzeW5jIChjb21wb25lbnQ6IFR5cGU8YW55PiwgZGF0YTogYW55KSA9PiB7XG4gICAgLy8gRm9yY2libHkgYm9vdHN0cmFwIHRoZSBjdHggbWVudSBvdXRzaWRlIG9mIHRoZSBjbGllbnQgYXBwbGljYXRpb24ncyB6b25lLlxuICAgIGNvbnN0IGFwcCA9IGF3YWl0IGNyZWF0ZUFwcGxpY2F0aW9uKHtcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7IHByb3ZpZGU6IE1BVF9ESUFMT0dfREFUQSwgdXNlVmFsdWU6IGRhdGEgfVxuICAgICAgICBdXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIGRlbC5zdHlsZS5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIjtcbiAgICBkZWwuc3R5bGUubGVmdCA9ICctMTAwMHZ3JztcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChkZWwpO1xuXG4gICAgY29uc3QgYmFzZSA9IGFwcC5ib290c3RyYXAoY29tcG9uZW50LCBkZWwpO1xuICAgIGNvbnN0IHsgaW5zdGFuY2UgfSA9IGJhc2U7XG5cbiAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbShhcHAuaXNTdGFibGUpO1xuXG4gICAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gaW5zdGFuY2Uudmlld0NvbnRhaW5lcj8uZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBhcHAuZGVzdHJveSgpO1xuICAgIGRlbC5yZW1vdmUoKTtcbiAgICByZXR1cm4gcmVjdDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtbWVudS10ZW1wbGF0ZS13cmFwcGVyJyxcblxuICAgIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlVHlwZSA9PSAndGVtcGxhdGUnOyBlbHNlIHBvcnRhbE91dGxldFwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAnJGltcGxpY2l0JzogZGF0YSwgZGlhbG9nOiBkaWFsb2dSZWYgfVwiXG4gICAgICAgIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNwb3J0YWxPdXRsZXQgW2Nka1BvcnRhbE91dGxldF09XCJjb21wb25lbnRQb3J0YWxcIiA+PC9uZy10ZW1wbGF0ZT5cbmAsXG4gICAgaW1wb3J0czogWyBOZ1RlbXBsYXRlT3V0bGV0LCBQb3J0YWxNb2R1bGUsIE5nSWYgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuY2xhc3MgVGVtcGxhdGVXcmFwcGVyIHtcblxuICAgIGRhdGE6IE9iamVjdDtcbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHRlbXBsYXRlVHlwZTogXCJ0ZW1wbGF0ZVwiIHwgXCJjb21wb25lbnRcIlxuICAgIGNvbXBvbmVudFBvcnRhbDogQ29tcG9uZW50UG9ydGFsPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPGFueT4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhOiBhbnksXG4gICAgICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGF0YSA9IF9kYXRhLmRhdGE7XG4gICAgICAgIHRoaXMudGVtcGxhdGUgPSBfZGF0YS50ZW1wbGF0ZTtcblxuICAgICAgICAvLyBUT0RPOiBUaGlzIGlzIHByb2JhYmx5IGludmFsaWRcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVR5cGUgPSB0aGlzLnRlbXBsYXRlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYgPyBcInRlbXBsYXRlXCIgOiBcImNvbXBvbmVudFwiO1xuXG4gICAgICAgIGlmICh0aGlzLnRlbXBsYXRlVHlwZSA9PSBcImNvbXBvbmVudFwiKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy50ZW1wbGF0ZSBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25neC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdGb3JPZixcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhOiBhbnk7XG4gICAgQElucHV0KCkgcHVibGljIHBhcmVudENvcmRzOiBET01SZWN0O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpdGVtczogTWVudUl0ZW1bXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29uZmlnOiBNZW51T3B0aW9ucztcbiAgICBASW5wdXQoKSBwdWJsaWMgaWQ6IHN0cmluZztcblxuICAgIEBPdXRwdXQoKSBjbG9zZVNpZ25hbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHNlbGZDb3JkczogRE9NUmVjdDtcbiAgICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgYW55IHNsYXNoZXMgb3IgZG90cyAtLSB0aGF0IHdpbGwgY2xlYXJseSBleGNsdWRlIGl0IGZyb20gYmVpbmcgYSBtYXQgaWNvblxuICAgIHB1YmxpYyByZWFkb25seSBtYXRJY29uUnggPSAvW1xcL1xcLl0vaTtcbiAgICBzaG93SWNvbkNvbHVtbiA9IHRydWU7XG4gICAgc2hvd1Nob3J0Y3V0Q29sdW1uID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YTogYW55LFxuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csIC8vIG9wdGlvbmFsIG9ubHkgZm9yIHRoZSBwdXJwb3NlIG9mIGVzdGltYXRpbmcgZGltZW5zaW9uc1xuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8YW55PixcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgLy8gRGVmYXVsdHMgYXJlIHNldCBiZWZvcmUgQElucHV0KCkgaG9va3MgZXZhbHVhdGVcbiAgICAgICAgdGhpcy5kYXRhICA9IHRoaXMuX2RhdGE/LmRhdGE7XG4gICAgICAgIHRoaXMucGFyZW50Q29yZHMgID0gdGhpcy5fZGF0YT8ucGFyZW50Q29yZHM7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLl9kYXRhPy5pdGVtcztcbiAgICAgICAgdGhpcy5jb25maWcgPSB0aGlzLl9kYXRhPy5jb25maWc7XG4gICAgICAgIHRoaXMuaWQgPSB0aGlzLl9kYXRhPy5pZDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pdGVtcz8uZm9yRWFjaChpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaSA9PSBcInN0cmluZ1wiKSByZXR1cm47XG5cbiAgICAgICAgICAgIC8vIFNldCBkZWZhdWx0c1xuICAgICAgICAgICAgaVsnX2Rpc2FibGVkJ10gPSBmYWxzZTtcbiAgICAgICAgICAgIGlbJ192aXNpYmxlJ10gPSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAoaS5sYWJlbClcbiAgICAgICAgICAgICAgICB0cnkgeyBpWydfZm9ybWF0dGVkTGFiZWwnXSA9IHRoaXMuZm9ybWF0TGFiZWwoaS5sYWJlbCk7IH0gY2F0Y2ggKGUpIHsgY29uc29sZS53YXJuKGUpIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBpLmlzRGlzYWJsZWQgPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgICAgIHRyeSB7IGlbJ19kaXNhYmxlZCddID0gaS5pc0Rpc2FibGVkKHRoaXMuZGF0YSB8fCB7fSk7IH0gY2F0Y2goZSkgeyBjb25zb2xlLndhcm4oZSkgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGkuaXNWaXNpYmxlID09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICAgICAgICB0cnkgeyBpWydfdmlzaWJsZSddID0gaS5pc1Zpc2libGUodGhpcy5kYXRhIHx8IHt9KTsgfSBjYXRjaCAoZSkgeyBjb25zb2xlLndhcm4oZSkgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGkubGlua1RlbXBsYXRlID09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICAgICAgICB0cnkgeyBpWydfbGluayddID0gaS5saW5rVGVtcGxhdGUodGhpcy5kYXRhIHx8IHt9KTsgfSBjYXRjaCAoZSkgeyBjb25zb2xlLndhcm4oZSkgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTaG93IHRoZSBpY29uIGNvbHVtbiBpZiB0aGVyZSBhcmUgYW55IGl0ZW1zIHdpdGggYW4gaWNvblxuICAgICAgICB0aGlzLnNob3dJY29uQ29sdW1uID0gISF0aGlzLml0ZW1zLmZpbmQoaSA9PlxuICAgICAgICAgICAgICAgIHR5cGVvZiBpID09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgaVsnaWNvbiddID09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgICBpWydpY29uJ10ubGVuZ3RoID4gMlxuICAgICAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNob3dTaG9ydGN1dENvbHVtbiA9ICEhdGhpcy5pdGVtcy5maW5kKGkgPT5cbiAgICAgICAgICAgICAgICB0eXBlb2YgaSA9PSBcIm9iamVjdFwiICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIGlbJ3Nob3J0Y3V0J10gPT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgICAgIGlbJ3Nob3J0Y3V0J10ubGVuZ3RoID4gMlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gICAgIHRoaXMuY2xvc2VPbkxlYXZlID0gdHJ1ZVxuICAgICAgICAvLyB9LCAzMDApO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50Q29yZHMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZkNvcmRzID0gdGhpcy52aWV3Q29udGFpbmVyPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbVxuICAgICAqIEBwYXJhbSBldnRcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIGFzeW5jIG9uTWVudUl0ZW1DbGljayhpdGVtOiBNZW51SXRlbSwgcm93OiBIVE1MVGFibGVSb3dFbGVtZW50LCBoaWRlQmFja2Ryb3AgPSBmYWxzZSkge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT0gJ3N0cmluZycpIHJldHVybiBudWxsO1xuICAgICAgICBpZiAoaXRlbS5zZXBhcmF0b3IpIHJldHVybiBudWxsO1xuXG4gICAgICAgIC8vIElmIGNhY2hlIGlzIGVuYWJsZWQsIG9ubHkgbG9hZCBpZiB3ZSBkb24ndCBoYXZlIGFueSBjaGlsZHJlbi5cbiAgICAgICAgY29uc3QgZm9yY2VMb2FkID0gKGl0ZW0uY2FjaGVSZXNvbHZlZENoaWxkcmVuID8gIWl0ZW0uY2hpbGRyZW4gOiB0cnVlKTtcblxuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlblJlc29sdmVyICYmIGZvcmNlTG9hZCkge1xuICAgICAgICAgICAgaXRlbVsnX2lzUmVzb2x2aW5nJ10gPSB0cnVlO1xuICAgICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IGF3YWl0IGl0ZW0uY2hpbGRyZW5SZXNvbHZlcih0aGlzLmRhdGEpO1xuICAgICAgICAgICAgaXRlbVsnX2lzUmVzb2x2aW5nJ10gPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXRlbS5jaGlsZFRlbXBsYXRlICYmICFpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAoaXRlbS5hY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpdGVtLmFjdGlvbih0aGlzLmRhdGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIG5vIGFjdGlvbiwgdGhpcyBpcyBzaW1wbHkgYSB0ZXh0IGl0ZW0uXG5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTmVlZCBYIHBvcywgWSBwb3MsIHdpZHRoIGFuZCBoZWlnaHRcbiAgICAgICAgY29uc3QgYm91bmRzID0gcm93LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIGNvbnN0IGNvcmRzID0ge1xuICAgICAgICAgICAgdG9wOiBudWxsLFxuICAgICAgICAgICAgbGVmdDogbnVsbCxcbiAgICAgICAgICAgIGJvdHRvbTogbnVsbCxcbiAgICAgICAgICAgIHJpZ2h0OiBudWxsXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gU2V0IHBvc2l0aW9uIGNvb3JkaW5hdGVzXG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gYXdhaXQgKGl0ZW0uY2hpbGRUZW1wbGF0ZVxuICAgICAgICAgICAgPyBjYWxjQ29tcG9uZW50Qm91bmRzKFRlbXBsYXRlV3JhcHBlciwgeyB0ZW1wbGF0ZTogaXRlbS5jaGlsZFRlbXBsYXRlIH0pXG4gICAgICAgICAgICA6IGNhbGNNZW51SXRlbUJvdW5kcyhpdGVtLmNoaWxkcmVuLCB0aGlzLmRhdGEpKTtcblxuICAgICAgICBpZiAoYm91bmRzLnkgKyBoZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpXG4gICAgICAgICAgICBjb3Jkcy5ib3R0b20gPSBcIjBweFwiO1xuICAgICAgICBpZiAoYm91bmRzLnggKyBib3VuZHMud2lkdGggKyB3aWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoKVxuICAgICAgICAgICAgY29yZHMubGVmdCA9ICgoYm91bmRzLnggLSB3aWR0aCkpICsgXCJweFwiO1xuXG4gICAgICAgIGlmICghY29yZHMuYm90dG9tKSBjb3Jkcy50b3AgPSBib3VuZHMueSArIFwicHhcIjtcbiAgICAgICAgaWYgKCFjb3Jkcy5sZWZ0KSBjb3Jkcy5sZWZ0ID0gYm91bmRzLnggKyBib3VuZHMud2lkdGggKyBcInB4XCI7XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gaXRlbS5jaGlsZHJlbiA/IE1lbnVDb21wb25lbnQgOiBUZW1wbGF0ZVdyYXBwZXIgYXMgYW55O1xuXG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oY29tcG9uZW50LCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogY29yZHMsXG4gICAgICAgICAgICBwYW5lbENsYXNzOiBbXCJuZ3gtbWVudVwiLCBcIm5neC1hcHAtbWVudVwiXS5jb25jYXQodGhpcy5jb25maWc/LmN1c3RvbUNsYXNzIHx8IFtdKSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6IFwibmd4LW1lbnUtYmFja2Ryb3BcIixcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiAhaGlkZUJhY2tkcm9wLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgICAgICAgICAgICBwYXJlbnRDb3JkczogdGhpcy52aWV3Q29udGFpbmVyPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgICAgICAgICBpdGVtczogaXRlbS5jaGlsZHJlbixcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogaXRlbS5jaGlsZFRlbXBsYXRlLFxuICAgICAgICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IF9zID0gZGlhbG9nUmVmXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHR5cGVvZiBpdGVtLmFjdGlvbiA9PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uYWN0aW9uKHJlc3VsdCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1bJ19zZWxmY2xvc2UnXSA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBfcy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBkaWFsb2dSZWY7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbGFiZWxcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIGZvcm1hdExhYmVsKGxhYmVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbGFiZWwucmVwbGFjZSgvXyhbYS16MC05XSlfL2ksIChtYXRjaCwgZ3JvdXApID0+IGA8dT4ke2dyb3VwfTwvdT5gKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSB0aGUgY29udGV4dCBtZW51IHVuZGVyIHRoZXNlIGNpcmN1bXN0YW5jZXNcbiAgICAgKi9cbiAgICAvLyBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbJ2V2ZW50J10pXG4gICAgLy8gQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpibHVyXCIsIFsnZXZlbnQnXSlcbiAgICBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5jbG9zZVNpZ25hbC5lbWl0KCk7XG5cbiAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGRpYWxvZyBpcyBjbGlwcGluZyBvZmZzY3JlZW5cbiAgICAgKiBpZiBzbywgbW92ZSBpdCBiYWNrIGludG8gdmlldy5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiKVxuICAgIHByaXZhdGUgb25SZXNpemUoKSB7XG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy52aWV3Q29udGFpbmVyPy5lbGVtZW50Py5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIWVsKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0LCB4LCB5IH0gPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLm5neC1tZW51XCIpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoIXRhcmdldCkgcmV0dXJuO1xuXG4gICAgICAgIC8vIE1vdmUgYmFjayBpbnRvIHZpZXcgaWYgd2UncmUgY2xpcHBpbmcgb3V0c2lkZSBvZiB0aGUgYm90dG9tXG4gICAgICAgIGlmICh5ICsgaGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICAgICAgICBjb25zdCBuZXdUb3AgPSAod2luZG93LmlubmVySGVpZ2h0IC0gKGhlaWdodCArICh0aGlzLmNvbmZpZy5lZGdlUGFkZGluZyB8fCAxMikpKSArIFwicHhcIjtcbiAgICAgICAgICAgIHRhcmdldC5zdHlsZVsnbWFyZ2luLXRvcCddID0gbmV3VG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTW92ZSBiYWNrIGludG8gdmlldyBpZiB3ZSdyZSBjbGlwcGluZyBvZmYgdGhlIHJpZ2h0XG4gICAgICAgIGlmICh4ICsgd2lkdGggPiB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgICAgICAgICAgY29uc3QgbmV3TGVmdCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAtICh3aWR0aCArICh0aGlzLmNvbmZpZy5lZGdlUGFkZGluZyB8fCAxMikpKSArIFwicHhcIlxuICAgICAgICAgICAgdGFyZ2V0LnN0eWxlWydtYXJnaW4tbGVmdCddID0gbmV3TGVmdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHByaXZhdGUgaG92ZXJlZEl0ZW1zOiBNYXREaWFsb2dSZWY8YW55PltdO1xuICAgIC8vIGFzeW5jIG9uSG92ZXIoaXRlbSwgcm93OiBIVE1MVGFibGVSb3dFbGVtZW50KSB7XG4gICAgLy8gICAgIHRoaXMuaG92ZXJlZEl0ZW1zLmZvckVhY2goaSA9PiBpLmNsb3NlKC0xKSk7XG5cbiAgICAvLyAgICAgaWYgKHR5cGVvZiBpdGVtWydfc2VsZmNsb3NlJ10gPT0gJ251bWJlcicgJiYgKERhdGUubm93KCkgLSBpdGVtWydfc2VsZmNsb3NlJ10pIDwgMyoxMDAwKSByZXR1cm47XG5cbiAgICAvLyAgICAgY29uc3QgaGkgPSBhd2FpdCB0aGlzLm9uTWVudUl0ZW1DbGljayhpdGVtLCByb3csIHRydWUpO1xuICAgIC8vICAgICB0aGlzLmhvdmVyZWRJdGVtcy5wdXNoKGhpKTtcblxuICAgIC8vICAgICBoaS5hZnRlckNsb3NlZCgpLnRvUHJvbWlzZSgpLnRoZW4oZSA9PiB7XG4gICAgLy8gICAgICAgICB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgLy8gICAgICAgICB0aGlzLmhvdmVyZWRJdGVtcy5zcGxpY2UodGhpcy5ob3ZlcmVkSXRlbXMuZmluZEluZGV4KGkgPT4gaSA9PSBoaSksIDEpO1xuICAgIC8vICAgICB9KVxuICAgIC8vIH1cblxuICAgIC8vIGNsb3NlT25MZWF2ZSA9IGZhbHNlO1xuICAgIC8vIGFzeW5jIG9uTGVhdmUoKSB7XG4gICAgLy8gICAgIGlmICh0aGlzLmNsb3NlT25MZWF2ZSkge1xuICAgIC8vICAgICAgICAgaWYgKHRoaXMuaG92ZXJlZEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAvLyAgICAgICAgICAgICB0aGlzLmhvdmVyZWRJdGVtcy5mb3JFYWNoKGkgPT4gaS5jbG9zZSgtMSkpO1xuICAgIC8vICAgICAgICAgICAgIHRoaXMuaG92ZXJlZEl0ZW1zLnNwbGljZSgwKTtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICAgIGVsc2Uge1xuICAgIC8vICAgICAgICAgICAgIHRoaXMuY2xvc2VTaWduYWwubmV4dCgtMSk7XG5cbiAgICAvLyAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgtMSk7XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG59XG4iLCI8dGFibGU+XG4gICAgPHRib2R5PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPCEtLSBBIHJvdyB3aXRoIGEgY2xpY2sgYWN0aW9uIC0tPlxuICAgICAgICAgICAgICAgIDx0ciAjcm93XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbSAhPSAnc2VwYXJhdG9yJyAmJiBpdGVtLnNlcGFyYXRvciAhPSB0cnVlICYmIGl0ZW1bJ192aXNpYmxlJ11cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiaXRlbVsnX2Rpc2FibGVkJ11cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiIWl0ZW1bJ19kaXNhYmxlZCddICYmIG9uTWVudUl0ZW1DbGljayhpdGVtLCByb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmhvdmVyXT1cIml0ZW1bJ2NoaWxkcmVuJ10gJiYgcm93Wydob3ZlciddXCJcbiAgICAgICAgICAgICAgICAgICAgKHBvaW50ZXJlbnRlcik9XCJyb3dbJ2hvdmVyJ10gPSB0cnVlO1wiXG4gICAgICAgICAgICAgICAgICAgIChwb2ludGVybGVhdmUpPVwicm93Wydob3ZlciddID0gZmFsc2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8IS0tICAoaXRlbVsnY2hpbGRyZW4nXT8ubGVuZ3RoID4gMCB8fCBpdGVtWydjaGlsZFRlbXBsYXRlJ10pICYmIG9uSG92ZXIoaXRlbSwgcm93KTsgY2xvc2VPbkxlYXZlPXRydWUgLS0+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImljb25cIiAqbmdJZj1cInNob3dJY29uQ29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwibWF0SWNvblJ4LnRlc3QoaXRlbS5pY29uKTsgZWxzZSBtYXRJY29uXCIgW3NyY109XCJpdGVtLmljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtYXRJY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbZm9udEljb25dPVwiaXRlbS5pY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSAnTm9ybWFsJyBhY3Rpb24gYmFzZWQgaXRlbSAtLT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUucGFkZGluZy1sZWZ0XT1cInNob3dJY29uQ29sdW1uID8gMCA6ICcxNnB4J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIml0ZW0ubGlua1RhcmdldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiKGl0ZW1bJ19saW5rJ10gfHwgaXRlbS5saW5rKSA/IHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGl0ZW1bJ19saW5rJ10gfHwgaXRlbS5saW5rKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiRhbnkoaXRlbS5sYWJlbFRlbXBsYXRlKT8ucHJvdG90eXBlOyBlbHNlIGxhYmVsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShpdGVtKS5sYWJlbFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICckaW1wbGljaXQnOiBkYXRhLCAnZGlhbG9nJzogZGlhbG9nUmVmIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbGFiZWxUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhJGFueShpdGVtKT8ubGFiZWxUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJpdGVtWydfZm9ybWF0dGVkTGFiZWwnXVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiJGFueShpdGVtKT8ubGFiZWxUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7JGFueShpdGVtKT8ubGFiZWxUZW1wbGF0ZShkYXRhIHx8IHt9KX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJzaG9ydGN1dFwiICpuZ0lmPVwic2hvd1Nob3J0Y3V0Q29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uc2hvcnRjdXRMYWJlbH19XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cIm1pbi13aWR0aDogMTZweFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY2hpbGRUZW1wbGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtLmNoaWxkcmVuUmVzb2x2ZXIgJiYgIWl0ZW1bJ19pc1Jlc29sdmluZyddKVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXRsZT1cInRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGV2cm9uX3JpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgKm5nSWY9XCJpdGVtWydfaXNSZXNvbHZpbmcnXVwiIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW2RpYW1ldGVyXT1cIjIwXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweFwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiaXRlbSAhPSAnc2VwYXJhdG9yJyAmJiBpdGVtLnNlcGFyYXRvciA9PSB0cnVlXCIgY2xhc3M9XCJkaXNhYmxlZCBzZXBhcmF0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiY2VudGVyXCIgW2F0dHIuY29sc3Bhbl09XCIyICsgKHNob3dJY29uQ29sdW1uID8gMSA6IDApICsgKHNob3dTaG9ydGN1dENvbHVtbiA/IDEgOiAwKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbVsnbGFiZWwnXSB8fCAnJ319XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJpdGVtID09ICdzZXBhcmF0b3InXCIgY2xhc3M9XCJkaXNhYmxlZCBzZXBhcmF0b3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiMiArIChzaG93SWNvbkNvbHVtbiA/IDEgOiAwKSArIChzaG93U2hvcnRjdXRDb2x1bW4gPyAxIDogMClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoci8+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPCEtLSA8ZGl2ICpuZ0lmPVwidHJ1ZVwiIGNsYXNzPVwiYmFja2Ryb3BcIj48L2Rpdj4gLS0+XG48IS0tIDxkaXZcbiAgICAqbmdJZj1cInBhcmVudENvcmRzICYmIHRoaXMuc2VsZkNvcmRzXCJcbiAgICBjbGFzcz1cImJhY2tkcm9wIHBhcmVudFwiXG4gICAgW3N0eWxlLnRvcF09XCIocGFyZW50Q29yZHMueSAtIHNlbGZDb3Jkcy55ICsgNikgKyAncHgnXCJcbiAgICBbc3R5bGUubGVmdF09XCIocGFyZW50Q29yZHMueCAtIHNlbGZDb3Jkcy54ICsgMTIpICsgJ3B4J1wiXG4gICAgW3N0eWxlLndpZHRoXT1cIihwYXJlbnRDb3Jkcy53aWR0aCkgKyAncHgnXCJcbiAgICBbc3R5bGUuaGVpZ2h0XT1cIihwYXJlbnRDb3Jkcy5oZWlnaHQpICsgJ3B4J1wiXG4+XG48L2Rpdj4gLS0+XG48IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXJlbnRDb3JkcyAmJiBzZWxmQ29yZHNcIj5cbiAgICA8ZGl2ICN0b3BcbiAgICAgICAgY2xhc3M9XCJiYWNrZHJvcC1vdXRlclwiXG4gICAgICAgIFtzdHlsZS5ib3R0b21dPVwiKHBhcmVudENvcmRzLnkgLSBzZWxmQ29yZHMueSkqLTEgKyBwYXJlbnRDb3Jkcy5oZWlnaHQgKyAncHgnXCJcbiAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kOiAjZjAwMztcIlxuICAgICAgICAocG9pbnRlcmVudGVyKT1cIm9uTGVhdmUoKVwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXYgI3JpZ2h0XG4gICAgICAgIGNsYXNzPVwiYmFja2Ryb3Atb3V0ZXJcIlxuICAgICAgICBbc3R5bGUubGVmdF09XCIoKHBhcmVudENvcmRzLnggLSBzZWxmQ29yZHMueCkgKyBwYXJlbnRDb3Jkcy53aWR0aCkgKyAncHgnXCJcbiAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kOiAjMGYwMztcIlxuICAgICAgICAocG9pbnRlcmVudGVyKT1cIm9uTGVhdmUoKVwiXG4gICAgPlxuICAgIDxkaXY+cHg6IHt7cGFyZW50Q29yZHMueH19PC9kaXY+XG4gICAgPGRpdj5weToge3twYXJlbnRDb3Jkcy55fX08L2Rpdj5cbiAgICA8ZGl2PnB3OiB7e3BhcmVudENvcmRzLndpZHRofX08L2Rpdj5cbiAgICA8ZGl2PnBoOiB7e3BhcmVudENvcmRzLmhlaWdodH19PC9kaXY+XG4gICAgPGRpdj5zeDoge3tzZWxmQ29yZHMueH19PC9kaXY+XG4gICAgPGRpdj5zeToge3tzZWxmQ29yZHMueX19PC9kaXY+XG4gICAgPGRpdj5zdzoge3tzZWxmQ29yZHMud2lkdGh9fTwvZGl2PlxuICAgIDxkaXY+c2g6IHt7c2VsZkNvcmRzLmhlaWdodH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAjYm90dG9tXG4gICAgICAgIGNsYXNzPVwiYmFja2Ryb3Atb3V0ZXJcIlxuICAgICAgICBbc3R5bGUudG9wXT1cIigocGFyZW50Q29yZHMueSArIHBhcmVudENvcmRzLmhlaWdodCAtIHNlbGZDb3Jkcy55KSkgKyAncHgnXCJcbiAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kOiAjMDBmMztcIlxuICAgICAgICAocG9pbnRlcmVudGVyKT1cIm9uTGVhdmUoKVwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXYgI2xlZnRcbiAgICAgICAgY2xhc3M9XCJiYWNrZHJvcC1vdXRlclwiXG4gICAgICAgIFtzdHlsZS5yaWdodF09XCIoKHBhcmVudENvcmRzLnggLSBzZWxmQ29yZHMueCkqLTEgKyBwYXJlbnRDb3Jkcy53aWR0aCArIDMyKSArICdweCdcIlxuICAgICAgICBzdHlsZT1cImJhY2tncm91bmQ6ICNmZmYzO1wiXG4gICAgICAgIChwb2ludGVyZW50ZXIpPVwib25MZWF2ZSgpXCJcbiAgICA+PC9kaXY+XG48L25nLWNvbnRhaW5lcj4gLS0+XG4iXX0=
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZLLE9BQU8sRUFBZ0IsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RSxPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFHdEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxFQUFFLFNBQXFCLEVBQUUsT0FBWSxFQUFFLEVBQUU7SUFDNUUsTUFBTSxJQUFJLEdBQUc7UUFDVCxJQUFJLEVBQUUsT0FBTztRQUNiLEtBQUssRUFBRSxTQUFTO1FBQ2hCLE1BQU0sRUFBRSxFQUFFO1FBQ1YsRUFBRSxFQUFFLElBQUk7S0FDWCxDQUFBO0lBRUQsT0FBTyxtQkFBbUIsQ0FBQyxhQUFhLEVB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QUFDO1lBQ3hGLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSxDQUFDO1NBQ3ZDO1FBRUQsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQy9CLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUE7WUFDdEYsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxPQUFPLENBQUM7U0FDekM7SUFDTCxDQUFDOzswR0FqTlEsYUFBYSw4RUFrQkUsZUFBZTs4RkFsQjlCLGFBQWEsdVFDckcxQiw4M0xBaUlBLHl6RERwQ1EsSUFBSSw2RkFDSixPQUFPLG1IQUNQLGdCQUFnQixtSkFDaEIsYUFBYSxtTEFDYix3QkFBd0I7MkZBSW5CLGFBQWE7a0JBYnpCLFNBQVM7K0JBQ0ksVUFBVSxXQUdYO3dCQUNMLElBQUk7d0JBQ0osT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2Isd0JBQXdCO3FCQUMzQixjQUNXLElBQUk7OzBCQW9CWCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUNsQyxRQUFROzswQkFDUixRQUFROzRFQW5CRyxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLEVBQUU7c0JBQWpCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFzTEMsUUFBUTtzQkFEZixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0Zvck9mLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIGNyZWF0ZUFwcGxpY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lbnVJdGVtLCBNZW51T3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL21lbnUnO1xuXG5leHBvcnQgY29uc3QgY2FsY01lbnVJdGVtQm91bmRzID0gYXN5bmMgKG1lbnVJdGVtczogTWVudUl0ZW1bXSwgZGF0YU9iajogYW55KSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgZGF0YTogZGF0YU9iaixcbiAgICAgICAgaXRlbXM6IG1lbnVJdGVtcyxcbiAgICAgICAgY29uZmlnOiB7fSxcbiAgICAgICAgaWQ6IG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gY2FsY0NvbXBvbmVudEJvdW5kcyhNZW51Q29tcG9uZW50LCBkYXRhKTtcbn1cblxuY29uc3QgY2FsY0NvbXBvbmVudEJvdW5kcyA9IGFzeW5jIChjb21wb25lbnQ6IFR5cGU8YW55PiwgZGF0YTogYW55KSA9PiB7XG4gICAgLy8gRm9yY2libHkgYm9vdHN0cmFwIHRoZSBjdHggbWVudSBvdXRzaWRlIG9mIHRoZSBjbGllbnQgYXBwbGljYXRpb24ncyB6b25lLlxuICAgIGNvbnN0IGFwcCA9IGF3YWl0IGNyZWF0ZUFwcGxpY2F0aW9uKHtcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICB7IHByb3ZpZGU6IE1BVF9ESUFMT0dfREFUQSwgdXNlVmFsdWU6IGRhdGEgfVxuICAgICAgICBdXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgIGRlbC5zdHlsZS5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIjtcbiAgICBkZWwuc3R5bGUubGVmdCA9ICctMTAwMHZ3JztcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChkZWwpO1xuXG4gICAgY29uc3QgYmFzZSA9IGFwcC5ib290c3RyYXAoY29tcG9uZW50LCBkZWwpO1xuICAgIGNvbnN0IHsgaW5zdGFuY2UgfSA9IGJhc2U7XG5cbiAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbShhcHAuaXNTdGFibGUpO1xuXG4gICAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gaW5zdGFuY2Uudmlld0NvbnRhaW5lcj8uZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBhcHAuZGVzdHJveSgpO1xuICAgIGRlbC5yZW1vdmUoKTtcbiAgICByZXR1cm4gcmVjdDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtbWVudS10ZW1wbGF0ZS13cmFwcGVyJyxcblxuICAgIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlVHlwZSA9PSAndGVtcGxhdGUnOyBlbHNlIHBvcnRhbE91dGxldFwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAnJGltcGxpY2l0JzogZGF0YSwgZGlhbG9nOiBkaWFsb2dSZWYgfVwiXG4gICAgICAgIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNwb3J0YWxPdXRsZXQgW2Nka1BvcnRhbE91dGxldF09XCJjb21wb25lbnRQb3J0YWxcIiA+PC9uZy10ZW1wbGF0ZT5cbmAsXG4gICAgaW1wb3J0czogWyBOZ1RlbXBsYXRlT3V0bGV0LCBQb3J0YWxNb2R1bGUsIE5nSWYgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuY2xhc3MgVGVtcGxhdGVXcmFwcGVyIHtcblxuICAgIGRhdGE6IE9iamVjdDtcbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHRlbXBsYXRlVHlwZTogXCJ0ZW1wbGF0ZVwiIHwgXCJjb21wb25lbnRcIlxuICAgIGNvbXBvbmVudFBvcnRhbDogQ29tcG9uZW50UG9ydGFsPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPGFueT4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhOiBhbnksXG4gICAgICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGF0YSA9IF9kYXRhLmRhdGE7XG4gICAgICAgIHRoaXMudGVtcGxhdGUgPSBfZGF0YS50ZW1wbGF0ZTtcblxuICAgICAgICAvLyBUT0RPOiBUaGlzIGlzIHByb2JhYmx5IGludmFsaWRcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVR5cGUgPSB0aGlzLnRlbXBsYXRlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYgPyBcInRlbXBsYXRlXCIgOiBcImNvbXBvbmVudFwiO1xuXG4gICAgICAgIGlmICh0aGlzLnRlbXBsYXRlVHlwZSA9PSBcImNvbXBvbmVudFwiKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy50ZW1wbGF0ZSBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25neC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdGb3JPZixcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhOiBhbnk7XG4gICAgQElucHV0KCkgcHVibGljIHBhcmVudENvcmRzOiBET01SZWN0O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpdGVtczogTWVudUl0ZW1bXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29uZmlnOiBNZW51T3B0aW9ucztcbiAgICBASW5wdXQoKSBwdWJsaWMgaWQ6IHN0cmluZztcblxuICAgIEBPdXRwdXQoKSBjbG9zZVNpZ25hbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHNlbGZDb3JkczogRE9NUmVjdDtcbiAgICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgYW55IHNsYXNoZXMgb3IgZG90cyAtLSB0aGF0IHdpbGwgY2xlYXJseSBleGNsdWRlIGl0IGZyb20gYmVpbmcgYSBtYXQgaWNvblxuICAgIHB1YmxpYyByZWFkb25seSBtYXRJY29uUnggPSAvW1xcL1xcLl0vaTtcbiAgICBzaG93SWNvbkNvbHVtbiA9IHRydWU7XG4gICAgc2hvd1Nob3J0Y3V0Q29sdW1uID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YTogYW55LFxuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csIC8vIG9wdGlvbmFsIG9ubHkgZm9yIHRoZSBwdXJwb3NlIG9mIGVzdGltYXRpbmcgZGltZW5zaW9uc1xuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8YW55PixcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgLy8gRGVmYXVsdHMgYXJlIHNldCBiZWZvcmUgQElucHV0KCkgaG9va3MgZXZhbHVhdGVcbiAgICAgICAgdGhpcy5kYXRhICA9IHRoaXMuX2RhdGE/LmRhdGE7XG4gICAgICAgIHRoaXMucGFyZW50Q29yZHMgID0gdGhpcy5fZGF0YT8ucGFyZW50Q29yZHM7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLl9kYXRhPy5pdGVtcztcbiAgICAgICAgdGhpcy5jb25maWcgPSB0aGlzLl9kYXRhPy5jb25maWc7XG4gICAgICAgIHRoaXMuaWQgPSB0aGlzLl9kYXRhPy5pZDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pdGVtcz8uZm9yRWFjaChpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaSA9PSBcInN0cmluZ1wiKSByZXR1cm47XG5cbiAgICAgICAgICAgIC8vIFNldCBkZWZhdWx0c1xuICAgICAgICAgICAgaVsnX2Rpc2FibGVkJ10gPSBmYWxzZTtcbiAgICAgICAgICAgIGlbJ192aXNpYmxlJ10gPSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAoaS5sYWJlbClcbiAgICAgICAgICAgICAgICB0cnkgeyBpWydfZm9ybWF0dGVkTGFiZWwnXSA9IHRoaXMuZm9ybWF0TGFiZWwoaS5sYWJlbCk7IH0gY2F0Y2ggKGUpIHsgY29uc29sZS53YXJuKGUpIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBpLmlzRGlzYWJsZWQgPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgICAgIHRyeSB7IGlbJ19kaXNhYmxlZCddID0gaS5pc0Rpc2FibGVkKHRoaXMuZGF0YSB8fCB7fSk7IH0gY2F0Y2goZSkgeyBjb25zb2xlLndhcm4oZSkgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGkuaXNWaXNpYmxlID09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICAgICAgICB0cnkgeyBpWydfdmlzaWJsZSddID0gaS5pc1Zpc2libGUodGhpcy5kYXRhIHx8IHt9KTsgfSBjYXRjaCAoZSkgeyBjb25zb2xlLndhcm4oZSkgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGkubGlua1RlbXBsYXRlID09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICAgICAgICB0cnkgeyBpWydfbGluayddID0gaS5saW5rVGVtcGxhdGUodGhpcy5kYXRhIHx8IHt9KTsgfSBjYXRjaCAoZSkgeyBjb25zb2xlLndhcm4oZSkgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTaG93IHRoZSBpY29uIGNvbHVtbiBpZiB0aGVyZSBhcmUgYW55IGl0ZW1zIHdpdGggYW4gaWNvblxuICAgICAgICB0aGlzLnNob3dJY29uQ29sdW1uID0gISF0aGlzLml0ZW1zPy5maW5kKGkgPT5cbiAgICAgICAgICAgICAgICB0eXBlb2YgaSA9PSBcIm9iamVjdFwiICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIGlbJ2ljb24nXSA9PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAgICAgaVsnaWNvbiddLmxlbmd0aCA+IDJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zaG93U2hvcnRjdXRDb2x1bW4gPSAhIXRoaXMuaXRlbXM/LmZpbmQoaSA9PlxuICAgICAgICAgICAgICAgIHR5cGVvZiBpID09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgaVsnc2hvcnRjdXQnXSA9PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAgICAgaVsnc2hvcnRjdXQnXS5sZW5ndGggPiAyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAvLyAgICAgdGhpcy5jbG9zZU9uTGVhdmUgPSB0cnVlXG4gICAgICAgIC8vIH0sIDMwMCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5wYXJlbnRDb3Jkcykge1xuICAgICAgICAgICAgdGhpcy5zZWxmQ29yZHMgPSB0aGlzLnZpZXdDb250YWluZXI/LmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtXG4gICAgICogQHBhcmFtIGV2dFxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgYXN5bmMgb25NZW51SXRlbUNsaWNrKGl0ZW06IE1lbnVJdGVtLCByb3c6IEhUTUxUYWJsZVJvd0VsZW1lbnQsIGhpZGVCYWNrZHJvcCA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PSAnc3RyaW5nJykgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmIChpdGVtLnNlcGFyYXRvcikgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgLy8gSWYgY2FjaGUgaXMgZW5hYmxlZCwgb25seSBsb2FkIGlmIHdlIGRvbid0IGhhdmUgYW55IGNoaWxkcmVuLlxuICAgICAgICBjb25zdCBmb3JjZUxvYWQgPSAoaXRlbS5jYWNoZVJlc29sdmVkQ2hpbGRyZW4gPyAhaXRlbS5jaGlsZHJlbiA6IHRydWUpO1xuXG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuUmVzb2x2ZXIgJiYgZm9yY2VMb2FkKSB7XG4gICAgICAgICAgICBpdGVtWydfaXNSZXNvbHZpbmcnXSA9IHRydWU7XG4gICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gYXdhaXQgaXRlbS5jaGlsZHJlblJlc29sdmVyKHRoaXMuZGF0YSk7XG4gICAgICAgICAgICBpdGVtWydfaXNSZXNvbHZpbmcnXSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpdGVtLmNoaWxkVGVtcGxhdGUgJiYgIWl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmIChpdGVtLmFjdGlvbikge1xuICAgICAgICAgICAgICAgIGl0ZW0uYWN0aW9uKHRoaXMuZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgbm8gYWN0aW9uLCB0aGlzIGlzIHNpbXBseSBhIHRleHQgaXRlbS5cblxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBOZWVkIFggcG9zLCBZIHBvcywgd2lkdGggYW5kIGhlaWdodFxuICAgICAgICBjb25zdCBib3VuZHMgPSByb3cuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgY29uc3QgY29yZHMgPSB7XG4gICAgICAgICAgICB0b3A6IG51bGwsXG4gICAgICAgICAgICBsZWZ0OiBudWxsLFxuICAgICAgICAgICAgYm90dG9tOiBudWxsLFxuICAgICAgICAgICAgcmlnaHQ6IG51bGxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBTZXQgcG9zaXRpb24gY29vcmRpbmF0ZXNcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBhd2FpdCAoaXRlbS5jaGlsZFRlbXBsYXRlXG4gICAgICAgICAgICA/IGNhbGNDb21wb25lbnRCb3VuZHMoVGVtcGxhdGVXcmFwcGVyLCB7IHRlbXBsYXRlOiBpdGVtLmNoaWxkVGVtcGxhdGUgfSlcbiAgICAgICAgICAgIDogY2FsY01lbnVJdGVtQm91bmRzKGl0ZW0uY2hpbGRyZW4sIHRoaXMuZGF0YSkpO1xuXG4gICAgICAgIGlmIChib3VuZHMueSArIGhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodClcbiAgICAgICAgICAgIGNvcmRzLmJvdHRvbSA9IFwiMHB4XCI7XG4gICAgICAgIGlmIChib3VuZHMueCArIGJvdW5kcy53aWR0aCArIHdpZHRoID4gd2luZG93LmlubmVyV2lkdGgpXG4gICAgICAgICAgICBjb3Jkcy5sZWZ0ID0gKChib3VuZHMueCAtIHdpZHRoKSkgKyBcInB4XCI7XG5cbiAgICAgICAgaWYgKCFjb3Jkcy5ib3R0b20pIGNvcmRzLnRvcCA9IGJvdW5kcy55ICsgXCJweFwiO1xuICAgICAgICBpZiAoIWNvcmRzLmxlZnQpIGNvcmRzLmxlZnQgPSBib3VuZHMueCArIGJvdW5kcy53aWR0aCArIFwicHhcIjtcblxuICAgICAgICBjb25zdCBjb21wb25lbnQgPSBpdGVtLmNoaWxkcmVuID8gTWVudUNvbXBvbmVudCA6IFRlbXBsYXRlV3JhcHBlciBhcyBhbnk7XG5cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3Blbihjb21wb25lbnQsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBjb3JkcyxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFtcIm5neC1tZW51XCIsIFwibmd4LWFwcC1tZW51XCJdLmNvbmNhdCh0aGlzLmNvbmZpZz8uY3VzdG9tQ2xhc3MgfHwgW10pLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogXCJuZ3gtbWVudS1iYWNrZHJvcFwiLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6ICFoaWRlQmFja2Ryb3AsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZGF0YTogdGhpcy5kYXRhLFxuICAgICAgICAgICAgICAgIHBhcmVudENvcmRzOiB0aGlzLnZpZXdDb250YWluZXI/LmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBpdGVtLmNoaWxkcmVuLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlOiBpdGVtLmNoaWxkVGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZ1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgX3MgPSBkaWFsb2dSZWZcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgdHlwZW9mIGl0ZW0uYWN0aW9uID09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5hY3Rpb24ocmVzdWx0KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVsnX3NlbGZjbG9zZSddID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIF9zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBsYWJlbFxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgZm9ybWF0TGFiZWwobGFiZWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBsYWJlbC5yZXBsYWNlKC9fKFthLXowLTldKV8vaSwgKG1hdGNoLCBncm91cCkgPT4gYDx1PiR7Z3JvdXB9PC91PmApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIHRoZSBjb250ZXh0IG1lbnUgdW5kZXIgdGhlc2UgY2lyY3Vtc3RhbmNlc1xuICAgICAqL1xuICAgIC8vIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIsIFsnZXZlbnQnXSlcbiAgICAvLyBASG9zdExpc3RlbmVyKFwid2luZG93OmJsdXJcIiwgWydldmVudCddKVxuICAgIGNsb3NlKCkge1xuICAgICAgICB0aGlzLmNsb3NlU2lnbmFsLmVtaXQoKTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgZGlhbG9nIGlzIGNsaXBwaW5nIG9mZnNjcmVlblxuICAgICAqIGlmIHNvLCBtb3ZlIGl0IGJhY2sgaW50byB2aWV3LlxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIpXG4gICAgcHJpdmF0ZSBvblJlc2l6ZSgpIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXI/LmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICghZWwpIHJldHVybjtcblxuICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQsIHgsIHkgfSA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIubmd4LW1lbnVcIikgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICghdGFyZ2V0KSByZXR1cm47XG5cbiAgICAgICAgLy8gTW92ZSBiYWNrIGludG8gdmlldyBpZiB3ZSdyZSBjbGlwcGluZyBvdXRzaWRlIG9mIHRoZSBib3R0b21cbiAgICAgICAgaWYgKHkgKyBoZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1RvcCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgLSAoaGVpZ2h0ICsgKHRoaXMuY29uZmlnLmVkZ2VQYWRkaW5nIHx8IDEyKSkpICsgXCJweFwiO1xuICAgICAgICAgICAgdGFyZ2V0LnN0eWxlWydtYXJnaW4tdG9wJ10gPSBuZXdUb3A7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBNb3ZlIGJhY2sgaW50byB2aWV3IGlmIHdlJ3JlIGNsaXBwaW5nIG9mZiB0aGUgcmlnaHRcbiAgICAgICAgaWYgKHggKyB3aWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdMZWZ0ID0gKHdpbmRvdy5pbm5lcldpZHRoIC0gKHdpZHRoICsgKHRoaXMuY29uZmlnLmVkZ2VQYWRkaW5nIHx8IDEyKSkpICsgXCJweFwiXG4gICAgICAgICAgICB0YXJnZXQuc3R5bGVbJ21hcmdpbi1sZWZ0J10gPSBuZXdMZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gcHJpdmF0ZSBob3ZlcmVkSXRlbXM6IE1hdERpYWxvZ1JlZjxhbnk+W107XG4gICAgLy8gYXN5bmMgb25Ib3ZlcihpdGVtLCByb3c6IEhUTUxUYWJsZVJvd0VsZW1lbnQpIHtcbiAgICAvLyAgICAgdGhpcy5ob3ZlcmVkSXRlbXMuZm9yRWFjaChpID0+IGkuY2xvc2UoLTEpKTtcblxuICAgIC8vICAgICBpZiAodHlwZW9mIGl0ZW1bJ19zZWxmY2xvc2UnXSA9PSAnbnVtYmVyJyAmJiAoRGF0ZS5ub3coKSAtIGl0ZW1bJ19zZWxmY2xvc2UnXSkgPCAzKjEwMDApIHJldHVybjtcblxuICAgIC8vICAgICBjb25zdCBoaSA9IGF3YWl0IHRoaXMub25NZW51SXRlbUNsaWNrKGl0ZW0sIHJvdywgdHJ1ZSk7XG4gICAgLy8gICAgIHRoaXMuaG92ZXJlZEl0ZW1zLnB1c2goaGkpO1xuXG4gICAgLy8gICAgIGhpLmFmdGVyQ2xvc2VkKCkudG9Qcm9taXNlKCkudGhlbihlID0+IHtcbiAgICAvLyAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAvLyAgICAgICAgIHRoaXMuaG92ZXJlZEl0ZW1zLnNwbGljZSh0aGlzLmhvdmVyZWRJdGVtcy5maW5kSW5kZXgoaSA9PiBpID09IGhpKSwgMSk7XG4gICAgLy8gICAgIH0pXG4gICAgLy8gfVxuXG4gICAgLy8gY2xvc2VPbkxlYXZlID0gZmFsc2U7XG4gICAgLy8gYXN5bmMgb25MZWF2ZSgpIHtcbiAgICAvLyAgICAgaWYgKHRoaXMuY2xvc2VPbkxlYXZlKSB7XG4gICAgLy8gICAgICAgICBpZiAodGhpcy5ob3ZlcmVkSXRlbXMubGVuZ3RoID4gMCkge1xuICAgIC8vICAgICAgICAgICAgIHRoaXMuaG92ZXJlZEl0ZW1zLmZvckVhY2goaSA9PiBpLmNsb3NlKC0xKSk7XG4gICAgLy8gICAgICAgICAgICAgdGhpcy5ob3ZlcmVkSXRlbXMuc3BsaWNlKDApO1xuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgICAgZWxzZSB7XG4gICAgLy8gICAgICAgICAgICAgdGhpcy5jbG9zZVNpZ25hbC5uZXh0KC0xKTtcblxuICAgIC8vICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKC0xKTtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbn1cbiIsIjx0YWJsZT5cbiAgICA8dGJvZHk+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8IS0tIEEgcm93IHdpdGggYSBjbGljayBhY3Rpb24gLS0+XG4gICAgICAgICAgICAgICAgPHRyICNyb3dcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtICE9ICdzZXBhcmF0b3InICYmIGl0ZW0uc2VwYXJhdG9yICE9IHRydWUgJiYgaXRlbVsnX3Zpc2libGUnXVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpdGVtWydfZGlzYWJsZWQnXVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIhaXRlbVsnX2Rpc2FibGVkJ10gJiYgb25NZW51SXRlbUNsaWNrKGl0ZW0sIHJvdylcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaG92ZXJdPVwiaXRlbVsnY2hpbGRyZW4nXSAmJiByb3dbJ2hvdmVyJ11cIlxuICAgICAgICAgICAgICAgICAgICAocG9pbnRlcmVudGVyKT1cInJvd1snaG92ZXInXSA9IHRydWU7XCJcbiAgICAgICAgICAgICAgICAgICAgKHBvaW50ZXJsZWF2ZSk9XCJyb3dbJ2hvdmVyJ10gPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwhLS0gIChpdGVtWydjaGlsZHJlbiddPy5sZW5ndGggPiAwIHx8IGl0ZW1bJ2NoaWxkVGVtcGxhdGUnXSkgJiYgb25Ib3ZlcihpdGVtLCByb3cpOyBjbG9zZU9uTGVhdmU9dHJ1ZSAtLT5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaWNvblwiICpuZ0lmPVwic2hvd0ljb25Db2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJtYXRJY29uUngudGVzdChpdGVtLmljb24pOyBlbHNlIG1hdEljb25cIiBbc3JjXT1cIml0ZW0uaWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI21hdEljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtmb250SWNvbl09XCJpdGVtLmljb25cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cblxuICAgICAgICAgICAgICAgICAgICA8IS0tICdOb3JtYWwnIGFjdGlvbiBiYXNlZCBpdGVtIC0tPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwic2hvd0ljb25Db2x1bW4gPyAwIDogJzE2cHgnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwiaXRlbS5saW5rVGFyZ2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCIoaXRlbVsnX2xpbmsnXSB8fCBpdGVtLmxpbmspID8gc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoaXRlbVsnX2xpbmsnXSB8fCBpdGVtLmxpbmspIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiJGFueShpdGVtLmxhYmVsVGVtcGxhdGUpPy5wcm90b3R5cGU7IGVsc2UgbGFiZWxUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGl0ZW0pLmxhYmVsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJyRpbXBsaWNpdCc6IGRhdGEsICdkaWFsb2cnOiBkaWFsb2dSZWYgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsYWJlbFRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEkYW55KGl0ZW0pPy5sYWJlbFRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cIml0ZW1bJ19mb3JtYXR0ZWRMYWJlbCddXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIkYW55KGl0ZW0pPy5sYWJlbFRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3skYW55KGl0ZW0pPy5sYWJlbFRlbXBsYXRlKGRhdGEgfHwge30pfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInNob3J0Y3V0XCIgKm5nSWY9XCJzaG93U2hvcnRjdXRDb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5zaG9ydGN1dExhYmVsfX1cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwibWluLXdpZHRoOiAxNnB4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jaGlsZFRlbXBsYXRlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW0uY2hpbGRyZW5SZXNvbHZlciAmJiAhaXRlbVsnX2lzUmVzb2x2aW5nJ10pXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5dGxlPVwidHJhbnNmb3JtOiB0cmFuc2xhdGVZKDJweClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZXZyb25fcmlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lciAqbmdJZj1cIml0ZW1bJ19pc1Jlc29sdmluZyddXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbZGlhbWV0ZXJdPVwiMjBcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogNHB4XCIvPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJpdGVtICE9ICdzZXBhcmF0b3InICYmIGl0ZW0uc2VwYXJhdG9yID09IHRydWVcIiBjbGFzcz1cImRpc2FibGVkIHNlcGFyYXRvclwiPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJjZW50ZXJcIiBbYXR0ci5jb2xzcGFuXT1cIjIgKyAoc2hvd0ljb25Db2x1bW4gPyAxIDogMCkgKyAoc2hvd1Nob3J0Y3V0Q29sdW1uID8gMSA6IDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtWydsYWJlbCddIHx8ICcnfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cIml0ZW0gPT0gJ3NlcGFyYXRvcidcIiBjbGFzcz1cImRpc2FibGVkIHNlcGFyYXRvclwiPlxuICAgICAgICAgICAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCIyICsgKHNob3dJY29uQ29sdW1uID8gMSA6IDApICsgKHNob3dTaG9ydGN1dENvbHVtbiA/IDEgOiAwKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGhyLz5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdGJvZHk+XG48L3RhYmxlPlxuXG48IS0tIDxkaXYgKm5nSWY9XCJ0cnVlXCIgY2xhc3M9XCJiYWNrZHJvcFwiPjwvZGl2PiAtLT5cbjwhLS0gPGRpdlxuICAgICpuZ0lmPVwicGFyZW50Q29yZHMgJiYgdGhpcy5zZWxmQ29yZHNcIlxuICAgIGNsYXNzPVwiYmFja2Ryb3AgcGFyZW50XCJcbiAgICBbc3R5bGUudG9wXT1cIihwYXJlbnRDb3Jkcy55IC0gc2VsZkNvcmRzLnkgKyA2KSArICdweCdcIlxuICAgIFtzdHlsZS5sZWZ0XT1cIihwYXJlbnRDb3Jkcy54IC0gc2VsZkNvcmRzLnggKyAxMikgKyAncHgnXCJcbiAgICBbc3R5bGUud2lkdGhdPVwiKHBhcmVudENvcmRzLndpZHRoKSArICdweCdcIlxuICAgIFtzdHlsZS5oZWlnaHRdPVwiKHBhcmVudENvcmRzLmhlaWdodCkgKyAncHgnXCJcbj5cbjwvZGl2PiAtLT5cbjwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmVudENvcmRzICYmIHNlbGZDb3Jkc1wiPlxuICAgIDxkaXYgI3RvcFxuICAgICAgICBjbGFzcz1cImJhY2tkcm9wLW91dGVyXCJcbiAgICAgICAgW3N0eWxlLmJvdHRvbV09XCIocGFyZW50Q29yZHMueSAtIHNlbGZDb3Jkcy55KSotMSArIHBhcmVudENvcmRzLmhlaWdodCArICdweCdcIlxuICAgICAgICBzdHlsZT1cImJhY2tncm91bmQ6ICNmMDAzO1wiXG4gICAgICAgIChwb2ludGVyZW50ZXIpPVwib25MZWF2ZSgpXCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdiAjcmlnaHRcbiAgICAgICAgY2xhc3M9XCJiYWNrZHJvcC1vdXRlclwiXG4gICAgICAgIFtzdHlsZS5sZWZ0XT1cIigocGFyZW50Q29yZHMueCAtIHNlbGZDb3Jkcy54KSArIHBhcmVudENvcmRzLndpZHRoKSArICdweCdcIlxuICAgICAgICBzdHlsZT1cImJhY2tncm91bmQ6ICMwZjAzO1wiXG4gICAgICAgIChwb2ludGVyZW50ZXIpPVwib25MZWF2ZSgpXCJcbiAgICA+XG4gICAgPGRpdj5weDoge3twYXJlbnRDb3Jkcy54fX08L2Rpdj5cbiAgICA8ZGl2PnB5OiB7e3BhcmVudENvcmRzLnl9fTwvZGl2PlxuICAgIDxkaXY+cHc6IHt7cGFyZW50Q29yZHMud2lkdGh9fTwvZGl2PlxuICAgIDxkaXY+cGg6IHt7cGFyZW50Q29yZHMuaGVpZ2h0fX08L2Rpdj5cbiAgICA8ZGl2PnN4OiB7e3NlbGZDb3Jkcy54fX08L2Rpdj5cbiAgICA8ZGl2PnN5OiB7e3NlbGZDb3Jkcy55fX08L2Rpdj5cbiAgICA8ZGl2PnN3OiB7e3NlbGZDb3Jkcy53aWR0aH19PC9kaXY+XG4gICAgPGRpdj5zaDoge3tzZWxmQ29yZHMuaGVpZ2h0fX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICNib3R0b21cbiAgICAgICAgY2xhc3M9XCJiYWNrZHJvcC1vdXRlclwiXG4gICAgICAgIFtzdHlsZS50b3BdPVwiKChwYXJlbnRDb3Jkcy55ICsgcGFyZW50Q29yZHMuaGVpZ2h0IC0gc2VsZkNvcmRzLnkpKSArICdweCdcIlxuICAgICAgICBzdHlsZT1cImJhY2tncm91bmQ6ICMwMGYzO1wiXG4gICAgICAgIChwb2ludGVyZW50ZXIpPVwib25MZWF2ZSgpXCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdiAjbGVmdFxuICAgICAgICBjbGFzcz1cImJhY2tkcm9wLW91dGVyXCJcbiAgICAgICAgW3N0eWxlLnJpZ2h0XT1cIigocGFyZW50Q29yZHMueCAtIHNlbGZDb3Jkcy54KSotMSArIHBhcmVudENvcmRzLndpZHRoICsgMzIpICsgJ3B4J1wiXG4gICAgICAgIHN0eWxlPVwiYmFja2dyb3VuZDogI2ZmZjM7XCJcbiAgICAgICAgKHBvaW50ZXJlbnRlcik9XCJvbkxlYXZlKClcIlxuICAgID48L2Rpdj5cbjwvbmctY29udGFpbmVyPiAtLT5cbiJdfQ==
|
|
@@ -44,6 +44,7 @@ export class TooltipComponent {
|
|
|
44
44
|
this.dialogRef = dialogRef;
|
|
45
45
|
this.hasBootstrapped = false;
|
|
46
46
|
this.pointerIsOnVoid = false;
|
|
47
|
+
this.isLockedOpen = false;
|
|
47
48
|
this.coverRectCords = {
|
|
48
49
|
top: 0,
|
|
49
50
|
left: 0,
|
|
@@ -77,7 +78,7 @@ export class TooltipComponent {
|
|
|
77
78
|
this.hasBootstrapped = true;
|
|
78
79
|
if (this.pointerIsOnVoid)
|
|
79
80
|
this.dialogRef.close();
|
|
80
|
-
},
|
|
81
|
+
}, 200);
|
|
81
82
|
}
|
|
82
83
|
/**
|
|
83
84
|
* Close the tooltip if these actions occur
|
|
@@ -88,9 +89,13 @@ export class TooltipComponent {
|
|
|
88
89
|
onPointerLeave() {
|
|
89
90
|
this.dialogRef?.close();
|
|
90
91
|
}
|
|
92
|
+
closeOnVoid() {
|
|
93
|
+
console.log("fuck you");
|
|
94
|
+
this.dialogRef.close();
|
|
95
|
+
}
|
|
91
96
|
}
|
|
92
97
|
TooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", 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 });
|
|
93
|
-
TooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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": "onPointerLeave()" } }, 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 &&
|
|
98
|
+
TooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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": "onPointerLeave()" } }, 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 && !isLockedOpen && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"hasBootstrapped && dialogRef.close()\"\n></div>\n\n<div class=\"container\">\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]=\"{ '$implicit': data }\"\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:
|
|
94
99
|
// NgIf,
|
|
95
100
|
// NgTemplateOutlet,
|
|
96
101
|
// NgComponentOutlet,
|
|
@@ -102,7 +107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
102
107
|
// NgTemplateOutlet,
|
|
103
108
|
// NgComponentOutlet,
|
|
104
109
|
CommonModule,
|
|
105
|
-
], 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 &&
|
|
110
|
+
], 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 && !isLockedOpen && closeOnVoid()\"\n (pointerleave)=\"pointerIsOnVoid = false\"\n (pointerdown)=\"hasBootstrapped && dialogRef.close()\"\n></div>\n\n<div class=\"container\">\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]=\"{ '$implicit': data }\"\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"] }]
|
|
106
111
|
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
107
112
|
type: Optional
|
|
108
113
|
}, {
|
|
@@ -132,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
132
137
|
type: HostListener,
|
|
133
138
|
args: ["pointerleave"]
|
|
134
139
|
}] } });
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUd0QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsUUFBc0MsRUFBRSxJQUFTLEVBQUUsRUFBRTtJQUN6RixNQUFNLElBQUksR0FBRztRQUNULElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtRQUNoQixRQUFRO1FBQ1IsTUFBTSxFQUFFLEVBQUU7UUFDVixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7UUFDdEMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTtRQUMvQyxFQUFFLEVBQUUsSUFBSTtLQUNYLENBQUE7SUFDRCw0RUFBNEU7SUFDNUUsTUFBTSxHQUFHLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQztRQUNoQyxTQUFTLEVBQUU7WUFDUCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtTQUMvQztLQUNKLENBQUMsQ0FBQztJQUVILE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQ2hDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUMzQixRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUxQixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFMUIsTUFBTSxjQUFjLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRW5DLE1BQU0sRUFBRSxHQUFnQixRQUFRLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUM7SUFFdkUsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDeEMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2QsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRWIsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFBO0FBZUQsTUFBTSxPQUFPLGdCQUFnQjtJQWtCekIsWUFDVyxhQUErQixFQUNPLEtBQVUsRUFDcEMsTUFBaUIsRUFBRSx5REFBeUQ7SUFDNUUsU0FBNEI7UUFIeEMsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQ08sVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBZG5ELG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRXhCLG1CQUFjLEdBQUc7WUFDYixHQUFHLEVBQUUsQ0FBQztZQUNOLElBQUksRUFBRSxDQUFDO1lBQ1AsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsQ0FBQztTQUNYLENBQUE7UUFRRyxrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDO1FBQ3RELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQztRQUM1RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7SUFDN0QsQ0FBQztJQUVELFFBQVE7UUFFSixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLGNBQWMsR0FBRztZQUNsQixHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFO1lBQ3BDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxFQUFFO1lBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxFQUFFO1NBQ3BDLENBQUE7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLFlBQVksV0FBVztZQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzthQUN0QixJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxVQUFVO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDOztZQUV4QixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFFOUQsc0RBQXNEO1FBQ3RELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxlQUFlO2dCQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9CLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRDs7T0FFRztJQUdLLE9BQU87UUFDWCxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFHTyxjQUFjO1FBRWxCLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7NkdBeEVRLGdCQUFnQixrREFvQkQsZUFBZTtpR0FwQjlCLGdCQUFnQixrVEN4RDdCLHErQkFpQ0E7WURnQlEsUUFBUTtZQUNSLG9CQUFvQjtZQUNwQixxQkFBcUI7WUFDckIsWUFBWTsyRkFJUCxnQkFBZ0I7a0JBWjVCLFNBQVM7K0JBQ0ksYUFBYSxXQUdkO3dCQUNMLFFBQVE7d0JBQ1Isb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLFlBQVk7cUJBQ2YsY0FDVyxJQUFJOzswQkFzQlgsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlOzswQkFDbEMsUUFBUTs7MEJBQ1IsUUFBUTs0Q0FyQkosSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkEyREUsT0FBTztzQkFGZCxZQUFZO3VCQUFDLGVBQWU7O3NCQUM1QixZQUFZO3VCQUFDLGFBQWE7Z0JBTW5CLGNBQWM7c0JBRHJCLFlBQVk7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZUFwcGxpY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUG9wdXBPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMvcG9wdXAnO1xuXG5leHBvcnQgY29uc3QgY2FsY1Rvb2x0aXBCb3VuZHMgPSBhc3luYyAodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT4sIGRhdGE6IGFueSkgPT4ge1xuICAgIGNvbnN0IGFyZ3MgPSB7XG4gICAgICAgIGRhdGE6IGRhdGEgfHwge30sXG4gICAgICAgIHRlbXBsYXRlLFxuICAgICAgICBjb25maWc6IHt9LFxuICAgICAgICBzZWxmQ29yZHM6IHsgbGVmdDogXCIwcHhcIiwgdG9wOiBcIjBweFwiIH0sXG4gICAgICAgIG93bmVyQ29yZHM6IHsgeDogMCwgeTogMCwgd2lkdGg6IDAsIGhlaWdodDogMCB9LFxuICAgICAgICBpZDogbnVsbFxuICAgIH1cbiAgICAvLyBGb3JjaWJseSBib290c3RyYXAgdGhlIGN0eCBtZW51IG91dHNpZGUgb2YgdGhlIGNsaWVudCBhcHBsaWNhdGlvbidzIHpvbmUuXG4gICAgY29uc3QgYXBwID0gYXdhaXQgY3JlYXRlQXBwbGljYXRpb24oe1xuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgIHsgcHJvdmlkZTogTUFUX0RJQUxPR19EQVRBLCB1c2VWYWx1ZTogYXJncyB9XG4gICAgICAgIF1cbiAgICB9KTtcblxuICAgIGNvbnN0IGRlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgZGVsLnN0eWxlLnBvc2l0aW9uID0gXCJhYnNvbHV0ZVwiO1xuICAgIGRlbC5zdHlsZS5sZWZ0ID0gJy0xMDAwdncnO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGRlbCk7XG5cbiAgICBjb25zdCBiYXNlID0gYXBwLmJvb3RzdHJhcChUb29sdGlwQ29tcG9uZW50LCBkZWwpO1xuICAgIGNvbnN0IHsgaW5zdGFuY2UgfSA9IGJhc2U7XG5cbiAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbShhcHAuaXNTdGFibGUpO1xuXG4gICAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gaW5zdGFuY2Uudmlld0NvbnRhaW5lcj8uZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBhcHAuZGVzdHJveSgpO1xuICAgIGRlbC5yZW1vdmUoKTtcblxuICAgIHJldHVybiByZWN0O1xufVxuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LXRvb2x0aXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b29sdGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvLyBOZ0lmLFxuICAgICAgICAvLyBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICAvLyBOZ0NvbXBvbmVudE91dGxldCxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBkYXRhOiBhbnk7XG4gICAgQElucHV0KCkgY29uZmlnOiBQb3B1cE9wdGlvbnM7XG4gICAgQElucHV0KCkgb3duZXJDb3JkczogRE9NUmVjdDtcbiAgICBASW5wdXQoKSBzZWxmQ29yZHM7XG4gICAgQElucHV0KCkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT47XG5cbiAgICBpc1RlbXBsYXRlOiBib29sZWFuO1xuICAgIGhhc0Jvb3RzdHJhcHBlZCA9IGZhbHNlO1xuICAgIHBvaW50ZXJJc09uVm9pZCA9IGZhbHNlO1xuXG4gICAgY292ZXJSZWN0Q29yZHMgPSB7XG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICB3aWR0aDogMFxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgX2RhdGE6IGFueSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLCAvLyBvcHRpb25hbCBvbmx5IGZvciB0aGUgcHVycG9zZSBvZiBlc3RpbWF0aW5nIGRpbWVuc2lvbnNcbiAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPGFueT4sXG4gICAgKSB7XG4gICAgICAgIC8vIERlZmF1bHRzIGFyZSBzZXQgYmVmb3JlIEBJbnB1dCgpIGhvb2tzIGV2YWx1YXRlXG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YSB8fCB0aGlzLl9kYXRhPy5kYXRhIHx8IHt9O1xuICAgICAgICB0aGlzLmNvbmZpZyA9IHRoaXMuY29uZmlnIHx8IHRoaXMuX2RhdGE/LmNvbmZpZztcbiAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IHRoaXMudGVtcGxhdGUgfHwgdGhpcy5fZGF0YT8udGVtcGxhdGU7XG4gICAgICAgIHRoaXMub3duZXJDb3JkcyA9IHRoaXMub3duZXJDb3JkcyB8fCB0aGlzLl9kYXRhPy5vd25lckNvcmRzO1xuICAgICAgICB0aGlzLnNlbGZDb3JkcyA9IHRoaXMuc2VsZkNvcmRzIHx8IHRoaXMuX2RhdGE/LnNlbGZDb3JkcztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcblxuICAgICAgICBjb25zdCBzZWxmWSA9IHBhcnNlSW50KHRoaXMuc2VsZkNvcmRzLnRvcC5yZXBsYWNlKCdweCcsICcnKSk7XG4gICAgICAgIGNvbnN0IHNlbGZYID0gcGFyc2VJbnQodGhpcy5zZWxmQ29yZHMubGVmdC5yZXBsYWNlKCdweCcsICcnKSk7XG5cbiAgICAgICAgdGhpcy5jb3ZlclJlY3RDb3JkcyA9IHtcbiAgICAgICAgICAgIHRvcDogdGhpcy5vd25lckNvcmRzLnkgLSBzZWxmWSAtIDE2LFxuICAgICAgICAgICAgbGVmdDogdGhpcy5vd25lckNvcmRzLnggLSBzZWxmWCAtIDE2LFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLm93bmVyQ29yZHMuaGVpZ2h0ICsgMzIsXG4gICAgICAgICAgICB3aWR0aDogdGhpcy5vd25lckNvcmRzLndpZHRoICsgMzJcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRlbXBsYXRlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpXG4gICAgICAgICAgICB0aGlzLmlzVGVtcGxhdGUgPSB0cnVlO1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy50ZW1wbGF0ZSA9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICB0aGlzLmlzVGVtcGxhdGUgPSBmYWxzZTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5yZWNvZ25pemVkIHRlbXBsYXRlIG9iamVjdCBwcm92aWRlZC5cIik7XG5cbiAgICAgICAgLy8gVE9ETzogcmVzb2x2ZSB0aGUgZXZlbnQgaG9vayB3aXRoIHRoZSAudm9pZCBlbGVtZW50XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYXNCb290c3RyYXBwZWQgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMucG9pbnRlcklzT25Wb2lkKVxuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIH0sIDEwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSB0aGUgdG9vbHRpcCBpZiB0aGVzZSBhY3Rpb25zIG9jY3VyXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIilcbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OmJsdXJcIilcbiAgICBwcml2YXRlIG9uQ2xvc2UoKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJwb2ludGVybGVhdmVcIilcbiAgICBwcml2YXRlIG9uUG9pbnRlckxlYXZlKCkge1xuXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xuICAgIH1cbn1cbiIsIjwhLS0gTW91c2UgZXZlbnQgYmxvY2tlciBmb3IgcG9pbnRlciBsZWF2ZSAtLT5cbjxkaXZcbiAgICAqbmdJZj1cImNvdmVyUmVjdENvcmRzXCJcbiAgICBjbGFzcz1cIm93bmVyLW1hc2tcIlxuICAgIFtzdHlsZS50b3BdPVwiY292ZXJSZWN0Q29yZHMudG9wICsgJ3B4J1wiXG4gICAgW3N0eWxlLmxlZnRdPVwiY292ZXJSZWN0Q29yZHMubGVmdCArICdweCdcIlxuICAgIFtzdHlsZS5oZWlnaHRdPVwiY292ZXJSZWN0Q29yZHMuaGVpZ2h0ICsgJ3B4J1wiXG4gICAgW3N0eWxlLndpZHRoXT1cImNvdmVyUmVjdENvcmRzLndpZHRoICsgJ3B4J1wiXG4gICAgc3R5bGU9XCJ6LWluZGV4OiAtMTtcIlxuPjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwidm9pZFwiXG4gICAgKHBvaW50ZXJlbnRlcik9XCJwb2ludGVySXNPblZvaWQgPSB0cnVlOyBoYXNCb290c3RyYXBwZWQgJiYgZGlhbG9nUmVmLmNsb3NlKClcIlxuICAgIChwb2ludGVybGVhdmUpPVwicG9pbnRlcklzT25Wb2lkID0gZmFsc2VcIlxuICAgIChwb2ludGVyZG93bik9XCJoYXNCb290c3RyYXBwZWQgJiYgZGlhbG9nUmVmLmNsb3NlKClcIlxuPjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cImlzVGVtcGxhdGUgPT0gZmFsc2VcIlxuICAgICAgICBbbmdDb21wb25lbnRPdXRsZXRdPVwiJGFueSh0ZW1wbGF0ZSlcIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJpc1RlbXBsYXRlID09IHRydWVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueSh0ZW1wbGF0ZSlcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJyRpbXBsaWNpdCc6IGRhdGEgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUd0QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsUUFBc0MsRUFBRSxJQUFTLEVBQUUsRUFBRTtJQUN6RixNQUFNLElBQUksR0FBRztRQUNULElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtRQUNoQixRQUFRO1FBQ1IsTUFBTSxFQUFFLEVBQUU7UUFDVixTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUU7UUFDdEMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTtRQUMvQyxFQUFFLEVBQUUsSUFBSTtLQUNYLENBQUE7SUFDRCw0RUFB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YUFBYSxXQUdkO3dCQUNMLFFBQVE7d0JBQ1Isb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLFlBQVk7cUJBQ2YsY0FDVyxJQUFJOzswQkF1QlgsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlOzswQkFDbEMsUUFBUTs7MEJBQ1IsUUFBUTs0Q0F0QkosSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkE0REUsT0FBTztzQkFGZCxZQUFZO3VCQUFDLGVBQWU7O3NCQUM1QixZQUFZO3VCQUFDLGFBQWE7Z0JBTW5CLGNBQWM7c0JBRHJCLFlBQVk7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZUFwcGxpY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUG9wdXBPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMvcG9wdXAnO1xuXG5leHBvcnQgY29uc3QgY2FsY1Rvb2x0aXBCb3VuZHMgPSBhc3luYyAodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT4sIGRhdGE6IGFueSkgPT4ge1xuICAgIGNvbnN0IGFyZ3MgPSB7XG4gICAgICAgIGRhdGE6IGRhdGEgfHwge30sXG4gICAgICAgIHRlbXBsYXRlLFxuICAgICAgICBjb25maWc6IHt9LFxuICAgICAgICBzZWxmQ29yZHM6IHsgbGVmdDogXCIwcHhcIiwgdG9wOiBcIjBweFwiIH0sXG4gICAgICAgIG93bmVyQ29yZHM6IHsgeDogMCwgeTogMCwgd2lkdGg6IDAsIGhlaWdodDogMCB9LFxuICAgICAgICBpZDogbnVsbFxuICAgIH1cbiAgICAvLyBGb3JjaWJseSBib290c3RyYXAgdGhlIGN0eCBtZW51IG91dHNpZGUgb2YgdGhlIGNsaWVudCBhcHBsaWNhdGlvbidzIHpvbmUuXG4gICAgY29uc3QgYXBwID0gYXdhaXQgY3JlYXRlQXBwbGljYXRpb24oe1xuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgIHsgcHJvdmlkZTogTUFUX0RJQUxPR19EQVRBLCB1c2VWYWx1ZTogYXJncyB9XG4gICAgICAgIF1cbiAgICB9KTtcblxuICAgIGNvbnN0IGRlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgZGVsLnN0eWxlLnBvc2l0aW9uID0gXCJhYnNvbHV0ZVwiO1xuICAgIGRlbC5zdHlsZS5sZWZ0ID0gJy0xMDAwdncnO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGRlbCk7XG5cbiAgICBjb25zdCBiYXNlID0gYXBwLmJvb3RzdHJhcChUb29sdGlwQ29tcG9uZW50LCBkZWwpO1xuICAgIGNvbnN0IHsgaW5zdGFuY2UgfSA9IGJhc2U7XG5cbiAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbShhcHAuaXNTdGFibGUpO1xuXG4gICAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gaW5zdGFuY2Uudmlld0NvbnRhaW5lcj8uZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBhcHAuZGVzdHJveSgpO1xuICAgIGRlbC5yZW1vdmUoKTtcblxuICAgIHJldHVybiByZWN0O1xufVxuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LXRvb2x0aXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90b29sdGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvLyBOZ0lmLFxuICAgICAgICAvLyBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICAvLyBOZ0NvbXBvbmVudE91dGxldCxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBkYXRhOiBhbnk7XG4gICAgQElucHV0KCkgY29uZmlnOiBQb3B1cE9wdGlvbnM7XG4gICAgQElucHV0KCkgb3duZXJDb3JkczogRE9NUmVjdDtcbiAgICBASW5wdXQoKSBzZWxmQ29yZHM7XG4gICAgQElucHV0KCkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT47XG5cbiAgICBwdWJsaWMgaXNUZW1wbGF0ZTogYm9vbGVhbjtcbiAgICBwdWJsaWMgaGFzQm9vdHN0cmFwcGVkID0gZmFsc2U7XG4gICAgcHVibGljIHBvaW50ZXJJc09uVm9pZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0xvY2tlZE9wZW4gPSBmYWxzZTtcblxuICAgIGNvdmVyUmVjdENvcmRzID0ge1xuICAgICAgICB0b3A6IDAsXG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgd2lkdGg6IDBcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIF9kYXRhOiBhbnksXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZywgLy8gb3B0aW9uYWwgb25seSBmb3IgdGhlIHB1cnBvc2Ugb2YgZXN0aW1hdGluZyBkaW1lbnNpb25zXG4gICAgICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhbnk+LFxuICAgICkge1xuICAgICAgICAvLyBEZWZhdWx0cyBhcmUgc2V0IGJlZm9yZSBASW5wdXQoKSBob29rcyBldmFsdWF0ZVxuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEgfHwgdGhpcy5fZGF0YT8uZGF0YSB8fCB7fTtcbiAgICAgICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZyB8fCB0aGlzLl9kYXRhPy5jb25maWc7XG4gICAgICAgIHRoaXMudGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlIHx8IHRoaXMuX2RhdGE/LnRlbXBsYXRlO1xuICAgICAgICB0aGlzLm93bmVyQ29yZHMgPSB0aGlzLm93bmVyQ29yZHMgfHwgdGhpcy5fZGF0YT8ub3duZXJDb3JkcztcbiAgICAgICAgdGhpcy5zZWxmQ29yZHMgPSB0aGlzLnNlbGZDb3JkcyB8fCB0aGlzLl9kYXRhPy5zZWxmQ29yZHM7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG5cbiAgICAgICAgY29uc3Qgc2VsZlkgPSBwYXJzZUludCh0aGlzLnNlbGZDb3Jkcy50b3AucmVwbGFjZSgncHgnLCAnJykpO1xuICAgICAgICBjb25zdCBzZWxmWCA9IHBhcnNlSW50KHRoaXMuc2VsZkNvcmRzLmxlZnQucmVwbGFjZSgncHgnLCAnJykpO1xuXG4gICAgICAgIHRoaXMuY292ZXJSZWN0Q29yZHMgPSB7XG4gICAgICAgICAgICB0b3A6IHRoaXMub3duZXJDb3Jkcy55IC0gc2VsZlkgLSAxNixcbiAgICAgICAgICAgIGxlZnQ6IHRoaXMub3duZXJDb3Jkcy54IC0gc2VsZlggLSAxNixcbiAgICAgICAgICAgIGhlaWdodDogdGhpcy5vd25lckNvcmRzLmhlaWdodCArIDMyLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMub3duZXJDb3Jkcy53aWR0aCArIDMyXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50ZW1wbGF0ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKVxuICAgICAgICAgICAgdGhpcy5pc1RlbXBsYXRlID0gdHJ1ZTtcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHRoaXMudGVtcGxhdGUgPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgdGhpcy5pc1RlbXBsYXRlID0gZmFsc2U7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVucmVjb2duaXplZCB0ZW1wbGF0ZSBvYmplY3QgcHJvdmlkZWQuXCIpO1xuXG4gICAgICAgIC8vIFRPRE86IHJlc29sdmUgdGhlIGV2ZW50IGhvb2sgd2l0aCB0aGUgLnZvaWQgZWxlbWVudFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFzQm9vdHN0cmFwcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnBvaW50ZXJJc09uVm9pZClcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgICB9LCAyMDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIHRoZSB0b29sdGlwIGlmIHRoZXNlIGFjdGlvbnMgb2NjdXJcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiKVxuICAgIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6Ymx1clwiKVxuICAgIHByaXZhdGUgb25DbG9zZSgpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihcInBvaW50ZXJsZWF2ZVwiKVxuICAgIHByaXZhdGUgb25Qb2ludGVyTGVhdmUoKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xuICAgIH1cblxuICAgIGNsb3NlT25Wb2lkKCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcImZ1Y2sgeW91XCIpXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxufVxuIiwiPCEtLSBNb3VzZSBldmVudCBibG9ja2VyIGZvciBwb2ludGVyIGxlYXZlIC0tPlxuPGRpdlxuICAgICpuZ0lmPVwiY292ZXJSZWN0Q29yZHNcIlxuICAgIGNsYXNzPVwib3duZXItbWFza1wiXG4gICAgW3N0eWxlLnRvcF09XCJjb3ZlclJlY3RDb3Jkcy50b3AgKyAncHgnXCJcbiAgICBbc3R5bGUubGVmdF09XCJjb3ZlclJlY3RDb3Jkcy5sZWZ0ICsgJ3B4J1wiXG4gICAgW3N0eWxlLmhlaWdodF09XCJjb3ZlclJlY3RDb3Jkcy5oZWlnaHQgKyAncHgnXCJcbiAgICBbc3R5bGUud2lkdGhdPVwiY292ZXJSZWN0Q29yZHMud2lkdGggKyAncHgnXCJcbiAgICBzdHlsZT1cInotaW5kZXg6IC0xO1wiXG4+PC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJ2b2lkXCJcbiAgICAocG9pbnRlcmVudGVyKT1cInBvaW50ZXJJc09uVm9pZCA9IHRydWU7IGhhc0Jvb3RzdHJhcHBlZCAmJiAhaXNMb2NrZWRPcGVuICYmIGNsb3NlT25Wb2lkKClcIlxuICAgIChwb2ludGVybGVhdmUpPVwicG9pbnRlcklzT25Wb2lkID0gZmFsc2VcIlxuICAgIChwb2ludGVyZG93bik9XCJoYXNCb290c3RyYXBwZWQgJiYgZGlhbG9nUmVmLmNsb3NlKClcIlxuPjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cImlzVGVtcGxhdGUgPT0gZmFsc2VcIlxuICAgICAgICBbbmdDb21wb25lbnRPdXRsZXRdPVwiJGFueSh0ZW1wbGF0ZSlcIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJpc1RlbXBsYXRlID09IHRydWVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueSh0ZW1wbGF0ZSlcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJyRpbXBsaWNpdCc6IGRhdGEgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
@@ -25,7 +25,6 @@ export class MenuDirective {
|
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
if (!this.config?.trigger) {
|
|
28
|
-
el.onclick = this.openMenu.bind(this);
|
|
29
28
|
el.addEventListener('click', this.openMenu.bind(this));
|
|
30
29
|
}
|
|
31
30
|
else {
|
|
@@ -46,7 +45,7 @@ export class MenuDirective {
|
|
|
46
45
|
async openMenu(evt) {
|
|
47
46
|
const el = this.viewContainer.element.nativeElement;
|
|
48
47
|
el.classList.add("ngx-menu-open");
|
|
49
|
-
return openMenu(this.dialog, this.menuItems, this.data, evt, this.config)
|
|
48
|
+
return openMenu(this.dialog, this.menuItems, this.data, evt, this.config, el)
|
|
50
49
|
.then((...res) => {
|
|
51
50
|
el.classList.remove("ngx-menu-open");
|
|
52
51
|
return res;
|
|
@@ -58,36 +57,48 @@ export class MenuDirective {
|
|
|
58
57
|
}
|
|
59
58
|
}
|
|
60
59
|
MenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuDirective, deps: [{ token: i1.MatDialog }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
61
|
-
MenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: MenuDirective, isStandalone: true, selector: "[ngx-
|
|
60
|
+
MenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: MenuDirective, isStandalone: true, selector: "[ngx-contextmenu],[ngx-menu],[ngxContextmenu],[ngxMenu]", inputs: { data: ["ngx-menu-context", "data"], ctxMenuItems: ["ngx-contextmenu", "ctxMenuItems"], menuItems: ["ngx-menu", "menuItems"], config: ["ngx-menu-config", "config"] }, providers: [
|
|
62
61
|
MatDialog
|
|
63
62
|
], ngImport: i0 });
|
|
64
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MenuDirective, decorators: [{
|
|
65
64
|
type: Directive,
|
|
66
65
|
args: [{
|
|
67
|
-
selector: '[ngx-
|
|
66
|
+
selector: '[ngx-contextmenu],[ngx-menu],[ngxContextmenu],[ngxMenu]',
|
|
68
67
|
providers: [
|
|
69
68
|
MatDialog
|
|
70
69
|
],
|
|
71
70
|
standalone: true
|
|
72
71
|
}]
|
|
73
72
|
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i0.ViewContainerRef }]; }, propDecorators: { data: [{
|
|
73
|
+
type: Input,
|
|
74
|
+
args: ["ngxMenuContext"]
|
|
75
|
+
}, {
|
|
74
76
|
type: Input,
|
|
75
77
|
args: ["ngx-menu-context"]
|
|
76
78
|
}], ctxMenuItems: [{
|
|
77
79
|
type: Input,
|
|
78
|
-
args: ["
|
|
80
|
+
args: ["ngxContextmenu"]
|
|
81
|
+
}, {
|
|
82
|
+
type: Input,
|
|
83
|
+
args: ["ngx-contextmenu"]
|
|
79
84
|
}], menuItems: [{
|
|
85
|
+
type: Input,
|
|
86
|
+
args: ["ngxMenu"]
|
|
87
|
+
}, {
|
|
80
88
|
type: Input,
|
|
81
89
|
args: ["ngx-menu"]
|
|
82
90
|
}], config: [{
|
|
91
|
+
type: Input,
|
|
92
|
+
args: ["ngxMenuConfig"]
|
|
93
|
+
}, {
|
|
83
94
|
type: Input,
|
|
84
95
|
args: ["ngx-menu-config"]
|
|
85
96
|
}] } });
|
|
86
|
-
// Helper to open the
|
|
87
|
-
export const openMenu = async (dialog, menuItems, data, evt, config = {}) => {
|
|
97
|
+
// Helper to open the menu without using the directive.
|
|
98
|
+
export const openMenu = async (dialog, menuItems, data, evt, config = {}, el) => {
|
|
88
99
|
evt.preventDefault();
|
|
89
100
|
evt.stopPropagation();
|
|
90
|
-
const cords = getPosition(evt, config, await calcMenuItemBounds(menuItems, data));
|
|
101
|
+
const cords = getPosition(el || evt, config, await calcMenuItemBounds(menuItems, data));
|
|
91
102
|
const specificId = crypto.randomUUID();
|
|
92
103
|
if (!config.alignment)
|
|
93
104
|
config.alignment = "start";
|
|
@@ -109,4 +120,4 @@ export const openMenu = async (dialog, menuItems, data, evt, config = {}) => {
|
|
|
109
120
|
});
|
|
110
121
|
});
|
|
111
122
|
};
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvbWVudS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBU3RGLE1BQU0sT0FBTyxhQUFhO0lBMkJ0QixZQUNZLE1BQWlCLEVBQ2pCLGFBQStCO1FBRC9CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBUjNDOztXQUVHO1FBRXVCLFdBQU0sR0FBZ0IsRUFBRSxDQUFDO0lBSy9DLENBQUM7SUFFTCxlQUFlO1FBQ1gsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBNEIsQ0FBQztRQUVuRSw2Q0FBNkM7UUFDN0Msd0JBQXdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDckMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQVEsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVB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SUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEYsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRXZDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztRQUFFLE1BQU0sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO0lBRWxELE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsSUFBSSxFQUFFO2dCQUNGLElBQUksRUFBRSxJQUFJO2dCQUNWLEtBQUssRUFBRSxTQUFTO2dCQUNoQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxFQUFFLEVBQUUsVUFBVTthQUNqQjtZQUNELFVBQVUsRUFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO1lBQy9FLFFBQVEsRUFBRSxLQUFLO1lBQ2YsYUFBYSxFQUFFLG1CQUFtQjtTQUNyQyxDQUFDO2FBQ0QsV0FBVyxFQUFFO2FBQ2IsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1gsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQWlCLENBQUM7QUFDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGdldFBvc2l0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBNZW51SXRlbSwgTWVudU9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy9tZW51JztcbmltcG9ydCB7IE1lbnVDb21wb25lbnQsIGNhbGNNZW51SXRlbUJvdW5kcyB9IGZyb20gJy4uL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25neC1jb250ZXh0bWVudV0sW25neC1tZW51XSxbbmd4Q29udGV4dG1lbnVdLFtuZ3hNZW51XScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE1hdERpYWxvZ1xuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBNZW51RGlyZWN0aXZlIHtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHJlcHJlc2VudGluZyB0aGUgaXRlbSB0aGUgbWVudSB3YXMgb3BlbmVkIGZvci5cbiAgICAgKi9cbiAgICBASW5wdXQoXCJuZ3hNZW51Q29udGV4dFwiKVxuICAgIEBJbnB1dChcIm5neC1tZW51LWNvbnRleHRcIikgZGF0YTogYW55O1xuXG4gICAgLyoqXG4gICAgICogVGhlIGl0ZW1zIHRoYXQgd2lsbCBiZSBib3VuZCB0byB0aGUgY29udGV4dCBtZW51LlxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neENvbnRleHRtZW51XCIpXG4gICAgQElucHV0KFwibmd4LWNvbnRleHRtZW51XCIpIGN0eE1lbnVJdGVtczogTWVudUl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBpdGVtcyB0aGF0IHdpbGwgYmUgYm91bmQgdG8gdGhlIG1lbnUgdGhhdCBwb3BzXG4gICAgICogdXAgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhlIGVsZW1lbnQuXG4gICAgICovXG4gICAgQElucHV0KFwibmd4TWVudVwiKVxuICAgIEBJbnB1dChcIm5neC1tZW51XCIpIG1lbnVJdGVtczogTWVudUl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIG9wZW5pbmcgdGhlIGFwcCBtZW51XG4gICAgICovXG4gICAgQElucHV0KFwibmd4TWVudUNvbmZpZ1wiKVxuICAgIEBJbnB1dChcIm5neC1tZW51LWNvbmZpZ1wiKSBjb25maWc6IE1lbnVPcHRpb25zID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7IH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIC8vIEF1dG9tYXRpY2FsbHkgYXR0YWNoIGNvbnRleHQgbWVudSBpdGVtcyB0b1xuICAgICAgICAvLyB0aGUgY29udGV4dG1lbnUgZXZlbnRcbiAgICAgICAgaWYgKHRoaXMuY3R4TWVudUl0ZW1zKSB7XG4gICAgICAgICAgICBlbC5vbmNsaWNrID0gdGhpcy5vcGVuTWVudS5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5NZW51KGUgYXMgYW55KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZz8udHJpZ2dlcikge1xuICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm9wZW5NZW51LmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdHJpZ2dlcnMgPSBBcnJheS5pc0FycmF5KHRoaXMuY29uZmlnLnRyaWdnZXIpID8gdGhpcy5jb25maWcudHJpZ2dlciA6IFt0aGlzLmNvbmZpZy50cmlnZ2VyXTtcblxuICAgICAgICAgICAgdHJpZ2dlcnMuZm9yRWFjaCh0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodCA9PSBcImNvbnRleHRtZW51XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcih0LCAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuTWVudShlIGFzIGFueSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcih0LCB0aGlzLm9wZW5NZW51LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgb3Blbk1lbnUoZXZ0OiBQb2ludGVyRXZlbnQpIHtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLnZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoXCJuZ3gtbWVudS1vcGVuXCIpO1xuXG4gICAgICAgIHJldHVybiBvcGVuTWVudSh0aGlzLmRpYWxvZywgdGhpcy5tZW51SXRlbXMsIHRoaXMuZGF0YSwgZXZ0LCB0aGlzLmNvbmZpZywgZWwpXG4gICAgICAgICAgICAudGhlbigoLi4ucmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShcIm5neC1tZW51LW9wZW5cIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShcIm5neC1tZW51LW9wZW5cIik7XG4gICAgICAgICAgICAgICAgdGhyb3cgZXg7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIEhlbHBlciB0byBvcGVuIHRoZSBtZW51IHdpdGhvdXQgdXNpbmcgdGhlIGRpcmVjdGl2ZS5cbmV4cG9ydCBjb25zdCBvcGVuTWVudSA9IGFzeW5jIChcbiAgICBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBtZW51SXRlbXM6IE1lbnVJdGVtW10sXG4gICAgZGF0YTogYW55LFxuICAgIGV2dDogUG9pbnRlckV2ZW50LFxuICAgIGNvbmZpZzogTWVudU9wdGlvbnMgPSB7fSxcbiAgICBlbD86IEhUTUxFbGVtZW50XG4pID0+IHtcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCBjb3JkcyA9IGdldFBvc2l0aW9uKGVsIHx8IGV2dCwgY29uZmlnLCBhd2FpdCBjYWxjTWVudUl0ZW1Cb3VuZHMobWVudUl0ZW1zLCBkYXRhKSk7XG4gICAgY29uc3Qgc3BlY2lmaWNJZCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG5cbiAgICBpZiAoIWNvbmZpZy5hbGlnbm1lbnQpIGNvbmZpZy5hbGlnbm1lbnQgPSBcInN0YXJ0XCI7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzID0+IHtcbiAgICAgICAgZGlhbG9nLm9wZW4oTWVudUNvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgaXRlbXM6IG1lbnVJdGVtcyxcbiAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZyxcbiAgICAgICAgICAgICAgICBpZDogc3BlY2lmaWNJZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFtcIm5neC1tZW51XCIsICduZ3gtJyArIHNwZWNpZmljSWRdLmNvbmNhdChjb25maWc/LmN1c3RvbUNsYXNzIHx8IFtdKSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBjb3JkcyxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6IFwibmd4LW1lbnUtYmFja2Ryb3BcIlxuICAgICAgICB9KVxuICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAuc3Vic2NyaWJlKHMgPT4ge1xuICAgICAgICAgICAgcmVzKHMpO1xuICAgICAgICB9KVxuICAgIH0pIGFzIFByb21pc2U8YW55Pjtcbn07XG4iXX0=
|
|
@@ -16,20 +16,47 @@ export class TooltipDirective {
|
|
|
16
16
|
* Arbitrary data to pass into the template
|
|
17
17
|
*/
|
|
18
18
|
this.data = {};
|
|
19
|
+
this.isCursorOverTarget = false;
|
|
20
|
+
this.isFreezeOnKeyCodeBound = false;
|
|
21
|
+
this.onKeyDownEvt = this.onKeyDown.bind(this);
|
|
22
|
+
if (this.config.freezeOnKeyCode !== null) {
|
|
23
|
+
this.isFreezeOnKeyCodeBound = true;
|
|
24
|
+
document.body.addEventListener("keydown", this.onKeyDownEvt);
|
|
25
|
+
}
|
|
19
26
|
}
|
|
20
|
-
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
if (this.isFreezeOnKeyCodeBound) {
|
|
29
|
+
document.body.removeEventListener("keydown", this.onKeyDownEvt);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
onKeyDown(evt) {
|
|
33
|
+
// TODO: fade message 'tooltip is locked open'
|
|
34
|
+
if (evt.code == ("F2")) {
|
|
35
|
+
this.dialogInstance.componentInstance.isLockedOpen = true;
|
|
36
|
+
}
|
|
21
37
|
}
|
|
22
38
|
// Needs to be public so we can manually open the dialog
|
|
23
39
|
async onPointerEnter(evt) {
|
|
24
40
|
// If the template is not a template ref, do nothing.
|
|
25
41
|
if (!(this.template instanceof TemplateRef))
|
|
26
42
|
return;
|
|
27
|
-
|
|
28
|
-
|
|
43
|
+
this.isCursorOverTarget = true;
|
|
44
|
+
setTimeout(async () => {
|
|
45
|
+
// If the cursor moved away in the time
|
|
46
|
+
if (!this.isCursorOverTarget)
|
|
47
|
+
return;
|
|
48
|
+
if (!this.dialogInstance) {
|
|
49
|
+
const el = this.viewContainer.element.nativeElement;
|
|
50
|
+
this.dialogInstance = await openTooltip(this.dialog, this.template, this.data, el, this.config);
|
|
51
|
+
}
|
|
52
|
+
}, this.config.delay ?? 250);
|
|
53
|
+
}
|
|
54
|
+
async onPointerLeave(evt) {
|
|
55
|
+
this.isCursorOverTarget = false;
|
|
29
56
|
}
|
|
30
57
|
}
|
|
31
58
|
TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TooltipDirective, deps: [{ token: i1.MatDialog }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
32
|
-
TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TooltipDirective, isStandalone: true, selector: "[ngxTooltip],[ngx-tooltip]", inputs: { template: ["ngx-tooltip", "template"], config: ["ngx-tooltip-config", "config"], data: ["ngx-tooltip-context", "data"] }, host: { listeners: { "pointerenter": "onPointerEnter($event)" } }, providers: [
|
|
59
|
+
TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TooltipDirective, isStandalone: true, selector: "[ngxTooltip],[ngx-tooltip]", inputs: { template: ["ngx-tooltip", "template"], config: ["ngx-tooltip-config", "config"], data: ["ngx-tooltip-context", "data"] }, host: { listeners: { "pointerenter": "onPointerEnter($event)", "pointerleave": "onPointerLeave($event)" } }, providers: [
|
|
33
60
|
MatDialog
|
|
34
61
|
], ngImport: i0 });
|
|
35
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
@@ -62,6 +89,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
62
89
|
}], onPointerEnter: [{
|
|
63
90
|
type: HostListener,
|
|
64
91
|
args: ['pointerenter', ['$event']]
|
|
92
|
+
}], onPointerLeave: [{
|
|
93
|
+
type: HostListener,
|
|
94
|
+
args: ['pointerleave', ['$event']]
|
|
65
95
|
}] } });
|
|
66
96
|
// Helper to open the context menu without using the directive.
|
|
67
97
|
export const openTooltip = async (dialog, template, data, el, config) => {
|
|
@@ -89,4 +119,4 @@ export const openTooltip = async (dialog, template, data, el, config) => {
|
|
|
89
119
|
});
|
|
90
120
|
});
|
|
91
121
|
};
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ0osT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQVVoSSxNQUFNLE9BQU8sZ0JBQWdCO0lBd0J6QixZQUNZLE1BQWlCLEVBQ2pCLGFBQStCO1FBRC9CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBbkIzQzs7V0FFRztRQUUwQixXQUFNLEdBQW1CLEVBQUUsQ0FBQztRQUV6RDs7V0FFRztRQUUyQixTQUFJLEdBQVEsRUFBRSxDQUFDO1FBSXJDLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUF3Qi9CLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFsQjdDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEtBQUssSUFBSSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7WUFDbkMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ2hFO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZ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VixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixFQUFFLEVBQUUsVUFBVTthQUNqQjtZQUNELFVBQVUsRUFBRSxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO1lBQ2xGLFFBQVEsRUFBRSxLQUFLO1lBQ2YsV0FBVyxFQUFFLEtBQUs7U0FDckIsQ0FBQzthQUNHLFdBQVcsRUFBRTthQUNiLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFBO0lBQ1YsQ0FBQyxDQUFpQixDQUFDO0FBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEhvc3RMaXN0ZW5lciwgVGVtcGxhdGVSZWYsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGdldFBvc2l0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyAgfSBmcm9tICcuLi90eXBlcy9wb3B1cCc7aW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCwgY2FsY1Rvb2x0aXBCb3VuZHMgfSBmcm9tICcuLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy90b29sdGlwJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbmd4VG9vbHRpcF0sW25neC10b29sdGlwXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE1hdERpYWxvZ1xuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIHtcblxuICAgIC8qKlxuICAgICAqL1xuICAgIEBJbnB1dChcIm5neFRvb2x0aXBcIilcbiAgICBASW5wdXQoXCJuZ3gtdG9vbHRpcFwiKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IFR5cGU8YW55PjtcblxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIG9wZW5pbmcgdGhlIGFwcCBtZW51XG4gICAgICovXG4gICAgQElucHV0KFwibmd4VG9vbHRpcENvbmZpZ1wiKVxuICAgIEBJbnB1dChcIm5neC10b29sdGlwLWNvbmZpZ1wiKSBjb25maWc6IFRvb2x0aXBPcHRpb25zID0ge307XG5cbiAgICAvKipcbiAgICAgKiBBcmJpdHJhcnkgZGF0YSB0byBwYXNzIGludG8gdGhlIHRlbXBsYXRlXG4gICAgICovXG4gICAgQElucHV0KFwibmd4VG9vbHRpcENvbnRleHRcIilcbiAgICBASW5wdXQoXCJuZ3gtdG9vbHRpcC1jb250ZXh0XCIpIGRhdGE6IGFueSA9IHt9O1xuXG5cbiAgICBwcml2YXRlIGRpYWxvZ0luc3RhbmNlOiBNYXREaWFsb2dSZWY8YW55PjtcbiAgICBwcml2YXRlIGlzQ3Vyc29yT3ZlclRhcmdldCA9IGZhbHNlO1xuICAgIHByaXZhdGUgaXNGcmVlemVPbktleUNvZGVCb3VuZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxuICAgICkge1xuICAgICAgICBpZiAodGhpcy5jb25maWcuZnJlZXplT25LZXlDb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmlzRnJlZXplT25LZXlDb2RlQm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLm9uS2V5RG93bkV2dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGcmVlemVPbktleUNvZGVCb3VuZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLm9uS2V5RG93bkV2dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd24oZXZ0KSB7XG4gICAgICAgIC8vIFRPRE86IGZhZGUgbWVzc2FnZSAndG9vbHRpcCBpcyBsb2NrZWQgb3BlbidcbiAgICAgICAgaWYgKGV2dC5jb2RlID09IChcIkYyXCIpKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0luc3RhbmNlLmNvbXBvbmVudEluc3RhbmNlLmlzTG9ja2VkT3BlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBvbktleURvd25FdnQgPSB0aGlzLm9uS2V5RG93bi5iaW5kKHRoaXMpO1xuXG4gICAgLy8gTmVlZHMgdG8gYmUgcHVibGljIHNvIHdlIGNhbiBtYW51YWxseSBvcGVuIHRoZSBkaWFsb2dcbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZW50ZXInLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBhc3luYyBvblBvaW50ZXJFbnRlcihldnQ6IFBvaW50ZXJFdmVudCkge1xuICAgICAgICAvLyBJZiB0aGUgdGVtcGxhdGUgaXMgbm90IGEgdGVtcGxhdGUgcmVmLCBkbyBub3RoaW5nLlxuICAgICAgICBpZiAoISh0aGlzLnRlbXBsYXRlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuaXNDdXJzb3JPdmVyVGFyZ2V0ID0gdHJ1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBjdXJzb3IgbW92ZWQgYXdheSBpbiB0aGUgdGltZVxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzQ3Vyc29yT3ZlclRhcmdldClcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaWFsb2dJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy52aWV3Q29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0luc3RhbmNlID0gYXdhaXQgb3BlblRvb2x0aXAodGhpcy5kaWFsb2csIHRoaXMudGVtcGxhdGUsIHRoaXMuZGF0YSwgZWwsIHRoaXMuY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdGhpcy5jb25maWcuZGVsYXkgPz8gMjUwKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVybGVhdmUnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBhc3luYyBvblBvaW50ZXJMZWF2ZShldnQ6IFBvaW50ZXJFdmVudCkge1xuICAgICAgICB0aGlzLmlzQ3Vyc29yT3ZlclRhcmdldCA9IGZhbHNlO1xuICAgIH1cbn1cblxuLy8gSGVscGVyIHRvIG9wZW4gdGhlIGNvbnRleHQgbWVudSB3aXRob3V0IHVzaW5nIHRoZSBkaXJlY3RpdmUuXG5leHBvcnQgY29uc3Qgb3BlblRvb2x0aXAgPSBhc3luYyAoXG4gICAgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBUeXBlPGFueT4sXG4gICAgZGF0YTogYW55LFxuICAgIGVsOiBIVE1MRWxlbWVudCxcbiAgICBjb25maWc/OiBUb29sdGlwT3B0aW9uc1xuKSA9PiB7XG5cbiAgICBjb25zdCByZWN0ID0gYXdhaXQgY2FsY1Rvb2x0aXBCb3VuZHModGVtcGxhdGUsIGRhdGEpO1xuICAgIGNvbnN0IG93bmVyQ29yZHMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBjb3JkcyA9IGdldFBvc2l0aW9uKGVsLCBjb25maWcsIHJlY3QpO1xuICAgIGNvbnN0IHNwZWNpZmljSWQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlcyA9PiB7XG4gICAgICAgIGRpYWxvZy5vcGVuKFRvb2x0aXBDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSxcbiAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZyxcbiAgICAgICAgICAgICAgICBvd25lckNvcmRzOiBvd25lckNvcmRzLFxuICAgICAgICAgICAgICAgIHNlbGZDb3JkczogY29yZHMsXG4gICAgICAgICAgICAgICAgaWQ6IHNwZWNpZmljSWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYW5lbENsYXNzOiBbXCJuZ3gtdG9vbHRpcFwiLCAnbmd4LScgKyBzcGVjaWZpY0lkXS5jb25jYXQoY29uZmlnPy5jdXN0b21DbGFzcyB8fCBbXSksXG4gICAgICAgICAgICBwb3NpdGlvbjogY29yZHMsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHMgPT4ge1xuICAgICAgICAgICAgICAgIHJlcyhzKTtcbiAgICAgICAgICAgIH0pXG4gICAgfSkgYXMgUHJvbWlzZTxhbnk+O1xufTtcbiJdfQ==
|