@libs-ui/components-datetime-picker 0.2.10-6.2 → 0.2.30-6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  import { ChangeDetectionStrategy, Component, effect, input, model, output, signal, untracked } from "@angular/core";
2
2
  import { LibsUiComponentsPopoverComponent } from "@libs-ui/components-popover";
3
+ import { getDayjs } from "@libs-ui/utils";
3
4
  import { TranslateModule } from "@ngx-translate/core";
4
- import dayjs from 'dayjs';
5
- import { defaultLocaleConfig, getDateOptions, getDateRangeDefault } from "../defines/date-options.define";
5
+ import { getDateOptionsDefault, getDateRangeDefault } from "../defines/date-options.define";
6
6
  import { LibsUiComponentsDatetimePickerCustomRangesCalendarComponent } from "./calendar/calendar.component";
7
7
  import * as i0 from "@angular/core";
8
8
  export class LibsUiComponentsDatetimePickerCustomRangesComponent {
@@ -23,24 +23,27 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
23
23
  extendRanges = input([]);
24
24
  widthByParent = input(false);
25
25
  autoApply = input(false);
26
+ minDate = input();
27
+ maxDate = input();
28
+ listYearHiddenInputSearch = input(true, { transform: (value) => value ?? true });
26
29
  positionQuickRanges = input('left', { transform: (value) => value ?? 'left' });
27
30
  isSingle = input(false, { transform: (value) => value ?? false });
28
31
  hasTimePicker = input(true);
29
32
  flagMouse = input({ isMouseEnter: false, isMouseEnterContent: false });
30
- dateOptions = input({ ...defaultLocaleConfig(), ...getDateOptions() });
33
+ dateOptions = input(getDateOptionsDefault());
31
34
  alwaysShowCalendars = input(false);
32
- startDate = model(dayjs().startOf('day'));
33
- endDate = model(dayjs().endOf('day'));
35
+ startDate = model(getDayjs().startOf('day'));
36
+ endDate = model(getDayjs().endOf('day'));
34
37
  showCustomRangeLabel = input(undefined);
35
38
  keepCalendarOpeningWithRange = input(undefined);
36
39
  singleDateSelected = input(undefined, {
37
40
  transform: (value) => {
38
- if (!value) {
41
+ if (!value || !value.date) {
39
42
  return;
40
43
  }
41
44
  let date = value.date;
42
45
  if (typeof date === 'string') {
43
- date = dayjs(date);
46
+ date = getDayjs({ date, returnDayjsIfConfigDateNotExist: true });
44
47
  }
45
48
  return {
46
49
  ...value,
@@ -56,10 +59,10 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
56
59
  let startDate = value.startDate;
57
60
  let endDate = value.endDate;
58
61
  if (typeof startDate === 'string') {
59
- startDate = dayjs(startDate);
62
+ startDate = getDayjs({ date: startDate, returnDayjsIfConfigDateNotExist: true });
60
63
  }
61
64
  if (typeof endDate === 'string') {
62
- endDate = dayjs(endDate);
65
+ endDate = getDayjs({ date: endDate, returnDayjsIfConfigDateNotExist: true });
63
66
  }
64
67
  return {
65
68
  ...value,
@@ -74,16 +77,16 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
74
77
  outCancel = output();
75
78
  outSelectSingleDate = output();
76
79
  outSelectDateRange = output();
77
- outClickRange = output();
80
+ outClickMenuRangeCustom = output();
78
81
  constructor() {
79
82
  effect(() => untracked(this.onAfterViewInit.bind(this)));
80
83
  }
81
84
  onAfterViewInit() {
82
85
  if (!this.startDate()) {
83
- this.startDate.set(dayjs().startOf('day'));
86
+ this.startDate.set(getDayjs().startOf('day'));
84
87
  }
85
88
  if (!this.endDate()) {
86
- this.endDate.set(dayjs().endOf('day'));
89
+ this.endDate.set(getDayjs().endOf('day'));
87
90
  }
88
91
  const dateRangeSelected = this.dateRangeSelected();
89
92
  const singleDateSelected = this.singleDateSelected();
@@ -93,13 +96,12 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
93
96
  };
94
97
  if (this.isSingle()) {
95
98
  if (this.hasTimePicker()) {
96
- const now = dayjs();
99
+ const now = getDayjs();
97
100
  this.startDate.update(current => {
98
101
  if (current) {
99
102
  current.set('hour', 10).set('minute', 30);
100
103
  // current.hour(now.hour()).minute(now.minute());
101
104
  }
102
- console.log('current', current, now, now.hour(), now.minute());
103
105
  return current;
104
106
  });
105
107
  this.endDate.update(current => {
@@ -108,11 +110,10 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
108
110
  }
109
111
  return current;
110
112
  });
111
- console.log(this.startDate(), this.endDate());
112
113
  }
113
- if (singleDateSelected) {
114
- this.startDate.set(singleDateSelected.date);
115
- this.endDate.set(singleDateSelected.date);
114
+ if (singleDateSelected?.date) {
115
+ this.startDate.set(getDayjs({ date: singleDateSelected.date }));
116
+ this.endDate.set(getDayjs({ date: singleDateSelected.date }));
116
117
  }
117
118
  this.renderRanges();
118
119
  return;
@@ -120,8 +121,8 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
120
121
  if (dateRangeSelected) {
121
122
  this.selectedQuickRange.set(dateRangeSelected.quickRangeId ? dateRangeSelected.quickRangeId : customRange.id);
122
123
  this.chosenQuickRange.set(dateRangeSelected.quickRangeId ?? customRange.id);
123
- this.startDate.set(dateRangeSelected.startDate);
124
- this.endDate.set(dateRangeSelected.endDate);
124
+ this.startDate.set(getDayjs({ date: dateRangeSelected.startDate }));
125
+ this.endDate.set(getDayjs({ date: dateRangeSelected.endDate }));
125
126
  }
126
127
  if (this.hasTimePicker()) {
127
128
  this.selectedQuickRange.set(customRange.id);
@@ -148,8 +149,8 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
148
149
  this.quickRangesArray.set([]);
149
150
  for (const key in ranges) {
150
151
  const rangeValue = rangesDefault[key];
151
- const start = dayjs(rangeValue[0]);
152
- const end = dayjs(rangeValue[1]);
152
+ const start = getDayjs({ date: rangeValue[0], returnDayjsIfConfigDateNotExist: true });
153
+ const end = getDayjs({ date: rangeValue[1], returnDayjsIfConfigDateNotExist: true });
153
154
  this.quickRangesArray.update(current => {
154
155
  current.push({
155
156
  id: key,
@@ -182,16 +183,15 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
182
183
  this.outCancel.emit('');
183
184
  }
184
185
  handlerPickerDate(event) {
185
- console.log('handlerPickerDate', event);
186
186
  this.chosenSingleDate.set({
187
187
  displayLabel: event.displayLabel,
188
188
  date: event.startDate,
189
189
  values: event.detailDatePicker.start()
190
190
  });
191
- // if (!this.isSingle() && event.startDate && !event.endDate) {
192
- // const endTime = event.detailDatePicker.end();
193
- // event.endDate = event.startDate.clone().hour(endTime.hour as number).minute(endTime.minute as number).second(59);
194
- // }
191
+ if (!this.isSingle() && event.startDate && !event.endDate) {
192
+ const endTime = event.detailDatePicker.end();
193
+ event.endDate = event.startDate.clone().hour(endTime.hour).minute(endTime.minute).second(59);
194
+ }
195
195
  this.chosenDateRange.set({
196
196
  quickRangeId: this.chosenQuickRange(),
197
197
  ...event
@@ -209,13 +209,17 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
209
209
  }
210
210
  handlerClickRange(e, range) {
211
211
  e.stopPropagation();
212
- this.updateWidth();
213
212
  this.chosenQuickRange.set(range.id);
214
213
  if (range.id === this.dateOptions()?.customRangeLabel) {
215
- this.calendarShowing.set(true);
216
- this.showCalTableInRanges.set(true);
214
+ if (!this.calendarShowing() && !this.showCalTableInRanges()) {
215
+ this.calendarShowing.set(true);
216
+ this.showCalTableInRanges.set(true);
217
+ this.outClickMenuRangeCustom.emit(range);
218
+ this.updateWidth();
219
+ }
217
220
  return;
218
221
  }
222
+ this.updateWidth();
219
223
  if (this.extendRanges()) {
220
224
  const findExternalRange = this.extendRanges().find(item => item.label === range.id);
221
225
  if (findExternalRange && range.id === findExternalRange.label) {
@@ -227,7 +231,7 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
227
231
  return;
228
232
  }
229
233
  }
230
- const dates = range.values ?? [];
234
+ // const dates = range.values ?? [];
231
235
  // this.startDate.set(dates[0].clone().hour(0).minute(0).second(0));
232
236
  // this.endDate.set(dates[1].clone().hour(23).minute(59).second(59));
233
237
  // this.timeValue = { hour: 0, toHour: 0, minute: 23, toMinute: 59 };
@@ -290,7 +294,7 @@ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
290
294
  // this.onDestroy.complete();
291
295
  }
292
296
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsDatetimePickerCustomRangesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
293
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsDatetimePickerCustomRangesComponent, isStandalone: true, selector: "libs_ui-components-datetime-picker-custom_ranges", inputs: { zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, extendRanges: { classPropertyName: "extendRanges", publicName: "extendRanges", isSignal: true, isRequired: false, transformFunction: null }, widthByParent: { classPropertyName: "widthByParent", publicName: "widthByParent", isSignal: true, isRequired: false, transformFunction: null }, autoApply: { classPropertyName: "autoApply", publicName: "autoApply", isSignal: true, isRequired: false, transformFunction: null }, positionQuickRanges: { classPropertyName: "positionQuickRanges", publicName: "positionQuickRanges", isSignal: true, isRequired: false, transformFunction: null }, isSingle: { classPropertyName: "isSingle", publicName: "isSingle", isSignal: true, isRequired: false, transformFunction: null }, hasTimePicker: { classPropertyName: "hasTimePicker", publicName: "hasTimePicker", isSignal: true, isRequired: false, transformFunction: null }, flagMouse: { classPropertyName: "flagMouse", publicName: "flagMouse", isSignal: true, isRequired: false, transformFunction: null }, dateOptions: { classPropertyName: "dateOptions", publicName: "dateOptions", isSignal: true, isRequired: false, transformFunction: null }, alwaysShowCalendars: { classPropertyName: "alwaysShowCalendars", publicName: "alwaysShowCalendars", isSignal: true, isRequired: false, transformFunction: null }, startDate: { classPropertyName: "startDate", publicName: "startDate", isSignal: true, isRequired: false, transformFunction: null }, endDate: { classPropertyName: "endDate", publicName: "endDate", isSignal: true, isRequired: false, transformFunction: null }, showCustomRangeLabel: { classPropertyName: "showCustomRangeLabel", publicName: "showCustomRangeLabel", isSignal: true, isRequired: false, transformFunction: null }, keepCalendarOpeningWithRange: { classPropertyName: "keepCalendarOpeningWithRange", publicName: "keepCalendarOpeningWithRange", isSignal: true, isRequired: false, transformFunction: null }, singleDateSelected: { classPropertyName: "singleDateSelected", publicName: "singleDateSelected", isSignal: true, isRequired: false, transformFunction: null }, dateRangeSelected: { classPropertyName: "dateRangeSelected", publicName: "dateRangeSelected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { startDate: "startDateChange", endDate: "endDateChange", outChangStageFlagMouse: "outChangStageFlagMouse", outUpdateWidth: "outUpdateWidth", outCancel: "outCancel", outSelectSingleDate: "outSelectSingleDate", outSelectDateRange: "outSelectDateRange", outClickRange: "outClickRange" }, ngImport: i0, template: "<div #pickerContainer\n class=\"libs-ui-component-custom_ranges flex rounded-[4px] bg-[#ffffff] z-[1000] overflow-[hidden] relative inline\"\n [class.flex-row-reverse]=\"positionQuickRanges() === 'right'\">\n @if (!isSingle()) {\n <div class=\"libs-ui-component-custom_ranges-ranges {{ classInclude() || '' }}\"\n [class.border-l-[#e6e8ed]]=\"positionQuickRanges() === 'right' && showCalTableInRanges()\"\n [class.border-l]=\"positionQuickRanges() === 'right' && showCalTableInRanges()\"\n [class.border-r-[#e6e8ed]]=\"positionQuickRanges() === 'left' && showCalTableInRanges()\"\n [class.border-r]=\"positionQuickRanges() === 'left' && showCalTableInRanges()\"\n [class.!min-h-[260px]]=\"showCalTableInRanges() && !isSingle()\"\n [class.!min-h-[300px]]=\"hasTimePicker() && !isSingle()\"\n [class.!w-[160px]]=\"!widthByParent()\"\n [class.!w-full]=\"widthByParent()\">\n @for (range of quickRangesArray(); track range.id) {\n <div class=\"flex items-center hover:bg-[var(--libs-ui-color-light-3)] cursor-pointer px-[16px] py-[8px]\"\n [class.libs-ui-selected-range]=\"range.id === chosenQuickRange() && showCustomRangeLabel()\"\n [class.bg-[var(--libs-ui-color-light-3)]]=\"range.id === chosenQuickRange() || range.id === selectedQuickRange()\"\n (click)=\"handlerClickRange($event, range)\">\n <div class=\"libs-ui-font-h5r flex text-[#333333] min-w-0 w-full\">\n <div LibsUiComponentsPopoverDirective\n type=\"text\"\n [config]=\"{maxWidth:160,direction:'top',zIndex:(zIndex() ||1000) + 1}\"\n [innerHTML]=\"range.label\"\n (click)=\"handlerClickRange($event, range)\">\n </div>\n </div>\n <i class=\"text-[12px] ml-[16px]\"\n [class.libs-ui-icon-check]=\"range.id === selectedQuickRange()\"\n [class.text-[var(--libs-ui-color-default)]]=\"range.id === selectedQuickRange()\"></i>\n </div>\n }\n </div>\n }\n @if (showCalTableInRanges()) {\n <div class=\"m-[16px] w-full\">\n <libs_ui-components-datetime-picker-custom_ranges-calendar [isSingle]=\"isSingle()\"\n [autoApply]=\"autoApply()\"\n [zIndex]=\"zIndex()\"\n [flagMouse]=\"flagMouse()\"\n [dateOptions]=\"dateOptions()\"\n [hasTimePicker]=\"hasTimePicker()\"\n [quickRangesArray]=\"quickRangesArray()\"\n [startDate]=\"startDate()\"\n [endDate]=\"endDate()\"\n [classInclude]=\"'w-full'\"\n (outCancel)=\"handlerCancel()\"\n (outPickerDate)=\"handlerPickerDate($event)\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangeFlagMouse($event)\" />\n </div>\n }\n</div>\n", styles: [".libs-ui-component-custom_ranges{position:absolute;box-shadow:0 2px 4px #00000029,0 2px 8px #0000001f}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges{width:159px;flex-shrink:0}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges .libs-ui-selected-range{position:relative}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges .libs-ui-selected-range:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:2px;background-color:var(--libs-ui-color-default)!important}@media (min-width: 564px){.libs-ui-component-custom_ranges{width:auto}}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "component", type: LibsUiComponentsDatetimePickerCustomRangesCalendarComponent, selector: "libs_ui-components-datetime-picker-custom_ranges-calendar", inputs: ["quickRangesArray", "zIndex", "classInclude", "isSingle", "showDropdownsSelect", "hasTimePicker", "flagMouse", "dateOptions", "autoApply", "hasSecondPicker", "showRangeLabelOnInput", "startDate", "endDate", "minDate", "maxDate"], outputs: ["startDateChange", "endDateChange", "outChangStageFlagMouse", "outPickerDate", "outCancel", "outUpdateWidth", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
297
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsDatetimePickerCustomRangesComponent, isStandalone: true, selector: "libs_ui-components-datetime-picker-custom_ranges", inputs: { zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, extendRanges: { classPropertyName: "extendRanges", publicName: "extendRanges", isSignal: true, isRequired: false, transformFunction: null }, widthByParent: { classPropertyName: "widthByParent", publicName: "widthByParent", isSignal: true, isRequired: false, transformFunction: null }, autoApply: { classPropertyName: "autoApply", publicName: "autoApply", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, listYearHiddenInputSearch: { classPropertyName: "listYearHiddenInputSearch", publicName: "listYearHiddenInputSearch", isSignal: true, isRequired: false, transformFunction: null }, positionQuickRanges: { classPropertyName: "positionQuickRanges", publicName: "positionQuickRanges", isSignal: true, isRequired: false, transformFunction: null }, isSingle: { classPropertyName: "isSingle", publicName: "isSingle", isSignal: true, isRequired: false, transformFunction: null }, hasTimePicker: { classPropertyName: "hasTimePicker", publicName: "hasTimePicker", isSignal: true, isRequired: false, transformFunction: null }, flagMouse: { classPropertyName: "flagMouse", publicName: "flagMouse", isSignal: true, isRequired: false, transformFunction: null }, dateOptions: { classPropertyName: "dateOptions", publicName: "dateOptions", isSignal: true, isRequired: false, transformFunction: null }, alwaysShowCalendars: { classPropertyName: "alwaysShowCalendars", publicName: "alwaysShowCalendars", isSignal: true, isRequired: false, transformFunction: null }, startDate: { classPropertyName: "startDate", publicName: "startDate", isSignal: true, isRequired: false, transformFunction: null }, endDate: { classPropertyName: "endDate", publicName: "endDate", isSignal: true, isRequired: false, transformFunction: null }, showCustomRangeLabel: { classPropertyName: "showCustomRangeLabel", publicName: "showCustomRangeLabel", isSignal: true, isRequired: false, transformFunction: null }, keepCalendarOpeningWithRange: { classPropertyName: "keepCalendarOpeningWithRange", publicName: "keepCalendarOpeningWithRange", isSignal: true, isRequired: false, transformFunction: null }, singleDateSelected: { classPropertyName: "singleDateSelected", publicName: "singleDateSelected", isSignal: true, isRequired: false, transformFunction: null }, dateRangeSelected: { classPropertyName: "dateRangeSelected", publicName: "dateRangeSelected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { startDate: "startDateChange", endDate: "endDateChange", outChangStageFlagMouse: "outChangStageFlagMouse", outUpdateWidth: "outUpdateWidth", outCancel: "outCancel", outSelectSingleDate: "outSelectSingleDate", outSelectDateRange: "outSelectDateRange", outClickMenuRangeCustom: "outClickMenuRangeCustom" }, ngImport: i0, template: "<div #pickerContainer\n class=\"libs-ui-component-custom_ranges flex rounded-[4px] bg-[#ffffff] z-[1000] overflow-hidden\"\n [class.flex-row-reverse]=\"positionQuickRanges() === 'right'\">\n @if (!isSingle()) {\n <div class=\"libs-ui-component-custom_ranges-ranges {{ classInclude() || '' }}\"\n [class.border-l-[#e6e8ed]]=\"positionQuickRanges() === 'right' && showCalTableInRanges()\"\n [class.border-l]=\"positionQuickRanges() === 'right' && showCalTableInRanges()\"\n [class.border-r-[#e6e8ed]]=\"positionQuickRanges() === 'left' && showCalTableInRanges()\"\n [class.border-r]=\"positionQuickRanges() === 'left' && showCalTableInRanges()\"\n [class.!min-h-[260px]]=\"showCalTableInRanges() && !isSingle()\"\n [class.!min-h-[300px]]=\"hasTimePicker() && !isSingle()\"\n [class.!w-[160px]]=\"!widthByParent()\"\n [class.!w-full]=\"widthByParent()\">\n @for (range of quickRangesArray(); track range.id) {\n <div class=\"flex items-center hover:bg-[var(--libs-ui-color-light-3)] cursor-pointer px-[16px] py-[8px]\"\n [class.libs-ui-selected-range]=\"range.id === chosenQuickRange() && showCustomRangeLabel()\"\n [class.bg-[var(--libs-ui-color-light-3)]]=\"range.id === chosenQuickRange() || range.id === selectedQuickRange()\"\n (click)=\"handlerClickRange($event, range)\">\n <div class=\"libs-ui-font-h5r flex text-[#333333] min-w-0 w-full\">\n <div LibsUiComponentsPopoverDirective\n [ignoreStopPropagationEvent]=\"true\"\n type=\"text\"\n [config]=\"{maxWidth:160,direction:'top',zIndex:(zIndex() ||1000) + 1}\"\n [innerHTML]=\"range.label\">\n </div>\n </div>\n <i class=\"text-[12px] ml-[16px]\"\n [class.libs-ui-icon-check]=\"range.id === selectedQuickRange()\"\n [class.text-[var(--libs-ui-color-default)]]=\"range.id === selectedQuickRange()\"></i>\n </div>\n }\n </div>\n }\n @if (showCalTableInRanges()) {\n <div class=\"m-[16px] w-full\">\n <libs_ui-components-datetime-picker-custom_ranges-calendar [isSingle]=\"isSingle()\"\n [autoApply]=\"autoApply()\"\n [zIndex]=\"zIndex()\"\n [flagMouse]=\"flagMouse()\"\n [dateOptions]=\"dateOptions()\"\n [hasTimePicker]=\"hasTimePicker()\"\n [quickRangesArray]=\"quickRangesArray()\"\n [startDate]=\"startDate()\"\n [endDate]=\"endDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [listYearHiddenInputSearch]=\"listYearHiddenInputSearch()\"\n [classInclude]=\"'w-full'\"\n (outCancel)=\"handlerCancel()\"\n (outPickerDate)=\"handlerPickerDate($event)\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangeFlagMouse($event)\" />\n </div>\n }\n</div>\n", styles: [".libs-ui-component-custom_ranges{position:relative;box-shadow:0 2px 4px #00000029,0 2px 8px #0000001f}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges{width:159px;flex-shrink:0}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges .libs-ui-selected-range{position:relative}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges .libs-ui-selected-range:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:2px;background-color:var(--libs-ui-color-default)!important}@media (min-width: 564px){.libs-ui-component-custom_ranges{width:auto}}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "component", type: LibsUiComponentsDatetimePickerCustomRangesCalendarComponent, selector: "libs_ui-components-datetime-picker-custom_ranges-calendar", inputs: ["quickRangesArray", "zIndex", "classInclude", "isSingle", "showDropdownsSelect", "hasTimePicker", "flagMouse", "dateOptions", "autoApply", "hasSecondPicker", "showRangeLabelOnInput", "startDate", "endDate", "minDate", "maxDate", "listYearHiddenInputSearch"], outputs: ["startDateChange", "endDateChange", "outChangStageFlagMouse", "outPickerDate", "outCancel", "outUpdateWidth", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
294
298
  }
295
299
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsDatetimePickerCustomRangesComponent, decorators: [{
296
300
  type: Component,
@@ -298,6 +302,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
298
302
  TranslateModule,
299
303
  LibsUiComponentsDatetimePickerCustomRangesCalendarComponent,
300
304
  LibsUiComponentsPopoverComponent
301
- ], template: "<div #pickerContainer\n class=\"libs-ui-component-custom_ranges flex rounded-[4px] bg-[#ffffff] z-[1000] overflow-[hidden] relative inline\"\n [class.flex-row-reverse]=\"positionQuickRanges() === 'right'\">\n @if (!isSingle()) {\n <div class=\"libs-ui-component-custom_ranges-ranges {{ classInclude() || '' }}\"\n [class.border-l-[#e6e8ed]]=\"positionQuickRanges() === 'right' && showCalTableInRanges()\"\n [class.border-l]=\"positionQuickRanges() === 'right' && showCalTableInRanges()\"\n [class.border-r-[#e6e8ed]]=\"positionQuickRanges() === 'left' && showCalTableInRanges()\"\n [class.border-r]=\"positionQuickRanges() === 'left' && showCalTableInRanges()\"\n [class.!min-h-[260px]]=\"showCalTableInRanges() && !isSingle()\"\n [class.!min-h-[300px]]=\"hasTimePicker() && !isSingle()\"\n [class.!w-[160px]]=\"!widthByParent()\"\n [class.!w-full]=\"widthByParent()\">\n @for (range of quickRangesArray(); track range.id) {\n <div class=\"flex items-center hover:bg-[var(--libs-ui-color-light-3)] cursor-pointer px-[16px] py-[8px]\"\n [class.libs-ui-selected-range]=\"range.id === chosenQuickRange() && showCustomRangeLabel()\"\n [class.bg-[var(--libs-ui-color-light-3)]]=\"range.id === chosenQuickRange() || range.id === selectedQuickRange()\"\n (click)=\"handlerClickRange($event, range)\">\n <div class=\"libs-ui-font-h5r flex text-[#333333] min-w-0 w-full\">\n <div LibsUiComponentsPopoverDirective\n type=\"text\"\n [config]=\"{maxWidth:160,direction:'top',zIndex:(zIndex() ||1000) + 1}\"\n [innerHTML]=\"range.label\"\n (click)=\"handlerClickRange($event, range)\">\n </div>\n </div>\n <i class=\"text-[12px] ml-[16px]\"\n [class.libs-ui-icon-check]=\"range.id === selectedQuickRange()\"\n [class.text-[var(--libs-ui-color-default)]]=\"range.id === selectedQuickRange()\"></i>\n </div>\n }\n </div>\n }\n @if (showCalTableInRanges()) {\n <div class=\"m-[16px] w-full\">\n <libs_ui-components-datetime-picker-custom_ranges-calendar [isSingle]=\"isSingle()\"\n [autoApply]=\"autoApply()\"\n [zIndex]=\"zIndex()\"\n [flagMouse]=\"flagMouse()\"\n [dateOptions]=\"dateOptions()\"\n [hasTimePicker]=\"hasTimePicker()\"\n [quickRangesArray]=\"quickRangesArray()\"\n [startDate]=\"startDate()\"\n [endDate]=\"endDate()\"\n [classInclude]=\"'w-full'\"\n (outCancel)=\"handlerCancel()\"\n (outPickerDate)=\"handlerPickerDate($event)\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangeFlagMouse($event)\" />\n </div>\n }\n</div>\n", styles: [".libs-ui-component-custom_ranges{position:absolute;box-shadow:0 2px 4px #00000029,0 2px 8px #0000001f}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges{width:159px;flex-shrink:0}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges .libs-ui-selected-range{position:relative}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges .libs-ui-selected-range:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:2px;background-color:var(--libs-ui-color-default)!important}@media (min-width: 564px){.libs-ui-component-custom_ranges{width:auto}}\n"] }]
305
+ ], template: "<div #pickerContainer\n class=\"libs-ui-component-custom_ranges flex rounded-[4px] bg-[#ffffff] z-[1000] overflow-hidden\"\n [class.flex-row-reverse]=\"positionQuickRanges() === 'right'\">\n @if (!isSingle()) {\n <div class=\"libs-ui-component-custom_ranges-ranges {{ classInclude() || '' }}\"\n [class.border-l-[#e6e8ed]]=\"positionQuickRanges() === 'right' && showCalTableInRanges()\"\n [class.border-l]=\"positionQuickRanges() === 'right' && showCalTableInRanges()\"\n [class.border-r-[#e6e8ed]]=\"positionQuickRanges() === 'left' && showCalTableInRanges()\"\n [class.border-r]=\"positionQuickRanges() === 'left' && showCalTableInRanges()\"\n [class.!min-h-[260px]]=\"showCalTableInRanges() && !isSingle()\"\n [class.!min-h-[300px]]=\"hasTimePicker() && !isSingle()\"\n [class.!w-[160px]]=\"!widthByParent()\"\n [class.!w-full]=\"widthByParent()\">\n @for (range of quickRangesArray(); track range.id) {\n <div class=\"flex items-center hover:bg-[var(--libs-ui-color-light-3)] cursor-pointer px-[16px] py-[8px]\"\n [class.libs-ui-selected-range]=\"range.id === chosenQuickRange() && showCustomRangeLabel()\"\n [class.bg-[var(--libs-ui-color-light-3)]]=\"range.id === chosenQuickRange() || range.id === selectedQuickRange()\"\n (click)=\"handlerClickRange($event, range)\">\n <div class=\"libs-ui-font-h5r flex text-[#333333] min-w-0 w-full\">\n <div LibsUiComponentsPopoverDirective\n [ignoreStopPropagationEvent]=\"true\"\n type=\"text\"\n [config]=\"{maxWidth:160,direction:'top',zIndex:(zIndex() ||1000) + 1}\"\n [innerHTML]=\"range.label\">\n </div>\n </div>\n <i class=\"text-[12px] ml-[16px]\"\n [class.libs-ui-icon-check]=\"range.id === selectedQuickRange()\"\n [class.text-[var(--libs-ui-color-default)]]=\"range.id === selectedQuickRange()\"></i>\n </div>\n }\n </div>\n }\n @if (showCalTableInRanges()) {\n <div class=\"m-[16px] w-full\">\n <libs_ui-components-datetime-picker-custom_ranges-calendar [isSingle]=\"isSingle()\"\n [autoApply]=\"autoApply()\"\n [zIndex]=\"zIndex()\"\n [flagMouse]=\"flagMouse()\"\n [dateOptions]=\"dateOptions()\"\n [hasTimePicker]=\"hasTimePicker()\"\n [quickRangesArray]=\"quickRangesArray()\"\n [startDate]=\"startDate()\"\n [endDate]=\"endDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [listYearHiddenInputSearch]=\"listYearHiddenInputSearch()\"\n [classInclude]=\"'w-full'\"\n (outCancel)=\"handlerCancel()\"\n (outPickerDate)=\"handlerPickerDate($event)\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\"\n (outChangStageFlagMouse)=\"handlerChangeFlagMouse($event)\" />\n </div>\n }\n</div>\n", styles: [".libs-ui-component-custom_ranges{position:relative;box-shadow:0 2px 4px #00000029,0 2px 8px #0000001f}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges{width:159px;flex-shrink:0}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges .libs-ui-selected-range{position:relative}.libs-ui-component-custom_ranges .libs-ui-component-custom_ranges-ranges .libs-ui-selected-range:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:2px;background-color:var(--libs-ui-color-default)!important}@media (min-width: 564px){.libs-ui-component-custom_ranges{width:auto}}\n"] }]
302
306
  }], ctorParameters: () => [] });
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhbmdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9jdXN0b20tcmFuZ2VzL2N1c3RvbS1yYW5nZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL3BpY2tlci9zcmMvY3VzdG9tLXJhbmdlcy9jdXN0b20tcmFuZ2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFjLGdDQUFnQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFLMUcsT0FBTyxFQUFFLDJEQUEyRCxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBZTVHLE1BQU0sT0FBTyxtREFBbUQ7SUFDOUQsZUFBZTtJQUNMLG9CQUFvQixHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUM5QyxnQkFBZ0IsR0FBRyxNQUFNLENBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELGtCQUFrQixHQUFHLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLG1DQUFtQztJQUM1RSxnQkFBZ0IsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCO0lBRXpGLGVBQWUsR0FBRyxN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Q1QsQ0FBQztJQUVTLGtCQUFrQixDQUFDLEtBQVk7UUFDdkMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLGdDQUFnQztRQUNoQyw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVTLHNCQUFzQixDQUFDLFNBQXFCO1FBQ3BELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLHVCQUF1QixDQUFDLEtBQW9DO1FBQ3BFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEQseUJBQXlCO1FBQ3pCLDZCQUE2QjtJQUMvQixDQUFDO3dHQWpWVSxtREFBbUQ7NEZBQW5ELG1EQUFtRCwwMEZDeEJoRSx5dkZBb0RBLDZwQkRqQ0ksZUFBZSwrQkFDZiwyREFBMkQscWVBQzNELGdDQUFnQzs7NEZBR3ZCLG1EQUFtRDtrQkFiL0QsU0FBUzsrQkFFRSxrREFBa0QsY0FHaEQsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGVBQWU7d0JBQ2YsMkRBQTJEO3dCQUMzRCxnQ0FBZ0M7cUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZWZmZWN0LCBpbnB1dCwgbW9kZWwsIE9uRGVzdHJveSwgb3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJRmxhZ01vdXNlLCBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgZGVmYXVsdExvY2FsZUNvbmZpZywgZ2V0RGF0ZU9wdGlvbnMsIGdldERhdGVSYW5nZURlZmF1bHQgfSBmcm9tIFwiLi4vZGVmaW5lcy9kYXRlLW9wdGlvbnMuZGVmaW5lXCI7XG5pbXBvcnQgeyBJRW1pdERhdGVDYWxlbmRhciwgSUVtaXREYXRlUmFuZ2UsIElFbWl0U2luZ2xlRGF0ZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2NhbGVuZGFyLWVtaXQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBJRGF0ZVJhbmdlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvY2FsZW5kYXItdmFyaWFibGVzLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgSUNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9mdW5jdGlvbi1jb250cm9sLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uQ29uZmlnIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcGlja2VyLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lUGlja2VyQ3VzdG9tUmFuZ2VzQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tIFwiLi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlci1jdXN0b21fcmFuZ2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1yYW5nZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tcmFuZ2VzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIExpYnNVaUNvbXBvbmVudHNEYXRldGltZVBpY2tlckN1c3RvbVJhbmdlc0NhbGVuZGFyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lUGlja2VyQ3VzdG9tUmFuZ2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqIFBST1BFUlRZICovXG4gIHByb3RlY3RlZCBzaG93Q2FsVGFibGVJblJhbmdlcyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByb3RlY3RlZCBxdWlja1Jhbmdlc0FycmF5ID0gc2lnbmFsPEFycmF5PElEYXRlUmFuZ2U+PihbXSk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFF1aWNrUmFuZ2UgPSBzaWduYWw8c3RyaW5nPignJyk7IC8vIHF1aWNrIHJhbmdlIMSRw6MgxJHGsOG7o2MgbMawdSB0csaw4bubYyDEkcOzXG4gIHByb3RlY3RlZCBjaG9zZW5RdWlja1JhbmdlID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTsgLy8gcXVpY2sgcmFuZ2UgxJFhbmcgxJHGsOG7o2MgY2jhu41uXG5cbiAgcHJpdmF0ZSBjYWxlbmRhclNob3dpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHRpbWVvdXRzID0gc2lnbmFsPEFycmF5PG51bWJlcj4+KFtdKTtcbiAgcHJpdmF0ZSBjYWxlbmRhckZ1bmN0aW9uQ29udHJvbEV2ZW50ID0gc2lnbmFsPElDYWxlbmRhckZ1bmN0aW9uQ29udHJvbEV2ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIGNob3NlblNpbmdsZURhdGUgPSBzaWduYWw8SUVtaXRTaW5nbGVEYXRlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIGNob3NlbkRhdGVSYW5nZSA9IHNpZ25hbDxJRW1pdERhdGVSYW5nZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAvKiogSU5QVVQgKi9cbiAgLy8gcmVhZG9ubHkgU2VsZWN0ZWRRdWlja1JhbmdlID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IHpJbmRleCA9IGlucHV0PG51bWJlciwgbnVtYmVyPigxMjAwLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyAxMjAwIH0pO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgZXh0ZW5kUmFuZ2VzID0gaW5wdXQ8QXJyYXk8SURhdGVSYW5nZT4+KFtdKTtcbiAgcmVhZG9ubHkgd2lkdGhCeVBhcmVudCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgYXV0b0FwcGx5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHBvc2l0aW9uUXVpY2tSYW5nZXMgPSBpbnB1dDwnbGVmdCcgfCAncmlnaHQnLCAnbGVmdCcgfCAncmlnaHQnPignbGVmdCcsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/ICdsZWZ0JyB9KTtcbiAgcmVhZG9ubHkgaXNTaW5nbGUgPSBpbnB1dDxib29sZWFuLCBib29sZWFuPihmYWxzZSwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gZmFsc2UgfSk7XG4gIHJlYWRvbmx5IGhhc1RpbWVQaWNrZXIgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgZmxhZ01vdXNlID0gaW5wdXQ8SUZsYWdNb3VzZT4oeyBpc01vdXNlRW50ZXI6IGZhbHNlLCBpc01vdXNlRW50ZXJDb250ZW50OiBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgZGF0ZU9wdGlvbnMgPSBpbnB1dDxMb2NhbGl6YXRpb25Db25maWc+KHsgLi4uZGVmYXVsdExvY2FsZUNvbmZpZygpLCAuLi5nZXREYXRlT3B0aW9ucygpIH0pO1xuICByZWFkb25seSBhbHdheXNTaG93Q2FsZW5kYXJzID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzdGFydERhdGUgPSBtb2RlbDxkYXlqcy5EYXlqcyB8IHVuZGVmaW5lZD4oZGF5anMoKS5zdGFydE9mKCdkYXknKSk7XG4gIHJlYWRvbmx5IGVuZERhdGUgPSBtb2RlbDxkYXlqcy5EYXlqcyB8IHVuZGVmaW5lZD4oZGF5anMoKS5lbmRPZignZGF5JykpO1xuICByZWFkb25seSBzaG93Q3VzdG9tUmFuZ2VMYWJlbCA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGtlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2UgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IHNpbmdsZURhdGVTZWxlY3RlZCA9IGlucHV0PElFbWl0U2luZ2xlRGF0ZSB8IHVuZGVmaW5lZCwgSUVtaXRTaW5nbGVEYXRlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQsIHtcbiAgICB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgZGF0ZSA9IHZhbHVlLmRhdGU7XG5cbiAgICAgIGlmICh0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZGF0ZSA9IGRheWpzKGRhdGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgZGF0ZVxuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICByZWFkb25seSBkYXRlUmFuZ2VTZWxlY3RlZCA9IGlucHV0PElFbWl0RGF0ZVJhbmdlIHwgdW5kZWZpbmVkLCBJRW1pdERhdGVSYW5nZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7XG4gICAgdHJhbnNmb3JtOiAodmFsdWUpID0+IHtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IHN0YXJ0RGF0ZSA9IHZhbHVlLnN0YXJ0RGF0ZTtcbiAgICAgIGxldCBlbmREYXRlID0gdmFsdWUuZW5kRGF0ZTtcblxuICAgICAgaWYgKHR5cGVvZiBzdGFydERhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHN0YXJ0RGF0ZSA9IGRheWpzKHN0YXJ0RGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgZW5kRGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZW5kRGF0ZSA9IGRheWpzKGVuZERhdGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgc3RhcnREYXRlLFxuICAgICAgICBlbmREYXRlXG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqIE9VVFBVVCAqL1xuICByZWFkb25seSBvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlID0gb3V0cHV0PElGbGFnTW91c2U+KCk7XG4gIHJlYWRvbmx5IG91dFVwZGF0ZVdpZHRoID0gb3V0cHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgb3V0Q2FuY2VsID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgb3V0U2VsZWN0U2luZ2xlRGF0ZSA9IG91dHB1dDxJRW1pdFNpbmdsZURhdGU+KCk7XG4gIHJlYWRvbmx5IG91dFNlbGVjdERhdGVSYW5nZSA9IG91dHB1dDxJRW1pdERhdGVSYW5nZT4oKTtcbiAgcmVhZG9ubHkgb3V0Q2xpY2tSYW5nZSA9IG91dHB1dDxJRGF0ZVJhbmdlPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB1bnRyYWNrZWQodGhpcy5vbkFmdGVyVmlld0luaXQuYmluZCh0aGlzKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkFmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0RGF0ZSgpKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXQoZGF5anMoKS5zdGFydE9mKCdkYXknKSk7XG4gICAgfVxuICAgIGlmICghdGhpcy5lbmREYXRlKCkpIHtcbiAgICAgIHRoaXMuZW5kRGF0ZS5zZXQoZGF5anMoKS5lbmRPZignZGF5JykpO1xuICAgIH1cbiAgICBjb25zdCBkYXRlUmFuZ2VTZWxlY3RlZCA9IHRoaXMuZGF0ZVJhbmdlU2VsZWN0ZWQoKTtcbiAgICBjb25zdCBzaW5nbGVEYXRlU2VsZWN0ZWQgPSB0aGlzLnNpbmdsZURhdGVTZWxlY3RlZCgpO1xuICAgIGNvbnN0IGN1c3RvbVJhbmdlID0ge1xuICAgICAgaWQ6IHRoaXMuZGF0ZU9wdGlvbnMoKT8uY3VzdG9tUmFuZ2VMYWJlbCB8fCAnJyxcbiAgICAgIGxhYmVsOiB0aGlzLmRhdGVPcHRpb25zKCk/LmN1c3RvbVJhbmdlTGFiZWwgfHwgJydcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuaXNTaW5nbGUoKSkge1xuICAgICAgaWYgKHRoaXMuaGFzVGltZVBpY2tlcigpKSB7XG4gICAgICAgIGNvbnN0IG5vdyA9IGRheWpzKCk7XG5cbiAgICAgICAgdGhpcy5zdGFydERhdGUudXBkYXRlKGN1cnJlbnQgPT4ge1xuICAgICAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgICAgICBjdXJyZW50LnNldCgnaG91cicsIDEwKS5zZXQoJ21pbnV0ZScsIDMwKTtcbiAgICAgICAgICAgIC8vIGN1cnJlbnQuaG91cihub3cuaG91cigpKS5taW51dGUobm93Lm1pbnV0ZSgpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zb2xlLmxvZygnY3VycmVudCcsIGN1cnJlbnQsIG5vdywgbm93LmhvdXIoKSwgbm93Lm1pbnV0ZSgpKTtcblxuXG4gICAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmVuZERhdGUudXBkYXRlKGN1cnJlbnQgPT4ge1xuICAgICAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgICAgICBjdXJyZW50LmhvdXIobm93LmhvdXIoKSkubWludXRlKG5vdy5taW51dGUoKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnN0YXJ0RGF0ZSgpLCB0aGlzLmVuZERhdGUoKSk7XG4gICAgICB9XG4gICAgICBpZiAoc2luZ2xlRGF0ZVNlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc3RhcnREYXRlLnNldChzaW5nbGVEYXRlU2VsZWN0ZWQuZGF0ZSBhcyBkYXlqcy5EYXlqcyk7XG4gICAgICAgIHRoaXMuZW5kRGF0ZS5zZXQoc2luZ2xlRGF0ZVNlbGVjdGVkLmRhdGUgYXMgZGF5anMuRGF5anMpO1xuICAgICAgfVxuICAgICAgdGhpcy5yZW5kZXJSYW5nZXMoKTtcblxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGRhdGVSYW5nZVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUXVpY2tSYW5nZS5zZXQoZGF0ZVJhbmdlU2VsZWN0ZWQucXVpY2tSYW5nZUlkID8gZGF0ZVJhbmdlU2VsZWN0ZWQucXVpY2tSYW5nZUlkIDogY3VzdG9tUmFuZ2UuaWQpO1xuICAgICAgdGhpcy5jaG9zZW5RdWlja1JhbmdlLnNldChkYXRlUmFuZ2VTZWxlY3RlZC5xdWlja1JhbmdlSWQgPz8gY3VzdG9tUmFuZ2UuaWQpO1xuXG4gICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXQoZGF0ZVJhbmdlU2VsZWN0ZWQuc3RhcnREYXRlIGFzIGRheWpzLkRheWpzKTtcbiAgICAgIHRoaXMuZW5kRGF0ZS5zZXQoZGF0ZVJhbmdlU2VsZWN0ZWQuZW5kRGF0ZSBhcyBkYXlqcy5EYXlqcyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc1RpbWVQaWNrZXIoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFF1aWNrUmFuZ2Uuc2V0KGN1c3RvbVJhbmdlLmlkKTtcbiAgICAgIHRoaXMuY2hvc2VuUXVpY2tSYW5nZS5zZXQoY3VzdG9tUmFuZ2UuaWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RlZFF1aWNrUmFuZ2UoKSA9PT0gdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsKSB7XG4gICAgICB0aGlzLnNob3dDYWxUYWJsZUluUmFuZ2VzLnNldCh0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5yZW5kZXJSYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlV2lkdGgoKSB7XG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm91dFVwZGF0ZVdpZHRoLmVtaXQoMSk7XG4gICAgfSkgYXMgdW5rbm93biBhcyBudW1iZXI7XG5cbiAgICB0aGlzLnRpbWVvdXRzLnVwZGF0ZShpZHMgPT4gWy4uLmlkcywgdGltZW91dElkXSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclJhbmdlcygpIHtcbiAgICBpZiAodGhpcy5pc1NpbmdsZSgpKSB7XG4gICAgICB0aGlzLnNob3dDYWxUYWJsZUluUmFuZ2VzLnNldCh0cnVlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByYW5nZXNEZWZhdWx0ID0gZ2V0RGF0ZVJhbmdlRGVmYXVsdCgpO1xuICAgIGNvbnN0IHJhbmdlcyA9IHRoaXMuZGF0ZU9wdGlvbnMoKT8ucmFuZ2VzO1xuXG4gICAgdGhpcy5xdWlja1Jhbmdlc0FycmF5LnNldChbXSk7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiByYW5nZXMpIHtcbiAgICAgIGNvbnN0IHJhbmdlVmFsdWUgPSByYW5nZXNEZWZhdWx0W2tleV07XG4gICAgICBjb25zdCBzdGFydCA9IGRheWpzKHJhbmdlVmFsdWVbMF0pO1xuICAgICAgY29uc3QgZW5kID0gZGF5anMocmFuZ2VWYWx1ZVsxXSk7XG5cbiAgICAgIHRoaXMucXVpY2tSYW5nZXNBcnJheS51cGRhdGUoY3VycmVudCA9PiB7XG4gICAgICAgIGN1cnJlbnQucHVzaCh7XG4gICAgICAgICAgaWQ6IGtleSxcbiAgICAgICAgICBsYWJlbDogcmFuZ2VzW2tleV0sXG4gICAgICAgICAgdmFsdWVzOiBbc3RhcnQsIGVuZF1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd0N1c3RvbVJhbmdlTGFiZWwoKSAmJiB0aGlzLmRhdGVPcHRpb25zKCk/LmN1c3RvbVJhbmdlTGFiZWwpIHtcbiAgICAgIHRoaXMucXVpY2tSYW5nZXNBcnJheS51cGRhdGUoY3VycmVudCA9PiB7XG4gICAgICAgIGN1cnJlbnQucHVzaCh7XG4gICAgICAgICAgaWQ6IHRoaXMuZGF0ZU9wdGlvbnMoKT8uY3VzdG9tUmFuZ2VMYWJlbCB8fCAnJyxcbiAgICAgICAgICBsYWJlbDogdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsIHx8ICcnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmV4dGVuZFJhbmdlcygpKSB7XG4gICAgICB0aGlzLnF1aWNrUmFuZ2VzQXJyYXkudXBkYXRlKGN1cnJlbnQgPT4ge1xuICAgICAgICBjdXJyZW50LnVuc2hpZnQoLi4udGhpcy5leHRlbmRSYW5nZXMoKSk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnF1aWNrUmFuZ2VzQXJyYXkoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2hvd0NhbFRhYmxlSW5SYW5nZXMuc2V0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2FuY2VsKCkge1xuICAgIHRoaXMub3V0Q2FuY2VsLmVtaXQoJycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJQaWNrZXJEYXRlKGV2ZW50OiBJRW1pdERhdGVDYWxlbmRhcikge1xuICAgIGNvbnNvbGUubG9nKCdoYW5kbGVyUGlja2VyRGF0ZScsIGV2ZW50KTtcblxuICAgIHRoaXMuY2hvc2VuU2luZ2xlRGF0ZS5zZXQoe1xuICAgICAgZGlzcGxheUxhYmVsOiBldmVudC5kaXNwbGF5TGFiZWwsXG4gICAgICBkYXRlOiBldmVudC5zdGFydERhdGUsXG4gICAgICB2YWx1ZXM6IGV2ZW50LmRldGFpbERhdGVQaWNrZXIuc3RhcnQoKVxuICAgIH0pO1xuICAgIC8vIGlmICghdGhpcy5pc1NpbmdsZSgpICYmIGV2ZW50LnN0YXJ0RGF0ZSAmJiAhZXZlbnQuZW5kRGF0ZSkge1xuICAgIC8vICAgY29uc3QgZW5kVGltZSA9IGV2ZW50LmRldGFpbERhdGVQaWNrZXIuZW5kKCk7XG4gICAgLy8gICBldmVudC5lbmREYXRlID0gZXZlbnQuc3RhcnREYXRlLmNsb25lKCkuaG91cihlbmRUaW1lLmhvdXIgYXMgbnVtYmVyKS5taW51dGUoZW5kVGltZS5taW51dGUgYXMgbnVtYmVyKS5zZWNvbmQoNTkpO1xuICAgIC8vIH1cbiAgICB0aGlzLmNob3NlbkRhdGVSYW5nZS5zZXQoe1xuICAgICAgcXVpY2tSYW5nZUlkOiB0aGlzLmNob3NlblF1aWNrUmFuZ2UoKSxcbiAgICAgIC4uLmV2ZW50XG4gICAgfSk7XG4gICAgY29uc3QgY2hvc2VuU2luZ2xlRGF0ZSA9IHRoaXMuY2hvc2VuU2luZ2xlRGF0ZSgpO1xuICAgIGNvbnN0IGNob3NlbkRhdGVSYW5nZSA9IHRoaXMuY2hvc2VuRGF0ZVJhbmdlKCk7XG4gICAgaWYgKHRoaXMuaXNTaW5nbGUoKSAmJiBjaG9zZW5TaW5nbGVEYXRlKSB7XG4gICAgICB0aGlzLm91dFNlbGVjdFNpbmdsZURhdGUuZW1pdChjaG9zZW5TaW5nbGVEYXRlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWNob3NlbkRhdGVSYW5nZSB8fCAoIWNob3NlbkRhdGVSYW5nZS5zdGFydERhdGUgJiYgIWNob3NlbkRhdGVSYW5nZS5lbmREYXRlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm91dFNlbGVjdERhdGVSYW5nZS5lbWl0KGNob3NlbkRhdGVSYW5nZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNsaWNrUmFuZ2UoZTogRXZlbnQsIHJhbmdlOiBJRGF0ZVJhbmdlKSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnVwZGF0ZVdpZHRoKCk7XG4gICAgdGhpcy5jaG9zZW5RdWlja1JhbmdlLnNldChyYW5nZS5pZCk7XG5cbiAgICBpZiAocmFuZ2UuaWQgPT09IHRoaXMuZGF0ZU9wdGlvbnMoKT8uY3VzdG9tUmFuZ2VMYWJlbCkge1xuICAgICAgdGhpcy5jYWxlbmRhclNob3dpbmcuc2V0KHRydWUpO1xuICAgICAgdGhpcy5zaG93Q2FsVGFibGVJblJhbmdlcy5zZXQodHJ1ZSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXh0ZW5kUmFuZ2VzKCkpIHtcbiAgICAgIGNvbnN0IGZpbmRFeHRlcm5hbFJhbmdlID0gdGhpcy5leHRlbmRSYW5nZXMoKS5maW5kKGl0ZW0gPT4gaXRlbS5sYWJlbCA9PT0gcmFuZ2UuaWQpO1xuXG4gICAgICBpZiAoZmluZEV4dGVybmFsUmFuZ2UgJiYgcmFuZ2UuaWQgPT09IGZpbmRFeHRlcm5hbFJhbmdlLmxhYmVsKSB7XG4gICAgICAgIGlmIChmaW5kRXh0ZXJuYWxSYW5nZS52YWx1ZXMpIHtcbiAgICAgICAgICB0aGlzLm91dFNlbGVjdERhdGVSYW5nZS5lbWl0KHsgcXVpY2tSYW5nZUlkOiBmaW5kRXh0ZXJuYWxSYW5nZS5pZCwgZGlzcGxheUxhYmVsOiBmaW5kRXh0ZXJuYWxSYW5nZS5sYWJlbCwgc3RhcnREYXRlOiBmaW5kRXh0ZXJuYWxSYW5nZS52YWx1ZXNbMF0sIGVuZERhdGU6IGZpbmRFeHRlcm5hbFJhbmdlLnZhbHVlc1sxXSB9KTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm91dFNlbGVjdERhdGVSYW5nZS5lbWl0KHsgcXVpY2tSYW5nZUlkOiBmaW5kRXh0ZXJuYWxSYW5nZS5pZCwgZGlzcGxheUxhYmVsOiBmaW5kRXh0ZXJuYWxSYW5nZS5sYWJlbCwgc3RhcnREYXRlOiB1bmRlZmluZWQsIGVuZERhdGU6IHVuZGVmaW5lZCB9KTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGRhdGVzID0gcmFuZ2UudmFsdWVzID8/IFtdO1xuXG4gICAgLy8gdGhpcy5zdGFydERhdGUuc2V0KGRhdGVzWzBdLmNsb25lKCkuaG91cigwKS5taW51dGUoMCkuc2Vjb25kKDApKTtcbiAgICAvLyB0aGlzLmVuZERhdGUuc2V0KGRhdGVzWzFdLmNsb25lKCkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpKTtcbiAgICAvLyB0aGlzLnRpbWVWYWx1ZSA9IHsgaG91cjogMCwgdG9Ib3VyOiAwLCBtaW51dGU6IDIzLCB0b01pbnV0ZTogNTkgfTtcbiAgICAvLyB0aGlzLnRpbWVwaWNrZXJWYXJpYWJsZXMubGVmdC5zZWxlY3RlZEhvdXIgPSAwO1xuICAgIC8vIHRoaXMudGltZXBpY2tlclZhcmlhYmxlcy5sZWZ0LnNlbGVjdGVkTWludXRlID0gMDtcbiAgICAvLyB0aGlzLnRpbWVwaWNrZXJWYXJpYWJsZXMucmlnaHQuc2VsZWN0ZWRIb3VyID0gMjM7XG4gICAgLy8gdGhpcy50aW1lcGlja2VyVmFyaWFibGVzLnJpZ2h0LnNlbGVjdGVkTWludXRlID0gNTk7XG5cbiAgICAvLyB0aGlzLnNob3dSYW5nZUxhYmVsT25JbnB1dCAmJiBsYWJlbCAhPT0gdGhpcy5sb2NhbGVEYXkuY3VzdG9tUmFuZ2VMYWJlbCA/IHRoaXMuY2hvc2VuTGFiZWwgPSBsYWJlbCA6IHRoaXMuY2FsY3VsYXRlQ2hvc2VuTGFiZWwoKTtcblxuICAgIC8vIC8vIHRoaXMuYXV0b0FwcGx5LnNldCh0cnVlKTtcbiAgICAvLyBpZiAoIXRoaXMuaGFzVGltZVBpY2tlcigpKSB7XG4gICAgLy8gICBpZih0aGlzLnN0YXJ0RGF0ZSgpKSB7XG4gICAgLy8gICAgIHRoaXMuc3RhcnREYXRlLnNldCh0aGlzLnN0YXJ0RGF0ZSgpPy5zdGFydE9mKCdkYXknKSk7XG4gICAgLy8gICB9XG4gICAgLy8gICBpZih0aGlzLmVuZERhdGUoKSkge1xuICAgIC8vICAgICB0aGlzLmVuZERhdGUuc2V0KHRoaXMuZW5kRGF0ZSgpPy5lbmRPZignZGF5JykpO1xuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICAvLyBpZiAoIXRoaXMuYWx3YXlzU2hvd0NhbGVuZGFycygpKSB7XG4gICAgLy8gICB0aGlzLmNhbGVuZGFyU2hvd2luZy5zZXQoZmFsc2UpO1xuICAgIC8vIH1cbiAgICAvLyB0aGlzLm91dENsaWNrUmFuZ2UuZW1pdChyYW5nZSk7XG5cbiAgICBpZiAoIXRoaXMua2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZSgpIHx8ICF0aGlzLmFsd2F5c1Nob3dDYWxlbmRhcnMoKSkge1xuICAgICAgdGhpcy5vdXRTZWxlY3REYXRlUmFuZ2UuZW1pdCh7IHF1aWNrUmFuZ2VJZDogcmFuZ2UuaWQsIGRpc3BsYXlMYWJlbDogcmFuZ2UubGFiZWwsIHN0YXJ0RGF0ZTogcmFuZ2UudmFsdWVzPy5bMF0sIGVuZERhdGU6IHJhbmdlLnZhbHVlcz8uWzFdIH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIGlmICh0aGlzLnRpbWVQaWNrZXIpIHtcbiAgICAvLyAgIHRoaXMucmVuZGVyVGltZVBpY2tlcihTaWRlRW51bS5sZWZ0KTtcbiAgICAvLyAgIHRoaXMucmVuZGVyVGltZVBpY2tlcihTaWRlRW51bS5yaWdodCk7XG4gICAgLy8gfVxuICAgIC8vIGlmICh0aGlzLmdldE1heERhdGUoKSAmJiB0aGlzLmdldE1heERhdGUoKS5pc1NhbWUoZGF0ZXNbMF0sICdtb250aCcpKSB7XG4gICAgLy8gICB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGggPSB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoLm1vbnRoKGRhdGVzWzBdLm1vbnRoKCkpO1xuICAgIC8vICAgdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoID0gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoICYmIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC55ZWFyKGRhdGVzWzBdLnllYXIoKSk7XG4gICAgLy8gICB0aGlzLmxlZnRDYWxlbmRhci5tb250aCA9IHRoaXMubGVmdENhbGVuZGFyLm1vbnRoICYmIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoLm1vbnRoKGRhdGVzWzBdLm1vbnRoKCkgLSAxKTtcbiAgICAvLyAgIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoID0gdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGgueWVhcihkYXRlc1sxXS55ZWFyKCkpO1xuXG4gICAgLy8gICByZXR1cm4gdGhpcy51cGRhdGVDYWxlbmRhcnMoKTtcbiAgICAvLyB9XG4gICAgLy8gdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggPSB0aGlzLmxlZnRDYWxlbmRhci5tb250aCAmJiB0aGlzLmxlZnRDYWxlbmRhci5tb250aC5tb250aChkYXRlc1swXS5tb250aCgpKTtcbiAgICAvLyB0aGlzLmxlZnRDYWxlbmRhci5tb250aCA9IHRoaXMubGVmdENhbGVuZGFyLm1vbnRoICYmIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoLnllYXIoZGF0ZXNbMF0ueWVhcigpKTtcbiAgICAvLyBjb25zdCBuZXh0TW9udGggPSBkYXRlc1swXS5jbG9uZSgpLmFkZCgxLCAnbW9udGgnKTtcblxuICAgIC8vIHRoaXMucmlnaHRDYWxlbmRhci5tb250aCA9IHRoaXMucmlnaHRDYWxlbmRhci5tb250aCAmJiB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGgubW9udGgobmV4dE1vbnRoLm1vbnRoKCkpO1xuICAgIC8vIHRoaXMucmlnaHRDYWxlbmRhci5tb250aCA9IHRoaXMucmlnaHRDYWxlbmRhci5tb250aCAmJiB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGgueWVhcihuZXh0TW9udGgueWVhcigpKTtcbiAgICAvLyB0aGlzLnVwZGF0ZUNhbGVuZGFycygpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDbGlja0NhbmNlbChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyB0aGlzLnN0YXJ0RGF0ZS5zZXQoZGF5anMoMCkpO1xuICAgIC8vIHRoaXMuZW5kRGF0ZS5zZXQoZGF5anMoMCkpO1xuICAgIHRoaXMub3V0Q2FuY2VsLmVtaXQoJycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDaGFuZ2VGbGFnTW91c2UoZmxhZ01vdXNlOiBJRmxhZ01vdXNlKSB7XG4gICAgdGhpcy5vdXRDaGFuZ1N0YWdlRmxhZ01vdXNlLmVtaXQoZmxhZ01vdXNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRnVuY3Rpb25zQ29udHJvbChldmVudDogSUNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQpIHtcbiAgICB0aGlzLmNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQuc2V0KGV2ZW50KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudGltZW91dHMoKS5mb3JFYWNoKGl0ZW0gPT4gY2xlYXJUaW1lb3V0KGl0ZW0pKTtcbiAgICAvLyB0aGlzLm9uRGVzdHJveS5uZXh0KCk7XG4gICAgLy8gdGhpcy5vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGRpdiAjcGlja2VyQ29udGFpbmVyXG4gIGNsYXNzPVwibGlicy11aS1jb21wb25lbnQtY3VzdG9tX3JhbmdlcyBmbGV4IHJvdW5kZWQtWzRweF0gYmctWyNmZmZmZmZdIHotWzEwMDBdIG92ZXJmbG93LVtoaWRkZW5dIHJlbGF0aXZlIGlubGluZVwiXG4gIFtjbGFzcy5mbGV4LXJvdy1yZXZlcnNlXT1cInBvc2l0aW9uUXVpY2tSYW5nZXMoKSA9PT0gJ3JpZ2h0J1wiPlxuICBAaWYgKCFpc1NpbmdsZSgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImxpYnMtdWktY29tcG9uZW50LWN1c3RvbV9yYW5nZXMtcmFuZ2VzIHt7IGNsYXNzSW5jbHVkZSgpIHx8ICcnIH19XCJcbiAgICAgIFtjbGFzcy5ib3JkZXItbC1bI2U2ZThlZF1dPVwicG9zaXRpb25RdWlja1JhbmdlcygpID09PSAncmlnaHQnICYmIHNob3dDYWxUYWJsZUluUmFuZ2VzKClcIlxuICAgICAgW2NsYXNzLmJvcmRlci1sXT1cInBvc2l0aW9uUXVpY2tSYW5nZXMoKSA9PT0gJ3JpZ2h0JyAmJiBzaG93Q2FsVGFibGVJblJhbmdlcygpXCJcbiAgICAgIFtjbGFzcy5ib3JkZXItci1bI2U2ZThlZF1dPVwicG9zaXRpb25RdWlja1JhbmdlcygpID09PSAnbGVmdCcgJiYgc2hvd0NhbFRhYmxlSW5SYW5nZXMoKVwiXG4gICAgICBbY2xhc3MuYm9yZGVyLXJdPVwicG9zaXRpb25RdWlja1JhbmdlcygpID09PSAnbGVmdCcgJiYgc2hvd0NhbFRhYmxlSW5SYW5nZXMoKVwiXG4gICAgICBbY2xhc3MuIW1pbi1oLVsyNjBweF1dPVwic2hvd0NhbFRhYmxlSW5SYW5nZXMoKSAmJiAhaXNTaW5nbGUoKVwiXG4gICAgICBbY2xhc3MuIW1pbi1oLVszMDBweF1dPVwiaGFzVGltZVBpY2tlcigpICYmICFpc1NpbmdsZSgpXCJcbiAgICAgIFtjbGFzcy4hdy1bMTYwcHhdXT1cIiF3aWR0aEJ5UGFyZW50KClcIlxuICAgICAgW2NsYXNzLiF3LWZ1bGxdPVwid2lkdGhCeVBhcmVudCgpXCI+XG4gICAgICBAZm9yIChyYW5nZSBvZiBxdWlja1Jhbmdlc0FycmF5KCk7IHRyYWNrIHJhbmdlLmlkKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBob3ZlcjpiZy1bdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0zKV0gY3Vyc29yLXBvaW50ZXIgcHgtWzE2cHhdIHB5LVs4cHhdXCJcbiAgICAgICAgICBbY2xhc3MubGlicy11aS1zZWxlY3RlZC1yYW5nZV09XCJyYW5nZS5pZCA9PT0gY2hvc2VuUXVpY2tSYW5nZSgpICYmIHNob3dDdXN0b21SYW5nZUxhYmVsKClcIlxuICAgICAgICAgIFtjbGFzcy5iZy1bdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0zKV1dPVwicmFuZ2UuaWQgPT09IGNob3NlblF1aWNrUmFuZ2UoKSB8fCByYW5nZS5pZCA9PT0gc2VsZWN0ZWRRdWlja1JhbmdlKClcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVyQ2xpY2tSYW5nZSgkZXZlbnQsIHJhbmdlKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDVyIGZsZXggdGV4dC1bIzMzMzMzM10gbWluLXctMCB3LWZ1bGxcIj5cbiAgICAgICAgICAgIDxkaXYgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJEaXJlY3RpdmVcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBbY29uZmlnXT1cInttYXhXaWR0aDoxNjAsZGlyZWN0aW9uOid0b3AnLHpJbmRleDooekluZGV4KCkgfHwxMDAwKSArIDF9XCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJyYW5nZS5sYWJlbFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVyQ2xpY2tSYW5nZSgkZXZlbnQsIHJhbmdlKVwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGkgY2xhc3M9XCJ0ZXh0LVsxMnB4XSBtbC1bMTZweF1cIlxuICAgICAgICAgICAgW2NsYXNzLmxpYnMtdWktaWNvbi1jaGVja109XCJyYW5nZS5pZCA9PT0gc2VsZWN0ZWRRdWlja1JhbmdlKClcIlxuICAgICAgICAgICAgW2NsYXNzLnRleHQtW3ZhcigtLWxpYnMtdWktY29sb3ItZGVmYXVsdCldXT1cInJhbmdlLmlkID09PSBzZWxlY3RlZFF1aWNrUmFuZ2UoKVwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbiAgQGlmIChzaG93Q2FsVGFibGVJblJhbmdlcygpKSB7XG4gICAgPGRpdiBjbGFzcz1cIm0tWzE2cHhdIHctZnVsbFwiPlxuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1kYXRldGltZS1waWNrZXItY3VzdG9tX3Jhbmdlcy1jYWxlbmRhciBbaXNTaW5nbGVdPVwiaXNTaW5nbGUoKVwiXG4gICAgICAgIFthdXRvQXBwbHldPVwiYXV0b0FwcGx5KClcIlxuICAgICAgICBbekluZGV4XT1cInpJbmRleCgpXCJcbiAgICAgICAgW2ZsYWdNb3VzZV09XCJmbGFnTW91c2UoKVwiXG4gICAgICAgIFtkYXRlT3B0aW9uc109XCJkYXRlT3B0aW9ucygpXCJcbiAgICAgICAgW2hhc1RpbWVQaWNrZXJdPVwiaGFzVGltZVBpY2tlcigpXCJcbiAgICAgICAgW3F1aWNrUmFuZ2VzQXJyYXldPVwicXVpY2tSYW5nZXNBcnJheSgpXCJcbiAgICAgICAgW3N0YXJ0RGF0ZV09XCJzdGFydERhdGUoKVwiXG4gICAgICAgIFtlbmREYXRlXT1cImVuZERhdGUoKVwiXG4gICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJ3ctZnVsbCdcIlxuICAgICAgICAob3V0Q2FuY2VsKT1cImhhbmRsZXJDYW5jZWwoKVwiXG4gICAgICAgIChvdXRQaWNrZXJEYXRlKT1cImhhbmRsZXJQaWNrZXJEYXRlKCRldmVudClcIlxuICAgICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25zQ29udHJvbCgkZXZlbnQpXCJcbiAgICAgICAgKG91dENoYW5nU3RhZ2VGbGFnTW91c2UpPVwiaGFuZGxlckNoYW5nZUZsYWdNb3VzZSgkZXZlbnQpXCIgLz5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhbmdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9jdXN0b20tcmFuZ2VzL2N1c3RvbS1yYW5nZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL3BpY2tlci9zcmMvY3VzdG9tLXJhbmdlcy9jdXN0b20tcmFuZ2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFjLGdDQUFnQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUs1RixPQUFPLEVBQUUsMkRBQTJELEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFlNUcsTUFBTSxPQUFPLG1EQUFtRDtJQUM5RCxlQUFlO0lBQ0wsb0JBQW9CLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzlDLGdCQUFnQixHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7SUFDakQsa0JBQWtCLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQzVFLGdCQUFnQixHQUFHLE1BQU0sQ0FBcUIsU0FBUyxDQUFDLENBQUMsQ0FBQyw2QkFBNkI7SUFFekYsZUFBZSxHQUFH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OUMsQ0FBQztJQUVTLHVCQUF1QixDQUFDLEtBQW9DO1FBQ3BFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEQseUJBQXlCO1FBQ3pCLDZCQUE2QjtJQUMvQixDQUFDO3dHQXBWVSxtREFBbUQ7NEZBQW5ELG1EQUFtRCw4d0dDMUJoRSx1MkZBdURBLDZwQkRsQ0ksZUFBZSwrQkFDZiwyREFBMkQsa2dCQUMzRCxnQ0FBZ0M7OzRGQUd2QixtREFBbUQ7a0JBYi9ELFNBQVM7K0JBRUUsa0RBQWtELGNBR2hELElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxlQUFlO3dCQUNmLDJEQUEyRDt3QkFDM0QsZ0NBQWdDO3FCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGVmZmVjdCwgaW5wdXQsIG1vZGVsLCBPbkRlc3Ryb3ksIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSUZsYWdNb3VzZSwgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyXCI7XG5pbXBvcnQgeyBUWVBFX09CSkVDVCB9IGZyb20gXCJAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzXCI7XG5pbXBvcnQgeyBnZXREYXlqcyB9IGZyb20gXCJAbGlicy11aS91dGlsc1wiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IERheWpzIH0gZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgZ2V0RGF0ZU9wdGlvbnNEZWZhdWx0LCBnZXREYXRlUmFuZ2VEZWZhdWx0IH0gZnJvbSBcIi4uL2RlZmluZXMvZGF0ZS1vcHRpb25zLmRlZmluZVwiO1xuaW1wb3J0IHsgSUVtaXREYXRlQ2FsZW5kYXIsIElFbWl0RGF0ZVJhbmdlLCBJRW1pdFNpbmdsZURhdGUgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9jYWxlbmRhci1lbWl0LmludGVyZmFjZVwiO1xuaW1wb3J0IHsgSURhdGVSYW5nZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2NhbGVuZGFyLXZhcmlhYmxlcy5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IElDYWxlbmRhckZ1bmN0aW9uQ29udHJvbEV2ZW50IH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvZnVuY3Rpb24tY29udHJvbC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IExvY2FsaXphdGlvbkNvbmZpZyB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL3BpY2tlci5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNEYXRldGltZVBpY2tlckN1c3RvbVJhbmdlc0NhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSBcIi4vY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1kYXRldGltZS1waWNrZXItY3VzdG9tX3JhbmdlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tcmFuZ2VzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLXJhbmdlcy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBMaWJzVWlDb21wb25lbnRzRGF0ZXRpbWVQaWNrZXJDdXN0b21SYW5nZXNDYWxlbmRhckNvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNEYXRldGltZVBpY2tlckN1c3RvbVJhbmdlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKiBQUk9QRVJUWSAqL1xuICBwcm90ZWN0ZWQgc2hvd0NhbFRhYmxlSW5SYW5nZXMgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgcXVpY2tSYW5nZXNBcnJheSA9IHNpZ25hbDxBcnJheTxJRGF0ZVJhbmdlPj4oW10pO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRRdWlja1JhbmdlID0gc2lnbmFsPHN0cmluZz4oJycpOyAvLyBxdWljayByYW5nZSDEkcOjIMSRxrDhu6NjIGzGsHUgdHLGsOG7m2MgxJHDs1xuICBwcm90ZWN0ZWQgY2hvc2VuUXVpY2tSYW5nZSA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7IC8vIHF1aWNrIHJhbmdlIMSRYW5nIMSRxrDhu6NjIGNo4buNblxuXG4gIHByaXZhdGUgY2FsZW5kYXJTaG93aW5nID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSB0aW1lb3V0cyA9IHNpZ25hbDxBcnJheTxudW1iZXI+PihbXSk7XG4gIHByaXZhdGUgY2FsZW5kYXJGdW5jdGlvbkNvbnRyb2xFdmVudCA9IHNpZ25hbDxJQ2FsZW5kYXJGdW5jdGlvbkNvbnRyb2xFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBjaG9zZW5TaW5nbGVEYXRlID0gc2lnbmFsPElFbWl0U2luZ2xlRGF0ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBjaG9zZW5EYXRlUmFuZ2UgPSBzaWduYWw8SUVtaXREYXRlUmFuZ2UgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgLyoqIElOUFVUICovXG4gIC8vIHJlYWRvbmx5IFNlbGVjdGVkUXVpY2tSYW5nZSA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSB6SW5kZXggPSBpbnB1dDxudW1iZXIsIG51bWJlcj4oMTIwMCwgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gMTIwMCB9KTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGV4dGVuZFJhbmdlcyA9IGlucHV0PEFycmF5PElEYXRlUmFuZ2U+PihbXSk7XG4gIHJlYWRvbmx5IHdpZHRoQnlQYXJlbnQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGF1dG9BcHBseSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgbWluRGF0ZSA9IGlucHV0PERheWpzIHwgc3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBtYXhEYXRlID0gaW5wdXQ8RGF5anMgfCBzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IGxpc3RZZWFySGlkZGVuSW5wdXRTZWFyY2ggPSBpbnB1dDxib29sZWFuLCBib29sZWFuIHwgdW5kZWZpbmVkPih0cnVlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyB0cnVlIH0pO1xuXG5cbiAgcmVhZG9ubHkgcG9zaXRpb25RdWlja1JhbmdlcyA9IGlucHV0PCdsZWZ0JyB8ICdyaWdodCcsICdsZWZ0JyB8ICdyaWdodCc+KCdsZWZ0JywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gJ2xlZnQnIH0pO1xuICByZWFkb25seSBpc1NpbmdsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgaGFzVGltZVBpY2tlciA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBmbGFnTW91c2UgPSBpbnB1dDxJRmxhZ01vdXNlPih7IGlzTW91c2VFbnRlcjogZmFsc2UsIGlzTW91c2VFbnRlckNvbnRlbnQ6IGZhbHNlIH0pO1xuICByZWFkb25seSBkYXRlT3B0aW9ucyA9IGlucHV0PExvY2FsaXphdGlvbkNvbmZpZz4oZ2V0RGF0ZU9wdGlvbnNEZWZhdWx0KCkpO1xuICByZWFkb25seSBhbHdheXNTaG93Q2FsZW5kYXJzID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzdGFydERhdGUgPSBtb2RlbDxEYXlqcyB8IHVuZGVmaW5lZD4oZ2V0RGF5anM8RGF5anM+KCkuc3RhcnRPZignZGF5JykpO1xuICByZWFkb25seSBlbmREYXRlID0gbW9kZWw8RGF5anMgfCB1bmRlZmluZWQ+KGdldERheWpzPERheWpzPigpLmVuZE9mKCdkYXknKSk7XG4gIHJlYWRvbmx5IHNob3dDdXN0b21SYW5nZUxhYmVsID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkga2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZSA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgc2luZ2xlRGF0ZVNlbGVjdGVkID0gaW5wdXQ8SUVtaXRTaW5nbGVEYXRlIHwgdW5kZWZpbmVkLCBJRW1pdFNpbmdsZURhdGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwge1xuICAgIHRyYW5zZm9ybTogKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS5kYXRlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCBkYXRlID0gdmFsdWUuZGF0ZTtcblxuICAgICAgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICBkYXRlID0gZ2V0RGF5anM8RGF5anM+KHsgZGF0ZSwgcmV0dXJuRGF5anNJZkNvbmZpZ0RhdGVOb3RFeGlzdDogdHJ1ZSB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4udmFsdWUsXG4gICAgICAgIGRhdGVcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbiAgcmVhZG9ubHkgZGF0ZVJhbmdlU2VsZWN0ZWQgPSBpbnB1dDxJRW1pdERhdGVSYW5nZSB8IHVuZGVmaW5lZCwgSUVtaXREYXRlUmFuZ2UgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwge1xuICAgIHRyYW5zZm9ybTogKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCBzdGFydERhdGUgPSB2YWx1ZS5zdGFydERhdGU7XG4gICAgICBsZXQgZW5kRGF0ZSA9IHZhbHVlLmVuZERhdGU7XG5cbiAgICAgIGlmICh0eXBlb2Ygc3RhcnREYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICBzdGFydERhdGUgPSBnZXREYXlqczxEYXlqcz4oeyBkYXRlOiBzdGFydERhdGUsIHJldHVybkRheWpzSWZDb25maWdEYXRlTm90RXhpc3Q6IHRydWUgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgZW5kRGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZW5kRGF0ZSA9IGdldERheWpzPERheWpzPih7IGRhdGU6IGVuZERhdGUsIHJldHVybkRheWpzSWZDb25maWdEYXRlTm90RXhpc3Q6IHRydWUgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnZhbHVlLFxuICAgICAgICBzdGFydERhdGUsXG4gICAgICAgIGVuZERhdGVcbiAgICAgIH07XG4gICAgfVxuICB9KTtcblxuICAvKiogT1VUUFVUICovXG4gIHJlYWRvbmx5IG91dENoYW5nU3RhZ2VGbGFnTW91c2UgPSBvdXRwdXQ8SUZsYWdNb3VzZT4oKTtcbiAgcmVhZG9ubHkgb3V0VXBkYXRlV2lkdGggPSBvdXRwdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBvdXRDYW5jZWwgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBvdXRTZWxlY3RTaW5nbGVEYXRlID0gb3V0cHV0PElFbWl0U2luZ2xlRGF0ZT4oKTtcbiAgcmVhZG9ubHkgb3V0U2VsZWN0RGF0ZVJhbmdlID0gb3V0cHV0PElFbWl0RGF0ZVJhbmdlPigpO1xuICByZWFkb25seSBvdXRDbGlja01lbnVSYW5nZUN1c3RvbSA9IG91dHB1dDxUWVBFX09CSkVDVD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4gdW50cmFja2VkKHRoaXMub25BZnRlclZpZXdJbml0LmJpbmQodGhpcykpKTtcbiAgfVxuXG4gIHByaXZhdGUgb25BZnRlclZpZXdJbml0KCkge1xuICAgIGlmICghdGhpcy5zdGFydERhdGUoKSkge1xuICAgICAgdGhpcy5zdGFydERhdGUuc2V0KGdldERheWpzPERheWpzPigpLnN0YXJ0T2YoJ2RheScpKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmVuZERhdGUoKSkge1xuICAgICAgdGhpcy5lbmREYXRlLnNldChnZXREYXlqczxEYXlqcz4oKS5lbmRPZignZGF5JykpO1xuICAgIH1cbiAgICBjb25zdCBkYXRlUmFuZ2VTZWxlY3RlZCA9IHRoaXMuZGF0ZVJhbmdlU2VsZWN0ZWQoKTtcbiAgICBjb25zdCBzaW5nbGVEYXRlU2VsZWN0ZWQgPSB0aGlzLnNpbmdsZURhdGVTZWxlY3RlZCgpO1xuICAgIGNvbnN0IGN1c3RvbVJhbmdlID0ge1xuICAgICAgaWQ6IHRoaXMuZGF0ZU9wdGlvbnMoKT8uY3VzdG9tUmFuZ2VMYWJlbCB8fCAnJyxcbiAgICAgIGxhYmVsOiB0aGlzLmRhdGVPcHRpb25zKCk/LmN1c3RvbVJhbmdlTGFiZWwgfHwgJydcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuaXNTaW5nbGUoKSkge1xuICAgICAgaWYgKHRoaXMuaGFzVGltZVBpY2tlcigpKSB7XG4gICAgICAgIGNvbnN0IG5vdyA9IGdldERheWpzPERheWpzPigpO1xuXG4gICAgICAgIHRoaXMuc3RhcnREYXRlLnVwZGF0ZShjdXJyZW50ID0+IHtcbiAgICAgICAgICBpZiAoY3VycmVudCkge1xuICAgICAgICAgICAgY3VycmVudC5zZXQoJ2hvdXInLCAxMCkuc2V0KCdtaW51dGUnLCAzMCk7XG4gICAgICAgICAgICAvLyBjdXJyZW50LmhvdXIobm93LmhvdXIoKSkubWludXRlKG5vdy5taW51dGUoKSk7XG4gICAgICAgICAgfVxuXG5cbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZW5kRGF0ZS51cGRhdGUoY3VycmVudCA9PiB7XG4gICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQuaG91cihub3cuaG91cigpKS5taW51dGUobm93Lm1pbnV0ZSgpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoc2luZ2xlRGF0ZVNlbGVjdGVkPy5kYXRlKSB7XG4gICAgICAgIHRoaXMuc3RhcnREYXRlLnNldChnZXREYXlqczxEYXlqcz4oeyBkYXRlOiBzaW5nbGVEYXRlU2VsZWN0ZWQuZGF0ZSB9KSk7XG4gICAgICAgIHRoaXMuZW5kRGF0ZS5zZXQoZ2V0RGF5anM8RGF5anM+KHsgZGF0ZTogc2luZ2xlRGF0ZVNlbGVjdGVkLmRhdGUgfSkpO1xuICAgICAgfVxuICAgICAgdGhpcy5yZW5kZXJSYW5nZXMoKTtcblxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGRhdGVSYW5nZVNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUXVpY2tSYW5nZS5zZXQoZGF0ZVJhbmdlU2VsZWN0ZWQucXVpY2tSYW5nZUlkID8gZGF0ZVJhbmdlU2VsZWN0ZWQucXVpY2tSYW5nZUlkIDogY3VzdG9tUmFuZ2UuaWQpO1xuICAgICAgdGhpcy5jaG9zZW5RdWlja1JhbmdlLnNldChkYXRlUmFuZ2VTZWxlY3RlZC5xdWlja1JhbmdlSWQgPz8gY3VzdG9tUmFuZ2UuaWQpO1xuXG4gICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXQoZ2V0RGF5anM8RGF5anM+KHsgZGF0ZTogZGF0ZVJhbmdlU2VsZWN0ZWQuc3RhcnREYXRlIH0pKTtcbiAgICAgIHRoaXMuZW5kRGF0ZS5zZXQoZ2V0RGF5anM8RGF5anM+KHsgZGF0ZTogZGF0ZVJhbmdlU2VsZWN0ZWQuZW5kRGF0ZSB9KSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc1RpbWVQaWNrZXIoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFF1aWNrUmFuZ2Uuc2V0KGN1c3RvbVJhbmdlLmlkKTtcbiAgICAgIHRoaXMuY2hvc2VuUXVpY2tSYW5nZS5zZXQoY3VzdG9tUmFuZ2UuaWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RlZFF1aWNrUmFuZ2UoKSA9PT0gdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsKSB7XG4gICAgICB0aGlzLnNob3dDYWxUYWJsZUluUmFuZ2VzLnNldCh0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5yZW5kZXJSYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlV2lkdGgoKSB7XG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm91dFVwZGF0ZVdpZHRoLmVtaXQoMSk7XG4gICAgfSkgYXMgdW5rbm93biBhcyBudW1iZXI7XG5cbiAgICB0aGlzLnRpbWVvdXRzLnVwZGF0ZShpZHMgPT4gWy4uLmlkcywgdGltZW91dElkXSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclJhbmdlcygpIHtcbiAgICBpZiAodGhpcy5pc1NpbmdsZSgpKSB7XG4gICAgICB0aGlzLnNob3dDYWxUYWJsZUluUmFuZ2VzLnNldCh0cnVlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByYW5nZXNEZWZhdWx0ID0gZ2V0RGF0ZVJhbmdlRGVmYXVsdCgpO1xuICAgIGNvbnN0IHJhbmdlcyA9IHRoaXMuZGF0ZU9wdGlvbnMoKT8ucmFuZ2VzO1xuXG4gICAgdGhpcy5xdWlja1Jhbmdlc0FycmF5LnNldChbXSk7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiByYW5nZXMpIHtcbiAgICAgIGNvbnN0IHJhbmdlVmFsdWUgPSByYW5nZXNEZWZhdWx0W2tleV07XG4gICAgICBjb25zdCBzdGFydCA9IGdldERheWpzPERheWpzPih7IGRhdGU6IHJhbmdlVmFsdWVbMF0sIHJldHVybkRheWpzSWZDb25maWdEYXRlTm90RXhpc3Q6IHRydWUgfSk7XG4gICAgICBjb25zdCBlbmQgPSBnZXREYXlqczxEYXlqcz4oeyBkYXRlOiByYW5nZVZhbHVlWzFdLCByZXR1cm5EYXlqc0lmQ29uZmlnRGF0ZU5vdEV4aXN0OiB0cnVlIH0pO1xuXG4gICAgICB0aGlzLnF1aWNrUmFuZ2VzQXJyYXkudXBkYXRlKGN1cnJlbnQgPT4ge1xuICAgICAgICBjdXJyZW50LnB1c2goe1xuICAgICAgICAgIGlkOiBrZXksXG4gICAgICAgICAgbGFiZWw6IHJhbmdlc1trZXldLFxuICAgICAgICAgIHZhbHVlczogW3N0YXJ0LCBlbmRdXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dDdXN0b21SYW5nZUxhYmVsKCkgJiYgdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsKSB7XG4gICAgICB0aGlzLnF1aWNrUmFuZ2VzQXJyYXkudXBkYXRlKGN1cnJlbnQgPT4ge1xuICAgICAgICBjdXJyZW50LnB1c2goe1xuICAgICAgICAgIGlkOiB0aGlzLmRhdGVPcHRpb25zKCk/LmN1c3RvbVJhbmdlTGFiZWwgfHwgJycsXG4gICAgICAgICAgbGFiZWw6IHRoaXMuZGF0ZU9wdGlvbnMoKT8uY3VzdG9tUmFuZ2VMYWJlbCB8fCAnJ1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5leHRlbmRSYW5nZXMoKSkge1xuICAgICAgdGhpcy5xdWlja1Jhbmdlc0FycmF5LnVwZGF0ZShjdXJyZW50ID0+IHtcbiAgICAgICAgY3VycmVudC51bnNoaWZ0KC4uLnRoaXMuZXh0ZW5kUmFuZ2VzKCkpO1xuXG4gICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICghdGhpcy5xdWlja1Jhbmdlc0FycmF5KCkubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNob3dDYWxUYWJsZUluUmFuZ2VzLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNhbmNlbCgpIHtcbiAgICB0aGlzLm91dENhbmNlbC5lbWl0KCcnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyUGlja2VyRGF0ZShldmVudDogSUVtaXREYXRlQ2FsZW5kYXIpIHtcbiAgICB0aGlzLmNob3NlblNpbmdsZURhdGUuc2V0KHtcbiAgICAgIGRpc3BsYXlMYWJlbDogZXZlbnQuZGlzcGxheUxhYmVsLFxuICAgICAgZGF0ZTogZXZlbnQuc3RhcnREYXRlLFxuICAgICAgdmFsdWVzOiBldmVudC5kZXRhaWxEYXRlUGlja2VyLnN0YXJ0KClcbiAgICB9KTtcbiAgICBpZiAoIXRoaXMuaXNTaW5nbGUoKSAmJiBldmVudC5zdGFydERhdGUgJiYgIWV2ZW50LmVuZERhdGUpIHtcbiAgICAgIGNvbnN0IGVuZFRpbWUgPSBldmVudC5kZXRhaWxEYXRlUGlja2VyLmVuZCgpO1xuICAgICAgZXZlbnQuZW5kRGF0ZSA9IGV2ZW50LnN0YXJ0RGF0ZS5jbG9uZSgpLmhvdXIoZW5kVGltZS5ob3VyIGFzIG51bWJlcikubWludXRlKGVuZFRpbWUubWludXRlIGFzIG51bWJlcikuc2Vjb25kKDU5KTtcbiAgICB9XG4gICAgdGhpcy5jaG9zZW5EYXRlUmFuZ2Uuc2V0KHtcbiAgICAgIHF1aWNrUmFuZ2VJZDogdGhpcy5jaG9zZW5RdWlja1JhbmdlKCksXG4gICAgICAuLi5ldmVudFxuICAgIH0pO1xuICAgIGNvbnN0IGNob3NlblNpbmdsZURhdGUgPSB0aGlzLmNob3NlblNpbmdsZURhdGUoKTtcbiAgICBjb25zdCBjaG9zZW5EYXRlUmFuZ2UgPSB0aGlzLmNob3NlbkRhdGVSYW5nZSgpO1xuICAgIGlmICh0aGlzLmlzU2luZ2xlKCkgJiYgY2hvc2VuU2luZ2xlRGF0ZSkge1xuICAgICAgdGhpcy5vdXRTZWxlY3RTaW5nbGVEYXRlLmVtaXQoY2hvc2VuU2luZ2xlRGF0ZSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFjaG9zZW5EYXRlUmFuZ2UgfHwgKCFjaG9zZW5EYXRlUmFuZ2Uuc3RhcnREYXRlICYmICFjaG9zZW5EYXRlUmFuZ2UuZW5kRGF0ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vdXRTZWxlY3REYXRlUmFuZ2UuZW1pdChjaG9zZW5EYXRlUmFuZ2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDbGlja1JhbmdlKGU6IEV2ZW50LCByYW5nZTogSURhdGVSYW5nZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLmNob3NlblF1aWNrUmFuZ2Uuc2V0KHJhbmdlLmlkKTtcblxuICAgIGlmIChyYW5nZS5pZCA9PT0gdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsKSB7XG4gICAgICBpZiAoIXRoaXMuY2FsZW5kYXJTaG93aW5nKCkgJiYgIXRoaXMuc2hvd0NhbFRhYmxlSW5SYW5nZXMoKSkge1xuICAgICAgICB0aGlzLmNhbGVuZGFyU2hvd2luZy5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuc2hvd0NhbFRhYmxlSW5SYW5nZXMuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLm91dENsaWNrTWVudVJhbmdlQ3VzdG9tLmVtaXQocmFuZ2UpO1xuICAgICAgICB0aGlzLnVwZGF0ZVdpZHRoKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudXBkYXRlV2lkdGgoKTtcbiAgICBpZiAodGhpcy5leHRlbmRSYW5nZXMoKSkge1xuICAgICAgY29uc3QgZmluZEV4dGVybmFsUmFuZ2UgPSB0aGlzLmV4dGVuZFJhbmdlcygpLmZpbmQoaXRlbSA9PiBpdGVtLmxhYmVsID09PSByYW5nZS5pZCk7XG5cbiAgICAgIGlmIChmaW5kRXh0ZXJuYWxSYW5nZSAmJiByYW5nZS5pZCA9PT0gZmluZEV4dGVybmFsUmFuZ2UubGFiZWwpIHtcbiAgICAgICAgaWYgKGZpbmRFeHRlcm5hbFJhbmdlLnZhbHVlcykge1xuICAgICAgICAgIHRoaXMub3V0U2VsZWN0RGF0ZVJhbmdlLmVtaXQoeyBxdWlja1JhbmdlSWQ6IGZpbmRFeHRlcm5hbFJhbmdlLmlkLCBkaXNwbGF5TGFiZWw6IGZpbmRFeHRlcm5hbFJhbmdlLmxhYmVsLCBzdGFydERhdGU6IGZpbmRFeHRlcm5hbFJhbmdlLnZhbHVlc1swXSwgZW5kRGF0ZTogZmluZEV4dGVybmFsUmFuZ2UudmFsdWVzWzFdIH0pO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3V0U2VsZWN0RGF0ZVJhbmdlLmVtaXQoeyBxdWlja1JhbmdlSWQ6IGZpbmRFeHRlcm5hbFJhbmdlLmlkLCBkaXNwbGF5TGFiZWw6IGZpbmRFeHRlcm5hbFJhbmdlLmxhYmVsLCBzdGFydERhdGU6IHVuZGVmaW5lZCwgZW5kRGF0ZTogdW5kZWZpbmVkIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gY29uc3QgZGF0ZXMgPSByYW5nZS52YWx1ZXMgPz8gW107XG5cbiAgICAvLyB0aGlzLnN0YXJ0RGF0ZS5zZXQoZGF0ZXNbMF0uY2xvbmUoKS5ob3VyKDApLm1pbnV0ZSgwKS5zZWNvbmQoMCkpO1xuICAgIC8vIHRoaXMuZW5kRGF0ZS5zZXQoZGF0ZXNbMV0uY2xvbmUoKS5ob3VyKDIzKS5taW51dGUoNTkpLnNlY29uZCg1OSkpO1xuICAgIC8vIHRoaXMudGltZVZhbHVlID0geyBob3VyOiAwLCB0b0hvdXI6IDAsIG1pbnV0ZTogMjMsIHRvTWludXRlOiA1OSB9O1xuICAgIC8vIHRoaXMudGltZXBpY2tlclZhcmlhYmxlcy5sZWZ0LnNlbGVjdGVkSG91ciA9IDA7XG4gICAgLy8gdGhpcy50aW1lcGlja2VyVmFyaWFibGVzLmxlZnQuc2VsZWN0ZWRNaW51dGUgPSAwO1xuICAgIC8vIHRoaXMudGltZXBpY2tlclZhcmlhYmxlcy5yaWdodC5zZWxlY3RlZEhvdXIgPSAyMztcbiAgICAvLyB0aGlzLnRpbWVwaWNrZXJWYXJpYWJsZXMucmlnaHQuc2VsZWN0ZWRNaW51dGUgPSA1OTtcblxuICAgIC8vIHRoaXMuc2hvd1JhbmdlTGFiZWxPbklucHV0ICYmIGxhYmVsICE9PSB0aGlzLmxvY2FsZURheS5jdXN0b21SYW5nZUxhYmVsID8gdGhpcy5jaG9zZW5MYWJlbCA9IGxhYmVsIDogdGhpcy5jYWxjdWxhdGVDaG9zZW5MYWJlbCgpO1xuXG4gICAgLy8gLy8gdGhpcy5hdXRvQXBwbHkuc2V0KHRydWUpO1xuICAgIC8vIGlmICghdGhpcy5oYXNUaW1lUGlja2VyKCkpIHtcbiAgICAvLyAgIGlmKHRoaXMuc3RhcnREYXRlKCkpIHtcbiAgICAvLyAgICAgdGhpcy5zdGFydERhdGUuc2V0KHRoaXMuc3RhcnREYXRlKCk/LnN0YXJ0T2YoJ2RheScpKTtcbiAgICAvLyAgIH1cbiAgICAvLyAgIGlmKHRoaXMuZW5kRGF0ZSgpKSB7XG4gICAgLy8gICAgIHRoaXMuZW5kRGF0ZS5zZXQodGhpcy5lbmREYXRlKCk/LmVuZE9mKCdkYXknKSk7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICAgIC8vIGlmICghdGhpcy5hbHdheXNTaG93Q2FsZW5kYXJzKCkpIHtcbiAgICAvLyAgIHRoaXMuY2FsZW5kYXJTaG93aW5nLnNldChmYWxzZSk7XG4gICAgLy8gfVxuICAgIC8vIHRoaXMub3V0Q2xpY2tSYW5nZS5lbWl0KHJhbmdlKTtcblxuICAgIGlmICghdGhpcy5rZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlKCkgfHwgIXRoaXMuYWx3YXlzU2hvd0NhbGVuZGFycygpKSB7XG4gICAgICB0aGlzLm91dFNlbGVjdERhdGVSYW5nZS5lbWl0KHsgcXVpY2tSYW5nZUlkOiByYW5nZS5pZCwgZGlzcGxheUxhYmVsOiByYW5nZS5sYWJlbCwgc3RhcnREYXRlOiByYW5nZS52YWx1ZXM/LlswXSwgZW5kRGF0ZTogcmFuZ2UudmFsdWVzPy5bMV0gfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gaWYgKHRoaXMudGltZVBpY2tlcikge1xuICAgIC8vICAgdGhpcy5yZW5kZXJUaW1lUGlja2VyKFNpZGVFbnVtLmxlZnQpO1xuICAgIC8vICAgdGhpcy5yZW5kZXJUaW1lUGlja2VyKFNpZGVFbnVtLnJpZ2h0KTtcbiAgICAvLyB9XG4gICAgLy8gaWYgKHRoaXMuZ2V0TWF4RGF0ZSgpICYmIHRoaXMuZ2V0TWF4RGF0ZSgpLmlzU2FtZShkYXRlc1swXSwgJ21vbnRoJykpIHtcbiAgICAvLyAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aCA9IHRoaXMucmlnaHRDYWxlbmRhci5tb250aCAmJiB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGgubW9udGgoZGF0ZXNbMF0ubW9udGgoKSk7XG4gICAgLy8gICB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGggPSB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoLnllYXIoZGF0ZXNbMF0ueWVhcigpKTtcbiAgICAvLyAgIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoID0gdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGgubW9udGgoZGF0ZXNbMF0ubW9udGgoKSAtIDEpO1xuICAgIC8vICAgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggPSB0aGlzLmxlZnRDYWxlbmRhci5tb250aCAmJiB0aGlzLmxlZnRDYWxlbmRhci5tb250aC55ZWFyKGRhdGVzWzFdLnllYXIoKSk7XG5cbiAgICAvLyAgIHJldHVybiB0aGlzLnVwZGF0ZUNhbGVuZGFycygpO1xuICAgIC8vIH1cbiAgICAvLyB0aGlzLmxlZnRDYWxlbmRhci5tb250aCA9IHRoaXMubGVmdENhbGVuZGFyLm1vbnRoICYmIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoLm1vbnRoKGRhdGVzWzBdLm1vbnRoKCkpO1xuICAgIC8vIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoID0gdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGgueWVhcihkYXRlc1swXS55ZWFyKCkpO1xuICAgIC8vIGNvbnN0IG5leHRNb250aCA9IGRhdGVzWzBdLmNsb25lKCkuYWRkKDEsICdtb250aCcpO1xuXG4gICAgLy8gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoID0gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoICYmIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5tb250aChuZXh0TW9udGgubW9udGgoKSk7XG4gICAgLy8gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoID0gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoICYmIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC55ZWFyKG5leHRNb250aC55ZWFyKCkpO1xuICAgIC8vIHRoaXMudXBkYXRlQ2FsZW5kYXJzKCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNsaWNrQ2FuY2VsKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIC8vIHRoaXMuc3RhcnREYXRlLnNldChkYXlqcygwKSk7XG4gICAgLy8gdGhpcy5lbmREYXRlLnNldChkYXlqcygwKSk7XG4gICAgdGhpcy5vdXRDYW5jZWwuZW1pdCgnJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZUZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbnNDb250cm9sKGV2ZW50OiBJQ2FsZW5kYXJGdW5jdGlvbkNvbnRyb2xFdmVudCkge1xuICAgIHRoaXMuY2FsZW5kYXJGdW5jdGlvbkNvbnRyb2xFdmVudC5zZXQoZXZlbnQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy50aW1lb3V0cygpLmZvckVhY2goaXRlbSA9PiBjbGVhclRpbWVvdXQoaXRlbSkpO1xuICAgIC8vIHRoaXMub25EZXN0cm95Lm5leHQoKTtcbiAgICAvLyB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2ICNwaWNrZXJDb250YWluZXJcbiAgY2xhc3M9XCJsaWJzLXVpLWNvbXBvbmVudC1jdXN0b21fcmFuZ2VzIGZsZXggcm91bmRlZC1bNHB4XSBiZy1bI2ZmZmZmZl0gei1bMTAwMF0gb3ZlcmZsb3ctaGlkZGVuXCJcbiAgW2NsYXNzLmZsZXgtcm93LXJldmVyc2VdPVwicG9zaXRpb25RdWlja1JhbmdlcygpID09PSAncmlnaHQnXCI+XG4gIEBpZiAoIWlzU2luZ2xlKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1jb21wb25lbnQtY3VzdG9tX3Jhbmdlcy1yYW5nZXMge3sgY2xhc3NJbmNsdWRlKCkgfHwgJycgfX1cIlxuICAgICAgW2NsYXNzLmJvcmRlci1sLVsjZTZlOGVkXV09XCJwb3NpdGlvblF1aWNrUmFuZ2VzKCkgPT09ICdyaWdodCcgJiYgc2hvd0NhbFRhYmxlSW5SYW5nZXMoKVwiXG4gICAgICBbY2xhc3MuYm9yZGVyLWxdPVwicG9zaXRpb25RdWlja1JhbmdlcygpID09PSAncmlnaHQnICYmIHNob3dDYWxUYWJsZUluUmFuZ2VzKClcIlxuICAgICAgW2NsYXNzLmJvcmRlci1yLVsjZTZlOGVkXV09XCJwb3NpdGlvblF1aWNrUmFuZ2VzKCkgPT09ICdsZWZ0JyAmJiBzaG93Q2FsVGFibGVJblJhbmdlcygpXCJcbiAgICAgIFtjbGFzcy5ib3JkZXItcl09XCJwb3NpdGlvblF1aWNrUmFuZ2VzKCkgPT09ICdsZWZ0JyAmJiBzaG93Q2FsVGFibGVJblJhbmdlcygpXCJcbiAgICAgIFtjbGFzcy4hbWluLWgtWzI2MHB4XV09XCJzaG93Q2FsVGFibGVJblJhbmdlcygpICYmICFpc1NpbmdsZSgpXCJcbiAgICAgIFtjbGFzcy4hbWluLWgtWzMwMHB4XV09XCJoYXNUaW1lUGlja2VyKCkgJiYgIWlzU2luZ2xlKClcIlxuICAgICAgW2NsYXNzLiF3LVsxNjBweF1dPVwiIXdpZHRoQnlQYXJlbnQoKVwiXG4gICAgICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5UGFyZW50KClcIj5cbiAgICAgIEBmb3IgKHJhbmdlIG9mIHF1aWNrUmFuZ2VzQXJyYXkoKTsgdHJhY2sgcmFuZ2UuaWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGhvdmVyOmJnLVt2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTMpXSBjdXJzb3ItcG9pbnRlciBweC1bMTZweF0gcHktWzhweF1cIlxuICAgICAgICAgIFtjbGFzcy5saWJzLXVpLXNlbGVjdGVkLXJhbmdlXT1cInJhbmdlLmlkID09PSBjaG9zZW5RdWlja1JhbmdlKCkgJiYgc2hvd0N1c3RvbVJhbmdlTGFiZWwoKVwiXG4gICAgICAgICAgW2NsYXNzLmJnLVt2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTMpXV09XCJyYW5nZS5pZCA9PT0gY2hvc2VuUXVpY2tSYW5nZSgpIHx8IHJhbmdlLmlkID09PSBzZWxlY3RlZFF1aWNrUmFuZ2UoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJDbGlja1JhbmdlKCRldmVudCwgcmFuZ2UpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNXIgZmxleCB0ZXh0LVsjMzMzMzMzXSBtaW4tdy0wIHctZnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckRpcmVjdGl2ZVxuICAgICAgICAgICAgICBbaWdub3JlU3RvcFByb3BhZ2F0aW9uRXZlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgW2NvbmZpZ109XCJ7bWF4V2lkdGg6MTYwLGRpcmVjdGlvbjondG9wJyx6SW5kZXg6KHpJbmRleCgpIHx8MTAwMCkgKyAxfVwiXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwicmFuZ2UubGFiZWxcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpIGNsYXNzPVwidGV4dC1bMTJweF0gbWwtWzE2cHhdXCJcbiAgICAgICAgICAgIFtjbGFzcy5saWJzLXVpLWljb24tY2hlY2tdPVwicmFuZ2UuaWQgPT09IHNlbGVjdGVkUXVpY2tSYW5nZSgpXCJcbiAgICAgICAgICAgIFtjbGFzcy50ZXh0LVt2YXIoLS1saWJzLXVpLWNvbG9yLWRlZmF1bHQpXV09XCJyYW5nZS5pZCA9PT0gc2VsZWN0ZWRRdWlja1JhbmdlKClcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG4gIEBpZiAoc2hvd0NhbFRhYmxlSW5SYW5nZXMoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJtLVsxNnB4XSB3LWZ1bGxcIj5cbiAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtZGF0ZXRpbWUtcGlja2VyLWN1c3RvbV9yYW5nZXMtY2FsZW5kYXIgW2lzU2luZ2xlXT1cImlzU2luZ2xlKClcIlxuICAgICAgICBbYXV0b0FwcGx5XT1cImF1dG9BcHBseSgpXCJcbiAgICAgICAgW3pJbmRleF09XCJ6SW5kZXgoKVwiXG4gICAgICAgIFtmbGFnTW91c2VdPVwiZmxhZ01vdXNlKClcIlxuICAgICAgICBbZGF0ZU9wdGlvbnNdPVwiZGF0ZU9wdGlvbnMoKVwiXG4gICAgICAgIFtoYXNUaW1lUGlja2VyXT1cImhhc1RpbWVQaWNrZXIoKVwiXG4gICAgICAgIFtxdWlja1Jhbmdlc0FycmF5XT1cInF1aWNrUmFuZ2VzQXJyYXkoKVwiXG4gICAgICAgIFtzdGFydERhdGVdPVwic3RhcnREYXRlKClcIlxuICAgICAgICBbZW5kRGF0ZV09XCJlbmREYXRlKClcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlKClcIlxuICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlKClcIlxuICAgICAgICBbbGlzdFllYXJIaWRkZW5JbnB1dFNlYXJjaF09XCJsaXN0WWVhckhpZGRlbklucHV0U2VhcmNoKClcIlxuICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIid3LWZ1bGwnXCJcbiAgICAgICAgKG91dENhbmNlbCk9XCJoYW5kbGVyQ2FuY2VsKClcIlxuICAgICAgICAob3V0UGlja2VyRGF0ZSk9XCJoYW5kbGVyUGlja2VyRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgKG91dEZ1bmN0aW9uc0NvbnRyb2wpPVwiaGFuZGxlckZ1bmN0aW9uc0NvbnRyb2woJGV2ZW50KVwiXG4gICAgICAgIChvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlKT1cImhhbmRsZXJDaGFuZ2VGbGFnTW91c2UoJGV2ZW50KVwiIC8+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
@@ -1,3 +1,4 @@
1
+ import { getDayjs } from "@libs-ui/utils";
1
2
  export const DEFAULT_MIN_YEAR = 1945;
2
- export const DEFAULT_MAX_YEAR = 2100;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWRhdGUuZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL3BpY2tlci9zcmMvZGVmaW5lcy9jb21tb24tZGF0ZS5kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUlOX1lFQVIgPSAxOTQ1O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFYX1lFQVIgPSAyMTAwO1xuIl19
3
+ export const DEFAULT_MAX_YEAR = getDayjs().year() + 5;
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWRhdGUuZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL3BpY2tlci9zcmMvZGVmaW5lcy9jb21tb24tZGF0ZS5kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQztBQUNyQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLEVBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXREYXlqcyB9IGZyb20gXCJAbGlicy11aS91dGlsc1wiO1xuaW1wb3J0IHsgRGF5anMgfSBmcm9tICdkYXlqcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX01JTl9ZRUFSID0gMTk0NTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9ZRUFSID0gZ2V0RGF5anM8RGF5anM+KCkueWVhcigpICsgNTtcbiJdfQ==
@@ -1,5 +1,4 @@
1
- import { get, UtilsCache, UtilsLanguageConstants } from "@libs-ui/utils";
2
- import dayjs from 'dayjs';
1
+ import { get, getDayjs, UtilsCache, UtilsLanguageConstants } from "@libs-ui/utils";
3
2
  export const getDateOptions = () => {
4
3
  const dateOptions = {
5
4
  [UtilsLanguageConstants.VI]: {
@@ -41,13 +40,14 @@ export const defaultLocaleConfig = () => {
41
40
  };
42
41
  export const getDateRangeDefault = () => {
43
42
  return {
44
- today: [dayjs().hour(0).minute(0).second(0).millisecond(0), dayjs().hour(23).minute(59).second(59)],
45
- yesterday: [dayjs().subtract(1, 'days').hour(0).minute(0).second(0).millisecond(0), dayjs().subtract(1, 'days').hour(23).minute(59).second(59)],
46
- _7days_ago: [dayjs().subtract(6, 'days').hour(0).second(0).minute(0).millisecond(0), dayjs().hour(23).minute(59).second(59)],
47
- _30days_ago: [dayjs().subtract(29, 'days').hour(0).second(0).minute(0).millisecond(0), dayjs().hour(23).minute(59).second(59)],
48
- this_month: [dayjs().startOf('month'), dayjs().endOf('month')],
49
- last_month: [dayjs().subtract(1, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],
50
- _3months_ago: [dayjs().subtract(89, 'days').hour(0).second(0).minute(0).millisecond(0), dayjs().hour(23).minute(59).second(59)],
43
+ today: [getDayjs().hour(0).minute(0).second(0).millisecond(0), getDayjs().hour(23).minute(59).second(59)],
44
+ yesterday: [getDayjs().subtract(1, 'days').hour(0).minute(0).second(0).millisecond(0), getDayjs().subtract(1, 'days').hour(23).minute(59).second(59)],
45
+ _7days_ago: [getDayjs().subtract(6, 'days').hour(0).second(0).minute(0).millisecond(0), getDayjs().hour(23).minute(59).second(59)],
46
+ _30days_ago: [getDayjs().subtract(29, 'days').hour(0).second(0).minute(0).millisecond(0), getDayjs().hour(23).minute(59).second(59)],
47
+ this_month: [getDayjs().startOf('month'), getDayjs().endOf('month')],
48
+ last_month: [getDayjs().subtract(1, 'month').startOf('month'), getDayjs().subtract(1, 'month').endOf('month')],
49
+ _3months_ago: [getDayjs().subtract(89, 'days').hour(0).second(0).minute(0).millisecond(0), getDayjs().hour(23).minute(59).second(59)],
51
50
  };
52
51
  };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1vcHRpb25zLmRlZmluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9waWNrZXIvc3JjL2RlZmluZXMvZGF0ZS1vcHRpb25zLmRlZmluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBdUIsRUFBRTtJQUNyRCxNQUFNLFdBQVcsR0FBRztRQUNsQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQ3JKLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUU7WUFDL00sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hELFlBQVksRUFBRSxLQUFLO1lBQ25CLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLGtCQUFrQixFQUFFLFdBQVc7U0FDaEM7UUFDRCxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1lBQ2xHLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUU7WUFDek0sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hELFlBQVksRUFBRSxPQUFPO1lBQ3JCLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1lBQ2Ysa0JBQWtCLEVBQUUsV0FBVztTQUNoQztLQUNGLENBQUM7SUFFRixPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFO0lBQ3RDLE9BQU87UUFDTCxTQUFTLEVBQUUsS0FBSztRQUNoQixTQUFTLEVBQUUsS0FBSztRQUNoQixTQUFTLEVBQUUsR0FBRztRQUNkLFVBQVUsRUFBRSxPQUFPO1FBQ25CLFdBQVcsRUFBRSxRQUFRO1FBQ3JCLFVBQVUsRUFBRSxPQUFPO1FBQ25CLGdCQUFnQixFQUFFLGtCQUFrQjtRQUNwQyxVQUFVLEVBQUUsRUFBRTtRQUNkLFVBQVUsRUFBRSxFQUFFO1FBQ2QsUUFBUSxFQUFFLENBQUM7S0FDWixDQUFBO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBMEMsRUFBRTtJQUM3RSxPQUFPO1FBQ0wsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0ksVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUgsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUgsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNoSSxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0LCBVdGlsc0NhY2hlLCBVdGlsc0xhbmd1YWdlQ29uc3RhbnRzIH0gZnJvbSBcIkBsaWJzLXVpL3V0aWxzXCI7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Db25maWcgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9waWNrZXIuaW50ZXJmYWNlXCI7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0ZU9wdGlvbnMgPSAoKTogTG9jYWxpemF0aW9uQ29uZmlnID0+IHtcbiAgY29uc3QgZGF0ZU9wdGlvbnMgPSB7XG4gICAgW1V0aWxzTGFuZ3VhZ2VDb25zdGFudHMuVkldOiB7XG4gICAgICBcIm1vbnRoTmFtZXNcIjogW1wiVGjDoW5nIDFcIiwgXCJUaMOhbmcgMlwiLCBcIlRow6FuZyAzXCIsIFwiVGjDoW5nIDRcIiwgXCJUaMOhbmcgNVwiLCBcIlRow6FuZyA2XCIsIFwiVGjDoW5nIDdcIiwgXCJUaMOhbmcgOFwiLCBcIlRow6FuZyA5XCIsIFwiVGjDoW5nIDEwXCIsIFwiVGjDoW5nIDExXCIsIFwiVGjDoW5nIDEyXCJdLFxuICAgICAgXCJyYW5nZXNcIjogeyBcInRvZGF5XCI6IFwiSMO0bSBuYXlcIiwgXCJ5ZXN0ZXJkYXlcIjogXCJIw7RtIHF1YVwiLCBcIl83ZGF5c19hZ29cIjogXCI3IG5nw6B5IHRyxrDhu5tjXCIsIFwiXzMwZGF5c19hZ29cIjogXCIzMCBuZ8OgeSB0csaw4bubY1wiLCBcInRoaXNfbW9udGhcIjogXCJUaMOhbmcgbsOgeVwiLCBcImxhc3RfbW9udGhcIjogXCJUaMOhbmcgdHLGsOG7m2NcIiwgXCJfM21vbnRoc19hZ29cIjogXCI5MCBuZ8OgeSB0csaw4bubY1wiIH0sXG4gICAgICBcImRheXNPZldlZWtcIjogW1wiVDJcIiwgXCJUM1wiLCBcIlQ0XCIsIFwiVDVcIiwgXCJUNlwiLCBcIlQ3XCIsIFwiQ05cIl0sXG4gICAgICBcImFwcGx5TGFiZWxcIjogXCJMxrB1XCIsXG4gICAgICBcImNhbmNlbExhYmVsXCI6IFwiSHXhu7cgYuG7j1wiLFxuICAgICAgXCJmcm9tTGFiZWxcIjogXCJU4burXCIsXG4gICAgICBcInRvTGFiZWxcIjogXCLEkOG6v25cIixcbiAgICAgIFwiY3VzdG9tUmFuZ2VMYWJlbFwiOiBcIlTDuXkgQ2jhu4luaFwiXG4gICAgfSxcbiAgICBbVXRpbHNMYW5ndWFnZUNvbnN0YW50cy5FTl06IHtcbiAgICAgIFwibW9udGhOYW1lc1wiOiBbXCJKYW5cIiwgXCJGZWJcIiwgXCJNYXJcIiwgXCJBcHJcIiwgXCJNYXlcIiwgXCJKdW5cIiwgXCJKdWxcIiwgXCJBdWdcIiwgXCJTZXBcIiwgXCJPY3RcIiwgXCJOb3ZcIiwgXCJEZWNcIl0sXG4gICAgICBcInJhbmdlc1wiOiB7IFwidG9kYXlcIjogXCJUb2RheVwiLCBcInllc3RlcmRheVwiOiBcIlllc3RlcmRheVwiLCBcIl83ZGF5c19hZ29cIjogXCI3IGRheXMgYWdvXCIsIFwiXzMwZGF5c19hZ29cIjogXCIzMCBkYXlzIGFnb1wiLCBcInRoaXNfbW9udGhcIjogXCJUaGlzIG1vbnRoXCIsIFwibGFzdF9tb250aFwiOiBcIkxhc3QgbW9udGhcIiwgXCJfM21vbnRoc19hZ29cIjogXCI5MCBkYXlzIGFnb1wiIH0sXG4gICAgICBcImRheXNPZldlZWtcIjogW1wiTW9cIiwgXCJUdVwiLCBcIldlXCIsIFwiVGhcIiwgXCJGclwiLCBcIlNhXCIsIFwiU3VcIl0sXG4gICAgICBcImFwcGx5TGFiZWxcIjogXCJBcHBseVwiLFxuICAgICAgXCJjYW5jZWxMYWJlbFwiOiBcIkNhbmNlbFwiLFxuICAgICAgXCJmcm9tTGFiZWxcIjogXCJGcm9tXCIsXG4gICAgICBcInRvTGFiZWxcIjogXCJUb1wiLFxuICAgICAgXCJjdXN0b21SYW5nZUxhYmVsXCI6IFwiQ3VzdG9taXplXCJcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGdldChkYXRlT3B0aW9ucywgVXRpbHNDYWNoZS5nZXRMYW5nKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMb2NhbGVDb25maWcgPSAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgZGlyZWN0aW9uOiAnbHRyJyxcbiAgICBzZXBhcmF0b3I6ICcgLSAnLFxuICAgIHdlZWtMYWJlbDogJ1cnLFxuICAgIGFwcGx5TGFiZWw6ICdBcHBseScsXG4gICAgY2FuY2VsTGFiZWw6ICdDYW5jZWwnLFxuICAgIGNsZWFyTGFiZWw6ICdDbGVhcicsXG4gICAgY3VzdG9tUmFuZ2VMYWJlbDogJ2N1c3RvbVJhbmdlTGFiZWwnLFxuICAgIGRheXNPZldlZWs6IFtdLFxuICAgIG1vbnRoTmFtZXM6IFtdLFxuICAgIGZpcnN0RGF5OiAxXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXREYXRlUmFuZ2VEZWZhdWx0ID0gKCk6IHsgW2tleTogc3RyaW5nXTogQXJyYXk8ZGF5anMuRGF5anM+IH0gPT4ge1xuICByZXR1cm4ge1xuICAgIHRvZGF5OiBbZGF5anMoKS5ob3VyKDApLm1pbnV0ZSgwKS5zZWNvbmQoMCkubWlsbGlzZWNvbmQoMCksIGRheWpzKCkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgICB5ZXN0ZXJkYXk6IFtkYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJykuaG91cigwKS5taW51dGUoMCkuc2Vjb25kKDApLm1pbGxpc2Vjb25kKDApLCBkYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJykuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgICBfN2RheXNfYWdvOiBbZGF5anMoKS5zdWJ0cmFjdCg2LCAnZGF5cycpLmhvdXIoMCkuc2Vjb25kKDApLm1pbnV0ZSgwKS5taWxsaXNlY29uZCgwKSwgZGF5anMoKS5ob3VyKDIzKS5taW51dGUoNTkpLnNlY29uZCg1OSldLFxuICAgIF8zMGRheXNfYWdvOiBbZGF5anMoKS5zdWJ0cmFjdCgyOSwgJ2RheXMnKS5ob3VyKDApLnNlY29uZCgwKS5taW51dGUoMCkubWlsbGlzZWNvbmQoMCksIGRheWpzKCkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgICB0aGlzX21vbnRoOiBbZGF5anMoKS5zdGFydE9mKCdtb250aCcpLCBkYXlqcygpLmVuZE9mKCdtb250aCcpXSxcbiAgICBsYXN0X21vbnRoOiBbZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5zdGFydE9mKCdtb250aCcpLCBkYXlqcygpLnN1YnRyYWN0KDEsICdtb250aCcpLmVuZE9mKCdtb250aCcpXSxcbiAgICBfM21vbnRoc19hZ286IFtkYXlqcygpLnN1YnRyYWN0KDg5LCAnZGF5cycpLmhvdXIoMCkuc2Vjb25kKDApLm1pbnV0ZSgwKS5taWxsaXNlY29uZCgwKSwgZGF5anMoKS5ob3VyKDIzKS5taW51dGUoNTkpLnNlY29uZCg1OSldLFxuICB9O1xufTtcbiJdfQ==
52
+ export const getDateOptionsDefault = () => ({ ...defaultLocaleConfig(), ...getDateOptions() });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1vcHRpb25zLmRlZmluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9waWNrZXIvc3JjL2RlZmluZXMvZGF0ZS1vcHRpb25zLmRlZmluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUluRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBdUIsRUFBRTtJQUNyRCxNQUFNLFdBQVcsR0FBRztRQUNsQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQ3JKLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUU7WUFDL00sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hELFlBQVksRUFBRSxLQUFLO1lBQ25CLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLGtCQUFrQixFQUFFLFdBQVc7U0FDaEM7UUFDRCxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1lBQ2xHLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUU7WUFDek0sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hELFlBQVksRUFBRSxPQUFPO1lBQ3JCLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1lBQ2Ysa0JBQWtCLEVBQUUsV0FBVztTQUNoQztLQUNGLENBQUM7SUFFRixPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFO0lBQ3RDLE9BQU87UUFDTCxTQUFTLEVBQUUsS0FBSztRQUNoQixTQUFTLEVBQUUsS0FBSztRQUNoQixTQUFTLEVBQUUsR0FBRztRQUNkLFVBQVUsRUFBRSxPQUFPO1FBQ25CLFdBQVcsRUFBRSxRQUFRO1FBQ3JCLFVBQVUsRUFBRSxPQUFPO1FBQ25CLGdCQUFnQixFQUFFLGtCQUFrQjtRQUNwQyxVQUFVLEVBQUUsRUFBRTtRQUNkLFVBQVUsRUFBRSxFQUFFO1FBQ2QsUUFBUSxFQUFFLENBQUM7S0FDWixDQUFBO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBb0MsRUFBRTtJQUN2RSxPQUFPO1FBQ0wsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZILFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkssVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEosV0FBVyxFQUFFLENBQUMsUUFBUSxFQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEosVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRixVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLEVBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1SCxZQUFZLEVBQUUsQ0FBQyxRQUFRLEVBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNwSixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsR0FBcUIsRUFBRSxDQUFBLENBQUMsRUFBRSxHQUFHLG1CQUFtQixFQUFFLEVBQUUsR0FBRyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXQsIGdldERheWpzLCBVdGlsc0NhY2hlLCBVdGlsc0xhbmd1YWdlQ29uc3RhbnRzIH0gZnJvbSBcIkBsaWJzLXVpL3V0aWxzXCI7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Db25maWcgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9waWNrZXIuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBEYXlqcyB9IGZyb20gJ2RheWpzJztcblxuZXhwb3J0IGNvbnN0IGdldERhdGVPcHRpb25zID0gKCk6IExvY2FsaXphdGlvbkNvbmZpZyA9PiB7XG4gIGNvbnN0IGRhdGVPcHRpb25zID0ge1xuICAgIFtVdGlsc0xhbmd1YWdlQ29uc3RhbnRzLlZJXToge1xuICAgICAgXCJtb250aE5hbWVzXCI6IFtcIlRow6FuZyAxXCIsIFwiVGjDoW5nIDJcIiwgXCJUaMOhbmcgM1wiLCBcIlRow6FuZyA0XCIsIFwiVGjDoW5nIDVcIiwgXCJUaMOhbmcgNlwiLCBcIlRow6FuZyA3XCIsIFwiVGjDoW5nIDhcIiwgXCJUaMOhbmcgOVwiLCBcIlRow6FuZyAxMFwiLCBcIlRow6FuZyAxMVwiLCBcIlRow6FuZyAxMlwiXSxcbiAgICAgIFwicmFuZ2VzXCI6IHsgXCJ0b2RheVwiOiBcIkjDtG0gbmF5XCIsIFwieWVzdGVyZGF5XCI6IFwiSMO0bSBxdWFcIiwgXCJfN2RheXNfYWdvXCI6IFwiNyBuZ8OgeSB0csaw4bubY1wiLCBcIl8zMGRheXNfYWdvXCI6IFwiMzAgbmfDoHkgdHLGsOG7m2NcIiwgXCJ0aGlzX21vbnRoXCI6IFwiVGjDoW5nIG7DoHlcIiwgXCJsYXN0X21vbnRoXCI6IFwiVGjDoW5nIHRyxrDhu5tjXCIsIFwiXzNtb250aHNfYWdvXCI6IFwiOTAgbmfDoHkgdHLGsOG7m2NcIiB9LFxuICAgICAgXCJkYXlzT2ZXZWVrXCI6IFtcIlQyXCIsIFwiVDNcIiwgXCJUNFwiLCBcIlQ1XCIsIFwiVDZcIiwgXCJUN1wiLCBcIkNOXCJdLFxuICAgICAgXCJhcHBseUxhYmVsXCI6IFwiTMawdVwiLFxuICAgICAgXCJjYW5jZWxMYWJlbFwiOiBcIkh14bu3IGLhu49cIixcbiAgICAgIFwiZnJvbUxhYmVsXCI6IFwiVOG7q1wiLFxuICAgICAgXCJ0b0xhYmVsXCI6IFwixJDhur9uXCIsXG4gICAgICBcImN1c3RvbVJhbmdlTGFiZWxcIjogXCJUw7l5IENo4buJbmhcIlxuICAgIH0sXG4gICAgW1V0aWxzTGFuZ3VhZ2VDb25zdGFudHMuRU5dOiB7XG4gICAgICBcIm1vbnRoTmFtZXNcIjogW1wiSmFuXCIsIFwiRmViXCIsIFwiTWFyXCIsIFwiQXByXCIsIFwiTWF5XCIsIFwiSnVuXCIsIFwiSnVsXCIsIFwiQXVnXCIsIFwiU2VwXCIsIFwiT2N0XCIsIFwiTm92XCIsIFwiRGVjXCJdLFxuICAgICAgXCJyYW5nZXNcIjogeyBcInRvZGF5XCI6IFwiVG9kYXlcIiwgXCJ5ZXN0ZXJkYXlcIjogXCJZZXN0ZXJkYXlcIiwgXCJfN2RheXNfYWdvXCI6IFwiNyBkYXlzIGFnb1wiLCBcIl8zMGRheXNfYWdvXCI6IFwiMzAgZGF5cyBhZ29cIiwgXCJ0aGlzX21vbnRoXCI6IFwiVGhpcyBtb250aFwiLCBcImxhc3RfbW9udGhcIjogXCJMYXN0IG1vbnRoXCIsIFwiXzNtb250aHNfYWdvXCI6IFwiOTAgZGF5cyBhZ29cIiB9LFxuICAgICAgXCJkYXlzT2ZXZWVrXCI6IFtcIk1vXCIsIFwiVHVcIiwgXCJXZVwiLCBcIlRoXCIsIFwiRnJcIiwgXCJTYVwiLCBcIlN1XCJdLFxuICAgICAgXCJhcHBseUxhYmVsXCI6IFwiQXBwbHlcIixcbiAgICAgIFwiY2FuY2VsTGFiZWxcIjogXCJDYW5jZWxcIixcbiAgICAgIFwiZnJvbUxhYmVsXCI6IFwiRnJvbVwiLFxuICAgICAgXCJ0b0xhYmVsXCI6IFwiVG9cIixcbiAgICAgIFwiY3VzdG9tUmFuZ2VMYWJlbFwiOiBcIkN1c3RvbWl6ZVwiXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBnZXQoZGF0ZU9wdGlvbnMsIFV0aWxzQ2FjaGUuZ2V0TGFuZygpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TG9jYWxlQ29uZmlnID0gKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIGRpcmVjdGlvbjogJ2x0cicsXG4gICAgc2VwYXJhdG9yOiAnIC0gJyxcbiAgICB3ZWVrTGFiZWw6ICdXJyxcbiAgICBhcHBseUxhYmVsOiAnQXBwbHknLFxuICAgIGNhbmNlbExhYmVsOiAnQ2FuY2VsJyxcbiAgICBjbGVhckxhYmVsOiAnQ2xlYXInLFxuICAgIGN1c3RvbVJhbmdlTGFiZWw6ICdjdXN0b21SYW5nZUxhYmVsJyxcbiAgICBkYXlzT2ZXZWVrOiBbXSxcbiAgICBtb250aE5hbWVzOiBbXSxcbiAgICBmaXJzdERheTogMVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0ZVJhbmdlRGVmYXVsdCA9ICgpOiB7IFtrZXk6IHN0cmluZ106IEFycmF5PERheWpzPiB9ID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0b2RheTogW2dldERheWpzPERheWpzPigpLmhvdXIoMCkubWludXRlKDApLnNlY29uZCgwKS5taWxsaXNlY29uZCgwKSwgZ2V0RGF5anM8RGF5anM+KCkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgICB5ZXN0ZXJkYXk6IFtnZXREYXlqczxEYXlqcz4oKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmhvdXIoMCkubWludXRlKDApLnNlY29uZCgwKS5taWxsaXNlY29uZCgwKSwgZ2V0RGF5anM8RGF5anM+KCkuc3VidHJhY3QoMSwgJ2RheXMnKS5ob3VyKDIzKS5taW51dGUoNTkpLnNlY29uZCg1OSldLFxuICAgIF83ZGF5c19hZ286IFtnZXREYXlqczxEYXlqcz4oKS5zdWJ0cmFjdCg2LCAnZGF5cycpLmhvdXIoMCkuc2Vjb25kKDApLm1pbnV0ZSgwKS5taWxsaXNlY29uZCgwKSwgZ2V0RGF5anM8RGF5anM+KCkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgICBfMzBkYXlzX2FnbzogW2dldERheWpzPERheWpzPigpLnN1YnRyYWN0KDI5LCAnZGF5cycpLmhvdXIoMCkuc2Vjb25kKDApLm1pbnV0ZSgwKS5taWxsaXNlY29uZCgwKSwgZ2V0RGF5anM8RGF5anM+KCkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgICB0aGlzX21vbnRoOiBbZ2V0RGF5anM8RGF5anM+KCkuc3RhcnRPZignbW9udGgnKSwgZ2V0RGF5anM8RGF5anM+KCkuZW5kT2YoJ21vbnRoJyldLFxuICAgIGxhc3RfbW9udGg6IFtnZXREYXlqczxEYXlqcz4oKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5zdGFydE9mKCdtb250aCcpLCBnZXREYXlqczxEYXlqcz4oKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5lbmRPZignbW9udGgnKV0sXG4gICAgXzNtb250aHNfYWdvOiBbZ2V0RGF5anM8RGF5anM+KCkuc3VidHJhY3QoODksICdkYXlzJykuaG91cigwKS5zZWNvbmQoMCkubWludXRlKDApLm1pbGxpc2Vjb25kKDApLCBnZXREYXlqczxEYXlqcz4oKS5ob3VyKDIzKS5taW51dGUoNTkpLnNlY29uZCg1OSldLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERhdGVPcHRpb25zRGVmYXVsdCA9ICgpOkxvY2FsaXphdGlvbkNvbmZpZz0+KHsgLi4uZGVmYXVsdExvY2FsZUNvbmZpZygpLCAuLi5nZXREYXRlT3B0aW9ucygpIH0pOyJdfQ==
package/esm2022/index.mjs CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './picker.component';
2
2
  export * from './defines/common-date.define';
3
+ export * from './defines/date-options.define';
3
4
  export * from './interfaces';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZpbmVzL2NvbW1vbi1kYXRlLmRlZmluZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RlZmluZXMvY29tbW9uLWRhdGUuZGVmaW5lJztcbmV4cG9ydCAqIGZyb20gJy4vZGVmaW5lcy9kYXRlLW9wdGlvbnMuZGVmaW5lJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZW1pdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9pbnRlcmZhY2VzL2NhbGVuZGFyLWVtaXQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCB7IElTcGxpdFBpY2tlckRhdGUgfSBmcm9tIFwiLi9jYWxlbmRhci12YXJpYWJsZXMuaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVtaXREYXRlQ2FsZW5kYXIge1xuICBkaXNwbGF5TGFiZWw/OiBzdHJpbmc7XG4gIHN0YXJ0RGF0ZTogZGF5anMuRGF5anMgfCB1bmRlZmluZWQ7XG4gIGVuZERhdGU6IGRheWpzLkRheWpzIHwgdW5kZWZpbmVkO1xuICBkZXRhaWxEYXRlUGlja2VyOiBJU3BsaXRQaWNrZXJEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElFbWl0U2luZ2xlRGF0ZSB7XG4gIGRpc3BsYXlMYWJlbD86IHN0cmluZzsgLy8gbGFiZWwgaGnhu4NuIHRo4buLIG5nb8OgaSBkYXRlIHBpY2tlciBmb3JtXG4gIGRhdGU6IHN0cmluZyB8IGRheWpzLkRheWpzIHwgdW5kZWZpbmVkO1xuICB2YWx1ZXM6IHtcbiAgICBtb250aDogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHllYXI6IHN0cmluZyB8IG51bWJlcjtcbiAgICBkYXk6IHN0cmluZyB8IG51bWJlcjtcbiAgICBob3VyPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIG1pbnV0ZT86IHN0cmluZyB8IG51bWJlcjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRW1pdERhdGVSYW5nZSB7XG4gIHF1aWNrUmFuZ2VJZD86IHN0cmluZzsgLy8gaWQgcXVpY2sgcmFuZ2VcbiAgZGlzcGxheUxhYmVsPzogc3RyaW5nOyAvLyBsYWJlbCBoaeG7g24gdGjhu4sgbmdvw6BpIGRhdGUgcGlja2VyIGZvcm1cbiAgc3RhcnREYXRlOiBzdHJpbmcgfCBkYXlqcy5EYXlqcyB8IHVuZGVmaW5lZDtcbiAgZW5kRGF0ZTogc3RyaW5nIHwgZGF5anMuRGF5anMgfCB1bmRlZmluZWQ7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZW1pdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9pbnRlcmZhY2VzL2NhbGVuZGFyLWVtaXQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCB7IElTcGxpdFBpY2tlckRhdGUgfSBmcm9tIFwiLi9jYWxlbmRhci12YXJpYWJsZXMuaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVtaXREYXRlQ2FsZW5kYXIge1xuICBkaXNwbGF5TGFiZWw/OiBzdHJpbmc7XG4gIHN0YXJ0RGF0ZTogZGF5anMuRGF5anMgfCB1bmRlZmluZWQ7XG4gIGVuZERhdGU6IGRheWpzLkRheWpzIHwgdW5kZWZpbmVkO1xuICBkZXRhaWxEYXRlUGlja2VyOiBJU3BsaXRQaWNrZXJEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElFbWl0U2luZ2xlRGF0ZSB7XG4gIGRpc3BsYXlMYWJlbD86IHN0cmluZzsgLy8gbGFiZWwgaGnhu4NuIHRo4buLIG5nb8OgaSBkYXRlIHBpY2tlciBmb3JtXG4gIGRhdGU6IHN0cmluZyB8IGRheWpzLkRheWpzIHwgdW5kZWZpbmVkO1xuICB2YWx1ZXM/OiB7XG4gICAgbW9udGg6IHN0cmluZyB8IG51bWJlcjtcbiAgICB5ZWFyOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgZGF5OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgaG91cj86IHN0cmluZyB8IG51bWJlcjtcbiAgICBtaW51dGU/OiBzdHJpbmcgfCBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVtaXREYXRlUmFuZ2Uge1xuICBxdWlja1JhbmdlSWQ/OiBzdHJpbmc7IC8vIGlkIHF1aWNrIHJhbmdlXG4gIGRpc3BsYXlMYWJlbD86IHN0cmluZzsgLy8gbGFiZWwgaGnhu4NuIHRo4buLIG5nb8OgaSBkYXRlIHBpY2tlciBmb3JtXG4gIHN0YXJ0RGF0ZTogc3RyaW5nIHwgZGF5anMuRGF5anMgfCB1bmRlZmluZWQ7XG4gIGVuZERhdGU6IHN0cmluZyB8IGRheWpzLkRheWpzIHwgdW5kZWZpbmVkO1xufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tY29udHJvbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9pbnRlcmZhY2VzL2Z1bmN0aW9uLWNvbnRyb2wuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlVGltZVBpY2tlckZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgY2hlY2tJc1ZhbGlkOiAoKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYWxlbmRhckZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgYnVpbGREZWZhdWx0UmFuZ2U6IChzdGFydERhdGU6IGRheWpzLkRheWpzLCBlbmREYXRlOiBkYXlqcy5EYXlqcykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgYXBwbHlUb1NlbGVjdDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tY29udHJvbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9pbnRlcmZhY2VzL2Z1bmN0aW9uLWNvbnRyb2wuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgSUVtaXREYXRlUmFuZ2UsIElFbWl0U2luZ2xlRGF0ZSB9IGZyb20gJy4vY2FsZW5kYXItZW1pdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVFlQRV9PQkpFQ1QgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZVRpbWVQaWNrZXJGdW5jdGlvbkNvbnRyb2xFdmVudCB7XG4gIGNoZWNrSXNWYWxpZDogKCkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgcmVzZXRFcnJvcjogKG1lc3NhZ2U/OnN0cmluZyxpbnRlcnBvbGF0ZVBhcmFtcz86VFlQRV9PQkpFQ1QpID0+IFByb21pc2U8dm9pZD47XG4gIHJlc2V0OiAoY2hlY2tJc1ZhbGlkPzogYm9vbGVhbiwgZGF0ZVJhbmdlU2VsZWN0ZWQ/OiBJRW1pdERhdGVSYW5nZSxzaW5nbGVEYXRlUmVzZXQ/OiBJRW1pdFNpbmdsZURhdGUpID0+IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQge1xuICBidWlsZERlZmF1bHRSYW5nZTogKHN0YXJ0RGF0ZTogZGF5anMuRGF5anMsIGVuZERhdGU6IGRheWpzLkRheWpzKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBhcHBseVRvU2VsZWN0OiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xufSJdfQ==