@wlcm/angular 1.1.1 → 17.1.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.
- package/core/esm2022/lib/components/calendar-icon/calendar-icon.component.mjs +12 -0
- package/core/esm2022/lib/constants/icon.contants.mjs +3 -1
- package/core/esm2022/lib/directives/icon.directive.mjs +21 -6
- package/core/esm2022/lib/models/icon.models.mjs +2 -1
- package/core/fesm2022/wlcm-angular-core.mjs +30 -6
- package/core/fesm2022/wlcm-angular-core.mjs.map +1 -1
- package/core/lib/components/calendar-icon/calendar-icon.component.d.ts +5 -0
- package/core/lib/directives/icon.directive.d.ts +4 -2
- package/core/lib/models/icon.models.d.ts +1 -0
- package/date-range-picker/README.md +7 -0
- package/date-range-picker/esm2022/index.mjs +7 -0
- package/date-range-picker/esm2022/lib/components/calendar-header/calendar-header.component.mjs +62 -0
- package/date-range-picker/esm2022/lib/components/date-range-picker/date-range-picker.component.mjs +158 -0
- package/date-range-picker/esm2022/lib/components/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.mjs +19 -0
- package/date-range-picker/esm2022/lib/components/date-range-picker-input/date-range-picker-input.component.mjs +122 -0
- package/date-range-picker/esm2022/lib/constants/date-range-selection-model.constants.mjs +10 -0
- package/date-range-picker/esm2022/lib/constants/date-range-trigger-selection-model.constants.mjs +10 -0
- package/date-range-picker/esm2022/lib/date-range-picker.module.mjs +64 -0
- package/date-range-picker/esm2022/lib/directives/date-range-picker-input-base.directive.mjs +92 -0
- package/date-range-picker/esm2022/lib/directives/date-range-picker-input-end.directive.mjs +65 -0
- package/date-range-picker/esm2022/lib/directives/date-range-picker-input-start.directive.mjs +65 -0
- package/date-range-picker/esm2022/lib/directives/date-range-picker-trigger.directive.mjs +80 -0
- package/date-range-picker/esm2022/lib/directives/left-calendar.directive.mjs +50 -0
- package/date-range-picker/esm2022/lib/directives/right-calendar.directive.mjs +59 -0
- package/date-range-picker/esm2022/lib/models/data-range-calendar.models.mjs +43 -0
- package/date-range-picker/esm2022/lib/models/date-range-validation.models.mjs +5 -0
- package/date-range-picker/esm2022/lib/utils/date-range-input.validators.mjs +16 -0
- package/date-range-picker/esm2022/lib/utils/date-range-picker-errors.mjs +9 -0
- package/date-range-picker/esm2022/wlcm-angular-date-range-picker.mjs +5 -0
- package/date-range-picker/fesm2022/wlcm-angular-date-range-picker.mjs +822 -0
- package/date-range-picker/fesm2022/wlcm-angular-date-range-picker.mjs.map +1 -0
- package/date-range-picker/index.d.ts +6 -0
- package/date-range-picker/lib/components/calendar-header/calendar-header.component.d.ts +20 -0
- package/date-range-picker/lib/components/date-range-picker/date-range-picker.component.d.ts +37 -0
- package/date-range-picker/lib/components/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.d.ts +8 -0
- package/date-range-picker/lib/components/date-range-picker-input/date-range-picker-input.component.d.ts +35 -0
- package/date-range-picker/lib/constants/date-range-selection-model.constants.d.ts +5 -0
- package/date-range-picker/lib/constants/date-range-trigger-selection-model.constants.d.ts +5 -0
- package/date-range-picker/lib/date-range-picker.module.d.ts +10 -0
- package/date-range-picker/lib/directives/date-range-picker-input-base.directive.d.ts +32 -0
- package/date-range-picker/lib/directives/date-range-picker-input-end.directive.d.ts +16 -0
- package/date-range-picker/lib/directives/date-range-picker-input-start.directive.d.ts +17 -0
- package/date-range-picker/lib/directives/date-range-picker-trigger.directive.d.ts +26 -0
- package/date-range-picker/lib/directives/left-calendar.directive.d.ts +15 -0
- package/date-range-picker/lib/directives/right-calendar.directive.d.ts +18 -0
- package/date-range-picker/lib/models/data-range-calendar.models.d.ts +21 -0
- package/date-range-picker/lib/models/date-range-validation.models.d.ts +3 -0
- package/date-range-picker/lib/utils/date-range-input.validators.d.ts +2 -0
- package/date-range-picker/lib/utils/date-range-picker-errors.d.ts +4 -0
- package/forms/esm2022/lib/forms/components/form-field/form-field.component.mjs +9 -6
- package/forms/esm2022/lib/forms/components/select/select.component.mjs +1 -1
- package/forms/esm2022/lib/forms/constants/form-elements.constants.mjs +1 -1
- package/forms/esm2022/lib/forms/directives/form-field-prefix.directive.mjs +12 -4
- package/forms/fesm2022/wlcm-angular-forms.mjs +19 -8
- package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
- package/forms/lib/forms/components/form-field/form-field.component.d.ts +5 -4
- package/forms/lib/forms/directives/form-field-prefix.directive.d.ts +1 -0
- package/package.json +2 -1
- package/styles/components/date-range-picker/_date-range-picker-body.scss +117 -0
- package/styles/components/date-range-picker/_date-range-picker-header.scss +59 -0
- package/styles/components/date-range-picker/_date-range-picker-input.scss +38 -0
- package/styles/components/date-range-picker/_date-range-picker-panel.scss +21 -0
- package/styles/components/date-range-picker/index.scss +11 -0
- package/styles/components/forms/_form-field.scss +4 -0
- package/styles/core/_all-theme.scss +2 -0
- package/styles/core/_utils.scss +2 -0
package/date-range-picker/esm2022/lib/components/date-range-picker/date-range-picker.component.mjs
ADDED
@@ -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
|
package/date-range-picker/esm2022/lib/constants/date-range-trigger-selection-model.constants.mjs
ADDED
@@ -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==
|