@wlcm/angular 17.7.44 → 17.7.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/button/esm2022/index.mjs +3 -0
  2. package/button/esm2022/lib/button.module.mjs +16 -0
  3. package/button/esm2022/lib/components/button/button.component.mjs +37 -0
  4. package/button/esm2022/lib/models/button.models.mjs +2 -0
  5. package/button/esm2022/wlcm-angular-button.mjs +5 -0
  6. package/button/fesm2022/wlcm-angular-button.mjs +7 -7
  7. package/button/fesm2022/wlcm-angular-button.mjs.map +1 -1
  8. package/core/esm2022/index.mjs +17 -0
  9. package/core/esm2022/lib/components/default-loader/default-loader.component.mjs +12 -0
  10. package/core/esm2022/lib/components/icons/calendar-icon/calendar-icon.component.mjs +12 -0
  11. package/core/esm2022/lib/components/icons/chevron-down-icon/chevron-down-icon.component.mjs +12 -0
  12. package/core/esm2022/lib/components/icons/close-icon/close-icon.component.mjs +12 -0
  13. package/core/esm2022/lib/components/icons/search-icon/search-icon.component.mjs +12 -0
  14. package/core/esm2022/lib/components/loader/loader.component.mjs +32 -0
  15. package/core/esm2022/lib/constants/_index.mjs +3 -0
  16. package/core/esm2022/lib/constants/http.constants.mjs +6 -0
  17. package/core/esm2022/lib/constants/icon.contants.mjs +15 -0
  18. package/core/esm2022/lib/constants/loader.constants.mjs +7 -0
  19. package/core/esm2022/lib/directives/_index.mjs +2 -0
  20. package/core/esm2022/lib/directives/icon.directive.mjs +49 -0
  21. package/core/esm2022/lib/models/_index.mjs +3 -0
  22. package/core/esm2022/lib/models/icon.models.mjs +7 -0
  23. package/core/esm2022/lib/models/option.models.mjs +17 -0
  24. package/core/esm2022/lib/services/scroll-detection.api.mjs +39 -0
  25. package/core/esm2022/lib/utils/paginated-data-emulator.utils.mjs +20 -0
  26. package/core/esm2022/lib/utils/stream.utils.mjs +16 -0
  27. package/core/esm2022/wlcm-angular-core.mjs +5 -0
  28. package/core/fesm2022/wlcm-angular-core.mjs +52 -40
  29. package/core/fesm2022/wlcm-angular-core.mjs.map +1 -1
  30. package/core/lib/services/scroll-detection.api.d.ts +4 -1
  31. package/datepicker/esm2022/index.mjs +14 -0
  32. package/datepicker/esm2022/lib/components/calendar-header/calendar-header.component.mjs +63 -0
  33. package/datepicker/esm2022/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.mjs +87 -0
  34. package/datepicker/esm2022/lib/components/range/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.mjs +19 -0
  35. package/datepicker/esm2022/lib/components/range/date-range-picker-input/date-range-picker-input.component.mjs +126 -0
  36. package/datepicker/esm2022/lib/components/range/double-calendar-range-picker/double-calendar-range-picker.component.mjs +168 -0
  37. package/datepicker/esm2022/lib/components/range/single-calendar-range-picker/single-calendar-range-picker.component.mjs +95 -0
  38. package/datepicker/esm2022/lib/components/single/datepicker-input-container/datepicker-input-container.component.mjs +92 -0
  39. package/datepicker/esm2022/lib/components/single/datepicker-panel/datepicker-panel.component.mjs +33 -0
  40. package/datepicker/esm2022/lib/constants/datepicker.constants.mjs +23 -0
  41. package/datepicker/esm2022/lib/constants/range/date-range-picker.constants.mjs +5 -0
  42. package/datepicker/esm2022/lib/constants/range/date-range-selection-model.constants.mjs +10 -0
  43. package/datepicker/esm2022/lib/constants/range/date-range-trigger-selection-model.constants.mjs +10 -0
  44. package/datepicker/esm2022/lib/datepicker.module.mjs +33 -0
  45. package/datepicker/esm2022/lib/directives/calendar.directive.mjs +15 -0
  46. package/datepicker/esm2022/lib/directives/datepicker-input.base.mjs +103 -0
  47. package/datepicker/esm2022/lib/directives/datepicker-trigger.base.mjs +105 -0
  48. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-end.directive.mjs +81 -0
  49. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-start.directive.mjs +81 -0
  50. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input.base.mjs +58 -0
  51. package/datepicker/esm2022/lib/directives/ragne/left-calendar.directive.mjs +51 -0
  52. package/datepicker/esm2022/lib/directives/ragne/right-calendar.directive.mjs +64 -0
  53. package/datepicker/esm2022/lib/directives/single/datepicker-input.directive.mjs +67 -0
  54. package/datepicker/esm2022/lib/models/date-picker.models.mjs +29 -0
  55. package/datepicker/esm2022/lib/models/range/data-range-calendar.models.mjs +61 -0
  56. package/datepicker/esm2022/lib/models/range/date-range-picker.models.mjs +27 -0
  57. package/datepicker/esm2022/lib/models/range/date-range-validation.models.mjs +5 -0
  58. package/datepicker/esm2022/lib/utils/range/date-range-input.validators.mjs +16 -0
  59. package/datepicker/esm2022/lib/utils/range/date-range-picker-errors.mjs +9 -0
  60. package/datepicker/esm2022/wlcm-angular-datepicker.mjs +5 -0
  61. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs +61 -61
  62. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs.map +1 -1
  63. package/datepicker/lib/directives/datepicker-input.base.d.ts +1 -1
  64. package/datepicker/lib/directives/datepicker-trigger.base.d.ts +1 -1
  65. package/datepicker/lib/directives/ragne/date-range-picker-input.base.d.ts +1 -1
  66. package/datepicker/lib/models/range/data-range-calendar.models.d.ts +1 -1
  67. package/filters/esm2022/index.mjs +6 -0
  68. package/filters/esm2022/lib/components/filters-group/filters-group.component.mjs +13 -0
  69. package/filters/esm2022/lib/constants/filter.constants.mjs +3 -0
  70. package/filters/esm2022/lib/constants/index.mjs +2 -0
  71. package/filters/esm2022/lib/directives/filter.directive.mjs +11 -0
  72. package/filters/esm2022/lib/directives/index.mjs +2 -0
  73. package/filters/esm2022/lib/filters.module.mjs +20 -0
  74. package/filters/esm2022/lib/models/array-filter.models.mjs +73 -0
  75. package/filters/esm2022/lib/models/filter.models.mjs +39 -0
  76. package/filters/esm2022/lib/models/filters-group.models.mjs +60 -0
  77. package/filters/esm2022/lib/models/index.mjs +4 -0
  78. package/filters/esm2022/wlcm-angular-filters.mjs +5 -0
  79. package/filters/fesm2022/wlcm-angular-filters.mjs +13 -13
  80. package/filters/fesm2022/wlcm-angular-filters.mjs.map +1 -1
  81. package/filters/lib/models/filters-group.models.d.ts +1 -1
  82. package/forms/esm2022/index.mjs +13 -0
  83. package/forms/esm2022/lib/forms/components/autocomplete/autocomplete.component.mjs +235 -0
  84. package/forms/esm2022/lib/forms/components/checkbox/checkbox.component.mjs +85 -0
  85. package/forms/esm2022/lib/forms/components/checkbox-group/checkbox-group.component.mjs +87 -0
  86. package/forms/esm2022/lib/forms/components/error/error.component.mjs +12 -0
  87. package/forms/esm2022/lib/forms/components/form-field/form-field.component.mjs +137 -0
  88. package/forms/esm2022/lib/forms/components/index.mjs +9 -0
  89. package/forms/esm2022/lib/forms/components/label/label.component.mjs +23 -0
  90. package/forms/esm2022/lib/forms/components/partials/autocomplete-suffix/autocomplete-suffix.component.mjs +19 -0
  91. package/forms/esm2022/lib/forms/components/partials/index.mjs +2 -0
  92. package/forms/esm2022/lib/forms/components/select/select.component.mjs +333 -0
  93. package/forms/esm2022/lib/forms/constants/form-elements.constants.mjs +5 -0
  94. package/forms/esm2022/lib/forms/constants/form-errors.constants.mjs +7 -0
  95. package/forms/esm2022/lib/forms/constants/form-field.constants.mjs +2 -0
  96. package/forms/esm2022/lib/forms/constants/form-state-handlers.constants.mjs +13 -0
  97. package/forms/esm2022/lib/forms/constants/index.mjs +6 -0
  98. package/forms/esm2022/lib/forms/constants/select.constants.mjs +3 -0
  99. package/forms/esm2022/lib/forms/directives/autocomplete.directive.mjs +64 -0
  100. package/forms/esm2022/lib/forms/directives/form-field-custom-container.directive.mjs +17 -0
  101. package/forms/esm2022/lib/forms/directives/form-field-hint.directive.mjs +15 -0
  102. package/forms/esm2022/lib/forms/directives/form-field-prefix.directive.mjs +22 -0
  103. package/forms/esm2022/lib/forms/directives/form-field-suffix.directive.mjs +14 -0
  104. package/forms/esm2022/lib/forms/directives/input.directive.mjs +47 -0
  105. package/forms/esm2022/lib/forms/directives/select-input-binder.directive.mjs +33 -0
  106. package/forms/esm2022/lib/forms/forms.module.mjs +64 -0
  107. package/forms/esm2022/lib/forms/models/_index.mjs +6 -0
  108. package/forms/esm2022/lib/forms/models/autocomplete.models.mjs +10 -0
  109. package/forms/esm2022/lib/forms/models/form-errors.models.mjs +2 -0
  110. package/forms/esm2022/lib/forms/models/form.models.mjs +2 -0
  111. package/forms/esm2022/lib/forms/models/input.models.mjs +2 -0
  112. package/forms/esm2022/lib/forms/models/select.models.mjs +2 -0
  113. package/forms/esm2022/lib/forms/pipes/errors-mapper.pipe.mjs +53 -0
  114. package/forms/esm2022/lib/forms/services/form-state-handler.service.mjs +19 -0
  115. package/forms/esm2022/lib/forms/services/index.mjs +3 -0
  116. package/forms/esm2022/lib/forms/services/places.api.mjs +62 -0
  117. package/forms/esm2022/wlcm-angular-forms.mjs +5 -0
  118. package/forms/fesm2022/wlcm-angular-forms.mjs +66 -66
  119. package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
  120. package/forms/lib/forms/models/autocomplete.models.d.ts +1 -1
  121. package/forms/lib/forms/services/places.api.d.ts +1 -0
  122. package/package.json +1 -1
  123. package/phone-input/esm2022/index.mjs +5 -0
  124. package/phone-input/esm2022/lib/components/country-code-select/country-code-select.component.mjs +32 -0
  125. package/phone-input/esm2022/lib/components/phone-input-container/phone-input-container.component.mjs +107 -0
  126. package/phone-input/esm2022/lib/constants/country-code-options.constants.mjs +20 -0
  127. package/phone-input/esm2022/lib/constants/phone-adapter.constants.mjs +3 -0
  128. package/phone-input/esm2022/lib/directives/phone-input.directive.mjs +155 -0
  129. package/phone-input/esm2022/lib/models/country-code.models.mjs +10 -0
  130. package/phone-input/esm2022/lib/models/phone-adapter.models.mjs +3 -0
  131. package/phone-input/esm2022/lib/models/phone.models.mjs +5 -0
  132. package/phone-input/esm2022/lib/phone-input.module.mjs +20 -0
  133. package/phone-input/esm2022/lib/pipes/phone-code.pipe.mjs +18 -0
  134. package/phone-input/esm2022/wlcm-angular-phone-input.mjs +5 -0
  135. package/phone-input/fesm2022/wlcm-angular-phone-input.mjs +16 -16
  136. package/phone-input/fesm2022/wlcm-angular-phone-input.mjs.map +1 -1
  137. package/search-field/esm2022/index.mjs +3 -0
  138. package/search-field/esm2022/lib/components/search-field/search-field.component.mjs +41 -0
  139. package/search-field/esm2022/lib/search-field.module.mjs +18 -0
  140. package/search-field/esm2022/wlcm-angular-search-field.mjs +5 -0
  141. package/search-field/fesm2022/wlcm-angular-search-field.mjs +7 -7
  142. package/search-field/fesm2022/wlcm-angular-search-field.mjs.map +1 -1
  143. package/stepper/esm2022/index.mjs +11 -0
  144. package/stepper/esm2022/lib/components/step/step.component.mjs +53 -0
  145. package/stepper/esm2022/lib/components/step-header/step-header.component.mjs +81 -0
  146. package/stepper/esm2022/lib/components/stepper/stepper.component.mjs +15 -0
  147. package/stepper/esm2022/lib/components/stepper-header/stepper-header.component.mjs +16 -0
  148. package/stepper/esm2022/lib/constants/step.constants.mjs +9 -0
  149. package/stepper/esm2022/lib/constants/stepper.stepper.mjs +3 -0
  150. package/stepper/esm2022/lib/directives/load-on-active-step.directive.mjs +51 -0
  151. package/stepper/esm2022/lib/models/step.models.mjs +60 -0
  152. package/stepper/esm2022/lib/models/stepper.models.mjs +114 -0
  153. package/stepper/esm2022/lib/stepper.module.mjs +34 -0
  154. package/stepper/esm2022/wlcm-angular-stepper.mjs +5 -0
  155. package/stepper/fesm2022/wlcm-angular-stepper.mjs +25 -25
  156. package/stepper/fesm2022/wlcm-angular-stepper.mjs.map +1 -1
  157. package/stepper/lib/models/step.models.d.ts +1 -1
  158. package/stepper/lib/models/stepper.models.d.ts +1 -1
  159. package/table/esm2022/index.mjs +9 -0
  160. package/table/esm2022/lib/components/table/table.component.mjs +79 -0
  161. package/table/esm2022/lib/components/table-head/table-head.component.mjs +18 -0
  162. package/table/esm2022/lib/components/table-head-actions/table-head-actions.component.mjs +41 -0
  163. package/table/esm2022/lib/components/table-head-data/table-head-data.component.mjs +12 -0
  164. package/table/esm2022/lib/components/table-row/table-row.component.mjs +87 -0
  165. package/table/esm2022/lib/components/table-row-actions/table-row-actions.component.mjs +12 -0
  166. package/table/esm2022/lib/components/table-row-data/table-row-data.component.mjs +12 -0
  167. package/table/esm2022/lib/components/table-row-spacer/table-row-spacer.component.mjs +12 -0
  168. package/table/esm2022/lib/constants/table-row.constants.mjs +3 -0
  169. package/table/esm2022/lib/constants/table.constants.mjs +5 -0
  170. package/table/esm2022/lib/directives/scrollable-table-container.directive.mjs +46 -0
  171. package/table/esm2022/lib/models/table-config-manager.models.mjs +18 -0
  172. package/table/esm2022/lib/models/table-row.models.mjs +2 -0
  173. package/table/esm2022/lib/models/table-selection-model.mjs +48 -0
  174. package/table/esm2022/lib/models/table.models.mjs +2 -0
  175. package/table/esm2022/lib/pipes/table-row-injector.pipe.mjs +24 -0
  176. package/table/esm2022/lib/table.module.mjs +38 -0
  177. package/table/esm2022/lib/utils/table-errors.utils.mjs +6 -0
  178. package/table/esm2022/wlcm-angular-table.mjs +5 -0
  179. package/table/fesm2022/wlcm-angular-table.mjs +34 -34
  180. package/table/fesm2022/wlcm-angular-table.mjs.map +1 -1
@@ -0,0 +1,81 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, ElementRef, Inject, Optional, forwardRef } from '@angular/core';
3
+ import { WlcmDateRangePickerInputBase } from './date-range-picker-input.base';
4
+ import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
5
+ import { WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL } from '../../constants/range/date-range-trigger-selection-model.constants';
6
+ import { MatDateSelectionModel, DateRange } from '@angular/material/datepicker';
7
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
8
+ import { WlcmDateRangeValidation } from '../../models/range/date-range-validation.models';
9
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
10
+ import { WlcmDatepickerTrigger } from '../datepicker-trigger.base';
11
+ import { isValid, isAfter } from 'date-fns';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/material/core";
14
+ import * as i2 from "../datepicker-trigger.base";
15
+ import * as i3 from "@angular/material/datepicker";
16
+ let DateRangePickerInputEndDirective = class DateRangePickerInputEndDirective extends WlcmDateRangePickerInputBase {
17
+ constructor(element, dateAdapter, dateFormats, selectionModel, trigger) {
18
+ super(element, dateAdapter, dateFormats, trigger);
19
+ this.element = element;
20
+ this.dateAdapter = dateAdapter;
21
+ this.dateFormats = dateFormats;
22
+ this.selectionModel = selectionModel;
23
+ this.trigger = trigger;
24
+ this.updateSelection = () => {
25
+ let end = this.parseCurrentValue();
26
+ this.selectionModel.updateSelection(new DateRange(this.selectionModel.selection.start, end), this);
27
+ };
28
+ this.handleSelectionChange();
29
+ }
30
+ validate() {
31
+ const defaultErrors = super.validate();
32
+ if (isValid(this.selectionModel.selection.start)) {
33
+ const endDate = this.parseCurrentValue();
34
+ if (endDate && isAfter(this.selectionModel.selection.start, endDate)) {
35
+ return { [WlcmDateRangeValidation.StartExceedsEnd]: true, ...(defaultErrors ?? {}) };
36
+ }
37
+ }
38
+ return defaultErrors;
39
+ }
40
+ handleSelectionChange() {
41
+ this.selectionModel.selectionChanged.pipe(untilDestroyed(this)).subscribe(({ selection }) => {
42
+ const validDate = this.dateAdapter.getValidDateOrNull(selection.end);
43
+ this._changed?.(validDate);
44
+ this.updateInputValue(validDate);
45
+ this._validatorChanged?.();
46
+ });
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputEndDirective, deps: [{ token: i0.ElementRef }, { token: i1.DateAdapter }, { token: MAT_DATE_FORMATS, optional: true }, { token: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL }, { token: i2.WlcmDatepickerTrigger }], target: i0.ɵɵFactoryTarget.Directive }); }
49
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: DateRangePickerInputEndDirective, isStandalone: true, selector: "[wlcmDateRangePickerInputEnd]", host: { classAttribute: "wlcm-date-range-picker-input-field" }, providers: [
50
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRangePickerInputEndDirective), multi: true },
51
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateRangePickerInputEndDirective), multi: true },
52
+ ], usesInheritance: true, ngImport: i0 }); }
53
+ };
54
+ DateRangePickerInputEndDirective = __decorate([
55
+ UntilDestroy(),
56
+ __metadata("design:paramtypes", [ElementRef,
57
+ DateAdapter, Object, MatDateSelectionModel,
58
+ WlcmDatepickerTrigger])
59
+ ], DateRangePickerInputEndDirective);
60
+ export { DateRangePickerInputEndDirective };
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputEndDirective, decorators: [{
62
+ type: Directive,
63
+ args: [{
64
+ selector: '[wlcmDateRangePickerInputEnd]',
65
+ host: { class: 'wlcm-date-range-picker-input-field' },
66
+ standalone: true,
67
+ providers: [
68
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRangePickerInputEndDirective), multi: true },
69
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateRangePickerInputEndDirective), multi: true },
70
+ ],
71
+ }]
72
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: undefined, decorators: [{
73
+ type: Optional
74
+ }, {
75
+ type: Inject,
76
+ args: [MAT_DATE_FORMATS]
77
+ }] }, { type: i3.MatDateSelectionModel, decorators: [{
78
+ type: Inject,
79
+ args: [WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL]
80
+ }] }, { type: i2.WlcmDatepickerTrigger }] });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQtZW5kLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZGF0ZXBpY2tlci9zcmMvbGliL2RpcmVjdGl2ZXMvcmFnbmUvZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQtZW5kLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUM3SCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7OztBQVlyQyxJQUFNLGdDQUFnQyxHQUF0QyxNQUFNLGdDQUFpQyxTQUFRLDRCQUE0QjtJQUNoRixZQUNrQixPQUFxQyxFQUNsQyxXQUE4QixFQUNRLFdBQTJCLEVBRTFFLGNBQXNELEVBQzdDLE9BQXVDO1FBRTFELEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FB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QUUsS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDNUcsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGlDQUFpQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtxQkFDekc7aUJBQ0Y7OzBCQUtJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDbkMsTUFBTTsyQkFBQyx1Q0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgT3B0aW9uYWwsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdsY21EYXRlUmFuZ2VQaWNrZXJJbnB1dEJhc2UgfSBmcm9tICcuL2RhdGUtcmFuZ2UtcGlja2VyLWlucHV0LmJhc2UnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1hdERhdGVGb3JtYXRzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBXTENNX0RBVEVfUkFOR0VfVFJJR0dFUl9TRUxFQ1RJT05fTU9ERUwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcmFuZ2UvZGF0ZS1yYW5nZS10cmlnZ2VyLXNlbGVjdGlvbi1tb2RlbC5jb25zdGFudHMnO1xuaW1wb3J0IHsgTWF0RGF0ZVNlbGVjdGlvbk1vZGVsLCBEYXRlUmFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgV2xjbURhdGVSYW5nZVZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvcmFuZ2UvZGF0ZS1yYW5nZS12YWxpZGF0aW9uLm1vZGVscyc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IFdsY21EYXRlcGlja2VyVHJpZ2dlciB9IGZyb20gJy4uL2RhdGVwaWNrZXItdHJpZ2dlci5iYXNlJztcbmltcG9ydCB7IGlzVmFsaWQsIGlzQWZ0ZXIgfSBmcm9tICdkYXRlLWZucyc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3dsY21EYXRlUmFuZ2VQaWNrZXJJbnB1dEVuZF0nLFxuICBob3N0OiB7IGNsYXNzOiAnd2xjbS1kYXRlLXJhbmdlLXBpY2tlci1pbnB1dC1maWVsZCcgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVJhbmdlUGlja2VySW5wdXRFbmREaXJlY3RpdmUpLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVJhbmdlUGlja2VySW5wdXRFbmREaXJlY3RpdmUpLCBtdWx0aTogdHJ1ZSB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUmFuZ2VQaWNrZXJJbnB1dEVuZERpcmVjdGl2ZSBleHRlbmRzIFdsY21EYXRlUmFuZ2VQaWNrZXJJbnB1dEJhc2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcnJpZGUgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPERhdGU+LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RBVEVfRk9STUFUUykgcHJvdGVjdGVkIG92ZXJyaWRlIGRhdGVGb3JtYXRzOiBNYXREYXRlRm9ybWF0cyxcbiAgICBASW5qZWN0KFdMQ01fREFURV9SQU5HRV9UUklHR0VSX1NFTEVDVElPTl9NT0RFTClcbiAgICBwcm90ZWN0ZWQgc2VsZWN0aW9uTW9kZWw6IE1hdERhdGVTZWxlY3Rpb25Nb2RlbDxEYXRlUmFuZ2U8RGF0ZT4+LFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB0cmlnZ2VyOiBXbGNtRGF0ZXBpY2tlclRyaWdnZXI8dW5rbm93bj4sXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnQsIGRhdGVBZGFwdGVyLCBkYXRlRm9ybWF0cywgdHJpZ2dlcik7XG5cbiAgICB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdmFsaWRhdGUoKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IGRlZmF1bHRFcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gc3VwZXIudmFsaWRhdGUoKTtcblxuICAgIGlmIChpc1ZhbGlkKHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uLnN0YXJ0KSkge1xuICAgICAgY29uc3QgZW5kRGF0ZTogRGF0ZSB8IG51bGwgPSB0aGlzLnBhcnNlQ3VycmVudFZhbHVlKCk7XG5cbiAgICAgIGlmIChlbmREYXRlICYmIGlzQWZ0ZXIodGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3Rpb24uc3RhcnQhLCBlbmREYXRlKSkge1xuICAgICAgICByZXR1cm4geyBbV2xjbURhdGVSYW5nZVZhbGlkYXRpb24uU3RhcnRFeGNlZWRzRW5kXTogdHJ1ZSwgLi4uKGRlZmF1bHRFcnJvcnMgPz8ge30pIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHRFcnJvcnM7XG4gIH1cblxuICBvdmVycmlkZSB1cGRhdGVTZWxlY3Rpb24gPSAoKTogdm9pZCA9PiB7XG4gICAgbGV0IGVuZDogRGF0ZSB8IG51bGwgPSB0aGlzLnBhcnNlQ3VycmVudFZhbHVlKCk7XG5cbiAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnVwZGF0ZVNlbGVjdGlvbihuZXcgRGF0ZVJhbmdlKHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uLnN0YXJ0LCBlbmQpLCB0aGlzKTtcbiAgfTtcblxuICBwcml2YXRlIGhhbmRsZVNlbGVjdGlvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGlvbkNoYW5nZWQucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKCh7IHNlbGVjdGlvbiB9KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZERhdGU6IERhdGUgfCBudWxsID0gdGhpcy5kYXRlQWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwoc2VsZWN0aW9uLmVuZCk7XG5cbiAgICAgIHRoaXMuX2NoYW5nZWQ/Lih2YWxpZERhdGUpO1xuXG4gICAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUodmFsaWREYXRlKTtcblxuICAgICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZD8uKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,81 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, ElementRef, Inject, Optional, forwardRef } from '@angular/core';
3
+ import { WlcmDateRangePickerInputBase } from './date-range-picker-input.base';
4
+ import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
5
+ import { MatDateSelectionModel, DateRange } from '@angular/material/datepicker';
6
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
7
+ import { WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL } from '../../constants/range/date-range-trigger-selection-model.constants';
8
+ import { WlcmDateRangeValidation } from '../../models/range/date-range-validation.models';
9
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
10
+ import { isAfter, isValid } from 'date-fns';
11
+ import { WlcmDatepickerTrigger } from '../datepicker-trigger.base';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/material/core";
14
+ import * as i2 from "../datepicker-trigger.base";
15
+ import * as i3 from "@angular/material/datepicker";
16
+ let DateRangePickerInputStartDirective = class DateRangePickerInputStartDirective extends WlcmDateRangePickerInputBase {
17
+ constructor(element, dateAdapter, dateFormats, selectionModel, trigger) {
18
+ super(element, dateAdapter, dateFormats, trigger);
19
+ this.element = element;
20
+ this.dateAdapter = dateAdapter;
21
+ this.dateFormats = dateFormats;
22
+ this.selectionModel = selectionModel;
23
+ this.trigger = trigger;
24
+ this.updateSelection = () => {
25
+ let start = this.parseCurrentValue();
26
+ this.selectionModel.updateSelection(new DateRange(start, this.selectionModel.selection.end), this);
27
+ };
28
+ this.handleSelectionChange();
29
+ }
30
+ validate() {
31
+ const defaultErrors = super.validate();
32
+ if (this.selectionModel.isComplete() && isValid(this.selectionModel.selection.end)) {
33
+ const startDate = this.parseCurrentValue();
34
+ if (startDate && isAfter(startDate, this.selectionModel.selection.end)) {
35
+ return { [WlcmDateRangeValidation.StartExceedsEnd]: true, ...(defaultErrors ?? {}) };
36
+ }
37
+ }
38
+ return defaultErrors;
39
+ }
40
+ handleSelectionChange() {
41
+ this.selectionModel.selectionChanged.pipe(untilDestroyed(this)).subscribe(({ selection }) => {
42
+ const validDate = this.dateAdapter.getValidDateOrNull(selection.start);
43
+ this._changed?.(validDate);
44
+ this.updateInputValue(validDate);
45
+ this._validatorChanged?.();
46
+ });
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputStartDirective, deps: [{ token: i0.ElementRef }, { token: i1.DateAdapter }, { token: MAT_DATE_FORMATS, optional: true }, { token: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL }, { token: i2.WlcmDatepickerTrigger }], target: i0.ɵɵFactoryTarget.Directive }); }
49
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: DateRangePickerInputStartDirective, isStandalone: true, selector: "[wlcmDateRangePickerInputStart]", host: { classAttribute: "wlcm-date-range-picker-input-field" }, providers: [
50
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRangePickerInputStartDirective), multi: true },
51
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateRangePickerInputStartDirective), multi: true },
52
+ ], usesInheritance: true, ngImport: i0 }); }
53
+ };
54
+ DateRangePickerInputStartDirective = __decorate([
55
+ UntilDestroy(),
56
+ __metadata("design:paramtypes", [ElementRef,
57
+ DateAdapter, Object, MatDateSelectionModel,
58
+ WlcmDatepickerTrigger])
59
+ ], DateRangePickerInputStartDirective);
60
+ export { DateRangePickerInputStartDirective };
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputStartDirective, decorators: [{
62
+ type: Directive,
63
+ args: [{
64
+ selector: '[wlcmDateRangePickerInputStart]',
65
+ host: { class: 'wlcm-date-range-picker-input-field' },
66
+ standalone: true,
67
+ providers: [
68
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRangePickerInputStartDirective), multi: true },
69
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateRangePickerInputStartDirective), multi: true },
70
+ ],
71
+ }]
72
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: undefined, decorators: [{
73
+ type: Optional
74
+ }, {
75
+ type: Inject,
76
+ args: [MAT_DATE_FORMATS]
77
+ }] }, { type: i3.MatDateSelectionModel, decorators: [{
78
+ type: Inject,
79
+ args: [WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL]
80
+ }] }, { type: i2.WlcmDatepickerTrigger }] });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQtc3RhcnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlcGlja2VyL3NyYy9saWIvZGlyZWN0aXZlcy9yYWduZS9kYXRlLXJhbmdlLXBpY2tlci1pbnB1dC1zdGFydC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDN0gsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFZNUQsSUFBTSxrQ0FBa0MsR0FBeEMsTUFBTSxrQ0FBbUMsU0FBUSw0QkFBNEI7SUFDbEYsWUFDa0IsT0FBcUMsRUFDbEMsV0FBOEIsRUFDUSxXQUEyQixFQUUxRSxjQUFzRCxFQUM3QyxPQUF1QztRQUUxRCxLQUFLLENBQUMsT0FBTyxFQUFF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RUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1DQUFtQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDOUcsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1DQUFtQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtxQkFDM0c7aUJBQ0Y7OzBCQUtJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDbkMsTUFBTTsyQkFBQyx1Q0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgT3B0aW9uYWwsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdsY21EYXRlUmFuZ2VQaWNrZXJJbnB1dEJhc2UgfSBmcm9tICcuL2RhdGUtcmFuZ2UtcGlja2VyLWlucHV0LmJhc2UnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1hdERhdGVGb3JtYXRzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlU2VsZWN0aW9uTW9kZWwsIERhdGVSYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBXTENNX0RBVEVfUkFOR0VfVFJJR0dFUl9TRUxFQ1RJT05fTU9ERUwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvcmFuZ2UvZGF0ZS1yYW5nZS10cmlnZ2VyLXNlbGVjdGlvbi1tb2RlbC5jb25zdGFudHMnO1xuaW1wb3J0IHsgV2xjbURhdGVSYW5nZVZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvcmFuZ2UvZGF0ZS1yYW5nZS12YWxpZGF0aW9uLm1vZGVscyc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IGlzQWZ0ZXIsIGlzVmFsaWQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBXbGNtRGF0ZXBpY2tlclRyaWdnZXIgfSBmcm9tICcuLi9kYXRlcGlja2VyLXRyaWdnZXIuYmFzZSc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3dsY21EYXRlUmFuZ2VQaWNrZXJJbnB1dFN0YXJ0XScsXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLWRhdGUtcmFuZ2UtcGlja2VyLWlucHV0LWZpZWxkJyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlUmFuZ2VQaWNrZXJJbnB1dFN0YXJ0RGlyZWN0aXZlKSwgbXVsdGk6IHRydWUgfSxcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVSYW5nZVBpY2tlcklucHV0U3RhcnREaXJlY3RpdmUpLCBtdWx0aTogdHJ1ZSB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUmFuZ2VQaWNrZXJJbnB1dFN0YXJ0RGlyZWN0aXZlIGV4dGVuZHMgV2xjbURhdGVSYW5nZVBpY2tlcklucHV0QmFzZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvdmVycmlkZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4sXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGF0ZUZvcm1hdHM6IE1hdERhdGVGb3JtYXRzLFxuICAgIEBJbmplY3QoV0xDTV9EQVRFX1JBTkdFX1RSSUdHRVJfU0VMRUNUSU9OX01PREVMKVxuICAgIHByb3RlY3RlZCBzZWxlY3Rpb25Nb2RlbDogTWF0RGF0ZVNlbGVjdGlvbk1vZGVsPERhdGVSYW5nZTxEYXRlPj4sXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHRyaWdnZXI6IFdsY21EYXRlcGlja2VyVHJpZ2dlcjx1bmtub3duPlxuICApIHtcbiAgICBzdXBlcihlbGVtZW50LCBkYXRlQWRhcHRlciwgZGF0ZUZvcm1hdHMsIHRyaWdnZXIpO1xuXG4gICAgdGhpcy5oYW5kbGVTZWxlY3Rpb25DaGFuZ2UoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHZhbGlkYXRlKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCBkZWZhdWx0RXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IHN1cGVyLnZhbGlkYXRlKCk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbC5pc0NvbXBsZXRlKCkgJiYgaXNWYWxpZCh0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGlvbi5lbmQpKSB7XG4gICAgICBjb25zdCBzdGFydERhdGU6IERhdGUgfCBudWxsID0gdGhpcy5wYXJzZUN1cnJlbnRWYWx1ZSgpO1xuXG4gICAgICBpZiAoc3RhcnREYXRlICYmIGlzQWZ0ZXIoc3RhcnREYXRlLCB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGlvbi5lbmQhKSkge1xuICAgICAgICByZXR1cm4geyBbV2xjbURhdGVSYW5nZVZhbGlkYXRpb24uU3RhcnRFeGNlZWRzRW5kXTogdHJ1ZSwgLi4uKGRlZmF1bHRFcnJvcnMgPz8ge30pIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHRFcnJvcnM7XG4gIH1cblxuICBvdmVycmlkZSB1cGRhdGVTZWxlY3Rpb24gPSAoKTogdm9pZCA9PiB7XG4gICAgbGV0IHN0YXJ0OiBEYXRlIHwgbnVsbCA9IHRoaXMucGFyc2VDdXJyZW50VmFsdWUoKTtcblxuICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwudXBkYXRlU2VsZWN0aW9uKG5ldyBEYXRlUmFuZ2Uoc3RhcnQsIHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uLmVuZCksIHRoaXMpO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uQ2hhbmdlZC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKHsgc2VsZWN0aW9uIH0pID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkRGF0ZTogRGF0ZSB8IG51bGwgPSB0aGlzLmRhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbChzZWxlY3Rpb24uc3RhcnQpO1xuXG4gICAgICB0aGlzLl9jaGFuZ2VkPy4odmFsaWREYXRlKTtcblxuICAgICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKHZhbGlkRGF0ZSk7XG5cbiAgICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZWQ/LigpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,58 @@
1
+ import { Directive, ElementRef } from '@angular/core';
2
+ import { DateAdapter } from '@angular/material/core';
3
+ import { WlcmDatepickerInputBase } from '../datepicker-input.base';
4
+ import { WlcmDatepickerTrigger } from '../datepicker-trigger.base';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/core";
7
+ import * as i2 from "../datepicker-trigger.base";
8
+ export class WlcmDateRangePickerInputBase extends WlcmDatepickerInputBase {
9
+ constructor(element, dateAdapter, dateFormats, trigger) {
10
+ super(element, dateAdapter, dateFormats, trigger);
11
+ this.element = element;
12
+ this.dateAdapter = dateAdapter;
13
+ this.dateFormats = dateFormats;
14
+ this.trigger = trigger;
15
+ this._inputMirror = this.createInputMirror();
16
+ }
17
+ ngAfterViewInit() {
18
+ this.inputElement.parentElement?.appendChild(this._inputMirror);
19
+ this.copyInputElementStyles(this._inputMirror);
20
+ document.fonts.ready.then(() => this.changeInputSize());
21
+ }
22
+ writeValue(value) {
23
+ super.writeValue(value);
24
+ this.updateSelection();
25
+ }
26
+ handleInput() {
27
+ this.changeInputSize();
28
+ super.handleInput();
29
+ }
30
+ updateInputValue(value) {
31
+ super.updateInputValue(value);
32
+ this.changeInputSize();
33
+ }
34
+ changeInputSize() {
35
+ requestAnimationFrame(() => {
36
+ const value = this.currentValue || this.inputElement.placeholder;
37
+ this._inputMirror.innerHTML = value;
38
+ this.inputElement.style.width = `${this._inputMirror.offsetWidth + 2}px`;
39
+ });
40
+ }
41
+ createInputMirror() {
42
+ const inputMirror = document.createElement('div');
43
+ inputMirror.classList.add('wlcm-date-range-picker-input-field-mirror');
44
+ return inputMirror;
45
+ }
46
+ copyInputElementStyles(target) {
47
+ const inputElementStyles = window.getComputedStyle(this.inputElement);
48
+ target.style.fontSize = inputElementStyles.fontSize;
49
+ target.style.fontFamily = inputElementStyles.fontFamily;
50
+ target.style.letterSpacing = inputElementStyles.letterSpacing;
51
+ }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerInputBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
53
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDateRangePickerInputBase, usesInheritance: true, ngImport: i0 }); }
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerInputBase, decorators: [{
56
+ type: Directive
57
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: undefined }, { type: i2.WlcmDatepickerTrigger }] });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZGF0ZXBpY2tlci9zcmMvbGliL2RpcmVjdGl2ZXMvcmFnbmUvZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQuYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLFdBQVcsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUduRSxNQUFNLE9BQWdCLDRCQUNwQixTQUFRLHVCQUF1QjtJQUsvQixZQUNrQixPQUFxQyxFQUNsQyxXQUE4QixFQUM5QixXQUEyQixFQUMzQixPQUF1QztRQUUxRCxLQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFMbEMsWUFBTyxHQUFQLE9BQU8sQ0FBOEI7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFnQztRQU5wRCxpQkFBWSxHQUFnQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQVM3RCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFaEUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUvQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFrQjtRQUNwQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRVEsV0FBVztRQUNsQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFdkIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFa0IsZ0JBQWdCLENBQUMsS0FBa0I7UUFDcEQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sZUFBZTtRQUNyQixxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDekIsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztZQUV6RSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFFcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDM0UsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sV0FBVyxHQUFnQixRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9ELFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFFdkUsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLE1BQW1CO1FBQ2hELE1BQU0sa0JBQWtCLEdBQXdCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztRQUN4RCxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUM7SUFDaEUsQ0FBQzs4R0FqRW1CLDRCQUE0QjtrR0FBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQURqRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1hdERhdGVGb3JtYXRzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBXbGNtRGF0ZXBpY2tlcklucHV0QmFzZSB9IGZyb20gJy4uL2RhdGVwaWNrZXItaW5wdXQuYmFzZSc7XG5pbXBvcnQgeyBXbGNtRGF0ZXBpY2tlclRyaWdnZXIgfSBmcm9tICcuLi9kYXRlcGlja2VyLXRyaWdnZXIuYmFzZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdsY21EYXRlUmFuZ2VQaWNrZXJJbnB1dEJhc2VcbiAgZXh0ZW5kcyBXbGNtRGF0ZXBpY2tlcklucHV0QmFzZVxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3JcbntcbiAgcHJpdmF0ZSBfaW5wdXRNaXJyb3I6IEhUTUxFbGVtZW50ID0gdGhpcy5jcmVhdGVJbnB1dE1pcnJvcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvdmVycmlkZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4sXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGRhdGVGb3JtYXRzOiBNYXREYXRlRm9ybWF0cyxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJpZ2dlcjogV2xjbURhdGVwaWNrZXJUcmlnZ2VyPHVua25vd24+LFxuICApIHtcbiAgICBzdXBlcihlbGVtZW50LCBkYXRlQWRhcHRlciwgZGF0ZUZvcm1hdHMsIHRyaWdnZXIpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRFbGVtZW50LnBhcmVudEVsZW1lbnQ/LmFwcGVuZENoaWxkKHRoaXMuX2lucHV0TWlycm9yKTtcblxuICAgIHRoaXMuY29weUlucHV0RWxlbWVudFN0eWxlcyh0aGlzLl9pbnB1dE1pcnJvcik7XG5cbiAgICBkb2N1bWVudC5mb250cy5yZWFkeS50aGVuKCgpID0+IHRoaXMuY2hhbmdlSW5wdXRTaXplKCkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcblxuICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uKCk7XG4gIH1cblxuICBvdmVycmlkZSBoYW5kbGVJbnB1dCgpIHtcbiAgICB0aGlzLmNoYW5nZUlucHV0U2l6ZSgpO1xuXG4gICAgc3VwZXIuaGFuZGxlSW5wdXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVJbnB1dFZhbHVlKHZhbHVlOiBEYXRlIHwgbnVsbCk6IHZvaWQge1xuICAgIHN1cGVyLnVwZGF0ZUlucHV0VmFsdWUodmFsdWUpO1xuXG4gICAgdGhpcy5jaGFuZ2VJbnB1dFNpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlSW5wdXRTaXplKCk6IHZvaWQge1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gdGhpcy5jdXJyZW50VmFsdWUgfHwgdGhpcy5pbnB1dEVsZW1lbnQucGxhY2Vob2xkZXI7XG5cbiAgICAgIHRoaXMuX2lucHV0TWlycm9yLmlubmVySFRNTCA9IHZhbHVlO1xuXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5zdHlsZS53aWR0aCA9IGAke3RoaXMuX2lucHV0TWlycm9yLm9mZnNldFdpZHRoICsgMn1weGA7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUlucHV0TWlycm9yKCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBpbnB1dE1pcnJvcjogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgIGlucHV0TWlycm9yLmNsYXNzTGlzdC5hZGQoJ3dsY20tZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQtZmllbGQtbWlycm9yJyk7XG5cbiAgICByZXR1cm4gaW5wdXRNaXJyb3I7XG4gIH1cblxuICBwcml2YXRlIGNvcHlJbnB1dEVsZW1lbnRTdHlsZXModGFyZ2V0OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudFN0eWxlczogQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuaW5wdXRFbGVtZW50KTtcblxuICAgIHRhcmdldC5zdHlsZS5mb250U2l6ZSA9IGlucHV0RWxlbWVudFN0eWxlcy5mb250U2l6ZTtcbiAgICB0YXJnZXQuc3R5bGUuZm9udEZhbWlseSA9IGlucHV0RWxlbWVudFN0eWxlcy5mb250RmFtaWx5O1xuICAgIHRhcmdldC5zdHlsZS5sZXR0ZXJTcGFjaW5nID0gaW5wdXRFbGVtZW50U3R5bGVzLmxldHRlclNwYWNpbmc7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,51 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, ElementRef, Inject, forwardRef } from '@angular/core';
3
+ import { DateAdapter } from '@angular/material/core';
4
+ import { MatCalendar } from '@angular/material/datepicker';
5
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
6
+ import { WlcmDataRangeCalendar } from '../../models/range/data-range-calendar.models';
7
+ import { WLCM_DATEPICKER_CONFIG } from '../../constants/datepicker.constants';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/material/core";
10
+ import * as i2 from "@angular/material/datepicker";
11
+ let WlcmLeftCalendarDirective = class WlcmLeftCalendarDirective extends WlcmDataRangeCalendar {
12
+ constructor(element, dateAdapter, calendar, datepickerConfig) {
13
+ super('left', element, calendar, dateAdapter, datepickerConfig);
14
+ this.element = element;
15
+ this.dateAdapter = dateAdapter;
16
+ this.calendar = calendar;
17
+ this.datepickerConfig = datepickerConfig;
18
+ this.handleYearChange();
19
+ this.handleMonthChange();
20
+ }
21
+ handleYearChange() {
22
+ this.calendar.yearSelected.pipe(untilDestroyed(this)).subscribe((date) => this.dateChange.emit(date));
23
+ }
24
+ handleMonthChange() {
25
+ this.calendar.monthSelected.pipe(untilDestroyed(this)).subscribe((date) => this.dateChange.emit(date));
26
+ }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmLeftCalendarDirective, deps: [{ token: i0.ElementRef }, { token: i1.DateAdapter }, { token: forwardRef(() => MatCalendar) }, { token: WLCM_DATEPICKER_CONFIG }], target: i0.ɵɵFactoryTarget.Directive }); }
28
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmLeftCalendarDirective, isStandalone: true, selector: "[wlcmLeftCalendar]", providers: [{ provide: WlcmDataRangeCalendar, useExisting: forwardRef(() => WlcmLeftCalendarDirective) }], usesInheritance: true, ngImport: i0 }); }
29
+ };
30
+ WlcmLeftCalendarDirective = __decorate([
31
+ UntilDestroy(),
32
+ __metadata("design:paramtypes", [ElementRef,
33
+ DateAdapter,
34
+ MatCalendar, Object])
35
+ ], WlcmLeftCalendarDirective);
36
+ export { WlcmLeftCalendarDirective };
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmLeftCalendarDirective, decorators: [{
38
+ type: Directive,
39
+ args: [{
40
+ selector: '[wlcmLeftCalendar]',
41
+ standalone: true,
42
+ providers: [{ provide: WlcmDataRangeCalendar, useExisting: forwardRef(() => WlcmLeftCalendarDirective) }],
43
+ }]
44
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: i2.MatCalendar, decorators: [{
45
+ type: Inject,
46
+ args: [forwardRef(() => MatCalendar)]
47
+ }] }, { type: undefined, decorators: [{
48
+ type: Inject,
49
+ args: [WLCM_DATEPICKER_CONFIG]
50
+ }] }] });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVmdC1jYWxlbmRhci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGVwaWNrZXIvc3JjL2xpYi9kaXJlY3RpdmVzL3JhZ25lL2xlZnQtY2FsZW5kYXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVN2RSxJQUFNLHlCQUF5QixHQUEvQixNQUFNLHlCQUEwQixTQUFRLHFCQUFxQjtJQUNsRSxZQUNrQixPQUFnQyxFQUM3QixXQUE4QixFQUNTLFFBQTJCLEVBQ2xDLGdCQUFzQztRQUV6RixLQUFLLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFMaEQsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDN0IsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQ1MsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQUl6RixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvRyxDQUFDOzhHQXBCVSx5QkFBeUIsdUVBSTFCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsYUFDN0Isc0JBQXNCO2tHQUxyQix5QkFBeUIsaUVBRnpCLENBQUMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7O0FBRTlGLHlCQUF5QjtJQU5yQyxZQUFZLEVBQUU7cUNBUWMsVUFBVTtRQUNILFdBQVc7UUFDeUIsV0FBVztHQUp0RSx5QkFBeUIsQ0FxQnJDOzsyRkFyQlkseUJBQXlCO2tCQUxyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQyxFQUFFLENBQUM7aUJBQzFHOzswQkFLSSxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7OzBCQUNwQyxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FsZW5kYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgV2xjbURhdGFSYW5nZUNhbGVuZGFyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JhbmdlL2RhdGEtcmFuZ2UtY2FsZW5kYXIubW9kZWxzJztcbmltcG9ydCB7IFdMQ01fREFURVBJQ0tFUl9DT05GSUcgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZGF0ZXBpY2tlci5jb25zdGFudHMnO1xuaW1wb3J0IHsgV2xjbURhdGVwaWNrZXJDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZGF0ZS1waWNrZXIubW9kZWxzJztcblxuQFVudGlsRGVzdHJveSgpXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbd2xjbUxlZnRDYWxlbmRhcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFdsY21EYXRhUmFuZ2VDYWxlbmRhciwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbUxlZnRDYWxlbmRhckRpcmVjdGl2ZSkgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21MZWZ0Q2FsZW5kYXJEaXJlY3RpdmUgZXh0ZW5kcyBXbGNtRGF0YVJhbmdlQ2FsZW5kYXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcnJpZGUgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxEYXRlPixcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTWF0Q2FsZW5kYXIpKSBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2FsZW5kYXI6IE1hdENhbGVuZGFyPERhdGU+LFxuICAgIEBJbmplY3QoV0xDTV9EQVRFUElDS0VSX0NPTkZJRykgcHJvdGVjdGVkIG92ZXJyaWRlIGRhdGVwaWNrZXJDb25maWc6IFdsY21EYXRlcGlja2VyQ29uZmlnXG4gICkge1xuICAgIHN1cGVyKCdsZWZ0JywgZWxlbWVudCwgY2FsZW5kYXIsIGRhdGVBZGFwdGVyLCBkYXRlcGlja2VyQ29uZmlnKTtcblxuICAgIHRoaXMuaGFuZGxlWWVhckNoYW5nZSgpO1xuXG4gICAgdGhpcy5oYW5kbGVNb250aENoYW5nZSgpO1xuICB9XG5cbiAgaGFuZGxlWWVhckNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyLnllYXJTZWxlY3RlZC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKGRhdGU6IERhdGUpID0+IHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGRhdGUpKTtcbiAgfVxuXG4gIGhhbmRsZU1vbnRoQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXIubW9udGhTZWxlY3RlZC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKGRhdGU6IERhdGUpID0+IHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGRhdGUpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,64 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, ElementRef, Inject, forwardRef } from '@angular/core';
3
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
4
+ import { WlcmDataRangeCalendar } from '../../models/range/data-range-calendar.models';
5
+ import { MatCalendar, yearsPerPage } from '@angular/material/datepicker';
6
+ import { DateAdapter } from '@angular/material/core';
7
+ import { WLCM_DATEPICKER_CONFIG } from '../../constants/datepicker.constants';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/material/core";
10
+ import * as i2 from "@angular/material/datepicker";
11
+ let WlcmRightCalendarDirective = class WlcmRightCalendarDirective extends WlcmDataRangeCalendar {
12
+ constructor(element, dateAdapter, calendar, datepickerConfig) {
13
+ super('right', element, calendar, dateAdapter, datepickerConfig);
14
+ this.element = element;
15
+ this.dateAdapter = dateAdapter;
16
+ this.calendar = calendar;
17
+ this.datepickerConfig = datepickerConfig;
18
+ this.handleYearChange();
19
+ this.handleMonthChange();
20
+ }
21
+ handleYearChange() {
22
+ this.calendar.yearSelected
23
+ .pipe(untilDestroyed(this))
24
+ .subscribe((date) => this.dateChange.emit(this.dateAdapter.addCalendarMonths(date, -1)));
25
+ }
26
+ handleMonthChange() {
27
+ this.calendar.monthSelected
28
+ .pipe(untilDestroyed(this))
29
+ .subscribe((date) => this.dateChange.emit(this.dateAdapter.addCalendarMonths(date, -1)));
30
+ }
31
+ nextMonth() {
32
+ this.dateChange.emit(this.calendar.activeDate);
33
+ }
34
+ prevYear() {
35
+ this.dateChange.emit(this.dateAdapter.addCalendarMonths(this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? -1 : -yearsPerPage), -1));
36
+ }
37
+ nextYear() {
38
+ this.dateChange.emit(this.dateAdapter.addCalendarMonths(this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? 1 : yearsPerPage), -1));
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmRightCalendarDirective, deps: [{ token: i0.ElementRef }, { token: i1.DateAdapter }, { token: forwardRef(() => MatCalendar) }, { token: WLCM_DATEPICKER_CONFIG }], target: i0.ɵɵFactoryTarget.Directive }); }
41
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmRightCalendarDirective, isStandalone: true, selector: "[wlcmRightCalendar]", providers: [{ provide: WlcmDataRangeCalendar, useExisting: forwardRef(() => WlcmRightCalendarDirective) }], usesInheritance: true, ngImport: i0 }); }
42
+ };
43
+ WlcmRightCalendarDirective = __decorate([
44
+ UntilDestroy(),
45
+ __metadata("design:paramtypes", [ElementRef,
46
+ DateAdapter,
47
+ MatCalendar, Object])
48
+ ], WlcmRightCalendarDirective);
49
+ export { WlcmRightCalendarDirective };
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmRightCalendarDirective, decorators: [{
51
+ type: Directive,
52
+ args: [{
53
+ selector: '[wlcmRightCalendar]',
54
+ standalone: true,
55
+ providers: [{ provide: WlcmDataRangeCalendar, useExisting: forwardRef(() => WlcmRightCalendarDirective) }],
56
+ }]
57
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: i2.MatCalendar, decorators: [{
58
+ type: Inject,
59
+ args: [forwardRef(() => MatCalendar)]
60
+ }] }, { type: undefined, decorators: [{
61
+ type: Inject,
62
+ args: [WLCM_DATEPICKER_CONFIG]
63
+ }] }] });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlnaHQtY2FsZW5kYXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlcGlja2VyL3NyYy9saWIvZGlyZWN0aXZlcy9yYWduZS9yaWdodC1jYWxlbmRhci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVN2RSxJQUFNLDBCQUEwQixHQUFoQyxNQUFNLDBCQUEyQixTQUFRLHFCQUFxQjtJQUNuRSxZQUNrQixPQUFnQyxFQUM3QixXQUE4QixFQUNTLFFBQTJCLEVBQ2xDLGdCQUFzQztRQUV6RixLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFMakQsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDN0IsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQ1MsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQUl6RixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZO2FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhO2FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRVEsU0FBUztRQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFUSxRQUFRO1FBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FDekQsRUFDRCxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRVEsUUFBUTtRQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FDdkQsRUFDRCxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDOzhHQXBEVSwwQkFBMEIsdUVBSTNCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsYUFDN0Isc0JBQXNCO2tHQUxyQiwwQkFBMEIsa0VBRjFCLENBQUMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQUM7O0FBRS9GLDBCQUEwQjtJQU50QyxZQUFZLEVBQUU7cUNBUWMsVUFBVTtRQUNILFdBQVc7UUFDeUIsV0FBVztHQUp0RSwwQkFBMEIsQ0FxRHRDOzsyRkFyRFksMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQyxFQUFFLENBQUM7aUJBQzNHOzswQkFLSSxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7OzBCQUNwQyxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IFdsY21EYXRhUmFuZ2VDYWxlbmRhciB9IGZyb20gJy4uLy4uL21vZGVscy9yYW5nZS9kYXRhLXJhbmdlLWNhbGVuZGFyLm1vZGVscyc7XG5pbXBvcnQgeyBNYXRDYWxlbmRhciwgeWVhcnNQZXJQYWdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgV0xDTV9EQVRFUElDS0VSX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9kYXRlcGlja2VyLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBXbGNtRGF0ZXBpY2tlckNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9kYXRlLXBpY2tlci5tb2RlbHMnO1xuXG5AVW50aWxEZXN0cm95KClcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3bGNtUmlnaHRDYWxlbmRhcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFdsY21EYXRhUmFuZ2VDYWxlbmRhciwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbVJpZ2h0Q2FsZW5kYXJEaXJlY3RpdmUpIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtUmlnaHRDYWxlbmRhckRpcmVjdGl2ZSBleHRlbmRzIFdsY21EYXRhUmFuZ2VDYWxlbmRhciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvdmVycmlkZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPERhdGU+LFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBNYXRDYWxlbmRhcikpIHByb3RlY3RlZCBvdmVycmlkZSBjYWxlbmRhcjogTWF0Q2FsZW5kYXI8RGF0ZT4sXG4gICAgQEluamVjdChXTENNX0RBVEVQSUNLRVJfQ09ORklHKSBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGF0ZXBpY2tlckNvbmZpZzogV2xjbURhdGVwaWNrZXJDb25maWdcbiAgKSB7XG4gICAgc3VwZXIoJ3JpZ2h0JywgZWxlbWVudCwgY2FsZW5kYXIsIGRhdGVBZGFwdGVyLCBkYXRlcGlja2VyQ29uZmlnKTtcblxuICAgIHRoaXMuaGFuZGxlWWVhckNoYW5nZSgpO1xuXG4gICAgdGhpcy5oYW5kbGVNb250aENoYW5nZSgpO1xuICB9XG5cbiAgaGFuZGxlWWVhckNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyLnllYXJTZWxlY3RlZFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChkYXRlOiBEYXRlKSA9PiB0aGlzLmRhdGVDaGFuZ2UuZW1pdCh0aGlzLmRhdGVBZGFwdGVyLmFkZENhbGVuZGFyTW9udGhzKGRhdGUsIC0xKSkpO1xuICB9XG5cbiAgaGFuZGxlTW9udGhDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhci5tb250aFNlbGVjdGVkXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGU6IERhdGUpID0+IHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHRoaXMuZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHMoZGF0ZSwgLTEpKSk7XG4gIH1cblxuICBvdmVycmlkZSBuZXh0TW9udGgoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQodGhpcy5jYWxlbmRhci5hY3RpdmVEYXRlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHByZXZZZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KFxuICAgICAgdGhpcy5kYXRlQWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyhcbiAgICAgICAgdGhpcy5kYXRlQWRhcHRlci5hZGRDYWxlbmRhclllYXJzKFxuICAgICAgICAgIHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSxcbiAgICAgICAgICB0aGlzLmNhbGVuZGFyLmN1cnJlbnRWaWV3ID09ICd5ZWFyJyA/IC0xIDogLXllYXJzUGVyUGFnZVxuICAgICAgICApLFxuICAgICAgICAtMVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBuZXh0WWVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChcbiAgICAgIHRoaXMuZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHMoXG4gICAgICAgIHRoaXMuZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJZZWFycyhcbiAgICAgICAgICB0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUsXG4gICAgICAgICAgdGhpcy5jYWxlbmRhci5jdXJyZW50VmlldyA9PSAneWVhcicgPyAxIDogeWVhcnNQZXJQYWdlXG4gICAgICAgICksXG4gICAgICAgIC0xXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,67 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, ElementRef, Inject, forwardRef } from '@angular/core';
3
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
5
+ import { MatDateSelectionModel } from '@angular/material/datepicker';
6
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
7
+ import { WlcmDatepickerInputBase } from '../datepicker-input.base';
8
+ import { WlcmDatepickerTrigger } from '../datepicker-trigger.base';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/material/core";
11
+ import * as i2 from "@angular/material/datepicker";
12
+ import * as i3 from "../datepicker-trigger.base";
13
+ let WlcmDatepickerInputDirective = class WlcmDatepickerInputDirective extends WlcmDatepickerInputBase {
14
+ constructor(element, dateAdapter, dateFormats, selectionModel, trigger) {
15
+ super(element, dateAdapter, dateFormats, trigger);
16
+ this.element = element;
17
+ this.dateAdapter = dateAdapter;
18
+ this.dateFormats = dateFormats;
19
+ this.selectionModel = selectionModel;
20
+ this.trigger = trigger;
21
+ this.handleSelectionChange();
22
+ this.handleClosePanel();
23
+ }
24
+ updateSelection() {
25
+ let date = this.parseCurrentValue();
26
+ this.selectionModel.updateSelection(date, this);
27
+ }
28
+ handleClosePanel() {
29
+ this.trigger.closed.pipe(untilDestroyed(this)).subscribe(() => this._touched?.());
30
+ }
31
+ handleSelectionChange() {
32
+ this.selectionModel.selectionChanged.pipe(untilDestroyed(this)).subscribe(({ selection }) => {
33
+ this.updateInputValue(selection);
34
+ this._changed?.(selection);
35
+ this._touched?.();
36
+ });
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerInputDirective, deps: [{ token: i0.ElementRef }, { token: i1.DateAdapter }, { token: MAT_DATE_FORMATS }, { token: i2.MatDateSelectionModel }, { token: i3.WlcmDatepickerTrigger }], target: i0.ɵɵFactoryTarget.Directive }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDatepickerInputDirective, isStandalone: true, selector: "[wlcmDatepickerInput]", host: { classAttribute: "wlcm-form-field-input" }, providers: [
40
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmDatepickerInputDirective), multi: true },
41
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmDatepickerInputDirective), multi: true },
42
+ ], exportAs: ["wlcmDatepickerInput"], usesInheritance: true, ngImport: i0 }); }
43
+ };
44
+ WlcmDatepickerInputDirective = __decorate([
45
+ UntilDestroy(),
46
+ __metadata("design:paramtypes", [ElementRef,
47
+ DateAdapter, Object, MatDateSelectionModel,
48
+ WlcmDatepickerTrigger])
49
+ ], WlcmDatepickerInputDirective);
50
+ export { WlcmDatepickerInputDirective };
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerInputDirective, decorators: [{
52
+ type: Directive,
53
+ args: [{
54
+ selector: '[wlcmDatepickerInput]',
55
+ exportAs: 'wlcmDatepickerInput',
56
+ host: { class: 'wlcm-form-field-input' },
57
+ standalone: true,
58
+ providers: [
59
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmDatepickerInputDirective), multi: true },
60
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmDatepickerInputDirective), multi: true },
61
+ ],
62
+ }]
63
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: undefined, decorators: [{
64
+ type: Inject,
65
+ args: [MAT_DATE_FORMATS]
66
+ }] }, { type: i2.MatDateSelectionModel }, { type: i3.WlcmDatepickerTrigger }] });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGVwaWNrZXIvc3JjL2xpYi9kaXJlY3RpdmVzL3NpbmdsZS9kYXRlcGlja2VyLWlucHV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQXdCLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFFdkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFhNUQsSUFBTSw0QkFBNEIsR0FBbEMsTUFBTSw0QkFDWCxTQUFRLHVCQUF1QjtJQUcvQixZQUNxQixPQUFtQixFQUNuQixXQUE4QixFQUNKLFdBQTJCLEVBQzlELGNBQWtELEVBQ3pDLE9BQStEO1FBRWxGLEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQU4vQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUNKLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUM5RCxtQkFBYyxHQUFkLGNBQWMsQ0FBb0M7UUFDekMsWUFBTyxHQUFQLE9BQU8sQ0FBd0Q7UUFJbEYsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFN0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVRLGVBQWU7UUFDdEIsSUFBSSxJQUFJLEdBQWdCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRWpELElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtZQUMxRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFakMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRTNCLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FwQ1UsNEJBQTRCLHVFQU83QixnQkFBZ0I7a0dBUGYsNEJBQTRCLHVIQUw1QjtZQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDRCQUE0QixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNwRyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDRCQUE0QixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtTQUN6Rzs7QUFFVSw0QkFBNEI7SUFYeEMsWUFBWSxFQUFFO3FDQWdCaUIsVUFBVTtRQUNOLFdBQVcsVUFFakIscUJBQXFCO1FBQ25CLHFCQUFxQjtHQVR4Qyw0QkFBNEIsQ0FxQ3hDOzsyRkFyQ1ksNEJBQTRCO2tCQVZ4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRTtvQkFDeEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNkJBQTZCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUNwRyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7cUJBQ3pHO2lCQUNGOzswQkFRSSxNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgV2xjbURhdGVwaWNrZXJQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2luZ2xlL2RhdGVwaWNrZXItcGFuZWwvZGF0ZXBpY2tlci1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0RGF0ZVNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IFdsY21EYXRlcGlja2VySW5wdXRCYXNlIH0gZnJvbSAnLi4vZGF0ZXBpY2tlci1pbnB1dC5iYXNlJztcbmltcG9ydCB7IFdsY21EYXRlcGlja2VyVHJpZ2dlciB9IGZyb20gJy4uL2RhdGVwaWNrZXItdHJpZ2dlci5iYXNlJztcblxuQFVudGlsRGVzdHJveSgpXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbd2xjbURhdGVwaWNrZXJJbnB1dF0nLFxuICBleHBvcnRBczogJ3dsY21EYXRlcGlja2VySW5wdXQnLFxuICBob3N0OiB7IGNsYXNzOiAnd2xjbS1mb3JtLWZpZWxkLWlucHV0JyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdsY21EYXRlcGlja2VySW5wdXREaXJlY3RpdmUpLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdsY21EYXRlcGlja2VySW5wdXREaXJlY3RpdmUpLCBtdWx0aTogdHJ1ZSB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtRGF0ZXBpY2tlcklucHV0RGlyZWN0aXZlPFQ+XG4gIGV4dGVuZHMgV2xjbURhdGVwaWNrZXJJbnB1dEJhc2VcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yXG57XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4sXG4gICAgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGF0ZUZvcm1hdHM6IE1hdERhdGVGb3JtYXRzLFxuICAgIHByb3RlY3RlZCBzZWxlY3Rpb25Nb2RlbDogTWF0RGF0ZVNlbGVjdGlvbk1vZGVsPERhdGUgfCBudWxsPixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJpZ2dlcjogV2xjbURhdGVwaWNrZXJUcmlnZ2VyPFdsY21EYXRlcGlja2VyUGFuZWxDb21wb25lbnQ8VD4+XG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnQsIGRhdGVBZGFwdGVyLCBkYXRlRm9ybWF0cywgdHJpZ2dlcik7XG5cbiAgICB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSgpO1xuXG4gICAgdGhpcy5oYW5kbGVDbG9zZVBhbmVsKCk7XG4gIH1cblxuICBvdmVycmlkZSB1cGRhdGVTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgbGV0IGRhdGU6IERhdGUgfCBudWxsID0gdGhpcy5wYXJzZUN1cnJlbnRWYWx1ZSgpO1xuXG4gICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC51cGRhdGVTZWxlY3Rpb24oZGF0ZSwgdGhpcyk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNsb3NlUGFuZWwoKTogdm9pZCB7XG4gICAgdGhpcy50cmlnZ2VyLmNsb3NlZC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fdG91Y2hlZD8uKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3Rpb25DaGFuZ2VkLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoeyBzZWxlY3Rpb24gfSkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVJbnB1dFZhbHVlKHNlbGVjdGlvbik7XG5cbiAgICAgIHRoaXMuX2NoYW5nZWQ/LihzZWxlY3Rpb24pO1xuXG4gICAgICB0aGlzLl90b3VjaGVkPy4oKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,29 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { DateFnsAdapter } from '@angular/material-date-fns-adapter';
3
+ import { format } from 'date-fns';
4
+ import * as i0 from "@angular/core";
5
+ function range(length, valueFunction) {
6
+ const valuesArray = Array(length);
7
+ for (let i = 0; i < length; i++) {
8
+ valuesArray[i] = valueFunction(i);
9
+ }
10
+ return valuesArray;
11
+ }
12
+ export class WlcmDateAdapter extends DateFnsAdapter {
13
+ getDayOfWeekNames(style) {
14
+ const formatString = style === 'long' ? 'EEEE' : 'EEEEEE';
15
+ return range(7, (i) => format(new Date(2017, 0, i + 1), formatString));
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
18
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateAdapter }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateAdapter, decorators: [{
21
+ type: Injectable
22
+ }] });
23
+ export var WlcmDateValidation;
24
+ (function (WlcmDateValidation) {
25
+ WlcmDateValidation["Format"] = "WlcmInvalidDateFormat";
26
+ WlcmDateValidation["MinDate"] = "WlcmDateIsBeforeMinDate";
27
+ WlcmDateValidation["MaxDate"] = "WlcmDateIsAfterMaxDate";
28
+ })(WlcmDateValidation || (WlcmDateValidation = {}));
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlcGlja2VyL3NyYy9saWIvbW9kZWxzL2RhdGUtcGlja2VyLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUVsQyxTQUFTLEtBQUssQ0FBSSxNQUFjLEVBQUUsYUFBbUM7SUFDbkUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNoQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBR0QsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQUN4QyxpQkFBaUIsQ0FBQyxLQUFrQztRQUMzRCxNQUFNLFlBQVksR0FBRyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUUxRCxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7OEdBTFUsZUFBZTtrSEFBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVOztBQVNYLE1BQU0sQ0FBTixJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDNUIsc0RBQWdDLENBQUE7SUFDaEMseURBQW1DLENBQUE7SUFDbkMsd0RBQWtDLENBQUE7QUFDcEMsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVGbnNBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtZGF0ZS1mbnMtYWRhcHRlcic7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG5cbmZ1bmN0aW9uIHJhbmdlPFQ+KGxlbmd0aDogbnVtYmVyLCB2YWx1ZUZ1bmN0aW9uOiAoaW5kZXg6IG51bWJlcikgPT4gVCk6IFRbXSB7XG4gIGNvbnN0IHZhbHVlc0FycmF5ID0gQXJyYXkobGVuZ3RoKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIHZhbHVlc0FycmF5W2ldID0gdmFsdWVGdW5jdGlvbihpKTtcbiAgfVxuICByZXR1cm4gdmFsdWVzQXJyYXk7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXbGNtRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBEYXRlRm5zQWRhcHRlciB7XG4gIG92ZXJyaWRlIGdldERheU9mV2Vla05hbWVzKHN0eWxlOiAnbG9uZycgfCAnc2hvcnQnIHwgJ25hcnJvdycpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0U3RyaW5nID0gc3R5bGUgPT09ICdsb25nJyA/ICdFRUVFJyA6ICdFRUVFRUUnO1xuXG4gICAgcmV0dXJuIHJhbmdlKDcsIChpKSA9PiBmb3JtYXQobmV3IERhdGUoMjAxNywgMCwgaSArIDEpLCBmb3JtYXRTdHJpbmcpKTtcbiAgfVxufVxuXG5leHBvcnQgZW51bSBXbGNtRGF0ZVZhbGlkYXRpb24ge1xuICBGb3JtYXQgPSAnV2xjbUludmFsaWREYXRlRm9ybWF0JyxcbiAgTWluRGF0ZSA9ICdXbGNtRGF0ZUlzQmVmb3JlTWluRGF0ZScsXG4gIE1heERhdGUgPSAnV2xjbURhdGVJc0FmdGVyTWF4RGF0ZScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2xjbURhdGVwaWNrZXJDb25maWcge1xuICBtaW5EYXRlPzogU2lnbmFsPERhdGUgfCB1bmRlZmluZWQ+O1xuXG4gIG1heERhdGU/OiBTaWduYWw8RGF0ZSB8IHVuZGVmaW5lZD47XG5cbiAgc2VsZWN0T25seT86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,61 @@
1
+ import { Directive, ElementRef, effect, input, output } from '@angular/core';
2
+ import { MatCalendar, yearsPerPage } from '@angular/material/datepicker';
3
+ import { isBefore, startOfDay, isAfter } from 'date-fns';
4
+ import { DateAdapter } from '@angular/material/core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/datepicker";
7
+ import * as i2 from "@angular/material/core";
8
+ export class WlcmDataRangeCalendar {
9
+ constructor(location, element, calendar, dateAdapter, datepickerConfig) {
10
+ this.element = element;
11
+ this.calendar = calendar;
12
+ this.dateAdapter = dateAdapter;
13
+ this.datepickerConfig = datepickerConfig;
14
+ this.dateChange = output();
15
+ this.viewChange = output();
16
+ this.disabled = input(false);
17
+ this.location = location;
18
+ effect(() => {
19
+ if (this.disabled()) {
20
+ this.element.nativeElement.classList.add('wlcm-calendar-disabled');
21
+ }
22
+ else {
23
+ this.element.nativeElement.classList.remove('wlcm-calendar-disabled');
24
+ }
25
+ });
26
+ this.handleConfigValues();
27
+ }
28
+ get minDate() {
29
+ return this.datepickerConfig.minDate?.();
30
+ }
31
+ get maxDate() {
32
+ return this.datepickerConfig.maxDate?.();
33
+ }
34
+ prevMonth() {
35
+ this.dateChange.emit(this.dateAdapter.addCalendarMonths(this.calendar.activeDate, -1));
36
+ }
37
+ nextMonth() {
38
+ this.dateChange.emit(this.dateAdapter.addCalendarMonths(this.calendar.activeDate, 1));
39
+ }
40
+ prevYear() {
41
+ this.dateChange.emit(this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? -1 : -yearsPerPage));
42
+ }
43
+ nextYear() {
44
+ this.dateChange.emit(this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? 1 : yearsPerPage));
45
+ }
46
+ handleConfigValues() {
47
+ this.calendar.dateFilter = (date) => {
48
+ if (this.minDate && isBefore(startOfDay(date), startOfDay(this.minDate)))
49
+ return false;
50
+ if (this.maxDate && isAfter(startOfDay(date), startOfDay(this.maxDate)))
51
+ return false;
52
+ return true;
53
+ };
54
+ }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDataRangeCalendar, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
56
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.5", type: WlcmDataRangeCalendar, inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dateChange: "dateChange", viewChange: "viewChange" }, ngImport: i0 }); }
57
+ }
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDataRangeCalendar, decorators: [{
59
+ type: Directive
60
+ }], ctorParameters: () => [{ type: undefined }, { type: i0.ElementRef }, { type: i1.MatCalendar }, { type: i2.DateAdapter }, { type: undefined }] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1yYW5nZS1jYWxlbmRhci5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGVwaWNrZXIvc3JjL2xpYi9tb2RlbHMvcmFuZ2UvZGF0YS1yYW5nZS1jYWxlbmRhci5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWlDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxXQUFXLEVBQW1CLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFHckQsTUFBTSxPQUFPLHFCQUFxQjtJQVNoQyxZQUNFLFFBQTBCLEVBQ25CLE9BQWdDLEVBQzdCLFFBQTJCLEVBQzNCLFdBQThCLEVBQzlCLGdCQUFzQztRQUh6QyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUM3QixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQVh6QyxlQUFVLEdBQTJCLE1BQU0sRUFBRSxDQUFDO1FBRTlDLGVBQVUsR0FBc0MsTUFBTSxFQUFFLENBQUM7UUFFekQsYUFBUSxHQUF5QixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFTckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUNyRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3hFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUN6RCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FDdkQsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQVUsRUFBVyxFQUFFO1lBQ2pELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBUSxDQUFDLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFFeEYsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUV2RixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBdkVVLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dFNpZ25hbCwgT3V0cHV0RW1pdHRlclJlZiwgZWZmZWN0LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRDYWxlbmRhciwgTWF0Q2FsZW5kYXJWaWV3LCB5ZWFyc1BlclBhZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IFdsY21EYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi4vZGF0ZS1waWNrZXIubW9kZWxzJztcbmltcG9ydCB7IGlzQmVmb3JlLCBzdGFydE9mRGF5LCBpc0FmdGVyIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgV2xjbURhdGFSYW5nZUNhbGVuZGFyIHtcbiAgcHVibGljIGxvY2F0aW9uITogJ2xlZnQnIHwgJ3JpZ2h0JztcblxuICByZWFkb25seSBkYXRlQ2hhbmdlOiBPdXRwdXRFbWl0dGVyUmVmPERhdGU+ID0gb3V0cHV0KCk7XG5cbiAgcmVhZG9ubHkgdmlld0NoYW5nZTogT3V0cHV0RW1pdHRlclJlZjxNYXRDYWxlbmRhclZpZXc+ID0gb3V0cHV0KCk7XG5cbiAgcmVhZG9ubHkgZGlzYWJsZWQ6IElucHV0U2lnbmFsPGJvb2xlYW4+ID0gaW5wdXQoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxvY2F0aW9uOiAnbGVmdCcgfCAncmlnaHQnLFxuICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcm90ZWN0ZWQgY2FsZW5kYXI6IE1hdENhbGVuZGFyPERhdGU+LFxuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4sXG4gICAgcHJvdGVjdGVkIGRhdGVwaWNrZXJDb25maWc6IFdsY21EYXRlcGlja2VyQ29uZmlnLFxuICApIHtcbiAgICB0aGlzLmxvY2F0aW9uID0gbG9jYXRpb247XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCd3bGNtLWNhbGVuZGFyLWRpc2FibGVkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCd3bGNtLWNhbGVuZGFyLWRpc2FibGVkJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmhhbmRsZUNvbmZpZ1ZhbHVlcygpO1xuICB9XG5cbiAgZ2V0IG1pbkRhdGUoKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlckNvbmZpZy5taW5EYXRlPy4oKTtcbiAgfVxuXG4gIGdldCBtYXhEYXRlKCk6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmRhdGVwaWNrZXJDb25maWcubWF4RGF0ZT8uKCk7XG4gIH1cblxuICBwcmV2TW9udGgoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQodGhpcy5kYXRlQWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyh0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUsIC0xKSk7XG4gIH1cblxuICBuZXh0TW9udGgoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQodGhpcy5kYXRlQWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyh0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUsIDEpKTtcbiAgfVxuXG4gIHByZXZZZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KFxuICAgICAgdGhpcy5kYXRlQWRhcHRlci5hZGRDYWxlbmRhclllYXJzKFxuICAgICAgICB0aGlzLmNhbGVuZGFyLmFjdGl2ZURhdGUsXG4gICAgICAgIHRoaXMuY2FsZW5kYXIuY3VycmVudFZpZXcgPT0gJ3llYXInID8gLTEgOiAteWVhcnNQZXJQYWdlLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgbmV4dFllYXIoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQoXG4gICAgICB0aGlzLmRhdGVBZGFwdGVyLmFkZENhbGVuZGFyWWVhcnMoXG4gICAgICAgIHRoaXMuY2FsZW5kYXIuYWN0aXZlRGF0ZSxcbiAgICAgICAgdGhpcy5jYWxlbmRhci5jdXJyZW50VmlldyA9PSAneWVhcicgPyAxIDogeWVhcnNQZXJQYWdlLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgaGFuZGxlQ29uZmlnVmFsdWVzKCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXIuZGF0ZUZpbHRlciA9IChkYXRlOiBEYXRlKTogYm9vbGVhbiA9PiB7XG4gICAgICBpZiAodGhpcy5taW5EYXRlICYmIGlzQmVmb3JlKHN0YXJ0T2ZEYXkoZGF0ZSksIHN0YXJ0T2ZEYXkodGhpcy5taW5EYXRlISkpKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIGlmICh0aGlzLm1heERhdGUgJiYgaXNBZnRlcihzdGFydE9mRGF5KGRhdGUpLCBzdGFydE9mRGF5KHRoaXMubWF4RGF0ZSEpKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICB9XG59XG4iXX0=