@wlcm/angular 17.4.0 → 17.5.2

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 (359) hide show
  1. package/core/esm2022/index.mjs +12 -0
  2. package/core/esm2022/lib/constants/_index.mjs +3 -0
  3. package/core/esm2022/lib/directives/_index.mjs +2 -0
  4. package/core/esm2022/lib/directives/icon.directive.mjs +49 -0
  5. package/core/esm2022/lib/models/_index.mjs +5 -0
  6. package/{dist/core → core}/fesm2022/wlcm-angular-core.mjs +42 -37
  7. package/core/fesm2022/wlcm-angular-core.mjs.map +1 -0
  8. package/core/index.d.ts +7 -0
  9. package/core/lib/constants/_index.d.ts +2 -0
  10. package/core/lib/directives/_index.d.ts +1 -0
  11. package/{dist/core → core}/lib/directives/icon.directive.d.ts +2 -1
  12. package/core/lib/models/_index.d.ts +4 -0
  13. package/datepicker/README.md +7 -0
  14. package/datepicker/esm2022/index.mjs +10 -0
  15. package/datepicker/esm2022/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.mjs +54 -0
  16. package/datepicker/esm2022/lib/components/range/date-range-picker/date-range-picker.component.mjs +170 -0
  17. package/{dist/date-range-picker/esm2022/lib/components → datepicker/esm2022/lib/components/range}/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.mjs +1 -1
  18. package/datepicker/esm2022/lib/components/range/date-range-picker-input/date-range-picker-input.component.mjs +122 -0
  19. package/datepicker/esm2022/lib/components/single/datepicker-input-container/datepicker-input-container.component.mjs +88 -0
  20. package/datepicker/esm2022/lib/components/single/datepicker-panel/datepicker-panel.component.mjs +27 -0
  21. package/datepicker/esm2022/lib/constants/datepicker.constants.mjs +20 -0
  22. package/datepicker/esm2022/lib/constants/range/date-range-picker.constants.mjs +3 -0
  23. package/datepicker/esm2022/lib/constants/range/date-range-selection-model.constants.mjs +10 -0
  24. package/datepicker/esm2022/lib/constants/range/date-range-trigger-selection-model.constants.mjs +10 -0
  25. package/datepicker/esm2022/lib/datepicker.module.mjs +33 -0
  26. package/datepicker/esm2022/lib/directives/datepicker-input.base.mjs +80 -0
  27. package/datepicker/esm2022/lib/directives/datepicker-trigger.base.mjs +80 -0
  28. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-end.directive.mjs +77 -0
  29. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-start.directive.mjs +77 -0
  30. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input.base.mjs +49 -0
  31. package/datepicker/esm2022/lib/directives/ragne/left-calendar.directive.mjs +46 -0
  32. package/datepicker/esm2022/lib/directives/ragne/right-calendar.directive.mjs +59 -0
  33. package/datepicker/esm2022/lib/directives/single/datepicker-input.directive.mjs +67 -0
  34. package/datepicker/esm2022/lib/models/date-picker.models.mjs +27 -0
  35. package/datepicker/esm2022/lib/models/range/data-range-calendar.models.mjs +43 -0
  36. package/datepicker/esm2022/lib/models/range/date-range-picker.models.mjs +2 -0
  37. package/datepicker/esm2022/lib/models/range/date-range-validation.models.mjs +5 -0
  38. package/datepicker/esm2022/lib/utils/range/date-range-input.validators.mjs +16 -0
  39. package/datepicker/esm2022/lib/utils/range/date-range-picker-errors.mjs +9 -0
  40. package/datepicker/esm2022/wlcm-angular-datepicker.mjs +5 -0
  41. package/{dist/date-range-picker/fesm2022/wlcm-angular-date-range-picker.mjs → datepicker/fesm2022/wlcm-angular-datepicker.mjs} +761 -572
  42. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs.map +1 -0
  43. package/datepicker/index.d.ts +9 -0
  44. package/datepicker/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.d.ts +18 -0
  45. package/{dist/date-range-picker/lib/components → datepicker/lib/components/range}/date-range-picker/date-range-picker.component.d.ts +8 -7
  46. package/{dist/date-range-picker/lib/components → datepicker/lib/components/range}/date-range-picker-input/date-range-picker-input.component.d.ts +4 -3
  47. package/datepicker/lib/components/single/datepicker-input-container/datepicker-input-container.component.d.ts +30 -0
  48. package/datepicker/lib/components/single/datepicker-panel/datepicker-panel.component.d.ts +13 -0
  49. package/datepicker/lib/constants/datepicker.constants.d.ts +4 -0
  50. package/datepicker/lib/constants/range/date-range-picker.constants.d.ts +3 -0
  51. package/datepicker/lib/datepicker.module.d.ts +12 -0
  52. package/{dist/date-range-picker/lib/directives/date-range-picker-input-base.directive.d.ts → datepicker/lib/directives/datepicker-input.base.d.ts} +12 -15
  53. package/datepicker/lib/directives/datepicker-trigger.base.d.ts +26 -0
  54. package/{dist/date-range-picker/lib/directives → datepicker/lib/directives/ragne}/date-range-picker-input-end.directive.d.ts +5 -3
  55. package/{dist/date-range-picker/lib/directives → datepicker/lib/directives/ragne}/date-range-picker-input-start.directive.d.ts +5 -3
  56. package/datepicker/lib/directives/ragne/date-range-picker-input.base.d.ts +20 -0
  57. package/{dist/date-range-picker/lib/directives → datepicker/lib/directives/ragne}/left-calendar.directive.d.ts +1 -1
  58. package/{dist/date-range-picker/lib/directives → datepicker/lib/directives/ragne}/right-calendar.directive.d.ts +1 -1
  59. package/datepicker/lib/directives/single/datepicker-input.directive.d.ts +21 -0
  60. package/datepicker/lib/models/date-picker.models.d.ts +10 -0
  61. package/datepicker/lib/models/range/date-range-picker.models.d.ts +4 -0
  62. package/datepicker/lib/models/range/date-range-validation.models.d.ts +3 -0
  63. package/{dist/forms → forms}/esm2022/lib/forms/components/select/select.component.mjs +3 -3
  64. package/{dist/forms → forms}/fesm2022/wlcm-angular-forms.mjs +2 -2
  65. package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -0
  66. package/package.json +7 -60
  67. package/phone-input/esm2022/lib/directives/phone-input.directive.mjs +125 -0
  68. package/{dist/phone-input → phone-input}/fesm2022/wlcm-angular-phone-input.mjs +1 -0
  69. package/phone-input/fesm2022/wlcm-angular-phone-input.mjs.map +1 -0
  70. package/shared/calendar/esm2022/index.mjs +4 -0
  71. package/shared/calendar/esm2022/lib/calendar.module.mjs +21 -0
  72. package/shared/calendar/esm2022/lib/components/calendar-header/calendar-header.component.mjs +107 -0
  73. package/shared/calendar/esm2022/lib/directives/calendar.directive.mjs +15 -0
  74. package/shared/calendar/esm2022/wlcm-angular-calendar.mjs +5 -0
  75. package/shared/calendar/index.d.ts +3 -0
  76. package/shared/calendar/lib/calendar.module.d.ts +9 -0
  77. package/shared/calendar/lib/components/calendar-header/calendar-header.component.d.ts +22 -0
  78. package/shared/calendar/lib/directives/calendar.directive.d.ts +5 -0
  79. package/{dist/stepper → stepper}/esm2022/lib/components/step-header/step-header.component.mjs +3 -1
  80. package/{dist/stepper → stepper}/fesm2022/wlcm-angular-stepper.mjs +2 -0
  81. package/stepper/fesm2022/wlcm-angular-stepper.mjs.map +1 -0
  82. package/{dist/styles/components/date-range-picker/_date-range-picker-body.scss → styles/components/calendar/_calendar.scss} +2 -9
  83. package/styles/components/calendar/index.scss +7 -0
  84. package/styles/components/date-range-picker/_date-range-picker-body.scss +13 -0
  85. package/{dist/styles → styles}/components/date-range-picker/index.scss +0 -2
  86. package/styles/components/datepicker/_datepicker-input-container.scss +11 -0
  87. package/styles/components/datepicker/_datepicker-panel.scss +15 -0
  88. package/styles/components/datepicker/index.scss +7 -0
  89. package/{dist/styles → styles}/core/_all-theme.scss +7 -3
  90. package/dist/README.md +0 -62
  91. package/dist/button/.npmignore +0 -2
  92. package/dist/core/.npmignore +0 -2
  93. package/dist/core/esm2022/index.mjs +0 -13
  94. package/dist/core/esm2022/lib/directives/icon.directive.mjs +0 -44
  95. package/dist/core/fesm2022/wlcm-angular-core.mjs.map +0 -1
  96. package/dist/core/index.d.ts +0 -11
  97. package/dist/date-range-picker/.npmignore +0 -2
  98. package/dist/date-range-picker/README.md +0 -7
  99. package/dist/date-range-picker/esm2022/index.mjs +0 -7
  100. package/dist/date-range-picker/esm2022/lib/components/calendar-header/calendar-header.component.mjs +0 -62
  101. package/dist/date-range-picker/esm2022/lib/components/date-range-picker/date-range-picker.component.mjs +0 -157
  102. package/dist/date-range-picker/esm2022/lib/components/date-range-picker-input/date-range-picker-input.component.mjs +0 -122
  103. package/dist/date-range-picker/esm2022/lib/constants/date-range-selection-model.constants.mjs +0 -10
  104. package/dist/date-range-picker/esm2022/lib/constants/date-range-trigger-selection-model.constants.mjs +0 -10
  105. package/dist/date-range-picker/esm2022/lib/date-range-picker.module.mjs +0 -67
  106. package/dist/date-range-picker/esm2022/lib/directives/date-range-picker-input-base.directive.mjs +0 -93
  107. package/dist/date-range-picker/esm2022/lib/directives/date-range-picker-input-end.directive.mjs +0 -65
  108. package/dist/date-range-picker/esm2022/lib/directives/date-range-picker-input-start.directive.mjs +0 -65
  109. package/dist/date-range-picker/esm2022/lib/directives/date-range-picker-trigger.directive.mjs +0 -80
  110. package/dist/date-range-picker/esm2022/lib/directives/left-calendar.directive.mjs +0 -46
  111. package/dist/date-range-picker/esm2022/lib/directives/right-calendar.directive.mjs +0 -59
  112. package/dist/date-range-picker/esm2022/lib/models/data-range-calendar.models.mjs +0 -43
  113. package/dist/date-range-picker/esm2022/lib/models/date-range-validation.models.mjs +0 -5
  114. package/dist/date-range-picker/esm2022/lib/services/date-adapter.service.mjs +0 -23
  115. package/dist/date-range-picker/esm2022/lib/utils/date-range-input.validators.mjs +0 -16
  116. package/dist/date-range-picker/esm2022/lib/utils/date-range-picker-errors.mjs +0 -9
  117. package/dist/date-range-picker/esm2022/wlcm-angular-date-range-picker.mjs +0 -5
  118. package/dist/date-range-picker/fesm2022/wlcm-angular-date-range-picker.mjs.map +0 -1
  119. package/dist/date-range-picker/index.d.ts +0 -6
  120. package/dist/date-range-picker/lib/components/calendar-header/calendar-header.component.d.ts +0 -19
  121. package/dist/date-range-picker/lib/date-range-picker.module.d.ts +0 -12
  122. package/dist/date-range-picker/lib/directives/date-range-picker-trigger.directive.d.ts +0 -26
  123. package/dist/date-range-picker/lib/models/date-range-validation.models.d.ts +0 -3
  124. package/dist/date-range-picker/lib/services/date-adapter.service.d.ts +0 -7
  125. package/dist/filters/.npmignore +0 -2
  126. package/dist/forms/.npmignore +0 -2
  127. package/dist/forms/fesm2022/wlcm-angular-forms.mjs.map +0 -1
  128. package/dist/package.json +0 -92
  129. package/dist/phone-input/.npmignore +0 -2
  130. package/dist/phone-input/esm2022/lib/directives/phone-input.directive.mjs +0 -124
  131. package/dist/phone-input/fesm2022/wlcm-angular-phone-input.mjs.map +0 -1
  132. package/dist/search-field/.npmignore +0 -2
  133. package/dist/stepper/.npmignore +0 -2
  134. package/dist/stepper/fesm2022/wlcm-angular-stepper.mjs.map +0 -1
  135. /package/{dist/button → button}/README.md +0 -0
  136. /package/{dist/button → button}/esm2022/index.mjs +0 -0
  137. /package/{dist/button → button}/esm2022/lib/button.module.mjs +0 -0
  138. /package/{dist/button → button}/esm2022/lib/components/button/button.component.mjs +0 -0
  139. /package/{dist/button → button}/esm2022/lib/models/button.models.mjs +0 -0
  140. /package/{dist/button → button}/esm2022/wlcm-angular-button.mjs +0 -0
  141. /package/{dist/button → button}/fesm2022/wlcm-angular-button.mjs +0 -0
  142. /package/{dist/button → button}/fesm2022/wlcm-angular-button.mjs.map +0 -0
  143. /package/{dist/button → button}/index.d.ts +0 -0
  144. /package/{dist/button → button}/lib/button.module.d.ts +0 -0
  145. /package/{dist/button → button}/lib/components/button/button.component.d.ts +0 -0
  146. /package/{dist/button → button}/lib/models/button.models.d.ts +0 -0
  147. /package/{dist/core → core}/README.md +0 -0
  148. /package/{dist/core → core}/esm2022/lib/components/calendar-icon/calendar-icon.component.mjs +0 -0
  149. /package/{dist/core → core}/esm2022/lib/components/chevron-down-icon/chevron-down-icon.component.mjs +0 -0
  150. /package/{dist/core → core}/esm2022/lib/components/close-icon/close-icon.component.mjs +0 -0
  151. /package/{dist/core → core}/esm2022/lib/components/search-icon/search-icon.component.mjs +0 -0
  152. /package/{dist/core → core}/esm2022/lib/constants/http.constants.mjs +0 -0
  153. /package/{dist/core → core}/esm2022/lib/constants/icon.contants.mjs +0 -0
  154. /package/{dist/core → core}/esm2022/lib/models/icon.models.mjs +0 -0
  155. /package/{dist/core → core}/esm2022/lib/models/option.models.mjs +0 -0
  156. /package/{dist/core → core}/esm2022/lib/models/paginated-data.models.mjs +0 -0
  157. /package/{dist/core → core}/esm2022/lib/models/query-params.models.mjs +0 -0
  158. /package/{dist/core → core}/esm2022/lib/utils/stream.utils.mjs +0 -0
  159. /package/{dist/core → core}/esm2022/wlcm-angular-core.mjs +0 -0
  160. /package/{dist/core → core}/lib/components/calendar-icon/calendar-icon.component.d.ts +0 -0
  161. /package/{dist/core → core}/lib/components/chevron-down-icon/chevron-down-icon.component.d.ts +0 -0
  162. /package/{dist/core → core}/lib/components/close-icon/close-icon.component.d.ts +0 -0
  163. /package/{dist/core → core}/lib/components/search-icon/search-icon.component.d.ts +0 -0
  164. /package/{dist/core → core}/lib/constants/http.constants.d.ts +0 -0
  165. /package/{dist/core → core}/lib/constants/icon.contants.d.ts +0 -0
  166. /package/{dist/core → core}/lib/models/icon.models.d.ts +0 -0
  167. /package/{dist/core → core}/lib/models/option.models.d.ts +0 -0
  168. /package/{dist/core → core}/lib/models/paginated-data.models.d.ts +0 -0
  169. /package/{dist/core → core}/lib/models/query-params.models.d.ts +0 -0
  170. /package/{dist/core → core}/lib/utils/stream.utils.d.ts +0 -0
  171. /package/{dist/date-range-picker/lib/components → datepicker/lib/components/range}/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.d.ts +0 -0
  172. /package/{dist/date-range-picker/lib/constants → datepicker/lib/constants/range}/date-range-selection-model.constants.d.ts +0 -0
  173. /package/{dist/date-range-picker/lib/constants → datepicker/lib/constants/range}/date-range-trigger-selection-model.constants.d.ts +0 -0
  174. /package/{dist/date-range-picker/lib/models → datepicker/lib/models/range}/data-range-calendar.models.d.ts +0 -0
  175. /package/{dist/date-range-picker/lib/utils → datepicker/lib/utils/range}/date-range-input.validators.d.ts +0 -0
  176. /package/{dist/date-range-picker/lib/utils → datepicker/lib/utils/range}/date-range-picker-errors.d.ts +0 -0
  177. /package/{dist/filters → filters}/README.md +0 -0
  178. /package/{dist/filters → filters}/esm2022/index.mjs +0 -0
  179. /package/{dist/filters → filters}/esm2022/lib/filters/components/filters/filters.component.mjs +0 -0
  180. /package/{dist/filters → filters}/esm2022/lib/filters/components/filters-button/filters-button.component.mjs +0 -0
  181. /package/{dist/filters → filters}/esm2022/lib/filters/components/filters-panel/filters-panel.component.mjs +0 -0
  182. /package/{dist/filters → filters}/esm2022/lib/filters/components/filters-unit/filters-unit.component.mjs +0 -0
  183. /package/{dist/filters → filters}/esm2022/lib/filters/directives/filters-content.directive.mjs +0 -0
  184. /package/{dist/filters → filters}/esm2022/lib/filters/directives/filters-trigger.directive.mjs +0 -0
  185. /package/{dist/filters → filters}/esm2022/lib/filters/filters.module.mjs +0 -0
  186. /package/{dist/filters → filters}/esm2022/lib/filters/models/filters-default-selection-model.mjs +0 -0
  187. /package/{dist/filters → filters}/esm2022/lib/filters/models/filters-trigger.base.mjs +0 -0
  188. /package/{dist/filters → filters}/esm2022/lib/filters/models/filters.models.mjs +0 -0
  189. /package/{dist/filters → filters}/esm2022/lib/filters/pipes/is-filters-param-checked.pipe.mjs +0 -0
  190. /package/{dist/filters → filters}/esm2022/lib/filters/pipes/total-filters-applied.pipe.mjs +0 -0
  191. /package/{dist/filters → filters}/esm2022/lib/filters/utils/filters.utils.mjs +0 -0
  192. /package/{dist/filters → filters}/esm2022/wlcm-angular-filters.mjs +0 -0
  193. /package/{dist/filters → filters}/fesm2022/wlcm-angular-filters.mjs +0 -0
  194. /package/{dist/filters → filters}/fesm2022/wlcm-angular-filters.mjs.map +0 -0
  195. /package/{dist/filters → filters}/index.d.ts +0 -0
  196. /package/{dist/filters → filters}/lib/filters/components/filters/filters.component.d.ts +0 -0
  197. /package/{dist/filters → filters}/lib/filters/components/filters-button/filters-button.component.d.ts +0 -0
  198. /package/{dist/filters → filters}/lib/filters/components/filters-panel/filters-panel.component.d.ts +0 -0
  199. /package/{dist/filters → filters}/lib/filters/components/filters-unit/filters-unit.component.d.ts +0 -0
  200. /package/{dist/filters → filters}/lib/filters/directives/filters-content.directive.d.ts +0 -0
  201. /package/{dist/filters → filters}/lib/filters/directives/filters-trigger.directive.d.ts +0 -0
  202. /package/{dist/filters → filters}/lib/filters/filters.module.d.ts +0 -0
  203. /package/{dist/filters → filters}/lib/filters/models/filters-default-selection-model.d.ts +0 -0
  204. /package/{dist/filters → filters}/lib/filters/models/filters-trigger.base.d.ts +0 -0
  205. /package/{dist/filters → filters}/lib/filters/models/filters.models.d.ts +0 -0
  206. /package/{dist/filters → filters}/lib/filters/pipes/is-filters-param-checked.pipe.d.ts +0 -0
  207. /package/{dist/filters → filters}/lib/filters/pipes/total-filters-applied.pipe.d.ts +0 -0
  208. /package/{dist/filters → filters}/lib/filters/utils/filters.utils.d.ts +0 -0
  209. /package/{dist/forms → forms}/README.md +0 -0
  210. /package/{dist/forms → forms}/esm2022/index.mjs +0 -0
  211. /package/{dist/forms → forms}/esm2022/lib/forms/components/autocomplete/autocomplete.component.mjs +0 -0
  212. /package/{dist/forms → forms}/esm2022/lib/forms/components/checkbox/checkbox.component.mjs +0 -0
  213. /package/{dist/forms → forms}/esm2022/lib/forms/components/error/error.component.mjs +0 -0
  214. /package/{dist/forms → forms}/esm2022/lib/forms/components/form-field/form-field.component.mjs +0 -0
  215. /package/{dist/forms → forms}/esm2022/lib/forms/components/index.mjs +0 -0
  216. /package/{dist/forms → forms}/esm2022/lib/forms/components/label/label.component.mjs +0 -0
  217. /package/{dist/forms → forms}/esm2022/lib/forms/constants/form-elements.constants.mjs +0 -0
  218. /package/{dist/forms → forms}/esm2022/lib/forms/constants/form-errors.constants.mjs +0 -0
  219. /package/{dist/forms → forms}/esm2022/lib/forms/constants/form-field.constants.mjs +0 -0
  220. /package/{dist/forms → forms}/esm2022/lib/forms/constants/form-state-handlers.constants.mjs +0 -0
  221. /package/{dist/forms → forms}/esm2022/lib/forms/constants/index.mjs +0 -0
  222. /package/{dist/forms → forms}/esm2022/lib/forms/directives/ac-input-binder.directive.mjs +0 -0
  223. /package/{dist/forms → forms}/esm2022/lib/forms/directives/autocomplete.directive.mjs +0 -0
  224. /package/{dist/forms → forms}/esm2022/lib/forms/directives/form-field-custom-container.directive.mjs +0 -0
  225. /package/{dist/forms → forms}/esm2022/lib/forms/directives/form-field-hint.directive.mjs +0 -0
  226. /package/{dist/forms → forms}/esm2022/lib/forms/directives/form-field-prefix.directive.mjs +0 -0
  227. /package/{dist/forms → forms}/esm2022/lib/forms/directives/form-field-suffix.directive.mjs +0 -0
  228. /package/{dist/forms → forms}/esm2022/lib/forms/directives/input.directive.mjs +0 -0
  229. /package/{dist/forms → forms}/esm2022/lib/forms/directives/select-input-binder.directive.mjs +0 -0
  230. /package/{dist/forms → forms}/esm2022/lib/forms/forms.module.mjs +0 -0
  231. /package/{dist/forms → forms}/esm2022/lib/forms/models/_index.mjs +0 -0
  232. /package/{dist/forms → forms}/esm2022/lib/forms/models/form-errors.models.mjs +0 -0
  233. /package/{dist/forms → forms}/esm2022/lib/forms/models/form.models.mjs +0 -0
  234. /package/{dist/forms → forms}/esm2022/lib/forms/models/input.models.mjs +0 -0
  235. /package/{dist/forms → forms}/esm2022/lib/forms/pipes/errors-mapper.pipe.mjs +0 -0
  236. /package/{dist/forms → forms}/esm2022/lib/forms/services/form-state-handler.service.mjs +0 -0
  237. /package/{dist/forms → forms}/esm2022/lib/forms/services/index.mjs +0 -0
  238. /package/{dist/forms → forms}/esm2022/wlcm-angular-forms.mjs +0 -0
  239. /package/{dist/forms → forms}/index.d.ts +0 -0
  240. /package/{dist/forms → forms}/lib/forms/components/autocomplete/autocomplete.component.d.ts +0 -0
  241. /package/{dist/forms → forms}/lib/forms/components/checkbox/checkbox.component.d.ts +0 -0
  242. /package/{dist/forms → forms}/lib/forms/components/error/error.component.d.ts +0 -0
  243. /package/{dist/forms → forms}/lib/forms/components/form-field/form-field.component.d.ts +0 -0
  244. /package/{dist/forms → forms}/lib/forms/components/index.d.ts +0 -0
  245. /package/{dist/forms → forms}/lib/forms/components/label/label.component.d.ts +0 -0
  246. /package/{dist/forms → forms}/lib/forms/components/select/select.component.d.ts +0 -0
  247. /package/{dist/forms → forms}/lib/forms/constants/form-elements.constants.d.ts +0 -0
  248. /package/{dist/forms → forms}/lib/forms/constants/form-errors.constants.d.ts +0 -0
  249. /package/{dist/forms → forms}/lib/forms/constants/form-field.constants.d.ts +0 -0
  250. /package/{dist/forms → forms}/lib/forms/constants/form-state-handlers.constants.d.ts +0 -0
  251. /package/{dist/forms → forms}/lib/forms/constants/index.d.ts +0 -0
  252. /package/{dist/forms → forms}/lib/forms/directives/ac-input-binder.directive.d.ts +0 -0
  253. /package/{dist/forms → forms}/lib/forms/directives/autocomplete.directive.d.ts +0 -0
  254. /package/{dist/forms → forms}/lib/forms/directives/form-field-custom-container.directive.d.ts +0 -0
  255. /package/{dist/forms → forms}/lib/forms/directives/form-field-hint.directive.d.ts +0 -0
  256. /package/{dist/forms → forms}/lib/forms/directives/form-field-prefix.directive.d.ts +0 -0
  257. /package/{dist/forms → forms}/lib/forms/directives/form-field-suffix.directive.d.ts +0 -0
  258. /package/{dist/forms → forms}/lib/forms/directives/input.directive.d.ts +0 -0
  259. /package/{dist/forms → forms}/lib/forms/directives/select-input-binder.directive.d.ts +0 -0
  260. /package/{dist/forms → forms}/lib/forms/forms.module.d.ts +0 -0
  261. /package/{dist/forms → forms}/lib/forms/models/_index.d.ts +0 -0
  262. /package/{dist/forms → forms}/lib/forms/models/form-errors.models.d.ts +0 -0
  263. /package/{dist/forms → forms}/lib/forms/models/form.models.d.ts +0 -0
  264. /package/{dist/forms → forms}/lib/forms/models/input.models.d.ts +0 -0
  265. /package/{dist/forms → forms}/lib/forms/pipes/errors-mapper.pipe.d.ts +0 -0
  266. /package/{dist/forms → forms}/lib/forms/services/form-state-handler.service.d.ts +0 -0
  267. /package/{dist/forms → forms}/lib/forms/services/index.d.ts +0 -0
  268. /package/{dist/index.d.ts → index.d.ts} +0 -0
  269. /package/{dist/index.mjs → index.mjs} +0 -0
  270. /package/{dist/phone-input → phone-input}/README.md +0 -0
  271. /package/{dist/phone-input → phone-input}/esm2022/index.mjs +0 -0
  272. /package/{dist/phone-input → phone-input}/esm2022/lib/components/country-code-select/country-code-select.component.mjs +0 -0
  273. /package/{dist/phone-input → phone-input}/esm2022/lib/components/phone-input-container/phone-input-container.component.mjs +0 -0
  274. /package/{dist/phone-input → phone-input}/esm2022/lib/constants/country-code-options.constants.mjs +0 -0
  275. /package/{dist/phone-input → phone-input}/esm2022/lib/constants/phone-adapter.constants.mjs +0 -0
  276. /package/{dist/phone-input → phone-input}/esm2022/lib/models/country-code.models.mjs +0 -0
  277. /package/{dist/phone-input → phone-input}/esm2022/lib/models/phone-adapter.models.mjs +0 -0
  278. /package/{dist/phone-input → phone-input}/esm2022/lib/models/phone.models.mjs +0 -0
  279. /package/{dist/phone-input → phone-input}/esm2022/lib/phone-input.module.mjs +0 -0
  280. /package/{dist/phone-input → phone-input}/esm2022/lib/pipes/phone-code.pipe.mjs +0 -0
  281. /package/{dist/phone-input → phone-input}/esm2022/wlcm-angular-phone-input.mjs +0 -0
  282. /package/{dist/phone-input → phone-input}/index.d.ts +0 -0
  283. /package/{dist/phone-input → phone-input}/lib/components/country-code-select/country-code-select.component.d.ts +0 -0
  284. /package/{dist/phone-input → phone-input}/lib/components/phone-input-container/phone-input-container.component.d.ts +0 -0
  285. /package/{dist/phone-input → phone-input}/lib/constants/country-code-options.constants.d.ts +0 -0
  286. /package/{dist/phone-input → phone-input}/lib/constants/phone-adapter.constants.d.ts +0 -0
  287. /package/{dist/phone-input → phone-input}/lib/directives/phone-input.directive.d.ts +0 -0
  288. /package/{dist/phone-input → phone-input}/lib/models/country-code.models.d.ts +0 -0
  289. /package/{dist/phone-input → phone-input}/lib/models/phone-adapter.models.d.ts +0 -0
  290. /package/{dist/phone-input → phone-input}/lib/models/phone.models.d.ts +0 -0
  291. /package/{dist/phone-input → phone-input}/lib/phone-input.module.d.ts +0 -0
  292. /package/{dist/phone-input → phone-input}/lib/pipes/phone-code.pipe.d.ts +0 -0
  293. /package/{dist/search-field → search-field}/README.md +0 -0
  294. /package/{dist/search-field → search-field}/esm2022/index.mjs +0 -0
  295. /package/{dist/search-field → search-field}/esm2022/lib/components/search-field/search-field.component.mjs +0 -0
  296. /package/{dist/search-field → search-field}/esm2022/lib/search-field.module.mjs +0 -0
  297. /package/{dist/search-field → search-field}/esm2022/wlcm-angular-search-field.mjs +0 -0
  298. /package/{dist/search-field → search-field}/fesm2022/wlcm-angular-search-field.mjs +0 -0
  299. /package/{dist/search-field → search-field}/fesm2022/wlcm-angular-search-field.mjs.map +0 -0
  300. /package/{dist/search-field → search-field}/index.d.ts +0 -0
  301. /package/{dist/search-field → search-field}/lib/components/search-field/search-field.component.d.ts +0 -0
  302. /package/{dist/search-field → search-field}/lib/search-field.module.d.ts +0 -0
  303. /package/{dist/stepper → stepper}/README.md +0 -0
  304. /package/{dist/stepper → stepper}/esm2022/index.mjs +0 -0
  305. /package/{dist/stepper → stepper}/esm2022/lib/components/step/step.component.mjs +0 -0
  306. /package/{dist/stepper → stepper}/esm2022/lib/components/stepper/stepper.component.mjs +0 -0
  307. /package/{dist/stepper → stepper}/esm2022/lib/components/stepper-header/stepper-header.component.mjs +0 -0
  308. /package/{dist/stepper → stepper}/esm2022/lib/constants/step.constants.mjs +0 -0
  309. /package/{dist/stepper → stepper}/esm2022/lib/constants/stepper.stepper.mjs +0 -0
  310. /package/{dist/stepper → stepper}/esm2022/lib/directives/load-on-active-step.directive.mjs +0 -0
  311. /package/{dist/stepper → stepper}/esm2022/lib/models/step.models.mjs +0 -0
  312. /package/{dist/stepper → stepper}/esm2022/lib/models/stepper.models.mjs +0 -0
  313. /package/{dist/stepper → stepper}/esm2022/lib/stepper.module.mjs +0 -0
  314. /package/{dist/stepper → stepper}/esm2022/wlcm-angular-stepper.mjs +0 -0
  315. /package/{dist/stepper → stepper}/index.d.ts +0 -0
  316. /package/{dist/stepper → stepper}/lib/components/step/step.component.d.ts +0 -0
  317. /package/{dist/stepper → stepper}/lib/components/step-header/step-header.component.d.ts +0 -0
  318. /package/{dist/stepper → stepper}/lib/components/stepper/stepper.component.d.ts +0 -0
  319. /package/{dist/stepper → stepper}/lib/components/stepper-header/stepper-header.component.d.ts +0 -0
  320. /package/{dist/stepper → stepper}/lib/constants/step.constants.d.ts +0 -0
  321. /package/{dist/stepper → stepper}/lib/constants/stepper.stepper.d.ts +0 -0
  322. /package/{dist/stepper → stepper}/lib/directives/load-on-active-step.directive.d.ts +0 -0
  323. /package/{dist/stepper → stepper}/lib/models/step.models.d.ts +0 -0
  324. /package/{dist/stepper → stepper}/lib/models/stepper.models.d.ts +0 -0
  325. /package/{dist/stepper → stepper}/lib/stepper.module.d.ts +0 -0
  326. /package/{dist/styles → styles}/components/button/index.scss +0 -0
  327. /package/{dist/styles/components/date-range-picker/_date-range-picker-header.scss → styles/components/calendar/_calendar-header.scss} +0 -0
  328. /package/{dist/styles → styles}/components/common/index.scss +0 -0
  329. /package/{dist/styles → styles}/components/date-range-picker/_date-range-picker-input.scss +0 -0
  330. /package/{dist/styles → styles}/components/date-range-picker/_date-range-picker-panel.scss +0 -0
  331. /package/{dist/styles → styles}/components/filters/_filters-panel.scss +0 -0
  332. /package/{dist/styles → styles}/components/filters/_filters-unit.scss +0 -0
  333. /package/{dist/styles → styles}/components/filters/index.scss +0 -0
  334. /package/{dist/styles → styles}/components/forms/_autocomplete.scss +0 -0
  335. /package/{dist/styles → styles}/components/forms/_checkbox.scss +0 -0
  336. /package/{dist/styles → styles}/components/forms/_error.scss +0 -0
  337. /package/{dist/styles → styles}/components/forms/_form-field.scss +0 -0
  338. /package/{dist/styles → styles}/components/forms/_label.scss +0 -0
  339. /package/{dist/styles → styles}/components/forms/_radio.scss +0 -0
  340. /package/{dist/styles → styles}/components/forms/_select.scss +0 -0
  341. /package/{dist/styles → styles}/components/forms/index.scss +0 -0
  342. /package/{dist/styles → styles}/components/phone-input/_country-code-select.scss +0 -0
  343. /package/{dist/styles → styles}/components/phone-input/_phone-input-container.scss +0 -0
  344. /package/{dist/styles/components/phone-input/indes.scss → styles/components/phone-input/index.scss} +0 -0
  345. /package/{dist/styles → styles}/components/search-field/index.scss +0 -0
  346. /package/{dist/styles → styles}/components/stepper/_step-header.scss +0 -0
  347. /package/{dist/styles → styles}/components/stepper/_step.scss +0 -0
  348. /package/{dist/styles → styles}/components/stepper/_stepper-header.scss +0 -0
  349. /package/{dist/styles → styles}/components/stepper/_stepper.scss +0 -0
  350. /package/{dist/styles/components/stepper/indes.scss → styles/components/stepper/index.scss} +0 -0
  351. /package/{dist/styles → styles}/components/table/_table-head-data.scss +0 -0
  352. /package/{dist/styles → styles}/components/table/_table-head.scss +0 -0
  353. /package/{dist/styles → styles}/components/table/_table-row-data.scss +0 -0
  354. /package/{dist/styles → styles}/components/table/_table-row.scss +0 -0
  355. /package/{dist/styles → styles}/components/table/_table.scss +0 -0
  356. /package/{dist/styles → styles}/components/table/index.scss +0 -0
  357. /package/{dist/styles → styles}/core/_core.scss +0 -0
  358. /package/{dist/styles → styles}/core/_utils.scss +0 -0
  359. /package/{dist/styles → styles}/wlcm.scss +0 -0
@@ -1,27 +1,222 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injector, ViewContainerRef, Directive, HostListener, InjectionToken, forwardRef, ElementRef, Optional, Inject, output, input, effect, Component, signal, computed, ViewChild, inject, Host, ContentChild, Injectable, NgModule } from '@angular/core';
2
+ import { Component, output, input, effect, Directive, forwardRef, Optional, Inject, InjectionToken, ElementRef, Injector, ViewContainerRef, signal, computed, ViewChild, Injectable, HostListener, inject, Host, ContentChild, contentChild, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
- import { __decorate, __metadata } from 'tslib';
5
- import * as i1 from '@angular/cdk/overlay';
4
+ import * as i2$1 from '@angular/material/datepicker';
5
+ import { yearsPerPage, MatCalendar, MatRangeDateSelectionModel, MatDateSelectionModel, MAT_DATE_RANGE_SELECTION_STRATEGY, DefaultMatCalendarRangeStrategy, MatMonthView, MatDatepickerModule, DateRange, MatSingleDateSelectionModel } from '@angular/material/datepicker';
6
+ import { WLCM_FORM_FIELD, WLCM_FORM_CONTROL_PROVIDER, WLCM_INPUT_BINDER, WlcmFormsModule } from '@wlcm/angular/forms';
7
+ import { merge, EMPTY, filter, Subject, tap, startWith, takeUntil, BehaviorSubject, switchMap, fromEvent, map } from 'rxjs';
8
+ import * as i1$1 from '@angular/cdk/overlay';
6
9
  import { OverlayRef, CdkOverlayOrigin, OverlayConfig, Overlay } from '@angular/cdk/overlay';
7
- import { ComponentPortal } from '@angular/cdk/portal';
8
- import * as i2 from '@angular/material/datepicker';
9
- import { MatDateSelectionModel, MatRangeDateSelectionModel, DateRange, yearsPerPage, MatCalendar, MAT_DATE_RANGE_SELECTION_STRATEGY, DefaultMatCalendarRangeStrategy, MatMonthView, MatDatepickerModule } from '@angular/material/datepicker';
10
+ import { __decorate, __metadata } from 'tslib';
10
11
  import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
11
- import { merge, EMPTY, filter, Subject, tap, startWith, takeUntil, BehaviorSubject, switchMap, fromEvent, map } from 'rxjs';
12
- import { WLCM_FORM_FIELD, WLCM_FORM_CONTROL_PROVIDER, WLCM_INPUT_BINDER, WlcmFormsModule } from '@wlcm/angular/forms';
13
- import * as i1$1 from '@angular/material/core';
14
- import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
15
- import * as i3 from '@angular/forms';
16
- import { NG_VALUE_ACCESSOR, NG_VALIDATORS, ControlContainer } from '@angular/forms';
17
- import { WlcmIconName, WlcmIconDirective } from '@wlcm/angular/core';
18
- import * as i2$1 from '@wlcm/angular/button';
12
+ import * as i2 from '@wlcm/angular/button';
19
13
  import { WlcmButtonModule } from '@wlcm/angular/button';
20
- import { enUS } from 'date-fns/locale';
14
+ import * as i1 from '@angular/material/core';
15
+ import { MAT_DATE_FORMATS, DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';
16
+ import { WlcmIconName, WlcmIconDirective } from '@wlcm/angular/core';
17
+ import * as i3 from '@wlcm/angular/calendar';
18
+ import { WlcmCalendarModule, WlcmCalendarHeaderComponent } from '@wlcm/angular/calendar';
19
+ import { ComponentPortal } from '@angular/cdk/portal';
20
+ import * as i3$1 from '@angular/forms';
21
+ import { NG_VALUE_ACCESSOR, NG_VALIDATORS, ControlContainer } from '@angular/forms';
22
+ import { format, parse, isValid, isAfter } from 'date-fns';
21
23
  import { DateFnsAdapter } from '@angular/material-date-fns-adapter';
22
- import { format } from 'date-fns';
24
+ import { enUS } from 'date-fns/locale';
25
+
26
+ class WlcmDateRangePickerBottomPanelComponent {
27
+ constructor(picker) {
28
+ this.picker = picker;
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerBottomPanelComponent, deps: [{ token: WlcmDateRangePickerComponent }], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDateRangePickerBottomPanelComponent, isStandalone: true, selector: "wlcm-date-range-picker-bottom-panel", ngImport: i0, template: "<div class=\"wlcm-date-range-picker-bottom-panel\">\n <wlcm-button type=\"paddingless\" (clicked)=\"picker.reset()\">Reset</wlcm-button>\n\n <wlcm-button (clicked)=\"picker.apply()\" [isDisabled]=\"!picker.isComplete()\">\n Apply\n </wlcm-button>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmButtonModule }, { kind: "component", type: i2.WlcmButtonComponent, selector: "wlcm-button", inputs: ["type", "size", "isDisabled", "isLoading"], outputs: ["clicked"] }] }); }
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerBottomPanelComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'wlcm-date-range-picker-bottom-panel', standalone: true, imports: [CommonModule, WlcmButtonModule], template: "<div class=\"wlcm-date-range-picker-bottom-panel\">\n <wlcm-button type=\"paddingless\" (clicked)=\"picker.reset()\">Reset</wlcm-button>\n\n <wlcm-button (clicked)=\"picker.apply()\" [isDisabled]=\"!picker.isComplete()\">\n Apply\n </wlcm-button>\n</div>\n" }]
36
+ }], ctorParameters: () => [{ type: WlcmDateRangePickerComponent }] });
37
+
38
+ class WlcmDataRangeCalendar {
39
+ constructor(location, element, calendar, dateAdapter) {
40
+ this.element = element;
41
+ this.calendar = calendar;
42
+ this.dateAdapter = dateAdapter;
43
+ this.dateChange = output();
44
+ this.viewChange = output();
45
+ this.disabled = input(false);
46
+ this.location = location;
47
+ effect(() => {
48
+ if (this.disabled()) {
49
+ this.element.nativeElement.classList.add('wlcm-calendar-disabled');
50
+ }
51
+ else {
52
+ this.element.nativeElement.classList.remove('wlcm-calendar-disabled');
53
+ }
54
+ });
55
+ }
56
+ prevMonth() {
57
+ this.dateChange.emit(this.dateAdapter.addCalendarMonths(this.calendar.activeDate, -1));
58
+ }
59
+ nextMonth() {
60
+ this.dateChange.emit(this.dateAdapter.addCalendarMonths(this.calendar.activeDate, 1));
61
+ }
62
+ prevYear() {
63
+ this.dateChange.emit(this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? -1 : -yearsPerPage));
64
+ }
65
+ nextYear() {
66
+ this.dateChange.emit(this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? 1 : yearsPerPage));
67
+ }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDataRangeCalendar, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
69
+ 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 }); }
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDataRangeCalendar, decorators: [{
72
+ type: Directive
73
+ }], ctorParameters: () => [{ type: undefined }, { type: i0.ElementRef }, { type: i2$1.MatCalendar }, { type: i1.DateAdapter }] });
74
+
75
+ class WlcmDateRangeCalendarHeaderComponent {
76
+ constructor(rangeCalendar, dateFormats, calendar) {
77
+ this.rangeCalendar = rangeCalendar;
78
+ this.dateFormats = dateFormats;
79
+ this.calendar = calendar;
80
+ this.WlcmIconName = WlcmIconName;
81
+ this.previous = () => {
82
+ if (this.calendar.currentView !== 'month') {
83
+ return this.rangeCalendar.prevYear();
84
+ }
85
+ return this.rangeCalendar.prevMonth();
86
+ };
87
+ this.next = () => {
88
+ if (this.calendar.currentView !== 'month') {
89
+ return this.rangeCalendar.nextYear();
90
+ }
91
+ return this.rangeCalendar.nextMonth();
92
+ };
93
+ }
94
+ get canDisplayLeftArrow() {
95
+ return !this.rangeCalendar || this.rangeCalendar.location === 'left' || this.calendar.currentView !== 'month';
96
+ }
97
+ get canDisplayRightArrow() {
98
+ return !this.rangeCalendar || this.rangeCalendar.location === 'right' || this.calendar.currentView !== 'month';
99
+ }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangeCalendarHeaderComponent, deps: [{ token: WlcmDataRangeCalendar, optional: true }, { token: MAT_DATE_FORMATS, optional: true }, { token: forwardRef(() => MatCalendar) }], target: i0.ɵɵFactoryTarget.Component }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDateRangeCalendarHeaderComponent, isStandalone: true, selector: "wlcm-date-range-calendar-header", ngImport: i0, template: "<wlcm-calendar-header\n [next]=\"next\"\n [previous]=\"previous\"\n [displayLeftArrow]=\"canDisplayLeftArrow && !rangeCalendar.disabled()\"\n [displayRightArrow]=\"canDisplayRightArrow && !rangeCalendar.disabled()\"\n></wlcm-calendar-header>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmCalendarModule }, { kind: "component", type: i3.WlcmCalendarHeaderComponent, selector: "wlcm-calendar-header", inputs: ["next", "previous", "displayLeftArrow", "displayRightArrow"] }] }); }
102
+ }
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangeCalendarHeaderComponent, decorators: [{
104
+ type: Component,
105
+ args: [{ selector: 'wlcm-date-range-calendar-header', standalone: true, imports: [CommonModule, WlcmCalendarModule, WlcmIconDirective], template: "<wlcm-calendar-header\n [next]=\"next\"\n [previous]=\"previous\"\n [displayLeftArrow]=\"canDisplayLeftArrow && !rangeCalendar.disabled()\"\n [displayRightArrow]=\"canDisplayRightArrow && !rangeCalendar.disabled()\"\n></wlcm-calendar-header>\n" }]
106
+ }], ctorParameters: () => [{ type: WlcmDataRangeCalendar, decorators: [{
107
+ type: Optional
108
+ }] }, { type: undefined, decorators: [{
109
+ type: Optional
110
+ }, {
111
+ type: Inject,
112
+ args: [MAT_DATE_FORMATS]
113
+ }] }, { type: i2$1.MatCalendar, decorators: [{
114
+ type: Inject,
115
+ args: [forwardRef(() => MatCalendar)]
116
+ }] }] });
117
+
118
+ const WLCM_DATE_RANGE_PICKER_CONFIG = new InjectionToken('WLCM_DATE_RANGE_PICKER_CONFIG', { providedIn: 'root', factory: () => ({}) });
119
+
120
+ const WLCM_DATE_RANGE_SELECTION_MODEL = new InjectionToken('WLCM_DATE_RANGE_SELECTION_MODEL');
121
+ const WLCM_DATE_RANGE_SELECTION_MODEL_PROVIDER = {
122
+ provide: WLCM_DATE_RANGE_SELECTION_MODEL,
123
+ useFactory: (adapter) => new MatRangeDateSelectionModel(adapter),
124
+ deps: [DateAdapter],
125
+ };
126
+
127
+ const WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL = new InjectionToken('WLCM_DATE_RANGE_SELECTION_MODEL');
128
+ const WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL_PROVIDER = {
129
+ provide: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL,
130
+ useFactory: (adapter) => new MatRangeDateSelectionModel(adapter),
131
+ deps: [DateAdapter],
132
+ };
133
+
134
+ let WlcmLeftCalendarDirective = class WlcmLeftCalendarDirective extends WlcmDataRangeCalendar {
135
+ constructor(element, dateAdapter, calendar) {
136
+ super('left', element, calendar, dateAdapter);
137
+ this.element = element;
138
+ this.dateAdapter = dateAdapter;
139
+ this.calendar = calendar;
140
+ this.handleYearChange();
141
+ this.handleMonthChange();
142
+ }
143
+ handleYearChange() {
144
+ this.calendar.yearSelected.pipe(untilDestroyed(this)).subscribe((date) => this.dateChange.emit(date));
145
+ }
146
+ handleMonthChange() {
147
+ this.calendar.monthSelected.pipe(untilDestroyed(this)).subscribe((date) => this.dateChange.emit(date));
148
+ }
149
+ 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) }], target: i0.ɵɵFactoryTarget.Directive }); }
150
+ 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 }); }
151
+ };
152
+ WlcmLeftCalendarDirective = __decorate([
153
+ UntilDestroy(),
154
+ __metadata("design:paramtypes", [ElementRef,
155
+ DateAdapter,
156
+ MatCalendar])
157
+ ], WlcmLeftCalendarDirective);
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmLeftCalendarDirective, decorators: [{
159
+ type: Directive,
160
+ args: [{
161
+ selector: '[wlcmLeftCalendar]',
162
+ standalone: true,
163
+ providers: [{ provide: WlcmDataRangeCalendar, useExisting: forwardRef(() => WlcmLeftCalendarDirective) }],
164
+ }]
165
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: i2$1.MatCalendar, decorators: [{
166
+ type: Inject,
167
+ args: [forwardRef(() => MatCalendar)]
168
+ }] }] });
169
+
170
+ let WlcmRightCalendarDirective = class WlcmRightCalendarDirective extends WlcmDataRangeCalendar {
171
+ constructor(element, dateAdapter, calendar) {
172
+ super('right', element, calendar, dateAdapter);
173
+ this.element = element;
174
+ this.dateAdapter = dateAdapter;
175
+ this.calendar = calendar;
176
+ this.handleYearChange();
177
+ this.handleMonthChange();
178
+ }
179
+ handleYearChange() {
180
+ this.calendar.yearSelected
181
+ .pipe(untilDestroyed(this))
182
+ .subscribe((date) => this.dateChange.emit(this.dateAdapter.addCalendarMonths(date, -1)));
183
+ }
184
+ handleMonthChange() {
185
+ this.calendar.monthSelected
186
+ .pipe(untilDestroyed(this))
187
+ .subscribe((date) => this.dateChange.emit(this.dateAdapter.addCalendarMonths(date, -1)));
188
+ }
189
+ nextMonth() {
190
+ this.dateChange.emit(this.calendar.activeDate);
191
+ }
192
+ prevYear() {
193
+ this.dateChange.emit(this.dateAdapter.addCalendarMonths(this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? -1 : -yearsPerPage), -1));
194
+ }
195
+ nextYear() {
196
+ this.dateChange.emit(this.dateAdapter.addCalendarMonths(this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? 1 : yearsPerPage), -1));
197
+ }
198
+ 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) }], target: i0.ɵɵFactoryTarget.Directive }); }
199
+ 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 }); }
200
+ };
201
+ WlcmRightCalendarDirective = __decorate([
202
+ UntilDestroy(),
203
+ __metadata("design:paramtypes", [ElementRef,
204
+ DateAdapter,
205
+ MatCalendar])
206
+ ], WlcmRightCalendarDirective);
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmRightCalendarDirective, decorators: [{
208
+ type: Directive,
209
+ args: [{
210
+ selector: '[wlcmRightCalendar]',
211
+ standalone: true,
212
+ providers: [{ provide: WlcmDataRangeCalendar, useExisting: forwardRef(() => WlcmRightCalendarDirective) }],
213
+ }]
214
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: i2$1.MatCalendar, decorators: [{
215
+ type: Inject,
216
+ args: [forwardRef(() => MatCalendar)]
217
+ }] }] });
23
218
 
24
- let WlcmDateRangePickerTrigger = class WlcmDateRangePickerTrigger {
219
+ let WlcmDatepickerTrigger = class WlcmDatepickerTrigger {
25
220
  constructor(overlay, viewContainerRef, selectionModel) {
26
221
  this.overlay = overlay;
27
222
  this.viewContainerRef = viewContainerRef;
@@ -77,75 +272,283 @@ let WlcmDateRangePickerTrigger = class WlcmDateRangePickerTrigger {
77
272
  backdropClass: 'transparent',
78
273
  });
79
274
  }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerTrigger, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i2.MatDateSelectionModel }], target: i0.ɵɵFactoryTarget.Directive }); }
81
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDateRangePickerTrigger, ngImport: i0 }); }
275
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerTrigger, deps: [{ token: i1$1.Overlay }, { token: i0.ViewContainerRef }, { token: i2$1.MatDateSelectionModel }], target: i0.ɵɵFactoryTarget.Directive }); }
276
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDatepickerTrigger, ngImport: i0 }); }
82
277
  };
83
- WlcmDateRangePickerTrigger = __decorate([
278
+ WlcmDatepickerTrigger = __decorate([
84
279
  UntilDestroy(),
85
280
  __metadata("design:paramtypes", [Overlay,
86
281
  ViewContainerRef,
87
282
  MatDateSelectionModel])
88
- ], WlcmDateRangePickerTrigger);
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerTrigger, decorators: [{
283
+ ], WlcmDatepickerTrigger);
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerTrigger, decorators: [{
90
285
  type: Directive
91
- }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.MatDateSelectionModel }] });
92
-
93
- var WlcmDateRangeValidation;
94
- (function (WlcmDateRangeValidation) {
95
- WlcmDateRangeValidation["format"] = "wlcmDateRangeFormat";
96
- })(WlcmDateRangeValidation || (WlcmDateRangeValidation = {}));
286
+ }], ctorParameters: () => [{ type: i1$1.Overlay }, { type: i0.ViewContainerRef }, { type: i2$1.MatDateSelectionModel }] });
97
287
 
98
- class DateRangePickerInputBase {
99
- constructor(element, dateAdapter, dateFormats) {
100
- this.element = element;
288
+ let WlcmDateRangePickerComponent = class WlcmDateRangePickerComponent {
289
+ constructor(config, rangeSelectionStrategy, localSelectionModel, triggerSelectionModel, trigger, dateAdapter) {
290
+ this.config = config;
291
+ this.rangeSelectionStrategy = rangeSelectionStrategy;
292
+ this.localSelectionModel = localSelectionModel;
293
+ this.triggerSelectionModel = triggerSelectionModel;
294
+ this.trigger = trigger;
101
295
  this.dateAdapter = dateAdapter;
102
- this.dateFormats = dateFormats;
103
- this.handleBlur = () => { };
104
- this.handleInput = () => {
105
- this.changeInputSize();
106
- this._validatorChanged?.();
107
- };
108
- this._inputMirror = this.createInputMirror();
296
+ this.headerComponent = WlcmDateRangeCalendarHeaderComponent;
297
+ this._isViewInitialized = false;
298
+ this._isComplete = signal(false);
299
+ this.isComplete = computed(() => this._isComplete());
300
+ this.startDate = signal(new Date());
301
+ this.leftCalendarYearViewActivated = signal(false);
302
+ this.rightCalendarYearViewActivated = signal(false);
303
+ this.handleSelectionChanged();
304
+ this.localSelectionModel.updateSelection(this.triggerSelectionModel.selection, this);
305
+ if (this.triggerSelectionModel.selection.start) {
306
+ this.startDate.set(this.triggerSelectionModel.selection.start);
307
+ }
308
+ if (this.config.headerComponent) {
309
+ this.headerComponent = this.config.headerComponent;
310
+ }
311
+ effect(() => {
312
+ if (!this._isViewInitialized)
313
+ return;
314
+ this.leftCalendar.activeDate = this.startDate();
315
+ this.rightCalendar.activeDate = this.dateAdapter.addCalendarMonths(this.startDate(), 1);
316
+ });
109
317
  }
110
318
  ngAfterViewInit() {
111
- this.inputElement.parentElement?.appendChild(this._inputMirror);
112
- this.copyInputElementStyles(this._inputMirror);
113
- document.fonts.ready.then(() => this.changeInputSize());
319
+ this._isViewInitialized = true;
320
+ this.leftCalendar.viewChanged.pipe(untilDestroyed(this)).subscribe((view) => {
321
+ this.leftCalendarYearViewActivated.set(view !== 'month');
322
+ });
323
+ this.rightCalendar.viewChanged.pipe(untilDestroyed(this)).subscribe((view) => {
324
+ this.rightCalendarYearViewActivated.set(view !== 'month');
325
+ });
326
+ this.handleRightCalendarPreviewChange();
114
327
  }
115
- writeValue(value) {
116
- if (!value)
117
- return;
118
- this.updateInputValue(value);
328
+ calendarSelection(event) {
329
+ const newSelection = this.rangeSelectionStrategy.selectionFinished(event.value, this.localSelectionModel.selection, event.event);
330
+ this.localSelectionModel.updateSelection(newSelection, this);
119
331
  }
120
- validate() {
121
- const value = this.currentValue;
122
- if (!value)
123
- return null;
124
- const parsed = this.dateAdapter.parse(value, this.dateFormats.parse.dateInput);
125
- if (!this.dateAdapter.isValid(parsed)) {
126
- return { [WlcmDateRangeValidation.format]: { value, format: this.dateFormats.parse.dateInput }, required: false };
127
- }
128
- return null;
332
+ calendarDragDrop(event) {
333
+ this.localSelectionModel.updateSelection(event.value, this);
129
334
  }
130
- registerOnChange(callback) {
131
- this._changed = callback;
335
+ apply() {
336
+ this.triggerSelectionModel.updateSelection(this.localSelectionModel.selection, this);
337
+ this.trigger.close();
132
338
  }
133
- registerOnTouched(callback) {
134
- this._touched = callback;
339
+ reset() {
340
+ this.trigger.close();
135
341
  }
136
- registerOnValidatorChange(callback) {
137
- this._validatorChanged = callback;
342
+ get selected() {
343
+ return this.localSelectionModel.selection;
138
344
  }
139
- parseCurrentValue() {
140
- const date = this.dateAdapter.parse(this.currentValue, this.dateFormats.parse.dateInput);
345
+ get leftCalendarActiveCell() {
346
+ return this.leftCalendarElement.nativeElement.querySelector('.mat-calendar-body-active');
347
+ }
348
+ handleSelectionChanged() {
349
+ this.localSelectionModel.selectionChanged
350
+ .pipe(untilDestroyed(this))
351
+ .subscribe(() => this._isComplete.set(this.localSelectionModel.isComplete()));
352
+ }
353
+ handleRightCalendarPreviewChange() {
354
+ const viewChanged = new Subject();
355
+ this.rightCalendar.viewChanged
356
+ .pipe(untilDestroyed(this))
357
+ .pipe(tap(() => viewChanged.next()))
358
+ .pipe(startWith(this.rightCalendar.currentView))
359
+ .subscribe((view) => {
360
+ if (view !== 'month')
361
+ return;
362
+ this.rightCalendar.monthView._matCalendarBody.previewChange
363
+ .pipe(takeUntil(viewChanged), untilDestroyed(this))
364
+ .subscribe(() => {
365
+ if (this.leftCalendar.currentView !== 'month' || !this.leftCalendar.monthView._rangeStart)
366
+ return;
367
+ this.leftCalendar.monthView._previewStart = this.rightCalendar.monthView._previewStart;
368
+ this.leftCalendar.monthView._previewEnd = this.rightCalendar.monthView._previewEnd;
369
+ const activeCell = this.leftCalendarActiveCell;
370
+ if (activeCell && activeCell === document.activeElement)
371
+ activeCell.blur();
372
+ this.leftCalendar.monthView._changeDetectorRef.markForCheck();
373
+ });
374
+ });
375
+ }
376
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerComponent, deps: [{ token: WLCM_DATE_RANGE_PICKER_CONFIG, optional: true }, { token: MAT_DATE_RANGE_SELECTION_STRATEGY }, { token: WLCM_DATE_RANGE_SELECTION_MODEL }, { token: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL }, { token: WlcmDatepickerTrigger }, { token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Component }); }
377
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDateRangePickerComponent, isStandalone: true, selector: "wlcm-date-range-picker", providers: [
378
+ {
379
+ provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
380
+ useClass: DefaultMatCalendarRangeStrategy,
381
+ },
382
+ WLCM_DATE_RANGE_SELECTION_MODEL_PROVIDER,
383
+ ], viewQueries: [{ propertyName: "leftCalendar", first: true, predicate: WlcmLeftCalendarDirective, descendants: true, read: MatCalendar }, { propertyName: "rightCalendar", first: true, predicate: WlcmRightCalendarDirective, descendants: true, read: MatCalendar }, { propertyName: "leftCalendarElement", first: true, predicate: WlcmLeftCalendarDirective, descendants: true, read: ElementRef }, { propertyName: "monthView", first: true, predicate: MatMonthView, descendants: true }], ngImport: i0, template: "<div class=\"wlcm-date-range-picker-panel\">\n <div class=\"wlcm-date-range-picker-body\">\n <mat-calendar\n wlcmCalendar\n wlcmLeftCalendar\n [selected]=\"selected\"\n [disabled]=\"rightCalendarYearViewActivated()\"\n [headerComponent]=\"headerComponent\"\n (_userSelection)=\"calendarSelection($event)\"\n (_userDragDrop)=\"calendarDragDrop($event)\"\n (dateChange)=\"startDate.set($event)\"\n ></mat-calendar>\n\n <mat-calendar\n wlcmCalendar\n wlcmRightCalendar\n [selected]=\"selected\"\n [disabled]=\"leftCalendarYearViewActivated()\"\n [headerComponent]=\"headerComponent\"\n (_userSelection)=\"calendarSelection($event)\"\n (_userDragDrop)=\"calendarDragDrop($event)\"\n (dateChange)=\"startDate.set($event)\"\n ></mat-calendar>\n </div>\n\n <wlcm-date-range-picker-bottom-panel></wlcm-date-range-picker-bottom-panel>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmCalendarModule }, { kind: "directive", type: i3.WlcmCalendarDirective, selector: "[wlcmCalendar]" }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$1.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "directive", type: WlcmLeftCalendarDirective, selector: "[wlcmLeftCalendar]" }, { kind: "directive", type: WlcmRightCalendarDirective, selector: "[wlcmRightCalendar]" }, { kind: "component", type: WlcmDateRangePickerBottomPanelComponent, selector: "wlcm-date-range-picker-bottom-panel" }] }); }
384
+ };
385
+ WlcmDateRangePickerComponent = __decorate([
386
+ UntilDestroy(),
387
+ __metadata("design:paramtypes", [Object, Object, MatDateSelectionModel,
388
+ MatDateSelectionModel,
389
+ WlcmDatepickerTrigger,
390
+ DateAdapter])
391
+ ], WlcmDateRangePickerComponent);
392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerComponent, decorators: [{
393
+ type: Component,
394
+ args: [{ selector: 'wlcm-date-range-picker', standalone: true, imports: [
395
+ CommonModule,
396
+ WlcmCalendarModule,
397
+ MatDatepickerModule,
398
+ WlcmLeftCalendarDirective,
399
+ WlcmRightCalendarDirective,
400
+ WlcmDateRangePickerBottomPanelComponent,
401
+ ], providers: [
402
+ {
403
+ provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
404
+ useClass: DefaultMatCalendarRangeStrategy,
405
+ },
406
+ WLCM_DATE_RANGE_SELECTION_MODEL_PROVIDER,
407
+ ], template: "<div class=\"wlcm-date-range-picker-panel\">\n <div class=\"wlcm-date-range-picker-body\">\n <mat-calendar\n wlcmCalendar\n wlcmLeftCalendar\n [selected]=\"selected\"\n [disabled]=\"rightCalendarYearViewActivated()\"\n [headerComponent]=\"headerComponent\"\n (_userSelection)=\"calendarSelection($event)\"\n (_userDragDrop)=\"calendarDragDrop($event)\"\n (dateChange)=\"startDate.set($event)\"\n ></mat-calendar>\n\n <mat-calendar\n wlcmCalendar\n wlcmRightCalendar\n [selected]=\"selected\"\n [disabled]=\"leftCalendarYearViewActivated()\"\n [headerComponent]=\"headerComponent\"\n (_userSelection)=\"calendarSelection($event)\"\n (_userDragDrop)=\"calendarDragDrop($event)\"\n (dateChange)=\"startDate.set($event)\"\n ></mat-calendar>\n </div>\n\n <wlcm-date-range-picker-bottom-panel></wlcm-date-range-picker-bottom-panel>\n</div>\n" }]
408
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
409
+ type: Optional
410
+ }, {
411
+ type: Inject,
412
+ args: [WLCM_DATE_RANGE_PICKER_CONFIG]
413
+ }] }, { type: undefined, decorators: [{
414
+ type: Inject,
415
+ args: [MAT_DATE_RANGE_SELECTION_STRATEGY]
416
+ }] }, { type: i2$1.MatDateSelectionModel, decorators: [{
417
+ type: Inject,
418
+ args: [WLCM_DATE_RANGE_SELECTION_MODEL]
419
+ }] }, { type: i2$1.MatDateSelectionModel, decorators: [{
420
+ type: Inject,
421
+ args: [WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL]
422
+ }] }, { type: WlcmDatepickerTrigger }, { type: i1.DateAdapter }], propDecorators: { leftCalendar: [{
423
+ type: ViewChild,
424
+ args: [WlcmLeftCalendarDirective, { read: MatCalendar }]
425
+ }], rightCalendar: [{
426
+ type: ViewChild,
427
+ args: [WlcmRightCalendarDirective, { read: MatCalendar }]
428
+ }], leftCalendarElement: [{
429
+ type: ViewChild,
430
+ args: [WlcmLeftCalendarDirective, { read: ElementRef }]
431
+ }], monthView: [{
432
+ type: ViewChild,
433
+ args: [MatMonthView]
434
+ }] } });
435
+
436
+ function range(length, valueFunction) {
437
+ const valuesArray = Array(length);
438
+ for (let i = 0; i < length; i++) {
439
+ valuesArray[i] = valueFunction(i);
440
+ }
441
+ return valuesArray;
442
+ }
443
+ class WlcmDateAdapter extends DateFnsAdapter {
444
+ getDayOfWeekNames(style) {
445
+ const formatString = style === 'long' ? 'EEEE' : 'EEEEEE';
446
+ return range(7, (i) => format(new Date(2017, 0, i + 1), formatString));
447
+ }
448
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
449
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateAdapter }); }
450
+ }
451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateAdapter, decorators: [{
452
+ type: Injectable
453
+ }] });
454
+ var WlcmDateValidation;
455
+ (function (WlcmDateValidation) {
456
+ WlcmDateValidation["Format"] = "WlcmInvalidDateFormat";
457
+ })(WlcmDateValidation || (WlcmDateValidation = {}));
458
+
459
+ class WlcmDatepickerInputBase {
460
+ handleBlur() {
461
+ this.updateSelection();
462
+ this._touched?.();
463
+ }
464
+ handleInput() {
465
+ if (this.isValidFormat(this.currentValue, this.dateFormats.parse.dateInput)) {
466
+ this.updateSelection();
467
+ }
468
+ this._validatorChanged?.();
469
+ }
470
+ constructor(element, dateAdapter, dateFormats) {
471
+ this.element = element;
472
+ this.dateAdapter = dateAdapter;
473
+ this.dateFormats = dateFormats;
474
+ }
475
+ writeValue(value) {
476
+ this.updateInputValue(value);
477
+ }
478
+ registerOnChange(callback) {
479
+ this._changed = callback;
480
+ }
481
+ registerOnTouched(callback) {
482
+ this._touched = callback;
483
+ }
484
+ registerOnValidatorChange(callback) {
485
+ this._validatorChanged = callback;
486
+ }
487
+ validate() {
488
+ if (!this.currentValue)
489
+ return null;
490
+ const isValid = this.isValidFormat(this.currentValue, this.dateFormats.parse.dateInput);
491
+ if (!isValid) {
492
+ return {
493
+ [WlcmDateValidation.Format]: { value: this.currentValue, format: this.dateFormats.parse.dateInput },
494
+ required: false,
495
+ };
496
+ }
497
+ return null;
498
+ }
499
+ parseCurrentValue() {
500
+ const date = this.dateAdapter.parse(this.currentValue, this.dateFormats.parse.dateInput);
141
501
  return this.dateAdapter.getValidDateOrNull(date);
142
502
  }
503
+ isValidFormat(value, pattern) {
504
+ const parsedDate = parse(value, pattern, new Date());
505
+ return isValid(parsedDate) && value === format(parsedDate, pattern);
506
+ }
507
+ get inputElement() {
508
+ return this.element.nativeElement;
509
+ }
510
+ get currentValue() {
511
+ return this.inputElement.value;
512
+ }
143
513
  updateInputValue(value) {
144
514
  let newValue = '';
145
515
  if (value) {
146
516
  newValue = this.dateAdapter.format(value, this.dateFormats.display.dateInput);
147
517
  }
148
518
  this.inputElement.value = newValue;
519
+ }
520
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerInputBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
521
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDatepickerInputBase, host: { listeners: { "blur": "handleBlur()", "input": "handleInput()" } }, ngImport: i0 }); }
522
+ }
523
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerInputBase, decorators: [{
524
+ type: Directive
525
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: undefined }], propDecorators: { handleBlur: [{
526
+ type: HostListener,
527
+ args: ['blur']
528
+ }], handleInput: [{
529
+ type: HostListener,
530
+ args: ['input']
531
+ }] } });
532
+
533
+ class WlcmDateRangePickerInputBase extends WlcmDatepickerInputBase {
534
+ constructor(element, dateAdapter, dateFormats) {
535
+ super(element, dateAdapter, dateFormats);
536
+ this.element = element;
537
+ this.dateAdapter = dateAdapter;
538
+ this.dateFormats = dateFormats;
539
+ this._inputMirror = this.createInputMirror();
540
+ }
541
+ ngAfterViewInit() {
542
+ this.inputElement.parentElement?.appendChild(this._inputMirror);
543
+ this.copyInputElementStyles(this._inputMirror);
544
+ document.fonts.ready.then(() => this.changeInputSize());
545
+ }
546
+ handleInput() {
547
+ this.changeInputSize();
548
+ super.handleInput();
549
+ }
550
+ updateInputValue(value) {
551
+ super.updateInputValue(value);
149
552
  this.changeInputSize();
150
553
  }
151
554
  changeInputSize() {
@@ -164,98 +567,41 @@ class DateRangePickerInputBase {
164
567
  target.style.fontFamily = inputElementStyles.fontFamily;
165
568
  target.style.letterSpacing = inputElementStyles.letterSpacing;
166
569
  }
167
- get inputElement() {
168
- return this.element.nativeElement;
169
- }
170
- get currentValue() {
171
- return this.inputElement.value;
172
- }
173
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
174
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: DateRangePickerInputBase, host: { listeners: { "blur": "handleBlur()", "input": "handleInput()" } }, ngImport: i0 }); }
570
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerInputBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
571
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDateRangePickerInputBase, usesInheritance: true, ngImport: i0 }); }
175
572
  }
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputBase, decorators: [{
573
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerInputBase, decorators: [{
177
574
  type: Directive
178
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.DateAdapter }, { type: undefined }], propDecorators: { handleBlur: [{
179
- type: HostListener,
180
- args: ['blur']
181
- }], handleInput: [{
182
- type: HostListener,
183
- args: ['input']
184
- }] } });
185
-
186
- const WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL = new InjectionToken('WLCM_DATE_RANGE_SELECTION_MODEL');
187
- const WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL_PROVIDER = {
188
- provide: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL,
189
- useFactory: (adapter) => new MatRangeDateSelectionModel(adapter),
190
- deps: [DateAdapter],
191
- };
575
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: undefined }] });
192
576
 
193
- let DateRangePickerInputStartDirective = class DateRangePickerInputStartDirective extends DateRangePickerInputBase {
194
- constructor(element, dateAdapter, dateFormats, selectionModel) {
195
- super(element, dateAdapter, dateFormats);
196
- this.element = element;
197
- this.dateAdapter = dateAdapter;
198
- this.dateFormats = dateFormats;
199
- this.selectionModel = selectionModel;
200
- this.handleBlur = () => {
201
- let start = this.parseCurrentValue();
202
- this.selectionModel.updateSelection(new DateRange(start, this.selectionModel.selection.end), this);
203
- };
204
- this.handleSelectionChange();
205
- }
206
- handleSelectionChange() {
207
- this.selectionModel.selectionChanged.pipe(untilDestroyed(this)).subscribe(({ selection }) => {
208
- const validDate = this.dateAdapter.getValidDateOrNull(selection.start);
209
- this._changed?.(validDate);
210
- this.updateInputValue(validDate);
211
- this._validatorChanged?.();
212
- });
213
- }
214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputStartDirective, deps: [{ token: i0.ElementRef }, { token: i1$1.DateAdapter }, { token: MAT_DATE_FORMATS, optional: true }, { token: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL }], target: i0.ɵɵFactoryTarget.Directive }); }
215
- 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: [
216
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRangePickerInputStartDirective), multi: true },
217
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateRangePickerInputStartDirective), multi: true },
218
- ], usesInheritance: true, ngImport: i0 }); }
219
- };
220
- DateRangePickerInputStartDirective = __decorate([
221
- UntilDestroy(),
222
- __metadata("design:paramtypes", [ElementRef,
223
- DateAdapter, Object, MatDateSelectionModel])
224
- ], DateRangePickerInputStartDirective);
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputStartDirective, decorators: [{
226
- type: Directive,
227
- args: [{
228
- selector: '[wlcmDateRangePickerInputStart]',
229
- host: { class: 'wlcm-date-range-picker-input-field' },
230
- standalone: true,
231
- providers: [
232
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRangePickerInputStartDirective), multi: true },
233
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateRangePickerInputStartDirective), multi: true },
234
- ],
235
- }]
236
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.DateAdapter }, { type: undefined, decorators: [{
237
- type: Optional
238
- }, {
239
- type: Inject,
240
- args: [MAT_DATE_FORMATS]
241
- }] }, { type: i2.MatDateSelectionModel, decorators: [{
242
- type: Inject,
243
- args: [WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL]
244
- }] }] });
577
+ var WlcmDateRangeValidation;
578
+ (function (WlcmDateRangeValidation) {
579
+ WlcmDateRangeValidation["StartExceedsEnd"] = "wlcmDateRangeStartExceedsEnd";
580
+ })(WlcmDateRangeValidation || (WlcmDateRangeValidation = {}));
245
581
 
246
- let DateRangePickerInputEndDirective = class DateRangePickerInputEndDirective extends DateRangePickerInputBase {
582
+ let DateRangePickerInputEndDirective = class DateRangePickerInputEndDirective extends WlcmDateRangePickerInputBase {
247
583
  constructor(element, dateAdapter, dateFormats, selectionModel) {
248
584
  super(element, dateAdapter, dateFormats);
249
585
  this.element = element;
250
586
  this.dateAdapter = dateAdapter;
251
587
  this.dateFormats = dateFormats;
252
588
  this.selectionModel = selectionModel;
253
- this.handleBlur = () => {
589
+ this.updateSelection = () => {
254
590
  let end = this.parseCurrentValue();
255
591
  this.selectionModel.updateSelection(new DateRange(this.selectionModel.selection.start, end), this);
256
592
  };
257
593
  this.handleSelectionChange();
258
594
  }
595
+ validate() {
596
+ const defaultErrors = super.validate();
597
+ if (isValid(this.selectionModel.selection.start)) {
598
+ const endDate = this.parseCurrentValue();
599
+ if (endDate && isAfter(this.selectionModel.selection.start, endDate)) {
600
+ return { [WlcmDateRangeValidation.StartExceedsEnd]: true, ...(defaultErrors ?? {}) };
601
+ }
602
+ }
603
+ return defaultErrors;
604
+ }
259
605
  handleSelectionChange() {
260
606
  this.selectionModel.selectionChanged.pipe(untilDestroyed(this)).subscribe(({ selection }) => {
261
607
  const validDate = this.dateAdapter.getValidDateOrNull(selection.end);
@@ -264,379 +610,111 @@ let DateRangePickerInputEndDirective = class DateRangePickerInputEndDirective ex
264
610
  this._validatorChanged?.();
265
611
  });
266
612
  }
267
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputEndDirective, deps: [{ token: i0.ElementRef }, { token: i1$1.DateAdapter }, { token: MAT_DATE_FORMATS, optional: true }, { token: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL }], target: i0.ɵɵFactoryTarget.Directive }); }
613
+ 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 }], target: i0.ɵɵFactoryTarget.Directive }); }
268
614
  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: [
269
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRangePickerInputEndDirective), multi: true },
270
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateRangePickerInputEndDirective), multi: true },
271
- ], usesInheritance: true, ngImport: i0 }); }
272
- };
273
- DateRangePickerInputEndDirective = __decorate([
274
- UntilDestroy(),
275
- __metadata("design:paramtypes", [ElementRef,
276
- DateAdapter, Object, MatDateSelectionModel])
277
- ], DateRangePickerInputEndDirective);
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputEndDirective, decorators: [{
279
- type: Directive,
280
- args: [{
281
- selector: '[wlcmDateRangePickerInputEnd]',
282
- host: { class: 'wlcm-date-range-picker-input-field' },
283
- standalone: true,
284
- providers: [
285
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRangePickerInputEndDirective), multi: true },
286
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateRangePickerInputEndDirective), multi: true },
287
- ],
288
- }]
289
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.DateAdapter }, { type: undefined, decorators: [{
290
- type: Optional
291
- }, {
292
- type: Inject,
293
- args: [MAT_DATE_FORMATS]
294
- }] }, { type: i2.MatDateSelectionModel, decorators: [{
295
- type: Inject,
296
- args: [WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL]
297
- }] }] });
298
-
299
- class DateRangePickerErrors {
300
- static throwNoStartInputError() {
301
- throw new Error('The input element with the wlcmDateRangePickerInputStart directive is missing');
302
- }
303
- static throwNoEndInputError() {
304
- throw new Error('The input element with the wlcmDateRangePickerInputEnd directive is missing');
305
- }
306
- }
307
-
308
- class WlcmDataRangeCalendar {
309
- constructor(location, element, calendar, dateAdapter) {
310
- this.element = element;
311
- this.calendar = calendar;
312
- this.dateAdapter = dateAdapter;
313
- this.dateChange = output();
314
- this.viewChange = output();
315
- this.disabled = input(false);
316
- this.location = location;
317
- effect(() => {
318
- if (this.disabled()) {
319
- this.element.nativeElement.classList.add('wlcm-calendar-disabled');
320
- }
321
- else {
322
- this.element.nativeElement.classList.remove('wlcm-calendar-disabled');
323
- }
324
- });
325
- }
326
- prevMonth() {
327
- this.dateChange.emit(this.dateAdapter.addCalendarMonths(this.calendar.activeDate, -1));
328
- }
329
- nextMonth() {
330
- this.dateChange.emit(this.dateAdapter.addCalendarMonths(this.calendar.activeDate, 1));
331
- }
332
- prevYear() {
333
- this.dateChange.emit(this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? -1 : -yearsPerPage));
334
- }
335
- nextYear() {
336
- this.dateChange.emit(this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? 1 : yearsPerPage));
337
- }
338
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDataRangeCalendar, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
339
- 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 }); }
340
- }
341
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDataRangeCalendar, decorators: [{
342
- type: Directive
343
- }], ctorParameters: () => [{ type: undefined }, { type: i0.ElementRef }, { type: i2.MatCalendar }, { type: i1$1.DateAdapter }] });
344
-
345
- class WlcmCalendarHeaderComponent {
346
- constructor(dateAdapter, rangeCalendar, dateFormats, calendar) {
347
- this.dateAdapter = dateAdapter;
348
- this.rangeCalendar = rangeCalendar;
349
- this.dateFormats = dateFormats;
350
- this.calendar = calendar;
351
- this.WlcmIconName = WlcmIconName;
352
- }
353
- prev() {
354
- if (this.rangeCalendar) {
355
- if (this.calendar.currentView !== 'month') {
356
- return this.rangeCalendar.prevYear();
357
- }
358
- return this.rangeCalendar.prevMonth();
359
- }
360
- }
361
- next() {
362
- if (this.rangeCalendar) {
363
- if (this.calendar.currentView !== 'month') {
364
- return this.rangeCalendar.nextYear();
365
- }
366
- return this.rangeCalendar.nextMonth();
367
- }
368
- }
369
- changeCalendarView() {
370
- if (this.calendar.currentView === 'multi-year') {
371
- this.calendar.currentView = 'month';
372
- return;
373
- }
374
- this.calendar.currentView = 'multi-year';
375
- }
376
- get periodLabel() {
377
- return this.dateAdapter.format(this.calendar.activeDate, this.dateFormats.display.monthYearLabel);
378
- }
379
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmCalendarHeaderComponent, deps: [{ token: i1$1.DateAdapter }, { token: WlcmDataRangeCalendar, optional: true }, { token: MAT_DATE_FORMATS, optional: true }, { token: forwardRef(() => MatCalendar) }], target: i0.ɵɵFactoryTarget.Component }); }
380
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: WlcmCalendarHeaderComponent, isStandalone: true, selector: "wlcm-calendar-header", ngImport: i0, template: "<div class=\"wlcm-calendar-header\">\n <div class=\"wlcm-calendar-header-button-container\">\n @if(((!rangeCalendar || rangeCalendar.location === 'left') ||\n calendar.currentView !== 'month') && !rangeCalendar.disabled()) {\n <button\n class=\"wlcm-calendar-header-button wlcm-calendar-header-button-left\"\n (click)=\"prev()\"\n >\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n }\n </div>\n\n <button\n class=\"wlcm-calendar-header-change-view-button\"\n (click)=\"changeCalendarView()\"\n >\n <div class=\"wlcm-calendar-header-period-label\">\n {{ periodLabel }}\n </div>\n\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n\n <div class=\"wlcm-calendar-header-button-container\">\n @if(((!rangeCalendar || rangeCalendar.location === 'right') ||\n calendar.currentView !== 'month') && !rangeCalendar.disabled()) {\n <button\n class=\"wlcm-calendar-header-button wlcm-calendar-header-button-right\"\n (click)=\"next()\"\n >\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: WlcmIconDirective, selector: "[wlcmIcon]", inputs: ["wlcmIcon"], outputs: ["wlcmIconClicked"] }] }); }
381
- }
382
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmCalendarHeaderComponent, decorators: [{
383
- type: Component,
384
- args: [{ selector: 'wlcm-calendar-header', standalone: true, imports: [CommonModule, WlcmIconDirective], template: "<div class=\"wlcm-calendar-header\">\n <div class=\"wlcm-calendar-header-button-container\">\n @if(((!rangeCalendar || rangeCalendar.location === 'left') ||\n calendar.currentView !== 'month') && !rangeCalendar.disabled()) {\n <button\n class=\"wlcm-calendar-header-button wlcm-calendar-header-button-left\"\n (click)=\"prev()\"\n >\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n }\n </div>\n\n <button\n class=\"wlcm-calendar-header-change-view-button\"\n (click)=\"changeCalendarView()\"\n >\n <div class=\"wlcm-calendar-header-period-label\">\n {{ periodLabel }}\n </div>\n\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n\n <div class=\"wlcm-calendar-header-button-container\">\n @if(((!rangeCalendar || rangeCalendar.location === 'right') ||\n calendar.currentView !== 'month') && !rangeCalendar.disabled()) {\n <button\n class=\"wlcm-calendar-header-button wlcm-calendar-header-button-right\"\n (click)=\"next()\"\n >\n <ng-container [wlcmIcon]=\"WlcmIconName.CHEVRON_DOWN\"></ng-container>\n </button>\n }\n </div>\n</div>\n" }]
385
- }], ctorParameters: () => [{ type: i1$1.DateAdapter }, { type: WlcmDataRangeCalendar, decorators: [{
386
- type: Optional
387
- }] }, { type: undefined, decorators: [{
388
- type: Optional
389
- }, {
390
- type: Inject,
391
- args: [MAT_DATE_FORMATS]
392
- }] }, { type: i2.MatCalendar, decorators: [{
393
- type: Inject,
394
- args: [forwardRef(() => MatCalendar)]
395
- }] }] });
396
-
397
- let WlcmLeftCalendarDirective = class WlcmLeftCalendarDirective extends WlcmDataRangeCalendar {
398
- constructor(element, dateAdapter, calendar) {
399
- super('left', element, calendar, dateAdapter);
400
- this.element = element;
401
- this.dateAdapter = dateAdapter;
402
- this.calendar = calendar;
403
- this.handleYearChange();
404
- this.handleMonthChange();
405
- }
406
- handleYearChange() {
407
- this.calendar.yearSelected.pipe(untilDestroyed(this)).subscribe((date) => this.dateChange.emit(date));
408
- }
409
- handleMonthChange() {
410
- this.calendar.monthSelected.pipe(untilDestroyed(this)).subscribe((date) => this.dateChange.emit(date));
411
- }
412
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmLeftCalendarDirective, deps: [{ token: i0.ElementRef }, { token: i1$1.DateAdapter }, { token: forwardRef(() => MatCalendar) }], target: i0.ɵɵFactoryTarget.Directive }); }
413
- 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 }); }
414
- };
415
- WlcmLeftCalendarDirective = __decorate([
416
- UntilDestroy(),
417
- __metadata("design:paramtypes", [ElementRef,
418
- DateAdapter,
419
- MatCalendar])
420
- ], WlcmLeftCalendarDirective);
421
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmLeftCalendarDirective, decorators: [{
422
- type: Directive,
423
- args: [{
424
- selector: '[wlcmLeftCalendar]',
425
- standalone: true,
426
- providers: [{ provide: WlcmDataRangeCalendar, useExisting: forwardRef(() => WlcmLeftCalendarDirective) }],
427
- }]
428
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.DateAdapter }, { type: i2.MatCalendar, decorators: [{
429
- type: Inject,
430
- args: [forwardRef(() => MatCalendar)]
431
- }] }] });
432
-
433
- const WLCM_DATE_RANGE_SELECTION_MODEL = new InjectionToken('WLCM_DATE_RANGE_SELECTION_MODEL');
434
- const WLCM_DATE_RANGE_SELECTION_MODEL_PROVIDER = {
435
- provide: WLCM_DATE_RANGE_SELECTION_MODEL,
436
- useFactory: (adapter) => new MatRangeDateSelectionModel(adapter),
437
- deps: [DateAdapter],
438
- };
439
-
440
- let WlcmRightCalendarDirective = class WlcmRightCalendarDirective extends WlcmDataRangeCalendar {
441
- constructor(element, dateAdapter, calendar) {
442
- super('right', element, calendar, dateAdapter);
443
- this.element = element;
444
- this.dateAdapter = dateAdapter;
445
- this.calendar = calendar;
446
- this.handleYearChange();
447
- this.handleMonthChange();
448
- }
449
- handleYearChange() {
450
- this.calendar.yearSelected
451
- .pipe(untilDestroyed(this))
452
- .subscribe((date) => this.dateChange.emit(this.dateAdapter.addCalendarMonths(date, -1)));
453
- }
454
- handleMonthChange() {
455
- this.calendar.monthSelected
456
- .pipe(untilDestroyed(this))
457
- .subscribe((date) => this.dateChange.emit(this.dateAdapter.addCalendarMonths(date, -1)));
458
- }
459
- nextMonth() {
460
- this.dateChange.emit(this.calendar.activeDate);
461
- }
462
- prevYear() {
463
- this.dateChange.emit(this.dateAdapter.addCalendarMonths(this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? -1 : -yearsPerPage), -1));
464
- }
465
- nextYear() {
466
- this.dateChange.emit(this.dateAdapter.addCalendarMonths(this.dateAdapter.addCalendarYears(this.calendar.activeDate, this.calendar.currentView == 'year' ? 1 : yearsPerPage), -1));
467
- }
468
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmRightCalendarDirective, deps: [{ token: i0.ElementRef }, { token: i1$1.DateAdapter }, { token: forwardRef(() => MatCalendar) }], target: i0.ɵɵFactoryTarget.Directive }); }
469
- 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 }); }
470
- };
471
- WlcmRightCalendarDirective = __decorate([
472
- UntilDestroy(),
473
- __metadata("design:paramtypes", [ElementRef,
474
- DateAdapter,
475
- MatCalendar])
476
- ], WlcmRightCalendarDirective);
477
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmRightCalendarDirective, decorators: [{
478
- type: Directive,
479
- args: [{
480
- selector: '[wlcmRightCalendar]',
481
- standalone: true,
482
- providers: [{ provide: WlcmDataRangeCalendar, useExisting: forwardRef(() => WlcmRightCalendarDirective) }],
483
- }]
484
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.DateAdapter }, { type: i2.MatCalendar, decorators: [{
485
- type: Inject,
486
- args: [forwardRef(() => MatCalendar)]
487
- }] }] });
488
-
489
- class WlcmDateRangePickerBottomPanelComponent {
490
- constructor(picker) {
491
- this.picker = picker;
492
- }
493
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerBottomPanelComponent, deps: [{ token: WlcmDateRangePickerComponent }], target: i0.ɵɵFactoryTarget.Component }); }
494
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDateRangePickerBottomPanelComponent, isStandalone: true, selector: "wlcm-date-range-picker-bottom-panel", ngImport: i0, template: "<div class=\"wlcm-date-range-picker-bottom-panel\">\n <wlcm-button type=\"paddingless\" (clicked)=\"picker.reset()\">Reset</wlcm-button>\n\n <wlcm-button (clicked)=\"picker.apply()\" [isDisabled]=\"!picker.isComplete()\">\n Apply\n </wlcm-button>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmButtonModule }, { kind: "component", type: i2$1.WlcmButtonComponent, selector: "wlcm-button", inputs: ["type", "size", "isDisabled", "isLoading"], outputs: ["clicked"] }] }); }
495
- }
496
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerBottomPanelComponent, decorators: [{
497
- type: Component,
498
- args: [{ selector: 'wlcm-date-range-picker-bottom-panel', standalone: true, imports: [CommonModule, WlcmButtonModule], template: "<div class=\"wlcm-date-range-picker-bottom-panel\">\n <wlcm-button type=\"paddingless\" (clicked)=\"picker.reset()\">Reset</wlcm-button>\n\n <wlcm-button (clicked)=\"picker.apply()\" [isDisabled]=\"!picker.isComplete()\">\n Apply\n </wlcm-button>\n</div>\n" }]
499
- }], ctorParameters: () => [{ type: WlcmDateRangePickerComponent }] });
500
-
501
- let WlcmDateRangePickerComponent = class WlcmDateRangePickerComponent {
502
- constructor(rangeSelectionStrategy, localSelectionModel, triggerSelectionModel, dateAdapter, trigger) {
503
- this.rangeSelectionStrategy = rangeSelectionStrategy;
504
- this.localSelectionModel = localSelectionModel;
505
- this.triggerSelectionModel = triggerSelectionModel;
506
- this.dateAdapter = dateAdapter;
507
- this.trigger = trigger;
508
- this.WlcmCalendarHeaderComponent = WlcmCalendarHeaderComponent;
509
- this._isViewInitialized = false;
510
- this._isComplete = signal(false);
511
- this.isComplete = computed(() => this._isComplete());
512
- this.startDate = signal(new Date());
513
- this.leftCalendarYearViewActivated = signal(false);
514
- this.rightCalendarYearViewActivated = signal(false);
515
- this.handleSelectionChanged();
516
- this.localSelectionModel.updateSelection(this.triggerSelectionModel.selection, this);
517
- if (this.triggerSelectionModel.selection.start) {
518
- this.startDate.set(this.triggerSelectionModel.selection.start);
519
- }
520
- effect(() => {
521
- if (!this._isViewInitialized)
522
- return;
523
- this.leftCalendar.activeDate = this.startDate();
524
- this.rightCalendar.activeDate = this.dateAdapter.addCalendarMonths(this.startDate(), 1);
525
- });
526
- }
527
- ngAfterViewInit() {
528
- this._isViewInitialized = true;
529
- this.leftCalendar.viewChanged.pipe(untilDestroyed(this)).subscribe((view) => {
530
- this.leftCalendarYearViewActivated.set(view !== 'month');
531
- });
532
- this.rightCalendar.viewChanged.pipe(untilDestroyed(this)).subscribe((view) => {
533
- this.rightCalendarYearViewActivated.set(view !== 'month');
534
- });
535
- this.handleRightCalendarPreviewChange();
536
- }
537
- calendarSelection(event) {
538
- const newSelection = this.rangeSelectionStrategy.selectionFinished(event.value, this.localSelectionModel.selection, event.event);
539
- this.localSelectionModel.updateSelection(newSelection, this);
540
- }
541
- calendarDragDrop(event) {
542
- this.localSelectionModel.updateSelection(event.value, this);
543
- }
544
- apply() {
545
- this.triggerSelectionModel.updateSelection(this.localSelectionModel.selection, this);
546
- this.trigger.close();
547
- }
548
- reset() {
549
- this.trigger.close();
550
- }
551
- get selected() {
552
- return this.localSelectionModel.selection;
553
- }
554
- get leftCalendarActiveCell() {
555
- return this.leftCalendarElement.nativeElement.querySelector('.mat-calendar-body-active');
615
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRangePickerInputEndDirective), multi: true },
616
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateRangePickerInputEndDirective), multi: true },
617
+ ], usesInheritance: true, ngImport: i0 }); }
618
+ };
619
+ DateRangePickerInputEndDirective = __decorate([
620
+ UntilDestroy(),
621
+ __metadata("design:paramtypes", [ElementRef,
622
+ DateAdapter, Object, MatDateSelectionModel])
623
+ ], DateRangePickerInputEndDirective);
624
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputEndDirective, decorators: [{
625
+ type: Directive,
626
+ args: [{
627
+ selector: '[wlcmDateRangePickerInputEnd]',
628
+ host: { class: 'wlcm-date-range-picker-input-field' },
629
+ standalone: true,
630
+ providers: [
631
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRangePickerInputEndDirective), multi: true },
632
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateRangePickerInputEndDirective), multi: true },
633
+ ],
634
+ }]
635
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: undefined, decorators: [{
636
+ type: Optional
637
+ }, {
638
+ type: Inject,
639
+ args: [MAT_DATE_FORMATS]
640
+ }] }, { type: i2$1.MatDateSelectionModel, decorators: [{
641
+ type: Inject,
642
+ args: [WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL]
643
+ }] }] });
644
+
645
+ let DateRangePickerInputStartDirective = class DateRangePickerInputStartDirective extends WlcmDateRangePickerInputBase {
646
+ constructor(element, dateAdapter, dateFormats, selectionModel) {
647
+ super(element, dateAdapter, dateFormats);
648
+ this.element = element;
649
+ this.dateAdapter = dateAdapter;
650
+ this.dateFormats = dateFormats;
651
+ this.selectionModel = selectionModel;
652
+ this.updateSelection = () => {
653
+ let start = this.parseCurrentValue();
654
+ this.selectionModel.updateSelection(new DateRange(start, this.selectionModel.selection.end), this);
655
+ };
656
+ this.handleSelectionChange();
556
657
  }
557
- handleSelectionChanged() {
558
- this.localSelectionModel.selectionChanged
559
- .pipe(untilDestroyed(this))
560
- .subscribe(() => this._isComplete.set(this.localSelectionModel.isComplete()));
658
+ validate() {
659
+ const defaultErrors = super.validate();
660
+ if (this.selectionModel.isComplete() && isValid(this.selectionModel.selection.end)) {
661
+ const startDate = this.parseCurrentValue();
662
+ if (startDate && isAfter(startDate, this.selectionModel.selection.end)) {
663
+ return { [WlcmDateRangeValidation.StartExceedsEnd]: true, ...(defaultErrors ?? {}) };
664
+ }
665
+ }
666
+ return defaultErrors;
561
667
  }
562
- handleRightCalendarPreviewChange() {
563
- const viewChanged = new Subject();
564
- this.rightCalendar.viewChanged
565
- .pipe(untilDestroyed(this))
566
- .pipe(tap(() => viewChanged.next()))
567
- .pipe(startWith(this.rightCalendar.currentView))
568
- .subscribe((view) => {
569
- if (view !== 'month')
570
- return;
571
- this.rightCalendar.monthView._matCalendarBody.previewChange
572
- .pipe(takeUntil(viewChanged), untilDestroyed(this))
573
- .subscribe(() => {
574
- if (this.leftCalendar.currentView !== 'month' || !this.leftCalendar.monthView._rangeStart)
575
- return;
576
- this.leftCalendar.monthView._previewStart = this.rightCalendar.monthView._previewStart;
577
- this.leftCalendar.monthView._previewEnd = this.rightCalendar.monthView._previewEnd;
578
- const activeCell = this.leftCalendarActiveCell;
579
- if (activeCell && activeCell === document.activeElement)
580
- activeCell.blur();
581
- this.leftCalendar.monthView._changeDetectorRef.markForCheck();
582
- });
668
+ handleSelectionChange() {
669
+ this.selectionModel.selectionChanged.pipe(untilDestroyed(this)).subscribe(({ selection }) => {
670
+ const validDate = this.dateAdapter.getValidDateOrNull(selection.start);
671
+ this._changed?.(validDate);
672
+ this.updateInputValue(validDate);
673
+ this._validatorChanged?.();
583
674
  });
584
675
  }
585
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerComponent, deps: [{ token: MAT_DATE_RANGE_SELECTION_STRATEGY }, { token: WLCM_DATE_RANGE_SELECTION_MODEL }, { token: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL }, { token: i1$1.DateAdapter }, { token: WlcmDateRangePickerTrigger }], target: i0.ɵɵFactoryTarget.Component }); }
586
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDateRangePickerComponent, isStandalone: true, selector: "wlcm-date-range-picker", providers: [
587
- {
588
- provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
589
- useClass: DefaultMatCalendarRangeStrategy,
590
- },
591
- WLCM_DATE_RANGE_SELECTION_MODEL_PROVIDER,
592
- ], viewQueries: [{ propertyName: "leftCalendar", first: true, predicate: WlcmLeftCalendarDirective, descendants: true, read: MatCalendar }, { propertyName: "rightCalendar", first: true, predicate: WlcmRightCalendarDirective, descendants: true, read: MatCalendar }, { propertyName: "leftCalendarElement", first: true, predicate: WlcmLeftCalendarDirective, descendants: true, read: ElementRef }, { propertyName: "monthView", first: true, predicate: MatMonthView, descendants: true }], ngImport: i0, template: "<div class=\"wlcm-date-range-picker-panel\">\n <div class=\"wlcm-date-range-picker-body\">\n <mat-calendar\n wlcmLeftCalendar\n [selected]=\"selected\"\n [disabled]=\"rightCalendarYearViewActivated()\"\n [headerComponent]=\"WlcmCalendarHeaderComponent\"\n (_userSelection)=\"calendarSelection($event)\"\n (_userDragDrop)=\"calendarDragDrop($event)\"\n (dateChange)=\"startDate.set($event)\"\n ></mat-calendar>\n\n <mat-calendar\n wlcmRightCalendar\n [selected]=\"selected\"\n [disabled]=\"leftCalendarYearViewActivated()\"\n [headerComponent]=\"WlcmCalendarHeaderComponent\"\n (_userSelection)=\"calendarSelection($event)\"\n (_userDragDrop)=\"calendarDragDrop($event)\"\n (dateChange)=\"startDate.set($event)\"\n ></mat-calendar>\n </div>\n\n <wlcm-date-range-picker-bottom-panel></wlcm-date-range-picker-bottom-panel>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "directive", type: WlcmLeftCalendarDirective, selector: "[wlcmLeftCalendar]" }, { kind: "directive", type: WlcmRightCalendarDirective, selector: "[wlcmRightCalendar]" }, { kind: "component", type: WlcmDateRangePickerBottomPanelComponent, selector: "wlcm-date-range-picker-bottom-panel" }] }); }
676
+ 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 }], target: i0.ɵɵFactoryTarget.Directive }); }
677
+ 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: [
678
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRangePickerInputStartDirective), multi: true },
679
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateRangePickerInputStartDirective), multi: true },
680
+ ], usesInheritance: true, ngImport: i0 }); }
593
681
  };
594
- WlcmDateRangePickerComponent = __decorate([
682
+ DateRangePickerInputStartDirective = __decorate([
595
683
  UntilDestroy(),
596
- __metadata("design:paramtypes", [Object, MatDateSelectionModel,
597
- MatDateSelectionModel,
598
- DateAdapter,
599
- WlcmDateRangePickerTrigger])
600
- ], WlcmDateRangePickerComponent);
601
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerComponent, decorators: [{
602
- type: Component,
603
- args: [{ selector: 'wlcm-date-range-picker', standalone: true, imports: [
604
- CommonModule,
605
- MatDatepickerModule,
606
- WlcmLeftCalendarDirective,
607
- WlcmRightCalendarDirective,
608
- WlcmDateRangePickerBottomPanelComponent,
609
- ], providers: [
610
- {
611
- provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
612
- useClass: DefaultMatCalendarRangeStrategy,
613
- },
614
- WLCM_DATE_RANGE_SELECTION_MODEL_PROVIDER,
615
- ], template: "<div class=\"wlcm-date-range-picker-panel\">\n <div class=\"wlcm-date-range-picker-body\">\n <mat-calendar\n wlcmLeftCalendar\n [selected]=\"selected\"\n [disabled]=\"rightCalendarYearViewActivated()\"\n [headerComponent]=\"WlcmCalendarHeaderComponent\"\n (_userSelection)=\"calendarSelection($event)\"\n (_userDragDrop)=\"calendarDragDrop($event)\"\n (dateChange)=\"startDate.set($event)\"\n ></mat-calendar>\n\n <mat-calendar\n wlcmRightCalendar\n [selected]=\"selected\"\n [disabled]=\"leftCalendarYearViewActivated()\"\n [headerComponent]=\"WlcmCalendarHeaderComponent\"\n (_userSelection)=\"calendarSelection($event)\"\n (_userDragDrop)=\"calendarDragDrop($event)\"\n (dateChange)=\"startDate.set($event)\"\n ></mat-calendar>\n </div>\n\n <wlcm-date-range-picker-bottom-panel></wlcm-date-range-picker-bottom-panel>\n</div>\n" }]
616
- }], ctorParameters: () => [{ type: undefined, decorators: [{
617
- type: Inject,
618
- args: [MAT_DATE_RANGE_SELECTION_STRATEGY]
619
- }] }, { type: i2.MatDateSelectionModel, decorators: [{
684
+ __metadata("design:paramtypes", [ElementRef,
685
+ DateAdapter, Object, MatDateSelectionModel])
686
+ ], DateRangePickerInputStartDirective);
687
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DateRangePickerInputStartDirective, decorators: [{
688
+ type: Directive,
689
+ args: [{
690
+ selector: '[wlcmDateRangePickerInputStart]',
691
+ host: { class: 'wlcm-date-range-picker-input-field' },
692
+ standalone: true,
693
+ providers: [
694
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRangePickerInputStartDirective), multi: true },
695
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateRangePickerInputStartDirective), multi: true },
696
+ ],
697
+ }]
698
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: undefined, decorators: [{
699
+ type: Optional
700
+ }, {
620
701
  type: Inject,
621
- args: [WLCM_DATE_RANGE_SELECTION_MODEL]
622
- }] }, { type: i2.MatDateSelectionModel, decorators: [{
702
+ args: [MAT_DATE_FORMATS]
703
+ }] }, { type: i2$1.MatDateSelectionModel, decorators: [{
623
704
  type: Inject,
624
705
  args: [WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL]
625
- }] }, { type: i1$1.DateAdapter }, { type: WlcmDateRangePickerTrigger }], propDecorators: { leftCalendar: [{
626
- type: ViewChild,
627
- args: [WlcmLeftCalendarDirective, { read: MatCalendar }]
628
- }], rightCalendar: [{
629
- type: ViewChild,
630
- args: [WlcmRightCalendarDirective, { read: MatCalendar }]
631
- }], leftCalendarElement: [{
632
- type: ViewChild,
633
- args: [WlcmLeftCalendarDirective, { read: ElementRef }]
634
- }], monthView: [{
635
- type: ViewChild,
636
- args: [MatMonthView]
637
- }] } });
706
+ }] }] });
707
+
708
+ class DateRangePickerErrors {
709
+ static throwNoStartInputError() {
710
+ throw new Error('The input element with the wlcmDateRangePickerInputStart directive is missing');
711
+ }
712
+ static throwNoEndInputError() {
713
+ throw new Error('The input element with the wlcmDateRangePickerInputEnd directive is missing');
714
+ }
715
+ }
638
716
 
639
- class WlcmDateRangePickerInputComponent extends WlcmDateRangePickerTrigger {
717
+ class WlcmDateRangePickerInputComponent extends WlcmDatepickerTrigger {
640
718
  constructor(overlay, viewContainerRef, selectionModel, formField, controlContainer) {
641
719
  super(overlay, viewContainerRef, selectionModel);
642
720
  this.overlay = overlay;
@@ -692,7 +770,7 @@ class WlcmDateRangePickerInputComponent extends WlcmDateRangePickerTrigger {
692
770
  this._focusStream$.next(merge(...focusObservables).pipe(map(voidFn)));
693
771
  this._blurStream$.next(merge(...blurObservables).pipe(map(() => this.control?.markAsTouched())));
694
772
  }
695
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerInputComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL }, { token: WLCM_FORM_FIELD, host: true }, { token: ControlContainer, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
773
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerInputComponent, deps: [{ token: i1$1.Overlay }, { token: i0.ViewContainerRef }, { token: WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL }, { token: WLCM_FORM_FIELD, host: true }, { token: ControlContainer, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
696
774
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDateRangePickerInputComponent, isStandalone: true, selector: "wlcm-date-range-picker-input", host: { classAttribute: "wlcm-date-range-picker-input" }, providers: [
697
775
  WLCM_FORM_CONTROL_PROVIDER,
698
776
  WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL_PROVIDER,
@@ -703,7 +781,7 @@ class WlcmDateRangePickerInputComponent extends WlcmDateRangePickerTrigger {
703
781
  return { bind: () => input };
704
782
  },
705
783
  },
706
- { provide: WlcmDateRangePickerTrigger, useExisting: forwardRef(() => WlcmDateRangePickerInputComponent) },
784
+ { provide: WlcmDatepickerTrigger, useExisting: forwardRef(() => WlcmDateRangePickerInputComponent) },
707
785
  ], queries: [{ propertyName: "startInput", first: true, predicate: DateRangePickerInputStartDirective, descendants: true }, { propertyName: "endInput", first: true, predicate: DateRangePickerInputEndDirective, descendants: true }], exportAs: ["wlcmDateRangePickerInput"], usesInheritance: true, ngImport: i0, template: "<div class=\"wlcm-date-range-picker-inputs-container\">\n <div class=\"wlcm-date-range-picker-input-field-wrapper\">\n <ng-content select=\"[wlcmDateRangePickerInputStart]\"></ng-content>\n </div>\n\n <div class=\"wlcm-date-range-picker-input-dash\"></div>\n\n <div class=\"wlcm-date-range-picker-input-field-wrapper\">\n <ng-content select=\"[wlcmDateRangePickerInputEnd]\"></ng-content>\n </div>\n</div>\n", styles: [".wlcm-date-range-picker-inputs-container{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }] }); }
708
786
  }
709
787
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerInputComponent, decorators: [{
@@ -718,9 +796,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
718
796
  return { bind: () => input };
719
797
  },
720
798
  },
721
- { provide: WlcmDateRangePickerTrigger, useExisting: forwardRef(() => WlcmDateRangePickerInputComponent) },
799
+ { provide: WlcmDatepickerTrigger, useExisting: forwardRef(() => WlcmDateRangePickerInputComponent) },
722
800
  ], template: "<div class=\"wlcm-date-range-picker-inputs-container\">\n <div class=\"wlcm-date-range-picker-input-field-wrapper\">\n <ng-content select=\"[wlcmDateRangePickerInputStart]\"></ng-content>\n </div>\n\n <div class=\"wlcm-date-range-picker-input-dash\"></div>\n\n <div class=\"wlcm-date-range-picker-input-field-wrapper\">\n <ng-content select=\"[wlcmDateRangePickerInputEnd]\"></ng-content>\n </div>\n</div>\n", styles: [".wlcm-date-range-picker-inputs-container{display:flex;align-items:center}\n"] }]
723
- }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.MatDateSelectionModel, decorators: [{
801
+ }], ctorParameters: () => [{ type: i1$1.Overlay }, { type: i0.ViewContainerRef }, { type: i2$1.MatDateSelectionModel, decorators: [{
724
802
  type: Inject,
725
803
  args: [WLCM_DATE_RANGE_TRIGGER_SELECTION_MODEL]
726
804
  }] }, { type: undefined, decorators: [{
@@ -728,7 +806,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
728
806
  }, {
729
807
  type: Inject,
730
808
  args: [WLCM_FORM_FIELD]
731
- }] }, { type: i3.ControlContainer, decorators: [{
809
+ }] }, { type: i3$1.ControlContainer, decorators: [{
732
810
  type: Host
733
811
  }, {
734
812
  type: Inject,
@@ -741,82 +819,152 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
741
819
  args: [DateRangePickerInputEndDirective]
742
820
  }] } });
743
821
 
744
- function range(length, valueFunction) {
745
- const valuesArray = Array(length);
746
- for (let i = 0; i < length; i++) {
747
- valuesArray[i] = valueFunction(i);
822
+ let WlcmDatepickerInputDirective = class WlcmDatepickerInputDirective extends WlcmDatepickerInputBase {
823
+ constructor(element, dateAdapter, dateFormats, selectionModel, trigger) {
824
+ super(element, dateAdapter, dateFormats);
825
+ this.element = element;
826
+ this.dateAdapter = dateAdapter;
827
+ this.dateFormats = dateFormats;
828
+ this.selectionModel = selectionModel;
829
+ this.trigger = trigger;
830
+ this.handleSelectionChange();
831
+ this.handleClosePanel();
748
832
  }
749
- return valuesArray;
750
- }
751
- class WlcmDateRangeAdapter extends DateFnsAdapter {
752
- getDayOfWeekNames(style) {
753
- const formatString = style === 'long' ? 'EEEE' : 'EEEEEE';
754
- return range(7, (i) => format(new Date(2017, 0, i + 1), formatString));
833
+ updateSelection() {
834
+ let date = this.parseCurrentValue();
835
+ this.selectionModel.updateSelection(date, this);
755
836
  }
756
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangeAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
757
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangeAdapter }); }
837
+ handleClosePanel() {
838
+ this.trigger.closed.pipe(untilDestroyed(this)).subscribe(() => this._touched?.());
839
+ }
840
+ handleSelectionChange() {
841
+ this.selectionModel.selectionChanged.pipe(untilDestroyed(this)).subscribe(({ selection }) => {
842
+ this.updateInputValue(selection);
843
+ this._changed?.(selection);
844
+ this._touched?.();
845
+ });
846
+ }
847
+ 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$1.MatDateSelectionModel }, { token: WlcmDatepickerTrigger }], target: i0.ɵɵFactoryTarget.Directive }); }
848
+ 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: [
849
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmDatepickerInputDirective), multi: true },
850
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmDatepickerInputDirective), multi: true },
851
+ ], exportAs: ["wlcmDatepickerInput"], usesInheritance: true, ngImport: i0 }); }
852
+ };
853
+ WlcmDatepickerInputDirective = __decorate([
854
+ UntilDestroy(),
855
+ __metadata("design:paramtypes", [ElementRef,
856
+ DateAdapter, Object, MatDateSelectionModel,
857
+ WlcmDatepickerTrigger])
858
+ ], WlcmDatepickerInputDirective);
859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerInputDirective, decorators: [{
860
+ type: Directive,
861
+ args: [{
862
+ selector: '[wlcmDatepickerInput]',
863
+ exportAs: 'wlcmDatepickerInput',
864
+ host: { class: 'wlcm-form-field-input' },
865
+ standalone: true,
866
+ providers: [
867
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmDatepickerInputDirective), multi: true },
868
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmDatepickerInputDirective), multi: true },
869
+ ],
870
+ }]
871
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateAdapter }, { type: undefined, decorators: [{
872
+ type: Inject,
873
+ args: [MAT_DATE_FORMATS]
874
+ }] }, { type: i2$1.MatDateSelectionModel }, { type: WlcmDatepickerTrigger }] });
875
+
876
+ class WlcmDatepickerPanelComponent {
877
+ constructor(selectionModel, trigger) {
878
+ this.selectionModel = selectionModel;
879
+ this.trigger = trigger;
880
+ this.headerComponent = WlcmCalendarHeaderComponent;
881
+ }
882
+ select(date) {
883
+ this.selectionModel.updateSelection(date, this);
884
+ this.trigger.close();
885
+ }
886
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerPanelComponent, deps: [{ token: i2$1.MatDateSelectionModel }, { token: WlcmDatepickerTrigger }], target: i0.ɵɵFactoryTarget.Component }); }
887
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmDatepickerPanelComponent, isStandalone: true, selector: "wlcm-datepicker-panel", host: { classAttribute: "wlcm-datepicker-panel" }, ngImport: i0, template: "<mat-calendar\n wlcmCalendar\n [startAt]=\"selectionModel.selection\"\n [selected]=\"selectionModel.selection\"\n [headerComponent]=\"headerComponent\"\n (selectedChange)=\"select($event)\"\n></mat-calendar>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2$1.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "ngmodule", type: WlcmCalendarModule }, { kind: "directive", type: i3.WlcmCalendarDirective, selector: "[wlcmCalendar]" }] }); }
758
888
  }
759
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangeAdapter, decorators: [{
760
- type: Injectable
761
- }] });
889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerPanelComponent, decorators: [{
890
+ type: Component,
891
+ args: [{ selector: 'wlcm-datepicker-panel', host: { class: 'wlcm-datepicker-panel' }, standalone: true, imports: [CommonModule, MatDatepickerModule, WlcmCalendarModule], template: "<mat-calendar\n wlcmCalendar\n [startAt]=\"selectionModel.selection\"\n [selected]=\"selectionModel.selection\"\n [headerComponent]=\"headerComponent\"\n (selectedChange)=\"select($event)\"\n></mat-calendar>\n" }]
892
+ }], ctorParameters: () => [{ type: i2$1.MatDateSelectionModel }, { type: WlcmDatepickerTrigger }] });
762
893
 
763
- const DEFAULT_DATE_FORMATS = {
764
- parse: {
765
- dateInput: 'MMM/dd/yyyy',
766
- },
767
- display: {
768
- dateInput: 'MMM/dd/yyyy',
769
- monthYearLabel: 'MMMM yyyy',
770
- dateA11yLabel: 'MMM/dd/yyyy',
771
- monthYearA11yLabel: 'MMM yyyy',
772
- },
773
- };
774
- const directives = [DateRangePickerInputStartDirective, DateRangePickerInputEndDirective];
775
- class WlcmDateRangePickerModule {
776
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
777
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerModule, imports: [CommonModule, WlcmDateRangePickerInputComponent, DateRangePickerInputStartDirective, DateRangePickerInputEndDirective], exports: [WlcmDateRangePickerInputComponent, DateRangePickerInputStartDirective, DateRangePickerInputEndDirective] }); }
778
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerModule, providers: [
779
- { provide: MAT_DATE_LOCALE, useValue: enUS },
780
- {
781
- provide: DateAdapter,
782
- useClass: WlcmDateRangeAdapter,
783
- deps: [MAT_DATE_LOCALE],
784
- },
894
+ class WlcmDatepickerInputContainerComponent extends WlcmDatepickerTrigger {
895
+ constructor(overlay, viewContainerRef, selectionModel, formField) {
896
+ super(overlay, viewContainerRef, selectionModel);
897
+ this.overlay = overlay;
898
+ this.viewContainerRef = viewContainerRef;
899
+ this.selectionModel = selectionModel;
900
+ this.formField = formField;
901
+ this._focusStream$ = new BehaviorSubject(EMPTY);
902
+ this._blurStream$ = new BehaviorSubject(EMPTY);
903
+ this.focus$ = this._focusStream$.pipe(switchMap((stream) => stream));
904
+ this.blur$ = this._blurStream$.pipe(switchMap((stream) => stream));
905
+ this.inputRef = contentChild(WlcmDatepickerInputDirective, {
906
+ read: ElementRef,
907
+ });
908
+ this.componentType = WlcmDatepickerPanelComponent;
909
+ this.focus = () => this.inputElement?.focus();
910
+ this.isFocused = () => {
911
+ return this.inputElement === document.activeElement || this.isOpen;
912
+ };
913
+ }
914
+ ngAfterContentInit() {
915
+ this.attachFocusBlurListeners();
916
+ }
917
+ ngAfterViewInit() {
918
+ this.connectedTo = this.formField.inputContainer;
919
+ }
920
+ get inputElement() {
921
+ return this.inputRef()?.nativeElement;
922
+ }
923
+ attachFocusBlurListeners() {
924
+ const voidFn = () => { };
925
+ const inputFocus = fromEvent(this.inputElement, 'focus');
926
+ const inputBlur = fromEvent(this.inputElement, 'blur');
927
+ const focusObservables = [inputFocus, this.opened];
928
+ const blurObservables = [inputBlur, this.closed];
929
+ this._focusStream$.next(merge(...focusObservables).pipe(map(voidFn)));
930
+ this._blurStream$.next(merge(...blurObservables).pipe(map(voidFn)));
931
+ }
932
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerInputContainerComponent, deps: [{ token: i1$1.Overlay }, { token: i0.ViewContainerRef }, { token: i2$1.MatDateSelectionModel }, { token: WLCM_FORM_FIELD, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
933
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "17.3.5", type: WlcmDatepickerInputContainerComponent, isStandalone: true, selector: "wlcm-datepicker-input-container", host: { classAttribute: "wlcm-datepicker-input-container" }, providers: [
785
934
  {
786
- provide: MAT_DATE_FORMATS,
935
+ provide: WLCM_INPUT_BINDER,
787
936
  useFactory: () => {
788
- const externalFormats = inject(MAT_DATE_FORMATS, { skipSelf: true, optional: true });
789
- if (externalFormats)
790
- return externalFormats;
791
- return DEFAULT_DATE_FORMATS;
937
+ const input = inject(WlcmDatepickerInputContainerComponent, { self: true });
938
+ return { bind: () => input };
792
939
  },
793
940
  },
794
- ], imports: [CommonModule, WlcmDateRangePickerInputComponent] }); }
941
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmDatepickerInputContainerComponent), multi: true },
942
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmDatepickerInputContainerComponent), multi: true },
943
+ { provide: WlcmDatepickerTrigger, useExisting: forwardRef(() => WlcmDatepickerInputContainerComponent) },
944
+ { provide: MatDateSelectionModel, useClass: MatSingleDateSelectionModel },
945
+ ], queries: [{ propertyName: "inputRef", first: true, predicate: WlcmDatepickerInputDirective, descendants: true, read: ElementRef, isSignal: true }], exportAs: ["wlcmDatepicker"], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[wlcmDatepickerInput]\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
795
946
  }
796
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDateRangePickerModule, decorators: [{
797
- type: NgModule,
798
- args: [{
799
- imports: [CommonModule, WlcmDateRangePickerInputComponent, ...directives],
800
- exports: [WlcmDateRangePickerInputComponent, ...directives],
801
- providers: [
802
- { provide: MAT_DATE_LOCALE, useValue: enUS },
803
- {
804
- provide: DateAdapter,
805
- useClass: WlcmDateRangeAdapter,
806
- deps: [MAT_DATE_LOCALE],
807
- },
947
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerInputContainerComponent, decorators: [{
948
+ type: Component,
949
+ args: [{ selector: 'wlcm-datepicker-input-container', host: { class: 'wlcm-datepicker-input-container' }, exportAs: 'wlcmDatepicker', standalone: true, imports: [CommonModule], providers: [
808
950
  {
809
- provide: MAT_DATE_FORMATS,
951
+ provide: WLCM_INPUT_BINDER,
810
952
  useFactory: () => {
811
- const externalFormats = inject(MAT_DATE_FORMATS, { skipSelf: true, optional: true });
812
- if (externalFormats)
813
- return externalFormats;
814
- return DEFAULT_DATE_FORMATS;
953
+ const input = inject(WlcmDatepickerInputContainerComponent, { self: true });
954
+ return { bind: () => input };
815
955
  },
816
956
  },
817
- ],
818
- }]
819
- }] });
957
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmDatepickerInputContainerComponent), multi: true },
958
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmDatepickerInputContainerComponent), multi: true },
959
+ { provide: WlcmDatepickerTrigger, useExisting: forwardRef(() => WlcmDatepickerInputContainerComponent) },
960
+ { provide: MatDateSelectionModel, useClass: MatSingleDateSelectionModel },
961
+ ], template: "<ng-content select=\"[wlcmDatepickerInput]\"></ng-content>\n" }]
962
+ }], ctorParameters: () => [{ type: i1$1.Overlay }, { type: i0.ViewContainerRef }, { type: i2$1.MatDateSelectionModel }, { type: undefined, decorators: [{
963
+ type: Host
964
+ }, {
965
+ type: Inject,
966
+ args: [WLCM_FORM_FIELD]
967
+ }] }] });
820
968
 
821
969
  function WlcmDateRangeInputValidator() {
822
970
  return (control) => {
@@ -826,16 +974,57 @@ function WlcmDateRangeInputValidator() {
826
974
  errors = { ...errors, ...childControl.errors };
827
975
  }
828
976
  errors = Object.keys(errors).length > 0 ? errors : null;
829
- if (errors instanceof Object && errors[WlcmDateRangeValidation.format] && errors['required']) {
977
+ if (errors instanceof Object && errors[WlcmDateValidation.Format] && errors['required']) {
830
978
  errors['required'] = false;
831
979
  }
832
980
  return errors;
833
981
  };
834
982
  }
835
983
 
984
+ const WLCM_DEFAULT_DATE_FORMATS = {
985
+ parse: {
986
+ dateInput: 'MMM/dd/yyyy',
987
+ },
988
+ display: {
989
+ dateInput: 'MMM/dd/yyyy',
990
+ monthYearLabel: 'MMMM yyyy',
991
+ dateA11yLabel: 'MMM/dd/yyyy',
992
+ monthYearA11yLabel: 'MMM yyyy',
993
+ },
994
+ };
995
+ const WLCM_DEFAULT_DATEPICKER_PROVIDERS = [
996
+ { provide: MAT_DATE_LOCALE, useValue: enUS },
997
+ { provide: MAT_DATE_FORMATS, useValue: WLCM_DEFAULT_DATE_FORMATS },
998
+ { provide: DateAdapter, useClass: WlcmDateAdapter, deps: [MAT_DATE_LOCALE] },
999
+ ];
1000
+
1001
+ const publicComponents = [WlcmDatepickerInputContainerComponent, WlcmDateRangePickerInputComponent];
1002
+ const publicDirectives = [
1003
+ WlcmDatepickerInputDirective,
1004
+ DateRangePickerInputStartDirective,
1005
+ DateRangePickerInputEndDirective,
1006
+ ];
1007
+ class WlcmDatepickerModule {
1008
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1009
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerModule, imports: [CommonModule, WlcmDatepickerInputContainerComponent, WlcmDateRangePickerInputComponent, WlcmDatepickerInputDirective,
1010
+ DateRangePickerInputStartDirective,
1011
+ DateRangePickerInputEndDirective], exports: [WlcmDatepickerInputContainerComponent, WlcmDateRangePickerInputComponent, WlcmDatepickerInputDirective,
1012
+ DateRangePickerInputStartDirective,
1013
+ DateRangePickerInputEndDirective] }); }
1014
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerModule, providers: [...WLCM_DEFAULT_DATEPICKER_PROVIDERS], imports: [CommonModule, publicComponents] }); }
1015
+ }
1016
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmDatepickerModule, decorators: [{
1017
+ type: NgModule,
1018
+ args: [{
1019
+ imports: [CommonModule, ...publicComponents, ...publicDirectives],
1020
+ exports: [...publicComponents, ...publicDirectives],
1021
+ providers: [...WLCM_DEFAULT_DATEPICKER_PROVIDERS],
1022
+ }]
1023
+ }] });
1024
+
836
1025
  /**
837
1026
  * Generated bundle index. Do not edit.
838
1027
  */
839
1028
 
840
- export { DateRangePickerInputEndDirective, DateRangePickerInputStartDirective, WlcmDateRangeInputValidator, WlcmDateRangePickerInputComponent, WlcmDateRangePickerModule, WlcmDateRangeValidation };
841
- //# sourceMappingURL=wlcm-angular-date-range-picker.mjs.map
1029
+ export { DateRangePickerInputEndDirective, DateRangePickerInputStartDirective, WlcmDateRangeInputValidator, WlcmDateRangePickerInputComponent, WlcmDateRangeValidation, WlcmDateValidation, WlcmDatepickerInputContainerComponent, WlcmDatepickerInputDirective, WlcmDatepickerModule };
1030
+ //# sourceMappingURL=wlcm-angular-datepicker.mjs.map