@sebgroup/green-angular 6.8.0 → 7.0.0-rc.20251125130141487

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 (516) hide show
  1. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs +13 -13
  2. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -1
  3. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs +9 -8
  4. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -1
  5. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs +9 -8
  6. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs.map +1 -1
  7. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs +17 -15
  8. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -1
  9. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs +9 -9
  10. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -1
  11. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs +9 -9
  12. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -1
  13. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +17 -15
  14. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -1
  15. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs +9 -9
  16. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -1
  17. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs +30 -28
  18. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs.map +1 -1
  19. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs +9 -9
  20. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -1
  21. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs +9 -9
  22. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -1
  23. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs +9 -9
  24. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -1
  25. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +43 -38
  26. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  27. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs +9 -9
  28. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs.map +1 -1
  29. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs +9 -9
  30. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -1
  31. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs +7 -7
  32. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs.map +1 -1
  33. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +9 -9
  34. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -1
  35. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +13 -10
  36. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
  37. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +9 -9
  38. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
  39. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +9 -9
  40. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
  41. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +8 -8
  42. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
  43. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +9 -8
  44. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
  45. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +9 -9
  46. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
  47. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +3 -3
  48. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
  49. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +52 -43
  50. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -1
  51. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +19 -16
  52. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -1
  53. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +32 -32
  54. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  55. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +9 -8
  56. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
  57. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +19 -16
  58. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
  59. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +9 -9
  60. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
  61. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +13 -11
  62. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
  63. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +9 -9
  64. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  65. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +22 -21
  66. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  67. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs +9 -9
  68. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs.map +1 -1
  69. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +16 -16
  70. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
  71. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +8 -7
  72. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
  73. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +28 -24
  74. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -1
  75. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs +13 -12
  76. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -1
  77. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +9 -9
  78. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  79. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs +12 -12
  80. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs.map +1 -1
  81. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +9 -8
  82. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
  83. package/fesm2022/sebgroup-green-angular-v-angular.mjs +347 -317
  84. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  85. package/fesm2022/sebgroup-green-angular.mjs +201 -188
  86. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  87. package/package.json +8 -94
  88. package/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +1 -1
  89. package/src/v-angular/drag-drop/drag-drop.component.d.ts +3 -3
  90. package/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +1 -1
  91. package/v-angular/drag-drop/drag-drop.component.d.ts +3 -3
  92. package/esm2022/index.mjs +0 -18
  93. package/esm2022/lib/accordion/accordion-list-item.component.mjs +0 -50
  94. package/esm2022/lib/accordion/accordion.component.mjs +0 -77
  95. package/esm2022/lib/accordion/accordion.module.mjs +0 -24
  96. package/esm2022/lib/accordion/index.mjs +0 -4
  97. package/esm2022/lib/badge/badge.component.mjs +0 -85
  98. package/esm2022/lib/badge/badge.module.mjs +0 -23
  99. package/esm2022/lib/badge/index.mjs +0 -3
  100. package/esm2022/lib/button/button.component.mjs +0 -28
  101. package/esm2022/lib/button/button.module.mjs +0 -18
  102. package/esm2022/lib/button/index.mjs +0 -3
  103. package/esm2022/lib/cell-table/cell-table-item.component.mjs +0 -91
  104. package/esm2022/lib/cell-table/cell-table.component.mjs +0 -97
  105. package/esm2022/lib/cell-table/cell-table.module.mjs +0 -26
  106. package/esm2022/lib/cell-table/cell-table.types.mjs +0 -7
  107. package/esm2022/lib/cell-table/cell-underline.directive.mjs +0 -55
  108. package/esm2022/lib/cell-table/index.mjs +0 -4
  109. package/esm2022/lib/context-menu/context-menu.component.mjs +0 -79
  110. package/esm2022/lib/context-menu/context-menu.module.mjs +0 -37
  111. package/esm2022/lib/context-menu/index.mjs +0 -3
  112. package/esm2022/lib/datepicker/datepicker.component.mjs +0 -144
  113. package/esm2022/lib/datepicker/datepicker.module.mjs +0 -37
  114. package/esm2022/lib/datepicker/index.mjs +0 -3
  115. package/esm2022/lib/dropdown/dropdown-button.directive.mjs +0 -16
  116. package/esm2022/lib/dropdown/dropdown-option.directive.mjs +0 -16
  117. package/esm2022/lib/dropdown/dropdown.component.mjs +0 -248
  118. package/esm2022/lib/dropdown/dropdown.module.mjs +0 -51
  119. package/esm2022/lib/dropdown/index.mjs +0 -5
  120. package/esm2022/lib/green-angular.module.mjs +0 -72
  121. package/esm2022/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +0 -61
  122. package/esm2022/lib/in-page-wizard/in-page-wizard.module.mjs +0 -18
  123. package/esm2022/lib/in-page-wizard/index.mjs +0 -3
  124. package/esm2022/lib/modal/index.mjs +0 -5
  125. package/esm2022/lib/modal/modal-footer.directive.mjs +0 -16
  126. package/esm2022/lib/modal/modal-header.directive.mjs +0 -16
  127. package/esm2022/lib/modal/modal.component.mjs +0 -317
  128. package/esm2022/lib/modal/modal.module.mjs +0 -44
  129. package/esm2022/lib/pagination/index.mjs +0 -3
  130. package/esm2022/lib/pagination/pagination.component.mjs +0 -175
  131. package/esm2022/lib/pagination/pagination.module.mjs +0 -18
  132. package/esm2022/lib/progress-circle/index.mjs +0 -3
  133. package/esm2022/lib/progress-circle/progress-circle.component.mjs +0 -41
  134. package/esm2022/lib/progress-circle/progress-circle.module.mjs +0 -18
  135. package/esm2022/lib/segmented-control/index.mjs +0 -3
  136. package/esm2022/lib/segmented-control/segmented-control.component.mjs +0 -38
  137. package/esm2022/lib/segmented-control/segmented-control.module.mjs +0 -22
  138. package/esm2022/lib/shared/core-control/core-checkbox.directive.mjs +0 -39
  139. package/esm2022/lib/shared/core-control/core-control.directive.mjs +0 -94
  140. package/esm2022/lib/shared/core-control/core-control.module.mjs +0 -20
  141. package/esm2022/lib/shared/core-control/index.mjs +0 -4
  142. package/esm2022/lib/shared/core-element/core-element.directive.mjs +0 -34
  143. package/esm2022/lib/shared/core-element/core-element.module.mjs +0 -18
  144. package/esm2022/lib/shared/core-element/index.mjs +0 -3
  145. package/esm2022/lib/shared/core-renderer/core-renderer.mjs +0 -152
  146. package/esm2022/lib/shared/core-renderer/index.mjs +0 -2
  147. package/esm2022/lib/shared/core-router-link/core-router-link.directive.mjs +0 -53
  148. package/esm2022/lib/shared/core-router-link/core-router-link.module.mjs +0 -16
  149. package/esm2022/lib/shared/core-router-link/index.mjs +0 -3
  150. package/esm2022/lib/shared/index.mjs +0 -7
  151. package/esm2022/lib/shared/on-scroll.directive.mjs +0 -47
  152. package/esm2022/lib/shared/scope-resolver.mjs +0 -9
  153. package/esm2022/lib/shared/shared.module.mjs +0 -19
  154. package/esm2022/lib/slider/index.mjs +0 -3
  155. package/esm2022/lib/slider/slider.component.mjs +0 -116
  156. package/esm2022/lib/slider/slider.module.mjs +0 -19
  157. package/esm2022/lib/sortable-list/index.mjs +0 -3
  158. package/esm2022/lib/sortable-list/sortable-list.component.mjs +0 -181
  159. package/esm2022/lib/sortable-list/sortable-list.module.mjs +0 -20
  160. package/esm2022/sebgroup-green-angular.mjs +0 -5
  161. package/esm2022/src/lib/accordion/accordion-list-item.component.mjs +0 -50
  162. package/esm2022/src/lib/accordion/accordion.component.mjs +0 -77
  163. package/esm2022/src/lib/accordion/accordion.module.mjs +0 -24
  164. package/esm2022/src/lib/accordion/index.mjs +0 -4
  165. package/esm2022/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.mjs +0 -5
  166. package/esm2022/src/lib/badge/badge.component.mjs +0 -85
  167. package/esm2022/src/lib/badge/badge.module.mjs +0 -23
  168. package/esm2022/src/lib/badge/index.mjs +0 -3
  169. package/esm2022/src/lib/badge/sebgroup-green-angular-src-lib-badge.mjs +0 -5
  170. package/esm2022/src/lib/button/button.component.mjs +0 -28
  171. package/esm2022/src/lib/button/button.module.mjs +0 -18
  172. package/esm2022/src/lib/button/index.mjs +0 -3
  173. package/esm2022/src/lib/button/sebgroup-green-angular-src-lib-button.mjs +0 -5
  174. package/esm2022/src/lib/cell-table/cell-table-item.component.mjs +0 -91
  175. package/esm2022/src/lib/cell-table/cell-table.component.mjs +0 -97
  176. package/esm2022/src/lib/cell-table/cell-table.module.mjs +0 -26
  177. package/esm2022/src/lib/cell-table/cell-table.types.mjs +0 -7
  178. package/esm2022/src/lib/cell-table/cell-underline.directive.mjs +0 -55
  179. package/esm2022/src/lib/cell-table/index.mjs +0 -4
  180. package/esm2022/src/lib/cell-table/sebgroup-green-angular-src-lib-cell-table.mjs +0 -5
  181. package/esm2022/src/lib/context-menu/context-menu.component.mjs +0 -79
  182. package/esm2022/src/lib/context-menu/context-menu.module.mjs +0 -37
  183. package/esm2022/src/lib/context-menu/index.mjs +0 -3
  184. package/esm2022/src/lib/context-menu/sebgroup-green-angular-src-lib-context-menu.mjs +0 -5
  185. package/esm2022/src/lib/datepicker/datepicker.component.mjs +0 -144
  186. package/esm2022/src/lib/datepicker/datepicker.module.mjs +0 -37
  187. package/esm2022/src/lib/datepicker/index.mjs +0 -3
  188. package/esm2022/src/lib/datepicker/sebgroup-green-angular-src-lib-datepicker.mjs +0 -5
  189. package/esm2022/src/lib/dropdown/dropdown-button.directive.mjs +0 -16
  190. package/esm2022/src/lib/dropdown/dropdown-option.directive.mjs +0 -16
  191. package/esm2022/src/lib/dropdown/dropdown.component.mjs +0 -248
  192. package/esm2022/src/lib/dropdown/dropdown.module.mjs +0 -51
  193. package/esm2022/src/lib/dropdown/index.mjs +0 -5
  194. package/esm2022/src/lib/dropdown/sebgroup-green-angular-src-lib-dropdown.mjs +0 -5
  195. package/esm2022/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +0 -61
  196. package/esm2022/src/lib/in-page-wizard/in-page-wizard.module.mjs +0 -18
  197. package/esm2022/src/lib/in-page-wizard/index.mjs +0 -3
  198. package/esm2022/src/lib/in-page-wizard/sebgroup-green-angular-src-lib-in-page-wizard.mjs +0 -5
  199. package/esm2022/src/lib/modal/index.mjs +0 -5
  200. package/esm2022/src/lib/modal/modal-footer.directive.mjs +0 -16
  201. package/esm2022/src/lib/modal/modal-header.directive.mjs +0 -16
  202. package/esm2022/src/lib/modal/modal.component.mjs +0 -317
  203. package/esm2022/src/lib/modal/modal.module.mjs +0 -44
  204. package/esm2022/src/lib/modal/sebgroup-green-angular-src-lib-modal.mjs +0 -5
  205. package/esm2022/src/lib/pagination/index.mjs +0 -3
  206. package/esm2022/src/lib/pagination/pagination.component.mjs +0 -175
  207. package/esm2022/src/lib/pagination/pagination.module.mjs +0 -18
  208. package/esm2022/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs +0 -5
  209. package/esm2022/src/lib/progress-circle/index.mjs +0 -3
  210. package/esm2022/src/lib/progress-circle/progress-circle.component.mjs +0 -41
  211. package/esm2022/src/lib/progress-circle/progress-circle.module.mjs +0 -18
  212. package/esm2022/src/lib/progress-circle/sebgroup-green-angular-src-lib-progress-circle.mjs +0 -5
  213. package/esm2022/src/lib/segmented-control/index.mjs +0 -3
  214. package/esm2022/src/lib/segmented-control/sebgroup-green-angular-src-lib-segmented-control.mjs +0 -5
  215. package/esm2022/src/lib/segmented-control/segmented-control.component.mjs +0 -38
  216. package/esm2022/src/lib/segmented-control/segmented-control.module.mjs +0 -22
  217. package/esm2022/src/lib/shared/core-control/core-checkbox.directive.mjs +0 -39
  218. package/esm2022/src/lib/shared/core-control/core-control.directive.mjs +0 -94
  219. package/esm2022/src/lib/shared/core-control/core-control.module.mjs +0 -20
  220. package/esm2022/src/lib/shared/core-control/index.mjs +0 -4
  221. package/esm2022/src/lib/shared/core-element/core-element.directive.mjs +0 -34
  222. package/esm2022/src/lib/shared/core-element/core-element.module.mjs +0 -18
  223. package/esm2022/src/lib/shared/core-element/index.mjs +0 -3
  224. package/esm2022/src/lib/shared/core-renderer/core-renderer.mjs +0 -152
  225. package/esm2022/src/lib/shared/core-renderer/index.mjs +0 -2
  226. package/esm2022/src/lib/shared/core-router-link/core-router-link.directive.mjs +0 -53
  227. package/esm2022/src/lib/shared/core-router-link/core-router-link.module.mjs +0 -16
  228. package/esm2022/src/lib/shared/core-router-link/index.mjs +0 -3
  229. package/esm2022/src/lib/shared/index.mjs +0 -7
  230. package/esm2022/src/lib/shared/on-scroll.directive.mjs +0 -47
  231. package/esm2022/src/lib/shared/scope-resolver.mjs +0 -9
  232. package/esm2022/src/lib/shared/sebgroup-green-angular-src-lib-shared.mjs +0 -5
  233. package/esm2022/src/lib/shared/shared.module.mjs +0 -19
  234. package/esm2022/src/lib/slider/index.mjs +0 -3
  235. package/esm2022/src/lib/slider/sebgroup-green-angular-src-lib-slider.mjs +0 -5
  236. package/esm2022/src/lib/slider/slider.component.mjs +0 -116
  237. package/esm2022/src/lib/slider/slider.module.mjs +0 -19
  238. package/esm2022/src/lib/sortable-list/index.mjs +0 -3
  239. package/esm2022/src/lib/sortable-list/sebgroup-green-angular-src-lib-sortable-list.mjs +0 -5
  240. package/esm2022/src/lib/sortable-list/sortable-list.component.mjs +0 -181
  241. package/esm2022/src/lib/sortable-list/sortable-list.module.mjs +0 -20
  242. package/esm2022/src/v-angular/account-number/account-number.module.mjs +0 -18
  243. package/esm2022/src/v-angular/account-number/account-number.pipe.mjs +0 -55
  244. package/esm2022/src/v-angular/account-number/index.mjs +0 -3
  245. package/esm2022/src/v-angular/account-number/sebgroup-green-angular-src-v-angular-account-number.mjs +0 -5
  246. package/esm2022/src/v-angular/alert/alert.component.mjs +0 -49
  247. package/esm2022/src/v-angular/alert/alert.models.mjs +0 -8
  248. package/esm2022/src/v-angular/alert/alert.module.mjs +0 -18
  249. package/esm2022/src/v-angular/alert/index.mjs +0 -4
  250. package/esm2022/src/v-angular/alert/sebgroup-green-angular-src-v-angular-alert.mjs +0 -5
  251. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +0 -300
  252. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +0 -17
  253. package/esm2022/src/v-angular/base-control-value-accessor/index.mjs +0 -3
  254. package/esm2022/src/v-angular/base-control-value-accessor/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +0 -5
  255. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +0 -25
  256. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +0 -20
  257. package/esm2022/src/v-angular/breadcrumbs/index.mjs +0 -3
  258. package/esm2022/src/v-angular/breadcrumbs/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +0 -5
  259. package/esm2022/src/v-angular/button/button.component.mjs +0 -108
  260. package/esm2022/src/v-angular/button/button.module.mjs +0 -20
  261. package/esm2022/src/v-angular/button/index.mjs +0 -3
  262. package/esm2022/src/v-angular/button/sebgroup-green-angular-src-v-angular-button.mjs +0 -5
  263. package/esm2022/src/v-angular/card/card.component.mjs +0 -11
  264. package/esm2022/src/v-angular/card/card.module.mjs +0 -18
  265. package/esm2022/src/v-angular/card/index.mjs +0 -3
  266. package/esm2022/src/v-angular/card/sebgroup-green-angular-src-v-angular-card.mjs +0 -5
  267. package/esm2022/src/v-angular/character-countdown/character-countdown.directive.mjs +0 -51
  268. package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +0 -18
  269. package/esm2022/src/v-angular/character-countdown/index.mjs +0 -3
  270. package/esm2022/src/v-angular/character-countdown/sebgroup-green-angular-src-v-angular-character-countdown.mjs +0 -5
  271. package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +0 -94
  272. package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +0 -21
  273. package/esm2022/src/v-angular/checkbox/index.mjs +0 -3
  274. package/esm2022/src/v-angular/checkbox/sebgroup-green-angular-src-v-angular-checkbox.mjs +0 -5
  275. package/esm2022/src/v-angular/core/core.globals.mjs +0 -20
  276. package/esm2022/src/v-angular/core/core.utils.mjs +0 -62
  277. package/esm2022/src/v-angular/core/index.mjs +0 -3
  278. package/esm2022/src/v-angular/core/sebgroup-green-angular-src-v-angular-core.mjs +0 -5
  279. package/esm2022/src/v-angular/datepicker/components/calendar/calendar.component.mjs +0 -200
  280. package/esm2022/src/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +0 -115
  281. package/esm2022/src/v-angular/datepicker/components/date-input/date-input.component.mjs +0 -238
  282. package/esm2022/src/v-angular/datepicker/components/datepicker/datepicker.component.mjs +0 -192
  283. package/esm2022/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +0 -411
  284. package/esm2022/src/v-angular/datepicker/datepicker.globals.mjs +0 -20
  285. package/esm2022/src/v-angular/datepicker/datepicker.models.mjs +0 -56
  286. package/esm2022/src/v-angular/datepicker/datepicker.module.mjs +0 -63
  287. package/esm2022/src/v-angular/datepicker/datepicker.utils.mjs +0 -196
  288. package/esm2022/src/v-angular/datepicker/directives/calendar-date.directive.mjs +0 -47
  289. package/esm2022/src/v-angular/datepicker/index.mjs +0 -17
  290. package/esm2022/src/v-angular/datepicker/models/dates.mjs +0 -291
  291. package/esm2022/src/v-angular/datepicker/pipes/date-thook.pipe.mjs +0 -30
  292. package/esm2022/src/v-angular/datepicker/pipes/is-disabled.pipe.mjs +0 -37
  293. package/esm2022/src/v-angular/datepicker/pipes/matches.pipe.mjs +0 -17
  294. package/esm2022/src/v-angular/datepicker/sebgroup-green-angular-src-v-angular-datepicker.mjs +0 -5
  295. package/esm2022/src/v-angular/drag-drop/drag-drop.component.mjs +0 -497
  296. package/esm2022/src/v-angular/drag-drop/drag-drop.models.mjs +0 -2
  297. package/esm2022/src/v-angular/drag-drop/drag-drop.module.mjs +0 -49
  298. package/esm2022/src/v-angular/drag-drop/drag-drop.pipes.mjs +0 -70
  299. package/esm2022/src/v-angular/drag-drop/drag-drop.utils.mjs +0 -76
  300. package/esm2022/src/v-angular/drag-drop/index.mjs +0 -5
  301. package/esm2022/src/v-angular/drag-drop/sebgroup-green-angular-src-v-angular-drag-drop.mjs +0 -5
  302. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +0 -380
  303. package/esm2022/src/v-angular/dropdown/dropdown-list/index.mjs +0 -2
  304. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +0 -303
  305. package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +0 -38
  306. package/esm2022/src/v-angular/dropdown/index.mjs +0 -6
  307. package/esm2022/src/v-angular/dropdown/sebgroup-green-angular-src-v-angular-dropdown.mjs +0 -5
  308. package/esm2022/src/v-angular/dropdown/typeahead/index.mjs +0 -6
  309. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +0 -110
  310. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +0 -85
  311. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +0 -138
  312. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +0 -186
  313. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +0 -33
  314. package/esm2022/src/v-angular/external-link/external-link.directive.mjs +0 -37
  315. package/esm2022/src/v-angular/external-link/external-link.module.mjs +0 -18
  316. package/esm2022/src/v-angular/external-link/index.mjs +0 -3
  317. package/esm2022/src/v-angular/external-link/sebgroup-green-angular-src-v-angular-external-link.mjs +0 -5
  318. package/esm2022/src/v-angular/i18n/i18n.json +0 -13
  319. package/esm2022/src/v-angular/i18n/i18n.module.mjs +0 -89
  320. package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +0 -89
  321. package/esm2022/src/v-angular/i18n/index.mjs +0 -3
  322. package/esm2022/src/v-angular/i18n/sebgroup-green-angular-src-v-angular-i18n.mjs +0 -5
  323. package/esm2022/src/v-angular/info-circle/index.mjs +0 -3
  324. package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +0 -28
  325. package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +0 -21
  326. package/esm2022/src/v-angular/info-circle/sebgroup-green-angular-src-v-angular-info-circle.mjs +0 -5
  327. package/esm2022/src/v-angular/input/index.mjs +0 -3
  328. package/esm2022/src/v-angular/input/input.component.mjs +0 -248
  329. package/esm2022/src/v-angular/input/input.module.mjs +0 -41
  330. package/esm2022/src/v-angular/input/sebgroup-green-angular-src-v-angular-input.mjs +0 -5
  331. package/esm2022/src/v-angular/input-mask/config.mjs +0 -9
  332. package/esm2022/src/v-angular/input-mask/constants.mjs +0 -2
  333. package/esm2022/src/v-angular/input-mask/index.mjs +0 -6
  334. package/esm2022/src/v-angular/input-mask/input-mask-format.pipe.mjs +0 -21
  335. package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +0 -165
  336. package/esm2022/src/v-angular/input-mask/input-mask.module.mjs +0 -35
  337. package/esm2022/src/v-angular/input-mask/input-mask.types.mjs +0 -2
  338. package/esm2022/src/v-angular/input-mask/sebgroup-green-angular-src-v-angular-input-mask.mjs +0 -5
  339. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +0 -242
  340. package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +0 -167
  341. package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +0 -19
  342. package/esm2022/src/v-angular/modal/fold-out/keyboard-key.enum.mjs +0 -10
  343. package/esm2022/src/v-angular/modal/index.mjs +0 -6
  344. package/esm2022/src/v-angular/modal/modal.globals.mjs +0 -20
  345. package/esm2022/src/v-angular/modal/modal.module.mjs +0 -53
  346. package/esm2022/src/v-angular/modal/modal.types.mjs +0 -2
  347. package/esm2022/src/v-angular/modal/sebgroup-green-angular-src-v-angular-modal.mjs +0 -5
  348. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +0 -253
  349. package/esm2022/src/v-angular/pagination/index.mjs +0 -3
  350. package/esm2022/src/v-angular/pagination/pagination.component.mjs +0 -144
  351. package/esm2022/src/v-angular/pagination/pagination.module.mjs +0 -37
  352. package/esm2022/src/v-angular/pagination/sebgroup-green-angular-src-v-angular-pagination.mjs +0 -5
  353. package/esm2022/src/v-angular/radio/index.mjs +0 -4
  354. package/esm2022/src/v-angular/radio/radio-group/radio-group.component.mjs +0 -86
  355. package/esm2022/src/v-angular/radio/radio.component.mjs +0 -153
  356. package/esm2022/src/v-angular/radio/radio.module.mjs +0 -22
  357. package/esm2022/src/v-angular/radio/sebgroup-green-angular-src-v-angular-radio.mjs +0 -5
  358. package/esm2022/src/v-angular/slug/index.mjs +0 -3
  359. package/esm2022/src/v-angular/slug/sebgroup-green-angular-src-v-angular-slug.mjs +0 -5
  360. package/esm2022/src/v-angular/slug/slug.module.mjs +0 -18
  361. package/esm2022/src/v-angular/slug/slug.pipe.mjs +0 -27
  362. package/esm2022/src/v-angular/table/index.mjs +0 -9
  363. package/esm2022/src/v-angular/table/sebgroup-green-angular-src-v-angular-table.mjs +0 -5
  364. package/esm2022/src/v-angular/table/table.component.mjs +0 -426
  365. package/esm2022/src/v-angular/table/table.directive.mjs +0 -110
  366. package/esm2022/src/v-angular/table/table.models.mjs +0 -2
  367. package/esm2022/src/v-angular/table/table.module.mjs +0 -40
  368. package/esm2022/src/v-angular/table/table.tools.mjs +0 -29
  369. package/esm2022/src/v-angular/table/tr-thook.pipe.mjs +0 -22
  370. package/esm2022/src/v-angular/tabs/index.mjs +0 -8
  371. package/esm2022/src/v-angular/tabs/sebgroup-green-angular-src-v-angular-tabs.mjs +0 -5
  372. package/esm2022/src/v-angular/tabs/tab.directive.mjs +0 -81
  373. package/esm2022/src/v-angular/tabs/tabs.component.mjs +0 -262
  374. package/esm2022/src/v-angular/tabs/tabs.models.mjs +0 -2
  375. package/esm2022/src/v-angular/tabs/tabs.module.mjs +0 -21
  376. package/esm2022/src/v-angular/textarea/index.mjs +0 -3
  377. package/esm2022/src/v-angular/textarea/sebgroup-green-angular-src-v-angular-textarea.mjs +0 -5
  378. package/esm2022/src/v-angular/textarea/textarea.component.mjs +0 -129
  379. package/esm2022/src/v-angular/textarea/textarea.module.mjs +0 -34
  380. package/esm2022/src/v-angular/toast/index.mjs +0 -8
  381. package/esm2022/src/v-angular/toast/sebgroup-green-angular-src-v-angular-toast.mjs +0 -5
  382. package/esm2022/src/v-angular/toast/toast-message.service.mjs +0 -82
  383. package/esm2022/src/v-angular/toast/toast.component.mjs +0 -66
  384. package/esm2022/src/v-angular/toast/toast.models.mjs +0 -8
  385. package/esm2022/src/v-angular/toast/toast.module.mjs +0 -21
  386. package/esm2022/src/v-angular/tooltip/index.mjs +0 -3
  387. package/esm2022/src/v-angular/tooltip/sebgroup-green-angular-src-v-angular-tooltip.mjs +0 -5
  388. package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +0 -293
  389. package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +0 -18
  390. package/esm2022/src/v-angular/tooltip/tooltip.styles.mjs +0 -60
  391. package/esm2022/v-angular/account-number/account-number.module.mjs +0 -18
  392. package/esm2022/v-angular/account-number/account-number.pipe.mjs +0 -55
  393. package/esm2022/v-angular/account-number/index.mjs +0 -3
  394. package/esm2022/v-angular/alert/alert.component.mjs +0 -49
  395. package/esm2022/v-angular/alert/alert.models.mjs +0 -8
  396. package/esm2022/v-angular/alert/alert.module.mjs +0 -18
  397. package/esm2022/v-angular/alert/index.mjs +0 -4
  398. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +0 -300
  399. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +0 -17
  400. package/esm2022/v-angular/base-control-value-accessor/index.mjs +0 -3
  401. package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +0 -25
  402. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +0 -20
  403. package/esm2022/v-angular/breadcrumbs/index.mjs +0 -3
  404. package/esm2022/v-angular/button/button.component.mjs +0 -108
  405. package/esm2022/v-angular/button/button.module.mjs +0 -20
  406. package/esm2022/v-angular/button/index.mjs +0 -3
  407. package/esm2022/v-angular/card/card.component.mjs +0 -11
  408. package/esm2022/v-angular/card/card.module.mjs +0 -18
  409. package/esm2022/v-angular/card/index.mjs +0 -3
  410. package/esm2022/v-angular/character-countdown/character-countdown.directive.mjs +0 -51
  411. package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +0 -18
  412. package/esm2022/v-angular/character-countdown/index.mjs +0 -3
  413. package/esm2022/v-angular/checkbox/checkbox.component.mjs +0 -94
  414. package/esm2022/v-angular/checkbox/checkbox.module.mjs +0 -21
  415. package/esm2022/v-angular/checkbox/index.mjs +0 -3
  416. package/esm2022/v-angular/core/core.globals.mjs +0 -20
  417. package/esm2022/v-angular/core/core.utils.mjs +0 -62
  418. package/esm2022/v-angular/core/index.mjs +0 -3
  419. package/esm2022/v-angular/datepicker/components/calendar/calendar.component.mjs +0 -200
  420. package/esm2022/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +0 -115
  421. package/esm2022/v-angular/datepicker/components/date-input/date-input.component.mjs +0 -238
  422. package/esm2022/v-angular/datepicker/components/datepicker/datepicker.component.mjs +0 -192
  423. package/esm2022/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +0 -411
  424. package/esm2022/v-angular/datepicker/datepicker.globals.mjs +0 -20
  425. package/esm2022/v-angular/datepicker/datepicker.models.mjs +0 -56
  426. package/esm2022/v-angular/datepicker/datepicker.module.mjs +0 -63
  427. package/esm2022/v-angular/datepicker/datepicker.utils.mjs +0 -196
  428. package/esm2022/v-angular/datepicker/directives/calendar-date.directive.mjs +0 -47
  429. package/esm2022/v-angular/datepicker/index.mjs +0 -17
  430. package/esm2022/v-angular/datepicker/models/dates.mjs +0 -291
  431. package/esm2022/v-angular/datepicker/pipes/date-thook.pipe.mjs +0 -30
  432. package/esm2022/v-angular/datepicker/pipes/is-disabled.pipe.mjs +0 -37
  433. package/esm2022/v-angular/datepicker/pipes/matches.pipe.mjs +0 -17
  434. package/esm2022/v-angular/drag-drop/drag-drop.component.mjs +0 -497
  435. package/esm2022/v-angular/drag-drop/drag-drop.models.mjs +0 -2
  436. package/esm2022/v-angular/drag-drop/drag-drop.module.mjs +0 -49
  437. package/esm2022/v-angular/drag-drop/drag-drop.pipes.mjs +0 -70
  438. package/esm2022/v-angular/drag-drop/drag-drop.utils.mjs +0 -76
  439. package/esm2022/v-angular/drag-drop/index.mjs +0 -5
  440. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +0 -380
  441. package/esm2022/v-angular/dropdown/dropdown-list/index.mjs +0 -2
  442. package/esm2022/v-angular/dropdown/dropdown.component.mjs +0 -303
  443. package/esm2022/v-angular/dropdown/dropdown.module.mjs +0 -38
  444. package/esm2022/v-angular/dropdown/index.mjs +0 -6
  445. package/esm2022/v-angular/dropdown/typeahead/index.mjs +0 -6
  446. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +0 -110
  447. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +0 -85
  448. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +0 -138
  449. package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +0 -186
  450. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +0 -33
  451. package/esm2022/v-angular/external-link/external-link.directive.mjs +0 -37
  452. package/esm2022/v-angular/external-link/external-link.module.mjs +0 -18
  453. package/esm2022/v-angular/external-link/index.mjs +0 -3
  454. package/esm2022/v-angular/i18n/i18n.json +0 -13
  455. package/esm2022/v-angular/i18n/i18n.module.mjs +0 -89
  456. package/esm2022/v-angular/i18n/i18n.test.module.mjs +0 -89
  457. package/esm2022/v-angular/i18n/index.mjs +0 -3
  458. package/esm2022/v-angular/index.mjs +0 -29
  459. package/esm2022/v-angular/info-circle/index.mjs +0 -3
  460. package/esm2022/v-angular/info-circle/info-circle.component.mjs +0 -28
  461. package/esm2022/v-angular/info-circle/info-circle.module.mjs +0 -21
  462. package/esm2022/v-angular/input/index.mjs +0 -3
  463. package/esm2022/v-angular/input/input.component.mjs +0 -248
  464. package/esm2022/v-angular/input/input.module.mjs +0 -41
  465. package/esm2022/v-angular/input-mask/config.mjs +0 -9
  466. package/esm2022/v-angular/input-mask/constants.mjs +0 -2
  467. package/esm2022/v-angular/input-mask/index.mjs +0 -6
  468. package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +0 -21
  469. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +0 -165
  470. package/esm2022/v-angular/input-mask/input-mask.module.mjs +0 -35
  471. package/esm2022/v-angular/input-mask/input-mask.types.mjs +0 -2
  472. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +0 -242
  473. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +0 -167
  474. package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +0 -19
  475. package/esm2022/v-angular/modal/fold-out/keyboard-key.enum.mjs +0 -10
  476. package/esm2022/v-angular/modal/index.mjs +0 -6
  477. package/esm2022/v-angular/modal/modal.globals.mjs +0 -20
  478. package/esm2022/v-angular/modal/modal.module.mjs +0 -53
  479. package/esm2022/v-angular/modal/modal.types.mjs +0 -2
  480. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +0 -253
  481. package/esm2022/v-angular/pagination/index.mjs +0 -3
  482. package/esm2022/v-angular/pagination/pagination.component.mjs +0 -144
  483. package/esm2022/v-angular/pagination/pagination.module.mjs +0 -37
  484. package/esm2022/v-angular/radio/index.mjs +0 -4
  485. package/esm2022/v-angular/radio/radio-group/radio-group.component.mjs +0 -86
  486. package/esm2022/v-angular/radio/radio.component.mjs +0 -153
  487. package/esm2022/v-angular/radio/radio.module.mjs +0 -22
  488. package/esm2022/v-angular/sebgroup-green-angular-v-angular.mjs +0 -5
  489. package/esm2022/v-angular/slug/index.mjs +0 -3
  490. package/esm2022/v-angular/slug/slug.module.mjs +0 -18
  491. package/esm2022/v-angular/slug/slug.pipe.mjs +0 -27
  492. package/esm2022/v-angular/table/index.mjs +0 -9
  493. package/esm2022/v-angular/table/table.component.mjs +0 -426
  494. package/esm2022/v-angular/table/table.directive.mjs +0 -110
  495. package/esm2022/v-angular/table/table.models.mjs +0 -2
  496. package/esm2022/v-angular/table/table.module.mjs +0 -40
  497. package/esm2022/v-angular/table/table.tools.mjs +0 -29
  498. package/esm2022/v-angular/table/tr-thook.pipe.mjs +0 -22
  499. package/esm2022/v-angular/tabs/index.mjs +0 -8
  500. package/esm2022/v-angular/tabs/tab.directive.mjs +0 -81
  501. package/esm2022/v-angular/tabs/tabs.component.mjs +0 -262
  502. package/esm2022/v-angular/tabs/tabs.models.mjs +0 -2
  503. package/esm2022/v-angular/tabs/tabs.module.mjs +0 -21
  504. package/esm2022/v-angular/textarea/index.mjs +0 -3
  505. package/esm2022/v-angular/textarea/textarea.component.mjs +0 -129
  506. package/esm2022/v-angular/textarea/textarea.module.mjs +0 -34
  507. package/esm2022/v-angular/toast/index.mjs +0 -8
  508. package/esm2022/v-angular/toast/toast-message.service.mjs +0 -82
  509. package/esm2022/v-angular/toast/toast.component.mjs +0 -66
  510. package/esm2022/v-angular/toast/toast.models.mjs +0 -8
  511. package/esm2022/v-angular/toast/toast.module.mjs +0 -21
  512. package/esm2022/v-angular/tooltip/index.mjs +0 -3
  513. package/esm2022/v-angular/tooltip/tooltip.directive.mjs +0 -293
  514. package/esm2022/v-angular/tooltip/tooltip.module.mjs +0 -18
  515. package/esm2022/v-angular/tooltip/tooltip.styles.mjs +0 -60
  516. package/esm2022/v-angular/v-angular.module.mjs +0 -132
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular-src-v-angular-datepicker.mjs","sources":["../../../../libs/angular/src/v-angular/datepicker/models/dates.ts","../../../../libs/angular/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.ts","../../../../libs/angular/src/v-angular/datepicker/datepicker.utils.ts","../../../../libs/angular/src/v-angular/datepicker/directives/calendar-date.directive.ts","../../../../libs/angular/src/v-angular/datepicker/pipes/is-disabled.pipe.ts","../../../../libs/angular/src/v-angular/datepicker/pipes/date-thook.pipe.ts","../../../../libs/angular/src/v-angular/datepicker/pipes/matches.pipe.ts","../../../../libs/angular/src/v-angular/datepicker/components/calendar/calendar.component.ts","../../../../libs/angular/src/v-angular/datepicker/components/calendar/calendar.component.html","../../../../libs/angular/src/v-angular/datepicker/datepicker.models.ts","../../../../libs/angular/src/v-angular/datepicker/components/calendar-control/calendar-control.component.ts","../../../../libs/angular/src/v-angular/datepicker/components/calendar-control/calendar-control.component.html","../../../../libs/angular/src/v-angular/datepicker/datepicker.globals.ts","../../../../libs/angular/src/v-angular/datepicker/components/datepicker/datepicker.component.ts","../../../../libs/angular/src/v-angular/datepicker/components/datepicker/datepicker.component.html","../../../../libs/angular/src/v-angular/datepicker/components/date-input/date-input.component.ts","../../../../libs/angular/src/v-angular/datepicker/components/date-input/date-input.component.html","../../../../libs/angular/src/v-angular/datepicker/datepicker.module.ts","../../../../libs/angular/src/v-angular/datepicker/index.ts","../../../../libs/angular/src/v-angular/datepicker/sebgroup-green-angular-src-v-angular-datepicker.ts"],"sourcesContent":["import {\n createMask,\n InputmaskOptions,\n} from '@sebgroup/green-angular/src/v-angular/input-mask'\n\n/**\n * Helper function to generate InputmaskOptions by requested locale.\n * @param locale - requested locale. If not given, it'll use the browsers locale\n * @returns InputmaskOptions with date settings\n */\nexport const getLocaleDateMask = (\n dateCharacters?: DateCharacters,\n locale?: string,\n): InputmaskOptions<Date> => {\n // If no locale has been passed, use browser language\n if (!locale) locale = navigator.language\n\n const format = getLocaleDateString(locale).toLowerCase()\n\n return getFormatDateMask(format, dateCharacters)\n}\n\nexport const getLocaleDateString = (locale?: string) =>\n locale && dateFormats[locale] ? dateFormats[locale] : 'yyyy-MM-dd'\nconst dateFormats: Record<string, string> = {\n 'af-ZA': 'yyyy/MM/dd',\n 'am-ET': 'dd/MM/yyyy',\n 'ar-AE': 'dd/MM/yyyy',\n 'ar-BH': 'dd/MM/yyyy',\n 'ar-DZ': 'dd-MM-yyyy',\n 'ar-EG': 'dd/MM/yyyy',\n 'ar-IQ': 'dd/MM/yyyy',\n 'ar-JO': 'dd/MM/yyyy',\n 'ar-KW': 'dd/MM/yyyy',\n 'ar-LB': 'dd/MM/yyyy',\n 'ar-LY': 'dd/MM/yyyy',\n 'ar-MA': 'dd-MM-yyyy',\n 'ar-OM': 'dd/MM/yyyy',\n 'ar-QA': 'dd/MM/yyyy',\n 'ar-SA': 'dd/MM/yyyy',\n 'ar-SY': 'dd/MM/yyyy',\n 'ar-TN': 'dd-MM-yyyy',\n 'ar-YE': 'dd/MM/yyyy',\n 'arn-CL': 'dd-MM-yyyy',\n 'as-IN': 'dd-MM-yyyy',\n 'az-Cyrl-AZ': 'dd.MM.yyyy',\n 'az-Latn-AZ': 'dd.MM.yyyy',\n 'ba-RU': 'dd.MM.yyyy',\n 'be-BY': 'dd.MM.yyyy',\n 'bg-BG': 'dd.MM.yyyy',\n 'bn-BD': 'dd-MM-yyyy',\n 'bn-IN': 'dd-MM-yyyy',\n 'bo-CN': 'yyyy/MM/dd',\n 'br-FR': 'dd/MM/yyyy',\n 'bs-Cyrl-BA': 'dd.MM.yyyy',\n 'bs-Latn-BA': 'dd.MM.yyyy',\n 'ca-ES': 'dd/MM/yyyy',\n 'co-FR': 'dd/MM/yyyy',\n 'cs-CZ': 'dd.MM.yyyy',\n 'cy-GB': 'dd/MM/yyyy',\n 'da-DK': 'dd.MM.yyyy',\n 'de-AT': 'dd.MM.yyyy',\n 'de-CH': 'dd.MM.yyyy',\n 'de-DE': 'dd.MM.yyyy',\n 'de-LI': 'dd.MM.yyyy',\n 'de-LU': 'dd.MM.yyyy',\n 'dsb-DE': 'dd.MM.yyyy',\n 'dv-MV': 'dd/MM/yyyy',\n 'el-GR': 'dd/MM/yyyy',\n en: 'MM/dd/yyyy',\n 'en-029': 'MM/dd/yyyy',\n 'en-AU': 'dd/MM/yyyy',\n 'en-BZ': 'dd/MM/yyyy',\n 'en-CA': 'dd/MM/yyyy',\n 'en-GB': 'dd/MM/yyyy',\n 'en-IE': 'dd/MM/yyyy',\n 'en-IN': 'dd-MM-yyyy',\n 'en-JM': 'dd/MM/yyyy',\n 'en-MY': 'dd/MM/yyyy',\n 'en-NZ': 'dd/MM/yyyy',\n 'en-PH': 'MM/dd/yyyy',\n 'en-SG': 'dd/MM/yyyy',\n 'en-TT': 'dd/MM/yyyy',\n 'en-US': 'MM/dd/yyyy',\n 'en-ZA': 'yyyy/MM/dd',\n 'en-ZW': 'MM/dd/yyyy',\n 'es-AR': 'dd/MM/yyyy',\n 'es-BO': 'dd/MM/yyyy',\n 'es-CL': 'dd-MM-yyyy',\n 'es-CO': 'dd/MM/yyyy',\n 'es-CR': 'dd/MM/yyyy',\n 'es-DO': 'dd/MM/yyyy',\n 'es-EC': 'dd/MM/yyyy',\n 'es-ES': 'dd/MM/yyyy',\n 'es-GT': 'dd/MM/yyyy',\n 'es-HN': 'dd/MM/yyyy',\n 'es-MX': 'dd/MM/yyyy',\n 'es-NI': 'dd/MM/yyyy',\n 'es-PA': 'MM/dd/yyyy',\n 'es-PE': 'dd/MM/yyyy',\n 'es-PR': 'dd/MM/yyyy',\n 'es-PY': 'dd/MM/yyyy',\n 'es-SV': 'dd/MM/yyyy',\n 'es-US': 'MM/dd/yyyy',\n 'es-UY': 'dd/MM/yyyy',\n 'es-VE': 'dd/MM/yyyy',\n 'et-EE': 'dd.MM.yyyy',\n 'eu-ES': 'yyyy/MM/dd',\n 'fa-IR': 'MM/dd/yyyy',\n 'fi-FI': 'dd.MM.yyyy',\n 'fil-PH': 'MM/dd/yyyy',\n 'fo-FO': 'dd-MM-yyyy',\n 'fr-BE': 'dd/MM/yyyy',\n 'fr-CA': 'yyyy-MM-dd',\n 'fr-CH': 'dd.MM.yyyy',\n 'fr-FR': 'dd/MM/yyyy',\n 'fr-LU': 'dd/MM/yyyy',\n 'fr-MC': 'dd/MM/yyyy',\n 'fy-NL': 'dd-MM-yyyy',\n 'ga-IE': 'dd/MM/yyyy',\n 'gd-GB': 'dd/MM/yyyy',\n 'gl-ES': 'dd/MM/yyyy',\n 'gsw-FR': 'dd/MM/yyyy',\n 'gu-IN': 'dd-MM-yyyy',\n 'ha-Latn-NG': 'dd/MM/yyyy',\n 'he-IL': 'dd/MM/yyyy',\n 'hi-IN': 'dd-MM-yyyy',\n 'hr-BA': 'dd.MM.yyyy.',\n 'hr-HR': 'dd.MM.yyyy',\n 'hsb-DE': 'dd.MM.yyyy',\n 'hu-HU': 'yyyy.MM.dd.',\n 'hy-AM': 'dd.MM.yyyy',\n 'id-ID': 'dd/MM/yyyy',\n 'ig-NG': 'dd/MM/yyyy',\n 'ii-CN': 'yyyy/MM/dd',\n 'is-IS': 'dd.MM.yyyy',\n 'it-CH': 'dd.MM.yyyy',\n 'it-IT': 'dd/MM/yyyy',\n 'iu-Cans-CA': 'dd/MM/yyyy',\n 'iu-Latn-CA': 'dd/MM/yyyy',\n 'ja-JP': 'yyyy/MM/dd',\n 'ka-GE': 'dd.MM.yyyy',\n 'kk-KZ': 'dd.MM.yyyy',\n 'kl-GL': 'dd-MM-yyyy',\n 'km-KH': 'yyyy-MM-dd',\n 'kn-IN': 'dd-MM-yyyy',\n 'ko-KR': 'yyyy.MM.dd',\n 'kok-IN': 'dd-MM-yyyy',\n 'ky-KG': 'dd.MM.yyyy',\n 'lb-LU': 'dd/MM/yyyy',\n 'lo-LA': 'dd/MM/yyyy',\n 'lt-LT': 'yyyy.MM.dd',\n 'lv-LV': 'yyyy.MM.dd.',\n 'mi-NZ': 'dd/MM/yyyy',\n 'mk-MK': 'dd.MM.yyyy',\n 'ml-IN': 'dd-MM-yyyy',\n 'mn-MN': 'yyyy.MM.dd',\n 'mn-Mong-CN': 'yyyy/MM/dd',\n 'moh-CA': 'MM/dd/yyyy',\n 'mr-IN': 'dd-MM-yyyy',\n 'ms-BN': 'dd/MM/yyyy',\n 'ms-MY': 'dd/MM/yyyy',\n 'mt-MT': 'dd/MM/yyyy',\n 'nb-NO': 'dd.MM.yyyy',\n 'ne-NP': 'MM/dd/yyyy',\n 'nl-BE': 'dd/MM/yyyy',\n 'nl-NL': 'dd-MM-yyyy',\n 'nn-NO': 'dd.MM.yyyy',\n 'nso-ZA': 'yyyy/MM/dd',\n 'oc-FR': 'dd/MM/yyyy',\n 'or-IN': 'dd-MM-yyyy',\n 'pa-IN': 'dd-MM-yyyy',\n 'pl-PL': 'dd.MM.yyyy',\n 'prs-AF': 'dd/MM/yyyy',\n 'ps-AF': 'dd/MM/yyyy',\n 'pt-BR': 'dd/MM/yyyy',\n 'pt-PT': 'dd-MM-yyyy',\n 'qut-GT': 'dd/MM/yyyy',\n 'quz-BO': 'dd/MM/yyyy',\n 'quz-EC': 'dd/MM/yyyy',\n 'quz-PE': 'dd/MM/yyyy',\n 'rm-CH': 'dd/MM/yyyy',\n 'ro-RO': 'dd.MM.yyyy',\n 'ru-RU': 'dd.MM.yyyy',\n 'rw-RW': 'MM/dd/yyyy',\n 'sa-IN': 'dd-MM-yyyy',\n 'sah-RU': 'MM.dd.yyyy',\n se: 'yyyy-MM-dd',\n 'se-FI': 'dd.MM.yyyy',\n 'se-NO': 'dd.MM.yyyy',\n 'se-SE': 'yyyy-MM-dd',\n 'si-LK': 'yyyy-MM-dd',\n 'sk-SK': 'dd.MM.yyyy',\n 'sl-SI': 'dd.MM.yyyy',\n 'sma-NO': 'dd.MM.yyyy',\n 'sma-SE': 'yyyy-MM-dd',\n 'smj-NO': 'dd.MM.yyyy',\n 'smj-SE': 'yyyy-MM-dd',\n 'smn-FI': 'dd.MM.yyyy',\n 'sms-FI': 'dd.MM.yyyy',\n 'sq-AL': 'yyyy-MM-dd',\n 'sr-Cyrl-BA': 'dd.MM.yyyy',\n 'sr-Cyrl-CS': 'dd.MM.yyyy',\n 'sr-Cyrl-ME': 'dd.MM.yyyy',\n 'sr-Cyrl-RS': 'dd.MM.yyyy',\n 'sr-Latn-BA': 'dd.MM.yyyy',\n 'sr-Latn-CS': 'dd.MM.yyyy',\n 'sr-Latn-ME': 'dd.MM.yyyy',\n 'sr-Latn-RS': 'dd.MM.yyyy',\n sv: 'yyyy-MM-dd',\n 'sv-FI': 'dd.MM.yyyy',\n 'sv-SE': 'yyyy-MM-dd',\n 'sw-KE': 'MM/dd/yyyy',\n 'syr-SY': 'dd/MM/yyyy',\n 'ta-IN': 'dd-MM-yyyy',\n 'te-IN': 'dd-MM-yyyy',\n 'tg-Cyrl-TJ': 'dd.MM.yyyy',\n 'th-TH': 'dd/MM/yyyy',\n 'tk-TM': 'dd.MM.yyyy',\n 'tn-ZA': 'yyyy/MM/dd',\n 'tr-TR': 'dd.MM.yyyy',\n 'tt-RU': 'dd.MM.yyyy',\n 'tzm-Latn-DZ': 'dd-MM-yyyy',\n 'ug-CN': 'yyyy-MM-dd',\n 'uk-UA': 'dd.MM.yyyy',\n 'ur-PK': 'dd/MM/yyyy',\n 'uz-Cyrl-UZ': 'dd.MM.yyyy',\n 'uz-Latn-UZ': 'dd/MM yyyy',\n 'vi-VN': 'dd/MM/yyyy',\n 'wo-SN': 'dd/MM/yyyy',\n 'xh-ZA': 'yyyy/MM/dd',\n 'yo-NG': 'dd/MM/yyyy',\n 'zh-CN': 'yyyy/MM/dd',\n 'zh-HK': 'dd/MM/yyyy',\n 'zh-MO': 'dd/MM/yyyy',\n 'zh-SG': 'dd/MM/yyyy',\n 'zh-TW': 'yyyy/MM/dd',\n 'zu-ZA': 'yyyy/MM/dd',\n}\nexport const getFormatDateMask = (\n format: string,\n dateCharacters?: DateCharacters,\n) => {\n const separators = [' ', '.', '-', '/']\n const separator =\n separators.find((operator) => format.indexOf(operator) > -1) ?? '-'\n const dateObjects = format.split(separator)\n const year: { key: string; index: number } = { key: 'year', index: 0 },\n month: { key: string; index: number } = { key: 'month', index: 1 },\n day: { key: string; index: number } = { key: 'day', index: 2 }\n\n dateObjects.forEach((dateObject, index) => {\n switch (dateObject[0]) {\n case 'y':\n year.index = index\n break\n case 'm':\n month.index = index\n break\n case 'd':\n day.index = index\n break\n }\n })\n const placeholder = setDateFormatCharacters(format, dateCharacters)\n\n return createMask<Date>({\n alias: 'datetime',\n inputFormat: format,\n placeholder,\n parser: (value: string) => {\n const values = value.split(separator)\n const y = +values[year.index]\n const m = +values[month.index] - 1\n const d = +values[day.index]\n return new Date(y, m, d)\n },\n onBeforeMask(initialValue: string) {\n if (!initialValue || typeof initialValue !== 'string') return ''\n // If initialValues is in dateTime format, remove seconds that present after the \"T\"\n if (initialValue.includes('T')) initialValue = initialValue.split('T')[0]\n // initialValue should always be in yyyy-mm-dd no matter if set from control, via datepicker or manually with keyboard\n const values = initialValue.split('-')\n const datePartsInOrder = [year, month, day].sort(\n (a, b) => a.index - b.index,\n )\n // \"Insert\" correct values for the year/month/day, then join to string with separator\n return datePartsInOrder\n .map(({ key }) => {\n const [yearValue, monthValue, dateValue] = values\n if (key === 'year') return yearValue\n if (key === 'month') return monthValue\n return dateValue\n })\n .join(separator)\n },\n })\n}\n\nexport interface DateCharacters {\n year: string\n month: string\n day: string\n}\nexport const setDateFormatCharacters = (\n format: string,\n dateCharacters?: DateCharacters,\n) => {\n if (!dateCharacters) return format\n format = format.replace(/y/g, dateCharacters.year)\n format = format.replace(/m/g, dateCharacters.month)\n format = format.replace(/d/g, dateCharacters.day)\n return format\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core'\nimport {\n AbstractControl,\n ControlValueAccessor,\n NgControl,\n ValidationErrors,\n Validator,\n Validators,\n} from '@angular/forms'\nimport {\n TRANSLOCO_SCOPE,\n TranslocoScope,\n TranslocoService,\n} from '@jsverse/transloco'\nimport { Observable, Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport type { InputmaskOptions } from '@sebgroup/green-angular/src/v-angular/input-mask'\n\nimport {\n DateCharacters,\n getFormatDateMask,\n getLocaleDateMask,\n getLocaleDateString,\n setDateFormatCharacters,\n} from '../models/dates'\n\n@Directive() // Required with Angular ivy compiler\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport abstract class DateControlValueAccessorComponent\n implements\n AfterViewInit,\n OnInit,\n OnChanges,\n OnDestroy,\n ControlValueAccessor,\n Validator\n{\n /** Custom template for displaying the content of the label.\n * Specified by nesting an `<ng-template #labelTpl>Custom Label</ng-template>`.\n */\n @ContentChild('labelTpl', { read: TemplateRef })\n labelContentTpl?: TemplateRef<undefined>\n\n /** Custom template for displaying value when the input is locked.\n * Specified by nesting an `<ng-template #lockedTpl let-selectedDate>Custom locked content date: {{ selectedDate }}</ng-template>`.\n */\n @ContentChild('lockedTpl', { read: TemplateRef })\n lockedTpl?: TemplateRef<undefined>\n\n /** Reference to the native child input element. */\n @ViewChild('input', { read: ElementRef }) inputRef?: ElementRef\n\n /* ATTRIBUTES */\n\n /** Id of the host element and is accessible by the children, automatically generated if not provided. */\n @HostBinding('attr.id') @Input() id = (window as any).ngv?.nextId(\n 'datepicker',\n )\n /** Name of the child input element. */\n @Input() name?: string\n /** Label of the child input element using the default template.\n * Can be overwritten by specifying an `<ng-template #labelTpl>Custom Label</ng-template>`.\n */\n @Input() label?: string\n /** Text shown before input has a written value. Default current date format by locale of transloco */\n @Input() set placeholder(value: string | undefined) {\n this._placeholder = value\n ? setDateFormatCharacters(value, this.dateCharacters)\n : value\n this.defaultPlaceholder = value\n ? setDateFormatCharacters(value, this.dateCharacters)\n : value\n }\n get placeholder() {\n return this._placeholder\n }\n private _placeholder: string | undefined\n defaultPlaceholder?: string\n /** What characters to use in date placeholder, e.g. {year: 'Y', month: 'M', day: 'D'} */\n @Input() dateCharacters?: DateCharacters\n /** Role of the child input element. https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles */\n @Input() role?: string\n /** Value of the child input element. Mostly used in conjunction with radio and checkboxes. */\n @Input() value: any\n /** An error string to be shown under invalid inputs. Overwrites any form errors. */\n @Input() error?: string\n /** A list of errors string to be shown under invalid inputs. Overwrites any form errors. */\n @Input() errorList?: string[]\n /** Adds an icon before each error message. */\n @Input() withErrorIcon?: boolean = false\n /** Description of the child input element. Both visibly and as `aria-label`. */\n @Input() description?: string\n /** If set to true, the browser will try to automatically set focus to the child input element. */\n @Input() autofocus = false\n /** Default value of the child input element. */\n @Input() defaultValue?: any\n /** If passed, the component will listen for updates and will reset its value. */\n @Input() reset?: Observable<any>\n /** Adds (Optional) to input label. */\n @Input() optional?: boolean | null | undefined\n /**\n * Settings for input mask for dates based on locale\n * @see {@link getLocaleDateMask} use this tool to generate settings for `dateInputMask`\n */\n @Input() set dateInputMask(dateMask: InputmaskOptions<Date>) {\n // Hide input field\n this.showInputDateSrc.next(false)\n this.cdr.detectChanges()\n this._dateInputMask = dateMask\n\n // Show input field to reload input-mask settings upon update\n setTimeout(() => {\n this.showInputDateSrc.next(true)\n this.cdr.detectChanges()\n }, 200)\n }\n get dateInputMask(): InputmaskOptions<Date> {\n return this._dateInputMask\n }\n private _dateInputMask!: InputmaskOptions<Date>\n\n private _locked: boolean | null | undefined = undefined\n /** Hides the input borders and displays current value as a text. */\n @Input() set locked(value: boolean | null | undefined) {\n this._locked = value\n this.cdr.detectChanges()\n }\n get locked(): boolean | null | undefined {\n return this._locked\n }\n /** If set to true, using a controls disabled state will display input as locked. */\n @Input() displayDisabledAsLocked?: boolean | null | undefined\n\n /* STATES */\n\n private _required: boolean | null | undefined = undefined\n /** Override the required flag of the component. */\n @Input() set required(value: boolean | null | undefined) {\n this._required = value\n }\n /** Child input element is considered required and changes default label template accordingly. */\n get required(): boolean | null | undefined {\n // if required is set => return required\n if (this._required !== undefined) return this._required\n\n // if required can be determined from the control => return control.required\n if (this.ngControl?.control?.validator) {\n const validator = this.ngControl?.control?.validator(\n {} as AbstractControl,\n )\n return validator && validator.required\n }\n\n return\n }\n\n private _invalid: boolean | undefined = undefined\n /** Override the invalid state of the component. */\n @Input() set invalid(value: boolean) {\n this._invalid = value\n }\n /** The component has the invalid state, usually decorating the elements red and shows the first error. */\n get invalid(): boolean {\n if (this._invalid === true || this._invalid === false) return this._invalid\n return (\n !!this.ngControl?.control?.invalid && this.ngControl?.control?.touched\n )\n }\n\n private _valid: boolean | undefined = undefined\n /** Override the valid state of the component. */\n @Input() set valid(value: boolean) {\n this._valid = value\n }\n /** The component has the valid state, usually decorating the elements green. */\n get valid(): boolean {\n if (this._valid === true || this._valid === false) return this._valid\n return !!this.ngControl?.control?.valid && this.ngControl?.control?.touched\n }\n\n /** The component has the focused state, updated by the child input element's focus state. */\n @Input() focused = false\n /** The component has the disabled state, usually muting the colors and removes interaction. */\n @Input() disabled = false\n /** Locale for using correct language in the datepicker. */\n @Input() locale: string | undefined\n /** Date format used for placeholder and input mask. Should be in lower case {year: 'y', month: 'm', day: 'd'} */\n @Input() dateFormat: string | undefined\n /** Date locale used for placeholder and input mask. */\n @Input() dateLocale: string | undefined\n\n /** Toggler for showing or hiding the input field */\n protected showInputDateSrc = new Subject<boolean>()\n\n /* TRIGGERS */\n\n /** Emits focus events triggered by the child elements. */\n @Output() readonly ngvFocus = new EventEmitter()\n /** Emits focus events triggered by the child elements. */\n @Output() readonly ngvBlur = new EventEmitter()\n\n /* VALUE HANDLERS */\n /** @internal */\n protected onChange = (_: any): void => {} // eslint-disable-line @typescript-eslint/no-empty-function\n /** @internal */\n protected onTouched = (): void => {} // eslint-disable-line @typescript-eslint/no-empty-function\n /** @internal */\n protected onValidatorChange: () => void = () => null\n private _state: any = null\n\n /* OTHER VARIABLES */\n scope: string | undefined\n /** @internal */\n // warningIcon = faTriangleExclamation;\n\n /* LIFE CYCLE VARIABLES */\n private _onDestroy$ = new Subject<true>()\n\n /**\n * Creates a new BaseControlValueAccessorComponent.\n * @param ngControl optional FormControl provided when component is used in a form, through dependency injection.\n */\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected elementRef: ElementRef,\n protected cdr: ChangeDetectorRef,\n private _transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this\n }\n\n if (this.translocoScope) this.scope = this.translocoScope.toString()\n }\n\n static parseDateLike(value: any): null | undefined | string {\n try {\n // if value is type of string,\n if (value && typeof value === 'string') value = new Date(value)\n switch (true) {\n // remove instances where the value will not correctly be parsed to a date string\n case value == null:\n case value?.toString() === 'Invalid Date':\n return null\n // if value-as-date is a valid date object, parse the value to YYYY-MM-DD format\n case typeof value?.getMonth === 'function':\n return new Intl.DateTimeFormat('sv-SE').format(value)\n default:\n return value as string\n }\n } catch (_e) {\n return\n }\n }\n\n // eslint-disable-next-line @angular-eslint/contextual-lifecycle\n ngOnInit(): void {\n if (this.ngControl && this.ngControl.control) {\n this.ngControl.control.setValidators(\n Validators.compose([this.ngControl.control.validator, this.validate]),\n )\n }\n\n this._transloco.langChanges$.pipe(takeUntil(this._onDestroy$)).subscribe({\n next: () => {\n if (!this.locale && !this.dateFormat) {\n return this.updatePlaceholderAndMask()\n }\n },\n })\n\n // if reset observable has been passed, subscribe after updates\n this.reset?.pipe(takeUntil(this._onDestroy$)).subscribe({\n next: () => {\n // reset value of controller\n this.updateValue('')\n },\n })\n }\n\n // eslint-disable-next-line @angular-eslint/contextual-lifecycle\n ngAfterViewInit(): void {\n // if default value is set, then don't alter it. Otherwise, use\n // current value of controller after initiation as default value\n this.defaultValue = this.defaultValue ?? this.ngControl?.value\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.defaultValue?.currentValue) {\n this.updateValue(changes.defaultValue.currentValue)\n }\n\n if (\n changes.locale?.currentValue &&\n !this.dateFormat &&\n !changes.dateFormat?.currentValue\n ) {\n this.updatePlaceholderAndMask()\n }\n\n if (changes.dateFormat?.currentValue) {\n this.updateFormat()\n }\n\n if (changes.dateCharacters?.currentValue) {\n if (this.dateFormat) {\n this.updateFormat()\n } else {\n this.updatePlaceholderAndMask()\n }\n }\n\n if (!!changes.dateLocale?.currentValue && !this.dateFormat) {\n this.updatePlaceholderAndMask()\n }\n }\n\n ngOnDestroy(): void {\n this._onDestroy$.next(true)\n this._onDestroy$.complete()\n }\n\n /** @internal */\n onFocus(event: Event) {\n event.stopPropagation\n ? event.stopPropagation()\n : (event.cancelBubble = true)\n this.focused = true\n this.ngvFocus.emit(event)\n }\n\n /** @internal */\n onBlur(event: Event) {\n event.stopPropagation\n ? event.stopPropagation()\n : (event.cancelBubble = true)\n this.onTouched()\n this.focused = false\n this.ngvBlur.emit(event)\n }\n\n detectChanges(): void {\n this.cdr.detectChanges()\n }\n\n /** Sets the focus on the actual input element. */\n setFocus() {\n if (this.inputRef) this.inputRef.nativeElement.focus()\n }\n\n /**\n * @internal\n * Update placeholder and input mask to match locale.\n * Order if choice for locale:\n * 1. dateLocale - Used for specifying which locale to be used for formatting date\n * 2. locale - Unless dateLocale is not provided, use locale form current translation\n * 3. transloco.getActiveLang - as last resort, get active language form trnasloco\n * If locale is undefined, transloco.activeLang will be used instead.\n */\n updatePlaceholderAndMask() {\n const locale =\n this.dateLocale ?? this.locale ?? this._transloco.getActiveLang()\n\n this._placeholder = this.defaultPlaceholder\n ? setDateFormatCharacters(this.defaultPlaceholder, this.dateCharacters)\n : setDateFormatCharacters(\n getLocaleDateString(locale).toLowerCase(),\n this.dateCharacters,\n )\n this.dateInputMask = getLocaleDateMask(this.dateCharacters, locale)\n }\n\n updateFormat() {\n if (this.dateFormat) {\n this._placeholder = this.defaultPlaceholder\n ? setDateFormatCharacters(this.defaultPlaceholder, this.dateCharacters)\n : setDateFormatCharacters(\n this.dateFormat.toLowerCase(),\n this.dateCharacters,\n )\n this.dateInputMask = getFormatDateMask(\n this.dateFormat,\n this.dateCharacters,\n )\n }\n }\n\n // ----------------------------------------------------------------------------\n // CONTROL VALUE ACCESSOR\n // ----------------------------------------------------------------------------\n\n /** Internal state/value that the native input element has. */\n get state() {\n return this._state\n }\n\n /**\n * Internal state/value that the native input element has.\n */\n set state(value) {\n this._state = value\n }\n\n /** Writes a new value to the child input element. */\n writeValue(value: any): void {\n this.state = value\n this.onChange(this.state)\n }\n\n /** Registers a callback function that is called when the child input element's value changes. */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = (value) => {\n // ensure emitted value is a string | null | undefined\n const emitValue = DateControlValueAccessorComponent.parseDateLike(value)\n fn(emitValue)\n }\n }\n\n /** Registers a callback function that is called when the child input element triggers on blur. */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn\n }\n\n /** Function that is called by the forms API when the control status changes to or from 'DISABLED'. */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled\n\n // if displayDisabledAsLocked is enabled - update locked state based on disabled state\n if (this.displayDisabledAsLocked) {\n this.locked = isDisabled\n }\n }\n\n // ----------------------------------------------------------------------------\n // VALIDATORS\n // ----------------------------------------------------------------------------\n\n /** Method that performs synchronous validation against the provided control. Used for internal validation. */\n validate(_control: AbstractControl): { [name: string]: any } | null {\n return null\n }\n\n /** Registers a callback function to call when the validator inputs change. */\n registerOnValidatorChange(fn: () => void): void {\n this.onValidatorChange = fn\n }\n\n // ----------------------------------------------------------------------------\n // HELPERS\n // ----------------------------------------------------------------------------\n\n /** Returns the first entry in an error object. */\n get firstError(): { code: string; params: Record<string, any> } | null {\n const errors: ValidationErrors | null = this.ngControl.errors\n if (!errors) return null\n const code = Object.keys(errors)[0]\n return { code, params: errors[code] }\n }\n\n private updateValue(value = this.defaultValue) {\n this.state = value\n this.onChange(this.state)\n this.cdr.detectChanges()\n }\n}\n","import { WeekDay } from '@angular/common'\n\nconst weekdays: WeekDay[] = [\n WeekDay.Monday,\n WeekDay.Tuesday,\n WeekDay.Wednesday,\n WeekDay.Thursday,\n WeekDay.Friday,\n WeekDay.Saturday,\n WeekDay.Sunday,\n]\n\nexport const sortWeekDays = (firstDayOfWeek: WeekDay): WeekDay[] => {\n const firstDayIndex = weekdays.indexOf(firstDayOfWeek)\n const weekStart = weekdays.slice(firstDayIndex)\n const weekEnd = weekdays.slice(0, firstDayIndex)\n return weekStart.concat(weekEnd)\n}\n\n/** Sets labels and sort weekday arrays based off of first day of week. */\nexport const getSortedWeekDays = (\n firstDayOfWeek: WeekDay,\n startDate?: Date,\n): Date[] => {\n if (startDate === undefined) startDate = new Date()\n\n // sort weekdays according to firstDayOfWeek\n const sortedWeekdays: WeekDay[] = sortWeekDays(firstDayOfWeek)\n\n // get the date object for the first day of week\n const startDayIndex = sortedWeekdays.indexOf(startDate.getDay())\n const firstOfWeek = new Date(startDate)\n firstOfWeek.setDate(startDate.getDate() - startDayIndex)\n\n // map each day in array to a date object\n return sortedWeekdays.map((_: WeekDay, offset: number) => {\n // set appropriate date\n const weekdayDate = new Date(firstOfWeek)\n weekdayDate.setDate(weekdayDate.getDate() + offset)\n\n // and return value\n return weekdayDate\n })\n}\n\n/** Generate a matrix of dates used to visualize a calendar month. */\nexport const generateDateMatrix = (\n month: number,\n year: number,\n minWeeks = 5,\n firstDayOfWeek: WeekDay,\n): Date[][] => {\n // generate a new matrix with 5 or 6 rows (depending on number of days in that month)\n const matrix: Date[][] = new Array<Date[]>(minWeeks)\n matrix.fill([])\n\n const monthStr = `${month + 1}`.padStart(2, '0')\n const date = new Date(`${year}-${monthStr}-01`)\n const firstDate = firstCalendarDate(date, firstDayOfWeek)\n\n // for each week in that month\n const dateMatrix = matrix.map((_: Date[], weekOffset: number) => {\n const offset = weekOffset * 7\n // update the date with the offset for that week\n const firstOfWeek = new Date(firstDate)\n firstOfWeek.setDate(firstDate.getDate() + offset)\n return getSortedWeekDays(firstDayOfWeek, firstOfWeek)\n })\n\n // check if another row needs to be added (if last dates of month are missing)\n const lastAdded = dateMatrix.slice(-1)[0].slice(-1)[0]\n const lastOfMonth = new Date(lastAdded)\n lastOfMonth.setMonth(month + 1)\n lastOfMonth.setDate(0)\n\n if (isBefore(lastAdded, lastOfMonth)) {\n // add another week row\n const firstOfWeek = new Date(lastAdded)\n firstOfWeek.setDate(lastAdded.getDate() + 1)\n dateMatrix.push(getSortedWeekDays(firstDayOfWeek, firstOfWeek))\n }\n // return final datematrix\n return dateMatrix\n}\n\n/** Returns the first date used in the calendars first button. */\nexport const firstCalendarDate = (\n date: Date,\n firstDayOfWeek: WeekDay,\n): Date => {\n // sort weekdays according to firstDayOfWeek\n const sortedWeekdays: WeekDay[] = sortWeekDays(firstDayOfWeek)\n\n // set date to the first of month\n const firstOfMonth = new Date(date)\n firstOfMonth.setDate(1)\n\n // get the offset\n const offset = sortedWeekdays.indexOf(firstOfMonth.getDay())\n const firstOfWeek = new Date(firstOfMonth)\n // use offset to set date\n firstOfWeek.setDate(1 - offset)\n return firstOfWeek\n}\n\nexport const getDayOffset = (\n from: WeekDay,\n to: WeekDay,\n firstDayOfWeek: WeekDay,\n direction?: 'forward' | 'back',\n): number => {\n const sortedWeekdays: WeekDay[] = sortWeekDays(firstDayOfWeek)\n\n const fromIndex = sortedWeekdays.indexOf(from)\n const toIndex = sortedWeekdays.indexOf(to)\n\n const offset = toIndex - fromIndex\n\n if (direction === 'forward' && offset < 0) return offset + 6\n if (direction === 'back' && offset > 0) return offset - 6\n return offset\n}\n\n/** Returns an array of Dates for each of month. */\nexport const getMonthArray = (): Date[] => {\n const firstDayOfYear = new Date()\n firstDayOfYear.setMonth(0)\n firstDayOfYear.setDate(1)\n\n // create a new array of length 12,\n // and fill it with date objects of 1:st of january\n const monthArray: Date[] = new Array(12).fill(firstDayOfYear)\n\n // map through the array,\n // and create a new instance of the date,\n // changing the month based on index (0 - 11)\n return monthArray.map((d: Date, index: number) => {\n const date = new Date(d)\n date.setMonth(index)\n return date\n })\n}\n\n/** Returns an array of Dates for the current year and the next. */\nexport const getYearArray = (): Date[] => {\n const currentYear = new Date()\n currentYear.setMonth(0)\n currentYear.setDate(1)\n const nextYear = new Date(currentYear)\n nextYear.setFullYear(currentYear.getFullYear() + 1)\n return [currentYear, nextYear]\n}\n\n/** Returns true if the two dates have the same year, month and date values. */\nexport const match = (a: Date | undefined, b: Date | undefined): boolean => {\n if (!a || !b) return false\n if (a.getDate() !== b.getDate()) return false\n if (a.getMonth() !== b.getMonth()) return false\n if (a.getFullYear() !== b.getFullYear()) return false\n return true\n}\n\nexport const afterClosingHours = (closingHours: Date | undefined): boolean => {\n if (!closingHours) return false\n return Date.now() >= closingHours.getTime()\n}\n\n/**\n * Checks if a date is before control date, regardless of time.\n *\n * @param date - comparison date\n * @param controlDate - date to compare against\n * @returns - true if the comparison date is before the control date\n */\nexport const isBefore = (date: Date, controlDate: Date): boolean => {\n // if year values are dissimilar\n if (date.getFullYear() !== controlDate.getFullYear()) {\n return date.getFullYear() < controlDate.getFullYear()\n }\n // if month values are dissimilar\n if (date.getMonth() !== controlDate.getMonth()) {\n return date.getMonth() < controlDate.getMonth()\n }\n // if year and month are equal, check the date\n return date.getDate() < controlDate.getDate()\n}\n\n/**\n * Checks if a date is after control date, regardless of time.\n *\n * @param date - comparison date\n * @param controlDate - date to compare against\n * @returns - true if the comparison date is before the control date\n */\nexport const isAfter = (date: Date, controlDate: Date): boolean => {\n // if year values are dissimilar\n if (date.getFullYear() !== controlDate.getFullYear()) {\n return date.getFullYear() > controlDate.getFullYear()\n }\n // if month values are dissimilar\n if (date.getMonth() !== controlDate.getMonth()) {\n return date.getMonth() > controlDate.getMonth()\n }\n // if year and month are equal, check the date\n return date.getDate() > controlDate.getDate()\n}\n\n/**\n * Checks if a value can be used to initiate a new Date object.\n *\n * @param value any value\n * @returns - true if value can be coersed to a Date.\n */\nexport const isValid = (value: any): boolean => {\n // if value is type of string and can be parsed to a Date\n const date =\n value && typeof value === 'string' && !isNaN(Date.parse(value))\n ? new Date(value)\n : null\n\n switch (true) {\n // if date or value is a valid date object - return valid\n case typeof value?.getMonth === 'function':\n case typeof date?.getMonth === 'function':\n return true\n // if date or value is not a valid date object - return invalid\n case value == null:\n case date?.toString() === 'Invalid Date':\n return false\n default:\n return false\n }\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core'\n\nimport { match } from '../datepicker.utils'\n\nexport const enum DateCss {\n notWithinMonth = 'not-within-month',\n selected = 'selected',\n today = 'today',\n}\n\n@Directive({\n selector: '[calendarDate]', // eslint-disable-line @angular-eslint/directive-selector\n})\nexport class CalendarDateDirective implements OnInit, OnChanges {\n @Input() calendarDate!: Date\n @HostBinding('class.' + DateCss.selected) @Input() selected!: boolean\n @HostBinding('class.' + DateCss.notWithinMonth)\n @Input()\n notWithinMonth!: boolean\n @HostBinding('class.' + DateCss.today) isToday = false\n @Input() disabled!: boolean\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement\n }\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnInit() {\n this.isToday = match(new Date(), this.calendarDate)\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.disabled?.currentValue) {\n ;(this.nativeElement as HTMLButtonElement).disabled = this.disabled\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core'\n\nimport { DisableDateConfig } from '../datepicker.models'\nimport {\n afterClosingHours,\n isAfter,\n isBefore,\n match,\n} from '../datepicker.utils'\n\nconst TODAY = new Date()\n\n@Pipe({ name: 'isDisabled' })\nexport class IsDisabledPipe implements PipeTransform {\n // transform(value: Date, firstValid: Date | undefined, lastValid: Date | undefined, excludeDates: Date[] | undefined, excludeDays: WeekDay[] | undefined): boolean {\n transform(value: Date, config: DisableDateConfig = {}): boolean {\n const { fromDate, toDate, excludeDates, excludeDays, closingTime } = config\n\n // if closingHours was provided and the date matches today - check closingHours (including timezone)\n if (closingTime && match(value, TODAY) && afterClosingHours(closingTime))\n return true\n\n // if fromDate was provided and the date occurs before fromDate date\n if (fromDate && !match(value, fromDate) && isBefore(value, fromDate))\n return true\n\n // if toDate was provided and the date occurs after toDate date\n if (toDate && !match(value, toDate) && isAfter(value, toDate)) return true\n\n // if a list of disallowed days is provided and value matches\n if (\n excludeDays &&\n excludeDays.length &&\n excludeDays.indexOf(value.getDay()) !== -1\n )\n return true\n\n // if a list of disallowed dates is provided\n if (excludeDates && excludeDates.length) {\n return !!excludeDates.find((d: Date) => match(value, d))\n }\n\n // otherwise show date as not disabled\n return false\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({ name: 'dateThook' })\nexport class DateThookPipe implements PipeTransform {\n get today(): Date {\n const tmp = new Date()\n const today = new Date(tmp.setHours(0, 0, 0, 0))\n return today\n }\n\n transform(date: Date, isDisabled: boolean): string {\n if (!!date && !isDisabled) {\n // Reset time for target date\n const dateTmp = new Date(date.setHours(0, 0, 0, 0))\n\n // To calculate the time difference of two dates\n const differenceInTime = dateTmp.getTime() - this.today.getTime()\n\n // To calculate the no. of days between two dates\n const differenceInDays = differenceInTime / (1000 * 3600 * 24)\n const absoluteDifferenceInDays = Math.abs(differenceInDays)\n\n const differentiator =\n differenceInDays < 0 ? '-' : differenceInDays === 0 ? '' : '+'\n\n return `today${differentiator}${absoluteDifferenceInDays === 0 ? '' : absoluteDifferenceInDays}`\n }\n\n return 'disabled-date'\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core'\n\nimport { match } from '../datepicker.utils'\n\n@Pipe({\n name: 'matches',\n})\nexport class MatchesPipe implements PipeTransform {\n transform(value: Date, selected: Date | undefined): boolean {\n return match(value, selected)\n }\n}\n","import { WeekDay } from '@angular/common'\nimport {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n} from '@angular/core'\n\nimport {\n generateDateMatrix,\n getDayOffset,\n sortWeekDays,\n} from '../../datepicker.utils'\nimport { CalendarDateDirective } from '../../directives/calendar-date.directive'\n\nimport type { CalendarType, DisableDateConfig } from '../../datepicker.models'\n\n@Component({\n selector: 'nggv-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n})\nexport class CalendarComponent implements OnChanges {\n @Output() dateClick = new EventEmitter<Date>()\n\n @ViewChildren(CalendarDateDirective)\n dateButtonRefs!: QueryList<CalendarDateDirective>\n\n @Input() year!: number\n @Input() month!: number\n @Input() selected: Date | undefined\n\n // inputs that configure display behaviour\n @Input() locale: string | undefined\n @Input() minCalendarRows = 5\n @Input() firstDayOfWeek: WeekDay = WeekDay.Monday\n @Input() type: CalendarType = 'normal'\n\n // inputs that affects which dates in the calendar should be grayed out\n @Input() set disableDates(value: Date[] | undefined) {\n this.updateDisableDateConfig({ excludeDates: value ?? [] })\n }\n @Input() set disableWeekDays(value: WeekDay[] | undefined) {\n this.updateDisableDateConfig({ excludeDays: value })\n }\n @Input() set firstValid(value: Date | undefined) {\n this.updateDisableDateConfig({ fromDate: value })\n }\n @Input() set lastValid(value: Date | undefined) {\n this.updateDisableDateConfig({ toDate: value })\n }\n @Input() set closingTime(value: Date | undefined) {\n this.updateDisableDateConfig({ closingTime: value })\n }\n\n dateMatrix: Date[][] = [[]]\n disableDateConfig: DisableDateConfig = {}\n\n private lastDayOfWeek: WeekDay = WeekDay.Sunday\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.selected?.currentValue) {\n this.selected = new Date(changes.selected.currentValue)\n }\n\n if (changes.firstDayOfWeek?.currentValue) {\n this.lastDayOfWeek = sortWeekDays(\n changes.firstDayOfWeek.currentValue,\n ).pop() as WeekDay\n }\n\n if (\n (changes.month?.currentValue !== undefined &&\n changes.month?.currentValue !== null) ||\n !!changes.year?.currentValue ||\n !!changes.firstDayOfWeek?.currentValue ||\n !!changes.minCalendarRows?.currentValue\n ) {\n this.dateMatrix = generateDateMatrix(\n this.month,\n this.year,\n this.minCalendarRows,\n this.firstDayOfWeek,\n )\n }\n }\n\n clickDate(date: Date): void {\n this.dateClick.emit(date)\n }\n\n @HostListener('keydown', ['$event'])\n keyNavigation(event: KeyboardEvent): void {\n let activeElement: HTMLElement | undefined\n if (event.key !== 'Tab')\n activeElement = document.activeElement as HTMLElement\n if (event.key === 'ArrowRight') {\n const nextFocusable = this.getNextFocusable(activeElement)\n if (nextFocusable) nextFocusable.focus()\n }\n\n if (event.key === 'ArrowLeft') {\n const nextFocusable = this.getPreviousFocusable(activeElement)\n if (nextFocusable) nextFocusable.focus()\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n const nextFocusable = this.getElementWithOffset(activeElement, -7)\n if (nextFocusable) nextFocusable.focus()\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n const nextFocusable = this.getElementWithOffset(activeElement, 7)\n if (nextFocusable) nextFocusable.focus()\n }\n\n if (event.key === 'Enter' || event.key === 'Space') {\n if (activeElement) {\n const dateRef = this.dateButtonRefs.find(\n (ref) => ref.nativeElement === activeElement,\n )\n if (!dateRef?.disabled) {\n this.dateClick.emit(dateRef?.calendarDate)\n }\n }\n }\n\n if (event.key === 'Home') {\n event.preventDefault()\n const nextFocusable = this.firstDayOfWeekElement()\n if (nextFocusable) nextFocusable.focus()\n }\n\n if (event.key === 'End') {\n event.preventDefault()\n const nextFocusable = this.lastDayOfWeekElement()\n if (nextFocusable) nextFocusable.focus()\n }\n }\n\n getElementWithOffset(\n fromElement: HTMLElement | undefined,\n offsetDays: number,\n returnOnlyEnabled = true,\n ): HTMLElement | undefined {\n if (!fromElement) return\n const fromIndex = this.dateButtonRefs\n .toArray()\n .map((ref) => ref.nativeElement)\n .indexOf(fromElement)\n const next = this.dateButtonRefs.get(fromIndex + offsetDays)\n if (!next) return\n if (returnOnlyEnabled && next.disabled)\n return this.getElementWithOffset(next.nativeElement, offsetDays)\n return next.nativeElement\n }\n\n getNextFocusable(\n fromElement: HTMLElement | undefined,\n ): HTMLElement | undefined {\n if (!fromElement) return\n return this.getElementWithOffset(fromElement, 1)\n }\n\n getPreviousFocusable(\n fromElement: HTMLElement | undefined,\n ): HTMLElement | undefined {\n if (!fromElement) return\n return this.getElementWithOffset(fromElement, -1)\n }\n\n firstDayOfWeekElement(): HTMLElement | undefined {\n const activeElement = document.activeElement as HTMLElement\n if (!activeElement) return\n const dateRef = this.dateButtonRefs.find(\n (ref) => ref.nativeElement === activeElement,\n ) as CalendarDateDirective\n if (dateRef.calendarDate.getDay() === this.firstDayOfWeek) return\n const offset = this.getDayOffset(\n dateRef.calendarDate.getDay(),\n this.firstDayOfWeek,\n 'back',\n )\n const targetElement = this.getElementWithOffset(\n activeElement,\n offset,\n false,\n ) as HTMLButtonElement\n if (targetElement && targetElement.disabled)\n return this.getNextFocusable(targetElement)\n return targetElement\n }\n\n lastDayOfWeekElement(): HTMLElement | undefined {\n const activeElement = document.activeElement as HTMLElement\n if (!activeElement) return\n const dateRef = this.dateButtonRefs.find(\n (ref) => ref.nativeElement === activeElement,\n ) as CalendarDateDirective\n if (dateRef.calendarDate.getDay() === this.lastDayOfWeek) return\n const offset = this.getDayOffset(\n dateRef.calendarDate.getDay(),\n this.lastDayOfWeek,\n 'forward',\n )\n const targetElement = this.getElementWithOffset(\n activeElement,\n offset,\n false,\n ) as HTMLButtonElement\n if (targetElement && targetElement.disabled)\n return this.getPreviousFocusable(targetElement)\n return targetElement\n }\n\n getDayOffset(\n from: WeekDay,\n to: WeekDay,\n direction?: 'forward' | 'back',\n ): number {\n return getDayOffset(from, to, this.firstDayOfWeek, direction)\n }\n\n private updateDisableDateConfig(config: Partial<DisableDateConfig>): void {\n this.disableDateConfig = {\n ...this.disableDateConfig,\n ...config,\n }\n }\n}\n","<ng-container *ngFor=\"let weekRow of dateMatrix\">\n <div class=\"nggv-calendar-row\">\n <button\n *ngFor=\"let date of weekRow\"\n class=\"gds-button gds-button-alternative\"\n [attr.data-thook]=\"\n date | dateThook: (date | isDisabled: disableDateConfig)\n \"\n [attr.aria-label]=\"date\"\n [calendarDate]=\"date\"\n [notWithinMonth]=\"!(month === date?.getMonth())\"\n [selected]=\"date | matches: selected\"\n [disabled]=\"date | isDisabled: disableDateConfig\"\n (click)=\"clickDate(date)\"\n >\n {{ date | date: 'd' : undefined : locale }}\n </button>\n </div>\n</ng-container>\n","import { formatDate, WeekDay } from '@angular/common'\nimport { Injectable } from '@angular/core'\n\nexport type CalendarType = 'normal' | 'extended'\n\nexport const enum Month {\n January,\n February,\n March,\n April,\n May,\n June,\n July,\n August,\n September,\n October,\n November,\n December,\n}\n\nexport interface DisableDateConfig {\n fromDate?: Date | undefined\n toDate?: Date | undefined\n excludeDates?: Date[] | undefined\n excludeDays?: WeekDay[] | undefined\n closingTime?: Date | undefined\n}\n\n@Injectable()\nexport class CalendarMonth {\n year: number\n month: number\n id: string\n _date: Date\n\n constructor(date?: Date) {\n this._date = date ? new Date(date) : new Date()\n this._date.setDate(1)\n this._date.setHours(0, 0, 0, 0)\n this.year = this._date.getFullYear()\n this.month = this._date.getMonth()\n this.id = formatDate(this._date, 'yyyyMM', 'en')\n }\n\n /** Creates an instance based of input year and month. */\n static fromObject(obj: { year: number; month: number }): CalendarMonth {\n const objectDate = new Date(obj.year, obj.month, 1)\n return new CalendarMonth(objectDate)\n }\n\n /** Returns a Date representation for the instance. */\n get date(): Date {\n return new Date(this._date)\n }\n\n /** Returns the string id representing the instance in form of 'yyyyMM'. */\n valueOf() {\n return this.id\n }\n\n /** Returns a new instance for next month. */\n nextMonth(): CalendarMonth {\n const next = this.date\n next.setMonth(this.month + 1)\n return new CalendarMonth(next)\n }\n\n /** Returns a new instance for previous month. */\n previousMonth(): CalendarMonth {\n const previous = this.date\n previous.setMonth(this.month - 1)\n return new CalendarMonth(previous)\n }\n\n /** Returns a new instance for next year. */\n nextYear(): CalendarMonth {\n const nextYear = this.date\n nextYear.setFullYear(nextYear.getFullYear() + 1)\n return new CalendarMonth(nextYear)\n }\n\n /** Returns a new instance for previous year. */\n previousYear(): CalendarMonth {\n const previousYear = this.date\n previousYear.setFullYear(previousYear.getFullYear() - 1)\n return new CalendarMonth(previousYear)\n }\n}\n","import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core'\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'\nimport { Subscription } from 'rxjs'\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators'\n\nimport { CalendarMonth } from '../../datepicker.models'\nimport { getMonthArray, getYearArray } from '../../datepicker.utils'\n\nimport type { CalendarType } from '../../datepicker.models'\n\nimport '@sebgroup/green-core/components/icon/icons/chevron-left.js'\nimport '@sebgroup/green-core/components/icon/icons/chevron-right.js'\n\n@Component({\n selector: 'nggv-calendar-control',\n templateUrl: './calendar-control.component.html',\n styleUrls: ['./calendar-control.component.scss'],\n})\nexport class CalendarControlComponent implements OnInit, OnChanges, OnDestroy {\n // nextIcon: IconDefinition = faChevronRight\n // previousIcon: IconDefinition = faChevronLeft\n\n @Output() calendarChange = new EventEmitter<CalendarMonth>()\n\n @Input() activeCalendar!: CalendarMonth\n @Input() locale: string | undefined\n @Input() type: CalendarType = 'normal'\n\n monthArray: Date[] = [] // array used for month dropdown\n yearArray: Date[] = [] // array used for year dropdown\n selectedCalendar: UntypedFormGroup // dropdown form group\n\n private subs: Subscription[] = []\n\n constructor(private fb: UntypedFormBuilder) {\n // initiate form group for dropdown menus\n this.selectedCalendar = this.fb.group({\n year: [],\n month: [],\n })\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (\n changes.activeCalendar &&\n !changes.activeCalendar.isFirstChange() &&\n changes.activeCalendar.currentValue.valueOf() !==\n this.selectedCalendar.value.id\n ) {\n this.selectedCalendar.patchValue(changes.activeCalendar.currentValue)\n }\n }\n\n ngOnInit() {\n // populate drowdowns and labels with data\n this.monthArray = getMonthArray()\n this.yearArray = getYearArray()\n\n // subscribe to year and month changes, and emit event to datepicker\n this.subscribeToFormChanges()\n\n // update control to initial value\n if (this.activeCalendar)\n this.selectedCalendar.patchValue(this.activeCalendar)\n }\n\n ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe())\n }\n\n viewPreviousMonth() {\n const previousMonth = CalendarMonth.fromObject(\n this.selectedCalendar.value,\n ).previousMonth()\n this.selectedCalendar.patchValue(previousMonth)\n }\n\n viewNextMonth() {\n const nextMonth = CalendarMonth.fromObject(\n this.selectedCalendar.value,\n ).nextMonth()\n this.selectedCalendar.patchValue(nextMonth)\n }\n\n viewPreviousYear() {\n const previousYear = CalendarMonth.fromObject(\n this.selectedCalendar.value,\n ).previousYear()\n this.selectedCalendar.patchValue(previousYear)\n }\n\n viewNextYear() {\n const nextYear = CalendarMonth.fromObject(\n this.selectedCalendar.value,\n ).nextYear()\n this.selectedCalendar.patchValue(nextYear)\n }\n\n @HostListener('keydown', ['$event'])\n keyNavigation(event: KeyboardEvent): void {\n if (event.key !== 'PageUp' && event.key !== 'PageDown') return\n event.preventDefault()\n if (event.shiftKey) {\n if (event.key === 'PageUp') return this.viewPreviousYear()\n if (event.key === 'PageDown') return this.viewNextYear()\n }\n if (event.key === 'PageUp') return this.viewPreviousMonth()\n if (event.key === 'PageDown') return this.viewNextMonth()\n }\n\n private subscribeToFormChanges(): void {\n // used to quickly check if the yearsArray needs years appended to it\n let existingYears = this.yearArray.map((e) => e.getFullYear())\n const changes = this.selectedCalendar.valueChanges.pipe(\n debounceTime(1), // added due to this issue: https://github.com/angular/angular/issues/13129\n map((value: { year: number; month: number }) =>\n CalendarMonth.fromObject(value),\n ),\n distinctUntilChanged(\n (prev: CalendarMonth, curr: CalendarMonth) =>\n prev.valueOf() === curr.valueOf(),\n ),\n )\n this.subs.push(\n changes.subscribe({\n next: (value: CalendarMonth) => {\n // if you need to append to year array\n if (existingYears.indexOf(value.year) === -1) {\n this.yearArray.push(value.date)\n this.yearArray.sort((a, b) => a.getFullYear() - b.getFullYear())\n existingYears = this.yearArray.map((e) => e.getFullYear())\n }\n this.calendarChange.emit(value)\n },\n }),\n )\n }\n}\n","<button\n *ngIf=\"type === 'normal'\"\n data-thook=\"previous-month\"\n class=\"nggv-prev-button\"\n (click)=\"viewPreviousMonth()\"\n>\n <gds-icon-chevron-left *nggCoreElement></gds-icon-chevron-left>\n</button>\n\n<ng-container [formGroup]=\"selectedCalendar\">\n <select\n class=\"nggv-calendar-select\"\n data-thook=\"select-month\"\n formControlName=\"month\"\n >\n <option\n *ngFor=\"let month of monthArray\"\n class=\"gds-field-dropdown__label\"\n tabindex=\"0\"\n [value]=\"month.getMonth()\"\n >\n {{ month | date: 'MMMM' : undefined : locale }}\n </option>\n </select>\n\n <select\n class=\"nggv-calendar-select\"\n data-thook=\"select-year\"\n formControlName=\"year\"\n >\n <option\n *ngFor=\"let year of yearArray\"\n class=\"gds-field-dropdown__label\"\n tabindex=\"0\"\n [value]=\"year.getFullYear()\"\n >\n {{ year | date: 'yyyy' : undefined : locale }}\n </option>\n </select>\n</ng-container>\n\n<button\n *ngIf=\"type === 'normal'\"\n data-thook=\"next-month\"\n class=\"nggv-next-button\"\n (click)=\"viewNextMonth()\"\n>\n <gds-icon-chevron-right *nggCoreElement></gds-icon-chevron-right>\n</button>\n","// We must force tsc to interpret this file as a module, resolves\n// \"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"\nexport {}\n\ndeclare global {\n interface Window {\n /** Counter for unique identifiers */\n ngv: {\n ids: { [namespace: string]: number; default: number }\n nextId: (namespace?: string) => string\n }\n }\n}\n\n;(() => {\n // Make sure there is an incremental ID each component can use\n if (typeof window !== 'undefined' && !window.ngv) {\n window.ngv = {\n ids: { default: -1 },\n nextId(namespace = 'default'): string {\n let id = this.ids[namespace] || 0\n if (typeof this.ids[namespace] === 'number') id++\n this.ids[namespace] = id\n return namespace === 'default'\n ? `nggv-${id}`\n : `nggv-${namespace}-${id}`\n },\n }\n }\n})()\n","import { WeekDay } from '@angular/common'\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core'\nimport { Subscription } from 'rxjs'\n\nimport { CalendarMonth } from '../../datepicker.models'\nimport { getSortedWeekDays, isValid } from '../../datepicker.utils'\n\nimport type { CalendarType } from '../../datepicker.models'\n\n@Component({\n selector: 'nggv-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n})\nexport class DatepickerComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('calendarTemplate') calendarTemplate: TemplateRef<any> | null =\n null\n\n /** Emits a Date upon selection. */\n @Output() ngvDateChange = new EventEmitter<Date>()\n\n /** Sets first day of week in calendar. Defaults to Monday. */\n @Input() firstDayOfWeek: WeekDay = WeekDay.Monday\n /** Bank holidays. */\n @Input() disableDates: (string | Date)[] = []\n /** Other non selectable dates. */\n @Input() disableWeekDays: WeekDay[] = []\n /** Minimum number of calendar rows shown. */\n @Input() minCalendarRows = 5\n /** Initial date set as selected. */\n @Input() selected: Date | undefined\n /** Set locale for date format. */\n @Input() locale: string | undefined = 'en-US'\n /** Set type of calendar. */\n @Input() type: CalendarType = 'normal'\n /** Sets a from date of which all dates before will be invalid. */\n @Input() firstValid: Date | undefined\n /** Sets a to date of which all dates after will be invalid. */\n @Input() lastValid: Date | undefined\n /** Sets a closing time for today to toggle availability for today's date. */\n @Input() closingTime: Date | undefined\n /**\n * When true, the datepicker will automatically choose to open above or below the input\n * based on available space in the viewport, and will scale its height to fit if needed.\n */\n @Input() dynamicPosition = false\n /** Needed to determent where to place datepicker if dropdownPosition === 'top' */\n @Input() size: 'small' | 'large' = 'large'\n\n @HostBinding('attr.data-position') get positionAttr() {\n return this.datepickerPosition\n }\n\n @HostBinding('attr.data-size') get sizeAttr() {\n return this.size\n }\n\n /** @internal */\n activeCalendar!: CalendarMonth /* = new CalendarMonth(new Date()) */\n /** @internal */\n\n /** @internal */\n weekdayArray: Date[] = []\n\n /** @internal */\n disabledDatesForActiveMonth: Date[] = []\n\n // Indicates whether the datepicker should be displayed below ('bottom') or above ('top') the input, based on available space.\n datepickerPosition: 'bottom' | 'top' = 'bottom'\n\n private subs: Subscription[] = []\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.selected &&\n !!changes.selected.currentValue &&\n !changes.selected.isFirstChange()\n ) {\n // set active calendar to match selected date\n const activeCalendar = new CalendarMonth(\n new Date(changes.selected.currentValue),\n )\n this.changeActiveCalendar(activeCalendar)\n }\n\n if (changes.disableDates && !changes.disableDates.isFirstChange()) {\n this.disabledDatesForActiveMonth = this.getDisabledDatesFor(\n this.activeCalendar,\n changes.disableDates.currentValue || [],\n )\n }\n }\n\n ngOnInit(): void {\n // initiate week label row\n this.weekdayArray = getSortedWeekDays(this.firstDayOfWeek)\n\n // initiate calendar\n const initDate =\n !!this.selected && isValid(this.selected)\n ? new Date(this.selected)\n : new Date()\n this.activeCalendar = new CalendarMonth(initDate)\n\n if (this.dynamicPosition) this.setDropdownPosition()\n }\n\n ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe())\n }\n\n /**\n * @internal\n * Update local calendar variable and changes displayed calendar.\n */\n changeActiveCalendar(calendar: CalendarMonth): void {\n this.activeCalendar = calendar\n this.disabledDatesForActiveMonth = this.getDisabledDatesFor(\n calendar,\n this.disableDates,\n )\n }\n\n /**\n * @internal\n * Returns a subset of all disabled dates.\n *\n * @param month current month to filter from\n * @param disableDates master list of all disabled dates\n * @returns a subset with current and adjacent months disabled dates\n */\n getDisabledDatesFor(\n calendar: CalendarMonth,\n disableDates?: (string | Date)[],\n ): Date[] {\n if (!disableDates) disableDates = []\n // sets month to target month\n const targetMonth = calendar.date\n\n // gets previous month from target month\n const previousMonth = calendar.previousMonth().date\n\n // gets next month from target month\n const nextMonth = calendar.nextMonth().date\n\n // checks if two dates are within the same year and month\n const withinSameMonth = (a: Date, b: Date): boolean =>\n a.getMonth() === b.getMonth() && a.getFullYear() === b.getFullYear()\n\n // filter out disabled dates for current and adjacent months\n return disableDates\n .map((d: Date | string) => new Date(d))\n .filter(\n (d: Date) =>\n withinSameMonth(d, previousMonth) ||\n withinSameMonth(d, targetMonth) ||\n withinSameMonth(d, nextMonth),\n )\n }\n\n /**\n * Handles date-clicks from calendar compoentn. Emits event or changes calendar.\n * @param date date clicked in calendar\n */\n dateClickHandler(date: Date): void {\n // if a date is clicked within the active month, emit date\n if (date.getMonth() === this.activeCalendar.month)\n return this.ngvDateChange.emit(date)\n // else, change active calendar to match the date clicked\n this.selected = date\n this.changeActiveCalendar(new CalendarMonth(date))\n }\n\n setDropdownPosition() {\n const datePicker = this.elementRef.nativeElement\n const parent = datePicker.parentElement\n\n const rect = parent.getBoundingClientRect()\n\n const viewportHeight = window.innerHeight\n const spaceBelow = viewportHeight - rect.bottom\n const spaceAbove = rect.top\n\n const MARGIN = 10\n const DATEPICKER_HEIGHT = 362 // 6 ROWS OF DATES, TO BE SURE\n let maxDatepickerHeight: number\n\n if (spaceBelow >= DATEPICKER_HEIGHT) {\n this.datepickerPosition = 'bottom'\n maxDatepickerHeight = DATEPICKER_HEIGHT\n } else if (spaceAbove >= DATEPICKER_HEIGHT) {\n this.datepickerPosition = 'top'\n maxDatepickerHeight = DATEPICKER_HEIGHT\n } else if (spaceBelow > spaceAbove) {\n this.datepickerPosition = 'bottom'\n maxDatepickerHeight = Math.max(spaceBelow - MARGIN, DATEPICKER_HEIGHT) // 10px margin, height 362px\n } else {\n this.datepickerPosition = 'top'\n maxDatepickerHeight = Math.max(spaceAbove - MARGIN, DATEPICKER_HEIGHT) // 10px margin, height 362px\n }\n\n this.renderer.setStyle(datePicker, 'max-height', `${maxDatepickerHeight}px`)\n }\n}\n","<!-- control for changing displayed calendar -->\n<nggv-calendar-control\n [activeCalendar]=\"activeCalendar\"\n [locale]=\"locale\"\n [type]=\"type\"\n (calendarChange)=\"changeActiveCalendar($event)\"\n>\n</nggv-calendar-control>\n\n<!-- label row for week -->\n<div class=\"nggv-weekday-row\">\n <span *ngFor=\"let weekday of weekdayArray\">{{\n weekday | date: 'EEE' : undefined : locale\n }}</span>\n</div>\n\n<!-- outlet for active calendar -->\n<div class=\"nggv-calendar-view-container\">\n <ng-container\n *ngTemplateOutlet=\"\n calendarTemplate;\n context: {\n calendar: activeCalendar,\n disableDates: disabledDatesForActiveMonth,\n }\n \"\n >\n </ng-container>\n</div>\n\n<div *ngIf=\"type === 'extended'\" class=\"gds-datepicker__controls\">\n <ng-content></ng-content>\n</div>\n\n<ng-template\n #calendarTemplate\n let-calendar=\"calendar\"\n let-disableDates=\"disableDates\"\n>\n <nggv-calendar\n [year]=\"calendar.year\"\n [month]=\"calendar.month\"\n [type]=\"type\"\n [locale]=\"locale\"\n [disableDates]=\"disableDates\"\n [selected]=\"selected\"\n [lastValid]=\"lastValid\"\n [firstValid]=\"firstValid\"\n [closingTime]=\"closingTime\"\n [disableWeekDays]=\"disableWeekDays\"\n [minCalendarRows]=\"minCalendarRows\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n (dateClick)=\"dateClickHandler($event)\"\n >\n </nggv-calendar>\n</ng-template>\n","import '../../datepicker.globals'\nimport '@sebgroup/green-core/components/icon/icons/calendar.js'\nimport '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js'\n\nimport { WeekDay } from '@angular/common'\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport {\n TRANSLOCO_SCOPE,\n TranslocoScope,\n TranslocoService,\n} from '@jsverse/transloco'\nimport { fromEvent, Observable, Subject } from 'rxjs'\nimport { startWith, takeUntil } from 'rxjs/operators'\n\nimport { DateControlValueAccessorComponent } from '../../date-control-value-accessor/date-control-value-accessor.component'\n\nimport type { CalendarType } from '../../datepicker.models'\n\n/**\n * Date pickers simplify the task of selecting a date in a visual representation of a calendar.\n * https://designlibrary.sebgroup.com/components/component-datepicker\n *\n * Selector: `nggv-dateinput`\n *\n * When focusing an date element, the calendar allows for navigation using both tab and arrow keys.\n * Pressing 'esc' will close the calendar.\n *\n * Requires TranslocoLocale, but in turn allows for setting locale dynamically:\n * https://jsverse.github.io/transloco/docs/plugins/locale/#manually-setting-locale\n *\n * To configure TranslocoLocale, follow this guide:\n * https://jsverse.github.io/transloco/docs/plugins/locale/#setup\n */\n@Component({\n selector: 'nggv-dateinput,nggv-input[type=date]',\n templateUrl: './date-input.component.html',\n styleUrls: ['./date-input.component.scss'],\n})\nexport class DateInputComponent\n extends DateControlValueAccessorComponent\n implements OnDestroy\n{\n @ViewChild('toggleCalendarButton')\n toggleButtonRef?: ElementRef<HTMLButtonElement>\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'date-input'\n\n @HostBinding('class.small') get isSmall(): boolean {\n return this.size === 'small'\n }\n\n @HostBinding('class.large') get isLarge(): boolean {\n return this.size === 'large'\n }\n\n /** Set type of calendar: either 'normal' or 'expanded'. Default is 'normal'. */\n @Input() type: CalendarType = 'normal'\n /** If set to true, the value will not be editable. */\n @Input() readonly = false\n /**\n * An array of Dates or parsable strings that corresponds with dates that should not be selectable in the calendar.\n * I.e. bank holidays.\n */\n @Input() disableDates: (string | Date)[] = []\n /**\n * An array of weekdays that should not be selectable in the calendar.\n * Can be used together with or instead of @Input() disableDates.\n */\n @Input() disableWeekDays: WeekDay[] = []\n /** Mininum number of rows shown in the calendar. */\n @Input() minRows = 5\n /** Sets a from-date of which all dates before will be invalid. */\n @Input() firstValid: Date | undefined\n /** Sets a to-date of which all dates after will be invalid. */\n @Input() lastValid: Date | undefined\n /** Sets a closing time for today to toggle availability for today's date. */\n @Input() closingTime: Date | undefined\n /** Sets first day of week in calendar. Defaults to Monday. */\n @Input() firstDayOfWeek: WeekDay = WeekDay.Monday\n /** If set to true, it will allow to close the calendar on escape button click. */\n @Input() closeCalendarOnEscape = true\n /** If the date-input should close when scrolling the viewport. Default: false*/\n @Input() closeOnScroll = false\n\n /**\n * Sets the displayed size of the date input field.\n */\n @Input() size: 'small' | 'large' = 'large'\n\n @Input() dynamicPosition = false\n\n /** @internal */\n // calendarIcon: IconDefinition = faCalendarDays;\n\n /** @internal */\n shown = false\n\n /** @internal */\n showInput$ = this.showInputDateSrc.asObservable().pipe(startWith(true))\n\n /** Observable for listening to scrolls when the datepicker is open */\n private documentScroll$: Observable<Event> = fromEvent(document, 'scroll')\n /** Observable for listening to clicks outside of the datepicker. */\n private documentClick$: Observable<Event> = fromEvent(document, 'click')\n /** Subject used for unsubscribe pattern on above observable. */\n private datepickerClosed$ = new Subject<boolean>()\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected transloco: TranslocoService,\n protected elementRef: ElementRef,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, elementRef, cdr, transloco)\n // this.showInput$ = this.showInputDateSrc.asObservable()\n }\n\n ngOnDestroy(): void {\n this.datepickerClosed$.next(true)\n this.datepickerClosed$.complete()\n }\n\n /**\n * @internal\n * Called from the datepicker-component when a date button is clicked in the calendar.\n *\n * @param date date object emitted when selecting a date in the datepicker.\n */\n onDateChange(date: Date): void {\n // control value accessor will ensure correct formatting of state\n this.state = DateControlValueAccessorComponent.parseDateLike(date)\n // emit state\n this.onChange(this.state)\n // close datepicker and move focus to datepicker button\n this.setShown(false)\n setTimeout(() => this.toggleButtonRef?.nativeElement.focus(), 1)\n }\n\n /**\n * @internal\n * Called when entering date manually in input field.\n */\n onValueChange(eventTarget: any): void {\n // Will be in the format selected in inputMask\n const value = `${eventTarget.inputmask.undoValue}` ?? ''\n\n // Use parserfunction from inputMask to parse to a date object since value can be in multiple formats\n // Then ontrol value accessor will ensure correct formatting of state\n const parsedDate = DateControlValueAccessorComponent.parseDateLike(\n this.dateInputMask.parser!(value),\n )\n\n this.state = parsedDate\n\n // emit parsed date\n this.onChange(parsedDate)\n this.onTouched()\n }\n\n /**\n * @internal\n * Listen to 'esc' keypress and closes datepicker if open.\n */\n @HostListener('keydown', ['$event'])\n keyListener(event: KeyboardEvent): void {\n if (this.closeCalendarOnEscape && event.key === 'Escape')\n this.setShown(false)\n }\n\n /** @internal */\n toggleDatepicker(): void {\n this.setShown(!this.shown)\n }\n\n /** To externally trigger the datepicker to close. */\n close(): void {\n this.setShown(false)\n }\n\n /**\n * Set the shown state of the datepicker popup. If true the popup will be visible.\n * If the state is set to false, call onTouched to notify any state listeners\n * @param state the shown state which to set.\n */\n private setShown(state = true): void {\n this.shown = state\n if (!this.shown) {\n // if shown is set to false, stop listening to clicks\n this.datepickerClosed$.next(true)\n return this.onTouched()\n }\n // if shown is set to true, reset unsubscribe variable\n this.datepickerClosed$.next(false)\n\n // start listen to scroll if closeOnScroll is enabled\n if (this.closeOnScroll) {\n this.documentScroll$.pipe(takeUntil(this.datepickerClosed$)).subscribe({\n next: () => {\n // if document starts scrolling, close datepicker\n return this.setShown(false)\n },\n })\n }\n\n // start listening for clicks outside the component\n this.documentClick$.pipe(takeUntil(this.datepickerClosed$)).subscribe({\n next: (event: Event) => {\n // clicking on a gray date causes the datepicker to reload the calendar dates,\n // and the button element clicked will no longer be considered as a child of the datepicker.\n // but the event target path will still contain the parent element\n // if target has datepicker parent, keep listening\n const eventPath = event.composedPath()\n const hasDatepickerParent = !!eventPath.find(\n (e) => e === this.elementRef.nativeElement,\n )\n if (hasDatepickerParent) return\n // else the click is considered to be outside, close datepicker\n return this.setShown(false)\n },\n })\n }\n}\n","<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-input'\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div\n class=\"gds-field-label--small description hide-if-empty\"\n *ngIf=\"description\"\n >\n {{ description }}\n </div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state | nggvInputMaskFormat: dateInputMask }}\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- INPUT WRAPPER -->\n <ng-container *ngIf=\"!locked\">\n <div\n class=\"field-wrap\"\n [class.nggv-field--error]=\"invalid\"\n *ngIf=\"showInput$ | async\"\n >\n <!-- INPUT FIELD -->\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"nggv-field-date\"\n type=\"text\"\n autocomplete=\"off\"\n [attr.name]=\"name\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [nggvInputMask]=\"dateInputMask\"\n [value]=\"state\"\n title=\"\"\n (change)=\"onValueChange($event.target)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n\n <button\n aria-label=\"toggle calendar\"\n #toggleCalendarButton\n class=\"nggv-button-date\"\n type=\"button\"\n data-thook=\"toggle-calendar-button\"\n (click)=\"toggleDatepicker()\"\n [disabled]=\"disabled\"\n >\n @if (size === 'small') {\n <gds-icon-calendar *nggCoreElement size=\"16px\"></gds-icon-calendar>\n }\n\n @if (size === 'large') {\n <gds-icon-calendar *nggCoreElement size=\"20px\"></gds-icon-calendar>\n }\n </button>\n </div>\n\n <!-- DATEPICKER -->\n <div class=\"nggv-datepicker\" *ngIf=\"shown\">\n <nggv-datepicker\n #input\n [type]=\"type\"\n [disableDates]=\"disableDates\"\n [disableWeekDays]=\"disableWeekDays\"\n [selected]=\"state\"\n [locale]=\"locale\"\n [minCalendarRows]=\"minRows\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [firstValid]=\"firstValid\"\n [lastValid]=\"lastValid\"\n [closingTime]=\"closingTime\"\n [dynamicPosition]=\"dynamicPosition\"\n [size]=\"size\"\n (ngvDateChange)=\"onDateChange($event)\"\n >\n <ng-content></ng-content>\n </nggv-datepicker>\n </div>\n\n <!-- ERRORS -->\n <ng-container\n *ngIf=\"\n invalid &&\n (error || ngControl?.invalid) &&\n (!errorList || !errorList.length)\n \"\n >\n <label\n class=\"gds-field-notice gds-field-notice--error\"\n [attr.for]=\"id + '-input'\"\n >\n <span class=\"error-item\">\n <span class=\"error-item--icon\">\n <gds-icon-triangle-exclamation\n *nggCoreElement\n [solid]=\"true\"\n size=\"16px\"\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n class=\"error-item--text\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n class=\"error-item--text\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n </label>\n </ng-container>\n <ng-container *ngFor=\"let error of errorList ?? []\">\n <label\n class=\"gds-field-notice gds-field-notice--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && error\"\n >\n <span class=\"error-item\">\n <span class=\"error-item--icon\">\n <gds-icon-triangle-exclamation\n *nggCoreElement\n [solid]=\"true\"\n size=\"16px\"\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n class=\"error-item--text\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n </label>\n </ng-container>\n </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\nimport { TranslocoModule } from '@jsverse/transloco'\n\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\nimport { NggvInputMaskModule } from '@sebgroup/green-angular/src/v-angular/input-mask'\nimport { CalendarControlComponent } from './components/calendar-control/calendar-control.component'\nimport { CalendarComponent } from './components/calendar/calendar.component'\nimport { DateInputComponent } from './components/date-input/date-input.component'\nimport { DatepickerComponent } from './components/datepicker/datepicker.component'\nimport { CalendarDateDirective } from './directives/calendar-date.directive'\nimport { DateThookPipe } from './pipes/date-thook.pipe'\nimport { IsDisabledPipe } from './pipes/is-disabled.pipe'\nimport { MatchesPipe } from './pipes/matches.pipe'\n\n@NgModule({\n declarations: [\n CalendarComponent,\n CalendarDateDirective,\n IsDisabledPipe,\n DateThookPipe,\n CalendarControlComponent,\n DatepickerComponent,\n DateInputComponent,\n MatchesPipe,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslocoModule,\n NggvInputMaskModule,\n NggCoreWrapperModule,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n exports: [DateInputComponent, DatepickerComponent],\n})\nexport class NggvDatepickerModule {}\n","/*\n * Public API Surface of date-picker\n */\nexport * from './date-control-value-accessor/date-control-value-accessor.component'\nexport * from './components/calendar/calendar.component'\nexport * from './components/calendar-control/calendar-control.component'\nexport * from './components/date-input/date-input.component'\nexport * from './components/datepicker/datepicker.component'\nexport * from './directives/calendar-date.directive'\nexport * from './pipes/is-disabled.pipe'\nexport * from './pipes/matches.pipe'\nexport * from './models/dates'\nexport * from './datepicker.models'\nexport * from './datepicker.globals'\nexport * from './datepicker.module'\nexport * from './datepicker.utils'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.CalendarDateDirective","i3.IsDisabledPipe","i4.DateThookPipe","i5.MatchesPipe","i2","i2.CalendarComponent","i3.CalendarControlComponent","i3","i5","i6.DatepickerComponent"],"mappings":";;;;;;;;;;;;;;;;;;;AAKA;;;;AAIG;MACU,iBAAiB,GAAG,CAC/B,cAA+B,EAC/B,MAAe,KACW;;AAE1B,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAA;IAExC,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;AAExD,IAAA,OAAO,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAClD,EAAC;AAEY,MAAA,mBAAmB,GAAG,CAAC,MAAe,KACjD,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,aAAY;AACpE,MAAM,WAAW,GAA2B;AAC1C,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,aAAa,EAAE,YAAY;AAC3B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;CACtB,CAAA;MACY,iBAAiB,GAAG,CAC/B,MAAc,EACd,cAA+B,KAC7B;IACF,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACvC,MAAM,SAAS,GACb,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;IACrE,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AAC3C,IAAA,MAAM,IAAI,GAAmC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EACpE,KAAK,GAAmC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAClE,GAAG,GAAmC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;IAEhE,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,KAAI;AACxC,QAAA,QAAQ,UAAU,CAAC,CAAC,CAAC;AACnB,YAAA,KAAK,GAAG;AACN,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;gBAClB,MAAK;AACP,YAAA,KAAK,GAAG;AACN,gBAAA,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;gBACnB,MAAK;AACP,YAAA,KAAK,GAAG;AACN,gBAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;gBACjB,MAAK;SACR;AACH,KAAC,CAAC,CAAA;IACF,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAEnE,IAAA,OAAO,UAAU,CAAO;AACtB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,WAAW,EAAE,MAAM;QACnB,WAAW;AACX,QAAA,MAAM,EAAE,CAAC,KAAa,KAAI;YACxB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACrC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC5B,OAAO,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;SACzB;AACD,QAAA,YAAY,CAAC,YAAoB,EAAA;AAC/B,YAAA,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ;AAAE,gBAAA,OAAO,EAAE,CAAA;;AAEhE,YAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;;YAEzE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACtC,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAC9C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAC5B,CAAA;;AAED,YAAA,OAAO,gBAAgB;AACpB,iBAAA,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAI;gBACf,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,CAAA;gBACjD,IAAI,GAAG,KAAK,MAAM;AAAE,oBAAA,OAAO,SAAS,CAAA;gBACpC,IAAI,GAAG,KAAK,OAAO;AAAE,oBAAA,OAAO,UAAU,CAAA;AACtC,gBAAA,OAAO,SAAS,CAAA;AAClB,aAAC,CAAC;iBACD,IAAI,CAAC,SAAS,CAAC,CAAA;SACnB;AACF,KAAA,CAAC,CAAA;AACJ,EAAC;MAOY,uBAAuB,GAAG,CACrC,MAAc,EACd,cAA+B,KAC7B;AACF,IAAA,IAAI,CAAC,cAAc;AAAE,QAAA,OAAO,MAAM,CAAA;IAClC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAA;AACjD,IAAA,OAAO,MAAM,CAAA;AACf;;AC1QA;MACsB,iCAAiC,CAAA;;IAqCrD,IAAa,WAAW,CAAC,KAAyB,EAAA;QAChD,IAAI,CAAC,YAAY,GAAG,KAAK;cACrB,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC;cACnD,KAAK,CAAA;QACT,IAAI,CAAC,kBAAkB,GAAG,KAAK;cAC3B,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC;cACnD,KAAK,CAAA;KACV;AACD,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY,CAAA;KACzB;AAyBD;;;AAGG;IACH,IAAa,aAAa,CAAC,QAAgC,EAAA;;AAEzD,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACjC,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAA;;QAG9B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;SACzB,EAAE,GAAG,CAAC,CAAA;KACR;AACD,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;KAC3B;;IAKD,IAAa,MAAM,CAAC,KAAiC,EAAA;AACnD,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;AACpB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;KACzB;AACD,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;KACpB;;IAQD,IAAa,QAAQ,CAAC,KAAiC,EAAA;AACrD,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;KACvB;;AAED,IAAA,IAAI,QAAQ,GAAA;;AAEV,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAA;;QAGvD,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;AACtC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAClD,EAAqB,CACtB,CAAA;AACD,YAAA,OAAO,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAA;SACvC;QAED,OAAM;KACP;;IAID,IAAa,OAAO,CAAC,KAAc,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;KACtB;;AAED,IAAA,IAAI,OAAO,GAAA;QACT,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAA;AAC3E,QAAA,QACE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EACvE;KACF;;IAID,IAAa,KAAK,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;KACpB;;AAED,IAAA,IAAI,KAAK,GAAA;QACP,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC,MAAM,CAAA;AACrE,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAA;KAC5E;AAwCD;;;AAGG;IACH,WAC6B,CAAA,SAAoB,EAGrC,cAA8B,EAC9B,UAAsB,EACtB,GAAsB,EACxB,UAA4B,EAAA;QANT,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAGrC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACxB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAkB;;;QA9KL,IAAE,CAAA,EAAA,GAAI,MAAc,CAAC,GAAG,EAAE,MAAM,CAC/D,YAAY,CACb,CAAA;;QAgCQ,IAAa,CAAA,aAAA,GAAa,KAAK,CAAA;;QAI/B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAA;QA4BlB,IAAO,CAAA,OAAA,GAA+B,SAAS,CAAA;;QAc/C,IAAS,CAAA,SAAA,GAA+B,SAAS,CAAA;QAqBjD,IAAQ,CAAA,QAAA,GAAwB,SAAS,CAAA;QAazC,IAAM,CAAA,MAAA,GAAwB,SAAS,CAAA;;QAYtC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAA;;QAEf,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;;AASf,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAW,CAAA;;;AAKhC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;;AAE7B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE,CAAA;;;QAIrC,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAM,KAAY,GAAC,CAAA;;AAE/B,QAAA,IAAA,CAAA,SAAS,GAAG,SAAc,CAAA;;AAE1B,QAAA,IAAA,CAAA,iBAAiB,GAAe,MAAM,IAAI,CAAA;QAC5C,IAAM,CAAA,MAAA,GAAQ,IAAI,CAAA;;;;AAQlB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAA;AAevC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;;;AAGlB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAA;SACpC;QAED,IAAI,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAA;KACrE;IAED,OAAO,aAAa,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI;;AAEF,YAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,gBAAA,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/D,QAAQ,IAAI;;gBAEV,KAAK,KAAK,IAAI,IAAI,CAAC;AACnB,gBAAA,KAAK,KAAK,EAAE,QAAQ,EAAE,KAAK,cAAc;AACvC,oBAAA,OAAO,IAAI,CAAA;;AAEb,gBAAA,KAAK,OAAO,KAAK,EAAE,QAAQ,KAAK,UAAU;AACxC,oBAAA,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACvD,gBAAA;AACE,oBAAA,OAAO,KAAe,CAAA;aACzB;SACF;QAAC,OAAO,EAAE,EAAE;YACX,OAAM;SACP;KACF;;IAGD,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YAC5C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAClC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CACtE,CAAA;SACF;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,IAAI,EAAE,MAAK;gBACT,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpC,oBAAA,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAA;iBACvC;aACF;AACF,SAAA,CAAC,CAAA;;AAGF,QAAA,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,IAAI,EAAE,MAAK;;AAET,gBAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;aACrB;AACF,SAAA,CAAC,CAAA;KACH;;IAGD,eAAe,GAAA;;;AAGb,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,CAAA;KAC/D;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE;YACtC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;SACpD;AAED,QAAA,IACE,OAAO,CAAC,MAAM,EAAE,YAAY;YAC5B,CAAC,IAAI,CAAC,UAAU;AAChB,YAAA,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,EACjC;YACA,IAAI,CAAC,wBAAwB,EAAE,CAAA;SAChC;AAED,QAAA,IAAI,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE;YACpC,IAAI,CAAC,YAAY,EAAE,CAAA;SACpB;AAED,QAAA,IAAI,OAAO,CAAC,cAAc,EAAE,YAAY,EAAE;AACxC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,YAAY,EAAE,CAAA;aACpB;iBAAM;gBACL,IAAI,CAAC,wBAAwB,EAAE,CAAA;aAChC;SACF;AAED,QAAA,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC1D,IAAI,CAAC,wBAAwB,EAAE,CAAA;SAChC;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAA;KAC5B;;AAGD,IAAA,OAAO,CAAC,KAAY,EAAA;AAClB,QAAA,KAAK,CAAC,eAAe;AACnB,cAAE,KAAK,CAAC,eAAe,EAAE;eACtB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC1B;;AAGD,IAAA,MAAM,CAAC,KAAY,EAAA;AACjB,QAAA,KAAK,CAAC,eAAe;AACnB,cAAE,KAAK,CAAC,eAAe,EAAE;eACtB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;QAC/B,IAAI,CAAC,SAAS,EAAE,CAAA;AAChB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACzB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;KACzB;;IAGD,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;KACvD;AAED;;;;;;;;AAQG;IACH,wBAAwB,GAAA;AACtB,QAAA,MAAM,MAAM,GACV,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAA;AAEnE,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB;cACvC,uBAAuB,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC;AACvE,cAAE,uBAAuB,CACrB,mBAAmB,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EACzC,IAAI,CAAC,cAAc,CACpB,CAAA;QACL,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;KACpE;IAED,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB;kBACvC,uBAAuB,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC;AACvE,kBAAE,uBAAuB,CACrB,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAC7B,IAAI,CAAC,cAAc,CACpB,CAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,iBAAiB,CACpC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,cAAc,CACpB,CAAA;SACF;KACF;;;;;AAOD,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;KACnB;AAED;;AAEG;IACH,IAAI,KAAK,CAAC,KAAK,EAAA;AACb,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;KACpB;;AAGD,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC1B;;AAGD,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,KAAI;;YAExB,MAAM,SAAS,GAAG,iCAAiC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YACxE,EAAE,CAAC,SAAS,CAAC,CAAA;AACf,SAAC,CAAA;KACF;;AAGD,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;KACpB;;AAGD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;;AAG1B,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;SACzB;KACF;;;;;AAOD,IAAA,QAAQ,CAAC,QAAyB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAA;KACZ;;AAGD,IAAA,yBAAyB,CAAC,EAAc,EAAA;AACtC,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;KAC5B;;;;;AAOD,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,MAAM,MAAM,GAA4B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA;AAC7D,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI,CAAA;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACnC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA;KACtC;AAEO,IAAA,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAA;KACzB;AAxbmB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,uEAqM3C,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AArML,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,EAYnB,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EAMV,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,2GAIlB,UAAU,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAtBlB,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAFtD,SAAS;;0BAqML,IAAI;;0BAAI,QAAQ;;0BAChB,QAAQ;;0BACR,MAAM;2BAAC,eAAe,CAAA;iIAxLzB,eAAe,EAAA,CAAA;sBADd,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAO/C,SAAS,EAAA,CAAA;sBADR,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAIN,QAAQ,EAAA,CAAA;sBAAjD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBAKP,EAAE,EAAA,CAAA;sBAAlC,WAAW;uBAAC,SAAS,CAAA;;sBAAG,KAAK;gBAIrB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAIG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAcG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKO,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAmBO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAQG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBAMO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAqBO,OAAO,EAAA,CAAA;sBAAnB,KAAK;gBAaO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBAUG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAQa,QAAQ,EAAA,CAAA;sBAA1B,MAAM;gBAEY,OAAO,EAAA,CAAA;sBAAzB,MAAM;;;ACzNT,MAAM,QAAQ,GAAc;AAC1B,IAAA,OAAO,CAAC,MAAM;AACd,IAAA,OAAO,CAAC,OAAO;AACf,IAAA,OAAO,CAAC,SAAS;AACjB,IAAA,OAAO,CAAC,QAAQ;AAChB,IAAA,OAAO,CAAC,MAAM;AACd,IAAA,OAAO,CAAC,QAAQ;AAChB,IAAA,OAAO,CAAC,MAAM;CACf,CAAA;AAEY,MAAA,YAAY,GAAG,CAAC,cAAuB,KAAe;IACjE,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;AAChD,IAAA,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAClC,EAAC;AAED;MACa,iBAAiB,GAAG,CAC/B,cAAuB,EACvB,SAAgB,KACN;IACV,IAAI,SAAS,KAAK,SAAS;AAAE,QAAA,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;;AAGnD,IAAA,MAAM,cAAc,GAAc,YAAY,CAAC,cAAc,CAAC,CAAA;;IAG9D,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;AAChE,IAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;IACvC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,CAAA;;IAGxD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,MAAc,KAAI;;AAEvD,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAA;QACzC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAA;;AAGnD,QAAA,OAAO,WAAW,CAAA;AACpB,KAAC,CAAC,CAAA;AACJ,EAAC;AAED;AACO,MAAM,kBAAkB,GAAG,CAChC,KAAa,EACb,IAAY,EACZ,QAAQ,GAAG,CAAC,EACZ,cAAuB,KACX;;AAEZ,IAAA,MAAM,MAAM,GAAa,IAAI,KAAK,CAAS,QAAQ,CAAC,CAAA;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAEf,IAAA,MAAM,QAAQ,GAAG,CAAG,EAAA,KAAK,GAAG,CAAC,CAAA,CAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAChD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAG,EAAA,IAAI,CAAI,CAAA,EAAA,QAAQ,CAAK,GAAA,CAAA,CAAC,CAAA;IAC/C,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;;IAGzD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,UAAkB,KAAI;AAC9D,QAAA,MAAM,MAAM,GAAG,UAAU,GAAG,CAAC,CAAA;;AAE7B,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;QACvC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAA;AACjD,QAAA,OAAO,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;AACvD,KAAC,CAAC,CAAA;;IAGF,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,IAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;AACvC,IAAA,WAAW,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;AAC/B,IAAA,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEtB,IAAA,IAAI,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE;;AAEpC,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;QACvC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;QAC5C,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAA;KAChE;;AAED,IAAA,OAAO,UAAU,CAAA;AACnB,EAAC;AAED;MACa,iBAAiB,GAAG,CAC/B,IAAU,EACV,cAAuB,KACf;;AAER,IAAA,MAAM,cAAc,GAAc,YAAY,CAAC,cAAc,CAAC,CAAA;;AAG9D,IAAA,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;AACnC,IAAA,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;;IAGvB,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;AAC5D,IAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAA;;AAE1C,IAAA,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;AAC/B,IAAA,OAAO,WAAW,CAAA;AACpB,EAAC;AAEM,MAAM,YAAY,GAAG,CAC1B,IAAa,EACb,EAAW,EACX,cAAuB,EACvB,SAA8B,KACpB;AACV,IAAA,MAAM,cAAc,GAAc,YAAY,CAAC,cAAc,CAAC,CAAA;IAE9D,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AAE1C,IAAA,MAAM,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;AAElC,IAAA,IAAI,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,GAAG,CAAC,CAAA;AAC5D,IAAA,IAAI,SAAS,KAAK,MAAM,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,GAAG,CAAC,CAAA;AACzD,IAAA,OAAO,MAAM,CAAA;AACf,EAAC;AAED;AACO,MAAM,aAAa,GAAG,MAAa;AACxC,IAAA,MAAM,cAAc,GAAG,IAAI,IAAI,EAAE,CAAA;AACjC,IAAA,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC1B,IAAA,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;;;AAIzB,IAAA,MAAM,UAAU,GAAW,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;;;;IAK7D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAO,EAAE,KAAa,KAAI;AAC/C,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACpB,QAAA,OAAO,IAAI,CAAA;AACb,KAAC,CAAC,CAAA;AACJ,EAAC;AAED;AACO,MAAM,YAAY,GAAG,MAAa;AACvC,IAAA,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAA;AAC9B,IAAA,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AACvB,IAAA,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACtB,IAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAA;IACtC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAA;AACnD,IAAA,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAChC,EAAC;AAED;MACa,KAAK,GAAG,CAAC,CAAmB,EAAE,CAAmB,KAAa;AACzE,IAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAAE,QAAA,OAAO,KAAK,CAAA;IAC1B,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;AAAE,QAAA,OAAO,KAAK,CAAA;IAC7C,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AAAE,QAAA,OAAO,KAAK,CAAA;IAC/C,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE;AAAE,QAAA,OAAO,KAAK,CAAA;AACrD,IAAA,OAAO,IAAI,CAAA;AACb,EAAC;AAEY,MAAA,iBAAiB,GAAG,CAAC,YAA8B,KAAa;AAC3E,IAAA,IAAI,CAAC,YAAY;AAAE,QAAA,OAAO,KAAK,CAAA;IAC/B,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,YAAY,CAAC,OAAO,EAAE,CAAA;AAC7C,EAAC;AAED;;;;;;AAMG;MACU,QAAQ,GAAG,CAAC,IAAU,EAAE,WAAiB,KAAa;;IAEjE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,EAAE;QACpD,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;KACtD;;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,WAAW,CAAC,QAAQ,EAAE,EAAE;QAC9C,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAA;KAChD;;IAED,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAA;AAC/C,EAAC;AAED;;;;;;AAMG;MACU,OAAO,GAAG,CAAC,IAAU,EAAE,WAAiB,KAAa;;IAEhE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,EAAE;QACpD,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;KACtD;;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,WAAW,CAAC,QAAQ,EAAE,EAAE;QAC9C,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAA;KAChD;;IAED,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAA;AAC/C,EAAC;AAED;;;;;AAKG;AACU,MAAA,OAAO,GAAG,CAAC,KAAU,KAAa;;AAE7C,IAAA,MAAM,IAAI,GACR,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7D,UAAE,IAAI,IAAI,CAAC,KAAK,CAAC;UACf,IAAI,CAAA;IAEV,QAAQ,IAAI;;AAEV,QAAA,KAAK,OAAO,KAAK,EAAE,QAAQ,KAAK,UAAU,CAAC;AAC3C,QAAA,KAAK,OAAO,IAAI,EAAE,QAAQ,KAAK,UAAU;AACvC,YAAA,OAAO,IAAI,CAAA;;QAEb,KAAK,KAAK,IAAI,IAAI,CAAC;AACnB,QAAA,KAAK,IAAI,EAAE,QAAQ,EAAE,KAAK,cAAc;AACtC,YAAA,OAAO,KAAK,CAAA;AACd,QAAA;AACE,YAAA,OAAO,KAAK,CAAA;KACf;AACH;;MCnNa,qBAAqB,CAAA;AAShC,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAA;KACrC;AAED,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAPH,IAAO,CAAA,OAAA,GAAG,KAAK,CAAA;KAOR;IAE9C,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;KACpD;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE;YAClC,CAAC;YAAC,IAAI,CAAC,aAAmC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;SACpE;KACF;+GAvBU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;+EAEU,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAC6C,QAAQ,EAAA,CAAA;sBAA1D,WAAW;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,GAAmB,UAAA,wBAAA;;sBAAG,KAAK;gBAGhD,cAAc,EAAA,CAAA;sBAFb,WAAW;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,GAAyB,kBAAA,8BAAA;;sBAC7C,KAAK;gBAEiC,OAAO,EAAA,CAAA;sBAA7C,WAAW;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,GAAgB,OAAA,qBAAA;gBAC5B,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;AClBR,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;MAGX,cAAc,CAAA;;AAEzB,IAAA,SAAS,CAAC,KAAW,EAAE,MAAA,GAA4B,EAAE,EAAA;AACnD,QAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;;AAG3E,QAAA,IAAI,WAAW,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,iBAAiB,CAAC,WAAW,CAAC;AACtE,YAAA,OAAO,IAAI,CAAA;;AAGb,QAAA,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;AAClE,YAAA,OAAO,IAAI,CAAA;;AAGb,QAAA,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;AAAE,YAAA,OAAO,IAAI,CAAA;;AAG1E,QAAA,IACE,WAAW;AACX,YAAA,WAAW,CAAC,MAAM;YAClB,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AAE1C,YAAA,OAAO,IAAI,CAAA;;AAGb,QAAA,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE;AACvC,YAAA,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAO,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;SACzD;;AAGD,QAAA,OAAO,KAAK,CAAA;KACb;+GA/BU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAd,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA,EAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,IAAI;mBAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;;;MCTf,aAAa,CAAA;AACxB,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChD,QAAA,OAAO,KAAK,CAAA;KACb;IAED,SAAS,CAAC,IAAU,EAAE,UAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;;AAEzB,YAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;;AAGnD,YAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;;YAGjE,MAAM,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAA;YAC9D,MAAM,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YAE3D,MAAM,cAAc,GAClB,gBAAgB,GAAG,CAAC,GAAG,GAAG,GAAG,gBAAgB,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAA;AAEhE,YAAA,OAAO,CAAQ,KAAA,EAAA,cAAc,CAAG,EAAA,wBAAwB,KAAK,CAAC,GAAG,EAAE,GAAG,wBAAwB,EAAE,CAAA;SACjG;AAED,QAAA,OAAO,eAAe,CAAA;KACvB;+GA1BU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,IAAI;mBAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;;;MCKd,WAAW,CAAA;IACtB,SAAS,CAAC,KAAW,EAAE,QAA0B,EAAA;AAC/C,QAAA,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;KAC9B;+GAHU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAX,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,SAAS;AAChB,iBAAA,CAAA;;;MCqBY,iBAAiB,CAAA;AAL9B,IAAA,WAAA,GAAA;AAMY,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAA;QAWrC,IAAe,CAAA,eAAA,GAAG,CAAC,CAAA;AACnB,QAAA,IAAA,CAAA,cAAc,GAAY,OAAO,CAAC,MAAM,CAAA;QACxC,IAAI,CAAA,IAAA,GAAiB,QAAQ,CAAA;AAmBtC,QAAA,IAAA,CAAA,UAAU,GAAa,CAAC,EAAE,CAAC,CAAA;QAC3B,IAAiB,CAAA,iBAAA,GAAsB,EAAE,CAAA;AAEjC,QAAA,IAAA,CAAA,aAAa,GAAY,OAAO,CAAC,MAAM,CAAA;AA6KhD,KAAA;;IAhMC,IAAa,YAAY,CAAC,KAAyB,EAAA;QACjD,IAAI,CAAC,uBAAuB,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAA;KAC5D;IACD,IAAa,eAAe,CAAC,KAA4B,EAAA;QACvD,IAAI,CAAC,uBAAuB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;KACrD;IACD,IAAa,UAAU,CAAC,KAAuB,EAAA;QAC7C,IAAI,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;KAClD;IACD,IAAa,SAAS,CAAC,KAAuB,EAAA;QAC5C,IAAI,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;KAChD;IACD,IAAa,WAAW,CAAC,KAAuB,EAAA;QAC9C,IAAI,CAAC,uBAAuB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;KACrD;AAOD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;SACxD;AAED,QAAA,IAAI,OAAO,CAAC,cAAc,EAAE,YAAY,EAAE;AACxC,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAC/B,OAAO,CAAC,cAAc,CAAC,YAAY,CACpC,CAAC,GAAG,EAAa,CAAA;SACnB;AAED,QAAA,IACE,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,KAAK,SAAS;AACxC,YAAA,OAAO,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI;AACtC,YAAA,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY;AAC5B,YAAA,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY;AACtC,YAAA,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,YAAY,EACvC;YACA,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAClC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,CACpB,CAAA;SACF;KACF;AAED,IAAA,SAAS,CAAC,IAAU,EAAA;AAClB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC1B;AAGD,IAAA,aAAa,CAAC,KAAoB,EAAA;AAChC,QAAA,IAAI,aAAsC,CAAA;AAC1C,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK;AACrB,YAAA,aAAa,GAAG,QAAQ,CAAC,aAA4B,CAAA;AACvD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,EAAE;YAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA;AAC1D,YAAA,IAAI,aAAa;gBAAE,aAAa,CAAC,KAAK,EAAE,CAAA;SACzC;AAED,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAA;AAC9D,YAAA,IAAI,aAAa;gBAAE,aAAa,CAAC,KAAK,EAAE,CAAA;SACzC;AAED,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;YAC3B,KAAK,CAAC,cAAc,EAAE,CAAA;YACtB,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAA;AAClE,YAAA,IAAI,aAAa;gBAAE,aAAa,CAAC,KAAK,EAAE,CAAA;SACzC;AAED,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YAC7B,KAAK,CAAC,cAAc,EAAE,CAAA;YACtB,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;AACjE,YAAA,IAAI,aAAa;gBAAE,aAAa,CAAC,KAAK,EAAE,CAAA;SACzC;AAED,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YAClD,IAAI,aAAa,EAAE;AACjB,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACtC,CAAC,GAAG,KAAK,GAAG,CAAC,aAAa,KAAK,aAAa,CAC7C,CAAA;AACD,gBAAA,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE;oBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;iBAC3C;aACF;SACF;AAED,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE;YACxB,KAAK,CAAC,cAAc,EAAE,CAAA;AACtB,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAA;AAClD,YAAA,IAAI,aAAa;gBAAE,aAAa,CAAC,KAAK,EAAE,CAAA;SACzC;AAED,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;YACvB,KAAK,CAAC,cAAc,EAAE,CAAA;AACtB,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;AACjD,YAAA,IAAI,aAAa;gBAAE,aAAa,CAAC,KAAK,EAAE,CAAA;SACzC;KACF;AAED,IAAA,oBAAoB,CAClB,WAAoC,EACpC,UAAkB,EAClB,iBAAiB,GAAG,IAAI,EAAA;AAExB,QAAA,IAAI,CAAC,WAAW;YAAE,OAAM;AACxB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc;AAClC,aAAA,OAAO,EAAE;aACT,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,aAAa,CAAC;aAC/B,OAAO,CAAC,WAAW,CAAC,CAAA;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,CAAA;AAC5D,QAAA,IAAI,CAAC,IAAI;YAAE,OAAM;AACjB,QAAA,IAAI,iBAAiB,IAAI,IAAI,CAAC,QAAQ;YACpC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,aAAa,CAAA;KAC1B;AAED,IAAA,gBAAgB,CACd,WAAoC,EAAA;AAEpC,QAAA,IAAI,CAAC,WAAW;YAAE,OAAM;QACxB,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;KACjD;AAED,IAAA,oBAAoB,CAClB,WAAoC,EAAA;AAEpC,QAAA,IAAI,CAAC,WAAW;YAAE,OAAM;QACxB,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;KAClD;IAED,qBAAqB,GAAA;AACnB,QAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,aAA4B,CAAA;AAC3D,QAAA,IAAI,CAAC,aAAa;YAAE,OAAM;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACtC,CAAC,GAAG,KAAK,GAAG,CAAC,aAAa,KAAK,aAAa,CACpB,CAAA;QAC1B,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,cAAc;YAAE,OAAM;AACjE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAC9B,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,EAC7B,IAAI,CAAC,cAAc,EACnB,MAAM,CACP,CAAA;AACD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAC7C,aAAa,EACb,MAAM,EACN,KAAK,CACe,CAAA;AACtB,QAAA,IAAI,aAAa,IAAI,aAAa,CAAC,QAAQ;AACzC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA;AAC7C,QAAA,OAAO,aAAa,CAAA;KACrB;IAED,oBAAoB,GAAA;AAClB,QAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,aAA4B,CAAA;AAC3D,QAAA,IAAI,CAAC,aAAa;YAAE,OAAM;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACtC,CAAC,GAAG,KAAK,GAAG,CAAC,aAAa,KAAK,aAAa,CACpB,CAAA;QAC1B,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,aAAa;YAAE,OAAM;AAChE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAC9B,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,EAC7B,IAAI,CAAC,aAAa,EAClB,SAAS,CACV,CAAA;AACD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAC7C,aAAa,EACb,MAAM,EACN,KAAK,CACe,CAAA;AACtB,QAAA,IAAI,aAAa,IAAI,aAAa,CAAC,QAAQ;AACzC,YAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAA;AACjD,QAAA,OAAO,aAAa,CAAA;KACrB;AAED,IAAA,YAAY,CACV,IAAa,EACb,EAAW,EACX,SAA8B,EAAA;AAE9B,QAAA,OAAO,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;KAC9D;AAEO,IAAA,uBAAuB,CAAC,MAAkC,EAAA;QAChE,IAAI,CAAC,iBAAiB,GAAG;YACvB,GAAG,IAAI,CAAC,iBAAiB;AACzB,YAAA,GAAG,MAAM;SACV,CAAA;KACF;+GAhNU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAGd,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BrC,spBAmBA,EAAA,MAAA,EAAA,CAAA,sqEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,WAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDQa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,spBAAA,EAAA,MAAA,EAAA,CAAA,sqEAAA,CAAA,EAAA,CAAA;8BAKf,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAGP,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,qBAAqB,CAAA;gBAG1B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGO,YAAY,EAAA,CAAA;sBAAxB,KAAK;gBAGO,eAAe,EAAA,CAAA;sBAA3B,KAAK;gBAGO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBAGO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAGO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAyCN,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEnExB,aAAa,CAAA;AAMxB,IAAA,WAAA,CAAY,IAAW,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAA;AAC/C,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;AAClC,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;KACjD;;IAGD,OAAO,UAAU,CAAC,GAAoC,EAAA;AACpD,QAAA,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AACnD,QAAA,OAAO,IAAI,aAAa,CAAC,UAAU,CAAC,CAAA;KACrC;;AAGD,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC5B;;IAGD,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,EAAE,CAAA;KACf;;IAGD,SAAS,GAAA;AACP,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;AAC7B,QAAA,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAA;KAC/B;;IAGD,aAAa,GAAA;AACX,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;QAC1B,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;AACjC,QAAA,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAA;KACnC;;IAGD,QAAQ,GAAA;AACN,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;QAC1B,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAA;AAChD,QAAA,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAA;KACnC;;IAGD,YAAY,GAAA;AACV,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAA;QAC9B,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAA;AACxD,QAAA,OAAO,IAAI,aAAa,CAAC,YAAY,CAAC,CAAA;KACvC;+GAzDU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAb,aAAa,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;;;MCAE,wBAAwB,CAAA;AAgBnC,IAAA,WAAA,CAAoB,EAAsB,EAAA;QAAtB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAoB;;;AAZhC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAiB,CAAA;QAInD,IAAI,CAAA,IAAA,GAAiB,QAAQ,CAAA;AAEtC,QAAA,IAAA,CAAA,UAAU,GAAW,EAAE,CAAA;AACvB,QAAA,IAAA,CAAA,SAAS,GAAW,EAAE,CAAA;QAGd,IAAI,CAAA,IAAA,GAAmB,EAAE,CAAA;;QAI/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AACpC,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,KAAK,EAAE,EAAE;AACV,SAAA,CAAC,CAAA;KACH;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IACE,OAAO,CAAC,cAAc;AACtB,YAAA,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE;AACvC,YAAA,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE;AAC3C,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAChC;YACA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;SACtE;KACF;IAED,QAAQ,GAAA;;AAEN,QAAA,IAAI,CAAC,UAAU,GAAG,aAAa,EAAE,CAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,CAAA;;QAG/B,IAAI,CAAC,sBAAsB,EAAE,CAAA;;QAG7B,IAAI,IAAI,CAAC,cAAc;YACrB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;KACxD;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;KAC9C;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAC5C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAC5B,CAAC,aAAa,EAAE,CAAA;AACjB,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;KAChD;IAED,aAAa,GAAA;AACX,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CACxC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAC5B,CAAC,SAAS,EAAE,CAAA;AACb,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;KAC5C;IAED,gBAAgB,GAAA;AACd,QAAA,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAC3C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAC5B,CAAC,YAAY,EAAE,CAAA;AAChB,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;KAC/C;IAED,YAAY,GAAA;AACV,QAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CACvC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAC5B,CAAC,QAAQ,EAAE,CAAA;AACZ,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;KAC3C;AAGD,IAAA,aAAa,CAAC,KAAoB,EAAA;QAChC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU;YAAE,OAAM;QAC9D,KAAK,CAAC,cAAc,EAAE,CAAA;AACtB,QAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;AAAE,gBAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAA;AAC1D,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU;AAAE,gBAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAA;SACzD;AACD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;AAAE,YAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAA;AAC3D,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU;AAAE,YAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAA;KAC1D;IAEO,sBAAsB,GAAA;;AAE5B,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;AAC9D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CACrD,YAAY,CAAC,CAAC,CAAC;AACf,QAAA,GAAG,CAAC,CAAC,KAAsC,KACzC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAChC,EACD,oBAAoB,CAClB,CAAC,IAAmB,EAAE,IAAmB,KACvC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CACpC,CACF,CAAA;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CACZ,OAAO,CAAC,SAAS,CAAC;AAChB,YAAA,IAAI,EAAE,CAAC,KAAoB,KAAI;;AAE7B,gBAAA,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;AAChE,oBAAA,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;iBAC3D;AACD,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aAChC;AACF,SAAA,CAAC,CACH,CAAA;KACF;+GAtHU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,4QC5BrC,2sCAiDA,EAAA,MAAA,EAAA,CAAA,okFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDrBa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,2sCAAA,EAAA,MAAA,EAAA,CAAA,okFAAA,CAAA,EAAA,CAAA;uFAQvB,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAEE,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAyEN,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AE9FrC,CAAC;AAAA,CAAC,MAAK;;IAEL,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;QAChD,MAAM,CAAC,GAAG,GAAG;AACX,YAAA,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;YACpB,MAAM,CAAC,SAAS,GAAG,SAAS,EAAA;gBAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;gBACjC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,QAAQ;AAAE,oBAAA,EAAE,EAAE,CAAA;AACjD,gBAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;gBACxB,OAAO,SAAS,KAAK,SAAS;sBAC1B,CAAQ,KAAA,EAAA,EAAE,CAAE,CAAA;AACd,sBAAE,CAAQ,KAAA,EAAA,SAAS,CAAI,CAAA,EAAA,EAAE,EAAE,CAAA;aAC9B;SACF,CAAA;KACF;AACH,CAAC,GAAG;;MCDS,mBAAmB,CAAA;AAmC9B,IAAA,IAAuC,YAAY,GAAA;QACjD,OAAO,IAAI,CAAC,kBAAkB,CAAA;KAC/B;AAED,IAAA,IAAmC,QAAQ,GAAA;QACzC,OAAO,IAAI,CAAC,IAAI,CAAA;KACjB;IAiBD,WACU,CAAA,UAAsB,EACtB,QAAmB,EAAA;QADnB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QA3DE,IAAgB,CAAA,gBAAA,GAC7C,IAAI,CAAA;;AAGI,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAQ,CAAA;;AAGzC,QAAA,IAAA,CAAA,cAAc,GAAY,OAAO,CAAC,MAAM,CAAA;;QAExC,IAAY,CAAA,YAAA,GAAsB,EAAE,CAAA;;QAEpC,IAAe,CAAA,eAAA,GAAc,EAAE,CAAA;;QAE/B,IAAe,CAAA,eAAA,GAAG,CAAC,CAAA;;QAInB,IAAM,CAAA,MAAA,GAAuB,OAAO,CAAA;;QAEpC,IAAI,CAAA,IAAA,GAAiB,QAAQ,CAAA;AAOtC;;;AAGG;QACM,IAAe,CAAA,eAAA,GAAG,KAAK,CAAA;;QAEvB,IAAI,CAAA,IAAA,GAAsB,OAAO,CAAA;;;QAe1C,IAAY,CAAA,YAAA,GAAW,EAAE,CAAA;;QAGzB,IAA2B,CAAA,2BAAA,GAAW,EAAE,CAAA;;QAGxC,IAAkB,CAAA,kBAAA,GAAqB,QAAQ,CAAA;QAEvC,IAAI,CAAA,IAAA,GAAmB,EAAE,CAAA;KAK7B;AAEJ,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IACE,OAAO,CAAC,QAAQ;AAChB,YAAA,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC/B,YAAA,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,EACjC;;AAEA,YAAA,MAAM,cAAc,GAAG,IAAI,aAAa,CACtC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CACxC,CAAA;AACD,YAAA,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAA;SAC1C;AAED,QAAA,IAAI,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE;AACjE,YAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,mBAAmB,CACzD,IAAI,CAAC,cAAc,EACnB,OAAO,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CACxC,CAAA;SACF;KACF;IAED,QAAQ,GAAA;;QAEN,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;;AAG1D,QAAA,MAAM,QAAQ,GACZ,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,cAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AACzB,cAAE,IAAI,IAAI,EAAE,CAAA;QAChB,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAA;QAEjD,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,mBAAmB,EAAE,CAAA;KACrD;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;KAC9C;AAED;;;AAGG;AACH,IAAA,oBAAoB,CAAC,QAAuB,EAAA;AAC1C,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAA;AAC9B,QAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,mBAAmB,CACzD,QAAQ,EACR,IAAI,CAAC,YAAY,CAClB,CAAA;KACF;AAED;;;;;;;AAOG;IACH,mBAAmB,CACjB,QAAuB,EACvB,YAAgC,EAAA;AAEhC,QAAA,IAAI,CAAC,YAAY;YAAE,YAAY,GAAG,EAAE,CAAA;;AAEpC,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAA;;QAGjC,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,CAAA;;QAGnD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,CAAA;;AAG3C,QAAA,MAAM,eAAe,GAAG,CAAC,CAAO,EAAE,CAAO,KACvC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;;AAGtE,QAAA,OAAO,YAAY;aAChB,GAAG,CAAC,CAAC,CAAgB,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;aACtC,MAAM,CACL,CAAC,CAAO,KACN,eAAe,CAAC,CAAC,EAAE,aAAa,CAAC;AACjC,YAAA,eAAe,CAAC,CAAC,EAAE,WAAW,CAAC;AAC/B,YAAA,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAChC,CAAA;KACJ;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,IAAU,EAAA;;QAEzB,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK;YAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;AAEtC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC,oBAAoB,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;KACnD;IAED,mBAAmB,GAAA;AACjB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAA;AAChD,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAA;AAEvC,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAA;AAE3C,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAA;AACzC,QAAA,MAAM,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC,MAAM,CAAA;AAC/C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAA;QAE3B,MAAM,MAAM,GAAG,EAAE,CAAA;AACjB,QAAA,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAC7B,QAAA,IAAI,mBAA2B,CAAA;AAE/B,QAAA,IAAI,UAAU,IAAI,iBAAiB,EAAE;AACnC,YAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAA;YAClC,mBAAmB,GAAG,iBAAiB,CAAA;SACxC;AAAM,aAAA,IAAI,UAAU,IAAI,iBAAiB,EAAE;AAC1C,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAA;YAC/B,mBAAmB,GAAG,iBAAiB,CAAA;SACxC;AAAM,aAAA,IAAI,UAAU,GAAG,UAAU,EAAE;AAClC,YAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAA;AAClC,YAAA,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,EAAE,iBAAiB,CAAC,CAAA;SACvE;aAAM;AACL,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAA;AAC/B,YAAA,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,EAAE,iBAAiB,CAAC,CAAA;SACvE;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,CAAA,EAAG,mBAAmB,CAAA,EAAA,CAAI,CAAC,CAAA;KAC7E;+GAjMU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,iqBC5BhC,66CAwDA,EAAA,MAAA,EAAA,CAAA,yhCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD5Ba,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,66CAAA,EAAA,MAAA,EAAA,CAAA,yhCAAA,CAAA,EAAA,CAAA;uGAKI,gBAAgB,EAAA,CAAA;sBAA9C,SAAS;uBAAC,kBAAkB,CAAA;gBAInB,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAGE,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAEG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEiC,YAAY,EAAA,CAAA;sBAAlD,WAAW;uBAAC,oBAAoB,CAAA;gBAIE,QAAQ,EAAA,CAAA;sBAA1C,WAAW;uBAAC,gBAAgB,CAAA;;;AEpC/B;;;;;;;;;;;;;;AAcG;AAMG,MAAO,kBACX,SAAQ,iCAAiC,CAAA;AASzC,IAAA,IAAgC,OAAO,GAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAA;KAC7B;AAED,IAAA,IAAgC,OAAO,GAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAA;KAC7B;IAsDD,WAC6B,CAAA,SAAoB,EAGrC,cAA8B,EAC9B,SAA2B,EAC3B,UAAsB,EACtB,GAAsB,EAAA;QAEhC,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QARjC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAGrC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;;QAtEO,IAAK,CAAA,KAAA,GAC5C,YAAY,CAAA;;QAWL,IAAI,CAAA,IAAA,GAAiB,QAAQ,CAAA;;QAE7B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AACzB;;;AAGG;QACM,IAAY,CAAA,YAAA,GAAsB,EAAE,CAAA;AAC7C;;;AAGG;QACM,IAAe,CAAA,eAAA,GAAc,EAAE,CAAA;;QAE/B,IAAO,CAAA,OAAA,GAAG,CAAC,CAAA;;AAQX,QAAA,IAAA,CAAA,cAAc,GAAY,OAAO,CAAC,MAAM,CAAA;;QAExC,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAA;;QAE5B,IAAa,CAAA,aAAA,GAAG,KAAK,CAAA;AAE9B;;AAEG;QACM,IAAI,CAAA,IAAA,GAAsB,OAAO,CAAA;QAEjC,IAAe,CAAA,eAAA,GAAG,KAAK,CAAA;;;;QAMhC,IAAK,CAAA,KAAA,GAAG,KAAK,CAAA;;AAGb,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;;AAG/D,QAAA,IAAA,CAAA,eAAe,GAAsB,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;;AAElE,QAAA,IAAA,CAAA,cAAc,GAAsB,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;;AAEhE,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAW,CAAA;;KAajD;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACjC,QAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAA;KAClC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAC,IAAU,EAAA;;QAErB,IAAI,CAAC,KAAK,GAAG,iCAAiC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;;AAElE,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;AAEzB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AACpB,QAAA,UAAU,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;KACjE;AAED;;;AAGG;AACH,IAAA,aAAa,CAAC,WAAgB,EAAA;;QAE5B,MAAM,KAAK,GAAG,CAAA,EAAG,WAAW,CAAC,SAAS,CAAC,SAAS,CAAA,CAAE,IAAI,EAAE,CAAA;;;AAIxD,QAAA,MAAM,UAAU,GAAG,iCAAiC,CAAC,aAAa,CAChE,IAAI,CAAC,aAAa,CAAC,MAAO,CAAC,KAAK,CAAC,CAClC,CAAA;AAED,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAA;;AAGvB,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACzB,IAAI,CAAC,SAAS,EAAE,CAAA;KACjB;AAED;;;AAGG;AAEH,IAAA,WAAW,CAAC,KAAoB,EAAA;QAC9B,IAAI,IAAI,CAAC,qBAAqB,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;AACtD,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;KACvB;;IAGD,gBAAgB,GAAA;QACd,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC3B;;IAGD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;KACrB;AAED;;;;AAIG;IACK,QAAQ,CAAC,KAAK,GAAG,IAAI,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;;AAEf,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACjC,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA;SACxB;;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;AAGlC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrE,IAAI,EAAE,MAAK;;AAET,oBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;iBAC5B;AACF,aAAA,CAAC,CAAA;SACH;;AAGD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,YAAA,IAAI,EAAE,CAAC,KAAY,KAAI;;;;;AAKrB,gBAAA,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAA;gBACtC,MAAM,mBAAmB,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAC1C,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAC3C,CAAA;AACD,gBAAA,IAAI,mBAAmB;oBAAE,OAAM;;AAE/B,gBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;aAC5B;AACF,SAAA,CAAC,CAAA;KACH;AA1LU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,uEAyEnB,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAzEd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,8wBCnD/B,w9KA4LA,EAAA,MAAA,EAAA,CAAA,63OAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDzIa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,sCAAsC,EAAA,QAAA,EAAA,w9KAAA,EAAA,MAAA,EAAA,CAAA,63OAAA,CAAA,EAAA,CAAA;;0BA2E7C,IAAI;;0BAAI,QAAQ;;0BAChB,QAAQ;;0BACR,MAAM;2BAAC,eAAe,CAAA;iIApEzB,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,sBAAsB,CAAA;gBAGQ,KAAK,EAAA,CAAA;sBAA7C,WAAW;uBAAC,iBAAiB,CAAA;;sBAAG,KAAK;gBAGN,OAAO,EAAA,CAAA;sBAAtC,WAAW;uBAAC,aAAa,CAAA;gBAIM,OAAO,EAAA,CAAA;sBAAtC,WAAW;uBAAC,aAAa,CAAA;gBAKjB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAKG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAEG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBAEG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBA8EN,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ME9IxB,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBApB7B,iBAAiB;YACjB,qBAAqB;YACrB,cAAc;YACd,aAAa;YACb,wBAAwB;YACxB,mBAAmB;YACnB,kBAAkB;AAClB,YAAA,WAAW,aAGX,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,mBAAmB;YACnB,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAGZ,kBAAkB,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEtC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAV7B,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,mBAAmB;YACnB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAtBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;wBACjB,qBAAqB;wBACrB,cAAc;wBACd,aAAa;wBACb,wBAAwB;wBACxB,mBAAmB;wBACnB,kBAAkB;wBAClB,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,eAAe;wBACf,mBAAmB;wBACnB,oBAAoB;AACrB,qBAAA;oBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,OAAO,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;AACnD,iBAAA,CAAA;;;ACrCD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"sebgroup-green-angular-src-v-angular-datepicker.mjs","sources":["../../../../libs/angular/src/v-angular/datepicker/models/dates.ts","../../../../libs/angular/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.ts","../../../../libs/angular/src/v-angular/datepicker/datepicker.utils.ts","../../../../libs/angular/src/v-angular/datepicker/directives/calendar-date.directive.ts","../../../../libs/angular/src/v-angular/datepicker/pipes/is-disabled.pipe.ts","../../../../libs/angular/src/v-angular/datepicker/pipes/date-thook.pipe.ts","../../../../libs/angular/src/v-angular/datepicker/pipes/matches.pipe.ts","../../../../libs/angular/src/v-angular/datepicker/components/calendar/calendar.component.ts","../../../../libs/angular/src/v-angular/datepicker/components/calendar/calendar.component.html","../../../../libs/angular/src/v-angular/datepicker/datepicker.models.ts","../../../../libs/angular/src/v-angular/datepicker/components/calendar-control/calendar-control.component.ts","../../../../libs/angular/src/v-angular/datepicker/components/calendar-control/calendar-control.component.html","../../../../libs/angular/src/v-angular/datepicker/datepicker.globals.ts","../../../../libs/angular/src/v-angular/datepicker/components/datepicker/datepicker.component.ts","../../../../libs/angular/src/v-angular/datepicker/components/datepicker/datepicker.component.html","../../../../libs/angular/src/v-angular/datepicker/components/date-input/date-input.component.ts","../../../../libs/angular/src/v-angular/datepicker/components/date-input/date-input.component.html","../../../../libs/angular/src/v-angular/datepicker/datepicker.module.ts","../../../../libs/angular/src/v-angular/datepicker/index.ts","../../../../libs/angular/src/v-angular/datepicker/sebgroup-green-angular-src-v-angular-datepicker.ts"],"sourcesContent":["import {\n createMask,\n InputmaskOptions,\n} from '@sebgroup/green-angular/src/v-angular/input-mask'\n\n/**\n * Helper function to generate InputmaskOptions by requested locale.\n * @param locale - requested locale. If not given, it'll use the browsers locale\n * @returns InputmaskOptions with date settings\n */\nexport const getLocaleDateMask = (\n dateCharacters?: DateCharacters,\n locale?: string,\n): InputmaskOptions<Date> => {\n // If no locale has been passed, use browser language\n if (!locale) locale = navigator.language\n\n const format = getLocaleDateString(locale).toLowerCase()\n\n return getFormatDateMask(format, dateCharacters)\n}\n\nexport const getLocaleDateString = (locale?: string) =>\n locale && dateFormats[locale] ? dateFormats[locale] : 'yyyy-MM-dd'\nconst dateFormats: Record<string, string> = {\n 'af-ZA': 'yyyy/MM/dd',\n 'am-ET': 'dd/MM/yyyy',\n 'ar-AE': 'dd/MM/yyyy',\n 'ar-BH': 'dd/MM/yyyy',\n 'ar-DZ': 'dd-MM-yyyy',\n 'ar-EG': 'dd/MM/yyyy',\n 'ar-IQ': 'dd/MM/yyyy',\n 'ar-JO': 'dd/MM/yyyy',\n 'ar-KW': 'dd/MM/yyyy',\n 'ar-LB': 'dd/MM/yyyy',\n 'ar-LY': 'dd/MM/yyyy',\n 'ar-MA': 'dd-MM-yyyy',\n 'ar-OM': 'dd/MM/yyyy',\n 'ar-QA': 'dd/MM/yyyy',\n 'ar-SA': 'dd/MM/yyyy',\n 'ar-SY': 'dd/MM/yyyy',\n 'ar-TN': 'dd-MM-yyyy',\n 'ar-YE': 'dd/MM/yyyy',\n 'arn-CL': 'dd-MM-yyyy',\n 'as-IN': 'dd-MM-yyyy',\n 'az-Cyrl-AZ': 'dd.MM.yyyy',\n 'az-Latn-AZ': 'dd.MM.yyyy',\n 'ba-RU': 'dd.MM.yyyy',\n 'be-BY': 'dd.MM.yyyy',\n 'bg-BG': 'dd.MM.yyyy',\n 'bn-BD': 'dd-MM-yyyy',\n 'bn-IN': 'dd-MM-yyyy',\n 'bo-CN': 'yyyy/MM/dd',\n 'br-FR': 'dd/MM/yyyy',\n 'bs-Cyrl-BA': 'dd.MM.yyyy',\n 'bs-Latn-BA': 'dd.MM.yyyy',\n 'ca-ES': 'dd/MM/yyyy',\n 'co-FR': 'dd/MM/yyyy',\n 'cs-CZ': 'dd.MM.yyyy',\n 'cy-GB': 'dd/MM/yyyy',\n 'da-DK': 'dd.MM.yyyy',\n 'de-AT': 'dd.MM.yyyy',\n 'de-CH': 'dd.MM.yyyy',\n 'de-DE': 'dd.MM.yyyy',\n 'de-LI': 'dd.MM.yyyy',\n 'de-LU': 'dd.MM.yyyy',\n 'dsb-DE': 'dd.MM.yyyy',\n 'dv-MV': 'dd/MM/yyyy',\n 'el-GR': 'dd/MM/yyyy',\n en: 'MM/dd/yyyy',\n 'en-029': 'MM/dd/yyyy',\n 'en-AU': 'dd/MM/yyyy',\n 'en-BZ': 'dd/MM/yyyy',\n 'en-CA': 'dd/MM/yyyy',\n 'en-GB': 'dd/MM/yyyy',\n 'en-IE': 'dd/MM/yyyy',\n 'en-IN': 'dd-MM-yyyy',\n 'en-JM': 'dd/MM/yyyy',\n 'en-MY': 'dd/MM/yyyy',\n 'en-NZ': 'dd/MM/yyyy',\n 'en-PH': 'MM/dd/yyyy',\n 'en-SG': 'dd/MM/yyyy',\n 'en-TT': 'dd/MM/yyyy',\n 'en-US': 'MM/dd/yyyy',\n 'en-ZA': 'yyyy/MM/dd',\n 'en-ZW': 'MM/dd/yyyy',\n 'es-AR': 'dd/MM/yyyy',\n 'es-BO': 'dd/MM/yyyy',\n 'es-CL': 'dd-MM-yyyy',\n 'es-CO': 'dd/MM/yyyy',\n 'es-CR': 'dd/MM/yyyy',\n 'es-DO': 'dd/MM/yyyy',\n 'es-EC': 'dd/MM/yyyy',\n 'es-ES': 'dd/MM/yyyy',\n 'es-GT': 'dd/MM/yyyy',\n 'es-HN': 'dd/MM/yyyy',\n 'es-MX': 'dd/MM/yyyy',\n 'es-NI': 'dd/MM/yyyy',\n 'es-PA': 'MM/dd/yyyy',\n 'es-PE': 'dd/MM/yyyy',\n 'es-PR': 'dd/MM/yyyy',\n 'es-PY': 'dd/MM/yyyy',\n 'es-SV': 'dd/MM/yyyy',\n 'es-US': 'MM/dd/yyyy',\n 'es-UY': 'dd/MM/yyyy',\n 'es-VE': 'dd/MM/yyyy',\n 'et-EE': 'dd.MM.yyyy',\n 'eu-ES': 'yyyy/MM/dd',\n 'fa-IR': 'MM/dd/yyyy',\n 'fi-FI': 'dd.MM.yyyy',\n 'fil-PH': 'MM/dd/yyyy',\n 'fo-FO': 'dd-MM-yyyy',\n 'fr-BE': 'dd/MM/yyyy',\n 'fr-CA': 'yyyy-MM-dd',\n 'fr-CH': 'dd.MM.yyyy',\n 'fr-FR': 'dd/MM/yyyy',\n 'fr-LU': 'dd/MM/yyyy',\n 'fr-MC': 'dd/MM/yyyy',\n 'fy-NL': 'dd-MM-yyyy',\n 'ga-IE': 'dd/MM/yyyy',\n 'gd-GB': 'dd/MM/yyyy',\n 'gl-ES': 'dd/MM/yyyy',\n 'gsw-FR': 'dd/MM/yyyy',\n 'gu-IN': 'dd-MM-yyyy',\n 'ha-Latn-NG': 'dd/MM/yyyy',\n 'he-IL': 'dd/MM/yyyy',\n 'hi-IN': 'dd-MM-yyyy',\n 'hr-BA': 'dd.MM.yyyy.',\n 'hr-HR': 'dd.MM.yyyy',\n 'hsb-DE': 'dd.MM.yyyy',\n 'hu-HU': 'yyyy.MM.dd.',\n 'hy-AM': 'dd.MM.yyyy',\n 'id-ID': 'dd/MM/yyyy',\n 'ig-NG': 'dd/MM/yyyy',\n 'ii-CN': 'yyyy/MM/dd',\n 'is-IS': 'dd.MM.yyyy',\n 'it-CH': 'dd.MM.yyyy',\n 'it-IT': 'dd/MM/yyyy',\n 'iu-Cans-CA': 'dd/MM/yyyy',\n 'iu-Latn-CA': 'dd/MM/yyyy',\n 'ja-JP': 'yyyy/MM/dd',\n 'ka-GE': 'dd.MM.yyyy',\n 'kk-KZ': 'dd.MM.yyyy',\n 'kl-GL': 'dd-MM-yyyy',\n 'km-KH': 'yyyy-MM-dd',\n 'kn-IN': 'dd-MM-yyyy',\n 'ko-KR': 'yyyy.MM.dd',\n 'kok-IN': 'dd-MM-yyyy',\n 'ky-KG': 'dd.MM.yyyy',\n 'lb-LU': 'dd/MM/yyyy',\n 'lo-LA': 'dd/MM/yyyy',\n 'lt-LT': 'yyyy.MM.dd',\n 'lv-LV': 'yyyy.MM.dd.',\n 'mi-NZ': 'dd/MM/yyyy',\n 'mk-MK': 'dd.MM.yyyy',\n 'ml-IN': 'dd-MM-yyyy',\n 'mn-MN': 'yyyy.MM.dd',\n 'mn-Mong-CN': 'yyyy/MM/dd',\n 'moh-CA': 'MM/dd/yyyy',\n 'mr-IN': 'dd-MM-yyyy',\n 'ms-BN': 'dd/MM/yyyy',\n 'ms-MY': 'dd/MM/yyyy',\n 'mt-MT': 'dd/MM/yyyy',\n 'nb-NO': 'dd.MM.yyyy',\n 'ne-NP': 'MM/dd/yyyy',\n 'nl-BE': 'dd/MM/yyyy',\n 'nl-NL': 'dd-MM-yyyy',\n 'nn-NO': 'dd.MM.yyyy',\n 'nso-ZA': 'yyyy/MM/dd',\n 'oc-FR': 'dd/MM/yyyy',\n 'or-IN': 'dd-MM-yyyy',\n 'pa-IN': 'dd-MM-yyyy',\n 'pl-PL': 'dd.MM.yyyy',\n 'prs-AF': 'dd/MM/yyyy',\n 'ps-AF': 'dd/MM/yyyy',\n 'pt-BR': 'dd/MM/yyyy',\n 'pt-PT': 'dd-MM-yyyy',\n 'qut-GT': 'dd/MM/yyyy',\n 'quz-BO': 'dd/MM/yyyy',\n 'quz-EC': 'dd/MM/yyyy',\n 'quz-PE': 'dd/MM/yyyy',\n 'rm-CH': 'dd/MM/yyyy',\n 'ro-RO': 'dd.MM.yyyy',\n 'ru-RU': 'dd.MM.yyyy',\n 'rw-RW': 'MM/dd/yyyy',\n 'sa-IN': 'dd-MM-yyyy',\n 'sah-RU': 'MM.dd.yyyy',\n se: 'yyyy-MM-dd',\n 'se-FI': 'dd.MM.yyyy',\n 'se-NO': 'dd.MM.yyyy',\n 'se-SE': 'yyyy-MM-dd',\n 'si-LK': 'yyyy-MM-dd',\n 'sk-SK': 'dd.MM.yyyy',\n 'sl-SI': 'dd.MM.yyyy',\n 'sma-NO': 'dd.MM.yyyy',\n 'sma-SE': 'yyyy-MM-dd',\n 'smj-NO': 'dd.MM.yyyy',\n 'smj-SE': 'yyyy-MM-dd',\n 'smn-FI': 'dd.MM.yyyy',\n 'sms-FI': 'dd.MM.yyyy',\n 'sq-AL': 'yyyy-MM-dd',\n 'sr-Cyrl-BA': 'dd.MM.yyyy',\n 'sr-Cyrl-CS': 'dd.MM.yyyy',\n 'sr-Cyrl-ME': 'dd.MM.yyyy',\n 'sr-Cyrl-RS': 'dd.MM.yyyy',\n 'sr-Latn-BA': 'dd.MM.yyyy',\n 'sr-Latn-CS': 'dd.MM.yyyy',\n 'sr-Latn-ME': 'dd.MM.yyyy',\n 'sr-Latn-RS': 'dd.MM.yyyy',\n sv: 'yyyy-MM-dd',\n 'sv-FI': 'dd.MM.yyyy',\n 'sv-SE': 'yyyy-MM-dd',\n 'sw-KE': 'MM/dd/yyyy',\n 'syr-SY': 'dd/MM/yyyy',\n 'ta-IN': 'dd-MM-yyyy',\n 'te-IN': 'dd-MM-yyyy',\n 'tg-Cyrl-TJ': 'dd.MM.yyyy',\n 'th-TH': 'dd/MM/yyyy',\n 'tk-TM': 'dd.MM.yyyy',\n 'tn-ZA': 'yyyy/MM/dd',\n 'tr-TR': 'dd.MM.yyyy',\n 'tt-RU': 'dd.MM.yyyy',\n 'tzm-Latn-DZ': 'dd-MM-yyyy',\n 'ug-CN': 'yyyy-MM-dd',\n 'uk-UA': 'dd.MM.yyyy',\n 'ur-PK': 'dd/MM/yyyy',\n 'uz-Cyrl-UZ': 'dd.MM.yyyy',\n 'uz-Latn-UZ': 'dd/MM yyyy',\n 'vi-VN': 'dd/MM/yyyy',\n 'wo-SN': 'dd/MM/yyyy',\n 'xh-ZA': 'yyyy/MM/dd',\n 'yo-NG': 'dd/MM/yyyy',\n 'zh-CN': 'yyyy/MM/dd',\n 'zh-HK': 'dd/MM/yyyy',\n 'zh-MO': 'dd/MM/yyyy',\n 'zh-SG': 'dd/MM/yyyy',\n 'zh-TW': 'yyyy/MM/dd',\n 'zu-ZA': 'yyyy/MM/dd',\n}\nexport const getFormatDateMask = (\n format: string,\n dateCharacters?: DateCharacters,\n) => {\n const separators = [' ', '.', '-', '/']\n const separator =\n separators.find((operator) => format.indexOf(operator) > -1) ?? '-'\n const dateObjects = format.split(separator)\n const year: { key: string; index: number } = { key: 'year', index: 0 },\n month: { key: string; index: number } = { key: 'month', index: 1 },\n day: { key: string; index: number } = { key: 'day', index: 2 }\n\n dateObjects.forEach((dateObject, index) => {\n switch (dateObject[0]) {\n case 'y':\n year.index = index\n break\n case 'm':\n month.index = index\n break\n case 'd':\n day.index = index\n break\n }\n })\n const placeholder = setDateFormatCharacters(format, dateCharacters)\n\n return createMask<Date>({\n alias: 'datetime',\n inputFormat: format,\n placeholder,\n parser: (value: string) => {\n const values = value.split(separator)\n const y = +values[year.index]\n const m = +values[month.index] - 1\n const d = +values[day.index]\n return new Date(y, m, d)\n },\n onBeforeMask(initialValue: string) {\n if (!initialValue || typeof initialValue !== 'string') return ''\n // If initialValues is in dateTime format, remove seconds that present after the \"T\"\n if (initialValue.includes('T')) initialValue = initialValue.split('T')[0]\n // initialValue should always be in yyyy-mm-dd no matter if set from control, via datepicker or manually with keyboard\n const values = initialValue.split('-')\n const datePartsInOrder = [year, month, day].sort(\n (a, b) => a.index - b.index,\n )\n // \"Insert\" correct values for the year/month/day, then join to string with separator\n return datePartsInOrder\n .map(({ key }) => {\n const [yearValue, monthValue, dateValue] = values\n if (key === 'year') return yearValue\n if (key === 'month') return monthValue\n return dateValue\n })\n .join(separator)\n },\n })\n}\n\nexport interface DateCharacters {\n year: string\n month: string\n day: string\n}\nexport const setDateFormatCharacters = (\n format: string,\n dateCharacters?: DateCharacters,\n) => {\n if (!dateCharacters) return format\n format = format.replace(/y/g, dateCharacters.year)\n format = format.replace(/m/g, dateCharacters.month)\n format = format.replace(/d/g, dateCharacters.day)\n return format\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core'\nimport {\n AbstractControl,\n ControlValueAccessor,\n NgControl,\n ValidationErrors,\n Validator,\n Validators,\n} from '@angular/forms'\nimport {\n TRANSLOCO_SCOPE,\n TranslocoScope,\n TranslocoService,\n} from '@jsverse/transloco'\nimport { Observable, Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport type { InputmaskOptions } from '@sebgroup/green-angular/src/v-angular/input-mask'\n\nimport {\n DateCharacters,\n getFormatDateMask,\n getLocaleDateMask,\n getLocaleDateString,\n setDateFormatCharacters,\n} from '../models/dates'\n\n@Directive() // Required with Angular ivy compiler\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport abstract class DateControlValueAccessorComponent\n implements\n AfterViewInit,\n OnInit,\n OnChanges,\n OnDestroy,\n ControlValueAccessor,\n Validator\n{\n /** Custom template for displaying the content of the label.\n * Specified by nesting an `<ng-template #labelTpl>Custom Label</ng-template>`.\n */\n @ContentChild('labelTpl', { read: TemplateRef })\n labelContentTpl?: TemplateRef<undefined>\n\n /** Custom template for displaying value when the input is locked.\n * Specified by nesting an `<ng-template #lockedTpl let-selectedDate>Custom locked content date: {{ selectedDate }}</ng-template>`.\n */\n @ContentChild('lockedTpl', { read: TemplateRef })\n lockedTpl?: TemplateRef<undefined>\n\n /** Reference to the native child input element. */\n @ViewChild('input', { read: ElementRef }) inputRef?: ElementRef\n\n /* ATTRIBUTES */\n\n /** Id of the host element and is accessible by the children, automatically generated if not provided. */\n @HostBinding('attr.id') @Input() id = (window as any).ngv?.nextId(\n 'datepicker',\n )\n /** Name of the child input element. */\n @Input() name?: string\n /** Label of the child input element using the default template.\n * Can be overwritten by specifying an `<ng-template #labelTpl>Custom Label</ng-template>`.\n */\n @Input() label?: string\n /** Text shown before input has a written value. Default current date format by locale of transloco */\n @Input() set placeholder(value: string | undefined) {\n this._placeholder = value\n ? setDateFormatCharacters(value, this.dateCharacters)\n : value\n this.defaultPlaceholder = value\n ? setDateFormatCharacters(value, this.dateCharacters)\n : value\n }\n get placeholder() {\n return this._placeholder\n }\n private _placeholder: string | undefined\n defaultPlaceholder?: string\n /** What characters to use in date placeholder, e.g. {year: 'Y', month: 'M', day: 'D'} */\n @Input() dateCharacters?: DateCharacters\n /** Role of the child input element. https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles */\n @Input() role?: string\n /** Value of the child input element. Mostly used in conjunction with radio and checkboxes. */\n @Input() value: any\n /** An error string to be shown under invalid inputs. Overwrites any form errors. */\n @Input() error?: string\n /** A list of errors string to be shown under invalid inputs. Overwrites any form errors. */\n @Input() errorList?: string[]\n /** Adds an icon before each error message. */\n @Input() withErrorIcon?: boolean = false\n /** Description of the child input element. Both visibly and as `aria-label`. */\n @Input() description?: string\n /** If set to true, the browser will try to automatically set focus to the child input element. */\n @Input() autofocus = false\n /** Default value of the child input element. */\n @Input() defaultValue?: any\n /** If passed, the component will listen for updates and will reset its value. */\n @Input() reset?: Observable<any>\n /** Adds (Optional) to input label. */\n @Input() optional?: boolean | null | undefined\n /**\n * Settings for input mask for dates based on locale\n * @see {@link getLocaleDateMask} use this tool to generate settings for `dateInputMask`\n */\n @Input() set dateInputMask(dateMask: InputmaskOptions<Date>) {\n // Hide input field\n this.showInputDateSrc.next(false)\n this.cdr.detectChanges()\n this._dateInputMask = dateMask\n\n // Show input field to reload input-mask settings upon update\n setTimeout(() => {\n this.showInputDateSrc.next(true)\n this.cdr.detectChanges()\n }, 200)\n }\n get dateInputMask(): InputmaskOptions<Date> {\n return this._dateInputMask\n }\n private _dateInputMask!: InputmaskOptions<Date>\n\n private _locked: boolean | null | undefined = undefined\n /** Hides the input borders and displays current value as a text. */\n @Input() set locked(value: boolean | null | undefined) {\n this._locked = value\n this.cdr.detectChanges()\n }\n get locked(): boolean | null | undefined {\n return this._locked\n }\n /** If set to true, using a controls disabled state will display input as locked. */\n @Input() displayDisabledAsLocked?: boolean | null | undefined\n\n /* STATES */\n\n private _required: boolean | null | undefined = undefined\n /** Override the required flag of the component. */\n @Input() set required(value: boolean | null | undefined) {\n this._required = value\n }\n /** Child input element is considered required and changes default label template accordingly. */\n get required(): boolean | null | undefined {\n // if required is set => return required\n if (this._required !== undefined) return this._required\n\n // if required can be determined from the control => return control.required\n if (this.ngControl?.control?.validator) {\n const validator = this.ngControl?.control?.validator(\n {} as AbstractControl,\n )\n return validator && validator.required\n }\n\n return\n }\n\n private _invalid: boolean | undefined = undefined\n /** Override the invalid state of the component. */\n @Input() set invalid(value: boolean) {\n this._invalid = value\n }\n /** The component has the invalid state, usually decorating the elements red and shows the first error. */\n get invalid(): boolean {\n if (this._invalid === true || this._invalid === false) return this._invalid\n return (\n !!this.ngControl?.control?.invalid && this.ngControl?.control?.touched\n )\n }\n\n private _valid: boolean | undefined = undefined\n /** Override the valid state of the component. */\n @Input() set valid(value: boolean) {\n this._valid = value\n }\n /** The component has the valid state, usually decorating the elements green. */\n get valid(): boolean {\n if (this._valid === true || this._valid === false) return this._valid\n return !!this.ngControl?.control?.valid && this.ngControl?.control?.touched\n }\n\n /** The component has the focused state, updated by the child input element's focus state. */\n @Input() focused = false\n /** The component has the disabled state, usually muting the colors and removes interaction. */\n @Input() disabled = false\n /** Locale for using correct language in the datepicker. */\n @Input() locale: string | undefined\n /** Date format used for placeholder and input mask. Should be in lower case {year: 'y', month: 'm', day: 'd'} */\n @Input() dateFormat: string | undefined\n /** Date locale used for placeholder and input mask. */\n @Input() dateLocale: string | undefined\n\n /** Toggler for showing or hiding the input field */\n protected showInputDateSrc = new Subject<boolean>()\n\n /* TRIGGERS */\n\n /** Emits focus events triggered by the child elements. */\n @Output() readonly ngvFocus = new EventEmitter()\n /** Emits focus events triggered by the child elements. */\n @Output() readonly ngvBlur = new EventEmitter()\n\n /* VALUE HANDLERS */\n /** @internal */\n protected onChange = (_: any): void => {} // eslint-disable-line @typescript-eslint/no-empty-function\n /** @internal */\n protected onTouched = (): void => {} // eslint-disable-line @typescript-eslint/no-empty-function\n /** @internal */\n protected onValidatorChange: () => void = () => null\n private _state: any = null\n\n /* OTHER VARIABLES */\n scope: string | undefined\n /** @internal */\n // warningIcon = faTriangleExclamation;\n\n /* LIFE CYCLE VARIABLES */\n private _onDestroy$ = new Subject<true>()\n\n /**\n * Creates a new BaseControlValueAccessorComponent.\n * @param ngControl optional FormControl provided when component is used in a form, through dependency injection.\n */\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected elementRef: ElementRef,\n protected cdr: ChangeDetectorRef,\n private _transloco: TranslocoService,\n ) {\n if (this.ngControl) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this\n }\n\n if (this.translocoScope) this.scope = this.translocoScope.toString()\n }\n\n static parseDateLike(value: any): null | undefined | string {\n try {\n // if value is type of string,\n if (value && typeof value === 'string') value = new Date(value)\n switch (true) {\n // remove instances where the value will not correctly be parsed to a date string\n case value == null:\n case value?.toString() === 'Invalid Date':\n return null\n // if value-as-date is a valid date object, parse the value to YYYY-MM-DD format\n case typeof value?.getMonth === 'function':\n return new Intl.DateTimeFormat('sv-SE').format(value)\n default:\n return value as string\n }\n } catch (_e) {\n return\n }\n }\n\n // eslint-disable-next-line @angular-eslint/contextual-lifecycle\n ngOnInit(): void {\n if (this.ngControl && this.ngControl.control) {\n this.ngControl.control.setValidators(\n Validators.compose([this.ngControl.control.validator, this.validate]),\n )\n }\n\n this._transloco.langChanges$.pipe(takeUntil(this._onDestroy$)).subscribe({\n next: () => {\n if (!this.locale && !this.dateFormat) {\n return this.updatePlaceholderAndMask()\n }\n },\n })\n\n // if reset observable has been passed, subscribe after updates\n this.reset?.pipe(takeUntil(this._onDestroy$)).subscribe({\n next: () => {\n // reset value of controller\n this.updateValue('')\n },\n })\n }\n\n // eslint-disable-next-line @angular-eslint/contextual-lifecycle\n ngAfterViewInit(): void {\n // if default value is set, then don't alter it. Otherwise, use\n // current value of controller after initiation as default value\n this.defaultValue = this.defaultValue ?? this.ngControl?.value\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.defaultValue?.currentValue) {\n this.updateValue(changes.defaultValue.currentValue)\n }\n\n if (\n changes.locale?.currentValue &&\n !this.dateFormat &&\n !changes.dateFormat?.currentValue\n ) {\n this.updatePlaceholderAndMask()\n }\n\n if (changes.dateFormat?.currentValue) {\n this.updateFormat()\n }\n\n if (changes.dateCharacters?.currentValue) {\n if (this.dateFormat) {\n this.updateFormat()\n } else {\n this.updatePlaceholderAndMask()\n }\n }\n\n if (!!changes.dateLocale?.currentValue && !this.dateFormat) {\n this.updatePlaceholderAndMask()\n }\n }\n\n ngOnDestroy(): void {\n this._onDestroy$.next(true)\n this._onDestroy$.complete()\n }\n\n /** @internal */\n onFocus(event: Event) {\n event.stopPropagation\n ? event.stopPropagation()\n : (event.cancelBubble = true)\n this.focused = true\n this.ngvFocus.emit(event)\n }\n\n /** @internal */\n onBlur(event: Event) {\n event.stopPropagation\n ? event.stopPropagation()\n : (event.cancelBubble = true)\n this.onTouched()\n this.focused = false\n this.ngvBlur.emit(event)\n }\n\n detectChanges(): void {\n this.cdr.detectChanges()\n }\n\n /** Sets the focus on the actual input element. */\n setFocus() {\n if (this.inputRef) this.inputRef.nativeElement.focus()\n }\n\n /**\n * @internal\n * Update placeholder and input mask to match locale.\n * Order if choice for locale:\n * 1. dateLocale - Used for specifying which locale to be used for formatting date\n * 2. locale - Unless dateLocale is not provided, use locale form current translation\n * 3. transloco.getActiveLang - as last resort, get active language form trnasloco\n * If locale is undefined, transloco.activeLang will be used instead.\n */\n updatePlaceholderAndMask() {\n const locale =\n this.dateLocale ?? this.locale ?? this._transloco.getActiveLang()\n\n this._placeholder = this.defaultPlaceholder\n ? setDateFormatCharacters(this.defaultPlaceholder, this.dateCharacters)\n : setDateFormatCharacters(\n getLocaleDateString(locale).toLowerCase(),\n this.dateCharacters,\n )\n this.dateInputMask = getLocaleDateMask(this.dateCharacters, locale)\n }\n\n updateFormat() {\n if (this.dateFormat) {\n this._placeholder = this.defaultPlaceholder\n ? setDateFormatCharacters(this.defaultPlaceholder, this.dateCharacters)\n : setDateFormatCharacters(\n this.dateFormat.toLowerCase(),\n this.dateCharacters,\n )\n this.dateInputMask = getFormatDateMask(\n this.dateFormat,\n this.dateCharacters,\n )\n }\n }\n\n // ----------------------------------------------------------------------------\n // CONTROL VALUE ACCESSOR\n // ----------------------------------------------------------------------------\n\n /** Internal state/value that the native input element has. */\n get state() {\n return this._state\n }\n\n /**\n * Internal state/value that the native input element has.\n */\n set state(value) {\n this._state = value\n }\n\n /** Writes a new value to the child input element. */\n writeValue(value: any): void {\n this.state = value\n this.onChange(this.state)\n }\n\n /** Registers a callback function that is called when the child input element's value changes. */\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = (value) => {\n // ensure emitted value is a string | null | undefined\n const emitValue = DateControlValueAccessorComponent.parseDateLike(value)\n fn(emitValue)\n }\n }\n\n /** Registers a callback function that is called when the child input element triggers on blur. */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn\n }\n\n /** Function that is called by the forms API when the control status changes to or from 'DISABLED'. */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled\n\n // if displayDisabledAsLocked is enabled - update locked state based on disabled state\n if (this.displayDisabledAsLocked) {\n this.locked = isDisabled\n }\n }\n\n // ----------------------------------------------------------------------------\n // VALIDATORS\n // ----------------------------------------------------------------------------\n\n /** Method that performs synchronous validation against the provided control. Used for internal validation. */\n validate(_control: AbstractControl): { [name: string]: any } | null {\n return null\n }\n\n /** Registers a callback function to call when the validator inputs change. */\n registerOnValidatorChange(fn: () => void): void {\n this.onValidatorChange = fn\n }\n\n // ----------------------------------------------------------------------------\n // HELPERS\n // ----------------------------------------------------------------------------\n\n /** Returns the first entry in an error object. */\n get firstError(): { code: string; params: Record<string, any> } | null {\n const errors: ValidationErrors | null = this.ngControl.errors\n if (!errors) return null\n const code = Object.keys(errors)[0]\n return { code, params: errors[code] }\n }\n\n private updateValue(value = this.defaultValue) {\n this.state = value\n this.onChange(this.state)\n this.cdr.detectChanges()\n }\n}\n","import { WeekDay } from '@angular/common'\n\nconst weekdays: WeekDay[] = [\n WeekDay.Monday,\n WeekDay.Tuesday,\n WeekDay.Wednesday,\n WeekDay.Thursday,\n WeekDay.Friday,\n WeekDay.Saturday,\n WeekDay.Sunday,\n]\n\nexport const sortWeekDays = (firstDayOfWeek: WeekDay): WeekDay[] => {\n const firstDayIndex = weekdays.indexOf(firstDayOfWeek)\n const weekStart = weekdays.slice(firstDayIndex)\n const weekEnd = weekdays.slice(0, firstDayIndex)\n return weekStart.concat(weekEnd)\n}\n\n/** Sets labels and sort weekday arrays based off of first day of week. */\nexport const getSortedWeekDays = (\n firstDayOfWeek: WeekDay,\n startDate?: Date,\n): Date[] => {\n if (startDate === undefined) startDate = new Date()\n\n // sort weekdays according to firstDayOfWeek\n const sortedWeekdays: WeekDay[] = sortWeekDays(firstDayOfWeek)\n\n // get the date object for the first day of week\n const startDayIndex = sortedWeekdays.indexOf(startDate.getDay())\n const firstOfWeek = new Date(startDate)\n firstOfWeek.setDate(startDate.getDate() - startDayIndex)\n\n // map each day in array to a date object\n return sortedWeekdays.map((_: WeekDay, offset: number) => {\n // set appropriate date\n const weekdayDate = new Date(firstOfWeek)\n weekdayDate.setDate(weekdayDate.getDate() + offset)\n\n // and return value\n return weekdayDate\n })\n}\n\n/** Generate a matrix of dates used to visualize a calendar month. */\nexport const generateDateMatrix = (\n month: number,\n year: number,\n minWeeks = 5,\n firstDayOfWeek: WeekDay,\n): Date[][] => {\n // generate a new matrix with 5 or 6 rows (depending on number of days in that month)\n const matrix: Date[][] = new Array<Date[]>(minWeeks)\n matrix.fill([])\n\n const monthStr = `${month + 1}`.padStart(2, '0')\n const date = new Date(`${year}-${monthStr}-01`)\n const firstDate = firstCalendarDate(date, firstDayOfWeek)\n\n // for each week in that month\n const dateMatrix = matrix.map((_: Date[], weekOffset: number) => {\n const offset = weekOffset * 7\n // update the date with the offset for that week\n const firstOfWeek = new Date(firstDate)\n firstOfWeek.setDate(firstDate.getDate() + offset)\n return getSortedWeekDays(firstDayOfWeek, firstOfWeek)\n })\n\n // check if another row needs to be added (if last dates of month are missing)\n const lastAdded = dateMatrix.slice(-1)[0].slice(-1)[0]\n const lastOfMonth = new Date(lastAdded)\n lastOfMonth.setMonth(month + 1)\n lastOfMonth.setDate(0)\n\n if (isBefore(lastAdded, lastOfMonth)) {\n // add another week row\n const firstOfWeek = new Date(lastAdded)\n firstOfWeek.setDate(lastAdded.getDate() + 1)\n dateMatrix.push(getSortedWeekDays(firstDayOfWeek, firstOfWeek))\n }\n // return final datematrix\n return dateMatrix\n}\n\n/** Returns the first date used in the calendars first button. */\nexport const firstCalendarDate = (\n date: Date,\n firstDayOfWeek: WeekDay,\n): Date => {\n // sort weekdays according to firstDayOfWeek\n const sortedWeekdays: WeekDay[] = sortWeekDays(firstDayOfWeek)\n\n // set date to the first of month\n const firstOfMonth = new Date(date)\n firstOfMonth.setDate(1)\n\n // get the offset\n const offset = sortedWeekdays.indexOf(firstOfMonth.getDay())\n const firstOfWeek = new Date(firstOfMonth)\n // use offset to set date\n firstOfWeek.setDate(1 - offset)\n return firstOfWeek\n}\n\nexport const getDayOffset = (\n from: WeekDay,\n to: WeekDay,\n firstDayOfWeek: WeekDay,\n direction?: 'forward' | 'back',\n): number => {\n const sortedWeekdays: WeekDay[] = sortWeekDays(firstDayOfWeek)\n\n const fromIndex = sortedWeekdays.indexOf(from)\n const toIndex = sortedWeekdays.indexOf(to)\n\n const offset = toIndex - fromIndex\n\n if (direction === 'forward' && offset < 0) return offset + 6\n if (direction === 'back' && offset > 0) return offset - 6\n return offset\n}\n\n/** Returns an array of Dates for each of month. */\nexport const getMonthArray = (): Date[] => {\n const firstDayOfYear = new Date()\n firstDayOfYear.setMonth(0)\n firstDayOfYear.setDate(1)\n\n // create a new array of length 12,\n // and fill it with date objects of 1:st of january\n const monthArray: Date[] = new Array(12).fill(firstDayOfYear)\n\n // map through the array,\n // and create a new instance of the date,\n // changing the month based on index (0 - 11)\n return monthArray.map((d: Date, index: number) => {\n const date = new Date(d)\n date.setMonth(index)\n return date\n })\n}\n\n/** Returns an array of Dates for the current year and the next. */\nexport const getYearArray = (): Date[] => {\n const currentYear = new Date()\n currentYear.setMonth(0)\n currentYear.setDate(1)\n const nextYear = new Date(currentYear)\n nextYear.setFullYear(currentYear.getFullYear() + 1)\n return [currentYear, nextYear]\n}\n\n/** Returns true if the two dates have the same year, month and date values. */\nexport const match = (a: Date | undefined, b: Date | undefined): boolean => {\n if (!a || !b) return false\n if (a.getDate() !== b.getDate()) return false\n if (a.getMonth() !== b.getMonth()) return false\n if (a.getFullYear() !== b.getFullYear()) return false\n return true\n}\n\nexport const afterClosingHours = (closingHours: Date | undefined): boolean => {\n if (!closingHours) return false\n return Date.now() >= closingHours.getTime()\n}\n\n/**\n * Checks if a date is before control date, regardless of time.\n *\n * @param date - comparison date\n * @param controlDate - date to compare against\n * @returns - true if the comparison date is before the control date\n */\nexport const isBefore = (date: Date, controlDate: Date): boolean => {\n // if year values are dissimilar\n if (date.getFullYear() !== controlDate.getFullYear()) {\n return date.getFullYear() < controlDate.getFullYear()\n }\n // if month values are dissimilar\n if (date.getMonth() !== controlDate.getMonth()) {\n return date.getMonth() < controlDate.getMonth()\n }\n // if year and month are equal, check the date\n return date.getDate() < controlDate.getDate()\n}\n\n/**\n * Checks if a date is after control date, regardless of time.\n *\n * @param date - comparison date\n * @param controlDate - date to compare against\n * @returns - true if the comparison date is before the control date\n */\nexport const isAfter = (date: Date, controlDate: Date): boolean => {\n // if year values are dissimilar\n if (date.getFullYear() !== controlDate.getFullYear()) {\n return date.getFullYear() > controlDate.getFullYear()\n }\n // if month values are dissimilar\n if (date.getMonth() !== controlDate.getMonth()) {\n return date.getMonth() > controlDate.getMonth()\n }\n // if year and month are equal, check the date\n return date.getDate() > controlDate.getDate()\n}\n\n/**\n * Checks if a value can be used to initiate a new Date object.\n *\n * @param value any value\n * @returns - true if value can be coersed to a Date.\n */\nexport const isValid = (value: any): boolean => {\n // if value is type of string and can be parsed to a Date\n const date =\n value && typeof value === 'string' && !isNaN(Date.parse(value))\n ? new Date(value)\n : null\n\n switch (true) {\n // if date or value is a valid date object - return valid\n case typeof value?.getMonth === 'function':\n case typeof date?.getMonth === 'function':\n return true\n // if date or value is not a valid date object - return invalid\n case value == null:\n case date?.toString() === 'Invalid Date':\n return false\n default:\n return false\n }\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core'\n\nimport { match } from '../datepicker.utils'\n\nexport const enum DateCss {\n notWithinMonth = 'not-within-month',\n selected = 'selected',\n today = 'today',\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[calendarDate]',\n standalone: false,\n})\nexport class CalendarDateDirective implements OnInit, OnChanges {\n @Input() calendarDate!: Date\n @HostBinding('class.' + DateCss.selected) @Input() selected!: boolean\n @HostBinding('class.' + DateCss.notWithinMonth)\n @Input()\n notWithinMonth!: boolean\n @HostBinding('class.' + DateCss.today) isToday = false\n @Input() disabled!: boolean\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement\n }\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnInit() {\n this.isToday = match(new Date(), this.calendarDate)\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.disabled?.currentValue) {\n ;(this.nativeElement as HTMLButtonElement).disabled = this.disabled\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core'\n\nimport { DisableDateConfig } from '../datepicker.models'\nimport {\n afterClosingHours,\n isAfter,\n isBefore,\n match,\n} from '../datepicker.utils'\n\nconst TODAY = new Date()\n\n@Pipe({\n name: 'isDisabled',\n standalone: false\n})\nexport class IsDisabledPipe implements PipeTransform {\n // transform(value: Date, firstValid: Date | undefined, lastValid: Date | undefined, excludeDates: Date[] | undefined, excludeDays: WeekDay[] | undefined): boolean {\n transform(value: Date, config: DisableDateConfig = {}): boolean {\n const { fromDate, toDate, excludeDates, excludeDays, closingTime } = config\n\n // if closingHours was provided and the date matches today - check closingHours (including timezone)\n if (closingTime && match(value, TODAY) && afterClosingHours(closingTime))\n return true\n\n // if fromDate was provided and the date occurs before fromDate date\n if (fromDate && !match(value, fromDate) && isBefore(value, fromDate))\n return true\n\n // if toDate was provided and the date occurs after toDate date\n if (toDate && !match(value, toDate) && isAfter(value, toDate)) return true\n\n // if a list of disallowed days is provided and value matches\n if (\n excludeDays &&\n excludeDays.length &&\n excludeDays.indexOf(value.getDay()) !== -1\n )\n return true\n\n // if a list of disallowed dates is provided\n if (excludeDates && excludeDates.length) {\n return !!excludeDates.find((d: Date) => match(value, d))\n }\n\n // otherwise show date as not disabled\n return false\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core'\n\n@Pipe({\n name: 'dateThook',\n standalone: false\n})\nexport class DateThookPipe implements PipeTransform {\n get today(): Date {\n const tmp = new Date()\n const today = new Date(tmp.setHours(0, 0, 0, 0))\n return today\n }\n\n transform(date: Date, isDisabled: boolean): string {\n if (!!date && !isDisabled) {\n // Reset time for target date\n const dateTmp = new Date(date.setHours(0, 0, 0, 0))\n\n // To calculate the time difference of two dates\n const differenceInTime = dateTmp.getTime() - this.today.getTime()\n\n // To calculate the no. of days between two dates\n const differenceInDays = differenceInTime / (1000 * 3600 * 24)\n const absoluteDifferenceInDays = Math.abs(differenceInDays)\n\n const differentiator =\n differenceInDays < 0 ? '-' : differenceInDays === 0 ? '' : '+'\n\n return `today${differentiator}${absoluteDifferenceInDays === 0 ? '' : absoluteDifferenceInDays}`\n }\n\n return 'disabled-date'\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core'\n\nimport { match } from '../datepicker.utils'\n\n@Pipe({\n name: 'matches',\n standalone: false\n})\nexport class MatchesPipe implements PipeTransform {\n transform(value: Date, selected: Date | undefined): boolean {\n return match(value, selected)\n }\n}\n","import { WeekDay } from '@angular/common'\nimport {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n} from '@angular/core'\n\nimport {\n generateDateMatrix,\n getDayOffset,\n sortWeekDays,\n} from '../../datepicker.utils'\nimport { CalendarDateDirective } from '../../directives/calendar-date.directive'\n\nimport type { CalendarType, DisableDateConfig } from '../../datepicker.models'\n\n@Component({\n selector: 'nggv-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n standalone: false\n})\nexport class CalendarComponent implements OnChanges {\n @Output() dateClick = new EventEmitter<Date>()\n\n @ViewChildren(CalendarDateDirective)\n dateButtonRefs!: QueryList<CalendarDateDirective>\n\n @Input() year!: number\n @Input() month!: number\n @Input() selected: Date | undefined\n\n // inputs that configure display behaviour\n @Input() locale: string | undefined\n @Input() minCalendarRows = 5\n @Input() firstDayOfWeek: WeekDay = WeekDay.Monday\n @Input() type: CalendarType = 'normal'\n\n // inputs that affects which dates in the calendar should be grayed out\n @Input() set disableDates(value: Date[] | undefined) {\n this.updateDisableDateConfig({ excludeDates: value ?? [] })\n }\n @Input() set disableWeekDays(value: WeekDay[] | undefined) {\n this.updateDisableDateConfig({ excludeDays: value })\n }\n @Input() set firstValid(value: Date | undefined) {\n this.updateDisableDateConfig({ fromDate: value })\n }\n @Input() set lastValid(value: Date | undefined) {\n this.updateDisableDateConfig({ toDate: value })\n }\n @Input() set closingTime(value: Date | undefined) {\n this.updateDisableDateConfig({ closingTime: value })\n }\n\n dateMatrix: Date[][] = [[]]\n disableDateConfig: DisableDateConfig = {}\n\n private lastDayOfWeek: WeekDay = WeekDay.Sunday\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.selected?.currentValue) {\n this.selected = new Date(changes.selected.currentValue)\n }\n\n if (changes.firstDayOfWeek?.currentValue) {\n this.lastDayOfWeek = sortWeekDays(\n changes.firstDayOfWeek.currentValue,\n ).pop() as WeekDay\n }\n\n if (\n (changes.month?.currentValue !== undefined &&\n changes.month?.currentValue !== null) ||\n !!changes.year?.currentValue ||\n !!changes.firstDayOfWeek?.currentValue ||\n !!changes.minCalendarRows?.currentValue\n ) {\n this.dateMatrix = generateDateMatrix(\n this.month,\n this.year,\n this.minCalendarRows,\n this.firstDayOfWeek,\n )\n }\n }\n\n clickDate(date: Date): void {\n this.dateClick.emit(date)\n }\n\n @HostListener('keydown', ['$event'])\n keyNavigation(event: KeyboardEvent): void {\n let activeElement: HTMLElement | undefined\n if (event.key !== 'Tab')\n activeElement = document.activeElement as HTMLElement\n if (event.key === 'ArrowRight') {\n const nextFocusable = this.getNextFocusable(activeElement)\n if (nextFocusable) nextFocusable.focus()\n }\n\n if (event.key === 'ArrowLeft') {\n const nextFocusable = this.getPreviousFocusable(activeElement)\n if (nextFocusable) nextFocusable.focus()\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n const nextFocusable = this.getElementWithOffset(activeElement, -7)\n if (nextFocusable) nextFocusable.focus()\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n const nextFocusable = this.getElementWithOffset(activeElement, 7)\n if (nextFocusable) nextFocusable.focus()\n }\n\n if (event.key === 'Enter' || event.key === 'Space') {\n if (activeElement) {\n const dateRef = this.dateButtonRefs.find(\n (ref) => ref.nativeElement === activeElement,\n )\n if (!dateRef?.disabled) {\n this.dateClick.emit(dateRef?.calendarDate)\n }\n }\n }\n\n if (event.key === 'Home') {\n event.preventDefault()\n const nextFocusable = this.firstDayOfWeekElement()\n if (nextFocusable) nextFocusable.focus()\n }\n\n if (event.key === 'End') {\n event.preventDefault()\n const nextFocusable = this.lastDayOfWeekElement()\n if (nextFocusable) nextFocusable.focus()\n }\n }\n\n getElementWithOffset(\n fromElement: HTMLElement | undefined,\n offsetDays: number,\n returnOnlyEnabled = true,\n ): HTMLElement | undefined {\n if (!fromElement) return\n const fromIndex = this.dateButtonRefs\n .toArray()\n .map((ref) => ref.nativeElement)\n .indexOf(fromElement)\n const next = this.dateButtonRefs.get(fromIndex + offsetDays)\n if (!next) return\n if (returnOnlyEnabled && next.disabled)\n return this.getElementWithOffset(next.nativeElement, offsetDays)\n return next.nativeElement\n }\n\n getNextFocusable(\n fromElement: HTMLElement | undefined,\n ): HTMLElement | undefined {\n if (!fromElement) return\n return this.getElementWithOffset(fromElement, 1)\n }\n\n getPreviousFocusable(\n fromElement: HTMLElement | undefined,\n ): HTMLElement | undefined {\n if (!fromElement) return\n return this.getElementWithOffset(fromElement, -1)\n }\n\n firstDayOfWeekElement(): HTMLElement | undefined {\n const activeElement = document.activeElement as HTMLElement\n if (!activeElement) return\n const dateRef = this.dateButtonRefs.find(\n (ref) => ref.nativeElement === activeElement,\n ) as CalendarDateDirective\n if (dateRef.calendarDate.getDay() === this.firstDayOfWeek) return\n const offset = this.getDayOffset(\n dateRef.calendarDate.getDay(),\n this.firstDayOfWeek,\n 'back',\n )\n const targetElement = this.getElementWithOffset(\n activeElement,\n offset,\n false,\n ) as HTMLButtonElement\n if (targetElement && targetElement.disabled)\n return this.getNextFocusable(targetElement)\n return targetElement\n }\n\n lastDayOfWeekElement(): HTMLElement | undefined {\n const activeElement = document.activeElement as HTMLElement\n if (!activeElement) return\n const dateRef = this.dateButtonRefs.find(\n (ref) => ref.nativeElement === activeElement,\n ) as CalendarDateDirective\n if (dateRef.calendarDate.getDay() === this.lastDayOfWeek) return\n const offset = this.getDayOffset(\n dateRef.calendarDate.getDay(),\n this.lastDayOfWeek,\n 'forward',\n )\n const targetElement = this.getElementWithOffset(\n activeElement,\n offset,\n false,\n ) as HTMLButtonElement\n if (targetElement && targetElement.disabled)\n return this.getPreviousFocusable(targetElement)\n return targetElement\n }\n\n getDayOffset(\n from: WeekDay,\n to: WeekDay,\n direction?: 'forward' | 'back',\n ): number {\n return getDayOffset(from, to, this.firstDayOfWeek, direction)\n }\n\n private updateDisableDateConfig(config: Partial<DisableDateConfig>): void {\n this.disableDateConfig = {\n ...this.disableDateConfig,\n ...config,\n }\n }\n}\n","<ng-container *ngFor=\"let weekRow of dateMatrix\">\n <div class=\"nggv-calendar-row\">\n <button\n *ngFor=\"let date of weekRow\"\n class=\"gds-button gds-button-alternative\"\n [attr.data-thook]=\"\n date | dateThook: (date | isDisabled: disableDateConfig)\n \"\n [attr.aria-label]=\"date\"\n [calendarDate]=\"date\"\n [notWithinMonth]=\"!(month === date?.getMonth())\"\n [selected]=\"date | matches: selected\"\n [disabled]=\"date | isDisabled: disableDateConfig\"\n (click)=\"clickDate(date)\"\n >\n {{ date | date: 'd' : undefined : locale }}\n </button>\n </div>\n</ng-container>\n","import { formatDate, WeekDay } from '@angular/common'\nimport { Injectable } from '@angular/core'\n\nexport type CalendarType = 'normal' | 'extended'\n\nexport const enum Month {\n January,\n February,\n March,\n April,\n May,\n June,\n July,\n August,\n September,\n October,\n November,\n December,\n}\n\nexport interface DisableDateConfig {\n fromDate?: Date | undefined\n toDate?: Date | undefined\n excludeDates?: Date[] | undefined\n excludeDays?: WeekDay[] | undefined\n closingTime?: Date | undefined\n}\n\n@Injectable()\nexport class CalendarMonth {\n year: number\n month: number\n id: string\n _date: Date\n\n constructor(date?: Date) {\n this._date = date ? new Date(date) : new Date()\n this._date.setDate(1)\n this._date.setHours(0, 0, 0, 0)\n this.year = this._date.getFullYear()\n this.month = this._date.getMonth()\n this.id = formatDate(this._date, 'yyyyMM', 'en')\n }\n\n /** Creates an instance based of input year and month. */\n static fromObject(obj: { year: number; month: number }): CalendarMonth {\n const objectDate = new Date(obj.year, obj.month, 1)\n return new CalendarMonth(objectDate)\n }\n\n /** Returns a Date representation for the instance. */\n get date(): Date {\n return new Date(this._date)\n }\n\n /** Returns the string id representing the instance in form of 'yyyyMM'. */\n valueOf() {\n return this.id\n }\n\n /** Returns a new instance for next month. */\n nextMonth(): CalendarMonth {\n const next = this.date\n next.setMonth(this.month + 1)\n return new CalendarMonth(next)\n }\n\n /** Returns a new instance for previous month. */\n previousMonth(): CalendarMonth {\n const previous = this.date\n previous.setMonth(this.month - 1)\n return new CalendarMonth(previous)\n }\n\n /** Returns a new instance for next year. */\n nextYear(): CalendarMonth {\n const nextYear = this.date\n nextYear.setFullYear(nextYear.getFullYear() + 1)\n return new CalendarMonth(nextYear)\n }\n\n /** Returns a new instance for previous year. */\n previousYear(): CalendarMonth {\n const previousYear = this.date\n previousYear.setFullYear(previousYear.getFullYear() - 1)\n return new CalendarMonth(previousYear)\n }\n}\n","import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core'\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'\nimport { Subscription } from 'rxjs'\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators'\n\nimport { CalendarMonth } from '../../datepicker.models'\nimport { getMonthArray, getYearArray } from '../../datepicker.utils'\n\nimport type { CalendarType } from '../../datepicker.models'\n\nimport '@sebgroup/green-core/components/icon/icons/chevron-left.js'\nimport '@sebgroup/green-core/components/icon/icons/chevron-right.js'\n\n@Component({\n selector: 'nggv-calendar-control',\n templateUrl: './calendar-control.component.html',\n styleUrls: ['./calendar-control.component.scss'],\n standalone: false\n})\nexport class CalendarControlComponent implements OnInit, OnChanges, OnDestroy {\n // nextIcon: IconDefinition = faChevronRight\n // previousIcon: IconDefinition = faChevronLeft\n\n @Output() calendarChange = new EventEmitter<CalendarMonth>()\n\n @Input() activeCalendar!: CalendarMonth\n @Input() locale: string | undefined\n @Input() type: CalendarType = 'normal'\n\n monthArray: Date[] = [] // array used for month dropdown\n yearArray: Date[] = [] // array used for year dropdown\n selectedCalendar: UntypedFormGroup // dropdown form group\n\n private subs: Subscription[] = []\n\n constructor(private fb: UntypedFormBuilder) {\n // initiate form group for dropdown menus\n this.selectedCalendar = this.fb.group({\n year: [],\n month: [],\n })\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (\n changes.activeCalendar &&\n !changes.activeCalendar.isFirstChange() &&\n changes.activeCalendar.currentValue.valueOf() !==\n this.selectedCalendar.value.id\n ) {\n this.selectedCalendar.patchValue(changes.activeCalendar.currentValue)\n }\n }\n\n ngOnInit() {\n // populate drowdowns and labels with data\n this.monthArray = getMonthArray()\n this.yearArray = getYearArray()\n\n // subscribe to year and month changes, and emit event to datepicker\n this.subscribeToFormChanges()\n\n // update control to initial value\n if (this.activeCalendar)\n this.selectedCalendar.patchValue(this.activeCalendar)\n }\n\n ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe())\n }\n\n viewPreviousMonth() {\n const previousMonth = CalendarMonth.fromObject(\n this.selectedCalendar.value,\n ).previousMonth()\n this.selectedCalendar.patchValue(previousMonth)\n }\n\n viewNextMonth() {\n const nextMonth = CalendarMonth.fromObject(\n this.selectedCalendar.value,\n ).nextMonth()\n this.selectedCalendar.patchValue(nextMonth)\n }\n\n viewPreviousYear() {\n const previousYear = CalendarMonth.fromObject(\n this.selectedCalendar.value,\n ).previousYear()\n this.selectedCalendar.patchValue(previousYear)\n }\n\n viewNextYear() {\n const nextYear = CalendarMonth.fromObject(\n this.selectedCalendar.value,\n ).nextYear()\n this.selectedCalendar.patchValue(nextYear)\n }\n\n @HostListener('keydown', ['$event'])\n keyNavigation(event: KeyboardEvent): void {\n if (event.key !== 'PageUp' && event.key !== 'PageDown') return\n event.preventDefault()\n if (event.shiftKey) {\n if (event.key === 'PageUp') return this.viewPreviousYear()\n if (event.key === 'PageDown') return this.viewNextYear()\n }\n if (event.key === 'PageUp') return this.viewPreviousMonth()\n if (event.key === 'PageDown') return this.viewNextMonth()\n }\n\n private subscribeToFormChanges(): void {\n // used to quickly check if the yearsArray needs years appended to it\n let existingYears = this.yearArray.map((e) => e.getFullYear())\n const changes = this.selectedCalendar.valueChanges.pipe(\n debounceTime(1), // added due to this issue: https://github.com/angular/angular/issues/13129\n map((value: { year: number; month: number }) =>\n CalendarMonth.fromObject(value),\n ),\n distinctUntilChanged(\n (prev: CalendarMonth, curr: CalendarMonth) =>\n prev.valueOf() === curr.valueOf(),\n ),\n )\n this.subs.push(\n changes.subscribe({\n next: (value: CalendarMonth) => {\n // if you need to append to year array\n if (existingYears.indexOf(value.year) === -1) {\n this.yearArray.push(value.date)\n this.yearArray.sort((a, b) => a.getFullYear() - b.getFullYear())\n existingYears = this.yearArray.map((e) => e.getFullYear())\n }\n this.calendarChange.emit(value)\n },\n }),\n )\n }\n}\n","<button\n *ngIf=\"type === 'normal'\"\n data-thook=\"previous-month\"\n class=\"nggv-prev-button\"\n (click)=\"viewPreviousMonth()\"\n>\n <gds-icon-chevron-left *nggCoreElement></gds-icon-chevron-left>\n</button>\n\n<ng-container [formGroup]=\"selectedCalendar\">\n <select\n class=\"nggv-calendar-select\"\n data-thook=\"select-month\"\n formControlName=\"month\"\n >\n <option\n *ngFor=\"let month of monthArray\"\n class=\"gds-field-dropdown__label\"\n tabindex=\"0\"\n [value]=\"month.getMonth()\"\n >\n {{ month | date: 'MMMM' : undefined : locale }}\n </option>\n </select>\n\n <select\n class=\"nggv-calendar-select\"\n data-thook=\"select-year\"\n formControlName=\"year\"\n >\n <option\n *ngFor=\"let year of yearArray\"\n class=\"gds-field-dropdown__label\"\n tabindex=\"0\"\n [value]=\"year.getFullYear()\"\n >\n {{ year | date: 'yyyy' : undefined : locale }}\n </option>\n </select>\n</ng-container>\n\n<button\n *ngIf=\"type === 'normal'\"\n data-thook=\"next-month\"\n class=\"nggv-next-button\"\n (click)=\"viewNextMonth()\"\n>\n <gds-icon-chevron-right *nggCoreElement></gds-icon-chevron-right>\n</button>\n","// We must force tsc to interpret this file as a module, resolves\n// \"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"\nexport {}\n\ndeclare global {\n interface Window {\n /** Counter for unique identifiers */\n ngv: {\n ids: { [namespace: string]: number; default: number }\n nextId: (namespace?: string) => string\n }\n }\n}\n\n;(() => {\n // Make sure there is an incremental ID each component can use\n if (typeof window !== 'undefined' && !window.ngv) {\n window.ngv = {\n ids: { default: -1 },\n nextId(namespace = 'default'): string {\n let id = this.ids[namespace] || 0\n if (typeof this.ids[namespace] === 'number') id++\n this.ids[namespace] = id\n return namespace === 'default'\n ? `nggv-${id}`\n : `nggv-${namespace}-${id}`\n },\n }\n }\n})()\n","import { WeekDay } from '@angular/common'\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core'\nimport { Subscription } from 'rxjs'\n\nimport { CalendarMonth } from '../../datepicker.models'\nimport { getSortedWeekDays, isValid } from '../../datepicker.utils'\n\nimport type { CalendarType } from '../../datepicker.models'\n\n@Component({\n selector: 'nggv-datepicker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n standalone: false\n})\nexport class DatepickerComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('calendarTemplate') calendarTemplate: TemplateRef<any> | null =\n null\n\n /** Emits a Date upon selection. */\n @Output() ngvDateChange = new EventEmitter<Date>()\n\n /** Sets first day of week in calendar. Defaults to Monday. */\n @Input() firstDayOfWeek: WeekDay = WeekDay.Monday\n /** Bank holidays. */\n @Input() disableDates: (string | Date)[] = []\n /** Other non selectable dates. */\n @Input() disableWeekDays: WeekDay[] = []\n /** Minimum number of calendar rows shown. */\n @Input() minCalendarRows = 5\n /** Initial date set as selected. */\n @Input() selected: Date | undefined\n /** Set locale for date format. */\n @Input() locale: string | undefined = 'en-US'\n /** Set type of calendar. */\n @Input() type: CalendarType = 'normal'\n /** Sets a from date of which all dates before will be invalid. */\n @Input() firstValid: Date | undefined\n /** Sets a to date of which all dates after will be invalid. */\n @Input() lastValid: Date | undefined\n /** Sets a closing time for today to toggle availability for today's date. */\n @Input() closingTime: Date | undefined\n /**\n * When true, the datepicker will automatically choose to open above or below the input\n * based on available space in the viewport, and will scale its height to fit if needed.\n */\n @Input() dynamicPosition = false\n /** Needed to determent where to place datepicker if dropdownPosition === 'top' */\n @Input() size: 'small' | 'large' = 'large'\n\n @HostBinding('attr.data-position') get positionAttr() {\n return this.datepickerPosition\n }\n\n @HostBinding('attr.data-size') get sizeAttr() {\n return this.size\n }\n\n /** @internal */\n activeCalendar!: CalendarMonth /* = new CalendarMonth(new Date()) */\n /** @internal */\n\n /** @internal */\n weekdayArray: Date[] = []\n\n /** @internal */\n disabledDatesForActiveMonth: Date[] = []\n\n // Indicates whether the datepicker should be displayed below ('bottom') or above ('top') the input, based on available space.\n datepickerPosition: 'bottom' | 'top' = 'bottom'\n\n private subs: Subscription[] = []\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.selected &&\n !!changes.selected.currentValue &&\n !changes.selected.isFirstChange()\n ) {\n // set active calendar to match selected date\n const activeCalendar = new CalendarMonth(\n new Date(changes.selected.currentValue),\n )\n this.changeActiveCalendar(activeCalendar)\n }\n\n if (changes.disableDates && !changes.disableDates.isFirstChange()) {\n this.disabledDatesForActiveMonth = this.getDisabledDatesFor(\n this.activeCalendar,\n changes.disableDates.currentValue || [],\n )\n }\n }\n\n ngOnInit(): void {\n // initiate week label row\n this.weekdayArray = getSortedWeekDays(this.firstDayOfWeek)\n\n // initiate calendar\n const initDate =\n !!this.selected && isValid(this.selected)\n ? new Date(this.selected)\n : new Date()\n this.activeCalendar = new CalendarMonth(initDate)\n\n if (this.dynamicPosition) this.setDropdownPosition()\n }\n\n ngOnDestroy() {\n this.subs.forEach((sub) => sub.unsubscribe())\n }\n\n /**\n * @internal\n * Update local calendar variable and changes displayed calendar.\n */\n changeActiveCalendar(calendar: CalendarMonth): void {\n this.activeCalendar = calendar\n this.disabledDatesForActiveMonth = this.getDisabledDatesFor(\n calendar,\n this.disableDates,\n )\n }\n\n /**\n * @internal\n * Returns a subset of all disabled dates.\n *\n * @param month current month to filter from\n * @param disableDates master list of all disabled dates\n * @returns a subset with current and adjacent months disabled dates\n */\n getDisabledDatesFor(\n calendar: CalendarMonth,\n disableDates?: (string | Date)[],\n ): Date[] {\n if (!disableDates) disableDates = []\n // sets month to target month\n const targetMonth = calendar.date\n\n // gets previous month from target month\n const previousMonth = calendar.previousMonth().date\n\n // gets next month from target month\n const nextMonth = calendar.nextMonth().date\n\n // checks if two dates are within the same year and month\n const withinSameMonth = (a: Date, b: Date): boolean =>\n a.getMonth() === b.getMonth() && a.getFullYear() === b.getFullYear()\n\n // filter out disabled dates for current and adjacent months\n return disableDates\n .map((d: Date | string) => new Date(d))\n .filter(\n (d: Date) =>\n withinSameMonth(d, previousMonth) ||\n withinSameMonth(d, targetMonth) ||\n withinSameMonth(d, nextMonth),\n )\n }\n\n /**\n * Handles date-clicks from calendar compoentn. Emits event or changes calendar.\n * @param date date clicked in calendar\n */\n dateClickHandler(date: Date): void {\n // if a date is clicked within the active month, emit date\n if (date.getMonth() === this.activeCalendar.month)\n return this.ngvDateChange.emit(date)\n // else, change active calendar to match the date clicked\n this.selected = date\n this.changeActiveCalendar(new CalendarMonth(date))\n }\n\n setDropdownPosition() {\n const datePicker = this.elementRef.nativeElement\n const parent = datePicker.parentElement\n\n const rect = parent.getBoundingClientRect()\n\n const viewportHeight = window.innerHeight\n const spaceBelow = viewportHeight - rect.bottom\n const spaceAbove = rect.top\n\n const MARGIN = 10\n const DATEPICKER_HEIGHT = 362 // 6 ROWS OF DATES, TO BE SURE\n let maxDatepickerHeight: number\n\n if (spaceBelow >= DATEPICKER_HEIGHT) {\n this.datepickerPosition = 'bottom'\n maxDatepickerHeight = DATEPICKER_HEIGHT\n } else if (spaceAbove >= DATEPICKER_HEIGHT) {\n this.datepickerPosition = 'top'\n maxDatepickerHeight = DATEPICKER_HEIGHT\n } else if (spaceBelow > spaceAbove) {\n this.datepickerPosition = 'bottom'\n maxDatepickerHeight = Math.max(spaceBelow - MARGIN, DATEPICKER_HEIGHT) // 10px margin, height 362px\n } else {\n this.datepickerPosition = 'top'\n maxDatepickerHeight = Math.max(spaceAbove - MARGIN, DATEPICKER_HEIGHT) // 10px margin, height 362px\n }\n\n this.renderer.setStyle(datePicker, 'max-height', `${maxDatepickerHeight}px`)\n }\n}\n","<!-- control for changing displayed calendar -->\n<nggv-calendar-control\n [activeCalendar]=\"activeCalendar\"\n [locale]=\"locale\"\n [type]=\"type\"\n (calendarChange)=\"changeActiveCalendar($event)\"\n>\n</nggv-calendar-control>\n\n<!-- label row for week -->\n<div class=\"nggv-weekday-row\">\n <span *ngFor=\"let weekday of weekdayArray\">{{\n weekday | date: 'EEE' : undefined : locale\n }}</span>\n</div>\n\n<!-- outlet for active calendar -->\n<div class=\"nggv-calendar-view-container\">\n <ng-container\n *ngTemplateOutlet=\"\n calendarTemplate;\n context: {\n calendar: activeCalendar,\n disableDates: disabledDatesForActiveMonth,\n }\n \"\n >\n </ng-container>\n</div>\n\n<div *ngIf=\"type === 'extended'\" class=\"gds-datepicker__controls\">\n <ng-content></ng-content>\n</div>\n\n<ng-template\n #calendarTemplate\n let-calendar=\"calendar\"\n let-disableDates=\"disableDates\"\n>\n <nggv-calendar\n [year]=\"calendar.year\"\n [month]=\"calendar.month\"\n [type]=\"type\"\n [locale]=\"locale\"\n [disableDates]=\"disableDates\"\n [selected]=\"selected\"\n [lastValid]=\"lastValid\"\n [firstValid]=\"firstValid\"\n [closingTime]=\"closingTime\"\n [disableWeekDays]=\"disableWeekDays\"\n [minCalendarRows]=\"minCalendarRows\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n (dateClick)=\"dateClickHandler($event)\"\n >\n </nggv-calendar>\n</ng-template>\n","import '../../datepicker.globals'\nimport '@sebgroup/green-core/components/icon/icons/calendar.js'\nimport '@sebgroup/green-core/components/icon/icons/triangle-exclamation.js'\n\nimport { WeekDay } from '@angular/common'\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Self,\n ViewChild,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport {\n TRANSLOCO_SCOPE,\n TranslocoScope,\n TranslocoService,\n} from '@jsverse/transloco'\nimport { fromEvent, Observable, Subject } from 'rxjs'\nimport { startWith, takeUntil } from 'rxjs/operators'\n\nimport { DateControlValueAccessorComponent } from '../../date-control-value-accessor/date-control-value-accessor.component'\n\nimport type { CalendarType } from '../../datepicker.models'\n\n/**\n * Date pickers simplify the task of selecting a date in a visual representation of a calendar.\n * https://designlibrary.sebgroup.com/components/component-datepicker\n *\n * Selector: `nggv-dateinput`\n *\n * When focusing an date element, the calendar allows for navigation using both tab and arrow keys.\n * Pressing 'esc' will close the calendar.\n *\n * Requires TranslocoLocale, but in turn allows for setting locale dynamically:\n * https://jsverse.github.io/transloco/docs/plugins/locale/#manually-setting-locale\n *\n * To configure TranslocoLocale, follow this guide:\n * https://jsverse.github.io/transloco/docs/plugins/locale/#setup\n */\n@Component({\n selector: 'nggv-dateinput,nggv-input[type=date]',\n templateUrl: './date-input.component.html',\n styleUrls: ['./date-input.component.scss'],\n standalone: false,\n})\nexport class DateInputComponent\n extends DateControlValueAccessorComponent\n implements OnDestroy\n{\n @ViewChild('toggleCalendarButton')\n toggleButtonRef?: ElementRef<HTMLButtonElement>\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'date-input'\n\n @HostBinding('class.small') get isSmall(): boolean {\n return this.size === 'small'\n }\n\n @HostBinding('class.large') get isLarge(): boolean {\n return this.size === 'large'\n }\n\n /** Set type of calendar: either 'normal' or 'expanded'. Default is 'normal'. */\n @Input() type: CalendarType = 'normal'\n /** If set to true, the value will not be editable. */\n @Input() readonly = false\n /**\n * An array of Dates or parsable strings that corresponds with dates that should not be selectable in the calendar.\n * I.e. bank holidays.\n */\n @Input() disableDates: (string | Date)[] = []\n /**\n * An array of weekdays that should not be selectable in the calendar.\n * Can be used together with or instead of @Input() disableDates.\n */\n @Input() disableWeekDays: WeekDay[] = []\n /** Mininum number of rows shown in the calendar. */\n @Input() minRows = 5\n /** Sets a from-date of which all dates before will be invalid. */\n @Input() firstValid: Date | undefined\n /** Sets a to-date of which all dates after will be invalid. */\n @Input() lastValid: Date | undefined\n /** Sets a closing time for today to toggle availability for today's date. */\n @Input() closingTime: Date | undefined\n /** Sets first day of week in calendar. Defaults to Monday. */\n @Input() firstDayOfWeek: WeekDay = WeekDay.Monday\n /** If set to true, it will allow to close the calendar on escape button click. */\n @Input() closeCalendarOnEscape = true\n /** If the date-input should close when scrolling the viewport. Default: false*/\n @Input() closeOnScroll = false\n\n /**\n * Sets the displayed size of the date input field.\n */\n @Input() size: 'small' | 'large' = 'large'\n\n @Input() dynamicPosition = false\n\n /** @internal */\n // calendarIcon: IconDefinition = faCalendarDays;\n\n /** @internal */\n shown = false\n\n /** @internal */\n showInput$ = this.showInputDateSrc.asObservable().pipe(startWith(true))\n\n /** Observable for listening to scrolls when the datepicker is open */\n private documentScroll$: Observable<Event> = fromEvent(document, 'scroll')\n /** Observable for listening to clicks outside of the datepicker. */\n private documentClick$: Observable<Event> = fromEvent(document, 'click')\n /** Subject used for unsubscribe pattern on above observable. */\n private datepickerClosed$ = new Subject<boolean>()\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected transloco: TranslocoService,\n protected elementRef: ElementRef,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, elementRef, cdr, transloco)\n // this.showInput$ = this.showInputDateSrc.asObservable()\n }\n\n ngOnDestroy(): void {\n this.datepickerClosed$.next(true)\n this.datepickerClosed$.complete()\n }\n\n /**\n * @internal\n * Called from the datepicker-component when a date button is clicked in the calendar.\n *\n * @param date date object emitted when selecting a date in the datepicker.\n */\n onDateChange(date: Date): void {\n // control value accessor will ensure correct formatting of state\n this.state = DateControlValueAccessorComponent.parseDateLike(date)\n // emit state\n this.onChange(this.state)\n // close datepicker and move focus to datepicker button\n this.setShown(false)\n setTimeout(() => this.toggleButtonRef?.nativeElement.focus(), 1)\n }\n\n /**\n * @internal\n * Called when entering date manually in input field.\n */\n onValueChange(eventTarget: any): void {\n // Will be in the format selected in inputMask\n const value = `${eventTarget.inputmask.undoValue}`\n\n // Use parserfunction from inputMask to parse to a date object since value can be in multiple formats\n // Then ontrol value accessor will ensure correct formatting of state\n const parsedDate = DateControlValueAccessorComponent.parseDateLike(\n this.dateInputMask.parser!(value),\n )\n\n this.state = parsedDate\n\n // emit parsed date\n this.onChange(parsedDate)\n this.onTouched()\n }\n\n /**\n * @internal\n * Listen to 'esc' keypress and closes datepicker if open.\n */\n @HostListener('keydown', ['$event'])\n keyListener(event: KeyboardEvent): void {\n if (this.closeCalendarOnEscape && event.key === 'Escape')\n this.setShown(false)\n }\n\n /** @internal */\n toggleDatepicker(): void {\n this.setShown(!this.shown)\n }\n\n /** To externally trigger the datepicker to close. */\n close(): void {\n this.setShown(false)\n }\n\n /**\n * Set the shown state of the datepicker popup. If true the popup will be visible.\n * If the state is set to false, call onTouched to notify any state listeners\n * @param state the shown state which to set.\n */\n private setShown(state = true): void {\n this.shown = state\n if (!this.shown) {\n // if shown is set to false, stop listening to clicks\n this.datepickerClosed$.next(true)\n return this.onTouched()\n }\n // if shown is set to true, reset unsubscribe variable\n this.datepickerClosed$.next(false)\n\n // start listen to scroll if closeOnScroll is enabled\n if (this.closeOnScroll) {\n this.documentScroll$.pipe(takeUntil(this.datepickerClosed$)).subscribe({\n next: () => {\n // if document starts scrolling, close datepicker\n return this.setShown(false)\n },\n })\n }\n\n // start listening for clicks outside the component\n this.documentClick$.pipe(takeUntil(this.datepickerClosed$)).subscribe({\n next: (event: Event) => {\n // clicking on a gray date causes the datepicker to reload the calendar dates,\n // and the button element clicked will no longer be considered as a child of the datepicker.\n // but the event target path will still contain the parent element\n // if target has datepicker parent, keep listening\n const eventPath = event.composedPath()\n const hasDatepickerParent = !!eventPath.find(\n (e) => e === this.elementRef.nativeElement,\n )\n if (hasDatepickerParent) return\n // else the click is considered to be outside, close datepicker\n return this.setShown(false)\n },\n })\n }\n}\n","<!-- LABEL -->\n<ng-container *transloco=\"let t; read: scope\">\n <label\n [id]=\"id + '-label'\"\n class=\"gds-field-label hide-if-empty\"\n [attr.for]=\"id + '-input'\"\n >\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"gds-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n </label>\n\n <!-- DESCRIPTION -->\n <div\n class=\"gds-field-label--small description hide-if-empty\"\n *ngIf=\"description\"\n >\n {{ description }}\n </div>\n\n <!-- LOCKED INPUT -->\n <ng-container *ngIf=\"locked\">\n <ng-template\n *ngTemplateOutlet=\"\n lockedTpl || defaultLockedTpl;\n context: { $implicit: state }\n \"\n ></ng-template>\n <ng-template #defaultLockedTpl>\n <div\n [id]=\"id + '-input'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state | nggvInputMaskFormat: dateInputMask }}\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- INPUT WRAPPER -->\n <ng-container *ngIf=\"!locked\">\n <div\n class=\"field-wrap\"\n [class.nggv-field--error]=\"invalid\"\n *ngIf=\"showInput$ | async\"\n >\n <!-- INPUT FIELD -->\n <input\n #input\n [id]=\"id + '-input'\"\n class=\"nggv-field-date\"\n type=\"text\"\n autocomplete=\"off\"\n [attr.name]=\"name\"\n [attr.required]=\"required || null\"\n [disabled]=\"disabled\"\n [readOnly]=\"readonly\"\n [attr.role]=\"role\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [nggvInputMask]=\"dateInputMask\"\n [value]=\"state\"\n title=\"\"\n (change)=\"onValueChange($event.target)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n\n <button\n aria-label=\"toggle calendar\"\n #toggleCalendarButton\n class=\"nggv-button-date\"\n type=\"button\"\n data-thook=\"toggle-calendar-button\"\n (click)=\"toggleDatepicker()\"\n [disabled]=\"disabled\"\n >\n @if (size === 'small') {\n <gds-icon-calendar *nggCoreElement size=\"16px\"></gds-icon-calendar>\n }\n\n @if (size === 'large') {\n <gds-icon-calendar *nggCoreElement size=\"20px\"></gds-icon-calendar>\n }\n </button>\n </div>\n\n <!-- DATEPICKER -->\n <div class=\"nggv-datepicker\" *ngIf=\"shown\">\n <nggv-datepicker\n #input\n [type]=\"type\"\n [disableDates]=\"disableDates\"\n [disableWeekDays]=\"disableWeekDays\"\n [selected]=\"state\"\n [locale]=\"locale\"\n [minCalendarRows]=\"minRows\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [firstValid]=\"firstValid\"\n [lastValid]=\"lastValid\"\n [closingTime]=\"closingTime\"\n [dynamicPosition]=\"dynamicPosition\"\n [size]=\"size\"\n (ngvDateChange)=\"onDateChange($event)\"\n >\n <ng-content></ng-content>\n </nggv-datepicker>\n </div>\n\n <!-- ERRORS -->\n <ng-container\n *ngIf=\"\n invalid &&\n (error || ngControl?.invalid) &&\n (!errorList || !errorList.length)\n \"\n >\n <label\n class=\"gds-field-notice gds-field-notice--error\"\n [attr.for]=\"id + '-input'\"\n >\n <span class=\"error-item\">\n <span class=\"error-item--icon\">\n <gds-icon-triangle-exclamation\n *nggCoreElement\n [solid]=\"true\"\n size=\"16px\"\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n *ngIf=\"error; else errorsRef\"\n class=\"error-item--text\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n <ng-template #errorsRef>\n <span\n *ngIf=\"firstError as error\"\n class=\"error-item--text\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </span>\n </label>\n </ng-container>\n <ng-container *ngFor=\"let error of errorList ?? []\">\n <label\n class=\"gds-field-notice gds-field-notice--error\"\n [attr.for]=\"id + '-input'\"\n *ngIf=\"invalid && error\"\n >\n <span class=\"error-item\">\n <span class=\"error-item--icon\">\n <gds-icon-triangle-exclamation\n *nggCoreElement\n [solid]=\"true\"\n size=\"16px\"\n ></gds-icon-triangle-exclamation>\n </span>\n <span\n class=\"error-item--text\"\n [attr.data-thook]=\"thook + '-errorlabel'\"\n >{{ error }}</span\n >\n </span>\n </label>\n </ng-container>\n </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\nimport { TranslocoModule } from '@jsverse/transloco'\n\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\nimport { NggvInputMaskModule } from '@sebgroup/green-angular/src/v-angular/input-mask'\nimport { CalendarControlComponent } from './components/calendar-control/calendar-control.component'\nimport { CalendarComponent } from './components/calendar/calendar.component'\nimport { DateInputComponent } from './components/date-input/date-input.component'\nimport { DatepickerComponent } from './components/datepicker/datepicker.component'\nimport { CalendarDateDirective } from './directives/calendar-date.directive'\nimport { DateThookPipe } from './pipes/date-thook.pipe'\nimport { IsDisabledPipe } from './pipes/is-disabled.pipe'\nimport { MatchesPipe } from './pipes/matches.pipe'\n\n@NgModule({\n declarations: [\n CalendarComponent,\n CalendarDateDirective,\n IsDisabledPipe,\n DateThookPipe,\n CalendarControlComponent,\n DatepickerComponent,\n DateInputComponent,\n MatchesPipe,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslocoModule,\n NggvInputMaskModule,\n NggCoreWrapperModule,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n exports: [DateInputComponent, DatepickerComponent],\n})\nexport class NggvDatepickerModule {}\n","/*\n * Public API Surface of date-picker\n */\nexport * from './date-control-value-accessor/date-control-value-accessor.component'\nexport * from './components/calendar/calendar.component'\nexport * from './components/calendar-control/calendar-control.component'\nexport * from './components/date-input/date-input.component'\nexport * from './components/datepicker/datepicker.component'\nexport * from './directives/calendar-date.directive'\nexport * from './pipes/is-disabled.pipe'\nexport * from './pipes/matches.pipe'\nexport * from './models/dates'\nexport * from './datepicker.models'\nexport * from './datepicker.globals'\nexport * from './datepicker.module'\nexport * from './datepicker.utils'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.CalendarDateDirective","i3.IsDisabledPipe","i4.DateThookPipe","i5.MatchesPipe","i2","i2.CalendarComponent","i3.CalendarControlComponent","i3","i5","i6.DatepickerComponent"],"mappings":";;;;;;;;;;;;;;;;;;;AAKA;;;;AAIG;MACU,iBAAiB,GAAG,CAC/B,cAA+B,EAC/B,MAAe,KACW;;AAE1B,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,MAAM,GAAG,SAAS,CAAC,QAAQ;IAExC,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;AAExD,IAAA,OAAO,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC;AAClD;AAEO,MAAM,mBAAmB,GAAG,CAAC,MAAe,KACjD,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG;AACxD,MAAM,WAAW,GAA2B;AAC1C,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,OAAO,EAAE,YAAY;AACrB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"}