ngx-tethys 18.2.7 → 18.2.9

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.
Files changed (43) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/date-picker/abstract-picker.component.d.ts +8 -3
  3. package/date-picker/date-picker.config.d.ts +1 -0
  4. package/date-picker/date-picker.service.d.ts +1 -0
  5. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +1 -1
  6. package/date-picker/picker.component.d.ts +3 -1
  7. package/date-picker/picker.pipes.d.ts +7 -2
  8. package/date-picker/picker.util.d.ts +3 -1
  9. package/date-picker/styles/quarter-panel.scss +3 -0
  10. package/date-range/date-range.component.d.ts +16 -4
  11. package/esm2022/calendar/calendar-header.component.mjs +2 -2
  12. package/esm2022/date-picker/abstract-picker.component.mjs +14 -5
  13. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  14. package/esm2022/date-picker/date-picker.config.mjs +3 -1
  15. package/esm2022/date-picker/date-picker.service.mjs +4 -1
  16. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +5 -5
  17. package/esm2022/date-picker/month-picker.component.mjs +3 -3
  18. package/esm2022/date-picker/picker.component.mjs +9 -5
  19. package/esm2022/date-picker/picker.pipes.mjs +17 -8
  20. package/esm2022/date-picker/picker.util.mjs +12 -8
  21. package/esm2022/date-picker/quarter-picker.component.mjs +3 -3
  22. package/esm2022/date-picker/range-picker.component.mjs +3 -3
  23. package/esm2022/date-picker/week-picker.component.mjs +3 -3
  24. package/esm2022/date-picker/year-picker.component.mjs +3 -3
  25. package/esm2022/date-range/date-range.component.mjs +15 -5
  26. package/esm2022/util/date/functions.mjs +20 -1
  27. package/esm2022/util/date/tiny-date.mjs +15 -2
  28. package/esm2022/version.mjs +2 -2
  29. package/fesm2022/ngx-tethys-calendar.mjs +1 -1
  30. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  31. package/fesm2022/ngx-tethys-date-picker.mjs +60 -34
  32. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-date-range.mjs +14 -4
  34. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  35. package/fesm2022/ngx-tethys-util.mjs +32 -1
  36. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  37. package/fesm2022/ngx-tethys.mjs +1 -1
  38. package/fesm2022/ngx-tethys.mjs.map +1 -1
  39. package/package.json +7 -7
  40. package/schematics/version.d.ts +1 -1
  41. package/schematics/version.js +1 -1
  42. package/util/date/functions.d.ts +2 -0
  43. package/util/date/tiny-date.d.ts +8 -0
@@ -4,6 +4,7 @@ import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
4
4
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, inject, Input, Output, ViewChild } from '@angular/core';
5
5
  import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';
6
6
  import { scaleMotion, scaleXMotion, scaleYMotion } from 'ngx-tethys/core';
7
+ import { ThyI18nService } from 'ngx-tethys/i18n';
7
8
  import { ThyIcon } from 'ngx-tethys/icon';
8
9
  import { ThyInputDirective } from 'ngx-tethys/input';
9
10
  import { ThyEnterDirective } from 'ngx-tethys/shared';
@@ -17,6 +18,7 @@ export class ThyPicker {
17
18
  constructor() {
18
19
  this.changeDetector = inject(ChangeDetectorRef);
19
20
  this.dateHelper = inject(DateHelperService);
21
+ this.i18n = inject(ThyI18nService);
20
22
  this.isRange = false;
21
23
  this.open = undefined;
22
24
  this.placement = 'bottomLeft';
@@ -173,12 +175,12 @@ export class ThyPicker {
173
175
  let value;
174
176
  if (this.isRange) {
175
177
  if (this.flexible && this.innerflexibleDateGranularity !== 'day') {
176
- return getFlexibleAdvancedReadableValue(tinyDate, this.innerflexibleDateGranularity);
178
+ return getFlexibleAdvancedReadableValue(tinyDate, this.innerflexibleDateGranularity, this.separator, this.i18n.getLocale());
177
179
  }
178
180
  else {
179
181
  const start = tinyDate[0] ? this.formatDate(tinyDate[0]) : '';
180
182
  const end = tinyDate[1] ? this.formatDate(tinyDate[1]) : '';
181
- return start && end ? `${start} ~ ${end}` : null;
183
+ return start && end ? `${start}${this.separator}${end}` : null;
182
184
  }
183
185
  }
184
186
  else {
@@ -198,7 +200,7 @@ export class ThyPicker {
198
200
  }
199
201
  getPlaceholder() {
200
202
  return this.isRange && this.placeholder && Array.isArray(this.placeholder)
201
- ? this.placeholder.join(' ~ ')
203
+ ? this.placeholder.join(this.separator)
202
204
  : this.placeholder;
203
205
  }
204
206
  updateReadableDate(setValue) {
@@ -209,7 +211,7 @@ export class ThyPicker {
209
211
  this.pickerInput.nativeElement.value = readableValue;
210
212
  }
211
213
  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 }); }
214
+ 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
215
  }
214
216
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyPicker, decorators: [{
215
217
  type: Component,
@@ -243,6 +245,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
243
245
  }], hasBackdrop: [{
244
246
  type: Input,
245
247
  args: [{ transform: coerceBooleanProperty }]
248
+ }], separator: [{
249
+ type: Input
246
250
  }], blur: [{
247
251
  type: Output
248
252
  }], valueChange: [{
@@ -270,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
270
274
  }], value: [{
271
275
  type: Input
272
276
  }] } });
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=
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL3BpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHakU7O0dBRUc7QUFVSCxNQUFNLE9BQU8s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LEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNKLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDUSxnQkFBZ0I7c0JBQWpFLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUc1QyxNQUFNO3NCQURULEtBQUs7Z0JBV0YsdUJBQXVCO3NCQUQxQixLQUFLO2dCQVdGLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEZsZXhpYmxlUG9zaXRpb25zLCBUaHlQbGFjZW1lbnQgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4sIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBzY2FsZU1vdGlvbiwgc2NhbGVYTW90aW9uLCBzY2FsZVlNb3Rpb24gfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5STE4blNlcnZpY2UgfSBmcm9tICduZ3gtdGV0aHlzL2kxOG4nO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlJbnB1dERpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvaW5wdXQnO1xuaW1wb3J0IHsgVGh5RW50ZXJEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBEYXRlSGVscGVyU2VydmljZSB9IGZyb20gJy4vZGF0ZS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wYXRpYmxlVmFsdWUsIFJhbmdlUGFydFR5cGUgfSBmcm9tICcuL2lubmVyLXR5cGVzJztcbmltcG9ydCB7IGdldEZsZXhpYmxlQWR2YW5jZWRSZWFkYWJsZVZhbHVlIH0gZnJvbSAnLi9waWNrZXIudXRpbCc7XG5pbXBvcnQgeyBUaHlEYXRlR3JhbnVsYXJpdHkgfSBmcm9tICcuL3N0YW5kYXJkLXR5cGVzJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1waWNrZXInLFxuICAgIGV4cG9ydEFzOiAndGh5UGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDZGtPdmVybGF5T3JpZ2luLCBUaHlJbnB1dERpcmVjdGl2ZSwgVGh5RW50ZXJEaXJlY3RpdmUsIEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCwgVGh5SWNvbiwgTmdDbGFzcywgQ2RrQ29ubmVjdGVkT3ZlcmxheV0sXG4gICAgYW5pbWF0aW9uczogW3NjYWxlWE1vdGlvbiwgc2NhbGVZTW90aW9uLCBzY2FsZU1vdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5UGlja2VyIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICBwcml2YXRlIGRhdGVIZWxwZXIgPSBpbmplY3QoRGF0ZUhlbHBlclNlcnZpY2UpO1xuICAgIHByaXZhdGUgaTE4biA9IGluamVjdChUaHlJMThuU2VydmljZSk7XG5cbiAgICBASW5wdXQoKSBpc1JhbmdlID0gZmFsc2U7XG4gICAgQElucHV0KCkgb3BlbjogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYWxsb3dDbGVhcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBhdXRvRm9jdXM6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICd4cycgfCAnbGcnIHwgJ21kJyB8ICdkZWZhdWx0JztcbiAgICBASW5wdXQoKSBzdWZmaXhJY29uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcGxhY2VtZW50OiBUaHlQbGFjZW1lbnQgPSAnYm90dG9tTGVmdCc7XG4gICAgQElucHV0KCkgZmxleGlibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBtb2RlOiBzdHJpbmc7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgaGFzQmFja2Ryb3A6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2VwYXJhdG9yOiBzdHJpbmc7XG4gICAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGlueURhdGUgfCBUaW55RGF0ZVtdIHwgbnVsbD4oKTtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTsgLy8gRW1pdHRlZCB3aGVuIG92ZXJsYXkncyBvcGVuIHN0YXRlIGNoYW5nZVxuICAgIEBPdXRwdXQoKSByZWFkb25seSBpbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQFZpZXdDaGlsZCgnb3JpZ2luJywgeyBzdGF0aWM6IHRydWUgfSkgb3JpZ2luOiBDZGtPdmVybGF5T3JpZ2luO1xuICAgIEBWaWV3Q2hpbGQoQ2RrQ29ubmVjdGVkT3ZlcmxheSwgeyBzdGF0aWM6IHRydWUgfSkgY2RrQ29ubmVjdGVkT3ZlcmxheTogQ2RrQ29ubmVjdGVkT3ZlcmxheTtcbiAgICBAVmlld0NoaWxkKCdwaWNrZXJJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIHBpY2tlcklucHV0OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ292ZXJsYXlDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgb3ZlcmxheUNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBmb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyRm9ybWF0O1xuICAgIH1cblxuICAgIHNldCBmb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmlubmVyRm9ybWF0ID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlUmVhZGFibGVEYXRlKHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgZmxleGlibGVEYXRlR3JhbnVsYXJpdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyZmxleGlibGVEYXRlR3JhbnVsYXJpdHk7XG4gICAgfVxuXG4gICAgc2V0IGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5KGdyYW51bGFyaXR5OiBUaHlEYXRlR3JhbnVsYXJpdHkpIHtcbiAgICAgICAgdGhpcy5pbm5lcmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5ID0gZ3JhbnVsYXJpdHk7XG4gICAgICAgIHRoaXMudXBkYXRlUmVhZGFibGVEYXRlKHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBUaW55RGF0ZSB8IFRpbnlEYXRlW10gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICBpZiAoIXRoaXMuZW50ZXJpbmcpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUmVhZGFibGVEYXRlKHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlubmVyZmxleGlibGVEYXRlR3JhbnVsYXJpdHk6IFRoeURhdGVHcmFudWxhcml0eTtcblxuICAgIHByaXZhdGUgaW5uZXJGb3JtYXQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgaW5uZXJWYWx1ZTogVGlueURhdGUgfCBUaW55RGF0ZVtdIHwgbnVsbDtcblxuICAgIGVudGVyaW5nID0gZmFsc2U7XG5cbiAgICBwcmVmaXhDbHMgPSAndGh5LWNhbGVuZGFyJztcblxuICAgIGlzU2hvd0RhdGVQb3B1cCA9IGZhbHNlO1xuXG4gICAgb3ZlcmxheU9wZW4gPSBmYWxzZTsgLy8gQXZhaWxhYmxlIHdoZW4gXCJvcGVuXCI9dW5kZWZpbmVkXG5cbiAgICBvdmVybGF5UG9zaXRpb25zID0gZ2V0RmxleGlibGVQb3NpdGlvbnModGhpcy5wbGFjZW1lbnQsIDQpO1xuXG4gICAgZ2V0IHJlYWxPcGVuU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIFRoZSB2YWx1ZSB0aGF0IHJlYWxseSBkZWNpZGUgdGhlIG9wZW4gc3RhdGUgb2Ygb3ZlcmxheVxuICAgICAgICByZXR1cm4gdGhpcy5pc09wZW5IYW5kbGVkQnlVc2VyKCkgPyAhIXRoaXMub3BlbiA6IHRoaXMub3ZlcmxheU9wZW47XG4gICAgfVxuXG4gICAgZ2V0IHJlYWRvbmx5U3RhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmFuZ2UgfHwgdGhpcy5yZWFkb25seSB8fCB0aGlzLm1vZGUgIT09ICdkYXRlJztcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIC8vIG9wZW4gYnkgdXNlclxuICAgICAgICBpZiAoY2hhbmdlcy5vcGVuICYmIGNoYW5nZXMub3Blbi5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMub3Blbi5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dEYXRlUG9wdXAoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZURhdGVQb3B1cCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm92ZXJsYXlQb3NpdGlvbnMgPSBnZXRGbGV4aWJsZVBvc2l0aW9ucyh0aGlzLnBsYWNlbWVudCwgNCk7XG4gICAgICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGlja2VySW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIG9uQmx1cihldmVudDogRm9jdXNFdmVudCkge1xuICAgICAgICB0aGlzLmJsdXIuZW1pdChldmVudCk7XG4gICAgICAgIGlmICh0aGlzLmVudGVyaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5waWNrZXJJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVudGVyaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25JbnB1dChldmVudDogSW5wdXRFdmVudCkge1xuICAgICAgICB0aGlzLmVudGVyaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpWyd2YWx1ZSddO1xuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlLmVtaXQoaW5wdXRWYWx1ZSk7XG4gICAgfVxuXG4gICAgb25FbnRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHlTdGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnBpY2tlcklucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgfHwgdGhpcy5nZXRSZWFkYWJsZVZhbHVlKG5ldyBUaW55RGF0ZSgpKSk7XG4gICAgICAgIHRoaXMuZW50ZXJpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBzaG93T3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlYWxPcGVuU3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheU9wZW4gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zaG93RGF0ZVBvcHVwKCk7XG5cbiAgICAgICAgICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KHRoaXMub3ZlcmxheU9wZW4pO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheSAmJiB0aGlzLmNka0Nvbm5lY3RlZE92ZXJsYXkub3ZlcmxheVJlZikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNka0Nvbm5lY3RlZE92ZXJsYXkub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGlkZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlYWxPcGVuU3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheU9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEYXRlUG9wdXAoKTtcblxuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodGhpcy5vdmVybGF5T3Blbik7XG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93RGF0ZVBvcHVwKCkge1xuICAgICAgICB0aGlzLmlzU2hvd0RhdGVQb3B1cCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgY2xvc2VEYXRlUG9wdXAoKSB7XG4gICAgICAgIC8vIERlbGF5IDIwMG1zIGJlZm9yZSBkZXN0cm95aW5nIHRoZSBkYXRlLXBvcHVwLCBvdGhlcndpc2UgeW91IHdpbGwgbm90IHNlZSB0aGUgY2xvc2luZyBhbmltYXRpb24uXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1Nob3dEYXRlUG9wdXAgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0sIDIwMCk7XG4gICAgfVxuXG4gICAgb25DbGlja0lucHV0Qm94KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZG9ubHkgJiYgIXRoaXMuaXNPcGVuSGFuZGxlZEJ5VXNlcigpKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dPdmVybGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNsaWNrQmFja2Ryb3AoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlkZU92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBvbk92ZXJsYXlEZXRhY2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlkZU92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBvblBvc2l0aW9uQ2hhbmdlKHBvc2l0aW9uOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgb25DbGlja0NsZWFyKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHRoaXMuaXNSYW5nZSA/IFtdIDogbnVsbDtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0UGFydFR5cGVJbmRleChwYXJ0VHlwZTogUmFuZ2VQYXJ0VHlwZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB7IGxlZnQ6IDAsIHJpZ2h0OiAxIH1bcGFydFR5cGVdO1xuICAgIH1cblxuICAgIGlzRW1wdHlWYWx1ZSh2YWx1ZTogQ29tcGF0aWJsZVZhbHVlIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgICAgICAgcmV0dXJuICF2YWx1ZSB8fCAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgdmFsdWUuZXZlcnkodmFsID0+ICF2YWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICF2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdoZXRoZXIgb3BlbiBzdGF0ZSBpcyBwZXJtYW5lbnRseSBjb250cm9sbGVkIGJ5IHVzZXIgaGltc2VsZlxuICAgIGlzT3BlbkhhbmRsZWRCeVVzZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW4gIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXRSZWFkYWJsZVZhbHVlKHRpbnlEYXRlOiBUaW55RGF0ZSB8IFRpbnlEYXRlW10pOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgbGV0IHZhbHVlOiBUaW55RGF0ZTtcbiAgICAgICAgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmxleGlibGUgJiYgdGhpcy5pbm5lcmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5ICE9PSAnZGF5Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRGbGV4aWJsZUFkdmFuY2VkUmVhZGFibGVWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgdGlueURhdGUgYXMgVGlueURhdGVbXSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbm5lcmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pMThuLmdldExvY2FsZSgpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aW55RGF0ZVswXSA/IHRoaXMuZm9ybWF0RGF0ZSh0aW55RGF0ZVswXSkgOiAnJztcbiAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSB0aW55RGF0ZVsxXSA/IHRoaXMuZm9ybWF0RGF0ZSh0aW55RGF0ZVsxXSkgOiAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQgJiYgZW5kID8gYCR7c3RhcnR9JHt0aGlzLnNlcGFyYXRvcn0ke2VuZH1gIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGlueURhdGUgYXMgVGlueURhdGU7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPyB0aGlzLmZvcm1hdERhdGUodmFsdWUpIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvcm1hdERhdGUodmFsdWU6IFRpbnlEYXRlKSB7XG4gICAgICAgIC8vIGRhdGVIZWxwZXIuZm9ybWF0KCkg5L2/55So55qE5pivIGFuZ3VsYXIg55qEIGZvcm1hdO+8jOS4jeaUr+aMgeWto+W6pu+8jOS/ruaUueeahOivne+8jOaUueWKqOavlOi+g+Wkp+OAglxuICAgICAgICAvLyDmraTlpITpgJrov4flr7kgaW5uZXJGb3JtYXQg5YGa5LiL5Yik5pat77yM5aaC5p6c5piv5a2j5bqm55qEIGZvcm1hdO+8jOS9v+eUqCBkYXRlLWZucyDnmoQgZm9ybWF0KClcbiAgICAgICAgaWYgKHRoaXMuaW5uZXJGb3JtYXQgJiYgKHRoaXMuaW5uZXJGb3JtYXQuaW5jbHVkZXMoJ3EnKSB8fCB0aGlzLmlubmVyRm9ybWF0LmluY2x1ZGVzKCdRJykpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUuZm9ybWF0KHRoaXMuaW5uZXJGb3JtYXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZUhlbHBlci5mb3JtYXQodmFsdWUubmF0aXZlRGF0ZSwgdGhpcy5pbm5lckZvcm1hdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1JhbmdlICYmIHRoaXMucGxhY2Vob2xkZXIgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnBsYWNlaG9sZGVyKVxuICAgICAgICAgICAgPyAodGhpcy5wbGFjZWhvbGRlciBhcyBzdHJpbmdbXSkuam9pbih0aGlzLnNlcGFyYXRvcilcbiAgICAgICAgICAgIDogKHRoaXMucGxhY2Vob2xkZXIgYXMgc3RyaW5nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVJlYWRhYmxlRGF0ZShzZXRWYWx1ZTogVGlueURhdGUgfCBUaW55RGF0ZVtdIHwgbnVsbCkge1xuICAgICAgICBjb25zdCByZWFkYWJsZVZhbHVlID0gdGhpcy5nZXRSZWFkYWJsZVZhbHVlKHNldFZhbHVlKTtcbiAgICAgICAgaWYgKHJlYWRhYmxlVmFsdWUgPT09IHRoaXMucGlja2VySW5wdXQubmF0aXZlRWxlbWVudFsndmFsdWUnXSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5waWNrZXJJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gcmVhZGFibGVWYWx1ZTtcbiAgICB9XG59XG4iLCI8c3BhblxuICBjZGtPdmVybGF5T3JpZ2luXG4gICNvcmlnaW49XCJjZGtPdmVybGF5T3JpZ2luXCJcbiAgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tcGlja2VyIHt7IHNpemUgPyBwcmVmaXhDbHMgKyAnLXBpY2tlci0nICsgc2l6ZSA6ICcnIH19IHt7IGNsYXNzTmFtZSB9fVwiXG4gIChjbGljayk9XCJvbkNsaWNrSW5wdXRCb3goKVwiPlxuICA8bmctY29udGFpbmVyPlxuICAgIDxpbnB1dFxuICAgICAgI3BpY2tlcklucHV0XG4gICAgICB0aHlJbnB1dFxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wte3sgc2l6ZSB9fSBmb3JtLWNvbnRyb2wge3sgcHJlZml4Q2xzIH19LXBpY2tlci1pbnB1dFwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdwYW5lbC1pcy1vcGVuZWQnOiByZWFsT3BlblN0YXRlIH1cIlxuICAgICAgW3RoeVNpemVdPVwic2l6ZVwiXG4gICAgICBbdGFiaW5kZXhdPVwiLTFcIlxuICAgICAgW2NsYXNzLnRoeS1pbnB1dC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbY2xhc3MudGh5LWlucHV0LXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlTdGF0ZVwiXG4gICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgZ2V0UGxhY2Vob2xkZXIoKSB9fVwiXG4gICAgICB0aHlFbnRlclxuICAgICAgKHRoeUVudGVyKT1cIm9uRW50ZXIoKVwiIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbFJpZ2h0UmVzdFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvc3Bhbj5cblxuPCEtLSBSaWdodCBvcGVyYXRvciBpY29ucyAtLT5cbjxuZy10ZW1wbGF0ZSAjdHBsUmlnaHRSZXN0PlxuICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1waWNrZXItY2xlYXJcIj5cbiAgICBAaWYgKCFkaXNhYmxlZCAmJiAhaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiBhbGxvd0NsZWFyICYmICFyZWFkb25seSkge1xuICAgICAgPHRoeS1pY29uXG4gICAgICAgIHRoeUljb25OYW1lPVwiY2xvc2UtY2lyY2xlLWJvbGQtZmlsbFwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrQ2xlYXIoJGV2ZW50KVwiXG4gICAgICBuZ0NsYXNzPVwicmVtb3ZlLWxpbmsgcmVtb3ZlLWxpbmste3sgc2l6ZSB9fVwiPjwvdGh5LWljb24+XG4gICAgfVxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXBpY2tlci1pY29uXCI+XG4gICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJzdWZmaXhJY29uXCIgbmdDbGFzcz1cInJlbW92ZS1saW5rLXt7IHNpemUgPyBzaXplIDogJ2RlZmF1bHQnIH19XCI+PC90aHktaWNvbj5cbiAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBPdmVybGF5IC0tPlxuPG5nLXRlbXBsYXRlXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwib3JpZ2luXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cInJlYWxPcGVuU3RhdGVcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXT1cImhhc0JhY2tkcm9wXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnNdPVwib3ZlcmxheVBvc2l0aW9uc1wiXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzPVwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BcIlxuICBjZGtDb25uZWN0ZWRPdmVybGF5VHJhbnNmb3JtT3JpZ2luT249XCIudGh5LXBpY2tlci1jb250YWluZXJcIlxuICAocG9zaXRpb25DaGFuZ2UpPVwib25Qb3NpdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgKGJhY2tkcm9wQ2xpY2spPVwib25DbGlja0JhY2tkcm9wKClcIlxuICAoZGV0YWNoKT1cIm9uT3ZlcmxheURldGFjaCgpXCI+XG4gIDxkaXZcbiAgICAjb3ZlcmxheUNvbnRhaW5lclxuICAgIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlXCJcbiAgICBjbGFzcz1cInRoeS1waWNrZXItY29udGFpbmVyXCJcbiAgICBbQHNjYWxlWE1vdGlvbl09XCJwbGFjZW1lbnQgPT09ICdsZWZ0JyB8fCBwbGFjZW1lbnQgPT09ICdyaWdodCcgPyAnZW50ZXInIDogJ3ZvaWQnXCJcbiAgICBbQHNjYWxlWU1vdGlvbl09XCJwbGFjZW1lbnQgPT09ICd0b3AnIHx8IHBsYWNlbWVudCA9PT0gJ2JvdHRvbScgPyAnZW50ZXInIDogJ3ZvaWQnXCJcbiAgICBbQHNjYWxlTW90aW9uXT1cInBsYWNlbWVudCAhPT0gJ2xlZnQnICYmIHBsYWNlbWVudCAhPT0gJ3JpZ2h0JyAmJiBwbGFjZW1lbnQgIT09ICd0b3AnICYmIHBsYWNlbWVudCAhPT0gJ2JvdHRvbScgPyAnZW50ZXInIDogJ3ZvaWQnXCI+XG4gICAgPCEtLSBDb21wYXRpYmxlIGZvciBvdmVybGF5IHRoYXQgbm90IHN1cHBvcnQgb2Zmc2V0IGR5bmFtaWNhbGx5IGFuZCBpbW1lZGlhdGVseSAtLT5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,30 +1,36 @@
1
1
  import { Pipe, inject } from '@angular/core';
2
+ import { ThyI18nService } from 'ngx-tethys/i18n';
2
3
  import { TinyDate } from 'ngx-tethys/util';
3
4
  import { DateHelperService } from './date-helper.service';
5
+ import { ThyDatePickerConfigService } from './date-picker.service';
4
6
  import { getFlexibleAdvancedReadableValue, transformDateValue } from './picker.util';
5
7
  import * as i0 from "@angular/core";
8
+ import * as i1 from "./date-picker.service";
6
9
  /**
7
10
  * @private
8
11
  */
9
12
  export class ThyDatePickerFormatPipe {
10
13
  constructor() {
11
14
  this.dateHelper = inject(DateHelperService);
15
+ this.datePickerConfigService = inject(ThyDatePickerConfigService);
16
+ this.i18n = inject(ThyI18nService);
12
17
  }
13
- transform(originalValue, formatStr) {
18
+ transform(originalValue, formatStr, separator) {
14
19
  const { value, withTime, flexibleDateGranularity } = transformDateValue(originalValue);
15
20
  if (!formatStr) {
16
21
  formatStr = withTime ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd';
17
22
  }
23
+ const currentSeparator = ` ${(separator ?? this.datePickerConfigService.separator)?.trim()} `;
18
24
  if (!Array.isArray(value)) {
19
25
  return this.dateHelper.format(value, formatStr);
20
26
  }
21
27
  else {
22
28
  if (flexibleDateGranularity && flexibleDateGranularity !== 'day') {
23
29
  const tinyDates = [new TinyDate(value[0]), new TinyDate(value[1])];
24
- return getFlexibleAdvancedReadableValue(tinyDates, flexibleDateGranularity);
30
+ return getFlexibleAdvancedReadableValue(tinyDates, flexibleDateGranularity, currentSeparator, this.i18n.getLocale());
25
31
  }
26
32
  else {
27
- return value.map(date => this.dateHelper.format(date, formatStr)).join(' ~ ');
33
+ return value.map(date => this.dateHelper.format(date, formatStr)).join(currentSeparator);
28
34
  }
29
35
  }
30
36
  }
@@ -39,7 +45,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
39
45
  }]
40
46
  }] });
41
47
  export class ThyQuarterPickerFormatPipe {
42
- transform(originalValue, formatStr) {
48
+ constructor(datePickerConfigService) {
49
+ this.datePickerConfigService = datePickerConfigService;
50
+ }
51
+ transform(originalValue, formatStr, separator) {
43
52
  const { value, withTime } = transformDateValue(originalValue);
44
53
  if (!formatStr) {
45
54
  formatStr = 'yyyy-qqq';
@@ -57,10 +66,10 @@ export class ThyQuarterPickerFormatPipe {
57
66
  const _date = new TinyDate(date);
58
67
  return _date.format(formatStr);
59
68
  })
60
- .join(' ~ ');
69
+ .join(` ${(separator ?? this.datePickerConfigService.separator)?.trim()} `);
61
70
  }
62
71
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyQuarterPickerFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
72
+ 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
73
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ThyQuarterPickerFormatPipe, isStandalone: true, name: "thyQuarterPickerFormat" }); }
65
74
  }
66
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyQuarterPickerFormatPipe, decorators: [{
@@ -69,7 +78,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
69
78
  name: 'thyQuarterPickerFormat',
70
79
  standalone: true
71
80
  }]
72
- }] });
81
+ }], ctorParameters: () => [{ type: i1.ThyDatePickerConfigService }] });
73
82
  /**
74
83
  * @private
75
84
  */
@@ -109,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
109
118
  standalone: true
110
119
  }]
111
120
  }], ctorParameters: () => [] });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLnBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL3BpY2tlci5waXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHckY7O0dBRUc7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBSnBDO1FBS1ksZUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBb0JsRDtJQWxCRyxTQUFTLENBQUMsYUFBNkQsRUFBRSxTQUFrQjtRQUN2RixNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZGLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNiLFNBQVMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDN0QsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDcEQsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLHVCQUF1QixJQUFJLHVCQUF1QixLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUMvRCxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25FLE9BQU8sZ0NBQWdDLENBQUMsU0FBUyxFQUFFLHVCQUF1QixDQUFDLENBQUM7WUFDaEYsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7K0dBcEJRLHVCQUF1Qjs2R0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUpuQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxxQkFBcUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7QUE0QkQsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQyxTQUFTLENBQUMsYUFBNkQsRUFBRSxTQUFrQjtRQUN2RixNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNiLFNBQVMsR0FBRyxVQUFVLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNULE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEtBQUs7aUJBQ1AsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDO2lCQUNELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQzsrR0F2QlEsMEJBQTBCOzZHQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBSnRDLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLHdCQUF3QjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7aUJBQ25COztBQTJCRDs7R0FFRztBQUtILE1BQU0sT0FBTyw2QkFBNkI7SUFKMUM7UUFLWSxlQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FPbEQ7SUFMRyxTQUFTLENBQUMsYUFBNkQ7UUFDbkUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZELE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3hELENBQUM7K0dBUFEsNkJBQTZCOzZHQUE3Qiw2QkFBNkI7OzRGQUE3Qiw2QkFBNkI7a0JBSnpDLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLDJCQUEyQjtvQkFDakMsVUFBVSxFQUFFLElBQUk7aUJBQ25COztBQVdEOztHQUVHO0FBS0gsTUFBTSxPQUFPLGlDQUFpQztJQUMxQyxnQkFBZSxDQUFDO0lBQ2hCLFNBQVMsQ0FBQyxLQUE2QixFQUFFLElBQXdCO1FBQzdELE9BQU8sSUFBSSxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQzsrR0FKUSxpQ0FBaUM7NkdBQWpDLGlDQUFpQzs7NEZBQWpDLGlDQUFpQztrQkFKN0MsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsYUFBYTtvQkFDbkIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBEYXRlSGVscGVyU2VydmljZSB9IGZyb20gJy4vZGF0ZS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBZHZhbmNlZFNlbGVjdGFibGVDZWxsIH0gZnJvbSAnLi9pbm5lci10eXBlcyc7XG5pbXBvcnQgeyBnZXRGbGV4aWJsZUFkdmFuY2VkUmVhZGFibGVWYWx1ZSwgdHJhbnNmb3JtRGF0ZVZhbHVlIH0gZnJvbSAnLi9waWNrZXIudXRpbCc7XG5pbXBvcnQgeyBDb21wYXRpYmxlRGF0ZSwgRGF0ZUVudHJ5LCBUaHlEYXRlR3JhbnVsYXJpdHksIFRoeURhdGVSYW5nZUVudHJ5IH0gZnJvbSAnLi9zdGFuZGFyZC10eXBlcyc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICd0aHlEYXRlUGlja2VyRm9ybWF0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeURhdGVQaWNrZXJGb3JtYXRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHJpdmF0ZSBkYXRlSGVscGVyID0gaW5qZWN0KERhdGVIZWxwZXJTZXJ2aWNlKTtcblxuICAgIHRyYW5zZm9ybShvcmlnaW5hbFZhbHVlOiBDb21wYXRpYmxlRGF0ZSB8IERhdGVFbnRyeSB8IFRoeURhdGVSYW5nZUVudHJ5LCBmb3JtYXRTdHI/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7IHZhbHVlLCB3aXRoVGltZSwgZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgfSA9IHRyYW5zZm9ybURhdGVWYWx1ZShvcmlnaW5hbFZhbHVlKTtcblxuICAgICAgICBpZiAoIWZvcm1hdFN0cikge1xuICAgICAgICAgICAgZm9ybWF0U3RyID0gd2l0aFRpbWUgPyAneXl5eS1NTS1kZCBISDptbScgOiAneXl5eS1NTS1kZCc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlSGVscGVyLmZvcm1hdCh2YWx1ZSwgZm9ybWF0U3RyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmbGV4aWJsZURhdGVHcmFudWxhcml0eSAmJiBmbGV4aWJsZURhdGVHcmFudWxhcml0eSAhPT0gJ2RheScpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aW55RGF0ZXMgPSBbbmV3IFRpbnlEYXRlKHZhbHVlWzBdKSwgbmV3IFRpbnlEYXRlKHZhbHVlWzFdKV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldEZsZXhpYmxlQWR2YW5jZWRSZWFkYWJsZVZhbHVlKHRpbnlEYXRlcywgZmxleGlibGVEYXRlR3JhbnVsYXJpdHkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGRhdGUgPT4gdGhpcy5kYXRlSGVscGVyLmZvcm1hdChkYXRlLCBmb3JtYXRTdHIpKS5qb2luKCcgfiAnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQFBpcGUoe1xuICAgIG5hbWU6ICd0aHlRdWFydGVyUGlja2VyRm9ybWF0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeVF1YXJ0ZXJQaWNrZXJGb3JtYXRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKG9yaWdpbmFsVmFsdWU6IENvbXBhdGlibGVEYXRlIHwgRGF0ZUVudHJ5IHwgVGh5RGF0ZVJhbmdlRW50cnksIGZvcm1hdFN0cj86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIHdpdGhUaW1lIH0gPSB0cmFuc2Zvcm1EYXRlVmFsdWUob3JpZ2luYWxWYWx1ZSk7XG5cbiAgICAgICAgaWYgKCFmb3JtYXRTdHIpIHtcbiAgICAgICAgICAgIGZvcm1hdFN0ciA9ICd5eXl5LXFxcSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBfdmFsdWUgPSBuZXcgVGlueURhdGUodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIF92YWx1ZS5mb3JtYXQoZm9ybWF0U3RyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgICAgIC5tYXAoZGF0ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IF9kYXRlID0gbmV3IFRpbnlEYXRlKGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2RhdGUuZm9ybWF0KGZvcm1hdFN0cik7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuam9pbignIH4gJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICd0aHlEYXRlUGlja2VyRm9ybWF0U3RyaW5nJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeURhdGVQaWNrZXJGb3JtYXRTdHJpbmdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHJpdmF0ZSBkYXRlSGVscGVyID0gaW5qZWN0KERhdGVIZWxwZXJTZXJ2aWNlKTtcblxuICAgIHRyYW5zZm9ybShvcmlnaW5hbFZhbHVlOiBDb21wYXRpYmxlRGF0ZSB8IERhdGVFbnRyeSB8IFRoeURhdGVSYW5nZUVudHJ5KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyB3aXRoVGltZSB9ID0gdHJhbnNmb3JtRGF0ZVZhbHVlKG9yaWdpbmFsVmFsdWUpO1xuXG4gICAgICAgIHJldHVybiB3aXRoVGltZSA/ICd5eXl5LU1NLWRkIEhIOm1tJyA6ICd5eXl5LU1NLWRkJztcbiAgICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdzaG93WWVhclRpcCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQWR2YW5jZWRTaG93WWVhclRpcFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcigpIHt9XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsLCB0eXBlOiBUaHlEYXRlR3JhbnVsYXJpdHkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGUgIT09ICd5ZWFyJyAmJiB2YWx1ZS5zdGFydFZhbHVlLmlzU2FtZURheSh2YWx1ZS5zdGFydFZhbHVlLnN0YXJ0T2ZZZWFyKCkpO1xuICAgIH1cbn1cbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLnBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL3BpY2tlci5waXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUdyRjs7R0FFRztBQUtILE1BQU0sT0FBTyx1QkFBdUI7SUFKcEM7UUFLWSxlQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsNEJBQXVCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDN0QsU0FBSSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQW9CekM7SUFsQkcsU0FBUyxDQUFDLGFBQTZELEVBQUUsU0FBa0IsRUFBRSxTQUFrQjtRQUMzRyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZGLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNiLFNBQVMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDN0QsQ0FBQztRQUNELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFD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UUFBUSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3hELENBQUM7K0dBUFEsNkJBQTZCOzZHQUE3Qiw2QkFBNkI7OzRGQUE3Qiw2QkFBNkI7a0JBSnpDLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLDJCQUEyQjtvQkFDakMsVUFBVSxFQUFFLElBQUk7aUJBQ25COztBQVdEOztHQUVHO0FBS0gsTUFBTSxPQUFPLGlDQUFpQztJQUMxQyxnQkFBZSxDQUFDO0lBQ2hCLFNBQVMsQ0FBQyxLQUE2QixFQUFFLElBQXdCO1FBQzdELE9BQU8sSUFBSSxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQzsrR0FKUSxpQ0FBaUM7NkdBQWpDLGlDQUFpQzs7NEZBQWpDLGlDQUFpQztrQkFKN0MsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsYUFBYTtvQkFDbkIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlJMThuU2VydmljZSB9IGZyb20gJ25neC10ZXRoeXMvaTE4bic7XG5pbXBvcnQgeyBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBEYXRlSGVscGVyU2VydmljZSB9IGZyb20gJy4vZGF0ZS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUaHlEYXRlUGlja2VyQ29uZmlnU2VydmljZSB9IGZyb20gJy4vZGF0ZS1waWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBZHZhbmNlZFNlbGVjdGFibGVDZWxsIH0gZnJvbSAnLi9pbm5lci10eXBlcyc7XG5pbXBvcnQgeyBnZXRGbGV4aWJsZUFkdmFuY2VkUmVhZGFibGVWYWx1ZSwgdHJhbnNmb3JtRGF0ZVZhbHVlIH0gZnJvbSAnLi9waWNrZXIudXRpbCc7XG5pbXBvcnQgeyBDb21wYXRpYmxlRGF0ZSwgRGF0ZUVudHJ5LCBUaHlEYXRlR3JhbnVsYXJpdHksIFRoeURhdGVSYW5nZUVudHJ5IH0gZnJvbSAnLi9zdGFuZGFyZC10eXBlcyc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICd0aHlEYXRlUGlja2VyRm9ybWF0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeURhdGVQaWNrZXJGb3JtYXRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHJpdmF0ZSBkYXRlSGVscGVyID0gaW5qZWN0KERhdGVIZWxwZXJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGRhdGVQaWNrZXJDb25maWdTZXJ2aWNlID0gaW5qZWN0KFRoeURhdGVQaWNrZXJDb25maWdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGkxOG4gPSBpbmplY3QoVGh5STE4blNlcnZpY2UpO1xuXG4gICAgdHJhbnNmb3JtKG9yaWdpbmFsVmFsdWU6IENvbXBhdGlibGVEYXRlIHwgRGF0ZUVudHJ5IHwgVGh5RGF0ZVJhbmdlRW50cnksIGZvcm1hdFN0cj86IHN0cmluZywgc2VwYXJhdG9yPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyB2YWx1ZSwgd2l0aFRpbWUsIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5IH0gPSB0cmFuc2Zvcm1EYXRlVmFsdWUob3JpZ2luYWxWYWx1ZSk7XG5cbiAgICAgICAgaWYgKCFmb3JtYXRTdHIpIHtcbiAgICAgICAgICAgIGZvcm1hdFN0ciA9IHdpdGhUaW1lID8gJ3l5eXktTU0tZGQgSEg6bW0nIDogJ3l5eXktTU0tZGQnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTZXBhcmF0b3IgPSBgICR7KHNlcGFyYXRvciA/PyB0aGlzLmRhdGVQaWNrZXJDb25maWdTZXJ2aWNlLnNlcGFyYXRvcik/LnRyaW0oKX0gYDtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZUhlbHBlci5mb3JtYXQodmFsdWUsIGZvcm1hdFN0cik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgJiYgZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgIT09ICdkYXknKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGlueURhdGVzID0gW25ldyBUaW55RGF0ZSh2YWx1ZVswXSksIG5ldyBUaW55RGF0ZSh2YWx1ZVsxXSldO1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRGbGV4aWJsZUFkdmFuY2VkUmVhZGFibGVWYWx1ZSh0aW55RGF0ZXMsIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5LCBjdXJyZW50U2VwYXJhdG9yLCB0aGlzLmkxOG4uZ2V0TG9jYWxlKCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUubWFwKGRhdGUgPT4gdGhpcy5kYXRlSGVscGVyLmZvcm1hdChkYXRlLCBmb3JtYXRTdHIpKS5qb2luKGN1cnJlbnRTZXBhcmF0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3RoeVF1YXJ0ZXJQaWNrZXJGb3JtYXQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5UXVhcnRlclBpY2tlckZvcm1hdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGVQaWNrZXJDb25maWdTZXJ2aWNlOiBUaHlEYXRlUGlja2VyQ29uZmlnU2VydmljZSkge31cblxuICAgIHRyYW5zZm9ybShvcmlnaW5hbFZhbHVlOiBDb21wYXRpYmxlRGF0ZSB8IERhdGVFbnRyeSB8IFRoeURhdGVSYW5nZUVudHJ5LCBmb3JtYXRTdHI/OiBzdHJpbmcsIHNlcGFyYXRvcj86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIHdpdGhUaW1lIH0gPSB0cmFuc2Zvcm1EYXRlVmFsdWUob3JpZ2luYWxWYWx1ZSk7XG5cbiAgICAgICAgaWYgKCFmb3JtYXRTdHIpIHtcbiAgICAgICAgICAgIGZvcm1hdFN0ciA9ICd5eXl5LXFxcSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICBjb25zdCBfdmFsdWUgPSBuZXcgVGlueURhdGUodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIF92YWx1ZS5mb3JtYXQoZm9ybWF0U3RyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgICAgIC5tYXAoZGF0ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IF9kYXRlID0gbmV3IFRpbnlEYXRlKGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2RhdGUuZm9ybWF0KGZvcm1hdFN0cik7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuam9pbihgICR7KHNlcGFyYXRvciA/PyB0aGlzLmRhdGVQaWNrZXJDb25maWdTZXJ2aWNlLnNlcGFyYXRvcik/LnRyaW0oKX0gYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICd0aHlEYXRlUGlja2VyRm9ybWF0U3RyaW5nJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeURhdGVQaWNrZXJGb3JtYXRTdHJpbmdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgcHJpdmF0ZSBkYXRlSGVscGVyID0gaW5qZWN0KERhdGVIZWxwZXJTZXJ2aWNlKTtcblxuICAgIHRyYW5zZm9ybShvcmlnaW5hbFZhbHVlOiBDb21wYXRpYmxlRGF0ZSB8IERhdGVFbnRyeSB8IFRoeURhdGVSYW5nZUVudHJ5KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyB3aXRoVGltZSB9ID0gdHJhbnNmb3JtRGF0ZVZhbHVlKG9yaWdpbmFsVmFsdWUpO1xuXG4gICAgICAgIHJldHVybiB3aXRoVGltZSA/ICd5eXl5LU1NLWRkIEhIOm1tJyA6ICd5eXl5LU1NLWRkJztcbiAgICB9XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdzaG93WWVhclRpcCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQWR2YW5jZWRTaG93WWVhclRpcFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBjb25zdHJ1Y3RvcigpIHt9XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBBZHZhbmNlZFNlbGVjdGFibGVDZWxsLCB0eXBlOiBUaHlEYXRlR3JhbnVsYXJpdHkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGUgIT09ICd5ZWFyJyAmJiB2YWx1ZS5zdGFydFZhbHVlLmlzU2FtZURheSh2YWx1ZS5zdGFydFZhbHVlLnN0YXJ0T2ZZZWFyKCkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,3 +1,4 @@
1
+ import { ThyLocaleType } from 'ngx-tethys/i18n';
1
2
  import { coerceArray, helpers, TinyDate } from 'ngx-tethys/util';
2
3
  export function transformDateValue(value) {
3
4
  if (!value) {
@@ -45,34 +46,37 @@ export function transformDateValue(value) {
45
46
  }
46
47
  return { value: value, withTime, flexibleDateGranularity };
47
48
  }
48
- export function getFlexibleAdvancedReadableValue(tinyDates, flexibleDateGranularity) {
49
+ export function getFlexibleAdvancedReadableValue(tinyDates, flexibleDateGranularity, separator, locale) {
49
50
  let value = '';
50
51
  if (!tinyDates[0] || !tinyDates[1]) {
51
52
  return value;
52
53
  }
53
54
  switch (flexibleDateGranularity) {
54
55
  case 'year':
56
+ const yearFormatStr = locale()?.id === ThyLocaleType.zhHans ? `yyyy年` : `yyyy`;
55
57
  if (tinyDates[0].isSameYear(tinyDates[1])) {
56
- value = `${tinyDates[0].getYear()}年`;
58
+ value = `${tinyDates[0].format(yearFormatStr)}`;
57
59
  }
58
60
  else {
59
- value = `${tinyDates[0].getYear()}年 ~ ${tinyDates[1].getYear()}年`;
61
+ value = `${tinyDates[0].format(yearFormatStr)}${separator}${tinyDates[1].format(yearFormatStr)}`;
60
62
  }
61
63
  break;
62
64
  case 'quarter':
65
+ const quarterFormatStr = locale()?.id === ThyLocaleType.zhHans ? `yyyy年 qqq` : `yyyy-qqq`;
63
66
  if (tinyDates[0].isSameQuarter(tinyDates[1])) {
64
- value = `${tinyDates[0].getYear()}年 Q${tinyDates[0].getQuarter()}`;
67
+ value = `${tinyDates[0].format(quarterFormatStr)}`;
65
68
  }
66
69
  else {
67
- value = `${tinyDates[0].getYear()}年 Q${tinyDates[0].getQuarter()} ~ ${tinyDates[1].getYear()}年 Q${tinyDates[1].getQuarter()}`;
70
+ value = `${tinyDates[0].format(quarterFormatStr)}${separator}${tinyDates[1].format(quarterFormatStr)}`;
68
71
  }
69
72
  break;
70
73
  case 'month':
74
+ const monthFormatStr = locale()?.id === ThyLocaleType.zhHans ? `yyyy年 MM月` : `yyyy-MM`;
71
75
  if (tinyDates[0].isSameMonth(tinyDates[1])) {
72
- value = `${tinyDates[0].getYear()}年 ${tinyDates[0].getMonth() + 1}月`;
76
+ value = `${tinyDates[0].format(monthFormatStr)}`;
73
77
  }
74
78
  else {
75
- value = `${tinyDates[0].getYear()}${tinyDates[0].getMonth() + 1}月 ~ ${tinyDates[1].getYear()}年 ${tinyDates[1].getMonth() + 1}月`;
79
+ value = `${tinyDates[0].format(monthFormatStr)}${separator}${tinyDates[1].format(monthFormatStr)}`;
76
80
  }
77
81
  break;
78
82
  }
@@ -217,4 +221,4 @@ export function setValueByTimestampPrecision(date, isRange, timestampPrecision)
217
221
  return isRange ? coerceArray(value).map(val => new TinyDate(val).getUnixTime()) : new TinyDate(value)?.getUnixTime();
218
222
  }
219
223
  }
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==
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0ZS1waWNrZXIvcGlja2VyLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFpQixhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUlqRSxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBcUc7SUFLcEksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxRQUFRLEVBQUUsdUJBQTJDLENBQUM7SUFDMUQsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxLQUFLLElBQUkseUJBQXlCLENBQUMsS0FBd0IsQ0FBQyxFQUFFLENBQUM7UUFDL0QsSUFBSSxLQUFLLFlBQVksUUFBUSxFQUFFLENBQUM7WUFDNUIsS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDSixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksS0FBSyxJQUFJLG1CQUFtQixDQUFDLEtBQWtCLENBQUMsRUFBRSxDQUFDO1FBQ25ELE1BQU0sRUFB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QUFJLENBQUM7SUFDeEQsQ0FBQztJQUNELElBQUksa0JBQWtCLEtBQUssY0FBYyxFQUFFLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4SCxDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBYSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDakksQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeUkxOG5Mb2NhbGUsIFRoeUxvY2FsZVR5cGUgfSBmcm9tICduZ3gtdGV0aHlzL2kxOG4nO1xuaW1wb3J0IHsgU2FmZUFueSB9IGZyb20gJ25neC10ZXRoeXMvdHlwZXMnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXksIGhlbHBlcnMsIFRpbnlEYXRlIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IENvbXBhdGlibGVWYWx1ZSwgUmFuZ2VBZHZhbmNlZFZhbHVlIH0gZnJvbSAnLi9pbm5lci10eXBlcyc7XG5pbXBvcnQgeyBDb21wYXRpYmxlRGF0ZSwgRGF0ZUVudHJ5LCBUaHlEYXRlR3JhbnVsYXJpdHksIFRoeURhdGVSYW5nZUVudHJ5LCBUaHlQYW5lbE1vZGUsIFRoeVNob3J0Y3V0VmFsdWUgfSBmcm9tICcuL3N0YW5kYXJkLXR5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybURhdGVWYWx1ZSh2YWx1ZTogQ29tcGF0aWJsZURhdGUgfCBDb21wYXRpYmxlVmFsdWUgfCBudW1iZXIgfCBEYXRlRW50cnkgfCBUaHlEYXRlUmFuZ2VFbnRyeSB8IFJhbmdlQWR2YW5jZWRWYWx1ZSk6IHtcbiAgICB2YWx1ZTogQ29tcGF0aWJsZURhdGU7XG4gICAgd2l0aFRpbWU/OiBib29sZWFuO1xuICAgIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5PzogVGh5RGF0ZUdyYW51bGFyaXR5O1xufSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm4geyB2YWx1ZTogbnVsbCB9O1xuICAgIH1cbiAgICBsZXQgd2l0aFRpbWUsIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5OiBUaHlEYXRlR3JhbnVsYXJpdHk7XG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgdmFsdWUgPSBjb252ZXJ0RGF0ZSh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh2YWx1ZSAmJiBpbnN0YW5jZU9mQ29tcGF0aWJsZVZhbHVlKHZhbHVlIGFzIENvbXBhdGlibGVWYWx1ZSkpIHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVGlueURhdGUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gY29udmVydERhdGUodmFsdWUubmF0aXZlRGF0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZVswXSA9IGNvbnZlcnREYXRlKHZhbHVlWzBdLm5hdGl2ZURhdGUpO1xuICAgICAgICAgICAgdmFsdWVbMV0gPSBjb252ZXJ0RGF0ZSh2YWx1ZVsxXS5uYXRpdmVEYXRlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodmFsdWUgJiYgaW5zdGFuY2VPZkRhdGVFbnRyeSh2YWx1ZSBhcyBEYXRlRW50cnkpKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0ZSwgd2l0aF90aW1lIH0gPSB2YWx1ZSBhcyBEYXRlRW50cnk7XG4gICAgICAgIHZhbHVlID0gZGF0ZSA/IGNvbnZlcnREYXRlKGRhdGUpIDogbnVsbDtcbiAgICAgICAgd2l0aFRpbWUgPSAhIXdpdGhfdGltZTtcbiAgICB9XG4gICAgaWYgKHZhbHVlICYmIGluc3RhbmNlT2ZSYW5nZUVudHJ5KHZhbHVlIGFzIFRoeURhdGVSYW5nZUVudHJ5KSkge1xuICAgICAgICBjb25zdCByYW5nZVZhbHVlID0gdmFsdWUgYXMgVGh5RGF0ZVJhbmdlRW50cnk7XG4gICAgICAgIHZhbHVlID0gW107XG4gICAgICAgIGlmIChyYW5nZVZhbHVlLmJlZ2luICYmIHJhbmdlVmFsdWUuZW5kKSB7XG4gICAgICAgICAgICB2YWx1ZVswXSA9IGNvbnZlcnREYXRlKHJhbmdlVmFsdWUuYmVnaW4pO1xuICAgICAgICAgICAgdmFsdWVbMV0gPSBjb252ZXJ0RGF0ZShyYW5nZVZhbHVlLmVuZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJhbmdlVmFsdWUuZ3JhbnVsYXJpdHkpIHtcbiAgICAgICAgICAgIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5ID0gcmFuZ2VWYWx1ZS5ncmFudWxhcml0eTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSAmJiBpbnN0YW5jZU9mUmFuZ2VBZHZhbmNlZFZhbHVlKHZhbHVlIGFzIFJhbmdlQWR2YW5jZWRWYWx1ZSkpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VWYWx1ZSA9IHZhbHVlIGFzIFJhbmdlQWR2YW5jZWRWYWx1ZTtcbiAgICAgICAgaWYgKHJhbmdlVmFsdWUuZGF0ZUdyYW51bGFyaXR5KSB7XG4gICAgICAgICAgICBmbGV4aWJsZURhdGVHcmFudWxhcml0eSA9IHJhbmdlVmFsdWUuZGF0ZUdyYW51bGFyaXR5O1xuICAgICAgICB9XG4gICAgICAgIHZhbHVlID0gW107XG4gICAgICAgIGlmIChyYW5nZVZhbHVlLmJlZ2luICYmIHJhbmdlVmFsdWUuZW5kKSB7XG4gICAgICAgICAgICB2YWx1ZVswXSA9IGNvbnZlcnREYXRlKHJhbmdlVmFsdWUuYmVnaW4ubmF0aXZlRGF0ZSk7XG4gICAgICAgICAgICB2YWx1ZVsxXSA9IGNvbnZlcnREYXRlKHJhbmdlVmFsdWUuZW5kLm5hdGl2ZURhdGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHZhbHVlOiB2YWx1ZSBhcyBDb21wYXRpYmxlRGF0ZSwgd2l0aFRpbWUsIGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5IH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGbGV4aWJsZUFkdmFuY2VkUmVhZGFibGVWYWx1ZShcbiAgICB0aW55RGF0ZXM6IFRpbnlEYXRlW10sXG4gICAgZmxleGlibGVEYXRlR3JhbnVsYXJpdHk6IFRoeURhdGVHcmFudWxhcml0eSxcbiAgICBzZXBhcmF0b3I6IHN0cmluZyxcbiAgICBsb2NhbGU6IFNpZ25hbDxUaHlJMThuTG9jYWxlPlxuKSB7XG4gICAgbGV0IHZhbHVlID0gJyc7XG4gICAgaWYgKCF0aW55RGF0ZXNbMF0gfHwgIXRpbnlEYXRlc1sxXSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHN3aXRjaCAoZmxleGlibGVEYXRlR3JhbnVsYXJpdHkpIHtcbiAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICBjb25zdCB5ZWFyRm9ybWF0U3RyID0gbG9jYWxlKCk/LmlkID09PSBUaHlMb2NhbGVUeXBlLnpoSGFucyA/IGB5eXl55bm0YCA6IGB5eXl5YDtcbiAgICAgICAgICAgIGlmICh0aW55RGF0ZXNbMF0uaXNTYW1lWWVhcih0aW55RGF0ZXNbMV0pKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBgJHt0aW55RGF0ZXNbMF0uZm9ybWF0KHllYXJGb3JtYXRTdHIpfWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gYCR7dGlueURhdGVzWzBdLmZvcm1hdCh5ZWFyRm9ybWF0U3RyKX0ke3NlcGFyYXRvcn0ke3RpbnlEYXRlc1sxXS5mb3JtYXQoeWVhckZvcm1hdFN0cil9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgIGNvbnN0IHF1YXJ0ZXJGb3JtYXRTdHIgPSBsb2NhbGUoKT8uaWQgPT09IFRoeUxvY2FsZVR5cGUuemhIYW5zID8gYHl5eXnlubQgcXFxYCA6IGB5eXl5LXFxcWA7XG4gICAgICAgICAgICBpZiAodGlueURhdGVzWzBdLmlzU2FtZVF1YXJ0ZXIodGlueURhdGVzWzFdKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gYCR7dGlueURhdGVzWzBdLmZvcm1hdChxdWFydGVyRm9ybWF0U3RyKX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGAke3RpbnlEYXRlc1swXS5mb3JtYXQocXVhcnRlckZvcm1hdFN0cil9JHtzZXBhcmF0b3J9JHt0aW55RGF0ZXNbMV0uZm9ybWF0KHF1YXJ0ZXJGb3JtYXRTdHIpfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgY29uc3QgbW9udGhGb3JtYXRTdHIgPSBsb2NhbGUoKT8uaWQgPT09IFRoeUxvY2FsZVR5cGUuemhIYW5zID8gYHl5eXnlubQgTU3mnIhgIDogYHl5eXktTU1gO1xuICAgICAgICAgICAgaWYgKHRpbnlEYXRlc1swXS5pc1NhbWVNb250aCh0aW55RGF0ZXNbMV0pKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBgJHt0aW55RGF0ZXNbMF0uZm9ybWF0KG1vbnRoRm9ybWF0U3RyKX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGAke3RpbnlEYXRlc1swXS5mb3JtYXQobW9udGhGb3JtYXRTdHIpfSR7c2VwYXJhdG9yfSR7dGlueURhdGVzWzFdLmZvcm1hdChtb250aEZvcm1hdFN0cil9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RGF0ZShkYXRlOiBEYXRlIHwgbnVtYmVyIHwgVGlueURhdGUpOiBEYXRlIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGlmIChkYXRlLnRvU3RyaW5nKCkubGVuZ3RoIDwgMTMpIHtcbiAgICAgICAgICAgIHJldHVybiBUaW55RGF0ZS5mcm9tVW5peFRpbWUoZGF0ZSk/Lm5hdGl2ZURhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGRhdGUpPy5uYXRpdmVEYXRlO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChkYXRlIGluc3RhbmNlb2YgVGlueURhdGUpIHtcbiAgICAgICAgcmV0dXJuIGRhdGU/Lm5hdGl2ZURhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShkYXRlKT8ubmF0aXZlRGF0ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNWYWx1ZSh2YWx1ZTogQ29tcGF0aWJsZVZhbHVlKTogYm9vbGVhbiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAhIXZhbHVlWzBdICYmICEhdmFsdWVbMV07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICEhdmFsdWU7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZVZhbHVlKHZhbHVlOiBDb21wYXRpYmxlRGF0ZSB8IG51bGwsIGlzUmFuZ2U6IGJvb2xlYW4gPSBmYWxzZSk6IENvbXBhdGlibGVWYWx1ZSB7XG4gICAgaWYgKGlzUmFuZ2UpIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gKHZhbHVlIGFzIERhdGVbXSkubWFwKHZhbCA9PiBuZXcgVGlueURhdGUodmFsKSkgOiBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmFsdWUgPyBuZXcgVGlueURhdGUodmFsdWUgYXMgRGF0ZSkgOiBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVBZGRBbW91bnQodmFsdWU6IFRpbnlEYXRlLCBhbW91bnQ6IG51bWJlciwgbW9kZTogVGh5UGFuZWxNb2RlKTogVGlueURhdGUge1xuICAgIGxldCBkYXRlOiBUaW55RGF0ZTtcbiAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgY2FzZSAnZGVjYWRlJzpcbiAgICAgICAgICAgIGRhdGUgPSB2YWx1ZS5hZGRZZWFycyhhbW91bnQgKiAxMCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICBkYXRlID0gdmFsdWUuYWRkWWVhcnMoYW1vdW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICBkYXRlID0gdmFsdWUuYWRkTW9udGhzKGFtb3VudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGRhdGUgPSB2YWx1ZS5hZGRNb250aHMoYW1vdW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gZGF0ZTtcbn1cblxuLy8gcmlnaHREYXRlIOi2hei/hyBsZWZ0RGF0ZSDkuIDkuKrmnIhcbmV4cG9ydCBmdW5jdGlvbiBpc0FmdGVyTW9yZVRoYW5PbmVNb250aChyaWdodERhdGU6IFRpbnlEYXRlLCBsZWZ0RGF0ZTogVGlueURhdGUpIHtcbiAgICByaWdodERhdGUgPSByaWdodERhdGUgPyByaWdodERhdGUgOiBsZWZ0RGF0ZSA/IGxlZnREYXRlIDogbmV3IFRpbnlEYXRlKCk7XG4gICAgbGVmdERhdGUgPSBsZWZ0RGF0ZSA/IGxlZnREYXRlIDogcmlnaHREYXRlO1xuICAgIGlmIChyaWdodERhdGUuZ2V0WWVhcigpIDwgbGVmdERhdGUuZ2V0WWVhcigpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAocmlnaHREYXRlLmdldFllYXIoKSA9PT0gbGVmdERhdGUuZ2V0WWVhcigpICYmIGxlZnREYXRlLmdldE1vbnRoKCkgKyAxID49IHJpZ2h0RGF0ZS5nZXRNb250aCgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyDlpITnkIZyaWdodERhdGUoMjAyMCwxLDEpIOS4umxlZnREYXRlKDIwMjAsMTIsMSnlkI7kuIDlubQx5pyILOWQjOaXtmxlZnREYXRl5pel5pyf5Li6MTLmnIjnmoTnibnmrormg4XlhrVcbiAgICByZXR1cm4gIShyaWdodERhdGUuZ2V0WWVhcigpIC0gbGVmdERhdGUuZ2V0WWVhcigpID09PSAxICYmIHJpZ2h0RGF0ZS5nZXRNb250aCgpID09PSAwICYmIGxlZnREYXRlLmdldE1vbnRoKCkgPT09IDExKTtcbn1cblxuLy8gcmlnaHREYXRlIOi2hei/hyBsZWZ0RGF0ZSDkuI3liLDkuIDlubRcbmV4cG9ydCBmdW5jdGlvbiBpc0FmdGVyTW9yZVRoYW5MZXNzT25lWWVhcihyaWdodERhdGU6IFRpbnlEYXRlLCBsZWZ0RGF0ZTogVGlueURhdGUpIHtcbiAgICByaWdodERhdGUgPSByaWdodERhdGUgPyByaWdodERhdGUgOiBsZWZ0RGF0ZSA/IGxlZnREYXRlIDogbmV3IFRpbnlEYXRlKCk7XG4gICAgbGVmdERhdGUgPSBsZWZ0RGF0ZSA/IGxlZnREYXRlIDogcmlnaHREYXRlO1xuICAgIGlmIChyaWdodERhdGUuZ2V0WWVhcigpIDw9IGxlZnREYXRlLmdldFllYXIoKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIOWkhOeQhnJpZ2h0RGF0ZSgyMDIxLDEsMSnml6XmnJ/mr5RsZWZ0RGF0ZSgyMDIwLDEyLDEp5pel5pyf5aSnMeW5tCzlkIzml7ZyaWdodERhdGXml6XmnJ/mnIjku73lsI/kuo5sZWZ0RGF0ZeaXpeacn+aciOS7veeahOaDheWGtVxuICAgIHJldHVybiAhKHJpZ2h0RGF0ZS5nZXRZZWFyKCkgLSBsZWZ0RGF0ZS5nZXRZZWFyKCkgPT09IDEgJiYgcmlnaHREYXRlLmdldE1vbnRoKCkgPD0gbGVmdERhdGUuZ2V0TW9udGgoKSk7XG59XG5cbi8vIHJpZ2h0RGF0ZSDotoXov4cgbGVmdERhdGUg5LiA5bm0XG5leHBvcnQgZnVuY3Rpb24gaXNBZnRlck1vcmVUaGFuT25lWWVhcihyaWdodERhdGU6IFRpbnlEYXRlLCBsZWZ0RGF0ZTogVGlueURhdGUpIHtcbiAgICByaWdodERhdGUgPSByaWdodERhdGUgPyByaWdodERhdGUgOiBsZWZ0RGF0ZSA/IGxlZnREYXRlIDogbmV3IFRpbnlEYXRlKCk7XG4gICAgbGVmdERhdGUgPSBsZWZ0RGF0ZSA/IGxlZnREYXRlIDogcmlnaHREYXRlO1xuICAgIGlmIChsZWZ0RGF0ZS5nZXRZZWFyKCkgKyAxID49IHJpZ2h0RGF0ZS5nZXRZZWFyKCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWZ0ZXJNb3JlVGhhbk9uZURlY2FkZShyaWdodERhdGU6IFRpbnlEYXRlLCBsZWZ0RGF0ZTogVGlueURhdGUpIHtcbiAgICByaWdodERhdGUgPSByaWdodERhdGUgPyByaWdodERhdGUgOiBsZWZ0RGF0ZSA/IGxlZnREYXRlIDogbmV3IFRpbnlEYXRlKCk7XG4gICAgbGVmdERhdGUgPSBsZWZ0RGF0ZSA/IGxlZnREYXRlIDogcmlnaHREYXRlO1xuICAgIHJldHVybiByaWdodERhdGUuZ2V0WWVhcigpIC0gbGVmdERhdGUuZ2V0WWVhcigpID49IDIwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFuY2VPZkRhdGVFbnRyeShvYmplY3Q6IERhdGVFbnRyeSk6IG9iamVjdCBpcyBEYXRlRW50cnkge1xuICAgIHJldHVybiBpc1N1cHBvcnREYXRlVHlwZShvYmplY3QsICdkYXRlJykgJiYgdHlwZW9mIG9iamVjdC53aXRoX3RpbWUgPT09ICdudW1iZXInO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFuY2VPZlJhbmdlRW50cnkob2JqZWN0OiBUaHlEYXRlUmFuZ2VFbnRyeSk6IG9iamVjdCBpcyBUaHlEYXRlUmFuZ2VFbnRyeSB7XG4gICAgcmV0dXJuIGlzU3VwcG9ydERhdGVUeXBlKG9iamVjdCwgJ2JlZ2luJykgJiYgaXNTdXBwb3J0RGF0ZVR5cGUob2JqZWN0LCAnZW5kJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW5jZU9mQ29tcGF0aWJsZVZhbHVlKG9iamVjdDogQ29tcGF0aWJsZVZhbHVlKTogb2JqZWN0IGlzIENvbXBhdGlibGVWYWx1ZSB7XG4gICAgcmV0dXJuIG9iamVjdCBpbnN0YW5jZW9mIFRpbnlEYXRlIHx8IG9iamVjdFswXSBpbnN0YW5jZW9mIFRpbnlEYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFuY2VPZlJhbmdlQWR2YW5jZWRWYWx1ZShvYmplY3Q6IFJhbmdlQWR2YW5jZWRWYWx1ZSk6IG9iamVjdCBpcyBSYW5nZUFkdmFuY2VkVmFsdWUge1xuICAgIHJldHVybiBvYmplY3RbJ2JlZ2luJ10gaW5zdGFuY2VvZiBUaW55RGF0ZSAmJiBvYmplY3RbJ2VuZCddIGluc3RhbmNlb2YgVGlueURhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N1cHBvcnREYXRlVHlwZShvYmplY3Q6IERhdGVFbnRyeSB8IFRoeURhdGVSYW5nZUVudHJ5LCBrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0eXBlb2Ygb2JqZWN0W2tleV0gPT09ICdudW1iZXInIHx8IG9iamVjdFtrZXldID09PSBudWxsIHx8IG9iamVjdFtrZXldIGluc3RhbmNlb2YgRGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNob3J0Y3V0VmFsdWUodmFsdWU6IFRoeVNob3J0Y3V0VmFsdWUpOiBudW1iZXIgfCBEYXRlIHtcbiAgICByZXR1cm4gaGVscGVycy5pc0Z1bmN0aW9uKHZhbHVlKSA/IHZhbHVlKCkgOiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRTdHJpbmdEYXRlKGRhdGVTdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHBhcnNlRGF0ZSA9IHBhcnNlU3RyaW5nRGF0ZShkYXRlU3RyKS5uYXRpdmVEYXRlLmdldFRpbWUoKTtcbiAgICByZXR1cm4gIShwYXJzZURhdGUgPCAwIHx8IGlzTmFOKHBhcnNlRGF0ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTdHJpbmdEYXRlKGRhdGVTdHI6IHN0cmluZyk6IFRpbnlEYXRlIHtcbiAgICByZXR1cm4gaGFzVGltZUluU3RyaW5nRGF0ZShkYXRlU3RyKSA/IG5ldyBUaW55RGF0ZShmaXhTdHJpbmdEYXRlKGRhdGVTdHIpKSA6IG5ldyBUaW55RGF0ZShmaXhTdHJpbmdEYXRlKGRhdGVTdHIpKS5zdGFydE9mRGF5KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNUaW1lSW5TdHJpbmdEYXRlKGRhdGVTdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZvcm1hdERhdGUgPSBmaXhTdHJpbmdEYXRlKGRhdGVTdHIpO1xuICAgIGNvbnN0IHRpbWVSZWdleCA9IC8oXFxkezEsMn06XFxkezEsMn0oOlxcZHsxLDJ9KT8pfCheXFxkezEsMn3ml7ZcXGR7MSwyfeWIhihcXGR7MSwyfeenkik/KSQvO1xuICAgIHJldHVybiB0aW1lUmVnZXgudGVzdChmb3JtYXREYXRlKTtcbn1cblxuZnVuY3Rpb24gZml4U3RyaW5nRGF0ZShkYXRlU3RyOiBzdHJpbmcpIHtcbiAgICBsZXQgcmVwbGFjZWRTdHIgPSBkYXRlU3RyLnJlcGxhY2UoL1teMC05XFxzLiw6XS9nLCAnLScpLnJlcGxhY2UoJy0gJywgJyAnKTtcbiAgICBjb25zdCBoYXNZZWFyID0gL1xcZHs0fS8udGVzdChyZXBsYWNlZFN0cik7XG4gICAgaWYgKCFoYXNZZWFyIHx8IHJlcGxhY2VkU3RyLmxlbmd0aCA8ICd5eXl5Lk0uZCcubGVuZ3RoKSB7XG4gICAgICAgIHJlcGxhY2VkU3RyID0gYCR7bmV3IFRpbnlEYXRlKCkuZ2V0WWVhcigpfS0ke3JlcGxhY2VkU3RyfWA7XG4gICAgfVxuICAgIHJldHVybiByZXBsYWNlZFN0cjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFZhbHVlQnlUaW1lc3RhbXBQcmVjaXNpb24oXG4gICAgZGF0ZTogQ29tcGF0aWJsZURhdGUgfCBudW1iZXIgfCBEYXRlIHwgRGF0ZUVudHJ5IHwgVGh5RGF0ZVJhbmdlRW50cnkgfCBTYWZlQW55LFxuICAgIGlzUmFuZ2U6IGJvb2xlYW4sXG4gICAgdGltZXN0YW1wUHJlY2lzaW9uOiAnc2Vjb25kcycgfCAnbWlsbGlzZWNvbmRzJ1xuKTogbnVtYmVyIHwgbnVtYmVyW10ge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRyYW5zZm9ybURhdGVWYWx1ZShkYXRlKTtcbiAgICBpZiAoIXZhbHVlIHx8IChoZWxwZXJzLmlzQXJyYXkodmFsdWUpICYmICF2YWx1ZT8ubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gaGVscGVycy5pc0FycmF5KHZhbHVlKSA/IFtudWxsLCBudWxsXSA6IG51bGw7XG4gICAgfVxuICAgIGlmICh0aW1lc3RhbXBQcmVjaXNpb24gPT09ICdtaWxsaXNlY29uZHMnKSB7XG4gICAgICAgIHJldHVybiBpc1JhbmdlID8gY29lcmNlQXJyYXkodmFsdWUpLm1hcCh2YWwgPT4gbmV3IFRpbnlEYXRlKHZhbCkuZ2V0VGltZSgpKSA6IG5ldyBUaW55RGF0ZSh2YWx1ZSBhcyBEYXRlKS5nZXRUaW1lKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGlzUmFuZ2UgPyBjb2VyY2VBcnJheSh2YWx1ZSkubWFwKHZhbCA9PiBuZXcgVGlueURhdGUodmFsKS5nZXRVbml4VGltZSgpKSA6IG5ldyBUaW55RGF0ZSh2YWx1ZSBhcyBEYXRlKT8uZ2V0VW5peFRpbWUoKTtcbiAgICB9XG59XG4iXX0=
@@ -31,7 +31,7 @@ export class ThyQuarterPicker extends BasePicker {
31
31
  multi: true,
32
32
  useExisting: forwardRef(() => ThyQuarterPicker)
33
33
  }
34
- ], exportAs: ["thyQuarterPicker"], 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 (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", "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 }); }
34
+ ], exportAs: ["thyQuarterPicker"], 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 }); }
35
35
  }
36
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyQuarterPicker, decorators: [{
37
37
  type: Component,
@@ -41,8 +41,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
41
41
  multi: true,
42
42
  useExisting: forwardRef(() => ThyQuarterPicker)
43
43
  }
44
- ], 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 (resultOk)=\"onResultOk()\"></date-popup>\n }\n</thy-picker>\n" }]
44
+ ], 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" }]
45
45
  }], ctorParameters: () => [], propDecorators: { thyFormat: [{
46
46
  type: Input
47
47
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL3F1YXJ0ZXItcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9iYXNlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUcvQzs7OztHQUlHO0FBZ0JILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxVQUFVO0lBZTVDO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFiWjs7O1dBR0c7UUFDTSxjQUFTLEdBQUcsVUFBVSxDQUFDO1FBRWhDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEIsaUJBQVksR0FBaUIsU0FBUyxDQUFDO1FBRS9CLGlCQUFZLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFLckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDOytHQXBCUSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixxR0FWZDtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7YUFDbEQ7U0FDSixpRkN6QkwsbTFEQXFEQSw0Q0QxQmMsU0FBUywrV0FBRSxTQUFTOzs0RkFFckIsZ0JBQWdCO2tCQWY1QixTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsb0JBQW9CLFlBQ3BCLGtCQUFrQixhQUVqQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQzt5QkFDbEQ7cUJBQ0osY0FDVyxJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO3dEQVN0QixTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcblxuaW1wb3J0IHsgQmFzZVBpY2tlciB9IGZyb20gJy4vYmFzZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQb3B1cCB9IGZyb20gJy4vbGliL3BvcHVwcy9kYXRlLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlQaWNrZXIgfSBmcm9tICcuL3BpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5UGFuZWxNb2RlIH0gZnJvbSAnLi9zdGFuZGFyZC10eXBlcyc7XG5cbi8qKlxuICog5a2j5bqm6YCJ5oup57uE5Lu2XG4gKiBAbmFtZSB0aHktcXVhcnRlci1waWNrZXJcbiAqIEBvcmRlciA2MFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ3RoeS1xdWFydGVyLXBpY2tlcicsXG4gICAgZXhwb3J0QXM6ICd0aHlRdWFydGVyUGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFzZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5UXVhcnRlclBpY2tlcilcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGh5UGlja2VyLCBEYXRlUG9wdXBdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVF1YXJ0ZXJQaWNrZXIgZXh0ZW5kcyBCYXNlUGlja2VyIHtcbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIOWxleekuueahOWto+W6puagvOW8j1xuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUZvcm1hdCA9ICd5eXl5LXFxcSc7XG5cbiAgICBpc1JhbmdlID0gZmFsc2U7XG5cbiAgICBlbmRQYW5lbE1vZGU6IFRoeVBhbmVsTW9kZSA9ICdxdWFydGVyJztcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5hZGRDbGFzcygndGh5LWNhbGVuZGFyLXBpY2tlcicpO1xuICAgICAgICB0aGlzLnRoeU1vZGUgPSAncXVhcnRlcic7XG4gICAgfVxufVxuIiwiPHRoeS1waWNrZXJcbiAgI3RoeVBpY2tlclxuICBbaXNSYW5nZV09XCJpc1JhbmdlXCJcbiAgW3ZhbHVlXT1cInRoeVZhbHVlXCJcbiAgW2ZsZXhpYmxlXT1cImZsZXhpYmxlXCJcbiAgW2ZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5XT1cImZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5XCJcbiAgKHZhbHVlQ2hhbmdlKT1cIm9uSW5wdXRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgW29wZW5dPVwidGh5T3BlblwiXG4gIFtkaXNhYmxlZF09XCJ0aHlEaXNhYmxlZFwiXG4gIFtmb3JtYXRdPVwidGh5Rm9ybWF0XCJcbiAgW21vZGVdPVwidGh5TW9kZVwiXG4gIFthbGxvd0NsZWFyXT1cInRoeUFsbG93Q2xlYXJcIlxuICBbY2xhc3NOYW1lXT1cInRoeU9yaWdpbkNsYXNzTmFtZVwiXG4gIFthdXRvRm9jdXNdPVwidGh5QXV0b0ZvY3VzXCJcbiAgW3BsYWNlaG9sZGVyXT1cInRoeVBsYWNlSG9sZGVyXCJcbiAgW3JlYWRvbmx5XT1cInRoeVJlYWRvbmx5XCJcbiAgW3NpemVdPVwidGh5U2l6ZVwiXG4gIFtzdWZmaXhJY29uXT1cInRoeVN1ZmZpeEljb25cIlxuICBbcGxhY2VtZW50XT1cInRoeVBsYWNlbWVudFwiXG4gIFtoYXNCYWNrZHJvcF09XCJ0aHlIYXNCYWNrZHJvcFwiXG4gIChvcGVuQ2hhbmdlKT1cIm9uT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAoaW5wdXRDaGFuZ2UpPVwib25JbnB1dERhdGUoJGV2ZW50KVwiPlxuICBAaWYgKGlzU2hvd0RhdGVQb3B1cCkge1xuICAgIDxkYXRlLXBvcHVwXG4gICAgICBbYXR0ci50YWJpbmRleF09XCItMVwiXG4gICAgICBbaXNSYW5nZV09XCJpc1JhbmdlXCJcbiAgICAgIFtzaG93V2Vla109XCJzaG93V2Vla1wiXG4gICAgICBbcGFuZWxNb2RlXT1cInBhbmVsTW9kZVwiXG4gICAgICBbZmxleGlibGVdPVwiZmxleGlibGVcIlxuICAgICAgW2ZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5XT1cImZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5XCJcbiAgICAgIFtkZWZhdWx0UGlja2VyVmFsdWVdPVwidGh5RGVmYXVsdFBpY2tlclZhbHVlXCJcbiAgICAgIChwYW5lbE1vZGVDaGFuZ2UpPVwidGh5T25QYW5lbENoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgKHNob3dUaW1lUGlja2VyQ2hhbmdlKT1cIm9uU2hvd1RpbWVQaWNrZXJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbdmFsdWVdPVwidGh5VmFsdWVcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoY2FsZW5kYXJDaGFuZ2UpPVwib25DYWxlbmRhckNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtzaG93VGltZV09XCJ0aHlTaG93VGltZVwiXG4gICAgICBbbXVzdFNob3dUaW1lXT1cIndpdGhUaW1lXCJcbiAgICAgIFtmb3JtYXRdPVwidGh5Rm9ybWF0XCJcbiAgICAgIFtkYXRlUmVuZGVyXT1cInRoeURhdGVSZW5kZXJcIlxuICAgICAgW2Rpc2FibGVkRGF0ZV09XCJ0aHlEaXNhYmxlZERhdGVcIlxuICAgICAgW21pbkRhdGVdPVwidGh5TWluRGF0ZVwiXG4gICAgICBbbWF4RGF0ZV09XCJ0aHlNYXhEYXRlXCJcbiAgICAgIFtzaG93U2hvcnRjdXRdPVwidGh5U2hvd1Nob3J0Y3V0XCJcbiAgICAgIFtzaG9ydGN1dFByZXNldHNdPVwic2hvcnRjdXRQcmVzZXRzXCJcbiAgICAgIFtzaG9ydGN1dFBvc2l0aW9uXT1cInNob3J0Y3V0UG9zaXRpb25cIlxuICAgICAgW3RpbWVzdGFtcFByZWNpc2lvbl09XCJ0aHlUaW1lc3RhbXBQcmVjaXNpb25cIlxuICAgICAgKGRhdGVWYWx1ZUNoYW5nZSk9XCJvbkRhdGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtjbGFzc05hbWVdPVwidGh5UGFuZWxDbGFzc05hbWVcIlxuICAgIChyZXN1bHRPayk9XCJvblJlc3VsdE9rKClcIj48L2RhdGUtcG9wdXA+XG4gIH1cbjwvdGh5LXBpY2tlcj5cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL3F1YXJ0ZXItcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9iYXNlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUcvQzs7OztHQUlHO0FBZ0JILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxVQUFVO0lBZTVDO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFiWjs7O1dBR0c7UUFDTSxjQUFTLEdBQUcsVUFBVSxDQUFDO1FBRWhDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEIsaUJBQVksR0FBaUIsU0FBUyxDQUFDO1FBRS9CLGlCQUFZLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFLckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDOytHQXBCUSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixxR0FWZDtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7YUFDbEQ7U0FDSixpRkN6QkwsbzNEQXNEQSw0Q0QzQmMsU0FBUyw0WEFBRSxTQUFTOzs0RkFFckIsZ0JBQWdCO2tCQWY1QixTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsb0JBQW9CLFlBQ3BCLGtCQUFrQixhQUVqQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQzt5QkFDbEQ7cUJBQ0osY0FDVyxJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO3dEQVN0QixTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcblxuaW1wb3J0IHsgQmFzZVBpY2tlciB9IGZyb20gJy4vYmFzZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQb3B1cCB9IGZyb20gJy4vbGliL3BvcHVwcy9kYXRlLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlQaWNrZXIgfSBmcm9tICcuL3BpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5UGFuZWxNb2RlIH0gZnJvbSAnLi9zdGFuZGFyZC10eXBlcyc7XG5cbi8qKlxuICog5a2j5bqm6YCJ5oup57uE5Lu2XG4gKiBAbmFtZSB0aHktcXVhcnRlci1waWNrZXJcbiAqIEBvcmRlciA2MFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ3RoeS1xdWFydGVyLXBpY2tlcicsXG4gICAgZXhwb3J0QXM6ICd0aHlRdWFydGVyUGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFzZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5UXVhcnRlclBpY2tlcilcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGh5UGlja2VyLCBEYXRlUG9wdXBdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVF1YXJ0ZXJQaWNrZXIgZXh0ZW5kcyBCYXNlUGlja2VyIHtcbiAgICBwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIOWxleekuueahOWto+W6puagvOW8j1xuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUZvcm1hdCA9ICd5eXl5LXFxcSc7XG5cbiAgICBpc1JhbmdlID0gZmFsc2U7XG5cbiAgICBlbmRQYW5lbE1vZGU6IFRoeVBhbmVsTW9kZSA9ICdxdWFydGVyJztcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5hZGRDbGFzcygndGh5LWNhbGVuZGFyLXBpY2tlcicpO1xuICAgICAgICB0aGlzLnRoeU1vZGUgPSAncXVhcnRlcic7XG4gICAgfVxufVxuIiwiPHRoeS1waWNrZXJcbiAgI3RoeVBpY2tlclxuICBbaXNSYW5nZV09XCJpc1JhbmdlXCJcbiAgW3ZhbHVlXT1cInRoeVZhbHVlXCJcbiAgW2ZsZXhpYmxlXT1cImZsZXhpYmxlXCJcbiAgW2ZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5XT1cImZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5XCJcbiAgKHZhbHVlQ2hhbmdlKT1cIm9uSW5wdXRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgW29wZW5dPVwidGh5T3BlblwiXG4gIFtkaXNhYmxlZF09XCJ0aHlEaXNhYmxlZFwiXG4gIFtmb3JtYXRdPVwidGh5Rm9ybWF0XCJcbiAgW3NlcGFyYXRvcl09XCJzZXBhcmF0b3IoKVwiXG4gIFttb2RlXT1cInRoeU1vZGVcIlxuICBbYWxsb3dDbGVhcl09XCJ0aHlBbGxvd0NsZWFyXCJcbiAgW2NsYXNzTmFtZV09XCJ0aHlPcmlnaW5DbGFzc05hbWVcIlxuICBbYXV0b0ZvY3VzXT1cInRoeUF1dG9Gb2N1c1wiXG4gIFtwbGFjZWhvbGRlcl09XCJ0aHlQbGFjZUhvbGRlclwiXG4gIFtyZWFkb25seV09XCJ0aHlSZWFkb25seVwiXG4gIFtzaXplXT1cInRoeVNpemVcIlxuICBbc3VmZml4SWNvbl09XCJ0aHlTdWZmaXhJY29uXCJcbiAgW3BsYWNlbWVudF09XCJ0aHlQbGFjZW1lbnRcIlxuICBbaGFzQmFja2Ryb3BdPVwidGh5SGFzQmFja2Ryb3BcIlxuICAob3BlbkNoYW5nZSk9XCJvbk9wZW5DaGFuZ2UoJGV2ZW50KVwiXG4gIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgKGlucHV0Q2hhbmdlKT1cIm9uSW5wdXREYXRlKCRldmVudClcIj5cbiAgQGlmIChpc1Nob3dEYXRlUG9wdXApIHtcbiAgICA8ZGF0ZS1wb3B1cFxuICAgICAgW2F0dHIudGFiaW5kZXhdPVwiLTFcIlxuICAgICAgW2lzUmFuZ2VdPVwiaXNSYW5nZVwiXG4gICAgICBbc2hvd1dlZWtdPVwic2hvd1dlZWtcIlxuICAgICAgW3BhbmVsTW9kZV09XCJwYW5lbE1vZGVcIlxuICAgICAgW2ZsZXhpYmxlXT1cImZsZXhpYmxlXCJcbiAgICAgIFtmbGV4aWJsZURhdGVHcmFudWxhcml0eV09XCJmbGV4aWJsZURhdGVHcmFudWxhcml0eVwiXG4gICAgICBbZGVmYXVsdFBpY2tlclZhbHVlXT1cInRoeURlZmF1bHRQaWNrZXJWYWx1ZVwiXG4gICAgICAocGFuZWxNb2RlQ2hhbmdlKT1cInRoeU9uUGFuZWxDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChzaG93VGltZVBpY2tlckNoYW5nZSk9XCJvblNob3dUaW1lUGlja2VyQ2hhbmdlKCRldmVudClcIlxuICAgICAgW3ZhbHVlXT1cInRoeVZhbHVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgKGNhbGVuZGFyQ2hhbmdlKT1cIm9uQ2FsZW5kYXJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbc2hvd1RpbWVdPVwidGh5U2hvd1RpbWVcIlxuICAgICAgW211c3RTaG93VGltZV09XCJ3aXRoVGltZVwiXG4gICAgICBbZm9ybWF0XT1cInRoeUZvcm1hdFwiXG4gICAgICBbZGF0ZVJlbmRlcl09XCJ0aHlEYXRlUmVuZGVyXCJcbiAgICAgIFtkaXNhYmxlZERhdGVdPVwidGh5RGlzYWJsZWREYXRlXCJcbiAgICAgIFttaW5EYXRlXT1cInRoeU1pbkRhdGVcIlxuICAgICAgW21heERhdGVdPVwidGh5TWF4RGF0ZVwiXG4gICAgICBbc2hvd1Nob3J0Y3V0XT1cInRoeVNob3dTaG9ydGN1dFwiXG4gICAgICBbc2hvcnRjdXRQcmVzZXRzXT1cInNob3J0Y3V0UHJlc2V0c1wiXG4gICAgICBbc2hvcnRjdXRQb3NpdGlvbl09XCJzaG9ydGN1dFBvc2l0aW9uXCJcbiAgICAgIFt0aW1lc3RhbXBQcmVjaXNpb25dPVwidGh5VGltZXN0YW1wUHJlY2lzaW9uXCJcbiAgICAgIChkYXRlVmFsdWVDaGFuZ2UpPVwib25EYXRlVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbY2xhc3NOYW1lXT1cInRoeVBhbmVsQ2xhc3NOYW1lXCJcbiAgICAgIChyZXN1bHRPayk9XCJvblJlc3VsdE9rKClcIj48L2RhdGUtcG9wdXA+XG4gIH1cbjwvdGh5LXBpY2tlcj5cbiJdfQ==