@wlcm/angular 1.1.2 → 17.1.1

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 (65) hide show
  1. package/core/esm2022/lib/components/calendar-icon/calendar-icon.component.mjs +12 -0
  2. package/core/esm2022/lib/constants/icon.contants.mjs +3 -1
  3. package/core/esm2022/lib/directives/icon.directive.mjs +21 -6
  4. package/core/esm2022/lib/models/icon.models.mjs +2 -1
  5. package/core/fesm2022/wlcm-angular-core.mjs +30 -6
  6. package/core/fesm2022/wlcm-angular-core.mjs.map +1 -1
  7. package/core/lib/components/calendar-icon/calendar-icon.component.d.ts +5 -0
  8. package/core/lib/directives/icon.directive.d.ts +4 -2
  9. package/core/lib/models/icon.models.d.ts +1 -0
  10. package/date-range-picker/README.md +7 -0
  11. package/date-range-picker/esm2022/index.mjs +7 -0
  12. package/date-range-picker/esm2022/lib/components/calendar-header/calendar-header.component.mjs +62 -0
  13. package/date-range-picker/esm2022/lib/components/date-range-picker/date-range-picker.component.mjs +158 -0
  14. package/date-range-picker/esm2022/lib/components/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.mjs +19 -0
  15. package/date-range-picker/esm2022/lib/components/date-range-picker-input/date-range-picker-input.component.mjs +122 -0
  16. package/date-range-picker/esm2022/lib/constants/date-range-selection-model.constants.mjs +10 -0
  17. package/date-range-picker/esm2022/lib/constants/date-range-trigger-selection-model.constants.mjs +10 -0
  18. package/date-range-picker/esm2022/lib/date-range-picker.module.mjs +64 -0
  19. package/date-range-picker/esm2022/lib/directives/date-range-picker-input-base.directive.mjs +92 -0
  20. package/date-range-picker/esm2022/lib/directives/date-range-picker-input-end.directive.mjs +65 -0
  21. package/date-range-picker/esm2022/lib/directives/date-range-picker-input-start.directive.mjs +65 -0
  22. package/date-range-picker/esm2022/lib/directives/date-range-picker-trigger.directive.mjs +80 -0
  23. package/date-range-picker/esm2022/lib/directives/left-calendar.directive.mjs +50 -0
  24. package/date-range-picker/esm2022/lib/directives/right-calendar.directive.mjs +59 -0
  25. package/date-range-picker/esm2022/lib/models/data-range-calendar.models.mjs +43 -0
  26. package/date-range-picker/esm2022/lib/models/date-range-validation.models.mjs +5 -0
  27. package/date-range-picker/esm2022/lib/utils/date-range-input.validators.mjs +16 -0
  28. package/date-range-picker/esm2022/lib/utils/date-range-picker-errors.mjs +9 -0
  29. package/date-range-picker/esm2022/wlcm-angular-date-range-picker.mjs +5 -0
  30. package/date-range-picker/fesm2022/wlcm-angular-date-range-picker.mjs +822 -0
  31. package/date-range-picker/fesm2022/wlcm-angular-date-range-picker.mjs.map +1 -0
  32. package/date-range-picker/index.d.ts +6 -0
  33. package/date-range-picker/lib/components/calendar-header/calendar-header.component.d.ts +20 -0
  34. package/date-range-picker/lib/components/date-range-picker/date-range-picker.component.d.ts +37 -0
  35. package/date-range-picker/lib/components/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.d.ts +8 -0
  36. package/date-range-picker/lib/components/date-range-picker-input/date-range-picker-input.component.d.ts +35 -0
  37. package/date-range-picker/lib/constants/date-range-selection-model.constants.d.ts +5 -0
  38. package/date-range-picker/lib/constants/date-range-trigger-selection-model.constants.d.ts +5 -0
  39. package/date-range-picker/lib/date-range-picker.module.d.ts +10 -0
  40. package/date-range-picker/lib/directives/date-range-picker-input-base.directive.d.ts +32 -0
  41. package/date-range-picker/lib/directives/date-range-picker-input-end.directive.d.ts +16 -0
  42. package/date-range-picker/lib/directives/date-range-picker-input-start.directive.d.ts +17 -0
  43. package/date-range-picker/lib/directives/date-range-picker-trigger.directive.d.ts +26 -0
  44. package/date-range-picker/lib/directives/left-calendar.directive.d.ts +15 -0
  45. package/date-range-picker/lib/directives/right-calendar.directive.d.ts +18 -0
  46. package/date-range-picker/lib/models/data-range-calendar.models.d.ts +21 -0
  47. package/date-range-picker/lib/models/date-range-validation.models.d.ts +3 -0
  48. package/date-range-picker/lib/utils/date-range-input.validators.d.ts +2 -0
  49. package/date-range-picker/lib/utils/date-range-picker-errors.d.ts +4 -0
  50. package/forms/esm2022/lib/forms/components/form-field/form-field.component.mjs +8 -5
  51. package/forms/esm2022/lib/forms/components/select/select.component.mjs +1 -1
  52. package/forms/esm2022/lib/forms/directives/form-field-prefix.directive.mjs +12 -4
  53. package/forms/fesm2022/wlcm-angular-forms.mjs +18 -7
  54. package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
  55. package/forms/lib/forms/components/form-field/form-field.component.d.ts +4 -3
  56. package/forms/lib/forms/directives/form-field-prefix.directive.d.ts +1 -0
  57. package/package.json +8 -1
  58. package/styles/components/date-range-picker/_date-range-picker-body.scss +117 -0
  59. package/styles/components/date-range-picker/_date-range-picker-header.scss +59 -0
  60. package/styles/components/date-range-picker/_date-range-picker-input.scss +38 -0
  61. package/styles/components/date-range-picker/_date-range-picker-panel.scss +21 -0
  62. package/styles/components/date-range-picker/index.scss +11 -0
  63. package/styles/components/forms/_form-field.scss +4 -0
  64. package/styles/core/_all-theme.scss +2 -0
  65. package/styles/core/_utils.scss +2 -0
@@ -0,0 +1,158 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, ElementRef, Inject, ViewChild, computed, effect, signal, } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { DefaultMatCalendarRangeStrategy, MAT_DATE_RANGE_SELECTION_STRATEGY, MatCalendar, MatDateSelectionModel, MatDatepickerModule, MatMonthView, } from '@angular/material/datepicker';
5
+ import { WlcmCalendarHeaderComponent } from '../calendar-header/calendar-header.component';
6
+ import { WlcmLeftCalendarDirective } from '../../directives/left-calendar.directive';
7
+ import { WLCM_DATE_RANGE_SELECTION_MODEL, WLCM_DATE_RANGE_SELECTION_MODEL_PROVIDER, } from '../../constants/date-range-selection-model.constants';
8
+ import { WlcmRightCalendarDirective } from '../../directives/right-calendar.directive';
9
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
10
+ import { WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL } from '../../constants/date-range-trigger-selection-model.constants';
11
+ import { WlcmDateRangePickerTrigger } from '../../directives/date-range-picker-trigger.directive';
12
+ import { WlcmDateRangePickerBottomPanelComponent } from '../date-range-picker-bottom-panel/date-range-picker-bottom-panel.component';
13
+ import { Subject, startWith, takeUntil, tap } from 'rxjs';
14
+ import { DateAdapter } from '@angular/material/core';
15
+ import * as moment from 'moment';
16
+ import * as i0 from "@angular/core";
17
+ import * as i1 from "@angular/material/core";
18
+ import * as i2 from "../../directives/date-range-picker-trigger.directive";
19
+ import * as i3 from "@angular/material/datepicker";
20
+ let WlcmDateRangePickerComponent = class WlcmDateRangePickerComponent {
21
+ constructor(rangeSelectionStrategy, localSelectionModel, triggerSelectionModel, dateAdapter, trigger) {
22
+ this.rangeSelectionStrategy = rangeSelectionStrategy;
23
+ this.localSelectionModel = localSelectionModel;
24
+ this.triggerSelectionModel = triggerSelectionModel;
25
+ this.dateAdapter = dateAdapter;
26
+ this.trigger = trigger;
27
+ this.WlcmCalendarHeaderComponent = WlcmCalendarHeaderComponent;
28
+ this._isViewInitialized = false;
29
+ this._isComplete = signal(false);
30
+ this.isComplete = computed(() => this._isComplete());
31
+ this.startDate = signal(moment());
32
+ this.leftCalendarYearViewActivated = signal(false);
33
+ this.rightCalendarYearViewActivated = signal(false);
34
+ this.handleSelectionChanged();
35
+ this.localSelectionModel.updateSelection(this.triggerSelectionModel.selection, this);
36
+ if (this.triggerSelectionModel.selection.start) {
37
+ this.startDate.set(this.triggerSelectionModel.selection.start);
38
+ }
39
+ effect(() => {
40
+ if (!this._isViewInitialized)
41
+ return;
42
+ this.leftCalendar.activeDate = this.startDate();
43
+ this.rightCalendar.activeDate = this.dateAdapter.addCalendarMonths(this.startDate(), 1);
44
+ });
45
+ }
46
+ ngAfterViewInit() {
47
+ this._isViewInitialized = true;
48
+ this.leftCalendar.viewChanged.pipe(untilDestroyed(this)).subscribe((view) => {
49
+ this.leftCalendarYearViewActivated.set(view !== 'month');
50
+ });
51
+ this.rightCalendar.viewChanged.pipe(untilDestroyed(this)).subscribe((view) => {
52
+ this.rightCalendarYearViewActivated.set(view !== 'month');
53
+ });
54
+ this.handleRightCalendarPreviewChange();
55
+ }
56
+ calendarSelection(event) {
57
+ const newSelection = this.rangeSelectionStrategy.selectionFinished(event.value, this.localSelectionModel.selection, event.event);
58
+ this.localSelectionModel.updateSelection(newSelection, this);
59
+ }
60
+ calendarDragDrop(event) {
61
+ this.localSelectionModel.updateSelection(event.value, this);
62
+ }
63
+ apply() {
64
+ this.triggerSelectionModel.updateSelection(this.localSelectionModel.selection, this);
65
+ this.trigger.close();
66
+ }
67
+ reset() {
68
+ this.trigger.close();
69
+ }
70
+ get selected() {
71
+ return this.localSelectionModel.selection;
72
+ }
73
+ get leftCalendarActiveCell() {
74
+ return this.leftCalendarElement.nativeElement.querySelector('.mat-calendar-body-active');
75
+ }
76
+ handleSelectionChanged() {
77
+ this.localSelectionModel.selectionChanged
78
+ .pipe(untilDestroyed(this))
79
+ .subscribe(() => this._isComplete.set(this.localSelectionModel.isComplete()));
80
+ }
81
+ handleRightCalendarPreviewChange() {
82
+ const viewChanged = new Subject();
83
+ this.rightCalendar.viewChanged
84
+ .pipe(untilDestroyed(this))
85
+ .pipe(tap(() => viewChanged.next()))
86
+ .pipe(startWith(this.rightCalendar.currentView))
87
+ .subscribe((view) => {
88
+ if (view !== 'month')
89
+ return;
90
+ this.rightCalendar.monthView._matCalendarBody.previewChange
91
+ .pipe(takeUntil(viewChanged), untilDestroyed(this))
92
+ .subscribe(() => {
93
+ if (this.leftCalendar.currentView !== 'month' || !this.leftCalendar.monthView._rangeStart)
94
+ return;
95
+ this.leftCalendar.monthView._previewStart = this.rightCalendar.monthView._previewStart;
96
+ this.leftCalendar.monthView._previewEnd = this.rightCalendar.monthView._previewEnd;
97
+ const activeCell = this.leftCalendarActiveCell;
98
+ if (activeCell && activeCell === document.activeElement)
99
+ activeCell.blur();
100
+ this.leftCalendar.monthView._changeDetectorRef.markForCheck();
101
+ });
102
+ });
103
+ }
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerComponent, deps: [{ token: MAT_DATE_RANGE_SELECTION_STRATEGY }, { token: WLCM_DATE_RANGE_SELECTION_MODEL }, { token: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL }, { token: i1.DateAdapter }, { token: i2.WlcmDateRangePickerTrigger }], target: i0.ɵɵFactoryTarget.Component }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDateRangePickerComponent, isStandalone: true, selector: "wlcm-date-range-picker", providers: [
106
+ {
107
+ provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
108
+ useClass: DefaultMatCalendarRangeStrategy,
109
+ },
110
+ WLCM_DATE_RANGE_SELECTION_MODEL_PROVIDER,
111
+ ], viewQueries: [{ propertyName: "leftCalendar", first: true, predicate: WlcmLeftCalendarDirective, descendants: true, read: MatCalendar }, { propertyName: "rightCalendar", first: true, predicate: WlcmRightCalendarDirective, descendants: true, read: MatCalendar }, { propertyName: "leftCalendarElement", first: true, predicate: WlcmLeftCalendarDirective, descendants: true, read: ElementRef }, { propertyName: "monthView", first: true, predicate: MatMonthView, descendants: true }], ngImport: i0, template: "<div class=\"wlcm-date-range-picker-panel\">\n <div class=\"wlcm-date-range-picker-body\">\n <mat-calendar\n wlcmLeftCalendar\n [selected]=\"selected\"\n [disabled]=\"rightCalendarYearViewActivated()\"\n [headerComponent]=\"WlcmCalendarHeaderComponent\"\n (_userSelection)=\"calendarSelection($event)\"\n (_userDragDrop)=\"calendarDragDrop($event)\"\n (dateChange)=\"startDate.set($event)\"\n ></mat-calendar>\n\n <mat-calendar\n wlcmRightCalendar\n [selected]=\"selected\"\n [disabled]=\"leftCalendarYearViewActivated()\"\n [headerComponent]=\"WlcmCalendarHeaderComponent\"\n (_userSelection)=\"calendarSelection($event)\"\n (_userDragDrop)=\"calendarDragDrop($event)\"\n (dateChange)=\"startDate.set($event)\"\n ></mat-calendar>\n </div>\n\n <wlcm-date-range-picker-bottom-panel></wlcm-date-range-picker-bottom-panel>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "directive", type: WlcmLeftCalendarDirective, selector: "[wlcmLeftCalendar]" }, { kind: "directive", type: WlcmRightCalendarDirective, selector: "[wlcmRightCalendar]" }, { kind: "component", type: WlcmDateRangePickerBottomPanelComponent, selector: "wlcm-date-range-picker-bottom-panel" }] }); }
112
+ };
113
+ WlcmDateRangePickerComponent = __decorate([
114
+ UntilDestroy(),
115
+ __metadata("design:paramtypes", [Object, MatDateSelectionModel,
116
+ MatDateSelectionModel,
117
+ DateAdapter,
118
+ WlcmDateRangePickerTrigger])
119
+ ], WlcmDateRangePickerComponent);
120
+ export { WlcmDateRangePickerComponent };
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerComponent, decorators: [{
122
+ type: Component,
123
+ args: [{ selector: 'wlcm-date-range-picker', standalone: true, imports: [
124
+ CommonModule,
125
+ MatDatepickerModule,
126
+ WlcmLeftCalendarDirective,
127
+ WlcmRightCalendarDirective,
128
+ WlcmDateRangePickerBottomPanelComponent,
129
+ ], providers: [
130
+ {
131
+ provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
132
+ useClass: DefaultMatCalendarRangeStrategy,
133
+ },
134
+ WLCM_DATE_RANGE_SELECTION_MODEL_PROVIDER,
135
+ ], template: "<div class=\"wlcm-date-range-picker-panel\">\n <div class=\"wlcm-date-range-picker-body\">\n <mat-calendar\n wlcmLeftCalendar\n [selected]=\"selected\"\n [disabled]=\"rightCalendarYearViewActivated()\"\n [headerComponent]=\"WlcmCalendarHeaderComponent\"\n (_userSelection)=\"calendarSelection($event)\"\n (_userDragDrop)=\"calendarDragDrop($event)\"\n (dateChange)=\"startDate.set($event)\"\n ></mat-calendar>\n\n <mat-calendar\n wlcmRightCalendar\n [selected]=\"selected\"\n [disabled]=\"leftCalendarYearViewActivated()\"\n [headerComponent]=\"WlcmCalendarHeaderComponent\"\n (_userSelection)=\"calendarSelection($event)\"\n (_userDragDrop)=\"calendarDragDrop($event)\"\n (dateChange)=\"startDate.set($event)\"\n ></mat-calendar>\n </div>\n\n <wlcm-date-range-picker-bottom-panel></wlcm-date-range-picker-bottom-panel>\n</div>\n" }]
136
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
137
+ type: Inject,
138
+ args: [MAT_DATE_RANGE_SELECTION_STRATEGY]
139
+ }] }, { type: i3.MatDateSelectionModel, decorators: [{
140
+ type: Inject,
141
+ args: [WLCM_DATE_RANGE_SELECTION_MODEL]
142
+ }] }, { type: i3.MatDateSelectionModel, decorators: [{
143
+ type: Inject,
144
+ args: [WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL]
145
+ }] }, { type: i1.DateAdapter }, { type: i2.WlcmDateRangePickerTrigger }], propDecorators: { leftCalendar: [{
146
+ type: ViewChild,
147
+ args: [WlcmLeftCalendarDirective, { read: MatCalendar }]
148
+ }], rightCalendar: [{
149
+ type: ViewChild,
150
+ args: [WlcmRightCalendarDirective, { read: MatCalendar }]
151
+ }], leftCalendarElement: [{
152
+ type: ViewChild,
153
+ args: [WlcmLeftCalendarDirective, { read: ElementRef }]
154
+ }], monthView: [{
155
+ type: ViewChild,
156
+ args: [MatMonthView]
157
+ }] } });
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFFTixTQUFTLEVBRVQsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCwrQkFBK0IsRUFDL0IsaUNBQWlDLEVBQ2pDLFdBQVcsRUFJWCxxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLFlBQVksR0FDYixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0Isd0NBQXdDLEdBQ3pDLE1BQU0sc0RBQXNELENBQUM7QUFDOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN2SCxPQUFPLEVBQUUsMEJB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LGFBQWE7c0JBQTFFLFNBQVM7dUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUVBLG1CQUFtQjtzQkFBOUUsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBRWpDLFNBQVM7c0JBQWpDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBTaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgV3JpdGFibGVTaWduYWwsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgRGF0ZVJhbmdlLFxuICBEZWZhdWx0TWF0Q2FsZW5kYXJSYW5nZVN0cmF0ZWd5LFxuICBNQVRfREFURV9SQU5HRV9TRUxFQ1RJT05fU1RSQVRFR1ksXG4gIE1hdENhbGVuZGFyLFxuICBNYXRDYWxlbmRhclVzZXJFdmVudCxcbiAgTWF0Q2FsZW5kYXJWaWV3LFxuICBNYXREYXRlUmFuZ2VTZWxlY3Rpb25TdHJhdGVneSxcbiAgTWF0RGF0ZVNlbGVjdGlvbk1vZGVsLFxuICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICBNYXRNb250aFZpZXcsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgV2xjbUNhbGVuZGFySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FsZW5kYXItaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2xjbUxlZnRDYWxlbmRhckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbGVmdC1jYWxlbmRhci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgV0xDTV9EQVRFX1JBTkdFX1NFTEVDVElPTl9NT0RFTCxcbiAgV0xDTV9EQVRFX1JBTkdFX1NFTEVDVElPTl9NT0RFTF9QUk9WSURFUixcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RhdGUtcmFuZ2Utc2VsZWN0aW9uLW1vZGVsLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBXbGNtUmlnaHRDYWxlbmRhckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcmlnaHQtY2FsZW5kYXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgV0xDTV9EQVRFX1JBTkdFX1RSSUdHRVJfU0VMRUNUSU9OX01PREVMIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RhdGUtcmFuZ2UtdHJpZ2dlci1zZWxlY3Rpb24tbW9kZWwuY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21EYXRlUmFuZ2VQaWNrZXJUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kYXRlLXJhbmdlLXBpY2tlci10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXbGNtRGF0ZVJhbmdlUGlja2VyQm90dG9tUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXJhbmdlLXBpY2tlci1ib3R0b20tcGFuZWwvZGF0ZS1yYW5nZS1waWNrZXItYm90dG9tLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2xjbS1kYXRlLXJhbmdlLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBXbGNtTGVmdENhbGVuZGFyRGlyZWN0aXZlLFxuICAgIFdsY21SaWdodENhbGVuZGFyRGlyZWN0aXZlLFxuICAgIFdsY21EYXRlUmFuZ2VQaWNrZXJCb3R0b21QYW5lbENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTUFUX0RBVEVfUkFOR0VfU0VMRUNUSU9OX1NUUkFURUdZLFxuICAgICAgdXNlQ2xhc3M6IERlZmF1bHRNYXRDYWxlbmRhclJhbmdlU3RyYXRlZ3ksXG4gICAgfSxcbiAgICBXTENNX0RBVEVfUkFOR0VfU0VMRUNUSU9OX01PREVMX1BST1ZJREVSLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgV2xjbUNhbGVuZGFySGVhZGVyQ29tcG9uZW50ID0gV2xjbUNhbGVuZGFySGVhZGVyQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgX2lzVmlld0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfaXNDb21wbGV0ZTogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IGlzQ29tcGxldGU6IFNpZ25hbDxib29sZWFuPiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2lzQ29tcGxldGUoKSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfREFURV9SQU5HRV9TRUxFQ1RJT05fU1RSQVRFR1kpXG4gICAgcHJpdmF0ZSByYW5nZVNlbGVjdGlvblN0cmF0ZWd5OiBNYXREYXRlUmFuZ2VTZWxlY3Rpb25TdHJhdGVneTxtb21lbnQuTW9tZW50PixcbiAgICBASW5qZWN0KFdMQ01fREFURV9SQU5HRV9TRUxFQ1RJT05fTU9ERUwpXG4gICAgcHJvdGVjdGVkIGxvY2FsU2VsZWN0aW9uTW9kZWw6IE1hdERhdGVTZWxlY3Rpb25Nb2RlbDxEYXRlUmFuZ2U8bW9tZW50Lk1vbWVudD4+LFxuICAgIEBJbmplY3QoV0xDTV9EQVRFX1JBTkdFX1RSSUdHRVJfU0VMRUNUSU9OX01PREVMKVxuICAgIHByb3RlY3RlZCB0cmlnZ2VyU2VsZWN0aW9uTW9kZWw6IE1hdERhdGVTZWxlY3Rpb25Nb2RlbDxEYXRlUmFuZ2U8bW9tZW50Lk1vbWVudD4+LFxuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8bW9tZW50Lk1vbWVudD4sXG4gICAgcHJvdGVjdGVkIHRyaWdnZXI6IFdsY21EYXRlUmFuZ2VQaWNrZXJUcmlnZ2VyXG4gICkge1xuICAgIHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlZCgpO1xuXG4gICAgdGhpcy5sb2NhbFNlbGVjdGlvbk1vZGVsLnVwZGF0ZVNlbGVjdGlvbih0aGlzLnRyaWdnZXJTZWxlY3Rpb25Nb2RlbC5zZWxlY3Rpb24sIHRoaXMpO1xuXG4gICAgaWYgKHRoaXMudHJpZ2dlclNlbGVjdGlvbk1vZGVsLnNlbGVjdGlvbi5zdGFydCkge1xuICAgICAgdGhpcy5zdGFydERhdGUuc2V0KHRoaXMudHJpZ2dlclNlbGVjdGlvbk1vZGVsLnNlbGVjdGlvbi5zdGFydCk7XG4gICAgfVxuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5faXNWaWV3SW5pdGlhbGl6ZWQpIHJldHVybjtcblxuICAgICAgdGhpcy5sZWZ0Q2FsZW5kYXIuYWN0aXZlRGF0ZSA9IHRoaXMuc3RhcnREYXRlKCk7XG5cbiAgICAgIHRoaXMucmlnaHRDYWxlbmRhci5hY3RpdmVEYXRlID0gdGhpcy5kYXRlQWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyh0aGlzLnN0YXJ0RGF0ZSgpLCAxKTtcbiAgICB9KTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoV2xjbUxlZnRDYWxlbmRhckRpcmVjdGl2ZSwgeyByZWFkOiBNYXRDYWxlbmRhciB9KSBsZWZ0Q2FsZW5kYXIhOiBNYXRDYWxlbmRhcjxtb21lbnQuTW9tZW50PjtcblxuICBAVmlld0NoaWxkKFdsY21SaWdodENhbGVuZGFyRGlyZWN0aXZlLCB7IHJlYWQ6IE1hdENhbGVuZGFyIH0pIHJpZ2h0Q2FsZW5kYXIhOiBNYXRDYWxlbmRhcjxtb21lbnQuTW9tZW50PjtcblxuICBAVmlld0NoaWxkKFdsY21MZWZ0Q2FsZW5kYXJEaXJlY3RpdmUsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBsZWZ0Q2FsZW5kYXJFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZChNYXRNb250aFZpZXcpIG1vbnRoVmlldyE6IE1hdE1vbnRoVmlldzxhbnk+O1xuXG4gIHN0YXJ0RGF0ZTogV3JpdGFibGVTaWduYWw8bW9tZW50Lk1vbWVudD4gPSBzaWduYWwobW9tZW50KCkpO1xuXG4gIGxlZnRDYWxlbmRhclllYXJWaWV3QWN0aXZhdGVkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmlnaHRDYWxlbmRhclllYXJWaWV3QWN0aXZhdGVkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX2lzVmlld0luaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgIHRoaXMubGVmdENhbGVuZGFyLnZpZXdDaGFuZ2VkLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgodmlldzogTWF0Q2FsZW5kYXJWaWV3KSA9PiB7XG4gICAgICB0aGlzLmxlZnRDYWxlbmRhclllYXJWaWV3QWN0aXZhdGVkLnNldCh2aWV3ICE9PSAnbW9udGgnKTtcbiAgICB9KTtcblxuICAgIHRoaXMucmlnaHRDYWxlbmRhci52aWV3Q2hhbmdlZC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKHZpZXc6IE1hdENhbGVuZGFyVmlldykgPT4ge1xuICAgICAgdGhpcy5yaWdodENhbGVuZGFyWWVhclZpZXdBY3RpdmF0ZWQuc2V0KHZpZXcgIT09ICdtb250aCcpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5oYW5kbGVSaWdodENhbGVuZGFyUHJldmlld0NoYW5nZSgpO1xuICB9XG5cbiAgY2FsZW5kYXJTZWxlY3Rpb24oZXZlbnQ6IE1hdENhbGVuZGFyVXNlckV2ZW50PG1vbWVudC5Nb21lbnQgfCBudWxsPik6IHZvaWQge1xuICAgIGNvbnN0IG5ld1NlbGVjdGlvbjogRGF0ZVJhbmdlPG1vbWVudC5Nb21lbnQ+ID0gdGhpcy5yYW5nZVNlbGVjdGlvblN0cmF0ZWd5LnNlbGVjdGlvbkZpbmlzaGVkKFxuICAgICAgZXZlbnQudmFsdWUsXG4gICAgICB0aGlzLmxvY2FsU2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uLFxuICAgICAgZXZlbnQuZXZlbnRcbiAgICApO1xuXG4gICAgdGhpcy5sb2NhbFNlbGVjdGlvbk1vZGVsLnVwZGF0ZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIHRoaXMpO1xuICB9XG5cbiAgY2FsZW5kYXJEcmFnRHJvcChldmVudDogTWF0Q2FsZW5kYXJVc2VyRXZlbnQ8RGF0ZVJhbmdlPG1vbWVudC5Nb21lbnQ+Pik6IHZvaWQge1xuICAgIHRoaXMubG9jYWxTZWxlY3Rpb25Nb2RlbC51cGRhdGVTZWxlY3Rpb24oZXZlbnQudmFsdWUsIHRoaXMpO1xuICB9XG5cbiAgYXBwbHkoKTogdm9pZCB7XG4gICAgdGhpcy50cmlnZ2VyU2VsZWN0aW9uTW9kZWwudXBkYXRlU2VsZWN0aW9uKHRoaXMubG9jYWxTZWxlY3Rpb25Nb2RlbC5zZWxlY3Rpb24sIHRoaXMpO1xuXG4gICAgdGhpcy50cmlnZ2VyLmNsb3NlKCk7XG4gIH1cblxuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnRyaWdnZXIuY2xvc2UoKTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZCgpOiBEYXRlUmFuZ2U8bW9tZW50Lk1vbWVudD4ge1xuICAgIHJldHVybiB0aGlzLmxvY2FsU2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgbGVmdENhbGVuZGFyQWN0aXZlQ2VsbCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmxlZnRDYWxlbmRhckVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlJyk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNlbGVjdGlvbkNoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbFNlbGVjdGlvbk1vZGVsLnNlbGVjdGlvbkNoYW5nZWRcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9pc0NvbXBsZXRlLnNldCh0aGlzLmxvY2FsU2VsZWN0aW9uTW9kZWwuaXNDb21wbGV0ZSgpKSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJpZ2h0Q2FsZW5kYXJQcmV2aWV3Q2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHZpZXdDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHRoaXMucmlnaHRDYWxlbmRhci52aWV3Q2hhbmdlZFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAucGlwZSh0YXAoKCkgPT4gdmlld0NoYW5nZWQubmV4dCgpKSlcbiAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLnJpZ2h0Q2FsZW5kYXIuY3VycmVudFZpZXcpKVxuICAgICAgLnN1YnNjcmliZSgodmlldzogTWF0Q2FsZW5kYXJWaWV3KSA9PiB7XG4gICAgICAgIGlmICh2aWV3ICE9PSAnbW9udGgnKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoVmlldy5fbWF0Q2FsZW5kYXJCb2R5LnByZXZpZXdDaGFuZ2VcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodmlld0NoYW5nZWQpLCB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxlZnRDYWxlbmRhci5jdXJyZW50VmlldyAhPT0gJ21vbnRoJyB8fCAhdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGhWaWV3Ll9yYW5nZVN0YXJ0KSByZXR1cm47XG5cbiAgICAgICAgICAgIHRoaXMubGVmdENhbGVuZGFyLm1vbnRoVmlldy5fcHJldmlld1N0YXJ0ID0gdGhpcy5yaWdodENhbGVuZGFyLm1vbnRoVmlldy5fcHJldmlld1N0YXJ0O1xuXG4gICAgICAgICAgICB0aGlzLmxlZnRDYWxlbmRhci5tb250aFZpZXcuX3ByZXZpZXdFbmQgPSB0aGlzLnJpZ2h0Q2FsZW5kYXIubW9udGhWaWV3Ll9wcmV2aWV3RW5kO1xuXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVDZWxsID0gdGhpcy5sZWZ0Q2FsZW5kYXJBY3RpdmVDZWxsO1xuXG4gICAgICAgICAgICBpZiAoYWN0aXZlQ2VsbCAmJiBhY3RpdmVDZWxsID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSBhY3RpdmVDZWxsLmJsdXIoKTtcblxuICAgICAgICAgICAgdGhpcy5sZWZ0Q2FsZW5kYXIubW9udGhWaWV3Ll9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid2xjbS1kYXRlLXJhbmdlLXBpY2tlci1wYW5lbFwiPlxuICA8ZGl2IGNsYXNzPVwid2xjbS1kYXRlLXJhbmdlLXBpY2tlci1ib2R5XCI+XG4gICAgPG1hdC1jYWxlbmRhclxuICAgICAgd2xjbUxlZnRDYWxlbmRhclxuICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJyaWdodENhbGVuZGFyWWVhclZpZXdBY3RpdmF0ZWQoKVwiXG4gICAgICBbaGVhZGVyQ29tcG9uZW50XT1cIldsY21DYWxlbmRhckhlYWRlckNvbXBvbmVudFwiXG4gICAgICAoX3VzZXJTZWxlY3Rpb24pPVwiY2FsZW5kYXJTZWxlY3Rpb24oJGV2ZW50KVwiXG4gICAgICAoX3VzZXJEcmFnRHJvcCk9XCJjYWxlbmRhckRyYWdEcm9wKCRldmVudClcIlxuICAgICAgKGRhdGVDaGFuZ2UpPVwic3RhcnREYXRlLnNldCgkZXZlbnQpXCJcbiAgICA+PC9tYXQtY2FsZW5kYXI+XG5cbiAgICA8bWF0LWNhbGVuZGFyXG4gICAgICB3bGNtUmlnaHRDYWxlbmRhclxuICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJsZWZ0Q2FsZW5kYXJZZWFyVmlld0FjdGl2YXRlZCgpXCJcbiAgICAgIFtoZWFkZXJDb21wb25lbnRdPVwiV2xjbUNhbGVuZGFySGVhZGVyQ29tcG9uZW50XCJcbiAgICAgIChfdXNlclNlbGVjdGlvbik9XCJjYWxlbmRhclNlbGVjdGlvbigkZXZlbnQpXCJcbiAgICAgIChfdXNlckRyYWdEcm9wKT1cImNhbGVuZGFyRHJhZ0Ryb3AoJGV2ZW50KVwiXG4gICAgICAoZGF0ZUNoYW5nZSk9XCJzdGFydERhdGUuc2V0KCRldmVudClcIlxuICAgID48L21hdC1jYWxlbmRhcj5cbiAgPC9kaXY+XG5cbiAgPHdsY20tZGF0ZS1yYW5nZS1waWNrZXItYm90dG9tLXBhbmVsPjwvd2xjbS1kYXRlLXJhbmdlLXBpY2tlci1ib3R0b20tcGFuZWw+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { Component } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { WlcmDateRangePickerComponent } from '../date-range-picker/date-range-picker.component';
4
+ import { WlcmButtonModule } from '@wlcm/angular/button';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../date-range-picker/date-range-picker.component";
7
+ import * as i2 from "@wlcm/angular/button";
8
+ export class WlcmDateRangePickerBottomPanelComponent {
9
+ constructor(picker) {
10
+ this.picker = picker;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerBottomPanelComponent, deps: [{ token: i1.WlcmDateRangePickerComponent }], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDateRangePickerBottomPanelComponent, isStandalone: true, selector: "wlcm-date-range-picker-bottom-panel", ngImport: i0, template: "<div class=\"wlcm-date-range-picker-bottom-panel\">\n <wlcm-button type=\"paddingless\" (clicked)=\"picker.reset()\">Reset</wlcm-button>\n\n <wlcm-button (clicked)=\"picker.apply()\" [isDisabled]=\"!picker.isComplete()\">\n Apply\n </wlcm-button>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmButtonModule }, { kind: "component", type: i2.WlcmButtonComponent, selector: "wlcm-button", inputs: ["type", "size", "isDisabled", "isLoading"], outputs: ["clicked"] }] }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerBottomPanelComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'wlcm-date-range-picker-bottom-panel', standalone: true, imports: [CommonModule, WlcmButtonModule], template: "<div class=\"wlcm-date-range-picker-bottom-panel\">\n <wlcm-button type=\"paddingless\" (clicked)=\"picker.reset()\">Reset</wlcm-button>\n\n <wlcm-button (clicked)=\"picker.apply()\" [isDisabled]=\"!picker.isComplete()\">\n Apply\n </wlcm-button>\n</div>\n" }]
18
+ }], ctorParameters: () => [{ type: i1.WlcmDateRangePickerComponent }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItYm90dG9tLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZGF0ZS1yYW5nZS1waWNrZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UtcGlja2VyLWJvdHRvbS1wYW5lbC9kYXRlLXJhbmdlLXBpY2tlci1ib3R0b20tcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1yYW5nZS1waWNrZXItYm90dG9tLXBhbmVsL2RhdGUtcmFuZ2UtcGlja2VyLWJvdHRvbS1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQVN4RCxNQUFNLE9BQU8sdUNBQXVDO0lBQ2xELFlBQXNCLE1BQW9DO1FBQXBDLFdBQU0sR0FBTixNQUFNLENBQThCO0lBQUcsQ0FBQzs4R0FEbkQsdUNBQXVDO2tHQUF2Qyx1Q0FBdUMsK0ZDWnBELHdRQU9BLHlERENZLFlBQVksOEJBQUUsZ0JBQWdCOzsyRkFJN0IsdUNBQXVDO2tCQVBuRCxTQUFTOytCQUNFLHFDQUFxQyxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBXbGNtRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFdsY21CdXR0b25Nb2R1bGUgfSBmcm9tICdAd2xjbS9hbmd1bGFyL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tZGF0ZS1yYW5nZS1waWNrZXItYm90dG9tLXBhbmVsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2xjbUJ1dHRvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLXBpY2tlci1ib3R0b20tcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGF0ZS1yYW5nZS1waWNrZXItYm90dG9tLXBhbmVsLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbURhdGVSYW5nZVBpY2tlckJvdHRvbVBhbmVsQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHBpY2tlcjogV2xjbURhdGVSYW5nZVBpY2tlckNvbXBvbmVudCkge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3bGNtLWRhdGUtcmFuZ2UtcGlja2VyLWJvdHRvbS1wYW5lbFwiPlxuICA8d2xjbS1idXR0b24gdHlwZT1cInBhZGRpbmdsZXNzXCIgKGNsaWNrZWQpPVwicGlja2VyLnJlc2V0KClcIj5SZXNldDwvd2xjbS1idXR0b24+XG5cbiAgPHdsY20tYnV0dG9uIChjbGlja2VkKT1cInBpY2tlci5hcHBseSgpXCIgW2lzRGlzYWJsZWRdPVwiIXBpY2tlci5pc0NvbXBsZXRlKClcIj5cbiAgICBBcHBseVxuICA8L3dsY20tYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,122 @@
1
+ import { Component, ContentChild, Host, Inject, ViewContainerRef, forwardRef, inject, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { WlcmDateRangePickerTrigger } from '../../directives/date-range-picker-trigger.directive';
4
+ import { MatDateSelectionModel } from '@angular/material/datepicker';
5
+ import { WLCM_FORM_CONTROL_PROVIDER, WLCM_FORM_FIELD, WLCM_INPUT_BINDER, WlcmFormsModule, } from '@wlcm/angular/forms';
6
+ import { DateRangePickerInputStartDirective } from '../../directives/date-range-picker-input-start.directive';
7
+ import { DateRangePickerInputEndDirective } from '../../directives/date-range-picker-input-end.directive';
8
+ import { BehaviorSubject, EMPTY, fromEvent, map, merge, switchMap } from 'rxjs';
9
+ import { DateRangePickerErrors } from '../../utils/date-range-picker-errors';
10
+ import { Overlay } from '@angular/cdk/overlay';
11
+ import { WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL, WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL_PROVIDER, } from '../../constants/date-range-trigger-selection-model.constants';
12
+ import { WlcmDateRangePickerComponent } from '../date-range-picker/date-range-picker.component';
13
+ import { ControlContainer } from '@angular/forms';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@angular/cdk/overlay";
16
+ import * as i2 from "@angular/material/datepicker";
17
+ import * as i3 from "@angular/forms";
18
+ export class WlcmDateRangePickerInputComponent extends WlcmDateRangePickerTrigger {
19
+ constructor(overlay, viewContainerRef, selectionModel, formField, controlContainer) {
20
+ super(overlay, viewContainerRef, selectionModel);
21
+ this.overlay = overlay;
22
+ this.viewContainerRef = viewContainerRef;
23
+ this.selectionModel = selectionModel;
24
+ this.formField = formField;
25
+ this.controlContainer = controlContainer;
26
+ this._focusStream$ = new BehaviorSubject(EMPTY);
27
+ this._blurStream$ = new BehaviorSubject(EMPTY);
28
+ this.focus$ = this._focusStream$.pipe(switchMap((stream) => stream));
29
+ this.blur$ = this._blurStream$.pipe(switchMap((stream) => stream));
30
+ this.componentType = WlcmDateRangePickerComponent;
31
+ }
32
+ ngAfterContentInit() {
33
+ this.checkInputs();
34
+ this.attachFocusBlurListeners();
35
+ }
36
+ ngAfterViewInit() {
37
+ this.connectedTo = this.formField.inputContainer;
38
+ }
39
+ isFocused() {
40
+ return (this.startInputElement === document.activeElement ||
41
+ this.endInputElement === document.activeElement ||
42
+ this.isOpen);
43
+ }
44
+ focus() {
45
+ if (!this.isFocused())
46
+ this.startInputElement.focus();
47
+ }
48
+ get control() {
49
+ return this.controlContainer?.control;
50
+ }
51
+ get startInputElement() {
52
+ return this.startInput.element.nativeElement;
53
+ }
54
+ get endInputElement() {
55
+ return this.endInput.element.nativeElement;
56
+ }
57
+ checkInputs() {
58
+ if (!this.startInput)
59
+ DateRangePickerErrors.throwNoStartInputError();
60
+ if (!this.endInput)
61
+ DateRangePickerErrors.throwNoEndInputError();
62
+ }
63
+ attachFocusBlurListeners() {
64
+ const voidFn = () => { };
65
+ const startInputFocus = fromEvent(this.startInputElement, 'focus');
66
+ const endInputFocus = fromEvent(this.endInputElement, 'focus');
67
+ const startInputBlur = fromEvent(this.startInputElement, 'blur');
68
+ const endInputBlur = fromEvent(this.endInputElement, 'blur');
69
+ const focusObservables = [startInputFocus, endInputFocus, this.opened];
70
+ const blurObservables = [startInputBlur, endInputBlur, this.closed];
71
+ this._focusStream$.next(merge(...focusObservables).pipe(map(voidFn)));
72
+ this._blurStream$.next(merge(...blurObservables).pipe(map(() => this.control?.markAsTouched())));
73
+ }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerInputComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL }, { token: WLCM_FORM_FIELD, host: true }, { token: ControlContainer, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDateRangePickerInputComponent, isStandalone: true, selector: "wlcm-date-range-picker-input", providers: [
76
+ WLCM_FORM_CONTROL_PROVIDER,
77
+ WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL_PROVIDER,
78
+ {
79
+ provide: WLCM_INPUT_BINDER,
80
+ useFactory: () => {
81
+ const input = inject(WlcmDateRangePickerInputComponent, { self: true });
82
+ return { bind: () => input };
83
+ },
84
+ },
85
+ { provide: WlcmDateRangePickerTrigger, useExisting: forwardRef(() => WlcmDateRangePickerInputComponent) },
86
+ ], queries: [{ propertyName: "startInput", first: true, predicate: DateRangePickerInputStartDirective, descendants: true }, { propertyName: "endInput", first: true, predicate: DateRangePickerInputEndDirective, descendants: true }], exportAs: ["wlcmDateRangePickerInput"], usesInheritance: true, ngImport: i0, template: "<div class=\"wlcm-date-range-picker-inputs-container\">\n <div class=\"wlcm-date-range-picker-input-field-wrapper\">\n <ng-content select=\"[wlcmDateRangePickerInputStart]\"></ng-content>\n </div>\n\n <div class=\"wlcm-date-range-picker-input-dash\"></div>\n\n <div class=\"wlcm-date-range-picker-input-field-wrapper\">\n <ng-content select=\"[wlcmDateRangePickerInputEnd]\"></ng-content>\n </div>\n</div>\n", styles: [".wlcm-date-range-picker-inputs-container{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }] }); }
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerInputComponent, decorators: [{
89
+ type: Component,
90
+ args: [{ selector: 'wlcm-date-range-picker-input', exportAs: 'wlcmDateRangePickerInput', standalone: true, imports: [CommonModule, WlcmFormsModule, DateRangePickerInputStartDirective, DateRangePickerInputEndDirective], providers: [
91
+ WLCM_FORM_CONTROL_PROVIDER,
92
+ WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL_PROVIDER,
93
+ {
94
+ provide: WLCM_INPUT_BINDER,
95
+ useFactory: () => {
96
+ const input = inject(WlcmDateRangePickerInputComponent, { self: true });
97
+ return { bind: () => input };
98
+ },
99
+ },
100
+ { provide: WlcmDateRangePickerTrigger, useExisting: forwardRef(() => WlcmDateRangePickerInputComponent) },
101
+ ], template: "<div class=\"wlcm-date-range-picker-inputs-container\">\n <div class=\"wlcm-date-range-picker-input-field-wrapper\">\n <ng-content select=\"[wlcmDateRangePickerInputStart]\"></ng-content>\n </div>\n\n <div class=\"wlcm-date-range-picker-input-dash\"></div>\n\n <div class=\"wlcm-date-range-picker-input-field-wrapper\">\n <ng-content select=\"[wlcmDateRangePickerInputEnd]\"></ng-content>\n </div>\n</div>\n", styles: [".wlcm-date-range-picker-inputs-container{display:flex;align-items:center}\n"] }]
102
+ }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.MatDateSelectionModel, decorators: [{
103
+ type: Inject,
104
+ args: [WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL]
105
+ }] }, { type: undefined, decorators: [{
106
+ type: Host
107
+ }, {
108
+ type: Inject,
109
+ args: [WLCM_FORM_FIELD]
110
+ }] }, { type: i3.ControlContainer, decorators: [{
111
+ type: Host
112
+ }, {
113
+ type: Inject,
114
+ args: [ControlContainer]
115
+ }] }], propDecorators: { startInput: [{
116
+ type: ContentChild,
117
+ args: [DateRangePickerInputStartDirective]
118
+ }], endInput: [{
119
+ type: ContentChild,
120
+ args: [DateRangePickerInputEndDirective]
121
+ }] } });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQvZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQvZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFFTixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFhLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixlQUFlLEVBQ2YsaUJBQWlCLEVBR2pCLGVBQWUsR0FDaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBYyxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0s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LEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUNBQWlDLENBQUMsRUFBRTtTQUMxRyxrRUFjYSxrQ0FBa0MsMkVBRWxDLGdDQUFnQywrR0N0RWhELG9hQVdBLG9JRDRCWSxZQUFZLDhCQUFFLGVBQWU7OzJGQWlCNUIsaUNBQWlDO2tCQXJCN0MsU0FBUzsrQkFDRSw4QkFBOEIsWUFDOUIsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsa0NBQWtDLEVBQUUsZ0NBQWdDLENBQUMsYUFHbkc7d0JBQ1QsMEJBQTBCO3dCQUMxQixnREFBZ0Q7d0JBQ2hEOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0NBQ2YsTUFBTSxLQUFLLEdBQUcsTUFBTSxvQ0FBb0MsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQ0FFeEUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQzs0QkFDL0IsQ0FBQzt5QkFDRjt3QkFDRCxFQUFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQ0FBa0MsQ0FBQyxFQUFFO3FCQUMxRzs7MEJBdUJFLE1BQU07MkJBQUMsdUNBQXVDOzswQkFFOUMsSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlOzswQkFDOUIsSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7eUNBWndCLFVBQVU7c0JBQW5FLFlBQVk7dUJBQUMsa0NBQWtDO2dCQUVRLFFBQVE7c0JBQS9ELFlBQVk7dUJBQUMsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEhvc3QsXG4gIEluamVjdCxcbiAgVHlwZSxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBXbGNtRGF0ZVJhbmdlUGlja2VyVHJpZ2dlciB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZGF0ZS1yYW5nZS1waWNrZXItdHJpZ2dlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlLCBNYXREYXRlU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7XG4gIFdMQ01fRk9STV9DT05UUk9MX1BST1ZJREVSLFxuICBXTENNX0ZPUk1fRklFTEQsXG4gIFdMQ01fSU5QVVRfQklOREVSLFxuICBXbGNtRm9ybUZpZWxkLFxuICBXbGNtRm9ybUZpZWxkSW5wdXQsXG4gIFdsY21Gb3Jtc01vZHVsZSxcbn0gZnJvbSAnQHdsY20vYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VQaWNrZXJJbnB1dFN0YXJ0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kYXRlLXJhbmdlLXBpY2tlci1pbnB1dC1zdGFydC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlUGlja2VySW5wdXRFbmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RhdGUtcmFuZ2UtcGlja2VyLWlucHV0LWVuZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgZnJvbUV2ZW50LCBtYXAsIG1lcmdlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdGVSYW5nZVBpY2tlckVycm9ycyB9IGZyb20gJy4uLy4uL3V0aWxzL2RhdGUtcmFuZ2UtcGlja2VyLWVycm9ycyc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgV0xDTV9EQVRFX1JBTkdFX1RSSUdHRVJfU0VMRUNUSU9OX01PREVMLFxuICBXTENNX0RBVEVfUkFOR0VfVFJJR0dFUl9TRUxFQ1RJT05fTU9ERUxfUFJPVklERVIsXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cy9kYXRlLXJhbmdlLXRyaWdnZXItc2VsZWN0aW9uLW1vZGVsLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBXbGNtRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2xjbS1kYXRlLXJhbmdlLXBpY2tlci1pbnB1dCcsXG4gIGV4cG9ydEFzOiAnd2xjbURhdGVSYW5nZVBpY2tlcklucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2xjbUZvcm1zTW9kdWxlLCBEYXRlUmFuZ2VQaWNrZXJJbnB1dFN0YXJ0RGlyZWN0aXZlLCBEYXRlUmFuZ2VQaWNrZXJJbnB1dEVuZERpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLXBpY2tlci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kYXRlLXJhbmdlLXBpY2tlci1pbnB1dC5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIFdMQ01fRk9STV9DT05UUk9MX1BST1ZJREVSLFxuICAgIFdMQ01fREFURV9SQU5HRV9UUklHR0VSX1NFTEVDVElPTl9NT0RFTF9QUk9WSURFUixcbiAgICB7XG4gICAgICBwcm92aWRlOiBXTENNX0lOUFVUX0JJTkRFUixcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBpbmplY3QoV2xjbURhdGVSYW5nZVBpY2tlcklucHV0Q29tcG9uZW50LCB7IHNlbGY6IHRydWUgfSk7XG5cbiAgICAgICAgcmV0dXJuIHsgYmluZDogKCkgPT4gaW5wdXQgfTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IFdsY21EYXRlUmFuZ2VQaWNrZXJUcmlnZ2VyLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXbGNtRGF0ZVJhbmdlUGlja2VySW5wdXRDb21wb25lbnQpIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21EYXRlUmFuZ2VQaWNrZXJJbnB1dENvbXBvbmVudFxuICBleHRlbmRzIFdsY21EYXRlUmFuZ2VQaWNrZXJUcmlnZ2VyXG4gIGltcGxlbWVudHMgV2xjbUZvcm1GaWVsZElucHV0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzU3RyZWFtJDogQmVoYXZpb3JTdWJqZWN0PE9ic2VydmFibGU8dm9pZD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChFTVBUWSBhcyBPYnNlcnZhYmxlPHZvaWQ+KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9ibHVyU3RyZWFtJDogQmVoYXZpb3JTdWJqZWN0PE9ic2VydmFibGU8dm9pZD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChFTVBUWSBhcyBPYnNlcnZhYmxlPHZvaWQ+KTtcblxuICBmb2N1cyQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLl9mb2N1c1N0cmVhbSQucGlwZShzd2l0Y2hNYXAoKHN0cmVhbTogT2JzZXJ2YWJsZTx1bmtub3duPikgPT4gc3RyZWFtKSk7XG5cbiAgYmx1ciQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLl9ibHVyU3RyZWFtJC5waXBlKHN3aXRjaE1hcCgoc3RyZWFtOiBPYnNlcnZhYmxlPHVua25vd24+KSA9PiBzdHJlYW0pKTtcblxuICBAQ29udGVudENoaWxkKERhdGVSYW5nZVBpY2tlcklucHV0U3RhcnREaXJlY3RpdmUpIHByaXZhdGUgc3RhcnRJbnB1dCE6IERhdGVSYW5nZVBpY2tlcklucHV0U3RhcnREaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChEYXRlUmFuZ2VQaWNrZXJJbnB1dEVuZERpcmVjdGl2ZSkgcHJpdmF0ZSBlbmRJbnB1dCE6IERhdGVSYW5nZVBpY2tlcklucHV0RW5kRGlyZWN0aXZlO1xuXG4gIG92ZXJyaWRlIGNvbXBvbmVudFR5cGU6IFR5cGU8V2xjbURhdGVSYW5nZVBpY2tlckNvbXBvbmVudD4gPSBXbGNtRGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIEBJbmplY3QoV0xDTV9EQVRFX1JBTkdFX1RSSUdHRVJfU0VMRUNUSU9OX01PREVMKVxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzZWxlY3Rpb25Nb2RlbDogTWF0RGF0ZVNlbGVjdGlvbk1vZGVsPERhdGVSYW5nZTxtb21lbnQuTW9tZW50Pj4sXG4gICAgQEhvc3QoKSBASW5qZWN0KFdMQ01fRk9STV9GSUVMRCkgcHJpdmF0ZSBmb3JtRmllbGQ6IFdsY21Gb3JtRmllbGQsXG4gICAgQEhvc3QoKSBASW5qZWN0KENvbnRyb2xDb250YWluZXIpIHByaXZhdGUgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lclxuICApIHtcbiAgICBzdXBlcihvdmVybGF5LCB2aWV3Q29udGFpbmVyUmVmLCBzZWxlY3Rpb25Nb2RlbCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja0lucHV0cygpO1xuXG4gICAgdGhpcy5hdHRhY2hGb2N1c0JsdXJMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbm5lY3RlZFRvID0gdGhpcy5mb3JtRmllbGQuaW5wdXRDb250YWluZXI7XG4gIH1cblxuICBpc0ZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuc3RhcnRJbnB1dEVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgfHxcbiAgICAgIHRoaXMuZW5kSW5wdXRFbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IHx8XG4gICAgICB0aGlzLmlzT3BlblxuICAgICk7XG4gIH1cblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKCkpIHRoaXMuc3RhcnRJbnB1dEVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNvbnRyb2woKTogRm9ybUdyb3VwIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbENvbnRhaW5lcj8uY29udHJvbCBhcyBGb3JtR3JvdXA7XG4gIH1cblxuICBwcml2YXRlIGdldCBzdGFydElucHV0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnRJbnB1dC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBlbmRJbnB1dEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVuZElucHV0LmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tJbnB1dHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0SW5wdXQpIERhdGVSYW5nZVBpY2tlckVycm9ycy50aHJvd05vU3RhcnRJbnB1dEVycm9yKCk7XG5cbiAgICBpZiAoIXRoaXMuZW5kSW5wdXQpIERhdGVSYW5nZVBpY2tlckVycm9ycy50aHJvd05vRW5kSW5wdXRFcnJvcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2hGb2N1c0JsdXJMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgY29uc3Qgdm9pZEZuID0gKCkgPT4ge307XG5cbiAgICBjb25zdCBzdGFydElucHV0Rm9jdXM6IE9ic2VydmFibGU8RXZlbnQ+ID0gZnJvbUV2ZW50KHRoaXMuc3RhcnRJbnB1dEVsZW1lbnQsICdmb2N1cycpO1xuXG4gICAgY29uc3QgZW5kSW5wdXRGb2N1czogT2JzZXJ2YWJsZTxFdmVudD4gPSBmcm9tRXZlbnQodGhpcy5lbmRJbnB1dEVsZW1lbnQsICdmb2N1cycpO1xuXG4gICAgY29uc3Qgc3RhcnRJbnB1dEJsdXI6IE9ic2VydmFibGU8RXZlbnQ+ID0gZnJvbUV2ZW50KHRoaXMuc3RhcnRJbnB1dEVsZW1lbnQsICdibHVyJyk7XG5cbiAgICBjb25zdCBlbmRJbnB1dEJsdXI6IE9ic2VydmFibGU8RXZlbnQ+ID0gZnJvbUV2ZW50KHRoaXMuZW5kSW5wdXRFbGVtZW50LCAnYmx1cicpO1xuXG4gICAgY29uc3QgZm9jdXNPYnNlcnZhYmxlczogT2JzZXJ2YWJsZTx1bmtub3duPltdID0gW3N0YXJ0SW5wdXRGb2N1cywgZW5kSW5wdXRGb2N1cywgdGhpcy5vcGVuZWRdO1xuXG4gICAgY29uc3QgYmx1ck9ic2VydmFibGVzOiBPYnNlcnZhYmxlPHVua25vd24+W10gPSBbc3RhcnRJbnB1dEJsdXIsIGVuZElucHV0Qmx1ciwgdGhpcy5jbG9zZWRdO1xuXG4gICAgdGhpcy5fZm9jdXNTdHJlYW0kLm5leHQobWVyZ2UoLi4uZm9jdXNPYnNlcnZhYmxlcykucGlwZShtYXAodm9pZEZuKSkpO1xuXG4gICAgdGhpcy5fYmx1clN0cmVhbSQubmV4dChtZXJnZSguLi5ibHVyT2JzZXJ2YWJsZXMpLnBpcGUobWFwKCgpID0+IHRoaXMuY29udHJvbD8ubWFya0FzVG91Y2hlZCgpKSkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid2xjbS1kYXRlLXJhbmdlLXBpY2tlci1pbnB1dHMtY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJ3bGNtLWRhdGUtcmFuZ2UtcGlja2VyLWlucHV0LWZpZWxkLXdyYXBwZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbd2xjbURhdGVSYW5nZVBpY2tlcklucHV0U3RhcnRdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwid2xjbS1kYXRlLXJhbmdlLXBpY2tlci1pbnB1dC1kYXNoXCI+PC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIndsY20tZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQtZmllbGQtd3JhcHBlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt3bGNtRGF0ZVJhbmdlUGlja2VySW5wdXRFbmRdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,10 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { DateAdapter } from '@angular/material/core';
3
+ import { MatRangeDateSelectionModel } from '@angular/material/datepicker';
4
+ export const WLCM_DATE_RANGE_SELECTION_MODEL = new InjectionToken('WLCM_DATE_RANGE_SELECTION_MODEL');
5
+ export const WLCM_DATE_RANGE_SELECTION_MODEL_PROVIDER = {
6
+ provide: WLCM_DATE_RANGE_SELECTION_MODEL,
7
+ useFactory: (adapter) => new MatRangeDateSelectionModel(adapter),
8
+ deps: [DateAdapter],
9
+ };
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1zZWxlY3Rpb24tbW9kZWwuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9zcmMvbGliL2NvbnN0YW50cy9kYXRlLXJhbmdlLXNlbGVjdGlvbi1tb2RlbC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUF5QiwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR2pHLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUF5RCxJQUFJLGNBQWMsQ0FDckgsaUNBQWlDLENBQ2xDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FBYTtJQUNoRSxPQUFPLEVBQUUsK0JBQStCO0lBQ3hDLFVBQVUsRUFBRSxDQUFDLE9BQW1DLEVBQUUsRUFBRSxDQUFDLElBQUksMEJBQTBCLENBQUMsT0FBTyxDQUFDO0lBQzVGLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQztDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZVNlbGVjdGlvbk1vZGVsLCBNYXRSYW5nZURhdGVTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmV4cG9ydCBjb25zdCBXTENNX0RBVEVfUkFOR0VfU0VMRUNUSU9OX01PREVMOiBJbmplY3Rpb25Ub2tlbjxNYXREYXRlU2VsZWN0aW9uTW9kZWw8bW9tZW50Lk1vbWVudD4+ID0gbmV3IEluamVjdGlvblRva2VuKFxuICAnV0xDTV9EQVRFX1JBTkdFX1NFTEVDVElPTl9NT0RFTCdcbik7XG5cbmV4cG9ydCBjb25zdCBXTENNX0RBVEVfUkFOR0VfU0VMRUNUSU9OX01PREVMX1BST1ZJREVSOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogV0xDTV9EQVRFX1JBTkdFX1NFTEVDVElPTl9NT0RFTCxcbiAgdXNlRmFjdG9yeTogKGFkYXB0ZXI6IERhdGVBZGFwdGVyPG1vbWVudC5Nb21lbnQ+KSA9PiBuZXcgTWF0UmFuZ2VEYXRlU2VsZWN0aW9uTW9kZWwoYWRhcHRlciksXG4gIGRlcHM6IFtEYXRlQWRhcHRlcl0sXG59O1xuIl19
@@ -0,0 +1,10 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { MatRangeDateSelectionModel } from '@angular/material/datepicker';
3
+ import { DateAdapter } from '@angular/material/core';
4
+ export const WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL = new InjectionToken('WLCM_DATE_RANGE_SELECTION_MODEL');
5
+ export const WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL_PROVIDER = {
6
+ provide: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL,
7
+ useFactory: (adapter) => new MatRangeDateSelectionModel(adapter),
8
+ deps: [DateAdapter],
9
+ };
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS10cmlnZ2VyLXNlbGVjdGlvbi1tb2RlbC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGUtcmFuZ2UtcGlja2VyL3NyYy9saWIvY29uc3RhbnRzL2RhdGUtcmFuZ2UtdHJpZ2dlci1zZWxlY3Rpb24tbW9kZWwuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUF5QiwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdyRCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FDbEQsSUFBSSxjQUFjLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUV4RCxNQUFNLENBQUMsTUFBTSxnREFBZ0QsR0FBYTtJQUN4RSxPQUFPLEVBQUUsdUNBQXVDO0lBQ2hELFVBQVUsRUFBRSxDQUFDLE9BQW1DLEVBQUUsRUFBRSxDQUFDLElBQUksMEJBQTBCLENBQUMsT0FBTyxDQUFDO0lBQzVGLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQztDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlU2VsZWN0aW9uTW9kZWwsIE1hdFJhbmdlRGF0ZVNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmV4cG9ydCBjb25zdCBXTENNX0RBVEVfUkFOR0VfVFJJR0dFUl9TRUxFQ1RJT05fTU9ERUw6IEluamVjdGlvblRva2VuPE1hdERhdGVTZWxlY3Rpb25Nb2RlbDxtb21lbnQuTW9tZW50Pj4gPVxuICBuZXcgSW5qZWN0aW9uVG9rZW4oJ1dMQ01fREFURV9SQU5HRV9TRUxFQ1RJT05fTU9ERUwnKTtcblxuZXhwb3J0IGNvbnN0IFdMQ01fREFURV9SQU5HRV9UUklHR0VSX1NFTEVDVElPTl9NT0RFTF9QUk9WSURFUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IFdMQ01fREFURV9SQU5HRV9UUklHR0VSX1NFTEVDVElPTl9NT0RFTCxcbiAgdXNlRmFjdG9yeTogKGFkYXB0ZXI6IERhdGVBZGFwdGVyPG1vbWVudC5Nb21lbnQ+KSA9PiBuZXcgTWF0UmFuZ2VEYXRlU2VsZWN0aW9uTW9kZWwoYWRhcHRlciksXG4gIGRlcHM6IFtEYXRlQWRhcHRlcl0sXG59O1xuIl19
@@ -0,0 +1,64 @@
1
+ import { NgModule, inject } from '@angular/core';
2
+ import { WlcmDateRangePickerInputComponent } from './components/date-range-picker-input/date-range-picker-input.component';
3
+ import { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';
4
+ import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
5
+ import { DateRangePickerInputStartDirective } from './directives/date-range-picker-input-start.directive';
6
+ import { DateRangePickerInputEndDirective } from './directives/date-range-picker-input-end.directive';
7
+ import { CommonModule } from '@angular/common';
8
+ import * as i0 from "@angular/core";
9
+ const DEFAULT_DATE_FORMATS = {
10
+ parse: {
11
+ dateInput: 'MMM/DD/YYYY',
12
+ },
13
+ display: {
14
+ dateInput: 'MMM/DD/YYYY',
15
+ monthYearLabel: 'MMMM YYYY',
16
+ dateA11yLabel: 'LL',
17
+ monthYearA11yLabel: 'MMMM YYYY',
18
+ },
19
+ };
20
+ const directives = [DateRangePickerInputStartDirective, DateRangePickerInputEndDirective];
21
+ export class WlcmDateRangePickerModule {
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerModule, imports: [CommonModule, WlcmDateRangePickerInputComponent, DateRangePickerInputStartDirective, DateRangePickerInputEndDirective], exports: [WlcmDateRangePickerInputComponent, DateRangePickerInputStartDirective, DateRangePickerInputEndDirective] }); }
24
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerModule, providers: [
25
+ {
26
+ provide: DateAdapter,
27
+ useClass: MomentDateAdapter,
28
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
29
+ },
30
+ {
31
+ provide: MAT_DATE_FORMATS,
32
+ useFactory: () => {
33
+ const externalFormats = inject(MAT_DATE_FORMATS, { skipSelf: true, optional: true });
34
+ if (externalFormats)
35
+ return externalFormats;
36
+ return DEFAULT_DATE_FORMATS;
37
+ },
38
+ },
39
+ ], imports: [CommonModule, WlcmDateRangePickerInputComponent] }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerModule, decorators: [{
42
+ type: NgModule,
43
+ args: [{
44
+ imports: [CommonModule, WlcmDateRangePickerInputComponent, ...directives],
45
+ exports: [WlcmDateRangePickerInputComponent, ...directives],
46
+ providers: [
47
+ {
48
+ provide: DateAdapter,
49
+ useClass: MomentDateAdapter,
50
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
51
+ },
52
+ {
53
+ provide: MAT_DATE_FORMATS,
54
+ useFactory: () => {
55
+ const externalFormats = inject(MAT_DATE_FORMATS, { skipSelf: true, optional: true });
56
+ if (externalFormats)
57
+ return externalFormats;
58
+ return DEFAULT_DATE_FORMATS;
59
+ },
60
+ },
61
+ ],
62
+ }]
63
+ }] });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlLXJhbmdlLXBpY2tlci9zcmMvbGliL2RhdGUtcmFuZ2UtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFRLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUMzSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRS9DLE1BQU0sb0JBQW9CLEdBQW1CO0lBQzNDLEtBQUssRUFBRTtRQUNMLFNBQVMsRUFBRSxhQUFhO0tBQ3pCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsU0FBUyxFQUFFLGFBQWE7UUFDeEIsY0FBYyxFQUFFLFdBQVc7UUFDM0IsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsV0FBVztLQUNoQztDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBb0IsQ0FBQyxrQ0FBa0MsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO0FBdUIzRyxNQUFNLE9BQU8seUJBQXlCOzhHQUF6Qix5QkFBeUI7K0dBQXpCLHlCQUF5QixZQXBCMUIsWUFBWSxFQUFFLGlDQUFpQyxFQUh0QixrQ0FBa0MsRUFBRSxnQ0FBZ0MsYUFJN0YsaUNBQWlDLEVBSlIsa0NBQWtDLEVBQUUsZ0NBQWdDOytHQXVCNUYseUJBQXlCLGFBbEJ6QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLEVBQUUsK0JBQStCLENBQUM7YUFDekQ7WUFDRDtnQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO2dCQUN6QixVQUFVLEVBQUUsR0FBRyxFQUFFO29CQUNmLE1BQU0sZUFBZSxHQUEwQixNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUU1RyxJQUFJLGVBQWU7d0JBQUUsT0FBTyxlQUFlLENBQUM7b0JBRTVDLE9BQU8sb0JBQW9CLENBQUM7Z0JBQzlCLENBQUM7YUFDRjtTQUNGLFlBbEJTLFlBQVksRUFBRSxpQ0FBaUM7OzJGQW9COUMseUJBQXlCO2tCQXJCckMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsaUNBQWlDLEVBQUUsR0FBRyxVQUFVLENBQUM7b0JBQ3pFLE9BQU8sRUFBRSxDQUFDLGlDQUFpQyxFQUFFLEdBQUcsVUFBVSxDQUFDO29CQUMzRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFFBQVEsRUFBRSxpQkFBaUI7NEJBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSwrQkFBK0IsQ0FBQzt5QkFDekQ7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQ0FDZixNQUFNLGVBQWUsR0FBMEIsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQ0FFNUcsSUFBSSxlQUFlO29DQUFFLE9BQU8sZUFBZSxDQUFDO2dDQUU1QyxPQUFPLG9CQUFvQixDQUFDOzRCQUM5QixDQUFDO3lCQUNGO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIFR5cGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2xjbURhdGVSYW5nZVBpY2tlcklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGUtcmFuZ2UtcGlja2VyLWlucHV0L2RhdGUtcmFuZ2UtcGlja2VyLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb21lbnREYXRlQWRhcHRlciwgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEUsIE1hdERhdGVGb3JtYXRzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VQaWNrZXJJbnB1dFN0YXJ0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGUtcmFuZ2UtcGlja2VyLWlucHV0LXN0YXJ0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VQaWNrZXJJbnB1dEVuZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kYXRlLXJhbmdlLXBpY2tlci1pbnB1dC1lbmQuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmNvbnN0IERFRkFVTFRfREFURV9GT1JNQVRTOiBNYXREYXRlRm9ybWF0cyA9IHtcbiAgcGFyc2U6IHtcbiAgICBkYXRlSW5wdXQ6ICdNTU0vREQvWVlZWScsXG4gIH0sXG4gIGRpc3BsYXk6IHtcbiAgICBkYXRlSW5wdXQ6ICdNTU0vREQvWVlZWScsXG4gICAgbW9udGhZZWFyTGFiZWw6ICdNTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgfSxcbn07XG5cbmNvbnN0IGRpcmVjdGl2ZXM6IFR5cGU8dW5rbm93bj5bXSA9IFtEYXRlUmFuZ2VQaWNrZXJJbnB1dFN0YXJ0RGlyZWN0aXZlLCBEYXRlUmFuZ2VQaWNrZXJJbnB1dEVuZERpcmVjdGl2ZV07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFdsY21EYXRlUmFuZ2VQaWNrZXJJbnB1dENvbXBvbmVudCwgLi4uZGlyZWN0aXZlc10sXG4gIGV4cG9ydHM6IFtXbGNtRGF0ZVJhbmdlUGlja2VySW5wdXRDb21wb25lbnQsIC4uLmRpcmVjdGl2ZXNdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUyxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgZXh0ZXJuYWxGb3JtYXRzOiBNYXREYXRlRm9ybWF0cyB8IG51bGwgPSBpbmplY3QoTUFUX0RBVEVfRk9STUFUUywgeyBza2lwU2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAgICAgaWYgKGV4dGVybmFsRm9ybWF0cykgcmV0dXJuIGV4dGVybmFsRm9ybWF0cztcblxuICAgICAgICByZXR1cm4gREVGQVVMVF9EQVRFX0ZPUk1BVFM7XG4gICAgICB9LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21EYXRlUmFuZ2VQaWNrZXJNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,92 @@
1
+ import { Directive, ElementRef, HostListener } from '@angular/core';
2
+ import { WlcmDateRangeValidation } from '../models/date-range-validation.models';
3
+ import { DateAdapter } from '@angular/material/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/core";
6
+ export class DateRangePickerInputBase {
7
+ constructor(element, dateAdapter, dateFormats) {
8
+ this.element = element;
9
+ this.dateAdapter = dateAdapter;
10
+ this.dateFormats = dateFormats;
11
+ this.handleBlur = () => { };
12
+ this.handleInput = () => {
13
+ this.changeInputSize();
14
+ this._validatorChanged?.();
15
+ };
16
+ this._inputMirror = this.createInputMirror();
17
+ }
18
+ ngAfterViewInit() {
19
+ this.inputElement.parentElement?.appendChild(this._inputMirror);
20
+ this.copyInputElementStyles(this._inputMirror);
21
+ }
22
+ writeValue(value) {
23
+ if (!value)
24
+ return;
25
+ this.updateInputValue(value);
26
+ }
27
+ validate() {
28
+ const value = this.currentValue;
29
+ if (!value)
30
+ return null;
31
+ const parsed = this.dateAdapter.parse(value, this.dateFormats.parse.dateInput);
32
+ if (!this.dateAdapter.isValid(parsed)) {
33
+ return { [WlcmDateRangeValidation.format]: { value, format: this.dateFormats.parse.dateInput }, required: false };
34
+ }
35
+ return null;
36
+ }
37
+ registerOnChange(callback) {
38
+ this._changed = callback;
39
+ }
40
+ registerOnTouched(callback) {
41
+ this._touched = callback;
42
+ }
43
+ registerOnValidatorChange(callback) {
44
+ this._validatorChanged = callback;
45
+ }
46
+ parseCurrentValue() {
47
+ const date = this.dateAdapter.parse(this.currentValue, this.dateFormats.parse.dateInput);
48
+ return this.dateAdapter.getValidDateOrNull(date);
49
+ }
50
+ updateInputValue(value) {
51
+ let newValue = '';
52
+ if (value) {
53
+ newValue = this.dateAdapter.format(value, this.dateFormats.display.dateInput);
54
+ }
55
+ this.inputElement.value = newValue;
56
+ this.changeInputSize();
57
+ }
58
+ changeInputSize() {
59
+ const value = this.currentValue || this.inputElement.placeholder;
60
+ this._inputMirror.innerHTML = value;
61
+ this.inputElement.style.width = `${this._inputMirror.offsetWidth + 2}px`;
62
+ }
63
+ createInputMirror() {
64
+ const inputMirror = document.createElement('div');
65
+ inputMirror.classList.add('wlcm-date-range-picker-input-field-mirror');
66
+ return inputMirror;
67
+ }
68
+ copyInputElementStyles(target) {
69
+ const inputElementStyles = window.getComputedStyle(this.inputElement);
70
+ target.style.fontSize = inputElementStyles.fontSize;
71
+ target.style.fontFamily = inputElementStyles.fontFamily;
72
+ target.style.letterSpacing = inputElementStyles.letterSpacing;
73
+ }
74
+ get inputElement() {
75
+ return this.element.nativeElement;
76
+ }
77
+ get currentValue() {
78
+ return this.inputElement.value;
79
+ }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
81
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: DateRangePickerInputBase, host: { listeners: { "blur": "handleBlur()", "input": "handleInput()" } }, ngImport: i0 }); }
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputBase, decorators: [{
84
+ type: Directive
85
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: undefined }], propDecorators: { handleBlur: [{
86
+ type: HostListener,
87
+ args: ['blur']
88
+ }], handleInput: [{
89
+ type: HostListener,
90
+ args: ['input']
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQtYmFzZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGUtcmFuZ2UtcGlja2VyL3NyYy9saWIvZGlyZWN0aXZlcy9kYXRlLXJhbmdlLXBpY2tlci1pbnB1dC1iYXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxXQUFXLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7OztBQUlyRSxNQUFNLE9BQU8sd0JBQXdCO0lBaUJuQyxZQUNTLE9BQXFDLEVBQ2xDLFdBQXVDLEVBQ3ZDLFdBQTJCO1FBRjlCLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUE0QjtRQUN2QyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFuQmpCLGVBQVUsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFckIsZ0JBQVcsR0FBRyxHQUFHLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRXZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDO1FBUU0saUJBQVksR0FBZ0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFNMUQsQ0FBQztJQUVKLGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUEyQjtRQUNw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Q0FBQyxVQUFVLENBQUM7UUFDeEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUFDO0lBQ2hFLENBQUM7SUFFRCxJQUFjLFlBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBYyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDakMsQ0FBQzs4R0E3R1Usd0JBQXdCO2tHQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBRHBDLFNBQVM7OEhBRWMsVUFBVTtzQkFBL0IsWUFBWTt1QkFBQyxNQUFNO2dCQUVHLFdBQVc7c0JBQWpDLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgV2xjbURhdGVSYW5nZVZhbGlkYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvZGF0ZS1yYW5nZS12YWxpZGF0aW9uLm1vZGVscyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTWF0RGF0ZUZvcm1hdHMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBEYXRlUmFuZ2VQaWNrZXJJbnB1dEJhc2UgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpIGhhbmRsZUJsdXIgPSAoKSA9PiB7fTtcblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpIGhhbmRsZUlucHV0ID0gKCkgPT4ge1xuICAgIHRoaXMuY2hhbmdlSW5wdXRTaXplKCk7XG5cbiAgICB0aGlzLl92YWxpZGF0b3JDaGFuZ2VkPy4oKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgX2NoYW5nZWQ/OiAodmFsdWU6IG1vbWVudC5Nb21lbnQgfCBudWxsKSA9PiB2b2lkO1xuXG4gIHByb3RlY3RlZCBfdG91Y2hlZD86ICgpID0+IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIF92YWxpZGF0b3JDaGFuZ2VkPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIF9pbnB1dE1pcnJvcjogSFRNTEVsZW1lbnQgPSB0aGlzLmNyZWF0ZUlucHV0TWlycm9yKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgcHJvdGVjdGVkIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxtb21lbnQuTW9tZW50PixcbiAgICBwcm90ZWN0ZWQgZGF0ZUZvcm1hdHM6IE1hdERhdGVGb3JtYXRzXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnQucGFyZW50RWxlbWVudD8uYXBwZW5kQ2hpbGQodGhpcy5faW5wdXRNaXJyb3IpO1xuXG4gICAgdGhpcy5jb3B5SW5wdXRFbGVtZW50U3R5bGVzKHRoaXMuX2lucHV0TWlycm9yKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IG1vbWVudC5Nb21lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHZhbGlkYXRlKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gdGhpcy5jdXJyZW50VmFsdWU7XG5cbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IHBhcnNlZDogbW9tZW50Lk1vbWVudCB8IG51bGwgPSB0aGlzLmRhdGVBZGFwdGVyLnBhcnNlKHZhbHVlLCB0aGlzLmRhdGVGb3JtYXRzLnBhcnNlLmRhdGVJbnB1dCkhO1xuXG4gICAgaWYgKCF0aGlzLmRhdGVBZGFwdGVyLmlzVmFsaWQocGFyc2VkKSkge1xuICAgICAgcmV0dXJuIHsgW1dsY21EYXRlUmFuZ2VWYWxpZGF0aW9uLmZvcm1hdF06IHsgdmFsdWUsIGZvcm1hdDogdGhpcy5kYXRlRm9ybWF0cy5wYXJzZS5kYXRlSW5wdXQgfSwgcmVxdWlyZWQ6IGZhbHNlIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGNhbGxiYWNrOiAodmFsdWU6IG1vbWVudC5Nb21lbnQgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl90b3VjaGVkID0gY2FsbGJhY2s7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcGFyc2VDdXJyZW50VmFsdWUoKTogbW9tZW50Lk1vbWVudCB8IG51bGwge1xuICAgIGNvbnN0IGRhdGU6IG1vbWVudC5Nb21lbnQgfCBudWxsID0gdGhpcy5kYXRlQWRhcHRlci5wYXJzZSh0aGlzLmN1cnJlbnRWYWx1ZSwgdGhpcy5kYXRlRm9ybWF0cy5wYXJzZS5kYXRlSW5wdXQpO1xuXG4gICAgcmV0dXJuIHRoaXMuZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKGRhdGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUlucHV0VmFsdWUodmFsdWU6IG1vbWVudC5Nb21lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgbmV3VmFsdWUgPSB0aGlzLmRhdGVBZGFwdGVyLmZvcm1hdCh2YWx1ZSBhcyBtb21lbnQuTW9tZW50LCB0aGlzLmRhdGVGb3JtYXRzLmRpc3BsYXkuZGF0ZUlucHV0KTtcbiAgICB9XG5cbiAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9IG5ld1ZhbHVlO1xuXG4gICAgdGhpcy5jaGFuZ2VJbnB1dFNpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlSW5wdXRTaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSB0aGlzLmN1cnJlbnRWYWx1ZSB8fCB0aGlzLmlucHV0RWxlbWVudC5wbGFjZWhvbGRlcjtcblxuICAgIHRoaXMuX2lucHV0TWlycm9yLmlubmVySFRNTCA9IHZhbHVlO1xuXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHt0aGlzLl9pbnB1dE1pcnJvci5vZmZzZXRXaWR0aCArIDJ9cHhgO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbnB1dE1pcnJvcigpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgaW5wdXRNaXJyb3I6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICBpbnB1dE1pcnJvci5jbGFzc0xpc3QuYWRkKCd3bGNtLWRhdGUtcmFuZ2UtcGlja2VyLWlucHV0LWZpZWxkLW1pcnJvcicpO1xuXG4gICAgcmV0dXJuIGlucHV0TWlycm9yO1xuICB9XG5cbiAgcHJpdmF0ZSBjb3B5SW5wdXRFbGVtZW50U3R5bGVzKHRhcmdldDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnRTdHlsZXM6IENTU1N0eWxlRGVjbGFyYXRpb24gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmlucHV0RWxlbWVudCk7XG5cbiAgICB0YXJnZXQuc3R5bGUuZm9udFNpemUgPSBpbnB1dEVsZW1lbnRTdHlsZXMuZm9udFNpemU7XG4gICAgdGFyZ2V0LnN0eWxlLmZvbnRGYW1pbHkgPSBpbnB1dEVsZW1lbnRTdHlsZXMuZm9udEZhbWlseTtcbiAgICB0YXJnZXQuc3R5bGUubGV0dGVyU3BhY2luZyA9IGlucHV0RWxlbWVudFN0eWxlcy5sZXR0ZXJTcGFjaW5nO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBpbnB1dEVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBjdXJyZW50VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWU7XG4gIH1cbn1cbiJdfQ==