@odx/angular 5.5.6 → 5.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/components/calendar/lib/calendar.component.d.ts +9 -3
  3. package/components/calendar/lib/calendar.config.d.ts +11 -0
  4. package/components/calendar/lib/calendar.service.d.ts +10 -4
  5. package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +1 -3
  6. package/components/calendar/lib/daterange.service.d.ts +14 -0
  7. package/components/calendar/lib/directives/calendar-cell.directive.d.ts +19 -4
  8. package/components/calendar/lib/directives/calendar-view.directive.d.ts +5 -2
  9. package/components/calendar/lib/models/date-range.d.ts +18 -0
  10. package/components/calendar/lib/models/index.d.ts +3 -0
  11. package/components/calendar/lib/models/selected-date.d.ts +9 -0
  12. package/components/calendar/lib/models/selection-mode.d.ts +4 -0
  13. package/components/calendar/lib/pipes/date-label.pipe.d.ts +1 -0
  14. package/components/calendar/lib/utils/check-cell-in-range.d.ts +7 -0
  15. package/components/calendar/lib/utils/index.d.ts +1 -0
  16. package/components/calendar/lib/utils/validate-daterange.d.ts +1 -0
  17. package/components/daterangepicker/README.md +3 -0
  18. package/components/daterangepicker/index.d.ts +7 -0
  19. package/components/daterangepicker/lib/daterangepicker.component.d.ts +40 -0
  20. package/components/daterangepicker/lib/daterangepicker.config.d.ts +29 -0
  21. package/components/daterangepicker/lib/daterangepicker.module.d.ts +11 -0
  22. package/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.d.ts +25 -0
  23. package/components/daterangepicker/lib/directives/index.d.ts +1 -0
  24. package/components/daterangepicker/lib/models/daterangepicker-input-date-order.d.ts +1 -0
  25. package/components/daterangepicker/lib/models/daterangepicker-input-pattern.d.ts +1 -0
  26. package/components/daterangepicker/lib/models/index.d.ts +2 -0
  27. package/components/daterangepicker/lib/range.validator.d.ts +10 -0
  28. package/components/daterangepicker/lib/required.validator.d.ts +10 -0
  29. package/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.d.ts +3 -0
  30. package/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.d.ts +2 -0
  31. package/components/daterangepicker/lib/utils/index.d.ts +2 -0
  32. package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +2 -2
  33. package/esm2022/components/calendar/lib/calendar.component.mjs +25 -11
  34. package/esm2022/components/calendar/lib/calendar.config.mjs +3 -1
  35. package/esm2022/components/calendar/lib/calendar.service.mjs +28 -13
  36. package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +6 -10
  37. package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +4 -4
  38. package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +4 -4
  39. package/esm2022/components/calendar/lib/daterange.service.mjs +57 -0
  40. package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +85 -5
  41. package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +8 -2
  42. package/esm2022/components/calendar/lib/models/date-range.mjs +7 -0
  43. package/esm2022/components/calendar/lib/models/index.mjs +4 -1
  44. package/esm2022/components/calendar/lib/models/selected-date.mjs +5 -0
  45. package/esm2022/components/calendar/lib/models/selection-mode.mjs +6 -0
  46. package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +1 -1
  47. package/esm2022/components/calendar/lib/utils/check-cell-in-range.mjs +28 -0
  48. package/esm2022/components/calendar/lib/utils/index.mjs +2 -1
  49. package/esm2022/components/calendar/lib/utils/validate-daterange.mjs +5 -0
  50. package/esm2022/components/datepicker/lib/datepicker.component.mjs +2 -2
  51. package/esm2022/components/daterangepicker/index.mjs +8 -0
  52. package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +174 -0
  53. package/esm2022/components/daterangepicker/lib/daterangepicker.config.mjs +7 -0
  54. package/esm2022/components/daterangepicker/lib/daterangepicker.module.mjs +21 -0
  55. package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +65 -0
  56. package/esm2022/components/daterangepicker/lib/directives/index.mjs +2 -0
  57. package/esm2022/components/daterangepicker/lib/models/daterangepicker-input-date-order.mjs +2 -0
  58. package/esm2022/components/daterangepicker/lib/models/daterangepicker-input-pattern.mjs +2 -0
  59. package/esm2022/components/daterangepicker/lib/models/index.mjs +3 -0
  60. package/esm2022/components/daterangepicker/lib/range.validator.mjs +37 -0
  61. package/esm2022/components/daterangepicker/lib/required.validator.mjs +34 -0
  62. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.mjs +16 -0
  63. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.mjs +30 -0
  64. package/esm2022/components/daterangepicker/lib/utils/index.mjs +3 -0
  65. package/esm2022/components/daterangepicker/odx-angular-components-daterangepicker.mjs +5 -0
  66. package/esm2022/utils/lib/helpers/event-manager.mjs +27 -8
  67. package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
  68. package/fesm2022/odx-angular-components-calendar.mjs +261 -56
  69. package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
  70. package/fesm2022/odx-angular-components-datepicker.mjs +1 -1
  71. package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
  72. package/fesm2022/odx-angular-components-daterangepicker.mjs +364 -0
  73. package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -0
  74. package/fesm2022/odx-angular-utils.mjs +33 -16
  75. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  76. package/package.json +7 -1
  77. package/utils/lib/helpers/event-manager.d.ts +3 -1
@@ -0,0 +1,174 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { A11yModule } from '@angular/cdk/a11y';
3
+ import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, EventEmitter, HostListener, Input, Output, QueryList, ViewChild, ViewEncapsulation, } from '@angular/core';
4
+ import { detectControllerChanges } from '@odx/angular';
5
+ import { CustomFormControl } from '@odx/angular/cdk/custom-form-control';
6
+ import { ActionGroupComponent } from '@odx/angular/components/action-group';
7
+ import { ButtonComponent } from '@odx/angular/components/button';
8
+ import { CalendarComponent, CalendarSelectionMode, provideCalendarConfig } from '@odx/angular/components/calendar';
9
+ import { DropdownDirective, DropdownModule } from '@odx/angular/components/dropdown';
10
+ import { IconComponent } from '@odx/angular/components/icon';
11
+ import { CSSComponent } from '@odx/angular/internal';
12
+ import { Position, deferFn, injectElement, untilDestroyed } from '@odx/angular/utils';
13
+ import { format, startOfDay } from 'date-fns';
14
+ import { injectDaterangepickerConfig } from './daterangepicker.config';
15
+ import { DaterangepickerInputControlDirective } from './directives';
16
+ import { getDaterangepickerInputFormat } from './utils';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "@angular/cdk/a11y";
19
+ import * as i2 from "@odx/angular/components/dropdown";
20
+ export let DaterangepickerComponent = class DaterangepickerComponent extends CustomFormControl {
21
+ get isOpen() {
22
+ return !!this.dropdown.isOpen;
23
+ }
24
+ get startDateField() {
25
+ const [startDate, _endDate] = this.dateFields;
26
+ return startDate;
27
+ }
28
+ get endDateField() {
29
+ const [_startDate, endDate] = this.dateFields;
30
+ return endDate;
31
+ }
32
+ constructor() {
33
+ super(null);
34
+ this.takeUntilDestroyed = untilDestroyed();
35
+ this.config = injectDaterangepickerConfig();
36
+ this.element = injectElement();
37
+ this.today = new Date();
38
+ this.filterFn = null;
39
+ this.minDate = null;
40
+ this.maxDate = null;
41
+ this.dropdownPosition = 'bottom';
42
+ this.selectedChange = new EventEmitter();
43
+ detectControllerChanges(this).subscribe();
44
+ }
45
+ ngAfterViewInit() {
46
+ this.updateWidth(this.startDateField, this.startDateMirror);
47
+ this.updateWidth(this.endDateField, this.endDateMirror);
48
+ this.handleDateFieldChanges();
49
+ this.handleDateFieldFocus();
50
+ deferFn(() => {
51
+ if (!this.value || !this.value.start || !this.value.end)
52
+ return;
53
+ this.updateValue({
54
+ start: startOfDay(this.value.start),
55
+ end: startOfDay(this.value.end),
56
+ });
57
+ this.updateStartDateField(this.value.start);
58
+ this.updateEndDateField(this.value.end);
59
+ });
60
+ }
61
+ selectDateRange(value) {
62
+ if (!value || !value.start || !value.end)
63
+ return;
64
+ this.updateValue(value);
65
+ this.updateStartDateField(value.start);
66
+ this.updateEndDateField(value.end);
67
+ this.selectedChange.emit(value);
68
+ this.dropdown.close();
69
+ }
70
+ handleDateFieldChanges() {
71
+ this.startDateField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe((value) => {
72
+ this.updateValue({ start: this.startDateField?.valueAsDate ?? null, end: this.endDateField?.valueAsDate ?? null });
73
+ this.updateWidth(this.startDateField, this.startDateMirror, value);
74
+ });
75
+ this.endDateField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe((value) => {
76
+ this.updateValue({ start: this.startDateField?.valueAsDate ?? null, end: this.endDateField?.valueAsDate ?? null });
77
+ this.updateWidth(this.endDateField, this.endDateMirror, value);
78
+ });
79
+ }
80
+ updateWidth(target, source, value = '') {
81
+ const compensationPx = 2;
82
+ source.nativeElement.textContent = value || target?.placeholder || null;
83
+ if (target) {
84
+ target.element.nativeElement.style.width = `${source.nativeElement.offsetWidth + compensationPx}px`;
85
+ }
86
+ }
87
+ handleDateFieldFocus() {
88
+ this.startDateField?.focused.pipe(this.takeUntilDestroyed()).subscribe((isFocused) => {
89
+ if (!isFocused) {
90
+ this.onTouched();
91
+ }
92
+ if (this.isOpen) {
93
+ this.dropdown.close();
94
+ }
95
+ });
96
+ this.endDateField?.focused.pipe(this.takeUntilDestroyed()).subscribe((isFocused) => {
97
+ if (!isFocused) {
98
+ this.onTouched();
99
+ }
100
+ if (this.isOpen) {
101
+ this.dropdown.close();
102
+ }
103
+ });
104
+ }
105
+ openDaterangepicker(event) {
106
+ event.stopPropagation();
107
+ if (this.isReadonly || this.isDisabled)
108
+ return;
109
+ this.dropdown.open(event);
110
+ }
111
+ updateStartDateField(date) {
112
+ if (!this.startDateField)
113
+ return;
114
+ const dateFormat = getDaterangepickerInputFormat(this.config);
115
+ this.startDateField.nativeElementValue = format(date, dateFormat);
116
+ this.updateWidth(this.startDateField, this.startDateMirror, format(date, dateFormat));
117
+ }
118
+ updateEndDateField(date) {
119
+ if (!this.endDateField)
120
+ return;
121
+ const dateFormat = getDaterangepickerInputFormat(this.config);
122
+ this.endDateField.nativeElementValue = format(date, dateFormat);
123
+ this.updateWidth(this.endDateField, this.endDateMirror, format(date, dateFormat));
124
+ }
125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
126
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DaterangepickerComponent, isStandalone: true, selector: "odx-daterangepicker", inputs: { filterFn: "filterFn", minDate: "minDate", maxDate: "maxDate", dropdownPosition: "dropdownPosition" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "keydown.alt.ArrowDown": "openDaterangepicker($event)" } }, providers: [
127
+ provideCalendarConfig({
128
+ displayAdjacentDays: false,
129
+ selectionMode: CalendarSelectionMode.DateRange,
130
+ }),
131
+ ], queries: [{ propertyName: "dateFields", predicate: DaterangepickerInputControlDirective }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }, { propertyName: "dropdownTriggerElement", first: true, predicate: ["dropdownTrigger"], descendants: true, read: ElementRef, static: true }, { propertyName: "startDateMirror", first: true, predicate: ["startDateMirror"], descendants: true, read: ElementRef, static: true }, { propertyName: "endDateMirror", first: true, predicate: ["endDateMirror"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<span #startDateMirror role=\"none\" class=\"odx-daterangepicker__mirror\"></span>\n<ng-content select=\"input[odxDaterangepickerStartDateControl]\"></ng-content>\n<span role=\"none\" class=\"odx-daterangepicker__separator\">\u2013</span>\n<span #endDateMirror role=\"none\" class=\"odx-daterangepicker__mirror\"></span>\n<ng-content select=\"input[odxDaterangepickerEndDateControl]\"></ng-content>\n\n<odx-action-group class=\"odx-daterangepicker__trigger-wrapper\">\n <button\n #dropdownTrigger\n class=\"odx-daterangepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n [odxDropdown]=\"calendarOverlay\"\n [odxDropdownOptions]=\"{ position: dropdownPosition }\"\n [odxDropdownTriggerElement]=\"dropdownTriggerElement.nativeElement\"\n [odxDropdownHost]=\"null\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n >\n <odx-icon name=\"calendar\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #calendarOverlay>\n <odx-calendar\n [selectedDate]=\"today\"\n [selectedDateRange]=\"value\"\n (selectedDateRangeChange)=\"selectDateRange($event)\"\n [filterFn]=\"filterFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n ></odx-calendar>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: CalendarComponent, selector: "odx-calendar", inputs: ["selectedDate", "selectedDateRange", "minDate", "maxDate", "filterFn"], outputs: ["selectedDateChange", "selectedDateRangeChange"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i2.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
132
+ };
133
+ DaterangepickerComponent = __decorate([
134
+ CSSComponent('daterangepicker'),
135
+ __metadata("design:paramtypes", [])
136
+ ], DaterangepickerComponent);
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangepickerComponent, decorators: [{
138
+ type: Component,
139
+ args: [{ selector: 'odx-daterangepicker', standalone: true, imports: [A11yModule, ActionGroupComponent, ButtonComponent, CalendarComponent, DropdownModule, IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
140
+ provideCalendarConfig({
141
+ displayAdjacentDays: false,
142
+ selectionMode: CalendarSelectionMode.DateRange,
143
+ }),
144
+ ], template: "<span #startDateMirror role=\"none\" class=\"odx-daterangepicker__mirror\"></span>\n<ng-content select=\"input[odxDaterangepickerStartDateControl]\"></ng-content>\n<span role=\"none\" class=\"odx-daterangepicker__separator\">\u2013</span>\n<span #endDateMirror role=\"none\" class=\"odx-daterangepicker__mirror\"></span>\n<ng-content select=\"input[odxDaterangepickerEndDateControl]\"></ng-content>\n\n<odx-action-group class=\"odx-daterangepicker__trigger-wrapper\">\n <button\n #dropdownTrigger\n class=\"odx-daterangepicker__trigger\"\n odxButton\n size=\"small\"\n variant=\"ghost\"\n [odxDropdown]=\"calendarOverlay\"\n [odxDropdownOptions]=\"{ position: dropdownPosition }\"\n [odxDropdownTriggerElement]=\"dropdownTriggerElement.nativeElement\"\n [odxDropdownHost]=\"null\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n (odxDropdownBeforeClose)=\"onTouched()\"\n >\n <odx-icon name=\"calendar\"></odx-icon>\n </button>\n</odx-action-group>\n\n<ng-template #calendarOverlay>\n <odx-calendar\n [selectedDate]=\"today\"\n [selectedDateRange]=\"value\"\n (selectedDateRangeChange)=\"selectDateRange($event)\"\n [filterFn]=\"filterFn\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n ></odx-calendar>\n</ng-template>\n" }]
145
+ }], ctorParameters: function () { return []; }, propDecorators: { filterFn: [{
146
+ type: Input
147
+ }], minDate: [{
148
+ type: Input
149
+ }], maxDate: [{
150
+ type: Input
151
+ }], dropdownPosition: [{
152
+ type: Input
153
+ }], selectedChange: [{
154
+ type: Output
155
+ }], dropdown: [{
156
+ type: ViewChild,
157
+ args: [DropdownDirective]
158
+ }], dropdownTriggerElement: [{
159
+ type: ViewChild,
160
+ args: ['dropdownTrigger', { read: ElementRef, static: true }]
161
+ }], dateFields: [{
162
+ type: ContentChildren,
163
+ args: [DaterangepickerInputControlDirective]
164
+ }], startDateMirror: [{
165
+ type: ViewChild,
166
+ args: ['startDateMirror', { read: ElementRef, static: true }]
167
+ }], endDateMirror: [{
168
+ type: ViewChild,
169
+ args: ['endDateMirror', { read: ElementRef, static: true }]
170
+ }], openDaterangepicker: [{
171
+ type: HostListener,
172
+ args: ['keydown.alt.ArrowDown', ['$event']]
173
+ }] } });
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2RhdGVyYW5nZXBpY2tlci9zcmMvbGliL2RhdGVyYW5nZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcmFuZ2VwaWNrZXIvc3JjL2xpYi9kYXRlcmFuZ2VwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBeUIscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFB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LEVBQUU7Z0JBcUZwRCxtQkFBbUI7c0JBRDVCLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEN1c3RvbUZvcm1Db250cm9sIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9jdXN0b20tZm9ybS1jb250cm9sJztcbmltcG9ydCB7IEFjdGlvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYWN0aW9uLWdyb3VwJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCwgQ2FsZW5kYXJTZWxlY3Rpb25Nb2RlLCBEYXRlRmlsdGVyLCBEYXRlUmFuZ2UsIHByb3ZpZGVDYWxlbmRhckNvbmZpZyB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyJztcbmltcG9ydCB7IERyb3Bkb3duRGlyZWN0aXZlLCBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBQb3NpdGlvbiwgZGVmZXJGbiwgaW5qZWN0RWxlbWVudCwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZm9ybWF0LCBzdGFydE9mRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgaW5qZWN0RGF0ZXJhbmdlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi9kYXRlcmFuZ2VwaWNrZXIuY29uZmlnJztcbmltcG9ydCB7IERhdGVyYW5nZXBpY2tlcklucHV0Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBnZXREYXRlcmFuZ2VwaWNrZXJJbnB1dEZvcm1hdCB9IGZyb20gJy4vdXRpbHMnO1xuXG5AQ1NTQ29tcG9uZW50KCdkYXRlcmFuZ2VwaWNrZXInKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2R4LWRhdGVyYW5nZXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtBMTF5TW9kdWxlLCBBY3Rpb25Hcm91cENvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBDYWxlbmRhckNvbXBvbmVudCwgRHJvcGRvd25Nb2R1bGUsIEljb25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVDYWxlbmRhckNvbmZpZyh7XG4gICAgICBkaXNwbGF5QWRqYWNlbnREYXlzOiBmYWxzZSxcbiAgICAgIHNlbGVjdGlvbk1vZGU6IENhbGVuZGFyU2VsZWN0aW9uTW9kZS5EYXRlUmFuZ2UsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVyYW5nZXBpY2tlckNvbXBvbmVudCBleHRlbmRzIEN1c3RvbUZvcm1Db250cm9sPERhdGVSYW5nZSB8IG51bGw+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByb3RlY3RlZCByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWcgPSBpbmplY3REYXRlcmFuZ2VwaWNrZXJDb25maWcoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRyb3Bkb3duLmlzT3BlbjtcbiAgfVxuXG4gIHB1YmxpYyB0b2RheSA9IG5ldyBEYXRlKCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZpbHRlckZuOiBEYXRlRmlsdGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1pbkRhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkcm9wZG93blBvc2l0aW9uOiBQb3NpdGlvbiA9ICdib3R0b20nO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVSYW5nZT4oKTtcblxuICBAVmlld0NoaWxkKERyb3Bkb3duRGlyZWN0aXZlKVxuICBwdWJsaWMgZHJvcGRvd24hOiBEcm9wZG93bkRpcmVjdGl2ZTtcblxuICBAVmlld0NoaWxkKCdkcm9wZG93blRyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgZHJvcGRvd25UcmlnZ2VyRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oRGF0ZXJhbmdlcGlja2VySW5wdXRDb250cm9sRGlyZWN0aXZlKVxuICBwdWJsaWMgZGF0ZUZpZWxkcyE6IFF1ZXJ5TGlzdDxEYXRlcmFuZ2VwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmU+O1xuXG4gIEBWaWV3Q2hpbGQoJ3N0YXJ0RGF0ZU1pcnJvcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBzdGFydERhdGVNaXJyb3IhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdlbmREYXRlTWlycm9yJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGVuZERhdGVNaXJyb3IhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgZ2V0IHN0YXJ0RGF0ZUZpZWxkKCk6IERhdGVyYW5nZXBpY2tlcklucHV0Q29udHJvbERpcmVjdGl2ZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgW3N0YXJ0RGF0ZSwgX2VuZERhdGVdID0gdGhpcy5kYXRlRmllbGRzO1xuICAgIHJldHVybiBzdGFydERhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVuZERhdGVGaWVsZCgpOiBEYXRlcmFuZ2VwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IFtfc3RhcnREYXRlLCBlbmREYXRlXSA9IHRoaXMuZGF0ZUZpZWxkcztcbiAgICByZXR1cm4gZW5kRGF0ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKG51bGwpO1xuICAgIGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzKHRoaXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVdpZHRoKHRoaXMuc3RhcnREYXRlRmllbGQsIHRoaXMuc3RhcnREYXRlTWlycm9yKTtcbiAgICB0aGlzLnVwZGF0ZVdpZHRoKHRoaXMuZW5kRGF0ZUZpZWxkLCB0aGlzLmVuZERhdGVNaXJyb3IpO1xuICAgIHRoaXMuaGFuZGxlRGF0ZUZpZWxkQ2hhbmdlcygpO1xuICAgIHRoaXMuaGFuZGxlRGF0ZUZpZWxkRm9jdXMoKTtcblxuICAgIGRlZmVyRm4oKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnZhbHVlIHx8ICF0aGlzLnZhbHVlLnN0YXJ0IHx8ICF0aGlzLnZhbHVlLmVuZCkgcmV0dXJuO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh7XG4gICAgICAgIHN0YXJ0OiBzdGFydE9mRGF5KHRoaXMudmFsdWUuc3RhcnQpLFxuICAgICAgICBlbmQ6IHN0YXJ0T2ZEYXkodGhpcy52YWx1ZS5lbmQpLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVwZGF0ZVN0YXJ0RGF0ZUZpZWxkKHRoaXMudmFsdWUuc3RhcnQpO1xuICAgICAgdGhpcy51cGRhdGVFbmREYXRlRmllbGQodGhpcy52YWx1ZS5lbmQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdERhdGVSYW5nZSh2YWx1ZTogRGF0ZVJhbmdlIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLnN0YXJ0IHx8ICF2YWx1ZS5lbmQpIHJldHVybjtcblxuICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMudXBkYXRlU3RhcnREYXRlRmllbGQodmFsdWUuc3RhcnQpO1xuICAgIHRoaXMudXBkYXRlRW5kRGF0ZUZpZWxkKHZhbHVlLmVuZCk7XG5cbiAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIHRoaXMuZHJvcGRvd24uY2xvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEYXRlRmllbGRDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhcnREYXRlRmllbGQ/LnZhbHVlQ2hhbmdlJC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh7IHN0YXJ0OiB0aGlzLnN0YXJ0RGF0ZUZpZWxkPy52YWx1ZUFzRGF0ZSA/PyBudWxsLCBlbmQ6IHRoaXMuZW5kRGF0ZUZpZWxkPy52YWx1ZUFzRGF0ZSA/PyBudWxsIH0pO1xuICAgICAgdGhpcy51cGRhdGVXaWR0aCh0aGlzLnN0YXJ0RGF0ZUZpZWxkLCB0aGlzLnN0YXJ0RGF0ZU1pcnJvciwgdmFsdWUpO1xuICAgIH0pO1xuICAgIHRoaXMuZW5kRGF0ZUZpZWxkPy52YWx1ZUNoYW5nZSQucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUoeyBzdGFydDogdGhpcy5zdGFydERhdGVGaWVsZD8udmFsdWVBc0RhdGUgPz8gbnVsbCwgZW5kOiB0aGlzLmVuZERhdGVGaWVsZD8udmFsdWVBc0RhdGUgPz8gbnVsbCB9KTtcbiAgICAgIHRoaXMudXBkYXRlV2lkdGgodGhpcy5lbmREYXRlRmllbGQsIHRoaXMuZW5kRGF0ZU1pcnJvciwgdmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVdpZHRoKHRhcmdldDogRGF0ZXJhbmdlcGlja2VySW5wdXRDb250cm9sRGlyZWN0aXZlIHwgdW5kZWZpbmVkLCBzb3VyY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCB2YWx1ZSA9ICcnKSB7XG4gICAgY29uc3QgY29tcGVuc2F0aW9uUHggPSAyO1xuICAgIHNvdXJjZS5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50ID0gdmFsdWUgfHwgdGFyZ2V0Py5wbGFjZWhvbGRlciB8fCBudWxsO1xuICAgIGlmICh0YXJnZXQpIHtcbiAgICAgIHRhcmdldC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHtzb3VyY2UubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArIGNvbXBlbnNhdGlvblB4fXB4YDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlRGF0ZUZpZWxkRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFydERhdGVGaWVsZD8uZm9jdXNlZC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoaXNGb2N1c2VkKSA9PiB7XG4gICAgICBpZiAoIWlzRm9jdXNlZCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMuZHJvcGRvd24uY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmVuZERhdGVGaWVsZD8uZm9jdXNlZC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoaXNGb2N1c2VkKSA9PiB7XG4gICAgICBpZiAoIWlzRm9jdXNlZCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMuZHJvcGRvd24uY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYWx0LkFycm93RG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBvcGVuRGF0ZXJhbmdlcGlja2VyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5pc1JlYWRvbmx5IHx8IHRoaXMuaXNEaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5kcm9wZG93bi5vcGVuKGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RhcnREYXRlRmllbGQoZGF0ZTogRGF0ZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdGFydERhdGVGaWVsZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGF0ZUZvcm1hdCA9IGdldERhdGVyYW5nZXBpY2tlcklucHV0Rm9ybWF0KHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLnN0YXJ0RGF0ZUZpZWxkLm5hdGl2ZUVsZW1lbnRWYWx1ZSA9IGZvcm1hdChkYXRlLCBkYXRlRm9ybWF0KTtcbiAgICB0aGlzLnVwZGF0ZVdpZHRoKHRoaXMuc3RhcnREYXRlRmllbGQsIHRoaXMuc3RhcnREYXRlTWlycm9yLCBmb3JtYXQoZGF0ZSwgZGF0ZUZvcm1hdCkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVFbmREYXRlRmllbGQoZGF0ZTogRGF0ZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5lbmREYXRlRmllbGQpIHJldHVybjtcblxuICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBnZXREYXRlcmFuZ2VwaWNrZXJJbnB1dEZvcm1hdCh0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5lbmREYXRlRmllbGQubmF0aXZlRWxlbWVudFZhbHVlID0gZm9ybWF0KGRhdGUsIGRhdGVGb3JtYXQpO1xuICAgIHRoaXMudXBkYXRlV2lkdGgodGhpcy5lbmREYXRlRmllbGQsIHRoaXMuZW5kRGF0ZU1pcnJvciwgZm9ybWF0KGRhdGUsIGRhdGVGb3JtYXQpKTtcbiAgfVxufVxuIiwiPHNwYW4gI3N0YXJ0RGF0ZU1pcnJvciByb2xlPVwibm9uZVwiIGNsYXNzPVwib2R4LWRhdGVyYW5nZXBpY2tlcl9fbWlycm9yXCI+PC9zcGFuPlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW5wdXRbb2R4RGF0ZXJhbmdlcGlja2VyU3RhcnREYXRlQ29udHJvbF1cIj48L25nLWNvbnRlbnQ+XG48c3BhbiByb2xlPVwibm9uZVwiIGNsYXNzPVwib2R4LWRhdGVyYW5nZXBpY2tlcl9fc2VwYXJhdG9yXCI+4oCTPC9zcGFuPlxuPHNwYW4gI2VuZERhdGVNaXJyb3Igcm9sZT1cIm5vbmVcIiBjbGFzcz1cIm9keC1kYXRlcmFuZ2VwaWNrZXJfX21pcnJvclwiPjwvc3Bhbj5cbjxuZy1jb250ZW50IHNlbGVjdD1cImlucHV0W29keERhdGVyYW5nZXBpY2tlckVuZERhdGVDb250cm9sXVwiPjwvbmctY29udGVudD5cblxuPG9keC1hY3Rpb24tZ3JvdXAgY2xhc3M9XCJvZHgtZGF0ZXJhbmdlcGlja2VyX190cmlnZ2VyLXdyYXBwZXJcIj5cbiAgPGJ1dHRvblxuICAgICNkcm9wZG93blRyaWdnZXJcbiAgICBjbGFzcz1cIm9keC1kYXRlcmFuZ2VwaWNrZXJfX3RyaWdnZXJcIlxuICAgIG9keEJ1dHRvblxuICAgIHNpemU9XCJzbWFsbFwiXG4gICAgdmFyaWFudD1cImdob3N0XCJcbiAgICBbb2R4RHJvcGRvd25dPVwiY2FsZW5kYXJPdmVybGF5XCJcbiAgICBbb2R4RHJvcGRvd25PcHRpb25zXT1cInsgcG9zaXRpb246IGRyb3Bkb3duUG9zaXRpb24gfVwiXG4gICAgW29keERyb3Bkb3duVHJpZ2dlckVsZW1lbnRdPVwiZHJvcGRvd25UcmlnZ2VyRWxlbWVudC5uYXRpdmVFbGVtZW50XCJcbiAgICBbb2R4RHJvcGRvd25Ib3N0XT1cIm51bGxcIlxuICAgIFtvZHhEcm9wZG93blJlZmVyZW5jZUVsZW1lbnRdPVwiZWxlbWVudC5uYXRpdmVFbGVtZW50XCJcbiAgICAob2R4RHJvcGRvd25CZWZvcmVDbG9zZSk9XCJvblRvdWNoZWQoKVwiXG4gID5cbiAgICA8b2R4LWljb24gbmFtZT1cImNhbGVuZGFyXCI+PC9vZHgtaWNvbj5cbiAgPC9idXR0b24+XG48L29keC1hY3Rpb24tZ3JvdXA+XG5cbjxuZy10ZW1wbGF0ZSAjY2FsZW5kYXJPdmVybGF5PlxuICA8b2R4LWNhbGVuZGFyXG4gICAgW3NlbGVjdGVkRGF0ZV09XCJ0b2RheVwiXG4gICAgW3NlbGVjdGVkRGF0ZVJhbmdlXT1cInZhbHVlXCJcbiAgICAoc2VsZWN0ZWREYXRlUmFuZ2VDaGFuZ2UpPVwic2VsZWN0RGF0ZVJhbmdlKCRldmVudClcIlxuICAgIFtmaWx0ZXJGbl09XCJmaWx0ZXJGblwiXG4gICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgY2RrVHJhcEZvY3VzXG4gICAgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVcbiAgPjwvb2R4LWNhbGVuZGFyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ import { createConfigTokens } from '@odx/angular/utils';
2
+ import { DaterangepickerInputDateOrder } from './models';
3
+ export const { DaterangepickerConfig, DaterangepickerDefaultConfig, injectDaterangepickerConfig, provideDaterangepickerConfig } = createConfigTokens('Daterangepicker', '@odx/angular/components/daterangepicker', {
4
+ inputDateOrder: DaterangepickerInputDateOrder.DMY,
5
+ inputDateSeparator: '.',
6
+ });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlcGlja2VyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2RhdGVyYW5nZXBpY2tlci9zcmMvbGliL2RhdGVyYW5nZXBpY2tlci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBZXpELE1BQU0sQ0FBQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsNEJBQTRCLEVBQUUsMkJBQTJCLEVBQUUsNEJBQTRCLEVBQUUsR0FBRyxrQkFBa0IsQ0FDbEosaUJBQWlCLEVBQ2pCLHlDQUF5QyxFQUN6QztJQUNFLGNBQWMsRUFBRSw2QkFBNkIsQ0FBQyxHQUFHO0lBQ2pELGtCQUFrQixFQUFFLEdBQUc7Q0FDeEIsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29uZmlnVG9rZW5zIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IERhdGVyYW5nZXBpY2tlcklucHV0RGF0ZU9yZGVyIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVyYW5nZXBpY2tlckNvbmZpZyB7XG4gIC8qKlxuICAgKiBEYXRlJ3Mgb3JkZXIgKCdETVknIHwgJ01EWScgfCAnWU1EJykuXG4gICAqIEBkZWZhdWx0IERhdGVyYW5nZXBpY2tlcklucHV0RGF0ZU9yZGVyLkRNWVxuICAgKi9cbiAgaW5wdXREYXRlT3JkZXI6IERhdGVyYW5nZXBpY2tlcklucHV0RGF0ZU9yZGVyO1xuICAvKipcbiAgICogU2luZ2xlLWNoYXJhY3RlciBkYXRlJ3Mgc2VwYXJhdG9yIChkb3QsIHNsYXNoIGV0Yy4pLlxuICAgKiBAZGVmYXVsdCAnLidcbiAgICovXG4gIGlucHV0RGF0ZVNlcGFyYXRvcjogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgeyBEYXRlcmFuZ2VwaWNrZXJDb25maWcsIERhdGVyYW5nZXBpY2tlckRlZmF1bHRDb25maWcsIGluamVjdERhdGVyYW5nZXBpY2tlckNvbmZpZywgcHJvdmlkZURhdGVyYW5nZXBpY2tlckNvbmZpZyB9ID0gY3JlYXRlQ29uZmlnVG9rZW5zKFxuICAnRGF0ZXJhbmdlcGlja2VyJyxcbiAgJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2RhdGVyYW5nZXBpY2tlcicsXG4gIHtcbiAgICBpbnB1dERhdGVPcmRlcjogRGF0ZXJhbmdlcGlja2VySW5wdXREYXRlT3JkZXIuRE1ZLFxuICAgIGlucHV0RGF0ZVNlcGFyYXRvcjogJy4nLFxuICB9LFxuKTtcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CoreModule } from '@odx/angular';
3
+ import { DaterangepickerComponent } from './daterangepicker.component';
4
+ import { DaterangepickerInputControlDirective } from './directives';
5
+ import { DaterangepickerRangeValidator } from './range.validator';
6
+ import { DaterangepickerRequiredValidator } from './required.validator';
7
+ import * as i0 from "@angular/core";
8
+ const modules = [DaterangepickerComponent, DaterangepickerInputControlDirective, DaterangepickerRangeValidator, DaterangepickerRequiredValidator];
9
+ export class DaterangepickerModule {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DaterangepickerModule, imports: [DaterangepickerComponent, DaterangepickerInputControlDirective, DaterangepickerRangeValidator, DaterangepickerRequiredValidator], exports: [CoreModule, DaterangepickerComponent, DaterangepickerInputControlDirective, DaterangepickerRangeValidator, DaterangepickerRequiredValidator] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangepickerModule, imports: [DaterangepickerComponent, CoreModule] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangepickerModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ imports: modules,
18
+ exports: [CoreModule, ...modules],
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2RhdGVyYW5nZXBpY2tlci9zcmMvbGliL2RhdGVyYW5nZXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFeEUsTUFBTSxPQUFPLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxvQ0FBb0MsRUFBRSw2QkFBNkIsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO0FBTWxKLE1BQU0sT0FBTyxxQkFBcUI7K0dBQXJCLHFCQUFxQjtnSEFBckIscUJBQXFCLFlBTmpCLHdCQUF3QixFQUFFLG9DQUFvQyxFQUFFLDZCQUE2QixFQUFFLGdDQUFnQyxhQUlwSSxVQUFVLEVBSkwsd0JBQXdCLEVBQUUsb0NBQW9DLEVBQUUsNkJBQTZCLEVBQUUsZ0NBQWdDO2dIQU1uSSxxQkFBcUIsWUFOakIsd0JBQXdCLEVBSTdCLFVBQVU7OzRGQUVULHFCQUFxQjtrQkFKakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IERhdGVyYW5nZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlcmFuZ2VwaWNrZXJJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgRGF0ZXJhbmdlcGlja2VyUmFuZ2VWYWxpZGF0b3IgfSBmcm9tICcuL3JhbmdlLnZhbGlkYXRvcic7XG5pbXBvcnQgeyBEYXRlcmFuZ2VwaWNrZXJSZXF1aXJlZFZhbGlkYXRvciB9IGZyb20gJy4vcmVxdWlyZWQudmFsaWRhdG9yJztcblxuY29uc3QgbW9kdWxlcyA9IFtEYXRlcmFuZ2VwaWNrZXJDb21wb25lbnQsIERhdGVyYW5nZXBpY2tlcklucHV0Q29udHJvbERpcmVjdGl2ZSwgRGF0ZXJhbmdlcGlja2VyUmFuZ2VWYWxpZGF0b3IsIERhdGVyYW5nZXBpY2tlclJlcXVpcmVkVmFsaWRhdG9yXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogbW9kdWxlcyxcbiAgZXhwb3J0czogW0NvcmVNb2R1bGUsIC4uLm1vZHVsZXNdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcmFuZ2VwaWNrZXJNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,65 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, EventEmitter, HostListener, inject, Output } from '@angular/core';
3
+ import { ReadonlyController, WithTabIndex } from '@odx/angular';
4
+ import { InputControlDirective } from '@odx/angular/cdk/custom-form-control';
5
+ import { CSSComponent } from '@odx/angular/internal';
6
+ import { NgxMaskPipe, provideNgxMask } from 'ngx-mask';
7
+ import { distinctUntilChanged, fromEvent, map, tap } from 'rxjs';
8
+ import { injectDaterangepickerConfig } from '../daterangepicker.config';
9
+ import { getDaterangepickerInputFormat, getDaterangepickerInputMask, getDaterangepickerInputValueAsDate } from '../utils';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@odx/angular";
12
+ export let DaterangepickerInputControlDirective = class DaterangepickerInputControlDirective extends InputControlDirective {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.maskConfig = { validation: false, leadZeroDateTime: true };
16
+ this.readonlyController = ReadonlyController.inject();
17
+ this.config = injectDaterangepickerConfig();
18
+ this.inputMask = getDaterangepickerInputMask(this.config);
19
+ this.ngxMaskPipe = inject(NgxMaskPipe);
20
+ this.focused = new EventEmitter();
21
+ this.valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(distinctUntilChanged(), tap(() => this.applyMask()), map(() => this.nativeElementValue));
22
+ }
23
+ applyMask() {
24
+ this.nativeElementValue = this.ngxMaskPipe.transform(this.nativeElementValue, this.inputMask, this.maskConfig);
25
+ }
26
+ get valueAsDate() {
27
+ return getDaterangepickerInputValueAsDate(this.config, this.nativeElementValue);
28
+ }
29
+ get placeholder() {
30
+ return getDaterangepickerInputFormat(this.config).toUpperCase();
31
+ }
32
+ handleFocusIn() {
33
+ this.focused.emit(true);
34
+ }
35
+ handleFocusOut() {
36
+ this.focused.emit(false);
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangepickerInputControlDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DaterangepickerInputControlDirective, isStandalone: true, selector: "input[odxDaterangepickerControl],input[odxDaterangepickerStartDateControl], input[odxDaterangepickerEndDateControl]", outputs: { focused: "focused" }, host: { listeners: { "focusin": "handleFocusIn()", "focusout": "handleFocusOut()" }, properties: { "attr.readonly": "readonlyController?.readonly || null", "attr.placeholder": "placeholder" } }, providers: [ReadonlyController.connect(), provideNgxMask(), NgxMaskPipe], usesInheritance: true, hostDirectives: [{ directive: i1.WithTabIndex }], ngImport: i0 }); }
40
+ };
41
+ DaterangepickerInputControlDirective = __decorate([
42
+ CSSComponent('daterangepicker__control')
43
+ ], DaterangepickerInputControlDirective);
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangepickerInputControlDirective, decorators: [{
45
+ type: Directive,
46
+ args: [{
47
+ standalone: true,
48
+ selector: 'input[odxDaterangepickerControl],input[odxDaterangepickerStartDateControl], input[odxDaterangepickerEndDateControl]',
49
+ host: {
50
+ '[attr.readonly]': 'readonlyController?.readonly || null',
51
+ '[attr.placeholder]': 'placeholder',
52
+ },
53
+ providers: [ReadonlyController.connect(), provideNgxMask(), NgxMaskPipe],
54
+ hostDirectives: [WithTabIndex],
55
+ }]
56
+ }], propDecorators: { focused: [{
57
+ type: Output
58
+ }], handleFocusIn: [{
59
+ type: HostListener,
60
+ args: ['focusin']
61
+ }], handleFocusOut: [{
62
+ type: HostListener,
63
+ args: ['focusout']
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlcGlja2VyLWlucHV0LWNvbnRyb2wuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvZGF0ZXJhbmdlcGlja2VyL3NyYy9saWIvZGlyZWN0aXZlcy9kYXRlcmFuZ2VwaWNrZXItaW5wdXQtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBVyxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsMkJBQTJCLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQWFuSCxXQUFNLG9DQUFvQyxHQUExQyxNQUFNLG9DQUFxQyxTQUFRLHFCQUFxQjtJQUF4RTs7UUFDWSxlQUFVLEdBQXFCLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUUzRSx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCxXQUFNLEdBQUcsMkJBQTJCLEVBQUUsQ0FBQztRQUN2QyxjQUFTLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRzlDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTdCLGlCQUFZLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDaEYsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUMzQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQ25DLENBQUM7S0F1Qkg7SUFyQlEsU0FBUztRQUNkLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLDZCQUE2QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBR1MsYUFBYTtRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBR1MsY0FBYztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOytHQXJDVSxvQ0FBb0M7bUdBQXBDLG9DQUFvQyxzWUFIcEMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsRUFBRSxXQUFXLENBQUM7O0FBRzdELG9DQUFvQztJQVhoRCxZQUFZLENBQUMsMEJBQTBCLENBQUM7R0FXNUIsb0NBQW9DLENBc0NoRDs0RkF0Q1ksb0NBQW9DO2tCQVZoRCxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUscUhBQXFIO29CQUMvSCxJQUFJLEVBQUU7d0JBQ0osaUJBQWlCLEVBQUUsc0NBQXNDO3dCQUN6RCxvQkFBb0IsRUFBRSxhQUFhO3FCQUNwQztvQkFDRCxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsRUFBRSxXQUFXLENBQUM7b0JBQ3hFLGNBQWMsRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDL0I7OEJBVVEsT0FBTztzQkFEYixNQUFNO2dCQXNCRyxhQUFhO3NCQUR0QixZQUFZO3VCQUFDLFNBQVM7Z0JBTWIsY0FBYztzQkFEdkIsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWRvbmx5Q29udHJvbGxlciwgV2l0aFRhYkluZGV4IH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IElucHV0Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvY3VzdG9tLWZvcm0tY29udHJvbCc7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgSUNvbmZpZywgTmd4TWFza1BpcGUsIHByb3ZpZGVOZ3hNYXNrIH0gZnJvbSAnbmd4LW1hc2snO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZyb21FdmVudCwgbWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGluamVjdERhdGVyYW5nZXBpY2tlckNvbmZpZyB9IGZyb20gJy4uL2RhdGVyYW5nZXBpY2tlci5jb25maWcnO1xuaW1wb3J0IHsgZ2V0RGF0ZXJhbmdlcGlja2VySW5wdXRGb3JtYXQsIGdldERhdGVyYW5nZXBpY2tlcklucHV0TWFzaywgZ2V0RGF0ZXJhbmdlcGlja2VySW5wdXRWYWx1ZUFzRGF0ZSB9IGZyb20gJy4uL3V0aWxzJztcblxuQENTU0NvbXBvbmVudCgnZGF0ZXJhbmdlcGlja2VyX19jb250cm9sJylcbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2lucHV0W29keERhdGVyYW5nZXBpY2tlckNvbnRyb2xdLGlucHV0W29keERhdGVyYW5nZXBpY2tlclN0YXJ0RGF0ZUNvbnRyb2xdLCBpbnB1dFtvZHhEYXRlcmFuZ2VwaWNrZXJFbmREYXRlQ29udHJvbF0nLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnJlYWRvbmx5XSc6ICdyZWFkb25seUNvbnRyb2xsZXI/LnJlYWRvbmx5IHx8IG51bGwnLFxuICAgICdbYXR0ci5wbGFjZWhvbGRlcl0nOiAncGxhY2Vob2xkZXInLFxuICB9LFxuICBwcm92aWRlcnM6IFtSZWFkb25seUNvbnRyb2xsZXIuY29ubmVjdCgpLCBwcm92aWRlTmd4TWFzaygpLCBOZ3hNYXNrUGlwZV0sXG4gIGhvc3REaXJlY3RpdmVzOiBbV2l0aFRhYkluZGV4XSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXJhbmdlcGlja2VySW5wdXRDb250cm9sRGlyZWN0aXZlIGV4dGVuZHMgSW5wdXRDb250cm9sRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBtYXNrQ29uZmlnOiBQYXJ0aWFsPElDb25maWc+ID0geyB2YWxpZGF0aW9uOiBmYWxzZSwgbGVhZFplcm9EYXRlVGltZTogdHJ1ZSB9O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByZWFkb25seUNvbnRyb2xsZXIgPSBSZWFkb25seUNvbnRyb2xsZXIuaW5qZWN0KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWcgPSBpbmplY3REYXRlcmFuZ2VwaWNrZXJDb25maWcoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlucHV0TWFzayA9IGdldERhdGVyYW5nZXBpY2tlcklucHV0TWFzayh0aGlzLmNvbmZpZyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBuZ3hNYXNrUGlwZSA9IGluamVjdChOZ3hNYXNrUGlwZSk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSB2YWx1ZUNoYW5nZSQgPSBmcm9tRXZlbnQodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICB0YXAoKCkgPT4gdGhpcy5hcHBseU1hc2soKSksXG4gICAgbWFwKCgpID0+IHRoaXMubmF0aXZlRWxlbWVudFZhbHVlKSxcbiAgKTtcblxuICBwdWJsaWMgYXBwbHlNYXNrKCk6IHZvaWQge1xuICAgIHRoaXMubmF0aXZlRWxlbWVudFZhbHVlID0gdGhpcy5uZ3hNYXNrUGlwZS50cmFuc2Zvcm0odGhpcy5uYXRpdmVFbGVtZW50VmFsdWUsIHRoaXMuaW5wdXRNYXNrLCB0aGlzLm1hc2tDb25maWcpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZUFzRGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIGdldERhdGVyYW5nZXBpY2tlcklucHV0VmFsdWVBc0RhdGUodGhpcy5jb25maWcsIHRoaXMubmF0aXZlRWxlbWVudFZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0RGF0ZXJhbmdlcGlja2VySW5wdXRGb3JtYXQodGhpcy5jb25maWcpLnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c2luJylcbiAgcHJvdGVjdGVkIGhhbmRsZUZvY3VzSW4oKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c2VkLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXG4gIHByb3RlY3RlZCBoYW5kbGVGb2N1c091dCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQuZW1pdChmYWxzZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './daterangepicker-input-control.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcmFuZ2VwaWNrZXIvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGVyYW5nZXBpY2tlci1pbnB1dC1jb250cm9sLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export { DatepickerInputDateOrder as DaterangepickerInputDateOrder } from '@odx/angular/components/datepicker';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlcGlja2VyLWlucHV0LWRhdGUtb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcmFuZ2VwaWNrZXIvc3JjL2xpYi9tb2RlbHMvZGF0ZXJhbmdlcGlja2VyLWlucHV0LWRhdGUtb3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixJQUFJLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEYXRlcGlja2VySW5wdXREYXRlT3JkZXIgYXMgRGF0ZXJhbmdlcGlja2VySW5wdXREYXRlT3JkZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcGlja2VyJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { DatepickerInputFormat as DaterangepickerInputFormat, DatepickerInputMask as DaterangepickerInputMask, } from '@odx/angular/components/datepicker';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlcGlja2VyLWlucHV0LXBhdHRlcm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcmFuZ2VwaWNrZXIvc3JjL2xpYi9tb2RlbHMvZGF0ZXJhbmdlcGlja2VyLWlucHV0LXBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHFCQUFxQixJQUFJLDBCQUEwQixFQUNuRCxtQkFBbUIsSUFBSSx3QkFBd0IsR0FFaEQsTUFBTSxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIERhdGVwaWNrZXJJbnB1dEZvcm1hdCBhcyBEYXRlcmFuZ2VwaWNrZXJJbnB1dEZvcm1hdCxcbiAgRGF0ZXBpY2tlcklucHV0TWFzayBhcyBEYXRlcmFuZ2VwaWNrZXJJbnB1dE1hc2ssXG4gIERhdGVwaWNrZXJJbnB1dFBhdHRlcm4gYXMgRGF0ZXJhbmdlcGlja2VySW5wdXRQYXR0ZXJuLFxufSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcGlja2VyJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './daterangepicker-input-date-order';
2
+ export * from './daterangepicker-input-pattern';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcmFuZ2VwaWNrZXIvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRlcmFuZ2VwaWNrZXItaW5wdXQtZGF0ZS1vcmRlcic7XG5leHBvcnQgKiBmcm9tICcuL2RhdGVyYW5nZXBpY2tlci1pbnB1dC1wYXR0ZXJuJztcbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { Directive, forwardRef } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import { validateDaterange } from '@odx/angular/components/calendar';
4
+ import * as i0 from "@angular/core";
5
+ export class DaterangepickerRangeValidator {
6
+ validate({ value }) {
7
+ const valuesArePresent = value && value.start && value.end;
8
+ const isValidRange = value && value.start && value.end && validateDaterange(value.start, value.end);
9
+ return (valuesArePresent &&
10
+ !isValidRange && {
11
+ invalidRange: true,
12
+ });
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangepickerRangeValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
15
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DaterangepickerRangeValidator, isStandalone: true, selector: "odx-daterangepicker[formControlName], odx-daterangepicker[formControl], odx-daterangepicker[ngModel]", providers: [
16
+ {
17
+ provide: NG_VALIDATORS,
18
+ useExisting: forwardRef(() => DaterangepickerRangeValidator),
19
+ multi: true,
20
+ },
21
+ ], ngImport: i0 }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangepickerRangeValidator, decorators: [{
24
+ type: Directive,
25
+ args: [{
26
+ standalone: true,
27
+ selector: 'odx-daterangepicker[formControlName], odx-daterangepicker[formControl], odx-daterangepicker[ngModel]',
28
+ providers: [
29
+ {
30
+ provide: NG_VALIDATORS,
31
+ useExisting: forwardRef(() => DaterangepickerRangeValidator),
32
+ multi: true,
33
+ },
34
+ ],
35
+ }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvZGF0ZXJhbmdlcGlja2VyL3NyYy9saWIvcmFuZ2UudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBZSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQWEsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFhaEYsTUFBTSxPQUFPLDZCQUE2QjtJQUNqQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQWlDO1FBQ3RELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUUzRCxNQUFNLFlBQVksR0FBRyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBHLE9BQU8sQ0FDTCxnQkFBZ0I7WUFDaEIsQ0FBQyxZQUFZLElBQUk7WUFDZixZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUNGLENBQUM7SUFDSixDQUFDOytHQVpVLDZCQUE2QjttR0FBN0IsNkJBQTZCLG1KQVI3QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixDQUFDO2dCQUM1RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7OzRGQUVVLDZCQUE2QjtrQkFYekMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHNHQUFzRztvQkFDaEgsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQzs0QkFDNUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlLCB2YWxpZGF0ZURhdGVyYW5nZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWRhdGVyYW5nZXBpY2tlcltmb3JtQ29udHJvbE5hbWVdLCBvZHgtZGF0ZXJhbmdlcGlja2VyW2Zvcm1Db250cm9sXSwgb2R4LWRhdGVyYW5nZXBpY2tlcltuZ01vZGVsXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlcmFuZ2VwaWNrZXJSYW5nZVZhbGlkYXRvciksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcmFuZ2VwaWNrZXJSYW5nZVZhbGlkYXRvciB7XG4gIHB1YmxpYyB2YWxpZGF0ZSh7IHZhbHVlIH06IEZvcm1Db250cm9sPERhdGVSYW5nZSB8IG51bGw+KSB7XG4gICAgY29uc3QgdmFsdWVzQXJlUHJlc2VudCA9IHZhbHVlICYmIHZhbHVlLnN0YXJ0ICYmIHZhbHVlLmVuZDtcblxuICAgIGNvbnN0IGlzVmFsaWRSYW5nZSA9IHZhbHVlICYmIHZhbHVlLnN0YXJ0ICYmIHZhbHVlLmVuZCAmJiB2YWxpZGF0ZURhdGVyYW5nZSh2YWx1ZS5zdGFydCwgdmFsdWUuZW5kKTtcblxuICAgIHJldHVybiAoXG4gICAgICB2YWx1ZXNBcmVQcmVzZW50ICYmXG4gICAgICAhaXNWYWxpZFJhbmdlICYmIHtcbiAgICAgICAgaW52YWxpZFJhbmdlOiB0cnVlLFxuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { Directive, forwardRef } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export class DaterangepickerRequiredValidator {
5
+ validate({ value }) {
6
+ const isValid = value && value.start && value.end;
7
+ return (!isValid && {
8
+ required: true,
9
+ });
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangepickerRequiredValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DaterangepickerRequiredValidator, isStandalone: true, selector: "odx-daterangepicker[required][formControlName], odx-daterangepicker[required][formControl], odx-daterangepicker[required][ngModel]", providers: [
13
+ {
14
+ provide: NG_VALIDATORS,
15
+ useExisting: forwardRef(() => DaterangepickerRequiredValidator),
16
+ multi: true,
17
+ },
18
+ ], ngImport: i0 }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangepickerRequiredValidator, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ standalone: true,
24
+ selector: 'odx-daterangepicker[required][formControlName], odx-daterangepicker[required][formControl], odx-daterangepicker[required][ngModel]',
25
+ providers: [
26
+ {
27
+ provide: NG_VALIDATORS,
28
+ useExisting: forwardRef(() => DaterangepickerRequiredValidator),
29
+ multi: true,
30
+ },
31
+ ],
32
+ }]
33
+ }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvZGF0ZXJhbmdlcGlja2VyL3NyYy9saWIvcmVxdWlyZWQudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBZSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFjNUQsTUFBTSxPQUFPLGdDQUFnQztJQUNwQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQWlDO1FBQ3RELE1BQU0sT0FBTyxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFFbEQsT0FBTyxDQUNMLENBQUMsT0FBTyxJQUFJO1lBQ1YsUUFBUSxFQUFFLElBQUk7U0FDZixDQUNGLENBQUM7SUFDSixDQUFDOytHQVRVLGdDQUFnQzttR0FBaEMsZ0NBQWdDLGlMQVJoQztZQUNUO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2dCQUMvRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7OzRGQUVVLGdDQUFnQztrQkFYNUMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG9JQUFvSTtvQkFDOUksU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQ0FBaUMsQ0FBQzs0QkFDL0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXInO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdvZHgtZGF0ZXJhbmdlcGlja2VyW3JlcXVpcmVkXVtmb3JtQ29udHJvbE5hbWVdLCBvZHgtZGF0ZXJhbmdlcGlja2VyW3JlcXVpcmVkXVtmb3JtQ29udHJvbF0sIG9keC1kYXRlcmFuZ2VwaWNrZXJbcmVxdWlyZWRdW25nTW9kZWxdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVyYW5nZXBpY2tlclJlcXVpcmVkVmFsaWRhdG9yKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVyYW5nZXBpY2tlclJlcXVpcmVkVmFsaWRhdG9yIHtcbiAgcHVibGljIHZhbGlkYXRlKHsgdmFsdWUgfTogRm9ybUNvbnRyb2w8RGF0ZVJhbmdlIHwgbnVsbD4pIHtcbiAgICBjb25zdCBpc1ZhbGlkID0gdmFsdWUgJiYgdmFsdWUuc3RhcnQgJiYgdmFsdWUuZW5kO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICFpc1ZhbGlkICYmIHtcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,16 @@
1
+ import { DaterangepickerInputDateOrder, DaterangepickerInputFormat, DaterangepickerInputMask } from '../models';
2
+ function getDaterangepickerInputPattern({ inputDateOrder, inputDateSeparator }, pattern) {
3
+ const patternList = {
4
+ [DaterangepickerInputDateOrder.DMY]: `${pattern.DAYS}${inputDateSeparator}${pattern.MONTH}${inputDateSeparator}${pattern.YEAR}`,
5
+ [DaterangepickerInputDateOrder.MDY]: `${pattern.MONTH}${inputDateSeparator}${pattern.DAYS}${inputDateSeparator}${pattern.YEAR}`,
6
+ [DaterangepickerInputDateOrder.YMD]: `${pattern.YEAR}${inputDateSeparator}${pattern.MONTH}${inputDateSeparator}${pattern.DAYS}`,
7
+ };
8
+ return patternList[inputDateOrder];
9
+ }
10
+ export function getDaterangepickerInputFormat(config) {
11
+ return getDaterangepickerInputPattern(config, DaterangepickerInputFormat);
12
+ }
13
+ export function getDaterangepickerInputMask(config) {
14
+ return getDaterangepickerInputPattern(config, DaterangepickerInputMask);
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWRhdGVyYW5nZXBpY2tlci1pbnB1dC1wYXR0ZXJuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvZGF0ZXJhbmdlcGlja2VyL3NyYy9saWIvdXRpbHMvZ2V0LWRhdGVyYW5nZXBpY2tlci1pbnB1dC1wYXR0ZXJuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBRSx3QkFBd0IsRUFBK0IsTUFBTSxXQUFXLENBQUM7QUFFN0ksU0FBUyw4QkFBOEIsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBeUIsRUFBRSxPQUFvQztJQUN6SSxNQUFNLFdBQVcsR0FBa0Q7UUFDakUsQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFO1FBQy9ILENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRTtRQUMvSCxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksR0FBRyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUU7S0FDaEksQ0FBQztJQUVGLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsTUFBNkI7SUFDekUsT0FBTyw4QkFBOEIsQ0FBQyxNQUFNLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztBQUM1RSxDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQixDQUFDLE1BQTZCO0lBQ3ZFLE9BQU8sOEJBQThCLENBQUMsTUFBTSxFQUFFLHdCQUF3QixDQUFDLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVyYW5nZXBpY2tlckNvbmZpZyB9IGZyb20gJy4uL2RhdGVyYW5nZXBpY2tlci5jb25maWcnO1xuaW1wb3J0IHsgRGF0ZXJhbmdlcGlja2VySW5wdXREYXRlT3JkZXIsIERhdGVyYW5nZXBpY2tlcklucHV0Rm9ybWF0LCBEYXRlcmFuZ2VwaWNrZXJJbnB1dE1hc2ssIERhdGVyYW5nZXBpY2tlcklucHV0UGF0dGVybiB9IGZyb20gJy4uL21vZGVscyc7XG5cbmZ1bmN0aW9uIGdldERhdGVyYW5nZXBpY2tlcklucHV0UGF0dGVybih7IGlucHV0RGF0ZU9yZGVyLCBpbnB1dERhdGVTZXBhcmF0b3IgfTogRGF0ZXJhbmdlcGlja2VyQ29uZmlnLCBwYXR0ZXJuOiBEYXRlcmFuZ2VwaWNrZXJJbnB1dFBhdHRlcm4pOiBzdHJpbmcge1xuICBjb25zdCBwYXR0ZXJuTGlzdDogUmVjb3JkPERhdGVyYW5nZXBpY2tlcklucHV0RGF0ZU9yZGVyLCBzdHJpbmc+ID0ge1xuICAgIFtEYXRlcmFuZ2VwaWNrZXJJbnB1dERhdGVPcmRlci5ETVldOiBgJHtwYXR0ZXJuLkRBWVN9JHtpbnB1dERhdGVTZXBhcmF0b3J9JHtwYXR0ZXJuLk1PTlRIfSR7aW5wdXREYXRlU2VwYXJhdG9yfSR7cGF0dGVybi5ZRUFSfWAsXG4gICAgW0RhdGVyYW5nZXBpY2tlcklucHV0RGF0ZU9yZGVyLk1EWV06IGAke3BhdHRlcm4uTU9OVEh9JHtpbnB1dERhdGVTZXBhcmF0b3J9JHtwYXR0ZXJuLkRBWVN9JHtpbnB1dERhdGVTZXBhcmF0b3J9JHtwYXR0ZXJuLllFQVJ9YCxcbiAgICBbRGF0ZXJhbmdlcGlja2VySW5wdXREYXRlT3JkZXIuWU1EXTogYCR7cGF0dGVybi5ZRUFSfSR7aW5wdXREYXRlU2VwYXJhdG9yfSR7cGF0dGVybi5NT05USH0ke2lucHV0RGF0ZVNlcGFyYXRvcn0ke3BhdHRlcm4uREFZU31gLFxuICB9O1xuXG4gIHJldHVybiBwYXR0ZXJuTGlzdFtpbnB1dERhdGVPcmRlcl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRlcmFuZ2VwaWNrZXJJbnB1dEZvcm1hdChjb25maWc6IERhdGVyYW5nZXBpY2tlckNvbmZpZyk6IHN0cmluZyB7XG4gIHJldHVybiBnZXREYXRlcmFuZ2VwaWNrZXJJbnB1dFBhdHRlcm4oY29uZmlnLCBEYXRlcmFuZ2VwaWNrZXJJbnB1dEZvcm1hdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRlcmFuZ2VwaWNrZXJJbnB1dE1hc2soY29uZmlnOiBEYXRlcmFuZ2VwaWNrZXJDb25maWcpOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0RGF0ZXJhbmdlcGlja2VySW5wdXRQYXR0ZXJuKGNvbmZpZywgRGF0ZXJhbmdlcGlja2VySW5wdXRNYXNrKTtcbn1cbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { isValid, toDate } from 'date-fns';
2
+ import { DaterangepickerInputDateOrder } from '../models';
3
+ const functionList = {
4
+ [DaterangepickerInputDateOrder.DMY]: (splittedValue) => {
5
+ const [day, month, year] = splittedValue;
6
+ return { month, day, year };
7
+ },
8
+ [DaterangepickerInputDateOrder.MDY]: (splittedValue) => {
9
+ const [month, day, year] = splittedValue;
10
+ return { month, day, year };
11
+ },
12
+ [DaterangepickerInputDateOrder.YMD]: (splittedValue) => {
13
+ const [year, month, day] = splittedValue;
14
+ return { month, day, year };
15
+ },
16
+ };
17
+ function getDateCandidate({ inputDateOrder, inputDateSeparator }, value) {
18
+ const splittedValue = value.split(inputDateSeparator);
19
+ const { month, day, year } = functionList[inputDateOrder](splittedValue);
20
+ const isDateCandidateInvalid = !month || !day || !year;
21
+ return isDateCandidateInvalid ? null : `${month}.${day}.${year}`;
22
+ }
23
+ export function getDaterangepickerInputValueAsDate(config, value) {
24
+ const dateCandidate = getDateCandidate(config, value);
25
+ if (!dateCandidate)
26
+ return null;
27
+ const date = toDate(Date.parse(dateCandidate));
28
+ return isValid(date) ? date : null;
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWRhdGVyYW5nZXBpY2tlci1pbnB1dC12YWx1ZS1hcy1kYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvZGF0ZXJhbmdlcGlja2VyL3NyYy9saWIvdXRpbHMvZ2V0LWRhdGVyYW5nZXBpY2tlci1pbnB1dC12YWx1ZS1hcy1kYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTNDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVExRCxNQUFNLFlBQVksR0FBK0Y7SUFDL0csQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGFBQXVCLEVBQUUsRUFBRTtRQUMvRCxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUM7UUFDekMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxhQUF1QixFQUFFLEVBQUU7UUFDL0QsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsYUFBYSxDQUFDO1FBQ3pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsYUFBdUIsRUFBRSxFQUFFO1FBQy9ELE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQztRQUN6QyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0NBQ0YsQ0FBQztBQUVGLFNBQVMsZ0JBQWdCLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQXlCLEVBQUUsS0FBYTtJQUNwRyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFdEQsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQTJCLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVqRyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBRXZELE9BQU8sc0JBQXNCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQ25FLENBQUM7QUFFRCxNQUFNLFVBQVUsa0NBQWtDLENBQUMsTUFBNkIsRUFBRSxLQUFhO0lBQzdGLE1BQU0sYUFBYSxHQUFrQixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFckUsSUFBSSxDQUFDLGFBQWE7UUFBRSxPQUFPLElBQUksQ0FBQztJQUVoQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBRS9DLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNWYWxpZCwgdG9EYXRlIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgRGF0ZXJhbmdlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi4vZGF0ZXJhbmdlcGlja2VyLmNvbmZpZyc7XG5pbXBvcnQgeyBEYXRlcmFuZ2VwaWNrZXJJbnB1dERhdGVPcmRlciB9IGZyb20gJy4uL21vZGVscyc7XG5cbmludGVyZmFjZSBEYXRlQ2FuZGlkYXRlSW50ZXJmYWNlIHtcbiAgbW9udGg6IHN0cmluZztcbiAgZGF5OiBzdHJpbmc7XG4gIHllYXI6IHN0cmluZztcbn1cblxuY29uc3QgZnVuY3Rpb25MaXN0OiBSZWNvcmQ8RGF0ZXJhbmdlcGlja2VySW5wdXREYXRlT3JkZXIsIChzcGxpdHRlZFZhbHVlOiBzdHJpbmdbXSkgPT4gRGF0ZUNhbmRpZGF0ZUludGVyZmFjZT4gPSB7XG4gIFtEYXRlcmFuZ2VwaWNrZXJJbnB1dERhdGVPcmRlci5ETVldOiAoc3BsaXR0ZWRWYWx1ZTogc3RyaW5nW10pID0+IHtcbiAgICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBzcGxpdHRlZFZhbHVlO1xuICAgIHJldHVybiB7IG1vbnRoLCBkYXksIHllYXIgfTtcbiAgfSxcbiAgW0RhdGVyYW5nZXBpY2tlcklucHV0RGF0ZU9yZGVyLk1EWV06IChzcGxpdHRlZFZhbHVlOiBzdHJpbmdbXSkgPT4ge1xuICAgIGNvbnN0IFttb250aCwgZGF5LCB5ZWFyXSA9IHNwbGl0dGVkVmFsdWU7XG4gICAgcmV0dXJuIHsgbW9udGgsIGRheSwgeWVhciB9O1xuICB9LFxuICBbRGF0ZXJhbmdlcGlja2VySW5wdXREYXRlT3JkZXIuWU1EXTogKHNwbGl0dGVkVmFsdWU6IHN0cmluZ1tdKSA9PiB7XG4gICAgY29uc3QgW3llYXIsIG1vbnRoLCBkYXldID0gc3BsaXR0ZWRWYWx1ZTtcbiAgICByZXR1cm4geyBtb250aCwgZGF5LCB5ZWFyIH07XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBnZXREYXRlQ2FuZGlkYXRlKHsgaW5wdXREYXRlT3JkZXIsIGlucHV0RGF0ZVNlcGFyYXRvciB9OiBEYXRlcmFuZ2VwaWNrZXJDb25maWcsIHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3Qgc3BsaXR0ZWRWYWx1ZSA9IHZhbHVlLnNwbGl0KGlucHV0RGF0ZVNlcGFyYXRvcik7XG5cbiAgY29uc3QgeyBtb250aCwgZGF5LCB5ZWFyIH06IERhdGVDYW5kaWRhdGVJbnRlcmZhY2UgPSBmdW5jdGlvbkxpc3RbaW5wdXREYXRlT3JkZXJdKHNwbGl0dGVkVmFsdWUpO1xuXG4gIGNvbnN0IGlzRGF0ZUNhbmRpZGF0ZUludmFsaWQgPSAhbW9udGggfHwgIWRheSB8fCAheWVhcjtcblxuICByZXR1cm4gaXNEYXRlQ2FuZGlkYXRlSW52YWxpZCA/IG51bGwgOiBgJHttb250aH0uJHtkYXl9LiR7eWVhcn1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZXJhbmdlcGlja2VySW5wdXRWYWx1ZUFzRGF0ZShjb25maWc6IERhdGVyYW5nZXBpY2tlckNvbmZpZywgdmFsdWU6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcbiAgY29uc3QgZGF0ZUNhbmRpZGF0ZTogc3RyaW5nIHwgbnVsbCA9IGdldERhdGVDYW5kaWRhdGUoY29uZmlnLCB2YWx1ZSk7XG5cbiAgaWYgKCFkYXRlQ2FuZGlkYXRlKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBkYXRlID0gdG9EYXRlKERhdGUucGFyc2UoZGF0ZUNhbmRpZGF0ZSkpO1xuXG4gIHJldHVybiBpc1ZhbGlkKGRhdGUpID8gZGF0ZSA6IG51bGw7XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './get-daterangepicker-input-pattern';
2
+ export * from './get-daterangepicker-input-value-as-date';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcmFuZ2VwaWNrZXIvc3JjL2xpYi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dldC1kYXRlcmFuZ2VwaWNrZXItaW5wdXQtcGF0dGVybic7XG5leHBvcnQgKiBmcm9tICcuL2dldC1kYXRlcmFuZ2VwaWNrZXItaW5wdXQtdmFsdWUtYXMtZGF0ZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItY29tcG9uZW50cy1kYXRlcmFuZ2VwaWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9kYXRlcmFuZ2VwaWNrZXIvc3JjL29keC1hbmd1bGFyLWNvbXBvbmVudHMtZGF0ZXJhbmdlcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,30 +1,49 @@
1
1
  import { inject, Injectable, Renderer2 } from '@angular/core';
2
2
  import { injectElement } from './angular';
3
+ import { getUniqueId } from './get-unique-id';
4
+ import { isPresent } from './type-guards';
3
5
  import * as i0 from "@angular/core";
4
6
  export class EventManager {
5
7
  constructor() {
6
8
  this.element = injectElement();
7
9
  this.renderer = inject(Renderer2);
8
- this.listeners = [];
10
+ this.listeners = new Map();
9
11
  }
10
12
  destroyListeners() {
11
- while (this.listeners.length)
12
- this.listeners.pop()?.();
13
+ this.listeners.forEach((listener) => {
14
+ if (listener) {
15
+ listener();
16
+ }
17
+ });
18
+ this.listeners.clear();
13
19
  }
14
- register(eventNames, callback, target) {
15
- for (const eventName of eventNames) {
16
- if (eventName) {
17
- this.listeners.push(this.renderer.listen(target ?? this.element.nativeElement, eventName, (event) => callback(event)));
20
+ destroyListener(listenerReferenceKey) {
21
+ if (this.listeners.has(listenerReferenceKey)) {
22
+ const listenerFn = this.listeners.get(listenerReferenceKey);
23
+ if (listenerFn) {
24
+ listenerFn();
18
25
  }
26
+ this.listeners.delete(listenerReferenceKey);
19
27
  }
20
28
  }
29
+ register(eventNames, callback, target) {
30
+ return eventNames.filter(isPresent).map((eventName) => {
31
+ const listenerFn = this.renderer.listen(target ?? this.element.nativeElement, eventName, (event) => callback(event));
32
+ const id = getUniqueId('registeredEvent');
33
+ this.listeners.set(id, listenerFn);
34
+ return id;
35
+ });
36
+ }
21
37
  ngOnDestroy() {
22
38
  this.destroyListeners();
23
39
  }
40
+ getActiveListenersNames() {
41
+ return Array.from(this.listeners.keys());
42
+ }
24
43
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EventManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
44
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EventManager }); }
26
45
  }
27
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EventManager, decorators: [{
28
47
  type: Injectable
29
48
  }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci91dGlscy9zcmMvbGliL2hlbHBlcnMvZXZlbnQtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHMUMsTUFBTSxPQUFPLFlBQVk7SUFEekI7UUFFbUIsWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsY0FBUyxHQUFzQixFQUFFLENBQUM7S0FxQnBEO0lBbkJRLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFTSxRQUFRLENBQ2IsVUFBZ0MsRUFDaEMsUUFBNkIsRUFDN0IsTUFBbUQ7UUFFbkQsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUU7WUFDbEMsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN4SDtTQUNGO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQzsrR0F2QlUsWUFBWTttSEFBWixZQUFZOzs0RkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0RWxlbWVudCB9IGZyb20gJy4vYW5ndWxhcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFdmVudE1hbmFnZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsaXN0ZW5lcnM6IEFycmF5PCgpID0+IHZvaWQ+ID0gW107XG5cbiAgcHVibGljIGRlc3Ryb3lMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgd2hpbGUgKHRoaXMubGlzdGVuZXJzLmxlbmd0aCkgdGhpcy5saXN0ZW5lcnMucG9wKCk/LigpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyPFQgZXh0ZW5kcyBFdmVudCA9IEV2ZW50PihcbiAgICBldmVudE5hbWVzOiBBcnJheTxzdHJpbmcgfCBudWxsPixcbiAgICBjYWxsYmFjazogKGV2ZW50PzogVCkgPT4gdm9pZCxcbiAgICB0YXJnZXQ/OiAnZG9jdW1lbnQnIHwgJ3dpbmRvdycgfCBFdmVudFRhcmdldCB8IG51bGxcbiAgKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBldmVudE5hbWUgb2YgZXZlbnROYW1lcykge1xuICAgICAgaWYgKGV2ZW50TmFtZSkge1xuICAgICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRhcmdldCA/PyB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgZXZlbnROYW1lLCAoZXZlbnQpID0+IGNhbGxiYWNrKGV2ZW50KSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lMaXN0ZW5lcnMoKTtcbiAgfVxufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci91dGlscy9zcmMvbGliL2hlbHBlcnMvZXZlbnQtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHMUMsTUFBTSxPQUFPLFlBQVk7SUFEekI7UUFFbUIsWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsY0FBUyxHQUE0QixJQUFJLEdBQUcsRUFBc0IsQ0FBQztLQXlDckY7SUF2Q1EsZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBb0IsRUFBRSxFQUFFO1lBQzlDLElBQUksUUFBUSxFQUFFO2dCQUNaLFFBQVEsRUFBRSxDQUFDO2FBQ1o7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxvQkFBNEI7UUFDakQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO1lBQzVDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDNUQsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsVUFBVSxFQUFFLENBQUM7YUFDZDtZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBRU0sUUFBUSxDQUNiLFVBQWdDLEVBQ2hDLFFBQTZCLEVBQzdCLE1BQW1EO1FBRW5ELE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFpQixFQUFFLEVBQUU7WUFDNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDckgsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ25DLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCO1FBQzVCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQzsrR0EzQ1UsWUFBWTttSEFBWixZQUFZOzs0RkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0RWxlbWVudCB9IGZyb20gJy4vYW5ndWxhcic7XG5pbXBvcnQgeyBnZXRVbmlxdWVJZCB9IGZyb20gJy4vZ2V0LXVuaXF1ZS1pZCc7XG5pbXBvcnQgeyBpc1ByZXNlbnQgfSBmcm9tICcuL3R5cGUtZ3VhcmRzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV2ZW50TWFuYWdlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlbmVyczogTWFwPHN0cmluZywgKCkgPT4gdm9pZD4gPSBuZXcgTWFwPHN0cmluZywgKCkgPT4gdm9pZD4oKTtcblxuICBwdWJsaWMgZGVzdHJveUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcjogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgaWYgKGxpc3RlbmVyKSB7XG4gICAgICAgIGxpc3RlbmVyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5saXN0ZW5lcnMuY2xlYXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95TGlzdGVuZXIobGlzdGVuZXJSZWZlcmVuY2VLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpc3RlbmVycy5oYXMobGlzdGVuZXJSZWZlcmVuY2VLZXkpKSB7XG4gICAgICBjb25zdCBsaXN0ZW5lckZuID0gdGhpcy5saXN0ZW5lcnMuZ2V0KGxpc3RlbmVyUmVmZXJlbmNlS2V5KTtcbiAgICAgIGlmIChsaXN0ZW5lckZuKSB7XG4gICAgICAgIGxpc3RlbmVyRm4oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubGlzdGVuZXJzLmRlbGV0ZShsaXN0ZW5lclJlZmVyZW5jZUtleSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyPFQgZXh0ZW5kcyBFdmVudCA9IEV2ZW50PihcbiAgICBldmVudE5hbWVzOiBBcnJheTxzdHJpbmcgfCBudWxsPixcbiAgICBjYWxsYmFjazogKGV2ZW50PzogVCkgPT4gdm9pZCxcbiAgICB0YXJnZXQ/OiAnZG9jdW1lbnQnIHwgJ3dpbmRvdycgfCBFdmVudFRhcmdldCB8IG51bGwsXG4gICk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBldmVudE5hbWVzLmZpbHRlcihpc1ByZXNlbnQpLm1hcCgoZXZlbnROYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGxpc3RlbmVyRm4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0YXJnZXQgPz8gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGV2ZW50TmFtZSwgKGV2ZW50KSA9PiBjYWxsYmFjayhldmVudCkpO1xuICAgICAgY29uc3QgaWQgPSBnZXRVbmlxdWVJZCgncmVnaXN0ZXJlZEV2ZW50Jyk7XG4gICAgICB0aGlzLmxpc3RlbmVycy5zZXQoaWQsIGxpc3RlbmVyRm4pO1xuICAgICAgcmV0dXJuIGlkO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveUxpc3RlbmVycygpO1xuICB9XG5cbiAgcHVibGljIGdldEFjdGl2ZUxpc3RlbmVyc05hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmxpc3RlbmVycy5rZXlzKCkpO1xuICB9XG59XG4iXX0=