@acorex/components 7.1.49 → 7.1.51
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/breadcrumbs/src/breadcrumbs-item.component.d.ts +6 -6
- package/button/src/button-group.component.d.ts +6 -6
- package/button/src/button-item.component.d.ts +6 -6
- package/chips/src/chips.component.d.ts +6 -6
- package/color-picker/src/color-picker.component.d.ts +16 -16
- package/common/src/components/base-component.class.d.ts +1 -0
- package/date-picker/src/datepicker.component.d.ts +1 -1
- package/esm2022/alert/src/alert.component.mjs +3 -1
- package/esm2022/button/src/button.component.mjs +2 -2
- package/esm2022/common/src/components/base-component.class.mjs +5 -1
- package/esm2022/common/src/components/value-component.class.mjs +3 -1
- package/esm2022/date-picker/src/datepicker.component.mjs +5 -32
- package/esm2022/form/src/form.component.mjs +6 -2
- package/esm2022/search-box/src/search-box.component.mjs +15 -7
- package/esm2022/select-box/src/selectbox.component.mjs +2 -2
- package/esm2022/tabs/src/tabs.component.mjs +2 -2
- package/fesm2022/acorex-components-alert.mjs +2 -0
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +2 -2
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +6 -0
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-date-picker.mjs +3 -30
- package/fesm2022/acorex-components-date-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +5 -1
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +12 -4
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +2 -2
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +2 -2
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/mixin/src/base-components.class.d.ts +2 -2
- package/mixin/src/base-menu-mixin.class.d.ts +5 -5
- package/mixin/src/button-mixin.class.d.ts +2 -2
- package/mixin/src/clickable-mixin.class.d.ts +2 -2
- package/mixin/src/color-look-mixing.class.d.ts +2 -2
- package/mixin/src/datalist-component.class.d.ts +10 -10
- package/mixin/src/dropdown-mixin.class.d.ts +2 -2
- package/mixin/src/interactive-mixin.class.d.ts +4 -4
- package/mixin/src/loading-mixin.class.d.ts +2 -2
- package/mixin/src/mixin.class.d.ts +61 -61
- package/mixin/src/page-component.class.d.ts +2 -2
- package/mixin/src/selection-component.class.d.ts +2 -2
- package/mixin/src/sizable-mixin.class.d.ts +2 -2
- package/mixin/src/textbox-mixin.class.d.ts +2 -2
- package/mixin/src/value-mixin.class.d.ts +8 -8
- package/package.json +35 -35
- package/search-box/src/search-box.component.d.ts +2 -0
- package/tabs/src/tab-item.component.d.ts +2 -2
@@ -3,9 +3,9 @@ import { ChangeDetectorRef, ElementRef } from '@angular/core';
|
|
3
3
|
import { AXBreadCrumbsComponent } from './breadcrumbs.component';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
export declare const AXBaseItemBreadCrumbMixin: (abstract new (...args: any[]) => {
|
6
|
-
"__#
|
6
|
+
"__#53704@#disabled": boolean;
|
7
7
|
disabled: boolean;
|
8
|
-
"__#
|
8
|
+
"__#53704@#tabIndex": number;
|
9
9
|
tabIndex: number;
|
10
10
|
onFocus: import("@angular/core").EventEmitter<import("@acorex/components/common").AXFocusEvent>;
|
11
11
|
_emitOnFocusEvent(e: FocusEvent): void;
|
@@ -14,9 +14,9 @@ export declare const AXBaseItemBreadCrumbMixin: (abstract new (...args: any[]) =
|
|
14
14
|
focus(): void;
|
15
15
|
hasFocus(): boolean;
|
16
16
|
id: string;
|
17
|
-
"__#
|
17
|
+
"__#53701@#rtl": boolean;
|
18
18
|
rtl: boolean;
|
19
|
-
"__#
|
19
|
+
"__#53701@#elementRef": ElementRef<any>;
|
20
20
|
_cdr: ChangeDetectorRef;
|
21
21
|
_isInited: boolean;
|
22
22
|
_isRendered: boolean;
|
@@ -39,9 +39,9 @@ export declare const AXBaseItemBreadCrumbMixin: (abstract new (...args: any[]) =
|
|
39
39
|
onClick: import("@angular/core").EventEmitter<import("@acorex/components/common").AXClickEvent>;
|
40
40
|
_emitOnClickEvent(e: MouseEvent): void;
|
41
41
|
id: string;
|
42
|
-
"__#
|
42
|
+
"__#53701@#rtl": boolean;
|
43
43
|
rtl: boolean;
|
44
|
-
"__#
|
44
|
+
"__#53701@#elementRef": ElementRef<any>; /**
|
45
45
|
* @ignore
|
46
46
|
*/
|
47
47
|
_cdr: ChangeDetectorRef;
|
@@ -4,9 +4,9 @@ import { AXClickEvent, AXItemClickEvent, AXSelectionMode, AXSelectionValueChange
|
|
4
4
|
import { AXBaseComponent } from '@acorex/components/mixin';
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
export declare const AXBaseButtonGroupMixin: (abstract new (...args: any[]) => {
|
7
|
-
"__#
|
7
|
+
"__#53704@#disabled": boolean;
|
8
8
|
disabled: boolean;
|
9
|
-
"__#
|
9
|
+
"__#53704@#tabIndex": number;
|
10
10
|
tabIndex: number;
|
11
11
|
onFocus: EventEmitter<import("@acorex/components/common").AXFocusEvent>;
|
12
12
|
_emitOnFocusEvent(e: FocusEvent): void;
|
@@ -15,9 +15,9 @@ export declare const AXBaseButtonGroupMixin: (abstract new (...args: any[]) => {
|
|
15
15
|
focus(): void;
|
16
16
|
hasFocus(): boolean;
|
17
17
|
id: string;
|
18
|
-
"__#
|
18
|
+
"__#53701@#rtl": boolean;
|
19
19
|
rtl: boolean;
|
20
|
-
"__#
|
20
|
+
"__#53701@#elementRef": ElementRef<any>;
|
21
21
|
_cdr: ChangeDetectorRef;
|
22
22
|
_isInited: boolean;
|
23
23
|
_isRendered: boolean;
|
@@ -44,9 +44,9 @@ export declare const AXBaseButtonGroupMixin: (abstract new (...args: any[]) => {
|
|
44
44
|
_look?: import("@acorex/components/common").AXStyleLookType;
|
45
45
|
look: import("@acorex/components/common").AXStyleLookType;
|
46
46
|
id: string;
|
47
|
-
"__#
|
47
|
+
"__#53701@#rtl": boolean;
|
48
48
|
rtl: boolean;
|
49
|
-
"__#
|
49
|
+
"__#53701@#elementRef": ElementRef<any>;
|
50
50
|
_cdr: ChangeDetectorRef;
|
51
51
|
_isInited: boolean;
|
52
52
|
_isRendered: boolean;
|
@@ -3,9 +3,9 @@ import { AXStyleColorType } from '@acorex/components/common';
|
|
3
3
|
import { AXBaseComponent } from '@acorex/components/mixin';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
export declare const AXBaseItemButtonMixin: (abstract new (...args: any[]) => {
|
6
|
-
"__#
|
6
|
+
"__#53704@#disabled": boolean;
|
7
7
|
disabled: boolean;
|
8
|
-
"__#
|
8
|
+
"__#53704@#tabIndex": number;
|
9
9
|
tabIndex: number;
|
10
10
|
onFocus: import("@angular/core").EventEmitter<import("@acorex/components/common").AXFocusEvent>;
|
11
11
|
_emitOnFocusEvent(e: FocusEvent): void;
|
@@ -14,9 +14,9 @@ export declare const AXBaseItemButtonMixin: (abstract new (...args: any[]) => {
|
|
14
14
|
focus(): void;
|
15
15
|
hasFocus(): boolean;
|
16
16
|
id: string;
|
17
|
-
"__#
|
17
|
+
"__#53701@#rtl": boolean;
|
18
18
|
rtl: boolean;
|
19
|
-
"__#
|
19
|
+
"__#53701@#elementRef": ElementRef<any>;
|
20
20
|
_cdr: ChangeDetectorRef;
|
21
21
|
_isInited: boolean;
|
22
22
|
_isRendered: boolean;
|
@@ -39,9 +39,9 @@ export declare const AXBaseItemButtonMixin: (abstract new (...args: any[]) => {
|
|
39
39
|
onClick: import("@angular/core").EventEmitter<import("@acorex/components/common").AXClickEvent>;
|
40
40
|
_emitOnClickEvent(e: MouseEvent): void;
|
41
41
|
id: string;
|
42
|
-
"__#
|
42
|
+
"__#53701@#rtl": boolean;
|
43
43
|
rtl: boolean;
|
44
|
-
"__#
|
44
|
+
"__#53701@#elementRef": ElementRef<any>;
|
45
45
|
_cdr: ChangeDetectorRef;
|
46
46
|
_isInited: boolean;
|
47
47
|
_isRendered: boolean;
|
@@ -2,9 +2,9 @@ import { AXStyleColorType } from '@acorex/components/common';
|
|
2
2
|
import { AXBaseComponent } from '@acorex/components/mixin';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
export declare const AXBaseChipsMixin: (abstract new (...args: any[]) => {
|
5
|
-
"__#
|
5
|
+
"__#53704@#disabled": boolean;
|
6
6
|
disabled: boolean;
|
7
|
-
"__#
|
7
|
+
"__#53704@#tabIndex": number;
|
8
8
|
tabIndex: number;
|
9
9
|
onFocus: import("@angular/core").EventEmitter<import("@acorex/components/common").AXFocusEvent>;
|
10
10
|
_emitOnFocusEvent(e: FocusEvent): void;
|
@@ -13,9 +13,9 @@ export declare const AXBaseChipsMixin: (abstract new (...args: any[]) => {
|
|
13
13
|
focus(): void;
|
14
14
|
hasFocus(): boolean;
|
15
15
|
id: string;
|
16
|
-
"__#
|
16
|
+
"__#53701@#rtl": boolean;
|
17
17
|
rtl: boolean;
|
18
|
-
"__#
|
18
|
+
"__#53701@#elementRef": import("@angular/core").ElementRef<any>;
|
19
19
|
_cdr: import("@angular/core").ChangeDetectorRef;
|
20
20
|
_isInited: boolean;
|
21
21
|
_isRendered: boolean;
|
@@ -38,9 +38,9 @@ export declare const AXBaseChipsMixin: (abstract new (...args: any[]) => {
|
|
38
38
|
onClick: import("@angular/core").EventEmitter<import("@acorex/components/common").AXClickEvent>;
|
39
39
|
_emitOnClickEvent(e: MouseEvent): void;
|
40
40
|
id: string;
|
41
|
-
"__#
|
41
|
+
"__#53701@#rtl": boolean;
|
42
42
|
rtl: boolean;
|
43
|
-
"__#
|
43
|
+
"__#53701@#elementRef": import("@angular/core").ElementRef<any>;
|
44
44
|
_cdr: import("@angular/core").ChangeDetectorRef;
|
45
45
|
_isInited: boolean;
|
46
46
|
_isRendered: boolean;
|
@@ -6,9 +6,9 @@ import { AXPopoverComponent } from '@acorex/components/popover';
|
|
6
6
|
import { AXBaseComponent } from '@acorex/components/mixin';
|
7
7
|
import * as i0 from "@angular/core";
|
8
8
|
export declare const AXBaseColorPickerMixin: (abstract new (...args: any[]) => {
|
9
|
-
"__#
|
9
|
+
"__#53704@#disabled": boolean;
|
10
10
|
disabled: boolean;
|
11
|
-
"__#
|
11
|
+
"__#53704@#tabIndex": number;
|
12
12
|
tabIndex: number;
|
13
13
|
onFocus: import("@angular/core").EventEmitter<import("@acorex/components/common").AXFocusEvent>;
|
14
14
|
_emitOnFocusEvent(e: FocusEvent): void;
|
@@ -17,9 +17,9 @@ export declare const AXBaseColorPickerMixin: (abstract new (...args: any[]) => {
|
|
17
17
|
focus(): void;
|
18
18
|
hasFocus(): boolean;
|
19
19
|
id: string;
|
20
|
-
"__#
|
20
|
+
"__#53701@#rtl": boolean;
|
21
21
|
rtl: boolean;
|
22
|
-
"__#
|
22
|
+
"__#53701@#elementRef": ElementRef<any>;
|
23
23
|
_cdr: ChangeDetectorRef;
|
24
24
|
_isInited: boolean;
|
25
25
|
_isRendered: boolean;
|
@@ -58,9 +58,9 @@ export declare const AXBaseColorPickerMixin: (abstract new (...args: any[]) => {
|
|
58
58
|
open(): void;
|
59
59
|
readonly isOpen: boolean;
|
60
60
|
id: string;
|
61
|
-
"__#
|
61
|
+
"__#53701@#rtl": boolean;
|
62
62
|
rtl: boolean;
|
63
|
-
"__#
|
63
|
+
"__#53701@#elementRef": ElementRef<any>;
|
64
64
|
_cdr: ChangeDetectorRef;
|
65
65
|
_isInited: boolean;
|
66
66
|
_isRendered: boolean;
|
@@ -81,17 +81,17 @@ export declare const AXBaseColorPickerMixin: (abstract new (...args: any[]) => {
|
|
81
81
|
onValueChanged: import("@angular/core").EventEmitter<AXValueChangedEvent<any>>;
|
82
82
|
valueChange: import("@angular/core").EventEmitter<any>;
|
83
83
|
stateChange: import("@angular/core").EventEmitter<import("@acorex/components/mixin").AXComponentState>;
|
84
|
-
"__#
|
84
|
+
"__#53705@#readonly": boolean;
|
85
85
|
readonly: boolean;
|
86
|
-
"__#
|
86
|
+
"__#53705@#allowNull": boolean;
|
87
87
|
allowNull: boolean;
|
88
|
-
"__#
|
88
|
+
"__#53705@#name": string;
|
89
89
|
name: string;
|
90
|
-
"__#
|
90
|
+
"__#53705@#isUserInteraction": boolean;
|
91
91
|
readonly isUserInteraction: boolean;
|
92
|
-
"__#
|
92
|
+
"__#53705@#value": any;
|
93
93
|
value: any;
|
94
|
-
"__#
|
94
|
+
"__#53705@#state": import("@acorex/components/mixin").AXComponentState;
|
95
95
|
state: import("@acorex/components/mixin").AXComponentState;
|
96
96
|
_emitOnValueChangedEvent(oldValue?: any, newValue?: any): void;
|
97
97
|
_internalSetValue(value: any): any;
|
@@ -108,9 +108,9 @@ export declare const AXBaseColorPickerMixin: (abstract new (...args: any[]) => {
|
|
108
108
|
validate(): Promise<any>;
|
109
109
|
_setState(state: import("@acorex/components/mixin").AXComponentState, ...args: any[]): void;
|
110
110
|
id: string;
|
111
|
-
"__#
|
111
|
+
"__#53701@#rtl": boolean;
|
112
112
|
rtl: boolean;
|
113
|
-
"__#
|
113
|
+
"__#53701@#elementRef": ElementRef<any>;
|
114
114
|
_cdr: ChangeDetectorRef;
|
115
115
|
_isInited: boolean;
|
116
116
|
_isRendered: boolean;
|
@@ -138,9 +138,9 @@ export declare const AXBaseColorPickerMixin: (abstract new (...args: any[]) => {
|
|
138
138
|
_emitOnKeyupEvent(e: KeyboardEvent): void;
|
139
139
|
_emitOnKeypressEvent(e: KeyboardEvent): void;
|
140
140
|
id: string;
|
141
|
-
"__#
|
141
|
+
"__#53701@#rtl": boolean;
|
142
142
|
rtl: boolean;
|
143
|
-
"__#
|
143
|
+
"__#53701@#elementRef": ElementRef<any>;
|
144
144
|
_cdr: ChangeDetectorRef;
|
145
145
|
_isInited: boolean;
|
146
146
|
_isRendered: boolean;
|
@@ -21,6 +21,7 @@ export declare abstract class MXBaseComponent {
|
|
21
21
|
getHostElement<T = HTMLElement>(): T;
|
22
22
|
protected getViewContainer(): ViewContainerRef;
|
23
23
|
protected onOptionChanging(option: MXComponentOptionChanging): any;
|
24
|
+
protected init(): void;
|
24
25
|
protected onOptionChanged: EventEmitter<AXOptionChangedEvent>;
|
25
26
|
protected setOption(option: MXComponentSetOption): void;
|
26
27
|
private _rtl;
|
@@ -34,6 +34,6 @@ export declare class AXDatePickerComponent extends AXDatePickerComponent_base {
|
|
34
34
|
protected _handleOnInputClickEvent(e: MouseEvent): void;
|
35
35
|
protected _handleOnNavigate(e: AXCalendarNavigateEvent): void;
|
36
36
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXDatePickerComponent, never>;
|
37
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AXDatePickerComponent, "ax-date-picker", never, { "rtl": { "alias": "rtl"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "holidayDates": { "alias": "holidayDates"; "required": false; }; "type": { "alias": "type"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "format": { "alias": "format"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "interface": { "alias": "interface"; "required": false; }; }, { "onOptionChanged": "onOptionChanged"; "valueChange": "valueChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "depthChange": "depthChange"; "typeChange": "typeChange"; "activeViewChange": "activeViewChange"; "disabledDatesChange": "disabledDatesChange"; "holidayDatesChange": "holidayDatesChange"; "onNavigate": "onNavigate"; "onSlotClick": "onSlotClick"; "formatChange": "formatChange"; }, never, ["ax-prefix", "ax-
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXDatePickerComponent, "ax-date-picker", never, { "rtl": { "alias": "rtl"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "holidayDates": { "alias": "holidayDates"; "required": false; }; "type": { "alias": "type"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "format": { "alias": "format"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "interface": { "alias": "interface"; "required": false; }; }, { "onOptionChanged": "onOptionChanged"; "valueChange": "valueChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "depthChange": "depthChange"; "typeChange": "typeChange"; "activeViewChange": "activeViewChange"; "disabledDatesChange": "disabledDatesChange"; "holidayDatesChange": "holidayDatesChange"; "onNavigate": "onNavigate"; "onSlotClick": "onSlotClick"; "formatChange": "formatChange"; }, never, ["ax-prefix", "ax-validation-rule", "ax-suffix"], false, never>;
|
38
38
|
}
|
39
39
|
export {};
|
@@ -97,6 +97,8 @@ class AXAlertComponent extends classes(MXColorComponent) {
|
|
97
97
|
//
|
98
98
|
this._customIcon = this._iconComp?.icon;
|
99
99
|
this._showInline = this._contentComp != null || this._footerComp != null;
|
100
|
+
this._setIcon();
|
101
|
+
this._applyButtonStyle();
|
100
102
|
this.cdr.markForCheck();
|
101
103
|
}
|
102
104
|
_handleOnOptionChanged(e) {
|
@@ -191,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
|
|
191
193
|
}], visible: [{
|
192
194
|
type: Input
|
193
195
|
}] } });
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvYWxlcnQvc3JjL2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL2FsZXJ0L3NyYy9hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsMEJBQTBCLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3SixPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWEsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFLLE9BQU8sRUFBRSxtQkFBbUIsRUFBaUMsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFFbkM7Ozs7R0FJRztBQUNILE1BVWEsZ0JBQWlCLFNBQVEsT0FBTyxDQUFDLGdCQUFnQixDQUFDO0lBRXJELFNBQVMsQ0FBNEI7SUFHckMsWUFBWSxDQUFnQztJQUcxQyxVQUFVLENBQXFCO0lBRy9CLFlBQVksQ0FBcUI7SUFHakMsV0FBVyxDQUFxQjtJQUVoQyxXQUFXLEdBQVksS0FBSyxDQUFDO0lBR3ZDLFFBQVEsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUV0RCxXQUFXLENBQVM7SUFDcEIsV0FBVyxDQUFTO0lBRTVCOztPQUVHO0lBQ0gsSUFDSSxXQUFXO1FBQ2IsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FB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RUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO3VHQWxMVSxnQkFBZ0I7MkZBQWhCLGdCQUFnQiw2TkFGaEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxpRUFHOUQsd0JBQXdCLDZFQU14Qix5QkFBeUIsK0VBR3pCLDJCQUEyQiw0RkFHM0IsMEJBQTBCLGtFQVR2QixpQkFBaUIsdUVDekJwQyxvMkJBbUJBOztTREVhLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQVY1QixTQUFTOytCQUNFLFVBQVUsVUFHWixDQUFDLE9BQU8sQ0FBQyxXQUNSLENBQUMsYUFBYSxDQUFDLG1CQUNQLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLGtCQUFrQixFQUFFLENBQUM7OEJBSXBFLFNBQVM7c0JBRGhCLFlBQVk7dUJBQUMsd0JBQXdCO2dCQUk5QixZQUFZO3NCQURuQixlQUFlO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJL0MsVUFBVTtzQkFEbkIsWUFBWTt1QkFBQyx5QkFBeUI7Z0JBSTdCLFlBQVk7c0JBRHJCLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqRCxXQUFXO3NCQURwQixZQUFZO3VCQUFDLDBCQUEwQjtnQkFNeEMsUUFBUTtzQkFEUCxNQUFNO2dCQVVILFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVFULE9BQU87c0JBRGpCLEtBQUs7Z0JBNEJLLE9BQU87c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JDb250ZW50Q29tcG9uZW50LCBBWERlY29yYXRvckZvb3RlckNvbXBvbmVudCwgQVhEZWNvcmF0b3JJY29uQ29tcG9uZW50LCBBWERlY29yYXRvclRpdGxlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIEhvc3RCaW5kaW5nLCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBRdWVyeUxpc3QsIENvbnRlbnRDaGlsZHJlbiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ2xvc2JhbGVDb21wb25lbnQsIEFYRXZlbnQsIEFYT3B0aW9uQ2hhbmdlZEV2ZW50LCBNWENvbG9yQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuXG4vKipcbiAqIFJlZ3VsYXIgZGVzY3JpcHRpb25cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1hbGVydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGVydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogWydjb2xvciddLFxuICBvdXRwdXRzOiBbJ2NvbG9yQ2hhbmdlJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ2xvc2JhbGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEFsZXJ0Q29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEFsZXJ0Q29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhNWENvbG9yQ29tcG9uZW50KSB7XG4gIEBDb250ZW50Q2hpbGQoQVhEZWNvcmF0b3JJY29uQ29tcG9uZW50KVxuICBwcml2YXRlIF9pY29uQ29tcCE6IEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkcmVuKEFYQnV0dG9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgX2J1dHRvbkNvbXBzITogUXVlcnlMaXN0PEFYQnV0dG9uQ29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkKEFYRGVjb3JhdG9yVGl0bGVDb21wb25lbnQpXG4gIHByb3RlY3RlZCBfdGl0bGVDb21wITogQVhCdXR0b25Db21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZChBWERlY29yYXRvckNvbnRlbnRDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBfY29udGVudENvbXAhOiBBWEJ1dHRvbkNvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEFYRGVjb3JhdG9yRm9vdGVyQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgX2Zvb3RlckNvbXAhOiBBWEJ1dHRvbkNvbXBvbmVudDtcblxuICBwcm90ZWN0ZWQgX3Nob3dJbmxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgb25DbG9zZWQ6IEV2ZW50RW1pdHRlcjxBWEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhFdmVudD4oKTtcblxuICBwcml2YXRlIF9jdXN0b21JY29uOiBzdHJpbmc7XG4gIHByaXZhdGUgX3RpbWVPdXRSZWY6IG51bWJlcjtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBfY2xhc3MgPSBgYXgtJHt0aGlzLmNvbG9yfS1kZWZhdWx0YDtcbiAgICByZXR1cm4gYGF4LWFsZXJ0IGF4LW5vbmUgJHtfY2xhc3N9YDtcbiAgfVxuXG4gIHByaXZhdGUgX3RpbWVPdXQ6IG51bWJlcjtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCB0aW1lT3V0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3RpbWVPdXQ7XG4gIH1cbiAgcHVibGljIHNldCB0aW1lT3V0KHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICd0aW1lT3V0JyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYmVmb3JlQ2FsbGJhY2s6IChvbGRWYWx1ZSwgbmV3VmFsdWUpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVPdXRSZWYpO1xuICAgICAgfSxcbiAgICAgIGFmdGVyQ2FsbGJhY2s6IChvbGRWYWx1ZSwgbmV3VmFsdWUpID0+IHtcbiAgICAgICAgaWYgKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5fdGltZU91dFJlZiA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9LCB0aGlzLnRpbWVPdXQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgcHJvdGVjdGVkIF92aXNpYmxlOiBib29sZWFuO1xuICAvKipcbiAgICogIHNldCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgQWxlcnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuICBwdWJsaWMgc2V0IHZpc2libGUodjogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl92aXNpYmxlICE9IHYpIHtcbiAgICAgIHRoaXMuX3Zpc2libGUgPSB2O1xuICAgICAgY29uc3QgaG9zdCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKTtcbiAgICAgIGlmICh2KSB7XG4gICAgICAgIGhvc3QuY2xhc3NMaXN0LnJlbW92ZSgnYXgtc3RhdGUtaGlkZGVuJyk7XG4gICAgICAgIGhvc3QuY2xhc3NMaXN0LmFkZCgnYXgtc3RhdGUtdmlzaWJsZScpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaG9zdC5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1oaWRkZW4nKTtcbiAgICAgICAgaG9zdC5jbGFzc0xpc3QudG9nZ2xlKCdheC1zdGF0ZS12aXNpYmxlJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgYXR0cmlidXRlczogZmFsc2UsIGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9O1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKG11dGF0aW9uTGlzdCwgb2JzZXJ2ZXIpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25MaXN0KSB7XG4gICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnY2hpbGRMaXN0Jykge1xuICAgICAgICAgIHRoaXMuX3NldEljb24oKTtcbiAgICAgICAgICB0aGlzLl9hcHBseUJ1dHRvblN0eWxlKCk7XG4gICAgICAgICAgdGhpcy5fc2hvd0lubGluZSA9IHRoaXMuX2NvbnRlbnRDb21wICE9IG51bGwgfHwgdGhpcy5fZm9vdGVyQ29tcCAhPSBudWxsO1xuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIENyZWF0ZSBhbiBvYnNlcnZlciBpbnN0YW5jZSBsaW5rZWQgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uXG4gICAgaWYgKHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHRoZSB0YXJnZXQgbm9kZSBmb3IgY29uZmlndXJlZCBtdXRhdGlvbnNcbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSwgY29uZmlnKTtcbiAgICAvL1xuICAgIHRoaXMub25PcHRpb25DaGFuZ2VkLnN1YnNjcmliZSh0aGlzLl9oYW5kbGVPbk9wdGlvbkNoYW5nZWQuYmluZCh0aGlzKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnZpc2libGUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgICAvL1xuICAgIHRoaXMuX2N1c3RvbUljb24gPSB0aGlzLl9pY29uQ29tcD8uaWNvbjtcbiAgICB0aGlzLl9zaG93SW5saW5lID0gdGhpcy5fY29udGVudENvbXAgIT0gbnVsbCB8fCB0aGlzLl9mb290ZXJDb21wICE9IG51bGw7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZU9uT3B0aW9uQ2hhbmdlZChlOiBBWE9wdGlvbkNoYW5nZWRFdmVudCkge1xuICAgIHRoaXMuX3NldEljb24oKTtcbiAgICB0aGlzLl9hcHBseUJ1dHRvblN0eWxlKCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRJY29uKCkge1xuICAgIGlmICghdGhpcy5faWNvbkNvbXAgfHwgdGhpcy5faWNvbkNvbXAuX2dldElubmVyRWxlbWVudCgpKSByZXR1cm47XG5cbiAgICBzd2l0Y2ggKHRoaXMuY29sb3IpIHtcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICB0aGlzLl9pY29uQ29tcC5pY29uID0gJ2F4LWljb24gYXgtaWNvbi1jaGVjay1jaXJjbGUtZmlsbCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgdGhpcy5faWNvbkNvbXAuaWNvbiA9ICdheC1pY29uIGF4LWljb24tZXJyb3ItZmlsbCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgIHRoaXMuX2ljb25Db21wLmljb24gPSAnYXgtaWNvbiBheC1pY29uLXdhcm5pbmctZmlsbCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5faWNvbkNvbXAuaWNvbiA9IHRoaXMuX2N1c3RvbUljb24gfHwgJ2F4LWljb24gYXgtaWNvbi1jaGVjay1jaXJjbGUtZmlsbCc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5QnV0dG9uU3R5bGUoKSB7XG4gICAgdGhpcy5fYnV0dG9uQ29tcHM/LmZvckVhY2goKGM6IGFueSkgPT4ge1xuICAgICAgYy5jb2xvciA9IHRoaXMuY29sb3I7XG4gICAgICBjLmdldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LmFkZCgnYXgtc20nKTtcbiAgICAgIGMubG9vayA9ICFjLmxvb2sgfHwgYy5sb29rID09ICdkZWZhdWx0JyA/ICdkZWZhdWx0JyA6ICdibGFuayc7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIFJlbW92ZSB0aGUgYWxlcnQgZnJvbSB0aGUgY29udGFpbmVyXG4gICAqL1xuICBjbG9zZSgpOiB2b2lkIHtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpO1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIGNvbnN0IGZ1bmMgPSAoKSA9PiB7XG4gICAgICBob3N0LnBhcmVudEVsZW1lbnQ/LnJlbW92ZUNoaWxkKGhvc3QpO1xuICAgICAgdGhpcy5vbkNsb3NlZC5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgfSk7XG4gICAgICBob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCBmdW5jKTtcbiAgICB9O1xuICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIGZ1bmMpO1xuICB9XG5cbiAgLyoqXG4gICAqICBIaWRlIHRoZSBhbGVydFxuICAgKi9cbiAgaGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgU2hvdyB0aGUgYWxlcnRcbiAgICovXG4gIHNob3coKSB7XG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX29ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5vbk9wdGlvbkNoYW5nZWQ/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1hbGVydC1pbmxpbmUtc3RhcnRcIiBbY2xhc3MuIWF4LWl0ZW1zLXN0YXJ0XT1cIl9zaG93SW5saW5lXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWljb25cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJheC1hbGVydC1pbmxpbmUtbWlkZGxlXCI+XG4gIDxkaXYgY2xhc3M9XCJheC1hbGVydC1taWRkbGUtYmxvY2stc3RhcnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtYWxlcnQtdGl0bGVcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXRpdGxlXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImF4LWFsZXJ0LW1pZGRsZS1ibG9jay1lbmRcIiBbY2xhc3MuYXgtaGlkZGVuXT1cIiFfc2hvd0lubGluZVwiIFtjbGFzcy5heC10aXRsZS1nYXBdPVwiX3RpdGxlQ29tcFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWNvbnRlbnRcIj4gPC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPiA8L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXgtYWxlcnQtaW5saW5lLWVuZFwiIFtjbGFzcy4hYXgtaXRlbXMtc3RhcnRdPVwiX3Nob3dJbmxpbmVcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtYnV0dG9uXCI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jbG9zZS1idXR0b25cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJheC1hbGVydC1wcm9ncmVzc1wiIFtzdHlsZS5hbmltYXRpb24tZHVyYXRpb24ubXNdPVwidGltZU91dFwiICpuZ0lmPVwidGltZU91dFwiPjwvZGl2PlxuIl19
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvYWxlcnQvc3JjL2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL2FsZXJ0L3NyYy9hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsMEJBQTBCLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3SixPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWEsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFLLE9BQU8sRUFBRSxtQkFBbUIsRUFBaUMsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFFbkM7Ozs7R0FJRztBQUNILE1BVWEsZ0JBQWlCLFNBQVEsT0FBTyxDQUFDLGdCQUFnQixDQUFDO0lBRXJELFNBQVMsQ0FBNEI7SUFHckMsWUFBWSxDQUFnQztJQUcxQyxVQUFVLENBQXFCO0lBRy9CLFlBQVksQ0FBcUI7SUFHakMsV0FBVyxDQUFxQjtJQUVoQyxXQUFXLEdBQVksS0FBSyxDQUFDO0lBR3ZDLFFBQVEsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUV0RCxXQUFXLENBQVM7SUFDcEIsV0FBVyxDQUFTO0lBRTVCOztPQUVHO0lBQ0gsSUFDSSxXQUFXO1FBQ2IsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FB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QVc7UUFDVCxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQzt1R0FwTFUsZ0JBQWdCOzJGQUFoQixnQkFBZ0IsNk5BRmhCLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUMsaUVBRzlELHdCQUF3Qiw2RUFNeEIseUJBQXlCLCtFQUd6QiwyQkFBMkIsNEZBRzNCLDBCQUEwQixrRUFUdkIsaUJBQWlCLHVFQ3pCcEMsbzJCQW1CQTs7U0RFYSxnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFWNUIsU0FBUzsrQkFDRSxVQUFVLFVBR1osQ0FBQyxPQUFPLENBQUMsV0FDUixDQUFDLGFBQWEsQ0FBQyxtQkFDUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxrQkFBa0IsRUFBRSxDQUFDOzhCQUlwRSxTQUFTO3NCQURoQixZQUFZO3VCQUFDLHdCQUF3QjtnQkFJOUIsWUFBWTtzQkFEbkIsZUFBZTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSS9DLFVBQVU7c0JBRG5CLFlBQVk7dUJBQUMseUJBQXlCO2dCQUk3QixZQUFZO3NCQURyQixZQUFZO3VCQUFDLDJCQUEyQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJakQsV0FBVztzQkFEcEIsWUFBWTt1QkFBQywwQkFBMEI7Z0JBTXhDLFFBQVE7c0JBRFAsTUFBTTtnQkFVSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTztnQkFRVCxPQUFPO3NCQURqQixLQUFLO2dCQTRCSyxPQUFPO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yQ29udGVudENvbXBvbmVudCwgQVhEZWNvcmF0b3JGb290ZXJDb21wb25lbnQsIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCwgQVhEZWNvcmF0b3JUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBIb3N0QmluZGluZywgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgUXVlcnlMaXN0LCBDb250ZW50Q2hpbGRyZW4sIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWENsb3NiYWxlQ29tcG9uZW50LCBBWEV2ZW50LCBBWE9wdGlvbkNoYW5nZWRFdmVudCwgTVhDb2xvckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcblxuLyoqXG4gKiBSZWd1bGFyIGRlc2NyaXB0aW9uXG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtYWxlcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hbGVydC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFsnY29sb3InXSxcbiAgb3V0cHV0czogWydjb2xvckNoYW5nZSddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENsb3NiYWxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhBbGVydENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhBbGVydENvbXBvbmVudCBleHRlbmRzIGNsYXNzZXMoTVhDb2xvckNvbXBvbmVudCkge1xuICBAQ29udGVudENoaWxkKEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudClcbiAgcHJpdmF0ZSBfaWNvbkNvbXAhOiBBWERlY29yYXRvckljb25Db21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihBWEJ1dHRvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIF9idXR0b25Db21wcyE6IFF1ZXJ5TGlzdDxBWEJ1dHRvbkNvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZChBWERlY29yYXRvclRpdGxlQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgX3RpdGxlQ29tcCE6IEFYQnV0dG9uQ29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoQVhEZWNvcmF0b3JDb250ZW50Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgX2NvbnRlbnRDb21wITogQVhCdXR0b25Db21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZChBWERlY29yYXRvckZvb3RlckNvbXBvbmVudClcbiAgcHJvdGVjdGVkIF9mb290ZXJDb21wITogQVhCdXR0b25Db21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIF9zaG93SW5saW5lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2xvc2VkOiBFdmVudEVtaXR0ZXI8QVhFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBfY3VzdG9tSWNvbjogc3RyaW5nO1xuICBwcml2YXRlIF90aW1lT3V0UmVmOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgX2NsYXNzID0gYGF4LSR7dGhpcy5jb2xvcn0tZGVmYXVsdGA7XG4gICAgcmV0dXJuIGBheC1hbGVydCBheC1ub25lICR7X2NsYXNzfWA7XG4gIH1cblxuICBwcml2YXRlIF90aW1lT3V0OiBudW1iZXI7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdGltZU91dCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl90aW1lT3V0O1xuICB9XG4gIHB1YmxpYyBzZXQgdGltZU91dCh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAndGltZU91dCcsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGJlZm9yZUNhbGxiYWNrOiAob2xkVmFsdWUsIG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lT3V0UmVmKTtcbiAgICAgIH0sXG4gICAgICBhZnRlckNhbGxiYWNrOiAob2xkVmFsdWUsIG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChuZXdWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuX3RpbWVPdXRSZWYgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgfSwgdGhpcy50aW1lT3V0KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIHByb3RlY3RlZCBfdmlzaWJsZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqICBzZXQgdGhlIHZpc2liaWxpdHkgb2YgdGhlIEFsZXJ0XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cbiAgcHVibGljIHNldCB2aXNpYmxlKHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5fdmlzaWJsZSAhPSB2KSB7XG4gICAgICB0aGlzLl92aXNpYmxlID0gdjtcbiAgICAgIGNvbnN0IGhvc3QgPSB0aGlzLmdldEhvc3RFbGVtZW50KCk7XG4gICAgICBpZiAodikge1xuICAgICAgICBob3N0LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LXN0YXRlLWhpZGRlbicpO1xuICAgICAgICBob3N0LmNsYXNzTGlzdC5hZGQoJ2F4LXN0YXRlLXZpc2libGUnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhvc3QuY2xhc3NMaXN0LmFkZCgnYXgtc3RhdGUtaGlkZGVuJyk7XG4gICAgICAgIGhvc3QuY2xhc3NMaXN0LnRvZ2dsZSgnYXgtc3RhdGUtdmlzaWJsZScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBjb25maWcgPSB7IGF0dHJpYnV0ZXM6IGZhbHNlLCBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfTtcbiAgICBjb25zdCBjYWxsYmFjayA9IChtdXRhdGlvbkxpc3QsIG9ic2VydmVyKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9uTGlzdCkge1xuICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2NoaWxkTGlzdCcpIHtcbiAgICAgICAgICB0aGlzLl9zZXRJY29uKCk7XG4gICAgICAgICAgdGhpcy5fYXBwbHlCdXR0b25TdHlsZSgpO1xuICAgICAgICAgIHRoaXMuX3Nob3dJbmxpbmUgPSB0aGlzLl9jb250ZW50Q29tcCAhPSBudWxsIHx8IHRoaXMuX2Zvb3RlckNvbXAgIT0gbnVsbDtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBDcmVhdGUgYW4gb2JzZXJ2ZXIgaW5zdGFuY2UgbGlua2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvblxuICAgIGlmICh0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuX29ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoY2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8vIFN0YXJ0IG9ic2VydmluZyB0aGUgdGFyZ2V0IG5vZGUgZm9yIGNvbmZpZ3VyZWQgbXV0YXRpb25zXG4gICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmdldEhvc3RFbGVtZW50KCksIGNvbmZpZyk7XG4gICAgLy9cbiAgICB0aGlzLm9uT3B0aW9uQ2hhbmdlZC5zdWJzY3JpYmUodGhpcy5faGFuZGxlT25PcHRpb25DaGFuZ2VkLmJpbmQodGhpcykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy52aXNpYmxlID09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB9XG4gICAgLy9cbiAgICB0aGlzLl9jdXN0b21JY29uID0gdGhpcy5faWNvbkNvbXA/Lmljb247XG4gICAgdGhpcy5fc2hvd0lubGluZSA9IHRoaXMuX2NvbnRlbnRDb21wICE9IG51bGwgfHwgdGhpcy5fZm9vdGVyQ29tcCAhPSBudWxsO1xuICAgIHRoaXMuX3NldEljb24oKTtcbiAgICB0aGlzLl9hcHBseUJ1dHRvblN0eWxlKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZU9uT3B0aW9uQ2hhbmdlZChlOiBBWE9wdGlvbkNoYW5nZWRFdmVudCkge1xuICAgIHRoaXMuX3NldEljb24oKTtcbiAgICB0aGlzLl9hcHBseUJ1dHRvblN0eWxlKCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRJY29uKCkge1xuICAgIGlmICghdGhpcy5faWNvbkNvbXAgfHwgdGhpcy5faWNvbkNvbXAuX2dldElubmVyRWxlbWVudCgpKSByZXR1cm47XG5cbiAgICBzd2l0Y2ggKHRoaXMuY29sb3IpIHtcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICB0aGlzLl9pY29uQ29tcC5pY29uID0gJ2F4LWljb24gYXgtaWNvbi1jaGVjay1jaXJjbGUtZmlsbCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgdGhpcy5faWNvbkNvbXAuaWNvbiA9ICdheC1pY29uIGF4LWljb24tZXJyb3ItZmlsbCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgIHRoaXMuX2ljb25Db21wLmljb24gPSAnYXgtaWNvbiBheC1pY29uLXdhcm5pbmctZmlsbCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5faWNvbkNvbXAuaWNvbiA9IHRoaXMuX2N1c3RvbUljb24gfHwgJ2F4LWljb24gYXgtaWNvbi1jaGVjay1jaXJjbGUtZmlsbCc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5QnV0dG9uU3R5bGUoKSB7XG4gICAgdGhpcy5fYnV0dG9uQ29tcHM/LmZvckVhY2goKGM6IGFueSkgPT4ge1xuICAgICAgYy5jb2xvciA9IHRoaXMuY29sb3I7XG4gICAgICBjLmdldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LmFkZCgnYXgtc20nKTtcbiAgICAgIGMubG9vayA9ICFjLmxvb2sgfHwgYy5sb29rID09ICdkZWZhdWx0JyA/ICdkZWZhdWx0JyA6ICdibGFuayc7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIFJlbW92ZSB0aGUgYWxlcnQgZnJvbSB0aGUgY29udGFpbmVyXG4gICAqL1xuICBjbG9zZSgpOiB2b2lkIHtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpO1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIGNvbnN0IGZ1bmMgPSAoKSA9PiB7XG4gICAgICBob3N0LnBhcmVudEVsZW1lbnQ/LnJlbW92ZUNoaWxkKGhvc3QpO1xuICAgICAgdGhpcy5vbkNsb3NlZC5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgfSk7XG4gICAgICBob3N0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCBmdW5jKTtcbiAgICB9O1xuICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIGZ1bmMpO1xuICB9XG5cbiAgLyoqXG4gICAqICBIaWRlIHRoZSBhbGVydFxuICAgKi9cbiAgaGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgU2hvdyB0aGUgYWxlcnRcbiAgICovXG4gIHNob3coKSB7XG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX29ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5vbk9wdGlvbkNoYW5nZWQ/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1hbGVydC1pbmxpbmUtc3RhcnRcIiBbY2xhc3MuIWF4LWl0ZW1zLXN0YXJ0XT1cIl9zaG93SW5saW5lXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWljb25cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJheC1hbGVydC1pbmxpbmUtbWlkZGxlXCI+XG4gIDxkaXYgY2xhc3M9XCJheC1hbGVydC1taWRkbGUtYmxvY2stc3RhcnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtYWxlcnQtdGl0bGVcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXRpdGxlXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImF4LWFsZXJ0LW1pZGRsZS1ibG9jay1lbmRcIiBbY2xhc3MuYXgtaGlkZGVuXT1cIiFfc2hvd0lubGluZVwiIFtjbGFzcy5heC10aXRsZS1nYXBdPVwiX3RpdGxlQ29tcFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWNvbnRlbnRcIj4gPC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPiA8L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXgtYWxlcnQtaW5saW5lLWVuZFwiIFtjbGFzcy4hYXgtaXRlbXMtc3RhcnRdPVwiX3Nob3dJbmxpbmVcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtYnV0dG9uXCI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jbG9zZS1idXR0b25cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJheC1hbGVydC1wcm9ncmVzc1wiIFtzdHlsZS5hbmltYXRpb24tZHVyYXRpb24ubXNdPVwidGltZU91dFwiICpuZ0lmPVwidGltZU91dFwiPjwvZGl2PlxuIl19
|