@libs-ui/components-datetime-picker 0.2.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/README.md +3 -0
  2. package/custom-ranges/calendar/calendar.component.d.ts +140 -0
  3. package/custom-ranges/custom-ranges.component.d.ts +59 -0
  4. package/defines/calendar.define.d.ts +13 -0
  5. package/defines/date-options.define.d.ts +20 -0
  6. package/esm2022/custom-ranges/calendar/calendar.component.mjs +1256 -0
  7. package/esm2022/custom-ranges/custom-ranges.component.mjs +266 -0
  8. package/esm2022/defines/calendar.define.mjs +135 -0
  9. package/esm2022/defines/date-options.define.mjs +55 -0
  10. package/esm2022/index.mjs +2 -0
  11. package/esm2022/interfaces/calendar-emit.interface.mjs +2 -0
  12. package/esm2022/interfaces/calendar-variables.interface.mjs +6 -0
  13. package/esm2022/interfaces/function-control.interface.mjs +2 -0
  14. package/esm2022/interfaces/picker.interface.mjs +2 -0
  15. package/esm2022/interfaces/time-variables.interface.mjs +4 -0
  16. package/esm2022/interfaces/valid.interface.mjs +2 -0
  17. package/esm2022/libs-ui-components-datetime-picker.mjs +5 -0
  18. package/esm2022/picker.component.mjs +180 -0
  19. package/fesm2022/libs-ui-components-datetime-picker.mjs +1882 -0
  20. package/fesm2022/libs-ui-components-datetime-picker.mjs.map +1 -0
  21. package/index.d.ts +1 -0
  22. package/interfaces/calendar-emit.interface.d.ts +25 -0
  23. package/interfaces/calendar-variables.interface.d.ts +80 -0
  24. package/interfaces/function-control.interface.d.ts +8 -0
  25. package/interfaces/picker.interface.d.ts +26 -0
  26. package/interfaces/time-variables.interface.d.ts +36 -0
  27. package/interfaces/valid.interface.d.ts +5 -0
  28. package/package.json +25 -0
  29. package/picker.component.d.ts +77 -0
@@ -0,0 +1,266 @@
1
+ import { ChangeDetectionStrategy, Component, effect, input, model, output, signal, untracked } from "@angular/core";
2
+ import { LibsUiComponentsPopoverComponent } from "@libs-ui/components-popover";
3
+ import { TranslateModule } from "@ngx-translate/core";
4
+ import dayjs from 'dayjs';
5
+ import { defaultLocaleConfig, getDateOptions, getDateRangeDefault } from "../defines/date-options.define";
6
+ import { LibsUiComponentsDatetimePickerCustomRangesCalendarComponent } from "./calendar/calendar.component";
7
+ import { LibsUiComponentsButtonsButtonComponent } from "@libs-ui/components-buttons-button";
8
+ import * as i0 from "@angular/core";
9
+ export class LibsUiComponentsDatetimePickerCustomRangesComponent {
10
+ /** PROPERTY */
11
+ showCalTableInRanges = signal(false);
12
+ quickRangesArray = signal([]);
13
+ selectedQuickRange = signal(''); // quick range đã được lưu trước đó
14
+ chosenQuickRange = signal(undefined); // quick range đang được chọn
15
+ calendarShowing = signal(false);
16
+ timeouts = signal([]);
17
+ calendarFunctionControlEvent = signal(undefined);
18
+ chosenSingleDate = signal(undefined);
19
+ chosenDateRange = signal(undefined);
20
+ /** INPUT */
21
+ // readonly SelectedQuickRange = input<string>('');
22
+ zIndex = input(1200, { transform: (value) => value ?? 1200 });
23
+ classInclude = input('');
24
+ extendRanges = input([]);
25
+ widthByParent = input(false);
26
+ autoApply = input(false);
27
+ positionQuickRanges = input('left', { transform: (value) => value ?? 'left' });
28
+ isSingle = input(false, { transform: (value) => value ?? false });
29
+ hasTimePicker = input(true);
30
+ flagMouse = input({ isMouseEnter: false, isMouseEnterContent: false });
31
+ dateOptions = input({ ...defaultLocaleConfig(), ...getDateOptions() });
32
+ alwaysShowCalendars = input(false);
33
+ startDate = model(dayjs().startOf('day'));
34
+ endDate = model(dayjs().endOf('day'));
35
+ showCustomRangeLabel = input(undefined);
36
+ keepCalendarOpeningWithRange = input(undefined);
37
+ singleDateSelected = input();
38
+ dateRangeSelected = input(undefined, {
39
+ transform: (value) => {
40
+ if (!value) {
41
+ return;
42
+ }
43
+ let startDate = value.startDate;
44
+ let endDate = value.endDate;
45
+ if (typeof startDate === 'string') {
46
+ startDate = dayjs(startDate);
47
+ }
48
+ if (typeof endDate === 'string') {
49
+ endDate = dayjs(endDate);
50
+ }
51
+ return {
52
+ ...value,
53
+ startDate,
54
+ endDate
55
+ };
56
+ }
57
+ });
58
+ /** OUTPUT */
59
+ outChangStageFlagMouse = output();
60
+ outUpdateWidth = output();
61
+ outCancel = output();
62
+ outSelectSingleDate = output();
63
+ outSelectDateRange = output();
64
+ outClickRange = output();
65
+ constructor() {
66
+ effect(() => untracked(this.onAfterViewInit.bind(this)));
67
+ }
68
+ ngOnInit() {
69
+ throw new Error("Method not implemented.");
70
+ }
71
+ onAfterViewInit() {
72
+ if (!this.startDate()) {
73
+ this.startDate.set(dayjs().startOf('day'));
74
+ }
75
+ if (!this.endDate()) {
76
+ this.endDate.set(dayjs().endOf('day'));
77
+ }
78
+ const dateRangeSelected = this.dateRangeSelected();
79
+ const customRange = {
80
+ id: this.dateOptions()?.customRangeLabel || '',
81
+ label: this.dateOptions()?.customRangeLabel || ''
82
+ };
83
+ if (dateRangeSelected) {
84
+ this.selectedQuickRange.set(dateRangeSelected.quickRangeId ? dateRangeSelected.quickRangeId : customRange.id);
85
+ this.chosenQuickRange.set(dateRangeSelected.quickRangeId ?? customRange.id);
86
+ this.startDate.set(dateRangeSelected.startDate);
87
+ this.endDate.set(dateRangeSelected.endDate);
88
+ }
89
+ if (this.hasTimePicker()) {
90
+ this.selectedQuickRange.set(customRange.id);
91
+ this.chosenQuickRange.set(customRange.id);
92
+ }
93
+ if (this.selectedQuickRange() === this.dateOptions()?.customRangeLabel) {
94
+ this.showCalTableInRanges.set(true);
95
+ }
96
+ this.renderRanges();
97
+ }
98
+ updateWidth() {
99
+ const timeoutId = setTimeout(() => {
100
+ this.outUpdateWidth.emit(1);
101
+ });
102
+ this.timeouts.update(ids => [...ids, timeoutId]);
103
+ }
104
+ renderRanges() {
105
+ if (this.isSingle()) {
106
+ return;
107
+ }
108
+ const rangesDefault = getDateRangeDefault();
109
+ const ranges = this.isSingle() ? {} : this.dateOptions()?.ranges;
110
+ this.quickRangesArray.set([]);
111
+ for (const key in ranges) {
112
+ const rangeValue = rangesDefault[key];
113
+ const start = dayjs(rangeValue[0]);
114
+ const end = dayjs(rangeValue[1]);
115
+ this.quickRangesArray.update(current => {
116
+ current.push({
117
+ id: key,
118
+ label: ranges[key],
119
+ values: [start, end]
120
+ });
121
+ return current;
122
+ });
123
+ }
124
+ if (this.showCustomRangeLabel() && this.dateOptions()?.customRangeLabel) {
125
+ this.quickRangesArray.update(current => {
126
+ current.push({
127
+ id: this.dateOptions()?.customRangeLabel || '',
128
+ label: this.dateOptions()?.customRangeLabel || ''
129
+ });
130
+ return current;
131
+ });
132
+ }
133
+ if (this.extendRanges()) {
134
+ this.quickRangesArray.update(current => {
135
+ current.unshift(...this.extendRanges());
136
+ return current;
137
+ });
138
+ }
139
+ if (!this.quickRangesArray().length) {
140
+ this.showCalTableInRanges.set(true);
141
+ }
142
+ }
143
+ handlerCancel() {
144
+ this.outCancel.emit('');
145
+ }
146
+ handlerPickerDate(event) {
147
+ console.log('handlerPickerDate', event);
148
+ this.chosenSingleDate.set({
149
+ displayLabel: event.displayLabel,
150
+ date: event.startDate,
151
+ values: event.detailDatePicker.start()
152
+ });
153
+ // if (!this.isSingle() && event.startDate && !event.endDate) {
154
+ // const endTime = event.detailDatePicker.end();
155
+ // event.endDate = event.startDate.clone().hour(endTime.hour as number).minute(endTime.minute as number).second(59);
156
+ // }
157
+ this.chosenDateRange.set({
158
+ quickRangeId: this.chosenQuickRange(),
159
+ ...event
160
+ });
161
+ const chosenSingleDate = this.chosenSingleDate();
162
+ const chosenDateRange = this.chosenDateRange();
163
+ if (this.isSingle() && chosenSingleDate) {
164
+ this.outSelectSingleDate.emit(chosenSingleDate);
165
+ return;
166
+ }
167
+ if (!chosenDateRange || (!chosenDateRange.startDate && !chosenDateRange.endDate)) {
168
+ return;
169
+ }
170
+ this.outSelectDateRange.emit(chosenDateRange);
171
+ }
172
+ handlerClickRange(e, range) {
173
+ e.stopPropagation();
174
+ this.updateWidth();
175
+ this.chosenQuickRange.set(range.id);
176
+ if (range.id === this.dateOptions()?.customRangeLabel) {
177
+ this.calendarShowing.set(true);
178
+ this.showCalTableInRanges.set(true);
179
+ return;
180
+ }
181
+ if (this.extendRanges()) {
182
+ const findExternalRange = this.extendRanges().find(item => item.label === range.id);
183
+ if (findExternalRange && range.id === findExternalRange.label) {
184
+ if (findExternalRange.values) {
185
+ this.outSelectDateRange.emit({ quickRangeId: findExternalRange.id, displayLabel: findExternalRange.label, startDate: findExternalRange.values[0], endDate: findExternalRange.values[1] });
186
+ return;
187
+ }
188
+ this.outSelectDateRange.emit({ quickRangeId: findExternalRange.id, displayLabel: findExternalRange.label, startDate: undefined, endDate: undefined });
189
+ return;
190
+ }
191
+ }
192
+ const dates = range.values ?? [];
193
+ // this.startDate.set(dates[0].clone().hour(0).minute(0).second(0));
194
+ // this.endDate.set(dates[1].clone().hour(23).minute(59).second(59));
195
+ // this.timeValue = { hour: 0, toHour: 0, minute: 23, toMinute: 59 };
196
+ // this.timepickerVariables.left.selectedHour = 0;
197
+ // this.timepickerVariables.left.selectedMinute = 0;
198
+ // this.timepickerVariables.right.selectedHour = 23;
199
+ // this.timepickerVariables.right.selectedMinute = 59;
200
+ // this.showRangeLabelOnInput && label !== this.localeDay.customRangeLabel ? this.chosenLabel = label : this.calculateChosenLabel();
201
+ // // this.autoApply.set(true);
202
+ // if (!this.hasTimePicker()) {
203
+ // if(this.startDate()) {
204
+ // this.startDate.set(this.startDate()?.startOf('day'));
205
+ // }
206
+ // if(this.endDate()) {
207
+ // this.endDate.set(this.endDate()?.endOf('day'));
208
+ // }
209
+ // }
210
+ // if (!this.alwaysShowCalendars()) {
211
+ // this.calendarShowing.set(false);
212
+ // }
213
+ // this.outClickRange.emit(range);
214
+ if (!this.keepCalendarOpeningWithRange() || !this.alwaysShowCalendars()) {
215
+ this.outSelectDateRange.emit({ quickRangeId: range.id, displayLabel: range.label, startDate: range.values?.[0], endDate: range.values?.[1] });
216
+ return;
217
+ }
218
+ // if (this.timePicker) {
219
+ // this.renderTimePicker(SideEnum.left);
220
+ // this.renderTimePicker(SideEnum.right);
221
+ // }
222
+ // if (this.getMaxDate() && this.getMaxDate().isSame(dates[0], 'month')) {
223
+ // this.rightCalendar.month = this.rightCalendar.month && this.rightCalendar.month.month(dates[0].month());
224
+ // this.rightCalendar.month = this.rightCalendar.month && this.rightCalendar.month.year(dates[0].year());
225
+ // this.leftCalendar.month = this.leftCalendar.month && this.leftCalendar.month.month(dates[0].month() - 1);
226
+ // this.leftCalendar.month = this.leftCalendar.month && this.leftCalendar.month.year(dates[1].year());
227
+ // return this.updateCalendars();
228
+ // }
229
+ // this.leftCalendar.month = this.leftCalendar.month && this.leftCalendar.month.month(dates[0].month());
230
+ // this.leftCalendar.month = this.leftCalendar.month && this.leftCalendar.month.year(dates[0].year());
231
+ // const nextMonth = dates[0].clone().add(1, 'month');
232
+ // this.rightCalendar.month = this.rightCalendar.month && this.rightCalendar.month.month(nextMonth.month());
233
+ // this.rightCalendar.month = this.rightCalendar.month && this.rightCalendar.month.year(nextMonth.year());
234
+ // this.updateCalendars();
235
+ return;
236
+ }
237
+ handlerClickCancel(event) {
238
+ event.stopPropagation();
239
+ // this.startDate.set(dayjs(0));
240
+ // this.endDate.set(dayjs(0));
241
+ this.outCancel.emit('');
242
+ }
243
+ handlerChangeFlagMouse(flagMouse) {
244
+ this.outChangStageFlagMouse.emit(flagMouse);
245
+ }
246
+ handlerFunctionsControl(event) {
247
+ this.calendarFunctionControlEvent.set(event);
248
+ }
249
+ ngOnDestroy() {
250
+ this.timeouts().forEach(item => clearTimeout(item));
251
+ // this.onDestroy.next();
252
+ // this.onDestroy.complete();
253
+ }
254
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsDatetimePickerCustomRangesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
255
+ 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 });
256
+ }
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsDatetimePickerCustomRangesComponent, decorators: [{
258
+ type: Component,
259
+ args: [{ selector: 'libs_ui-components-datetime-picker-custom_ranges', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
260
+ TranslateModule,
261
+ LibsUiComponentsDatetimePickerCustomRangesCalendarComponent,
262
+ LibsUiComponentsPopoverComponent,
263
+ LibsUiComponentsButtonsButtonComponent
264
+ ], 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"] }]
265
+ }], ctorParameters: () => [] });
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJhbmdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9jdXN0b20tcmFuZ2VzL2N1c3RvbS1yYW5nZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL3BpY2tlci9zcmMvY3VzdG9tLXJhbmdlcy9jdXN0b20tcmFuZ2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZJLE9BQU8sRUFBYyxnQ0FBZ0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSzFHLE9BQU8sRUFBRSwyREFBMkQsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQWdCNUYsTUFBTSxPQUFPLG1EQUFtRDtJQUM5RCxlQUFlO0lBQ0wsb0JBQW9CLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzlDLGdCQUFnQixHQUFHLE1BQU0sQ0FBb0IsRUFBRSxDQUFDLENBQUM7SUFDakQsa0JBQWtCLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQzVFLGdCQUFnQixHQUFHLE1BQU0sQ0FB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QUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwRCx5QkFBeUI7UUFDekIsNkJBQTZCO0lBQy9CLENBQUM7d0dBL1JVLG1EQUFtRDs0RkFBbkQsbURBQW1ELDAwRkMxQmhFLHl2RkFvREEsNnBCRGhDSSxlQUFlLCtCQUNmLDJEQUEyRCxxZUFDM0QsZ0NBQWdDOzs0RkFJdkIsbURBQW1EO2tCQWQvRCxTQUFTOytCQUVFLGtEQUFrRCxjQUdoRCxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsZUFBZTt3QkFDZiwyREFBMkQ7d0JBQzNELGdDQUFnQzt3QkFDaEMsc0NBQXNDO3FCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGVmZmVjdCwgaW5wdXQsIG1vZGVsLCBPbkRlc3Ryb3ksIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJRmxhZ01vdXNlLCBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgZGVmYXVsdExvY2FsZUNvbmZpZywgZ2V0RGF0ZU9wdGlvbnMsIGdldERhdGVSYW5nZURlZmF1bHQgfSBmcm9tIFwiLi4vZGVmaW5lcy9kYXRlLW9wdGlvbnMuZGVmaW5lXCI7XG5pbXBvcnQgeyBJRW1pdERhdGVDYWxlbmRhciwgSUVtaXREYXRlUmFuZ2UsIElFbWl0U2luZ2xlRGF0ZSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2NhbGVuZGFyLWVtaXQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBJRGF0ZVJhbmdlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvY2FsZW5kYXItdmFyaWFibGVzLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgSUNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9mdW5jdGlvbi1jb250cm9sLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uQ29uZmlnIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcGlja2VyLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lUGlja2VyQ3VzdG9tUmFuZ2VzQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tIFwiLi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnRcIjtcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtYnV0dG9ucy1idXR0b25cIjtcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlci1jdXN0b21fcmFuZ2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1yYW5nZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tcmFuZ2VzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIExpYnNVaUNvbXBvbmVudHNEYXRldGltZVBpY2tlckN1c3RvbVJhbmdlc0NhbGVuZGFyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0RhdGV0aW1lUGlja2VyQ3VzdG9tUmFuZ2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKiogUFJPUEVSVFkgKi9cbiAgcHJvdGVjdGVkIHNob3dDYWxUYWJsZUluUmFuZ2VzID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJvdGVjdGVkIHF1aWNrUmFuZ2VzQXJyYXkgPSBzaWduYWw8QXJyYXk8SURhdGVSYW5nZT4+KFtdKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkUXVpY2tSYW5nZSA9IHNpZ25hbDxzdHJpbmc+KCcnKTsgLy8gcXVpY2sgcmFuZ2UgxJHDoyDEkcaw4bujYyBsxrB1IHRyxrDhu5tjIMSRw7NcbiAgcHJvdGVjdGVkIGNob3NlblF1aWNrUmFuZ2UgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpOyAvLyBxdWljayByYW5nZSDEkWFuZyDEkcaw4bujYyBjaOG7jW5cblxuICBwcml2YXRlIGNhbGVuZGFyU2hvd2luZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgdGltZW91dHMgPSBzaWduYWw8QXJyYXk8bnVtYmVyPj4oW10pO1xuICBwcml2YXRlIGNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQgPSBzaWduYWw8SUNhbGVuZGFyRnVuY3Rpb25Db250cm9sRXZlbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgY2hvc2VuU2luZ2xlRGF0ZSA9IHNpZ25hbDxJRW1pdFNpbmdsZURhdGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgY2hvc2VuRGF0ZVJhbmdlID0gc2lnbmFsPElFbWl0RGF0ZVJhbmdlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIC8qKiBJTlBVVCAqL1xuICAvLyByZWFkb25seSBTZWxlY3RlZFF1aWNrUmFuZ2UgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgekluZGV4ID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDEyMDAsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlID8/IDEyMDAgfSk7XG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZSA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBleHRlbmRSYW5nZXMgPSBpbnB1dDxBcnJheTxJRGF0ZVJhbmdlPj4oW10pO1xuICByZWFkb25seSB3aWR0aEJ5UGFyZW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBhdXRvQXBwbHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgcG9zaXRpb25RdWlja1JhbmdlcyA9IGlucHV0PCdsZWZ0JyB8ICdyaWdodCcsICdsZWZ0JyB8ICdyaWdodCc+KCdsZWZ0JywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgPz8gJ2xlZnQnIH0pO1xuICByZWFkb25seSBpc1NpbmdsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlKSA9PiB2YWx1ZSA/PyBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgaGFzVGltZVBpY2tlciA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBmbGFnTW91c2UgPSBpbnB1dDxJRmxhZ01vdXNlPih7IGlzTW91c2VFbnRlcjogZmFsc2UsIGlzTW91c2VFbnRlckNvbnRlbnQ6IGZhbHNlIH0pO1xuICByZWFkb25seSBkYXRlT3B0aW9ucyA9IGlucHV0PExvY2FsaXphdGlvbkNvbmZpZz4oeyAuLi5kZWZhdWx0TG9jYWxlQ29uZmlnKCksIC4uLmdldERhdGVPcHRpb25zKCkgfSk7XG4gIHJlYWRvbmx5IGFsd2F5c1Nob3dDYWxlbmRhcnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHN0YXJ0RGF0ZSA9IG1vZGVsPGRheWpzLkRheWpzIHwgdW5kZWZpbmVkPihkYXlqcygpLnN0YXJ0T2YoJ2RheScpKTtcbiAgcmVhZG9ubHkgZW5kRGF0ZSA9IG1vZGVsPGRheWpzLkRheWpzIHwgdW5kZWZpbmVkPihkYXlqcygpLmVuZE9mKCdkYXknKSk7XG4gIHJlYWRvbmx5IHNob3dDdXN0b21SYW5nZUxhYmVsID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkga2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZSA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgc2luZ2xlRGF0ZVNlbGVjdGVkID0gaW5wdXQ8SUVtaXRTaW5nbGVEYXRlPigpO1xuICByZWFkb25seSBkYXRlUmFuZ2VTZWxlY3RlZCA9IGlucHV0PElFbWl0RGF0ZVJhbmdlIHwgdW5kZWZpbmVkLCBJRW1pdERhdGVSYW5nZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7XG4gICAgdHJhbnNmb3JtOiAodmFsdWUpID0+IHtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IHN0YXJ0RGF0ZSA9IHZhbHVlLnN0YXJ0RGF0ZTtcbiAgICAgIGxldCBlbmREYXRlID0gdmFsdWUuZW5kRGF0ZTtcblxuICAgICAgaWYgKHR5cGVvZiBzdGFydERhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHN0YXJ0RGF0ZSA9IGRheWpzKHN0YXJ0RGF0ZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgZW5kRGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZW5kRGF0ZSA9IGRheWpzKGVuZERhdGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgc3RhcnREYXRlLFxuICAgICAgICBlbmREYXRlXG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqIE9VVFBVVCAqL1xuICByZWFkb25seSBvdXRDaGFuZ1N0YWdlRmxhZ01vdXNlID0gb3V0cHV0PElGbGFnTW91c2U+KCk7XG4gIHJlYWRvbmx5IG91dFVwZGF0ZVdpZHRoID0gb3V0cHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgb3V0Q2FuY2VsID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgb3V0U2VsZWN0U2luZ2xlRGF0ZSA9IG91dHB1dDxJRW1pdFNpbmdsZURhdGU+KCk7XG4gIHJlYWRvbmx5IG91dFNlbGVjdERhdGVSYW5nZSA9IG91dHB1dDxJRW1pdERhdGVSYW5nZT4oKTtcbiAgcmVhZG9ubHkgb3V0Q2xpY2tSYW5nZSA9IG91dHB1dDxJRGF0ZVJhbmdlPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB1bnRyYWNrZWQodGhpcy5vbkFmdGVyVmlld0luaXQuYmluZCh0aGlzKSkpO1xuICB9XG4gIG5nT25Jbml0KCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkFmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0RGF0ZSgpKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXQoZGF5anMoKS5zdGFydE9mKCdkYXknKSk7XG4gICAgfVxuICAgIGlmICghdGhpcy5lbmREYXRlKCkpIHtcbiAgICAgIHRoaXMuZW5kRGF0ZS5zZXQoZGF5anMoKS5lbmRPZignZGF5JykpO1xuICAgIH1cbiAgICBjb25zdCBkYXRlUmFuZ2VTZWxlY3RlZCA9IHRoaXMuZGF0ZVJhbmdlU2VsZWN0ZWQoKTtcbiAgICBjb25zdCBjdXN0b21SYW5nZSA9IHtcbiAgICAgIGlkOiB0aGlzLmRhdGVPcHRpb25zKCk/LmN1c3RvbVJhbmdlTGFiZWwgfHwgJycsXG4gICAgICBsYWJlbDogdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsIHx8ICcnXG4gICAgfTtcblxuICAgIGlmIChkYXRlUmFuZ2VTZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFF1aWNrUmFuZ2Uuc2V0KGRhdGVSYW5nZVNlbGVjdGVkLnF1aWNrUmFuZ2VJZCA/IGRhdGVSYW5nZVNlbGVjdGVkLnF1aWNrUmFuZ2VJZCA6IGN1c3RvbVJhbmdlLmlkKTtcbiAgICAgIHRoaXMuY2hvc2VuUXVpY2tSYW5nZS5zZXQoZGF0ZVJhbmdlU2VsZWN0ZWQucXVpY2tSYW5nZUlkID8/IGN1c3RvbVJhbmdlLmlkKTtcblxuICAgICAgdGhpcy5zdGFydERhdGUuc2V0KGRhdGVSYW5nZVNlbGVjdGVkLnN0YXJ0RGF0ZSBhcyBkYXlqcy5EYXlqcyk7XG4gICAgICB0aGlzLmVuZERhdGUuc2V0KGRhdGVSYW5nZVNlbGVjdGVkLmVuZERhdGUgYXMgZGF5anMuRGF5anMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNUaW1lUGlja2VyKCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRRdWlja1JhbmdlLnNldChjdXN0b21SYW5nZS5pZCk7XG4gICAgICB0aGlzLmNob3NlblF1aWNrUmFuZ2Uuc2V0KGN1c3RvbVJhbmdlLmlkKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRRdWlja1JhbmdlKCkgPT09IHRoaXMuZGF0ZU9wdGlvbnMoKT8uY3VzdG9tUmFuZ2VMYWJlbCkge1xuICAgICAgdGhpcy5zaG93Q2FsVGFibGVJblJhbmdlcy5zZXQodHJ1ZSk7XG4gICAgfVxuICAgIHRoaXMucmVuZGVyUmFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVdpZHRoKCkge1xuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vdXRVcGRhdGVXaWR0aC5lbWl0KDEpO1xuICAgIH0pIGFzIHVua25vd24gYXMgbnVtYmVyO1xuXG4gICAgdGhpcy50aW1lb3V0cy51cGRhdGUoaWRzID0+IFsuLi5pZHMsIHRpbWVvdXRJZF0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJSYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMuaXNTaW5nbGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByYW5nZXNEZWZhdWx0ID0gZ2V0RGF0ZVJhbmdlRGVmYXVsdCgpO1xuICAgIGNvbnN0IHJhbmdlcyA9IHRoaXMuaXNTaW5nbGUoKSA/IHt9IDogdGhpcy5kYXRlT3B0aW9ucygpPy5yYW5nZXM7XG5cbiAgICB0aGlzLnF1aWNrUmFuZ2VzQXJyYXkuc2V0KFtdKTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIHJhbmdlcykge1xuICAgICAgY29uc3QgcmFuZ2VWYWx1ZSA9IHJhbmdlc0RlZmF1bHRba2V5XTtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gZGF5anMocmFuZ2VWYWx1ZVswXSk7XG4gICAgICBjb25zdCBlbmQgPSBkYXlqcyhyYW5nZVZhbHVlWzFdKTtcblxuICAgICAgdGhpcy5xdWlja1Jhbmdlc0FycmF5LnVwZGF0ZShjdXJyZW50ID0+IHtcbiAgICAgICAgY3VycmVudC5wdXNoKHtcbiAgICAgICAgICBpZDoga2V5LFxuICAgICAgICAgIGxhYmVsOiByYW5nZXNba2V5XSxcbiAgICAgICAgICB2YWx1ZXM6IFtzdGFydCwgZW5kXVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93Q3VzdG9tUmFuZ2VMYWJlbCgpICYmIHRoaXMuZGF0ZU9wdGlvbnMoKT8uY3VzdG9tUmFuZ2VMYWJlbCkge1xuICAgICAgdGhpcy5xdWlja1Jhbmdlc0FycmF5LnVwZGF0ZShjdXJyZW50ID0+IHtcbiAgICAgICAgY3VycmVudC5wdXNoKHtcbiAgICAgICAgICBpZDogdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsIHx8ICcnLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLmRhdGVPcHRpb25zKCk/LmN1c3RvbVJhbmdlTGFiZWwgfHwgJydcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXh0ZW5kUmFuZ2VzKCkpIHtcbiAgICAgIHRoaXMucXVpY2tSYW5nZXNBcnJheS51cGRhdGUoY3VycmVudCA9PiB7XG4gICAgICAgIGN1cnJlbnQudW5zaGlmdCguLi50aGlzLmV4dGVuZFJhbmdlcygpKTtcblxuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucXVpY2tSYW5nZXNBcnJheSgpLmxlbmd0aCkge1xuICAgICAgdGhpcy5zaG93Q2FsVGFibGVJblJhbmdlcy5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDYW5jZWwoKSB7XG4gICAgdGhpcy5vdXRDYW5jZWwuZW1pdCgnJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclBpY2tlckRhdGUoZXZlbnQ6IElFbWl0RGF0ZUNhbGVuZGFyKSB7XG4gICAgY29uc29sZS5sb2coJ2hhbmRsZXJQaWNrZXJEYXRlJywgZXZlbnQpO1xuXG4gICAgdGhpcy5jaG9zZW5TaW5nbGVEYXRlLnNldCh7XG4gICAgICBkaXNwbGF5TGFiZWw6IGV2ZW50LmRpc3BsYXlMYWJlbCxcbiAgICAgIGRhdGU6IGV2ZW50LnN0YXJ0RGF0ZSxcbiAgICAgIHZhbHVlczogZXZlbnQuZGV0YWlsRGF0ZVBpY2tlci5zdGFydCgpXG4gICAgfSk7XG4gICAgLy8gaWYgKCF0aGlzLmlzU2luZ2xlKCkgJiYgZXZlbnQuc3RhcnREYXRlICYmICFldmVudC5lbmREYXRlKSB7XG4gICAgLy8gICBjb25zdCBlbmRUaW1lID0gZXZlbnQuZGV0YWlsRGF0ZVBpY2tlci5lbmQoKTtcbiAgICAvLyAgIGV2ZW50LmVuZERhdGUgPSBldmVudC5zdGFydERhdGUuY2xvbmUoKS5ob3VyKGVuZFRpbWUuaG91ciBhcyBudW1iZXIpLm1pbnV0ZShlbmRUaW1lLm1pbnV0ZSBhcyBudW1iZXIpLnNlY29uZCg1OSk7XG4gICAgLy8gfVxuICAgIHRoaXMuY2hvc2VuRGF0ZVJhbmdlLnNldCh7XG4gICAgICBxdWlja1JhbmdlSWQ6IHRoaXMuY2hvc2VuUXVpY2tSYW5nZSgpLFxuICAgICAgLi4uZXZlbnRcbiAgICB9KTtcbiAgICBjb25zdCBjaG9zZW5TaW5nbGVEYXRlID0gdGhpcy5jaG9zZW5TaW5nbGVEYXRlKCk7XG4gICAgY29uc3QgY2hvc2VuRGF0ZVJhbmdlID0gdGhpcy5jaG9zZW5EYXRlUmFuZ2UoKTtcbiAgICBpZiAodGhpcy5pc1NpbmdsZSgpICYmIGNob3NlblNpbmdsZURhdGUpIHtcbiAgICAgIHRoaXMub3V0U2VsZWN0U2luZ2xlRGF0ZS5lbWl0KGNob3NlblNpbmdsZURhdGUpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghY2hvc2VuRGF0ZVJhbmdlIHx8ICghY2hvc2VuRGF0ZVJhbmdlLnN0YXJ0RGF0ZSAmJiAhY2hvc2VuRGF0ZVJhbmdlLmVuZERhdGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub3V0U2VsZWN0RGF0ZVJhbmdlLmVtaXQoY2hvc2VuRGF0ZVJhbmdlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2xpY2tSYW5nZShlOiBFdmVudCwgcmFuZ2U6IElEYXRlUmFuZ2UpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudXBkYXRlV2lkdGgoKTtcbiAgICB0aGlzLmNob3NlblF1aWNrUmFuZ2Uuc2V0KHJhbmdlLmlkKTtcblxuICAgIGlmIChyYW5nZS5pZCA9PT0gdGhpcy5kYXRlT3B0aW9ucygpPy5jdXN0b21SYW5nZUxhYmVsKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyU2hvd2luZy5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLnNob3dDYWxUYWJsZUluUmFuZ2VzLnNldCh0cnVlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5leHRlbmRSYW5nZXMoKSkge1xuICAgICAgY29uc3QgZmluZEV4dGVybmFsUmFuZ2UgPSB0aGlzLmV4dGVuZFJhbmdlcygpLmZpbmQoaXRlbSA9PiBpdGVtLmxhYmVsID09PSByYW5nZS5pZCk7XG5cbiAgICAgIGlmIChmaW5kRXh0ZXJuYWxSYW5nZSAmJiByYW5nZS5pZCA9PT0gZmluZEV4dGVybmFsUmFuZ2UubGFiZWwpIHtcbiAgICAgICAgaWYgKGZpbmRFeHRlcm5hbFJhbmdlLnZhbHVlcykge1xuICAgICAgICAgIHRoaXMub3V0U2VsZWN0RGF0ZVJhbmdlLmVtaXQoeyBxdWlja1JhbmdlSWQ6IGZpbmRFeHRlcm5hbFJhbmdlLmlkLCBkaXNwbGF5TGFiZWw6IGZpbmRFeHRlcm5hbFJhbmdlLmxhYmVsLCBzdGFydERhdGU6IGZpbmRFeHRlcm5hbFJhbmdlLnZhbHVlc1swXSwgZW5kRGF0ZTogZmluZEV4dGVybmFsUmFuZ2UudmFsdWVzWzFdIH0pO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3V0U2VsZWN0RGF0ZVJhbmdlLmVtaXQoeyBxdWlja1JhbmdlSWQ6IGZpbmRFeHRlcm5hbFJhbmdlLmlkLCBkaXNwbGF5TGFiZWw6IGZpbmRFeHRlcm5hbFJhbmdlLmxhYmVsLCBzdGFydERhdGU6IHVuZGVmaW5lZCwgZW5kRGF0ZTogdW5kZWZpbmVkIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZGF0ZXMgPSByYW5nZS52YWx1ZXMgPz8gW107XG5cbiAgICAvLyB0aGlzLnN0YXJ0RGF0ZS5zZXQoZGF0ZXNbMF0uY2xvbmUoKS5ob3VyKDApLm1pbnV0ZSgwKS5zZWNvbmQoMCkpO1xuICAgIC8vIHRoaXMuZW5kRGF0ZS5zZXQoZGF0ZXNbMV0uY2xvbmUoKS5ob3VyKDIzKS5taW51dGUoNTkpLnNlY29uZCg1OSkpO1xuICAgIC8vIHRoaXMudGltZVZhbHVlID0geyBob3VyOiAwLCB0b0hvdXI6IDAsIG1pbnV0ZTogMjMsIHRvTWludXRlOiA1OSB9O1xuICAgIC8vIHRoaXMudGltZXBpY2tlclZhcmlhYmxlcy5sZWZ0LnNlbGVjdGVkSG91ciA9IDA7XG4gICAgLy8gdGhpcy50aW1lcGlja2VyVmFyaWFibGVzLmxlZnQuc2VsZWN0ZWRNaW51dGUgPSAwO1xuICAgIC8vIHRoaXMudGltZXBpY2tlclZhcmlhYmxlcy5yaWdodC5zZWxlY3RlZEhvdXIgPSAyMztcbiAgICAvLyB0aGlzLnRpbWVwaWNrZXJWYXJpYWJsZXMucmlnaHQuc2VsZWN0ZWRNaW51dGUgPSA1OTtcblxuICAgIC8vIHRoaXMuc2hvd1JhbmdlTGFiZWxPbklucHV0ICYmIGxhYmVsICE9PSB0aGlzLmxvY2FsZURheS5jdXN0b21SYW5nZUxhYmVsID8gdGhpcy5jaG9zZW5MYWJlbCA9IGxhYmVsIDogdGhpcy5jYWxjdWxhdGVDaG9zZW5MYWJlbCgpO1xuXG4gICAgLy8gLy8gdGhpcy5hdXRvQXBwbHkuc2V0KHRydWUpO1xuICAgIC8vIGlmICghdGhpcy5oYXNUaW1lUGlja2VyKCkpIHtcbiAgICAvLyAgIGlmKHRoaXMuc3RhcnREYXRlKCkpIHtcbiAgICAvLyAgICAgdGhpcy5zdGFydERhdGUuc2V0KHRoaXMuc3RhcnREYXRlKCk/LnN0YXJ0T2YoJ2RheScpKTtcbiAgICAvLyAgIH1cbiAgICAvLyAgIGlmKHRoaXMuZW5kRGF0ZSgpKSB7XG4gICAgLy8gICAgIHRoaXMuZW5kRGF0ZS5zZXQodGhpcy5lbmREYXRlKCk/LmVuZE9mKCdkYXknKSk7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICAgIC8vIGlmICghdGhpcy5hbHdheXNTaG93Q2FsZW5kYXJzKCkpIHtcbiAgICAvLyAgIHRoaXMuY2FsZW5kYXJTaG93aW5nLnNldChmYWxzZSk7XG4gICAgLy8gfVxuICAgIC8vIHRoaXMub3V0Q2xpY2tSYW5nZS5lbWl0KHJhbmdlKTtcblxuICAgIGlmICghdGhpcy5rZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlKCkgfHwgIXRoaXMuYWx3YXlzU2hvd0NhbGVuZGFycygpKSB7XG4gICAgICB0aGlzLm91dFNlbGVjdERhdGVSYW5nZS5lbWl0KHsgcXVpY2tSYW5nZUlkOiByYW5nZS5pZCwgZGlzcGxheUxhYmVsOiByYW5nZS5sYWJlbCwgc3RhcnREYXRlOiByYW5nZS52YWx1ZXM/LlswXSwgZW5kRGF0ZTogcmFuZ2UudmFsdWVzPy5bMV0gfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gaWYgKHRoaXMudGltZVBpY2tlcikge1xuICAgIC8vICAgdGhpcy5yZW5kZXJUaW1lUGlja2VyKFNpZGVFbnVtLmxlZnQpO1xuICAgIC8vICAgdGhpcy5yZW5kZXJUaW1lUGlja2VyKFNpZGVFbnVtLnJpZ2h0KTtcbiAgICAvLyB9XG4gICAgLy8gaWYgKHRoaXMuZ2V0TWF4RGF0ZSgpICYmIHRoaXMuZ2V0TWF4RGF0ZSgpLmlzU2FtZShkYXRlc1swXSwgJ21vbnRoJykpIHtcbiAgICAvLyAgIHRoaXMucmlnaHRDYWxlbmRhci5tb250aCA9IHRoaXMucmlnaHRDYWxlbmRhci5tb250aCAmJiB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGgubW9udGgoZGF0ZXNbMF0ubW9udGgoKSk7XG4gICAgLy8gICB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGggPSB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoLnllYXIoZGF0ZXNbMF0ueWVhcigpKTtcbiAgICAvLyAgIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoID0gdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGgubW9udGgoZGF0ZXNbMF0ubW9udGgoKSAtIDEpO1xuICAgIC8vICAgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggPSB0aGlzLmxlZnRDYWxlbmRhci5tb250aCAmJiB0aGlzLmxlZnRDYWxlbmRhci5tb250aC55ZWFyKGRhdGVzWzFdLnllYXIoKSk7XG5cbiAgICAvLyAgIHJldHVybiB0aGlzLnVwZGF0ZUNhbGVuZGFycygpO1xuICAgIC8vIH1cbiAgICAvLyB0aGlzLmxlZnRDYWxlbmRhci5tb250aCA9IHRoaXMubGVmdENhbGVuZGFyLm1vbnRoICYmIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoLm1vbnRoKGRhdGVzWzBdLm1vbnRoKCkpO1xuICAgIC8vIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoID0gdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGggJiYgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGgueWVhcihkYXRlc1swXS55ZWFyKCkpO1xuICAgIC8vIGNvbnN0IG5leHRNb250aCA9IGRhdGVzWzBdLmNsb25lKCkuYWRkKDEsICdtb250aCcpO1xuXG4gICAgLy8gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoID0gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoICYmIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC5tb250aChuZXh0TW9udGgubW9udGgoKSk7XG4gICAgLy8gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoID0gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoICYmIHRoaXMucmlnaHRDYWxlbmRhci5tb250aC55ZWFyKG5leHRNb250aC55ZWFyKCkpO1xuICAgIC8vIHRoaXMudXBkYXRlQ2FsZW5kYXJzKCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNsaWNrQ2FuY2VsKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIC8vIHRoaXMuc3RhcnREYXRlLnNldChkYXlqcygwKSk7XG4gICAgLy8gdGhpcy5lbmREYXRlLnNldChkYXlqcygwKSk7XG4gICAgdGhpcy5vdXRDYW5jZWwuZW1pdCgnJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZUZsYWdNb3VzZShmbGFnTW91c2U6IElGbGFnTW91c2UpIHtcbiAgICB0aGlzLm91dENoYW5nU3RhZ2VGbGFnTW91c2UuZW1pdChmbGFnTW91c2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbnNDb250cm9sKGV2ZW50OiBJQ2FsZW5kYXJGdW5jdGlvbkNvbnRyb2xFdmVudCkge1xuICAgIHRoaXMuY2FsZW5kYXJGdW5jdGlvbkNvbnRyb2xFdmVudC5zZXQoZXZlbnQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy50aW1lb3V0cygpLmZvckVhY2goaXRlbSA9PiBjbGVhclRpbWVvdXQoaXRlbSkpO1xuICAgIC8vIHRoaXMub25EZXN0cm95Lm5leHQoKTtcbiAgICAvLyB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2ICNwaWNrZXJDb250YWluZXJcbiAgY2xhc3M9XCJsaWJzLXVpLWNvbXBvbmVudC1jdXN0b21fcmFuZ2VzIGZsZXggcm91bmRlZC1bNHB4XSBiZy1bI2ZmZmZmZl0gei1bMTAwMF0gb3ZlcmZsb3ctW2hpZGRlbl0gcmVsYXRpdmUgaW5saW5lXCJcbiAgW2NsYXNzLmZsZXgtcm93LXJldmVyc2VdPVwicG9zaXRpb25RdWlja1JhbmdlcygpID09PSAncmlnaHQnXCI+XG4gIEBpZiAoIWlzU2luZ2xlKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1jb21wb25lbnQtY3VzdG9tX3Jhbmdlcy1yYW5nZXMge3sgY2xhc3NJbmNsdWRlKCkgfHwgJycgfX1cIlxuICAgICAgW2NsYXNzLmJvcmRlci1sLVsjZTZlOGVkXV09XCJwb3NpdGlvblF1aWNrUmFuZ2VzKCkgPT09ICdyaWdodCcgJiYgc2hvd0NhbFRhYmxlSW5SYW5nZXMoKVwiXG4gICAgICBbY2xhc3MuYm9yZGVyLWxdPVwicG9zaXRpb25RdWlja1JhbmdlcygpID09PSAncmlnaHQnICYmIHNob3dDYWxUYWJsZUluUmFuZ2VzKClcIlxuICAgICAgW2NsYXNzLmJvcmRlci1yLVsjZTZlOGVkXV09XCJwb3NpdGlvblF1aWNrUmFuZ2VzKCkgPT09ICdsZWZ0JyAmJiBzaG93Q2FsVGFibGVJblJhbmdlcygpXCJcbiAgICAgIFtjbGFzcy5ib3JkZXItcl09XCJwb3NpdGlvblF1aWNrUmFuZ2VzKCkgPT09ICdsZWZ0JyAmJiBzaG93Q2FsVGFibGVJblJhbmdlcygpXCJcbiAgICAgIFtjbGFzcy4hbWluLWgtWzI2MHB4XV09XCJzaG93Q2FsVGFibGVJblJhbmdlcygpICYmICFpc1NpbmdsZSgpXCJcbiAgICAgIFtjbGFzcy4hbWluLWgtWzMwMHB4XV09XCJoYXNUaW1lUGlja2VyKCkgJiYgIWlzU2luZ2xlKClcIlxuICAgICAgW2NsYXNzLiF3LVsxNjBweF1dPVwiIXdpZHRoQnlQYXJlbnQoKVwiXG4gICAgICBbY2xhc3MuIXctZnVsbF09XCJ3aWR0aEJ5UGFyZW50KClcIj5cbiAgICAgIEBmb3IgKHJhbmdlIG9mIHF1aWNrUmFuZ2VzQXJyYXkoKTsgdHJhY2sgcmFuZ2UuaWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGhvdmVyOmJnLVt2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTMpXSBjdXJzb3ItcG9pbnRlciBweC1bMTZweF0gcHktWzhweF1cIlxuICAgICAgICAgIFtjbGFzcy5saWJzLXVpLXNlbGVjdGVkLXJhbmdlXT1cInJhbmdlLmlkID09PSBjaG9zZW5RdWlja1JhbmdlKCkgJiYgc2hvd0N1c3RvbVJhbmdlTGFiZWwoKVwiXG4gICAgICAgICAgW2NsYXNzLmJnLVt2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTMpXV09XCJyYW5nZS5pZCA9PT0gY2hvc2VuUXVpY2tSYW5nZSgpIHx8IHJhbmdlLmlkID09PSBzZWxlY3RlZFF1aWNrUmFuZ2UoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJDbGlja1JhbmdlKCRldmVudCwgcmFuZ2UpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNXIgZmxleCB0ZXh0LVsjMzMzMzMzXSBtaW4tdy0wIHctZnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckRpcmVjdGl2ZVxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIFtjb25maWddPVwie21heFdpZHRoOjE2MCxkaXJlY3Rpb246J3RvcCcsekluZGV4Oih6SW5kZXgoKSB8fDEwMDApICsgMX1cIlxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInJhbmdlLmxhYmVsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZXJDbGlja1JhbmdlKCRldmVudCwgcmFuZ2UpXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aSBjbGFzcz1cInRleHQtWzEycHhdIG1sLVsxNnB4XVwiXG4gICAgICAgICAgICBbY2xhc3MubGlicy11aS1pY29uLWNoZWNrXT1cInJhbmdlLmlkID09PSBzZWxlY3RlZFF1aWNrUmFuZ2UoKVwiXG4gICAgICAgICAgICBbY2xhc3MudGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1kZWZhdWx0KV1dPVwicmFuZ2UuaWQgPT09IHNlbGVjdGVkUXVpY2tSYW5nZSgpXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuICBAaWYgKHNob3dDYWxUYWJsZUluUmFuZ2VzKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwibS1bMTZweF0gdy1mdWxsXCI+XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlci1jdXN0b21fcmFuZ2VzLWNhbGVuZGFyIFtpc1NpbmdsZV09XCJpc1NpbmdsZSgpXCJcbiAgICAgICAgW2F1dG9BcHBseV09XCJhdXRvQXBwbHkoKVwiXG4gICAgICAgIFt6SW5kZXhdPVwiekluZGV4KClcIlxuICAgICAgICBbZmxhZ01vdXNlXT1cImZsYWdNb3VzZSgpXCJcbiAgICAgICAgW2RhdGVPcHRpb25zXT1cImRhdGVPcHRpb25zKClcIlxuICAgICAgICBbaGFzVGltZVBpY2tlcl09XCJoYXNUaW1lUGlja2VyKClcIlxuICAgICAgICBbcXVpY2tSYW5nZXNBcnJheV09XCJxdWlja1Jhbmdlc0FycmF5KClcIlxuICAgICAgICBbc3RhcnREYXRlXT1cInN0YXJ0RGF0ZSgpXCJcbiAgICAgICAgW2VuZERhdGVdPVwiZW5kRGF0ZSgpXCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCIndy1mdWxsJ1wiXG4gICAgICAgIChvdXRDYW5jZWwpPVwiaGFuZGxlckNhbmNlbCgpXCJcbiAgICAgICAgKG91dFBpY2tlckRhdGUpPVwiaGFuZGxlclBpY2tlckRhdGUoJGV2ZW50KVwiXG4gICAgICAgIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJGdW5jdGlvbnNDb250cm9sKCRldmVudClcIlxuICAgICAgICAob3V0Q2hhbmdTdGFnZUZsYWdNb3VzZSk9XCJoYW5kbGVyQ2hhbmdlRmxhZ01vdXNlKCRldmVudClcIiAvPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,135 @@
1
+ import { signal } from "@angular/core";
2
+ import { UtilsHttpParamsRequestInstance, UtilsCache, UtilsLanguageConstants } from "@libs-ui/utils";
3
+ import { returnDetailObject, returnListObject } from "@libs-ui/services-http-request";
4
+ const getMonthsDefault = () => {
5
+ return [
6
+ {
7
+ id: 1,
8
+ label: 'i18n_january',
9
+ maxDays: 31
10
+ },
11
+ {
12
+ id: 2,
13
+ label: 'i18n_february',
14
+ maxDays: 29
15
+ },
16
+ {
17
+ id: 3,
18
+ label: 'i18n_march',
19
+ maxDays: 31
20
+ },
21
+ {
22
+ id: 4,
23
+ label: 'i18n_april',
24
+ maxDays: 30
25
+ },
26
+ {
27
+ id: 5,
28
+ label: 'i18n_may',
29
+ maxDays: 31
30
+ },
31
+ {
32
+ id: 6,
33
+ label: 'i18n_june',
34
+ maxDays: 30
35
+ },
36
+ {
37
+ id: 7,
38
+ label: 'i18n_july',
39
+ maxDays: 31
40
+ },
41
+ {
42
+ id: 8,
43
+ label: 'i18n_august',
44
+ maxDays: 31
45
+ },
46
+ {
47
+ id: 9,
48
+ label: 'i18n_september',
49
+ maxDays: 30
50
+ },
51
+ {
52
+ id: 10,
53
+ label: 'i18n_october',
54
+ maxDays: 31
55
+ },
56
+ {
57
+ id: 11,
58
+ label: 'i18n_november',
59
+ maxDays: 30
60
+ },
61
+ {
62
+ id: 12,
63
+ label: 'i18n_december',
64
+ maxDays: 31
65
+ }
66
+ ];
67
+ };
68
+ export const getMonthsListConfig = (translate) => {
69
+ return {
70
+ type: 'text',
71
+ httpRequestData: signal({
72
+ serviceOther: returnListObject(getMonthsDefault()),
73
+ functionName: 'list',
74
+ argumentsValue: []
75
+ }),
76
+ configTemplateText: signal({
77
+ fieldKey: 'id',
78
+ autoScrollToItemSelected: true,
79
+ getValue: (item) => {
80
+ const label = translate.instant(item.label || ' ', { year: '&#32;' });
81
+ return label.substring(0, UtilsCache.getLang() === UtilsLanguageConstants.VI ? label.length : 3);
82
+ },
83
+ getClassIncludePopover: () => 'libs-ui-font-h5r'
84
+ })
85
+ };
86
+ };
87
+ export const getMonthsDetailById = () => {
88
+ return {
89
+ serviceOther: returnDetailObject(UtilsHttpParamsRequestInstance(), getMonthsDefault()),
90
+ functionName: 'detailByData',
91
+ argumentsValue: [],
92
+ guideAutoUpdateArgumentsValue: {
93
+ paging: {},
94
+ detailById: {
95
+ fieldUpdate: '[0]',
96
+ fieldGetValue: '',
97
+ subFieldUpdate: 'keys'
98
+ }
99
+ }
100
+ };
101
+ };
102
+ export const getYearsListConfig = (listOfYears = []) => {
103
+ return {
104
+ type: 'text',
105
+ httpRequestData: signal({
106
+ serviceOther: returnListObject(listOfYears),
107
+ functionName: 'list',
108
+ argumentsValue: []
109
+ }),
110
+ configTemplateText: signal({
111
+ fieldKey: 'id',
112
+ autoScrollToItemSelected: true,
113
+ getValue: (item) => {
114
+ return item.label;
115
+ },
116
+ getClassIncludeTooltip: () => 'libs-ui-font-h5r'
117
+ })
118
+ };
119
+ };
120
+ export const getYearsDetailById = (listOfYears = []) => {
121
+ return {
122
+ serviceOther: returnDetailObject(UtilsHttpParamsRequestInstance(), listOfYears),
123
+ functionName: 'detailByData',
124
+ argumentsValue: [],
125
+ guideAutoUpdateArgumentsValue: {
126
+ paging: {},
127
+ detailById: {
128
+ fieldUpdate: '[0]',
129
+ fieldGetValue: '',
130
+ subFieldUpdate: 'keys'
131
+ }
132
+ }
133
+ };
134
+ };
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL3BpY2tlci9zcmMvZGVmaW5lcy9jYWxlbmRhci5kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEcsT0FBTyxFQUFzQixrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTFHLE1BQU0sZ0JBQWdCLEdBQUcsR0FBOEIsRUFBRTtJQUN2RCxPQUFPO1FBQ0w7WUFDRSxFQUFFLEVBQUUsQ0FBQztZQUNMLEtBQUssRUFBRSxjQUFjO1lBQ3JCLE9BQU8sRUFBRSxFQUFFO1NBQ1o7UUFDRDtZQUNFLEVBQUUsRUFBRSxDQUFDO1lBQ0wsS0FBSyxFQUFFLGVBQWU7WUFDdEIsT0FBTyxFQUFFLEVBQUU7U0FDWjtRQUNEO1lBQ0UsRUFBRSxFQUFFLENBQUM7WUFDTCxLQUFLLEVBQUUsWUFBWTtZQUNuQixPQUFPLEVBQUUsRUFBRTtTQUNaO1FBQ0Q7WUFDRSxFQUFFLEVBQUUsQ0FBQztZQUNMLEtBQUssRUFBRSxZQUFZO1lBQ25CLE9BQU8sRUFBRSxFQUFFO1NBQ1o7UUFDRDtZQUNFLEVBQUUsRUFBRSxDQUFDO1lBQ0wsS0FBSyxFQUFFLFVBQVU7WUFDakIsT0FBTyxFQUFFLEVBQUU7U0FDWjtRQUNEO1lBQ0UsRUFBRSxFQUFFLENBQUM7WUFDTCxLQUFLLEVBQUUsV0FBVztZQUNsQixPQUFPLEVBQUUsRUFBRTtTQUNaO1FBQ0Q7WUFDRSxFQUFFLEVBQUUsQ0FBQztZQUNMLEtBQUssRUFBRSxXQUFXO1lBQ2xCLE9BQU8sRUFBRSxFQUFFO1NBQ1o7UUFDRDtZQUNFLEVB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QyxjQUFvRCxFQUFFLEVBQXNCLEVBQUU7SUFDL0csT0FBTztRQUNMLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyw4QkFBOEIsRUFBRSxFQUFFLFdBQVcsQ0FBQztRQUMvRSxZQUFZLEVBQUUsY0FBYztRQUM1QixjQUFjLEVBQUUsRUFBRTtRQUNsQiw2QkFBNkIsRUFBRTtZQUM3QixNQUFNLEVBQUUsRUFBRTtZQUNWLFVBQVUsRUFBRTtnQkFDVixXQUFXLEVBQUUsS0FBSztnQkFDbEIsYUFBYSxFQUFFLEVBQUU7Z0JBQ2pCLGNBQWMsRUFBRSxNQUFNO2FBQ3ZCO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxpc3RDb25maWdJdGVtIH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtbGlzdFwiO1xuaW1wb3J0IHsgSUNhbGVuZGFyTW9udGhJdGVtIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvY2FsZW5kYXItdmFyaWFibGVzLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFV0aWxzSHR0cFBhcmFtc1JlcXVlc3RJbnN0YW5jZSwgVXRpbHNDYWNoZSwgVXRpbHNMYW5ndWFnZUNvbnN0YW50cyB9IGZyb20gXCJAbGlicy11aS91dGlsc1wiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBJSHR0cFJlcXVlc3RDb25maWcsIHJldHVybkRldGFpbE9iamVjdCwgcmV0dXJuTGlzdE9iamVjdCB9IGZyb20gXCJAbGlicy11aS9zZXJ2aWNlcy1odHRwLXJlcXVlc3RcIjtcblxuY29uc3QgZ2V0TW9udGhzRGVmYXVsdCA9ICgpOiBBcnJheTxJQ2FsZW5kYXJNb250aEl0ZW0+ID0+IHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBpZDogMSxcbiAgICAgIGxhYmVsOiAnaTE4bl9qYW51YXJ5JyxcbiAgICAgIG1heERheXM6IDMxXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMixcbiAgICAgIGxhYmVsOiAnaTE4bl9mZWJydWFyeScsXG4gICAgICBtYXhEYXlzOiAyOVxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDMsXG4gICAgICBsYWJlbDogJ2kxOG5fbWFyY2gnLFxuICAgICAgbWF4RGF5czogMzFcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA0LFxuICAgICAgbGFiZWw6ICdpMThuX2FwcmlsJyxcbiAgICAgIG1heERheXM6IDMwXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogNSxcbiAgICAgIGxhYmVsOiAnaTE4bl9tYXknLFxuICAgICAgbWF4RGF5czogMzFcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA2LFxuICAgICAgbGFiZWw6ICdpMThuX2p1bmUnLFxuICAgICAgbWF4RGF5czogMzBcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA3LFxuICAgICAgbGFiZWw6ICdpMThuX2p1bHknLFxuICAgICAgbWF4RGF5czogMzFcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiA4LFxuICAgICAgbGFiZWw6ICdpMThuX2F1Z3VzdCcsXG4gICAgICBtYXhEYXlzOiAzMVxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDksXG4gICAgICBsYWJlbDogJ2kxOG5fc2VwdGVtYmVyJyxcbiAgICAgIG1heERheXM6IDMwXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMTAsXG4gICAgICBsYWJlbDogJ2kxOG5fb2N0b2JlcicsXG4gICAgICBtYXhEYXlzOiAzMVxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IDExLFxuICAgICAgbGFiZWw6ICdpMThuX25vdmVtYmVyJyxcbiAgICAgIG1heERheXM6IDMwXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogMTIsXG4gICAgICBsYWJlbDogJ2kxOG5fZGVjZW1iZXInLFxuICAgICAgbWF4RGF5czogMzFcbiAgICB9XG4gIF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TW9udGhzTGlzdENvbmZpZyA9ICh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpOiBJTGlzdENvbmZpZ0l0ZW0gPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBodHRwUmVxdWVzdERhdGE6IHNpZ25hbCh7XG4gICAgICBzZXJ2aWNlT3RoZXI6IHJldHVybkxpc3RPYmplY3QoZ2V0TW9udGhzRGVmYXVsdCgpKSxcbiAgICAgIGZ1bmN0aW9uTmFtZTogJ2xpc3QnLFxuICAgICAgYXJndW1lbnRzVmFsdWU6IFtdXG4gICAgfSksXG4gICAgY29uZmlnVGVtcGxhdGVUZXh0OiBzaWduYWwoe1xuICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICBhdXRvU2Nyb2xsVG9JdGVtU2VsZWN0ZWQ6IHRydWUsXG4gICAgICBnZXRWYWx1ZTogKGl0ZW06IHsgaWQ6IHN0cmluZywgbGFiZWw6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gdHJhbnNsYXRlLmluc3RhbnQoaXRlbS5sYWJlbCB8fCAnICcsIHsgeWVhcjogJyYjMzI7JyB9KTtcblxuICAgICAgICByZXR1cm4gbGFiZWwuc3Vic3RyaW5nKDAsIFV0aWxzQ2FjaGUuZ2V0TGFuZygpID09PSBVdGlsc0xhbmd1YWdlQ29uc3RhbnRzLlZJID8gbGFiZWwubGVuZ3RoIDogMyk7XG4gICAgICB9LFxuICAgICAgZ2V0Q2xhc3NJbmNsdWRlUG9wb3ZlcjogKCkgPT4gJ2xpYnMtdWktZm9udC1oNXInXG4gICAgfSlcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNb250aHNEZXRhaWxCeUlkID0gKCk6IElIdHRwUmVxdWVzdENvbmZpZyA9PiB7XG4gIHJldHVybiB7XG4gICAgc2VydmljZU90aGVyOiByZXR1cm5EZXRhaWxPYmplY3QoVXRpbHNIdHRwUGFyYW1zUmVxdWVzdEluc3RhbmNlKCksIGdldE1vbnRoc0RlZmF1bHQoKSksXG4gICAgZnVuY3Rpb25OYW1lOiAnZGV0YWlsQnlEYXRhJyxcbiAgICBhcmd1bWVudHNWYWx1ZTogW10sXG4gICAgZ3VpZGVBdXRvVXBkYXRlQXJndW1lbnRzVmFsdWU6IHtcbiAgICAgIHBhZ2luZzoge30sXG4gICAgICBkZXRhaWxCeUlkOiB7XG4gICAgICAgIGZpZWxkVXBkYXRlOiAnWzBdJyxcbiAgICAgICAgZmllbGRHZXRWYWx1ZTogJycsXG4gICAgICAgIHN1YkZpZWxkVXBkYXRlOiAna2V5cydcbiAgICAgIH1cbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0WWVhcnNMaXN0Q29uZmlnID0gKGxpc3RPZlllYXJzOiBBcnJheTx7IGlkOiBudW1iZXIsIGxhYmVsOiBzdHJpbmcgfT4gPSBbXSk6IElMaXN0Q29uZmlnSXRlbSA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ3RleHQnLFxuICAgIGh0dHBSZXF1ZXN0RGF0YTogc2lnbmFsKHtcbiAgICAgIHNlcnZpY2VPdGhlcjogcmV0dXJuTGlzdE9iamVjdChsaXN0T2ZZZWFycyksXG4gICAgICBmdW5jdGlvbk5hbWU6ICdsaXN0JyxcbiAgICAgIGFyZ3VtZW50c1ZhbHVlOiBbXVxuICAgIH0pLFxuICAgIGNvbmZpZ1RlbXBsYXRlVGV4dDogc2lnbmFsKHtcbiAgICAgIGZpZWxkS2V5OiAnaWQnLFxuICAgICAgYXV0b1Njcm9sbFRvSXRlbVNlbGVjdGVkOiB0cnVlLFxuICAgICAgZ2V0VmFsdWU6IChpdGVtOiB7IGlkOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICByZXR1cm4gaXRlbS5sYWJlbDtcbiAgICAgIH0sXG4gICAgICBnZXRDbGFzc0luY2x1ZGVUb29sdGlwOiAoKSA9PiAnbGlicy11aS1mb250LWg1cidcbiAgICB9KVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFllYXJzRGV0YWlsQnlJZCA9IChsaXN0T2ZZZWFyczogQXJyYXk8eyBpZDogbnVtYmVyLCBsYWJlbDogc3RyaW5nIH0+ID0gW10pOiBJSHR0cFJlcXVlc3RDb25maWcgPT4ge1xuICByZXR1cm4ge1xuICAgIHNlcnZpY2VPdGhlcjogcmV0dXJuRGV0YWlsT2JqZWN0KFV0aWxzSHR0cFBhcmFtc1JlcXVlc3RJbnN0YW5jZSgpLCBsaXN0T2ZZZWFycyksXG4gICAgZnVuY3Rpb25OYW1lOiAnZGV0YWlsQnlEYXRhJyxcbiAgICBhcmd1bWVudHNWYWx1ZTogW10sXG4gICAgZ3VpZGVBdXRvVXBkYXRlQXJndW1lbnRzVmFsdWU6IHtcbiAgICAgIHBhZ2luZzoge30sXG4gICAgICBkZXRhaWxCeUlkOiB7XG4gICAgICAgIGZpZWxkVXBkYXRlOiAnWzBdJyxcbiAgICAgICAgZmllbGRHZXRWYWx1ZTogJycsXG4gICAgICAgIHN1YkZpZWxkVXBkYXRlOiAna2V5cydcbiAgICAgIH1cbiAgICB9XG4gIH07XG59O1xuIl19
@@ -0,0 +1,55 @@
1
+ import { get, UtilsCache, UtilsLanguageConstants } from "@libs-ui/utils";
2
+ import dayjs from 'dayjs';
3
+ export const getDateOptions = () => {
4
+ const dateOptions = {
5
+ [UtilsLanguageConstants.VI]: {
6
+ "monthNames": ["Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12"],
7
+ "ranges": { "today": "Hôm nay", "yesterday": "Hôm qua", "_7days_ago": "7 ngày trước", "_30days_ago": "30 ngày trước", "this_month": "Tháng này", "last_month": "Tháng trước", "_3months_ago": "90 ngày trước" },
8
+ "daysOfWeek": ["T2", "T3", "T4", "T5", "T6", "T7", "CN"],
9
+ "applyLabel": "Lưu",
10
+ "cancelLabel": "Huỷ bỏ",
11
+ "fromLabel": "Từ",
12
+ "toLabel": "Đến",
13
+ "customRangeLabel": "Tùy Chỉnh"
14
+ },
15
+ [UtilsLanguageConstants.EN]: {
16
+ "monthNames": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
17
+ "ranges": { "today": "Today", "yesterday": "Yesterday", "_7days_ago": "7 days ago", "_30days_ago": "30 days ago", "this_month": "This month", "last_month": "Last month", "_3months_ago": "90 days ago" },
18
+ "daysOfWeek": ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
19
+ "applyLabel": "Apply",
20
+ "cancelLabel": "Cancel",
21
+ "fromLabel": "From",
22
+ "toLabel": "To",
23
+ "customRangeLabel": "Customize"
24
+ }
25
+ };
26
+ return get(dateOptions, UtilsCache.getLang());
27
+ };
28
+ export const defaultLocaleConfig = () => {
29
+ return {
30
+ direction: 'ltr',
31
+ separator: ' - ',
32
+ weekLabel: 'W',
33
+ applyLabel: 'Apply',
34
+ cancelLabel: 'Cancel',
35
+ clearLabel: 'Clear',
36
+ customRangeLabel: 'customRangeLabel',
37
+ daysOfWeek: [],
38
+ monthNames: [],
39
+ firstDay: 1
40
+ };
41
+ };
42
+ export const getDateRangeDefault = () => {
43
+ 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)],
51
+ };
52
+ };
53
+ export const DEFAULT_MIN_YEAR = 1945;
54
+ export const DEFAULT_MAX_YEAR = 2100;
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1vcHRpb25zLmRlZmluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9waWNrZXIvc3JjL2RlZmluZXMvZGF0ZS1vcHRpb25zLmRlZmluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBdUIsRUFBRTtJQUNyRCxNQUFNLFdBQVcsR0FBRztRQUNsQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQ3JKLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUU7WUFDL00sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hELFlBQVksRUFBRSxLQUFLO1lBQ25CLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLGtCQUFrQixFQUFFLFdBQVc7U0FDaEM7UUFDRCxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1lBQ2xHLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUU7WUFDek0sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hELFlBQVksRUFBRSxPQUFPO1lBQ3JCLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1lBQ2Ysa0JBQWtCLEVBQUUsV0FBVztTQUNoQztLQUNGLENBQUM7SUFFRixPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFO0lBQ3RDLE9BQU87UUFDTCxTQUFTLEVBQUUsS0FBSztRQUNoQixTQUFTLEVBQUUsS0FBSztRQUNoQixTQUFTLEVBQUUsR0FBRztRQUNkLFVBQVUsRUFBRSxPQUFPO1FBQ25CLFdBQVcsRUFBRSxRQUFRO1FBQ3JCLFVBQVUsRUFBRSxPQUFPO1FBQ25CLGdCQUFnQixFQUFFLGtCQUFrQjtRQUNwQyxVQUFVLEVBQUUsRUFBRTtRQUNkLFVBQVUsRUFBRSxFQUFFO1FBQ2QsUUFBUSxFQUFFLENBQUM7S0FDWixDQUFBO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBMEMsRUFBRTtJQUM3RSxPQUFPO1FBQ0wsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0ksVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUgsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUgsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNoSSxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldCwgVXRpbHNDYWNoZSwgVXRpbHNMYW5ndWFnZUNvbnN0YW50cyB9IGZyb20gXCJAbGlicy11aS91dGlsc1wiO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uQ29uZmlnIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcGlja2VyLmludGVyZmFjZVwiO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcblxuZXhwb3J0IGNvbnN0IGdldERhdGVPcHRpb25zID0gKCk6IExvY2FsaXphdGlvbkNvbmZpZyA9PiB7XG4gIGNvbnN0IGRhdGVPcHRpb25zID0ge1xuICAgIFtVdGlsc0xhbmd1YWdlQ29uc3RhbnRzLlZJXToge1xuICAgICAgXCJtb250aE5hbWVzXCI6IFtcIlRow6FuZyAxXCIsIFwiVGjDoW5nIDJcIiwgXCJUaMOhbmcgM1wiLCBcIlRow6FuZyA0XCIsIFwiVGjDoW5nIDVcIiwgXCJUaMOhbmcgNlwiLCBcIlRow6FuZyA3XCIsIFwiVGjDoW5nIDhcIiwgXCJUaMOhbmcgOVwiLCBcIlRow6FuZyAxMFwiLCBcIlRow6FuZyAxMVwiLCBcIlRow6FuZyAxMlwiXSxcbiAgICAgIFwicmFuZ2VzXCI6IHsgXCJ0b2RheVwiOiBcIkjDtG0gbmF5XCIsIFwieWVzdGVyZGF5XCI6IFwiSMO0bSBxdWFcIiwgXCJfN2RheXNfYWdvXCI6IFwiNyBuZ8OgeSB0csaw4bubY1wiLCBcIl8zMGRheXNfYWdvXCI6IFwiMzAgbmfDoHkgdHLGsOG7m2NcIiwgXCJ0aGlzX21vbnRoXCI6IFwiVGjDoW5nIG7DoHlcIiwgXCJsYXN0X21vbnRoXCI6IFwiVGjDoW5nIHRyxrDhu5tjXCIsIFwiXzNtb250aHNfYWdvXCI6IFwiOTAgbmfDoHkgdHLGsOG7m2NcIiB9LFxuICAgICAgXCJkYXlzT2ZXZWVrXCI6IFtcIlQyXCIsIFwiVDNcIiwgXCJUNFwiLCBcIlQ1XCIsIFwiVDZcIiwgXCJUN1wiLCBcIkNOXCJdLFxuICAgICAgXCJhcHBseUxhYmVsXCI6IFwiTMawdVwiLFxuICAgICAgXCJjYW5jZWxMYWJlbFwiOiBcIkh14bu3IGLhu49cIixcbiAgICAgIFwiZnJvbUxhYmVsXCI6IFwiVOG7q1wiLFxuICAgICAgXCJ0b0xhYmVsXCI6IFwixJDhur9uXCIsXG4gICAgICBcImN1c3RvbVJhbmdlTGFiZWxcIjogXCJUw7l5IENo4buJbmhcIlxuICAgIH0sXG4gICAgW1V0aWxzTGFuZ3VhZ2VDb25zdGFudHMuRU5dOiB7XG4gICAgICBcIm1vbnRoTmFtZXNcIjogW1wiSmFuXCIsIFwiRmViXCIsIFwiTWFyXCIsIFwiQXByXCIsIFwiTWF5XCIsIFwiSnVuXCIsIFwiSnVsXCIsIFwiQXVnXCIsIFwiU2VwXCIsIFwiT2N0XCIsIFwiTm92XCIsIFwiRGVjXCJdLFxuICAgICAgXCJyYW5nZXNcIjogeyBcInRvZGF5XCI6IFwiVG9kYXlcIiwgXCJ5ZXN0ZXJkYXlcIjogXCJZZXN0ZXJkYXlcIiwgXCJfN2RheXNfYWdvXCI6IFwiNyBkYXlzIGFnb1wiLCBcIl8zMGRheXNfYWdvXCI6IFwiMzAgZGF5cyBhZ29cIiwgXCJ0aGlzX21vbnRoXCI6IFwiVGhpcyBtb250aFwiLCBcImxhc3RfbW9udGhcIjogXCJMYXN0IG1vbnRoXCIsIFwiXzNtb250aHNfYWdvXCI6IFwiOTAgZGF5cyBhZ29cIiB9LFxuICAgICAgXCJkYXlzT2ZXZWVrXCI6IFtcIk1vXCIsIFwiVHVcIiwgXCJXZVwiLCBcIlRoXCIsIFwiRnJcIiwgXCJTYVwiLCBcIlN1XCJdLFxuICAgICAgXCJhcHBseUxhYmVsXCI6IFwiQXBwbHlcIixcbiAgICAgIFwiY2FuY2VsTGFiZWxcIjogXCJDYW5jZWxcIixcbiAgICAgIFwiZnJvbUxhYmVsXCI6IFwiRnJvbVwiLFxuICAgICAgXCJ0b0xhYmVsXCI6IFwiVG9cIixcbiAgICAgIFwiY3VzdG9tUmFuZ2VMYWJlbFwiOiBcIkN1c3RvbWl6ZVwiXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBnZXQoZGF0ZU9wdGlvbnMsIFV0aWxzQ2FjaGUuZ2V0TGFuZygpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TG9jYWxlQ29uZmlnID0gKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIGRpcmVjdGlvbjogJ2x0cicsXG4gICAgc2VwYXJhdG9yOiAnIC0gJyxcbiAgICB3ZWVrTGFiZWw6ICdXJyxcbiAgICBhcHBseUxhYmVsOiAnQXBwbHknLFxuICAgIGNhbmNlbExhYmVsOiAnQ2FuY2VsJyxcbiAgICBjbGVhckxhYmVsOiAnQ2xlYXInLFxuICAgIGN1c3RvbVJhbmdlTGFiZWw6ICdjdXN0b21SYW5nZUxhYmVsJyxcbiAgICBkYXlzT2ZXZWVrOiBbXSxcbiAgICBtb250aE5hbWVzOiBbXSxcbiAgICBmaXJzdERheTogMVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0ZVJhbmdlRGVmYXVsdCA9ICgpOiB7IFtrZXk6IHN0cmluZ106IEFycmF5PGRheWpzLkRheWpzPiB9ID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0b2RheTogW2RheWpzKCkuaG91cigwKS5taW51dGUoMCkuc2Vjb25kKDApLm1pbGxpc2Vjb25kKDApLCBkYXlqcygpLmhvdXIoMjMpLm1pbnV0ZSg1OSkuc2Vjb25kKDU5KV0sXG4gICAgeWVzdGVyZGF5OiBbZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmhvdXIoMCkubWludXRlKDApLnNlY29uZCgwKS5taWxsaXNlY29uZCgwKSwgZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmhvdXIoMjMpLm1pbnV0ZSg1OSkuc2Vjb25kKDU5KV0sXG4gICAgXzdkYXlzX2FnbzogW2RheWpzKCkuc3VidHJhY3QoNiwgJ2RheXMnKS5ob3VyKDApLnNlY29uZCgwKS5taW51dGUoMCkubWlsbGlzZWNvbmQoMCksIGRheWpzKCkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgICBfMzBkYXlzX2FnbzogW2RheWpzKCkuc3VidHJhY3QoMjksICdkYXlzJykuaG91cigwKS5zZWNvbmQoMCkubWludXRlKDApLm1pbGxpc2Vjb25kKDApLCBkYXlqcygpLmhvdXIoMjMpLm1pbnV0ZSg1OSkuc2Vjb25kKDU5KV0sXG4gICAgdGhpc19tb250aDogW2RheWpzKCkuc3RhcnRPZignbW9udGgnKSwgZGF5anMoKS5lbmRPZignbW9udGgnKV0sXG4gICAgbGFzdF9tb250aDogW2RheWpzKCkuc3VidHJhY3QoMSwgJ21vbnRoJykuc3RhcnRPZignbW9udGgnKSwgZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5lbmRPZignbW9udGgnKV0sXG4gICAgXzNtb250aHNfYWdvOiBbZGF5anMoKS5zdWJ0cmFjdCg4OSwgJ2RheXMnKS5ob3VyKDApLnNlY29uZCgwKS5taW51dGUoMCkubWlsbGlzZWNvbmQoMCksIGRheWpzKCkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX01JTl9ZRUFSID0gMTk0NTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9ZRUFSID0gMjEwMDsiXX0=
@@ -0,0 +1,2 @@
1
+ export * from './picker.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9waWNrZXIuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZW1pdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9pbnRlcmZhY2VzL2NhbGVuZGFyLWVtaXQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCB7IElTcGxpdFBpY2tlckRhdGUgfSBmcm9tIFwiLi9jYWxlbmRhci12YXJpYWJsZXMuaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVtaXREYXRlQ2FsZW5kYXIge1xuICBkaXNwbGF5TGFiZWw/OiBzdHJpbmc7XG4gIHN0YXJ0RGF0ZTogZGF5anMuRGF5anMgfCB1bmRlZmluZWQ7XG4gIGVuZERhdGU6IGRheWpzLkRheWpzIHwgdW5kZWZpbmVkO1xuICBkZXRhaWxEYXRlUGlja2VyOiBJU3BsaXRQaWNrZXJEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElFbWl0U2luZ2xlRGF0ZSB7XG4gIGRpc3BsYXlMYWJlbD86IHN0cmluZzsgLy8gbGFiZWwgaGnhu4NuIHRo4buLIG5nb8OgaSBkYXRlIHBpY2tlciBmb3JtXG4gIGRhdGU6IHN0cmluZyB8IGRheWpzLkRheWpzIHwgdW5kZWZpbmVkO1xuICB2YWx1ZXM6IHtcbiAgICBtb250aDogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHllYXI6IHN0cmluZyB8IG51bWJlcjtcbiAgICBkYXk6IHN0cmluZyB8IG51bWJlcjtcbiAgICBob3VyPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIG1pbnV0ZT86IHN0cmluZyB8IG51bWJlcjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRW1pdERhdGVSYW5nZSB7XG4gIHF1aWNrUmFuZ2VJZD86IHN0cmluZzsgLy8gaWQgcXVpY2sgcmFuZ2VcbiAgZGlzcGxheUxhYmVsPzogc3RyaW5nOyAvLyBsYWJlbCBoaeG7g24gdGjhu4sgbmdvw6BpIGRhdGUgcGlja2VyIGZvcm1cbiAgc3RhcnREYXRlOiBzdHJpbmcgfCBkYXlqcy5EYXlqcyB8IHVuZGVmaW5lZDtcbiAgZW5kRGF0ZTogc3RyaW5nIHwgZGF5anMuRGF5anMgfCB1bmRlZmluZWQ7XG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ export var SideEnum;
2
+ (function (SideEnum) {
3
+ SideEnum["left"] = "left";
4
+ SideEnum["right"] = "right";
5
+ })(SideEnum || (SideEnum = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItdmFyaWFibGVzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9waWNrZXIvc3JjL2ludGVyZmFjZXMvY2FsZW5kYXItdmFyaWFibGVzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3REEsTUFBTSxDQUFOLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNsQix5QkFBYSxDQUFBO0lBQ2IsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgZGF5anMgZnJvbSAnZGF5anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDYWxlbmRhclZhcmlhYmxlcyB7XG4gIGxlZnQ6IFdyaXRhYmxlU2lnbmFsPElDYWxlbmRhclZhcmlhYmxlc1NpZGU+O1xuICByaWdodDogV3JpdGFibGVTaWduYWw8SUNhbGVuZGFyVmFyaWFibGVzU2lkZT47XG59XG5pbnRlcmZhY2UgSUNhbGVuZGFyVmFyaWFibGVzU2lkZSB7XG4gIGNhbENvbHM/OiBXcml0YWJsZVNpZ25hbDxBcnJheTxudW1iZXI+PjtcbiAgY2FsUm93cz86IFdyaXRhYmxlU2lnbmFsPEFycmF5PG51bWJlcj4+O1xuICBjYWxlbmRhcj86IElDYWxlbmRhcjtcbiAgY2xhc3Nlcz86IElDYWxlbmRhclZhcmlhYmxlc0NsYXNzZXM7XG4gIGRheU9mV2Vlaz86IG51bWJlcjtcbiAgZGF5c0luTGFzdE1vbnRoPzogbnVtYmVyO1xuICBkYXlzSW5Nb250aD86IG51bWJlcjtcbiAgZHJvcGRvd25zPzogV3JpdGFibGVTaWduYWw8SUNhbGVuZGFyVmFyaWFibGVzRHJvcGRvd25zPjtcbiAgZmlyc3REYXk/OiBkYXlqcy5EYXlqcztcbiAgaG91cj86IG51bWJlcjtcbiAgbGFzdERheT86IGRheWpzLkRheWpzO1xuICBsYXN0TW9udGg/OiBudW1iZXI7XG4gIGxhc3RZZWFyPzogbnVtYmVyO1xuICBtYXhEYXRlPzogZGF5anMuRGF5anM7XG4gIG1pbkRhdGU/OiBkYXlqcy5EYXlqcztcbiAgbWludXRlPzogbnVtYmVyO1xuICBtb250aD86IG51bWJlcjtcbiAgc2Vjb25kPzogbnVtYmVyO1xuICB5ZWFyPzogbnVtYmVyO1xufVxuaW50ZXJmYWNlIElDYWxlbmRhclZhcmlhYmxlc0NsYXNzZXMge1xuICBbaW5kZXg6IG51bWJlcl06IHsgW2luZGV4OiBudW1iZXJdOiBzdHJpbmcsIGNsYXNzTGlzdD86IHN0cmluZyB9O1xufVxuaW50ZXJmYWNlIElDYWxlbmRhclZhcmlhYmxlc0Ryb3Bkb3ducyB7XG4gIGN1cnJlbnRNb250aD86IG51bWJlcjtcbiAgY3VycmVudFllYXI/OiBudW1iZXI7XG4gIGluTWF4WWVhcj86IGJvb2xlYW47XG4gIGluTWluWWVhcj86IGJvb2xlYW47XG4gIG1heFllYXI/OiBudW1iZXI7XG4gIG1pblllYXI/OiBudW1iZXI7XG4gIG1vbnRoQXJyYXlzPzogV3JpdGFibGVTaWduYWw8QXJyYXk8bnVtYmVyPj47XG4gIHllYXJBcnJheXM/OiBXcml0YWJsZVNpZ25hbDxBcnJheTxudW1iZXI+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2FsZW5kYXIge1xuICBbaW5kZXg6IG51bWJlcl06IEFycmF5PGRheWpzLkRheWpzPjtcbiAgZmlyc3REYXk/OiBkYXlqcy5EYXlqcztcbiAgbGFzdERheT86IGRheWpzLkRheWpzO1xufVxuXG50eXBlIFRZUEVfRFJPUERPV05fTU9OVEhfSUQgPSAxIHwgMiB8IDMgfCA0IHwgNSB8IDYgfCA3IHwgOCB8IDkgfCAxMCB8IDExIHwgMTI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbGVuZGFyTW9udGhJdGVtIHtcbiAgaWQ6IFRZUEVfRFJPUERPV05fTU9OVEhfSUQ7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG1heERheXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gU2lkZUVudW0ge1xuICBsZWZ0ID0gJ2xlZnQnLFxuICByaWdodCA9ICdyaWdodCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZVJhbmdlIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWVzPzogQXJyYXk8ZGF5anMuRGF5anM+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNwbGl0UGlja2VyRGF0ZSB7XG4gIHN0YXJ0OiBXcml0YWJsZVNpZ25hbDx7XG4gICAgbW9udGg6IHN0cmluZyB8IG51bWJlcjtcbiAgICB5ZWFyOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgZGF5OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgaG91cjogc3RyaW5nIHwgbnVtYmVyO1xuICAgIG1pbnV0ZTogc3RyaW5nIHwgbnVtYmVyO1xuICB9PjtcbiAgZW5kOiBXcml0YWJsZVNpZ25hbDx7XG4gICAgbW9udGg6IHN0cmluZyB8IG51bWJlcjtcbiAgICB5ZWFyOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgZGF5OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgaG91cjogc3RyaW5nIHwgbnVtYmVyO1xuICAgIG1pbnV0ZTogc3RyaW5nIHwgbnVtYmVyO1xuICB9Pjtcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tY29udHJvbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvZGF0ZXRpbWUvcGlja2VyL3NyYy9pbnRlcmZhY2VzL2Z1bmN0aW9uLWNvbnRyb2wuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlVGltZVBpY2tlckZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgY2hlY2tJc1ZhbGlkOiAoKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYWxlbmRhckZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgYnVpbGREZWZhdWx0UmFuZ2U6IChzdGFydERhdGU6IGRheWpzLkRheWpzLCBlbmREYXRlOiBkYXlqcy5EYXlqcykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgYXBwbHlUb1NlbGVjdDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kYXRldGltZS9waWNrZXIvc3JjL2ludGVyZmFjZXMvcGlja2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZGF5anMgZnJvbSBcImRheWpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNob3NlbkRhdGUge1xuICBzZWxlY3RlZExhYmVsPzogc3RyaW5nO1xuICBzdGFydERhdGU/OiBkYXlqcy5EYXlqcztcbiAgZW5kRGF0ZT86IGRheWpzLkRheWpzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsaXphdGlvbkNvbmZpZyB7XG4gIG1vbnRoTmFtZXM6IHN0cmluZ1tdO1xuICByYW5nZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIGRheXNPZldlZWs6IHN0cmluZ1tdO1xuICBhcHBseUxhYmVsOiBzdHJpbmc7XG4gIGNhbmNlbExhYmVsOiBzdHJpbmc7XG4gIGZyb21MYWJlbDogc3RyaW5nO1xuICB0b0xhYmVsOiBzdHJpbmc7XG4gIGN1c3RvbVJhbmdlTGFiZWw6IHN0cmluZztcbiAgZm9ybWF0Pzogc3RyaW5nO1xuICBkaXJlY3Rpb24/OiBzdHJpbmc7XG4gIHNlcGFyYXRvcj86IHN0cmluZztcbiAgd2Vla0xhYmVsPzogc3RyaW5nO1xuICBjbGVhckxhYmVsPzogc3RyaW5nO1xuICBmaXJzdERheT86IG51bWJlcjtcbiAgZGlzcGxheUZvcm1hdD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVFlQRV9SQU5HRV9LRVkgPSAndG9kYXknIHwgJ3llc3RlcmRheScgfCAnXzdkYXlzX2FnbycgfCAnXzMwZGF5c19hZ28nIHwgJ3RoaXNfbW9udGgnIHwgJ2xhc3RfbW9udGgnIHwgJ18zbW9udGhzX2Fnbyc7XG4iXX0=
@@ -0,0 +1,4 @@
1
+ ;
2
+ ;
3
+ export {};
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS12YXJpYWJsZXMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2RhdGV0aW1lL3BpY2tlci9zcmMvaW50ZXJmYWNlcy90aW1lLXZhcmlhYmxlcy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEJDLENBQUM7QUFNRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV3JpdGFibGVTaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0ICogYXMgZGF5anMgZnJvbSBcImRheWpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRpbWVwaWNrZXJWYXJpYWJsZXMge1xuICBsZWZ0OiBXcml0YWJsZVNpZ25hbDxJVGltZXBpY2tlclZhcmlhYmxlc1NpZGU+O1xuICByaWdodDogV3JpdGFibGVTaWduYWw8SVRpbWVwaWNrZXJWYXJpYWJsZXNTaWRlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGltZXBpY2tlclZhcmlhYmxlc1NpZGUge1xuICBzZWxlY3RlZEhvdXI6IG51bWJlcjtcbiAgc2VsZWN0ZWRNaW51dGU6IG51bWJlcjtcbiAgaG91cnM/OiBBcnJheTxudW1iZXI+O1xuICBtaW51dGVzPzogQXJyYXk8bnVtYmVyPjtcbiAgbWludXRlc0xhYmVsPzogQXJyYXk8c3RyaW5nPjtcbiAgc2Vjb25kcz86IEFycmF5PG51bWJlcj47XG4gIHNlY29uZHNMYWJlbD86IEFycmF5PG51bWJlcj47XG4gIGRpc2FibGVkSG91cnM/OiBBcnJheTxudW1iZXI+O1xuICBkaXNhYmxlZE1pbnV0ZXM/OiBBcnJheTxudW1iZXI+O1xuICBkaXNhYmxlZFNlY29uZHM/OiBBcnJheTxudW1iZXI+O1xuICBzZWxlY3RlZFNlY29uZD86IG51bWJlcjtcbiAgc2VsZWN0ZWQ/OiBkYXlqcy5EYXlqcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGltZXBpY2tlckl0ZW1WYWx1ZSB7XG4gIGxlZnRob3VyOiBXcml0YWJsZVNpZ25hbDxudW1iZXI+O1xuICBsZWZ0bWludXRlOiBXcml0YWJsZVNpZ25hbDxudW1iZXI+O1xuICByaWdodGhvdXI6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj47XG4gIHJpZ2h0bWludXRlOiBXcml0YWJsZVNpZ25hbDxudW1iZXI+O1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgSUNoZWNrVGltZXBpY2tlclNlbGVjdGVkIHtcbiAgbGVmdG1vbnRoOiBib29sZWFuO1xuICBsZWZ0eWVhcjogYm9vbGVhbjtcbiAgcmlnaHRtb250aDogYm9vbGVhbjtcbiAgcmlnaHR5ZWFyOiBib29sZWFuXG59O1xuZXhwb3J0IGludGVyZmFjZSBJU2VsZWN0ZWRPbGQge1xuICBzdGFydD86IGRheWpzLkRheWpzIHwgdW5kZWZpbmVkLFxuICBlbmQ/OiBkYXlqcy5EYXlqcyB8IHVuZGVmaW5lZFxufSJdfQ==