@wlcm/angular 18.2.25 → 18.2.28
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/button/esm2022/index.mjs +3 -0
- package/button/esm2022/lib/button.module.mjs +16 -0
- package/button/esm2022/lib/components/button/button.component.mjs +37 -0
- package/button/esm2022/lib/models/button.models.mjs +2 -0
- package/button/esm2022/wlcm-angular-button.mjs +5 -0
- package/button/fesm2022/wlcm-angular-button.mjs +7 -7
- package/button/fesm2022/wlcm-angular-button.mjs.map +1 -1
- package/core/esm2022/index.mjs +17 -0
- package/core/esm2022/lib/components/default-loader/default-loader.component.mjs +12 -0
- package/core/esm2022/lib/components/icons/calendar-icon/calendar-icon.component.mjs +12 -0
- package/core/esm2022/lib/components/icons/chevron-down-icon/chevron-down-icon.component.mjs +12 -0
- package/core/esm2022/lib/components/icons/close-icon/close-icon.component.mjs +12 -0
- package/core/esm2022/lib/components/icons/search-icon/search-icon.component.mjs +12 -0
- package/core/esm2022/lib/components/loader/loader.component.mjs +32 -0
- package/core/esm2022/lib/constants/_index.mjs +3 -0
- package/core/esm2022/lib/constants/http.constants.mjs +6 -0
- package/core/esm2022/lib/constants/icon.contants.mjs +15 -0
- package/core/esm2022/lib/constants/loader.constants.mjs +7 -0
- package/core/esm2022/lib/directives/_index.mjs +2 -0
- package/core/esm2022/lib/directives/icon.directive.mjs +49 -0
- package/core/esm2022/lib/models/_index.mjs +3 -0
- package/core/esm2022/lib/models/icon.models.mjs +7 -0
- package/core/esm2022/lib/models/option.models.mjs +17 -0
- package/core/esm2022/lib/services/scroll-detection.api.mjs +34 -0
- package/core/esm2022/lib/utils/paginated-data-emulator.utils.mjs +20 -0
- package/core/esm2022/lib/utils/stream.utils.mjs +16 -0
- package/core/esm2022/wlcm-angular-core.mjs +5 -0
- package/core/fesm2022/wlcm-angular-core.mjs +47 -40
- package/core/fesm2022/wlcm-angular-core.mjs.map +1 -1
- package/core/lib/services/scroll-detection.api.d.ts +4 -1
- package/datepicker/esm2022/index.mjs +14 -0
- package/datepicker/esm2022/lib/components/calendar-header/calendar-header.component.mjs +63 -0
- package/datepicker/esm2022/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.mjs +87 -0
- package/datepicker/esm2022/lib/components/range/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.mjs +19 -0
- package/datepicker/esm2022/lib/components/range/date-range-picker-input/date-range-picker-input.component.mjs +126 -0
- package/datepicker/esm2022/lib/components/range/double-calendar-range-picker/double-calendar-range-picker.component.mjs +168 -0
- package/datepicker/esm2022/lib/components/range/single-calendar-range-picker/single-calendar-range-picker.component.mjs +95 -0
- package/datepicker/esm2022/lib/components/single/datepicker-input-container/datepicker-input-container.component.mjs +92 -0
- package/datepicker/esm2022/lib/components/single/datepicker-panel/datepicker-panel.component.mjs +33 -0
- package/datepicker/esm2022/lib/constants/datepicker.constants.mjs +23 -0
- package/datepicker/esm2022/lib/constants/range/date-range-picker.constants.mjs +5 -0
- package/datepicker/esm2022/lib/constants/range/date-range-selection-model.constants.mjs +10 -0
- package/datepicker/esm2022/lib/constants/range/date-range-trigger-selection-model.constants.mjs +10 -0
- package/datepicker/esm2022/lib/datepicker.module.mjs +33 -0
- package/datepicker/esm2022/lib/directives/calendar.directive.mjs +15 -0
- package/datepicker/esm2022/lib/directives/datepicker-input.base.mjs +103 -0
- package/datepicker/esm2022/lib/directives/datepicker-trigger.base.mjs +105 -0
- package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-end.directive.mjs +81 -0
- package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-start.directive.mjs +81 -0
- package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input.base.mjs +58 -0
- package/datepicker/esm2022/lib/directives/ragne/left-calendar.directive.mjs +51 -0
- package/datepicker/esm2022/lib/directives/ragne/right-calendar.directive.mjs +64 -0
- package/datepicker/esm2022/lib/directives/single/datepicker-input.directive.mjs +67 -0
- package/datepicker/esm2022/lib/models/date-picker.models.mjs +29 -0
- package/datepicker/esm2022/lib/models/range/data-range-calendar.models.mjs +61 -0
- package/datepicker/esm2022/lib/models/range/date-range-picker.models.mjs +27 -0
- package/datepicker/esm2022/lib/models/range/date-range-validation.models.mjs +5 -0
- package/datepicker/esm2022/lib/utils/range/date-range-input.validators.mjs +16 -0
- package/datepicker/esm2022/lib/utils/range/date-range-picker-errors.mjs +9 -0
- package/datepicker/esm2022/wlcm-angular-datepicker.mjs +5 -0
- package/datepicker/fesm2022/wlcm-angular-datepicker.mjs +62 -62
- package/datepicker/fesm2022/wlcm-angular-datepicker.mjs.map +1 -1
- package/datepicker/lib/constants/datepicker.constants.d.ts +1 -1
- package/datepicker/lib/directives/datepicker-input.base.d.ts +1 -1
- package/datepicker/lib/directives/datepicker-trigger.base.d.ts +2 -2
- package/datepicker/lib/directives/ragne/date-range-picker-input.base.d.ts +1 -1
- package/datepicker/lib/models/range/data-range-calendar.models.d.ts +1 -1
- package/filters/esm2022/index.mjs +6 -0
- package/filters/esm2022/lib/components/filters-group/filters-group.component.mjs +13 -0
- package/filters/esm2022/lib/constants/filter.constants.mjs +3 -0
- package/filters/esm2022/lib/constants/index.mjs +2 -0
- package/filters/esm2022/lib/directives/filter.directive.mjs +11 -0
- package/filters/esm2022/lib/directives/index.mjs +2 -0
- package/filters/esm2022/lib/filters.module.mjs +20 -0
- package/filters/esm2022/lib/models/array-filter.models.mjs +73 -0
- package/filters/esm2022/lib/models/filter.models.mjs +39 -0
- package/filters/esm2022/lib/models/filters-group.models.mjs +60 -0
- package/filters/esm2022/lib/models/index.mjs +4 -0
- package/filters/esm2022/wlcm-angular-filters.mjs +5 -0
- package/filters/fesm2022/wlcm-angular-filters.mjs +13 -13
- package/filters/fesm2022/wlcm-angular-filters.mjs.map +1 -1
- package/filters/lib/models/filters-group.models.d.ts +1 -1
- package/forms/esm2022/index.mjs +13 -0
- package/forms/esm2022/lib/forms/components/autocomplete/autocomplete.component.mjs +242 -0
- package/forms/esm2022/lib/forms/components/checkbox/checkbox.component.mjs +85 -0
- package/forms/esm2022/lib/forms/components/checkbox-group/checkbox-group.component.mjs +87 -0
- package/forms/esm2022/lib/forms/components/error/error.component.mjs +12 -0
- package/forms/esm2022/lib/forms/components/form-field/form-field.component.mjs +137 -0
- package/forms/esm2022/lib/forms/components/index.mjs +9 -0
- package/forms/esm2022/lib/forms/components/label/label.component.mjs +23 -0
- package/forms/esm2022/lib/forms/components/partials/autocomplete-suffix/autocomplete-suffix.component.mjs +19 -0
- package/forms/esm2022/lib/forms/components/partials/index.mjs +2 -0
- package/forms/esm2022/lib/forms/components/select/select.component.mjs +326 -0
- package/forms/esm2022/lib/forms/constants/form-elements.constants.mjs +5 -0
- package/forms/esm2022/lib/forms/constants/form-errors.constants.mjs +7 -0
- package/forms/esm2022/lib/forms/constants/form-field.constants.mjs +2 -0
- package/forms/esm2022/lib/forms/constants/form-state-handlers.constants.mjs +13 -0
- package/forms/esm2022/lib/forms/constants/index.mjs +6 -0
- package/forms/esm2022/lib/forms/constants/select.constants.mjs +3 -0
- package/forms/esm2022/lib/forms/directives/autocomplete.directive.mjs +64 -0
- package/forms/esm2022/lib/forms/directives/form-field-custom-container.directive.mjs +17 -0
- package/forms/esm2022/lib/forms/directives/form-field-hint.directive.mjs +15 -0
- package/forms/esm2022/lib/forms/directives/form-field-prefix.directive.mjs +22 -0
- package/forms/esm2022/lib/forms/directives/form-field-suffix.directive.mjs +14 -0
- package/forms/esm2022/lib/forms/directives/input.directive.mjs +47 -0
- package/forms/esm2022/lib/forms/directives/select-input-binder.directive.mjs +33 -0
- package/forms/esm2022/lib/forms/forms.module.mjs +64 -0
- package/forms/esm2022/lib/forms/models/_index.mjs +6 -0
- package/forms/esm2022/lib/forms/models/autocomplete.models.mjs +10 -0
- package/forms/esm2022/lib/forms/models/form-errors.models.mjs +2 -0
- package/forms/esm2022/lib/forms/models/form.models.mjs +2 -0
- package/forms/esm2022/lib/forms/models/input.models.mjs +2 -0
- package/forms/esm2022/lib/forms/models/select.models.mjs +2 -0
- package/forms/esm2022/lib/forms/pipes/errors-mapper.pipe.mjs +53 -0
- package/forms/esm2022/lib/forms/services/form-state-handler.service.mjs +19 -0
- package/forms/esm2022/lib/forms/services/index.mjs +3 -0
- package/forms/esm2022/lib/forms/services/places.api.mjs +62 -0
- package/forms/esm2022/wlcm-angular-forms.mjs +5 -0
- package/forms/fesm2022/wlcm-angular-forms.mjs +66 -66
- package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
- package/forms/lib/forms/models/autocomplete.models.d.ts +1 -1
- package/package.json +1 -1
- package/phone-input/esm2022/index.mjs +5 -0
- package/phone-input/esm2022/lib/components/country-code-select/country-code-select.component.mjs +32 -0
- package/phone-input/esm2022/lib/components/phone-input-container/phone-input-container.component.mjs +107 -0
- package/phone-input/esm2022/lib/constants/country-code-options.constants.mjs +20 -0
- package/phone-input/esm2022/lib/constants/phone-adapter.constants.mjs +3 -0
- package/phone-input/esm2022/lib/directives/phone-input.directive.mjs +155 -0
- package/phone-input/esm2022/lib/models/country-code.models.mjs +10 -0
- package/phone-input/esm2022/lib/models/phone-adapter.models.mjs +3 -0
- package/phone-input/esm2022/lib/models/phone.models.mjs +5 -0
- package/phone-input/esm2022/lib/phone-input.module.mjs +20 -0
- package/phone-input/esm2022/lib/pipes/phone-code.pipe.mjs +18 -0
- package/phone-input/esm2022/wlcm-angular-phone-input.mjs +5 -0
- package/phone-input/fesm2022/wlcm-angular-phone-input.mjs +16 -16
- package/phone-input/fesm2022/wlcm-angular-phone-input.mjs.map +1 -1
- package/search-field/esm2022/index.mjs +3 -0
- package/search-field/esm2022/lib/components/search-field/search-field.component.mjs +39 -0
- package/search-field/esm2022/lib/search-field.module.mjs +18 -0
- package/search-field/esm2022/wlcm-angular-search-field.mjs +5 -0
- package/search-field/fesm2022/wlcm-angular-search-field.mjs +7 -7
- package/search-field/fesm2022/wlcm-angular-search-field.mjs.map +1 -1
- package/stepper/esm2022/index.mjs +11 -0
- package/stepper/esm2022/lib/components/step/step.component.mjs +53 -0
- package/stepper/esm2022/lib/components/step-header/step-header.component.mjs +81 -0
- package/stepper/esm2022/lib/components/stepper/stepper.component.mjs +15 -0
- package/stepper/esm2022/lib/components/stepper-header/stepper-header.component.mjs +16 -0
- package/stepper/esm2022/lib/constants/step.constants.mjs +9 -0
- package/stepper/esm2022/lib/constants/stepper.stepper.mjs +3 -0
- package/stepper/esm2022/lib/directives/load-on-active-step.directive.mjs +51 -0
- package/stepper/esm2022/lib/models/step.models.mjs +60 -0
- package/stepper/esm2022/lib/models/stepper.models.mjs +114 -0
- package/stepper/esm2022/lib/stepper.module.mjs +34 -0
- package/stepper/esm2022/wlcm-angular-stepper.mjs +5 -0
- package/stepper/fesm2022/wlcm-angular-stepper.mjs +25 -25
- package/stepper/fesm2022/wlcm-angular-stepper.mjs.map +1 -1
- package/stepper/lib/models/step.models.d.ts +1 -1
- package/stepper/lib/models/stepper.models.d.ts +1 -1
- package/table/esm2022/index.mjs +9 -0
- package/table/esm2022/lib/components/table/table.component.mjs +79 -0
- package/table/esm2022/lib/components/table-head/table-head.component.mjs +18 -0
- package/table/esm2022/lib/components/table-head-actions/table-head-actions.component.mjs +41 -0
- package/table/esm2022/lib/components/table-head-data/table-head-data.component.mjs +12 -0
- package/table/esm2022/lib/components/table-row/table-row.component.mjs +87 -0
- package/table/esm2022/lib/components/table-row-actions/table-row-actions.component.mjs +12 -0
- package/table/esm2022/lib/components/table-row-data/table-row-data.component.mjs +12 -0
- package/table/esm2022/lib/components/table-row-spacer/table-row-spacer.component.mjs +12 -0
- package/table/esm2022/lib/constants/table-row.constants.mjs +3 -0
- package/table/esm2022/lib/constants/table.constants.mjs +5 -0
- package/table/esm2022/lib/directives/scrollable-table-container.directive.mjs +46 -0
- package/table/esm2022/lib/models/table-config-manager.models.mjs +18 -0
- package/table/esm2022/lib/models/table-row.models.mjs +2 -0
- package/table/esm2022/lib/models/table-selection-model.mjs +48 -0
- package/table/esm2022/lib/models/table.models.mjs +2 -0
- package/table/esm2022/lib/pipes/table-row-injector.pipe.mjs +24 -0
- package/table/esm2022/lib/table.module.mjs +38 -0
- package/table/esm2022/lib/utils/table-errors.utils.mjs +6 -0
- package/table/esm2022/wlcm-angular-table.mjs +5 -0
- package/table/fesm2022/wlcm-angular-table.mjs +34 -34
- package/table/fesm2022/wlcm-angular-table.mjs.map +1 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Component, ElementRef, Host, Inject, ViewContainerRef, contentChild, forwardRef, inject, } from '@angular/core';
|
|
2
|
+
import { MatDateSelectionModel, MatSingleDateSelectionModel } from '@angular/material/datepicker';
|
|
3
|
+
import { WLCM_FORM_FIELD, WLCM_INPUT_BINDER } from '@wlcm/angular/forms';
|
|
4
|
+
import { WlcmDatepickerInputDirective } from '../../../directives/single/datepicker-input.directive';
|
|
5
|
+
import { WlcmDatepickerPanelComponent } from '../datepicker-panel/datepicker-panel.component';
|
|
6
|
+
import { BehaviorSubject, EMPTY, switchMap, fromEvent, merge, map } from 'rxjs';
|
|
7
|
+
import { WlcmDatepickerTrigger } from '../../../directives/datepicker-trigger.base';
|
|
8
|
+
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
9
|
+
import { CommonModule } from '@angular/common';
|
|
10
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
13
|
+
import * as i2 from "@angular/material/datepicker";
|
|
14
|
+
export class WlcmDatepickerInputContainerComponent extends WlcmDatepickerTrigger {
|
|
15
|
+
constructor(overlay, viewContainerRef, selectionModel, formField) {
|
|
16
|
+
super(overlay, viewContainerRef, selectionModel);
|
|
17
|
+
this.overlay = overlay;
|
|
18
|
+
this.viewContainerRef = viewContainerRef;
|
|
19
|
+
this.selectionModel = selectionModel;
|
|
20
|
+
this.formField = formField;
|
|
21
|
+
this._focusStream$ = new BehaviorSubject(EMPTY);
|
|
22
|
+
this._blurStream$ = new BehaviorSubject(EMPTY);
|
|
23
|
+
this.focus$ = this._focusStream$.pipe(switchMap((stream) => stream));
|
|
24
|
+
this.blur$ = this._blurStream$.pipe(switchMap((stream) => stream));
|
|
25
|
+
this.inputRef = contentChild(WlcmDatepickerInputDirective, {
|
|
26
|
+
read: ElementRef,
|
|
27
|
+
});
|
|
28
|
+
this.componentType = WlcmDatepickerPanelComponent;
|
|
29
|
+
this.focus = () => {
|
|
30
|
+
if (this.selectOnly())
|
|
31
|
+
return this.open();
|
|
32
|
+
this.inputElement?.focus();
|
|
33
|
+
};
|
|
34
|
+
this.isFocused = () => {
|
|
35
|
+
return this.inputElement === document.activeElement || this.isOpen;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
ngAfterContentInit() {
|
|
39
|
+
this.attachFocusBlurListeners();
|
|
40
|
+
}
|
|
41
|
+
ngAfterViewInit() {
|
|
42
|
+
this.connectedTo = this.formField.inputContainer;
|
|
43
|
+
}
|
|
44
|
+
get inputElement() {
|
|
45
|
+
return this.inputRef()?.nativeElement;
|
|
46
|
+
}
|
|
47
|
+
attachFocusBlurListeners() {
|
|
48
|
+
const voidFn = () => { };
|
|
49
|
+
const inputFocus = fromEvent(this.inputElement, 'focus');
|
|
50
|
+
const inputBlur = fromEvent(this.inputElement, 'blur');
|
|
51
|
+
const focusObservables = [inputFocus, this.opened];
|
|
52
|
+
const blurObservables = [inputBlur, this.closed];
|
|
53
|
+
this._focusStream$.next(merge(...focusObservables).pipe(map(voidFn)));
|
|
54
|
+
this._blurStream$.next(merge(...blurObservables).pipe(map(voidFn)));
|
|
55
|
+
}
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerInputContainerComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i2.MatDateSelectionModel }, { token: WLCM_FORM_FIELD, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: WlcmDatepickerInputContainerComponent, isStandalone: true, selector: "wlcm-datepicker-input-container", host: { classAttribute: "wlcm-datepicker-input-container" }, providers: [
|
|
58
|
+
{
|
|
59
|
+
provide: WLCM_INPUT_BINDER,
|
|
60
|
+
useFactory: () => {
|
|
61
|
+
const input = inject(WlcmDatepickerInputContainerComponent, { self: true });
|
|
62
|
+
return { bind: () => input };
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmDatepickerInputContainerComponent), multi: true },
|
|
66
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmDatepickerInputContainerComponent), multi: true },
|
|
67
|
+
{ provide: WlcmDatepickerTrigger, useExisting: forwardRef(() => WlcmDatepickerInputContainerComponent) },
|
|
68
|
+
{ provide: MatDateSelectionModel, useClass: MatSingleDateSelectionModel },
|
|
69
|
+
], queries: [{ propertyName: "inputRef", first: true, predicate: WlcmDatepickerInputDirective, descendants: true, read: ElementRef, isSignal: true }], exportAs: ["wlcmDatepicker"], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[wlcmDatepickerInput]\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerInputContainerComponent, decorators: [{
|
|
72
|
+
type: Component,
|
|
73
|
+
args: [{ selector: 'wlcm-datepicker-input-container', host: { class: 'wlcm-datepicker-input-container' }, exportAs: 'wlcmDatepicker', standalone: true, imports: [CommonModule], providers: [
|
|
74
|
+
{
|
|
75
|
+
provide: WLCM_INPUT_BINDER,
|
|
76
|
+
useFactory: () => {
|
|
77
|
+
const input = inject(WlcmDatepickerInputContainerComponent, { self: true });
|
|
78
|
+
return { bind: () => input };
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmDatepickerInputContainerComponent), multi: true },
|
|
82
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmDatepickerInputContainerComponent), multi: true },
|
|
83
|
+
{ provide: WlcmDatepickerTrigger, useExisting: forwardRef(() => WlcmDatepickerInputContainerComponent) },
|
|
84
|
+
{ provide: MatDateSelectionModel, useClass: MatSingleDateSelectionModel },
|
|
85
|
+
], template: "<ng-content select=\"[wlcmDatepickerInput]\"></ng-content>\n" }]
|
|
86
|
+
}], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.MatDateSelectionModel }, { type: undefined, decorators: [{
|
|
87
|
+
type: Host
|
|
88
|
+
}, {
|
|
89
|
+
type: Inject,
|
|
90
|
+
args: [WLCM_FORM_FIELD]
|
|
91
|
+
}] }] });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnB1dC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlcGlja2VyL3NyYy9saWIvY29tcG9uZW50cy9zaW5nbGUvZGF0ZXBpY2tlci1pbnB1dC1jb250YWluZXIvZGF0ZXBpY2tlci1pbnB1dC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlcGlja2VyL3NyYy9saWIvY29tcG9uZW50cy9zaW5nbGUvZGF0ZXBpY2tlci1pbnB1dC1jb250YWluZXIvZGF0ZXBpY2tlci1pbnB1dC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLE1BQU0sRUFFTixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBcUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FB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QU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQy9CLENBQUM7eUJBQ0Y7d0JBQ0QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNDQUFzQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDN0csRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0NBQXNDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUNqSCxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQ0FBc0MsQ0FBQyxFQUFFO3dCQUN4RyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEVBQUU7cUJBQzFFOzswQkEwQkUsSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0LFxuICBJbmplY3QsXG4gIFNpZ25hbCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgY29udGVudENoaWxkLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZVNlbGVjdGlvbk1vZGVsLCBNYXRTaW5nbGVEYXRlU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IFdMQ01fRk9STV9GSUVMRCwgV0xDTV9JTlBVVF9CSU5ERVIsIFdsY21Gb3JtRmllbGQsIFdsY21Gb3JtRmllbGRJbnB1dCB9IGZyb20gJ0B3bGNtL2FuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgV2xjbURhdGVwaWNrZXJJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvc2luZ2xlL2RhdGVwaWNrZXItaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFdsY21EYXRlcGlja2VyUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlcGlja2VyLXBhbmVsL2RhdGVwaWNrZXItcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgRU1QVFksIHN3aXRjaE1hcCwgZnJvbUV2ZW50LCBtZXJnZSwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXbGNtRGF0ZXBpY2tlclRyaWdnZXIgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2RhdGVwaWNrZXItdHJpZ2dlci5iYXNlJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tZGF0ZXBpY2tlci1pbnB1dC1jb250YWluZXInLFxuICBob3N0OiB7IGNsYXNzOiAnd2xjbS1kYXRlcGlja2VyLWlucHV0LWNvbnRhaW5lcicgfSxcbiAgZXhwb3J0QXM6ICd3bGNtRGF0ZXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci1pbnB1dC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGF0ZXBpY2tlci1pbnB1dC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBXTENNX0lOUFVUX0JJTkRFUixcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBpbmplY3QoV2xjbURhdGVwaWNrZXJJbnB1dENvbnRhaW5lckNvbXBvbmVudCwgeyBzZWxmOiB0cnVlIH0pO1xuXG4gICAgICAgIHJldHVybiB7IGJpbmQ6ICgpID0+IGlucHV0IH07XG4gICAgICB9LFxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXbGNtRGF0ZXBpY2tlcklucHV0Q29udGFpbmVyQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfSxcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXbGNtRGF0ZXBpY2tlcklucHV0Q29udGFpbmVyQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfSxcbiAgICB7IHByb3ZpZGU6IFdsY21EYXRlcGlja2VyVHJpZ2dlciwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbURhdGVwaWNrZXJJbnB1dENvbnRhaW5lckNvbXBvbmVudCkgfSxcbiAgICB7IHByb3ZpZGU6IE1hdERhdGVTZWxlY3Rpb25Nb2RlbCwgdXNlQ2xhc3M6IE1hdFNpbmdsZURhdGVTZWxlY3Rpb25Nb2RlbCB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtRGF0ZXBpY2tlcklucHV0Q29udGFpbmVyQ29tcG9uZW50PFQ+XG4gIGV4dGVuZHMgV2xjbURhdGVwaWNrZXJUcmlnZ2VyPFdsY21EYXRlcGlja2VyUGFuZWxDb21wb25lbnQ8VD4+XG4gIGltcGxlbWVudHMgV2xjbUZvcm1GaWVsZElucHV0LCBBZnRlckNvbnRlbnRJbml0XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzU3RyZWFtJDogQmVoYXZpb3JTdWJqZWN0PE9ic2VydmFibGU8dm9pZD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChFTVBUWSBhcyBPYnNlcnZhYmxlPHZvaWQ+KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9ibHVyU3RyZWFtJDogQmVoYXZpb3JTdWJqZWN0PE9ic2VydmFibGU8dm9pZD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChFTVBUWSBhcyBPYnNlcnZhYmxlPHZvaWQ+KTtcblxuICBmb2N1cyQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLl9mb2N1c1N0cmVhbSQucGlwZShzd2l0Y2hNYXAoKHN0cmVhbTogT2JzZXJ2YWJsZTx1bmtub3duPikgPT4gc3RyZWFtKSk7XG5cbiAgYmx1ciQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLl9ibHVyU3RyZWFtJC5waXBlKHN3aXRjaE1hcCgoc3RyZWFtOiBPYnNlcnZhYmxlPHVua25vd24+KSA9PiBzdHJlYW0pKTtcblxuICBpbnB1dFJlZjogU2lnbmFsPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQ+ID0gY29udGVudENoaWxkKFdsY21EYXRlcGlja2VySW5wdXREaXJlY3RpdmUsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICB9KTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY29tcG9uZW50VHlwZSA9IFdsY21EYXRlcGlja2VyUGFuZWxDb21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNvbm5lY3RlZFRvITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNlbGVjdGlvbk1vZGVsOiBNYXREYXRlU2VsZWN0aW9uTW9kZWw8RGF0ZT4sXG4gICAgQEhvc3QoKSBASW5qZWN0KFdMQ01fRk9STV9GSUVMRCkgcHJpdmF0ZSBmb3JtRmllbGQ6IFdsY21Gb3JtRmllbGQsXG4gICkge1xuICAgIHN1cGVyKG92ZXJsYXksIHZpZXdDb250YWluZXJSZWYsIHNlbGVjdGlvbk1vZGVsKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmF0dGFjaEZvY3VzQmx1ckxpc3RlbmVycygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29ubmVjdGVkVG8gPSB0aGlzLmZvcm1GaWVsZC5pbnB1dENvbnRhaW5lcjtcbiAgfVxuXG4gIGZvY3VzID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnNlbGVjdE9ubHkoKSkgcmV0dXJuIHRoaXMub3BlbigpO1xuXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQ/LmZvY3VzKCk7XG4gIH07XG5cbiAgaXNGb2N1c2VkID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLmlucHV0RWxlbWVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCB8fCB0aGlzLmlzT3BlbjtcbiAgfTtcblxuICBwcml2YXRlIGdldCBpbnB1dEVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRSZWYoKT8ubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoRm9jdXNCbHVyTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IHZvaWRGbiA9ICgpID0+IHt9O1xuXG4gICAgY29uc3QgaW5wdXRGb2N1czogT2JzZXJ2YWJsZTxFdmVudD4gPSBmcm9tRXZlbnQodGhpcy5pbnB1dEVsZW1lbnQhLCAnZm9jdXMnKTtcblxuICAgIGNvbnN0IGlucHV0Qmx1cjogT2JzZXJ2YWJsZTxFdmVudD4gPSBmcm9tRXZlbnQodGhpcy5pbnB1dEVsZW1lbnQhLCAnYmx1cicpO1xuXG4gICAgY29uc3QgZm9jdXNPYnNlcnZhYmxlczogT2JzZXJ2YWJsZTx1bmtub3duPltdID0gW2lucHV0Rm9jdXMsIHRoaXMub3BlbmVkXTtcblxuICAgIGNvbnN0IGJsdXJPYnNlcnZhYmxlczogT2JzZXJ2YWJsZTx1bmtub3duPltdID0gW2lucHV0Qmx1ciwgdGhpcy5jbG9zZWRdO1xuXG4gICAgdGhpcy5fZm9jdXNTdHJlYW0kLm5leHQobWVyZ2UoLi4uZm9jdXNPYnNlcnZhYmxlcykucGlwZShtYXAodm9pZEZuKSkpO1xuXG4gICAgdGhpcy5fYmx1clN0cmVhbSQubmV4dChtZXJnZSguLi5ibHVyT2JzZXJ2YWJsZXMpLnBpcGUobWFwKHZvaWRGbikpKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3dsY21EYXRlcGlja2VySW5wdXRdXCI+PC9uZy1jb250ZW50PlxuIl19
|
package/datepicker/esm2022/lib/components/single/datepicker-panel/datepicker-panel.component.mjs
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Component, Inject, viewChild } from '@angular/core';
|
|
2
|
+
import { MatCalendar, MatDateSelectionModel, MatDatepickerModule } from '@angular/material/datepicker';
|
|
3
|
+
import { WlcmCalendarHeaderComponent } from '../../calendar-header/calendar-header.component';
|
|
4
|
+
import { WlcmDatepickerTrigger } from '../../../directives/datepicker-trigger.base';
|
|
5
|
+
import { WLCM_DATEPICKER_CONFIG } from '../../../constants/datepicker.constants';
|
|
6
|
+
import { WlcmCalendarDirective } from '../../../directives/calendar.directive';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/material/datepicker";
|
|
10
|
+
import * as i2 from "../../../directives/datepicker-trigger.base";
|
|
11
|
+
export class WlcmDatepickerPanelComponent {
|
|
12
|
+
constructor(selectionModel, trigger, config) {
|
|
13
|
+
this.selectionModel = selectionModel;
|
|
14
|
+
this.trigger = trigger;
|
|
15
|
+
this.config = config;
|
|
16
|
+
this.headerComponent = WlcmCalendarHeaderComponent;
|
|
17
|
+
this.matCalendar = viewChild(MatCalendar);
|
|
18
|
+
}
|
|
19
|
+
select(date) {
|
|
20
|
+
this.selectionModel.updateSelection(date, this);
|
|
21
|
+
this.trigger.close();
|
|
22
|
+
}
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerPanelComponent, deps: [{ token: i1.MatDateSelectionModel }, { token: i2.WlcmDatepickerTrigger }, { token: WLCM_DATEPICKER_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: WlcmDatepickerPanelComponent, isStandalone: true, selector: "wlcm-datepicker-panel", host: { classAttribute: "wlcm-datepicker-panel" }, viewQueries: [{ propertyName: "matCalendar", first: true, predicate: MatCalendar, descendants: true, isSignal: true }], ngImport: i0, template: "<mat-calendar\n wlcmCalendar\n [minDate]=\"config.minDate?.()\"\n [maxDate]=\"config.maxDate?.()\"\n [startAt]=\"selectionModel.selection\"\n [selected]=\"selectionModel.selection\"\n [headerComponent]=\"headerComponent\"\n (selectedChange)=\"select($event)\"\n></mat-calendar>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i1.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: WlcmCalendarDirective, selector: "[wlcmCalendar]" }] }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerPanelComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{ selector: 'wlcm-datepicker-panel', host: { class: 'wlcm-datepicker-panel' }, standalone: true, imports: [CommonModule, MatDatepickerModule, WlcmCalendarDirective], template: "<mat-calendar\n wlcmCalendar\n [minDate]=\"config.minDate?.()\"\n [maxDate]=\"config.maxDate?.()\"\n [startAt]=\"selectionModel.selection\"\n [selected]=\"selectionModel.selection\"\n [headerComponent]=\"headerComponent\"\n (selectedChange)=\"select($event)\"\n></mat-calendar>\n" }]
|
|
29
|
+
}], ctorParameters: () => [{ type: i1.MatDateSelectionModel }, { type: i2.WlcmDatepickerTrigger }, { type: undefined, decorators: [{
|
|
30
|
+
type: Inject,
|
|
31
|
+
args: [WLCM_DATEPICKER_CONFIG]
|
|
32
|
+
}] }] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGVwaWNrZXIvc3JjL2xpYi9jb21wb25lbnRzL3NpbmdsZS9kYXRlcGlja2VyLXBhbmVsL2RhdGVwaWNrZXItcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlcGlja2VyL3NyYy9saWIvY29tcG9uZW50cy9zaW5nbGUvZGF0ZXBpY2tlci1wYW5lbC9kYXRlcGlja2VyLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBVS9DLE1BQU0sT0FBTyw0QkFBNEI7SUFLdkMsWUFDWSxjQUEyQyxFQUMzQyxPQUErRCxFQUMvQixNQUE0QjtRQUY1RCxtQkFBYyxHQUFkLGNBQWMsQ0FBNkI7UUFDM0MsWUFBTyxHQUFQLE9BQU8sQ0FBd0Q7UUFDL0IsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFQOUQsb0JBQWUsR0FBRywyQkFBMkIsQ0FBQztRQUVqRCxnQkFBVyxHQUF1QyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFNN0UsQ0FBQztJQUVKLE1BQU0sQ0FBQyxJQUFVO1FBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs4R0FmVSw0QkFBNEIsNEZBUTdCLHNCQUFzQjtrR0FSckIsNEJBQTRCLGlMQUc0QixXQUFXLGdFQ3BCaEYsZ1NBU0EseURESVksWUFBWSw4QkFBRSxtQkFBbUIsMmJBQUUscUJBQXFCOzsyRkFJdkQsNEJBQTRCO2tCQVJ4QyxTQUFTOytCQUNFLHVCQUF1QixRQUMzQixFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxjQUM1QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLENBQUM7OzBCQVloRSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBTaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FsZW5kYXIsIE1hdERhdGVTZWxlY3Rpb25Nb2RlbCwgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgV2xjbUNhbGVuZGFySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2FsZW5kYXItaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2xjbURhdGVwaWNrZXJUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9kYXRlcGlja2VyLXRyaWdnZXIuYmFzZSc7XG5pbXBvcnQgeyBXTENNX0RBVEVQSUNLRVJfQ09ORklHIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2RhdGVwaWNrZXIuY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21DYWxlbmRhckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvY2FsZW5kYXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFdsY21EYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2RhdGUtcGlja2VyLm1vZGVscyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3bGNtLWRhdGVwaWNrZXItcGFuZWwnLFxuICBob3N0OiB7IGNsYXNzOiAnd2xjbS1kYXRlcGlja2VyLXBhbmVsJyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXREYXRlcGlja2VyTW9kdWxlLCBXbGNtQ2FsZW5kYXJEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kYXRlcGlja2VyLXBhbmVsLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbURhdGVwaWNrZXJQYW5lbENvbXBvbmVudDxEPiB7XG4gIHByb3RlY3RlZCBoZWFkZXJDb21wb25lbnQgPSBXbGNtQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQ7XG5cbiAgcHVibGljIG1hdENhbGVuZGFyOiBTaWduYWw8TWF0Q2FsZW5kYXI8RD4gfCB1bmRlZmluZWQ+ID0gdmlld0NoaWxkKE1hdENhbGVuZGFyKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc2VsZWN0aW9uTW9kZWw6IE1hdERhdGVTZWxlY3Rpb25Nb2RlbDxEYXRlPixcbiAgICBwcm90ZWN0ZWQgdHJpZ2dlcjogV2xjbURhdGVwaWNrZXJUcmlnZ2VyPFdsY21EYXRlcGlja2VyUGFuZWxDb21wb25lbnQ8RD4+LFxuICAgIEBJbmplY3QoV0xDTV9EQVRFUElDS0VSX0NPTkZJRykgcHJvdGVjdGVkIGNvbmZpZzogV2xjbURhdGVwaWNrZXJDb25maWdcbiAgKSB7fVxuXG4gIHNlbGVjdChkYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC51cGRhdGVTZWxlY3Rpb24oZGF0ZSwgdGhpcyk7XG5cbiAgICB0aGlzLnRyaWdnZXIuY2xvc2UoKTtcbiAgfVxufVxuIiwiPG1hdC1jYWxlbmRhclxuICB3bGNtQ2FsZW5kYXJcbiAgW21pbkRhdGVdPVwiY29uZmlnLm1pbkRhdGU/LigpXCJcbiAgW21heERhdGVdPVwiY29uZmlnLm1heERhdGU/LigpXCJcbiAgW3N0YXJ0QXRdPVwic2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uXCJcbiAgW3NlbGVjdGVkXT1cInNlbGVjdGlvbk1vZGVsLnNlbGVjdGlvblwiXG4gIFtoZWFkZXJDb21wb25lbnRdPVwiaGVhZGVyQ29tcG9uZW50XCJcbiAgKHNlbGVjdGVkQ2hhbmdlKT1cInNlbGVjdCgkZXZlbnQpXCJcbj48L21hdC1jYWxlbmRhcj5cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
3
|
+
import { WlcmDateAdapter } from '../models/date-picker.models';
|
|
4
|
+
import { enUS } from 'date-fns/locale';
|
|
5
|
+
export const WLCM_DEFAULT_DATE_FORMATS = {
|
|
6
|
+
parse: {
|
|
7
|
+
dateInput: 'MMM/dd/yyyy',
|
|
8
|
+
},
|
|
9
|
+
display: {
|
|
10
|
+
dateInput: 'MMM/dd/yyyy',
|
|
11
|
+
monthYearLabel: 'MMMM yyyy',
|
|
12
|
+
dateA11yLabel: 'MMM/dd/yyyy',
|
|
13
|
+
monthYearA11yLabel: 'MMM yyyy',
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
export const WLCM_DEFAULT_DATEPICKER_PROVIDERS = [
|
|
17
|
+
{ provide: MAT_DATE_LOCALE, useValue: enUS },
|
|
18
|
+
{ provide: MAT_DATE_FORMATS, useValue: WLCM_DEFAULT_DATE_FORMATS },
|
|
19
|
+
{ provide: DateAdapter, useClass: WlcmDateAdapter, deps: [MAT_DATE_LOCALE] },
|
|
20
|
+
];
|
|
21
|
+
export const WLCM_DATEPICKER_CONFIG = new InjectionToken('WLCM_DATEPICKER_CONFIG', { providedIn: 'root', factory: () => ({ selectOnly: false }) });
|
|
22
|
+
export const WLCM_DATEPICKER_INPUT_CLASS = 'wlcm-datepicker-input';
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGVwaWNrZXIvc3JjL2xpYi9jb25zdGFudHMvZGF0ZXBpY2tlci5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RyxPQUFPLEVBQUUsZUFBZSxFQUF3QixNQUFNLDhCQUE4QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBbUI7SUFDdkQsS0FBSyxFQUFFO1FBQ0wsU0FBUyxFQUFFLGFBQWE7S0FDekI7SUFDRCxPQUFPLEVBQUU7UUFDUCxTQUFTLEVBQUUsYUFBYTtRQUN4QixjQUFjLEVBQUUsV0FBVztRQUMzQixhQUFhLEVBQUUsYUFBYTtRQUM1QixrQkFBa0IsRUFBRSxVQUFVO0tBQy9CO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFlO0lBQzNELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO0lBQzVDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBRTtJQUNsRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRTtDQUM3RSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXlDLElBQUksY0FBYyxDQUM1Rix3QkFBd0IsRUFDeEIsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FDL0QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5pbXBvcnQgeyBXbGNtRGF0ZUFkYXB0ZXIsIFdsY21EYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGUtcGlja2VyLm1vZGVscyc7XG5pbXBvcnQgeyBlblVTIH0gZnJvbSAnZGF0ZS1mbnMvbG9jYWxlJztcblxuZXhwb3J0IGNvbnN0IFdMQ01fREVGQVVMVF9EQVRFX0ZPUk1BVFM6IE1hdERhdGVGb3JtYXRzID0ge1xuICBwYXJzZToge1xuICAgIGRhdGVJbnB1dDogJ01NTS9kZC95eXl5JyxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ01NTS9kZC95eXl5JyxcbiAgICBtb250aFllYXJMYWJlbDogJ01NTU0geXl5eScsXG4gICAgZGF0ZUExMXlMYWJlbDogJ01NTS9kZC95eXl5JyxcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdNTU0geXl5eScsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgV0xDTV9ERUZBVUxUX0RBVEVQSUNLRVJfUFJPVklERVJTOiBQcm92aWRlcltdID0gW1xuICB7IHByb3ZpZGU6IE1BVF9EQVRFX0xPQ0FMRSwgdXNlVmFsdWU6IGVuVVMgfSxcbiAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogV0xDTV9ERUZBVUxUX0RBVEVfRk9STUFUUyB9LFxuICB7IHByb3ZpZGU6IERhdGVBZGFwdGVyLCB1c2VDbGFzczogV2xjbURhdGVBZGFwdGVyLCBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFXSB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IFdMQ01fREFURVBJQ0tFUl9DT05GSUc6IEluamVjdGlvblRva2VuPFdsY21EYXRlcGlja2VyQ29uZmlnPiA9IG5ldyBJbmplY3Rpb25Ub2tlbihcbiAgJ1dMQ01fREFURVBJQ0tFUl9DT05GSUcnLFxuICB7IHByb3ZpZGVkSW46ICdyb290JywgZmFjdG9yeTogKCkgPT4gKHsgc2VsZWN0T25seTogZmFsc2UgfSkgfSxcbik7XG5cbmV4cG9ydCBjb25zdCBXTENNX0RBVEVQSUNLRVJfSU5QVVRfQ0xBU1MgPSAnd2xjbS1kYXRlcGlja2VyLWlucHV0JztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { WlcmDateRangePickerBottomPanelComponent } from '../../components/range/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component';
|
|
3
|
+
export const WLCM_DATE_RANGE_PICKER_CONFIG = new InjectionToken('WLCM_DATE_RANGE_PICKER_CONFIG', { providedIn: 'root', factory: () => ({}) });
|
|
4
|
+
export const WLCM_DATE_RANGE_PICKER_BP = new InjectionToken('WLCM_DATE_RANGE_PICKER_BP', { providedIn: 'root', factory: () => WlcmDateRangePickerBottomPanelComponent });
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlcGlja2VyL3NyYy9saWIvY29uc3RhbnRzL3JhbmdlL2RhdGUtcmFuZ2UtcGlja2VyLmNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLGdHQUFnRyxDQUFDO0FBRXpKLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUE4QyxJQUFJLGNBQWMsQ0FDeEcsK0JBQStCLEVBQy9CLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUM1QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQWtDLElBQUksY0FBYyxDQUN4RiwyQkFBMkIsRUFDM0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxDQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdsY21EYXRlUmFuZ2VQaWNrZXJDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmFuZ2UvZGF0ZS1yYW5nZS1waWNrZXIubW9kZWxzJztcbmltcG9ydCB7IFdsY21EYXRlUmFuZ2VQaWNrZXJCb3R0b21QYW5lbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmFuZ2UvZGF0ZS1yYW5nZS1waWNrZXItYm90dG9tLXBhbmVsL2RhdGUtcmFuZ2UtcGlja2VyLWJvdHRvbS1wYW5lbC5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgV0xDTV9EQVRFX1JBTkdFX1BJQ0tFUl9DT05GSUc6IEluamVjdGlvblRva2VuPFdsY21EYXRlUmFuZ2VQaWNrZXJDb25maWc+ID0gbmV3IEluamVjdGlvblRva2VuKFxuICAnV0xDTV9EQVRFX1JBTkdFX1BJQ0tFUl9DT05GSUcnLFxuICB7IHByb3ZpZGVkSW46ICdyb290JywgZmFjdG9yeTogKCkgPT4gKHt9KSB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IFdMQ01fREFURV9SQU5HRV9QSUNLRVJfQlA6IEluamVjdGlvblRva2VuPFR5cGU8dW5rbm93bj4+ID0gbmV3IEluamVjdGlvblRva2VuKFxuICAnV0xDTV9EQVRFX1JBTkdFX1BJQ0tFUl9CUCcsXG4gIHsgcHJvdmlkZWRJbjogJ3Jvb3QnLCBmYWN0b3J5OiAoKSA9PiBXbGNtRGF0ZVJhbmdlUGlja2VyQm90dG9tUGFuZWxDb21wb25lbnQgfSxcbik7XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1zZWxlY3Rpb24tbW9kZWwuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlcGlja2VyL3NyYy9saWIvY29uc3RhbnRzL3JhbmdlL2RhdGUtcmFuZ2Utc2VsZWN0aW9uLW1vZGVsLmNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQXlCLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFakcsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQWdELElBQUksY0FBYyxDQUM1RyxpQ0FBaUMsQ0FDbEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFhO0lBQ2hFLE9BQU8sRUFBRSwrQkFBK0I7SUFDeEMsVUFBVSxFQUFFLENBQUMsT0FBMEIsRUFBRSxFQUFFLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxPQUFPLENBQUM7SUFDbkYsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDO0NBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlU2VsZWN0aW9uTW9kZWwsIE1hdFJhbmdlRGF0ZVNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5cbmV4cG9ydCBjb25zdCBXTENNX0RBVEVfUkFOR0VfU0VMRUNUSU9OX01PREVMOiBJbmplY3Rpb25Ub2tlbjxNYXREYXRlU2VsZWN0aW9uTW9kZWw8RGF0ZT4+ID0gbmV3IEluamVjdGlvblRva2VuKFxuICAnV0xDTV9EQVRFX1JBTkdFX1NFTEVDVElPTl9NT0RFTCdcbik7XG5cbmV4cG9ydCBjb25zdCBXTENNX0RBVEVfUkFOR0VfU0VMRUNUSU9OX01PREVMX1BST1ZJREVSOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogV0xDTV9EQVRFX1JBTkdFX1NFTEVDVElPTl9NT0RFTCxcbiAgdXNlRmFjdG9yeTogKGFkYXB0ZXI6IERhdGVBZGFwdGVyPERhdGU+KSA9PiBuZXcgTWF0UmFuZ2VEYXRlU2VsZWN0aW9uTW9kZWwoYWRhcHRlciksXG4gIGRlcHM6IFtEYXRlQWRhcHRlcl0sXG59O1xuIl19
|
package/datepicker/esm2022/lib/constants/range/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS10cmlnZ2VyLXNlbGVjdGlvbi1tb2RlbC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGVwaWNrZXIvc3JjL2xpYi9jb25zdGFudHMvcmFuZ2UvZGF0ZS1yYW5nZS10cmlnZ2VyLXNlbGVjdGlvbi1tb2RlbC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQXlCLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFnRCxJQUFJLGNBQWMsQ0FDcEgsaUNBQWlDLENBQ2xDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnREFBZ0QsR0FBYTtJQUN4RSxPQUFPLEVBQUUsdUNBQXVDO0lBQ2hELFVBQVUsRUFBRSxDQUFDLE9BQTBCLEVBQUUsRUFBRSxDQUFDLElBQUksMEJBQTBCLENBQUMsT0FBTyxDQUFDO0lBQ25GLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQztDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlU2VsZWN0aW9uTW9kZWwsIE1hdFJhbmdlRGF0ZVNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgV0xDTV9EQVRFX1JBTkdFX1RSSUdHRVJfU0VMRUNUSU9OX01PREVMOiBJbmplY3Rpb25Ub2tlbjxNYXREYXRlU2VsZWN0aW9uTW9kZWw8RGF0ZT4+ID0gbmV3IEluamVjdGlvblRva2VuKFxuICAnV0xDTV9EQVRFX1JBTkdFX1NFTEVDVElPTl9NT0RFTCdcbik7XG5cbmV4cG9ydCBjb25zdCBXTENNX0RBVEVfUkFOR0VfVFJJR0dFUl9TRUxFQ1RJT05fTU9ERUxfUFJPVklERVI6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBXTENNX0RBVEVfUkFOR0VfVFJJR0dFUl9TRUxFQ1RJT05fTU9ERUwsXG4gIHVzZUZhY3Rvcnk6IChhZGFwdGVyOiBEYXRlQWRhcHRlcjxEYXRlPikgPT4gbmV3IE1hdFJhbmdlRGF0ZVNlbGVjdGlvbk1vZGVsKGFkYXB0ZXIpLFxuICBkZXBzOiBbRGF0ZUFkYXB0ZXJdLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { WlcmDatepickerInputContainerComponent } from './components/single/datepicker-input-container/datepicker-input-container.component';
|
|
4
|
+
import { WlcmDateRangePickerInputComponent } from './components/range/date-range-picker-input/date-range-picker-input.component';
|
|
5
|
+
import { DateRangePickerInputStartDirective } from './directives/ragne/date-range-picker-input-start.directive';
|
|
6
|
+
import { DateRangePickerInputEndDirective } from './directives/ragne/date-range-picker-input-end.directive';
|
|
7
|
+
import { WlcmDatepickerInputDirective } from './directives/single/datepicker-input.directive';
|
|
8
|
+
import { WLCM_DEFAULT_DATEPICKER_PROVIDERS } from './constants/datepicker.constants';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
const publicComponents = [WlcmDatepickerInputContainerComponent, WlcmDateRangePickerInputComponent];
|
|
11
|
+
const publicDirectives = [
|
|
12
|
+
WlcmDatepickerInputDirective,
|
|
13
|
+
DateRangePickerInputStartDirective,
|
|
14
|
+
DateRangePickerInputEndDirective,
|
|
15
|
+
];
|
|
16
|
+
export class WlcmDatepickerModule {
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
18
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerModule, imports: [CommonModule, WlcmDatepickerInputContainerComponent, WlcmDateRangePickerInputComponent, WlcmDatepickerInputDirective,
|
|
19
|
+
DateRangePickerInputStartDirective,
|
|
20
|
+
DateRangePickerInputEndDirective], exports: [WlcmDatepickerInputContainerComponent, WlcmDateRangePickerInputComponent, WlcmDatepickerInputDirective,
|
|
21
|
+
DateRangePickerInputStartDirective,
|
|
22
|
+
DateRangePickerInputEndDirective] }); }
|
|
23
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerModule, providers: [...WLCM_DEFAULT_DATEPICKER_PROVIDERS], imports: [CommonModule, publicComponents] }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerModule, decorators: [{
|
|
26
|
+
type: NgModule,
|
|
27
|
+
args: [{
|
|
28
|
+
imports: [CommonModule, ...publicComponents, ...publicDirectives],
|
|
29
|
+
exports: [...publicComponents, ...publicDirectives],
|
|
30
|
+
providers: [...WLCM_DEFAULT_DATEPICKER_PROVIDERS],
|
|
31
|
+
}]
|
|
32
|
+
}] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGVwaWNrZXIvc3JjL2xpYi9kYXRlcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxxRkFBcUYsQ0FBQztBQUM1SSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNoSCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFFckYsTUFBTSxnQkFBZ0IsR0FBb0IsQ0FBQyxxQ0FBcUMsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO0FBRXJILE1BQU0sZ0JBQWdCLEdBQW9CO0lBQ3hDLDRCQUE0QjtJQUM1QixrQ0FBa0M7SUFDbEMsZ0NBQWdDO0NBQ2pDLENBQUM7QUFPRixNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7K0dBQXBCLG9CQUFvQixZQUpyQixZQUFZLEVBVG1CLHFDQUFxQyxFQUFFLGlDQUFpQyxFQUdqSCw0QkFBNEI7WUFDNUIsa0NBQWtDO1lBQ2xDLGdDQUFnQyxhQUxTLHFDQUFxQyxFQUFFLGlDQUFpQyxFQUdqSCw0QkFBNEI7WUFDNUIsa0NBQWtDO1lBQ2xDLGdDQUFnQzsrR0FRckIsb0JBQW9CLGFBRnBCLENBQUMsR0FBRyxpQ0FBaUMsQ0FBQyxZQUZ2QyxZQUFZLEVBQUssZ0JBQWdCOzsyRkFJaEMsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLGdCQUFnQixFQUFFLEdBQUcsZ0JBQWdCLENBQUM7b0JBQ2pFLE9BQU8sRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQztvQkFDbkQsU0FBUyxFQUFFLENBQUMsR0FBRyxpQ0FBaUMsQ0FBQztpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFdsY21EYXRlcGlja2VySW5wdXRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2luZ2xlL2RhdGVwaWNrZXItaW5wdXQtY29udGFpbmVyL2RhdGVwaWNrZXItaW5wdXQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXbGNtRGF0ZVJhbmdlUGlja2VySW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmFuZ2UvZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQvZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVSYW5nZVBpY2tlcklucHV0U3RhcnREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcmFnbmUvZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQtc3RhcnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IERhdGVSYW5nZVBpY2tlcklucHV0RW5kRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3JhZ25lL2RhdGUtcmFuZ2UtcGlja2VyLWlucHV0LWVuZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2xjbURhdGVwaWNrZXJJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zaW5nbGUvZGF0ZXBpY2tlci1pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV0xDTV9ERUZBVUxUX0RBVEVQSUNLRVJfUFJPVklERVJTIH0gZnJvbSAnLi9jb25zdGFudHMvZGF0ZXBpY2tlci5jb25zdGFudHMnO1xuXG5jb25zdCBwdWJsaWNDb21wb25lbnRzOiBUeXBlPHVua25vd24+W10gPSBbV2xjbURhdGVwaWNrZXJJbnB1dENvbnRhaW5lckNvbXBvbmVudCwgV2xjbURhdGVSYW5nZVBpY2tlcklucHV0Q29tcG9uZW50XTtcblxuY29uc3QgcHVibGljRGlyZWN0aXZlczogVHlwZTx1bmtub3duPltdID0gW1xuICBXbGNtRGF0ZXBpY2tlcklucHV0RGlyZWN0aXZlLFxuICBEYXRlUmFuZ2VQaWNrZXJJbnB1dFN0YXJ0RGlyZWN0aXZlLFxuICBEYXRlUmFuZ2VQaWNrZXJJbnB1dEVuZERpcmVjdGl2ZSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIC4uLnB1YmxpY0NvbXBvbmVudHMsIC4uLnB1YmxpY0RpcmVjdGl2ZXNdLFxuICBleHBvcnRzOiBbLi4ucHVibGljQ29tcG9uZW50cywgLi4ucHVibGljRGlyZWN0aXZlc10sXG4gIHByb3ZpZGVyczogWy4uLldMQ01fREVGQVVMVF9EQVRFUElDS0VSX1BST1ZJREVSU10sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21EYXRlcGlja2VyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class WlcmCalendarDirective {
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmCalendarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: WlcmCalendarDirective, isStandalone: true, selector: "[wlcmCalendar]", host: { classAttribute: "wlcm-calendar" }, ngImport: i0 }); }
|
|
6
|
+
}
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmCalendarDirective, decorators: [{
|
|
8
|
+
type: Directive,
|
|
9
|
+
args: [{
|
|
10
|
+
selector: '[wlcmCalendar]',
|
|
11
|
+
host: { class: 'wlcm-calendar' },
|
|
12
|
+
standalone: true,
|
|
13
|
+
}]
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlcGlja2VyL3NyYy9saWIvZGlyZWN0aXZlcy9jYWxlbmRhci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLHFCQUFxQjs4R0FBckIscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRTtvQkFDaEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3bGNtQ2FsZW5kYXJdJyxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tY2FsZW5kYXInIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFdsY21DYWxlbmRhckRpcmVjdGl2ZSB7fVxuIl19
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { Directive, ElementRef, HostBinding, HostListener } from '@angular/core';
|
|
2
|
+
import { format, isAfter, isBefore, isValid, parse, startOfDay } from 'date-fns';
|
|
3
|
+
import { WLCM_DATEPICKER_INPUT_CLASS } from '../constants/datepicker.constants';
|
|
4
|
+
import { DateAdapter } from '@angular/material/core';
|
|
5
|
+
import { WlcmDateValidation } from '../models/date-picker.models';
|
|
6
|
+
import { WlcmDatepickerTrigger } from './datepicker-trigger.base';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/material/core";
|
|
9
|
+
import * as i2 from "./datepicker-trigger.base";
|
|
10
|
+
export class WlcmDatepickerInputBase {
|
|
11
|
+
handleBlur() {
|
|
12
|
+
this.updateSelection();
|
|
13
|
+
this._touched?.();
|
|
14
|
+
}
|
|
15
|
+
handleInput() {
|
|
16
|
+
if (this.isValidFormat(this.currentValue, this.dateFormats.parse.dateInput)) {
|
|
17
|
+
this.updateSelection();
|
|
18
|
+
}
|
|
19
|
+
this._validatorChanged?.();
|
|
20
|
+
}
|
|
21
|
+
get datepickerInputClass() {
|
|
22
|
+
return WLCM_DATEPICKER_INPUT_CLASS;
|
|
23
|
+
}
|
|
24
|
+
constructor(element, dateAdapter, dateFormats, trigger) {
|
|
25
|
+
this.element = element;
|
|
26
|
+
this.dateAdapter = dateAdapter;
|
|
27
|
+
this.dateFormats = dateFormats;
|
|
28
|
+
this.trigger = trigger;
|
|
29
|
+
}
|
|
30
|
+
writeValue(value) {
|
|
31
|
+
this.updateInputValue(value);
|
|
32
|
+
}
|
|
33
|
+
registerOnChange(callback) {
|
|
34
|
+
this._changed = callback;
|
|
35
|
+
}
|
|
36
|
+
registerOnTouched(callback) {
|
|
37
|
+
this._touched = callback;
|
|
38
|
+
}
|
|
39
|
+
registerOnValidatorChange(callback) {
|
|
40
|
+
this._validatorChanged = callback;
|
|
41
|
+
}
|
|
42
|
+
validate() {
|
|
43
|
+
if (!this.currentValue)
|
|
44
|
+
return null;
|
|
45
|
+
const isValid = this.isValidFormat(this.currentValue, this.dateFormats.parse.dateInput);
|
|
46
|
+
if (!isValid) {
|
|
47
|
+
return {
|
|
48
|
+
[WlcmDateValidation.Format]: { value: this.currentValue, format: this.dateFormats.parse.dateInput },
|
|
49
|
+
required: false,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const date = this.parseCurrentValue();
|
|
53
|
+
if (this.minDate && isBefore(startOfDay(date), startOfDay(this.minDate))) {
|
|
54
|
+
return { [WlcmDateValidation.MinDate]: { minDate: this.minDate, currentDate: date } };
|
|
55
|
+
}
|
|
56
|
+
if (this.maxDate && isAfter(startOfDay(date), startOfDay(this.maxDate))) {
|
|
57
|
+
return { [WlcmDateValidation.MaxDate]: { maxDate: this.maxDate, currentDate: date } };
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
parseCurrentValue() {
|
|
62
|
+
const date = this.dateAdapter.parse(this.currentValue, this.dateFormats.parse.dateInput);
|
|
63
|
+
return this.dateAdapter.getValidDateOrNull(date);
|
|
64
|
+
}
|
|
65
|
+
isValidFormat(value, pattern) {
|
|
66
|
+
const parsedDate = parse(value, pattern, new Date());
|
|
67
|
+
return isValid(parsedDate) && value === format(parsedDate, pattern);
|
|
68
|
+
}
|
|
69
|
+
get minDate() {
|
|
70
|
+
return this.trigger.minDate?.();
|
|
71
|
+
}
|
|
72
|
+
get maxDate() {
|
|
73
|
+
return this.trigger.maxDate?.();
|
|
74
|
+
}
|
|
75
|
+
get inputElement() {
|
|
76
|
+
return this.element.nativeElement;
|
|
77
|
+
}
|
|
78
|
+
get currentValue() {
|
|
79
|
+
return this.inputElement.value;
|
|
80
|
+
}
|
|
81
|
+
updateInputValue(value) {
|
|
82
|
+
let newValue = '';
|
|
83
|
+
if (value) {
|
|
84
|
+
newValue = this.dateAdapter.format(value, this.dateFormats.display.dateInput);
|
|
85
|
+
}
|
|
86
|
+
this.inputElement.value = newValue;
|
|
87
|
+
}
|
|
88
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerInputBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
89
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: WlcmDatepickerInputBase, host: { listeners: { "blur": "handleBlur()", "input": "handleInput()" }, properties: { "class": "this.datepickerInputClass" } }, ngImport: i0 }); }
|
|
90
|
+
}
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerInputBase, decorators: [{
|
|
92
|
+
type: Directive
|
|
93
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: undefined }, { type: i2.WlcmDatepickerTrigger }], propDecorators: { handleBlur: [{
|
|
94
|
+
type: HostListener,
|
|
95
|
+
args: ['blur']
|
|
96
|
+
}], handleInput: [{
|
|
97
|
+
type: HostListener,
|
|
98
|
+
args: ['input']
|
|
99
|
+
}], datepickerInputClass: [{
|
|
100
|
+
type: HostBinding,
|
|
101
|
+
args: ['class']
|
|
102
|
+
}] } });
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnB1dC5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlcGlja2VyL3NyYy9saWIvZGlyZWN0aXZlcy9kYXRlcGlja2VyLWlucHV0LmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUdsRSxNQUFNLE9BQWdCLHVCQUF1QjtJQUNyQixVQUFVO1FBQzlCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRXNCLFdBQVc7UUFDaEMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM1RSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQTBCLG9CQUFvQjtRQUM1QyxPQUFPLDJCQUEyQixDQUFDO0lBQ3JDLENBQUM7SUFRRCxZQUNZ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T0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQWMsT0FBTztRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBYyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQWMsWUFBWTtRQUN4QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxLQUFrQjtRQUMzQyxJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7UUFFMUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztJQUNyQyxDQUFDOzhHQS9HbUIsdUJBQXVCO2tHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRDVDLFNBQVM7a0tBRWMsVUFBVTtzQkFBL0IsWUFBWTt1QkFBQyxNQUFNO2dCQU1HLFdBQVc7c0JBQWpDLFlBQVk7dUJBQUMsT0FBTztnQkFRSyxvQkFBb0I7c0JBQTdDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZvcm1hdCwgaXNBZnRlciwgaXNCZWZvcmUsIGlzVmFsaWQsIHBhcnNlLCBzdGFydE9mRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgV0xDTV9EQVRFUElDS0VSX0lOUFVUX0NMQVNTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RhdGVwaWNrZXIuY29uc3RhbnRzJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgV2xjbURhdGVWYWxpZGF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGUtcGlja2VyLm1vZGVscyc7XG5pbXBvcnQgeyBXbGNtRGF0ZXBpY2tlclRyaWdnZXIgfSBmcm9tICcuL2RhdGVwaWNrZXItdHJpZ2dlci5iYXNlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV2xjbURhdGVwaWNrZXJJbnB1dEJhc2UgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpIGhhbmRsZUJsdXIoKSB7XG4gICAgdGhpcy51cGRhdGVTZWxlY3Rpb24oKTtcblxuICAgIHRoaXMuX3RvdWNoZWQ/LigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnKSBoYW5kbGVJbnB1dCgpIHtcbiAgICBpZiAodGhpcy5pc1ZhbGlkRm9ybWF0KHRoaXMuY3VycmVudFZhbHVlLCB0aGlzLmRhdGVGb3JtYXRzLnBhcnNlLmRhdGVJbnB1dCkpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZD8uKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGRhdGVwaWNrZXJJbnB1dENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFdMQ01fREFURVBJQ0tFUl9JTlBVVF9DTEFTUztcbiAgfVxuXG4gIHByb3RlY3RlZCBfY2hhbmdlZD86ICh2YWx1ZTogRGF0ZSB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIF90b3VjaGVkPzogKCkgPT4gdm9pZDtcblxuICBwcm90ZWN0ZWQgX3ZhbGlkYXRvckNoYW5nZWQ/OiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4sXG4gICAgcHJvdGVjdGVkIGRhdGVGb3JtYXRzOiBNYXREYXRlRm9ybWF0cyxcbiAgICBwcm90ZWN0ZWQgdHJpZ2dlcjogV2xjbURhdGVwaWNrZXJUcmlnZ2VyPHVua25vd24+LFxuICApIHt9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiBEYXRlIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdG91Y2hlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHZhbGlkYXRlKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuY3VycmVudFZhbHVlKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGlzVmFsaWQ6IGJvb2xlYW4gPSB0aGlzLmlzVmFsaWRGb3JtYXQodGhpcy5jdXJyZW50VmFsdWUsIHRoaXMuZGF0ZUZvcm1hdHMucGFyc2UuZGF0ZUlucHV0KTtcblxuICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW1dsY21EYXRlVmFsaWRhdGlvbi5Gb3JtYXRdOiB7IHZhbHVlOiB0aGlzLmN1cnJlbnRWYWx1ZSwgZm9ybWF0OiB0aGlzLmRhdGVGb3JtYXRzLnBhcnNlLmRhdGVJbnB1dCB9LFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGU6IERhdGUgPSB0aGlzLnBhcnNlQ3VycmVudFZhbHVlKCkhO1xuXG4gICAgaWYgKHRoaXMubWluRGF0ZSAmJiBpc0JlZm9yZShzdGFydE9mRGF5KGRhdGUpLCBzdGFydE9mRGF5KHRoaXMubWluRGF0ZSkpKSB7XG4gICAgICByZXR1cm4geyBbV2xjbURhdGVWYWxpZGF0aW9uLk1pbkRhdGVdOiB7IG1pbkRhdGU6IHRoaXMubWluRGF0ZSwgY3VycmVudERhdGU6IGRhdGUgfSB9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heERhdGUgJiYgaXNBZnRlcihzdGFydE9mRGF5KGRhdGUpLCBzdGFydE9mRGF5KHRoaXMubWF4RGF0ZSkpKSB7XG4gICAgICByZXR1cm4geyBbV2xjbURhdGVWYWxpZGF0aW9uLk1heERhdGVdOiB7IG1heERhdGU6IHRoaXMubWF4RGF0ZSwgY3VycmVudERhdGU6IGRhdGUgfSB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcGFyc2VDdXJyZW50VmFsdWUoKTogRGF0ZSB8IG51bGwge1xuICAgIGNvbnN0IGRhdGU6IERhdGUgfCBudWxsID0gdGhpcy5kYXRlQWRhcHRlci5wYXJzZSh0aGlzLmN1cnJlbnRWYWx1ZSwgdGhpcy5kYXRlRm9ybWF0cy5wYXJzZS5kYXRlSW5wdXQpO1xuXG4gICAgcmV0dXJuIHRoaXMuZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKGRhdGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzVmFsaWRGb3JtYXQodmFsdWU6IHN0cmluZywgcGF0dGVybjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGFyc2VkRGF0ZSA9IHBhcnNlKHZhbHVlLCBwYXR0ZXJuLCBuZXcgRGF0ZSgpKTtcblxuICAgIHJldHVybiBpc1ZhbGlkKHBhcnNlZERhdGUpICYmIHZhbHVlID09PSBmb3JtYXQocGFyc2VkRGF0ZSwgcGF0dGVybik7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgdXBkYXRlU2VsZWN0aW9uKCk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGdldCBtaW5EYXRlKCk6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXIubWluRGF0ZT8uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IG1heERhdGUoKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudHJpZ2dlci5tYXhEYXRlPy4oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaW5wdXRFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY3VycmVudFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUlucHV0VmFsdWUodmFsdWU6IERhdGUgfCBudWxsKTogdm9pZCB7XG4gICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgbmV3VmFsdWUgPSB0aGlzLmRhdGVBZGFwdGVyLmZvcm1hdCh2YWx1ZSwgdGhpcy5kYXRlRm9ybWF0cy5kaXNwbGF5LmRhdGVJbnB1dCk7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { OverlayRef, Overlay, OverlayConfig } from '@angular/cdk/overlay';
|
|
3
|
+
import { ComponentPortal } from '@angular/cdk/portal';
|
|
4
|
+
import { Directive, ViewContainerRef, Injector, input, HostBinding, } from '@angular/core';
|
|
5
|
+
import { WLCM_DATEPICKER_CONFIG } from '../constants/datepicker.constants';
|
|
6
|
+
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
|
7
|
+
import { MatDateSelectionModel } from '@angular/material/datepicker';
|
|
8
|
+
import { merge, EMPTY, filter } from 'rxjs';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
11
|
+
import * as i2 from "@angular/material/datepicker";
|
|
12
|
+
let WlcmDatepickerTrigger = class WlcmDatepickerTrigger {
|
|
13
|
+
get isOnlySelect() {
|
|
14
|
+
return this.selectOnly();
|
|
15
|
+
}
|
|
16
|
+
constructor(overlay, viewContainerRef, selectionModel) {
|
|
17
|
+
this.overlay = overlay;
|
|
18
|
+
this.viewContainerRef = viewContainerRef;
|
|
19
|
+
this.selectionModel = selectionModel;
|
|
20
|
+
this.minDate = input(this.defaultDatepickerConfig.minDate?.());
|
|
21
|
+
this.maxDate = input(this.defaultDatepickerConfig.maxDate?.());
|
|
22
|
+
this.selectOnly = input(this.defaultDatepickerConfig.selectOnly || false);
|
|
23
|
+
this.overlayRef = this.overlay.create(this.createOverlayConfig());
|
|
24
|
+
this.handleBackdropClick();
|
|
25
|
+
}
|
|
26
|
+
open() {
|
|
27
|
+
const injector = Injector.create({
|
|
28
|
+
providers: [{ provide: OverlayRef, useValue: this.overlayRef }],
|
|
29
|
+
parent: this.datepickerInjector,
|
|
30
|
+
});
|
|
31
|
+
const portal = new ComponentPortal(this.componentType, this.viewContainerRef, injector);
|
|
32
|
+
this.updatePositionStrategy();
|
|
33
|
+
this.componentRef = this.overlayRef.attach(portal);
|
|
34
|
+
}
|
|
35
|
+
close() {
|
|
36
|
+
this.overlayRef.detach();
|
|
37
|
+
}
|
|
38
|
+
get isOpen() {
|
|
39
|
+
return this.overlayRef.hasAttached();
|
|
40
|
+
}
|
|
41
|
+
get opened() {
|
|
42
|
+
return merge(this.overlayRef?.attachments() || EMPTY).pipe(filter(() => this.overlayRef.hasAttached()));
|
|
43
|
+
}
|
|
44
|
+
get closed() {
|
|
45
|
+
return (this.overlayRef?.detachments() || EMPTY).pipe(filter(() => !this.overlayRef.hasAttached()));
|
|
46
|
+
}
|
|
47
|
+
get datepickerInjector() {
|
|
48
|
+
const parent = this.viewContainerRef.injector;
|
|
49
|
+
return Injector.create({
|
|
50
|
+
parent,
|
|
51
|
+
providers: [{ provide: WLCM_DATEPICKER_CONFIG, useValue: this.datepickerConfig }],
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
get defaultDatepickerConfig() {
|
|
55
|
+
return this.viewContainerRef.injector.get(WLCM_DATEPICKER_CONFIG, {}, { optional: true });
|
|
56
|
+
}
|
|
57
|
+
get datepickerConfig() {
|
|
58
|
+
const config = { ...this.defaultDatepickerConfig };
|
|
59
|
+
if (this.minDate())
|
|
60
|
+
config.minDate = this.minDate;
|
|
61
|
+
if (this.maxDate())
|
|
62
|
+
config.maxDate = this.maxDate;
|
|
63
|
+
config.selectOnly = this.selectOnly();
|
|
64
|
+
return config;
|
|
65
|
+
}
|
|
66
|
+
handleBackdropClick() {
|
|
67
|
+
this.overlayRef
|
|
68
|
+
.backdropClick()
|
|
69
|
+
.pipe(untilDestroyed(this))
|
|
70
|
+
.subscribe(() => this.close());
|
|
71
|
+
}
|
|
72
|
+
updatePositionStrategy() {
|
|
73
|
+
const strategy = this.overlay.position().flexibleConnectedTo(this.connectedTo);
|
|
74
|
+
strategy.withPositions([
|
|
75
|
+
{ originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },
|
|
76
|
+
{ originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },
|
|
77
|
+
]);
|
|
78
|
+
strategy.withLockedPosition(false);
|
|
79
|
+
strategy.withDefaultOffsetY(4);
|
|
80
|
+
this.overlayRef.updatePositionStrategy(strategy);
|
|
81
|
+
}
|
|
82
|
+
createOverlayConfig() {
|
|
83
|
+
return new OverlayConfig({
|
|
84
|
+
hasBackdrop: true,
|
|
85
|
+
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
86
|
+
backdropClass: 'transparent',
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerTrigger, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i2.MatDateSelectionModel }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
90
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: WlcmDatepickerTrigger, inputs: { minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, selectOnly: { classPropertyName: "selectOnly", publicName: "selectOnly", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.wlcm-datepicker-select-only-mode": "this.isOnlySelect" } }, ngImport: i0 }); }
|
|
91
|
+
};
|
|
92
|
+
WlcmDatepickerTrigger = __decorate([
|
|
93
|
+
UntilDestroy(),
|
|
94
|
+
__metadata("design:paramtypes", [Overlay,
|
|
95
|
+
ViewContainerRef,
|
|
96
|
+
MatDateSelectionModel])
|
|
97
|
+
], WlcmDatepickerTrigger);
|
|
98
|
+
export { WlcmDatepickerTrigger };
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerTrigger, decorators: [{
|
|
100
|
+
type: Directive
|
|
101
|
+
}], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.MatDateSelectionModel }], propDecorators: { isOnlySelect: [{
|
|
102
|
+
type: HostBinding,
|
|
103
|
+
args: ['class.wlcm-datepicker-select-only-mode']
|
|
104
|
+
}] } });
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci10cmlnZ2VyLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGVwaWNrZXIvc3JjL2xpYi9kaXJlY3RpdmVzL2RhdGVwaWNrZXItdHJpZ2dlci5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBcUMsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFDTCxTQUFTLEVBSVQsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFFUixLQUFLLEVBQ0wsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckUsT0FBTyxFQUFjLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBSWpELElBQWUscUJBQXFCLEdBQXBDLE1BQWUscUJBQXFCO0lBT3pDLElBQTJELFlBQVk7UUFDckUsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQVVELFlBQ1ksT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLGNBQXdDO1FBRnhDLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFyQnBELFlBQU8sR0FBa0MsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFekYsWUFBTyxHQUFr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RUFBRTtxQ0FzQlEsT0FBTztRQUNFLGdCQUFnQjtRQUNsQixxQkFBcUI7R0F0QjdCLHFCQUFxQixDQThHMUM7OzJGQTlHcUIscUJBQXFCO2tCQUQxQyxTQUFTOytJQVFtRCxZQUFZO3NCQUF0RSxXQUFXO3VCQUFDLHdDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlSZWYsIE92ZXJsYXksIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheUNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBUeXBlLFxuICBDb21wb25lbnRSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIEluamVjdG9yLFxuICBJbnB1dFNpZ25hbCxcbiAgaW5wdXQsXG4gIEhvc3RCaW5kaW5nLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdMQ01fREFURVBJQ0tFUl9DT05GSUcgfSBmcm9tICcuLi9jb25zdGFudHMvZGF0ZXBpY2tlci5jb25zdGFudHMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBNYXREYXRlU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IFdsY21EYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGUtcGlja2VyLm1vZGVscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtZXJnZSwgRU1QVFksIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuXG5AVW50aWxEZXN0cm95KClcbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdsY21EYXRlcGlja2VyVHJpZ2dlcjxULCBEID0gRGF0ZT4ge1xuICBtaW5EYXRlOiBJbnB1dFNpZ25hbDxEYXRlIHwgdW5kZWZpbmVkPiA9IGlucHV0KHRoaXMuZGVmYXVsdERhdGVwaWNrZXJDb25maWcubWluRGF0ZT8uKCkpO1xuXG4gIG1heERhdGU6IElucHV0U2lnbmFsPERhdGUgfCB1bmRlZmluZWQ+ID0gaW5wdXQodGhpcy5kZWZhdWx0RGF0ZXBpY2tlckNvbmZpZy5tYXhEYXRlPy4oKSk7XG5cbiAgc2VsZWN0T25seTogSW5wdXRTaWduYWw8Ym9vbGVhbj4gPSBpbnB1dCh0aGlzLmRlZmF1bHREYXRlcGlja2VyQ29uZmlnLnNlbGVjdE9ubHkgfHwgZmFsc2UpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS1kYXRlcGlja2VyLXNlbGVjdC1vbmx5LW1vZGUnKSBnZXQgaXNPbmx5U2VsZWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdE9ubHkoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVybGF5UmVmOiBPdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh0aGlzLmNyZWF0ZU92ZXJsYXlDb25maWcoKSk7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNvbm5lY3RlZFRvOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY29tcG9uZW50VHlwZTogVHlwZTxUPjtcblxuICBwcm90ZWN0ZWQgY29tcG9uZW50UmVmPzogQ29tcG9uZW50UmVmPFQ+O1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcm90ZWN0ZWQgc2VsZWN0aW9uTW9kZWw6IE1hdERhdGVTZWxlY3Rpb25Nb2RlbDxEPixcbiAgKSB7XG4gICAgdGhpcy5oYW5kbGVCYWNrZHJvcENsaWNrKCk7XG4gIH1cblxuICBvcGVuKCk6IHZvaWQge1xuICAgIGNvbnN0IGluamVjdG9yOiBJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE92ZXJsYXlSZWYsIHVzZVZhbHVlOiB0aGlzLm92ZXJsYXlSZWYgfV0sXG4gICAgICBwYXJlbnQ6IHRoaXMuZGF0ZXBpY2tlckluamVjdG9yLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8VD4gPSBuZXcgQ29tcG9uZW50UG9ydGFsKHRoaXMuY29tcG9uZW50VHlwZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmLCBpbmplY3Rvcik7XG5cbiAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koKTtcblxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICB9XG5cbiAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCk7XG4gIH1cblxuICBnZXQgb3BlbmVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBtZXJnZSh0aGlzLm92ZXJsYXlSZWY/LmF0dGFjaG1lbnRzKCkgfHwgRU1QVFkpLnBpcGUoZmlsdGVyKCgpID0+IHRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSk7XG4gIH1cblxuICBnZXQgY2xvc2VkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiAodGhpcy5vdmVybGF5UmVmPy5kZXRhY2htZW50cygpIHx8IEVNUFRZKS5waXBlKGZpbHRlcigoKSA9PiAhdGhpcy5vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpKTtcbiAgfVxuXG4gIGdldCBkYXRlcGlja2VySW5qZWN0b3IoKTogSW5qZWN0b3Ige1xuICAgIGNvbnN0IHBhcmVudDogSW5qZWN0b3IgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3I7XG5cbiAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudCxcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogV0xDTV9EQVRFUElDS0VSX0NPTkZJRywgdXNlVmFsdWU6IHRoaXMuZGF0ZXBpY2tlckNvbmZpZyB9XSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBkZWZhdWx0RGF0ZXBpY2tlckNvbmZpZygpOiBXbGNtRGF0ZXBpY2tlckNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lclJlZi5pbmplY3Rvci5nZXQoV0xDTV9EQVRFUElDS0VSX0NPTkZJRywge30sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIH1cblxuICBnZXQgZGF0ZXBpY2tlckNvbmZpZygpOiBXbGNtRGF0ZXBpY2tlckNvbmZpZyB7XG4gICAgY29uc3QgY29uZmlnOiBXbGNtRGF0ZXBpY2tlckNvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0RGF0ZXBpY2tlckNvbmZpZyB9O1xuXG4gICAgaWYgKHRoaXMubWluRGF0ZSgpKSBjb25maWcubWluRGF0ZSA9IHRoaXMubWluRGF0ZTtcblxuICAgIGlmICh0aGlzLm1heERhdGUoKSkgY29uZmlnLm1heERhdGUgPSB0aGlzLm1heERhdGU7XG5cbiAgICBjb25maWcuc2VsZWN0T25seSA9IHRoaXMuc2VsZWN0T25seSgpO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQmFja2Ryb3BDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgIC5iYWNrZHJvcENsaWNrKClcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQb3NpdGlvblN0cmF0ZWd5KCk6IHZvaWQge1xuICAgIGNvbnN0IHN0cmF0ZWd5OiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuY29ubmVjdGVkVG8pO1xuXG4gICAgc3RyYXRlZ3kud2l0aFBvc2l0aW9ucyhbXG4gICAgICB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICdib3R0b20nLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRZOiA0IH0sXG4gICAgICB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICdib3R0b20nLCBvZmZzZXRZOiAtNCB9LFxuICAgIF0pO1xuXG4gICAgc3RyYXRlZ3kud2l0aExvY2tlZFBvc2l0aW9uKGZhbHNlKTtcblxuICAgIHN0cmF0ZWd5LndpdGhEZWZhdWx0T2Zmc2V0WSg0KTtcblxuICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHN0cmF0ZWd5KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheUNvbmZpZygpOiBPdmVybGF5Q29uZmlnIHtcbiAgICByZXR1cm4gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgYmFja2Ryb3BDbGFzczogJ3RyYW5zcGFyZW50JyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|