@wlcm/angular 18.2.25 → 18.2.26

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 (188) 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 +27 -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 +24 -24
  29. package/core/fesm2022/wlcm-angular-core.mjs.map +1 -1
  30. package/datepicker/esm2022/index.mjs +11 -0
  31. package/datepicker/esm2022/lib/components/calendar-header/calendar-header.component.mjs +63 -0
  32. package/datepicker/esm2022/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.mjs +87 -0
  33. package/datepicker/esm2022/lib/components/range/date-range-picker/date-range-picker.component.mjs +174 -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 +124 -0
  36. package/datepicker/esm2022/lib/components/single/datepicker-input-container/datepicker-input-container.component.mjs +92 -0
  37. package/datepicker/esm2022/lib/components/single/datepicker-panel/datepicker-panel.component.mjs +33 -0
  38. package/datepicker/esm2022/lib/constants/datepicker.constants.mjs +23 -0
  39. package/datepicker/esm2022/lib/constants/range/date-range-picker.constants.mjs +3 -0
  40. package/datepicker/esm2022/lib/constants/range/date-range-selection-model.constants.mjs +10 -0
  41. package/datepicker/esm2022/lib/constants/range/date-range-trigger-selection-model.constants.mjs +10 -0
  42. package/datepicker/esm2022/lib/datepicker.module.mjs +33 -0
  43. package/datepicker/esm2022/lib/directives/calendar.directive.mjs +15 -0
  44. package/datepicker/esm2022/lib/directives/datepicker-input.base.mjs +103 -0
  45. package/datepicker/esm2022/lib/directives/datepicker-trigger.base.mjs +109 -0
  46. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-end.directive.mjs +81 -0
  47. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-start.directive.mjs +81 -0
  48. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input.base.mjs +56 -0
  49. package/datepicker/esm2022/lib/directives/ragne/left-calendar.directive.mjs +51 -0
  50. package/datepicker/esm2022/lib/directives/ragne/right-calendar.directive.mjs +64 -0
  51. package/datepicker/esm2022/lib/directives/single/datepicker-input.directive.mjs +67 -0
  52. package/datepicker/esm2022/lib/models/date-picker.models.mjs +29 -0
  53. package/datepicker/esm2022/lib/models/range/data-range-calendar.models.mjs +61 -0
  54. package/datepicker/esm2022/lib/models/range/date-range-picker.models.mjs +2 -0
  55. package/datepicker/esm2022/lib/models/range/date-range-validation.models.mjs +5 -0
  56. package/datepicker/esm2022/lib/utils/range/date-range-input.validators.mjs +16 -0
  57. package/datepicker/esm2022/lib/utils/range/date-range-picker-errors.mjs +9 -0
  58. package/datepicker/esm2022/wlcm-angular-datepicker.mjs +5 -0
  59. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs +728 -824
  60. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs.map +1 -1
  61. package/datepicker/index.d.ts +1 -4
  62. package/datepicker/lib/components/range/{double-calendar-range-picker/double-calendar-range-picker.component.d.ts → date-range-picker/date-range-picker.component.d.ts} +16 -12
  63. package/datepicker/lib/components/range/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.d.ts +3 -3
  64. package/datepicker/lib/components/range/date-range-picker-input/date-range-picker-input.component.d.ts +5 -5
  65. package/datepicker/lib/constants/datepicker.constants.d.ts +1 -1
  66. package/datepicker/lib/constants/range/date-range-picker.constants.d.ts +1 -2
  67. package/datepicker/lib/directives/datepicker-input.base.d.ts +1 -1
  68. package/datepicker/lib/directives/datepicker-trigger.base.d.ts +4 -3
  69. package/datepicker/lib/directives/ragne/date-range-picker-input.base.d.ts +1 -1
  70. package/datepicker/lib/models/range/data-range-calendar.models.d.ts +1 -1
  71. package/datepicker/lib/models/range/date-range-picker.models.d.ts +1 -15
  72. package/filters/esm2022/index.mjs +6 -0
  73. package/filters/esm2022/lib/components/filters-group/filters-group.component.mjs +13 -0
  74. package/filters/esm2022/lib/constants/filter.constants.mjs +3 -0
  75. package/filters/esm2022/lib/constants/index.mjs +2 -0
  76. package/filters/esm2022/lib/directives/filter.directive.mjs +11 -0
  77. package/filters/esm2022/lib/directives/index.mjs +2 -0
  78. package/filters/esm2022/lib/filters.module.mjs +20 -0
  79. package/filters/esm2022/lib/models/array-filter.models.mjs +73 -0
  80. package/filters/esm2022/lib/models/filter.models.mjs +39 -0
  81. package/filters/esm2022/lib/models/filters-group.models.mjs +60 -0
  82. package/filters/esm2022/lib/models/index.mjs +4 -0
  83. package/filters/esm2022/wlcm-angular-filters.mjs +5 -0
  84. package/filters/fesm2022/wlcm-angular-filters.mjs +13 -13
  85. package/filters/fesm2022/wlcm-angular-filters.mjs.map +1 -1
  86. package/filters/lib/models/filters-group.models.d.ts +1 -1
  87. package/forms/esm2022/index.mjs +13 -0
  88. package/forms/esm2022/lib/forms/components/autocomplete/autocomplete.component.mjs +242 -0
  89. package/forms/esm2022/lib/forms/components/checkbox/checkbox.component.mjs +85 -0
  90. package/forms/esm2022/lib/forms/components/checkbox-group/checkbox-group.component.mjs +87 -0
  91. package/forms/esm2022/lib/forms/components/error/error.component.mjs +12 -0
  92. package/forms/esm2022/lib/forms/components/form-field/form-field.component.mjs +137 -0
  93. package/forms/esm2022/lib/forms/components/index.mjs +9 -0
  94. package/forms/esm2022/lib/forms/components/label/label.component.mjs +23 -0
  95. package/forms/esm2022/lib/forms/components/partials/autocomplete-suffix/autocomplete-suffix.component.mjs +19 -0
  96. package/forms/esm2022/lib/forms/components/partials/index.mjs +2 -0
  97. package/forms/esm2022/lib/forms/components/select/select.component.mjs +317 -0
  98. package/forms/esm2022/lib/forms/constants/form-elements.constants.mjs +5 -0
  99. package/forms/esm2022/lib/forms/constants/form-errors.constants.mjs +7 -0
  100. package/forms/esm2022/lib/forms/constants/form-field.constants.mjs +2 -0
  101. package/forms/esm2022/lib/forms/constants/form-state-handlers.constants.mjs +13 -0
  102. package/forms/esm2022/lib/forms/constants/index.mjs +6 -0
  103. package/forms/esm2022/lib/forms/constants/select.constants.mjs +3 -0
  104. package/forms/esm2022/lib/forms/directives/autocomplete.directive.mjs +64 -0
  105. package/forms/esm2022/lib/forms/directives/form-field-custom-container.directive.mjs +17 -0
  106. package/forms/esm2022/lib/forms/directives/form-field-hint.directive.mjs +15 -0
  107. package/forms/esm2022/lib/forms/directives/form-field-prefix.directive.mjs +22 -0
  108. package/forms/esm2022/lib/forms/directives/form-field-suffix.directive.mjs +14 -0
  109. package/forms/esm2022/lib/forms/directives/input.directive.mjs +47 -0
  110. package/forms/esm2022/lib/forms/directives/select-input-binder.directive.mjs +33 -0
  111. package/forms/esm2022/lib/forms/forms.module.mjs +64 -0
  112. package/forms/esm2022/lib/forms/models/_index.mjs +6 -0
  113. package/forms/esm2022/lib/forms/models/autocomplete.models.mjs +10 -0
  114. package/forms/esm2022/lib/forms/models/form-errors.models.mjs +2 -0
  115. package/forms/esm2022/lib/forms/models/form.models.mjs +2 -0
  116. package/forms/esm2022/lib/forms/models/input.models.mjs +2 -0
  117. package/forms/esm2022/lib/forms/models/select.models.mjs +2 -0
  118. package/forms/esm2022/lib/forms/pipes/errors-mapper.pipe.mjs +53 -0
  119. package/forms/esm2022/lib/forms/services/form-state-handler.service.mjs +19 -0
  120. package/forms/esm2022/lib/forms/services/index.mjs +3 -0
  121. package/forms/esm2022/lib/forms/services/places.api.mjs +62 -0
  122. package/forms/esm2022/wlcm-angular-forms.mjs +5 -0
  123. package/forms/fesm2022/wlcm-angular-forms.mjs +67 -76
  124. package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
  125. package/forms/lib/forms/components/select/select.component.d.ts +0 -1
  126. package/forms/lib/forms/models/autocomplete.models.d.ts +1 -1
  127. package/package.json +1 -1
  128. package/phone-input/esm2022/index.mjs +5 -0
  129. package/phone-input/esm2022/lib/components/country-code-select/country-code-select.component.mjs +32 -0
  130. package/phone-input/esm2022/lib/components/phone-input-container/phone-input-container.component.mjs +107 -0
  131. package/phone-input/esm2022/lib/constants/country-code-options.constants.mjs +20 -0
  132. package/phone-input/esm2022/lib/constants/phone-adapter.constants.mjs +3 -0
  133. package/phone-input/esm2022/lib/directives/phone-input.directive.mjs +155 -0
  134. package/phone-input/esm2022/lib/models/country-code.models.mjs +10 -0
  135. package/phone-input/esm2022/lib/models/phone-adapter.models.mjs +3 -0
  136. package/phone-input/esm2022/lib/models/phone.models.mjs +5 -0
  137. package/phone-input/esm2022/lib/phone-input.module.mjs +20 -0
  138. package/phone-input/esm2022/lib/pipes/phone-code.pipe.mjs +18 -0
  139. package/phone-input/esm2022/wlcm-angular-phone-input.mjs +5 -0
  140. package/phone-input/fesm2022/wlcm-angular-phone-input.mjs +16 -16
  141. package/phone-input/fesm2022/wlcm-angular-phone-input.mjs.map +1 -1
  142. package/search-field/esm2022/index.mjs +3 -0
  143. package/search-field/esm2022/lib/components/search-field/search-field.component.mjs +39 -0
  144. package/search-field/esm2022/lib/search-field.module.mjs +18 -0
  145. package/search-field/esm2022/wlcm-angular-search-field.mjs +5 -0
  146. package/search-field/fesm2022/wlcm-angular-search-field.mjs +7 -7
  147. package/search-field/fesm2022/wlcm-angular-search-field.mjs.map +1 -1
  148. package/stepper/esm2022/index.mjs +11 -0
  149. package/stepper/esm2022/lib/components/step/step.component.mjs +53 -0
  150. package/stepper/esm2022/lib/components/step-header/step-header.component.mjs +81 -0
  151. package/stepper/esm2022/lib/components/stepper/stepper.component.mjs +15 -0
  152. package/stepper/esm2022/lib/components/stepper-header/stepper-header.component.mjs +16 -0
  153. package/stepper/esm2022/lib/constants/step.constants.mjs +9 -0
  154. package/stepper/esm2022/lib/constants/stepper.stepper.mjs +3 -0
  155. package/stepper/esm2022/lib/directives/load-on-active-step.directive.mjs +51 -0
  156. package/stepper/esm2022/lib/models/step.models.mjs +60 -0
  157. package/stepper/esm2022/lib/models/stepper.models.mjs +114 -0
  158. package/stepper/esm2022/lib/stepper.module.mjs +34 -0
  159. package/stepper/esm2022/wlcm-angular-stepper.mjs +5 -0
  160. package/stepper/fesm2022/wlcm-angular-stepper.mjs +25 -25
  161. package/stepper/fesm2022/wlcm-angular-stepper.mjs.map +1 -1
  162. package/stepper/lib/models/step.models.d.ts +1 -1
  163. package/stepper/lib/models/stepper.models.d.ts +1 -1
  164. package/styles/components/datepicker/date-range-picker/_date-range-picker-body.scss +1 -1
  165. package/styles/components/datepicker/date-range-picker/_date-range-picker-input.scss +0 -1
  166. package/table/esm2022/index.mjs +9 -0
  167. package/table/esm2022/lib/components/table/table.component.mjs +79 -0
  168. package/table/esm2022/lib/components/table-head/table-head.component.mjs +18 -0
  169. package/table/esm2022/lib/components/table-head-actions/table-head-actions.component.mjs +41 -0
  170. package/table/esm2022/lib/components/table-head-data/table-head-data.component.mjs +12 -0
  171. package/table/esm2022/lib/components/table-row/table-row.component.mjs +87 -0
  172. package/table/esm2022/lib/components/table-row-actions/table-row-actions.component.mjs +12 -0
  173. package/table/esm2022/lib/components/table-row-data/table-row-data.component.mjs +12 -0
  174. package/table/esm2022/lib/components/table-row-spacer/table-row-spacer.component.mjs +12 -0
  175. package/table/esm2022/lib/constants/table-row.constants.mjs +3 -0
  176. package/table/esm2022/lib/constants/table.constants.mjs +5 -0
  177. package/table/esm2022/lib/directives/scrollable-table-container.directive.mjs +46 -0
  178. package/table/esm2022/lib/models/table-config-manager.models.mjs +18 -0
  179. package/table/esm2022/lib/models/table-row.models.mjs +2 -0
  180. package/table/esm2022/lib/models/table-selection-model.mjs +48 -0
  181. package/table/esm2022/lib/models/table.models.mjs +2 -0
  182. package/table/esm2022/lib/pipes/table-row-injector.pipe.mjs +24 -0
  183. package/table/esm2022/lib/table.module.mjs +38 -0
  184. package/table/esm2022/lib/utils/table-errors.utils.mjs +6 -0
  185. package/table/esm2022/wlcm-angular-table.mjs +5 -0
  186. package/table/fesm2022/wlcm-angular-table.mjs +34 -34
  187. package/table/fesm2022/wlcm-angular-table.mjs.map +1 -1
  188. package/datepicker/lib/components/range/single-calendar-range-picker/single-calendar-range-picker.component.d.ts +0 -27
@@ -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
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbnB1dC5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRlcGlja2VyL3NyYy9saWIvZGlyZWN0aXZlcy9kYXRlcGlja2VyLWlucHV0LmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUdsRSxNQUFNLE9BQWdCLHVCQUF1QjtJQUNyQixVQUFVO1FBQzlCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRXNCLFdBQVc7UUFDaEMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM1RSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQTBCLG9CQUFvQjtRQUM1QyxPQUFPLDJCQUEyQixDQUFDO0lBQ3JDLENBQUM7SUFRRCxZQUNZLE9BQW1CLEVBQ25CLFdBQThCLEVBQzlCLFdBQTJCLEVBQzNCLE9BQXVDO1FBSHZDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFnQztJQUNoRCxDQUFDO0lBRUosVUFBVSxDQUFDLEtBQWtCO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBc0M7UUFDckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQW9CO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxRQUFvQjtRQUM1QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFcEMsTUFBTSxPQUFPLEdBQVksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU87Z0JBQ0wsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7Z0JBQ25HLFFBQVEsRUFBRSxLQUFLO2FBQ2hCLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQVMsSUFBSSxDQUFDLGlCQUFpQixFQUFHLENBQUM7UUFFN0MsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekUsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUN4RixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEUsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUN4RixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxJQUFJLEdBQWdCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEcsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFUyxhQUFhLENBQUMsS0FBYSxFQUFFLE9BQWU7UUFDcEQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXJELE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssS0FBSyxNQUFNLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFJRCxJQUFjLE9BQU87UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQWMsT0FBTztRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBYyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQWMsWUFBWTtRQUN4QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxLQUFrQjtRQUMzQyxJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7UUFFMUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztJQUNyQyxDQUFDOzhHQS9HbUIsdUJBQXVCO2tHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRDVDLFNBQVM7a0tBRWMsVUFBVTtzQkFBL0IsWUFBWTt1QkFBQyxNQUFNO2dCQU1HLFdBQVc7c0JBQWpDLFlBQVk7dUJBQUMsT0FBTztnQkFRSyxvQkFBb0I7c0JBQTdDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZvcm1hdCwgaXNBZnRlciwgaXNCZWZvcmUsIGlzVmFsaWQsIHBhcnNlLCBzdGFydE9mRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgV0xDTV9EQVRFUElDS0VSX0lOUFVUX0NMQVNTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RhdGVwaWNrZXIuY29uc3RhbnRzJztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgV2xjbURhdGVWYWxpZGF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGUtcGlja2VyLm1vZGVscyc7XG5pbXBvcnQgeyBXbGNtRGF0ZXBpY2tlclRyaWdnZXIgfSBmcm9tICcuL2RhdGVwaWNrZXItdHJpZ2dlci5iYXNlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV2xjbURhdGVwaWNrZXJJbnB1dEJhc2UgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpIGhhbmRsZUJsdXIoKSB7XG4gICAgdGhpcy51cGRhdGVTZWxlY3Rpb24oKTtcblxuICAgIHRoaXMuX3RvdWNoZWQ/LigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnKSBoYW5kbGVJbnB1dCgpIHtcbiAgICBpZiAodGhpcy5pc1ZhbGlkRm9ybWF0KHRoaXMuY3VycmVudFZhbHVlLCB0aGlzLmRhdGVGb3JtYXRzLnBhcnNlLmRhdGVJbnB1dCkpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZD8uKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGRhdGVwaWNrZXJJbnB1dENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFdMQ01fREFURVBJQ0tFUl9JTlBVVF9DTEFTUztcbiAgfVxuXG4gIHByb3RlY3RlZCBfY2hhbmdlZD86ICh2YWx1ZTogRGF0ZSB8IG51bGwpID0+IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIF90b3VjaGVkPzogKCkgPT4gdm9pZDtcblxuICBwcm90ZWN0ZWQgX3ZhbGlkYXRvckNoYW5nZWQ/OiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4sXG4gICAgcHJvdGVjdGVkIGRhdGVGb3JtYXRzOiBNYXREYXRlRm9ybWF0cyxcbiAgICBwcm90ZWN0ZWQgdHJpZ2dlcjogV2xjbURhdGVwaWNrZXJUcmlnZ2VyPHVua25vd24+LFxuICApIHt9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUlucHV0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiBEYXRlIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdG91Y2hlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHZhbGlkYXRlKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuY3VycmVudFZhbHVlKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGlzVmFsaWQ6IGJvb2xlYW4gPSB0aGlzLmlzVmFsaWRGb3JtYXQodGhpcy5jdXJyZW50VmFsdWUsIHRoaXMuZGF0ZUZvcm1hdHMucGFyc2UuZGF0ZUlucHV0KTtcblxuICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW1dsY21EYXRlVmFsaWRhdGlvbi5Gb3JtYXRdOiB7IHZhbHVlOiB0aGlzLmN1cnJlbnRWYWx1ZSwgZm9ybWF0OiB0aGlzLmRhdGVGb3JtYXRzLnBhcnNlLmRhdGVJbnB1dCB9LFxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGU6IERhdGUgPSB0aGlzLnBhcnNlQ3VycmVudFZhbHVlKCkhO1xuXG4gICAgaWYgKHRoaXMubWluRGF0ZSAmJiBpc0JlZm9yZShzdGFydE9mRGF5KGRhdGUpLCBzdGFydE9mRGF5KHRoaXMubWluRGF0ZSkpKSB7XG4gICAgICByZXR1cm4geyBbV2xjbURhdGVWYWxpZGF0aW9uLk1pbkRhdGVdOiB7IG1pbkRhdGU6IHRoaXMubWluRGF0ZSwgY3VycmVudERhdGU6IGRhdGUgfSB9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heERhdGUgJiYgaXNBZnRlcihzdGFydE9mRGF5KGRhdGUpLCBzdGFydE9mRGF5KHRoaXMubWF4RGF0ZSkpKSB7XG4gICAgICByZXR1cm4geyBbV2xjbURhdGVWYWxpZGF0aW9uLk1heERhdGVdOiB7IG1heERhdGU6IHRoaXMubWF4RGF0ZSwgY3VycmVudERhdGU6IGRhdGUgfSB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcGFyc2VDdXJyZW50VmFsdWUoKTogRGF0ZSB8IG51bGwge1xuICAgIGNvbnN0IGRhdGU6IERhdGUgfCBudWxsID0gdGhpcy5kYXRlQWRhcHRlci5wYXJzZSh0aGlzLmN1cnJlbnRWYWx1ZSwgdGhpcy5kYXRlRm9ybWF0cy5wYXJzZS5kYXRlSW5wdXQpO1xuXG4gICAgcmV0dXJuIHRoaXMuZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKGRhdGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzVmFsaWRGb3JtYXQodmFsdWU6IHN0cmluZywgcGF0dGVybjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGFyc2VkRGF0ZSA9IHBhcnNlKHZhbHVlLCBwYXR0ZXJuLCBuZXcgRGF0ZSgpKTtcblxuICAgIHJldHVybiBpc1ZhbGlkKHBhcnNlZERhdGUpICYmIHZhbHVlID09PSBmb3JtYXQocGFyc2VkRGF0ZSwgcGF0dGVybik7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgdXBkYXRlU2VsZWN0aW9uKCk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGdldCBtaW5EYXRlKCk6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXIubWluRGF0ZT8uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IG1heERhdGUoKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudHJpZ2dlci5tYXhEYXRlPy4oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaW5wdXRFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY3VycmVudFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUlucHV0VmFsdWUodmFsdWU6IERhdGUgfCBudWxsKTogdm9pZCB7XG4gICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgbmV3VmFsdWUgPSB0aGlzLmRhdGVBZGFwdGVyLmZvcm1hdCh2YWx1ZSwgdGhpcy5kYXRlRm9ybWF0cy5kaXNwbGF5LmRhdGVJbnB1dCk7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSBuZXdWYWx1ZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,109 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { OverlayRef, Overlay, CdkOverlayOrigin, OverlayConfig, } from '@angular/cdk/overlay';
3
+ import { ComponentPortal } from '@angular/cdk/portal';
4
+ import { Directive, ViewContainerRef, Injector, input, HostBinding, } from '@angular/core';
5
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
6
+ import { MatDateSelectionModel } from '@angular/material/datepicker';
7
+ import { merge, EMPTY, filter } from 'rxjs';
8
+ import { WLCM_DATEPICKER_CONFIG } from '../constants/datepicker.constants';
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
+ get overlayOrigin() {
67
+ return new CdkOverlayOrigin(this.connectedTo);
68
+ }
69
+ handleBackdropClick() {
70
+ this.overlayRef
71
+ .backdropClick()
72
+ .pipe(untilDestroyed(this))
73
+ .subscribe(() => this.close());
74
+ }
75
+ updatePositionStrategy() {
76
+ const origin = this.overlayOrigin.elementRef;
77
+ const strategy = this.overlay.position().flexibleConnectedTo(origin);
78
+ strategy.withPositions([
79
+ { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },
80
+ { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },
81
+ ]);
82
+ strategy.withLockedPosition(false);
83
+ strategy.withDefaultOffsetY(4);
84
+ this.overlayRef.updatePositionStrategy(strategy);
85
+ }
86
+ createOverlayConfig() {
87
+ return new OverlayConfig({
88
+ hasBackdrop: true,
89
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
90
+ backdropClass: 'transparent',
91
+ });
92
+ }
93
+ 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 }); }
94
+ 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 }); }
95
+ };
96
+ WlcmDatepickerTrigger = __decorate([
97
+ UntilDestroy(),
98
+ __metadata("design:paramtypes", [Overlay,
99
+ ViewContainerRef,
100
+ MatDateSelectionModel])
101
+ ], WlcmDatepickerTrigger);
102
+ export { WlcmDatepickerTrigger };
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDatepickerTrigger, decorators: [{
104
+ type: Directive
105
+ }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.MatDateSelectionModel }], propDecorators: { isOnlySelect: [{
106
+ type: HostBinding,
107
+ args: ['class.wlcm-datepicker-select-only-mode']
108
+ }] } });
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci10cmlnZ2VyLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGVwaWNrZXIvc3JjL2xpYi9kaXJlY3RpdmVzL2RhdGVwaWNrZXItdHJpZ2dlci5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxnQkFBZ0IsRUFHaEIsYUFBYSxHQUNkLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFDTCxTQUFTLEVBSVQsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFFUixLQUFLLEVBQ0wsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFjLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBS3BFLElBQWUscUJBQXFCLEdBQXBDLE1BQWUscUJBQXFCO0lBT3pDLElBQTJELFlBQVk7UUFDckUsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQVVELFlBQ1ksT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLGNBQXdDO1FBRnhDLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFyQnBELFlBQU8sR0FBa0MsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFF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T0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRTtZQUMxRCxhQUFhLEVBQUUsYUFBYTtTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQW5IbUIscUJBQXFCO2tHQUFyQixxQkFBcUI7O0FBQXJCLHFCQUFxQjtJQUYxQyxZQUFZLEVBQUU7cUNBc0JRLE9BQU87UUFDRSxnQkFBZ0I7UUFDbEIscUJBQXFCO0dBdEI3QixxQkFBcUIsQ0FvSDFDOzsyRkFwSHFCLHFCQUFxQjtrQkFEMUMsU0FBUzsrSUFRbUQsWUFBWTtzQkFBdEUsV0FBVzt1QkFBQyx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBPdmVybGF5UmVmLFxuICBPdmVybGF5LFxuICBDZGtPdmVybGF5T3JpZ2luLFxuICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3lPcmlnaW4sXG4gIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSxcbiAgT3ZlcmxheUNvbmZpZyxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIFR5cGUsXG4gIENvbXBvbmVudFJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgSW5qZWN0b3IsXG4gIElucHV0U2lnbmFsLFxuICBpbnB1dCxcbiAgSG9zdEJpbmRpbmcsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBNYXREYXRlU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1lcmdlLCBFTVBUWSwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXTENNX0RBVEVQSUNLRVJfQ09ORklHIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RhdGVwaWNrZXIuY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21EYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGUtcGlja2VyLm1vZGVscyc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV2xjbURhdGVwaWNrZXJUcmlnZ2VyPFQsIEQgPSBEYXRlPiB7XG4gIG1pbkRhdGU6IElucHV0U2lnbmFsPERhdGUgfCB1bmRlZmluZWQ+ID0gaW5wdXQodGhpcy5kZWZhdWx0RGF0ZXBpY2tlckNvbmZpZy5taW5EYXRlPy4oKSk7XG5cbiAgbWF4RGF0ZTogSW5wdXRTaWduYWw8RGF0ZSB8IHVuZGVmaW5lZD4gPSBpbnB1dCh0aGlzLmRlZmF1bHREYXRlcGlja2VyQ29uZmlnLm1heERhdGU/LigpKTtcblxuICBzZWxlY3RPbmx5OiBJbnB1dFNpZ25hbDxib29sZWFuPiA9IGlucHV0KHRoaXMuZGVmYXVsdERhdGVwaWNrZXJDb25maWcuc2VsZWN0T25seSB8fCBmYWxzZSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53bGNtLWRhdGVwaWNrZXItc2VsZWN0LW9ubHktbW9kZScpIGdldCBpc09ubHlTZWxlY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0T25seSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHRoaXMuY3JlYXRlT3ZlcmxheUNvbmZpZygpKTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY29ubmVjdGVkVG86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjb21wb25lbnRUeXBlOiBUeXBlPFQ+O1xuXG4gIHByb3RlY3RlZCBjb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8VD47XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByb3RlY3RlZCBzZWxlY3Rpb25Nb2RlbDogTWF0RGF0ZVNlbGVjdGlvbk1vZGVsPEQ+LFxuICApIHtcbiAgICB0aGlzLmhhbmRsZUJhY2tkcm9wQ2xpY2soKTtcbiAgfVxuXG4gIG9wZW4oKTogdm9pZCB7XG4gICAgY29uc3QgaW5qZWN0b3I6IEluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogT3ZlcmxheVJlZiwgdXNlVmFsdWU6IHRoaXMub3ZlcmxheVJlZiB9XSxcbiAgICAgIHBhcmVudDogdGhpcy5kYXRlcGlja2VySW5qZWN0b3IsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwb3J0YWw6IENvbXBvbmVudFBvcnRhbDxUPiA9IG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5jb21wb25lbnRUeXBlLCB0aGlzLnZpZXdDb250YWluZXJSZWYsIGluamVjdG9yKTtcblxuICAgIHRoaXMudXBkYXRlUG9zaXRpb25TdHJhdGVneSgpO1xuXG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gIH1cblxuICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKTtcbiAgfVxuXG4gIGdldCBvcGVuZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIG1lcmdlKHRoaXMub3ZlcmxheVJlZj8uYXR0YWNobWVudHMoKSB8fCBFTVBUWSkucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpKTtcbiAgfVxuXG4gIGdldCBjbG9zZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuICh0aGlzLm92ZXJsYXlSZWY/LmRldGFjaG1lbnRzKCkgfHwgRU1QVFkpLnBpcGUoZmlsdGVyKCgpID0+ICF0aGlzLm92ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSkpO1xuICB9XG5cbiAgZ2V0IGRhdGVwaWNrZXJJbmplY3RvcigpOiBJbmplY3RvciB7XG4gICAgY29uc3QgcGFyZW50OiBJbmplY3RvciA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5pbmplY3RvcjtcblxuICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcGFyZW50LFxuICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBXTENNX0RBVEVQSUNLRVJfQ09ORklHLCB1c2VWYWx1ZTogdGhpcy5kYXRlcGlja2VyQ29uZmlnIH1dLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGRlZmF1bHREYXRlcGlja2VyQ29uZmlnKCk6IFdsY21EYXRlcGlja2VyQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLmdldChXTENNX0RBVEVQSUNLRVJfQ09ORklHLCB7fSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgfVxuXG4gIGdldCBkYXRlcGlja2VyQ29uZmlnKCk6IFdsY21EYXRlcGlja2VyQ29uZmlnIHtcbiAgICBjb25zdCBjb25maWc6IFdsY21EYXRlcGlja2VyQ29uZmlnID0geyAuLi50aGlzLmRlZmF1bHREYXRlcGlja2VyQ29uZmlnIH07XG5cbiAgICBpZiAodGhpcy5taW5EYXRlKCkpIGNvbmZpZy5taW5EYXRlID0gdGhpcy5taW5EYXRlO1xuXG4gICAgaWYgKHRoaXMubWF4RGF0ZSgpKSBjb25maWcubWF4RGF0ZSA9IHRoaXMubWF4RGF0ZTtcblxuICAgIGNvbmZpZy5zZWxlY3RPbmx5ID0gdGhpcy5zZWxlY3RPbmx5KCk7XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgb3ZlcmxheU9yaWdpbigpOiBDZGtPdmVybGF5T3JpZ2luIHtcbiAgICByZXR1cm4gbmV3IENka092ZXJsYXlPcmlnaW4odGhpcy5jb25uZWN0ZWRUbyk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUJhY2tkcm9wQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAuYmFja2Ryb3BDbGljaygpXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUG9zaXRpb25TdHJhdGVneSgpOiB2b2lkIHtcbiAgICBjb25zdCBvcmlnaW46IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneU9yaWdpbiA9IHRoaXMub3ZlcmxheU9yaWdpbi5lbGVtZW50UmVmO1xuXG4gICAgY29uc3Qgc3RyYXRlZ3k6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmZsZXhpYmxlQ29ubmVjdGVkVG8ob3JpZ2luKTtcblxuICAgIHN0cmF0ZWd5LndpdGhQb3NpdGlvbnMoW1xuICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJywgb2Zmc2V0WTogNCB9LFxuICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnYm90dG9tJywgb2Zmc2V0WTogLTQgfSxcbiAgICBdKTtcblxuICAgIHN0cmF0ZWd5LndpdGhMb2NrZWRQb3NpdGlvbihmYWxzZSk7XG5cbiAgICBzdHJhdGVneS53aXRoRGVmYXVsdE9mZnNldFkoNCk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShzdHJhdGVneSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU92ZXJsYXlDb25maWcoKTogT3ZlcmxheUNvbmZpZyB7XG4gICAgcmV0dXJuIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICd0cmFuc3BhcmVudCcsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -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: "18.2.6", 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: "18.2.6", 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: "18.2.6", 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: "18.2.6", 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: "18.2.6", 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: "18.2.6", 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,56 @@
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
+ const value = this.currentValue || this.inputElement.placeholder;
36
+ this._inputMirror.innerHTML = value;
37
+ this.inputElement.style.width = `${this._inputMirror.offsetWidth + 2}px`;
38
+ }
39
+ createInputMirror() {
40
+ const inputMirror = document.createElement('div');
41
+ inputMirror.classList.add('wlcm-date-range-picker-input-field-mirror');
42
+ return inputMirror;
43
+ }
44
+ copyInputElementStyles(target) {
45
+ const inputElementStyles = window.getComputedStyle(this.inputElement);
46
+ target.style.fontSize = inputElementStyles.fontSize;
47
+ target.style.fontFamily = inputElementStyles.fontFamily;
48
+ target.style.letterSpacing = inputElementStyles.letterSpacing;
49
+ }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDateRangePickerInputBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
51
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: WlcmDateRangePickerInputBase, usesInheritance: true, ngImport: i0 }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmDateRangePickerInputBase, decorators: [{
54
+ type: Directive
55
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: undefined }, { type: i2.WlcmDatepickerTrigger }] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZGF0ZXBpY2tlci9zcmMvbGliL2RpcmVjdGl2ZXMvcmFnbmUvZGF0ZS1yYW5nZS1waWNrZXItaW5wdXQuYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLFdBQVcsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUduRSxNQUFNLE9BQWdCLDRCQUNwQixTQUFRLHVCQUF1QjtJQUsvQixZQUNrQixPQUFxQyxFQUNsQyxXQUE4QixFQUM5QixXQUEyQixFQUMzQixPQUF1QztRQUUxRCxLQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFMbEMsWUFBTyxHQUFQLE9BQU8sQ0FBOEI7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFnQztRQU5wRCxpQkFBWSxHQUFnQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQVM3RCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFaEUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUvQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFrQjtRQUNwQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRVEsV0FBVztRQUNsQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFdkIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFa0IsZ0JBQWdCLENBQUMsS0FBa0I7UUFDcEQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sZUFBZTtRQUNyQixNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1FBRXpFLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUVwQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQztJQUMzRSxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE1BQU0sV0FBVyxHQUFnQixRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9ELFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFFdkUsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLE1BQW1CO1FBQ2hELE1BQU0sa0JBQWtCLEdBQXdCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztRQUN4RCxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUM7SUFDaEUsQ0FBQzs4R0EvRG1CLDRCQUE0QjtrR0FBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQURqRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1hdERhdGVGb3JtYXRzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBXbGNtRGF0ZXBpY2tlcklucHV0QmFzZSB9IGZyb20gJy4uL2RhdGVwaWNrZXItaW5wdXQuYmFzZSc7XG5pbXBvcnQgeyBXbGNtRGF0ZXBpY2tlclRyaWdnZXIgfSBmcm9tICcuLi9kYXRlcGlja2VyLXRyaWdnZXIuYmFzZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdsY21EYXRlUmFuZ2VQaWNrZXJJbnB1dEJhc2VcbiAgZXh0ZW5kcyBXbGNtRGF0ZXBpY2tlcklucHV0QmFzZVxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3JcbntcbiAgcHJpdmF0ZSBfaW5wdXRNaXJyb3I6IEhUTUxFbGVtZW50ID0gdGhpcy5jcmVhdGVJbnB1dE1pcnJvcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvdmVycmlkZSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RGF0ZT4sXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGRhdGVGb3JtYXRzOiBNYXREYXRlRm9ybWF0cyxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJpZ2dlcjogV2xjbURhdGVwaWNrZXJUcmlnZ2VyPHVua25vd24+LFxuICApIHtcbiAgICBzdXBlcihlbGVtZW50LCBkYXRlQWRhcHRlciwgZGF0ZUZvcm1hdHMsIHRyaWdnZXIpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRFbGVtZW50LnBhcmVudEVsZW1lbnQ/LmFwcGVuZENoaWxkKHRoaXMuX2lucHV0TWlycm9yKTtcblxuICAgIHRoaXMuY29weUlucHV0RWxlbWVudFN0eWxlcyh0aGlzLl9pbnB1dE1pcnJvcik7XG5cbiAgICBkb2N1bWVudC5mb250cy5yZWFkeS50aGVuKCgpID0+IHRoaXMuY2hhbmdlSW5wdXRTaXplKCkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcblxuICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uKCk7XG4gIH1cblxuICBvdmVycmlkZSBoYW5kbGVJbnB1dCgpIHtcbiAgICB0aGlzLmNoYW5nZUlucHV0U2l6ZSgpO1xuXG4gICAgc3VwZXIuaGFuZGxlSW5wdXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVJbnB1dFZhbHVlKHZhbHVlOiBEYXRlIHwgbnVsbCk6IHZvaWQge1xuICAgIHN1cGVyLnVwZGF0ZUlucHV0VmFsdWUodmFsdWUpO1xuXG4gICAgdGhpcy5jaGFuZ2VJbnB1dFNpemUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlSW5wdXRTaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSB0aGlzLmN1cnJlbnRWYWx1ZSB8fCB0aGlzLmlucHV0RWxlbWVudC5wbGFjZWhvbGRlcjtcblxuICAgIHRoaXMuX2lucHV0TWlycm9yLmlubmVySFRNTCA9IHZhbHVlO1xuXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHt0aGlzLl9pbnB1dE1pcnJvci5vZmZzZXRXaWR0aCArIDJ9cHhgO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbnB1dE1pcnJvcigpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgaW5wdXRNaXJyb3I6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICBpbnB1dE1pcnJvci5jbGFzc0xpc3QuYWRkKCd3bGNtLWRhdGUtcmFuZ2UtcGlja2VyLWlucHV0LWZpZWxkLW1pcnJvcicpO1xuXG4gICAgcmV0dXJuIGlucHV0TWlycm9yO1xuICB9XG5cbiAgcHJpdmF0ZSBjb3B5SW5wdXRFbGVtZW50U3R5bGVzKHRhcmdldDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnRTdHlsZXM6IENTU1N0eWxlRGVjbGFyYXRpb24gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmlucHV0RWxlbWVudCk7XG5cbiAgICB0YXJnZXQuc3R5bGUuZm9udFNpemUgPSBpbnB1dEVsZW1lbnRTdHlsZXMuZm9udFNpemU7XG4gICAgdGFyZ2V0LnN0eWxlLmZvbnRGYW1pbHkgPSBpbnB1dEVsZW1lbnRTdHlsZXMuZm9udEZhbWlseTtcbiAgICB0YXJnZXQuc3R5bGUubGV0dGVyU3BhY2luZyA9IGlucHV0RWxlbWVudFN0eWxlcy5sZXR0ZXJTcGFjaW5nO1xuICB9XG59XG4iXX0=