@alauda/ui 7.2.1-beta.9 → 7.3.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/drawer/component/drawer.component.d.ts +12 -10
- package/drawer/component/internal/internal.component.d.ts +12 -13
- package/drawer/drawer-ref.d.ts +5 -4
- package/drawer/drawer.service.d.ts +9 -12
- package/drawer/types.d.ts +12 -10
- package/esm2022/drawer/component/drawer.component.mjs +19 -16
- package/esm2022/drawer/component/internal/internal.component.mjs +100 -84
- package/esm2022/drawer/drawer-ref.mjs +5 -2
- package/esm2022/drawer/drawer.service.mjs +38 -55
- package/esm2022/drawer/types.mjs +6 -7
- package/esm2022/form/form-item/form-item.component.mjs +3 -3
- package/fesm2022/alauda-ui.mjs +159 -155
- package/fesm2022/alauda-ui.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,30 +1,32 @@
|
|
|
1
1
|
import { ComponentType } from '@angular/cdk/overlay';
|
|
2
2
|
import { AfterViewInit, EventEmitter, OnChanges, SimpleChanges, TemplateRef } from '@angular/core';
|
|
3
3
|
import { DrawerService } from '../drawer.service';
|
|
4
|
-
import { DrawerSize } from '../types';
|
|
4
|
+
import { DrawerOptions, DrawerSize } from '../types';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class DrawerComponent implements AfterViewInit, OnChanges {
|
|
6
|
+
export declare class DrawerComponent<T = unknown, C extends object = object, R = unknown> implements AfterViewInit, OnChanges, Required<DrawerOptions<T, C>> {
|
|
7
7
|
private readonly drawerService;
|
|
8
|
-
title: string | TemplateRef<
|
|
9
|
-
footer: string | TemplateRef<
|
|
8
|
+
title: string | TemplateRef<C>;
|
|
9
|
+
footer: string | TemplateRef<C>;
|
|
10
10
|
size: DrawerSize;
|
|
11
11
|
offsetY: string;
|
|
12
12
|
visible: boolean;
|
|
13
|
-
content: TemplateRef<
|
|
13
|
+
content: TemplateRef<C> | ComponentType<T>;
|
|
14
14
|
hideOnClickOutside: boolean;
|
|
15
15
|
showClose: boolean;
|
|
16
16
|
drawerClass: string;
|
|
17
17
|
mask: boolean;
|
|
18
18
|
maskClosable: boolean;
|
|
19
19
|
divider: boolean;
|
|
20
|
-
|
|
20
|
+
width: number;
|
|
21
|
+
contentParams: C;
|
|
22
|
+
readonly close: EventEmitter<R>;
|
|
21
23
|
private readonly titleTemplate;
|
|
22
24
|
private readonly contentTemplateOrComponent;
|
|
23
25
|
private readonly footerTemplate;
|
|
24
|
-
|
|
26
|
+
private drawerRef;
|
|
27
|
+
constructor(drawerService: DrawerService<T, C, R>);
|
|
25
28
|
ngOnChanges(changes: SimpleChanges): void;
|
|
26
29
|
ngAfterViewInit(): void;
|
|
27
|
-
|
|
28
|
-
static
|
|
29
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DrawerComponent, "aui-drawer", never, { "title": { "alias": "title"; "required": false; }; "footer": { "alias": "footer"; "required": false; }; "size": { "alias": "size"; "required": false; }; "offsetY": { "alias": "offsetY"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "content": { "alias": "content"; "required": false; }; "hideOnClickOutside": { "alias": "hideOnClickOutside"; "required": false; }; "showClose": { "alias": "showClose"; "required": false; }; "drawerClass": { "alias": "drawerClass"; "required": false; }; "mask": { "alias": "mask"; "required": false; }; "maskClosable": { "alias": "maskClosable"; "required": false; }; "divider": { "alias": "divider"; "required": false; }; }, { "close": "close"; }, ["titleTemplate", "contentTemplateOrComponent", "footerTemplate"], never, true, never>;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DrawerComponent<any, any, any>, never>;
|
|
31
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DrawerComponent<any, any, any>, "aui-drawer", never, { "title": { "alias": "title"; "required": false; }; "footer": { "alias": "footer"; "required": false; }; "size": { "alias": "size"; "required": false; }; "offsetY": { "alias": "offsetY"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "content": { "alias": "content"; "required": false; }; "hideOnClickOutside": { "alias": "hideOnClickOutside"; "required": false; }; "showClose": { "alias": "showClose"; "required": false; }; "drawerClass": { "alias": "drawerClass"; "required": false; }; "mask": { "alias": "mask"; "required": false; }; "maskClosable": { "alias": "maskClosable"; "required": false; }; "divider": { "alias": "divider"; "required": false; }; "width": { "alias": "width"; "required": false; }; "contentParams": { "alias": "contentParams"; "required": false; }; }, { "close": "close"; }, ["titleTemplate", "contentTemplateOrComponent", "footerTemplate"], ["*"], true, never>;
|
|
30
32
|
}
|
|
@@ -1,32 +1,31 @@
|
|
|
1
1
|
import { AnimationEvent } from '@angular/animations';
|
|
2
|
-
import { ComponentType } from '@angular/cdk/overlay';
|
|
3
2
|
import { CdkPortalOutlet } from '@angular/cdk/portal';
|
|
4
|
-
import {
|
|
5
|
-
import { Subject } from 'rxjs';
|
|
3
|
+
import { ElementRef, InjectionToken, Injector } from '@angular/core';
|
|
4
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
6
5
|
import { DrawerOptions } from '../../types';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
export declare const DATA: InjectionToken<unknown>;
|
|
9
8
|
export declare const duration = "300ms";
|
|
10
9
|
type Step = 'showStart' | 'showDone' | 'hideStart' | 'hideDone';
|
|
11
|
-
export declare class DrawerInternalComponent<T =
|
|
12
|
-
private readonly cdr;
|
|
10
|
+
export declare class DrawerInternalComponent<T = unknown, C extends object = object> {
|
|
13
11
|
private readonly injector;
|
|
14
|
-
maskClick: EventEmitter<MouseEvent>;
|
|
15
|
-
closeClick: EventEmitter<any>;
|
|
16
12
|
bodyPortalOutlet: CdkPortalOutlet;
|
|
13
|
+
mask: ElementRef<HTMLDivElement>;
|
|
17
14
|
animationStep$: Subject<Step>;
|
|
18
|
-
options: DrawerOptions
|
|
19
|
-
showHide
|
|
15
|
+
options: DrawerOptions<T, C>;
|
|
16
|
+
showHide$$: BehaviorSubject<"show" | "hide">;
|
|
17
|
+
maskVisible$: Subject<boolean>;
|
|
20
18
|
get drawerClasses(): Record<string, boolean>;
|
|
21
|
-
get width():
|
|
19
|
+
get width(): string;
|
|
22
20
|
isTemplateRef: (label: any) => label is import("@angular/core").TemplateRef<unknown>;
|
|
23
|
-
constructor(
|
|
21
|
+
constructor(injector: Injector);
|
|
24
22
|
ngAfterViewInit(): void;
|
|
25
23
|
private attachBodyContent;
|
|
26
24
|
onAnimation(event: AnimationEvent): void;
|
|
27
25
|
show(): void;
|
|
28
26
|
hide(): void;
|
|
29
|
-
|
|
30
|
-
static
|
|
27
|
+
maskClick(): void;
|
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DrawerInternalComponent<any, any>, never>;
|
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DrawerInternalComponent<any, any>, "ng-component", never, {}, {}, never, never, true, never>;
|
|
31
30
|
}
|
|
32
31
|
export {};
|
package/drawer/drawer-ref.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { DrawerInternalComponent } from './component/internal/internal.component';
|
|
3
|
-
export declare class DrawerRef<R =
|
|
4
|
-
drawerInstance: DrawerInternalComponent
|
|
3
|
+
export declare class DrawerRef<T = unknown, C extends object = object, R = unknown> {
|
|
4
|
+
drawerInstance: DrawerInternalComponent<T, C>;
|
|
5
5
|
private result;
|
|
6
6
|
private readonly afterOpen$;
|
|
7
7
|
private readonly afterClosed$;
|
|
8
8
|
get afterOpen(): Observable<void>;
|
|
9
9
|
get afterClosed(): Observable<R>;
|
|
10
|
-
constructor(drawerInstance: DrawerInternalComponent);
|
|
11
|
-
|
|
10
|
+
constructor(drawerInstance: DrawerInternalComponent<T, C>);
|
|
11
|
+
open(): void;
|
|
12
|
+
close(result?: R): void;
|
|
12
13
|
}
|
|
@@ -1,25 +1,22 @@
|
|
|
1
1
|
import { Overlay } from '@angular/cdk/overlay';
|
|
2
|
-
import { ComponentRef } from '@angular/core';
|
|
3
2
|
import { Subject } from 'rxjs';
|
|
4
|
-
import { DrawerInternalComponent } from './component/internal/internal.component';
|
|
5
3
|
import { DrawerRef } from './drawer-ref';
|
|
6
4
|
import { DrawerOptions } from './types';
|
|
7
5
|
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class DrawerService {
|
|
6
|
+
export declare class DrawerService<T = unknown, C extends object = object, R = unknown> {
|
|
9
7
|
private readonly overlay;
|
|
10
8
|
private overlayRef;
|
|
11
|
-
options: DrawerOptions
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
options: DrawerOptions<T, C>;
|
|
10
|
+
drawerRef: DrawerRef<T, C, R>;
|
|
11
|
+
invisible$: Subject<void>;
|
|
12
|
+
private drawerInternalComponentRef;
|
|
14
13
|
constructor(overlay: Overlay);
|
|
15
|
-
open(options: DrawerOptions): DrawerRef<
|
|
16
|
-
|
|
17
|
-
updateOptions(options: DrawerOptions): void;
|
|
14
|
+
open(options: DrawerOptions<T, C>): DrawerRef<T, C, R>;
|
|
15
|
+
updateOptions(options: DrawerOptions<T, C>): void;
|
|
18
16
|
private createOverlay;
|
|
19
17
|
private createDrawer;
|
|
20
18
|
private getOverlayConfig;
|
|
21
|
-
private disposeOverlay;
|
|
22
19
|
ngOnDestroy(): void;
|
|
23
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DrawerService, never>;
|
|
24
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<DrawerService
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DrawerService<any, any, any>, never>;
|
|
21
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DrawerService<any, any, any>>;
|
|
25
22
|
}
|
package/drawer/types.d.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { ComponentType } from '@angular/cdk/portal';
|
|
2
2
|
import { TemplateRef } from '@angular/core';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
import { ValueOf } from '../types';
|
|
4
|
+
export declare const DrawerSize: {
|
|
5
|
+
readonly Small: "small";
|
|
6
|
+
readonly Medium: "medium";
|
|
7
|
+
readonly Big: "big";
|
|
8
|
+
};
|
|
9
|
+
export type DrawerSize = ValueOf<typeof DrawerSize>;
|
|
10
|
+
export interface DrawerOptions<T = unknown, C extends object = object> {
|
|
11
|
+
title?: string | TemplateRef<C>;
|
|
12
|
+
content?: ComponentType<T> | TemplateRef<C>;
|
|
13
|
+
footer?: string | TemplateRef<C>;
|
|
14
|
+
contentParams?: C;
|
|
13
15
|
width?: number;
|
|
14
16
|
size?: DrawerSize;
|
|
15
17
|
offsetY?: string;
|
|
@@ -2,27 +2,29 @@ import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input,
|
|
|
2
2
|
import { first } from 'rxjs';
|
|
3
3
|
import { DrawerService } from '../drawer.service';
|
|
4
4
|
import { DrawerContentDirective, DrawerFooterDirective, DrawerHeaderDirective, } from '../helper-directives';
|
|
5
|
-
import { DrawerSize } from '../types';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
import * as i1 from "../drawer.service";
|
|
8
7
|
export class DrawerComponent {
|
|
9
8
|
drawerService;
|
|
10
9
|
title;
|
|
11
10
|
footer;
|
|
12
|
-
size
|
|
11
|
+
size;
|
|
13
12
|
offsetY = '0px';
|
|
14
13
|
visible;
|
|
15
14
|
content;
|
|
16
|
-
hideOnClickOutside
|
|
17
|
-
showClose
|
|
15
|
+
hideOnClickOutside;
|
|
16
|
+
showClose;
|
|
18
17
|
drawerClass;
|
|
19
18
|
mask;
|
|
20
19
|
maskClosable;
|
|
21
|
-
divider
|
|
20
|
+
divider;
|
|
21
|
+
width;
|
|
22
|
+
contentParams;
|
|
22
23
|
close = new EventEmitter();
|
|
23
24
|
titleTemplate;
|
|
24
25
|
contentTemplateOrComponent;
|
|
25
26
|
footerTemplate;
|
|
27
|
+
drawerRef;
|
|
26
28
|
constructor(drawerService) {
|
|
27
29
|
this.drawerService = drawerService;
|
|
28
30
|
}
|
|
@@ -31,10 +33,13 @@ export class DrawerComponent {
|
|
|
31
33
|
if (visible) {
|
|
32
34
|
const value = visible.currentValue;
|
|
33
35
|
if (value) {
|
|
34
|
-
this.open();
|
|
36
|
+
this.drawerRef = this.drawerService.open(this);
|
|
37
|
+
this.drawerRef.afterClosed.pipe(first()).subscribe(res => {
|
|
38
|
+
this.close.emit(res);
|
|
39
|
+
});
|
|
35
40
|
}
|
|
36
41
|
else if (!visible.firstChange) {
|
|
37
|
-
this.
|
|
42
|
+
this.drawerRef.close();
|
|
38
43
|
}
|
|
39
44
|
}
|
|
40
45
|
}
|
|
@@ -43,20 +48,14 @@ export class DrawerComponent {
|
|
|
43
48
|
this.content = this.content || this.contentTemplateOrComponent;
|
|
44
49
|
this.footer = this.footer || this.footerTemplate;
|
|
45
50
|
}
|
|
46
|
-
open() {
|
|
47
|
-
const ref = this.drawerService.open(this);
|
|
48
|
-
ref.afterClosed.pipe(first()).subscribe(res => {
|
|
49
|
-
this.close.emit(res);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
51
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: DrawerComponent, deps: [{ token: i1.DrawerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: DrawerComponent, isStandalone: true, selector: "aui-drawer", inputs: { title: "title", footer: "footer", size: "size", offsetY: "offsetY", visible: "visible", content: "content", hideOnClickOutside: "hideOnClickOutside", showClose: "showClose", drawerClass: "drawerClass", mask: "mask", maskClosable: "maskClosable", divider: "divider" }, outputs: { close: "close" }, providers: [DrawerService], queries: [{ propertyName: "titleTemplate", first: true, predicate: DrawerHeaderDirective, descendants: true, read: TemplateRef }, { propertyName: "contentTemplateOrComponent", first: true, predicate: DrawerContentDirective, descendants: true, read: TemplateRef }, { propertyName: "footerTemplate", first: true, predicate: DrawerFooterDirective, descendants: true, read: TemplateRef }], usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
52
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: DrawerComponent, isStandalone: true, selector: "aui-drawer", inputs: { title: "title", footer: "footer", size: "size", offsetY: "offsetY", visible: "visible", content: "content", hideOnClickOutside: "hideOnClickOutside", showClose: "showClose", drawerClass: "drawerClass", mask: "mask", maskClosable: "maskClosable", divider: "divider", width: "width", contentParams: "contentParams" }, outputs: { close: "close" }, providers: [DrawerService], queries: [{ propertyName: "titleTemplate", first: true, predicate: DrawerHeaderDirective, descendants: true, read: TemplateRef }, { propertyName: "contentTemplateOrComponent", first: true, predicate: DrawerContentDirective, descendants: true, read: TemplateRef }, { propertyName: "footerTemplate", first: true, predicate: DrawerFooterDirective, descendants: true, read: TemplateRef }], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
54
53
|
}
|
|
55
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: DrawerComponent, decorators: [{
|
|
56
55
|
type: Component,
|
|
57
56
|
args: [{
|
|
58
57
|
selector: 'aui-drawer',
|
|
59
|
-
template: '',
|
|
58
|
+
template: '<ng-content></ng-content>',
|
|
60
59
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
61
60
|
standalone: true,
|
|
62
61
|
providers: [DrawerService],
|
|
@@ -85,6 +84,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
|
|
|
85
84
|
type: Input
|
|
86
85
|
}], divider: [{
|
|
87
86
|
type: Input
|
|
87
|
+
}], width: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], contentParams: [{
|
|
90
|
+
type: Input
|
|
88
91
|
}], close: [{
|
|
89
92
|
type: Output
|
|
90
93
|
}], titleTemplate: [{
|
|
@@ -97,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
|
|
|
97
100
|
type: ContentChild,
|
|
98
101
|
args: [DrawerFooterDirective, { read: TemplateRef }]
|
|
99
102
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kcmF3ZXIvY29tcG9uZW50L2RyYXdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixxQkFBcUIsR0FDdEIsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBVTlCLE1BQU0sT0FBTyxlQUFlO0lBZ0VHO0lBekQ3QixLQUFLLENBQTBCO0lBRy9CLE1BQU0sQ0FBMEI7SUFHaEMsSUFBSSxDQUFhO0lBR2pCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFHaEIsT0FBTyxDQUFVO0lBR2pCLE9BQU8sQ0FBb0M7SUFHM0Msa0JBQWtCLENBQVU7SUFHNUIsU0FBUyxDQUFVO0lBR25CLFdBQVcsQ0FBUztJQUdwQixJQUFJLENBQVU7SUFHZCxZQUFZLENBQVU7SUFHdEIsT0FBTyxDQUFVO0lBR2pCLEtBQUssQ0FBUztJQUdkLGFBQWEsQ0FBSTtJQUdSLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO0lBR3RCLGFBQWEsQ0FBaUI7SUFHOUIsMEJBQTBCLENBRXRCO0lBR0osY0FBYyxDQUFpQjtJQUV4QyxTQUFTLENBQXFCO0lBRXRDLFlBQTZCLGFBQXFDO1FBQXJDLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtJQUFHLENBQUM7SUFFdEUsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDNUIsSUFBSSxPQUFPLEVBQUU7WUFDWCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ25DLElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7Z0JBRS9CLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDeEI7U0FDRjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQztRQUMvRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUNuRCxDQUFDO3VHQXRGVSxlQUFlOzJGQUFmLGVBQWUsNFpBRmYsQ0FBQyxhQUFhLENBQUMscUVBcURaLHFCQUFxQiwyQkFBVSxXQUFXLDBFQUcxQyxzQkFBc0IsMkJBQVUsV0FBVyw4REFLM0MscUJBQXFCLDJCQUFVLFdBQVcsa0RBaEU5QywyQkFBMkI7OzJGQUsxQixlQUFlO2tCQVAzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDM0I7b0dBUUMsS0FBSztzQkFESixLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJRyxLQUFLO3NCQURiLE1BQU07Z0JBSVUsYUFBYTtzQkFEN0IsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBSXpDLDBCQUEwQjtzQkFEMUMsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBTTFDLGNBQWM7c0JBRDlCLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERyYXdlclJlZiB9IGZyb20gJy4uL2RyYXdlci1yZWYnO1xuaW1wb3J0IHsgRHJhd2VyU2VydmljZSB9IGZyb20gJy4uL2RyYXdlci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIERyYXdlckNvbnRlbnREaXJlY3RpdmUsXG4gIERyYXdlckZvb3RlckRpcmVjdGl2ZSxcbiAgRHJhd2VySGVhZGVyRGlyZWN0aXZlLFxufSBmcm9tICcuLi9oZWxwZXItZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBEcmF3ZXJPcHRpb25zLCBEcmF3ZXJTaXplIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktZHJhd2VyJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW0RyYXdlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBEcmF3ZXJDb21wb25lbnQ8XG4gIFQgPSB1bmtub3duLFxuICBDIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0LFxuICBSID0gdW5rbm93bixcbj4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIFJlcXVpcmVkPERyYXdlck9wdGlvbnM8VCwgQz4+XG57XG4gIEBJbnB1dCgpXG4gIHRpdGxlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxDPjtcblxuICBASW5wdXQoKVxuICBmb290ZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPEM+O1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IERyYXdlclNpemU7XG5cbiAgQElucHV0KClcbiAgb2Zmc2V0WSA9ICcwcHgnO1xuXG4gIEBJbnB1dCgpXG4gIHZpc2libGU6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgY29udGVudDogVGVtcGxhdGVSZWY8Qz4gfCBDb21wb25lbnRUeXBlPFQ+O1xuXG4gIEBJbnB1dCgpXG4gIGhpZGVPbkNsaWNrT3V0c2lkZTogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBzaG93Q2xvc2U6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgZHJhd2VyQ2xhc3M6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBtYXNrOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIG1hc2tDbG9zYWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBkaXZpZGVyOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHdpZHRoOiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgY29udGVudFBhcmFtczogQztcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPFI+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChEcmF3ZXJIZWFkZXJEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDPjtcblxuICBAQ29udGVudENoaWxkKERyYXdlckNvbnRlbnREaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZW50VGVtcGxhdGVPckNvbXBvbmVudDpcbiAgICB8IFRlbXBsYXRlUmVmPEM+XG4gICAgfCBDb21wb25lbnRUeXBlPFQ+O1xuXG4gIEBDb250ZW50Q2hpbGQoRHJhd2VyRm9vdGVyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHByaXZhdGUgcmVhZG9ubHkgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEM+O1xuXG4gIHByaXZhdGUgZHJhd2VyUmVmOiBEcmF3ZXJSZWY8VCwgQywgUj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkcmF3ZXJTZXJ2aWNlOiBEcmF3ZXJTZXJ2aWNlPFQsIEMsIFI+KSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCB7IHZpc2libGUgfSA9IGNoYW5nZXM7XG4gICAgaWYgKHZpc2libGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmlzaWJsZS5jdXJyZW50VmFsdWU7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5kcmF3ZXJSZWYgPSB0aGlzLmRyYXdlclNlcnZpY2Uub3Blbih0aGlzKTtcbiAgICAgICAgdGhpcy5kcmF3ZXJSZWYuYWZ0ZXJDbG9zZWQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLmNsb3NlLmVtaXQocmVzKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKCF2aXNpYmxlLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgIC8vIOS4jeW4jOacm+m7mOiupOWFs+mXreaXtu+8jGRyYXdlciDmuLLmn5PlkI7lsLHop6blj5EgY2xvc2Ug5LqL5Lu2XG4gICAgICAgIHRoaXMuZHJhd2VyUmVmLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudGl0bGUgPSB0aGlzLnRpdGxlIHx8IHRoaXMudGl0bGVUZW1wbGF0ZTtcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQgfHwgdGhpcy5jb250ZW50VGVtcGxhdGVPckNvbXBvbmVudDtcbiAgICB0aGlzLmZvb3RlciA9IHRoaXMuZm9vdGVyIHx8IHRoaXMuZm9vdGVyVGVtcGxhdGU7XG4gIH1cbn1cbiJdfQ==
|