@energinet/watt 3.0.0 → 3.0.2
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.
|
@@ -11,16 +11,19 @@ export declare class WattDropZone implements ControlValueAccessor {
|
|
|
11
11
|
label: import("@angular/core").InputSignal<string | undefined>;
|
|
12
12
|
/** Comma-separated list of MIME types that the dropzone accepts. */
|
|
13
13
|
accept: import("@angular/core").InputSignalWithTransform<`${string}/${string}`[], `${string}/${string}`>;
|
|
14
|
+
/** Whether to show the progress bar. Use in conjunction with `progress`. */
|
|
15
|
+
showProgressBar: import("@angular/core").InputSignal<boolean>;
|
|
16
|
+
/** Value for the progress bar. Only shown when `showProgressBar` is true. */
|
|
17
|
+
progress: import("@angular/core").InputSignal<number>;
|
|
14
18
|
/** Emits when one or more files are selected. */
|
|
15
19
|
selected: import("@angular/core").OutputEmitterRef<File[]>;
|
|
16
20
|
dragOver: import("@angular/core").WritableSignal<boolean>;
|
|
17
|
-
|
|
18
|
-
handleFiles(files: FileList | null): void;
|
|
21
|
+
handleChange(input: HTMLInputElement): void;
|
|
19
22
|
handleDrop(event: DragEvent): void;
|
|
20
23
|
handleDragOver(event: DragEvent): void;
|
|
21
24
|
writeValue: () => void;
|
|
22
25
|
registerOnTouched: (fn: () => void) => import("@angular/core").OutputRefSubscription;
|
|
23
26
|
registerOnChange: (fn: (value: File[]) => void) => import("@angular/core").OutputRefSubscription;
|
|
24
27
|
static ɵfac: i0.ɵɵFactoryDeclaration<WattDropZone, never>;
|
|
25
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<WattDropZone, "watt-dropzone", never, { "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, ["*", "watt-field-error", "watt-field-hint"], true, [{ directive: typeof i1.FileTypeValidator; inputs: {}; outputs: {}; }, { directive: typeof i1.MultipleFilesValidator; inputs: {}; outputs: {}; }]>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WattDropZone, "watt-dropzone", never, { "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "showProgressBar": { "alias": "showProgressBar"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, ["*", "watt-field-error", "watt-field-hint"], true, [{ directive: typeof i1.FileTypeValidator; inputs: {}; outputs: {}; }, { directive: typeof i1.MultipleFilesValidator; inputs: {}; outputs: {}; }]>;
|
|
26
29
|
}
|
|
@@ -36,16 +36,19 @@ export class WattDropZone {
|
|
|
36
36
|
label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
|
|
37
37
|
/** Comma-separated list of MIME types that the dropzone accepts. */
|
|
38
38
|
accept = input([], ...(ngDevMode ? [{ debugName: "accept", transform: (value) => value.split(',') }] : [{ transform: (value) => value.split(',') }]));
|
|
39
|
+
/** Whether to show the progress bar. Use in conjunction with `progress`. */
|
|
40
|
+
showProgressBar = input(false, ...(ngDevMode ? [{ debugName: "showProgressBar" }] : []));
|
|
41
|
+
/** Value for the progress bar. Only shown when `showProgressBar` is true. */
|
|
42
|
+
progress = input(0, ...(ngDevMode ? [{ debugName: "progress" }] : []));
|
|
39
43
|
/** Emits when one or more files are selected. */
|
|
40
44
|
selected = output();
|
|
41
45
|
// Tracks (valid) drag over state
|
|
42
46
|
dragOver = signal(false, ...(ngDevMode ? [{ debugName: "dragOver" }] : []));
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
handleFiles(files) {
|
|
46
|
-
if (!files)
|
|
47
|
+
handleChange(input) {
|
|
48
|
+
if (!input.files)
|
|
47
49
|
return;
|
|
48
|
-
this.selected.emit(Array.from(files));
|
|
50
|
+
this.selected.emit(Array.from(input.files));
|
|
51
|
+
input.value = ''; // fix for chrome not emitting event when selecting the same file
|
|
49
52
|
}
|
|
50
53
|
handleDrop(event) {
|
|
51
54
|
if (!event.dataTransfer)
|
|
@@ -54,7 +57,7 @@ export class WattDropZone {
|
|
|
54
57
|
return;
|
|
55
58
|
// Prevent opening the file in the browser
|
|
56
59
|
event.preventDefault();
|
|
57
|
-
this.
|
|
60
|
+
this.selected.emit(Array.from(event.dataTransfer.files));
|
|
58
61
|
}
|
|
59
62
|
handleDragOver(event) {
|
|
60
63
|
if (!event.dataTransfer)
|
|
@@ -71,7 +74,7 @@ export class WattDropZone {
|
|
|
71
74
|
registerOnTouched = (fn) => this.selected.subscribe(fn);
|
|
72
75
|
registerOnChange = (fn) => this.selected.subscribe(fn);
|
|
73
76
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDropZone, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattDropZone, isStandalone: true, selector: "watt-dropzone", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, providers: [
|
|
77
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattDropZone, isStandalone: true, selector: "watt-dropzone", inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, showProgressBar: { classPropertyName: "showProgressBar", publicName: "showProgressBar", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, providers: [
|
|
75
78
|
{
|
|
76
79
|
provide: NG_VALUE_ACCESSOR,
|
|
77
80
|
useExisting: forwardRef(() => WattDropZone),
|
|
@@ -92,7 +95,7 @@ export class WattDropZone {
|
|
|
92
95
|
(drop)="dragOver.set(false)"
|
|
93
96
|
(dragleave)="dragOver.set(false)"
|
|
94
97
|
>
|
|
95
|
-
@if (
|
|
98
|
+
@if (showProgressBar()) {
|
|
96
99
|
<vater-stack center gap="s" fill="horizontal" align="start">
|
|
97
100
|
<span>{{ intl.loadingMessage }} ( {{ progress() + '%' }} )</span>
|
|
98
101
|
<mat-progress-bar mode="determinate" [value]="progress()" />
|
|
@@ -105,7 +108,7 @@ export class WattDropZone {
|
|
|
105
108
|
type="file"
|
|
106
109
|
[multiple]="multiple()"
|
|
107
110
|
[accept]="accept().join(',')"
|
|
108
|
-
(change)="
|
|
111
|
+
(change)="handleChange(input)"
|
|
109
112
|
/>
|
|
110
113
|
<span>{{ multiple() ? intl.promptMultiple : intl.prompt }}</span>
|
|
111
114
|
<span class="watt-on-light--medium-emphasis">{{ intl.separator }}</span>
|
|
@@ -117,7 +120,7 @@ export class WattDropZone {
|
|
|
117
120
|
</vater-stack>
|
|
118
121
|
</span>
|
|
119
122
|
</watt-field>
|
|
120
|
-
`, isInline: true, styles: [".wrapper{display:block;min-height:184px}.dropzone{padding:var(--watt-space-l);background:var(--watt-color-neutral-grey-200)}.dragOver{background:var(--watt-color-state-info-light)}.mat-mdc-progress-bar{--
|
|
123
|
+
`, isInline: true, styles: [".wrapper{display:block;min-height:184px}.dropzone{padding:var(--watt-space-l);background:var(--watt-color-neutral-grey-200)}.dragOver{background:var(--watt-color-state-info-light)}.mat-mdc-progress-bar{--mat-progress-bar-active-indicator-color: var(--watt-color-primary);--mat-progress-bar-track-color: var(--watt-color-primary-light)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: VaterStackComponent, selector: "vater-stack, [vater-stack]" }, { kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
|
|
121
124
|
}
|
|
122
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDropZone, decorators: [{
|
|
123
126
|
type: Component,
|
|
@@ -149,7 +152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
149
152
|
(drop)="dragOver.set(false)"
|
|
150
153
|
(dragleave)="dragOver.set(false)"
|
|
151
154
|
>
|
|
152
|
-
@if (
|
|
155
|
+
@if (showProgressBar()) {
|
|
153
156
|
<vater-stack center gap="s" fill="horizontal" align="start">
|
|
154
157
|
<span>{{ intl.loadingMessage }} ( {{ progress() + '%' }} )</span>
|
|
155
158
|
<mat-progress-bar mode="determinate" [value]="progress()" />
|
|
@@ -162,7 +165,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
162
165
|
type="file"
|
|
163
166
|
[multiple]="multiple()"
|
|
164
167
|
[accept]="accept().join(',')"
|
|
165
|
-
(change)="
|
|
168
|
+
(change)="handleChange(input)"
|
|
166
169
|
/>
|
|
167
170
|
<span>{{ multiple() ? intl.promptMultiple : intl.prompt }}</span>
|
|
168
171
|
<span class="watt-on-light--medium-emphasis">{{ intl.separator }}</span>
|
|
@@ -174,6 +177,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
174
177
|
</vater-stack>
|
|
175
178
|
</span>
|
|
176
179
|
</watt-field>
|
|
177
|
-
`, styles: [".wrapper{display:block;min-height:184px}.dropzone{padding:var(--watt-space-l);background:var(--watt-color-neutral-grey-200)}.dragOver{background:var(--watt-color-state-info-light)}.mat-mdc-progress-bar{--
|
|
180
|
+
`, styles: [".wrapper{display:block;min-height:184px}.dropzone{padding:var(--watt-space-l);background:var(--watt-color-neutral-grey-200)}.dragOver{background:var(--watt-color-state-info-light)}.mat-mdc-progress-bar{--mat-progress-bar-active-indicator-color: var(--watt-color-primary);--mat-progress-bar-track-color: var(--watt-color-primary-light)}\n"] }]
|
|
178
181
|
}] });
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kcm9wem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2Ryb3B6b25lL3dhdHQtZHJvcHpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsU0FBUyxFQUNULGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQXFGdkYsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLElBQUksR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUV2Qyx5REFBeUQ7SUFDekQsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLDRDQUFJLFNBQVMsRUFBRSxnQkFBZ0IsT0FBN0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsR0FBQyxDQUFDO0lBRXpELDhCQUE4QjtJQUM5QixLQUFLLEdBQUcsS0FBSywyREFBVSxDQUFDO0lBRXhCLG9FQUFvRTtJ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QUUsSUFBSTt5QkFDWjtxQkFDRixZQXFCUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDVCIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuXG5pbXBvcnQgeyBXYXR0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2J1dHRvbic7XG5pbXBvcnQgeyBXYXR0RmllbGRDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvZmllbGQnO1xuaW1wb3J0IHsgVmF0ZXJTdGFja0NvbXBvbmVudCwgVmF0ZXJVdGlsaXR5RGlyZWN0aXZlIH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3ZhdGVyJztcbmltcG9ydCB7IFdhdHREcm9wWm9uZUludGxTZXJ2aWNlIH0gZnJvbSAnLi93YXR0LWRyb3B6b25lLWludGwnO1xuaW1wb3J0IHsgRmlsZVR5cGVWYWxpZGF0b3IsIE11bHRpcGxlRmlsZXNWYWxpZGF0b3IgfSBmcm9tICcuL3dhdHQtZHJvcHpvbmUtdmFsaWRhdG9ycyc7XG5cbi8vIFNsaWdodGx5IGJldHRlciB0eXBpbmcgdGhhbiBqdXN0IHJhdyBzdHJpbmdcbmV4cG9ydCB0eXBlIE1pbWVUeXBlID0gYCR7c3RyaW5nfS8ke3N0cmluZ31gO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW1xuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVmF0ZXJTdGFja0NvbXBvbmVudCxcbiAgICBWYXRlclV0aWxpdHlEaXJlY3RpdmUsXG4gICAgV2F0dEJ1dHRvbkNvbXBvbmVudCxcbiAgICBXYXR0RmllbGRDb21wb25lbnQsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gIF0sXG4gIHNlbGVjdG9yOiAnd2F0dC1kcm9wem9uZScsXG4gIGhvc3REaXJlY3RpdmVzOiBbRmlsZVR5cGVWYWxpZGF0b3IsIE11bHRpcGxlRmlsZXNWYWxpZGF0b3JdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdhdHREcm9wWm9uZSksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBzdHlsZXM6IGBcbiAgICAud3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1pbi1oZWlnaHQ6IDE4NHB4OyAvKiBNYWdpYyBVWCBudW1iZXIgKi9cbiAgICB9XG5cbiAgICAuZHJvcHpvbmUge1xuICAgICAgcGFkZGluZzogdmFyKC0td2F0dC1zcGFjZS1sKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdhdHQtY29sb3ItbmV1dHJhbC1ncmV5LTIwMCk7XG4gICAgfVxuXG4gICAgLmRyYWdPdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdhdHQtY29sb3Itc3RhdGUtaW5mby1saWdodCk7XG4gICAgfVxuXG4gICAgLm1hdC1tZGMtcHJvZ3Jlc3MtYmFyIHtcbiAgICAgIC0tbWRjLWxpbmVhci1wcm9ncmVzcy1hY3RpdmUtaW5kaWNhdG9yLWNvbG9yOiB2YXIoLS13YXR0LWNvbG9yLXByaW1hcnkpO1xuICAgICAgLS1tZGMtbGluZWFyLXByb2dyZXNzLXRyYWNrLWNvbG9yOiB2YXIoLS13YXR0LWNvbG9yLXByaW1hcnktbGlnaHQpO1xuICAgIH1cbiAgYCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8d2F0dC1maWVsZCBbbGFiZWxdPVwibGFiZWwoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZmllbGQtZXJyb3JcIiBuZ1Byb2plY3RBcz1cIndhdHQtZmllbGQtZXJyb3JcIiAvPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwid2F0dC1maWVsZC1oaW50XCIgbmdQcm9qZWN0QXM9XCJ3YXR0LWZpZWxkLWhpbnRcIiAvPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ3cmFwcGVyXCI+XG4gICAgICAgIDx2YXRlci1zdGFja1xuICAgICAgICAgIGluc2V0PVwiMFwiXG4gICAgICAgICAgY2xhc3M9XCJkcm9wem9uZVwiXG4gICAgICAgICAgW2NsYXNzLmRyYWdPdmVyXT1cImRyYWdPdmVyKClcIlxuICAgICAgICAgIChkcmFnb3Zlcik9XCJoYW5kbGVEcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAgICAgICAoZHJvcCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxuICAgICAgICAgIChkcm9wKT1cImRyYWdPdmVyLnNldChmYWxzZSlcIlxuICAgICAgICAgIChkcmFnbGVhdmUpPVwiZHJhZ092ZXIuc2V0KGZhbHNlKVwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKHByb2dyZXNzKCkgPCAxMDApIHtcbiAgICAgICAgICAgIDx2YXRlci1zdGFjayBjZW50ZXIgZ2FwPVwic1wiIGZpbGw9XCJob3Jpem9udGFsXCIgYWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBpbnRsLmxvYWRpbmdNZXNzYWdlIH19ICgge3sgcHJvZ3Jlc3MoKSArICclJyB9fSApPC9zcGFuPlxuICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiZGV0ZXJtaW5hdGVcIiBbdmFsdWVdPVwicHJvZ3Jlc3MoKVwiIC8+XG4gICAgICAgICAgICA8L3ZhdGVyLXN0YWNrPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHZhdGVyLXN0YWNrIGNlbnRlciBnYXA9XCJ4c1wiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgICAgICBoaWRkZW5cbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlKClcIlxuICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0KCkuam9pbignLCcpXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVzKGlucHV0LmZpbGVzKVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IG11bHRpcGxlKCkgPyBpbnRsLnByb21wdE11bHRpcGxlIDogaW50bC5wcm9tcHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2F0dC1vbi1saWdodC0tbWVkaXVtLWVtcGhhc2lzXCI+e3sgaW50bC5zZXBhcmF0b3IgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDx3YXR0LWJ1dHRvbiBzaXplPVwic21hbGxcIiB2YXJpYW50PVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImlucHV0LmNsaWNrKClcIj5cbiAgICAgICAgICAgICAgICB7eyBtdWx0aXBsZSgpID8gaW50bC5idXR0b25NdWx0aXBsZSA6IGludGwuYnV0dG9uIH19XG4gICAgICAgICAgICAgIDwvd2F0dC1idXR0b24+XG4gICAgICAgICAgICA8L3ZhdGVyLXN0YWNrPlxuICAgICAgICAgIH1cbiAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3dhdHQtZmllbGQ+XG4gIGAsXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgV2F0dERyb3Bab25lIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBpbnRsID0gaW5qZWN0KFdhdHREcm9wWm9uZUludGxTZXJ2aWNlKTtcblxuICAvKiogV2hldGhlciB0aGUgZHJvcHpvbmUgc2hvdWxkIGFjY2VwdCBtdWx0aXBsZSBmaWxlcy4gKi9cbiAgbXVsdGlwbGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqIExhYmVsIGZvciB0aGUgZHJvcHpvbmUuICovXG4gIGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIC8qKiBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBNSU1FIHR5cGVzIHRoYXQgdGhlIGRyb3B6b25lIGFjY2VwdHMuICovXG4gIGFjY2VwdCA9IGlucHV0KFtdLCB7IHRyYW5zZm9ybTogKHZhbHVlOiBNaW1lVHlwZSkgPT4gdmFsdWUuc3BsaXQoJywnKSBhcyBNaW1lVHlwZVtdIH0pO1xuXG4gIC8qKiBFbWl0cyB3aGVuIG9uZSBvciBtb3JlIGZpbGVzIGFyZSBzZWxlY3RlZC4gKi9cbiAgc2VsZWN0ZWQgPSBvdXRwdXQ8RmlsZVtdPigpO1xuXG4gIC8vIFRyYWNrcyAodmFsaWQpIGRyYWcgb3ZlciBzdGF0ZVxuICBkcmFnT3ZlciA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLy8gUHJvZ3Jlc3NcbiAgcHJvZ3Jlc3MgPSBpbnB1dDxudW1iZXI+KDEwMCk7XG5cbiAgaGFuZGxlRmlsZXMoZmlsZXM6IEZpbGVMaXN0IHwgbnVsbCkge1xuICAgIGlmICghZmlsZXMpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQoQXJyYXkuZnJvbShmaWxlcykpO1xuICB9XG5cbiAgaGFuZGxlRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKCFldmVudC5kYXRhVHJhbnNmZXIpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuZHJhZ092ZXIoKSkgcmV0dXJuO1xuXG4gICAgLy8gUHJldmVudCBvcGVuaW5nIHRoZSBmaWxlIGluIHRoZSBicm93c2VyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMuaGFuZGxlRmlsZXMoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgfVxuXG4gIGhhbmRsZURyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50LmRhdGFUcmFuc2ZlcikgcmV0dXJuO1xuXG4gICAgLy8gSWdub3JlIG5vbi1maWxlIGl0ZW1zIHN1Y2ggYXMgc3RyaW5nc1xuICAgIGlmIChBcnJheS5mcm9tKGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtcykuc29tZSgoaSkgPT4gaS5raW5kICE9PSAnZmlsZScpKSByZXR1cm47XG5cbiAgICAvLyBQcmV2ZW50IG9wZW5pbmcgdGhlIGZpbGUgaW4gdGhlIGJyb3dzZXJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5kcmFnT3Zlci5zZXQodHJ1ZSk7XG4gIH1cblxuICAvLyBJbXBsZW1lbnRhdGlvbiBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgd3JpdGVWYWx1ZSA9ICgpID0+IHt9OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICByZWdpc3Rlck9uVG91Y2hlZCA9IChmbjogKCkgPT4gdm9pZCkgPT4gdGhpcy5zZWxlY3RlZC5zdWJzY3JpYmUoZm4pO1xuICByZWdpc3Rlck9uQ2hhbmdlID0gKGZuOiAodmFsdWU6IEZpbGVbXSkgPT4gdm9pZCkgPT4gdGhpcy5zZWxlY3RlZC5zdWJzY3JpYmUoZm4pO1xufVxuIl19
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kcm9wem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2Ryb3B6b25lL3dhdHQtZHJvcHpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsU0FBUyxFQUNULGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQXFGdkYsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLElBQUksR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUV2Qyx5REFBeUQ7SUFDekQsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLDRDQUFJLFNBQVMsRUFBRSxnQkFBZ0IsT0FBN0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsR0FBQyxDQUFDO0lBRXpELDhCQUE4QjtJQUM5QixLQUFLLEdBQUcsS0FBSywyREFBVSxDQUFDO0lBRXhCLG9FQUFvRTtJ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QkFDbEIsb0JBQW9CO3FCQUNyQixZQUNTLGVBQWUsa0JBQ1QsQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsQ0FBQyxhQUNoRDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUM7NEJBQzNDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLFlBcUJTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NUIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5cbmltcG9ydCB7IFdhdHRCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvYnV0dG9uJztcbmltcG9ydCB7IFdhdHRGaWVsZENvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9maWVsZCc7XG5pbXBvcnQgeyBWYXRlclN0YWNrQ29tcG9uZW50LCBWYXRlclV0aWxpdHlEaXJlY3RpdmUgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvdmF0ZXInO1xuaW1wb3J0IHsgV2F0dERyb3Bab25lSW50bFNlcnZpY2UgfSBmcm9tICcuL3dhdHQtZHJvcHpvbmUtaW50bCc7XG5pbXBvcnQgeyBGaWxlVHlwZVZhbGlkYXRvciwgTXVsdGlwbGVGaWxlc1ZhbGlkYXRvciB9IGZyb20gJy4vd2F0dC1kcm9wem9uZS12YWxpZGF0b3JzJztcblxuLy8gU2xpZ2h0bHkgYmV0dGVyIHR5cGluZyB0aGFuIGp1c3QgcmF3IHN0cmluZ1xuZXhwb3J0IHR5cGUgTWltZVR5cGUgPSBgJHtzdHJpbmd9LyR7c3RyaW5nfWA7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBWYXRlclN0YWNrQ29tcG9uZW50LFxuICAgIFZhdGVyVXRpbGl0eURpcmVjdGl2ZSxcbiAgICBXYXR0QnV0dG9uQ29tcG9uZW50LFxuICAgIFdhdHRGaWVsZENvbXBvbmVudCxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgXSxcbiAgc2VsZWN0b3I6ICd3YXR0LWRyb3B6b25lJyxcbiAgaG9zdERpcmVjdGl2ZXM6IFtGaWxlVHlwZVZhbGlkYXRvciwgTXVsdGlwbGVGaWxlc1ZhbGlkYXRvcl0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2F0dERyb3Bab25lKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHN0eWxlczogYFxuICAgIC53cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWluLWhlaWdodDogMTg0cHg7IC8qIE1hZ2ljIFVYIG51bWJlciAqL1xuICAgIH1cblxuICAgIC5kcm9wem9uZSB7XG4gICAgICBwYWRkaW5nOiB2YXIoLS13YXR0LXNwYWNlLWwpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0td2F0dC1jb2xvci1uZXV0cmFsLWdyZXktMjAwKTtcbiAgICB9XG5cbiAgICAuZHJhZ092ZXIge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0td2F0dC1jb2xvci1zdGF0ZS1pbmZvLWxpZ2h0KTtcbiAgICB9XG5cbiAgICAubWF0LW1kYy1wcm9ncmVzcy1iYXIge1xuICAgICAgLS1tYXQtcHJvZ3Jlc3MtYmFyLWFjdGl2ZS1pbmRpY2F0b3ItY29sb3I6IHZhcigtLXdhdHQtY29sb3ItcHJpbWFyeSk7XG4gICAgICAtLW1hdC1wcm9ncmVzcy1iYXItdHJhY2stY29sb3I6IHZhcigtLXdhdHQtY29sb3ItcHJpbWFyeS1saWdodCk7XG4gICAgfVxuICBgLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx3YXR0LWZpZWxkIFtsYWJlbF09XCJsYWJlbCgpXCI+XG4gICAgICA8bmctY29udGVudCAvPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwid2F0dC1maWVsZC1lcnJvclwiIG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC1lcnJvclwiIC8+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LWZpZWxkLWhpbnRcIiBuZ1Byb2plY3RBcz1cIndhdHQtZmllbGQtaGludFwiIC8+XG4gICAgICA8c3BhbiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgICAgICAgPHZhdGVyLXN0YWNrXG4gICAgICAgICAgaW5zZXQ9XCIwXCJcbiAgICAgICAgICBjbGFzcz1cImRyb3B6b25lXCJcbiAgICAgICAgICBbY2xhc3MuZHJhZ092ZXJdPVwiZHJhZ092ZXIoKVwiXG4gICAgICAgICAgKGRyYWdvdmVyKT1cImhhbmRsZURyYWdPdmVyKCRldmVudClcIlxuICAgICAgICAgIChkcm9wKT1cImhhbmRsZURyb3AoJGV2ZW50KVwiXG4gICAgICAgICAgKGRyb3ApPVwiZHJhZ092ZXIuc2V0KGZhbHNlKVwiXG4gICAgICAgICAgKGRyYWdsZWF2ZSk9XCJkcmFnT3Zlci5zZXQoZmFsc2UpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAoc2hvd1Byb2dyZXNzQmFyKCkpIHtcbiAgICAgICAgICAgIDx2YXRlci1zdGFjayBjZW50ZXIgZ2FwPVwic1wiIGZpbGw9XCJob3Jpem9udGFsXCIgYWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBpbnRsLmxvYWRpbmdNZXNzYWdlIH19ICgge3sgcHJvZ3Jlc3MoKSArICclJyB9fSApPC9zcGFuPlxuICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiZGV0ZXJtaW5hdGVcIiBbdmFsdWVdPVwicHJvZ3Jlc3MoKVwiIC8+XG4gICAgICAgICAgICA8L3ZhdGVyLXN0YWNrPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHZhdGVyLXN0YWNrIGNlbnRlciBnYXA9XCJ4c1wiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgICAgICBoaWRkZW5cbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlKClcIlxuICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0KCkuam9pbignLCcpXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZShpbnB1dClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBtdWx0aXBsZSgpID8gaW50bC5wcm9tcHRNdWx0aXBsZSA6IGludGwucHJvbXB0IH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndhdHQtb24tbGlnaHQtLW1lZGl1bS1lbXBoYXNpc1wiPnt7IGludGwuc2VwYXJhdG9yIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8d2F0dC1idXR0b24gc2l6ZT1cInNtYWxsXCIgdmFyaWFudD1cInNlY29uZGFyeVwiIChjbGljayk9XCJpbnB1dC5jbGljaygpXCI+XG4gICAgICAgICAgICAgICAge3sgbXVsdGlwbGUoKSA/IGludGwuYnV0dG9uTXVsdGlwbGUgOiBpbnRsLmJ1dHRvbiB9fVxuICAgICAgICAgICAgICA8L3dhdHQtYnV0dG9uPlxuICAgICAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdmF0ZXItc3RhY2s+XG4gICAgICA8L3NwYW4+XG4gICAgPC93YXR0LWZpZWxkPlxuICBgLFxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIFdhdHREcm9wWm9uZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgaW50bCA9IGluamVjdChXYXR0RHJvcFpvbmVJbnRsU2VydmljZSk7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGRyb3B6b25lIHNob3VsZCBhY2NlcHQgbXVsdGlwbGUgZmlsZXMuICovXG4gIG11bHRpcGxlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIC8qKiBMYWJlbCBmb3IgdGhlIGRyb3B6b25lLiAqL1xuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcblxuICAvKiogQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgTUlNRSB0eXBlcyB0aGF0IHRoZSBkcm9wem9uZSBhY2NlcHRzLiAqL1xuICBhY2NlcHQgPSBpbnB1dChbXSwgeyB0cmFuc2Zvcm06ICh2YWx1ZTogTWltZVR5cGUpID0+IHZhbHVlLnNwbGl0KCcsJykgYXMgTWltZVR5cGVbXSB9KTtcblxuICAvKiogV2hldGhlciB0byBzaG93IHRoZSBwcm9ncmVzcyBiYXIuIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIGBwcm9ncmVzc2AuICovXG4gIHNob3dQcm9ncmVzc0JhciA9IGlucHV0KGZhbHNlKTtcblxuICAvKiogVmFsdWUgZm9yIHRoZSBwcm9ncmVzcyBiYXIuIE9ubHkgc2hvd24gd2hlbiBgc2hvd1Byb2dyZXNzQmFyYCBpcyB0cnVlLiAqL1xuICBwcm9ncmVzcyA9IGlucHV0KDApO1xuXG4gIC8qKiBFbWl0cyB3aGVuIG9uZSBvciBtb3JlIGZpbGVzIGFyZSBzZWxlY3RlZC4gKi9cbiAgc2VsZWN0ZWQgPSBvdXRwdXQ8RmlsZVtdPigpO1xuXG4gIC8vIFRyYWNrcyAodmFsaWQpIGRyYWcgb3ZlciBzdGF0ZVxuICBkcmFnT3ZlciA9IHNpZ25hbChmYWxzZSk7XG5cbiAgaGFuZGxlQ2hhbmdlKGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgaWYgKCFpbnB1dC5maWxlcykgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChBcnJheS5mcm9tKGlucHV0LmZpbGVzKSk7XG4gICAgaW5wdXQudmFsdWUgPSAnJzsgLy8gZml4IGZvciBjaHJvbWUgbm90IGVtaXR0aW5nIGV2ZW50IHdoZW4gc2VsZWN0aW5nIHRoZSBzYW1lIGZpbGVcbiAgfVxuXG4gIGhhbmRsZURyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGlmICghZXZlbnQuZGF0YVRyYW5zZmVyKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmRyYWdPdmVyKCkpIHJldHVybjtcblxuICAgIC8vIFByZXZlbnQgb3BlbmluZyB0aGUgZmlsZSBpbiB0aGUgYnJvd3NlclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQoQXJyYXkuZnJvbShldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpKTtcbiAgfVxuXG4gIGhhbmRsZURyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50LmRhdGFUcmFuc2ZlcikgcmV0dXJuO1xuXG4gICAgLy8gSWdub3JlIG5vbi1maWxlIGl0ZW1zIHN1Y2ggYXMgc3RyaW5nc1xuICAgIGlmIChBcnJheS5mcm9tKGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtcykuc29tZSgoaSkgPT4gaS5raW5kICE9PSAnZmlsZScpKSByZXR1cm47XG5cbiAgICAvLyBQcmV2ZW50IG9wZW5pbmcgdGhlIGZpbGUgaW4gdGhlIGJyb3dzZXJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5kcmFnT3Zlci5zZXQodHJ1ZSk7XG4gIH1cblxuICAvLyBJbXBsZW1lbnRhdGlvbiBmb3IgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgd3JpdGVWYWx1ZSA9ICgpID0+IHt9OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICByZWdpc3Rlck9uVG91Y2hlZCA9IChmbjogKCkgPT4gdm9pZCkgPT4gdGhpcy5zZWxlY3RlZC5zdWJzY3JpYmUoZm4pO1xuICByZWdpc3Rlck9uQ2hhbmdlID0gKGZuOiAodmFsdWU6IEZpbGVbXSkgPT4gdm9pZCkgPT4gdGhpcy5zZWxlY3RlZC5zdWJzY3JpYmUoZm4pO1xufVxuIl19
|