@alauda/ui 7.1.0 → 7.1.1-beta
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/dropdown/dropdown-button/dropdown-button.component.d.ts +2 -2
- package/dropdown/dropdown.directive.d.ts +5 -8
- package/dropdown/dropdown.module.d.ts +2 -2
- package/dropdown/index.d.ts +1 -1
- package/dropdown/menu/menu.component.d.ts +1 -5
- package/dropdown/menu-template.component.d.ts +7 -0
- package/esm2022/date-picker/date-picker/date-picker.component.mjs +2 -2
- package/esm2022/date-picker/range-picker/range-picker.component.mjs +2 -2
- package/esm2022/dropdown/dropdown-button/dropdown-button.component.mjs +5 -5
- package/esm2022/dropdown/dropdown.directive.mjs +6 -23
- package/esm2022/dropdown/dropdown.module.mjs +6 -6
- package/esm2022/dropdown/index.mjs +2 -2
- package/esm2022/dropdown/menu/menu.component.mjs +4 -13
- package/esm2022/dropdown/menu-template.component.mjs +23 -0
- package/esm2022/dropdown/submenu/submenu.component.mjs +3 -3
- package/esm2022/select/helper-directives.mjs +51 -7
- package/esm2022/select/multi-select/multi-select.component.mjs +3 -3
- package/esm2022/select/select.component.mjs +3 -3
- package/esm2022/status-bar/status-bar.component.mjs +1 -1
- package/esm2022/time-picker/component.mjs +2 -2
- package/esm2022/tooltip/animations.mjs +55 -0
- package/esm2022/tooltip/base-tooltip.mjs +4 -2
- package/esm2022/tooltip/tooltip.component.mjs +12 -41
- package/esm2022/tooltip/tooltip.directive.mjs +6 -2
- package/esm2022/tree-select/tree-select.component.mjs +2 -2
- package/fesm2022/alauda-ui.mjs +177 -163
- package/fesm2022/alauda-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/select/helper-directives.d.ts +14 -2
- package/tooltip/animations.d.ts +4 -0
- package/tooltip/base-tooltip.d.ts +2 -0
- package/tooltip/tooltip.component.d.ts +4 -1
- package/tooltip/tooltip.directive.d.ts +3 -1
- package/dropdown/menu/menu-content.directive.d.ts +0 -18
- package/esm2022/dropdown/menu/menu-content.directive.mjs +0 -60
package/package.json
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ApplicationRef, ComponentFactoryResolver, Injector, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class OptionGroupTitleDirective {
|
|
4
4
|
static ɵfac: i0.ɵɵFactoryDeclaration<OptionGroupTitleDirective, never>;
|
|
5
5
|
static ɵdir: i0.ɵɵDirectiveDeclaration<OptionGroupTitleDirective, "[auiOptionGroupTitle]", ["auiOptionGroupTitle"], {}, {}, never, never, true, never>;
|
|
6
6
|
}
|
|
7
|
-
export declare class OptionContentDirective
|
|
7
|
+
export declare class OptionContentDirective implements OnDestroy {
|
|
8
|
+
private readonly templateRef;
|
|
9
|
+
private readonly appRef;
|
|
10
|
+
private readonly viewContainerRef;
|
|
11
|
+
private readonly componentFactoryResolver;
|
|
12
|
+
private readonly injector;
|
|
13
|
+
private portal;
|
|
14
|
+
private outlet;
|
|
15
|
+
private readonly doc;
|
|
16
|
+
constructor(templateRef: TemplateRef<unknown>, appRef: ApplicationRef, viewContainerRef: ViewContainerRef, componentFactoryResolver: ComponentFactoryResolver, injector: Injector, document: any);
|
|
17
|
+
attach(context?: any): void;
|
|
18
|
+
detach(): void;
|
|
19
|
+
ngOnDestroy(): void;
|
|
8
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<OptionContentDirective, never>;
|
|
9
21
|
static ɵdir: i0.ɵɵDirectiveDeclaration<OptionContentDirective, "*[auiOptionContent]", ["auiOptionContent"], {}, {}, never, never, true, never>;
|
|
10
22
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const scale: import("@angular/animations").AnimationTransitionMetadata[];
|
|
2
|
+
export declare const scaleY: import("@angular/animations").AnimationTransitionMetadata[];
|
|
3
|
+
export declare const animations: import("@angular/animations").AnimationTransitionMetadata[];
|
|
4
|
+
export type AnimationType = 'scale' | 'scaleY';
|
|
@@ -2,6 +2,7 @@ import { Overlay, OverlayRef } from '@angular/cdk/overlay';
|
|
|
2
2
|
import { ComponentType } from '@angular/cdk/portal';
|
|
3
3
|
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
4
4
|
import { ReplaySubject, Subject } from 'rxjs';
|
|
5
|
+
import { AnimationType } from './animations';
|
|
5
6
|
import { TooltipComponent } from './tooltip.component';
|
|
6
7
|
import { TooltipTrigger, TooltipType } from './tooltip.types';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
@@ -39,6 +40,7 @@ export declare class BaseTooltip<T = any> implements TooltipInterface, AfterView
|
|
|
39
40
|
get disabled(): boolean;
|
|
40
41
|
hideOnClick: boolean;
|
|
41
42
|
disableAnimation: boolean;
|
|
43
|
+
animationType: AnimationType;
|
|
42
44
|
visibleChange: EventEmitter<boolean>;
|
|
43
45
|
overlayRef: OverlayRef;
|
|
44
46
|
protected componentClass: ComponentType<any>;
|
|
@@ -2,6 +2,7 @@ import { AnimationEvent } from '@angular/animations';
|
|
|
2
2
|
import { ChangeDetectorRef, ElementRef, OnDestroy, TemplateRef } from '@angular/core';
|
|
3
3
|
import { Observable, Subject, BehaviorSubject } from 'rxjs';
|
|
4
4
|
import { Bem } from '../utils';
|
|
5
|
+
import { AnimationType } from './animations';
|
|
5
6
|
import { TooltipType } from './tooltip.types';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare class TooltipComponent implements OnDestroy {
|
|
@@ -10,8 +11,9 @@ export declare class TooltipComponent implements OnDestroy {
|
|
|
10
11
|
text: string;
|
|
11
12
|
template: TemplateRef<any>;
|
|
12
13
|
bem: Bem;
|
|
13
|
-
showHide:
|
|
14
|
+
showHide: string;
|
|
14
15
|
disableAnimation: boolean;
|
|
16
|
+
animationType: AnimationType;
|
|
15
17
|
inputContent$: Observable<string | TemplateRef<any>>;
|
|
16
18
|
inputType$: Observable<TooltipType>;
|
|
17
19
|
inputPosition$: Observable<string>;
|
|
@@ -36,6 +38,7 @@ export declare class TooltipComponent implements OnDestroy {
|
|
|
36
38
|
inputClass$: Observable<string>;
|
|
37
39
|
inputContext$: Observable<any>;
|
|
38
40
|
disableAnimation?: boolean;
|
|
41
|
+
animationType?: string;
|
|
39
42
|
}): void;
|
|
40
43
|
onAnimation(event: AnimationEvent): void;
|
|
41
44
|
show(): void;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { AnimationType } from './animations';
|
|
2
3
|
import { BaseTooltip } from './base-tooltip';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class TooltipDirective extends BaseTooltip {
|
|
5
6
|
visibleChange: EventEmitter<boolean>;
|
|
6
7
|
disableAnimation: boolean;
|
|
8
|
+
animationType: AnimationType;
|
|
7
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, never>;
|
|
8
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[auiTooltip]", ["auiTooltip"], { "content": { "alias": "auiTooltip"; "required": false; }; "context": { "alias": "auiTooltipContext"; "required": false; }; "class": { "alias": "auiTooltipClass"; "required": false; }; "type": { "alias": "auiTooltipType"; "required": false; }; "position": { "alias": "auiTooltipPosition"; "required": false; }; "trigger": { "alias": "auiTooltipTrigger"; "required": false; }; "disabled": { "alias": "auiTooltipDisabled"; "required": false; }; "hideOnClick": { "alias": "auiTooltipHideOnClick"; "required": false; }; "disableAnimation": { "alias": "auiDisableAnimation"; "required": false; }; }, { "visibleChange": "auiTooltipVisibleChange"; }, never, never, true, never>;
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[auiTooltip]", ["auiTooltip"], { "content": { "alias": "auiTooltip"; "required": false; }; "context": { "alias": "auiTooltipContext"; "required": false; }; "class": { "alias": "auiTooltipClass"; "required": false; }; "type": { "alias": "auiTooltipType"; "required": false; }; "position": { "alias": "auiTooltipPosition"; "required": false; }; "trigger": { "alias": "auiTooltipTrigger"; "required": false; }; "disabled": { "alias": "auiTooltipDisabled"; "required": false; }; "hideOnClick": { "alias": "auiTooltipHideOnClick"; "required": false; }; "disableAnimation": { "alias": "auiDisableAnimation"; "required": false; }; "animationType": { "alias": "auiTooltipAnimationType"; "required": false; }; }, { "visibleChange": "auiTooltipVisibleChange"; }, never, never, true, never>;
|
|
9
11
|
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { ApplicationRef, ComponentFactoryResolver, Injector, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class MenuContentDirective implements OnDestroy {
|
|
4
|
-
private readonly templateRef;
|
|
5
|
-
private readonly appRef;
|
|
6
|
-
private readonly viewContainerRef;
|
|
7
|
-
private readonly componentFactoryResolver;
|
|
8
|
-
private readonly injector;
|
|
9
|
-
private portal;
|
|
10
|
-
private outlet;
|
|
11
|
-
private readonly doc;
|
|
12
|
-
constructor(templateRef: TemplateRef<unknown>, appRef: ApplicationRef, viewContainerRef: ViewContainerRef, componentFactoryResolver: ComponentFactoryResolver, injector: Injector, document: any);
|
|
13
|
-
attach(context?: any): void;
|
|
14
|
-
detach(): void;
|
|
15
|
-
ngOnDestroy(): void;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MenuContentDirective, never>;
|
|
17
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<MenuContentDirective, "*[auiMenuContent]", ["auiMenuContent"], {}, {}, never, never, true, never>;
|
|
18
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';
|
|
2
|
-
import { DOCUMENT } from '@angular/common';
|
|
3
|
-
import { Directive, Inject, } from '@angular/core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class MenuContentDirective {
|
|
6
|
-
templateRef;
|
|
7
|
-
appRef;
|
|
8
|
-
viewContainerRef;
|
|
9
|
-
componentFactoryResolver;
|
|
10
|
-
injector;
|
|
11
|
-
portal;
|
|
12
|
-
outlet;
|
|
13
|
-
doc;
|
|
14
|
-
constructor(templateRef, appRef, viewContainerRef, componentFactoryResolver, injector, document) {
|
|
15
|
-
this.templateRef = templateRef;
|
|
16
|
-
this.appRef = appRef;
|
|
17
|
-
this.viewContainerRef = viewContainerRef;
|
|
18
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
19
|
-
this.injector = injector;
|
|
20
|
-
this.doc = document;
|
|
21
|
-
}
|
|
22
|
-
attach(context) {
|
|
23
|
-
if (this.portal?.isAttached) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
if (!this.portal) {
|
|
27
|
-
this.portal = new TemplatePortal(this.templateRef, this.viewContainerRef);
|
|
28
|
-
}
|
|
29
|
-
if (!this.outlet) {
|
|
30
|
-
this.outlet = new DomPortalOutlet(this.doc.createElement('div'), this.componentFactoryResolver, this.appRef, this.injector);
|
|
31
|
-
}
|
|
32
|
-
const el = this.templateRef.elementRef.nativeElement;
|
|
33
|
-
el.parentNode.insertBefore(this.outlet.outletElement, el);
|
|
34
|
-
this.portal.attach(this.outlet, context);
|
|
35
|
-
}
|
|
36
|
-
detach() {
|
|
37
|
-
if (this.portal?.isAttached) {
|
|
38
|
-
this.portal.detach();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
ngOnDestroy() {
|
|
42
|
-
if (this.outlet) {
|
|
43
|
-
this.outlet.dispose();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MenuContentDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ApplicationRef }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
|
|
47
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: MenuContentDirective, isStandalone: true, selector: "*[auiMenuContent]", exportAs: ["auiMenuContent"], ngImport: i0 });
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: MenuContentDirective, decorators: [{
|
|
50
|
-
type: Directive,
|
|
51
|
-
args: [{
|
|
52
|
-
selector: '*[auiMenuContent]',
|
|
53
|
-
exportAs: 'auiMenuContent',
|
|
54
|
-
standalone: true,
|
|
55
|
-
}]
|
|
56
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ApplicationRef }, { type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: undefined, decorators: [{
|
|
57
|
-
type: Inject,
|
|
58
|
-
args: [DOCUMENT]
|
|
59
|
-
}] }]; } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1jb250ZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kcm9wZG93bi9tZW51L21lbnUtY29udGVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUdMLFNBQVMsRUFDVCxNQUFNLEdBS1AsTUFBTSxlQUFlLENBQUM7O0FBT3ZCLE1BQU0sT0FBTyxvQkFBb0I7SUFPWjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBVlgsTUFBTSxDQUFpQjtJQUN2QixNQUFNLENBQWtCO0lBRWYsR0FBRyxDQUFXO0lBRS9CLFlBQ21CLFdBQWlDLEVBQ2pDLE1BQXNCLEVBQ3RCLGdCQUFrQyxFQUNsQyx3QkFBa0QsRUFDbEQsUUFBa0IsRUFDakIsUUFBYTtRQUxkLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUduQyxJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWE7UUFDbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDM0U7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFDN0IsSUFBSSxDQUFDLHdCQUF3QixFQUM3QixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztTQUNIO1FBQ0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBNEIsQ0FBQztRQUNwRSxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRTtZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQzt1R0EvQ1Usb0JBQW9CLDJLQVlyQixRQUFROzJGQVpQLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFMaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQWFJLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvbVBvcnRhbE91dGxldCwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIERpcmVjdGl2ZSxcbiAgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJypbYXVpTWVudUNvbnRlbnRdJyxcbiAgZXhwb3J0QXM6ICdhdWlNZW51Q29udGVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVDb250ZW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBwb3J0YWw6IFRlbXBsYXRlUG9ydGFsO1xuICBwcml2YXRlIG91dGxldDogRG9tUG9ydGFsT3V0bGV0O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jOiBEb2N1bWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSxcbiAgKSB7XG4gICAgdGhpcy5kb2MgPSBkb2N1bWVudDtcbiAgfVxuXG4gIGF0dGFjaChjb250ZXh0PzogYW55KSB7XG4gICAgaWYgKHRoaXMucG9ydGFsPy5pc0F0dGFjaGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5wb3J0YWwpIHtcbiAgICAgIHRoaXMucG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVSZWYsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgfVxuICAgIGlmICghdGhpcy5vdXRsZXQpIHtcbiAgICAgIHRoaXMub3V0bGV0ID0gbmV3IERvbVBvcnRhbE91dGxldChcbiAgICAgICAgdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgnZGl2JyksXG4gICAgICAgIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICB0aGlzLmFwcFJlZixcbiAgICAgICAgdGhpcy5pbmplY3RvcixcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGVsID0gdGhpcy50ZW1wbGF0ZVJlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5vdXRsZXQub3V0bGV0RWxlbWVudCwgZWwpO1xuICAgIHRoaXMucG9ydGFsLmF0dGFjaCh0aGlzLm91dGxldCwgY29udGV4dCk7XG4gIH1cblxuICBkZXRhY2goKSB7XG4gICAgaWYgKHRoaXMucG9ydGFsPy5pc0F0dGFjaGVkKSB7XG4gICAgICB0aGlzLnBvcnRhbC5kZXRhY2goKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5vdXRsZXQpIHtcbiAgICAgIHRoaXMub3V0bGV0LmRpc3Bvc2UoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|