ngx-tethys 18.2.7 → 18.2.8
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/CHANGELOG.md +9 -0
- package/date-picker/abstract-picker.component.d.ts +8 -3
- package/date-picker/date-picker.config.d.ts +1 -0
- package/date-picker/date-picker.service.d.ts +1 -0
- package/date-picker/picker.component.d.ts +2 -1
- package/date-picker/picker.pipes.d.ts +6 -2
- package/date-picker/picker.util.d.ts +1 -1
- package/date-range/date-range.component.d.ts +16 -4
- package/esm2022/calendar/calendar-header.component.mjs +2 -2
- package/esm2022/date-picker/abstract-picker.component.mjs +14 -5
- package/esm2022/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/date-picker/date-picker.config.mjs +3 -1
- package/esm2022/date-picker/date-picker.service.mjs +4 -1
- package/esm2022/date-picker/month-picker.component.mjs +3 -3
- package/esm2022/date-picker/picker.component.mjs +7 -5
- package/esm2022/date-picker/picker.pipes.mjs +15 -8
- package/esm2022/date-picker/picker.util.mjs +8 -8
- package/esm2022/date-picker/quarter-picker.component.mjs +3 -3
- package/esm2022/date-picker/range-picker.component.mjs +3 -3
- package/esm2022/date-picker/week-picker.component.mjs +3 -3
- package/esm2022/date-picker/year-picker.component.mjs +3 -3
- package/esm2022/date-range/date-range.component.mjs +15 -5
- package/esm2022/util/date/functions.mjs +19 -1
- package/esm2022/util/date/tiny-date.mjs +15 -2
- package/esm2022/version.mjs +2 -2
- package/fesm2022/ngx-tethys-calendar.mjs +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +53 -32
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +14 -4
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs +32 -1
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/package.json +7 -7
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/util/date/functions.d.ts +2 -0
- package/util/date/tiny-date.d.ts +8 -0
|
@@ -21,6 +21,9 @@ export class ThyDatePickerConfigService {
|
|
|
21
21
|
get timestampPrecision() {
|
|
22
22
|
return this.config.timestampPrecision;
|
|
23
23
|
}
|
|
24
|
+
get separator() {
|
|
25
|
+
return this.config.separator.trim();
|
|
26
|
+
}
|
|
24
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyDatePickerConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
25
28
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyDatePickerConfigService, providedIn: 'root' }); }
|
|
26
29
|
}
|
|
@@ -28,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28
31
|
type: Injectable,
|
|
29
32
|
args: [{ providedIn: 'root' }]
|
|
30
33
|
}], ctorParameters: () => [] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBdUIsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHL0csTUFBTSxPQUFPLDBCQUEwQjtJQUduQztRQUNJLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFFLENBQUM7UUFFN0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsMEJBQTBCLEVBQUUsRUFBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLHFCQUFxQjtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDOytHQTlCUSwwQkFBMEI7bUhBQTFCLDBCQUEwQixjQURiLE1BQU07OzRGQUNuQiwwQkFBMEI7a0JBRHRDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUSFlfREFURV9QSUNLRVJfQ09ORklHLCBUaHlEYXRlUGlja2VyQ29uZmlnLCB1c2VEYXRlUGlja2VyRGVmYXVsdENvbmZpZyB9IGZyb20gJy4vZGF0ZS1waWNrZXIuY29uZmlnJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUaHlEYXRlUGlja2VyQ29uZmlnU2VydmljZSB7XG4gICAgY29uZmlnOiBUaHlEYXRlUGlja2VyQ29uZmlnO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IGRhdGVQaWNrZXJDb25maWcgPSBpbmplY3QoVEhZX0RBVEVfUElDS0VSX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KSE7XG5cbiAgICAgICAgdGhpcy5jb25maWcgPSB7IC4uLnVzZURhdGVQaWNrZXJEZWZhdWx0Q29uZmlnKCksIC4uLmRhdGVQaWNrZXJDb25maWcgfTtcbiAgICB9XG5cbiAgICBnZXQgc2hvcnRjdXREYXRlUHJlc2V0cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnNob3J0Y3V0RGF0ZVByZXNldHM7XG4gICAgfVxuXG4gICAgZ2V0IHNob3J0Y3V0UG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5zaG9ydGN1dFBvc2l0aW9uO1xuICAgIH1cblxuICAgIGdldCBzaG93U2hvcnRjdXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5zaG93U2hvcnRjdXQ7XG4gICAgfVxuICAgIGdldCBzaG9ydGN1dFJhbmdlc1ByZXNldHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5zaG9ydGN1dFJhbmdlc1ByZXNldHM7XG4gICAgfVxuXG4gICAgZ2V0IHRpbWVzdGFtcFByZWNpc2lvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnRpbWVzdGFtcFByZWNpc2lvbjtcbiAgICB9XG5cbiAgICBnZXQgc2VwYXJhdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuc2VwYXJhdG9yLnRyaW0oKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -28,7 +28,7 @@ export class ThyMonthPicker extends BasePicker {
|
|
|
28
28
|
multi: true,
|
|
29
29
|
useExisting: forwardRef(() => ThyMonthPicker)
|
|
30
30
|
}
|
|
31
|
-
], exportAs: ["thyMonthPicker"], usesInheritance: true, ngImport: i0, template: "<thy-picker\n #thyPicker\n [isRange]=\"isRange\"\n [value]=\"thyValue\"\n [flexible]=\"flexible\"\n [flexibleDateGranularity]=\"flexibleDateGranularity\"\n (valueChange)=\"onInputValueChange($event)\"\n [open]=\"thyOpen\"\n [disabled]=\"thyDisabled\"\n [format]=\"thyFormat\"\n [mode]=\"thyMode\"\n [allowClear]=\"thyAllowClear\"\n [className]=\"thyOriginClassName\"\n [autoFocus]=\"thyAutoFocus\"\n [placeholder]=\"thyPlaceHolder\"\n [readonly]=\"thyReadonly\"\n [size]=\"thySize\"\n [suffixIcon]=\"thySuffixIcon\"\n [placement]=\"thyPlacement\"\n [hasBackdrop]=\"thyHasBackdrop\"\n (openChange)=\"onOpenChange($event)\"\n (blur)=\"onBlur($event)\"\n (inputChange)=\"onInputDate($event)\">\n @if (isShowDatePopup) {\n <date-popup\n [attr.tabindex]=\"-1\"\n [isRange]=\"isRange\"\n [showWeek]=\"showWeek\"\n [panelMode]=\"panelMode\"\n [flexible]=\"flexible\"\n [flexibleDateGranularity]=\"flexibleDateGranularity\"\n [defaultPickerValue]=\"thyDefaultPickerValue\"\n (panelModeChange)=\"thyOnPanelChange.emit($event)\"\n (showTimePickerChange)=\"onShowTimePickerChange($event)\"\n [value]=\"thyValue\"\n (valueChange)=\"onValueChange($event)\"\n (calendarChange)=\"onCalendarChange($event)\"\n [showTime]=\"thyShowTime\"\n [mustShowTime]=\"withTime\"\n [format]=\"thyFormat\"\n [dateRender]=\"thyDateRender\"\n [disabledDate]=\"thyDisabledDate\"\n [minDate]=\"thyMinDate\"\n [maxDate]=\"thyMaxDate\"\n [showShortcut]=\"thyShowShortcut\"\n [shortcutPresets]=\"shortcutPresets\"\n [shortcutPosition]=\"shortcutPosition\"\n [timestampPrecision]=\"thyTimestampPrecision\"\n (dateValueChange)=\"onDateValueChange($event)\"\n [className]=\"thyPanelClassName\"\n
|
|
31
|
+
], exportAs: ["thyMonthPicker"], usesInheritance: true, ngImport: i0, template: "<thy-picker\n #thyPicker\n [isRange]=\"isRange\"\n [value]=\"thyValue\"\n [flexible]=\"flexible\"\n [flexibleDateGranularity]=\"flexibleDateGranularity\"\n (valueChange)=\"onInputValueChange($event)\"\n [open]=\"thyOpen\"\n [disabled]=\"thyDisabled\"\n [format]=\"thyFormat\"\n [separator]=\"separator()\"\n [mode]=\"thyMode\"\n [allowClear]=\"thyAllowClear\"\n [className]=\"thyOriginClassName\"\n [autoFocus]=\"thyAutoFocus\"\n [placeholder]=\"thyPlaceHolder\"\n [readonly]=\"thyReadonly\"\n [size]=\"thySize\"\n [suffixIcon]=\"thySuffixIcon\"\n [placement]=\"thyPlacement\"\n [hasBackdrop]=\"thyHasBackdrop\"\n (openChange)=\"onOpenChange($event)\"\n (blur)=\"onBlur($event)\"\n (inputChange)=\"onInputDate($event)\">\n @if (isShowDatePopup) {\n <date-popup\n [attr.tabindex]=\"-1\"\n [isRange]=\"isRange\"\n [showWeek]=\"showWeek\"\n [panelMode]=\"panelMode\"\n [flexible]=\"flexible\"\n [flexibleDateGranularity]=\"flexibleDateGranularity\"\n [defaultPickerValue]=\"thyDefaultPickerValue\"\n (panelModeChange)=\"thyOnPanelChange.emit($event)\"\n (showTimePickerChange)=\"onShowTimePickerChange($event)\"\n [value]=\"thyValue\"\n (valueChange)=\"onValueChange($event)\"\n (calendarChange)=\"onCalendarChange($event)\"\n [showTime]=\"thyShowTime\"\n [mustShowTime]=\"withTime\"\n [format]=\"thyFormat\"\n [dateRender]=\"thyDateRender\"\n [disabledDate]=\"thyDisabledDate\"\n [minDate]=\"thyMinDate\"\n [maxDate]=\"thyMaxDate\"\n [showShortcut]=\"thyShowShortcut\"\n [shortcutPresets]=\"shortcutPresets\"\n [shortcutPosition]=\"shortcutPosition\"\n [timestampPrecision]=\"thyTimestampPrecision\"\n (dateValueChange)=\"onDateValueChange($event)\"\n [className]=\"thyPanelClassName\"\n (resultOk)=\"onResultOk()\"></date-popup>\n }\n</thy-picker>\n", dependencies: [{ kind: "component", type: ThyPicker, selector: "thy-picker", inputs: ["isRange", "open", "disabled", "placeholder", "readonly", "allowClear", "autoFocus", "className", "size", "suffixIcon", "placement", "flexible", "mode", "hasBackdrop", "separator", "format", "flexibleDateGranularity", "value"], outputs: ["blur", "valueChange", "openChange", "inputChange"], exportAs: ["thyPicker"] }, { kind: "component", type: DatePopup, selector: "date-popup", inputs: ["isRange", "showWeek", "format", "disabledDate", "minDate", "maxDate", "showToday", "showTime", "mustShowTime", "dateRender", "className", "panelMode", "value", "defaultPickerValue", "showShortcut", "shortcutPresets", "shortcutPosition", "flexible", "flexibleDateGranularity", "timestampPrecision"], outputs: ["panelModeChange", "calendarChange", "valueChange", "resultOk", "showTimePickerChange", "dateValueChange"], exportAs: ["datePopup"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32
32
|
}
|
|
33
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyMonthPicker, decorators: [{
|
|
34
34
|
type: Component,
|
|
@@ -38,8 +38,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
38
38
|
multi: true,
|
|
39
39
|
useExisting: forwardRef(() => ThyMonthPicker)
|
|
40
40
|
}
|
|
41
|
-
], standalone: true, imports: [ThyPicker, DatePopup], template: "<thy-picker\n #thyPicker\n [isRange]=\"isRange\"\n [value]=\"thyValue\"\n [flexible]=\"flexible\"\n [flexibleDateGranularity]=\"flexibleDateGranularity\"\n (valueChange)=\"onInputValueChange($event)\"\n [open]=\"thyOpen\"\n [disabled]=\"thyDisabled\"\n [format]=\"thyFormat\"\n [mode]=\"thyMode\"\n [allowClear]=\"thyAllowClear\"\n [className]=\"thyOriginClassName\"\n [autoFocus]=\"thyAutoFocus\"\n [placeholder]=\"thyPlaceHolder\"\n [readonly]=\"thyReadonly\"\n [size]=\"thySize\"\n [suffixIcon]=\"thySuffixIcon\"\n [placement]=\"thyPlacement\"\n [hasBackdrop]=\"thyHasBackdrop\"\n (openChange)=\"onOpenChange($event)\"\n (blur)=\"onBlur($event)\"\n (inputChange)=\"onInputDate($event)\">\n @if (isShowDatePopup) {\n <date-popup\n [attr.tabindex]=\"-1\"\n [isRange]=\"isRange\"\n [showWeek]=\"showWeek\"\n [panelMode]=\"panelMode\"\n [flexible]=\"flexible\"\n [flexibleDateGranularity]=\"flexibleDateGranularity\"\n [defaultPickerValue]=\"thyDefaultPickerValue\"\n (panelModeChange)=\"thyOnPanelChange.emit($event)\"\n (showTimePickerChange)=\"onShowTimePickerChange($event)\"\n [value]=\"thyValue\"\n (valueChange)=\"onValueChange($event)\"\n (calendarChange)=\"onCalendarChange($event)\"\n [showTime]=\"thyShowTime\"\n [mustShowTime]=\"withTime\"\n [format]=\"thyFormat\"\n [dateRender]=\"thyDateRender\"\n [disabledDate]=\"thyDisabledDate\"\n [minDate]=\"thyMinDate\"\n [maxDate]=\"thyMaxDate\"\n [showShortcut]=\"thyShowShortcut\"\n [shortcutPresets]=\"shortcutPresets\"\n [shortcutPosition]=\"shortcutPosition\"\n [timestampPrecision]=\"thyTimestampPrecision\"\n (dateValueChange)=\"onDateValueChange($event)\"\n [className]=\"thyPanelClassName\"\n
|
|
41
|
+
], standalone: true, imports: [ThyPicker, DatePopup], template: "<thy-picker\n #thyPicker\n [isRange]=\"isRange\"\n [value]=\"thyValue\"\n [flexible]=\"flexible\"\n [flexibleDateGranularity]=\"flexibleDateGranularity\"\n (valueChange)=\"onInputValueChange($event)\"\n [open]=\"thyOpen\"\n [disabled]=\"thyDisabled\"\n [format]=\"thyFormat\"\n [separator]=\"separator()\"\n [mode]=\"thyMode\"\n [allowClear]=\"thyAllowClear\"\n [className]=\"thyOriginClassName\"\n [autoFocus]=\"thyAutoFocus\"\n [placeholder]=\"thyPlaceHolder\"\n [readonly]=\"thyReadonly\"\n [size]=\"thySize\"\n [suffixIcon]=\"thySuffixIcon\"\n [placement]=\"thyPlacement\"\n [hasBackdrop]=\"thyHasBackdrop\"\n (openChange)=\"onOpenChange($event)\"\n (blur)=\"onBlur($event)\"\n (inputChange)=\"onInputDate($event)\">\n @if (isShowDatePopup) {\n <date-popup\n [attr.tabindex]=\"-1\"\n [isRange]=\"isRange\"\n [showWeek]=\"showWeek\"\n [panelMode]=\"panelMode\"\n [flexible]=\"flexible\"\n [flexibleDateGranularity]=\"flexibleDateGranularity\"\n [defaultPickerValue]=\"thyDefaultPickerValue\"\n (panelModeChange)=\"thyOnPanelChange.emit($event)\"\n (showTimePickerChange)=\"onShowTimePickerChange($event)\"\n [value]=\"thyValue\"\n (valueChange)=\"onValueChange($event)\"\n (calendarChange)=\"onCalendarChange($event)\"\n [showTime]=\"thyShowTime\"\n [mustShowTime]=\"withTime\"\n [format]=\"thyFormat\"\n [dateRender]=\"thyDateRender\"\n [disabledDate]=\"thyDisabledDate\"\n [minDate]=\"thyMinDate\"\n [maxDate]=\"thyMaxDate\"\n [showShortcut]=\"thyShowShortcut\"\n [shortcutPresets]=\"shortcutPresets\"\n [shortcutPosition]=\"shortcutPosition\"\n [timestampPrecision]=\"thyTimestampPrecision\"\n (dateValueChange)=\"onDateValueChange($event)\"\n [className]=\"thyPanelClassName\"\n (resultOk)=\"onResultOk()\"></date-popup>\n }\n</thy-picker>\n" }]
|
|
42
42
|
}], ctorParameters: () => [], propDecorators: { thyFormat: [{
|
|
43
43
|
type: Input
|
|
44
44
|
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9tb250aC1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2Jhc2UtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRS9DOzs7O0dBSUc7QUFnQkgsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBVTFDO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFSWjs7V0FFRztRQUNNLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFFdkIsaUJBQVksR0FBRyxlQUFlLEVBQUUsQ0FBQztRQUtyQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7K0dBZlEsY0FBYzttR0FBZCxjQUFjLG1HQVZaO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7YUFDaEQ7U0FDSiwrRUN4QkwsbzNEQXNEQSw0Q0Q1QmMsU0FBUyw0WEFBRSxTQUFTOzs0RkFFckIsY0FBYztrQkFmMUIsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGtCQUFrQixZQUNsQixnQkFBZ0IsYUFFZjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUM7eUJBQ2hEO3FCQUNKLGNBQ1csSUFBSSxXQUNQLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzt3REFRdEIsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5cbmltcG9ydCB7IEJhc2VQaWNrZXIgfSBmcm9tICcuL2Jhc2UtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUG9wdXAgfSBmcm9tICcuL2xpYi9wb3B1cHMvZGF0ZS1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5UGlja2VyIH0gZnJvbSAnLi9waWNrZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiDmnIjku73pgInmi6nnu4Tku7ZcbiAqIEBuYW1lIHRoeS1tb250aC1waWNrZXJcbiAqIEBvcmRlciA0MFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ3RoeS1tb250aC1waWNrZXInLFxuICAgIGV4cG9ydEFzOiAndGh5TW9udGhQaWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXNlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaHlNb250aFBpY2tlcilcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGh5UGlja2VyLCBEYXRlUG9wdXBdXG59KVxuZXhwb3J0IGNsYXNzIFRoeU1vbnRoUGlja2VyIGV4dGVuZHMgQmFzZVBpY2tlciB7XG4gICAgcHJvdGVjdGVkIGVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiDlsZXnpLrnmoTmnIjku73moLzlvI9cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlGb3JtYXQgPSAneXl5eS1NTSc7XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuYWRkQ2xhc3MoJ3RoeS1jYWxlbmRhci1waWNrZXInKTtcbiAgICAgICAgdGhpcy50aHlNb2RlID0gJ21vbnRoJztcbiAgICB9XG59XG4iLCI8dGh5LXBpY2tlclxuICAjdGh5UGlja2VyXG4gIFtpc1JhbmdlXT1cImlzUmFuZ2VcIlxuICBbdmFsdWVdPVwidGh5VmFsdWVcIlxuICBbZmxleGlibGVdPVwiZmxleGlibGVcIlxuICBbZmxleGlibGVEYXRlR3JhbnVsYXJpdHldPVwiZmxleGlibGVEYXRlR3JhbnVsYXJpdHlcIlxuICAodmFsdWVDaGFuZ2UpPVwib25JbnB1dFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICBbb3Blbl09XCJ0aHlPcGVuXCJcbiAgW2Rpc2FibGVkXT1cInRoeURpc2FibGVkXCJcbiAgW2Zvcm1hdF09XCJ0aHlGb3JtYXRcIlxuICBbc2VwYXJhdG9yXT1cInNlcGFyYXRvcigpXCJcbiAgW21vZGVdPVwidGh5TW9kZVwiXG4gIFthbGxvd0NsZWFyXT1cInRoeUFsbG93Q2xlYXJcIlxuICBbY2xhc3NOYW1lXT1cInRoeU9yaWdpbkNsYXNzTmFtZVwiXG4gIFthdXRvRm9jdXNdPVwidGh5QXV0b0ZvY3VzXCJcbiAgW3BsYWNlaG9sZGVyXT1cInRoeVBsYWNlSG9sZGVyXCJcbiAgW3JlYWRvbmx5XT1cInRoeVJlYWRvbmx5XCJcbiAgW3NpemVdPVwidGh5U2l6ZVwiXG4gIFtzdWZmaXhJY29uXT1cInRoeVN1ZmZpeEljb25cIlxuICBbcGxhY2VtZW50XT1cInRoeVBsYWNlbWVudFwiXG4gIFtoYXNCYWNrZHJvcF09XCJ0aHlIYXNCYWNrZHJvcFwiXG4gIChvcGVuQ2hhbmdlKT1cIm9uT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAoaW5wdXRDaGFuZ2UpPVwib25JbnB1dERhdGUoJGV2ZW50KVwiPlxuICBAaWYgKGlzU2hvd0RhdGVQb3B1cCkge1xuICAgIDxkYXRlLXBvcHVwXG4gICAgICBbYXR0ci50YWJpbmRleF09XCItMVwiXG4gICAgICBbaXNSYW5nZV09XCJpc1JhbmdlXCJcbiAgICAgIFtzaG93V2Vla109XCJzaG93V2Vla1wiXG4gICAgICBbcGFuZWxNb2RlXT1cInBhbmVsTW9kZVwiXG4gICAgICBbZmxleGlibGVdPVwiZmxleGlibGVcIlxuICAgICAgW2ZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5XT1cImZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5XCJcbiAgICAgIFtkZWZhdWx0UGlja2VyVmFsdWVdPVwidGh5RGVmYXVsdFBpY2tlclZhbHVlXCJcbiAgICAgIChwYW5lbE1vZGVDaGFuZ2UpPVwidGh5T25QYW5lbENoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgKHNob3dUaW1lUGlja2VyQ2hhbmdlKT1cIm9uU2hvd1RpbWVQaWNrZXJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbdmFsdWVdPVwidGh5VmFsdWVcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoY2FsZW5kYXJDaGFuZ2UpPVwib25DYWxlbmRhckNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtzaG93VGltZV09XCJ0aHlTaG93VGltZVwiXG4gICAgICBbbXVzdFNob3dUaW1lXT1cIndpdGhUaW1lXCJcbiAgICAgIFtmb3JtYXRdPVwidGh5Rm9ybWF0XCJcbiAgICAgIFtkYXRlUmVuZGVyXT1cInRoeURhdGVSZW5kZXJcIlxuICAgICAgW2Rpc2FibGVkRGF0ZV09XCJ0aHlEaXNhYmxlZERhdGVcIlxuICAgICAgW21pbkRhdGVdPVwidGh5TWluRGF0ZVwiXG4gICAgICBbbWF4RGF0ZV09XCJ0aHlNYXhEYXRlXCJcbiAgICAgIFtzaG93U2hvcnRjdXRdPVwidGh5U2hvd1Nob3J0Y3V0XCJcbiAgICAgIFtzaG9ydGN1dFByZXNldHNdPVwic2hvcnRjdXRQcmVzZXRzXCJcbiAgICAgIFtzaG9ydGN1dFBvc2l0aW9uXT1cInNob3J0Y3V0UG9zaXRpb25cIlxuICAgICAgW3RpbWVzdGFtcFByZWNpc2lvbl09XCJ0aHlUaW1lc3RhbXBQcmVjaXNpb25cIlxuICAgICAgKGRhdGVWYWx1ZUNoYW5nZSk9XCJvbkRhdGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtjbGFzc05hbWVdPVwidGh5UGFuZWxDbGFzc05hbWVcIlxuICAgICAgKHJlc3VsdE9rKT1cIm9uUmVzdWx0T2soKVwiPjwvZGF0ZS1wb3B1cD5cbiAgfVxuPC90aHktcGlja2VyPlxuIl19
|
|
@@ -173,12 +173,12 @@ export class ThyPicker {
|
|
|
173
173
|
let value;
|
|
174
174
|
if (this.isRange) {
|
|
175
175
|
if (this.flexible && this.innerflexibleDateGranularity !== 'day') {
|
|
176
|
-
return getFlexibleAdvancedReadableValue(tinyDate, this.innerflexibleDateGranularity);
|
|
176
|
+
return getFlexibleAdvancedReadableValue(tinyDate, this.innerflexibleDateGranularity, this.separator);
|
|
177
177
|
}
|
|
178
178
|
else {
|
|
179
179
|
const start = tinyDate[0] ? this.formatDate(tinyDate[0]) : '';
|
|
180
180
|
const end = tinyDate[1] ? this.formatDate(tinyDate[1]) : '';
|
|
181
|
-
return start && end ? `${start}
|
|
181
|
+
return start && end ? `${start}${this.separator}${end}` : null;
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
else {
|
|
@@ -198,7 +198,7 @@ export class ThyPicker {
|
|
|
198
198
|
}
|
|
199
199
|
getPlaceholder() {
|
|
200
200
|
return this.isRange && this.placeholder && Array.isArray(this.placeholder)
|
|
201
|
-
? this.placeholder.join(
|
|
201
|
+
? this.placeholder.join(this.separator)
|
|
202
202
|
: this.placeholder;
|
|
203
203
|
}
|
|
204
204
|
updateReadableDate(setValue) {
|
|
@@ -209,7 +209,7 @@ export class ThyPicker {
|
|
|
209
209
|
this.pickerInput.nativeElement.value = readableValue;
|
|
210
210
|
}
|
|
211
211
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyPicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
212
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThyPicker, isStandalone: true, selector: "thy-picker", inputs: { isRange: "isRange", open: "open", disabled: "disabled", placeholder: "placeholder", readonly: "readonly", allowClear: "allowClear", autoFocus: "autoFocus", className: "className", size: "size", suffixIcon: "suffixIcon", placement: "placement", flexible: "flexible", mode: "mode", hasBackdrop: ["hasBackdrop", "hasBackdrop", coerceBooleanProperty], format: "format", flexibleDateGranularity: "flexibleDateGranularity", value: "value" }, outputs: { blur: "blur", valueChange: "valueChange", openChange: "openChange", inputChange: "inputChange" }, viewQueries: [{ propertyName: "origin", first: true, predicate: ["origin"], descendants: true, static: true }, { propertyName: "cdkConnectedOverlay", first: true, predicate: CdkConnectedOverlay, descendants: true, static: true }, { propertyName: "pickerInput", first: true, predicate: ["pickerInput"], descendants: true, static: true }, { propertyName: "overlayContainer", first: true, predicate: ["overlayContainer"], descendants: true }], exportAs: ["thyPicker"], usesOnChanges: true, ngImport: i0, template: "<span\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"{{ prefixCls }}-picker {{ size ? prefixCls + '-picker-' + size : '' }} {{ className }}\"\n (click)=\"onClickInputBox()\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control-{{ size }} form-control {{ prefixCls }}-picker-input\"\n [ngClass]=\"{ 'panel-is-opened': realOpenState }\"\n [thySize]=\"size\"\n [tabindex]=\"-1\"\n [class.thy-input-disabled]=\"disabled\"\n [class.thy-input-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonlyState\"\n (blur)=\"onBlur($event)\"\n (input)=\"onInput($event)\"\n placeholder=\"{{ getPlaceholder() }}\"\n thyEnter\n (thyEnter)=\"onEnter()\" />\n <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n </ng-container>\n</span>\n\n<!-- Right operator icons -->\n<ng-template #tplRightRest>\n <span class=\"{{ prefixCls }}-picker-clear\">\n @if (!disabled && !isEmptyValue(value) && allowClear && !readonly) {\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n (click)=\"onClickClear($event)\"\n ngClass=\"remove-link remove-link-{{ size }}\"></thy-icon>\n }\n </span>\n <span class=\"{{ prefixCls }}-picker-icon\">\n <thy-icon [thyIconName]=\"suffixIcon\" ngClass=\"remove-link-{{ size ? size : 'default' }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"realOpenState\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (detach)=\"onOverlayDetach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n class=\"thy-picker-container\"\n [@scaleXMotion]=\"placement === 'left' || placement === 'right' ? 'enter' : 'void'\"\n [@scaleYMotion]=\"placement === 'top' || placement === 'bottom' ? 'enter' : 'void'\"\n [@scaleMotion]=\"placement !== 'left' && placement !== 'right' && placement !== 'top' && placement !== 'bottom' ? 'enter' : 'void'\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <ng-content></ng-content>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }], animations: [scaleXMotion, scaleYMotion, scaleMotion], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
212
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThyPicker, isStandalone: true, selector: "thy-picker", inputs: { isRange: "isRange", open: "open", disabled: "disabled", placeholder: "placeholder", readonly: "readonly", allowClear: "allowClear", autoFocus: "autoFocus", className: "className", size: "size", suffixIcon: "suffixIcon", placement: "placement", flexible: "flexible", mode: "mode", hasBackdrop: ["hasBackdrop", "hasBackdrop", coerceBooleanProperty], separator: "separator", format: "format", flexibleDateGranularity: "flexibleDateGranularity", value: "value" }, outputs: { blur: "blur", valueChange: "valueChange", openChange: "openChange", inputChange: "inputChange" }, viewQueries: [{ propertyName: "origin", first: true, predicate: ["origin"], descendants: true, static: true }, { propertyName: "cdkConnectedOverlay", first: true, predicate: CdkConnectedOverlay, descendants: true, static: true }, { propertyName: "pickerInput", first: true, predicate: ["pickerInput"], descendants: true, static: true }, { propertyName: "overlayContainer", first: true, predicate: ["overlayContainer"], descendants: true }], exportAs: ["thyPicker"], usesOnChanges: true, ngImport: i0, template: "<span\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"{{ prefixCls }}-picker {{ size ? prefixCls + '-picker-' + size : '' }} {{ className }}\"\n (click)=\"onClickInputBox()\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control-{{ size }} form-control {{ prefixCls }}-picker-input\"\n [ngClass]=\"{ 'panel-is-opened': realOpenState }\"\n [thySize]=\"size\"\n [tabindex]=\"-1\"\n [class.thy-input-disabled]=\"disabled\"\n [class.thy-input-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonlyState\"\n (blur)=\"onBlur($event)\"\n (input)=\"onInput($event)\"\n placeholder=\"{{ getPlaceholder() }}\"\n thyEnter\n (thyEnter)=\"onEnter()\" />\n <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n </ng-container>\n</span>\n\n<!-- Right operator icons -->\n<ng-template #tplRightRest>\n <span class=\"{{ prefixCls }}-picker-clear\">\n @if (!disabled && !isEmptyValue(value) && allowClear && !readonly) {\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n (click)=\"onClickClear($event)\"\n ngClass=\"remove-link remove-link-{{ size }}\"></thy-icon>\n }\n </span>\n <span class=\"{{ prefixCls }}-picker-icon\">\n <thy-icon [thyIconName]=\"suffixIcon\" ngClass=\"remove-link-{{ size ? size : 'default' }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"realOpenState\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (detach)=\"onOverlayDetach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n class=\"thy-picker-container\"\n [@scaleXMotion]=\"placement === 'left' || placement === 'right' ? 'enter' : 'void'\"\n [@scaleYMotion]=\"placement === 'top' || placement === 'bottom' ? 'enter' : 'void'\"\n [@scaleMotion]=\"placement !== 'left' && placement !== 'right' && placement !== 'top' && placement !== 'bottom' ? 'enter' : 'void'\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <ng-content></ng-content>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }], animations: [scaleXMotion, scaleYMotion, scaleMotion], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
213
213
|
}
|
|
214
214
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyPicker, decorators: [{
|
|
215
215
|
type: Component,
|
|
@@ -243,6 +243,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
243
243
|
}], hasBackdrop: [{
|
|
244
244
|
type: Input,
|
|
245
245
|
args: [{ transform: coerceBooleanProperty }]
|
|
246
|
+
}], separator: [{
|
|
247
|
+
type: Input
|
|
246
248
|
}], blur: [{
|
|
247
249
|
type: Output
|
|
248
250
|
}], valueChange: [{
|
|
@@ -270,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
270
272
|
}], value: [{
|
|
271
273
|
type: Input
|
|
272
274
|
}] } });
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL3BpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdqRTs7R0FFRztBQVVILE1BQU0sT0FBTyxTQUFTO0lBVHRCO1FBVVksbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlC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QXVCO3NCQUQxQixLQUFLO2dCQVdGLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEZsZXhpYmxlUG9zaXRpb25zLCBUaHlQbGFjZW1lbnQgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4sIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBzY2FsZU1vdGlvbiwgc2NhbGVYTW90aW9uLCBzY2FsZVlNb3Rpb24gfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlJbnB1dERpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvaW5wdXQnO1xuaW1wb3J0IHsgVGh5RW50ZXJEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBEYXRlSGVscGVyU2VydmljZSB9IGZyb20gJy4vZGF0ZS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wYXRpYmxlVmFsdWUsIFJhbmdlUGFydFR5cGUgfSBmcm9tICcuL2lubmVyLXR5cGVzJztcbmltcG9ydCB7IGdldEZsZXhpYmxlQWR2YW5jZWRSZWFkYWJsZVZhbHVlIH0gZnJvbSAnLi9waWNrZXIudXRpbCc7XG5pbXBvcnQgeyBUaHlEYXRlR3JhbnVsYXJpdHkgfSBmcm9tICcuL3N0YW5kYXJkLXR5cGVzJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1waWNrZXInLFxuICAgIGV4cG9ydEFzOiAndGh5UGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDZGtPdmVybGF5T3JpZ2luLCBUaHlJbnB1dERpcmVjdGl2ZSwgVGh5RW50ZXJEaXJlY3RpdmUsIEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCwgVGh5SWNvbiwgTmdDbGFzcywgQ2RrQ29ubmVjdGVkT3ZlcmxheV0sXG4gICAgYW5pbWF0aW9uczogW3NjYWxlWE1vdGlvbiwgc2NhbGVZTW90aW9uLCBzY2FsZU1vdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5UGlja2VyIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcml2YXRlIGRhdGVIZWxwZXIgPSBpbmplY3QoRGF0ZUhlbHBlclNlcnZpY2UpO1xuXG4gICAgQElucHV0KCkgaXNSYW5nZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG9wZW46IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGFsbG93Q2xlYXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYXV0b0ZvY3VzOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNpemU6ICdzbScgfCAneHMnIHwgJ2xnJyB8ICdtZCcgfCAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgc3VmZml4SWNvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHBsYWNlbWVudDogVGh5UGxhY2VtZW50ID0gJ2JvdHRvbUxlZnQnO1xuICAgIEBJbnB1dCgpIGZsZXhpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgbW9kZTogc3RyaW5nO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIGhhc0JhY2tkcm9wOiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRpbnlEYXRlIHwgVGlueURhdGVbXSB8IG51bGw+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7IC8vIEVtaXR0ZWQgd2hlbiBvdmVybGF5J3Mgb3BlbiBzdGF0ZSBjaGFuZ2VcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgaW5wdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ29yaWdpbicsIHsgc3RhdGljOiB0cnVlIH0pIG9yaWdpbjogQ2RrT3ZlcmxheU9yaWdpbjtcbiAgICBAVmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXksIHsgc3RhdGljOiB0cnVlIH0pIGNka0Nvbm5lY3RlZE92ZXJsYXk6IENka0Nvbm5lY3RlZE92ZXJsYXk7XG4gICAgQFZpZXdDaGlsZCgncGlja2VySW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwaWNrZXJJbnB1dDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIG92ZXJsYXlDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgZm9ybWF0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lckZvcm1hdDtcbiAgICB9XG5cbiAgICBzZXQgZm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pbm5lckZvcm1hdCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnVwZGF0ZVJlYWRhYmxlRGF0ZSh0aGlzLmlubmVyVmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lcmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5O1xuICAgIH1cblxuICAgIHNldCBmbGV4aWJsZURhdGVHcmFudWxhcml0eShncmFudWxhcml0eTogVGh5RGF0ZUdyYW51bGFyaXR5KSB7XG4gICAgICAgIHRoaXMuaW5uZXJmbGV4aWJsZURhdGVHcmFudWxhcml0eSA9IGdyYW51bGFyaXR5O1xuICAgICAgICB0aGlzLnVwZGF0ZVJlYWRhYmxlRGF0ZSh0aGlzLmlubmVyVmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xuICAgIH1cblxuICAgIHNldCB2YWx1ZSh2YWx1ZTogVGlueURhdGUgfCBUaW55RGF0ZVtdIHwgbnVsbCkge1xuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKCF0aGlzLmVudGVyaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJlYWRhYmxlRGF0ZSh0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbm5lcmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5OiBUaHlEYXRlR3JhbnVsYXJpdHk7XG5cbiAgICBwcml2YXRlIGlubmVyRm9ybWF0OiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIGlubmVyVmFsdWU6IFRpbnlEYXRlIHwgVGlueURhdGVbXSB8IG51bGw7XG5cbiAgICBlbnRlcmluZyA9IGZhbHNlO1xuXG4gICAgcHJlZml4Q2xzID0gJ3RoeS1jYWxlbmRhcic7XG5cbiAgICBpc1Nob3dEYXRlUG9wdXAgPSBmYWxzZTtcblxuICAgIG92ZXJsYXlPcGVuID0gZmFsc2U7IC8vIEF2YWlsYWJsZSB3aGVuIFwib3BlblwiPXVuZGVmaW5lZFxuXG4gICAgb3ZlcmxheVBvc2l0aW9ucyA9IGdldEZsZXhpYmxlUG9zaXRpb25zKHRoaXMucGxhY2VtZW50LCA0KTtcblxuICAgIGdldCByZWFsT3BlblN0YXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBUaGUgdmFsdWUgdGhhdCByZWFsbHkgZGVjaWRlIHRoZSBvcGVuIHN0YXRlIG9mIG92ZXJsYXlcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcGVuSGFuZGxlZEJ5VXNlcigpID8gISF0aGlzLm9wZW4gOiB0aGlzLm92ZXJsYXlPcGVuO1xuICAgIH1cblxuICAgIGdldCByZWFkb25seVN0YXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1JhbmdlIHx8IHRoaXMucmVhZG9ubHkgfHwgdGhpcy5tb2RlICE9PSAnZGF0ZSc7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICAvLyBvcGVuIGJ5IHVzZXJcbiAgICAgICAgaWYgKGNoYW5nZXMub3BlbiAmJiBjaGFuZ2VzLm9wZW4uY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLm9wZW4uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93RGF0ZVBvcHVwKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEYXRlUG9wdXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UG9zaXRpb25zID0gZ2V0RmxleGlibGVQb3NpdGlvbnModGhpcy5wbGFjZW1lbnQsIDQpO1xuICAgICAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBpY2tlcklucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xuICAgICAgICBpZiAodGhpcy5lbnRlcmluZykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMucGlja2VySW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbnRlcmluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uSW5wdXQoZXZlbnQ6IElucHV0RXZlbnQpIHtcbiAgICAgICAgdGhpcy5lbnRlcmluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KVsndmFsdWUnXTtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KGlucHV0VmFsdWUpO1xuICAgIH1cblxuICAgIG9uRW50ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5U3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5waWNrZXJJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlIHx8IHRoaXMuZ2V0UmVhZGFibGVWYWx1ZShuZXcgVGlueURhdGUoKSkpO1xuICAgICAgICB0aGlzLmVudGVyaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgc2hvd092ZXJsYXkoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5yZWFsT3BlblN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0RhdGVQb3B1cCgpO1xuXG4gICAgICAgICAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdCh0aGlzLm92ZXJsYXlPcGVuKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNka0Nvbm5lY3RlZE92ZXJsYXkgJiYgdGhpcy5jZGtDb25uZWN0ZWRPdmVybGF5Lm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZGtDb25uZWN0ZWRPdmVybGF5Lm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhpZGVPdmVybGF5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWFsT3BlblN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNsb3NlRGF0ZVBvcHVwKCk7XG5cbiAgICAgICAgICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KHRoaXMub3ZlcmxheU9wZW4pO1xuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd0RhdGVQb3B1cCgpIHtcbiAgICAgICAgdGhpcy5pc1Nob3dEYXRlUG9wdXAgPSB0cnVlO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGNsb3NlRGF0ZVBvcHVwKCkge1xuICAgICAgICAvLyBEZWxheSAyMDBtcyBiZWZvcmUgZGVzdHJveWluZyB0aGUgZGF0ZS1wb3B1cCwgb3RoZXJ3aXNlIHlvdSB3aWxsIG5vdCBzZWUgdGhlIGNsb3NpbmcgYW5pbWF0aW9uLlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93RGF0ZVBvcHVwID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9LCAyMDApO1xuICAgIH1cblxuICAgIG9uQ2xpY2tJbnB1dEJveCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRvbmx5ICYmICF0aGlzLmlzT3BlbkhhbmRsZWRCeVVzZXIoKSkge1xuICAgICAgICAgICAgdGhpcy5zaG93T3ZlcmxheSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DbGlja0JhY2tkcm9wKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGVPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgb25PdmVybGF5RGV0YWNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGVPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgb25Qb3NpdGlvbkNoYW5nZShwb3NpdGlvbjogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG9uQ2xpY2tDbGVhcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLmlubmVyVmFsdWUgPSB0aGlzLmlzUmFuZ2UgPyBbXSA6IG51bGw7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLmlubmVyVmFsdWUpO1xuICAgIH1cblxuICAgIGdldFBhcnRUeXBlSW5kZXgocGFydFR5cGU6IFJhbmdlUGFydFR5cGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4geyBsZWZ0OiAwLCByaWdodDogMSB9W3BhcnRUeXBlXTtcbiAgICB9XG5cbiAgICBpc0VtcHR5VmFsdWUodmFsdWU6IENvbXBhdGlibGVWYWx1ZSB8IG51bGwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiAhdmFsdWUgfHwgIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8IHZhbHVlLmV2ZXJ5KHZhbCA9PiAhdmFsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAhdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXaGV0aGVyIG9wZW4gc3RhdGUgaXMgcGVybWFuZW50bHkgY29udHJvbGxlZCBieSB1c2VyIGhpbXNlbGZcbiAgICBpc09wZW5IYW5kbGVkQnlVc2VyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0UmVhZGFibGVWYWx1ZSh0aW55RGF0ZTogVGlueURhdGUgfCBUaW55RGF0ZVtdKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGxldCB2YWx1ZTogVGlueURhdGU7XG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZsZXhpYmxlICYmIHRoaXMuaW5uZXJmbGV4aWJsZURhdGVHcmFudWxhcml0eSAhPT0gJ2RheScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0RmxleGlibGVBZHZhbmNlZFJlYWRhYmxlVmFsdWUodGlueURhdGUgYXMgVGlueURhdGVbXSwgdGhpcy5pbm5lcmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aW55RGF0ZVswXSA/IHRoaXMuZm9ybWF0RGF0ZSh0aW55RGF0ZVswXSkgOiAnJztcbiAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSB0aW55RGF0ZVsxXSA/IHRoaXMuZm9ybWF0RGF0ZSh0aW55RGF0ZVsxXSkgOiAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQgJiYgZW5kID8gYCR7c3RhcnR9IH4gJHtlbmR9YCA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRpbnlEYXRlIGFzIFRpbnlEYXRlO1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID8gdGhpcy5mb3JtYXREYXRlKHZhbHVlKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JtYXREYXRlKHZhbHVlOiBUaW55RGF0ZSkge1xuICAgICAgICAvLyBkYXRlSGVscGVyLmZvcm1hdCgpIOS9v+eUqOeahOaYryBhbmd1bGFyIOeahCBmb3JtYXTvvIzkuI3mlK/mjIHlraPluqbvvIzkv67mlLnnmoTor53vvIzmlLnliqjmr5TovoPlpKfjgIJcbiAgICAgICAgLy8g5q2k5aSE6YCa6L+H5a+5IGlubmVyRm9ybWF0IOWBmuS4i+WIpOaWre+8jOWmguaenOaYr+Wto+W6pueahCBmb3JtYXTvvIzkvb/nlKggZGF0ZS1mbnMg55qEIGZvcm1hdCgpXG4gICAgICAgIGlmICh0aGlzLmlubmVyRm9ybWF0ICYmICh0aGlzLmlubmVyRm9ybWF0LmluY2x1ZGVzKCdxJykgfHwgdGhpcy5pbm5lckZvcm1hdC5pbmNsdWRlcygnUScpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmZvcm1hdCh0aGlzLmlubmVyRm9ybWF0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGVIZWxwZXIuZm9ybWF0KHZhbHVlLm5hdGl2ZURhdGUsIHRoaXMuaW5uZXJGb3JtYXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSYW5nZSAmJiB0aGlzLnBsYWNlaG9sZGVyICYmIEFycmF5LmlzQXJyYXkodGhpcy5wbGFjZWhvbGRlcilcbiAgICAgICAgICAgID8gKHRoaXMucGxhY2Vob2xkZXIgYXMgc3RyaW5nW10pLmpvaW4oJyB+ICcpXG4gICAgICAgICAgICA6ICh0aGlzLnBsYWNlaG9sZGVyIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVSZWFkYWJsZURhdGUoc2V0VmFsdWU6IFRpbnlEYXRlIHwgVGlueURhdGVbXSB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgcmVhZGFibGVWYWx1ZSA9IHRoaXMuZ2V0UmVhZGFibGVWYWx1ZShzZXRWYWx1ZSk7XG4gICAgICAgIGlmIChyZWFkYWJsZVZhbHVlID09PSB0aGlzLnBpY2tlcklucHV0Lm5hdGl2ZUVsZW1lbnRbJ3ZhbHVlJ10pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucGlja2VySW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHJlYWRhYmxlVmFsdWU7XG4gICAgfVxufVxuIiwiPHNwYW5cbiAgY2RrT3ZlcmxheU9yaWdpblxuICAjb3JpZ2luPVwiY2RrT3ZlcmxheU9yaWdpblwiXG4gIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXBpY2tlciB7eyBzaXplID8gcHJlZml4Q2xzICsgJy1waWNrZXItJyArIHNpemUgOiAnJyB9fSB7eyBjbGFzc05hbWUgfX1cIlxuICAoY2xpY2spPVwib25DbGlja0lucHV0Qm94KClcIj5cbiAgPG5nLWNvbnRhaW5lcj5cbiAgICA8aW5wdXRcbiAgICAgICNwaWNrZXJJbnB1dFxuICAgICAgdGh5SW5wdXRcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sLXt7IHNpemUgfX0gZm9ybS1jb250cm9sIHt7IHByZWZpeENscyB9fS1waWNrZXItaW5wdXRcIlxuICAgICAgW25nQ2xhc3NdPVwieyAncGFuZWwtaXMtb3BlbmVkJzogcmVhbE9wZW5TdGF0ZSB9XCJcbiAgICAgIFt0aHlTaXplXT1cInNpemVcIlxuICAgICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAgIFtjbGFzcy50aHktaW5wdXQtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2NsYXNzLnRoeS1pbnB1dC1yZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5U3RhdGVcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7IGdldFBsYWNlaG9sZGVyKCkgfX1cIlxuICAgICAgdGh5RW50ZXJcbiAgICAgICh0aHlFbnRlcik9XCJvbkVudGVyKClcIiAvPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxSaWdodFJlc3RcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L3NwYW4+XG5cbjwhLS0gUmlnaHQgb3BlcmF0b3IgaWNvbnMgLS0+XG48bmctdGVtcGxhdGUgI3RwbFJpZ2h0UmVzdD5cbiAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tcGlja2VyLWNsZWFyXCI+XG4gICAgQGlmICghZGlzYWJsZWQgJiYgIWlzRW1wdHlWYWx1ZSh2YWx1ZSkgJiYgYWxsb3dDbGVhciAmJiAhcmVhZG9ubHkpIHtcbiAgICAgIDx0aHktaWNvblxuICAgICAgICB0aHlJY29uTmFtZT1cImNsb3NlLWNpcmNsZS1ib2xkLWZpbGxcIlxuICAgICAgICAoY2xpY2spPVwib25DbGlja0NsZWFyKCRldmVudClcIlxuICAgICAgbmdDbGFzcz1cInJlbW92ZS1saW5rIHJlbW92ZS1saW5rLXt7IHNpemUgfX1cIj48L3RoeS1pY29uPlxuICAgIH1cbiAgPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1waWNrZXItaWNvblwiPlxuICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwic3VmZml4SWNvblwiIG5nQ2xhc3M9XCJyZW1vdmUtbGluay17eyBzaXplID8gc2l6ZSA6ICdkZWZhdWx0JyB9fVwiPjwvdGh5LWljb24+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gT3ZlcmxheSAtLT5cbjxuZy10ZW1wbGF0ZVxuICBjZGtDb25uZWN0ZWRPdmVybGF5XG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cIm9yaWdpblwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJyZWFsT3BlblN0YXRlXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcF09XCJoYXNCYWNrZHJvcFwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zXT1cIm92ZXJsYXlQb3NpdGlvbnNcIlxuICBjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcz1cImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVRyYW5zZm9ybU9yaWdpbk9uPVwiLnRoeS1waWNrZXItY29udGFpbmVyXCJcbiAgKHBvc2l0aW9uQ2hhbmdlKT1cIm9uUG9zaXRpb25DaGFuZ2UoJGV2ZW50KVwiXG4gIChiYWNrZHJvcENsaWNrKT1cIm9uQ2xpY2tCYWNrZHJvcCgpXCJcbiAgKGRldGFjaCk9XCJvbk92ZXJsYXlEZXRhY2goKVwiPlxuICA8ZGl2XG4gICAgI292ZXJsYXlDb250YWluZXJcbiAgICBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiXG4gICAgY2xhc3M9XCJ0aHktcGlja2VyLWNvbnRhaW5lclwiXG4gICAgW0BzY2FsZVhNb3Rpb25dPVwicGxhY2VtZW50ID09PSAnbGVmdCcgfHwgcGxhY2VtZW50ID09PSAncmlnaHQnID8gJ2VudGVyJyA6ICd2b2lkJ1wiXG4gICAgW0BzY2FsZVlNb3Rpb25dPVwicGxhY2VtZW50ID09PSAndG9wJyB8fCBwbGFjZW1lbnQgPT09ICdib3R0b20nID8gJ2VudGVyJyA6ICd2b2lkJ1wiXG4gICAgW0BzY2FsZU1vdGlvbl09XCJwbGFjZW1lbnQgIT09ICdsZWZ0JyAmJiBwbGFjZW1lbnQgIT09ICdyaWdodCcgJiYgcGxhY2VtZW50ICE9PSAndG9wJyAmJiBwbGFjZW1lbnQgIT09ICdib3R0b20nID8gJ2VudGVyJyA6ICd2b2lkJ1wiPlxuICAgIDwhLS0gQ29tcGF0aWJsZSBmb3Igb3ZlcmxheSB0aGF0IG5vdCBzdXBwb3J0IG9mZnNldCBkeW5hbWljYWxseSBhbmQgaW1tZWRpYXRlbHkgLS0+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL3BpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdqRTs7R0FFRztBQVVILE1BQU0sT0FBTyxTQUFTO0lBVHRCO1FBVVksbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlC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QUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHNUMsTUFBTTtzQkFEVCxLQUFLO2dCQVdGLHVCQUF1QjtzQkFEMUIsS0FBSztnQkFXRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRGbGV4aWJsZVBvc2l0aW9ucywgVGh5UGxhY2VtZW50IH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgVGlueURhdGUgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG5pbXBvcnQgeyBDZGtDb25uZWN0ZWRPdmVybGF5LCBDZGtPdmVybGF5T3JpZ2luLCBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgc2NhbGVNb3Rpb24sIHNjYWxlWE1vdGlvbiwgc2NhbGVZTW90aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgVGh5SW5wdXREaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2lucHV0JztcbmltcG9ydCB7IFRoeUVudGVyRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuL2RhdGUtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcGF0aWJsZVZhbHVlLCBSYW5nZVBhcnRUeXBlIH0gZnJvbSAnLi9pbm5lci10eXBlcyc7XG5pbXBvcnQgeyBnZXRGbGV4aWJsZUFkdmFuY2VkUmVhZGFibGVWYWx1ZSB9IGZyb20gJy4vcGlja2VyLnV0aWwnO1xuaW1wb3J0IHsgVGh5RGF0ZUdyYW51bGFyaXR5IH0gZnJvbSAnLi9zdGFuZGFyZC10eXBlcyc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktcGlja2VyJyxcbiAgICBleHBvcnRBczogJ3RoeVBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ2RrT3ZlcmxheU9yaWdpbiwgVGh5SW5wdXREaXJlY3RpdmUsIFRoeUVudGVyRGlyZWN0aXZlLCBBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXQsIFRoeUljb24sIE5nQ2xhc3MsIENka0Nvbm5lY3RlZE92ZXJsYXldLFxuICAgIGFuaW1hdGlvbnM6IFtzY2FsZVhNb3Rpb24sIHNjYWxlWU1vdGlvbiwgc2NhbGVNb3Rpb25dXG59KVxuZXhwb3J0IGNsYXNzIFRoeVBpY2tlciBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSBkYXRlSGVscGVyID0gaW5qZWN0KERhdGVIZWxwZXJTZXJ2aWNlKTtcblxuICAgIEBJbnB1dCgpIGlzUmFuZ2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBvcGVuOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBhbGxvd0NsZWFyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGF1dG9Gb2N1czogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjbGFzc05hbWU6IHN0cmluZztcbiAgICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ3hzJyB8ICdsZycgfCAnbWQnIHwgJ2RlZmF1bHQnO1xuICAgIEBJbnB1dCgpIHN1ZmZpeEljb246IHN0cmluZztcbiAgICBASW5wdXQoKSBwbGFjZW1lbnQ6IFRoeVBsYWNlbWVudCA9ICdib3R0b21MZWZ0JztcbiAgICBASW5wdXQoKSBmbGV4aWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG1vZGU6IHN0cmluZztcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSBoYXNCYWNrZHJvcDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzZXBhcmF0b3I6IHN0cmluZztcbiAgICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaW55RGF0ZSB8IFRpbnlEYXRlW10gfCBudWxsPigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpOyAvLyBFbWl0dGVkIHdoZW4gb3ZlcmxheSdzIG9wZW4gc3RhdGUgY2hhbmdlXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGlucHV0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdvcmlnaW4nLCB7IHN0YXRpYzogdHJ1ZSB9KSBvcmlnaW46IENka092ZXJsYXlPcmlnaW47XG4gICAgQFZpZXdDaGlsZChDZGtDb25uZWN0ZWRPdmVybGF5LCB7IHN0YXRpYzogdHJ1ZSB9KSBjZGtDb25uZWN0ZWRPdmVybGF5OiBDZGtDb25uZWN0ZWRPdmVybGF5O1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcklucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgcGlja2VySW5wdXQ6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnb3ZlcmxheUNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBvdmVybGF5Q29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGZvcm1hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJGb3JtYXQ7XG4gICAgfVxuXG4gICAgc2V0IGZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaW5uZXJGb3JtYXQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVSZWFkYWJsZURhdGUodGhpcy5pbm5lclZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBmbGV4aWJsZURhdGVHcmFudWxhcml0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJmbGV4aWJsZURhdGVHcmFudWxhcml0eTtcbiAgICB9XG5cbiAgICBzZXQgZmxleGlibGVEYXRlR3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHk6IFRoeURhdGVHcmFudWxhcml0eSkge1xuICAgICAgICB0aGlzLmlubmVyZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgPSBncmFudWxhcml0eTtcbiAgICAgICAgdGhpcy51cGRhdGVSZWFkYWJsZURhdGUodGhpcy5pbm5lclZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB9XG5cbiAgICBzZXQgdmFsdWUodmFsdWU6IFRpbnlEYXRlIHwgVGlueURhdGVbXSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlmICghdGhpcy5lbnRlcmluZykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSZWFkYWJsZURhdGUodGhpcy5pbm5lclZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5uZXJmbGV4aWJsZURhdGVHcmFudWxhcml0eTogVGh5RGF0ZUdyYW51bGFyaXR5O1xuXG4gICAgcHJpdmF0ZSBpbm5lckZvcm1hdDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBpbm5lclZhbHVlOiBUaW55RGF0ZSB8IFRpbnlEYXRlW10gfCBudWxsO1xuXG4gICAgZW50ZXJpbmcgPSBmYWxzZTtcblxuICAgIHByZWZpeENscyA9ICd0aHktY2FsZW5kYXInO1xuXG4gICAgaXNTaG93RGF0ZVBvcHVwID0gZmFsc2U7XG5cbiAgICBvdmVybGF5T3BlbiA9IGZhbHNlOyAvLyBBdmFpbGFibGUgd2hlbiBcIm9wZW5cIj11bmRlZmluZWRcblxuICAgIG92ZXJsYXlQb3NpdGlvbnMgPSBnZXRGbGV4aWJsZVBvc2l0aW9ucyh0aGlzLnBsYWNlbWVudCwgNCk7XG5cbiAgICBnZXQgcmVhbE9wZW5TdGF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgLy8gVGhlIHZhbHVlIHRoYXQgcmVhbGx5IGRlY2lkZSB0aGUgb3BlbiBzdGF0ZSBvZiBvdmVybGF5XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3BlbkhhbmRsZWRCeVVzZXIoKSA/ICEhdGhpcy5vcGVuIDogdGhpcy5vdmVybGF5T3BlbjtcbiAgICB9XG5cbiAgICBnZXQgcmVhZG9ubHlTdGF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSYW5nZSB8fCB0aGlzLnJlYWRvbmx5IHx8IHRoaXMubW9kZSAhPT0gJ2RhdGUnO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgLy8gb3BlbiBieSB1c2VyXG4gICAgICAgIGlmIChjaGFuZ2VzLm9wZW4gJiYgY2hhbmdlcy5vcGVuLmN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlcy5vcGVuLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0RhdGVQb3B1cCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRGF0ZVBvcHVwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3ZlcmxheVBvc2l0aW9ucyA9IGdldEZsZXhpYmxlUG9zaXRpb25zKHRoaXMucGxhY2VtZW50LCA0KTtcbiAgICAgICAgaWYgKHRoaXMuYXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5waWNrZXJJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25CbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHRoaXMuYmx1ci5lbWl0KGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuZW50ZXJpbmcpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnBpY2tlcklucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW50ZXJpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbklucHV0KGV2ZW50OiBJbnB1dEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZW50ZXJpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudClbJ3ZhbHVlJ107XG4gICAgICAgIHRoaXMuaW5wdXRDaGFuZ2UuZW1pdChpbnB1dFZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkVudGVyKCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seVN0YXRlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMucGlja2VySW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSB8fCB0aGlzLmdldFJlYWRhYmxlVmFsdWUobmV3IFRpbnlEYXRlKCkpKTtcbiAgICAgICAgdGhpcy5lbnRlcmluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHNob3dPdmVybGF5KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucmVhbE9wZW5TdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5T3BlbiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNob3dEYXRlUG9wdXAoKTtcblxuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodGhpcy5vdmVybGF5T3Blbik7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jZGtDb25uZWN0ZWRPdmVybGF5ICYmIHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheS5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheS5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoaWRlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhbE9wZW5TdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5T3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jbG9zZURhdGVQb3B1cCgpO1xuXG4gICAgICAgICAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdCh0aGlzLm92ZXJsYXlPcGVuKTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dEYXRlUG9wdXAoKSB7XG4gICAgICAgIHRoaXMuaXNTaG93RGF0ZVBvcHVwID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBjbG9zZURhdGVQb3B1cCgpIHtcbiAgICAgICAgLy8gRGVsYXkgMjAwbXMgYmVmb3JlIGRlc3Ryb3lpbmcgdGhlIGRhdGUtcG9wdXAsIG90aGVyd2lzZSB5b3Ugd2lsbCBub3Qgc2VlIHRoZSBjbG9zaW5nIGFuaW1hdGlvbi5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0RhdGVQb3B1cCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSwgMjAwKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrSW5wdXRCb3goKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSAmJiAhdGhpcy5pc09wZW5IYW5kbGVkQnlVc2VyKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd092ZXJsYXkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2xpY2tCYWNrZHJvcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uT3ZlcmxheURldGFjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uUG9zaXRpb25DaGFuZ2UocG9zaXRpb246IENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrQ2xlYXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdGhpcy5pc1JhbmdlID8gW10gOiBudWxsO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXRQYXJ0VHlwZUluZGV4KHBhcnRUeXBlOiBSYW5nZVBhcnRUeXBlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHsgbGVmdDogMCwgcmlnaHQ6IDEgfVtwYXJ0VHlwZV07XG4gICAgfVxuXG4gICAgaXNFbXB0eVZhbHVlKHZhbHVlOiBDb21wYXRpYmxlVmFsdWUgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICAgICAgICByZXR1cm4gIXZhbHVlIHx8ICFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5ldmVyeSh2YWwgPT4gIXZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gIXZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gV2hldGhlciBvcGVuIHN0YXRlIGlzIHBlcm1hbmVudGx5IGNvbnRyb2xsZWQgYnkgdXNlciBoaW1zZWxmXG4gICAgaXNPcGVuSGFuZGxlZEJ5VXNlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlbiAhPT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldFJlYWRhYmxlVmFsdWUodGlueURhdGU6IFRpbnlEYXRlIHwgVGlueURhdGVbXSk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBsZXQgdmFsdWU6IFRpbnlEYXRlO1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mbGV4aWJsZSAmJiB0aGlzLmlubmVyZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgIT09ICdkYXknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldEZsZXhpYmxlQWR2YW5jZWRSZWFkYWJsZVZhbHVlKHRpbnlEYXRlIGFzIFRpbnlEYXRlW10sIHRoaXMuaW5uZXJmbGV4aWJsZURhdGVHcmFudWxhcml0eSwgdGhpcy5zZXBhcmF0b3IpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHRpbnlEYXRlWzBdID8gdGhpcy5mb3JtYXREYXRlKHRpbnlEYXRlWzBdKSA6ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHRpbnlEYXRlWzFdID8gdGhpcy5mb3JtYXREYXRlKHRpbnlEYXRlWzFdKSA6ICcnO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGFydCAmJiBlbmQgPyBgJHtzdGFydH0ke3RoaXMuc2VwYXJhdG9yfSR7ZW5kfWAgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSB0aW55RGF0ZSBhcyBUaW55RGF0ZTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/IHRoaXMuZm9ybWF0RGF0ZSh2YWx1ZSkgOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9ybWF0RGF0ZSh2YWx1ZTogVGlueURhdGUpIHtcbiAgICAgICAgLy8gZGF0ZUhlbHBlci5mb3JtYXQoKSDkvb/nlKjnmoTmmK8gYW5ndWxhciDnmoQgZm9ybWF077yM5LiN5pSv5oyB5a2j5bqm77yM5L+u5pS555qE6K+d77yM5pS55Yqo5q+U6L6D5aSn44CCXG4gICAgICAgIC8vIOatpOWkhOmAmui/h+WvuSBpbm5lckZvcm1hdCDlgZrkuIvliKTmlq3vvIzlpoLmnpzmmK/lraPluqbnmoQgZm9ybWF077yM5L2/55SoIGRhdGUtZm5zIOeahCBmb3JtYXQoKVxuICAgICAgICBpZiAodGhpcy5pbm5lckZvcm1hdCAmJiAodGhpcy5pbm5lckZvcm1hdC5pbmNsdWRlcygncScpIHx8IHRoaXMuaW5uZXJGb3JtYXQuaW5jbHVkZXMoJ1EnKSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5mb3JtYXQodGhpcy5pbm5lckZvcm1hdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlSGVscGVyLmZvcm1hdCh2YWx1ZS5uYXRpdmVEYXRlLCB0aGlzLmlubmVyRm9ybWF0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmFuZ2UgJiYgdGhpcy5wbGFjZWhvbGRlciAmJiBBcnJheS5pc0FycmF5KHRoaXMucGxhY2Vob2xkZXIpXG4gICAgICAgICAgICA/ICh0aGlzLnBsYWNlaG9sZGVyIGFzIHN0cmluZ1tdKS5qb2luKHRoaXMuc2VwYXJhdG9yKVxuICAgICAgICAgICAgOiAodGhpcy5wbGFjZWhvbGRlciBhcyBzdHJpbmcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUmVhZGFibGVEYXRlKHNldFZhbHVlOiBUaW55RGF0ZSB8IFRpbnlEYXRlW10gfCBudWxsKSB7XG4gICAgICAgIGNvbnN0IHJlYWRhYmxlVmFsdWUgPSB0aGlzLmdldFJlYWRhYmxlVmFsdWUoc2V0VmFsdWUpO1xuICAgICAgICBpZiAocmVhZGFibGVWYWx1ZSA9PT0gdGhpcy5waWNrZXJJbnB1dC5uYXRpdmVFbGVtZW50Wyd2YWx1ZSddKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBpY2tlcklucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSByZWFkYWJsZVZhbHVlO1xuICAgIH1cbn1cbiIsIjxzcGFuXG4gIGNka092ZXJsYXlPcmlnaW5cbiAgI29yaWdpbj1cImNka092ZXJsYXlPcmlnaW5cIlxuICBjbGFzcz1cInt7IHByZWZpeENscyB9fS1waWNrZXIge3sgc2l6ZSA/IHByZWZpeENscyArICctcGlja2VyLScgKyBzaXplIDogJycgfX0ge3sgY2xhc3NOYW1lIH19XCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2tJbnB1dEJveCgpXCI+XG4gIDxuZy1jb250YWluZXI+XG4gICAgPGlucHV0XG4gICAgICAjcGlja2VySW5wdXRcbiAgICAgIHRoeUlucHV0XG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbC17eyBzaXplIH19IGZvcm0tY29udHJvbCB7eyBwcmVmaXhDbHMgfX0tcGlja2VyLWlucHV0XCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3BhbmVsLWlzLW9wZW5lZCc6IHJlYWxPcGVuU3RhdGUgfVwiXG4gICAgICBbdGh5U2l6ZV09XCJzaXplXCJcbiAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICBbY2xhc3MudGh5LWlucHV0LWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy50aHktaW5wdXQtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVN0YXRlXCJcbiAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBnZXRQbGFjZWhvbGRlcigpIH19XCJcbiAgICAgIHRoeUVudGVyXG4gICAgICAodGh5RW50ZXIpPVwib25FbnRlcigpXCIgLz5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHBsUmlnaHRSZXN0XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9zcGFuPlxuXG48IS0tIFJpZ2h0IG9wZXJhdG9yIGljb25zIC0tPlxuPG5nLXRlbXBsYXRlICN0cGxSaWdodFJlc3Q+XG4gIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXBpY2tlci1jbGVhclwiPlxuICAgIEBpZiAoIWRpc2FibGVkICYmICFpc0VtcHR5VmFsdWUodmFsdWUpICYmIGFsbG93Q2xlYXIgJiYgIXJlYWRvbmx5KSB7XG4gICAgICA8dGh5LWljb25cbiAgICAgICAgdGh5SWNvbk5hbWU9XCJjbG9zZS1jaXJjbGUtYm9sZC1maWxsXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tDbGVhcigkZXZlbnQpXCJcbiAgICAgIG5nQ2xhc3M9XCJyZW1vdmUtbGluayByZW1vdmUtbGluay17eyBzaXplIH19XCI+PC90aHktaWNvbj5cbiAgICB9XG4gIDwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tcGlja2VyLWljb25cIj5cbiAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cInN1ZmZpeEljb25cIiBuZ0NsYXNzPVwicmVtb3ZlLWxpbmste3sgc2l6ZSA/IHNpemUgOiAnZGVmYXVsdCcgfX1cIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIE92ZXJsYXkgLS0+XG48bmctdGVtcGxhdGVcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwicmVhbE9wZW5TdGF0ZVwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BdPVwiaGFzQmFja2Ryb3BcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJvdmVybGF5UG9zaXRpb25zXCJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlUcmFuc2Zvcm1PcmlnaW5Pbj1cIi50aHktcGlja2VyLWNvbnRhaW5lclwiXG4gIChwb3NpdGlvbkNoYW5nZSk9XCJvblBvc2l0aW9uQ2hhbmdlKCRldmVudClcIlxuICAoYmFja2Ryb3BDbGljayk9XCJvbkNsaWNrQmFja2Ryb3AoKVwiXG4gIChkZXRhY2gpPVwib25PdmVybGF5RGV0YWNoKClcIj5cbiAgPGRpdlxuICAgICNvdmVybGF5Q29udGFpbmVyXG4gICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIlxuICAgIGNsYXNzPVwidGh5LXBpY2tlci1jb250YWluZXJcIlxuICAgIFtAc2NhbGVYTW90aW9uXT1cInBsYWNlbWVudCA9PT0gJ2xlZnQnIHx8IHBsYWNlbWVudCA9PT0gJ3JpZ2h0JyA/ICdlbnRlcicgOiAndm9pZCdcIlxuICAgIFtAc2NhbGVZTW90aW9uXT1cInBsYWNlbWVudCA9PT0gJ3RvcCcgfHwgcGxhY2VtZW50ID09PSAnYm90dG9tJyA/ICdlbnRlcicgOiAndm9pZCdcIlxuICAgIFtAc2NhbGVNb3Rpb25dPVwicGxhY2VtZW50ICE9PSAnbGVmdCcgJiYgcGxhY2VtZW50ICE9PSAncmlnaHQnICYmIHBsYWNlbWVudCAhPT0gJ3RvcCcgJiYgcGxhY2VtZW50ICE9PSAnYm90dG9tJyA/ICdlbnRlcicgOiAndm9pZCdcIj5cbiAgICA8IS0tIENvbXBhdGlibGUgZm9yIG92ZXJsYXkgdGhhdCBub3Qgc3VwcG9ydCBvZmZzZXQgZHluYW1pY2FsbHkgYW5kIGltbWVkaWF0ZWx5IC0tPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,30 +1,34 @@
|
|
|
1
1
|
import { Pipe, inject } from '@angular/core';
|
|
2
2
|
import { TinyDate } from 'ngx-tethys/util';
|
|
3
3
|
import { DateHelperService } from './date-helper.service';
|
|
4
|
+
import { ThyDatePickerConfigService } from './date-picker.service';
|
|
4
5
|
import { getFlexibleAdvancedReadableValue, transformDateValue } from './picker.util';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "./date-picker.service";
|
|
6
8
|
/**
|
|
7
9
|
* @private
|
|
8
10
|
*/
|
|
9
11
|
export class ThyDatePickerFormatPipe {
|
|
10
12
|
constructor() {
|
|
11
13
|
this.dateHelper = inject(DateHelperService);
|
|
14
|
+
this.datePickerConfigService = inject(ThyDatePickerConfigService);
|
|
12
15
|
}
|
|
13
|
-
transform(originalValue, formatStr) {
|
|
16
|
+
transform(originalValue, formatStr, separator) {
|
|
14
17
|
const { value, withTime, flexibleDateGranularity } = transformDateValue(originalValue);
|
|
15
18
|
if (!formatStr) {
|
|
16
19
|
formatStr = withTime ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';
|
|
17
20
|
}
|
|
21
|
+
const currentSeparator = ` ${(separator ?? this.datePickerConfigService.separator)?.trim()} `;
|
|
18
22
|
if (!Array.isArray(value)) {
|
|
19
23
|
return this.dateHelper.format(value, formatStr);
|
|
20
24
|
}
|
|
21
25
|
else {
|
|
22
26
|
if (flexibleDateGranularity && flexibleDateGranularity !== 'day') {
|
|
23
27
|
const tinyDates = [new TinyDate(value[0]), new TinyDate(value[1])];
|
|
24
|
-
return getFlexibleAdvancedReadableValue(tinyDates, flexibleDateGranularity);
|
|
28
|
+
return getFlexibleAdvancedReadableValue(tinyDates, flexibleDateGranularity, currentSeparator);
|
|
25
29
|
}
|
|
26
30
|
else {
|
|
27
|
-
return value.map(date => this.dateHelper.format(date, formatStr)).join(
|
|
31
|
+
return value.map(date => this.dateHelper.format(date, formatStr)).join(currentSeparator);
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
34
|
}
|
|
@@ -39,7 +43,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
39
43
|
}]
|
|
40
44
|
}] });
|
|
41
45
|
export class ThyQuarterPickerFormatPipe {
|
|
42
|
-
|
|
46
|
+
constructor(datePickerConfigService) {
|
|
47
|
+
this.datePickerConfigService = datePickerConfigService;
|
|
48
|
+
}
|
|
49
|
+
transform(originalValue, formatStr, separator) {
|
|
43
50
|
const { value, withTime } = transformDateValue(originalValue);
|
|
44
51
|
if (!formatStr) {
|
|
45
52
|
formatStr = 'yyyy-qqq';
|
|
@@ -57,10 +64,10 @@ export class ThyQuarterPickerFormatPipe {
|
|
|
57
64
|
const _date = new TinyDate(date);
|
|
58
65
|
return _date.format(formatStr);
|
|
59
66
|
})
|
|
60
|
-
.join(
|
|
67
|
+
.join(` ${(separator ?? this.datePickerConfigService.separator)?.trim()} `);
|
|
61
68
|
}
|
|
62
69
|
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyQuarterPickerFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyQuarterPickerFormatPipe, deps: [{ token: i1.ThyDatePickerConfigService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
64
71
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ThyQuarterPickerFormatPipe, isStandalone: true, name: "thyQuarterPickerFormat" }); }
|
|
65
72
|
}
|
|
66
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyQuarterPickerFormatPipe, decorators: [{
|
|
@@ -69,7 +76,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
69
76
|
name: 'thyQuarterPickerFormat',
|
|
70
77
|
standalone: true
|
|
71
78
|
}]
|
|
72
|
-
}] });
|
|
79
|
+
}], ctorParameters: () => [{ type: i1.ThyDatePickerConfigService }] });
|
|
73
80
|
/**
|
|
74
81
|
* @private
|
|
75
82
|
*/
|
|
@@ -109,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
109
116
|
standalone: true
|
|
110
117
|
}]
|
|
111
118
|
}], ctorParameters: () => [] });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLnBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL3BpY2tlci5waXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5FLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBR3JGOztHQUVHO0FBS0gsTUFBTSxPQUFPLHVCQUF1QjtJQUpwQztRQUtZLGVBQVUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN2Qyw0QkFBdUIsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztLQW9CeEU7SUFsQkcsU0FBUyxDQUFDLGFBQTZELEVBQUUsU0FBa0IsRUFBRSxTQUFrQjtRQUMzRyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZGLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNiLFNBQVMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDN0QsQ0FBQztRQUNELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztRQUM5RixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lB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QUFDO29CQUNGLElBQUksRUFBRSwyQkFBMkI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7QUFXRDs7R0FFRztBQUtILE1BQU0sT0FBTyxpQ0FBaUM7SUFDMUMsZ0JBQWUsQ0FBQztJQUNoQixTQUFTLENBQUMsS0FBNkIsRUFBRSxJQUF3QjtRQUM3RCxPQUFPLElBQUksS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7K0dBSlEsaUNBQWlDOzZHQUFqQyxpQ0FBaUM7OzRGQUFqQyxpQ0FBaUM7a0JBSjdDLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGlueURhdGUgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgRGF0ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuL2RhdGUtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGh5RGF0ZVBpY2tlckNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2RhdGUtcGlja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWR2YW5jZWRTZWxlY3RhYmxlQ2VsbCB9IGZyb20gJy4vaW5uZXItdHlwZXMnO1xuaW1wb3J0IHsgZ2V0RmxleGlibGVBZHZhbmNlZFJlYWRhYmxlVmFsdWUsIHRyYW5zZm9ybURhdGVWYWx1ZSB9IGZyb20gJy4vcGlja2VyLnV0aWwnO1xuaW1wb3J0IHsgQ29tcGF0aWJsZURhdGUsIERhdGVFbnRyeSwgVGh5RGF0ZUdyYW51bGFyaXR5LCBUaHlEYXRlUmFuZ2VFbnRyeSB9IGZyb20gJy4vc3RhbmRhcmQtdHlwZXMnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAndGh5RGF0ZVBpY2tlckZvcm1hdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlEYXRlUGlja2VyRm9ybWF0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHByaXZhdGUgZGF0ZUhlbHBlciA9IGluamVjdChEYXRlSGVscGVyU2VydmljZSk7XG4gICAgcHJpdmF0ZSBkYXRlUGlja2VyQ29uZmlnU2VydmljZSA9IGluamVjdChUaHlEYXRlUGlja2VyQ29uZmlnU2VydmljZSk7XG5cbiAgICB0cmFuc2Zvcm0ob3JpZ2luYWxWYWx1ZTogQ29tcGF0aWJsZURhdGUgfCBEYXRlRW50cnkgfCBUaHlEYXRlUmFuZ2VFbnRyeSwgZm9ybWF0U3RyPzogc3RyaW5nLCBzZXBhcmF0b3I/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7IHZhbHVlLCB3aXRoVGltZSwgZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgfSA9IHRyYW5zZm9ybURhdGVWYWx1ZShvcmlnaW5hbFZhbHVlKTtcblxuICAgICAgICBpZiAoIWZvcm1hdFN0cikge1xuICAgICAgICAgICAgZm9ybWF0U3RyID0gd2l0aFRpbWUgPyAneXl5eS1NTS1kZCBISDptbScgOiAneXl5eS1NTS1kZCc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFNlcGFyYXRvciA9IGAgJHsoc2VwYXJhdG9yID8/IHRoaXMuZGF0ZVBpY2tlckNvbmZpZ1NlcnZpY2Uuc2VwYXJhdG9yKT8udHJpbSgpfSBgO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlSGVscGVyLmZvcm1hdCh2YWx1ZSwgZm9ybWF0U3RyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmbGV4aWJsZURhdGVHcmFudWxhcml0eSAmJiBmbGV4aWJsZURhdGVHcmFudWxhcml0eSAhPT0gJ2RheScpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aW55RGF0ZXMgPSBbbmV3IFRpbnlEYXRlKHZhbHVlWzBdKSwgbmV3IFRpbnlEYXRlKHZhbHVlWzFdKV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldEZsZXhpYmxlQWR2YW5jZWRSZWFkYWJsZVZhbHVlKHRpbnlEYXRlcywgZmxleGlibGVEYXRlR3JhbnVsYXJpdHksIGN1cnJlbnRTZXBhcmF0b3IpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGRhdGUgPT4gdGhpcy5kYXRlSGVscGVyLmZvcm1hdChkYXRlLCBmb3JtYXRTdHIpKS5qb2luKGN1cnJlbnRTZXBhcmF0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3RoeVF1YXJ0ZXJQaWNrZXJGb3JtYXQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5UXVhcnRlclBpY2tlckZvcm1hdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGVQaWNrZXJDb25maWdTZXJ2aWNlOiBUaHlEYXRlUGlja2VyQ29uZmlnU2VydmljZSkge31cblxuICAgIHRyYW5zZm9ybShvcmlnaW5hbFZhbHVlOiBDb21wYXRpYmxlRGF0ZSB8IERhdGVFbnRyeSB8IFRoeURhdGVSYW5nZUVudHJ5LCBmb3JtYXRTdHI/OiBzdHJpbmcsIHNlcGFyYXRvcj86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIHdpdGhUaW1lIH0gPSB0cmFuc2Zvcm1EYXRlVmFsdWUob3JpZ2luYWxWYWx1ZSk7XG5cbiAgICAgICAgaWYgKCFmb3JtYXRTdHIpIHtcbiAgICAgICAgICAgIGZvcm1hdFN0ciA9ICd5eXl5LXFxcSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBfdmFsdWUgPSBuZXcgVGlueURhdGUodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIF92YWx1ZS5mb3JtYXQoZm9ybWF0U3RyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgICAgIC5tYXAoZGF0ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IF9kYXRlID0gbmV3IFRpbnlEYXRlKGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2RhdGUuZm9ybWF0KGZvcm1hdFN0cik7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuam9pbihgICR7KHNlcGFyYXRvciA/PyB0aGlzLmRhdGVQaWNrZXJDb25maWdTZXJ2aWNlLnNlcGFyYXRvcik/LnRyaW0oKX0gYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICd0aHlEYXRlUGlja2VyRm9ybWF0U3RyaW5nJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeURhdGVQaWNrZXJGb3JtYXRTdHJpbmdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHJpdmF0ZSBkYXRlSGVscGVyID0gaW5qZWN0KERhdGVIZWxwZXJTZXJ2aWNlKTtcblxuICAgIHRyYW5zZm9ybShvcmlnaW5hbFZhbHVlOiBDb21wYXRpYmxlRGF0ZSB8IERhdGVFbnRyeSB8IFRoeURhdGVSYW5nZUVudHJ5KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyB3aXRoVGltZSB9ID0gdHJhbnNmb3JtRGF0ZVZhbHVlKG9yaWdpbmFsVmFsdWUpO1xuXG4gICAgICAgIHJldHVybiB3aXRoVGltZSA/ICd5eXl5LU1NLWRkIEhIOm1tJyA6ICd5eXl5LU1NLWRkJztcbiAgICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdzaG93WWVhclRpcCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQWR2YW5jZWRTaG93WWVhclRpcFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcigpIHt9XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsLCB0eXBlOiBUaHlEYXRlR3JhbnVsYXJpdHkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGUgIT09ICd5ZWFyJyAmJiB2YWx1ZS5zdGFydFZhbHVlLmlzU2FtZURheSh2YWx1ZS5zdGFydFZhbHVlLnN0YXJ0T2ZZZWFyKCkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -45,7 +45,7 @@ export function transformDateValue(value) {
|
|
|
45
45
|
}
|
|
46
46
|
return { value: value, withTime, flexibleDateGranularity };
|
|
47
47
|
}
|
|
48
|
-
export function getFlexibleAdvancedReadableValue(tinyDates, flexibleDateGranularity) {
|
|
48
|
+
export function getFlexibleAdvancedReadableValue(tinyDates, flexibleDateGranularity, separator) {
|
|
49
49
|
let value = '';
|
|
50
50
|
if (!tinyDates[0] || !tinyDates[1]) {
|
|
51
51
|
return value;
|
|
@@ -53,26 +53,26 @@ export function getFlexibleAdvancedReadableValue(tinyDates, flexibleDateGranular
|
|
|
53
53
|
switch (flexibleDateGranularity) {
|
|
54
54
|
case 'year':
|
|
55
55
|
if (tinyDates[0].isSameYear(tinyDates[1])) {
|
|
56
|
-
value = `${tinyDates[0].
|
|
56
|
+
value = `${tinyDates[0].format('yyyy')}`;
|
|
57
57
|
}
|
|
58
58
|
else {
|
|
59
|
-
value = `${tinyDates[0].
|
|
59
|
+
value = `${tinyDates[0].format('yyyy')}${separator}${tinyDates[1].format('yyyy')}`;
|
|
60
60
|
}
|
|
61
61
|
break;
|
|
62
62
|
case 'quarter':
|
|
63
63
|
if (tinyDates[0].isSameQuarter(tinyDates[1])) {
|
|
64
|
-
value = `${tinyDates[0].
|
|
64
|
+
value = `${tinyDates[0].format('yyyy-qqq')}`;
|
|
65
65
|
}
|
|
66
66
|
else {
|
|
67
|
-
value = `${tinyDates[0].
|
|
67
|
+
value = `${tinyDates[0].format('yyyy-qqq')}${separator}${tinyDates[1].format('yyyy-qqq')}`;
|
|
68
68
|
}
|
|
69
69
|
break;
|
|
70
70
|
case 'month':
|
|
71
71
|
if (tinyDates[0].isSameMonth(tinyDates[1])) {
|
|
72
|
-
value = `${tinyDates[0].
|
|
72
|
+
value = `${tinyDates[0].format('yyyy-MM')}`;
|
|
73
73
|
}
|
|
74
74
|
else {
|
|
75
|
-
value = `${tinyDates[0].
|
|
75
|
+
value = `${tinyDates[0].format('yyyy-MM')}${separator}${tinyDates[1].format('yyyy-MM')}`;
|
|
76
76
|
}
|
|
77
77
|
break;
|
|
78
78
|
}
|
|
@@ -217,4 +217,4 @@ export function setValueByTimestampPrecision(date, isRange, timestampPrecision)
|
|
|
217
217
|
return isRange ? coerceArray(value).map(val => new TinyDate(val).getUnixTime()) : new TinyDate(value)?.getUnixTime();
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvcGlja2VyLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJakUsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQXFHO0lBS3BJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNULE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksUUFBUSxFQUFFLHVCQUEyQyxDQUFDO0lBQzFELElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksS0FBSyxJQUFJLHlCQUF5QixDQUFDLEtBQXdCLENBQUMsRUFBRSxDQUFDO1FBQy9ELElBQUksS0FBSyxZQUFZLFFBQVEsRUFBRSxDQUFDO1lBQzVCLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLEtBQUssSUFBSSxtQkFBbUIsQ0FBQyxLQUFrQixDQUFDLEVBQUUsQ0FBQztRQUNuRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQWtCLENBQUM7UUFDL0Ms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QUM7SUFDeEgsQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLEtBQWEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2pJLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FmZUFueSB9IGZyb20gJ25neC10ZXRoeXMvdHlwZXMnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXksIGhlbHBlcnMsIFRpbnlEYXRlIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IENvbXBhdGlibGVWYWx1ZSwgUmFuZ2VBZHZhbmNlZFZhbHVlIH0gZnJvbSAnLi9pbm5lci10eXBlcyc7XG5pbXBvcnQgeyBDb21wYXRpYmxlRGF0ZSwgRGF0ZUVudHJ5LCBUaHlEYXRlR3JhbnVsYXJpdHksIFRoeURhdGVSYW5nZUVudHJ5LCBUaHlQYW5lbE1vZGUsIFRoeVNob3J0Y3V0VmFsdWUgfSBmcm9tICcuL3N0YW5kYXJkLXR5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybURhdGVWYWx1ZSh2YWx1ZTogQ29tcGF0aWJsZURhdGUgfCBDb21wYXRpYmxlVmFsdWUgfCBudW1iZXIgfCBEYXRlRW50cnkgfCBUaHlEYXRlUmFuZ2VFbnRyeSB8IFJhbmdlQWR2YW5jZWRWYWx1ZSk6IHtcbiAgICB2YWx1ZTogQ29tcGF0aWJsZURhdGU7XG4gICAgd2l0aFRpbWU/OiBib29sZWFuO1xuICAgIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5PzogVGh5RGF0ZUdyYW51bGFyaXR5O1xufSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm4geyB2YWx1ZTogbnVsbCB9O1xuICAgIH1cbiAgICBsZXQgd2l0aFRpbWUsIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5OiBUaHlEYXRlR3JhbnVsYXJpdHk7XG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgdmFsdWUgPSBjb252ZXJ0RGF0ZSh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAmJiBpbnN0YW5jZU9mQ29tcGF0aWJsZVZhbHVlKHZhbHVlIGFzIENvbXBhdGlibGVWYWx1ZSkpIHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVGlueURhdGUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gY29udmVydERhdGUodmFsdWUubmF0aXZlRGF0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZVswXSA9IGNvbnZlcnREYXRlKHZhbHVlWzBdLm5hdGl2ZURhdGUpO1xuICAgICAgICAgICAgdmFsdWVbMV0gPSBjb252ZXJ0RGF0ZSh2YWx1ZVsxXS5uYXRpdmVEYXRlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodmFsdWUgJiYgaW5zdGFuY2VPZkRhdGVFbnRyeSh2YWx1ZSBhcyBEYXRlRW50cnkpKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0ZSwgd2l0aF90aW1lIH0gPSB2YWx1ZSBhcyBEYXRlRW50cnk7XG4gICAgICAgIHZhbHVlID0gZGF0ZSA/IGNvbnZlcnREYXRlKGRhdGUpIDogbnVsbDtcbiAgICAgICAgd2l0aFRpbWUgPSAhIXdpdGhfdGltZTtcbiAgICB9XG4gICAgaWYgKHZhbHVlICYmIGluc3RhbmNlT2ZSYW5nZUVudHJ5KHZhbHVlIGFzIFRoeURhdGVSYW5nZUVudHJ5KSkge1xuICAgICAgICBjb25zdCByYW5nZVZhbHVlID0gdmFsdWUgYXMgVGh5RGF0ZVJhbmdlRW50cnk7XG4gICAgICAgIHZhbHVlID0gW107XG4gICAgICAgIGlmIChyYW5nZVZhbHVlLmJlZ2luICYmIHJhbmdlVmFsdWUuZW5kKSB7XG4gICAgICAgICAgICB2YWx1ZVswXSA9IGNvbnZlcnREYXRlKHJhbmdlVmFsdWUuYmVnaW4pO1xuICAgICAgICAgICAgdmFsdWVbMV0gPSBjb252ZXJ0RGF0ZShyYW5nZVZhbHVlLmVuZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJhbmdlVmFsdWUuZ3JhbnVsYXJpdHkpIHtcbiAgICAgICAgICAgIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5ID0gcmFuZ2VWYWx1ZS5ncmFudWxhcml0eTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSAmJiBpbnN0YW5jZU9mUmFuZ2VBZHZhbmNlZFZhbHVlKHZhbHVlIGFzIFJhbmdlQWR2YW5jZWRWYWx1ZSkpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VWYWx1ZSA9IHZhbHVlIGFzIFJhbmdlQWR2YW5jZWRWYWx1ZTtcbiAgICAgICAgaWYgKHJhbmdlVmFsdWUuZGF0ZUdyYW51bGFyaXR5KSB7XG4gICAgICAgICAgICBmbGV4aWJsZURhdGVHcmFudWxhcml0eSA9IHJhbmdlVmFsdWUuZGF0ZUdyYW51bGFyaXR5O1xuICAgICAgICB9XG4gICAgICAgIHZhbHVlID0gW107XG4gICAgICAgIGlmIChyYW5nZVZhbHVlLmJlZ2luICYmIHJhbmdlVmFsdWUuZW5kKSB7XG4gICAgICAgICAgICB2YWx1ZVswXSA9IGNvbnZlcnREYXRlKHJhbmdlVmFsdWUuYmVnaW4ubmF0aXZlRGF0ZSk7XG4gICAgICAgICAgICB2YWx1ZVsxXSA9IGNvbnZlcnREYXRlKHJhbmdlVmFsdWUuZW5kLm5hdGl2ZURhdGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHZhbHVlOiB2YWx1ZSBhcyBDb21wYXRpYmxlRGF0ZSwgd2l0aFRpbWUsIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5IH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGbGV4aWJsZUFkdmFuY2VkUmVhZGFibGVWYWx1ZSh0aW55RGF0ZXM6IFRpbnlEYXRlW10sIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5OiBUaHlEYXRlR3JhbnVsYXJpdHkpIHtcbiAgICBsZXQgdmFsdWUgPSAnJztcbiAgICBpZiAoIXRpbnlEYXRlc1swXSB8fCAhdGlueURhdGVzWzFdKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgc3dpdGNoIChmbGV4aWJsZURhdGVHcmFudWxhcml0eSkge1xuICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgIGlmICh0aW55RGF0ZXNbMF0uaXNTYW1lWWVhcih0aW55RGF0ZXNbMV0pKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBgJHt0aW55RGF0ZXNbMF0uZ2V0WWVhcigpfeW5tGA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gYCR7dGlueURhdGVzWzBdLmdldFllYXIoKX3lubQg772eICR7dGlueURhdGVzWzFdLmdldFllYXIoKX3lubRgO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgaWYgKHRpbnlEYXRlc1swXS5pc1NhbWVRdWFydGVyKHRpbnlEYXRlc1sxXSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGAke3RpbnlEYXRlc1swXS5nZXRZZWFyKCl95bm0IFEke3RpbnlEYXRlc1swXS5nZXRRdWFydGVyKCl9YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBgJHt0aW55RGF0ZXNbMF0uZ2V0WWVhcigpfeW5tCBRJHt0aW55RGF0ZXNbMF0uZ2V0UXVhcnRlcigpfSB+ICR7dGlueURhdGVzWzFdLmdldFllYXIoKX3lubQgUSR7dGlueURhdGVzWzFdLmdldFF1YXJ0ZXIoKX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgIGlmICh0aW55RGF0ZXNbMF0uaXNTYW1lTW9udGgodGlueURhdGVzWzFdKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gYCR7dGlueURhdGVzWzBdLmdldFllYXIoKX3lubQgJHt0aW55RGF0ZXNbMF0uZ2V0TW9udGgoKSArIDF95pyIYDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBgJHt0aW55RGF0ZXNbMF0uZ2V0WWVhcigpfeW5tCAke3RpbnlEYXRlc1swXS5nZXRNb250aCgpICsgMX3mnIggfiAke3RpbnlEYXRlc1sxXS5nZXRZZWFyKCl95bm0ICR7XG4gICAgICAgICAgICAgICAgICAgIHRpbnlEYXRlc1sxXS5nZXRNb250aCgpICsgMVxuICAgICAgICAgICAgICAgIH3mnIhgO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnREYXRlKGRhdGU6IERhdGUgfCBudW1iZXIgfCBUaW55RGF0ZSk6IERhdGUge1xuICAgIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgaWYgKGRhdGUudG9TdHJpbmcoKS5sZW5ndGggPCAxMykge1xuICAgICAgICAgICAgcmV0dXJuIFRpbnlEYXRlLmZyb21Vbml4VGltZShkYXRlKT8ubmF0aXZlRGF0ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoZGF0ZSk/Lm5hdGl2ZURhdGU7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRhdGUgaW5zdGFuY2VvZiBUaW55RGF0ZSkge1xuICAgICAgICByZXR1cm4gZGF0ZT8ubmF0aXZlRGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGRhdGUpPy5uYXRpdmVEYXRlO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1ZhbHVlKHZhbHVlOiBDb21wYXRpYmxlVmFsdWUpOiBib29sZWFuIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICEhdmFsdWVbMF0gJiYgISF2YWx1ZVsxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gISF2YWx1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlVmFsdWUodmFsdWU6IENvbXBhdGlibGVEYXRlIHwgbnVsbCwgaXNSYW5nZTogYm9vbGVhbiA9IGZhbHNlKTogQ29tcGF0aWJsZVZhbHVlIHtcbiAgICBpZiAoaXNSYW5nZSkge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyAodmFsdWUgYXMgRGF0ZVtdKS5tYXAodmFsID0+IG5ldyBUaW55RGF0ZSh2YWwpKSA6IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA/IG5ldyBUaW55RGF0ZSh2YWx1ZSBhcyBEYXRlKSA6IG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUFkZEFtb3VudCh2YWx1ZTogVGlueURhdGUsIGFtb3VudDogbnVtYmVyLCBtb2RlOiBUaHlQYW5lbE1vZGUpOiBUaW55RGF0ZSB7XG4gICAgbGV0IGRhdGU6IFRpbnlEYXRlO1xuICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICBjYXNlICdkZWNhZGUnOlxuICAgICAgICAgICAgZGF0ZSA9IHZhbHVlLmFkZFllYXJzKGFtb3VudCAqIDEwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgIGRhdGUgPSB2YWx1ZS5hZGRZZWFycyhhbW91bnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgIGRhdGUgPSB2YWx1ZS5hZGRNb250aHMoYW1vdW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgZGF0ZSA9IHZhbHVlLmFkZE1vbnRocyhhbW91bnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xufVxuXG4vLyByaWdodERhdGUg6LaF6L+HIGxlZnREYXRlIOS4gOS4quaciFxuZXhwb3J0IGZ1bmN0aW9uIGlzQWZ0ZXJNb3JlVGhhbk9uZU1vbnRoKHJpZ2h0RGF0ZTogVGlueURhdGUsIGxlZnREYXRlOiBUaW55RGF0ZSkge1xuICAgIHJpZ2h0RGF0ZSA9IHJpZ2h0RGF0ZSA/IHJpZ2h0RGF0ZSA6IGxlZnREYXRlID8gbGVmdERhdGUgOiBuZXcgVGlueURhdGUoKTtcbiAgICBsZWZ0RGF0ZSA9IGxlZnREYXRlID8gbGVmdERhdGUgOiByaWdodERhdGU7XG4gICAgaWYgKHJpZ2h0RGF0ZS5nZXRZZWFyKCkgPCBsZWZ0RGF0ZS5nZXRZZWFyKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChyaWdodERhdGUuZ2V0WWVhcigpID09PSBsZWZ0RGF0ZS5nZXRZZWFyKCkgJiYgbGVmdERhdGUuZ2V0TW9udGgoKSArIDEgPj0gcmlnaHREYXRlLmdldE1vbnRoKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIOWkhOeQhnJpZ2h0RGF0ZSgyMDIwLDEsMSkg5Li6bGVmdERhdGUoMjAyMCwxMiwxKeWQjuS4gOW5tDHmnIgs5ZCM5pe2bGVmdERhdGXml6XmnJ/kuLoxMuaciOeahOeJueauiuaDheWGtVxuICAgIHJldHVybiAhKHJpZ2h0RGF0ZS5nZXRZZWFyKCkgLSBsZWZ0RGF0ZS5nZXRZZWFyKCkgPT09IDEgJiYgcmlnaHREYXRlLmdldE1vbnRoKCkgPT09IDAgJiYgbGVmdERhdGUuZ2V0TW9udGgoKSA9PT0gMTEpO1xufVxuXG4vLyByaWdodERhdGUg6LaF6L+HIGxlZnREYXRlIOS4jeWIsOS4gOW5tFxuZXhwb3J0IGZ1bmN0aW9uIGlzQWZ0ZXJNb3JlVGhhbkxlc3NPbmVZZWFyKHJpZ2h0RGF0ZTogVGlueURhdGUsIGxlZnREYXRlOiBUaW55RGF0ZSkge1xuICAgIHJpZ2h0RGF0ZSA9IHJpZ2h0RGF0ZSA/IHJpZ2h0RGF0ZSA6IGxlZnREYXRlID8gbGVmdERhdGUgOiBuZXcgVGlueURhdGUoKTtcbiAgICBsZWZ0RGF0ZSA9IGxlZnREYXRlID8gbGVmdERhdGUgOiByaWdodERhdGU7XG4gICAgaWYgKHJpZ2h0RGF0ZS5nZXRZZWFyKCkgPD0gbGVmdERhdGUuZ2V0WWVhcigpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8g5aSE55CGcmlnaHREYXRlKDIwMjEsMSwxKeaXpeacn+avlGxlZnREYXRlKDIwMjAsMTIsMSnml6XmnJ/lpKcx5bm0LOWQjOaXtnJpZ2h0RGF0ZeaXpeacn+aciOS7veWwj+S6jmxlZnREYXRl5pel5pyf5pyI5Lu955qE5oOF5Ya1XG4gICAgcmV0dXJuICEocmlnaHREYXRlLmdldFllYXIoKSAtIGxlZnREYXRlLmdldFllYXIoKSA9PT0gMSAmJiByaWdodERhdGUuZ2V0TW9udGgoKSA8PSBsZWZ0RGF0ZS5nZXRNb250aCgpKTtcbn1cblxuLy8gcmlnaHREYXRlIOi2hei/hyBsZWZ0RGF0ZSDkuIDlubRcbmV4cG9ydCBmdW5jdGlvbiBpc0FmdGVyTW9yZVRoYW5PbmVZZWFyKHJpZ2h0RGF0ZTogVGlueURhdGUsIGxlZnREYXRlOiBUaW55RGF0ZSkge1xuICAgIHJpZ2h0RGF0ZSA9IHJpZ2h0RGF0ZSA/IHJpZ2h0RGF0ZSA6IGxlZnREYXRlID8gbGVmdERhdGUgOiBuZXcgVGlueURhdGUoKTtcbiAgICBsZWZ0RGF0ZSA9IGxlZnREYXRlID8gbGVmdERhdGUgOiByaWdodERhdGU7XG4gICAgaWYgKGxlZnREYXRlLmdldFllYXIoKSArIDEgPj0gcmlnaHREYXRlLmdldFllYXIoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBZnRlck1vcmVUaGFuT25lRGVjYWRlKHJpZ2h0RGF0ZTogVGlueURhdGUsIGxlZnREYXRlOiBUaW55RGF0ZSkge1xuICAgIHJpZ2h0RGF0ZSA9IHJpZ2h0RGF0ZSA/IHJpZ2h0RGF0ZSA6IGxlZnREYXRlID8gbGVmdERhdGUgOiBuZXcgVGlueURhdGUoKTtcbiAgICBsZWZ0RGF0ZSA9IGxlZnREYXRlID8gbGVmdERhdGUgOiByaWdodERhdGU7XG4gICAgcmV0dXJuIHJpZ2h0RGF0ZS5nZXRZZWFyKCkgLSBsZWZ0RGF0ZS5nZXRZZWFyKCkgPj0gMjA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW5jZU9mRGF0ZUVudHJ5KG9iamVjdDogRGF0ZUVudHJ5KTogb2JqZWN0IGlzIERhdGVFbnRyeSB7XG4gICAgcmV0dXJuIGlzU3VwcG9ydERhdGVUeXBlKG9iamVjdCwgJ2RhdGUnKSAmJiB0eXBlb2Ygb2JqZWN0LndpdGhfdGltZSA9PT0gJ251bWJlcic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW5jZU9mUmFuZ2VFbnRyeShvYmplY3Q6IFRoeURhdGVSYW5nZUVudHJ5KTogb2JqZWN0IGlzIFRoeURhdGVSYW5nZUVudHJ5IHtcbiAgICByZXR1cm4gaXNTdXBwb3J0RGF0ZVR5cGUob2JqZWN0LCAnYmVnaW4nKSAmJiBpc1N1cHBvcnREYXRlVHlwZShvYmplY3QsICdlbmQnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbmNlT2ZDb21wYXRpYmxlVmFsdWUob2JqZWN0OiBDb21wYXRpYmxlVmFsdWUpOiBvYmplY3QgaXMgQ29tcGF0aWJsZVZhbHVlIHtcbiAgICByZXR1cm4gb2JqZWN0IGluc3RhbmNlb2YgVGlueURhdGUgfHwgb2JqZWN0WzBdIGluc3RhbmNlb2YgVGlueURhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW5jZU9mUmFuZ2VBZHZhbmNlZFZhbHVlKG9iamVjdDogUmFuZ2VBZHZhbmNlZFZhbHVlKTogb2JqZWN0IGlzIFJhbmdlQWR2YW5jZWRWYWx1ZSB7XG4gICAgcmV0dXJuIG9iamVjdFsnYmVnaW4nXSBpbnN0YW5jZW9mIFRpbnlEYXRlICYmIG9iamVjdFsnZW5kJ10gaW5zdGFuY2VvZiBUaW55RGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3VwcG9ydERhdGVUeXBlKG9iamVjdDogRGF0ZUVudHJ5IHwgVGh5RGF0ZVJhbmdlRW50cnksIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmplY3Rba2V5XSA9PT0gJ251bWJlcicgfHwgb2JqZWN0W2tleV0gPT09IG51bGwgfHwgb2JqZWN0W2tleV0gaW5zdGFuY2VvZiBEYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2hvcnRjdXRWYWx1ZSh2YWx1ZTogVGh5U2hvcnRjdXRWYWx1ZSk6IG51bWJlciB8IERhdGUge1xuICAgIHJldHVybiBoZWxwZXJzLmlzRnVuY3Rpb24odmFsdWUpID8gdmFsdWUoKSA6IHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFN0cmluZ0RhdGUoZGF0ZVN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGFyc2VEYXRlID0gcGFyc2VTdHJpbmdEYXRlKGRhdGVTdHIpLm5hdGl2ZURhdGUuZ2V0VGltZSgpO1xuICAgIHJldHVybiAhKHBhcnNlRGF0ZSA8IDAgfHwgaXNOYU4ocGFyc2VEYXRlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN0cmluZ0RhdGUoZGF0ZVN0cjogc3RyaW5nKTogVGlueURhdGUge1xuICAgIHJldHVybiBoYXNUaW1lSW5TdHJpbmdEYXRlKGRhdGVTdHIpID8gbmV3IFRpbnlEYXRlKGZpeFN0cmluZ0RhdGUoZGF0ZVN0cikpIDogbmV3IFRpbnlEYXRlKGZpeFN0cmluZ0RhdGUoZGF0ZVN0cikpLnN0YXJ0T2ZEYXkoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1RpbWVJblN0cmluZ0RhdGUoZGF0ZVN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZm9ybWF0RGF0ZSA9IGZpeFN0cmluZ0RhdGUoZGF0ZVN0cik7XG4gICAgY29uc3QgdGltZVJlZ2V4ID0gLyhcXGR7MSwyfTpcXGR7MSwyfSg6XFxkezEsMn0pPyl8KF5cXGR7MSwyfeaXtlxcZHsxLDJ95YiGKFxcZHsxLDJ956eSKT8pJC87XG4gICAgcmV0dXJuIHRpbWVSZWdleC50ZXN0KGZvcm1hdERhdGUpO1xufVxuXG5mdW5jdGlvbiBmaXhTdHJpbmdEYXRlKGRhdGVTdHI6IHN0cmluZykge1xuICAgIGxldCByZXBsYWNlZFN0ciA9IGRhdGVTdHIucmVwbGFjZSgvW14wLTlcXHMuLDpdL2csICctJykucmVwbGFjZSgnLSAnLCAnICcpO1xuICAgIGNvbnN0IGhhc1llYXIgPSAvXFxkezR9Ly50ZXN0KHJlcGxhY2VkU3RyKTtcbiAgICBpZiAoIWhhc1llYXIgfHwgcmVwbGFjZWRTdHIubGVuZ3RoIDwgJ3l5eXkuTS5kJy5sZW5ndGgpIHtcbiAgICAgICAgcmVwbGFjZWRTdHIgPSBgJHtuZXcgVGlueURhdGUoKS5nZXRZZWFyKCl9LSR7cmVwbGFjZWRTdHJ9YDtcbiAgICB9XG4gICAgcmV0dXJuIHJlcGxhY2VkU3RyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VmFsdWVCeVRpbWVzdGFtcFByZWNpc2lvbihcbiAgICBkYXRlOiBDb21wYXRpYmxlRGF0ZSB8IG51bWJlciB8IERhdGUgfCBEYXRlRW50cnkgfCBUaHlEYXRlUmFuZ2VFbnRyeSB8IFNhZmVBbnksXG4gICAgaXNSYW5nZTogYm9vbGVhbixcbiAgICB0aW1lc3RhbXBQcmVjaXNpb246ICdzZWNvbmRzJyB8ICdtaWxsaXNlY29uZHMnXG4pOiBudW1iZXIgfCBudW1iZXJbXSB7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gdHJhbnNmb3JtRGF0ZVZhbHVlKGRhdGUpO1xuICAgIGlmICghdmFsdWUgfHwgKGhlbHBlcnMuaXNBcnJheSh2YWx1ZSkgJiYgIXZhbHVlPy5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBoZWxwZXJzLmlzQXJyYXkodmFsdWUpID8gW251bGwsIG51bGxdIDogbnVsbDtcbiAgICB9XG4gICAgaWYgKHRpbWVzdGFtcFByZWNpc2lvbiA9PT0gJ21pbGxpc2Vjb25kcycpIHtcbiAgICAgICAgcmV0dXJuIGlzUmFuZ2UgPyBjb2VyY2VBcnJheSh2YWx1ZSkubWFwKHZhbCA9PiBuZXcgVGlueURhdGUodmFsKS5nZXRUaW1lKCkpIDogbmV3IFRpbnlEYXRlKHZhbHVlIGFzIERhdGUpLmdldFRpbWUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gaXNSYW5nZSA/IGNvZXJjZUFycmF5KHZhbHVlKS5tYXAodmFsID0+IG5ldyBUaW55RGF0ZSh2YWwpLmdldFVuaXhUaW1lKCkpIDogbmV3IFRpbnlEYXRlKHZhbHVlIGFzIERhdGUpPy5nZXRVbml4VGltZSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvcGlja2VyLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJakUsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQXFHO0lBS3BJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNULE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksUUFBUSxFQUFFLHVCQUEyQyxDQUFDO0lBQzFELElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksS0FBSyxJQUFJLHlCQUF5QixDQUFDLEtBQXdCLENBQUMsRUFBRSxDQUFDO1FBQy9ELElBQUksS0FBSyxZQUFZLFFBQVEsRUFBRSxDQUFDO1lBQzVCLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLEtBQUssSUFBSSxtQkFBbUIsQ0FBQyxLQUFrQixDQUFDLEVBQUUsQ0FBQztRQUNuRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQWtCLENBQUM7UUFDL0Ms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QUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFhLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNqSSxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhZmVBbnkgfSBmcm9tICduZ3gtdGV0aHlzL3R5cGVzJztcbmltcG9ydCB7IGNvZXJjZUFycmF5LCBoZWxwZXJzLCBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBDb21wYXRpYmxlVmFsdWUsIFJhbmdlQWR2YW5jZWRWYWx1ZSB9IGZyb20gJy4vaW5uZXItdHlwZXMnO1xuaW1wb3J0IHsgQ29tcGF0aWJsZURhdGUsIERhdGVFbnRyeSwgVGh5RGF0ZUdyYW51bGFyaXR5LCBUaHlEYXRlUmFuZ2VFbnRyeSwgVGh5UGFuZWxNb2RlLCBUaHlTaG9ydGN1dFZhbHVlIH0gZnJvbSAnLi9zdGFuZGFyZC10eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRlVmFsdWUodmFsdWU6IENvbXBhdGlibGVEYXRlIHwgQ29tcGF0aWJsZVZhbHVlIHwgbnVtYmVyIHwgRGF0ZUVudHJ5IHwgVGh5RGF0ZVJhbmdlRW50cnkgfCBSYW5nZUFkdmFuY2VkVmFsdWUpOiB7XG4gICAgdmFsdWU6IENvbXBhdGlibGVEYXRlO1xuICAgIHdpdGhUaW1lPzogYm9vbGVhbjtcbiAgICBmbGV4aWJsZURhdGVHcmFudWxhcml0eT86IFRoeURhdGVHcmFudWxhcml0eTtcbn0ge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG51bGwgfTtcbiAgICB9XG4gICAgbGV0IHdpdGhUaW1lLCBmbGV4aWJsZURhdGVHcmFudWxhcml0eTogVGh5RGF0ZUdyYW51bGFyaXR5O1xuICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHZhbHVlID0gY29udmVydERhdGUodmFsdWUpO1xuICAgIH1cbiAgICBpZiAodmFsdWUgJiYgaW5zdGFuY2VPZkNvbXBhdGlibGVWYWx1ZSh2YWx1ZSBhcyBDb21wYXRpYmxlVmFsdWUpKSB7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFRpbnlEYXRlKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGNvbnZlcnREYXRlKHZhbHVlLm5hdGl2ZURhdGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWVbMF0gPSBjb252ZXJ0RGF0ZSh2YWx1ZVswXS5uYXRpdmVEYXRlKTtcbiAgICAgICAgICAgIHZhbHVlWzFdID0gY29udmVydERhdGUodmFsdWVbMV0ubmF0aXZlRGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHZhbHVlICYmIGluc3RhbmNlT2ZEYXRlRW50cnkodmFsdWUgYXMgRGF0ZUVudHJ5KSkge1xuICAgICAgICBjb25zdCB7IGRhdGUsIHdpdGhfdGltZSB9ID0gdmFsdWUgYXMgRGF0ZUVudHJ5O1xuICAgICAgICB2YWx1ZSA9IGRhdGUgPyBjb252ZXJ0RGF0ZShkYXRlKSA6IG51bGw7XG4gICAgICAgIHdpdGhUaW1lID0gISF3aXRoX3RpbWU7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAmJiBpbnN0YW5jZU9mUmFuZ2VFbnRyeSh2YWx1ZSBhcyBUaHlEYXRlUmFuZ2VFbnRyeSkpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VWYWx1ZSA9IHZhbHVlIGFzIFRoeURhdGVSYW5nZUVudHJ5O1xuICAgICAgICB2YWx1ZSA9IFtdO1xuICAgICAgICBpZiAocmFuZ2VWYWx1ZS5iZWdpbiAmJiByYW5nZVZhbHVlLmVuZCkge1xuICAgICAgICAgICAgdmFsdWVbMF0gPSBjb252ZXJ0RGF0ZShyYW5nZVZhbHVlLmJlZ2luKTtcbiAgICAgICAgICAgIHZhbHVlWzFdID0gY29udmVydERhdGUocmFuZ2VWYWx1ZS5lbmQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyYW5nZVZhbHVlLmdyYW51bGFyaXR5KSB7XG4gICAgICAgICAgICBmbGV4aWJsZURhdGVHcmFudWxhcml0eSA9IHJhbmdlVmFsdWUuZ3JhbnVsYXJpdHk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsdWUgJiYgaW5zdGFuY2VPZlJhbmdlQWR2YW5jZWRWYWx1ZSh2YWx1ZSBhcyBSYW5nZUFkdmFuY2VkVmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IHJhbmdlVmFsdWUgPSB2YWx1ZSBhcyBSYW5nZUFkdmFuY2VkVmFsdWU7XG4gICAgICAgIGlmIChyYW5nZVZhbHVlLmRhdGVHcmFudWxhcml0eSkge1xuICAgICAgICAgICAgZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgPSByYW5nZVZhbHVlLmRhdGVHcmFudWxhcml0eTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IFtdO1xuICAgICAgICBpZiAocmFuZ2VWYWx1ZS5iZWdpbiAmJiByYW5nZVZhbHVlLmVuZCkge1xuICAgICAgICAgICAgdmFsdWVbMF0gPSBjb252ZXJ0RGF0ZShyYW5nZVZhbHVlLmJlZ2luLm5hdGl2ZURhdGUpO1xuICAgICAgICAgICAgdmFsdWVbMV0gPSBjb252ZXJ0RGF0ZShyYW5nZVZhbHVlLmVuZC5uYXRpdmVEYXRlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyB2YWx1ZTogdmFsdWUgYXMgQ29tcGF0aWJsZURhdGUsIHdpdGhUaW1lLCBmbGV4aWJsZURhdGVHcmFudWxhcml0eSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmxleGlibGVBZHZhbmNlZFJlYWRhYmxlVmFsdWUodGlueURhdGVzOiBUaW55RGF0ZVtdLCBmbGV4aWJsZURhdGVHcmFudWxhcml0eTogVGh5RGF0ZUdyYW51bGFyaXR5LCBzZXBhcmF0b3I6IHN0cmluZykge1xuICAgIGxldCB2YWx1ZSA9ICcnO1xuICAgIGlmICghdGlueURhdGVzWzBdIHx8ICF0aW55RGF0ZXNbMV0pIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBzd2l0Y2ggKGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5KSB7XG4gICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgaWYgKHRpbnlEYXRlc1swXS5pc1NhbWVZZWFyKHRpbnlEYXRlc1sxXSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGAke3RpbnlEYXRlc1swXS5mb3JtYXQoJ3l5eXknKX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGAke3RpbnlEYXRlc1swXS5mb3JtYXQoJ3l5eXknKX0ke3NlcGFyYXRvcn0ke3RpbnlEYXRlc1sxXS5mb3JtYXQoJ3l5eXknKX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgaWYgKHRpbnlEYXRlc1swXS5pc1NhbWVRdWFydGVyKHRpbnlEYXRlc1sxXSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGAke3RpbnlEYXRlc1swXS5mb3JtYXQoJ3l5eXktcXFxJyl9YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBgJHt0aW55RGF0ZXNbMF0uZm9ybWF0KCd5eXl5LXFxcScpfSR7c2VwYXJhdG9yfSR7dGlueURhdGVzWzFdLmZvcm1hdCgneXl5eS1xcXEnKX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgIGlmICh0aW55RGF0ZXNbMF0uaXNTYW1lTW9udGgodGlueURhdGVzWzFdKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gYCR7dGlueURhdGVzWzBdLmZvcm1hdCgneXl5eS1NTScpfWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gYCR7dGlueURhdGVzWzBdLmZvcm1hdCgneXl5eS1NTScpfSR7c2VwYXJhdG9yfSR7dGlueURhdGVzWzFdLmZvcm1hdCgneXl5eS1NTScpfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERhdGUoZGF0ZTogRGF0ZSB8IG51bWJlciB8IFRpbnlEYXRlKTogRGF0ZSB7XG4gICAgaWYgKHR5cGVvZiBkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgICBpZiAoZGF0ZS50b1N0cmluZygpLmxlbmd0aCA8IDEzKSB7XG4gICAgICAgICAgICByZXR1cm4gVGlueURhdGUuZnJvbVVuaXhUaW1lKGRhdGUpPy5uYXRpdmVEYXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShkYXRlKT8ubmF0aXZlRGF0ZTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZGF0ZSBpbnN0YW5jZW9mIFRpbnlEYXRlKSB7XG4gICAgICAgIHJldHVybiBkYXRlPy5uYXRpdmVEYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoZGF0ZSk/Lm5hdGl2ZURhdGU7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzVmFsdWUodmFsdWU6IENvbXBhdGlibGVWYWx1ZSk6IGJvb2xlYW4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gISF2YWx1ZVswXSAmJiAhIXZhbHVlWzFdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAhIXZhbHVlO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VWYWx1ZSh2YWx1ZTogQ29tcGF0aWJsZURhdGUgfCBudWxsLCBpc1JhbmdlOiBib29sZWFuID0gZmFsc2UpOiBDb21wYXRpYmxlVmFsdWUge1xuICAgIGlmIChpc1JhbmdlKSB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/ICh2YWx1ZSBhcyBEYXRlW10pLm1hcCh2YWwgPT4gbmV3IFRpbnlEYXRlKHZhbCkpIDogW107XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID8gbmV3IFRpbnlEYXRlKHZhbHVlIGFzIERhdGUpIDogbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlQWRkQW1vdW50KHZhbHVlOiBUaW55RGF0ZSwgYW1vdW50OiBudW1iZXIsIG1vZGU6IFRoeVBhbmVsTW9kZSk6IFRpbnlEYXRlIHtcbiAgICBsZXQgZGF0ZTogVGlueURhdGU7XG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgIGNhc2UgJ2RlY2FkZSc6XG4gICAgICAgICAgICBkYXRlID0gdmFsdWUuYWRkWWVhcnMoYW1vdW50ICogMTApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgZGF0ZSA9IHZhbHVlLmFkZFllYXJzKGFtb3VudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgZGF0ZSA9IHZhbHVlLmFkZE1vbnRocyhhbW91bnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBkYXRlID0gdmFsdWUuYWRkTW9udGhzKGFtb3VudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGRhdGU7XG59XG5cbi8vIHJpZ2h0RGF0ZSDotoXov4cgbGVmdERhdGUg5LiA5Liq5pyIXG5leHBvcnQgZnVuY3Rpb24gaXNBZnRlck1vcmVUaGFuT25lTW9udGgocmlnaHREYXRlOiBUaW55RGF0ZSwgbGVmdERhdGU6IFRpbnlEYXRlKSB7XG4gICAgcmlnaHREYXRlID0gcmlnaHREYXRlID8gcmlnaHREYXRlIDogbGVmdERhdGUgPyBsZWZ0RGF0ZSA6IG5ldyBUaW55RGF0ZSgpO1xuICAgIGxlZnREYXRlID0gbGVmdERhdGUgPyBsZWZ0RGF0ZSA6IHJpZ2h0RGF0ZTtcbiAgICBpZiAocmlnaHREYXRlLmdldFllYXIoKSA8IGxlZnREYXRlLmdldFllYXIoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHJpZ2h0RGF0ZS5nZXRZZWFyKCkgPT09IGxlZnREYXRlLmdldFllYXIoKSAmJiBsZWZ0RGF0ZS5nZXRNb250aCgpICsgMSA+PSByaWdodERhdGUuZ2V0TW9udGgoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8g5aSE55CGcmlnaHREYXRlKDIwMjAsMSwxKSDkuLpsZWZ0RGF0ZSgyMDIwLDEyLDEp5ZCO5LiA5bm0MeaciCzlkIzml7ZsZWZ0RGF0ZeaXpeacn+S4ujEy5pyI55qE54m55q6K5oOF5Ya1XG4gICAgcmV0dXJuICEocmlnaHREYXRlLmdldFllYXIoKSAtIGxlZnREYXRlLmdldFllYXIoKSA9PT0gMSAmJiByaWdodERhdGUuZ2V0TW9udGgoKSA9PT0gMCAmJiBsZWZ0RGF0ZS5nZXRNb250aCgpID09PSAxMSk7XG59XG5cbi8vIHJpZ2h0RGF0ZSDotoXov4cgbGVmdERhdGUg5LiN5Yiw5LiA5bm0XG5leHBvcnQgZnVuY3Rpb24gaXNBZnRlck1vcmVUaGFuTGVzc09uZVllYXIocmlnaHREYXRlOiBUaW55RGF0ZSwgbGVmdERhdGU6IFRpbnlEYXRlKSB7XG4gICAgcmlnaHREYXRlID0gcmlnaHREYXRlID8gcmlnaHREYXRlIDogbGVmdERhdGUgPyBsZWZ0RGF0ZSA6IG5ldyBUaW55RGF0ZSgpO1xuICAgIGxlZnREYXRlID0gbGVmdERhdGUgPyBsZWZ0RGF0ZSA6IHJpZ2h0RGF0ZTtcbiAgICBpZiAocmlnaHREYXRlLmdldFllYXIoKSA8PSBsZWZ0RGF0ZS5nZXRZZWFyKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyDlpITnkIZyaWdodERhdGUoMjAyMSwxLDEp5pel5pyf5q+UbGVmdERhdGUoMjAyMCwxMiwxKeaXpeacn+WkpzHlubQs5ZCM5pe2cmlnaHREYXRl5pel5pyf5pyI5Lu95bCP5LqObGVmdERhdGXml6XmnJ/mnIjku73nmoTmg4XlhrVcbiAgICByZXR1cm4gIShyaWdodERhdGUuZ2V0WWVhcigpIC0gbGVmdERhdGUuZ2V0WWVhcigpID09PSAxICYmIHJpZ2h0RGF0ZS5nZXRNb250aCgpIDw9IGxlZnREYXRlLmdldE1vbnRoKCkpO1xufVxuXG4vLyByaWdodERhdGUg6LaF6L+HIGxlZnREYXRlIOS4gOW5tFxuZXhwb3J0IGZ1bmN0aW9uIGlzQWZ0ZXJNb3JlVGhhbk9uZVllYXIocmlnaHREYXRlOiBUaW55RGF0ZSwgbGVmdERhdGU6IFRpbnlEYXRlKSB7XG4gICAgcmlnaHREYXRlID0gcmlnaHREYXRlID8gcmlnaHREYXRlIDogbGVmdERhdGUgPyBsZWZ0RGF0ZSA6IG5ldyBUaW55RGF0ZSgpO1xuICAgIGxlZnREYXRlID0gbGVmdERhdGUgPyBsZWZ0RGF0ZSA6IHJpZ2h0RGF0ZTtcbiAgICBpZiAobGVmdERhdGUuZ2V0WWVhcigpICsgMSA+PSByaWdodERhdGUuZ2V0WWVhcigpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FmdGVyTW9yZVRoYW5PbmVEZWNhZGUocmlnaHREYXRlOiBUaW55RGF0ZSwgbGVmdERhdGU6IFRpbnlEYXRlKSB7XG4gICAgcmlnaHREYXRlID0gcmlnaHREYXRlID8gcmlnaHREYXRlIDogbGVmdERhdGUgPyBsZWZ0RGF0ZSA6IG5ldyBUaW55RGF0ZSgpO1xuICAgIGxlZnREYXRlID0gbGVmdERhdGUgPyBsZWZ0RGF0ZSA6IHJpZ2h0RGF0ZTtcbiAgICByZXR1cm4gcmlnaHREYXRlLmdldFllYXIoKSAtIGxlZnREYXRlLmdldFllYXIoKSA+PSAyMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbmNlT2ZEYXRlRW50cnkob2JqZWN0OiBEYXRlRW50cnkpOiBvYmplY3QgaXMgRGF0ZUVudHJ5IHtcbiAgICByZXR1cm4gaXNTdXBwb3J0RGF0ZVR5cGUob2JqZWN0LCAnZGF0ZScpICYmIHR5cGVvZiBvYmplY3Qud2l0aF90aW1lID09PSAnbnVtYmVyJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbmNlT2ZSYW5nZUVudHJ5KG9iamVjdDogVGh5RGF0ZVJhbmdlRW50cnkpOiBvYmplY3QgaXMgVGh5RGF0ZVJhbmdlRW50cnkge1xuICAgIHJldHVybiBpc1N1cHBvcnREYXRlVHlwZShvYmplY3QsICdiZWdpbicpICYmIGlzU3VwcG9ydERhdGVUeXBlKG9iamVjdCwgJ2VuZCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFuY2VPZkNvbXBhdGlibGVWYWx1ZShvYmplY3Q6IENvbXBhdGlibGVWYWx1ZSk6IG9iamVjdCBpcyBDb21wYXRpYmxlVmFsdWUge1xuICAgIHJldHVybiBvYmplY3QgaW5zdGFuY2VvZiBUaW55RGF0ZSB8fCBvYmplY3RbMF0gaW5zdGFuY2VvZiBUaW55RGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbmNlT2ZSYW5nZUFkdmFuY2VkVmFsdWUob2JqZWN0OiBSYW5nZUFkdmFuY2VkVmFsdWUpOiBvYmplY3QgaXMgUmFuZ2VBZHZhbmNlZFZhbHVlIHtcbiAgICByZXR1cm4gb2JqZWN0WydiZWdpbiddIGluc3RhbmNlb2YgVGlueURhdGUgJiYgb2JqZWN0WydlbmQnXSBpbnN0YW5jZW9mIFRpbnlEYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdXBwb3J0RGF0ZVR5cGUob2JqZWN0OiBEYXRlRW50cnkgfCBUaHlEYXRlUmFuZ2VFbnRyeSwga2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iamVjdFtrZXldID09PSAnbnVtYmVyJyB8fCBvYmplY3Rba2V5XSA9PT0gbnVsbCB8fCBvYmplY3Rba2V5XSBpbnN0YW5jZW9mIERhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaG9ydGN1dFZhbHVlKHZhbHVlOiBUaHlTaG9ydGN1dFZhbHVlKTogbnVtYmVyIHwgRGF0ZSB7XG4gICAgcmV0dXJuIGhlbHBlcnMuaXNGdW5jdGlvbih2YWx1ZSkgPyB2YWx1ZSgpIDogdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkU3RyaW5nRGF0ZShkYXRlU3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXJzZURhdGUgPSBwYXJzZVN0cmluZ0RhdGUoZGF0ZVN0cikubmF0aXZlRGF0ZS5nZXRUaW1lKCk7XG4gICAgcmV0dXJuICEocGFyc2VEYXRlIDwgMCB8fCBpc05hTihwYXJzZURhdGUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU3RyaW5nRGF0ZShkYXRlU3RyOiBzdHJpbmcpOiBUaW55RGF0ZSB7XG4gICAgcmV0dXJuIGhhc1RpbWVJblN0cmluZ0RhdGUoZGF0ZVN0cikgPyBuZXcgVGlueURhdGUoZml4U3RyaW5nRGF0ZShkYXRlU3RyKSkgOiBuZXcgVGlueURhdGUoZml4U3RyaW5nRGF0ZShkYXRlU3RyKSkuc3RhcnRPZkRheSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzVGltZUluU3RyaW5nRGF0ZShkYXRlU3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtYXREYXRlID0gZml4U3RyaW5nRGF0ZShkYXRlU3RyKTtcbiAgICBjb25zdCB0aW1lUmVnZXggPSAvKFxcZHsxLDJ9OlxcZHsxLDJ9KDpcXGR7MSwyfSk/KXwoXlxcZHsxLDJ95pe2XFxkezEsMn3liIYoXFxkezEsMn3np5IpPykkLztcbiAgICByZXR1cm4gdGltZVJlZ2V4LnRlc3QoZm9ybWF0RGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGZpeFN0cmluZ0RhdGUoZGF0ZVN0cjogc3RyaW5nKSB7XG4gICAgbGV0IHJlcGxhY2VkU3RyID0gZGF0ZVN0ci5yZXBsYWNlKC9bXjAtOVxccy4sOl0vZywgJy0nKS5yZXBsYWNlKCctICcsICcgJyk7XG4gICAgY29uc3QgaGFzWWVhciA9IC9cXGR7NH0vLnRlc3QocmVwbGFjZWRTdHIpO1xuICAgIGlmICghaGFzWWVhciB8fCByZXBsYWNlZFN0ci5sZW5ndGggPCAneXl5eS5NLmQnLmxlbmd0aCkge1xuICAgICAgICByZXBsYWNlZFN0ciA9IGAke25ldyBUaW55RGF0ZSgpLmdldFllYXIoKX0tJHtyZXBsYWNlZFN0cn1gO1xuICAgIH1cbiAgICByZXR1cm4gcmVwbGFjZWRTdHI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRWYWx1ZUJ5VGltZXN0YW1wUHJlY2lzaW9uKFxuICAgIGRhdGU6IENvbXBhdGlibGVEYXRlIHwgbnVtYmVyIHwgRGF0ZSB8IERhdGVFbnRyeSB8IFRoeURhdGVSYW5nZUVudHJ5IHwgU2FmZUFueSxcbiAgICBpc1JhbmdlOiBib29sZWFuLFxuICAgIHRpbWVzdGFtcFByZWNpc2lvbjogJ3NlY29uZHMnIHwgJ21pbGxpc2Vjb25kcydcbik6IG51bWJlciB8IG51bWJlcltdIHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSB0cmFuc2Zvcm1EYXRlVmFsdWUoZGF0ZSk7XG4gICAgaWYgKCF2YWx1ZSB8fCAoaGVscGVycy5pc0FycmF5KHZhbHVlKSAmJiAhdmFsdWU/Lmxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIGhlbHBlcnMuaXNBcnJheSh2YWx1ZSkgPyBbbnVsbCwgbnVsbF0gOiBudWxsO1xuICAgIH1cbiAgICBpZiAodGltZXN0YW1wUHJlY2lzaW9uID09PSAnbWlsbGlzZWNvbmRzJykge1xuICAgICAgICByZXR1cm4gaXNSYW5nZSA/IGNvZXJjZUFycmF5KHZhbHVlKS5tYXAodmFsID0+IG5ldyBUaW55RGF0ZSh2YWwpLmdldFRpbWUoKSkgOiBuZXcgVGlueURhdGUodmFsdWUgYXMgRGF0ZSkuZ2V0VGltZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpc1JhbmdlID8gY29lcmNlQXJyYXkodmFsdWUpLm1hcCh2YWwgPT4gbmV3IFRpbnlEYXRlKHZhbCkuZ2V0VW5peFRpbWUoKSkgOiBuZXcgVGlueURhdGUodmFsdWUgYXMgRGF0ZSk/LmdldFVuaXhUaW1lKCk7XG4gICAgfVxufVxuIl19
|