@yuuvis/client-framework 0.7.4 → 0.9.0
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/actions/lib/actions/delete-action/delete-action.d.ts +1 -0
- package/common/index.d.ts +1 -0
- package/common/lib/services/error-messages/error-messages.service.d.ts +7 -0
- package/common/lib/services/index.d.ts +1 -0
- package/esm2022/actions/lib/actions/delete-action/delete-action.mjs +4 -10
- package/esm2022/actions/lib/components/contextmenu/contextmenu.component.mjs +2 -2
- package/esm2022/common/index.mjs +2 -1
- package/esm2022/common/lib/directives/drag-select.directive.mjs +2 -2
- package/esm2022/common/lib/services/error-messages/error-messages.service.mjs +68 -0
- package/esm2022/common/lib/services/index.mjs +2 -0
- package/esm2022/forms/index.mjs +13 -8
- package/esm2022/forms/lib/elements/data-grid/data-grid/data-grid.component.mjs +172 -0
- package/esm2022/forms/lib/elements/data-grid/edit-table-data/edit-data.component.mjs +95 -0
- package/esm2022/forms/lib/elements/data-grid/model/data-grid.interface.mjs +9 -0
- package/esm2022/forms/lib/elements/datetime-range/datetime-range.component.mjs +32 -32
- package/esm2022/forms/lib/elements/index.mjs +11 -0
- package/esm2022/forms/lib/elements/number/number.component.mjs +3 -3
- package/esm2022/forms/lib/elements/number-range/number-range.component.mjs +3 -3
- package/esm2022/forms/lib/elements/organization/organization.component.mjs +47 -29
- package/esm2022/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.mjs +38 -0
- package/esm2022/forms/lib/elements/range-select-date/range-select-date.component.mjs +181 -0
- package/esm2022/forms/lib/elements/range-select-date/range-select-date.interface.mjs +2 -0
- package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.component.mjs +98 -0
- package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.interface.mjs +2 -0
- package/esm2022/forms/lib/elements/string/string.component.mjs +10 -3
- package/esm2022/icons/lib/icons.mjs +3 -2
- package/esm2022/list/lib/list.component.mjs +6 -4
- package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +5 -4
- package/esm2022/metadata-form/lib/metadata-form-element-registry.service.mjs +1 -1
- package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +9 -52
- package/esm2022/object-details/index.mjs +2 -1
- package/esm2022/object-details/lib/object-audit/object-audit.component.mjs +3 -3
- package/esm2022/object-details/lib/object-metadata/object-metadata.component.mjs +5 -4
- package/esm2022/object-details/lib/retention-badge/retention-badge.component.mjs +27 -0
- package/esm2022/object-flavor/lib/object-flavor/object-flavor.component.mjs +2 -2
- package/esm2022/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.mjs +2 -2
- package/esm2022/object-form/index.mjs +1 -1
- package/esm2022/object-form/lib/object-form.component.mjs +2 -1
- package/esm2022/object-form/lib/object-form.service.mjs +5 -2
- package/esm2022/object-summary/lib/object-summary/object-summary.component.mjs +15 -13
- package/esm2022/pagination/lib/pagination.component.mjs +4 -6
- package/esm2022/sequence-list/index.mjs +1 -3
- package/esm2022/sequence-list/lib/sequence-list.component.mjs +11 -16
- package/esm2022/sequence-list/lib/sequence-list.interface.mjs +1 -1
- package/esm2022/tile-list/lib/tile/tile.component.mjs +3 -3
- package/esm2022/tile-list/lib/tile-config/tile-config.component.mjs +2 -2
- package/esm2022/tile-list/lib/tile-extension/extensions/email.extension.mjs +1 -1
- package/fesm2022/yuuvis-client-framework-actions.mjs +4 -10
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-common.mjs +69 -4
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-forms.mjs +1335 -755
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs +2 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-list.mjs +5 -3
- package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +12 -55
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-details.mjs +28 -7
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs +5 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +14 -12
- package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-pagination.mjs +3 -5
- package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs +17 -296
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/forms/index.d.ts +5 -7
- package/forms/lib/elements/data-grid/data-grid/data-grid.component.d.ts +38 -0
- package/forms/lib/elements/data-grid/edit-table-data/edit-data.component.d.ts +21 -0
- package/forms/lib/elements/data-grid/model/data-grid.interface.d.ts +14 -0
- package/forms/lib/elements/datetime-range/datetime-range.component.d.ts +2 -1
- package/forms/lib/elements/index.d.ts +10 -0
- package/forms/lib/elements/organization/organization.component.d.ts +13 -4
- package/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.d.ts +13 -0
- package/forms/lib/elements/range-select-date/range-select-date.component.d.ts +33 -0
- package/forms/lib/elements/range-select-date/range-select-date.interface.d.ts +5 -0
- package/forms/lib/elements/range-select-filesize/range-select-filesize.component.d.ts +28 -0
- package/forms/lib/elements/range-select-filesize/range-select-filesize.interface.d.ts +5 -0
- package/list/lib/list.component.d.ts +2 -1
- package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +1 -1
- package/object-details/index.d.ts +1 -0
- package/object-details/lib/retention-badge/retention-badge.component.d.ts +12 -0
- package/package.json +10 -10
- package/sequence-list/index.d.ts +0 -2
- package/sequence-list/lib/sequence-list.component.d.ts +2 -2
- package/sequence-list/lib/sequence-list.interface.d.ts +5 -4
- package/styles/client-framework.scss +55 -18
- package/esm2022/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.mjs +0 -183
- package/esm2022/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.mjs +0 -114
- package/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.d.ts +0 -52
- package/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.d.ts +0 -36
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal } from '@angular/core';
|
|
3
|
+
import { FormBuilder, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
4
|
+
import { Situation, TranslateModule } from '@yuuvis/client-core';
|
|
5
|
+
import { YvcOverlayRef } from '@yuuvis/components/overlay';
|
|
6
|
+
import { FormInputComponent } from '../../../form-input/form-input.component';
|
|
7
|
+
import { NumberComponent } from '../../number/number.component';
|
|
8
|
+
import { StringComponent } from '../../string/string.component';
|
|
9
|
+
import { ErrorMessagesService } from '@yuuvis/client-framework/common';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/forms";
|
|
12
|
+
import * as i2 from "@yuuvis/client-core";
|
|
13
|
+
export class EditTableDataComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.#oRef = inject((YvcOverlayRef));
|
|
16
|
+
this.#fb = inject(FormBuilder);
|
|
17
|
+
this.#errorMassge = inject(ErrorMessagesService);
|
|
18
|
+
this.errorMassage = signal(null);
|
|
19
|
+
this.tableForm = this.#fb.group({});
|
|
20
|
+
this.isInnerTableForm = input(true);
|
|
21
|
+
this.formElement = this.#oRef.data?.formElement || {};
|
|
22
|
+
this.#elementData = this.#oRef.data?.elementData || {};
|
|
23
|
+
this.situation = this.#oRef.data?.situation || Situation.EDIT;
|
|
24
|
+
this.header = this.#oRef.data?.label || '';
|
|
25
|
+
this.adding = this.#oRef.data?.adding;
|
|
26
|
+
}
|
|
27
|
+
#oRef;
|
|
28
|
+
#fb;
|
|
29
|
+
#errorMassge;
|
|
30
|
+
#elementData;
|
|
31
|
+
cancel() {
|
|
32
|
+
if (this.#oRef)
|
|
33
|
+
this.#oRef.close();
|
|
34
|
+
}
|
|
35
|
+
submit() {
|
|
36
|
+
if (this.tableForm.valid && this.#oRef)
|
|
37
|
+
this.#oRef.close(this.tableForm.getRawValue());
|
|
38
|
+
}
|
|
39
|
+
ngOnInit() {
|
|
40
|
+
Object.values(this.formElement['elements']).forEach((element) => {
|
|
41
|
+
return this.tableForm.addControl(element.name, this.#fb.control({ value: '', disabled: element.readonly }, element.required ? Validators.required : null));
|
|
42
|
+
});
|
|
43
|
+
this.tableForm.setValidators(this.#globalErrorValidator());
|
|
44
|
+
this.#elementData && this.tableForm.patchValue(this.#elementData);
|
|
45
|
+
this.tableForm.valueChanges.subscribe((v) => {
|
|
46
|
+
this.errorMassage.set(this.tableForm.errors
|
|
47
|
+
? Object.keys(this.tableForm.errors).map((key) => this.tableForm.errors && this.tableForm.errors[key]
|
|
48
|
+
? Object.keys(this.tableForm.errors[key]).map((k) => ({ [key]: this.#errorMassge.getErrorLabel(k, key) }))
|
|
49
|
+
: null)
|
|
50
|
+
: null);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
#globalErrorValidator() {
|
|
54
|
+
return (control) => {
|
|
55
|
+
const formGroup = control;
|
|
56
|
+
const errors = {};
|
|
57
|
+
Object.keys(formGroup.controls).forEach((key) => {
|
|
58
|
+
const control = formGroup.get(key);
|
|
59
|
+
if (control && control.invalid && control.dirty) {
|
|
60
|
+
const controlErrors = control.errors;
|
|
61
|
+
if (controlErrors) {
|
|
62
|
+
// Ignore 'required' error if there are more errors
|
|
63
|
+
if (Object.keys(controlErrors).length > 1 && controlErrors['required']) {
|
|
64
|
+
const { required, ...otherErrors } = controlErrors;
|
|
65
|
+
errors[key] = otherErrors;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
errors[key] = controlErrors;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return Object.keys(errors).length ? errors : null;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditTableDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EditTableDataComponent, isStandalone: true, selector: "yuv-edit-table-data", inputs: { isInnerTableForm: { classPropertyName: "isInnerTableForm", publicName: "isInnerTableForm", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
78
|
+
{
|
|
79
|
+
provide: NG_VALUE_ACCESSOR,
|
|
80
|
+
useExisting: forwardRef(() => EditTableDataComponent),
|
|
81
|
+
multi: true
|
|
82
|
+
}
|
|
83
|
+
], ngImport: i0, template: "<header>\n <h2>{{ 'yuv.form.element.data.grid.edit.headline' | translate: { headline: header } }}</h2>\n</header>\n\n<div [formGroup]=\"tableForm\">\n @for (element of formElement['elements']; track $index) {\n <div [attr.data-name]=\"element.name\" class=\"form-field\">\n <yuv-form-input\n [label]=\"element.label\"\n [required]=\"element.required\"\n [invalid]=\"false\"\n [disabled]=\"element.readonly\"\n [invalid]=\"!tableForm.get(element.label)?.valid && tableForm.get(element.label)?.dirty\"\n >\n @switch (element.type) {\n @case ('string') {\n <yuv-string\n [situation]=\"situation\"\n [formControlName]=\"element.name\"\n [attr.data-name]=\"element.name\"\n [multiselect]=\"element.cardinality === 'multi' || situation === 'SEARCH'\"\n [rows]=\"element.rows\"\n [classifications]=\"element.classifications\"\n [regex]=\"element.regex\"\n [readonly]=\"element.readonly\"\n [minLength]=\"element.minLength\"\n [maxLength]=\"element.maxLength\"\n >\n </yuv-string>\n }\n @case ('decimal') {\n <yuv-number\n [readonly]=\"element.readonly\"\n [precision]=\"element.precision\"\n [scale]=\"element.scale\"\n [pattern]=\"element.pattern\"\n [grouping]=\"element.grouping\"\n [minValue]=\"element.minValue\"\n [maxValue]=\"element.maxValue\"\n [formControlName]=\"element.name\"\n [attr.data-name]=\"element.name\"\n ></yuv-number>\n }\n @default {\n <input [type]=\"element.type\" [id]=\"element.name\" [name]=\"element.name\" [readonly]=\"element.readonly\" [required]=\"element.required\" />\n }\n }\n <!-- <input [type]=\"element.type\" [id]=\"element.name\" [name]=\"element.name\" [readonly]=\"element.readonly\" [required]=\"element.required\" /> -->\n </yuv-form-input>\n @let errorsGroup = errorMassage();\n @if (errorsGroup && tableForm.errors) {\n <div class=\"err-msg\">\n @for (errors of errorsGroup; track $index) {\n @for (error of errors; track $index) {\n {{ error[element.label] }}\n }\n }\n </div>\n }\n </div>\n }\n <footer>\n <button (click)=\"cancel()\">{{ 'yuv.form.element.data.grid.edit.cancel' | translate }}</button>\n <button class=\"primary\" (click)=\"submit()\" [disabled]=\"!tableForm.dirty && !tableForm.valid\">\n @if (adding) {\n {{ 'yuv.form.element.data.grid.edit.add' | translate }}\n } @else {\n {{ 'yuv.form.element.data.grid.edit' | translate }}\n }\n </button>\n </footer>\n</div>\n", styles: [":host{display:flex;flex-direction:column;padding:var(--app-pane-padding)}:host header h2{padding:0;font-weight:400;font-size:var(--font-headline);margin:0 0 var(--app-pane-padding) 0}:host .err-msg{font-size:var(--font-hint);color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}:host footer{display:flex;justify-content:end;gap:var(--app-pane-padding);margin-block-start:var(--app-pane-padding)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormInputComponent, selector: "yuv-form-input", inputs: ["label", "tag", "description", "invalid", "disabled", "required"] }, { kind: "component", type: StringComponent, selector: "yuv-string", inputs: ["multiselect", "rows", "readonly", "autofocus", "classifications", "situation", "regex", "minLength", "maxLength"] }, { kind: "component", type: NumberComponent, selector: "yuv-number", inputs: ["scale", "precision", "grouping", "groupPattern", "readonly", "minValue", "maxValue", "classifications"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
84
|
+
}
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditTableDataComponent, decorators: [{
|
|
86
|
+
type: Component,
|
|
87
|
+
args: [{ selector: 'yuv-edit-table-data', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormInputComponent, StringComponent, NumberComponent, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
88
|
+
{
|
|
89
|
+
provide: NG_VALUE_ACCESSOR,
|
|
90
|
+
useExisting: forwardRef(() => EditTableDataComponent),
|
|
91
|
+
multi: true
|
|
92
|
+
}
|
|
93
|
+
], template: "<header>\n <h2>{{ 'yuv.form.element.data.grid.edit.headline' | translate: { headline: header } }}</h2>\n</header>\n\n<div [formGroup]=\"tableForm\">\n @for (element of formElement['elements']; track $index) {\n <div [attr.data-name]=\"element.name\" class=\"form-field\">\n <yuv-form-input\n [label]=\"element.label\"\n [required]=\"element.required\"\n [invalid]=\"false\"\n [disabled]=\"element.readonly\"\n [invalid]=\"!tableForm.get(element.label)?.valid && tableForm.get(element.label)?.dirty\"\n >\n @switch (element.type) {\n @case ('string') {\n <yuv-string\n [situation]=\"situation\"\n [formControlName]=\"element.name\"\n [attr.data-name]=\"element.name\"\n [multiselect]=\"element.cardinality === 'multi' || situation === 'SEARCH'\"\n [rows]=\"element.rows\"\n [classifications]=\"element.classifications\"\n [regex]=\"element.regex\"\n [readonly]=\"element.readonly\"\n [minLength]=\"element.minLength\"\n [maxLength]=\"element.maxLength\"\n >\n </yuv-string>\n }\n @case ('decimal') {\n <yuv-number\n [readonly]=\"element.readonly\"\n [precision]=\"element.precision\"\n [scale]=\"element.scale\"\n [pattern]=\"element.pattern\"\n [grouping]=\"element.grouping\"\n [minValue]=\"element.minValue\"\n [maxValue]=\"element.maxValue\"\n [formControlName]=\"element.name\"\n [attr.data-name]=\"element.name\"\n ></yuv-number>\n }\n @default {\n <input [type]=\"element.type\" [id]=\"element.name\" [name]=\"element.name\" [readonly]=\"element.readonly\" [required]=\"element.required\" />\n }\n }\n <!-- <input [type]=\"element.type\" [id]=\"element.name\" [name]=\"element.name\" [readonly]=\"element.readonly\" [required]=\"element.required\" /> -->\n </yuv-form-input>\n @let errorsGroup = errorMassage();\n @if (errorsGroup && tableForm.errors) {\n <div class=\"err-msg\">\n @for (errors of errorsGroup; track $index) {\n @for (error of errors; track $index) {\n {{ error[element.label] }}\n }\n }\n </div>\n }\n </div>\n }\n <footer>\n <button (click)=\"cancel()\">{{ 'yuv.form.element.data.grid.edit.cancel' | translate }}</button>\n <button class=\"primary\" (click)=\"submit()\" [disabled]=\"!tableForm.dirty && !tableForm.valid\">\n @if (adding) {\n {{ 'yuv.form.element.data.grid.edit.add' | translate }}\n } @else {\n {{ 'yuv.form.element.data.grid.edit' | translate }}\n }\n </button>\n </footer>\n</div>\n", styles: [":host{display:flex;flex-direction:column;padding:var(--app-pane-padding)}:host header h2{padding:0;font-weight:400;font-size:var(--font-headline);margin:0 0 var(--app-pane-padding) 0}:host .err-msg{font-size:var(--font-hint);color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}:host footer{display:flex;justify-content:end;gap:var(--app-pane-padding);margin-block-start:var(--app-pane-padding)}\n"] }]
|
|
94
|
+
}] });
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1kYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMvc3JjL2xpYi9lbGVtZW50cy9kYXRhLWdyaWQvZWRpdC10YWJsZS1kYXRhL2VkaXQtZGF0YS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2Zvcm1zL3NyYy9saWIvZWxlbWVudHMvZGF0YS1ncmlkL2VkaXQtdGFibGUtZGF0YS9lZGl0LWRhdGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBbUIsV0FBVyxFQUFhLGlCQUFpQixFQUFFLG1CQUFtQixFQUFvQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvSSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0FBaUJ2RSxNQUFNLE9BQU8sc0JBQXNCO0lBZm5DO1FBZ0JXLFVBQUssR0FBRyxN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QUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEQsQ0FBQyxDQUFDO0lBQ0osQ0FBQzsrR0F0RVUsc0JBQXNCO21HQUF0QixzQkFBc0IsdU9BUnRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDckQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ3ZCSCxrMUZBd0VBLCtkRDNEWSxZQUFZLDhCQUFFLG1CQUFtQiw2dUJBQUUsa0JBQWtCLHVJQUFFLGVBQWUsb0xBQUUsZUFBZSx5S0FBRSxlQUFlOzs0RkFZdkcsc0JBQXNCO2tCQWZsQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsbUJBR2xHLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2l0dWF0aW9uLCBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFl2Y092ZXJsYXlSZWYgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvb3ZlcmxheSc7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL251bWJlci9udW1iZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFN0cmluZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3N0cmluZy9zdHJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IEVycm9yTWVzc2FnZXNTZXJ2aWNlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1lZGl0LXRhYmxlLWRhdGEnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtSW5wdXRDb21wb25lbnQsIFN0cmluZ0NvbXBvbmVudCwgTnVtYmVyQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1kYXRhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VkaXQtZGF0YS5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVkaXRUYWJsZURhdGFDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRWRpdFRhYmxlRGF0YUNvbXBvbmVudDxUID0gYW55PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJlYWRvbmx5ICNvUmVmID0gaW5qZWN0KFl2Y092ZXJsYXlSZWY8VCwgeyBhZGRpbmc6IGJvb2xlYW47IGZvcm1FbGVtZW50OiB7IFtrZXk6IHN0cmluZ106IGFueSB9OyBlbGVtZW50RGF0YTogVDsgc2l0dWF0aW9uOiBTaXR1YXRpb247IGxhYmVsOiBzdHJpbmcgfT4pO1xuICByZWFkb25seSAjZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuICByZWFkb25seSAjZXJyb3JNYXNzZ2UgPSBpbmplY3QoRXJyb3JNZXNzYWdlc1NlcnZpY2UpO1xuXG4gIGVycm9yTWFzc2FnZSA9IHNpZ25hbDxhbnlbXSB8IG51bGw+KG51bGwpO1xuICB0YWJsZUZvcm06IEZvcm1Hcm91cCA9IHRoaXMuI2ZiLmdyb3VwKHt9KTtcblxuICBpc0lubmVyVGFibGVGb3JtID0gaW5wdXQodHJ1ZSk7XG5cbiAgZm9ybUVsZW1lbnQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB0aGlzLiNvUmVmLmRhdGE/LmZvcm1FbGVtZW50IHx8IHt9O1xuICAjZWxlbWVudERhdGE6IFQgPSB0aGlzLiNvUmVmLmRhdGE/LmVsZW1lbnREYXRhIHx8ICh7fSBhcyBUKTtcbiAgc2l0dWF0aW9uOiBTaXR1YXRpb24gPSB0aGlzLiNvUmVmLmRhdGE/LnNpdHVhdGlvbiB8fCBTaXR1YXRpb24uRURJVDtcbiAgaGVhZGVyID0gdGhpcy4jb1JlZi5kYXRhPy5sYWJlbCB8fCAnJztcbiAgYWRkaW5nID0gdGhpcy4jb1JlZi5kYXRhPy5hZGRpbmc7XG5cbiAgY2FuY2VsKCkge1xuICAgIGlmICh0aGlzLiNvUmVmKSB0aGlzLiNvUmVmLmNsb3NlKCk7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMudGFibGVGb3JtLnZhbGlkICYmIHRoaXMuI29SZWYpIHRoaXMuI29SZWYuY2xvc2UodGhpcy50YWJsZUZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuZm9ybUVsZW1lbnRbJ2VsZW1lbnRzJ10pLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMudGFibGVGb3JtLmFkZENvbnRyb2woXG4gICAgICAgIGVsZW1lbnQubmFtZSxcbiAgICAgICAgdGhpcy4jZmIuY29udHJvbCh7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IGVsZW1lbnQucmVhZG9ubHkgfSwgZWxlbWVudC5yZXF1aXJlZCA/IFZhbGlkYXRvcnMucmVxdWlyZWQgOiBudWxsKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICB0aGlzLnRhYmxlRm9ybS5zZXRWYWxpZGF0b3JzKHRoaXMuI2dsb2JhbEVycm9yVmFsaWRhdG9yKCkpO1xuICAgIHRoaXMuI2VsZW1lbnREYXRhICYmIHRoaXMudGFibGVGb3JtLnBhdGNoVmFsdWUodGhpcy4jZWxlbWVudERhdGEpO1xuXG4gICAgdGhpcy50YWJsZUZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodikgPT4ge1xuICAgICAgdGhpcy5lcnJvck1hc3NhZ2Uuc2V0KFxuICAgICAgICB0aGlzLnRhYmxlRm9ybS5lcnJvcnNcbiAgICAgICAgICA/IE9iamVjdC5rZXlzKHRoaXMudGFibGVGb3JtLmVycm9ycykubWFwKChrZXkpID0+XG4gICAgICAgICAgICAgIHRoaXMudGFibGVGb3JtLmVycm9ycyAmJiB0aGlzLnRhYmxlRm9ybS5lcnJvcnNba2V5XVxuICAgICAgICAgICAgICAgID8gT2JqZWN0LmtleXModGhpcy50YWJsZUZvcm0uZXJyb3JzW2tleV0pLm1hcCgoaykgPT4gKHsgW2tleV06IHRoaXMuI2Vycm9yTWFzc2dlLmdldEVycm9yTGFiZWwoaywga2V5KSB9KSlcbiAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IG51bGxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAjZ2xvYmFsRXJyb3JWYWxpZGF0b3IoKSB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sIGFzIEZvcm1Hcm91cDtcbiAgICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHt9O1xuXG4gICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChrZXkpO1xuICAgICAgICBpZiAoY29udHJvbCAmJiBjb250cm9sLmludmFsaWQgJiYgY29udHJvbC5kaXJ0eSkge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2xFcnJvcnMgPSBjb250cm9sLmVycm9ycztcbiAgICAgICAgICBpZiAoY29udHJvbEVycm9ycykge1xuICAgICAgICAgICAgLy8gSWdub3JlICdyZXF1aXJlZCcgZXJyb3IgaWYgdGhlcmUgYXJlIG1vcmUgZXJyb3JzXG4gICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoY29udHJvbEVycm9ycykubGVuZ3RoID4gMSAmJiBjb250cm9sRXJyb3JzWydyZXF1aXJlZCddKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgcmVxdWlyZWQsIC4uLm90aGVyRXJyb3JzIH0gPSBjb250cm9sRXJyb3JzO1xuICAgICAgICAgICAgICBlcnJvcnNba2V5XSA9IG90aGVyRXJyb3JzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZXJyb3JzW2tleV0gPSBjb250cm9sRXJyb3JzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA/IGVycm9ycyA6IG51bGw7XG4gICAgfTtcbiAgfVxufVxuIiwiPGhlYWRlcj5cbiAgPGgyPnt7ICd5dXYuZm9ybS5lbGVtZW50LmRhdGEuZ3JpZC5lZGl0LmhlYWRsaW5lJyB8IHRyYW5zbGF0ZTogeyBoZWFkbGluZTogaGVhZGVyIH0gfX08L2gyPlxuPC9oZWFkZXI+XG5cbjxkaXYgW2Zvcm1Hcm91cF09XCJ0YWJsZUZvcm1cIj5cbiAgQGZvciAoZWxlbWVudCBvZiBmb3JtRWxlbWVudFsnZWxlbWVudHMnXTsgdHJhY2sgJGluZGV4KSB7XG4gICAgPGRpdiBbYXR0ci5kYXRhLW5hbWVdPVwiZWxlbWVudC5uYW1lXCIgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgICA8eXV2LWZvcm0taW5wdXRcbiAgICAgICAgW2xhYmVsXT1cImVsZW1lbnQubGFiZWxcIlxuICAgICAgICBbcmVxdWlyZWRdPVwiZWxlbWVudC5yZXF1aXJlZFwiXG4gICAgICAgIFtpbnZhbGlkXT1cImZhbHNlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImVsZW1lbnQucmVhZG9ubHlcIlxuICAgICAgICBbaW52YWxpZF09XCIhdGFibGVGb3JtLmdldChlbGVtZW50LmxhYmVsKT8udmFsaWQgJiYgdGFibGVGb3JtLmdldChlbGVtZW50LmxhYmVsKT8uZGlydHlcIlxuICAgICAgPlxuICAgICAgICBAc3dpdGNoIChlbGVtZW50LnR5cGUpIHtcbiAgICAgICAgICBAY2FzZSAoJ3N0cmluZycpIHtcbiAgICAgICAgICAgIDx5dXYtc3RyaW5nXG4gICAgICAgICAgICAgIFtzaXR1YXRpb25dPVwic2l0dWF0aW9uXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJlbGVtZW50Lm5hbWVcIlxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLW5hbWVdPVwiZWxlbWVudC5uYW1lXCJcbiAgICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cImVsZW1lbnQuY2FyZGluYWxpdHkgPT09ICdtdWx0aScgfHwgc2l0dWF0aW9uID09PSAnU0VBUkNIJ1wiXG4gICAgICAgICAgICAgIFtyb3dzXT1cImVsZW1lbnQucm93c1wiXG4gICAgICAgICAgICAgIFtjbGFzc2lmaWNhdGlvbnNdPVwiZWxlbWVudC5jbGFzc2lmaWNhdGlvbnNcIlxuICAgICAgICAgICAgICBbcmVnZXhdPVwiZWxlbWVudC5yZWdleFwiXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJlbGVtZW50LnJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgW21pbkxlbmd0aF09XCJlbGVtZW50Lm1pbkxlbmd0aFwiXG4gICAgICAgICAgICAgIFttYXhMZW5ndGhdPVwiZWxlbWVudC5tYXhMZW5ndGhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC95dXYtc3RyaW5nPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoJ2RlY2ltYWwnKSB7XG4gICAgICAgICAgICA8eXV2LW51bWJlclxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZWxlbWVudC5yZWFkb25seVwiXG4gICAgICAgICAgICAgIFtwcmVjaXNpb25dPVwiZWxlbWVudC5wcmVjaXNpb25cIlxuICAgICAgICAgICAgICBbc2NhbGVdPVwiZWxlbWVudC5zY2FsZVwiXG4gICAgICAgICAgICAgIFtwYXR0ZXJuXT1cImVsZW1lbnQucGF0dGVyblwiXG4gICAgICAgICAgICAgIFtncm91cGluZ109XCJlbGVtZW50Lmdyb3VwaW5nXCJcbiAgICAgICAgICAgICAgW21pblZhbHVlXT1cImVsZW1lbnQubWluVmFsdWVcIlxuICAgICAgICAgICAgICBbbWF4VmFsdWVdPVwiZWxlbWVudC5tYXhWYWx1ZVwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZWxlbWVudC5uYW1lXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS1uYW1lXT1cImVsZW1lbnQubmFtZVwiXG4gICAgICAgICAgICA+PC95dXYtbnVtYmVyPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICA8aW5wdXQgW3R5cGVdPVwiZWxlbWVudC50eXBlXCIgW2lkXT1cImVsZW1lbnQubmFtZVwiIFtuYW1lXT1cImVsZW1lbnQubmFtZVwiIFtyZWFkb25seV09XCJlbGVtZW50LnJlYWRvbmx5XCIgW3JlcXVpcmVkXT1cImVsZW1lbnQucmVxdWlyZWRcIiAvPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA8IS0tIDxpbnB1dCBbdHlwZV09XCJlbGVtZW50LnR5cGVcIiBbaWRdPVwiZWxlbWVudC5uYW1lXCIgW25hbWVdPVwiZWxlbWVudC5uYW1lXCIgW3JlYWRvbmx5XT1cImVsZW1lbnQucmVhZG9ubHlcIiBbcmVxdWlyZWRdPVwiZWxlbWVudC5yZXF1aXJlZFwiIC8+IC0tPlxuICAgICAgPC95dXYtZm9ybS1pbnB1dD5cbiAgICAgIEBsZXQgZXJyb3JzR3JvdXAgPSBlcnJvck1hc3NhZ2UoKTtcbiAgICAgIEBpZiAoZXJyb3JzR3JvdXAgJiYgdGFibGVGb3JtLmVycm9ycykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiPlxuICAgICAgICAgIEBmb3IgKGVycm9ycyBvZiBlcnJvcnNHcm91cDsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICBAZm9yIChlcnJvciBvZiBlcnJvcnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICB7eyBlcnJvcltlbGVtZW50LmxhYmVsXSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbiAgPGZvb3Rlcj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJjYW5jZWwoKVwiPnt7ICd5dXYuZm9ybS5lbGVtZW50LmRhdGEuZ3JpZC5lZGl0LmNhbmNlbCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIChjbGljayk9XCJzdWJtaXQoKVwiIFtkaXNhYmxlZF09XCIhdGFibGVGb3JtLmRpcnR5ICYmICF0YWJsZUZvcm0udmFsaWRcIj5cbiAgICAgIEBpZiAoYWRkaW5nKSB7XG4gICAgICAgIHt7ICd5dXYuZm9ybS5lbGVtZW50LmRhdGEuZ3JpZC5lZGl0LmFkZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB7eyAneXV2LmZvcm0uZWxlbWVudC5kYXRhLmdyaWQuZWRpdCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIH1cbiAgICA8L2J1dHRvbj5cbiAgPC9mb290ZXI+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export var DataGridSizeType;
|
|
2
|
+
(function (DataGridSizeType) {
|
|
3
|
+
DataGridSizeType["SMALL"] = "small";
|
|
4
|
+
DataGridSizeType["MEDIUM"] = "medium";
|
|
5
|
+
DataGridSizeType["LARGE"] = "large";
|
|
6
|
+
DataGridSizeType["XLARGE"] = "extra-large";
|
|
7
|
+
DataGridSizeType["AUTO"] = "auto";
|
|
8
|
+
})(DataGridSizeType || (DataGridSizeType = {}));
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMvc3JjL2xpYi9lbGVtZW50cy9kYXRhLWdyaWQvbW9kZWwvZGF0YS1ncmlkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLG1DQUFlLENBQUE7SUFDZixxQ0FBaUIsQ0FBQTtJQUNqQixtQ0FBZSxDQUFBO0lBQ2YsMENBQXNCLENBQUE7SUFDdEIsaUNBQWEsQ0FBQTtBQUNmLENBQUMsRUFOVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBTTNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRGF0YUdyaWRTaXplVHlwZSB7XG4gIFNNQUxMID0gJ3NtYWxsJyxcbiAgTUVESVVNID0gJ21lZGl1bScsXG4gIExBUkdFID0gJ2xhcmdlJyxcbiAgWExBUkdFID0gJ2V4dHJhLWxhcmdlJyxcbiAgQVVUTyA9ICdhdXRvJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFHcmlkU2l6ZSB7XG4gIGV4dHJhbGFyZ2U6IERhdGFHcmlkU2l6ZVR5cGUuWExBUkdFO1xuICBsYXJnZTogRGF0YUdyaWRTaXplVHlwZS5MQVJHRTtcbiAgbWVkaXVtOiBEYXRhR3JpZFNpemVUeXBlLk1FRElVTTtcbiAgc21hbGw6IERhdGFHcmlkU2l6ZVR5cGUuU01BTEw7XG4gIGF1dG86IERhdGFHcmlkU2l6ZVR5cGUuQVVUTztcbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, Input, forwardRef, inject } from '@angular/core';
|
|
2
2
|
import { FormBuilder, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
3
|
-
import { Operator, OperatorLabel } from '@yuuvis/client-core';
|
|
3
|
+
import { Operator, OperatorLabel, Situation } from '@yuuvis/client-core';
|
|
4
4
|
import { YvcDropdownModule } from '@yuuvis/components/dropdown';
|
|
5
5
|
import { DatetimeComponent } from '../datetime/datetime.component';
|
|
6
6
|
import { CommonModule } from '@angular/common';
|
|
@@ -63,36 +63,34 @@ export class DatetimeRangeComponent {
|
|
|
63
63
|
const dateValueFrom = this.rangeForm.value.dateValueFrom || undefined;
|
|
64
64
|
if (dateValueFrom || dateValue) {
|
|
65
65
|
this._isValid = this.rangeForm.valid && !!dateValueFrom && !!dateValue;
|
|
66
|
-
this.value = !this._isValid
|
|
67
|
-
// {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
:
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
};
|
|
66
|
+
this.value = !this._isValid
|
|
67
|
+
? // {
|
|
68
|
+
// operator: this.searchOption,
|
|
69
|
+
// firstValue: undefined,
|
|
70
|
+
// secondValue: undefined
|
|
71
|
+
// }
|
|
72
|
+
undefined
|
|
73
|
+
: {
|
|
74
|
+
operator: this.searchOption,
|
|
75
|
+
firstValue: dateValueFrom,
|
|
76
|
+
secondValue: dateValue
|
|
77
|
+
};
|
|
79
78
|
}
|
|
80
79
|
}
|
|
81
80
|
else {
|
|
82
81
|
this._isValid = this.rangeForm.valid;
|
|
83
|
-
this.value = !this._isValid
|
|
84
|
-
// {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
};
|
|
82
|
+
this.value = !this._isValid
|
|
83
|
+
? // {
|
|
84
|
+
// operator: this.searchOption,
|
|
85
|
+
// firstValue: undefined,
|
|
86
|
+
// secondValue: undefined
|
|
87
|
+
// }
|
|
88
|
+
undefined
|
|
89
|
+
: {
|
|
90
|
+
operator: this.searchOption,
|
|
91
|
+
firstValue: dateValue,
|
|
92
|
+
secondValue: undefined
|
|
93
|
+
};
|
|
96
94
|
}
|
|
97
95
|
this.propagateChange(this.value);
|
|
98
96
|
}
|
|
@@ -123,13 +121,13 @@ export class DatetimeRangeComponent {
|
|
|
123
121
|
};
|
|
124
122
|
}
|
|
125
123
|
}
|
|
126
|
-
return this._isValid ? null : err;
|
|
124
|
+
return this.situation === Situation.SEARCH || this._isValid ? null : err;
|
|
127
125
|
}
|
|
128
126
|
ngOnInit() {
|
|
129
127
|
this.rangeForm.valueChanges.subscribe(() => this.onValueChange());
|
|
130
128
|
}
|
|
131
129
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatetimeRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
132
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DatetimeRangeComponent, isStandalone: true, selector: "yuv-datetime-range", inputs: { withTime: "withTime", readonly: "readonly", operator: "operator" }, providers: [
|
|
130
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DatetimeRangeComponent, isStandalone: true, selector: "yuv-datetime-range", inputs: { withTime: "withTime", readonly: "readonly", operator: "operator", situation: "situation" }, providers: [
|
|
133
131
|
{
|
|
134
132
|
provide: NG_VALUE_ACCESSOR,
|
|
135
133
|
useExisting: forwardRef(() => DatetimeRangeComponent),
|
|
@@ -140,7 +138,7 @@ export class DatetimeRangeComponent {
|
|
|
140
138
|
useExisting: forwardRef(() => DatetimeRangeComponent),
|
|
141
139
|
multi: true
|
|
142
140
|
}
|
|
143
|
-
], ngImport: i0, template: "<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\n @if (searchOption === 'gtelte') {\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValueFrom\"></yuv-datetime>\n }\n <yvc-dropdown\n [disableClearButton]=\"true\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValue\"></yuv-datetime>\n</form>\n", styles: [":host form{display:flex;flex-flow:row nowrap;
|
|
141
|
+
], ngImport: i0, template: "<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\n @if (searchOption === 'gtelte') {\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValueFrom\"></yuv-datetime>\n }\n <yvc-dropdown\n [disableClearButton]=\"true\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValue\"></yuv-datetime>\n</form>\n", styles: [":host form{display:flex;flex-flow:row nowrap;gap:3px}:host form yuv-datetime{flex:1 1 auto}:host form yvc-dropdown{--yvc-form-element-border-color: var(--text-color-hint);--yvc-form-element-focus-border-color: var(--color-accent);padding:0;min-width:auto;border-radius:2px;background-color:var(--list-item-hover-background)}:host form yvc-dropdown:hover{background-color:var(--list-item-selected-background)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: YvcDropdownModule }, { kind: "component", type: i2.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"], outputs: ["onDropdownOptionsClose"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DatetimeComponent, selector: "yuv-datetime", inputs: ["onlyFutureDates", "readonly", "withTime"] }] }); }
|
|
144
142
|
}
|
|
145
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatetimeRangeComponent, decorators: [{
|
|
146
144
|
type: Component,
|
|
@@ -155,12 +153,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
155
153
|
useExisting: forwardRef(() => DatetimeRangeComponent),
|
|
156
154
|
multi: true
|
|
157
155
|
}
|
|
158
|
-
], template: "<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\n @if (searchOption === 'gtelte') {\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValueFrom\"></yuv-datetime>\n }\n <yvc-dropdown\n [disableClearButton]=\"true\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValue\"></yuv-datetime>\n</form>\n", styles: [":host form{display:flex;flex-flow:row nowrap;
|
|
156
|
+
], template: "<form class=\"eo-datetime-range\" [formGroup]=\"rangeForm\">\n @if (searchOption === 'gtelte') {\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValueFrom\"></yuv-datetime>\n }\n <yvc-dropdown\n [disableClearButton]=\"true\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-datetime [withTime]=\"withTime\" formControlName=\"dateValue\"></yuv-datetime>\n</form>\n", styles: [":host form{display:flex;flex-flow:row nowrap;gap:3px}:host form yuv-datetime{flex:1 1 auto}:host form yvc-dropdown{--yvc-form-element-border-color: var(--text-color-hint);--yvc-form-element-focus-border-color: var(--color-accent);padding:0;min-width:auto;border-radius:2px;background-color:var(--list-item-hover-background)}:host form yvc-dropdown:hover{background-color:var(--list-item-selected-background)}\n"] }]
|
|
159
157
|
}], propDecorators: { withTime: [{
|
|
160
158
|
type: Input
|
|
161
159
|
}], readonly: [{
|
|
162
160
|
type: Input
|
|
163
161
|
}], operator: [{
|
|
164
162
|
type: Input
|
|
163
|
+
}], situation: [{
|
|
164
|
+
type: Input
|
|
165
165
|
}] } });
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9mb3Jtcy9zcmMvbGliL2VsZW1lbnRzL2RhdGV0aW1lLXJhbmdlL2RhdGV0aW1lLXJhbmdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMvc3JjL2xpYi9lbGVtZW50cy9kYXRldGltZS1yYW5nZS9kYXRldGltZS1yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBd0IsV0FBVyxFQUFhLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekssT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFxQi9DLE1BQU0sT0FBTyxzQkFBc0I7SUFuQm5DO1FBb0JVLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFakM7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXpCLGNBQVMsR0FBYyxJQUFJ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RSxtQkFBbUIsZ1ZBQUUsaUJBQWlCOzs0RkFnQnBGLHNCQUFzQjtrQkFuQmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRyxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsYUFHckY7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBUVEsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIGZvcndhcmRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT3BlcmF0b3IsIE9wZXJhdG9yTGFiZWwsIFJhbmdlVmFsdWUgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFl2Y0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IERhdGV0aW1lQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZXRpbWUvZGF0ZXRpbWUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1kYXRldGltZS1yYW5nZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsICBGb3Jtc01vZHVsZSwgWXZjRHJvcGRvd25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIERhdGV0aW1lQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RhdGV0aW1lLXJhbmdlLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRldGltZVJhbmdlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXRpbWVSYW5nZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRldGltZVJhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0IHtcbiAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgc2V0dGluZyB0aW1lIGFzIHdlbGwgKGRlZmF1bHQ6IGZhbHNlKVxuICAgKi9cbiAgQElucHV0KCkgd2l0aFRpbWUgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFdpbGwgcHJldmVudCB0aGUgaW5wdXQgZnJvbSBiZWluZyBjaGFuZ2VkIChkZWZhdWx0OiBmYWxzZSlcbiAgICovXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIG9wZXJhdG9yID0gJ2VxJztcblxuICByYW5nZUZvcm06IEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIGRhdGVWYWx1ZTogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgZGF0ZVZhbHVlRnJvbTogW11cbiAgfSk7XG4gIHZhbHVlPzogUmFuZ2VWYWx1ZTtcblxuICBwcml2YXRlIF9pc1ZhbGlkID0gdHJ1ZTtcblxuICAvLyBvcHRpb25zIGZvciBzZWFyY2ggc2l0dWF0aW9uXG4gIGF2YWlsYWJsZVNlYXJjaE9wdGlvbnMgPSBbXG4gICAgeyBsYWJlbDogT3BlcmF0b3JMYWJlbC5FUVVBTCwgdmFsdWU6IE9wZXJhdG9yLkVRVUFMIH0sXG4gICAgeyBsYWJlbDogT3BlcmF0b3JMYWJlbC5HUkVBVEVSX09SX0VRVUFMLCB2YWx1ZTogT3BlcmF0b3IuR1JFQVRFUl9PUl9FUVVBTCB9LFxuICAgIHsgbGFiZWw6IE9wZXJhdG9yTGFiZWwuTEVTU19PUl9FUVVBTCwgdmFsdWU6IE9wZXJhdG9yLkxFU1NfT1JfRVFVQUwgfSxcbiAgICB7IGxhYmVsOiBPcGVyYXRvckxhYmVsLklOVEVSVkFMX0lOQ0xVREVfQk9USCwgdmFsdWU6IE9wZXJhdG9yLklOVEVSVkFMX0lOQ0xVREVfQk9USCB9XG4gIF07XG4gIC8vIHRoZSBzZWxlY3RlZCBzZWFyY2ggb3B0aW9uXG4gIHNlYXJjaE9wdGlvbiA9IHRoaXMuYXZhaWxhYmxlU2VhcmNoT3B0aW9uc1sxXS52YWx1ZTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogUmFuZ2VWYWx1ZSk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSAmJiAodmFsdWUuZmlyc3RWYWx1ZSB8fCB2YWx1ZS5zZWNvbmRWYWx1ZSkpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gdGhpcy5hdmFpbGFibGVTZWFyY2hPcHRpb25zLmZpbmQoKG8pID0+IG8udmFsdWUgPT09IHZhbHVlLm9wZXJhdG9yKTtcbiAgICAgIHRoaXMuc2VhcmNoT3B0aW9uID0gbWF0Y2ggPyBtYXRjaC52YWx1ZSA6IHRoaXMuYXZhaWxhYmxlU2VhcmNoT3B0aW9uc1swXS52YWx1ZTtcblxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5yYW5nZUZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIGRhdGVWYWx1ZUZyb206IHZhbHVlLnNlY29uZFZhbHVlICYmIHZhbHVlLmZpcnN0VmFsdWUsXG4gICAgICAgIGRhdGVWYWx1ZTogdmFsdWUuc2Vjb25kVmFsdWUgfHwgdmFsdWUuZmlyc3RWYWx1ZVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoT3B0aW9uID0gdGhpcy5hdmFpbGFibGVTZWFyY2hPcHRpb25zWzBdLnZhbHVlO1xuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMucmFuZ2VGb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge31cblxuICBvblZhbHVlQ2hhbmdlKCkge1xuICAgIGNvbnN0IGRhdGVWYWx1ZSA9IHRoaXMucmFuZ2VGb3JtLnZhbHVlLmRhdGVWYWx1ZSB8fCB1bmRlZmluZWQ7XG4gICAgaWYgKHRoaXMuc2VhcmNoT3B0aW9uID09PSBPcGVyYXRvci5JTlRFUlZBTF9JTkNMVURFX0JPVEgpIHtcbiAgICAgIGNvbnN0IGRhdGVWYWx1ZUZyb20gPSB0aGlzLnJhbmdlRm9ybS52YWx1ZS5kYXRlVmFsdWVGcm9tIHx8IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGRhdGVWYWx1ZUZyb20gfHwgZGF0ZVZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2lzVmFsaWQgPSB0aGlzLnJhbmdlRm9ybS52YWxpZCAmJiAhIWRhdGVWYWx1ZUZyb20gJiYgISFkYXRlVmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWUgPSAhdGhpcy5faXNWYWxpZCA/IFxuICAgICAgICAvLyB7XG4gICAgICAgIC8vICAgb3BlcmF0b3I6IHRoaXMuc2VhcmNoT3B0aW9uLFxuICAgICAgICAvLyAgIGZpcnN0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgLy8gICBzZWNvbmRWYWx1ZTogdW5kZWZpbmVkXG4gICAgICAgIC8vIH0gXG4gICAgICAgIHVuZGVmaW5lZFxuICAgICAgICA6IFxuICAgICAgICB7XG4gICAgICAgICAgb3BlcmF0b3I6IHRoaXMuc2VhcmNoT3B0aW9uLFxuICAgICAgICAgIGZpcnN0VmFsdWU6IGRhdGVWYWx1ZUZyb20sXG4gICAgICAgICAgc2Vjb25kVmFsdWU6IGRhdGVWYWx1ZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pc1ZhbGlkID0gdGhpcy5yYW5nZUZvcm0udmFsaWQ7XG4gICAgICB0aGlzLnZhbHVlID0gIXRoaXMuX2lzVmFsaWQgPyBcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgb3BlcmF0b3I6IHRoaXMuc2VhcmNoT3B0aW9uLFxuICAgICAgLy8gICBmaXJzdFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAvLyAgIHNlY29uZFZhbHVlOiB1bmRlZmluZWRcbiAgICAgIC8vIH0gXG4gICAgICB1bmRlZmluZWRcbiAgICAgIDogXG4gICAgICB7XG4gICAgICAgIG9wZXJhdG9yOiB0aGlzLnNlYXJjaE9wdGlvbixcbiAgICAgICAgZmlyc3RWYWx1ZTogZGF0ZVZhbHVlLFxuICAgICAgICBzZWNvbmRWYWx1ZTogdW5kZWZpbmVkXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cblxuICB2YWxpZGF0ZSgpIHtcbiAgICBsZXQgZXJyO1xuICAgIGlmICh0aGlzLnNlYXJjaE9wdGlvbiA9PT0gT3BlcmF0b3IuRVFVQUwpIHtcbiAgICAgIGVyciA9IHtcbiAgICAgICAgZGF0ZWNvbnRyb2w6IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgb24gcmFuZ2VzLCB0aGUgZmlyc3QgdmFsdWUgaXMgZWFybGllciB0aGFuIHRoZSBsYXN0XG4gICAgICBpZiAodGhpcy5zZWFyY2hPcHRpb24gPT09IE9wZXJhdG9yLklOVEVSVkFMX0lOQ0xVREVfQk9USCAmJiB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUuZmlyc3RWYWx1ZSAmJiB0aGlzLnZhbHVlLnNlY29uZFZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2lzVmFsaWQgPSBuZXcgRGF0ZSh0aGlzLnZhbHVlLmZpcnN0VmFsdWUgYXMgRGF0ZSkuZ2V0VGltZSgpIDwgbmV3IERhdGUodGhpcy52YWx1ZS5zZWNvbmRWYWx1ZSBhcyBEYXRlKS5nZXRUaW1lKCk7XG4gICAgICAgIGVyciA9IHtcbiAgICAgICAgICBkYXRlcmFuZ2VvcmRlcjoge1xuICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyID0ge1xuICAgICAgICAgIGRhdGVyYW5nZToge1xuICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faXNWYWxpZCA/IG51bGwgOiBlcnI7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJhbmdlRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMub25WYWx1ZUNoYW5nZSgpKTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJlby1kYXRldGltZS1yYW5nZVwiIFtmb3JtR3JvdXBdPVwicmFuZ2VGb3JtXCI+XG4gIEBpZiAoc2VhcmNoT3B0aW9uID09PSAnZ3RlbHRlJykge1xuICAgIDx5dXYtZGF0ZXRpbWUgW3dpdGhUaW1lXT1cIndpdGhUaW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVZhbHVlRnJvbVwiPjwveXV2LWRhdGV0aW1lPlxuICB9XG4gIDx5dmMtZHJvcGRvd25cbiAgICBbZGlzYWJsZUNsZWFyQnV0dG9uXT1cInRydWVcIlxuICAgIFsobmdNb2RlbCldPVwic2VhcmNoT3B0aW9uXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKClcIlxuICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgW29wdGlvbnNdPVwiYXZhaWxhYmxlU2VhcmNoT3B0aW9uc1wiXG4gID48L3l2Yy1kcm9wZG93bj5cblxuICA8eXV2LWRhdGV0aW1lIFt3aXRoVGltZV09XCJ3aXRoVGltZVwiIGZvcm1Db250cm9sTmFtZT1cImRhdGVWYWx1ZVwiPjwveXV2LWRhdGV0aW1lPlxuPC9mb3JtPlxuIl19
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay9mb3Jtcy9zcmMvbGliL2VsZW1lbnRzL2RhdGV0aW1lLXJhbmdlL2RhdGV0aW1lLXJhbmdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMvc3JjL2xpYi9lbGVtZW50cy9kYXRldGltZS1yYW5nZS9kYXRldGltZS1yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFFTCxXQUFXLEVBRVgsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsbUJBQW1CLEVBRW5CLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFjLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQXFCL0MsTUFBTSxPQUFPLHNCQUFzQjtJQW5CbkM7UUFvQlUsT0FBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqQzs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFHekIsY0FB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SCxxaEJBY0EsbWRETVksWUFBWSw4QkFBRSxXQUFXLG1tQkFBRSxpQkFBaUIsb05BQUUsbUJBQW1CLGdWQUFFLGlCQUFpQjs7NEZBZ0JuRixzQkFBc0I7a0JBbkJsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLGFBR3BGO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDOzRCQUNyRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQVFRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIGZvcndhcmRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtR3JvdXAsXG4gIEZvcm1zTW9kdWxlLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9wZXJhdG9yLCBPcGVyYXRvckxhYmVsLCBSYW5nZVZhbHVlLCBTaXR1YXRpb24gfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFl2Y0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IERhdGV0aW1lQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZXRpbWUvZGF0ZXRpbWUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1kYXRldGltZS1yYW5nZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBZdmNEcm9wZG93bk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRGF0ZXRpbWVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGV0aW1lUmFuZ2VDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRldGltZVJhbmdlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGV0aW1lUmFuZ2VDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQge1xuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcblxuICAvKipcbiAgICogRW5hYmxlcyBzZXR0aW5nIHRpbWUgYXMgd2VsbCAoZGVmYXVsdDogZmFsc2UpXG4gICAqL1xuICBASW5wdXQoKSB3aXRoVGltZSA9IGZhbHNlO1xuICAvKipcbiAgICogV2lsbCBwcmV2ZW50IHRoZSBpbnB1dCBmcm9tIGJlaW5nIGNoYW5nZWQgKGRlZmF1bHQ6IGZhbHNlKVxuICAgKi9cbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgb3BlcmF0b3IgPSAnZXEnO1xuICBASW5wdXQoKSBzaXR1YXRpb24/OiBzdHJpbmc7XG5cbiAgcmFuZ2VGb3JtOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBkYXRlVmFsdWU6IFt1bmRlZmluZWQsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIGRhdGVWYWx1ZUZyb206IFtdXG4gIH0pO1xuICB2YWx1ZT86IFJhbmdlVmFsdWU7XG5cbiAgcHJpdmF0ZSBfaXNWYWxpZCA9IHRydWU7XG5cbiAgLy8gb3B0aW9ucyBmb3Igc2VhcmNoIHNpdHVhdGlvblxuICBhdmFpbGFibGVTZWFyY2hPcHRpb25zID0gW1xuICAgIHsgbGFiZWw6IE9wZXJhdG9yTGFiZWwuRVFVQUwsIHZhbHVlOiBPcGVyYXRvci5FUVVBTCB9LFxuICAgIHsgbGFiZWw6IE9wZXJhdG9yTGFiZWwuR1JFQVRFUl9PUl9FUVVBTCwgdmFsdWU6IE9wZXJhdG9yLkdSRUFURVJfT1JfRVFVQUwgfSxcbiAgICB7IGxhYmVsOiBPcGVyYXRvckxhYmVsLkxFU1NfT1JfRVFVQUwsIHZhbHVlOiBPcGVyYXRvci5MRVNTX09SX0VRVUFMIH0sXG4gICAgeyBsYWJlbDogT3BlcmF0b3JMYWJlbC5JTlRFUlZBTF9JTkNMVURFX0JPVEgsIHZhbHVlOiBPcGVyYXRvci5JTlRFUlZBTF9JTkNMVURFX0JPVEggfVxuICBdO1xuICAvLyB0aGUgc2VsZWN0ZWQgc2VhcmNoIG9wdGlvblxuICBzZWFyY2hPcHRpb24gPSB0aGlzLmF2YWlsYWJsZVNlYXJjaE9wdGlvbnNbMV0udmFsdWU7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFJhbmdlVmFsdWUpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgJiYgKHZhbHVlLmZpcnN0VmFsdWUgfHwgdmFsdWUuc2Vjb25kVmFsdWUpKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IHRoaXMuYXZhaWxhYmxlU2VhcmNoT3B0aW9ucy5maW5kKChvKSA9PiBvLnZhbHVlID09PSB2YWx1ZS5vcGVyYXRvcik7XG4gICAgICB0aGlzLnNlYXJjaE9wdGlvbiA9IG1hdGNoID8gbWF0Y2gudmFsdWUgOiB0aGlzLmF2YWlsYWJsZVNlYXJjaE9wdGlvbnNbMF0udmFsdWU7XG5cbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMucmFuZ2VGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBkYXRlVmFsdWVGcm9tOiB2YWx1ZS5zZWNvbmRWYWx1ZSAmJiB2YWx1ZS5maXJzdFZhbHVlLFxuICAgICAgICBkYXRlVmFsdWU6IHZhbHVlLnNlY29uZFZhbHVlIHx8IHZhbHVlLmZpcnN0VmFsdWVcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaE9wdGlvbiA9IHRoaXMuYXZhaWxhYmxlU2VhcmNoT3B0aW9uc1swXS52YWx1ZTtcbiAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnJhbmdlRm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHt9XG5cbiAgb25WYWx1ZUNoYW5nZSgpIHtcbiAgICBjb25zdCBkYXRlVmFsdWUgPSB0aGlzLnJhbmdlRm9ybS52YWx1ZS5kYXRlVmFsdWUgfHwgdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLnNlYXJjaE9wdGlvbiA9PT0gT3BlcmF0b3IuSU5URVJWQUxfSU5DTFVERV9CT1RIKSB7XG4gICAgICBjb25zdCBkYXRlVmFsdWVGcm9tID0gdGhpcy5yYW5nZUZvcm0udmFsdWUuZGF0ZVZhbHVlRnJvbSB8fCB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChkYXRlVmFsdWVGcm9tIHx8IGRhdGVWYWx1ZSkge1xuICAgICAgICB0aGlzLl9pc1ZhbGlkID0gdGhpcy5yYW5nZUZvcm0udmFsaWQgJiYgISFkYXRlVmFsdWVGcm9tICYmICEhZGF0ZVZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlID0gIXRoaXMuX2lzVmFsaWRcbiAgICAgICAgICA/IC8vIHtcbiAgICAgICAgICAgIC8vICAgb3BlcmF0b3I6IHRoaXMuc2VhcmNoT3B0aW9uLFxuICAgICAgICAgICAgLy8gICBmaXJzdFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyAgIHNlY29uZFZhbHVlOiB1bmRlZmluZWRcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5zZWFyY2hPcHRpb24sXG4gICAgICAgICAgICAgIGZpcnN0VmFsdWU6IGRhdGVWYWx1ZUZyb20sXG4gICAgICAgICAgICAgIHNlY29uZFZhbHVlOiBkYXRlVmFsdWVcbiAgICAgICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2lzVmFsaWQgPSB0aGlzLnJhbmdlRm9ybS52YWxpZDtcbiAgICAgIHRoaXMudmFsdWUgPSAhdGhpcy5faXNWYWxpZFxuICAgICAgICA/IC8vIHtcbiAgICAgICAgICAvLyAgIG9wZXJhdG9yOiB0aGlzLnNlYXJjaE9wdGlvbixcbiAgICAgICAgICAvLyAgIGZpcnN0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICAvLyAgIHNlY29uZFZhbHVlOiB1bmRlZmluZWRcbiAgICAgICAgICAvLyB9XG4gICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgIDoge1xuICAgICAgICAgICAgb3BlcmF0b3I6IHRoaXMuc2VhcmNoT3B0aW9uLFxuICAgICAgICAgICAgZmlyc3RWYWx1ZTogZGF0ZVZhbHVlLFxuICAgICAgICAgICAgc2Vjb25kVmFsdWU6IHVuZGVmaW5lZFxuICAgICAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cblxuICB2YWxpZGF0ZSgpIHtcbiAgICBsZXQgZXJyO1xuICAgIGlmICh0aGlzLnNlYXJjaE9wdGlvbiA9PT0gT3BlcmF0b3IuRVFVQUwpIHtcbiAgICAgIGVyciA9IHtcbiAgICAgICAgZGF0ZWNvbnRyb2w6IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgb24gcmFuZ2VzLCB0aGUgZmlyc3QgdmFsdWUgaXMgZWFybGllciB0aGFuIHRoZSBsYXN0XG4gICAgICBpZiAodGhpcy5zZWFyY2hPcHRpb24gPT09IE9wZXJhdG9yLklOVEVSVkFMX0lOQ0xVREVfQk9USCAmJiB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUuZmlyc3RWYWx1ZSAmJiB0aGlzLnZhbHVlLnNlY29uZFZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2lzVmFsaWQgPSBuZXcgRGF0ZSh0aGlzLnZhbHVlLmZpcnN0VmFsdWUgYXMgRGF0ZSkuZ2V0VGltZSgpIDwgbmV3IERhdGUodGhpcy52YWx1ZS5zZWNvbmRWYWx1ZSBhcyBEYXRlKS5nZXRUaW1lKCk7XG4gICAgICAgIGVyciA9IHtcbiAgICAgICAgICBkYXRlcmFuZ2VvcmRlcjoge1xuICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyID0ge1xuICAgICAgICAgIGRhdGVyYW5nZToge1xuICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zaXR1YXRpb24gPT09IFNpdHVhdGlvbi5TRUFSQ0ggfHwgdGhpcy5faXNWYWxpZCA/IG51bGwgOiBlcnI7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJhbmdlRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMub25WYWx1ZUNoYW5nZSgpKTtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJlby1kYXRldGltZS1yYW5nZVwiIFtmb3JtR3JvdXBdPVwicmFuZ2VGb3JtXCI+XG4gIEBpZiAoc2VhcmNoT3B0aW9uID09PSAnZ3RlbHRlJykge1xuICAgIDx5dXYtZGF0ZXRpbWUgW3dpdGhUaW1lXT1cIndpdGhUaW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVZhbHVlRnJvbVwiPjwveXV2LWRhdGV0aW1lPlxuICB9XG4gIDx5dmMtZHJvcGRvd25cbiAgICBbZGlzYWJsZUNsZWFyQnV0dG9uXT1cInRydWVcIlxuICAgIFsobmdNb2RlbCldPVwic2VhcmNoT3B0aW9uXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKClcIlxuICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgW29wdGlvbnNdPVwiYXZhaWxhYmxlU2VhcmNoT3B0aW9uc1wiXG4gID48L3l2Yy1kcm9wZG93bj5cblxuICA8eXV2LWRhdGV0aW1lIFt3aXRoVGltZV09XCJ3aXRoVGltZVwiIGZvcm1Db250cm9sTmFtZT1cImRhdGVWYWx1ZVwiPjwveXV2LWRhdGV0aW1lPlxuPC9mb3JtPlxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './catalog/catalog.component';
|
|
2
|
+
export * from './data-grid/data-grid/data-grid.component';
|
|
3
|
+
export * from './datetime/datetime.component';
|
|
4
|
+
export * from './datetime-range/datetime-range.component';
|
|
5
|
+
export * from './number/number.component';
|
|
6
|
+
export * from './number-range/number-range.component';
|
|
7
|
+
export * from './organization/organization.component';
|
|
8
|
+
export * from './range-select-date/range-select-date.component';
|
|
9
|
+
export * from './range-select-filesize/range-select-filesize.component';
|
|
10
|
+
export * from './string/string.component';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2Zvcm1zL3NyYy9saWIvZWxlbWVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2F0YWxvZy9jYXRhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtZ3JpZC9kYXRhLWdyaWQvZGF0YS1ncmlkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGV0aW1lL2RhdGV0aW1lLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGV0aW1lLXJhbmdlL2RhdGV0aW1lLXJhbmdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL251bWJlci9udW1iZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbnVtYmVyLXJhbmdlL251bWJlci1yYW5nZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9vcmdhbml6YXRpb24vb3JnYW5pemF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JhbmdlLXNlbGVjdC1kYXRlL3JhbmdlLXNlbGVjdC1kYXRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JhbmdlLXNlbGVjdC1maWxlc2l6ZS9yYW5nZS1zZWxlY3QtZmlsZXNpemUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3RyaW5nL3N0cmluZy5jb21wb25lbnQnO1xuIl19
|
|
@@ -159,7 +159,7 @@ export class NumberComponent {
|
|
|
159
159
|
useExisting: forwardRef(() => NumberComponent),
|
|
160
160
|
multi: true
|
|
161
161
|
}
|
|
162
|
-
], ngImport: i0, template: "<input type=\"string\" [(ngModel)]=\"innerValue\" (focus)=\"unformat()\" (blur)=\"format()\" class=\"input-number\"\n [readonly]=\"readonly\" (ngModelChange)=\"onValueChange($event)\" />\n", styles: [":host{display:
|
|
162
|
+
], ngImport: i0, template: "<input type=\"string\" [(ngModel)]=\"innerValue\" (focus)=\"unformat()\" (blur)=\"format()\" class=\"input-number\"\n [readonly]=\"readonly\" (ngModelChange)=\"onValueChange($event)\" />\n", styles: [":host{display:flex}:host input{width:100%;border:0;background-color:transparent}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
163
163
|
}
|
|
164
164
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberComponent, decorators: [{
|
|
165
165
|
type: Component,
|
|
@@ -174,7 +174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
174
174
|
useExisting: forwardRef(() => NumberComponent),
|
|
175
175
|
multi: true
|
|
176
176
|
}
|
|
177
|
-
], template: "<input type=\"string\" [(ngModel)]=\"innerValue\" (focus)=\"unformat()\" (blur)=\"format()\" class=\"input-number\"\n [readonly]=\"readonly\" (ngModelChange)=\"onValueChange($event)\" />\n", styles: [":host{display:
|
|
177
|
+
], template: "<input type=\"string\" [(ngModel)]=\"innerValue\" (focus)=\"unformat()\" (blur)=\"format()\" class=\"input-number\"\n [readonly]=\"readonly\" (ngModelChange)=\"onValueChange($event)\" />\n", styles: [":host{display:flex}:host input{width:100%;border:0;background-color:transparent}\n"] }]
|
|
178
178
|
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { scale: [{
|
|
179
179
|
type: Input
|
|
180
180
|
}], precision: [{
|
|
@@ -192,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
192
192
|
}], classifications: [{
|
|
193
193
|
type: Input
|
|
194
194
|
}] } });
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMvc3JjL2xpYi9lbGVtZW50cy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMvc3JjL2xpYi9lbGVtZW50cy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEksT0FBTyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFFckU7Ozs7Ozs7O0dBUUc7QUFvQkgsTUFBTSxPQUFPLGVBQWU7SUFVMUI7O09BRUc7SUFDSCxJQUNJLEtBQUssQ0FBQyxHQUF1QjtRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRDs7T0FFRztJQUNILElBQ0ksU0FBUyxDQUFDLEdBQXVCO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNEOztPQUVHO0lBQ0gsSUFDSSxRQUFRLENBQUMsR0FBWTtRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0Q7O09BRUc7SUFDSCxJQUNJLFlBQVksQ0FBQyxHQUF1QjtRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFpQkQ7Ozs7T0FJRztJQUNILElBQWEsZUFBZSxDQUFDLGVBQXlCO1FBQ3BELElBQUksQ0FBQyxVQUFVO1lBQ2IsZUFBZSxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFKLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBVyxFQUFFLE1BQTBCLEVBQUUsTUFBMEI7UUFDMUYsTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ3hELE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDdkQsT0FBTyxHQUFHLElBQUssR0FBYyxJQUFJLEdBQUcsSUFBSyxHQUFjLENBQUM7SUFDMUQsQ0FBQztJQUVELFlBQW9CLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBaEYvQyxlQUFVLEdBQWtCLElBQUksQ0FBQztRQUlqQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLHFCQUFnQixHQUF1QixFQUFFLENBQUM7UUEyQzFDOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQWlDMUIsbUdBQW1HO1FBQ25HLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUovQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFLRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLGlCQUFpQixLQUFVLENBQUM7SUFFNUIsYUFBYSxDQUFDLEdBQVE7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUUzQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxPQUFPO1FBQ1QsQ0FBQztRQUVELGlCQUFpQjtRQUNqQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoRCw0QkFBNEI7UUFDNUIsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3BHLGtCQUFrQjtZQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEdBQUcsY0FBYyxFQUFFLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxFQUFFLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDL0UsQ0FBQztZQUNILENBQUM7WUFDRCxjQUFjO1lBQ2QsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM5RSxDQUFDO1lBRUQsVUFBVTtZQUNWLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQzFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZGLENBQUM7cUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUN4QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdkYsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM5RyxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELHFDQUFxQztJQUM5QixNQUFNO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdHLENBQUM7SUFDSCxDQUFDO0lBRUQsa0NBQWtDO0lBQzNCLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBRUQscURBQXFEO0lBQzlDLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0SSxDQUFDOytHQXBLVSxlQUFlO21HQUFmLGVBQWUsdVFBYmY7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQy9CSCwrTEFFQSw0SURlWSxXQUFXOzs0RkFnQlYsZUFBZTtrQkFuQjNCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFdBQVcsQ0FBQyxhQUdYO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3FGQWdCRyxLQUFLO3NCQURSLEtBQUs7Z0JBV0YsU0FBUztzQkFEWixLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSztnQkFXRixZQUFZO3NCQURmLEtBQUs7Z0JBVUcsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT08sZUFBZTtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENsYXNzaWZpY2F0aW9uLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlscyB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgRmlsZVNpemVQaXBlLCBMb2NhbGVOdW1iZXJQaXBlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5cbi8qKlxuICogQ3JlYXRlcyBmb3JtIGlucHV0IGZvciBudW1iZXIgdmFsdWVzLlxuICpcbiAqIEltcGxlbWVudHMgYENvbnRyb2xWYWx1ZUFjY2Vzc29yYCBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoaW4gQW5ndWxhciBmb3Jtcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHl1di1udW1iZXIgW3NjYWxlXT1cIjJcIj48L3l1di1udW1iZXI+XG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtbnVtYmVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL251bWJlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE51bWJlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE51bWJlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgdmFsdWU/OiBudW1iZXI7XG4gIGlubmVyVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBfc2NhbGU/OiBudW1iZXI7XG4gIF9wcmVjaXNpb24/OiBudW1iZXI7XG4gIF9wYXR0ZXJuPzogc3RyaW5nO1xuICBfZ3JvdXBpbmcgPSBmYWxzZTtcbiAgdmFsaWRhdGlvbkVycm9yczogVmFsaWRhdGlvbkVycm9yc1tdID0gW107XG4gIG51bWJlclBpcGU6IExvY2FsZU51bWJlclBpcGUgfCBGaWxlU2l6ZVBpcGU7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBkZWNpbWFsIHBsYWNlc1xuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHNjYWxlKHZhbDogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fc2NhbGUgPSBNYXRoLm1pbih2YWwgfHwgMCwgMzApO1xuICB9XG4gIGdldCBzY2FsZSgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9zY2FsZTtcbiAgfVxuICAvKipcbiAgICogT3ZlcmFsbCBhbW91bnQgb2YgZGlnaXRzIGFsbG93ZWQgKGluY2x1ZGluZyBkZWNpbWFsIHBsYWNlcylcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBwcmVjaXNpb24odmFsOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9wcmVjaXNpb24gPSBNYXRoLm1pbih2YWwgfHwgMTAwLCAxMDApO1xuICB9XG4gIGdldCBwcmVjaXNpb24oKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcHJlY2lzaW9uO1xuICB9XG4gIC8qKlxuICAgKiAgU2V0IHRvIHRydWUgdG8gZ3JvdXAgbnVtYmVyIGJ5IHBhdHRlcm5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBncm91cGluZyh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9ncm91cGluZyA9IHZhbCA/PyB0cnVlO1xuICB9XG4gIGdldCBncm91cGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZ3JvdXBpbmc7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBwYXR0ZXJuIHRvIGdyb3VwIG51bWJlciB2YWx1ZSBieVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGdyb3VwUGF0dGVybih2YWw6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3BhdHRlcm4gPSB2YWw7XG4gIH1cbiAgZ2V0IGdyb3VwUGF0dGVybigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9wYXR0ZXJuO1xuICB9XG4gIC8qKlxuICAgKiBXaWxsIHByZXZlbnQgdGhlIGlucHV0IGZyb20gYmVpbmcgY2hhbmdlZCAoZGVmYXVsdDogZmFsc2UpXG4gICAqL1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBzZXQgbWluaW11bSBpbnB1dCB2YWx1ZVxuICAgKi9cbiAgQElucHV0KCkgbWluVmFsdWU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIHNldCBtYXhpbXVtIGlucHV0IHZhbHVlXG4gICAqXG4gICAqL1xuICBASW5wdXQoKSBtYXhWYWx1ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogY2xhc3NpZmljYXRpb24gcHJvcGVydHkgYWRkcyBzb21lIHNlbWFudGljcyB0byB0aGUgdmFsdWUgb2YgdGhpcyBjb21wb25lbnQuXG4gICAqIElmIHlvdSBwcm92aWRlIGEgdmFsdWUgb2YgYGZpbGVzaXplYCBudW1iZXJzIHR5cGVkIGludG8gdGhlIGNvbnRyb2wgd2lsbCBiZVxuICAgKiBoYW5kbGVkIGxpa2UgZmlsZSBzaXplcyAoY2FsY3VsYXRlcyBkaWZmZXJudCB1bml0cylcbiAgICovXG4gIEBJbnB1dCgpIHNldCBjbGFzc2lmaWNhdGlvbnMoY2xhc3NpZmljYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMubnVtYmVyUGlwZSA9XG4gICAgICBjbGFzc2lmaWNhdGlvbnMgJiYgY2xhc3NpZmljYXRpb25zLmluY2x1ZGVzKENsYXNzaWZpY2F0aW9uLk5VTUJFUl9GSUxFU0laRSkgPyBuZXcgRmlsZVNpemVQaXBlKHRoaXMudHJhbnNsYXRlKSA6IG5ldyBMb2NhbGVOdW1iZXJQaXBlKHRoaXMudHJhbnNsYXRlKTtcbiAgfVxuXG4gIHN0YXRpYyBiZXR3ZWVuVHdvTnVtYmVycyh2YWw6IG51bWJlciwgbWluVmFsOiBudW1iZXIgfCB1bmRlZmluZWQsIG1heFZhbDogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWluID0gIVV0aWxzLmlzRW1wdHkobWluVmFsKSA/IG1pblZhbCA6IC1JbmZpbml0eTtcbiAgICBjb25zdCBtYXggPSAhVXRpbHMuaXNFbXB0eShtYXhWYWwpID8gbWF4VmFsIDogSW5maW5pdHk7XG4gICAgcmV0dXJuIHZhbCA+PSAobWluIGFzIG51bWJlcikgJiYgdmFsIDw9IChtYXggYXMgbnVtYmVyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgdGhpcy5udW1iZXJQaXBlID0gbmV3IExvY2FsZU51bWJlclBpcGUodGhpcy50cmFuc2xhdGUpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSAhPSBudWxsID8gdmFsdWUgOiBudWxsO1xuICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlICE9IG51bGwgPyB0aGlzLm51bWJlclBpcGUubnVtYmVyVG9TdHJpbmcodmFsdWUsIHRoaXMuZ3JvdXBpbmcsIHRoaXMuZ3JvdXBQYXR0ZXJuLCB0aGlzLnNjYWxlKSA6IG51bGw7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICByZWdpc3Rlck9uVG91Y2hlZCgpOiB2b2lkIHt9XG5cbiAgb25WYWx1ZUNoYW5nZShldnQ6IGFueSkge1xuICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdO1xuXG4gICAgaWYgKFV0aWxzLmlzRW1wdHkoZXZ0KSkge1xuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHZhbGlkYXRlIGlucHV0XG4gICAgY29uc3QgdmFsID0gdGhpcy5udW1iZXJQaXBlLnN0cmluZ1RvTnVtYmVyKGV2dCk7XG4gICAgLy8gZ2VuZXJhbCBudW1iZXIgdmFsaWRhdGlvblxuICAgIGlmIChpc05hTih2YWwpIHx8IHR5cGVvZiB2YWwgIT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaCh7IGtleTogJ251bWJlcicgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNwbGl0ID0gZXZ0LnJlcGxhY2VBbGwodGhpcy5udW1iZXJQaXBlLnNlcGFyYXRvciwgJycpLnNwbGl0KHRoaXMubnVtYmVyUGlwZS5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgICAgIC8vIGNoZWNrIHByZWNpc2lvblxuICAgICAgaWYgKHRoaXMucHJlY2lzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgcHJlUG9pbnREaWdpdHMgPSB0aGlzLnByZWNpc2lvbiAtICh0aGlzLnNjYWxlIHx8IDApO1xuICAgICAgICBpZiAoc3BsaXRbMF0/Lmxlbmd0aCA+IHByZVBvaW50RGlnaXRzKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBrZXk6ICdwcmVjaXNpb24nLCBwYXJhbXM6IHsgcHJlUG9pbnREaWdpdHMgfSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gY2hlY2sgc2NhbGVcbiAgICAgIGlmICh0aGlzLnNjYWxlICYmIHNwbGl0WzFdPy5sZW5ndGggPiB0aGlzLnNjYWxlKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsga2V5OiAnc2NhbGUnLCBwYXJhbXM6IHsgc2NhbGU6IHRoaXMuc2NhbGUgfSB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gbWluIG1heFxuICAgICAgaWYgKCFOdW1iZXJDb21wb25lbnQuYmV0d2VlblR3b051bWJlcnModmFsLCB0aGlzLm1pblZhbHVlLCB0aGlzLm1heFZhbHVlKSkge1xuICAgICAgICBpZiAoVXRpbHMuaXNFbXB0eSh0aGlzLm1pblZhbHVlKSkge1xuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsga2V5OiAnbWF4dmFsdWUnLCBwYXJhbXM6IHsgbWF4VmFsdWU6IHRoaXMubWF4VmFsdWUgfSB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChVdGlscy5pc0VtcHR5KHRoaXMubWF4VmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBrZXk6ICdtaW52YWx1ZScsIHBhcmFtczogeyBtaW5WYWx1ZTogdGhpcy5taW5WYWx1ZSB9IH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsga2V5OiAnbWlubWF4JywgcGFyYW1zOiB7IG1pblZhbHVlOiB0aGlzLm1pblZhbHVlLCBtYXhWYWx1ZTogdGhpcy5tYXhWYWx1ZSB9IH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy52YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIC8vIGNhbGxlZCB3aGVuIHRoZSBpbnB1dCBsb29zZXMgZm9jdXNcbiAgcHVibGljIGZvcm1hdCgpIHtcbiAgICBpZiAoIXRoaXMucmVhZG9ubHkgJiYgdHlwZW9mIHRoaXMudmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHRoaXMubnVtYmVyUGlwZS5udW1iZXJUb1N0cmluZyh0aGlzLnZhbHVlLCB0aGlzLmdyb3VwaW5nLCB0aGlzLmdyb3VwUGF0dGVybiwgdGhpcy5zY2FsZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gY2FsbGVkIHdoZW4gdGhlIGlucHV0IGdldCBmb2N1c1xuICBwdWJsaWMgdW5mb3JtYXQoKSB7XG4gICAgaWYgKCF0aGlzLnJlYWRvbmx5ICYmIHR5cGVvZiB0aGlzLnZhbHVlID09PSAnbnVtYmVyJyAmJiB0aGlzLnZhbGlkYXRpb25FcnJvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB0aGlzLm51bWJlclBpcGUudHJhbnNmb3JtKHRoaXMudmFsdWUsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvLyByZXR1cm5zIG51bGwgd2hlbiB2YWxpZCBlbHNlIHRoZSB2YWxpZGF0aW9uIG9iamVjdFxuICBwdWJsaWMgdmFsaWRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPyBVdGlscy5hcnJheVRvT2JqZWN0KHRoaXMudmFsaWRhdGlvbkVycm9ycywgJ2tleScsIChlcnIpID0+ICh7IHZhbGlkOiBmYWxzZSwgLi4uZXJyIH0pKSA6IG51bGw7XG4gIH1cbn1cbiIsIjxpbnB1dCB0eXBlPVwic3RyaW5nXCIgWyhuZ01vZGVsKV09XCJpbm5lclZhbHVlXCIgKGZvY3VzKT1cInVuZm9ybWF0KClcIiAoYmx1cik9XCJmb3JtYXQoKVwiIGNsYXNzPVwiaW5wdXQtbnVtYmVyXCJcbiAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgLz5cbiJdfQ==
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMvc3JjL2xpYi9lbGVtZW50cy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMvc3JjL2xpYi9lbGVtZW50cy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEksT0FBTyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFFckU7Ozs7Ozs7O0dBUUc7QUFvQkgsTUFBTSxPQUFPLGVBQWU7SUFVMUI7O09BRUc7SUFDSCxJQUNJLEtBQUssQ0FBQyxHQUF1QjtRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRDs7T0FFRztJQUNILElBQ0ksU0FBUyxDQUFDLEdBQXVCO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxD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aUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQy9CSCwrTEFFQSwySURlWSxXQUFXOzs0RkFnQlYsZUFBZTtrQkFuQjNCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFdBQVcsQ0FBQyxhQUdYO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3FGQWdCRyxLQUFLO3NCQURSLEtBQUs7Z0JBV0YsU0FBUztzQkFEWixLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSztnQkFXRixZQUFZO3NCQURmLEtBQUs7Z0JBVUcsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT08sZUFBZTtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENsYXNzaWZpY2F0aW9uLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlscyB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgRmlsZVNpemVQaXBlLCBMb2NhbGVOdW1iZXJQaXBlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5cbi8qKlxuICogQ3JlYXRlcyBmb3JtIGlucHV0IGZvciBudW1iZXIgdmFsdWVzLlxuICpcbiAqIEltcGxlbWVudHMgYENvbnRyb2xWYWx1ZUFjY2Vzc29yYCBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoaW4gQW5ndWxhciBmb3Jtcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHl1di1udW1iZXIgW3NjYWxlXT1cIjJcIj48L3l1di1udW1iZXI+XG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtbnVtYmVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL251bWJlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE51bWJlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE51bWJlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgdmFsdWU/OiBudW1iZXI7XG4gIGlubmVyVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBfc2NhbGU/OiBudW1iZXI7XG4gIF9wcmVjaXNpb24/OiBudW1iZXI7XG4gIF9wYXR0ZXJuPzogc3RyaW5nO1xuICBfZ3JvdXBpbmcgPSBmYWxzZTtcbiAgdmFsaWRhdGlvbkVycm9yczogVmFsaWRhdGlvbkVycm9yc1tdID0gW107XG4gIG51bWJlclBpcGU6IExvY2FsZU51bWJlclBpcGUgfCBGaWxlU2l6ZVBpcGU7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBkZWNpbWFsIHBsYWNlc1xuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHNjYWxlKHZhbDogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fc2NhbGUgPSBNYXRoLm1pbih2YWwgfHwgMCwgMzApO1xuICB9XG4gIGdldCBzY2FsZSgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9zY2FsZTtcbiAgfVxuICAvKipcbiAgICogT3ZlcmFsbCBhbW91bnQgb2YgZGlnaXRzIGFsbG93ZWQgKGluY2x1ZGluZyBkZWNpbWFsIHBsYWNlcylcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBwcmVjaXNpb24odmFsOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9wcmVjaXNpb24gPSBNYXRoLm1pbih2YWwgfHwgMTAwLCAxMDApO1xuICB9XG4gIGdldCBwcmVjaXNpb24oKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcHJlY2lzaW9uO1xuICB9XG4gIC8qKlxuICAgKiAgU2V0IHRvIHRydWUgdG8gZ3JvdXAgbnVtYmVyIGJ5IHBhdHRlcm5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBncm91cGluZyh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9ncm91cGluZyA9IHZhbCA/PyB0cnVlO1xuICB9XG4gIGdldCBncm91cGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZ3JvdXBpbmc7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBwYXR0ZXJuIHRvIGdyb3VwIG51bWJlciB2YWx1ZSBieVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGdyb3VwUGF0dGVybih2YWw6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3BhdHRlcm4gPSB2YWw7XG4gIH1cbiAgZ2V0IGdyb3VwUGF0dGVybigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9wYXR0ZXJuO1xuICB9XG4gIC8qKlxuICAgKiBXaWxsIHByZXZlbnQgdGhlIGlucHV0IGZyb20gYmVpbmcgY2hhbmdlZCAoZGVmYXVsdDogZmFsc2UpXG4gICAqL1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBzZXQgbWluaW11bSBpbnB1dCB2YWx1ZVxuICAgKi9cbiAgQElucHV0KCkgbWluVmFsdWU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIHNldCBtYXhpbXVtIGlucHV0IHZhbHVlXG4gICAqXG4gICAqL1xuICBASW5wdXQoKSBtYXhWYWx1ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogY2xhc3NpZmljYXRpb24gcHJvcGVydHkgYWRkcyBzb21lIHNlbWFudGljcyB0byB0aGUgdmFsdWUgb2YgdGhpcyBjb21wb25lbnQuXG4gICAqIElmIHlvdSBwcm92aWRlIGEgdmFsdWUgb2YgYGZpbGVzaXplYCBudW1iZXJzIHR5cGVkIGludG8gdGhlIGNvbnRyb2wgd2lsbCBiZVxuICAgKiBoYW5kbGVkIGxpa2UgZmlsZSBzaXplcyAoY2FsY3VsYXRlcyBkaWZmZXJudCB1bml0cylcbiAgICovXG4gIEBJbnB1dCgpIHNldCBjbGFzc2lmaWNhdGlvbnMoY2xhc3NpZmljYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMubnVtYmVyUGlwZSA9XG4gICAgICBjbGFzc2lmaWNhdGlvbnMgJiYgY2xhc3NpZmljYXRpb25zLmluY2x1ZGVzKENsYXNzaWZpY2F0aW9uLk5VTUJFUl9GSUxFU0laRSkgPyBuZXcgRmlsZVNpemVQaXBlKHRoaXMudHJhbnNsYXRlKSA6IG5ldyBMb2NhbGVOdW1iZXJQaXBlKHRoaXMudHJhbnNsYXRlKTtcbiAgfVxuXG4gIHN0YXRpYyBiZXR3ZWVuVHdvTnVtYmVycyh2YWw6IG51bWJlciwgbWluVmFsOiBudW1iZXIgfCB1bmRlZmluZWQsIG1heFZhbDogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWluID0gIVV0aWxzLmlzRW1wdHkobWluVmFsKSA/IG1pblZhbCA6IC1JbmZpbml0eTtcbiAgICBjb25zdCBtYXggPSAhVXRpbHMuaXNFbXB0eShtYXhWYWwpID8gbWF4VmFsIDogSW5maW5pdHk7XG4gICAgcmV0dXJuIHZhbCA+PSAobWluIGFzIG51bWJlcikgJiYgdmFsIDw9IChtYXggYXMgbnVtYmVyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgdGhpcy5udW1iZXJQaXBlID0gbmV3IExvY2FsZU51bWJlclBpcGUodGhpcy50cmFuc2xhdGUpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSAhPSBudWxsID8gdmFsdWUgOiBudWxsO1xuICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlICE9IG51bGwgPyB0aGlzLm51bWJlclBpcGUubnVtYmVyVG9TdHJpbmcodmFsdWUsIHRoaXMuZ3JvdXBpbmcsIHRoaXMuZ3JvdXBQYXR0ZXJuLCB0aGlzLnNjYWxlKSA6IG51bGw7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICByZWdpc3Rlck9uVG91Y2hlZCgpOiB2b2lkIHt9XG5cbiAgb25WYWx1ZUNoYW5nZShldnQ6IGFueSkge1xuICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdO1xuXG4gICAgaWYgKFV0aWxzLmlzRW1wdHkoZXZ0KSkge1xuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHZhbGlkYXRlIGlucHV0XG4gICAgY29uc3QgdmFsID0gdGhpcy5udW1iZXJQaXBlLnN0cmluZ1RvTnVtYmVyKGV2dCk7XG4gICAgLy8gZ2VuZXJhbCBudW1iZXIgdmFsaWRhdGlvblxuICAgIGlmIChpc05hTih2YWwpIHx8IHR5cGVvZiB2YWwgIT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaCh7IGtleTogJ251bWJlcicgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNwbGl0ID0gZXZ0LnJlcGxhY2VBbGwodGhpcy5udW1iZXJQaXBlLnNlcGFyYXRvciwgJycpLnNwbGl0KHRoaXMubnVtYmVyUGlwZS5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgICAgIC8vIGNoZWNrIHByZWNpc2lvblxuICAgICAgaWYgKHRoaXMucHJlY2lzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgcHJlUG9pbnREaWdpdHMgPSB0aGlzLnByZWNpc2lvbiAtICh0aGlzLnNjYWxlIHx8IDApO1xuICAgICAgICBpZiAoc3BsaXRbMF0/Lmxlbmd0aCA+IHByZVBvaW50RGlnaXRzKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBrZXk6ICdwcmVjaXNpb24nLCBwYXJhbXM6IHsgcHJlUG9pbnREaWdpdHMgfSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gY2hlY2sgc2NhbGVcbiAgICAgIGlmICh0aGlzLnNjYWxlICYmIHNwbGl0WzFdPy5sZW5ndGggPiB0aGlzLnNjYWxlKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsga2V5OiAnc2NhbGUnLCBwYXJhbXM6IHsgc2NhbGU6IHRoaXMuc2NhbGUgfSB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gbWluIG1heFxuICAgICAgaWYgKCFOdW1iZXJDb21wb25lbnQuYmV0d2VlblR3b051bWJlcnModmFsLCB0aGlzLm1pblZhbHVlLCB0aGlzLm1heFZhbHVlKSkge1xuICAgICAgICBpZiAoVXRpbHMuaXNFbXB0eSh0aGlzLm1pblZhbHVlKSkge1xuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsga2V5OiAnbWF4dmFsdWUnLCBwYXJhbXM6IHsgbWF4VmFsdWU6IHRoaXMubWF4VmFsdWUgfSB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChVdGlscy5pc0VtcHR5KHRoaXMubWF4VmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBrZXk6ICdtaW52YWx1ZScsIHBhcmFtczogeyBtaW5WYWx1ZTogdGhpcy5taW5WYWx1ZSB9IH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsga2V5OiAnbWlubWF4JywgcGFyYW1zOiB7IG1pblZhbHVlOiB0aGlzLm1pblZhbHVlLCBtYXhWYWx1ZTogdGhpcy5tYXhWYWx1ZSB9IH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy52YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIC8vIGNhbGxlZCB3aGVuIHRoZSBpbnB1dCBsb29zZXMgZm9jdXNcbiAgcHVibGljIGZvcm1hdCgpIHtcbiAgICBpZiAoIXRoaXMucmVhZG9ubHkgJiYgdHlwZW9mIHRoaXMudmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHRoaXMubnVtYmVyUGlwZS5udW1iZXJUb1N0cmluZyh0aGlzLnZhbHVlLCB0aGlzLmdyb3VwaW5nLCB0aGlzLmdyb3VwUGF0dGVybiwgdGhpcy5zY2FsZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gY2FsbGVkIHdoZW4gdGhlIGlucHV0IGdldCBmb2N1c1xuICBwdWJsaWMgdW5mb3JtYXQoKSB7XG4gICAgaWYgKCF0aGlzLnJlYWRvbmx5ICYmIHR5cGVvZiB0aGlzLnZhbHVlID09PSAnbnVtYmVyJyAmJiB0aGlzLnZhbGlkYXRpb25FcnJvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmlubmVyVmFsdWUgPSB0aGlzLm51bWJlclBpcGUudHJhbnNmb3JtKHRoaXMudmFsdWUsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvLyByZXR1cm5zIG51bGwgd2hlbiB2YWxpZCBlbHNlIHRoZSB2YWxpZGF0aW9uIG9iamVjdFxuICBwdWJsaWMgdmFsaWRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPyBVdGlscy5hcnJheVRvT2JqZWN0KHRoaXMudmFsaWRhdGlvbkVycm9ycywgJ2tleScsIChlcnIpID0+ICh7IHZhbGlkOiBmYWxzZSwgLi4uZXJyIH0pKSA6IG51bGw7XG4gIH1cbn1cbiIsIjxpbnB1dCB0eXBlPVwic3RyaW5nXCIgWyhuZ01vZGVsKV09XCJpbm5lclZhbHVlXCIgKGZvY3VzKT1cInVuZm9ybWF0KClcIiAoYmx1cik9XCJmb3JtYXQoKVwiIGNsYXNzPVwiaW5wdXQtbnVtYmVyXCJcbiAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgLz5cbiJdfQ==
|
|
@@ -140,7 +140,7 @@ export class NumberRangeComponent {
|
|
|
140
140
|
useExisting: forwardRef(() => NumberRangeComponent),
|
|
141
141
|
multi: true
|
|
142
142
|
}
|
|
143
|
-
], ngImport: i0, template: "<form class=\"yuv-number-range\" [formGroup]=\"rangeForm\">\n @if(searchOption === 'gtelte'){\n <yuv-number\n class=\"first\"\n [readonly]=\"readonly\"\n [scale]=\"scale\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValueFrom\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n ></yuv-number>}\n\n <yvc-dropdown\n class=\"no-trigger\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [disabled]=\"readonly\"\n [disableClearButton]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-number\n [scale]=\"scale\"\n [readonly]=\"readonly\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValue\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n >\n </yuv-number>\n</form>\n", styles: [":host
|
|
143
|
+
], ngImport: i0, template: "<form class=\"yuv-number-range\" [formGroup]=\"rangeForm\">\n @if(searchOption === 'gtelte'){\n <yuv-number\n class=\"first\"\n [readonly]=\"readonly\"\n [scale]=\"scale\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValueFrom\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n ></yuv-number>}\n\n <yvc-dropdown\n class=\"no-trigger\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [disabled]=\"readonly\"\n [disableClearButton]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-number\n [scale]=\"scale\"\n [readonly]=\"readonly\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValue\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n >\n </yuv-number>\n</form>\n", styles: [":host>form{display:flex;flex-flow:row nowrap;gap:3px}:host>form yuv-number{flex:1 1 auto}:host>form yvc-dropdown{--yvc-form-element-border-color: var(--text-color-hint);--yvc-form-element-focus-border-color: var(--color-accent);padding:0;min-width:auto;border-radius:2px;background-color:var(--list-item-hover-background)}:host>form yvc-dropdown:hover{background-color:var(--list-item-selected-background)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: NumberComponent, selector: "yuv-number", inputs: ["scale", "precision", "grouping", "groupPattern", "readonly", "minValue", "maxValue", "classifications"] }, { kind: "ngmodule", type: YvcDropdownModule }, { kind: "component", type: i1.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"], outputs: ["onDropdownOptionsClose"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
144
144
|
}
|
|
145
145
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberRangeComponent, decorators: [{
|
|
146
146
|
type: Component,
|
|
@@ -155,7 +155,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
155
155
|
useExisting: forwardRef(() => NumberRangeComponent),
|
|
156
156
|
multi: true
|
|
157
157
|
}
|
|
158
|
-
], template: "<form class=\"yuv-number-range\" [formGroup]=\"rangeForm\">\n @if(searchOption === 'gtelte'){\n <yuv-number\n class=\"first\"\n [readonly]=\"readonly\"\n [scale]=\"scale\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValueFrom\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n ></yuv-number>}\n\n <yvc-dropdown\n class=\"no-trigger\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [disabled]=\"readonly\"\n [disableClearButton]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-number\n [scale]=\"scale\"\n [readonly]=\"readonly\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValue\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n >\n </yuv-number>\n</form>\n", styles: [":host
|
|
158
|
+
], template: "<form class=\"yuv-number-range\" [formGroup]=\"rangeForm\">\n @if(searchOption === 'gtelte'){\n <yuv-number\n class=\"first\"\n [readonly]=\"readonly\"\n [scale]=\"scale\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValueFrom\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n ></yuv-number>}\n\n <yvc-dropdown\n class=\"no-trigger\"\n [(ngModel)]=\"searchOption\"\n (ngModelChange)=\"onValueChange()\"\n [disabled]=\"readonly\"\n [disableClearButton]=\"true\"\n [ngModelOptions]=\"{ standalone: true }\"\n [options]=\"availableSearchOptions\"\n ></yvc-dropdown>\n\n <yuv-number\n [scale]=\"scale\"\n [readonly]=\"readonly\"\n [precision]=\"precision\"\n [grouping]=\"grouping\"\n [groupPattern]=\"pattern\"\n formControlName=\"numberValue\"\n [classifications]=\"classifications\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n >\n </yuv-number>\n</form>\n", styles: [":host>form{display:flex;flex-flow:row nowrap;gap:3px}:host>form yuv-number{flex:1 1 auto}:host>form yvc-dropdown{--yvc-form-element-border-color: var(--text-color-hint);--yvc-form-element-focus-border-color: var(--color-accent);padding:0;min-width:auto;border-radius:2px;background-color:var(--list-item-hover-background)}:host>form yvc-dropdown:hover{background-color:var(--list-item-selected-background)}\n"] }]
|
|
159
159
|
}], ctorParameters: () => [], propDecorators: { scale: [{
|
|
160
160
|
type: Input
|
|
161
161
|
}], precision: [{
|
|
@@ -173,4 +173,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
173
173
|
}], maxValue: [{
|
|
174
174
|
type: Input
|
|
175
175
|
}] } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXJhbmdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMvc3JjL2xpYi9lbGVtZW50cy9udW1iZXItcmFuZ2UvbnVtYmVyLXJhbmdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMvc3JjL2xpYi9lbGVtZW50cy9udW1iZXItcmFuZ2UvbnVtYmVyLXJhbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUVMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBRWpCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFN0Q7Ozs7Ozs7O0dBUUc7QUFvQkgsTUFBTSxPQUFPLG9CQUFvQjtJQXdEL0I7UUEvQ0E7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSzFCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQjs7OztXQUlHO1FBQ00sb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFXakMsY0FBUyxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDdEMsV0FBVyxF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QUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkMxQ0gsc2lDQXNDQSxnaUJEVlksWUFBWSwrQkFBRSxlQUFlLHlLQUFFLGlCQUFpQixvTkFBRSxXQUFXLG1tQkFBRSxtQkFBbUI7OzRGQWdCakYsb0JBQW9CO2tCQW5CaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUMsYUFHbEY7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0RBTVEsS0FBSztzQkFBYixLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFPRyxlQUFlO3NCQUF2QixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybXNNb2R1bGUsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gIFVudHlwZWRGb3JtR3JvdXAsXG4gIFZhbGlkYXRvclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPcGVyYXRvciwgT3BlcmF0b3JMYWJlbCwgUmFuZ2VWYWx1ZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgWXZjRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbnVtYmVyL251bWJlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIENyZWF0ZXMgZm9ybSBpbnB1dCBmb3IgcmFuZ2VzIG9mIG51bWVyaWMgdmFsdWVzLlxuICpcbiAqIEltcGxlbWVudHMgYENvbnRyb2xWYWx1ZUFjY2Vzc29yYCBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoaW4gQW5ndWxhciBmb3Jtcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHl1di1udW1iZXItcmFuZ2UgW3NjYWxlXT1cIjJcIj48L3l1di1udW1iZXItcmFuZ2U+XG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtbnVtYmVyLXJhbmdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTnVtYmVyQ29tcG9uZW50LCBZdmNEcm9wZG93bk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbnVtYmVyLXJhbmdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTnVtYmVyUmFuZ2VDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOdW1iZXJSYW5nZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJSYW5nZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICAvKipcbiAgICogTnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzXG4gICAqL1xuICBASW5wdXQoKSBzY2FsZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIE92ZXJhbGwgYW1vdW50IG9mIGRpZ2l0cyBhbGxvd2VkIChpbmNsdWRpbmcgZGVjaW1hbCBwbGFjZXMpXG4gICAqL1xuICBASW5wdXQoKSBwcmVjaXNpb24/OiBudW1iZXI7XG4gIC8qKlxuICAgKiAgU2V0IHRvIHRydWUgdG8gZ3JvdXAgbnVtYmVyIGJ5IHBhdHRlcm5cbiAgICovXG4gIEBJbnB1dCgpIGdyb3VwaW5nID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgcGF0dGVybiB0byBncm91cCBudW1iZXIgdmFsdWUgYnlcbiAgICovXG4gIEBJbnB1dCgpIHBhdHRlcm4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaWxsIHByZXZlbnQgdGhlIGlucHV0IGZyb20gYmVpbmcgY2hhbmdlZCAoZGVmYXVsdDogZmFsc2UpXG4gICAqL1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBjbGFzc2lmaWNhdGlvbiBwcm9wZXJ0eSBhZGRzIHNvbWUgc2VtYW50aWNzIHRvIHRoZSB2YWx1ZSBvZiB0aGlzIGNvbXBvbmVudC5cbiAgICogSWYgeW91IHByb3ZpZGUgYSB2YWx1ZSBvZiBgZmlsZXNpemVgIG51bWJlcnMgdHlwZWQgaW50byB0aGUgY29udHJvbCB3aWxsIGJlXG4gICAqIGhhbmRsZWQgbGlrZSBmaWxlIHNpemVzIChjYWxjdWxhdGVzIGRpZmZlcm50IHVuaXRzKVxuICAgKi9cbiAgQElucHV0KCkgY2xhc3NpZmljYXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICAvKipcbiAgICogc2V0IG1pbmltdW0gaW5wdXQgdmFsdWVcbiAgICovXG4gIEBJbnB1dCgpIG1pblZhbHVlPzogbnVtYmVyO1xuICAvKipcbiAgICogc2V0IG1heGltdW0gaW5wdXQgdmFsdWVcbiAgICpcbiAgICovXG4gIEBJbnB1dCgpIG1heFZhbHVlPzogbnVtYmVyO1xuXG4gIHB1YmxpYyByYW5nZUZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgbnVtYmVyVmFsdWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKSxcbiAgICBudW1iZXJWYWx1ZUZyb206IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKVxuICB9KTtcblxuICB2YWx1ZT86IFJhbmdlVmFsdWU7XG4gIHByaXZhdGUgaXNWYWxpZCA9IHRydWU7XG5cbiAgLy8gb3B0aW9ucyBmb3Igc2VhcmNoIHNpdHVhdGlvblxuICBwdWJsaWMgYXZhaWxhYmxlU2VhcmNoT3B0aW9ucyA9IFtcbiAgICB7IGxhYmVsOiBPcGVyYXRvckxhYmVsLkVRVUFMLCB2YWx1ZTogT3BlcmF0b3IuRVFVQUwgfSxcbiAgICB7IGxhYmVsOiBPcGVyYXRvckxhYmVsLkdSRUFURVJfT1JfRVFVQUwsIHZhbHVlOiBPcGVyYXRvci5HUkVBVEVSX09SX0VRVUFMIH0sXG4gICAgeyBsYWJlbDogT3BlcmF0b3JMYWJlbC5MRVNTX09SX0VRVUFMLCB2YWx1ZTogT3BlcmF0b3IuTEVTU19PUl9FUVVBTCB9LFxuICAgIHsgbGFiZWw6IE9wZXJhdG9yTGFiZWwuSU5URVJWQUxfSU5DTFVERV9CT1RILCB2YWx1ZTogT3BlcmF0b3IuSU5URVJWQUxfSU5DTFVERV9CT1RIIH1cbiAgXTtcbiAgLy8gdGhlIHNlbGVjdGVkIHNlYXJjaCBvcHRpb25cbiAgcHVibGljIHNlYXJjaE9wdGlvbiA9IHRoaXMuYXZhaWxhYmxlU2VhcmNoT3B0aW9uc1sxXS52YWx1ZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnJhbmdlRm9ybS52YWx1ZUNoYW5nZXMuZm9yRWFjaCgoKSA9PiB7XG4gICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBSYW5nZVZhbHVlKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlICYmICh2YWx1ZS5maXJzdFZhbHVlICE9IG51bGwgfHwgdmFsdWUuc2Vjb25kVmFsdWUgIT0gbnVsbCkpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gdGhpcy5hdmFpbGFibGVTZWFyY2hPcHRpb25zLmZpbmQoKG8pID0+IG8udmFsdWUgPT09IHZhbHVlLm9wZXJhdG9yKTtcbiAgICAgIHRoaXMuc2VhcmNoT3B0aW9uID0gbWF0Y2ggPyBtYXRjaC52YWx1ZSA6IHRoaXMuYXZhaWxhYmxlU2VhcmNoT3B0aW9uc1swXS52YWx1ZTtcblxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgaWYgKHZhbHVlLnNlY29uZFZhbHVlID09IG51bGwpIHtcbiAgICAgICAgdGhpcy5yYW5nZUZvcm0uc2V0VmFsdWUoe1xuICAgICAgICAgIG51bWJlclZhbHVlRnJvbTogbnVsbCxcbiAgICAgICAgICBudW1iZXJWYWx1ZTogdmFsdWUuZmlyc3RWYWx1ZSAhPSBudWxsID8gdmFsdWUuZmlyc3RWYWx1ZSA6IG51bGxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJhbmdlRm9ybS5zZXRWYWx1ZSh7XG4gICAgICAgICAgbnVtYmVyVmFsdWVGcm9tOiB2YWx1ZS5maXJzdFZhbHVlICE9IG51bGwgPyB2YWx1ZS5maXJzdFZhbHVlIDogbnVsbCxcbiAgICAgICAgICBudW1iZXJWYWx1ZTogdmFsdWUuc2Vjb25kVmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoT3B0aW9uID0gdGhpcy5hdmFpbGFibGVTZWFyY2hPcHRpb25zWzBdLnZhbHVlO1xuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMucmFuZ2VGb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge31cblxuICBvblZhbHVlQ2hhbmdlKCkge1xuICAgIHRoaXMuaXNWYWxpZCA9IHRoaXMucmFuZ2VGb3JtLnZhbGlkO1xuICAgIGlmICh0aGlzLnNlYXJjaE9wdGlvbiA9PT0gT3BlcmF0b3IuSU5URVJWQUxfSU5DTFVERV9CT1RIKSB7XG4gICAgICB0aGlzLmlzVmFsaWQgPSB0aGlzLnJhbmdlRm9ybS52YWxpZCAmJiB0aGlzLnJhbmdlRm9ybS52YWx1ZS5udW1iZXJWYWx1ZUZyb20gIT0gbnVsbCAmJiB0aGlzLnJhbmdlRm9ybS52YWx1ZS5udW1iZXJWYWx1ZSAhPSBudWxsO1xuICAgICAgdGhpcy52YWx1ZSA9ICF0aGlzLmlzVmFsaWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5zZWFyY2hPcHRpb24sXG4gICAgICAgICAgICBmaXJzdFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBzZWNvbmRWYWx1ZTogdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIG9wZXJhdG9yOiB0aGlzLnNlYXJjaE9wdGlvbixcbiAgICAgICAgICAgIGZpcnN0VmFsdWU6IHRoaXMucmFuZ2VGb3JtLnZhbHVlLm51bWJlclZhbHVlRnJvbSxcbiAgICAgICAgICAgIHNlY29uZFZhbHVlOiB0aGlzLnJhbmdlRm9ybS52YWx1ZS5udW1iZXJWYWx1ZVxuICAgICAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSAhdGhpcy5pc1ZhbGlkXG4gICAgICAgID8ge1xuICAgICAgICAgICAgb3BlcmF0b3I6IHRoaXMuc2VhcmNoT3B0aW9uLFxuICAgICAgICAgICAgZmlyc3RWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgc2Vjb25kVmFsdWU6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5zZWFyY2hPcHRpb24sXG4gICAgICAgICAgICBmaXJzdFZhbHVlOiB0aGlzLnJhbmdlRm9ybS52YWx1ZS5udW1iZXJWYWx1ZSxcbiAgICAgICAgICAgIHNlY29uZFZhbHVlOiB1bmRlZmluZWRcbiAgICAgICAgICB9O1xuICAgIH1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIC8vIHJldHVybnMgbnVsbCB3aGVuIHZhbGlkIGVsc2UgdGhlIHZhbGlkYXRpb24gb2JqZWN0XG4gIHB1YmxpYyB2YWxpZGF0ZSgpIHtcbiAgICBsZXQgZXJyOiBhbnk7XG4gICAgaWYgKHRoaXMuc2VhcmNoT3B0aW9uID09PSBPcGVyYXRvci5FUVVBTCkge1xuICAgICAgZXJyID0geyBudW1iZXI6IHsgdmFsaWQ6IGZhbHNlIH0gfTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VhcmNoT3B0aW9uID09PSBPcGVyYXRvci5JTlRFUlZBTF9JTkNMVURFX0JPVEggJiYgdGhpcy52YWx1ZT8uZmlyc3RWYWx1ZSAmJiB0aGlzLnZhbHVlPy5zZWNvbmRWYWx1ZSkge1xuICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgb24gcmFuZ2VzLCB0aGUgZmlyc3QgdmFsdWUgaXMgZWFybGllciB0aGFuIHRoZSBsYXN0XG4gICAgICB0aGlzLmlzVmFsaWQgPSB0aGlzLnZhbHVlIS5maXJzdFZhbHVlIDwgdGhpcy52YWx1ZSEuc2Vjb25kVmFsdWU7XG4gICAgICBlcnIgPSB7IG51bWJlcnJhbmdlb3JkZXI6IHsgdmFsaWQ6IGZhbHNlIH0gfTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyID0geyBudW1iZXJyYW5nZTogeyB2YWxpZDogZmFsc2UgfSB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gbnVsbCA6IGVycjtcbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJ5dXYtbnVtYmVyLXJhbmdlXCIgW2Zvcm1Hcm91cF09XCJyYW5nZUZvcm1cIj5cbiAgQGlmKHNlYXJjaE9wdGlvbiA9PT0gJ2d0ZWx0ZScpe1xuICA8eXV2LW51bWJlclxuICAgIGNsYXNzPVwiZmlyc3RcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW3NjYWxlXT1cInNjYWxlXCJcbiAgICBbcHJlY2lzaW9uXT1cInByZWNpc2lvblwiXG4gICAgW2dyb3VwaW5nXT1cImdyb3VwaW5nXCJcbiAgICBbZ3JvdXBQYXR0ZXJuXT1cInBhdHRlcm5cIlxuICAgIGZvcm1Db250cm9sTmFtZT1cIm51bWJlclZhbHVlRnJvbVwiXG4gICAgW2NsYXNzaWZpY2F0aW9uc109XCJjbGFzc2lmaWNhdGlvbnNcIlxuICAgIFttaW5WYWx1ZV09XCJtaW5WYWx1ZVwiXG4gICAgW21heFZhbHVlXT1cIm1heFZhbHVlXCJcbiAgPjwveXV2LW51bWJlcj59XG5cbiAgPHl2Yy1kcm9wZG93blxuICAgIGNsYXNzPVwibm8tdHJpZ2dlclwiXG4gICAgWyhuZ01vZGVsKV09XCJzZWFyY2hPcHRpb25cIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoKVwiXG4gICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCJcbiAgICBbZGlzYWJsZUNsZWFyQnV0dG9uXT1cInRydWVcIlxuICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgW29wdGlvbnNdPVwiYXZhaWxhYmxlU2VhcmNoT3B0aW9uc1wiXG4gID48L3l2Yy1kcm9wZG93bj5cblxuICA8eXV2LW51bWJlclxuICAgIFtzY2FsZV09XCJzY2FsZVwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbcHJlY2lzaW9uXT1cInByZWNpc2lvblwiXG4gICAgW2dyb3VwaW5nXT1cImdyb3VwaW5nXCJcbiAgICBbZ3JvdXBQYXR0ZXJuXT1cInBhdHRlcm5cIlxuICAgIGZvcm1Db250cm9sTmFtZT1cIm51bWJlclZhbHVlXCJcbiAgICBbY2xhc3NpZmljYXRpb25zXT1cImNsYXNzaWZpY2F0aW9uc1wiXG4gICAgW21pblZhbHVlXT1cIm1pblZhbHVlXCJcbiAgICBbbWF4VmFsdWVdPVwibWF4VmFsdWVcIlxuICA+XG4gIDwveXV2LW51bWJlcj5cbjwvZm9ybT5cbiJdfQ==
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXJhbmdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMvc3JjL2xpYi9lbGVtZW50cy9udW1iZXItcmFuZ2UvbnVtYmVyLXJhbmdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvZm9ybXMvc3JjL2xpYi9lbGVtZW50cy9udW1iZXItcmFuZ2UvbnVtYmVyLXJhbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUVMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBRWpCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFN0Q7Ozs7Ozs7O0dBUUc7QUFvQkgsTUFBTSxPQUFPLG9CQUFvQjtJQXdEL0I7UUEvQ0E7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSzFCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQjs7OztXQUlHO1FBQ00sb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFXakMsY0FBUyxHQUFHLElBQUksZ0JBQWdCLENBQUM7WUFDdEMsV0FBVyxF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QUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkMxQ0gsc2lDQXNDQSxpZERWWSxZQUFZLCtCQUFFLGVBQWUseUtBQUUsaUJBQWlCLG9OQUFFLFdBQVcsbW1CQUFFLG1CQUFtQjs7NEZBZ0JqRixvQkFBb0I7a0JBbkJoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxhQUdsRjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjt3REFNUSxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLGVBQWU7c0JBQXZCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3Jtc01vZHVsZSxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbiAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9wZXJhdG9yLCBPcGVyYXRvckxhYmVsLCBSYW5nZVZhbHVlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBZdmNEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuLi9udW1iZXIvbnVtYmVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQ3JlYXRlcyBmb3JtIGlucHV0IGZvciByYW5nZXMgb2YgbnVtZXJpYyB2YWx1ZXMuXG4gKlxuICogSW1wbGVtZW50cyBgQ29udHJvbFZhbHVlQWNjZXNzb3JgIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGhpbiBBbmd1bGFyIGZvcm1zLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8eXV2LW51bWJlci1yYW5nZSBbc2NhbGVdPVwiMlwiPjwveXV2LW51bWJlci1yYW5nZT5cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1udW1iZXItcmFuZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOdW1iZXJDb21wb25lbnQsIFl2Y0Ryb3Bkb3duTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9udW1iZXItcmFuZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOdW1iZXJSYW5nZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE51bWJlclJhbmdlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlclJhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZGVjaW1hbCBwbGFjZXNcbiAgICovXG4gIEBJbnB1dCgpIHNjYWxlPzogbnVtYmVyO1xuICAvKipcbiAgICogT3ZlcmFsbCBhbW91bnQgb2YgZGlnaXRzIGFsbG93ZWQgKGluY2x1ZGluZyBkZWNpbWFsIHBsYWNlcylcbiAgICovXG4gIEBJbnB1dCgpIHByZWNpc2lvbj86IG51bWJlcjtcbiAgLyoqXG4gICAqICBTZXQgdG8gdHJ1ZSB0byBncm91cCBudW1iZXIgYnkgcGF0dGVyblxuICAgKi9cbiAgQElucHV0KCkgZ3JvdXBpbmcgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSBwYXR0ZXJuIHRvIGdyb3VwIG51bWJlciB2YWx1ZSBieVxuICAgKi9cbiAgQElucHV0KCkgcGF0dGVybj86IHN0cmluZztcbiAgLyoqXG4gICAqIFdpbGwgcHJldmVudCB0aGUgaW5wdXQgZnJvbSBiZWluZyBjaGFuZ2VkIChkZWZhdWx0OiBmYWxzZSlcbiAgICovXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGNsYXNzaWZpY2F0aW9uIHByb3BlcnR5IGFkZHMgc29tZSBzZW1hbnRpY3MgdG8gdGhlIHZhbHVlIG9mIHRoaXMgY29tcG9uZW50LlxuICAgKiBJZiB5b3UgcHJvdmlkZSBhIHZhbHVlIG9mIGBmaWxlc2l6ZWAgbnVtYmVycyB0eXBlZCBpbnRvIHRoZSBjb250cm9sIHdpbGwgYmVcbiAgICogaGFuZGxlZCBsaWtlIGZpbGUgc2l6ZXMgKGNhbGN1bGF0ZXMgZGlmZmVybnQgdW5pdHMpXG4gICAqL1xuICBASW5wdXQoKSBjbGFzc2lmaWNhdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIC8qKlxuICAgKiBzZXQgbWluaW11bSBpbnB1dCB2YWx1ZVxuICAgKi9cbiAgQElucHV0KCkgbWluVmFsdWU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBzZXQgbWF4aW11bSBpbnB1dCB2YWx1ZVxuICAgKlxuICAgKi9cbiAgQElucHV0KCkgbWF4VmFsdWU/OiBudW1iZXI7XG5cbiAgcHVibGljIHJhbmdlRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBudW1iZXJWYWx1ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxuICAgIG51bWJlclZhbHVlRnJvbTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpXG4gIH0pO1xuXG4gIHZhbHVlPzogUmFuZ2VWYWx1ZTtcbiAgcHJpdmF0ZSBpc1ZhbGlkID0gdHJ1ZTtcblxuICAvLyBvcHRpb25zIGZvciBzZWFyY2ggc2l0dWF0aW9uXG4gIHB1YmxpYyBhdmFpbGFibGVTZWFyY2hPcHRpb25zID0gW1xuICAgIHsgbGFiZWw6IE9wZXJhdG9yTGFiZWwuRVFVQUwsIHZhbHVlOiBPcGVyYXRvci5FUVVBTCB9LFxuICAgIHsgbGFiZWw6IE9wZXJhdG9yTGFiZWwuR1JFQVRFUl9PUl9FUVVBTCwgdmFsdWU6IE9wZXJhdG9yLkdSRUFURVJfT1JfRVFVQUwgfSxcbiAgICB7IGxhYmVsOiBPcGVyYXRvckxhYmVsLkxFU1NfT1JfRVFVQUwsIHZhbHVlOiBPcGVyYXRvci5MRVNTX09SX0VRVUFMIH0sXG4gICAgeyBsYWJlbDogT3BlcmF0b3JMYWJlbC5JTlRFUlZBTF9JTkNMVURFX0JPVEgsIHZhbHVlOiBPcGVyYXRvci5JTlRFUlZBTF9JTkNMVURFX0JPVEggfVxuICBdO1xuICAvLyB0aGUgc2VsZWN0ZWQgc2VhcmNoIG9wdGlvblxuICBwdWJsaWMgc2VhcmNoT3B0aW9uID0gdGhpcy5hdmFpbGFibGVTZWFyY2hPcHRpb25zWzFdLnZhbHVlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMucmFuZ2VGb3JtLnZhbHVlQ2hhbmdlcy5mb3JFYWNoKCgpID0+IHtcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFJhbmdlVmFsdWUpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgJiYgKHZhbHVlLmZpcnN0VmFsdWUgIT0gbnVsbCB8fCB2YWx1ZS5zZWNvbmRWYWx1ZSAhPSBudWxsKSkge1xuICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLmF2YWlsYWJsZVNlYXJjaE9wdGlvbnMuZmluZCgobykgPT4gby52YWx1ZSA9PT0gdmFsdWUub3BlcmF0b3IpO1xuICAgICAgdGhpcy5zZWFyY2hPcHRpb24gPSBtYXRjaCA/IG1hdGNoLnZhbHVlIDogdGhpcy5hdmFpbGFibGVTZWFyY2hPcHRpb25zWzBdLnZhbHVlO1xuXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICBpZiAodmFsdWUuc2Vjb25kVmFsdWUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLnJhbmdlRm9ybS5zZXRWYWx1ZSh7XG4gICAgICAgICAgbnVtYmVyVmFsdWVGcm9tOiBudWxsLFxuICAgICAgICAgIG51bWJlclZhbHVlOiB2YWx1ZS5maXJzdFZhbHVlICE9IG51bGwgPyB2YWx1ZS5maXJzdFZhbHVlIDogbnVsbFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmFuZ2VGb3JtLnNldFZhbHVlKHtcbiAgICAgICAgICBudW1iZXJWYWx1ZUZyb206IHZhbHVlLmZpcnN0VmFsdWUgIT0gbnVsbCA/IHZhbHVlLmZpcnN0VmFsdWUgOiBudWxsLFxuICAgICAgICAgIG51bWJlclZhbHVlOiB2YWx1ZS5zZWNvbmRWYWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWFyY2hPcHRpb24gPSB0aGlzLmF2YWlsYWJsZVNlYXJjaE9wdGlvbnNbMF0udmFsdWU7XG4gICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5yYW5nZUZvcm0ucmVzZXQoKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7fVxuXG4gIG9uVmFsdWVDaGFuZ2UoKSB7XG4gICAgdGhpcy5pc1ZhbGlkID0gdGhpcy5yYW5nZUZvcm0udmFsaWQ7XG4gICAgaWYgKHRoaXMuc2VhcmNoT3B0aW9uID09PSBPcGVyYXRvci5JTlRFUlZBTF9JTkNMVURFX0JPVEgpIHtcbiAgICAgIHRoaXMuaXNWYWxpZCA9IHRoaXMucmFuZ2VGb3JtLnZhbGlkICYmIHRoaXMucmFuZ2VGb3JtLnZhbHVlLm51bWJlclZhbHVlRnJvbSAhPSBudWxsICYmIHRoaXMucmFuZ2VGb3JtLnZhbHVlLm51bWJlclZhbHVlICE9IG51bGw7XG4gICAgICB0aGlzLnZhbHVlID0gIXRoaXMuaXNWYWxpZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIG9wZXJhdG9yOiB0aGlzLnNlYXJjaE9wdGlvbixcbiAgICAgICAgICAgIGZpcnN0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHNlY29uZFZhbHVlOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgb3BlcmF0b3I6IHRoaXMuc2VhcmNoT3B0aW9uLFxuICAgICAgICAgICAgZmlyc3RWYWx1ZTogdGhpcy5yYW5nZUZvcm0udmFsdWUubnVtYmVyVmFsdWVGcm9tLFxuICAgICAgICAgICAgc2Vjb25kVmFsdWU6IHRoaXMucmFuZ2VGb3JtLnZhbHVlLm51bWJlclZhbHVlXG4gICAgICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9ICF0aGlzLmlzVmFsaWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5zZWFyY2hPcHRpb24sXG4gICAgICAgICAgICBmaXJzdFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBzZWNvbmRWYWx1ZTogdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIG9wZXJhdG9yOiB0aGlzLnNlYXJjaE9wdGlvbixcbiAgICAgICAgICAgIGZpcnN0VmFsdWU6IHRoaXMucmFuZ2VGb3JtLnZhbHVlLm51bWJlclZhbHVlLFxuICAgICAgICAgICAgc2Vjb25kVmFsdWU6IHVuZGVmaW5lZFxuICAgICAgICAgIH07XG4gICAgfVxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgLy8gcmV0dXJucyBudWxsIHdoZW4gdmFsaWQgZWxzZSB0aGUgdmFsaWRhdGlvbiBvYmplY3RcbiAgcHVibGljIHZhbGlkYXRlKCkge1xuICAgIGxldCBlcnI6IGFueTtcbiAgICBpZiAodGhpcy5zZWFyY2hPcHRpb24gPT09IE9wZXJhdG9yLkVRVUFMKSB7XG4gICAgICBlcnIgPSB7IG51bWJlcjogeyB2YWxpZDogZmFsc2UgfSB9O1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2hPcHRpb24gPT09IE9wZXJhdG9yLklOVEVSVkFMX0lOQ0xVREVfQk9USCAmJiB0aGlzLnZhbHVlPy5maXJzdFZhbHVlICYmIHRoaXMudmFsdWU/LnNlY29uZFZhbHVlKSB7XG4gICAgICAvLyBtYWtlIHN1cmUgdGhhdCBvbiByYW5nZXMsIHRoZSBmaXJzdCB2YWx1ZSBpcyBlYXJsaWVyIHRoYW4gdGhlIGxhc3RcbiAgICAgIHRoaXMuaXNWYWxpZCA9IHRoaXMudmFsdWUhLmZpcnN0VmFsdWUgPCB0aGlzLnZhbHVlIS5zZWNvbmRWYWx1ZTtcbiAgICAgIGVyciA9IHsgbnVtYmVycmFuZ2VvcmRlcjogeyB2YWxpZDogZmFsc2UgfSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBlcnIgPSB7IG51bWJlcnJhbmdlOiB7IHZhbGlkOiBmYWxzZSB9IH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzVmFsaWQgPyBudWxsIDogZXJyO1xuICB9XG59XG4iLCI8Zm9ybSBjbGFzcz1cInl1di1udW1iZXItcmFuZ2VcIiBbZm9ybUdyb3VwXT1cInJhbmdlRm9ybVwiPlxuICBAaWYoc2VhcmNoT3B0aW9uID09PSAnZ3RlbHRlJyl7XG4gIDx5dXYtbnVtYmVyXG4gICAgY2xhc3M9XCJmaXJzdFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbc2NhbGVdPVwic2NhbGVcIlxuICAgIFtwcmVjaXNpb25dPVwicHJlY2lzaW9uXCJcbiAgICBbZ3JvdXBpbmddPVwiZ3JvdXBpbmdcIlxuICAgIFtncm91cFBhdHRlcm5dPVwicGF0dGVyblwiXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwibnVtYmVyVmFsdWVGcm9tXCJcbiAgICBbY2xhc3NpZmljYXRpb25zXT1cImNsYXNzaWZpY2F0aW9uc1wiXG4gICAgW21pblZhbHVlXT1cIm1pblZhbHVlXCJcbiAgICBbbWF4VmFsdWVdPVwibWF4VmFsdWVcIlxuICA+PC95dXYtbnVtYmVyPn1cblxuICA8eXZjLWRyb3Bkb3duXG4gICAgY2xhc3M9XCJuby10cmlnZ2VyXCJcbiAgICBbKG5nTW9kZWwpXT1cInNlYXJjaE9wdGlvblwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgpXCJcbiAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIlxuICAgIFtkaXNhYmxlQ2xlYXJCdXR0b25dPVwidHJ1ZVwiXG4gICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICBbb3B0aW9uc109XCJhdmFpbGFibGVTZWFyY2hPcHRpb25zXCJcbiAgPjwveXZjLWRyb3Bkb3duPlxuXG4gIDx5dXYtbnVtYmVyXG4gICAgW3NjYWxlXT1cInNjYWxlXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtwcmVjaXNpb25dPVwicHJlY2lzaW9uXCJcbiAgICBbZ3JvdXBpbmddPVwiZ3JvdXBpbmdcIlxuICAgIFtncm91cFBhdHRlcm5dPVwicGF0dGVyblwiXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwibnVtYmVyVmFsdWVcIlxuICAgIFtjbGFzc2lmaWNhdGlvbnNdPVwiY2xhc3NpZmljYXRpb25zXCJcbiAgICBbbWluVmFsdWVdPVwibWluVmFsdWVcIlxuICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZVwiXG4gID5cbiAgPC95dXYtbnVtYmVyPlxuPC9mb3JtPlxuIl19
|