@sebgroup/green-angular 5.1.2 → 5.2.0

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 (434) hide show
  1. package/esm2022/src/v-angular/account-number/account-number.module.mjs +18 -0
  2. package/esm2022/src/v-angular/account-number/account-number.pipe.mjs +54 -0
  3. package/esm2022/src/v-angular/account-number/index.mjs +3 -0
  4. package/esm2022/src/v-angular/account-number/sebgroup-green-angular-src-v-angular-account-number.mjs +5 -0
  5. package/esm2022/src/v-angular/alert/alert.component.mjs +47 -0
  6. package/esm2022/src/v-angular/alert/alert.models.mjs +8 -0
  7. package/esm2022/src/v-angular/alert/alert.module.mjs +18 -0
  8. package/esm2022/src/v-angular/alert/index.mjs +4 -0
  9. package/esm2022/src/v-angular/alert/sebgroup-green-angular-src-v-angular-alert.mjs +5 -0
  10. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +16 -6
  11. package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +9 -9
  12. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +5 -5
  13. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +11 -11
  14. package/esm2022/src/v-angular/button/button.component.mjs +9 -9
  15. package/esm2022/src/v-angular/button/button.module.mjs +11 -11
  16. package/esm2022/src/v-angular/card/card.component.mjs +6 -6
  17. package/esm2022/src/v-angular/card/card.module.mjs +9 -9
  18. package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +6 -6
  19. package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +9 -7
  20. package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +14 -12
  21. package/esm2022/src/v-angular/core/core.utils.mjs +35 -1
  22. package/esm2022/src/v-angular/datepicker/components/calendar/calendar.component.mjs +200 -0
  23. package/esm2022/src/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +115 -0
  24. package/esm2022/src/v-angular/datepicker/components/date-input/date-input.component.mjs +203 -0
  25. package/esm2022/src/v-angular/datepicker/components/datepicker/datepicker.component.mjs +135 -0
  26. package/esm2022/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +408 -0
  27. package/esm2022/src/v-angular/datepicker/datepicker.globals.mjs +20 -0
  28. package/esm2022/src/v-angular/datepicker/datepicker.models.mjs +56 -0
  29. package/esm2022/src/v-angular/datepicker/datepicker.module.mjs +63 -0
  30. package/esm2022/src/v-angular/datepicker/datepicker.utils.mjs +196 -0
  31. package/esm2022/src/v-angular/datepicker/directives/calendar-date.directive.mjs +47 -0
  32. package/esm2022/src/v-angular/datepicker/index.mjs +17 -0
  33. package/esm2022/src/v-angular/datepicker/models/dates.mjs +291 -0
  34. package/esm2022/src/v-angular/datepicker/pipes/date-thook.pipe.mjs +30 -0
  35. package/esm2022/src/v-angular/datepicker/pipes/is-disabled.pipe.mjs +37 -0
  36. package/esm2022/src/v-angular/datepicker/pipes/matches.pipe.mjs +17 -0
  37. package/esm2022/src/v-angular/datepicker/sebgroup-green-angular-src-v-angular-datepicker.mjs +5 -0
  38. package/esm2022/src/v-angular/drag-drop/drag-drop.component.mjs +497 -0
  39. package/esm2022/src/v-angular/drag-drop/drag-drop.models.mjs +2 -0
  40. package/esm2022/src/v-angular/drag-drop/drag-drop.module.mjs +49 -0
  41. package/esm2022/src/v-angular/drag-drop/drag-drop.pipes.mjs +70 -0
  42. package/esm2022/src/v-angular/drag-drop/drag-drop.utils.mjs +76 -0
  43. package/esm2022/src/v-angular/drag-drop/index.mjs +5 -0
  44. package/esm2022/src/v-angular/drag-drop/sebgroup-green-angular-src-v-angular-drag-drop.mjs +5 -0
  45. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +24 -9
  46. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +16 -9
  47. package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +31 -15
  48. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +8 -8
  49. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +5 -5
  50. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +17 -10
  51. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +27 -20
  52. package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +21 -21
  53. package/esm2022/src/v-angular/external-link/external-link.directive.mjs +5 -5
  54. package/esm2022/src/v-angular/external-link/external-link.module.mjs +9 -9
  55. package/esm2022/src/v-angular/i18n/i18n.module.mjs +12 -12
  56. package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +6 -6
  57. package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +6 -6
  58. package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +11 -11
  59. package/esm2022/src/v-angular/input/input.component.mjs +11 -15
  60. package/esm2022/src/v-angular/input/input.module.mjs +27 -22
  61. package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +6 -6
  62. package/esm2022/src/v-angular/input-mask/input-mask.module.mjs +10 -10
  63. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +53 -31
  64. package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +116 -16
  65. package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +5 -5
  66. package/esm2022/src/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
  67. package/esm2022/src/v-angular/modal/modal.module.mjs +38 -27
  68. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +35 -12
  69. package/esm2022/src/v-angular/pagination/index.mjs +3 -0
  70. package/esm2022/src/v-angular/pagination/pagination.component.mjs +144 -0
  71. package/esm2022/src/v-angular/pagination/pagination.module.mjs +37 -0
  72. package/esm2022/src/v-angular/pagination/sebgroup-green-angular-src-v-angular-pagination.mjs +5 -0
  73. package/esm2022/src/v-angular/radio/radio.component.mjs +14 -12
  74. package/esm2022/src/v-angular/radio/radio.module.mjs +12 -11
  75. package/esm2022/src/v-angular/slug/slug.module.mjs +6 -6
  76. package/esm2022/src/v-angular/table/index.mjs +9 -0
  77. package/esm2022/src/v-angular/table/sebgroup-green-angular-src-v-angular-table.mjs +5 -0
  78. package/esm2022/src/v-angular/table/table.component.mjs +387 -0
  79. package/esm2022/src/v-angular/table/table.directive.mjs +110 -0
  80. package/esm2022/src/v-angular/table/table.models.mjs +2 -0
  81. package/esm2022/src/v-angular/table/table.module.mjs +40 -0
  82. package/esm2022/src/v-angular/table/table.tools.mjs +29 -0
  83. package/esm2022/src/v-angular/table/tr-thook.pipe.mjs +22 -0
  84. package/esm2022/src/v-angular/tabs/index.mjs +8 -0
  85. package/esm2022/src/v-angular/tabs/sebgroup-green-angular-src-v-angular-tabs.mjs +5 -0
  86. package/esm2022/src/v-angular/tabs/tab.directive.mjs +81 -0
  87. package/esm2022/src/v-angular/tabs/tabs.component.mjs +262 -0
  88. package/esm2022/src/v-angular/tabs/tabs.models.mjs +2 -0
  89. package/esm2022/src/v-angular/tabs/tabs.module.mjs +21 -0
  90. package/esm2022/src/v-angular/textarea/textarea.component.mjs +9 -7
  91. package/esm2022/src/v-angular/textarea/textarea.module.mjs +27 -13
  92. package/esm2022/src/v-angular/toast/index.mjs +8 -0
  93. package/esm2022/src/v-angular/toast/sebgroup-green-angular-src-v-angular-toast.mjs +5 -0
  94. package/esm2022/src/v-angular/toast/toast-message.service.mjs +63 -0
  95. package/esm2022/src/v-angular/toast/toast.component.mjs +70 -0
  96. package/esm2022/src/v-angular/toast/toast.models.mjs +8 -0
  97. package/esm2022/src/v-angular/toast/toast.module.mjs +21 -0
  98. package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +35 -15
  99. package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +11 -11
  100. package/esm2022/src/v-angular/tooltip/tooltip.styles.mjs +60 -0
  101. package/esm2022/v-angular/alert/alert.component.mjs +47 -0
  102. package/esm2022/v-angular/alert/alert.models.mjs +8 -0
  103. package/esm2022/v-angular/alert/alert.module.mjs +18 -0
  104. package/esm2022/v-angular/alert/index.mjs +4 -0
  105. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +16 -6
  106. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +9 -9
  107. package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +5 -5
  108. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +11 -11
  109. package/esm2022/v-angular/button/button.component.mjs +9 -9
  110. package/esm2022/v-angular/button/button.module.mjs +11 -11
  111. package/esm2022/v-angular/card/card.component.mjs +6 -6
  112. package/esm2022/v-angular/card/card.module.mjs +9 -9
  113. package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +6 -6
  114. package/esm2022/v-angular/checkbox/checkbox.component.mjs +9 -7
  115. package/esm2022/v-angular/checkbox/checkbox.module.mjs +14 -12
  116. package/esm2022/v-angular/datepicker/components/calendar/calendar.component.mjs +200 -0
  117. package/esm2022/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +115 -0
  118. package/esm2022/v-angular/datepicker/components/date-input/date-input.component.mjs +203 -0
  119. package/esm2022/v-angular/datepicker/components/datepicker/datepicker.component.mjs +135 -0
  120. package/esm2022/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +408 -0
  121. package/esm2022/v-angular/datepicker/datepicker.globals.mjs +20 -0
  122. package/esm2022/v-angular/datepicker/datepicker.models.mjs +56 -0
  123. package/esm2022/v-angular/datepicker/datepicker.module.mjs +63 -0
  124. package/esm2022/v-angular/datepicker/datepicker.utils.mjs +196 -0
  125. package/esm2022/v-angular/datepicker/directives/calendar-date.directive.mjs +47 -0
  126. package/esm2022/v-angular/datepicker/index.mjs +17 -0
  127. package/esm2022/v-angular/datepicker/models/dates.mjs +291 -0
  128. package/esm2022/v-angular/datepicker/pipes/date-thook.pipe.mjs +30 -0
  129. package/esm2022/v-angular/datepicker/pipes/is-disabled.pipe.mjs +37 -0
  130. package/esm2022/v-angular/datepicker/pipes/matches.pipe.mjs +17 -0
  131. package/esm2022/v-angular/drag-drop/drag-drop.component.mjs +497 -0
  132. package/esm2022/v-angular/drag-drop/drag-drop.models.mjs +2 -0
  133. package/esm2022/v-angular/drag-drop/drag-drop.module.mjs +49 -0
  134. package/esm2022/v-angular/drag-drop/drag-drop.pipes.mjs +70 -0
  135. package/esm2022/v-angular/drag-drop/drag-drop.utils.mjs +76 -0
  136. package/esm2022/v-angular/drag-drop/index.mjs +5 -0
  137. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +24 -9
  138. package/esm2022/v-angular/dropdown/dropdown.component.mjs +16 -9
  139. package/esm2022/v-angular/dropdown/dropdown.module.mjs +31 -15
  140. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +8 -8
  141. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +5 -5
  142. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +17 -10
  143. package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +27 -20
  144. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +21 -21
  145. package/esm2022/v-angular/external-link/external-link.directive.mjs +37 -0
  146. package/esm2022/v-angular/external-link/external-link.module.mjs +18 -0
  147. package/esm2022/v-angular/external-link/index.mjs +3 -0
  148. package/esm2022/v-angular/i18n/i18n.module.mjs +12 -12
  149. package/esm2022/v-angular/i18n/i18n.test.module.mjs +6 -6
  150. package/esm2022/v-angular/index.mjs +10 -1
  151. package/esm2022/v-angular/info-circle/info-circle.component.mjs +6 -6
  152. package/esm2022/v-angular/info-circle/info-circle.module.mjs +11 -11
  153. package/esm2022/v-angular/input/input.component.mjs +11 -15
  154. package/esm2022/v-angular/input/input.module.mjs +27 -22
  155. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +6 -6
  156. package/esm2022/v-angular/input-mask/input-mask.module.mjs +10 -10
  157. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +53 -31
  158. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +116 -16
  159. package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +5 -5
  160. package/esm2022/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
  161. package/esm2022/v-angular/modal/modal.module.mjs +38 -27
  162. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +35 -12
  163. package/esm2022/v-angular/pagination/index.mjs +3 -0
  164. package/esm2022/v-angular/pagination/pagination.component.mjs +144 -0
  165. package/esm2022/v-angular/pagination/pagination.module.mjs +37 -0
  166. package/esm2022/v-angular/radio/radio.component.mjs +14 -12
  167. package/esm2022/v-angular/radio/radio.module.mjs +12 -11
  168. package/esm2022/v-angular/slug/index.mjs +3 -0
  169. package/esm2022/v-angular/slug/slug.module.mjs +18 -0
  170. package/esm2022/v-angular/slug/slug.pipe.mjs +27 -0
  171. package/esm2022/v-angular/table/index.mjs +9 -0
  172. package/esm2022/v-angular/table/table.component.mjs +387 -0
  173. package/esm2022/v-angular/table/table.directive.mjs +110 -0
  174. package/esm2022/v-angular/table/table.models.mjs +2 -0
  175. package/esm2022/v-angular/table/table.module.mjs +40 -0
  176. package/esm2022/v-angular/table/table.tools.mjs +29 -0
  177. package/esm2022/v-angular/table/tr-thook.pipe.mjs +22 -0
  178. package/esm2022/v-angular/tabs/index.mjs +8 -0
  179. package/esm2022/v-angular/tabs/tab.directive.mjs +81 -0
  180. package/esm2022/v-angular/tabs/tabs.component.mjs +262 -0
  181. package/esm2022/v-angular/tabs/tabs.models.mjs +2 -0
  182. package/esm2022/v-angular/tabs/tabs.module.mjs +21 -0
  183. package/esm2022/v-angular/textarea/textarea.component.mjs +9 -7
  184. package/esm2022/v-angular/textarea/textarea.module.mjs +27 -13
  185. package/esm2022/v-angular/toast/index.mjs +8 -0
  186. package/esm2022/v-angular/toast/toast-message.service.mjs +63 -0
  187. package/esm2022/v-angular/toast/toast.component.mjs +70 -0
  188. package/esm2022/v-angular/toast/toast.models.mjs +8 -0
  189. package/esm2022/v-angular/toast/toast.module.mjs +21 -0
  190. package/esm2022/v-angular/tooltip/tooltip.directive.mjs +35 -15
  191. package/esm2022/v-angular/tooltip/tooltip.module.mjs +11 -11
  192. package/esm2022/v-angular/tooltip/tooltip.styles.mjs +60 -0
  193. package/esm2022/v-angular/v-angular.module.mjs +104 -68
  194. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs +76 -0
  195. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs.map +1 -0
  196. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +76 -0
  197. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -0
  198. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +23 -13
  199. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
  200. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +14 -14
  201. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
  202. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +18 -18
  203. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
  204. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +13 -13
  205. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
  206. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +6 -6
  207. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
  208. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +21 -17
  209. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
  210. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +34 -0
  211. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
  212. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +1759 -0
  213. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -0
  214. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +687 -0
  215. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -0
  216. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +126 -74
  217. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  218. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +12 -12
  219. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
  220. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +17 -17
  221. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
  222. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +15 -15
  223. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
  224. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +14 -14
  225. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
  226. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +36 -35
  227. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  228. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +246 -81
  229. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  230. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs +185 -0
  231. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs.map +1 -0
  232. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +24 -21
  233. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
  234. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +6 -6
  235. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
  236. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +585 -0
  237. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -0
  238. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs +367 -0
  239. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -0
  240. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +33 -18
  241. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  242. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs +166 -0
  243. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs.map +1 -0
  244. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +103 -24
  245. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
  246. package/fesm2022/sebgroup-green-angular-v-angular.mjs +6295 -2165
  247. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  248. package/package.json +51 -3
  249. package/src/v-angular/account-number/README.md +70 -0
  250. package/src/v-angular/account-number/account-number.module.d.ts +8 -0
  251. package/src/v-angular/account-number/account-number.pipe.d.ts +32 -0
  252. package/src/v-angular/account-number/index.d.ts +2 -0
  253. package/src/v-angular/alert/alert.component.d.ts +19 -0
  254. package/src/v-angular/alert/alert.models.d.ts +13 -0
  255. package/src/v-angular/alert/alert.module.d.ts +8 -0
  256. package/src/v-angular/alert/index.d.ts +3 -0
  257. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +10 -4
  258. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +4 -4
  259. package/src/v-angular/breadcrumbs/breadcrumbs.component.d.ts +4 -4
  260. package/src/v-angular/breadcrumbs/breadcrumbs.module.d.ts +4 -4
  261. package/src/v-angular/button/button.component.d.ts +5 -5
  262. package/src/v-angular/button/button.module.d.ts +4 -4
  263. package/src/v-angular/card/card.component.d.ts +3 -3
  264. package/src/v-angular/card/card.module.d.ts +4 -4
  265. package/src/v-angular/character-countdown/character-countdown.module.d.ts +4 -4
  266. package/src/v-angular/checkbox/checkbox.component.d.ts +6 -5
  267. package/src/v-angular/checkbox/checkbox.module.d.ts +5 -4
  268. package/src/v-angular/core/core.utils.d.ts +1 -0
  269. package/src/v-angular/datepicker/components/calendar/calendar.component.d.ts +36 -0
  270. package/src/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +30 -0
  271. package/src/v-angular/datepicker/components/date-input/date-input.component.d.ts +102 -0
  272. package/src/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +62 -0
  273. package/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +165 -0
  274. package/src/v-angular/datepicker/datepicker.globals.d.ts +13 -0
  275. package/src/v-angular/datepicker/datepicker.models.d.ts +50 -0
  276. package/src/v-angular/datepicker/datepicker.module.d.ts +19 -0
  277. package/src/v-angular/datepicker/datepicker.utils.d.ts +39 -0
  278. package/src/v-angular/datepicker/directives/calendar-date.directive.d.ts +21 -0
  279. package/src/v-angular/datepicker/index.d.ts +13 -0
  280. package/src/v-angular/datepicker/models/dates.d.ts +15 -0
  281. package/src/v-angular/datepicker/pipes/date-thook.pipe.d.ts +8 -0
  282. package/src/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +8 -0
  283. package/src/v-angular/datepicker/pipes/matches.pipe.d.ts +7 -0
  284. package/src/v-angular/drag-drop/drag-drop.component.d.ts +131 -0
  285. package/src/v-angular/drag-drop/drag-drop.models.d.ts +49 -0
  286. package/src/v-angular/drag-drop/drag-drop.module.d.ts +13 -0
  287. package/src/v-angular/drag-drop/drag-drop.pipes.d.ts +40 -0
  288. package/src/v-angular/drag-drop/drag-drop.utils.d.ts +33 -0
  289. package/src/v-angular/drag-drop/index.d.ts +4 -0
  290. package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +11 -4
  291. package/src/v-angular/dropdown/dropdown.component.d.ts +10 -6
  292. package/src/v-angular/dropdown/dropdown.module.d.ts +8 -7
  293. package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +6 -6
  294. package/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +3 -3
  295. package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +8 -6
  296. package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +14 -12
  297. package/src/v-angular/dropdown/typeahead/typeahead.module.d.ts +4 -4
  298. package/src/v-angular/external-link/external-link.directive.d.ts +3 -3
  299. package/src/v-angular/external-link/external-link.module.d.ts +4 -4
  300. package/src/v-angular/i18n/i18n.module.d.ts +7 -7
  301. package/src/v-angular/i18n/i18n.test.module.d.ts +4 -4
  302. package/src/v-angular/info-circle/info-circle.component.d.ts +4 -4
  303. package/src/v-angular/info-circle/info-circle.module.d.ts +4 -4
  304. package/src/v-angular/input/input.component.d.ts +5 -10
  305. package/src/v-angular/input/input.module.d.ts +5 -4
  306. package/src/v-angular/input-mask/input-mask.directive.d.ts +3 -3
  307. package/src/v-angular/input-mask/input-mask.module.d.ts +5 -5
  308. package/src/v-angular/modal/dialog/dialog.component.d.ts +16 -7
  309. package/src/v-angular/modal/fold-out/fold-out.component.d.ts +34 -11
  310. package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +3 -3
  311. package/src/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
  312. package/src/v-angular/modal/modal.module.d.ts +4 -4
  313. package/src/v-angular/modal/slide-out/slide-out.component.d.ts +13 -6
  314. package/src/v-angular/pagination/index.d.ts +2 -0
  315. package/src/v-angular/pagination/pagination.component.d.ts +64 -0
  316. package/src/v-angular/pagination/pagination.module.d.ts +12 -0
  317. package/src/v-angular/radio/radio.component.d.ts +14 -13
  318. package/src/v-angular/radio/radio.module.d.ts +5 -4
  319. package/src/v-angular/slug/slug.module.d.ts +4 -4
  320. package/src/v-angular/table/index.d.ts +5 -0
  321. package/src/v-angular/table/table.component.d.ts +229 -0
  322. package/src/v-angular/table/table.directive.d.ts +36 -0
  323. package/src/v-angular/table/table.models.d.ts +62 -0
  324. package/src/v-angular/table/table.module.d.ts +12 -0
  325. package/src/v-angular/table/table.tools.d.ts +5 -0
  326. package/src/v-angular/table/tr-thook.pipe.d.ts +7 -0
  327. package/src/v-angular/tabs/index.d.ts +4 -0
  328. package/src/v-angular/tabs/tab.directive.d.ts +37 -0
  329. package/src/v-angular/tabs/tabs.component.d.ts +65 -0
  330. package/src/v-angular/tabs/tabs.models.d.ts +25 -0
  331. package/src/v-angular/tabs/tabs.module.d.ts +11 -0
  332. package/src/v-angular/textarea/textarea.component.d.ts +6 -5
  333. package/src/v-angular/textarea/textarea.module.d.ts +6 -4
  334. package/src/v-angular/toast/index.d.ts +4 -0
  335. package/src/v-angular/toast/toast-message.service.d.ts +17 -0
  336. package/src/v-angular/toast/toast.component.d.ts +22 -0
  337. package/src/v-angular/toast/toast.models.d.ts +15 -0
  338. package/src/v-angular/toast/toast.module.d.ts +10 -0
  339. package/src/v-angular/tooltip/tooltip.directive.d.ts +5 -3
  340. package/src/v-angular/tooltip/tooltip.module.d.ts +4 -4
  341. package/src/v-angular/tooltip/tooltip.styles.d.ts +11 -0
  342. package/v-angular/alert/alert.component.d.ts +19 -0
  343. package/v-angular/alert/alert.models.d.ts +13 -0
  344. package/v-angular/alert/alert.module.d.ts +8 -0
  345. package/v-angular/alert/index.d.ts +3 -0
  346. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +10 -4
  347. package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +4 -4
  348. package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +4 -4
  349. package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +4 -4
  350. package/v-angular/button/button.component.d.ts +5 -5
  351. package/v-angular/button/button.module.d.ts +4 -4
  352. package/v-angular/card/card.component.d.ts +3 -3
  353. package/v-angular/card/card.module.d.ts +4 -4
  354. package/v-angular/character-countdown/character-countdown.module.d.ts +4 -4
  355. package/v-angular/checkbox/checkbox.component.d.ts +6 -5
  356. package/v-angular/checkbox/checkbox.module.d.ts +5 -4
  357. package/v-angular/datepicker/components/calendar/calendar.component.d.ts +36 -0
  358. package/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +30 -0
  359. package/v-angular/datepicker/components/date-input/date-input.component.d.ts +102 -0
  360. package/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +62 -0
  361. package/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +165 -0
  362. package/v-angular/datepicker/datepicker.globals.d.ts +13 -0
  363. package/v-angular/datepicker/datepicker.models.d.ts +50 -0
  364. package/v-angular/datepicker/datepicker.module.d.ts +19 -0
  365. package/v-angular/datepicker/datepicker.utils.d.ts +39 -0
  366. package/v-angular/datepicker/directives/calendar-date.directive.d.ts +21 -0
  367. package/v-angular/datepicker/index.d.ts +13 -0
  368. package/v-angular/datepicker/models/dates.d.ts +15 -0
  369. package/v-angular/datepicker/pipes/date-thook.pipe.d.ts +8 -0
  370. package/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +8 -0
  371. package/v-angular/datepicker/pipes/matches.pipe.d.ts +7 -0
  372. package/v-angular/drag-drop/drag-drop.component.d.ts +131 -0
  373. package/v-angular/drag-drop/drag-drop.models.d.ts +49 -0
  374. package/v-angular/drag-drop/drag-drop.module.d.ts +13 -0
  375. package/v-angular/drag-drop/drag-drop.pipes.d.ts +40 -0
  376. package/v-angular/drag-drop/drag-drop.utils.d.ts +33 -0
  377. package/v-angular/drag-drop/index.d.ts +4 -0
  378. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +11 -4
  379. package/v-angular/dropdown/dropdown.component.d.ts +10 -6
  380. package/v-angular/dropdown/dropdown.module.d.ts +8 -7
  381. package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +6 -6
  382. package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +3 -3
  383. package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +8 -6
  384. package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +14 -12
  385. package/v-angular/dropdown/typeahead/typeahead.module.d.ts +4 -4
  386. package/v-angular/external-link/external-link.directive.d.ts +17 -0
  387. package/v-angular/external-link/external-link.module.d.ts +8 -0
  388. package/v-angular/external-link/index.d.ts +2 -0
  389. package/v-angular/i18n/i18n.module.d.ts +7 -7
  390. package/v-angular/i18n/i18n.test.module.d.ts +4 -4
  391. package/v-angular/index.d.ts +9 -0
  392. package/v-angular/info-circle/info-circle.component.d.ts +4 -4
  393. package/v-angular/info-circle/info-circle.module.d.ts +4 -4
  394. package/v-angular/input/input.component.d.ts +5 -10
  395. package/v-angular/input/input.module.d.ts +5 -4
  396. package/v-angular/input-mask/input-mask.directive.d.ts +3 -3
  397. package/v-angular/input-mask/input-mask.module.d.ts +5 -5
  398. package/v-angular/modal/dialog/dialog.component.d.ts +16 -7
  399. package/v-angular/modal/fold-out/fold-out.component.d.ts +34 -11
  400. package/v-angular/modal/fold-out/fold-out.directive.d.ts +3 -3
  401. package/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
  402. package/v-angular/modal/modal.module.d.ts +4 -4
  403. package/v-angular/modal/slide-out/slide-out.component.d.ts +13 -6
  404. package/v-angular/pagination/index.d.ts +2 -0
  405. package/v-angular/pagination/pagination.component.d.ts +64 -0
  406. package/v-angular/pagination/pagination.module.d.ts +12 -0
  407. package/v-angular/radio/radio.component.d.ts +14 -13
  408. package/v-angular/radio/radio.module.d.ts +5 -4
  409. package/v-angular/slug/index.d.ts +2 -0
  410. package/v-angular/slug/slug.module.d.ts +8 -0
  411. package/v-angular/slug/slug.pipe.d.ts +12 -0
  412. package/v-angular/table/index.d.ts +5 -0
  413. package/v-angular/table/table.component.d.ts +229 -0
  414. package/v-angular/table/table.directive.d.ts +36 -0
  415. package/v-angular/table/table.models.d.ts +62 -0
  416. package/v-angular/table/table.module.d.ts +12 -0
  417. package/v-angular/table/table.tools.d.ts +5 -0
  418. package/v-angular/table/tr-thook.pipe.d.ts +7 -0
  419. package/v-angular/tabs/index.d.ts +4 -0
  420. package/v-angular/tabs/tab.directive.d.ts +37 -0
  421. package/v-angular/tabs/tabs.component.d.ts +65 -0
  422. package/v-angular/tabs/tabs.models.d.ts +25 -0
  423. package/v-angular/tabs/tabs.module.d.ts +11 -0
  424. package/v-angular/textarea/textarea.component.d.ts +6 -5
  425. package/v-angular/textarea/textarea.module.d.ts +6 -4
  426. package/v-angular/toast/index.d.ts +4 -0
  427. package/v-angular/toast/toast-message.service.d.ts +17 -0
  428. package/v-angular/toast/toast.component.d.ts +22 -0
  429. package/v-angular/toast/toast.models.d.ts +15 -0
  430. package/v-angular/toast/toast.module.d.ts +10 -0
  431. package/v-angular/tooltip/tooltip.directive.d.ts +5 -3
  432. package/v-angular/tooltip/tooltip.module.d.ts +4 -4
  433. package/v-angular/tooltip/tooltip.styles.d.ts +11 -0
  434. package/v-angular/v-angular.module.d.ts +27 -18
@@ -0,0 +1,408 @@
1
+ import { ChangeDetectorRef, ContentChild, Directive, ElementRef, EventEmitter, HostBinding, Inject, Input, Optional, Output, Self, TemplateRef, ViewChild, } from '@angular/core';
2
+ import { NgControl, Validators, } from '@angular/forms';
3
+ import { TRANSLOCO_SCOPE, TranslocoService, } from '@jsverse/transloco';
4
+ import { Observable, Subject } from 'rxjs';
5
+ import { takeUntil } from 'rxjs/operators';
6
+ import { getFormatDateMask, getLocaleDateMask, getLocaleDateString, setDateFormatCharacters, } from '../models/dates';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "@jsverse/transloco";
10
+ // eslint-disable-next-line @angular-eslint/directive-class-suffix
11
+ export class DateControlValueAccessorComponent {
12
+ /** Text shown before input has a written value. Default current date format by locale of transloco */
13
+ set placeholder(value) {
14
+ this._placeholder = value
15
+ ? setDateFormatCharacters(value, this.dateCharacters)
16
+ : value;
17
+ this.defaultPlaceholder = value
18
+ ? setDateFormatCharacters(value, this.dateCharacters)
19
+ : value;
20
+ }
21
+ get placeholder() {
22
+ return this._placeholder;
23
+ }
24
+ /**
25
+ * Settings for input mask for dates based on locale
26
+ * @see {@link getLocaleDateMask} use this tool to generate settings for `dateInputMask`
27
+ */
28
+ set dateInputMask(dateMask) {
29
+ // Hide input field
30
+ this.showInputDateSrc.next(false);
31
+ this.cdr.detectChanges();
32
+ this._dateInputMask = dateMask;
33
+ // Show input field to reload input-mask settings upon update
34
+ setTimeout(() => {
35
+ this.showInputDateSrc.next(true);
36
+ this.cdr.detectChanges();
37
+ }, 200);
38
+ }
39
+ get dateInputMask() {
40
+ return this._dateInputMask;
41
+ }
42
+ /** Hides the input borders and displays current value as a text. */
43
+ set locked(value) {
44
+ this._locked = value;
45
+ this.cdr.detectChanges();
46
+ }
47
+ get locked() {
48
+ return this._locked;
49
+ }
50
+ /** Override the required flag of the component. */
51
+ set required(value) {
52
+ this._required = value;
53
+ }
54
+ /** Child input element is considered required and changes default label template accordingly. */
55
+ get required() {
56
+ // if required is set => return required
57
+ if (this._required !== undefined)
58
+ return this._required;
59
+ // if required can be determined from the control => return control.required
60
+ if (this.ngControl?.control?.validator) {
61
+ const validator = this.ngControl?.control?.validator({});
62
+ return validator && validator.required;
63
+ }
64
+ return;
65
+ }
66
+ /** Override the invalid state of the component. */
67
+ set invalid(value) {
68
+ this._invalid = value;
69
+ }
70
+ /** The component has the invalid state, usually decorating the elements red and shows the first error. */
71
+ get invalid() {
72
+ if (this._invalid === true || this._invalid === false)
73
+ return this._invalid;
74
+ return (!!this.ngControl?.control?.invalid && this.ngControl?.control?.touched);
75
+ }
76
+ /** Override the valid state of the component. */
77
+ set valid(value) {
78
+ this._valid = value;
79
+ }
80
+ /** The component has the valid state, usually decorating the elements green. */
81
+ get valid() {
82
+ if (this._valid === true || this._valid === false)
83
+ return this._valid;
84
+ return !!this.ngControl?.control?.valid && this.ngControl?.control?.touched;
85
+ }
86
+ /**
87
+ * Creates a new BaseControlValueAccessorComponent.
88
+ * @param ngControl optional FormControl provided when component is used in a form, through dependency injection.
89
+ */
90
+ constructor(ngControl, translocoScope, elementRef, cdr, _transloco) {
91
+ this.ngControl = ngControl;
92
+ this.translocoScope = translocoScope;
93
+ this.elementRef = elementRef;
94
+ this.cdr = cdr;
95
+ this._transloco = _transloco;
96
+ /* ATTRIBUTES */
97
+ /** Id of the host element and is accessible by the children, automatically generated if not provided. */
98
+ this.id = window.ngv?.nextId('datepicker');
99
+ /** Adds an icon before each error message. */
100
+ this.withErrorIcon = false;
101
+ /** If set to true, the browser will try to automatically set focus to the child input element. */
102
+ this.autofocus = false;
103
+ this._locked = undefined;
104
+ /* STATES */
105
+ this._required = undefined;
106
+ this._invalid = undefined;
107
+ this._valid = undefined;
108
+ /** The component has the focused state, updated by the child input element's focus state. */
109
+ this.focused = false;
110
+ /** The component has the disabled state, usually muting the colors and removes interaction. */
111
+ this.disabled = false;
112
+ /** Toggler for showing or hiding the input field */
113
+ this.showInputDateSrc = new Subject();
114
+ /* TRIGGERS */
115
+ /** Emits focus events triggered by the child elements. */
116
+ this.ngvFocus = new EventEmitter();
117
+ /** Emits focus events triggered by the child elements. */
118
+ this.ngvBlur = new EventEmitter();
119
+ /* VALUE HANDLERS */
120
+ /** @internal */
121
+ this.onChange = (_) => { }; // eslint-disable-line @typescript-eslint/no-empty-function
122
+ /** @internal */
123
+ this.onTouched = () => { }; // eslint-disable-line @typescript-eslint/no-empty-function
124
+ /** @internal */
125
+ this.onValidatorChange = () => null;
126
+ this._state = null;
127
+ /** @internal */
128
+ // warningIcon = faTriangleExclamation;
129
+ /* LIFE CYCLE VARIABLES */
130
+ this._onDestroy$ = new Subject();
131
+ if (this.ngControl) {
132
+ // Note: we provide the value accessor through here, instead of
133
+ // the `providers` to avoid running into a circular import.
134
+ this.ngControl.valueAccessor = this;
135
+ }
136
+ if (this.translocoScope)
137
+ this.scope = this.translocoScope.toString();
138
+ }
139
+ static parseDateLike(value) {
140
+ try {
141
+ // if value is type of string,
142
+ if (value && typeof value === 'string')
143
+ value = new Date(value);
144
+ switch (true) {
145
+ // remove instances where the value will not correctly be parsed to a date string
146
+ case value == null:
147
+ case value?.toString() === 'Invalid Date':
148
+ return null;
149
+ // if value-as-date is a valid date object, parse the value to YYYY-MM-DD format
150
+ case typeof value?.getMonth === 'function':
151
+ return new Intl.DateTimeFormat('sv-SE').format(value);
152
+ default:
153
+ return value;
154
+ }
155
+ }
156
+ catch (_e) {
157
+ return;
158
+ }
159
+ }
160
+ // eslint-disable-next-line @angular-eslint/contextual-lifecycle
161
+ ngOnInit() {
162
+ if (this.ngControl && this.ngControl.control) {
163
+ this.ngControl.control.setValidators(Validators.compose([this.ngControl.control.validator, this.validate]));
164
+ }
165
+ this._transloco.langChanges$.pipe(takeUntil(this._onDestroy$)).subscribe({
166
+ next: () => {
167
+ if (!this.locale && !this.dateFormat) {
168
+ return this.updatePlaceholderAndMask();
169
+ }
170
+ },
171
+ });
172
+ // if reset observable has been passed, subscribe after updates
173
+ this.reset?.pipe(takeUntil(this._onDestroy$)).subscribe({
174
+ next: () => {
175
+ // reset value of controller
176
+ this.updateValue('');
177
+ },
178
+ });
179
+ }
180
+ // eslint-disable-next-line @angular-eslint/contextual-lifecycle
181
+ ngAfterViewInit() {
182
+ // if default value is set, then don't alter it. Otherwise, use
183
+ // current value of controller after initiation as default value
184
+ this.defaultValue = this.defaultValue ?? this.ngControl?.value;
185
+ }
186
+ ngOnChanges(changes) {
187
+ if (changes.defaultValue?.currentValue) {
188
+ this.updateValue(changes.defaultValue.currentValue);
189
+ }
190
+ if (changes.locale?.currentValue &&
191
+ !this.dateFormat &&
192
+ !changes.dateFormat?.currentValue) {
193
+ this.updatePlaceholderAndMask();
194
+ }
195
+ if (changes.dateFormat?.currentValue) {
196
+ this.updateFormat();
197
+ }
198
+ if (changes.dateCharacters?.currentValue) {
199
+ if (this.dateFormat) {
200
+ this.updateFormat();
201
+ }
202
+ else {
203
+ this.updatePlaceholderAndMask();
204
+ }
205
+ }
206
+ if (!!changes.dateLocale?.currentValue && !this.dateFormat) {
207
+ this.updatePlaceholderAndMask();
208
+ }
209
+ }
210
+ ngOnDestroy() {
211
+ this._onDestroy$.next(true);
212
+ this._onDestroy$.complete();
213
+ }
214
+ /** @internal */
215
+ onFocus(event) {
216
+ event.stopPropagation
217
+ ? event.stopPropagation()
218
+ : (event.cancelBubble = true);
219
+ this.focused = true;
220
+ this.ngvFocus.emit(event);
221
+ }
222
+ /** @internal */
223
+ onBlur(event) {
224
+ event.stopPropagation
225
+ ? event.stopPropagation()
226
+ : (event.cancelBubble = true);
227
+ this.onTouched();
228
+ this.focused = false;
229
+ this.ngvBlur.emit(event);
230
+ }
231
+ detectChanges() {
232
+ this.cdr.detectChanges();
233
+ }
234
+ /** Sets the focus on the actual input element. */
235
+ setFocus() {
236
+ if (this.inputRef)
237
+ this.inputRef.nativeElement.focus();
238
+ }
239
+ /**
240
+ * @internal
241
+ * Update placeholder and input mask to match locale.
242
+ * Order if choice for locale:
243
+ * 1. dateLocale - Used for specifying which locale to be used for formatting date
244
+ * 2. locale - Unless dateLocale is not provided, use locale form current translation
245
+ * 3. transloco.getActiveLang - as last resort, get active language form trnasloco
246
+ * If locale is undefined, transloco.activeLang will be used instead.
247
+ */
248
+ updatePlaceholderAndMask() {
249
+ const locale = this.dateLocale ?? this.locale ?? this._transloco.getActiveLang();
250
+ this._placeholder = this.defaultPlaceholder
251
+ ? setDateFormatCharacters(this.defaultPlaceholder, this.dateCharacters)
252
+ : setDateFormatCharacters(getLocaleDateString(locale).toLowerCase(), this.dateCharacters);
253
+ this.dateInputMask = getLocaleDateMask(this.dateCharacters, locale);
254
+ }
255
+ updateFormat() {
256
+ if (this.dateFormat) {
257
+ this._placeholder = this.defaultPlaceholder
258
+ ? setDateFormatCharacters(this.defaultPlaceholder, this.dateCharacters)
259
+ : setDateFormatCharacters(this.dateFormat.toLowerCase(), this.dateCharacters);
260
+ this.dateInputMask = getFormatDateMask(this.dateFormat, this.dateCharacters);
261
+ }
262
+ }
263
+ // ----------------------------------------------------------------------------
264
+ // CONTROL VALUE ACCESSOR
265
+ // ----------------------------------------------------------------------------
266
+ /** Internal state/value that the native input element has. */
267
+ get state() {
268
+ return this._state;
269
+ }
270
+ /**
271
+ * Internal state/value that the native input element has.
272
+ */
273
+ set state(value) {
274
+ this._state = value;
275
+ }
276
+ /** Writes a new value to the child input element. */
277
+ writeValue(value) {
278
+ this.state = value;
279
+ this.onChange(this.state);
280
+ }
281
+ /** Registers a callback function that is called when the child input element's value changes. */
282
+ registerOnChange(fn) {
283
+ this.onChange = (value) => {
284
+ // ensure emitted value is a string | null | undefined
285
+ const emitValue = DateControlValueAccessorComponent.parseDateLike(value);
286
+ fn(emitValue);
287
+ };
288
+ }
289
+ /** Registers a callback function that is called when the child input element triggers on blur. */
290
+ registerOnTouched(fn) {
291
+ this.onTouched = fn;
292
+ }
293
+ /** Function that is called by the forms API when the control status changes to or from 'DISABLED'. */
294
+ setDisabledState(isDisabled) {
295
+ this.disabled = isDisabled;
296
+ // if displayDisabledAsLocked is enabled - update locked state based on disabled state
297
+ if (this.displayDisabledAsLocked) {
298
+ this.locked = isDisabled;
299
+ }
300
+ }
301
+ // ----------------------------------------------------------------------------
302
+ // VALIDATORS
303
+ // ----------------------------------------------------------------------------
304
+ /** Method that performs synchronous validation against the provided control. Used for internal validation. */
305
+ validate(_control) {
306
+ return null;
307
+ }
308
+ /** Registers a callback function to call when the validator inputs change. */
309
+ registerOnValidatorChange(fn) {
310
+ this.onValidatorChange = fn;
311
+ }
312
+ // ----------------------------------------------------------------------------
313
+ // HELPERS
314
+ // ----------------------------------------------------------------------------
315
+ /** Returns the first entry in an error object. */
316
+ get firstError() {
317
+ const errors = this.ngControl.errors;
318
+ if (!errors)
319
+ return null;
320
+ const code = Object.keys(errors)[0];
321
+ return { code, params: errors[code] };
322
+ }
323
+ updateValue(value = this.defaultValue) {
324
+ this.state = value;
325
+ this.onChange(this.state);
326
+ this.cdr.detectChanges();
327
+ }
328
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateControlValueAccessorComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Directive }); }
329
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DateControlValueAccessorComponent, inputs: { id: "id", name: "name", label: "label", placeholder: "placeholder", dateCharacters: "dateCharacters", role: "role", value: "value", error: "error", errorList: "errorList", withErrorIcon: "withErrorIcon", description: "description", autofocus: "autofocus", defaultValue: "defaultValue", reset: "reset", optional: "optional", dateInputMask: "dateInputMask", locked: "locked", displayDisabledAsLocked: "displayDisabledAsLocked", required: "required", invalid: "invalid", valid: "valid", focused: "focused", disabled: "disabled", locale: "locale", dateFormat: "dateFormat", dateLocale: "dateLocale" }, outputs: { ngvFocus: "ngvFocus", ngvBlur: "ngvBlur" }, host: { properties: { "attr.id": "this.id" } }, queries: [{ propertyName: "labelContentTpl", first: true, predicate: ["labelTpl"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0 }); }
330
+ }
331
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateControlValueAccessorComponent, decorators: [{
332
+ type: Directive
333
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
334
+ type: Self
335
+ }, {
336
+ type: Optional
337
+ }] }, { type: undefined, decorators: [{
338
+ type: Optional
339
+ }, {
340
+ type: Inject,
341
+ args: [TRANSLOCO_SCOPE]
342
+ }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.TranslocoService }], propDecorators: { labelContentTpl: [{
343
+ type: ContentChild,
344
+ args: ['labelTpl', { read: TemplateRef }]
345
+ }], inputRef: [{
346
+ type: ViewChild,
347
+ args: ['input', { read: ElementRef }]
348
+ }], id: [{
349
+ type: HostBinding,
350
+ args: ['attr.id']
351
+ }, {
352
+ type: Input
353
+ }], name: [{
354
+ type: Input
355
+ }], label: [{
356
+ type: Input
357
+ }], placeholder: [{
358
+ type: Input
359
+ }], dateCharacters: [{
360
+ type: Input
361
+ }], role: [{
362
+ type: Input
363
+ }], value: [{
364
+ type: Input
365
+ }], error: [{
366
+ type: Input
367
+ }], errorList: [{
368
+ type: Input
369
+ }], withErrorIcon: [{
370
+ type: Input
371
+ }], description: [{
372
+ type: Input
373
+ }], autofocus: [{
374
+ type: Input
375
+ }], defaultValue: [{
376
+ type: Input
377
+ }], reset: [{
378
+ type: Input
379
+ }], optional: [{
380
+ type: Input
381
+ }], dateInputMask: [{
382
+ type: Input
383
+ }], locked: [{
384
+ type: Input
385
+ }], displayDisabledAsLocked: [{
386
+ type: Input
387
+ }], required: [{
388
+ type: Input
389
+ }], invalid: [{
390
+ type: Input
391
+ }], valid: [{
392
+ type: Input
393
+ }], focused: [{
394
+ type: Input
395
+ }], disabled: [{
396
+ type: Input
397
+ }], locale: [{
398
+ type: Input
399
+ }], dateFormat: [{
400
+ type: Input
401
+ }], dateLocale: [{
402
+ type: Input
403
+ }], ngvFocus: [{
404
+ type: Output
405
+ }], ngvBlur: [{
406
+ type: Output
407
+ }] } });
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2RhdGVwaWNrZXIvZGF0ZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yL2RhdGUtY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBRUosV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBR0wsU0FBUyxFQUdULFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBRWYsZ0JBQWdCLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBSTFDLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQix1QkFBdUIsR0FDeEIsTUFBTSxpQkFBaUIsQ0FBQTs7OztBQUd4QixrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQixpQ0FBaUM7SUE4QnJELHNHQUFzRztJQUN0RyxJQUFhLFdBQVcsQ0FBQyxLQUF5QjtRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUs7WUFDdkIsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ3JELENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDVCxJQUFJ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c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBUWEsUUFBUTtzQkFBMUIsTUFBTTtnQkFFWSxPQUFPO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTmdDb250cm9sLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHtcbiAgVFJBTlNMT0NPX1NDT1BFLFxuICBUcmFuc2xvY29TY29wZSxcbiAgVHJhbnNsb2NvU2VydmljZSxcbn0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHR5cGUgeyBJbnB1dG1hc2tPcHRpb25zIH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9pbnB1dC1tYXNrJ1xuXG5pbXBvcnQge1xuICBEYXRlQ2hhcmFjdGVycyxcbiAgZ2V0Rm9ybWF0RGF0ZU1hc2ssXG4gIGdldExvY2FsZURhdGVNYXNrLFxuICBnZXRMb2NhbGVEYXRlU3RyaW5nLFxuICBzZXREYXRlRm9ybWF0Q2hhcmFjdGVycyxcbn0gZnJvbSAnLi4vbW9kZWxzL2RhdGVzJ1xuXG5ARGlyZWN0aXZlKCkgLy8gUmVxdWlyZWQgd2l0aCBBbmd1bGFyIGl2eSBjb21waWxlclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50XG4gIGltcGxlbWVudHNcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uSW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIFZhbGlkYXRvclxue1xuICAvKiogQ3VzdG9tIHRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBjb250ZW50IG9mIHRoZSBsYWJlbC5cbiAgICogU3BlY2lmaWVkIGJ5IG5lc3RpbmcgYW4gYDxuZy10ZW1wbGF0ZSAjbGFiZWxUcGw+Q3VzdG9tIExhYmVsPC9uZy10ZW1wbGF0ZT5gLlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZCgnbGFiZWxUcGwnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGxhYmVsQ29udGVudFRwbD86IFRlbXBsYXRlUmVmPHVuZGVmaW5lZD5cblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBuYXRpdmUgY2hpbGQgaW5wdXQgZWxlbWVudC4gKi9cbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgaW5wdXRSZWY/OiBFbGVtZW50UmVmXG5cbiAgLyogQVRUUklCVVRFUyAqL1xuXG4gIC8qKiBJZCBvZiB0aGUgaG9zdCBlbGVtZW50IGFuZCBpcyBhY2Nlc3NpYmxlIGJ5IHRoZSBjaGlsZHJlbiwgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHByb3ZpZGVkLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBASW5wdXQoKSBpZCA9ICh3aW5kb3cgYXMgYW55KS5uZ3Y/Lm5leHRJZChcbiAgICAnZGF0ZXBpY2tlcicsXG4gIClcbiAgLyoqIE5hbWUgb2YgdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQuICovXG4gIEBJbnB1dCgpIG5hbWU/OiBzdHJpbmdcbiAgLyoqIExhYmVsIG9mIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50IHVzaW5nIHRoZSBkZWZhdWx0IHRlbXBsYXRlLlxuICAgKiBDYW4gYmUgb3ZlcndyaXR0ZW4gYnkgc3BlY2lmeWluZyBhbiBgPG5nLXRlbXBsYXRlICNsYWJlbFRwbD5DdXN0b20gTGFiZWw8L25nLXRlbXBsYXRlPmAuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZ1xuICAvKiogVGV4dCBzaG93biBiZWZvcmUgaW5wdXQgaGFzIGEgd3JpdHRlbiB2YWx1ZS4gRGVmYXVsdCBjdXJyZW50IGRhdGUgZm9ybWF0IGJ5IGxvY2FsZSBvZiB0cmFuc2xvY28gKi9cbiAgQElucHV0KCkgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlXG4gICAgICA/IHNldERhdGVGb3JtYXRDaGFyYWN0ZXJzKHZhbHVlLCB0aGlzLmRhdGVDaGFyYWN0ZXJzKVxuICAgICAgOiB2YWx1ZVxuICAgIHRoaXMuZGVmYXVsdFBsYWNlaG9sZGVyID0gdmFsdWVcbiAgICAgID8gc2V0RGF0ZUZvcm1hdENoYXJhY3RlcnModmFsdWUsIHRoaXMuZGF0ZUNoYXJhY3RlcnMpXG4gICAgICA6IHZhbHVlXG4gIH1cbiAgZ2V0IHBsYWNlaG9sZGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlclxuICB9XG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgZGVmYXVsdFBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIC8qKiBXaGF0IGNoYXJhY3RlcnMgdG8gdXNlIGluIGRhdGUgcGxhY2Vob2xkZXIsIGUuZy4ge3llYXI6ICdZJywgbW9udGg6ICdNJywgZGF5OiAnRCd9ICovXG4gIEBJbnB1dCgpIGRhdGVDaGFyYWN0ZXJzPzogRGF0ZUNoYXJhY3RlcnNcbiAgLyoqIFJvbGUgb2YgdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQuIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FjY2Vzc2liaWxpdHkvQVJJQS9Sb2xlcyAqL1xuICBASW5wdXQoKSByb2xlPzogc3RyaW5nXG4gIC8qKiBWYWx1ZSBvZiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudC4gTW9zdGx5IHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCByYWRpbyBhbmQgY2hlY2tib3hlcy4gKi9cbiAgQElucHV0KCkgdmFsdWU6IGFueVxuICAvKiogQW4gZXJyb3Igc3RyaW5nIHRvIGJlIHNob3duIHVuZGVyIGludmFsaWQgaW5wdXRzLiBPdmVyd3JpdGVzIGFueSBmb3JtIGVycm9ycy4gKi9cbiAgQElucHV0KCkgZXJyb3I/OiBzdHJpbmdcbiAgLyoqIEEgbGlzdCBvZiBlcnJvcnMgc3RyaW5nIHRvIGJlIHNob3duIHVuZGVyIGludmFsaWQgaW5wdXRzLiBPdmVyd3JpdGVzIGFueSBmb3JtIGVycm9ycy4gKi9cbiAgQElucHV0KCkgZXJyb3JMaXN0Pzogc3RyaW5nW11cbiAgLyoqIEFkZHMgYW4gaWNvbiBiZWZvcmUgZWFjaCBlcnJvciBtZXNzYWdlLiAqL1xuICBASW5wdXQoKSB3aXRoRXJyb3JJY29uPzogYm9vbGVhbiA9IGZhbHNlXG4gIC8qKiBEZXNjcmlwdGlvbiBvZiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudC4gQm90aCB2aXNpYmx5IGFuZCBhcyBgYXJpYS1sYWJlbGAuICovXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGJyb3dzZXIgd2lsbCB0cnkgdG8gYXV0b21hdGljYWxseSBzZXQgZm9jdXMgdG8gdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQuICovXG4gIEBJbnB1dCgpIGF1dG9mb2N1cyA9IGZhbHNlXG4gIC8qKiBEZWZhdWx0IHZhbHVlIG9mIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50LiAqL1xuICBASW5wdXQoKSBkZWZhdWx0VmFsdWU/OiBhbnlcbiAgLyoqIElmIHBhc3NlZCwgdGhlIGNvbXBvbmVudCB3aWxsIGxpc3RlbiBmb3IgdXBkYXRlcyBhbmQgd2lsbCByZXNldCBpdHMgdmFsdWUuICovXG4gIEBJbnB1dCgpIHJlc2V0PzogT2JzZXJ2YWJsZTxhbnk+XG4gIC8qKiBBZGRzIChPcHRpb25hbCkgdG8gaW5wdXQgbGFiZWwuICovXG4gIEBJbnB1dCgpIG9wdGlvbmFsPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWRcbiAgLyoqXG4gICAqIFNldHRpbmdzIGZvciBpbnB1dCBtYXNrIGZvciBkYXRlcyBiYXNlZCBvbiBsb2NhbGVcbiAgICogQHNlZSB7QGxpbmsgZ2V0TG9jYWxlRGF0ZU1hc2t9IHVzZSB0aGlzIHRvb2wgdG8gZ2VuZXJhdGUgc2V0dGluZ3MgZm9yIGBkYXRlSW5wdXRNYXNrYFxuICAgKi9cbiAgQElucHV0KCkgc2V0IGRhdGVJbnB1dE1hc2soZGF0ZU1hc2s6IElucHV0bWFza09wdGlvbnM8RGF0ZT4pIHtcbiAgICAvLyBIaWRlIGlucHV0IGZpZWxkXG4gICAgdGhpcy5zaG93SW5wdXREYXRlU3JjLm5leHQoZmFsc2UpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgdGhpcy5fZGF0ZUlucHV0TWFzayA9IGRhdGVNYXNrXG5cbiAgICAvLyBTaG93IGlucHV0IGZpZWxkIHRvIHJlbG9hZCBpbnB1dC1tYXNrIHNldHRpbmdzIHVwb24gdXBkYXRlXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dJbnB1dERhdGVTcmMubmV4dCh0cnVlKVxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfSwgMjAwKVxuICB9XG4gIGdldCBkYXRlSW5wdXRNYXNrKCk6IElucHV0bWFza09wdGlvbnM8RGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRlSW5wdXRNYXNrXG4gIH1cbiAgcHJpdmF0ZSBfZGF0ZUlucHV0TWFzayE6IElucHV0bWFza09wdGlvbnM8RGF0ZT5cblxuICBwcml2YXRlIF9sb2NrZWQ6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gIC8qKiBIaWRlcyB0aGUgaW5wdXQgYm9yZGVycyBhbmQgZGlzcGxheXMgY3VycmVudCB2YWx1ZSBhcyBhIHRleHQuICovXG4gIEBJbnB1dCgpIHNldCBsb2NrZWQodmFsdWU6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fbG9ja2VkID0gdmFsdWVcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICBnZXQgbG9ja2VkKCk6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fbG9ja2VkXG4gIH1cbiAgLyoqIElmIHNldCB0byB0cnVlLCB1c2luZyBhIGNvbnRyb2xzIGRpc2FibGVkIHN0YXRlIHdpbGwgZGlzcGxheSBpbnB1dCBhcyBsb2NrZWQuICovXG4gIEBJbnB1dCgpIGRpc3BsYXlEaXNhYmxlZEFzTG9ja2VkPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWRcblxuICAvKiBTVEFURVMgKi9cblxuICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbiAgLyoqIE92ZXJyaWRlIHRoZSByZXF1aXJlZCBmbGFnIG9mIHRoZSBjb21wb25lbnQuICovXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IHZhbHVlXG4gIH1cbiAgLyoqIENoaWxkIGlucHV0IGVsZW1lbnQgaXMgY29uc2lkZXJlZCByZXF1aXJlZCBhbmQgY2hhbmdlcyBkZWZhdWx0IGxhYmVsIHRlbXBsYXRlIGFjY29yZGluZ2x5LiAqL1xuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgIC8vIGlmIHJlcXVpcmVkIGlzIHNldCA9PiByZXR1cm4gcmVxdWlyZWRcbiAgICBpZiAodGhpcy5fcmVxdWlyZWQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIHRoaXMuX3JlcXVpcmVkXG5cbiAgICAvLyBpZiByZXF1aXJlZCBjYW4gYmUgZGV0ZXJtaW5lZCBmcm9tIHRoZSBjb250cm9sID0+IHJldHVybiBjb250cm9sLnJlcXVpcmVkXG4gICAgaWYgKHRoaXMubmdDb250cm9sPy5jb250cm9sPy52YWxpZGF0b3IpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvciA9IHRoaXMubmdDb250cm9sPy5jb250cm9sPy52YWxpZGF0b3IoXG4gICAgICAgIHt9IGFzIEFic3RyYWN0Q29udHJvbCxcbiAgICAgIClcbiAgICAgIHJldHVybiB2YWxpZGF0b3IgJiYgdmFsaWRhdG9yLnJlcXVpcmVkXG4gICAgfVxuXG4gICAgcmV0dXJuXG4gIH1cblxuICBwcml2YXRlIF9pbnZhbGlkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gIC8qKiBPdmVycmlkZSB0aGUgaW52YWxpZCBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICBASW5wdXQoKSBzZXQgaW52YWxpZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2ludmFsaWQgPSB2YWx1ZVxuICB9XG4gIC8qKiBUaGUgY29tcG9uZW50IGhhcyB0aGUgaW52YWxpZCBzdGF0ZSwgdXN1YWxseSBkZWNvcmF0aW5nIHRoZSBlbGVtZW50cyByZWQgYW5kIHNob3dzIHRoZSBmaXJzdCBlcnJvci4gKi9cbiAgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2ludmFsaWQgPT09IHRydWUgfHwgdGhpcy5faW52YWxpZCA9PT0gZmFsc2UpIHJldHVybiB0aGlzLl9pbnZhbGlkXG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LmludmFsaWQgJiYgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnRvdWNoZWRcbiAgICApXG4gIH1cblxuICBwcml2YXRlIF92YWxpZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICAvKiogT3ZlcnJpZGUgdGhlIHZhbGlkIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIEBJbnB1dCgpIHNldCB2YWxpZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3ZhbGlkID0gdmFsdWVcbiAgfVxuICAvKiogVGhlIGNvbXBvbmVudCBoYXMgdGhlIHZhbGlkIHN0YXRlLCB1c3VhbGx5IGRlY29yYXRpbmcgdGhlIGVsZW1lbnRzIGdyZWVuLiAqL1xuICBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX3ZhbGlkID09PSB0cnVlIHx8IHRoaXMuX3ZhbGlkID09PSBmYWxzZSkgcmV0dXJuIHRoaXMuX3ZhbGlkXG4gICAgcmV0dXJuICEhdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbGlkICYmIHRoaXMubmdDb250cm9sPy5jb250cm9sPy50b3VjaGVkXG4gIH1cblxuICAvKiogVGhlIGNvbXBvbmVudCBoYXMgdGhlIGZvY3VzZWQgc3RhdGUsIHVwZGF0ZWQgYnkgdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQncyBmb2N1cyBzdGF0ZS4gKi9cbiAgQElucHV0KCkgZm9jdXNlZCA9IGZhbHNlXG4gIC8qKiBUaGUgY29tcG9uZW50IGhhcyB0aGUgZGlzYWJsZWQgc3RhdGUsIHVzdWFsbHkgbXV0aW5nIHRoZSBjb2xvcnMgYW5kIHJlbW92ZXMgaW50ZXJhY3Rpb24uICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2VcbiAgLyoqIExvY2FsZSBmb3IgdXNpbmcgY29ycmVjdCBsYW5ndWFnZSBpbiB0aGUgZGF0ZXBpY2tlci4gKi9cbiAgQElucHV0KCkgbG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgLyoqIERhdGUgZm9ybWF0IHVzZWQgZm9yIHBsYWNlaG9sZGVyIGFuZCBpbnB1dCBtYXNrLiBTaG91bGQgYmUgaW4gbG93ZXIgY2FzZSB7eWVhcjogJ3knLCBtb250aDogJ20nLCBkYXk6ICdkJ30gKi9cbiAgQElucHV0KCkgZGF0ZUZvcm1hdDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIC8qKiBEYXRlIGxvY2FsZSB1c2VkIGZvciBwbGFjZWhvbGRlciBhbmQgaW5wdXQgbWFzay4gKi9cbiAgQElucHV0KCkgZGF0ZUxvY2FsZTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFRvZ2dsZXIgZm9yIHNob3dpbmcgb3IgaGlkaW5nIHRoZSBpbnB1dCBmaWVsZCAqL1xuICBwcm90ZWN0ZWQgc2hvd0lucHV0RGF0ZVNyYyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KClcblxuICAvKiBUUklHR0VSUyAqL1xuXG4gIC8qKiBFbWl0cyBmb2N1cyBldmVudHMgdHJpZ2dlcmVkIGJ5IHRoZSBjaGlsZCBlbGVtZW50cy4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IG5ndkZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIC8qKiBFbWl0cyBmb2N1cyBldmVudHMgdHJpZ2dlcmVkIGJ5IHRoZSBjaGlsZCBlbGVtZW50cy4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IG5ndkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICAvKiBWQUxVRSBIQU5ETEVSUyAqL1xuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCBvbkNoYW5nZSA9IChfOiBhbnkpOiB2b2lkID0+IHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkID0gKCkgPT4gbnVsbFxuICBwcml2YXRlIF9zdGF0ZTogYW55ID0gbnVsbFxuXG4gIC8qIE9USEVSIFZBUklBQkxFUyAqL1xuICBzY29wZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgLy8gd2FybmluZ0ljb24gPSBmYVRyaWFuZ2xlRXhjbGFtYXRpb247XG5cbiAgLyogTElGRSBDWUNMRSBWQVJJQUJMRVMgKi9cbiAgcHJpdmF0ZSBfb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHRydWU+KClcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQuXG4gICAqIEBwYXJhbSBuZ0NvbnRyb2wgb3B0aW9uYWwgRm9ybUNvbnRyb2wgcHJvdmlkZWQgd2hlbiBjb21wb25lbnQgaXMgdXNlZCBpbiBhIGZvcm0sIHRocm91Z2ggZGVwZW5kZW5jeSBpbmplY3Rpb24uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoVFJBTlNMT0NPX1NDT1BFKVxuICAgIHByb3RlY3RlZCB0cmFuc2xvY29TY29wZTogVHJhbnNsb2NvU2NvcGUsXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfdHJhbnNsb2NvOiBUcmFuc2xvY29TZXJ2aWNlLFxuICApIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIC8vIE5vdGU6IHdlIHByb3ZpZGUgdGhlIHZhbHVlIGFjY2Vzc29yIHRocm91Z2ggaGVyZSwgaW5zdGVhZCBvZlxuICAgICAgLy8gdGhlIGBwcm92aWRlcnNgIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydC5cbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzXG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHJhbnNsb2NvU2NvcGUpIHRoaXMuc2NvcGUgPSB0aGlzLnRyYW5zbG9jb1Njb3BlLnRvU3RyaW5nKClcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZURhdGVMaWtlKHZhbHVlOiBhbnkpOiBudWxsIHwgdW5kZWZpbmVkIHwgc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgLy8gaWYgdmFsdWUgaXMgdHlwZSBvZiBzdHJpbmcsXG4gICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSlcbiAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAvLyByZW1vdmUgaW5zdGFuY2VzIHdoZXJlIHRoZSB2YWx1ZSB3aWxsIG5vdCBjb3JyZWN0bHkgYmUgcGFyc2VkIHRvIGEgZGF0ZSBzdHJpbmdcbiAgICAgICAgY2FzZSB2YWx1ZSA9PSBudWxsOlxuICAgICAgICBjYXNlIHZhbHVlPy50b1N0cmluZygpID09PSAnSW52YWxpZCBEYXRlJzpcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAvLyBpZiB2YWx1ZS1hcy1kYXRlIGlzIGEgdmFsaWQgZGF0ZSBvYmplY3QsIHBhcnNlIHRoZSB2YWx1ZSB0byBZWVlZLU1NLUREIGZvcm1hdFxuICAgICAgICBjYXNlIHR5cGVvZiB2YWx1ZT8uZ2V0TW9udGggPT09ICdmdW5jdGlvbic6XG4gICAgICAgICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdzdi1TRScpLmZvcm1hdCh2YWx1ZSlcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gdmFsdWUgYXMgc3RyaW5nXG4gICAgICB9XG4gICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29udGV4dHVhbC1saWZlY3ljbGVcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyhcbiAgICAgICAgVmFsaWRhdG9ycy5jb21wb3NlKFt0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvciwgdGhpcy52YWxpZGF0ZV0pLFxuICAgICAgKVxuICAgIH1cblxuICAgIHRoaXMuX3RyYW5zbG9jby5sYW5nQ2hhbmdlcyQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5sb2NhbGUgJiYgIXRoaXMuZGF0ZUZvcm1hdCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVBsYWNlaG9sZGVyQW5kTWFzaygpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSlcblxuICAgIC8vIGlmIHJlc2V0IG9ic2VydmFibGUgaGFzIGJlZW4gcGFzc2VkLCBzdWJzY3JpYmUgYWZ0ZXIgdXBkYXRlc1xuICAgIHRoaXMucmVzZXQ/LnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAvLyByZXNldCB2YWx1ZSBvZiBjb250cm9sbGVyXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoJycpXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbnRleHR1YWwtbGlmZWN5Y2xlXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBpZiBkZWZhdWx0IHZhbHVlIGlzIHNldCwgdGhlbiBkb24ndCBhbHRlciBpdC4gT3RoZXJ3aXNlLCB1c2VcbiAgICAvLyBjdXJyZW50IHZhbHVlIG9mIGNvbnRyb2xsZXIgYWZ0ZXIgaW5pdGlhdGlvbiBhcyBkZWZhdWx0IHZhbHVlXG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZSA/PyB0aGlzLm5nQ29udHJvbD8udmFsdWVcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kZWZhdWx0VmFsdWU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZShjaGFuZ2VzLmRlZmF1bHRWYWx1ZS5jdXJyZW50VmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5sb2NhbGU/LmN1cnJlbnRWYWx1ZSAmJlxuICAgICAgIXRoaXMuZGF0ZUZvcm1hdCAmJlxuICAgICAgIWNoYW5nZXMuZGF0ZUZvcm1hdD8uY3VycmVudFZhbHVlXG4gICAgKSB7XG4gICAgICB0aGlzLnVwZGF0ZVBsYWNlaG9sZGVyQW5kTWFzaygpXG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGF0ZUZvcm1hdD8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnVwZGF0ZUZvcm1hdCgpXG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGF0ZUNoYXJhY3RlcnM/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgaWYgKHRoaXMuZGF0ZUZvcm1hdCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1hdCgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVwZGF0ZVBsYWNlaG9sZGVyQW5kTWFzaygpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCEhY2hhbmdlcy5kYXRlTG9jYWxlPy5jdXJyZW50VmFsdWUgJiYgIXRoaXMuZGF0ZUZvcm1hdCkge1xuICAgICAgdGhpcy51cGRhdGVQbGFjZWhvbGRlckFuZE1hc2soKVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCh0cnVlKVxuICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbkZvY3VzKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvblxuICAgICAgPyBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgOiAoZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZSlcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlXG4gICAgdGhpcy5uZ3ZGb2N1cy5lbWl0KGV2ZW50KVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbkJsdXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uXG4gICAgICA/IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICA6IChldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlKVxuICAgIHRoaXMub25Ub3VjaGVkKClcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZVxuICAgIHRoaXMubmd2Qmx1ci5lbWl0KGV2ZW50KVxuICB9XG5cbiAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIC8qKiBTZXRzIHRoZSBmb2N1cyBvbiB0aGUgYWN0dWFsIGlucHV0IGVsZW1lbnQuICovXG4gIHNldEZvY3VzKCkge1xuICAgIGlmICh0aGlzLmlucHV0UmVmKSB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBVcGRhdGUgcGxhY2Vob2xkZXIgIGFuZCBpbnB1dCBtYXNrIHRvIG1hdGNoIGxvY2FsZS5cbiAgICogT3JkZXIgaWYgY2hvaWNlIGZvciBsb2NhbGU6XG4gICAqIDEuIGRhdGVMb2NhbGUgLSBVc2VkIGZvciBzcGVjaWZ5aW5nIHdoaWNoIGxvY2FsZSB0byBiZSB1c2VkIGZvciBmb3JtYXR0aW5nIGRhdGVcbiAgICogMi4gbG9jYWxlIC0gVW5sZXNzIGRhdGVMb2NhbGUgaXMgbm90IHByb3ZpZGVkLCB1c2UgbG9jYWxlIGZvcm0gY3VycmVudCB0cmFuc2xhdGlvblxuICAgKiAzLiB0cmFuc2xvY28uZ2V0QWN0aXZlTGFuZyAtIGFzIGxhc3QgcmVzb3J0LCBnZXQgYWN0aXZlIGxhbmd1YWdlIGZvcm0gdHJuYXNsb2NvXG4gICAqIElmIGxvY2FsZSBpcyB1bmRlZmluZWQsIHRyYW5zbG9jby5hY3RpdmVMYW5nIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLlxuICAgKi9cbiAgdXBkYXRlUGxhY2Vob2xkZXJBbmRNYXNrKCkge1xuICAgIGNvbnN0IGxvY2FsZSA9XG4gICAgICB0aGlzLmRhdGVMb2NhbGUgPz8gdGhpcy5sb2NhbGUgPz8gdGhpcy5fdHJhbnNsb2NvLmdldEFjdGl2ZUxhbmcoKVxuXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB0aGlzLmRlZmF1bHRQbGFjZWhvbGRlclxuICAgICAgPyBzZXREYXRlRm9ybWF0Q2hhcmFjdGVycyh0aGlzLmRlZmF1bHRQbGFjZWhvbGRlciwgdGhpcy5kYXRlQ2hhcmFjdGVycylcbiAgICAgIDogc2V0RGF0ZUZvcm1hdENoYXJhY3RlcnMoXG4gICAgICAgICAgZ2V0TG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUpLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgdGhpcy5kYXRlQ2hhcmFjdGVycyxcbiAgICAgICAgKVxuICAgIHRoaXMuZGF0ZUlucHV0TWFzayA9IGdldExvY2FsZURhdGVNYXNrKHRoaXMuZGF0ZUNoYXJhY3RlcnMsIGxvY2FsZSlcbiAgfVxuXG4gIHVwZGF0ZUZvcm1hdCgpIHtcbiAgICBpZiAodGhpcy5kYXRlRm9ybWF0KSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHRoaXMuZGVmYXVsdFBsYWNlaG9sZGVyXG4gICAgICAgID8gc2V0RGF0ZUZvcm1hdENoYXJhY3RlcnModGhpcy5kZWZhdWx0UGxhY2Vob2xkZXIsIHRoaXMuZGF0ZUNoYXJhY3RlcnMpXG4gICAgICAgIDogc2V0RGF0ZUZvcm1hdENoYXJhY3RlcnMoXG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgIHRoaXMuZGF0ZUNoYXJhY3RlcnMsXG4gICAgICAgICAgKVxuICAgICAgdGhpcy5kYXRlSW5wdXRNYXNrID0gZ2V0Rm9ybWF0RGF0ZU1hc2soXG4gICAgICAgIHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgICAgdGhpcy5kYXRlQ2hhcmFjdGVycyxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIENPTlRST0wgVkFMVUUgQUNDRVNTT1JcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKiBJbnRlcm5hbCBzdGF0ZS92YWx1ZSB0aGF0IHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudCBoYXMuICovXG4gIGdldCBzdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCBzdGF0ZS92YWx1ZSB0aGF0IHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudCBoYXMuXG4gICAqL1xuICBzZXQgc3RhdGUodmFsdWUpIHtcbiAgICB0aGlzLl9zdGF0ZSA9IHZhbHVlXG4gIH1cblxuICAvKiogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50LiAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gdmFsdWVcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc3RhdGUpXG4gIH1cblxuICAvKiogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudCdzIHZhbHVlIGNoYW5nZXMuICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9ICh2YWx1ZSkgPT4ge1xuICAgICAgLy8gZW5zdXJlIGVtaXR0ZWQgdmFsdWUgaXMgYSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAgICBjb25zdCBlbWl0VmFsdWUgPSBEYXRlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQucGFyc2VEYXRlTGlrZSh2YWx1ZSlcbiAgICAgIGZuKGVtaXRWYWx1ZSlcbiAgICB9XG4gIH1cblxuICAvKiogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudCB0cmlnZ2VycyBvbiBibHVyLiAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm5cbiAgfVxuXG4gIC8qKiBGdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBieSB0aGUgZm9ybXMgQVBJIHdoZW4gdGhlIGNvbnRyb2wgc3RhdHVzIGNoYW5nZXMgdG8gb3IgZnJvbSAnRElTQUJMRUQnLiAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZFxuXG4gICAgLy8gaWYgZGlzcGxheURpc2FibGVkQXNMb2NrZWQgaXMgZW5hYmxlZCAtIHVwZGF0ZSBsb2NrZWQgc3RhdGUgYmFzZWQgb24gZGlzYWJsZWQgc3RhdGVcbiAgICBpZiAodGhpcy5kaXNwbGF5RGlzYWJsZWRBc0xvY2tlZCkge1xuICAgICAgdGhpcy5sb2NrZWQgPSBpc0Rpc2FibGVkXG4gICAgfVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBWQUxJREFUT1JTXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogTWV0aG9kIHRoYXQgcGVyZm9ybXMgc3luY2hyb25vdXMgdmFsaWRhdGlvbiBhZ2FpbnN0IHRoZSBwcm92aWRlZCBjb250cm9sLiBVc2VkIGZvciBpbnRlcm5hbCB2YWxpZGF0aW9uLiAqL1xuICB2YWxpZGF0ZShfY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgdmFsaWRhdG9yIGlucHV0cyBjaGFuZ2UuICovXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlID0gZm5cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSEVMUEVSU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIFJldHVybnMgdGhlIGZpcnN0IGVudHJ5IGluIGFuIGVycm9yIG9iamVjdC4gKi9cbiAgZ2V0IGZpcnN0RXJyb3IoKTogeyBjb2RlOiBzdHJpbmc7IHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PiB9IHwgbnVsbCB7XG4gICAgY29uc3QgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IHRoaXMubmdDb250cm9sLmVycm9yc1xuICAgIGlmICghZXJyb3JzKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IGNvZGUgPSBPYmplY3Qua2V5cyhlcnJvcnMpWzBdXG4gICAgcmV0dXJuIHsgY29kZSwgcGFyYW1zOiBlcnJvcnNbY29kZV0gfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZSh2YWx1ZSA9IHRoaXMuZGVmYXVsdFZhbHVlKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHZhbHVlXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnN0YXRlKVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG59XG4iXX0=
@@ -0,0 +1,20 @@
1
+ ;
2
+ (() => {
3
+ // Make sure there is an incremental ID each component can use
4
+ if (typeof window !== 'undefined' && !window.ngv) {
5
+ window.ngv = {
6
+ ids: { default: -1 },
7
+ nextId(namespace = 'default') {
8
+ let id = this.ids[namespace] || 0;
9
+ if (typeof this.ids[namespace] === 'number')
10
+ id++;
11
+ this.ids[namespace] = id;
12
+ return namespace === 'default'
13
+ ? `nggv-${id}`
14
+ : `nggv-${namespace}-${id}`;
15
+ },
16
+ };
17
+ }
18
+ })();
19
+ export {};
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5nbG9iYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmdsb2JhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0EsQ0FBQztBQUFBLENBQUMsR0FBRyxFQUFFO0lBQ0wsOERBQThEO0lBQzlELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxHQUFHLEdBQUc7WUFDWCxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTO2dCQUMxQixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDakMsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssUUFBUTtvQkFBRSxFQUFFLEVBQUUsQ0FBQTtnQkFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUE7Z0JBQ3hCLE9BQU8sU0FBUyxLQUFLLFNBQVM7b0JBQzVCLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDZCxDQUFDLENBQUMsUUFBUSxTQUFTLElBQUksRUFBRSxFQUFFLENBQUE7WUFDL0IsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFdlIG11c3QgZm9yY2UgdHNjIHRvIGludGVycHJldCB0aGlzIGZpbGUgYXMgYSBtb2R1bGUsIHJlc29sdmVzXG4vLyBcIkF1Z21lbnRhdGlvbnMgZm9yIHRoZSBnbG9iYWwgc2NvcGUgY2FuIG9ubHkgYmUgZGlyZWN0bHkgbmVzdGVkIGluIGV4dGVybmFsIG1vZHVsZXMgb3IgYW1iaWVudCBtb2R1bGUgZGVjbGFyYXRpb25zLlwiXG5leHBvcnQge31cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAvKiogQ291bnRlciBmb3IgdW5pcXVlIGlkZW50aWZpZXJzICovXG4gICAgbmd2OiB7XG4gICAgICBpZHM6IHsgW25hbWVzcGFjZTogc3RyaW5nXTogbnVtYmVyOyBkZWZhdWx0OiBudW1iZXIgfVxuICAgICAgbmV4dElkOiAobmFtZXNwYWNlPzogc3RyaW5nKSA9PiBzdHJpbmdcbiAgICB9XG4gIH1cbn1cblxuOygoKSA9PiB7XG4gIC8vIE1ha2Ugc3VyZSB0aGVyZSBpcyBhbiBpbmNyZW1lbnRhbCBJRCBlYWNoIGNvbXBvbmVudCBjYW4gdXNlXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAhd2luZG93Lm5ndikge1xuICAgIHdpbmRvdy5uZ3YgPSB7XG4gICAgICBpZHM6IHsgZGVmYXVsdDogLTEgfSxcbiAgICAgIG5leHRJZChuYW1lc3BhY2UgPSAnZGVmYXVsdCcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgaWQgPSB0aGlzLmlkc1tuYW1lc3BhY2VdIHx8IDBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkc1tuYW1lc3BhY2VdID09PSAnbnVtYmVyJykgaWQrK1xuICAgICAgICB0aGlzLmlkc1tuYW1lc3BhY2VdID0gaWRcbiAgICAgICAgcmV0dXJuIG5hbWVzcGFjZSA9PT0gJ2RlZmF1bHQnXG4gICAgICAgICAgPyBgbmdndi0ke2lkfWBcbiAgICAgICAgICA6IGBuZ2d2LSR7bmFtZXNwYWNlfS0ke2lkfWBcbiAgICAgIH0sXG4gICAgfVxuICB9XG59KSgpXG4iXX0=
@@ -0,0 +1,56 @@
1
+ import { formatDate } from '@angular/common';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class CalendarMonth {
5
+ constructor(date) {
6
+ this._date = date ? new Date(date) : new Date();
7
+ this._date.setDate(1);
8
+ this._date.setHours(0, 0, 0, 0);
9
+ this.year = this._date.getFullYear();
10
+ this.month = this._date.getMonth();
11
+ this.id = formatDate(this._date, 'yyyyMM', 'en');
12
+ }
13
+ /** Creates an instance based of input year and month. */
14
+ static fromObject(obj) {
15
+ const objectDate = new Date(obj.year, obj.month, 1);
16
+ return new CalendarMonth(objectDate);
17
+ }
18
+ /** Returns a Date representation for the instance. */
19
+ get date() {
20
+ return new Date(this._date);
21
+ }
22
+ /** Returns the string id representing the instance in form of 'yyyyMM'. */
23
+ valueOf() {
24
+ return this.id;
25
+ }
26
+ /** Returns a new instance for next month. */
27
+ nextMonth() {
28
+ const next = this.date;
29
+ next.setMonth(this.month + 1);
30
+ return new CalendarMonth(next);
31
+ }
32
+ /** Returns a new instance for previous month. */
33
+ previousMonth() {
34
+ const previous = this.date;
35
+ previous.setMonth(this.month - 1);
36
+ return new CalendarMonth(previous);
37
+ }
38
+ /** Returns a new instance for next year. */
39
+ nextYear() {
40
+ const nextYear = this.date;
41
+ nextYear.setFullYear(nextYear.getFullYear() + 1);
42
+ return new CalendarMonth(nextYear);
43
+ }
44
+ /** Returns a new instance for previous year. */
45
+ previousYear() {
46
+ const previousYear = this.date;
47
+ previousYear.setFullYear(previousYear.getFullYear() - 1);
48
+ return new CalendarMonth(previousYear);
49
+ }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CalendarMonth, deps: [{ token: Date }], target: i0.ɵɵFactoryTarget.Injectable }); }
51
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CalendarMonth }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CalendarMonth, decorators: [{
54
+ type: Injectable
55
+ }], ctorParameters: () => [{ type: Date }] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kYXRlcGlja2VyL2RhdGVwaWNrZXIubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOztBQTRCMUMsTUFBTSxPQUFPLGFBQWE7SUFNeEIsWUFBWSxJQUFXO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQTtRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFRCx5REFBeUQ7SUFDekQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFvQztRQUNwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbkQsT0FBTyxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBRUQsc0RBQXNEO0lBQ3RELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRCwyRUFBMkU7SUFDM0UsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQTtJQUNoQixDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLFNBQVM7UUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUM3QixPQUFPLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxpREFBaUQ7SUFDakQsYUFBYTtRQUNYLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDMUIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ2pDLE9BQU8sSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxRQUFRO1FBQ04sTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUMxQixRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNoRCxPQUFPLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsWUFBWTtRQUNWLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDOUIsWUFBWSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDeEQsT0FBTyxJQUFJLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUN4QyxDQUFDOytHQXpEVSxhQUFhO21IQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREYXRlLCBXZWVrRGF5IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCB0eXBlIENhbGVuZGFyVHlwZSA9ICdub3JtYWwnIHwgJ2V4dGVuZGVkJ1xuXG5leHBvcnQgY29uc3QgZW51bSBNb250aCB7XG4gIEphbnVhcnksXG4gIEZlYnJ1YXJ5LFxuICBNYXJjaCxcbiAgQXByaWwsXG4gIE1heSxcbiAgSnVuZSxcbiAgSnVseSxcbiAgQXVndXN0LFxuICBTZXB0ZW1iZXIsXG4gIE9jdG9iZXIsXG4gIE5vdmVtYmVyLFxuICBEZWNlbWJlcixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXNhYmxlRGF0ZUNvbmZpZyB7XG4gIGZyb21EYXRlPzogRGF0ZSB8IHVuZGVmaW5lZFxuICB0b0RhdGU/OiBEYXRlIHwgdW5kZWZpbmVkXG4gIGV4Y2x1ZGVEYXRlcz86IERhdGVbXSB8IHVuZGVmaW5lZFxuICBleGNsdWRlRGF5cz86IFdlZWtEYXlbXSB8IHVuZGVmaW5lZFxuICBjbG9zaW5nVGltZT86IERhdGUgfCB1bmRlZmluZWRcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyTW9udGgge1xuICB5ZWFyOiBudW1iZXJcbiAgbW9udGg6IG51bWJlclxuICBpZDogc3RyaW5nXG4gIF9kYXRlOiBEYXRlXG5cbiAgY29uc3RydWN0b3IoZGF0ZT86IERhdGUpIHtcbiAgICB0aGlzLl9kYXRlID0gZGF0ZSA/IG5ldyBEYXRlKGRhdGUpIDogbmV3IERhdGUoKVxuICAgIHRoaXMuX2RhdGUuc2V0RGF0ZSgxKVxuICAgIHRoaXMuX2RhdGUuc2V0SG91cnMoMCwgMCwgMCwgMClcbiAgICB0aGlzLnllYXIgPSB0aGlzLl9kYXRlLmdldEZ1bGxZZWFyKClcbiAgICB0aGlzLm1vbnRoID0gdGhpcy5fZGF0ZS5nZXRNb250aCgpXG4gICAgdGhpcy5pZCA9IGZvcm1hdERhdGUodGhpcy5fZGF0ZSwgJ3l5eXlNTScsICdlbicpXG4gIH1cblxuICAvKiogQ3JlYXRlcyBhbiBpbnN0YW5jZSBiYXNlZCBvZiBpbnB1dCB5ZWFyIGFuZCBtb250aC4gKi9cbiAgc3RhdGljIGZyb21PYmplY3Qob2JqOiB7IHllYXI6IG51bWJlcjsgbW9udGg6IG51bWJlciB9KTogQ2FsZW5kYXJNb250aCB7XG4gICAgY29uc3Qgb2JqZWN0RGF0ZSA9IG5ldyBEYXRlKG9iai55ZWFyLCBvYmoubW9udGgsIDEpXG4gICAgcmV0dXJuIG5ldyBDYWxlbmRhck1vbnRoKG9iamVjdERhdGUpXG4gIH1cblxuICAvKiogUmV0dXJucyBhIERhdGUgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBpbnN0YW5jZS4gKi9cbiAgZ2V0IGRhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuX2RhdGUpXG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgc3RyaW5nIGlkIHJlcHJlc2VudGluZyB0aGUgaW5zdGFuY2UgaW4gZm9ybSBvZiAneXl5eU1NJy4gKi9cbiAgdmFsdWVPZigpIHtcbiAgICByZXR1cm4gdGhpcy5pZFxuICB9XG5cbiAgLyoqIFJldHVybnMgYSBuZXcgaW5zdGFuY2UgZm9yIG5leHQgbW9udGguICovXG4gIG5leHRNb250aCgpOiBDYWxlbmRhck1vbnRoIHtcbiAgICBjb25zdCBuZXh0ID0gdGhpcy5kYXRlXG4gICAgbmV4dC5zZXRNb250aCh0aGlzLm1vbnRoICsgMSlcbiAgICByZXR1cm4gbmV3IENhbGVuZGFyTW9udGgobmV4dClcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIGZvciBwcmV2aW91cyBtb250aC4gKi9cbiAgcHJldmlvdXNNb250aCgpOiBDYWxlbmRhck1vbnRoIHtcbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuZGF0ZVxuICAgIHByZXZpb3VzLnNldE1vbnRoKHRoaXMubW9udGggLSAxKVxuICAgIHJldHVybiBuZXcgQ2FsZW5kYXJNb250aChwcmV2aW91cylcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIGZvciBuZXh0IHllYXIuICovXG4gIG5leHRZZWFyKCk6IENhbGVuZGFyTW9udGgge1xuICAgIGNvbnN0IG5leHRZZWFyID0gdGhpcy5kYXRlXG4gICAgbmV4dFllYXIuc2V0RnVsbFllYXIobmV4dFllYXIuZ2V0RnVsbFllYXIoKSArIDEpXG4gICAgcmV0dXJuIG5ldyBDYWxlbmRhck1vbnRoKG5leHRZZWFyKVxuICB9XG5cbiAgLyoqIFJldHVybnMgYSBuZXcgaW5zdGFuY2UgZm9yIHByZXZpb3VzIHllYXIuICovXG4gIHByZXZpb3VzWWVhcigpOiBDYWxlbmRhck1vbnRoIHtcbiAgICBjb25zdCBwcmV2aW91c1llYXIgPSB0aGlzLmRhdGVcbiAgICBwcmV2aW91c1llYXIuc2V0RnVsbFllYXIocHJldmlvdXNZZWFyLmdldEZ1bGxZZWFyKCkgLSAxKVxuICAgIHJldHVybiBuZXcgQ2FsZW5kYXJNb250aChwcmV2aW91c1llYXIpXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,63 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { TranslocoModule } from '@jsverse/transloco';
5
+ import { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared';
6
+ import { NggvInputMaskModule } from '@sebgroup/green-angular/src/v-angular/input-mask';
7
+ import { CalendarControlComponent } from './components/calendar-control/calendar-control.component';
8
+ import { CalendarComponent } from './components/calendar/calendar.component';
9
+ import { DateInputComponent } from './components/date-input/date-input.component';
10
+ import { DatepickerComponent } from './components/datepicker/datepicker.component';
11
+ import { CalendarDateDirective } from './directives/calendar-date.directive';
12
+ import { DateThookPipe } from './pipes/date-thook.pipe';
13
+ import { IsDisabledPipe } from './pipes/is-disabled.pipe';
14
+ import { MatchesPipe } from './pipes/matches.pipe';
15
+ import * as i0 from "@angular/core";
16
+ export class NggvDatepickerModule {
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvDatepickerModule, declarations: [CalendarComponent,
19
+ CalendarDateDirective,
20
+ IsDisabledPipe,
21
+ DateThookPipe,
22
+ CalendarControlComponent,
23
+ DatepickerComponent,
24
+ DateInputComponent,
25
+ MatchesPipe], imports: [CommonModule,
26
+ FormsModule,
27
+ ReactiveFormsModule,
28
+ TranslocoModule,
29
+ NggvInputMaskModule,
30
+ NggCoreWrapperModule], exports: [DateInputComponent, DatepickerComponent] }); }
31
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDatepickerModule, imports: [CommonModule,
32
+ FormsModule,
33
+ ReactiveFormsModule,
34
+ TranslocoModule,
35
+ NggvInputMaskModule,
36
+ NggCoreWrapperModule] }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDatepickerModule, decorators: [{
39
+ type: NgModule,
40
+ args: [{
41
+ declarations: [
42
+ CalendarComponent,
43
+ CalendarDateDirective,
44
+ IsDisabledPipe,
45
+ DateThookPipe,
46
+ CalendarControlComponent,
47
+ DatepickerComponent,
48
+ DateInputComponent,
49
+ MatchesPipe,
50
+ ],
51
+ imports: [
52
+ CommonModule,
53
+ FormsModule,
54
+ ReactiveFormsModule,
55
+ TranslocoModule,
56
+ NggvInputMaskModule,
57
+ NggCoreWrapperModule,
58
+ ],
59
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
60
+ exports: [DateInputComponent, DatepickerComponent],
61
+ }]
62
+ }] });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kYXRlcGlja2VyL2RhdGVwaWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUE7QUFDdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUE7QUFDbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUE7QUFDNUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUE7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUE7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7O0FBd0JsRCxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQixpQkFwQjdCLGlCQUFpQjtZQUNqQixxQkFBcUI7WUFDckIsY0FBYztZQUNkLGFBQWE7WUFDYix3QkFBd0I7WUFDeEIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixXQUFXLGFBR1gsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixvQkFBb0IsYUFHWixrQkFBa0IsRUFBRSxtQkFBbUI7Z0hBRXRDLG9CQUFvQixZQVY3QixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLG9CQUFvQjs7NEZBS1gsb0JBQW9CO2tCQXRCaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUM7aUJBQ25EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbydcblxuaW1wb3J0IHsgTmdnQ29yZVdyYXBwZXJNb2R1bGUgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvbGliL3NoYXJlZCdcbmltcG9ydCB7IE5nZ3ZJbnB1dE1hc2tNb2R1bGUgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2lucHV0LW1hc2snXG5pbXBvcnQgeyBDYWxlbmRhckNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FsZW5kYXItY29udHJvbC9jYWxlbmRhci1jb250cm9sLmNvbXBvbmVudCdcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2NhbGVuZGFyLWRhdGUuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRGF0ZVRob29rUGlwZSB9IGZyb20gJy4vcGlwZXMvZGF0ZS10aG9vay5waXBlJ1xuaW1wb3J0IHsgSXNEaXNhYmxlZFBpcGUgfSBmcm9tICcuL3BpcGVzL2lzLWRpc2FibGVkLnBpcGUnXG5pbXBvcnQgeyBNYXRjaGVzUGlwZSB9IGZyb20gJy4vcGlwZXMvbWF0Y2hlcy5waXBlJ1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcbiAgICBDYWxlbmRhckRhdGVEaXJlY3RpdmUsXG4gICAgSXNEaXNhYmxlZFBpcGUsXG4gICAgRGF0ZVRob29rUGlwZSxcbiAgICBDYWxlbmRhckNvbnRyb2xDb21wb25lbnQsXG4gICAgRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICBEYXRlSW5wdXRDb21wb25lbnQsXG4gICAgTWF0Y2hlc1BpcGUsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBUcmFuc2xvY29Nb2R1bGUsXG4gICAgTmdndklucHV0TWFza01vZHVsZSxcbiAgICBOZ2dDb3JlV3JhcHBlck1vZHVsZSxcbiAgXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICBleHBvcnRzOiBbRGF0ZUlucHV0Q29tcG9uZW50LCBEYXRlcGlja2VyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndkRhdGVwaWNrZXJNb2R1bGUge31cbiJdfQ==