@gravionlabs/helix-core 22.0.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 (823) hide show
  1. package/LICENSE.md +77 -0
  2. package/README.md +35 -0
  3. package/VENDOR.md +74 -0
  4. package/fesm2022/gravionlabs-helix-core-accordion.mjs +684 -0
  5. package/fesm2022/gravionlabs-helix-core-accordion.mjs.map +1 -0
  6. package/fesm2022/gravionlabs-helix-core-animateonscroll.mjs +167 -0
  7. package/fesm2022/gravionlabs-helix-core-animateonscroll.mjs.map +1 -0
  8. package/fesm2022/gravionlabs-helix-core-api.mjs +839 -0
  9. package/fesm2022/gravionlabs-helix-core-api.mjs.map +1 -0
  10. package/fesm2022/gravionlabs-helix-core-autocomplete.mjs +1956 -0
  11. package/fesm2022/gravionlabs-helix-core-autocomplete.mjs.map +1 -0
  12. package/fesm2022/gravionlabs-helix-core-autofocus.mjs +80 -0
  13. package/fesm2022/gravionlabs-helix-core-autofocus.mjs.map +1 -0
  14. package/fesm2022/gravionlabs-helix-core-avatar.mjs +265 -0
  15. package/fesm2022/gravionlabs-helix-core-avatar.mjs.map +1 -0
  16. package/fesm2022/gravionlabs-helix-core-avatargroup.mjs +88 -0
  17. package/fesm2022/gravionlabs-helix-core-avatargroup.mjs.map +1 -0
  18. package/fesm2022/gravionlabs-helix-core-badge.mjs +484 -0
  19. package/fesm2022/gravionlabs-helix-core-badge.mjs.map +1 -0
  20. package/fesm2022/gravionlabs-helix-core-base.mjs +237 -0
  21. package/fesm2022/gravionlabs-helix-core-base.mjs.map +1 -0
  22. package/fesm2022/gravionlabs-helix-core-basecomponent.mjs +445 -0
  23. package/fesm2022/gravionlabs-helix-core-basecomponent.mjs.map +1 -0
  24. package/fesm2022/gravionlabs-helix-core-baseeditableholder.mjs +70 -0
  25. package/fesm2022/gravionlabs-helix-core-baseeditableholder.mjs.map +1 -0
  26. package/fesm2022/gravionlabs-helix-core-baseinput.mjs +95 -0
  27. package/fesm2022/gravionlabs-helix-core-baseinput.mjs.map +1 -0
  28. package/fesm2022/gravionlabs-helix-core-basemodelholder.mjs +27 -0
  29. package/fesm2022/gravionlabs-helix-core-basemodelholder.mjs.map +1 -0
  30. package/fesm2022/gravionlabs-helix-core-bind.mjs +99 -0
  31. package/fesm2022/gravionlabs-helix-core-bind.mjs.map +1 -0
  32. package/fesm2022/gravionlabs-helix-core-blockui.mjs +244 -0
  33. package/fesm2022/gravionlabs-helix-core-blockui.mjs.map +1 -0
  34. package/fesm2022/gravionlabs-helix-core-breadcrumb.mjs +285 -0
  35. package/fesm2022/gravionlabs-helix-core-breadcrumb.mjs.map +1 -0
  36. package/fesm2022/gravionlabs-helix-core-button.mjs +1494 -0
  37. package/fesm2022/gravionlabs-helix-core-button.mjs.map +1 -0
  38. package/fesm2022/gravionlabs-helix-core-buttongroup.mjs +126 -0
  39. package/fesm2022/gravionlabs-helix-core-buttongroup.mjs.map +1 -0
  40. package/fesm2022/gravionlabs-helix-core-card.mjs +246 -0
  41. package/fesm2022/gravionlabs-helix-core-card.mjs.map +1 -0
  42. package/fesm2022/gravionlabs-helix-core-carousel.mjs +1017 -0
  43. package/fesm2022/gravionlabs-helix-core-carousel.mjs.map +1 -0
  44. package/fesm2022/gravionlabs-helix-core-cascadeselect.mjs +1615 -0
  45. package/fesm2022/gravionlabs-helix-core-cascadeselect.mjs.map +1 -0
  46. package/fesm2022/gravionlabs-helix-core-chart.mjs +218 -0
  47. package/fesm2022/gravionlabs-helix-core-chart.mjs.map +1 -0
  48. package/fesm2022/gravionlabs-helix-core-checkbox.mjs +500 -0
  49. package/fesm2022/gravionlabs-helix-core-checkbox.mjs.map +1 -0
  50. package/fesm2022/gravionlabs-helix-core-chip.mjs +309 -0
  51. package/fesm2022/gravionlabs-helix-core-chip.mjs.map +1 -0
  52. package/fesm2022/gravionlabs-helix-core-classnames.mjs +49 -0
  53. package/fesm2022/gravionlabs-helix-core-classnames.mjs.map +1 -0
  54. package/fesm2022/gravionlabs-helix-core-colorpicker.mjs +781 -0
  55. package/fesm2022/gravionlabs-helix-core-colorpicker.mjs.map +1 -0
  56. package/fesm2022/gravionlabs-helix-core-config.mjs +309 -0
  57. package/fesm2022/gravionlabs-helix-core-config.mjs.map +1 -0
  58. package/fesm2022/gravionlabs-helix-core-confirmdialog.mjs +570 -0
  59. package/fesm2022/gravionlabs-helix-core-confirmdialog.mjs.map +1 -0
  60. package/fesm2022/gravionlabs-helix-core-confirmpopup.mjs +619 -0
  61. package/fesm2022/gravionlabs-helix-core-confirmpopup.mjs.map +1 -0
  62. package/fesm2022/gravionlabs-helix-core-contextmenu.mjs +1175 -0
  63. package/fesm2022/gravionlabs-helix-core-contextmenu.mjs.map +1 -0
  64. package/fesm2022/gravionlabs-helix-core-dataview.mjs +587 -0
  65. package/fesm2022/gravionlabs-helix-core-dataview.mjs.map +1 -0
  66. package/fesm2022/gravionlabs-helix-core-datepicker.mjs +3795 -0
  67. package/fesm2022/gravionlabs-helix-core-datepicker.mjs.map +1 -0
  68. package/fesm2022/gravionlabs-helix-core-dialog.mjs +1158 -0
  69. package/fesm2022/gravionlabs-helix-core-dialog.mjs.map +1 -0
  70. package/fesm2022/gravionlabs-helix-core-divider.mjs +222 -0
  71. package/fesm2022/gravionlabs-helix-core-divider.mjs.map +1 -0
  72. package/fesm2022/gravionlabs-helix-core-dock.mjs +504 -0
  73. package/fesm2022/gravionlabs-helix-core-dock.mjs.map +1 -0
  74. package/fesm2022/gravionlabs-helix-core-dom.mjs +778 -0
  75. package/fesm2022/gravionlabs-helix-core-dom.mjs.map +1 -0
  76. package/fesm2022/gravionlabs-helix-core-dragdrop.mjs +303 -0
  77. package/fesm2022/gravionlabs-helix-core-dragdrop.mjs.map +1 -0
  78. package/fesm2022/gravionlabs-helix-core-drawer.mjs +784 -0
  79. package/fesm2022/gravionlabs-helix-core-drawer.mjs.map +1 -0
  80. package/fesm2022/gravionlabs-helix-core-dynamicdialog.mjs +932 -0
  81. package/fesm2022/gravionlabs-helix-core-dynamicdialog.mjs.map +1 -0
  82. package/fesm2022/gravionlabs-helix-core-editor.mjs +1370 -0
  83. package/fesm2022/gravionlabs-helix-core-editor.mjs.map +1 -0
  84. package/fesm2022/gravionlabs-helix-core-fieldset.mjs +372 -0
  85. package/fesm2022/gravionlabs-helix-core-fieldset.mjs.map +1 -0
  86. package/fesm2022/gravionlabs-helix-core-fileupload.mjs +1085 -0
  87. package/fesm2022/gravionlabs-helix-core-fileupload.mjs.map +1 -0
  88. package/fesm2022/gravionlabs-helix-core-firsterror.mjs +24 -0
  89. package/fesm2022/gravionlabs-helix-core-firsterror.mjs.map +1 -0
  90. package/fesm2022/gravionlabs-helix-core-floatlabel.mjs +207 -0
  91. package/fesm2022/gravionlabs-helix-core-floatlabel.mjs.map +1 -0
  92. package/fesm2022/gravionlabs-helix-core-fluid.mjs +78 -0
  93. package/fesm2022/gravionlabs-helix-core-fluid.mjs.map +1 -0
  94. package/fesm2022/gravionlabs-helix-core-focustrap.mjs +105 -0
  95. package/fesm2022/gravionlabs-helix-core-focustrap.mjs.map +1 -0
  96. package/fesm2022/gravionlabs-helix-core-galleria.mjs +1930 -0
  97. package/fesm2022/gravionlabs-helix-core-galleria.mjs.map +1 -0
  98. package/fesm2022/gravionlabs-helix-core-iconfield.mjs +147 -0
  99. package/fesm2022/gravionlabs-helix-core-iconfield.mjs.map +1 -0
  100. package/fesm2022/gravionlabs-helix-core-icons-angledoubledown.mjs +38 -0
  101. package/fesm2022/gravionlabs-helix-core-icons-angledoubledown.mjs.map +1 -0
  102. package/fesm2022/gravionlabs-helix-core-icons-angledoubleleft.mjs +38 -0
  103. package/fesm2022/gravionlabs-helix-core-icons-angledoubleleft.mjs.map +1 -0
  104. package/fesm2022/gravionlabs-helix-core-icons-angledoubleright.mjs +38 -0
  105. package/fesm2022/gravionlabs-helix-core-icons-angledoubleright.mjs.map +1 -0
  106. package/fesm2022/gravionlabs-helix-core-icons-angledoubleup.mjs +38 -0
  107. package/fesm2022/gravionlabs-helix-core-icons-angledoubleup.mjs.map +1 -0
  108. package/fesm2022/gravionlabs-helix-core-icons-angledown.mjs +34 -0
  109. package/fesm2022/gravionlabs-helix-core-icons-angledown.mjs.map +1 -0
  110. package/fesm2022/gravionlabs-helix-core-icons-angleleft.mjs +34 -0
  111. package/fesm2022/gravionlabs-helix-core-icons-angleleft.mjs.map +1 -0
  112. package/fesm2022/gravionlabs-helix-core-icons-angleright.mjs +34 -0
  113. package/fesm2022/gravionlabs-helix-core-icons-angleright.mjs.map +1 -0
  114. package/fesm2022/gravionlabs-helix-core-icons-angleup.mjs +34 -0
  115. package/fesm2022/gravionlabs-helix-core-icons-angleup.mjs.map +1 -0
  116. package/fesm2022/gravionlabs-helix-core-icons-arrowdown.mjs +57 -0
  117. package/fesm2022/gravionlabs-helix-core-icons-arrowdown.mjs.map +1 -0
  118. package/fesm2022/gravionlabs-helix-core-icons-arrowdownleft.mjs +34 -0
  119. package/fesm2022/gravionlabs-helix-core-icons-arrowdownleft.mjs.map +1 -0
  120. package/fesm2022/gravionlabs-helix-core-icons-arrowdownright.mjs +34 -0
  121. package/fesm2022/gravionlabs-helix-core-icons-arrowdownright.mjs.map +1 -0
  122. package/fesm2022/gravionlabs-helix-core-icons-arrowleft.mjs +57 -0
  123. package/fesm2022/gravionlabs-helix-core-icons-arrowleft.mjs.map +1 -0
  124. package/fesm2022/gravionlabs-helix-core-icons-arrowright.mjs +38 -0
  125. package/fesm2022/gravionlabs-helix-core-icons-arrowright.mjs.map +1 -0
  126. package/fesm2022/gravionlabs-helix-core-icons-arrowup.mjs +57 -0
  127. package/fesm2022/gravionlabs-helix-core-icons-arrowup.mjs.map +1 -0
  128. package/fesm2022/gravionlabs-helix-core-icons-ban.mjs +53 -0
  129. package/fesm2022/gravionlabs-helix-core-icons-ban.mjs.map +1 -0
  130. package/fesm2022/gravionlabs-helix-core-icons-bars.mjs +38 -0
  131. package/fesm2022/gravionlabs-helix-core-icons-bars.mjs.map +1 -0
  132. package/fesm2022/gravionlabs-helix-core-icons-baseicon.mjs +100 -0
  133. package/fesm2022/gravionlabs-helix-core-icons-baseicon.mjs.map +1 -0
  134. package/fesm2022/gravionlabs-helix-core-icons-blank.mjs +24 -0
  135. package/fesm2022/gravionlabs-helix-core-icons-blank.mjs.map +1 -0
  136. package/fesm2022/gravionlabs-helix-core-icons-calendar.mjs +34 -0
  137. package/fesm2022/gravionlabs-helix-core-icons-calendar.mjs.map +1 -0
  138. package/fesm2022/gravionlabs-helix-core-icons-caretleft.mjs +34 -0
  139. package/fesm2022/gravionlabs-helix-core-icons-caretleft.mjs.map +1 -0
  140. package/fesm2022/gravionlabs-helix-core-icons-caretright.mjs +34 -0
  141. package/fesm2022/gravionlabs-helix-core-icons-caretright.mjs.map +1 -0
  142. package/fesm2022/gravionlabs-helix-core-icons-check.mjs +34 -0
  143. package/fesm2022/gravionlabs-helix-core-icons-check.mjs.map +1 -0
  144. package/fesm2022/gravionlabs-helix-core-icons-chevrondown.mjs +34 -0
  145. package/fesm2022/gravionlabs-helix-core-icons-chevrondown.mjs.map +1 -0
  146. package/fesm2022/gravionlabs-helix-core-icons-chevronleft.mjs +34 -0
  147. package/fesm2022/gravionlabs-helix-core-icons-chevronleft.mjs.map +1 -0
  148. package/fesm2022/gravionlabs-helix-core-icons-chevronright.mjs +34 -0
  149. package/fesm2022/gravionlabs-helix-core-icons-chevronright.mjs.map +1 -0
  150. package/fesm2022/gravionlabs-helix-core-icons-chevronup.mjs +34 -0
  151. package/fesm2022/gravionlabs-helix-core-icons-chevronup.mjs.map +1 -0
  152. package/fesm2022/gravionlabs-helix-core-icons-exclamationtriangle.mjs +69 -0
  153. package/fesm2022/gravionlabs-helix-core-icons-exclamationtriangle.mjs.map +1 -0
  154. package/fesm2022/gravionlabs-helix-core-icons-eye.mjs +38 -0
  155. package/fesm2022/gravionlabs-helix-core-icons-eye.mjs.map +1 -0
  156. package/fesm2022/gravionlabs-helix-core-icons-eyeslash.mjs +57 -0
  157. package/fesm2022/gravionlabs-helix-core-icons-eyeslash.mjs.map +1 -0
  158. package/fesm2022/gravionlabs-helix-core-icons-filter.mjs +53 -0
  159. package/fesm2022/gravionlabs-helix-core-icons-filter.mjs.map +1 -0
  160. package/fesm2022/gravionlabs-helix-core-icons-filterfill.mjs +34 -0
  161. package/fesm2022/gravionlabs-helix-core-icons-filterfill.mjs.map +1 -0
  162. package/fesm2022/gravionlabs-helix-core-icons-filterslash.mjs +57 -0
  163. package/fesm2022/gravionlabs-helix-core-icons-filterslash.mjs.map +1 -0
  164. package/fesm2022/gravionlabs-helix-core-icons-home.mjs +57 -0
  165. package/fesm2022/gravionlabs-helix-core-icons-home.mjs.map +1 -0
  166. package/fesm2022/gravionlabs-helix-core-icons-infocircle.mjs +57 -0
  167. package/fesm2022/gravionlabs-helix-core-icons-infocircle.mjs.map +1 -0
  168. package/fesm2022/gravionlabs-helix-core-icons-minus.mjs +34 -0
  169. package/fesm2022/gravionlabs-helix-core-icons-minus.mjs.map +1 -0
  170. package/fesm2022/gravionlabs-helix-core-icons-pencil.mjs +53 -0
  171. package/fesm2022/gravionlabs-helix-core-icons-pencil.mjs.map +1 -0
  172. package/fesm2022/gravionlabs-helix-core-icons-plus.mjs +53 -0
  173. package/fesm2022/gravionlabs-helix-core-icons-plus.mjs.map +1 -0
  174. package/fesm2022/gravionlabs-helix-core-icons-refresh.mjs +57 -0
  175. package/fesm2022/gravionlabs-helix-core-icons-refresh.mjs.map +1 -0
  176. package/fesm2022/gravionlabs-helix-core-icons-search.mjs +57 -0
  177. package/fesm2022/gravionlabs-helix-core-icons-search.mjs.map +1 -0
  178. package/fesm2022/gravionlabs-helix-core-icons-searchminus.mjs +57 -0
  179. package/fesm2022/gravionlabs-helix-core-icons-searchminus.mjs.map +1 -0
  180. package/fesm2022/gravionlabs-helix-core-icons-searchplus.mjs +57 -0
  181. package/fesm2022/gravionlabs-helix-core-icons-searchplus.mjs.map +1 -0
  182. package/fesm2022/gravionlabs-helix-core-icons-sortalt.mjs +65 -0
  183. package/fesm2022/gravionlabs-helix-core-icons-sortalt.mjs.map +1 -0
  184. package/fesm2022/gravionlabs-helix-core-icons-sortamountdown.mjs +53 -0
  185. package/fesm2022/gravionlabs-helix-core-icons-sortamountdown.mjs.map +1 -0
  186. package/fesm2022/gravionlabs-helix-core-icons-sortamountupalt.mjs +53 -0
  187. package/fesm2022/gravionlabs-helix-core-icons-sortamountupalt.mjs.map +1 -0
  188. package/fesm2022/gravionlabs-helix-core-icons-spinner.mjs +53 -0
  189. package/fesm2022/gravionlabs-helix-core-icons-spinner.mjs.map +1 -0
  190. package/fesm2022/gravionlabs-helix-core-icons-star.mjs +53 -0
  191. package/fesm2022/gravionlabs-helix-core-icons-star.mjs.map +1 -0
  192. package/fesm2022/gravionlabs-helix-core-icons-starfill.mjs +53 -0
  193. package/fesm2022/gravionlabs-helix-core-icons-starfill.mjs.map +1 -0
  194. package/fesm2022/gravionlabs-helix-core-icons-thlarge.mjs +57 -0
  195. package/fesm2022/gravionlabs-helix-core-icons-thlarge.mjs.map +1 -0
  196. package/fesm2022/gravionlabs-helix-core-icons-times.mjs +34 -0
  197. package/fesm2022/gravionlabs-helix-core-icons-times.mjs.map +1 -0
  198. package/fesm2022/gravionlabs-helix-core-icons-timescircle.mjs +57 -0
  199. package/fesm2022/gravionlabs-helix-core-icons-timescircle.mjs.map +1 -0
  200. package/fesm2022/gravionlabs-helix-core-icons-trash.mjs +57 -0
  201. package/fesm2022/gravionlabs-helix-core-icons-trash.mjs.map +1 -0
  202. package/fesm2022/gravionlabs-helix-core-icons-undo.mjs +57 -0
  203. package/fesm2022/gravionlabs-helix-core-icons-undo.mjs.map +1 -0
  204. package/fesm2022/gravionlabs-helix-core-icons-upload.mjs +57 -0
  205. package/fesm2022/gravionlabs-helix-core-icons-upload.mjs.map +1 -0
  206. package/fesm2022/gravionlabs-helix-core-icons-windowmaximize.mjs +57 -0
  207. package/fesm2022/gravionlabs-helix-core-icons-windowmaximize.mjs.map +1 -0
  208. package/fesm2022/gravionlabs-helix-core-icons-windowminimize.mjs +57 -0
  209. package/fesm2022/gravionlabs-helix-core-icons-windowminimize.mjs.map +1 -0
  210. package/fesm2022/gravionlabs-helix-core-icons.mjs +63 -0
  211. package/fesm2022/gravionlabs-helix-core-icons.mjs.map +1 -0
  212. package/fesm2022/gravionlabs-helix-core-iftalabel.mjs +139 -0
  213. package/fesm2022/gravionlabs-helix-core-iftalabel.mjs.map +1 -0
  214. package/fesm2022/gravionlabs-helix-core-image.mjs +690 -0
  215. package/fesm2022/gravionlabs-helix-core-image.mjs.map +1 -0
  216. package/fesm2022/gravionlabs-helix-core-imagecompare.mjs +255 -0
  217. package/fesm2022/gravionlabs-helix-core-imagecompare.mjs.map +1 -0
  218. package/fesm2022/gravionlabs-helix-core-inplace.mjs +283 -0
  219. package/fesm2022/gravionlabs-helix-core-inplace.mjs.map +1 -0
  220. package/fesm2022/gravionlabs-helix-core-inputgroup.mjs +232 -0
  221. package/fesm2022/gravionlabs-helix-core-inputgroup.mjs.map +1 -0
  222. package/fesm2022/gravionlabs-helix-core-inputgroupaddon.mjs +75 -0
  223. package/fesm2022/gravionlabs-helix-core-inputgroupaddon.mjs.map +1 -0
  224. package/fesm2022/gravionlabs-helix-core-inputicon.mjs +72 -0
  225. package/fesm2022/gravionlabs-helix-core-inputicon.mjs.map +1 -0
  226. package/fesm2022/gravionlabs-helix-core-inputmask.mjs +1375 -0
  227. package/fesm2022/gravionlabs-helix-core-inputmask.mjs.map +1 -0
  228. package/fesm2022/gravionlabs-helix-core-inputnumber.mjs +1513 -0
  229. package/fesm2022/gravionlabs-helix-core-inputnumber.mjs.map +1 -0
  230. package/fesm2022/gravionlabs-helix-core-inputotp.mjs +391 -0
  231. package/fesm2022/gravionlabs-helix-core-inputotp.mjs.map +1 -0
  232. package/fesm2022/gravionlabs-helix-core-inputtext.mjs +275 -0
  233. package/fesm2022/gravionlabs-helix-core-inputtext.mjs.map +1 -0
  234. package/fesm2022/gravionlabs-helix-core-keyfilter.mjs +261 -0
  235. package/fesm2022/gravionlabs-helix-core-keyfilter.mjs.map +1 -0
  236. package/fesm2022/gravionlabs-helix-core-knob.mjs +441 -0
  237. package/fesm2022/gravionlabs-helix-core-knob.mjs.map +1 -0
  238. package/fesm2022/gravionlabs-helix-core-listbox.mjs +1567 -0
  239. package/fesm2022/gravionlabs-helix-core-listbox.mjs.map +1 -0
  240. package/fesm2022/gravionlabs-helix-core-megamenu.mjs +1398 -0
  241. package/fesm2022/gravionlabs-helix-core-megamenu.mjs.map +1 -0
  242. package/fesm2022/gravionlabs-helix-core-menu.mjs +854 -0
  243. package/fesm2022/gravionlabs-helix-core-menu.mjs.map +1 -0
  244. package/fesm2022/gravionlabs-helix-core-menubar.mjs +1259 -0
  245. package/fesm2022/gravionlabs-helix-core-menubar.mjs.map +1 -0
  246. package/fesm2022/gravionlabs-helix-core-message.mjs +608 -0
  247. package/fesm2022/gravionlabs-helix-core-message.mjs.map +1 -0
  248. package/fesm2022/gravionlabs-helix-core-metergroup.mjs +417 -0
  249. package/fesm2022/gravionlabs-helix-core-metergroup.mjs.map +1 -0
  250. package/fesm2022/gravionlabs-helix-core-motion.mjs +706 -0
  251. package/fesm2022/gravionlabs-helix-core-motion.mjs.map +1 -0
  252. package/fesm2022/gravionlabs-helix-core-multiselect.mjs +2106 -0
  253. package/fesm2022/gravionlabs-helix-core-multiselect.mjs.map +1 -0
  254. package/fesm2022/gravionlabs-helix-core-orderlist.mjs +800 -0
  255. package/fesm2022/gravionlabs-helix-core-orderlist.mjs.map +1 -0
  256. package/fesm2022/gravionlabs-helix-core-organizationchart.mjs +497 -0
  257. package/fesm2022/gravionlabs-helix-core-organizationchart.mjs.map +1 -0
  258. package/fesm2022/gravionlabs-helix-core-overlay.mjs +686 -0
  259. package/fesm2022/gravionlabs-helix-core-overlay.mjs.map +1 -0
  260. package/fesm2022/gravionlabs-helix-core-overlaybadge.mjs +125 -0
  261. package/fesm2022/gravionlabs-helix-core-overlaybadge.mjs.map +1 -0
  262. package/fesm2022/gravionlabs-helix-core-paginator.mjs +670 -0
  263. package/fesm2022/gravionlabs-helix-core-paginator.mjs.map +1 -0
  264. package/fesm2022/gravionlabs-helix-core-panel.mjs +416 -0
  265. package/fesm2022/gravionlabs-helix-core-panel.mjs.map +1 -0
  266. package/fesm2022/gravionlabs-helix-core-panelmenu.mjs +1070 -0
  267. package/fesm2022/gravionlabs-helix-core-panelmenu.mjs.map +1 -0
  268. package/fesm2022/gravionlabs-helix-core-passthrough.mjs +21 -0
  269. package/fesm2022/gravionlabs-helix-core-passthrough.mjs.map +1 -0
  270. package/fesm2022/gravionlabs-helix-core-password.mjs +1047 -0
  271. package/fesm2022/gravionlabs-helix-core-password.mjs.map +1 -0
  272. package/fesm2022/gravionlabs-helix-core-picklist.mjs +1393 -0
  273. package/fesm2022/gravionlabs-helix-core-picklist.mjs.map +1 -0
  274. package/fesm2022/gravionlabs-helix-core-popover.mjs +507 -0
  275. package/fesm2022/gravionlabs-helix-core-popover.mjs.map +1 -0
  276. package/fesm2022/gravionlabs-helix-core-progressbar.mjs +292 -0
  277. package/fesm2022/gravionlabs-helix-core-progressbar.mjs.map +1 -0
  278. package/fesm2022/gravionlabs-helix-core-progressspinner.mjs +199 -0
  279. package/fesm2022/gravionlabs-helix-core-progressspinner.mjs.map +1 -0
  280. package/fesm2022/gravionlabs-helix-core-radiobutton.mjs +450 -0
  281. package/fesm2022/gravionlabs-helix-core-radiobutton.mjs.map +1 -0
  282. package/fesm2022/gravionlabs-helix-core-rating.mjs +356 -0
  283. package/fesm2022/gravionlabs-helix-core-rating.mjs.map +1 -0
  284. package/fesm2022/gravionlabs-helix-core-ripple.mjs +217 -0
  285. package/fesm2022/gravionlabs-helix-core-ripple.mjs.map +1 -0
  286. package/fesm2022/gravionlabs-helix-core-scroller.mjs +1040 -0
  287. package/fesm2022/gravionlabs-helix-core-scroller.mjs.map +1 -0
  288. package/fesm2022/gravionlabs-helix-core-scrollpanel.mjs +535 -0
  289. package/fesm2022/gravionlabs-helix-core-scrollpanel.mjs.map +1 -0
  290. package/fesm2022/gravionlabs-helix-core-scrolltop.mjs +294 -0
  291. package/fesm2022/gravionlabs-helix-core-scrolltop.mjs.map +1 -0
  292. package/fesm2022/gravionlabs-helix-core-select.mjs +1907 -0
  293. package/fesm2022/gravionlabs-helix-core-select.mjs.map +1 -0
  294. package/fesm2022/gravionlabs-helix-core-selectbutton.mjs +390 -0
  295. package/fesm2022/gravionlabs-helix-core-selectbutton.mjs.map +1 -0
  296. package/fesm2022/gravionlabs-helix-core-skeleton.mjs +214 -0
  297. package/fesm2022/gravionlabs-helix-core-skeleton.mjs.map +1 -0
  298. package/fesm2022/gravionlabs-helix-core-slider.mjs +730 -0
  299. package/fesm2022/gravionlabs-helix-core-slider.mjs.map +1 -0
  300. package/fesm2022/gravionlabs-helix-core-speeddial.mjs +775 -0
  301. package/fesm2022/gravionlabs-helix-core-speeddial.mjs.map +1 -0
  302. package/fesm2022/gravionlabs-helix-core-splitbutton.mjs +429 -0
  303. package/fesm2022/gravionlabs-helix-core-splitbutton.mjs.map +1 -0
  304. package/fesm2022/gravionlabs-helix-core-splitter.mjs +597 -0
  305. package/fesm2022/gravionlabs-helix-core-splitter.mjs.map +1 -0
  306. package/fesm2022/gravionlabs-helix-core-stepper.mjs +853 -0
  307. package/fesm2022/gravionlabs-helix-core-stepper.mjs.map +1 -0
  308. package/fesm2022/gravionlabs-helix-core-steps.mjs +393 -0
  309. package/fesm2022/gravionlabs-helix-core-steps.mjs.map +1 -0
  310. package/fesm2022/gravionlabs-helix-core-styleclass.mjs +345 -0
  311. package/fesm2022/gravionlabs-helix-core-styleclass.mjs.map +1 -0
  312. package/fesm2022/gravionlabs-helix-core-table.mjs +6333 -0
  313. package/fesm2022/gravionlabs-helix-core-table.mjs.map +1 -0
  314. package/fesm2022/gravionlabs-helix-core-tabs.mjs +900 -0
  315. package/fesm2022/gravionlabs-helix-core-tabs.mjs.map +1 -0
  316. package/fesm2022/gravionlabs-helix-core-tag.mjs +212 -0
  317. package/fesm2022/gravionlabs-helix-core-tag.mjs.map +1 -0
  318. package/fesm2022/gravionlabs-helix-core-terminal.mjs +259 -0
  319. package/fesm2022/gravionlabs-helix-core-terminal.mjs.map +1 -0
  320. package/fesm2022/gravionlabs-helix-core-textarea.mjs +305 -0
  321. package/fesm2022/gravionlabs-helix-core-textarea.mjs.map +1 -0
  322. package/fesm2022/gravionlabs-helix-core-themes-aura.mjs +5649 -0
  323. package/fesm2022/gravionlabs-helix-core-themes-aura.mjs.map +1 -0
  324. package/fesm2022/gravionlabs-helix-core-themes-lara.mjs +5812 -0
  325. package/fesm2022/gravionlabs-helix-core-themes-lara.mjs.map +1 -0
  326. package/fesm2022/gravionlabs-helix-core-themes-nora.mjs +5570 -0
  327. package/fesm2022/gravionlabs-helix-core-themes-nora.mjs.map +1 -0
  328. package/fesm2022/gravionlabs-helix-core-themes-types.mjs +700 -0
  329. package/fesm2022/gravionlabs-helix-core-themes-types.mjs.map +1 -0
  330. package/fesm2022/gravionlabs-helix-core-themes.mjs +16 -0
  331. package/fesm2022/gravionlabs-helix-core-themes.mjs.map +1 -0
  332. package/fesm2022/gravionlabs-helix-core-tieredmenu.mjs +1201 -0
  333. package/fesm2022/gravionlabs-helix-core-tieredmenu.mjs.map +1 -0
  334. package/fesm2022/gravionlabs-helix-core-timeline.mjs +346 -0
  335. package/fesm2022/gravionlabs-helix-core-timeline.mjs.map +1 -0
  336. package/fesm2022/gravionlabs-helix-core-toast.mjs +807 -0
  337. package/fesm2022/gravionlabs-helix-core-toast.mjs.map +1 -0
  338. package/fesm2022/gravionlabs-helix-core-togglebutton.mjs +451 -0
  339. package/fesm2022/gravionlabs-helix-core-togglebutton.mjs.map +1 -0
  340. package/fesm2022/gravionlabs-helix-core-toggleswitch.mjs +372 -0
  341. package/fesm2022/gravionlabs-helix-core-toggleswitch.mjs.map +1 -0
  342. package/fesm2022/gravionlabs-helix-core-toolbar.mjs +174 -0
  343. package/fesm2022/gravionlabs-helix-core-toolbar.mjs.map +1 -0
  344. package/fesm2022/gravionlabs-helix-core-tooltip.mjs +860 -0
  345. package/fesm2022/gravionlabs-helix-core-tooltip.mjs.map +1 -0
  346. package/fesm2022/gravionlabs-helix-core-tree.mjs +1860 -0
  347. package/fesm2022/gravionlabs-helix-core-tree.mjs.map +1 -0
  348. package/fesm2022/gravionlabs-helix-core-treeselect.mjs +1178 -0
  349. package/fesm2022/gravionlabs-helix-core-treeselect.mjs.map +1 -0
  350. package/fesm2022/gravionlabs-helix-core-treetable.mjs +4199 -0
  351. package/fesm2022/gravionlabs-helix-core-treetable.mjs.map +1 -0
  352. package/fesm2022/gravionlabs-helix-core-ts-helpers.mjs +4 -0
  353. package/fesm2022/gravionlabs-helix-core-ts-helpers.mjs.map +1 -0
  354. package/fesm2022/gravionlabs-helix-core-types-accordion.mjs +4 -0
  355. package/fesm2022/gravionlabs-helix-core-types-accordion.mjs.map +1 -0
  356. package/fesm2022/gravionlabs-helix-core-types-autocomplete.mjs +4 -0
  357. package/fesm2022/gravionlabs-helix-core-types-autocomplete.mjs.map +1 -0
  358. package/fesm2022/gravionlabs-helix-core-types-avatar.mjs +4 -0
  359. package/fesm2022/gravionlabs-helix-core-types-avatar.mjs.map +1 -0
  360. package/fesm2022/gravionlabs-helix-core-types-avatargroup.mjs +4 -0
  361. package/fesm2022/gravionlabs-helix-core-types-avatargroup.mjs.map +1 -0
  362. package/fesm2022/gravionlabs-helix-core-types-badge.mjs +4 -0
  363. package/fesm2022/gravionlabs-helix-core-types-badge.mjs.map +1 -0
  364. package/fesm2022/gravionlabs-helix-core-types-blockui.mjs +4 -0
  365. package/fesm2022/gravionlabs-helix-core-types-blockui.mjs.map +1 -0
  366. package/fesm2022/gravionlabs-helix-core-types-breadcrumb.mjs +4 -0
  367. package/fesm2022/gravionlabs-helix-core-types-breadcrumb.mjs.map +1 -0
  368. package/fesm2022/gravionlabs-helix-core-types-button.mjs +4 -0
  369. package/fesm2022/gravionlabs-helix-core-types-button.mjs.map +1 -0
  370. package/fesm2022/gravionlabs-helix-core-types-card.mjs +4 -0
  371. package/fesm2022/gravionlabs-helix-core-types-card.mjs.map +1 -0
  372. package/fesm2022/gravionlabs-helix-core-types-carousel.mjs +4 -0
  373. package/fesm2022/gravionlabs-helix-core-types-carousel.mjs.map +1 -0
  374. package/fesm2022/gravionlabs-helix-core-types-cascadeselect.mjs +4 -0
  375. package/fesm2022/gravionlabs-helix-core-types-cascadeselect.mjs.map +1 -0
  376. package/fesm2022/gravionlabs-helix-core-types-chart.mjs +4 -0
  377. package/fesm2022/gravionlabs-helix-core-types-chart.mjs.map +1 -0
  378. package/fesm2022/gravionlabs-helix-core-types-checkbox.mjs +4 -0
  379. package/fesm2022/gravionlabs-helix-core-types-checkbox.mjs.map +1 -0
  380. package/fesm2022/gravionlabs-helix-core-types-chip.mjs +4 -0
  381. package/fesm2022/gravionlabs-helix-core-types-chip.mjs.map +1 -0
  382. package/fesm2022/gravionlabs-helix-core-types-colorpicker.mjs +4 -0
  383. package/fesm2022/gravionlabs-helix-core-types-colorpicker.mjs.map +1 -0
  384. package/fesm2022/gravionlabs-helix-core-types-confirmdialog.mjs +4 -0
  385. package/fesm2022/gravionlabs-helix-core-types-confirmdialog.mjs.map +1 -0
  386. package/fesm2022/gravionlabs-helix-core-types-confirmpopup.mjs +4 -0
  387. package/fesm2022/gravionlabs-helix-core-types-confirmpopup.mjs.map +1 -0
  388. package/fesm2022/gravionlabs-helix-core-types-contextmenu.mjs +4 -0
  389. package/fesm2022/gravionlabs-helix-core-types-contextmenu.mjs.map +1 -0
  390. package/fesm2022/gravionlabs-helix-core-types-dataview.mjs +4 -0
  391. package/fesm2022/gravionlabs-helix-core-types-dataview.mjs.map +1 -0
  392. package/fesm2022/gravionlabs-helix-core-types-datepicker.mjs +4 -0
  393. package/fesm2022/gravionlabs-helix-core-types-datepicker.mjs.map +1 -0
  394. package/fesm2022/gravionlabs-helix-core-types-dialog.mjs +4 -0
  395. package/fesm2022/gravionlabs-helix-core-types-dialog.mjs.map +1 -0
  396. package/fesm2022/gravionlabs-helix-core-types-divider.mjs +4 -0
  397. package/fesm2022/gravionlabs-helix-core-types-divider.mjs.map +1 -0
  398. package/fesm2022/gravionlabs-helix-core-types-dock.mjs +4 -0
  399. package/fesm2022/gravionlabs-helix-core-types-dock.mjs.map +1 -0
  400. package/fesm2022/gravionlabs-helix-core-types-drawer.mjs +4 -0
  401. package/fesm2022/gravionlabs-helix-core-types-drawer.mjs.map +1 -0
  402. package/fesm2022/gravionlabs-helix-core-types-editor.mjs +4 -0
  403. package/fesm2022/gravionlabs-helix-core-types-editor.mjs.map +1 -0
  404. package/fesm2022/gravionlabs-helix-core-types-fieldset.mjs +4 -0
  405. package/fesm2022/gravionlabs-helix-core-types-fieldset.mjs.map +1 -0
  406. package/fesm2022/gravionlabs-helix-core-types-fileupload.mjs +4 -0
  407. package/fesm2022/gravionlabs-helix-core-types-fileupload.mjs.map +1 -0
  408. package/fesm2022/gravionlabs-helix-core-types-floatlabel.mjs +4 -0
  409. package/fesm2022/gravionlabs-helix-core-types-floatlabel.mjs.map +1 -0
  410. package/fesm2022/gravionlabs-helix-core-types-fluid.mjs +4 -0
  411. package/fesm2022/gravionlabs-helix-core-types-fluid.mjs.map +1 -0
  412. package/fesm2022/gravionlabs-helix-core-types-galleria.mjs +4 -0
  413. package/fesm2022/gravionlabs-helix-core-types-galleria.mjs.map +1 -0
  414. package/fesm2022/gravionlabs-helix-core-types-iconfield.mjs +4 -0
  415. package/fesm2022/gravionlabs-helix-core-types-iconfield.mjs.map +1 -0
  416. package/fesm2022/gravionlabs-helix-core-types-iftalabel.mjs +4 -0
  417. package/fesm2022/gravionlabs-helix-core-types-iftalabel.mjs.map +1 -0
  418. package/fesm2022/gravionlabs-helix-core-types-image.mjs +4 -0
  419. package/fesm2022/gravionlabs-helix-core-types-image.mjs.map +1 -0
  420. package/fesm2022/gravionlabs-helix-core-types-imagecompare.mjs +4 -0
  421. package/fesm2022/gravionlabs-helix-core-types-imagecompare.mjs.map +1 -0
  422. package/fesm2022/gravionlabs-helix-core-types-inplace.mjs +4 -0
  423. package/fesm2022/gravionlabs-helix-core-types-inplace.mjs.map +1 -0
  424. package/fesm2022/gravionlabs-helix-core-types-inputgroup.mjs +4 -0
  425. package/fesm2022/gravionlabs-helix-core-types-inputgroup.mjs.map +1 -0
  426. package/fesm2022/gravionlabs-helix-core-types-inputgroupaddon.mjs +4 -0
  427. package/fesm2022/gravionlabs-helix-core-types-inputgroupaddon.mjs.map +1 -0
  428. package/fesm2022/gravionlabs-helix-core-types-inputicon.mjs +4 -0
  429. package/fesm2022/gravionlabs-helix-core-types-inputicon.mjs.map +1 -0
  430. package/fesm2022/gravionlabs-helix-core-types-inputmask.mjs +4 -0
  431. package/fesm2022/gravionlabs-helix-core-types-inputmask.mjs.map +1 -0
  432. package/fesm2022/gravionlabs-helix-core-types-inputnumber.mjs +4 -0
  433. package/fesm2022/gravionlabs-helix-core-types-inputnumber.mjs.map +1 -0
  434. package/fesm2022/gravionlabs-helix-core-types-inputotp.mjs +4 -0
  435. package/fesm2022/gravionlabs-helix-core-types-inputotp.mjs.map +1 -0
  436. package/fesm2022/gravionlabs-helix-core-types-inputtext.mjs +4 -0
  437. package/fesm2022/gravionlabs-helix-core-types-inputtext.mjs.map +1 -0
  438. package/fesm2022/gravionlabs-helix-core-types-knob.mjs +4 -0
  439. package/fesm2022/gravionlabs-helix-core-types-knob.mjs.map +1 -0
  440. package/fesm2022/gravionlabs-helix-core-types-listbox.mjs +4 -0
  441. package/fesm2022/gravionlabs-helix-core-types-listbox.mjs.map +1 -0
  442. package/fesm2022/gravionlabs-helix-core-types-megamenu.mjs +4 -0
  443. package/fesm2022/gravionlabs-helix-core-types-megamenu.mjs.map +1 -0
  444. package/fesm2022/gravionlabs-helix-core-types-menu.mjs +4 -0
  445. package/fesm2022/gravionlabs-helix-core-types-menu.mjs.map +1 -0
  446. package/fesm2022/gravionlabs-helix-core-types-menubar.mjs +4 -0
  447. package/fesm2022/gravionlabs-helix-core-types-menubar.mjs.map +1 -0
  448. package/fesm2022/gravionlabs-helix-core-types-message.mjs +4 -0
  449. package/fesm2022/gravionlabs-helix-core-types-message.mjs.map +1 -0
  450. package/fesm2022/gravionlabs-helix-core-types-metergroup.mjs +4 -0
  451. package/fesm2022/gravionlabs-helix-core-types-metergroup.mjs.map +1 -0
  452. package/fesm2022/gravionlabs-helix-core-types-motion.mjs +4 -0
  453. package/fesm2022/gravionlabs-helix-core-types-motion.mjs.map +1 -0
  454. package/fesm2022/gravionlabs-helix-core-types-multiselect.mjs +4 -0
  455. package/fesm2022/gravionlabs-helix-core-types-multiselect.mjs.map +1 -0
  456. package/fesm2022/gravionlabs-helix-core-types-orderlist.mjs +4 -0
  457. package/fesm2022/gravionlabs-helix-core-types-orderlist.mjs.map +1 -0
  458. package/fesm2022/gravionlabs-helix-core-types-organizationchart.mjs +4 -0
  459. package/fesm2022/gravionlabs-helix-core-types-organizationchart.mjs.map +1 -0
  460. package/fesm2022/gravionlabs-helix-core-types-overlay.mjs +4 -0
  461. package/fesm2022/gravionlabs-helix-core-types-overlay.mjs.map +1 -0
  462. package/fesm2022/gravionlabs-helix-core-types-overlaybadge.mjs +4 -0
  463. package/fesm2022/gravionlabs-helix-core-types-overlaybadge.mjs.map +1 -0
  464. package/fesm2022/gravionlabs-helix-core-types-paginator.mjs +4 -0
  465. package/fesm2022/gravionlabs-helix-core-types-paginator.mjs.map +1 -0
  466. package/fesm2022/gravionlabs-helix-core-types-panel.mjs +4 -0
  467. package/fesm2022/gravionlabs-helix-core-types-panel.mjs.map +1 -0
  468. package/fesm2022/gravionlabs-helix-core-types-panelmenu.mjs +4 -0
  469. package/fesm2022/gravionlabs-helix-core-types-panelmenu.mjs.map +1 -0
  470. package/fesm2022/gravionlabs-helix-core-types-password.mjs +4 -0
  471. package/fesm2022/gravionlabs-helix-core-types-password.mjs.map +1 -0
  472. package/fesm2022/gravionlabs-helix-core-types-picklist.mjs +4 -0
  473. package/fesm2022/gravionlabs-helix-core-types-picklist.mjs.map +1 -0
  474. package/fesm2022/gravionlabs-helix-core-types-popover.mjs +4 -0
  475. package/fesm2022/gravionlabs-helix-core-types-popover.mjs.map +1 -0
  476. package/fesm2022/gravionlabs-helix-core-types-progressbar.mjs +4 -0
  477. package/fesm2022/gravionlabs-helix-core-types-progressbar.mjs.map +1 -0
  478. package/fesm2022/gravionlabs-helix-core-types-progressspinner.mjs +4 -0
  479. package/fesm2022/gravionlabs-helix-core-types-progressspinner.mjs.map +1 -0
  480. package/fesm2022/gravionlabs-helix-core-types-radiobutton.mjs +4 -0
  481. package/fesm2022/gravionlabs-helix-core-types-radiobutton.mjs.map +1 -0
  482. package/fesm2022/gravionlabs-helix-core-types-rating.mjs +4 -0
  483. package/fesm2022/gravionlabs-helix-core-types-rating.mjs.map +1 -0
  484. package/fesm2022/gravionlabs-helix-core-types-scroller.mjs +4 -0
  485. package/fesm2022/gravionlabs-helix-core-types-scroller.mjs.map +1 -0
  486. package/fesm2022/gravionlabs-helix-core-types-scrollpanel.mjs +4 -0
  487. package/fesm2022/gravionlabs-helix-core-types-scrollpanel.mjs.map +1 -0
  488. package/fesm2022/gravionlabs-helix-core-types-scrolltop.mjs +4 -0
  489. package/fesm2022/gravionlabs-helix-core-types-scrolltop.mjs.map +1 -0
  490. package/fesm2022/gravionlabs-helix-core-types-select.mjs +4 -0
  491. package/fesm2022/gravionlabs-helix-core-types-select.mjs.map +1 -0
  492. package/fesm2022/gravionlabs-helix-core-types-selectbutton.mjs +4 -0
  493. package/fesm2022/gravionlabs-helix-core-types-selectbutton.mjs.map +1 -0
  494. package/fesm2022/gravionlabs-helix-core-types-skeleton.mjs +4 -0
  495. package/fesm2022/gravionlabs-helix-core-types-skeleton.mjs.map +1 -0
  496. package/fesm2022/gravionlabs-helix-core-types-slider.mjs +4 -0
  497. package/fesm2022/gravionlabs-helix-core-types-slider.mjs.map +1 -0
  498. package/fesm2022/gravionlabs-helix-core-types-speeddial.mjs +4 -0
  499. package/fesm2022/gravionlabs-helix-core-types-speeddial.mjs.map +1 -0
  500. package/fesm2022/gravionlabs-helix-core-types-splitbutton.mjs +4 -0
  501. package/fesm2022/gravionlabs-helix-core-types-splitbutton.mjs.map +1 -0
  502. package/fesm2022/gravionlabs-helix-core-types-splitter.mjs +4 -0
  503. package/fesm2022/gravionlabs-helix-core-types-splitter.mjs.map +1 -0
  504. package/fesm2022/gravionlabs-helix-core-types-stepper.mjs +4 -0
  505. package/fesm2022/gravionlabs-helix-core-types-stepper.mjs.map +1 -0
  506. package/fesm2022/gravionlabs-helix-core-types-table.mjs +4 -0
  507. package/fesm2022/gravionlabs-helix-core-types-table.mjs.map +1 -0
  508. package/fesm2022/gravionlabs-helix-core-types-tabs.mjs +4 -0
  509. package/fesm2022/gravionlabs-helix-core-types-tabs.mjs.map +1 -0
  510. package/fesm2022/gravionlabs-helix-core-types-tag.mjs +4 -0
  511. package/fesm2022/gravionlabs-helix-core-types-tag.mjs.map +1 -0
  512. package/fesm2022/gravionlabs-helix-core-types-terminal.mjs +4 -0
  513. package/fesm2022/gravionlabs-helix-core-types-terminal.mjs.map +1 -0
  514. package/fesm2022/gravionlabs-helix-core-types-textarea.mjs +4 -0
  515. package/fesm2022/gravionlabs-helix-core-types-textarea.mjs.map +1 -0
  516. package/fesm2022/gravionlabs-helix-core-types-tieredmenu.mjs +4 -0
  517. package/fesm2022/gravionlabs-helix-core-types-tieredmenu.mjs.map +1 -0
  518. package/fesm2022/gravionlabs-helix-core-types-timeline.mjs +4 -0
  519. package/fesm2022/gravionlabs-helix-core-types-timeline.mjs.map +1 -0
  520. package/fesm2022/gravionlabs-helix-core-types-toast.mjs +4 -0
  521. package/fesm2022/gravionlabs-helix-core-types-toast.mjs.map +1 -0
  522. package/fesm2022/gravionlabs-helix-core-types-togglebutton.mjs +4 -0
  523. package/fesm2022/gravionlabs-helix-core-types-togglebutton.mjs.map +1 -0
  524. package/fesm2022/gravionlabs-helix-core-types-toggleswitch.mjs +4 -0
  525. package/fesm2022/gravionlabs-helix-core-types-toggleswitch.mjs.map +1 -0
  526. package/fesm2022/gravionlabs-helix-core-types-toolbar.mjs +4 -0
  527. package/fesm2022/gravionlabs-helix-core-types-toolbar.mjs.map +1 -0
  528. package/fesm2022/gravionlabs-helix-core-types-tooltip.mjs +4 -0
  529. package/fesm2022/gravionlabs-helix-core-types-tooltip.mjs.map +1 -0
  530. package/fesm2022/gravionlabs-helix-core-types-tree.mjs +4 -0
  531. package/fesm2022/gravionlabs-helix-core-types-tree.mjs.map +1 -0
  532. package/fesm2022/gravionlabs-helix-core-types-treeselect.mjs +4 -0
  533. package/fesm2022/gravionlabs-helix-core-types-treeselect.mjs.map +1 -0
  534. package/fesm2022/gravionlabs-helix-core-types-treetable.mjs +4 -0
  535. package/fesm2022/gravionlabs-helix-core-types-treetable.mjs.map +1 -0
  536. package/fesm2022/gravionlabs-helix-core-uix-motion.mjs +304 -0
  537. package/fesm2022/gravionlabs-helix-core-uix-motion.mjs.map +1 -0
  538. package/fesm2022/gravionlabs-helix-core-uix-styled.mjs +871 -0
  539. package/fesm2022/gravionlabs-helix-core-uix-styled.mjs.map +1 -0
  540. package/fesm2022/gravionlabs-helix-core-uix-utils.mjs +1839 -0
  541. package/fesm2022/gravionlabs-helix-core-uix-utils.mjs.map +1 -0
  542. package/fesm2022/gravionlabs-helix-core-usestyle.mjs +54 -0
  543. package/fesm2022/gravionlabs-helix-core-usestyle.mjs.map +1 -0
  544. package/fesm2022/gravionlabs-helix-core-utils.mjs +376 -0
  545. package/fesm2022/gravionlabs-helix-core-utils.mjs.map +1 -0
  546. package/fesm2022/gravionlabs-helix-core-validators.mjs +99 -0
  547. package/fesm2022/gravionlabs-helix-core-validators.mjs.map +1 -0
  548. package/fesm2022/gravionlabs-helix-core.mjs +6 -0
  549. package/fesm2022/gravionlabs-helix-core.mjs.map +1 -0
  550. package/package.json +1127 -0
  551. package/types/gravionlabs-helix-core-accordion.d.ts +289 -0
  552. package/types/gravionlabs-helix-core-animateonscroll.d.ts +68 -0
  553. package/types/gravionlabs-helix-core-api.d.ts +1976 -0
  554. package/types/gravionlabs-helix-core-autocomplete.d.ts +765 -0
  555. package/types/gravionlabs-helix-core-autofocus.d.ts +31 -0
  556. package/types/gravionlabs-helix-core-avatar.d.ts +138 -0
  557. package/types/gravionlabs-helix-core-avatargroup.d.ts +63 -0
  558. package/types/gravionlabs-helix-core-badge.d.ts +182 -0
  559. package/types/gravionlabs-helix-core-base.d.ts +54 -0
  560. package/types/gravionlabs-helix-core-basecomponent.d.ts +175 -0
  561. package/types/gravionlabs-helix-core-baseeditableholder.d.ts +45 -0
  562. package/types/gravionlabs-helix-core-baseinput.d.ts +73 -0
  563. package/types/gravionlabs-helix-core-basemodelholder.d.ts +12 -0
  564. package/types/gravionlabs-helix-core-bind.d.ts +38 -0
  565. package/types/gravionlabs-helix-core-blockui.d.ts +106 -0
  566. package/types/gravionlabs-helix-core-breadcrumb.d.ts +148 -0
  567. package/types/gravionlabs-helix-core-button.d.ts +465 -0
  568. package/types/gravionlabs-helix-core-buttongroup.d.ts +44 -0
  569. package/types/gravionlabs-helix-core-card.d.ts +151 -0
  570. package/types/gravionlabs-helix-core-carousel.d.ts +376 -0
  571. package/types/gravionlabs-helix-core-cascadeselect.d.ts +620 -0
  572. package/types/gravionlabs-helix-core-chart.d.ts +130 -0
  573. package/types/gravionlabs-helix-core-checkbox.d.ts +226 -0
  574. package/types/gravionlabs-helix-core-chip.d.ts +162 -0
  575. package/types/gravionlabs-helix-core-classnames.d.ts +32 -0
  576. package/types/gravionlabs-helix-core-colorpicker.d.ts +311 -0
  577. package/types/gravionlabs-helix-core-config.d.ts +268 -0
  578. package/types/gravionlabs-helix-core-confirmdialog.d.ts +340 -0
  579. package/types/gravionlabs-helix-core-confirmpopup.d.ts +233 -0
  580. package/types/gravionlabs-helix-core-contextmenu.d.ts +370 -0
  581. package/types/gravionlabs-helix-core-dataview.d.ts +364 -0
  582. package/types/gravionlabs-helix-core-datepicker.d.ts +969 -0
  583. package/types/gravionlabs-helix-core-dialog.d.ts +530 -0
  584. package/types/gravionlabs-helix-core-divider.d.ts +121 -0
  585. package/types/gravionlabs-helix-core-dock.d.ts +196 -0
  586. package/types/gravionlabs-helix-core-dom.d.ts +109 -0
  587. package/types/gravionlabs-helix-core-dragdrop.d.ts +117 -0
  588. package/types/gravionlabs-helix-core-drawer.d.ts +293 -0
  589. package/types/gravionlabs-helix-core-dynamicdialog.d.ts +554 -0
  590. package/types/gravionlabs-helix-core-editor.d.ts +188 -0
  591. package/types/gravionlabs-helix-core-fieldset.d.ts +185 -0
  592. package/types/gravionlabs-helix-core-fileupload.d.ts +549 -0
  593. package/types/gravionlabs-helix-core-firsterror.d.ts +11 -0
  594. package/types/gravionlabs-helix-core-floatlabel.d.ts +67 -0
  595. package/types/gravionlabs-helix-core-fluid.d.ts +54 -0
  596. package/types/gravionlabs-helix-core-focustrap.d.ts +35 -0
  597. package/types/gravionlabs-helix-core-galleria.d.ts +647 -0
  598. package/types/gravionlabs-helix-core-iconfield.d.ts +72 -0
  599. package/types/gravionlabs-helix-core-icons-angledoubledown.d.ts +9 -0
  600. package/types/gravionlabs-helix-core-icons-angledoubleleft.d.ts +9 -0
  601. package/types/gravionlabs-helix-core-icons-angledoubleright.d.ts +9 -0
  602. package/types/gravionlabs-helix-core-icons-angledoubleup.d.ts +9 -0
  603. package/types/gravionlabs-helix-core-icons-angledown.d.ts +9 -0
  604. package/types/gravionlabs-helix-core-icons-angleleft.d.ts +9 -0
  605. package/types/gravionlabs-helix-core-icons-angleright.d.ts +9 -0
  606. package/types/gravionlabs-helix-core-icons-angleup.d.ts +9 -0
  607. package/types/gravionlabs-helix-core-icons-arrowdown.d.ts +11 -0
  608. package/types/gravionlabs-helix-core-icons-arrowdownleft.d.ts +9 -0
  609. package/types/gravionlabs-helix-core-icons-arrowdownright.d.ts +9 -0
  610. package/types/gravionlabs-helix-core-icons-arrowleft.d.ts +11 -0
  611. package/types/gravionlabs-helix-core-icons-arrowright.d.ts +9 -0
  612. package/types/gravionlabs-helix-core-icons-arrowup.d.ts +11 -0
  613. package/types/gravionlabs-helix-core-icons-ban.d.ts +11 -0
  614. package/types/gravionlabs-helix-core-icons-bars.d.ts +9 -0
  615. package/types/gravionlabs-helix-core-icons-baseicon.d.ts +32 -0
  616. package/types/gravionlabs-helix-core-icons-blank.d.ts +9 -0
  617. package/types/gravionlabs-helix-core-icons-calendar.d.ts +9 -0
  618. package/types/gravionlabs-helix-core-icons-caretleft.d.ts +9 -0
  619. package/types/gravionlabs-helix-core-icons-caretright.d.ts +9 -0
  620. package/types/gravionlabs-helix-core-icons-check.d.ts +9 -0
  621. package/types/gravionlabs-helix-core-icons-chevrondown.d.ts +9 -0
  622. package/types/gravionlabs-helix-core-icons-chevronleft.d.ts +9 -0
  623. package/types/gravionlabs-helix-core-icons-chevronright.d.ts +9 -0
  624. package/types/gravionlabs-helix-core-icons-chevronup.d.ts +9 -0
  625. package/types/gravionlabs-helix-core-icons-exclamationtriangle.d.ts +11 -0
  626. package/types/gravionlabs-helix-core-icons-eye.d.ts +9 -0
  627. package/types/gravionlabs-helix-core-icons-eyeslash.d.ts +11 -0
  628. package/types/gravionlabs-helix-core-icons-filter.d.ts +11 -0
  629. package/types/gravionlabs-helix-core-icons-filterfill.d.ts +9 -0
  630. package/types/gravionlabs-helix-core-icons-filterslash.d.ts +11 -0
  631. package/types/gravionlabs-helix-core-icons-home.d.ts +11 -0
  632. package/types/gravionlabs-helix-core-icons-infocircle.d.ts +11 -0
  633. package/types/gravionlabs-helix-core-icons-minus.d.ts +9 -0
  634. package/types/gravionlabs-helix-core-icons-pencil.d.ts +11 -0
  635. package/types/gravionlabs-helix-core-icons-plus.d.ts +11 -0
  636. package/types/gravionlabs-helix-core-icons-refresh.d.ts +11 -0
  637. package/types/gravionlabs-helix-core-icons-search.d.ts +11 -0
  638. package/types/gravionlabs-helix-core-icons-searchminus.d.ts +11 -0
  639. package/types/gravionlabs-helix-core-icons-searchplus.d.ts +11 -0
  640. package/types/gravionlabs-helix-core-icons-sortalt.d.ts +11 -0
  641. package/types/gravionlabs-helix-core-icons-sortamountdown.d.ts +11 -0
  642. package/types/gravionlabs-helix-core-icons-sortamountupalt.d.ts +11 -0
  643. package/types/gravionlabs-helix-core-icons-spinner.d.ts +11 -0
  644. package/types/gravionlabs-helix-core-icons-star.d.ts +11 -0
  645. package/types/gravionlabs-helix-core-icons-starfill.d.ts +11 -0
  646. package/types/gravionlabs-helix-core-icons-thlarge.d.ts +11 -0
  647. package/types/gravionlabs-helix-core-icons-times.d.ts +9 -0
  648. package/types/gravionlabs-helix-core-icons-timescircle.d.ts +11 -0
  649. package/types/gravionlabs-helix-core-icons-trash.d.ts +11 -0
  650. package/types/gravionlabs-helix-core-icons-undo.d.ts +11 -0
  651. package/types/gravionlabs-helix-core-icons-upload.d.ts +11 -0
  652. package/types/gravionlabs-helix-core-icons-windowmaximize.d.ts +11 -0
  653. package/types/gravionlabs-helix-core-icons-windowminimize.d.ts +11 -0
  654. package/types/gravionlabs-helix-core-icons.d.ts +53 -0
  655. package/types/gravionlabs-helix-core-iftalabel.d.ts +58 -0
  656. package/types/gravionlabs-helix-core-image.d.ts +347 -0
  657. package/types/gravionlabs-helix-core-imagecompare.d.ts +99 -0
  658. package/types/gravionlabs-helix-core-inplace.d.ts +166 -0
  659. package/types/gravionlabs-helix-core-inputgroup.d.ts +65 -0
  660. package/types/gravionlabs-helix-core-inputgroupaddon.d.ts +49 -0
  661. package/types/gravionlabs-helix-core-inputicon.d.ts +44 -0
  662. package/types/gravionlabs-helix-core-inputmask.d.ts +373 -0
  663. package/types/gravionlabs-helix-core-inputnumber.d.ts +425 -0
  664. package/types/gravionlabs-helix-core-inputotp.d.ts +175 -0
  665. package/types/gravionlabs-helix-core-inputtext.d.ts +117 -0
  666. package/types/gravionlabs-helix-core-keyfilter.d.ts +58 -0
  667. package/types/gravionlabs-helix-core-knob.d.ts +203 -0
  668. package/types/gravionlabs-helix-core-listbox.d.ts +654 -0
  669. package/types/gravionlabs-helix-core-megamenu.d.ts +383 -0
  670. package/types/gravionlabs-helix-core-menu.d.ts +361 -0
  671. package/types/gravionlabs-helix-core-menubar.d.ts +380 -0
  672. package/types/gravionlabs-helix-core-message.d.ts +210 -0
  673. package/types/gravionlabs-helix-core-metergroup.d.ts +208 -0
  674. package/types/gravionlabs-helix-core-motion.d.ts +398 -0
  675. package/types/gravionlabs-helix-core-multiselect.d.ts +871 -0
  676. package/types/gravionlabs-helix-core-orderlist.d.ts +366 -0
  677. package/types/gravionlabs-helix-core-organizationchart.d.ts +221 -0
  678. package/types/gravionlabs-helix-core-overlay.d.ts +314 -0
  679. package/types/gravionlabs-helix-core-overlaybadge.d.ts +77 -0
  680. package/types/gravionlabs-helix-core-paginator.d.ts +351 -0
  681. package/types/gravionlabs-helix-core-panel.d.ts +241 -0
  682. package/types/gravionlabs-helix-core-panelmenu.d.ts +359 -0
  683. package/types/gravionlabs-helix-core-passthrough.d.ts +14 -0
  684. package/types/gravionlabs-helix-core-password.d.ts +487 -0
  685. package/types/gravionlabs-helix-core-picklist.d.ts +662 -0
  686. package/types/gravionlabs-helix-core-popover.d.ts +197 -0
  687. package/types/gravionlabs-helix-core-progressbar.d.ts +121 -0
  688. package/types/gravionlabs-helix-core-progressspinner.d.ts +91 -0
  689. package/types/gravionlabs-helix-core-radiobutton.d.ts +190 -0
  690. package/types/gravionlabs-helix-core-rating.d.ts +193 -0
  691. package/types/gravionlabs-helix-core-ripple.d.ts +63 -0
  692. package/types/gravionlabs-helix-core-scroller.d.ts +399 -0
  693. package/types/gravionlabs-helix-core-scrollpanel.d.ts +156 -0
  694. package/types/gravionlabs-helix-core-scrolltop.d.ts +155 -0
  695. package/types/gravionlabs-helix-core-select.d.ts +765 -0
  696. package/types/gravionlabs-helix-core-selectbutton.d.ts +180 -0
  697. package/types/gravionlabs-helix-core-skeleton.d.ts +103 -0
  698. package/types/gravionlabs-helix-core-slider.d.ts +216 -0
  699. package/types/gravionlabs-helix-core-speeddial.d.ts +408 -0
  700. package/types/gravionlabs-helix-core-splitbutton.d.ts +283 -0
  701. package/types/gravionlabs-helix-core-splitter.d.ts +208 -0
  702. package/types/gravionlabs-helix-core-stepper.d.ts +337 -0
  703. package/types/gravionlabs-helix-core-steps.d.ts +149 -0
  704. package/types/gravionlabs-helix-core-styleclass.d.ts +112 -0
  705. package/types/gravionlabs-helix-core-table.d.ts +1995 -0
  706. package/types/gravionlabs-helix-core-tabs.d.ts +359 -0
  707. package/types/gravionlabs-helix-core-tag.d.ts +113 -0
  708. package/types/gravionlabs-helix-core-terminal.d.ts +140 -0
  709. package/types/gravionlabs-helix-core-textarea.d.ts +125 -0
  710. package/types/gravionlabs-helix-core-themes-aura.d.ts +965 -0
  711. package/types/gravionlabs-helix-core-themes-lara.d.ts +978 -0
  712. package/types/gravionlabs-helix-core-themes-nora.d.ts +962 -0
  713. package/types/gravionlabs-helix-core-themes-types.d.ts +20358 -0
  714. package/types/gravionlabs-helix-core-themes.d.ts +11 -0
  715. package/types/gravionlabs-helix-core-tieredmenu.d.ts +414 -0
  716. package/types/gravionlabs-helix-core-timeline.d.ts +140 -0
  717. package/types/gravionlabs-helix-core-toast.d.ts +293 -0
  718. package/types/gravionlabs-helix-core-togglebutton.d.ts +203 -0
  719. package/types/gravionlabs-helix-core-toggleswitch.d.ts +165 -0
  720. package/types/gravionlabs-helix-core-toolbar.d.ts +105 -0
  721. package/types/gravionlabs-helix-core-tooltip.d.ts +273 -0
  722. package/types/gravionlabs-helix-core-tree.d.ts +646 -0
  723. package/types/gravionlabs-helix-core-treeselect.d.ts +574 -0
  724. package/types/gravionlabs-helix-core-treetable.d.ts +1236 -0
  725. package/types/gravionlabs-helix-core-ts-helpers.d.ts +6 -0
  726. package/types/gravionlabs-helix-core-types-accordion.d.ts +97 -0
  727. package/types/gravionlabs-helix-core-types-autocomplete.d.ts +312 -0
  728. package/types/gravionlabs-helix-core-types-avatar.d.ts +40 -0
  729. package/types/gravionlabs-helix-core-types-avatargroup.d.ts +28 -0
  730. package/types/gravionlabs-helix-core-types-badge.d.ts +26 -0
  731. package/types/gravionlabs-helix-core-types-blockui.d.ts +39 -0
  732. package/types/gravionlabs-helix-core-types-breadcrumb.d.ts +96 -0
  733. package/types/gravionlabs-helix-core-types-button.d.ts +124 -0
  734. package/types/gravionlabs-helix-core-types-card.d.ts +75 -0
  735. package/types/gravionlabs-helix-core-types-carousel.d.ts +143 -0
  736. package/types/gravionlabs-helix-core-types-cascadeselect.d.ts +215 -0
  737. package/types/gravionlabs-helix-core-types-chart.d.ts +32 -0
  738. package/types/gravionlabs-helix-core-types-checkbox.d.ts +81 -0
  739. package/types/gravionlabs-helix-core-types-chip.d.ts +71 -0
  740. package/types/gravionlabs-helix-core-types-colorpicker.d.ts +78 -0
  741. package/types/gravionlabs-helix-core-types-confirmdialog.d.ts +147 -0
  742. package/types/gravionlabs-helix-core-types-confirmpopup.d.ts +105 -0
  743. package/types/gravionlabs-helix-core-types-contextmenu.d.ts +102 -0
  744. package/types/gravionlabs-helix-core-types-dataview.d.ts +253 -0
  745. package/types/gravionlabs-helix-core-types-datepicker.d.ts +521 -0
  746. package/types/gravionlabs-helix-core-types-dialog.d.ts +107 -0
  747. package/types/gravionlabs-helix-core-types-divider.d.ts +28 -0
  748. package/types/gravionlabs-helix-core-types-dock.d.ts +70 -0
  749. package/types/gravionlabs-helix-core-types-drawer.d.ts +82 -0
  750. package/types/gravionlabs-helix-core-types-editor.d.ts +210 -0
  751. package/types/gravionlabs-helix-core-types-fieldset.d.ts +101 -0
  752. package/types/gravionlabs-helix-core-types-fileupload.d.ts +360 -0
  753. package/types/gravionlabs-helix-core-types-floatlabel.d.ts +26 -0
  754. package/types/gravionlabs-helix-core-types-fluid.d.ts +28 -0
  755. package/types/gravionlabs-helix-core-types-galleria.d.ts +250 -0
  756. package/types/gravionlabs-helix-core-types-iconfield.d.ts +26 -0
  757. package/types/gravionlabs-helix-core-types-iftalabel.d.ts +26 -0
  758. package/types/gravionlabs-helix-core-types-image.d.ts +144 -0
  759. package/types/gravionlabs-helix-core-types-imagecompare.d.ts +43 -0
  760. package/types/gravionlabs-helix-core-types-inplace.d.ts +72 -0
  761. package/types/gravionlabs-helix-core-types-inputgroup.d.ts +28 -0
  762. package/types/gravionlabs-helix-core-types-inputgroupaddon.d.ts +28 -0
  763. package/types/gravionlabs-helix-core-types-inputicon.d.ts +26 -0
  764. package/types/gravionlabs-helix-core-types-inputmask.d.ts +56 -0
  765. package/types/gravionlabs-helix-core-types-inputnumber.d.ts +95 -0
  766. package/types/gravionlabs-helix-core-types-inputotp.d.ts +101 -0
  767. package/types/gravionlabs-helix-core-types-inputtext.d.ts +24 -0
  768. package/types/gravionlabs-helix-core-types-knob.d.ts +40 -0
  769. package/types/gravionlabs-helix-core-types-listbox.d.ts +359 -0
  770. package/types/gravionlabs-helix-core-types-megamenu.d.ts +138 -0
  771. package/types/gravionlabs-helix-core-types-menu.d.ts +114 -0
  772. package/types/gravionlabs-helix-core-types-menubar.d.ts +124 -0
  773. package/types/gravionlabs-helix-core-types-message.d.ts +87 -0
  774. package/types/gravionlabs-helix-core-types-metergroup.d.ts +176 -0
  775. package/types/gravionlabs-helix-core-types-motion.d.ts +26 -0
  776. package/types/gravionlabs-helix-core-types-multiselect.d.ts +414 -0
  777. package/types/gravionlabs-helix-core-types-orderlist.d.ts +173 -0
  778. package/types/gravionlabs-helix-core-types-organizationchart.d.ts +138 -0
  779. package/types/gravionlabs-helix-core-types-overlay.d.ts +60 -0
  780. package/types/gravionlabs-helix-core-types-overlaybadge.d.ts +34 -0
  781. package/types/gravionlabs-helix-core-types-paginator.d.ts +167 -0
  782. package/types/gravionlabs-helix-core-types-panel.d.ts +129 -0
  783. package/types/gravionlabs-helix-core-types-panelmenu.d.ts +131 -0
  784. package/types/gravionlabs-helix-core-types-password.d.ts +120 -0
  785. package/types/gravionlabs-helix-core-types-picklist.d.ts +348 -0
  786. package/types/gravionlabs-helix-core-types-popover.d.ts +59 -0
  787. package/types/gravionlabs-helix-core-types-progressbar.d.ts +58 -0
  788. package/types/gravionlabs-helix-core-types-progressspinner.d.ts +36 -0
  789. package/types/gravionlabs-helix-core-types-radiobutton.d.ts +51 -0
  790. package/types/gravionlabs-helix-core-types-rating.d.ts +94 -0
  791. package/types/gravionlabs-helix-core-types-scroller.d.ts +231 -0
  792. package/types/gravionlabs-helix-core-types-scrollpanel.d.ts +51 -0
  793. package/types/gravionlabs-helix-core-types-scrolltop.d.ts +61 -0
  794. package/types/gravionlabs-helix-core-types-select.d.ts +319 -0
  795. package/types/gravionlabs-helix-core-types-selectbutton.d.ts +92 -0
  796. package/types/gravionlabs-helix-core-types-skeleton.d.ts +28 -0
  797. package/types/gravionlabs-helix-core-types-slider.d.ts +78 -0
  798. package/types/gravionlabs-helix-core-types-speeddial.d.ts +100 -0
  799. package/types/gravionlabs-helix-core-types-splitbutton.d.ts +70 -0
  800. package/types/gravionlabs-helix-core-types-splitter.d.ts +70 -0
  801. package/types/gravionlabs-helix-core-types-stepper.d.ts +162 -0
  802. package/types/gravionlabs-helix-core-types-table.d.ts +893 -0
  803. package/types/gravionlabs-helix-core-types-tabs.d.ts +119 -0
  804. package/types/gravionlabs-helix-core-types-tag.d.ts +47 -0
  805. package/types/gravionlabs-helix-core-types-terminal.d.ts +60 -0
  806. package/types/gravionlabs-helix-core-types-textarea.d.ts +28 -0
  807. package/types/gravionlabs-helix-core-types-tieredmenu.d.ts +95 -0
  808. package/types/gravionlabs-helix-core-types-timeline.d.ts +85 -0
  809. package/types/gravionlabs-helix-core-types-toast.d.ts +131 -0
  810. package/types/gravionlabs-helix-core-types-togglebutton.d.ts +86 -0
  811. package/types/gravionlabs-helix-core-types-toggleswitch.d.ts +73 -0
  812. package/types/gravionlabs-helix-core-types-toolbar.d.ts +55 -0
  813. package/types/gravionlabs-helix-core-types-tooltip.d.ts +32 -0
  814. package/types/gravionlabs-helix-core-types-tree.d.ts +342 -0
  815. package/types/gravionlabs-helix-core-types-treeselect.d.ts +251 -0
  816. package/types/gravionlabs-helix-core-types-treetable.d.ts +629 -0
  817. package/types/gravionlabs-helix-core-uix-motion.d.ts +276 -0
  818. package/types/gravionlabs-helix-core-uix-styled.d.ts +309 -0
  819. package/types/gravionlabs-helix-core-uix-utils.d.ts +387 -0
  820. package/types/gravionlabs-helix-core-usestyle.d.ts +15 -0
  821. package/types/gravionlabs-helix-core-utils.d.ts +54 -0
  822. package/types/gravionlabs-helix-core-validators.d.ts +40 -0
  823. package/types/gravionlabs-helix-core.d.ts +2 -0
@@ -0,0 +1,3795 @@
1
+ export * from '@gravionlabs/helix-core/types/datepicker';
2
+ import * as i3 from '@angular/common';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i0 from '@angular/core';
5
+ import { Injectable, forwardRef, InjectionToken, inject, input, booleanAttribute, numberAttribute, computed, output, viewChild, contentChild, effect, contentChildren, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
6
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
7
+ import { uuid, getOuterWidth, isDate, findSingle, getFocusableElements, hasClass, getIndex, find, isNotEmpty, addStyle, appendChild, absolutePosition, relativePosition, addClass, setAttribute, isTouchDevice } from '@gravionlabs/helix-core/uix/utils';
8
+ import * as i1 from '@gravionlabs/helix-core/api';
9
+ import { HelixTemplate, TranslationKeys, SharedModule } from '@gravionlabs/helix-core/api';
10
+ import { AutoFocus } from '@gravionlabs/helix-core/autofocus';
11
+ import { PARENT_INSTANCE } from '@gravionlabs/helix-core/basecomponent';
12
+ import { BaseInput } from '@gravionlabs/helix-core/baseinput';
13
+ import * as i2 from '@gravionlabs/helix-core/bind';
14
+ import { Bind, BindModule } from '@gravionlabs/helix-core/bind';
15
+ import { Button } from '@gravionlabs/helix-core/button';
16
+ import { blockBodyScroll, unblockBodyScroll, ConnectedOverlayScrollHandler } from '@gravionlabs/helix-core/dom';
17
+ import { ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, TimesIcon, CalendarIcon } from '@gravionlabs/helix-core/icons';
18
+ import { InputText } from '@gravionlabs/helix-core/inputtext';
19
+ import * as i4 from '@gravionlabs/helix-core/motion';
20
+ import { MotionModule } from '@gravionlabs/helix-core/motion';
21
+ import { Ripple } from '@gravionlabs/helix-core/ripple';
22
+ import { ZIndexUtils } from '@gravionlabs/helix-core/utils';
23
+ import { BaseStyle } from '@gravionlabs/helix-core/base';
24
+
25
+ const style$1 = /*css*/ `
26
+ .h-datepicker {
27
+ display: inline-flex;
28
+ max-width: 100%;
29
+ }
30
+
31
+ .h-datepicker:has(.h-datepicker-dropdown) .h-datepicker-input {
32
+ border-start-end-radius: 0;
33
+ border-end-end-radius: 0;
34
+ }
35
+
36
+ .h-datepicker-input {
37
+ flex: 1 1 auto;
38
+ width: 1%;
39
+ }
40
+
41
+ .h-datepicker-dropdown {
42
+ cursor: pointer;
43
+ display: inline-flex;
44
+ user-select: none;
45
+ align-items: center;
46
+ justify-content: center;
47
+ overflow: hidden;
48
+ position: relative;
49
+ width: dt('datepicker.dropdown.width');
50
+ border-start-end-radius: dt('datepicker.dropdown.border.radius');
51
+ border-end-end-radius: dt('datepicker.dropdown.border.radius');
52
+ background: dt('datepicker.dropdown.background');
53
+ border: 1px solid dt('datepicker.dropdown.border.color');
54
+ border-inline-start: 0 none;
55
+ color: dt('datepicker.dropdown.color');
56
+ transition:
57
+ background dt('datepicker.transition.duration'),
58
+ color dt('datepicker.transition.duration'),
59
+ border-color dt('datepicker.transition.duration'),
60
+ outline-color dt('datepicker.transition.duration');
61
+ outline-color: transparent;
62
+ }
63
+
64
+ .h-datepicker-dropdown:not(:disabled):hover {
65
+ background: dt('datepicker.dropdown.hover.background');
66
+ border-color: dt('datepicker.dropdown.hover.border.color');
67
+ color: dt('datepicker.dropdown.hover.color');
68
+ }
69
+
70
+ .h-datepicker-dropdown:not(:disabled):active {
71
+ background: dt('datepicker.dropdown.active.background');
72
+ border-color: dt('datepicker.dropdown.active.border.color');
73
+ color: dt('datepicker.dropdown.active.color');
74
+ }
75
+
76
+ .h-datepicker-dropdown:focus-visible {
77
+ box-shadow: dt('datepicker.dropdown.focus.ring.shadow');
78
+ outline: dt('datepicker.dropdown.focus.ring.width') dt('datepicker.dropdown.focus.ring.style') dt('datepicker.dropdown.focus.ring.color');
79
+ outline-offset: dt('datepicker.dropdown.focus.ring.offset');
80
+ }
81
+
82
+ .h-datepicker:has(.h-datepicker-input-icon-container) {
83
+ position: relative;
84
+ }
85
+
86
+ .h-datepicker:has(.h-datepicker-input-icon-container) .h-datepicker-input {
87
+ padding-inline-end: calc((dt('form.field.padding.x') * 2) + dt('icon.size'));
88
+ }
89
+
90
+ .h-datepicker-input-icon-container {
91
+ cursor: pointer;
92
+ position: absolute;
93
+ top: 50%;
94
+ inset-inline-end: dt('form.field.padding.x');
95
+ margin-block-start: calc(-1 * (dt('icon.size') / 2));
96
+ color: dt('datepicker.input.icon.color');
97
+ line-height: 1;
98
+ z-index: 1;
99
+ }
100
+
101
+ .h-datepicker:has(.h-datepicker-input:disabled) .h-datepicker-input-icon-container {
102
+ cursor: default;
103
+ }
104
+
105
+ .h-datepicker-fluid {
106
+ display: flex;
107
+ }
108
+
109
+ .h-datepicker .h-datepicker-panel {
110
+ min-width: 100%;
111
+ }
112
+
113
+ .h-datepicker-panel {
114
+ width: auto;
115
+ padding: dt('datepicker.panel.padding');
116
+ background: dt('datepicker.panel.background');
117
+ color: dt('datepicker.panel.color');
118
+ border: 1px solid dt('datepicker.panel.border.color');
119
+ border-radius: dt('datepicker.panel.border.radius');
120
+ box-shadow: dt('datepicker.panel.shadow');
121
+ }
122
+
123
+ .h-datepicker-panel-inline {
124
+ display: inline-block;
125
+ overflow-x: auto;
126
+ box-shadow: none;
127
+ }
128
+
129
+ .h-datepicker-header {
130
+ display: flex;
131
+ align-items: center;
132
+ justify-content: space-between;
133
+ padding: dt('datepicker.header.padding');
134
+ background: dt('datepicker.header.background');
135
+ color: dt('datepicker.header.color');
136
+ border-block-end: 1px solid dt('datepicker.header.border.color');
137
+ }
138
+
139
+ .h-datepicker-next-button:dir(rtl) {
140
+ order: -1;
141
+ }
142
+
143
+ .h-datepicker-prev-button:dir(rtl) {
144
+ order: 1;
145
+ }
146
+
147
+ .h-datepicker-title {
148
+ display: flex;
149
+ align-items: center;
150
+ justify-content: space-between;
151
+ gap: dt('datepicker.title.gap');
152
+ font-weight: dt('datepicker.title.font.weight');
153
+ }
154
+
155
+ .h-datepicker-select-year,
156
+ .h-datepicker-select-month {
157
+ border: none;
158
+ background: transparent;
159
+ margin: 0;
160
+ cursor: pointer;
161
+ font-weight: inherit;
162
+ transition:
163
+ background dt('datepicker.transition.duration'),
164
+ color dt('datepicker.transition.duration'),
165
+ border-color dt('datepicker.transition.duration'),
166
+ outline-color dt('datepicker.transition.duration'),
167
+ box-shadow dt('datepicker.transition.duration');
168
+ }
169
+
170
+ .h-datepicker-select-month {
171
+ padding: dt('datepicker.select.month.padding');
172
+ color: dt('datepicker.select.month.color');
173
+ border-radius: dt('datepicker.select.month.border.radius');
174
+ }
175
+
176
+ .h-datepicker-select-year {
177
+ padding: dt('datepicker.select.year.padding');
178
+ color: dt('datepicker.select.year.color');
179
+ border-radius: dt('datepicker.select.year.border.radius');
180
+ }
181
+
182
+ .h-datepicker-select-month:enabled:hover {
183
+ background: dt('datepicker.select.month.hover.background');
184
+ color: dt('datepicker.select.month.hover.color');
185
+ }
186
+
187
+ .h-datepicker-select-year:enabled:hover {
188
+ background: dt('datepicker.select.year.hover.background');
189
+ color: dt('datepicker.select.year.hover.color');
190
+ }
191
+
192
+ .h-datepicker-select-month:focus-visible,
193
+ .h-datepicker-select-year:focus-visible {
194
+ box-shadow: dt('datepicker.date.focus.ring.shadow');
195
+ outline: dt('datepicker.date.focus.ring.width') dt('datepicker.date.focus.ring.style') dt('datepicker.date.focus.ring.color');
196
+ outline-offset: dt('datepicker.date.focus.ring.offset');
197
+ }
198
+
199
+ .h-datepicker-calendar-container {
200
+ display: flex;
201
+ }
202
+
203
+ .h-datepicker-calendar-container .h-datepicker-calendar {
204
+ flex: 1 1 auto;
205
+ border-inline-start: 1px solid dt('datepicker.group.border.color');
206
+ padding-inline-end: dt('datepicker.group.gap');
207
+ padding-inline-start: dt('datepicker.group.gap');
208
+ }
209
+
210
+ .h-datepicker-calendar-container .h-datepicker-calendar:first-child {
211
+ padding-inline-start: 0;
212
+ border-inline-start: 0 none;
213
+ }
214
+
215
+ .h-datepicker-calendar-container .h-datepicker-calendar:last-child {
216
+ padding-inline-end: 0;
217
+ }
218
+
219
+ .h-datepicker-day-view {
220
+ width: 100%;
221
+ border-collapse: collapse;
222
+ font-size: 1rem;
223
+ margin: dt('datepicker.day.view.margin');
224
+ }
225
+
226
+ .h-datepicker-weekday-cell {
227
+ padding: dt('datepicker.week.day.padding');
228
+ }
229
+
230
+ .h-datepicker-weekday {
231
+ font-weight: dt('datepicker.week.day.font.weight');
232
+ color: dt('datepicker.week.day.color');
233
+ }
234
+
235
+ .h-datepicker-day-cell {
236
+ padding: dt('datepicker.date.padding');
237
+ }
238
+
239
+ .h-datepicker-day {
240
+ display: flex;
241
+ justify-content: center;
242
+ align-items: center;
243
+ cursor: pointer;
244
+ margin: 0 auto;
245
+ overflow: hidden;
246
+ position: relative;
247
+ width: dt('datepicker.date.width');
248
+ height: dt('datepicker.date.height');
249
+ border-radius: dt('datepicker.date.border.radius');
250
+ transition:
251
+ background dt('datepicker.transition.duration'),
252
+ color dt('datepicker.transition.duration'),
253
+ border-color dt('datepicker.transition.duration'),
254
+ box-shadow dt('datepicker.transition.duration'),
255
+ outline-color dt('datepicker.transition.duration');
256
+ border: 1px solid transparent;
257
+ outline-color: transparent;
258
+ color: dt('datepicker.date.color');
259
+ }
260
+
261
+ .h-datepicker-day:not(.h-datepicker-day-selected):not(.h-disabled):hover {
262
+ background: dt('datepicker.date.hover.background');
263
+ color: dt('datepicker.date.hover.color');
264
+ }
265
+
266
+ .h-datepicker-day:focus-visible {
267
+ box-shadow: dt('datepicker.date.focus.ring.shadow');
268
+ outline: dt('datepicker.date.focus.ring.width') dt('datepicker.date.focus.ring.style') dt('datepicker.date.focus.ring.color');
269
+ outline-offset: dt('datepicker.date.focus.ring.offset');
270
+ }
271
+
272
+ .h-datepicker-day-selected {
273
+ background: dt('datepicker.date.selected.background');
274
+ color: dt('datepicker.date.selected.color');
275
+ }
276
+
277
+ .h-datepicker-day-selected-range {
278
+ background: dt('datepicker.date.range.selected.background');
279
+ color: dt('datepicker.date.range.selected.color');
280
+ }
281
+
282
+ .h-datepicker-today > .h-datepicker-day {
283
+ background: dt('datepicker.today.background');
284
+ color: dt('datepicker.today.color');
285
+ }
286
+
287
+ .h-datepicker-today > .h-datepicker-day-selected {
288
+ background: dt('datepicker.date.selected.background');
289
+ color: dt('datepicker.date.selected.color');
290
+ }
291
+
292
+ .h-datepicker-today > .h-datepicker-day-selected-range {
293
+ background: dt('datepicker.date.range.selected.background');
294
+ color: dt('datepicker.date.range.selected.color');
295
+ }
296
+
297
+ .h-datepicker-weeknumber {
298
+ text-align: center;
299
+ }
300
+
301
+ .h-datepicker-month-view {
302
+ margin: dt('datepicker.month.view.margin');
303
+ }
304
+
305
+ .h-datepicker-month {
306
+ width: 33.3%;
307
+ display: inline-flex;
308
+ align-items: center;
309
+ justify-content: center;
310
+ cursor: pointer;
311
+ overflow: hidden;
312
+ position: relative;
313
+ padding: dt('datepicker.month.padding');
314
+ transition:
315
+ background dt('datepicker.transition.duration'),
316
+ color dt('datepicker.transition.duration'),
317
+ border-color dt('datepicker.transition.duration'),
318
+ box-shadow dt('datepicker.transition.duration'),
319
+ outline-color dt('datepicker.transition.duration');
320
+ border-radius: dt('datepicker.month.border.radius');
321
+ outline-color: transparent;
322
+ color: dt('datepicker.date.color');
323
+ }
324
+
325
+ .h-datepicker-month:not(.h-disabled):not(.h-datepicker-month-selected):hover {
326
+ color: dt('datepicker.date.hover.color');
327
+ background: dt('datepicker.date.hover.background');
328
+ }
329
+
330
+ .h-datepicker-month-selected {
331
+ color: dt('datepicker.date.selected.color');
332
+ background: dt('datepicker.date.selected.background');
333
+ }
334
+
335
+ .h-datepicker-month:not(.h-disabled):focus-visible {
336
+ box-shadow: dt('datepicker.date.focus.ring.shadow');
337
+ outline: dt('datepicker.date.focus.ring.width') dt('datepicker.date.focus.ring.style') dt('datepicker.date.focus.ring.color');
338
+ outline-offset: dt('datepicker.date.focus.ring.offset');
339
+ }
340
+
341
+ .h-datepicker-year-view {
342
+ margin: dt('datepicker.year.view.margin');
343
+ }
344
+
345
+ .h-datepicker-year {
346
+ width: 50%;
347
+ display: inline-flex;
348
+ align-items: center;
349
+ justify-content: center;
350
+ cursor: pointer;
351
+ overflow: hidden;
352
+ position: relative;
353
+ padding: dt('datepicker.year.padding');
354
+ transition:
355
+ background dt('datepicker.transition.duration'),
356
+ color dt('datepicker.transition.duration'),
357
+ border-color dt('datepicker.transition.duration'),
358
+ box-shadow dt('datepicker.transition.duration'),
359
+ outline-color dt('datepicker.transition.duration');
360
+ border-radius: dt('datepicker.year.border.radius');
361
+ outline-color: transparent;
362
+ color: dt('datepicker.date.color');
363
+ }
364
+
365
+ .h-datepicker-year:not(.h-disabled):not(.h-datepicker-year-selected):hover {
366
+ color: dt('datepicker.date.hover.color');
367
+ background: dt('datepicker.date.hover.background');
368
+ }
369
+
370
+ .h-datepicker-year-selected {
371
+ color: dt('datepicker.date.selected.color');
372
+ background: dt('datepicker.date.selected.background');
373
+ }
374
+
375
+ .h-datepicker-year:not(.h-disabled):focus-visible {
376
+ box-shadow: dt('datepicker.date.focus.ring.shadow');
377
+ outline: dt('datepicker.date.focus.ring.width') dt('datepicker.date.focus.ring.style') dt('datepicker.date.focus.ring.color');
378
+ outline-offset: dt('datepicker.date.focus.ring.offset');
379
+ }
380
+
381
+ .h-datepicker-buttonbar {
382
+ display: flex;
383
+ justify-content: space-between;
384
+ align-items: center;
385
+ padding: dt('datepicker.buttonbar.padding');
386
+ border-block-start: 1px solid dt('datepicker.buttonbar.border.color');
387
+ }
388
+
389
+ .h-datepicker-buttonbar .h-button {
390
+ width: auto;
391
+ }
392
+
393
+ .h-datepicker-time-picker {
394
+ display: flex;
395
+ justify-content: center;
396
+ align-items: center;
397
+ border-block-start: 1px solid dt('datepicker.time.picker.border.color');
398
+ padding: 0;
399
+ gap: dt('datepicker.time.picker.gap');
400
+ }
401
+
402
+ .h-datepicker-calendar-container + .h-datepicker-time-picker {
403
+ padding: dt('datepicker.time.picker.padding');
404
+ }
405
+
406
+ .h-datepicker-time-picker > div {
407
+ display: flex;
408
+ align-items: center;
409
+ flex-direction: column;
410
+ gap: dt('datepicker.time.picker.button.gap');
411
+ }
412
+
413
+ .h-datepicker-time-picker span {
414
+ font-size: 1rem;
415
+ }
416
+
417
+ .h-datepicker-timeonly .h-datepicker-time-picker {
418
+ border-block-start: 0 none;
419
+ }
420
+
421
+ .h-datepicker-time-picker:dir(rtl) {
422
+ flex-direction: row-reverse;
423
+ }
424
+
425
+ .h-datepicker:has(.h-inputtext-sm) .h-datepicker-dropdown {
426
+ width: dt('datepicker.dropdown.sm.width');
427
+ }
428
+
429
+ .h-datepicker:has(.h-inputtext-sm) .h-datepicker-dropdown .h-icon,
430
+ .h-datepicker:has(.h-inputtext-sm) .h-datepicker-input-icon {
431
+ font-size: dt('form.field.sm.font.size');
432
+ width: dt('form.field.sm.font.size');
433
+ height: dt('form.field.sm.font.size');
434
+ }
435
+
436
+ .h-datepicker:has(.h-inputtext-lg) .h-datepicker-dropdown {
437
+ width: dt('datepicker.dropdown.lg.width');
438
+ }
439
+
440
+ .h-datepicker:has(.h-inputtext-lg) .h-datepicker-dropdown .h-icon,
441
+ .h-datepicker:has(.h-inputtext-lg) .h-datepicker-input-icon {
442
+ font-size: dt('form.field.lg.font.size');
443
+ width: dt('form.field.lg.font.size');
444
+ height: dt('form.field.lg.font.size');
445
+ }
446
+
447
+ .h-datepicker-clear-icon {
448
+ position: absolute;
449
+ top: 50%;
450
+ margin-top: -0.5rem;
451
+ cursor: pointer;
452
+ color: dt('form.field.icon.color');
453
+ inset-inline-end: dt('form.field.padding.x');
454
+ }
455
+
456
+ .h-datepicker:has(.h-datepicker-dropdown) .h-datepicker-clear-icon {
457
+ inset-inline-end: calc(dt('datepicker.dropdown.width') + dt('form.field.padding.x'));
458
+ }
459
+
460
+ .h-datepicker:has(.h-datepicker-input-icon-container) .h-datepicker-clear-icon {
461
+ inset-inline-end: calc((dt('form.field.padding.x') * 2) + dt('icon.size'));
462
+ }
463
+
464
+ .h-datepicker:has(.h-datepicker-clear-icon) .h-datepicker-input {
465
+ padding-inline-end: calc((dt('form.field.padding.x') * 2) + dt('icon.size'));
466
+ }
467
+
468
+ .h-datepicker:has(.h-datepicker-input-icon-container):has(.h-datepicker-clear-icon) .h-datepicker-input {
469
+ padding-inline-end: calc((dt('form.field.padding.x') * 3) + calc(dt('icon.size') * 2));
470
+ }
471
+
472
+ .h-inputgroup .h-datepicker-dropdown {
473
+ border-radius: 0;
474
+ }
475
+
476
+ .h-inputgroup > .h-datepicker:last-child:has(.h-datepicker-dropdown) > .h-datepicker-input {
477
+ border-start-end-radius: 0;
478
+ border-end-end-radius: 0;
479
+ }
480
+
481
+ .h-inputgroup > .h-datepicker:last-child .h-datepicker-dropdown {
482
+ border-start-end-radius: dt('datepicker.dropdown.border.radius');
483
+ border-end-end-radius: dt('datepicker.dropdown.border.radius');
484
+ }
485
+ `;
486
+
487
+ const style = /*css*/ `
488
+ ${style$1}
489
+
490
+ /* For Helix */
491
+ .h-datepicker.ng-invalid.ng-dirty .h-inputtext {
492
+ border-color: dt('inputtext.invalid.border.color');
493
+ }
494
+ `;
495
+ const inlineStyles = {
496
+ root: () => ({ position: 'relative' })
497
+ };
498
+ const classes = {
499
+ root: ({ instance }) => [
500
+ 'h-datepicker h-component h-inputwrapper',
501
+ {
502
+ 'h-invalid': instance.invalid(),
503
+ 'h-datepicker-fluid': instance.hasFluid,
504
+ 'h-inputwrapper-filled': instance.$filled(),
505
+ 'h-variant-filled': instance.$variant() === 'filled',
506
+ 'h-inputwrapper-focus': instance.focus || instance.overlayVisible,
507
+ 'h-focus': instance.focus || instance.overlayVisible
508
+ }
509
+ ],
510
+ pcInputText: 'h-datepicker-input',
511
+ dropdown: 'h-datepicker-dropdown',
512
+ inputIconContainer: 'h-datepicker-input-icon-container',
513
+ inputIcon: 'h-datepicker-input-icon',
514
+ panel: ({ instance }) => [
515
+ 'h-datepicker-panel h-component',
516
+ {
517
+ 'h-datepicker-panel h-component': true,
518
+ 'h-datepicker-panel-inline': instance.inline,
519
+ 'h-disabled': instance.$disabled(),
520
+ 'h-datepicker-timeonly': instance.timeOnly
521
+ }
522
+ ],
523
+ calendarContainer: 'h-datepicker-calendar-container',
524
+ calendar: 'h-datepicker-calendar',
525
+ header: 'h-datepicker-header',
526
+ pcPrevButton: 'h-datepicker-prev-button',
527
+ title: 'h-datepicker-title',
528
+ selectMonth: 'h-datepicker-select-month',
529
+ selectYear: 'h-datepicker-select-year',
530
+ decade: 'h-datepicker-decade',
531
+ pcNextButton: 'h-datepicker-next-button',
532
+ dayView: 'h-datepicker-day-view',
533
+ weekHeader: 'h-datepicker-weekheader h-disabled',
534
+ weekNumber: 'h-datepicker-weeknumber',
535
+ weekLabelContainer: 'h-datepicker-weeklabel-container h-disabled',
536
+ weekDayCell: 'h-datepicker-weekday-cell',
537
+ weekDay: 'h-datepicker-weekday',
538
+ dayCell: ({ date }) => [
539
+ 'h-datepicker-day-cell',
540
+ {
541
+ 'h-datepicker-other-month': date.otherMonth,
542
+ 'h-datepicker-today': date.today
543
+ }
544
+ ],
545
+ day: ({ instance, date }) => {
546
+ let selectedDayClass = '';
547
+ if (instance.isRangeSelection() && instance.isSelected(date) && date.selectable) {
548
+ const startDate = instance.value[0];
549
+ const endDate = instance.value[1];
550
+ const isStart = startDate && date.year === startDate.getFullYear() && date.month === startDate.getMonth() && date.day === startDate.getDate();
551
+ const isEnd = endDate && date.year === endDate.getFullYear() && date.month === endDate.getMonth() && date.day === endDate.getDate();
552
+ selectedDayClass = isStart || isEnd ? 'h-datepicker-day-selected' : 'h-datepicker-day-selected-range';
553
+ }
554
+ return {
555
+ 'h-datepicker-day': true,
556
+ 'h-datepicker-day-selected': !instance.isRangeSelection() && instance.isSelected(date) && date.selectable,
557
+ 'h-disabled': instance.$disabled() || !date.selectable,
558
+ [selectedDayClass]: true
559
+ };
560
+ },
561
+ monthView: 'h-datepicker-month-view',
562
+ month: ({ instance, index }) => [
563
+ 'h-datepicker-month',
564
+ {
565
+ 'h-datepicker-month-selected': instance.isMonthSelected(index),
566
+ 'h-disabled': instance.isMonthDisabled(index)
567
+ }
568
+ ],
569
+ yearView: 'h-datepicker-year-view',
570
+ year: ({ instance, year }) => [
571
+ 'h-datepicker-year',
572
+ {
573
+ 'h-datepicker-year-selected': instance.isYearSelected(year),
574
+ 'h-disabled': instance.isYearDisabled(year)
575
+ }
576
+ ],
577
+ timePicker: 'h-datepicker-time-picker',
578
+ hourPicker: 'h-datepicker-hour-picker',
579
+ pcIncrementButton: 'h-datepicker-increment-button',
580
+ pcDecrementButton: 'h-datepicker-decrement-button',
581
+ separator: 'h-datepicker-separator',
582
+ minutePicker: 'h-datepicker-minute-picker',
583
+ secondPicker: 'h-datepicker-second-picker',
584
+ ampmPicker: 'h-datepicker-ampm-picker',
585
+ buttonbar: 'h-datepicker-buttonbar',
586
+ pcTodayButton: 'h-datepicker-today-button',
587
+ pcClearButton: 'h-datepicker-clear-button',
588
+ clearIcon: 'h-datepicker-clear-icon'
589
+ };
590
+ class DatePickerStyle extends BaseStyle {
591
+ name = 'datepicker';
592
+ style = style;
593
+ classes = classes;
594
+ inlineStyles = inlineStyles;
595
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: DatePickerStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
596
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: DatePickerStyle });
597
+ }
598
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: DatePickerStyle, decorators: [{
599
+ type: Injectable
600
+ }] });
601
+ /**
602
+ *
603
+ * DatePicker is a form component to work with dates.
604
+ *
605
+ * [Live Demo](https://www.primeng.org/datepicker/)
606
+ *
607
+ * @module datepickerstyle
608
+ *
609
+ */
610
+ var DatePickerClasses;
611
+ (function (DatePickerClasses) {
612
+ /**
613
+ * Class name of the root element
614
+ */
615
+ DatePickerClasses["root"] = "h-datepicker";
616
+ /**
617
+ * Class name of the input element
618
+ */
619
+ DatePickerClasses["pcInputText"] = "h-datepicker-input";
620
+ /**
621
+ * Class name of the dropdown element
622
+ */
623
+ DatePickerClasses["dropdown"] = "h-datepicker-dropdown";
624
+ /**
625
+ * Class name of the input icon container element
626
+ */
627
+ DatePickerClasses["inputIconContainer"] = "h-datepicker-input-icon-container";
628
+ /**
629
+ * Class name of the input icon element
630
+ */
631
+ DatePickerClasses["inputIcon"] = "h-datepicker-input-icon";
632
+ /**
633
+ * Class name of the panel element
634
+ */
635
+ DatePickerClasses["panel"] = "h-datepicker-panel";
636
+ /**
637
+ * Class name of the calendar container element
638
+ */
639
+ DatePickerClasses["calendarContainer"] = "h-datepicker-calendar-container";
640
+ /**
641
+ * Class name of the calendar element
642
+ */
643
+ DatePickerClasses["calendar"] = "h-datepicker-calendar";
644
+ /**
645
+ * Class name of the header element
646
+ */
647
+ DatePickerClasses["header"] = "h-datepicker-header";
648
+ /**
649
+ * Class name of the previous button element
650
+ */
651
+ DatePickerClasses["pcPrevButton"] = "h-datepicker-prev-button";
652
+ /**
653
+ * Class name of the title element
654
+ */
655
+ DatePickerClasses["title"] = "h-datepicker-title";
656
+ /**
657
+ * Class name of the select month element
658
+ */
659
+ DatePickerClasses["selectMonth"] = "h-datepicker-select-month";
660
+ /**
661
+ * Class name of the select year element
662
+ */
663
+ DatePickerClasses["selectYear"] = "h-datepicker-select-year";
664
+ /**
665
+ * Class name of the decade element
666
+ */
667
+ DatePickerClasses["decade"] = "h-datepicker-decade";
668
+ /**
669
+ * Class name of the next button element
670
+ */
671
+ DatePickerClasses["pcNextButton"] = "h-datepicker-next-button";
672
+ /**
673
+ * Class name of the day view element
674
+ */
675
+ DatePickerClasses["dayView"] = "h-datepicker-day-view";
676
+ /**
677
+ * Class name of the week header element
678
+ */
679
+ DatePickerClasses["weekHeader"] = "h-datepicker-weekheader";
680
+ /**
681
+ * Class name of the week number element
682
+ */
683
+ DatePickerClasses["weekNumber"] = "h-datepicker-weeknumber";
684
+ /**
685
+ * Class name of the week label container element
686
+ */
687
+ DatePickerClasses["weekLabelContainer"] = "h-datepicker-weeklabel-container";
688
+ /**
689
+ * Class name of the week day cell element
690
+ */
691
+ DatePickerClasses["weekDayCell"] = "h-datepicker-weekday-cell";
692
+ /**
693
+ * Class name of the week day element
694
+ */
695
+ DatePickerClasses["weekDay"] = "h-datepicker-weekday";
696
+ /**
697
+ * Class name of the day cell element
698
+ */
699
+ DatePickerClasses["dayCell"] = "h-datepicker-day-cell";
700
+ /**
701
+ * Class name of the day element
702
+ */
703
+ DatePickerClasses["day"] = "h-datepicker-day";
704
+ /**
705
+ * Class name of the month view element
706
+ */
707
+ DatePickerClasses["monthView"] = "h-datepicker-month-view";
708
+ /**
709
+ * Class name of the month element
710
+ */
711
+ DatePickerClasses["month"] = "h-datepicker-month";
712
+ /**
713
+ * Class name of the year view element
714
+ */
715
+ DatePickerClasses["yearView"] = "h-datepicker-year-view";
716
+ /**
717
+ * Class name of the year element
718
+ */
719
+ DatePickerClasses["year"] = "h-datepicker-year";
720
+ /**
721
+ * Class name of the time picker element
722
+ */
723
+ DatePickerClasses["timePicker"] = "h-datepicker-time-picker";
724
+ /**
725
+ * Class name of the hour picker element
726
+ */
727
+ DatePickerClasses["hourPicker"] = "h-datepicker-hour-picker";
728
+ /**
729
+ * Class name of the increment button element
730
+ */
731
+ DatePickerClasses["pcIncrementButton"] = "h-datepicker-increment-button";
732
+ /**
733
+ * Class name of the decrement button element
734
+ */
735
+ DatePickerClasses["pcDecrementButton"] = "h-datepicker-decrement-button";
736
+ /**
737
+ * Class name of the separator element
738
+ */
739
+ DatePickerClasses["separator"] = "h-datepicker-separator";
740
+ /**
741
+ * Class name of the minute picker element
742
+ */
743
+ DatePickerClasses["minutePicker"] = "h-datepicker-minute-picker";
744
+ /**
745
+ * Class name of the second picker element
746
+ */
747
+ DatePickerClasses["secondPicker"] = "h-datepicker-second-picker";
748
+ /**
749
+ * Class name of the ampm picker element
750
+ */
751
+ DatePickerClasses["ampmPicker"] = "h-datepicker-ampm-picker";
752
+ /**
753
+ * Class name of the buttonbar element
754
+ */
755
+ DatePickerClasses["buttonbar"] = "h-datepicker-buttonbar";
756
+ /**
757
+ * Class name of the today button element
758
+ */
759
+ DatePickerClasses["pcTodayButton"] = "h-datepicker-today-button";
760
+ /**
761
+ * Class name of the clear button element
762
+ */
763
+ DatePickerClasses["pcClearButton"] = "h-datepicker-clear-button";
764
+ /**
765
+ * Class name of the clear icon
766
+ */
767
+ DatePickerClasses["clearIcon"] = "h-datepicker-clear-icon";
768
+ })(DatePickerClasses || (DatePickerClasses = {}));
769
+
770
+ const DATEPICKER_VALUE_ACCESSOR = {
771
+ provide: NG_VALUE_ACCESSOR,
772
+ useExisting: forwardRef(() => DatePicker),
773
+ multi: true
774
+ };
775
+ const DATEPICKER_INSTANCE = new InjectionToken('DATEPICKER_INSTANCE');
776
+ /**
777
+ * DatePicker is a form component to work with dates.
778
+ * @group Components
779
+ */
780
+ class DatePicker extends BaseInput {
781
+ zone;
782
+ overlayService;
783
+ componentName = 'DatePicker';
784
+ bindDirectiveInstance = inject(Bind, { self: true });
785
+ $pcDatePicker = inject(DATEPICKER_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;
786
+ iconDisplay = input('button', /* @ts-ignore */
787
+ ...(ngDevMode ? [{ debugName: "iconDisplay" }] : /* istanbul ignore next */ []));
788
+ /**
789
+ * Style class of the component.
790
+ * @deprecated since v20.0.0, use `class` instead.
791
+ * @group Props
792
+ */
793
+ styleClass = input(/* @ts-ignore */
794
+ ...(ngDevMode ? [undefined, { debugName: "styleClass" }] : /* istanbul ignore next */ []));
795
+ /**
796
+ * Inline style of the input field.
797
+ * @group Props
798
+ */
799
+ inputStyle = input(/* @ts-ignore */
800
+ ...(ngDevMode ? [undefined, { debugName: "inputStyle" }] : /* istanbul ignore next */ []));
801
+ /**
802
+ * Identifier of the focus input to match a label defined for the component.
803
+ * @group Props
804
+ */
805
+ inputId = input(/* @ts-ignore */
806
+ ...(ngDevMode ? [undefined, { debugName: "inputId" }] : /* istanbul ignore next */ []));
807
+ /**
808
+ * Style class of the input field.
809
+ * @group Props
810
+ */
811
+ inputStyleClass = input(/* @ts-ignore */
812
+ ...(ngDevMode ? [undefined, { debugName: "inputStyleClass" }] : /* istanbul ignore next */ []));
813
+ /**
814
+ * Placeholder text for the input.
815
+ * @group Props
816
+ */
817
+ placeholder = input(/* @ts-ignore */
818
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
819
+ /**
820
+ * Establishes relationships between the component and label(s) where its value should be one or more element IDs.
821
+ * @group Props
822
+ */
823
+ ariaLabelledBy = input(/* @ts-ignore */
824
+ ...(ngDevMode ? [undefined, { debugName: "ariaLabelledBy" }] : /* istanbul ignore next */ []));
825
+ /**
826
+ * Defines a string that labels the input for accessibility.
827
+ * @group Props
828
+ */
829
+ ariaLabel = input(/* @ts-ignore */
830
+ ...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
831
+ /**
832
+ * Defines a string that labels the icon button for accessibility.
833
+ * @group Props
834
+ */
835
+ iconAriaLabel = input(/* @ts-ignore */
836
+ ...(ngDevMode ? [undefined, { debugName: "iconAriaLabel" }] : /* istanbul ignore next */ []));
837
+ /**
838
+ * Format of the date which can also be defined at locale settings.
839
+ * @group Props
840
+ */
841
+ dateFormat = input(/* @ts-ignore */
842
+ ...(ngDevMode ? [undefined, { debugName: "dateFormat" }] : /* istanbul ignore next */ []));
843
+ /**
844
+ * Separator for multiple selection mode.
845
+ * @group Props
846
+ */
847
+ multipleSeparator = input(',', /* @ts-ignore */
848
+ ...(ngDevMode ? [{ debugName: "multipleSeparator" }] : /* istanbul ignore next */ []));
849
+ /**
850
+ * Separator for joining start and end dates on range selection mode.
851
+ * @group Props
852
+ */
853
+ rangeSeparator = input('-', /* @ts-ignore */
854
+ ...(ngDevMode ? [{ debugName: "rangeSeparator" }] : /* istanbul ignore next */ []));
855
+ /**
856
+ * When enabled, displays the datepicker as inline. Default is false for popup mode.
857
+ * @group Props
858
+ */
859
+ inline = input(false, { ...(ngDevMode ? { debugName: "inline" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
860
+ /**
861
+ * Whether to display dates in other months (non-selectable) at the start or end of the current month. To make these days selectable use the selectOtherMonths option.
862
+ * @group Props
863
+ */
864
+ showOtherMonths = input(true, { ...(ngDevMode ? { debugName: "showOtherMonths" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
865
+ /**
866
+ * Whether days in other months shown before or after the current month are selectable. This only applies if the showOtherMonths option is set to true.
867
+ * @group Props
868
+ */
869
+ selectOtherMonths = input(undefined, { ...(ngDevMode ? { debugName: "selectOtherMonths" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
870
+ /**
871
+ * When enabled, displays a button with icon next to input.
872
+ * @group Props
873
+ */
874
+ showIcon = input(undefined, { ...(ngDevMode ? { debugName: "showIcon" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
875
+ /**
876
+ * Icon of the datepicker button.
877
+ * @group Props
878
+ */
879
+ icon = input(/* @ts-ignore */
880
+ ...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
881
+ /**
882
+ * When specified, prevents entering the date manually with keyboard.
883
+ * @group Props
884
+ */
885
+ readonlyInput = input(undefined, { ...(ngDevMode ? { debugName: "readonlyInput" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
886
+ /**
887
+ * The cutoff year for determining the century for a date.
888
+ * @group Props
889
+ */
890
+ shortYearCutoff = input('+10', /* @ts-ignore */
891
+ ...(ngDevMode ? [{ debugName: "shortYearCutoff" }] : /* istanbul ignore next */ []));
892
+ /**
893
+ * Specifies 12 or 24 hour format.
894
+ * @group Props
895
+ */
896
+ hourFormat = input('24', /* @ts-ignore */
897
+ ...(ngDevMode ? [{ debugName: "hourFormat" }] : /* istanbul ignore next */ []));
898
+ /**
899
+ * Whether to display timepicker only.
900
+ * @group Props
901
+ */
902
+ timeOnly = input(undefined, { ...(ngDevMode ? { debugName: "timeOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
903
+ /**
904
+ * Hours to change per step.
905
+ * @group Props
906
+ */
907
+ stepHour = input(1, { ...(ngDevMode ? { debugName: "stepHour" } : /* istanbul ignore next */ {}), transform: numberAttribute });
908
+ /**
909
+ * Minutes to change per step.
910
+ * @group Props
911
+ */
912
+ stepMinute = input(1, { ...(ngDevMode ? { debugName: "stepMinute" } : /* istanbul ignore next */ {}), transform: numberAttribute });
913
+ /**
914
+ * Seconds to change per step.
915
+ * @group Props
916
+ */
917
+ stepSecond = input(1, { ...(ngDevMode ? { debugName: "stepSecond" } : /* istanbul ignore next */ {}), transform: numberAttribute });
918
+ /**
919
+ * Whether to show the seconds in time picker.
920
+ * @group Props
921
+ */
922
+ showSeconds = input(false, { ...(ngDevMode ? { debugName: "showSeconds" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
923
+ /**
924
+ * When disabled, datepicker will not be visible with input focus.
925
+ * @group Props
926
+ */
927
+ showOnFocus = input(true, { ...(ngDevMode ? { debugName: "showOnFocus" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
928
+ /**
929
+ * When enabled, datepicker will show week numbers.
930
+ * @group Props
931
+ */
932
+ showWeek = input(false, { ...(ngDevMode ? { debugName: "showWeek" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
933
+ /**
934
+ * When enabled, datepicker will start week numbers from first day of the year.
935
+ * @group Props
936
+ */
937
+ startWeekFromFirstDayOfYear = input(false, /* @ts-ignore */
938
+ ...(ngDevMode ? [{ debugName: "startWeekFromFirstDayOfYear" }] : /* istanbul ignore next */ []));
939
+ /**
940
+ * When enabled, a clear icon is displayed to clear the value.
941
+ * @group Props
942
+ */
943
+ showClear = input(false, { ...(ngDevMode ? { debugName: "showClear" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
944
+ /**
945
+ * Type of the value to write back to ngModel, default is date and alternative is string.
946
+ * @group Props
947
+ */
948
+ dataType = input('date', /* @ts-ignore */
949
+ ...(ngDevMode ? [{ debugName: "dataType" }] : /* istanbul ignore next */ []));
950
+ /**
951
+ * Defines the quantity of the selection, valid values are "single", "multiple" and "range".
952
+ * @group Props
953
+ */
954
+ selectionMode = input('single', /* @ts-ignore */
955
+ ...(ngDevMode ? [{ debugName: "selectionMode" }] : /* istanbul ignore next */ []));
956
+ /**
957
+ * Maximum number of selectable dates in multiple mode.
958
+ * @group Props
959
+ */
960
+ maxDateCount = input(undefined, { ...(ngDevMode ? { debugName: "maxDateCount" } : /* istanbul ignore next */ {}), transform: numberAttribute });
961
+ /**
962
+ * Whether to display today and clear buttons at the footer
963
+ * @group Props
964
+ */
965
+ showButtonBar = input(undefined, { ...(ngDevMode ? { debugName: "showButtonBar" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
966
+ /**
967
+ * Style class of the today button.
968
+ * @group Props
969
+ */
970
+ todayButtonStyleClass = input(/* @ts-ignore */
971
+ ...(ngDevMode ? [undefined, { debugName: "todayButtonStyleClass" }] : /* istanbul ignore next */ []));
972
+ /**
973
+ * Style class of the clear button.
974
+ * @group Props
975
+ */
976
+ clearButtonStyleClass = input(/* @ts-ignore */
977
+ ...(ngDevMode ? [undefined, { debugName: "clearButtonStyleClass" }] : /* istanbul ignore next */ []));
978
+ /**
979
+ * When present, it specifies that the component should automatically get focus on load.
980
+ * @group Props
981
+ */
982
+ autofocus = input(undefined, { ...(ngDevMode ? { debugName: "autofocus" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
983
+ /**
984
+ * Whether to automatically manage layering.
985
+ * @group Props
986
+ */
987
+ autoZIndex = input(true, { ...(ngDevMode ? { debugName: "autoZIndex" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
988
+ /**
989
+ * Base zIndex value to use in layering.
990
+ * @group Props
991
+ */
992
+ baseZIndex = input(0, { ...(ngDevMode ? { debugName: "baseZIndex" } : /* istanbul ignore next */ {}), transform: numberAttribute });
993
+ /**
994
+ * Style class of the datetimepicker container element.
995
+ * @group Props
996
+ */
997
+ panelStyleClass = input(/* @ts-ignore */
998
+ ...(ngDevMode ? [undefined, { debugName: "panelStyleClass" }] : /* istanbul ignore next */ []));
999
+ /**
1000
+ * Inline style of the datetimepicker container element.
1001
+ * @group Props
1002
+ */
1003
+ panelStyle = input(/* @ts-ignore */
1004
+ ...(ngDevMode ? [undefined, { debugName: "panelStyle" }] : /* istanbul ignore next */ []));
1005
+ /**
1006
+ * Keep invalid value when input blur.
1007
+ * @group Props
1008
+ */
1009
+ keepInvalid = input(false, { ...(ngDevMode ? { debugName: "keepInvalid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1010
+ /**
1011
+ * Whether to hide the overlay on date selection.
1012
+ * @group Props
1013
+ */
1014
+ hideOnDateTimeSelect = input(true, { ...(ngDevMode ? { debugName: "hideOnDateTimeSelect" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1015
+ /**
1016
+ * When enabled, datepicker overlay is displayed as optimized for touch devices.
1017
+ * @group Props
1018
+ */
1019
+ touchUI = input(undefined, { ...(ngDevMode ? { debugName: "touchUI" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1020
+ /**
1021
+ * Separator of time selector.
1022
+ * @group Props
1023
+ */
1024
+ timeSeparator = input(':', /* @ts-ignore */
1025
+ ...(ngDevMode ? [{ debugName: "timeSeparator" }] : /* istanbul ignore next */ []));
1026
+ /**
1027
+ * When enabled, can only focus on elements inside the datepicker.
1028
+ * @group Props
1029
+ */
1030
+ focusTrap = input(true, { ...(ngDevMode ? { debugName: "focusTrap" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1031
+ /**
1032
+ * Transition options of the show animation.
1033
+ * @group Props
1034
+ * @deprecated since v21.0.0, use `motionOptions` instead.
1035
+ */
1036
+ showTransitionOptions = input('.12s cubic-bezier(0, 0, 0.2, 1)', /* @ts-ignore */
1037
+ ...(ngDevMode ? [{ debugName: "showTransitionOptions" }] : /* istanbul ignore next */ []));
1038
+ /**
1039
+ * Transition options of the hide animation.
1040
+ * @group Props
1041
+ * @deprecated since v21.0.0, use `motionOptions` instead.
1042
+ */
1043
+ hideTransitionOptions = input('.1s linear', /* @ts-ignore */
1044
+ ...(ngDevMode ? [{ debugName: "hideTransitionOptions" }] : /* istanbul ignore next */ []));
1045
+ /**
1046
+ * Index of the element in tabbing order.
1047
+ * @group Props
1048
+ */
1049
+ tabindex = input(undefined, { ...(ngDevMode ? { debugName: "tabindex" } : /* istanbul ignore next */ {}), transform: numberAttribute });
1050
+ /**
1051
+ * The minimum selectable date.
1052
+ * @group Props
1053
+ */
1054
+ minDate = input(/* @ts-ignore */
1055
+ ...(ngDevMode ? [undefined, { debugName: "minDate" }] : /* istanbul ignore next */ []));
1056
+ /**
1057
+ * The maximum selectable date.
1058
+ * @group Props
1059
+ */
1060
+ maxDate = input(/* @ts-ignore */
1061
+ ...(ngDevMode ? [undefined, { debugName: "maxDate" }] : /* istanbul ignore next */ []));
1062
+ /**
1063
+ * Array with dates that should be disabled (not selectable).
1064
+ * @group Props
1065
+ */
1066
+ disabledDates = input(/* @ts-ignore */
1067
+ ...(ngDevMode ? [undefined, { debugName: "disabledDates" }] : /* istanbul ignore next */ []));
1068
+ /**
1069
+ * Array with weekday numbers that should be disabled (not selectable).
1070
+ * @group Props
1071
+ */
1072
+ disabledDays = input(/* @ts-ignore */
1073
+ ...(ngDevMode ? [undefined, { debugName: "disabledDays" }] : /* istanbul ignore next */ []));
1074
+ /**
1075
+ * Whether to display timepicker.
1076
+ * @group Props
1077
+ */
1078
+ showTime = input(undefined, { ...(ngDevMode ? { debugName: "showTime" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1079
+ /**
1080
+ * An array of options for responsive design.
1081
+ * @group Props
1082
+ */
1083
+ responsiveOptions = input(/* @ts-ignore */
1084
+ ...(ngDevMode ? [undefined, { debugName: "responsiveOptions" }] : /* istanbul ignore next */ []));
1085
+ /**
1086
+ * Number of months to display.
1087
+ * @group Props
1088
+ */
1089
+ numberOfMonths = input(1, /* @ts-ignore */
1090
+ ...(ngDevMode ? [{ debugName: "numberOfMonths" }] : /* istanbul ignore next */ []));
1091
+ /**
1092
+ * Defines the first of the week for various date calculations.
1093
+ * @group Props
1094
+ */
1095
+ firstDayOfWeek = input(/* @ts-ignore */
1096
+ ...(ngDevMode ? [undefined, { debugName: "firstDayOfWeek" }] : /* istanbul ignore next */ []));
1097
+ /**
1098
+ * Type of view to display, valid values are "date" for datepicker and "month" for month picker.
1099
+ * @group Props
1100
+ */
1101
+ view = input('date', /* @ts-ignore */
1102
+ ...(ngDevMode ? [{ debugName: "view" }] : /* istanbul ignore next */ []));
1103
+ /**
1104
+ * Set the date to highlight on first opening if the field is blank.
1105
+ * @group Props
1106
+ */
1107
+ defaultDate = input(undefined, /* @ts-ignore */
1108
+ ...(ngDevMode ? [{ debugName: "defaultDate" }] : /* istanbul ignore next */ []));
1109
+ /**
1110
+ * Target element to attach the overlay, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name).
1111
+ * @defaultValue 'self'
1112
+ * @group Props
1113
+ */
1114
+ appendTo = input(undefined, /* @ts-ignore */
1115
+ ...(ngDevMode ? [{ debugName: "appendTo" }] : /* istanbul ignore next */ []));
1116
+ /**
1117
+ * The motion options.
1118
+ * @group Props
1119
+ */
1120
+ motionOptions = input(undefined, /* @ts-ignore */
1121
+ ...(ngDevMode ? [{ debugName: "motionOptions" }] : /* istanbul ignore next */ []));
1122
+ computedMotionOptions = computed(() => {
1123
+ return {
1124
+ ...this.ptm('motion'),
1125
+ ...this.motionOptions()
1126
+ };
1127
+ }, /* @ts-ignore */
1128
+ ...(ngDevMode ? [{ debugName: "computedMotionOptions" }] : /* istanbul ignore next */ []));
1129
+ /**
1130
+ * Callback to invoke on focus of input field.
1131
+ * @param {Event} event - browser event.
1132
+ * @group Emits
1133
+ */
1134
+ onFocus = output();
1135
+ /**
1136
+ * Callback to invoke on blur of input field.
1137
+ * @param {Event} event - browser event.
1138
+ * @group Emits
1139
+ */
1140
+ onBlur = output();
1141
+ /**
1142
+ * Callback to invoke when date panel closed.
1143
+ * @param {HTMLDivElement} element - The element being transitioned/animated.
1144
+ * @group Emits
1145
+ */
1146
+ onClose = output();
1147
+ /**
1148
+ * Callback to invoke on date select.
1149
+ * @param {Date} date - date value.
1150
+ * @group Emits
1151
+ */
1152
+ onSelect = output();
1153
+ /**
1154
+ * Callback to invoke when input field cleared.
1155
+ * @group Emits
1156
+ */
1157
+ onClear = output();
1158
+ /**
1159
+ * Callback to invoke when input field is being typed.
1160
+ * @param {Event} event - browser event
1161
+ * @group Emits
1162
+ */
1163
+ onInput = output();
1164
+ /**
1165
+ * Callback to invoke when today button is clicked.
1166
+ * @param {Date} date - today as a date instance.
1167
+ * @group Emits
1168
+ */
1169
+ onTodayClick = output();
1170
+ /**
1171
+ * Callback to invoke when clear button is clicked.
1172
+ * @param {Event} event - browser event.
1173
+ * @group Emits
1174
+ */
1175
+ onClearClick = output();
1176
+ /**
1177
+ * Callback to invoke when a month is changed using the navigators.
1178
+ * @param {DatePickerMonthChangeEvent} event - custom month change event.
1179
+ * @group Emits
1180
+ */
1181
+ onMonthChange = output();
1182
+ /**
1183
+ * Callback to invoke when a year is changed using the navigators.
1184
+ * @param {DatePickerYearChangeEvent} event - custom year change event.
1185
+ * @group Emits
1186
+ */
1187
+ onYearChange = output();
1188
+ /**
1189
+ * Callback to invoke when clicked outside of the date panel.
1190
+ * @group Emits
1191
+ */
1192
+ onClickOutside = output();
1193
+ /**
1194
+ * Callback to invoke when datepicker panel is shown.
1195
+ * @param {HTMLDivElement} element - The element being transitioned/animated.
1196
+ * @group Emits
1197
+ */
1198
+ onShow = output();
1199
+ inputfieldViewChild = viewChild('inputfield', /* @ts-ignore */
1200
+ ...(ngDevMode ? [{ debugName: "inputfieldViewChild" }] : /* istanbul ignore next */ []));
1201
+ contentViewChild = viewChild('contentWrapper', /* @ts-ignore */
1202
+ ...(ngDevMode ? [{ debugName: "contentViewChild" }] : /* istanbul ignore next */ []));
1203
+ _componentStyle = inject(DatePickerStyle);
1204
+ value;
1205
+ dates;
1206
+ months;
1207
+ weekDays;
1208
+ currentMonth;
1209
+ currentYear;
1210
+ currentHour;
1211
+ currentMinute;
1212
+ currentSecond;
1213
+ p;
1214
+ pm;
1215
+ mask;
1216
+ maskClickListener;
1217
+ overlay;
1218
+ responsiveStyleElement;
1219
+ overlayVisible;
1220
+ overlayMinWidth;
1221
+ $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo(), /* @ts-ignore */
1222
+ ...(ngDevMode ? [{ debugName: "$appendTo" }] : /* istanbul ignore next */ []));
1223
+ calendarElement;
1224
+ timePickerTimer;
1225
+ documentClickListener;
1226
+ animationEndListener;
1227
+ ticksTo1970;
1228
+ yearOptions;
1229
+ focus;
1230
+ isKeydown;
1231
+ _yearRange;
1232
+ preventDocumentListener;
1233
+ dayClass(date) {
1234
+ return this._componentStyle.classes.day({ instance: this, date: date });
1235
+ }
1236
+ /**
1237
+ * Custom template for date cells.
1238
+ * @param {DatePickerDateTemplateContext} context - date template context.
1239
+ * @group Templates
1240
+ */
1241
+ dateTemplate = contentChild('date', { ...(ngDevMode ? { debugName: "dateTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1242
+ /**
1243
+ * Custom template for header section.
1244
+ * @group Templates
1245
+ */
1246
+ headerTemplate = contentChild('header', { ...(ngDevMode ? { debugName: "headerTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1247
+ /**
1248
+ * Custom template for footer section.
1249
+ * @group Templates
1250
+ */
1251
+ footerTemplate = contentChild('footer', { ...(ngDevMode ? { debugName: "footerTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1252
+ /**
1253
+ * Custom template for disabled date cells.
1254
+ * @param {DatePickerDisabledDateTemplateContext} context - disabled date template context.
1255
+ * @group Templates
1256
+ */
1257
+ disabledDateTemplate = contentChild('disabledDate', { ...(ngDevMode ? { debugName: "disabledDateTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1258
+ /**
1259
+ * Custom template for decade view.
1260
+ * @param {DatePickerDecadeTemplateContext} context - decade template context.
1261
+ * @group Templates
1262
+ */
1263
+ decadeTemplate = contentChild('decade', { ...(ngDevMode ? { debugName: "decadeTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1264
+ /**
1265
+ * Custom template for previous month icon.
1266
+ * @group Templates
1267
+ */
1268
+ previousIconTemplate = contentChild('previousicon', { ...(ngDevMode ? { debugName: "previousIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1269
+ /**
1270
+ * Custom template for next month icon.
1271
+ * @group Templates
1272
+ */
1273
+ nextIconTemplate = contentChild('nexticon', { ...(ngDevMode ? { debugName: "nextIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1274
+ /**
1275
+ * Custom template for trigger icon.
1276
+ * @group Templates
1277
+ */
1278
+ triggerIconTemplate = contentChild('triggericon', { ...(ngDevMode ? { debugName: "triggerIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1279
+ /**
1280
+ * Custom template for clear icon.
1281
+ * @group Templates
1282
+ */
1283
+ clearIconTemplate = contentChild('clearicon', { ...(ngDevMode ? { debugName: "clearIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1284
+ /**
1285
+ * Custom template for decrement icon.
1286
+ * @group Templates
1287
+ */
1288
+ decrementIconTemplate = contentChild('decrementicon', { ...(ngDevMode ? { debugName: "decrementIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1289
+ /**
1290
+ * Custom template for increment icon.
1291
+ * @group Templates
1292
+ */
1293
+ incrementIconTemplate = contentChild('incrementicon', { ...(ngDevMode ? { debugName: "incrementIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1294
+ /**
1295
+ * Custom template for input icon.
1296
+ * @param {DatePickerInputIconTemplateContext} context - input icon template context.
1297
+ * @group Templates
1298
+ */
1299
+ inputIconTemplate = contentChild('inputicon', { ...(ngDevMode ? { debugName: "inputIconTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1300
+ /**
1301
+ * Custom template for button bar.
1302
+ * @param {DatePickerButtonBarTemplateContext} context - button bar template context.
1303
+ * @group Templates
1304
+ */
1305
+ buttonBarTemplate = contentChild('buttonbar', { ...(ngDevMode ? { debugName: "buttonBarTemplate" } : /* istanbul ignore next */ {}), descendants: false });
1306
+ _dateTemplate;
1307
+ _headerTemplate;
1308
+ _footerTemplate;
1309
+ _disabledDateTemplate;
1310
+ _decadeTemplate;
1311
+ _previousIconTemplate;
1312
+ _nextIconTemplate;
1313
+ _triggerIconTemplate;
1314
+ _clearIconTemplate;
1315
+ _decrementIconTemplate;
1316
+ _incrementIconTemplate;
1317
+ _inputIconTemplate;
1318
+ _buttonBarTemplate;
1319
+ selectElement;
1320
+ todayElement;
1321
+ focusElement;
1322
+ scrollHandler;
1323
+ documentResizeListener;
1324
+ navigationState = null;
1325
+ isMonthNavigate;
1326
+ initialized;
1327
+ translationSubscription;
1328
+ _locale;
1329
+ currentView;
1330
+ attributeSelector;
1331
+ panelId;
1332
+ preventFocus;
1333
+ _focusKey = null;
1334
+ window;
1335
+ get locale() {
1336
+ return this._locale;
1337
+ }
1338
+ get iconButtonAriaLabel() {
1339
+ const iconAriaLabel = this.iconAriaLabel();
1340
+ return iconAriaLabel ? iconAriaLabel : this.getTranslation('chooseDate');
1341
+ }
1342
+ get prevIconAriaLabel() {
1343
+ return this.currentView === 'year' ? this.getTranslation('prevDecade') : this.currentView === 'month' ? this.getTranslation('prevYear') : this.getTranslation('prevMonth');
1344
+ }
1345
+ get nextIconAriaLabel() {
1346
+ return this.currentView === 'year' ? this.getTranslation('nextDecade') : this.currentView === 'month' ? this.getTranslation('nextYear') : this.getTranslation('nextMonth');
1347
+ }
1348
+ constructor(zone, overlayService) {
1349
+ super();
1350
+ this.zone = zone;
1351
+ this.overlayService = overlayService;
1352
+ this.window = this.document.defaultView;
1353
+ // Mirrors the former `minDate` setter: recreate the visible months when the min date changes.
1354
+ effect(() => {
1355
+ this.minDate();
1356
+ if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {
1357
+ this.createMonths(this.currentMonth, this.currentYear);
1358
+ }
1359
+ });
1360
+ // Mirrors the former `maxDate` setter: recreate the visible months when the max date changes.
1361
+ effect(() => {
1362
+ this.maxDate();
1363
+ if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {
1364
+ this.createMonths(this.currentMonth, this.currentYear);
1365
+ }
1366
+ });
1367
+ // Mirrors the former `disabledDates` setter: recreate the visible months when the disabled dates change.
1368
+ effect(() => {
1369
+ this.disabledDates();
1370
+ if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {
1371
+ this.createMonths(this.currentMonth, this.currentYear);
1372
+ }
1373
+ });
1374
+ // Mirrors the former `disabledDays` setter: recreate the visible months when the disabled days change.
1375
+ effect(() => {
1376
+ this.disabledDays();
1377
+ if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {
1378
+ this.createMonths(this.currentMonth, this.currentYear);
1379
+ }
1380
+ });
1381
+ // Mirrors the former `showTime` setter.
1382
+ effect(() => {
1383
+ this.showTime();
1384
+ if (this.currentHour === undefined) {
1385
+ this.initTime(this.value || new Date());
1386
+ }
1387
+ this.updateInputfield();
1388
+ });
1389
+ // Mirrors the former `responsiveOptions` setter.
1390
+ effect(() => {
1391
+ this.responsiveOptions();
1392
+ this.destroyResponsiveStyleElement();
1393
+ this.createResponsiveStyle();
1394
+ });
1395
+ // Mirrors the former `numberOfMonths` setter.
1396
+ effect(() => {
1397
+ this.numberOfMonths();
1398
+ this.destroyResponsiveStyleElement();
1399
+ this.createResponsiveStyle();
1400
+ });
1401
+ // Mirrors the former `firstDayOfWeek` setter.
1402
+ effect(() => {
1403
+ this.firstDayOfWeek();
1404
+ this.createWeekDays();
1405
+ });
1406
+ // Mirrors the former `view` setter.
1407
+ effect(() => {
1408
+ this.currentView = this.view();
1409
+ });
1410
+ // Mirrors the former `defaultDate` setter.
1411
+ effect(() => {
1412
+ const defaultDate = this.defaultDate();
1413
+ if (this.initialized) {
1414
+ const date = defaultDate || new Date();
1415
+ this.currentMonth = date.getMonth();
1416
+ this.currentYear = date.getFullYear();
1417
+ this.initTime(date);
1418
+ this.createMonths(this.currentMonth, this.currentYear);
1419
+ }
1420
+ });
1421
+ // Mirrors the former `dateFormat` setter.
1422
+ effect(() => {
1423
+ this.dateFormat();
1424
+ if (this.initialized) {
1425
+ this.updateInputfield();
1426
+ }
1427
+ });
1428
+ // Mirrors the former `hourFormat` setter.
1429
+ effect(() => {
1430
+ this.hourFormat();
1431
+ if (this.initialized) {
1432
+ this.updateInputfield();
1433
+ }
1434
+ });
1435
+ // Mirrors the former contentWrapper view-query setter.
1436
+ effect(() => {
1437
+ const content = this.contentViewChild();
1438
+ if (content && this.overlay) {
1439
+ if (this.isMonthNavigate) {
1440
+ Promise.resolve(null).then(() => this.updateFocus());
1441
+ this.isMonthNavigate = false;
1442
+ }
1443
+ else {
1444
+ if (!this.focus && !this.inline()) {
1445
+ this.initFocusableCell();
1446
+ }
1447
+ }
1448
+ }
1449
+ });
1450
+ }
1451
+ onInit() {
1452
+ this.attributeSelector = uuid('pn_id_');
1453
+ this.panelId = this.attributeSelector + '_panel';
1454
+ const date = this.defaultDate() || new Date();
1455
+ this.createResponsiveStyle();
1456
+ this.currentMonth = date.getMonth();
1457
+ this.currentYear = date.getFullYear();
1458
+ this.yearOptions = [];
1459
+ this.currentView = this.view();
1460
+ if (this.view() === 'date') {
1461
+ this.createWeekDays();
1462
+ this.initTime(date);
1463
+ this.createMonths(this.currentMonth, this.currentYear);
1464
+ this.ticksTo1970 = ((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000;
1465
+ }
1466
+ this.translationSubscription = this.config.translationObserver.subscribe(() => {
1467
+ this.createWeekDays();
1468
+ this.cd.markForCheck();
1469
+ });
1470
+ this.initialized = true;
1471
+ }
1472
+ onAfterViewInit() {
1473
+ if (this.inline()) {
1474
+ this.contentViewChild() && this.contentViewChild().nativeElement.setAttribute(this.attributeSelector, '');
1475
+ }
1476
+ else {
1477
+ if (!this.$disabled() && this.overlay) {
1478
+ this.initFocusableCell();
1479
+ if (this.numberOfMonths() === 1) {
1480
+ if (this.contentViewChild() && this.contentViewChild().nativeElement) {
1481
+ this.contentViewChild().nativeElement.style.width = getOuterWidth(this.el?.nativeElement) + 'px';
1482
+ }
1483
+ }
1484
+ }
1485
+ }
1486
+ }
1487
+ onAfterViewChecked() {
1488
+ this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));
1489
+ }
1490
+ templates = contentChildren(HelixTemplate, /* @ts-ignore */
1491
+ ...(ngDevMode ? [{ debugName: "templates" }] : /* istanbul ignore next */ []));
1492
+ onAfterContentInit() {
1493
+ this.templates().forEach((item) => {
1494
+ switch (item.getType()) {
1495
+ case 'date':
1496
+ this._dateTemplate = item.template;
1497
+ break;
1498
+ case 'decade':
1499
+ this._decadeTemplate = item.template;
1500
+ break;
1501
+ case 'disabledDate':
1502
+ this._disabledDateTemplate = item.template;
1503
+ break;
1504
+ case 'header':
1505
+ this._headerTemplate = item.template;
1506
+ break;
1507
+ case 'inputicon':
1508
+ this._inputIconTemplate = item.template;
1509
+ break;
1510
+ case 'buttonbar':
1511
+ this._buttonBarTemplate = item.template;
1512
+ break;
1513
+ case 'previousicon':
1514
+ this._previousIconTemplate = item.template;
1515
+ break;
1516
+ case 'nexticon':
1517
+ this._nextIconTemplate = item.template;
1518
+ break;
1519
+ case 'triggericon':
1520
+ this._triggerIconTemplate = item.template;
1521
+ break;
1522
+ case 'clearicon':
1523
+ this._clearIconTemplate = item.template;
1524
+ break;
1525
+ case 'decrementicon':
1526
+ this._decrementIconTemplate = item.template;
1527
+ break;
1528
+ case 'incrementicon':
1529
+ this._incrementIconTemplate = item.template;
1530
+ break;
1531
+ case 'footer':
1532
+ this._footerTemplate = item.template;
1533
+ break;
1534
+ default:
1535
+ this._dateTemplate = item.template;
1536
+ break;
1537
+ }
1538
+ });
1539
+ }
1540
+ getTranslation(option) {
1541
+ return this.config.getTranslation(option);
1542
+ }
1543
+ populateYearOptions(start, end) {
1544
+ this.yearOptions = [];
1545
+ for (let i = start; i <= end; i++) {
1546
+ this.yearOptions.push(i);
1547
+ }
1548
+ }
1549
+ createWeekDays() {
1550
+ this.weekDays = [];
1551
+ let dayIndex = this.getFirstDateOfWeek();
1552
+ let dayLabels = this.getTranslation(TranslationKeys.DAY_NAMES_MIN);
1553
+ for (let i = 0; i < 7; i++) {
1554
+ this.weekDays.push(dayLabels[dayIndex]);
1555
+ dayIndex = dayIndex == 6 ? 0 : ++dayIndex;
1556
+ }
1557
+ }
1558
+ monthPickerValues() {
1559
+ let monthPickerValues = [];
1560
+ for (let i = 0; i <= 11; i++) {
1561
+ monthPickerValues.push(this.config.getTranslation('monthNamesShort')[i]);
1562
+ }
1563
+ return monthPickerValues;
1564
+ }
1565
+ yearPickerValues() {
1566
+ let yearPickerValues = [];
1567
+ let base = this.currentYear - (this.currentYear % 10);
1568
+ for (let i = 0; i < 10; i++) {
1569
+ yearPickerValues.push(base + i);
1570
+ }
1571
+ return yearPickerValues;
1572
+ }
1573
+ createMonths(month, year) {
1574
+ this.months = this.months = [];
1575
+ for (let i = 0; i < this.numberOfMonths(); i++) {
1576
+ let m = month + i;
1577
+ let y = year;
1578
+ if (m > 11) {
1579
+ m = m % 12;
1580
+ y = year + Math.floor((month + i) / 12);
1581
+ }
1582
+ this.months.push(this.createMonth(m, y));
1583
+ }
1584
+ }
1585
+ getWeekNumber(date) {
1586
+ let checkDate = new Date(date.getTime());
1587
+ if (this.startWeekFromFirstDayOfYear()) {
1588
+ let firstDayOfWeek = +this.getFirstDateOfWeek();
1589
+ checkDate.setDate(checkDate.getDate() + 6 + firstDayOfWeek - checkDate.getDay());
1590
+ }
1591
+ else {
1592
+ checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
1593
+ }
1594
+ let time = checkDate.getTime();
1595
+ checkDate.setMonth(0);
1596
+ checkDate.setDate(1);
1597
+ return Math.floor(Math.round((time - checkDate.getTime()) / 86400000) / 7) + 1;
1598
+ }
1599
+ createMonth(month, year) {
1600
+ let dates = [];
1601
+ let firstDay = this.getFirstDayOfMonthIndex(month, year);
1602
+ let daysLength = this.getDaysCountInMonth(month, year);
1603
+ let prevMonthDaysLength = this.getDaysCountInPrevMonth(month, year);
1604
+ let dayNo = 1;
1605
+ let today = new Date();
1606
+ let weekNumbers = [];
1607
+ let monthRows = Math.ceil((daysLength + firstDay) / 7);
1608
+ for (let i = 0; i < monthRows; i++) {
1609
+ let week = [];
1610
+ if (i == 0) {
1611
+ for (let j = prevMonthDaysLength - firstDay + 1; j <= prevMonthDaysLength; j++) {
1612
+ let prev = this.getPreviousMonthAndYear(month, year);
1613
+ week.push({
1614
+ day: j,
1615
+ month: prev.month,
1616
+ year: prev.year,
1617
+ otherMonth: true,
1618
+ today: this.isToday(today, j, prev.month, prev.year),
1619
+ selectable: this.isSelectable(j, prev.month, prev.year, true)
1620
+ });
1621
+ }
1622
+ let remainingDaysLength = 7 - week.length;
1623
+ for (let j = 0; j < remainingDaysLength; j++) {
1624
+ week.push({
1625
+ day: dayNo,
1626
+ month: month,
1627
+ year: year,
1628
+ today: this.isToday(today, dayNo, month, year),
1629
+ selectable: this.isSelectable(dayNo, month, year, false)
1630
+ });
1631
+ dayNo++;
1632
+ }
1633
+ }
1634
+ else {
1635
+ for (let j = 0; j < 7; j++) {
1636
+ if (dayNo > daysLength) {
1637
+ let next = this.getNextMonthAndYear(month, year);
1638
+ week.push({
1639
+ day: dayNo - daysLength,
1640
+ month: next.month,
1641
+ year: next.year,
1642
+ otherMonth: true,
1643
+ today: this.isToday(today, dayNo - daysLength, next.month, next.year),
1644
+ selectable: this.isSelectable(dayNo - daysLength, next.month, next.year, true)
1645
+ });
1646
+ }
1647
+ else {
1648
+ week.push({
1649
+ day: dayNo,
1650
+ month: month,
1651
+ year: year,
1652
+ today: this.isToday(today, dayNo, month, year),
1653
+ selectable: this.isSelectable(dayNo, month, year, false)
1654
+ });
1655
+ }
1656
+ dayNo++;
1657
+ }
1658
+ }
1659
+ if (this.showWeek()) {
1660
+ weekNumbers.push(this.getWeekNumber(new Date(week[0].year, week[0].month, week[0].day)));
1661
+ }
1662
+ dates.push(week);
1663
+ }
1664
+ return {
1665
+ month: month,
1666
+ year: year,
1667
+ dates: dates,
1668
+ weekNumbers: weekNumbers
1669
+ };
1670
+ }
1671
+ initTime(date) {
1672
+ this.pm = date.getHours() > 11;
1673
+ if (this.showTime()) {
1674
+ this.currentMinute = date.getMinutes();
1675
+ this.currentSecond = this.showSeconds() ? date.getSeconds() : 0;
1676
+ this.setCurrentHourPM(date.getHours());
1677
+ }
1678
+ else if (this.timeOnly()) {
1679
+ this.currentMinute = 0;
1680
+ this.currentHour = 0;
1681
+ this.currentSecond = 0;
1682
+ }
1683
+ }
1684
+ navBackward(event) {
1685
+ if (this.$disabled()) {
1686
+ event.preventDefault();
1687
+ return;
1688
+ }
1689
+ this.isMonthNavigate = true;
1690
+ if (this.currentView === 'month') {
1691
+ this.decrementYear();
1692
+ setTimeout(() => {
1693
+ this.updateFocus();
1694
+ }, 1);
1695
+ }
1696
+ else if (this.currentView === 'year') {
1697
+ this.decrementDecade();
1698
+ setTimeout(() => {
1699
+ this.updateFocus();
1700
+ }, 1);
1701
+ }
1702
+ else {
1703
+ if (this.currentMonth === 0) {
1704
+ this.currentMonth = 11;
1705
+ this.decrementYear();
1706
+ }
1707
+ else {
1708
+ this.currentMonth--;
1709
+ }
1710
+ this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });
1711
+ this.createMonths(this.currentMonth, this.currentYear);
1712
+ }
1713
+ }
1714
+ navForward(event) {
1715
+ if (this.$disabled()) {
1716
+ event.preventDefault();
1717
+ return;
1718
+ }
1719
+ this.isMonthNavigate = true;
1720
+ if (this.currentView === 'month') {
1721
+ this.incrementYear();
1722
+ setTimeout(() => {
1723
+ this.updateFocus();
1724
+ }, 1);
1725
+ }
1726
+ else if (this.currentView === 'year') {
1727
+ this.incrementDecade();
1728
+ setTimeout(() => {
1729
+ this.updateFocus();
1730
+ }, 1);
1731
+ }
1732
+ else {
1733
+ if (this.currentMonth === 11) {
1734
+ this.currentMonth = 0;
1735
+ this.incrementYear();
1736
+ }
1737
+ else {
1738
+ this.currentMonth++;
1739
+ }
1740
+ this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });
1741
+ this.createMonths(this.currentMonth, this.currentYear);
1742
+ }
1743
+ }
1744
+ decrementYear() {
1745
+ this.currentYear--;
1746
+ let _yearOptions = this.yearOptions;
1747
+ if (this.currentYear < _yearOptions[0]) {
1748
+ let difference = _yearOptions[_yearOptions.length - 1] - _yearOptions[0];
1749
+ this.populateYearOptions(_yearOptions[0] - difference, _yearOptions[_yearOptions.length - 1] - difference);
1750
+ }
1751
+ }
1752
+ decrementDecade() {
1753
+ this.currentYear = this.currentYear - 10;
1754
+ }
1755
+ incrementDecade() {
1756
+ this.currentYear = this.currentYear + 10;
1757
+ }
1758
+ incrementYear() {
1759
+ this.currentYear++;
1760
+ let _yearOptions = this.yearOptions;
1761
+ if (this.currentYear > _yearOptions[_yearOptions.length - 1]) {
1762
+ let difference = _yearOptions[_yearOptions.length - 1] - _yearOptions[0];
1763
+ this.populateYearOptions(_yearOptions[0] + difference, _yearOptions[_yearOptions.length - 1] + difference);
1764
+ }
1765
+ }
1766
+ switchToMonthView(event) {
1767
+ this.setCurrentView('month');
1768
+ event.preventDefault();
1769
+ }
1770
+ switchToYearView(event) {
1771
+ this.setCurrentView('year');
1772
+ event.preventDefault();
1773
+ }
1774
+ onDateSelect(event, dateMeta) {
1775
+ if (this.$disabled() || !dateMeta.selectable) {
1776
+ event.preventDefault();
1777
+ return;
1778
+ }
1779
+ if (this.isMultipleSelection() && this.isSelected(dateMeta)) {
1780
+ this.value = this.value.filter((date, i) => {
1781
+ return !this.isDateEquals(date, dateMeta);
1782
+ });
1783
+ if (this.value.length === 0) {
1784
+ this.value = null;
1785
+ }
1786
+ this.updateModel(this.value);
1787
+ }
1788
+ else {
1789
+ if (this.shouldSelectDate(dateMeta)) {
1790
+ this.selectDate(dateMeta);
1791
+ }
1792
+ }
1793
+ if (this.hideOnDateTimeSelect() && (this.isSingleSelection() || (this.isRangeSelection() && this.value[1]))) {
1794
+ setTimeout(() => {
1795
+ event.preventDefault();
1796
+ this.hideOverlay();
1797
+ if (this.mask) {
1798
+ this.disableModality();
1799
+ }
1800
+ this.cd.markForCheck();
1801
+ }, 150);
1802
+ }
1803
+ this.updateInputfield();
1804
+ event.preventDefault();
1805
+ }
1806
+ shouldSelectDate(dateMeta) {
1807
+ if (this.isMultipleSelection())
1808
+ return this.maxDateCount() != null ? this.maxDateCount() > (this.value ? this.value.length : 0) : true;
1809
+ else
1810
+ return true;
1811
+ }
1812
+ onMonthSelect(event, index) {
1813
+ if (this.view() === 'month') {
1814
+ this.onDateSelect(event, { year: this.currentYear, month: index, day: 1, selectable: true });
1815
+ }
1816
+ else {
1817
+ this.currentMonth = index;
1818
+ this.createMonths(this.currentMonth, this.currentYear);
1819
+ this.setCurrentView('date');
1820
+ this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });
1821
+ }
1822
+ }
1823
+ onYearSelect(event, year) {
1824
+ if (this.view() === 'year') {
1825
+ this.onDateSelect(event, { year: year, month: 0, day: 1, selectable: true });
1826
+ }
1827
+ else {
1828
+ this.currentYear = year;
1829
+ this.setCurrentView('month');
1830
+ this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });
1831
+ }
1832
+ }
1833
+ updateInputfield() {
1834
+ let formattedValue = '';
1835
+ if (this.value) {
1836
+ if (this.isSingleSelection()) {
1837
+ formattedValue = this.formatDateTime(this.value);
1838
+ }
1839
+ else if (this.isMultipleSelection()) {
1840
+ for (let i = 0; i < this.value.length; i++) {
1841
+ let dateAsString = this.formatDateTime(this.value[i]);
1842
+ formattedValue += dateAsString;
1843
+ if (i !== this.value.length - 1) {
1844
+ formattedValue += this.multipleSeparator() + ' ';
1845
+ }
1846
+ }
1847
+ }
1848
+ else if (this.isRangeSelection()) {
1849
+ if (this.value && this.value.length) {
1850
+ let startDate = this.value[0];
1851
+ let endDate = this.value[1];
1852
+ formattedValue = this.formatDateTime(startDate);
1853
+ if (endDate) {
1854
+ formattedValue += ' ' + this.rangeSeparator() + ' ' + this.formatDateTime(endDate);
1855
+ }
1856
+ }
1857
+ }
1858
+ }
1859
+ this.writeModelValue(formattedValue);
1860
+ this.inputFieldValue = formattedValue;
1861
+ if (this.inputfieldViewChild() && this.inputfieldViewChild().nativeElement) {
1862
+ this.inputfieldViewChild().nativeElement.value = this.inputFieldValue;
1863
+ }
1864
+ }
1865
+ inputFieldValue = null;
1866
+ formatDateTime(date) {
1867
+ let formattedValue = this.keepInvalid() ? date : null;
1868
+ const isDateValid = this.isValidDateForTimeConstraints(date);
1869
+ if (this.isValidDate(date)) {
1870
+ if (this.timeOnly()) {
1871
+ formattedValue = this.formatTime(date);
1872
+ }
1873
+ else {
1874
+ formattedValue = this.formatDate(date, this.getDateFormat());
1875
+ if (this.showTime()) {
1876
+ formattedValue += ' ' + this.formatTime(date);
1877
+ }
1878
+ }
1879
+ }
1880
+ else if (this.dataType() === 'string') {
1881
+ formattedValue = date;
1882
+ }
1883
+ formattedValue = isDateValid ? formattedValue : '';
1884
+ return formattedValue;
1885
+ }
1886
+ formatDateMetaToDate(dateMeta) {
1887
+ return new Date(dateMeta.year, dateMeta.month, dateMeta.day);
1888
+ }
1889
+ formatDateKey(date) {
1890
+ return `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;
1891
+ }
1892
+ setCurrentHourPM(hours) {
1893
+ if (this.hourFormat() == '12') {
1894
+ this.pm = hours > 11;
1895
+ if (hours >= 12) {
1896
+ this.currentHour = hours == 12 ? 12 : hours - 12;
1897
+ }
1898
+ else {
1899
+ this.currentHour = hours == 0 ? 12 : hours;
1900
+ }
1901
+ }
1902
+ else {
1903
+ this.currentHour = hours;
1904
+ }
1905
+ }
1906
+ setCurrentView(currentView) {
1907
+ this.currentView = currentView;
1908
+ this.cd.detectChanges();
1909
+ this.alignOverlay();
1910
+ }
1911
+ selectDate(dateMeta) {
1912
+ let date = this.formatDateMetaToDate(dateMeta);
1913
+ if (this.showTime()) {
1914
+ if (this.hourFormat() == '12') {
1915
+ if (this.currentHour === 12)
1916
+ date.setHours(this.pm ? 12 : 0);
1917
+ else
1918
+ date.setHours(this.pm ? this.currentHour + 12 : this.currentHour);
1919
+ }
1920
+ else {
1921
+ date.setHours(this.currentHour);
1922
+ }
1923
+ date.setMinutes(this.currentMinute);
1924
+ date.setSeconds(this.currentSecond);
1925
+ }
1926
+ if (this.minDate() && this.minDate() > date) {
1927
+ date = this.minDate();
1928
+ this.setCurrentHourPM(date.getHours());
1929
+ this.currentMinute = date.getMinutes();
1930
+ this.currentSecond = date.getSeconds();
1931
+ }
1932
+ if (this.maxDate() && this.maxDate() < date) {
1933
+ date = this.maxDate();
1934
+ this.setCurrentHourPM(date.getHours());
1935
+ this.currentMinute = date.getMinutes();
1936
+ this.currentSecond = date.getSeconds();
1937
+ }
1938
+ if (this.isSingleSelection()) {
1939
+ this.updateModel(date);
1940
+ }
1941
+ else if (this.isMultipleSelection()) {
1942
+ this.updateModel(this.value ? [...this.value, date] : [date]);
1943
+ }
1944
+ else if (this.isRangeSelection()) {
1945
+ if (this.value && this.value.length) {
1946
+ let startDate = this.value[0];
1947
+ let endDate = this.value[1];
1948
+ if (!endDate && date.getTime() >= startDate.getTime()) {
1949
+ endDate = date;
1950
+ }
1951
+ else {
1952
+ startDate = date;
1953
+ endDate = null;
1954
+ }
1955
+ this.updateModel([startDate, endDate]);
1956
+ }
1957
+ else {
1958
+ this.updateModel([date, null]);
1959
+ }
1960
+ }
1961
+ this.onSelect.emit(date);
1962
+ }
1963
+ updateModel(value) {
1964
+ this.value = value;
1965
+ const dataType = this.dataType();
1966
+ if (dataType == 'date') {
1967
+ this.writeModelValue(this.value);
1968
+ this.onModelChange(this.value);
1969
+ }
1970
+ else if (dataType == 'string') {
1971
+ if (this.isSingleSelection()) {
1972
+ this.onModelChange(this.formatDateTime(this.value));
1973
+ }
1974
+ else {
1975
+ let stringArrValue = null;
1976
+ if (Array.isArray(this.value)) {
1977
+ stringArrValue = this.value.map((date) => this.formatDateTime(date));
1978
+ }
1979
+ this.writeModelValue(stringArrValue);
1980
+ this.onModelChange(stringArrValue);
1981
+ }
1982
+ }
1983
+ }
1984
+ getFirstDayOfMonthIndex(month, year) {
1985
+ let day = new Date();
1986
+ day.setDate(1);
1987
+ day.setMonth(month);
1988
+ day.setFullYear(year);
1989
+ let dayIndex = day.getDay() + this.getSundayIndex();
1990
+ return dayIndex >= 7 ? dayIndex - 7 : dayIndex;
1991
+ }
1992
+ getDaysCountInMonth(month, year) {
1993
+ return 32 - this.daylightSavingAdjust(new Date(year, month, 32)).getDate();
1994
+ }
1995
+ getDaysCountInPrevMonth(month, year) {
1996
+ let prev = this.getPreviousMonthAndYear(month, year);
1997
+ return this.getDaysCountInMonth(prev.month, prev.year);
1998
+ }
1999
+ getPreviousMonthAndYear(month, year) {
2000
+ let m, y;
2001
+ if (month === 0) {
2002
+ m = 11;
2003
+ y = year - 1;
2004
+ }
2005
+ else {
2006
+ m = month - 1;
2007
+ y = year;
2008
+ }
2009
+ return { month: m, year: y };
2010
+ }
2011
+ getNextMonthAndYear(month, year) {
2012
+ let m, y;
2013
+ if (month === 11) {
2014
+ m = 0;
2015
+ y = year + 1;
2016
+ }
2017
+ else {
2018
+ m = month + 1;
2019
+ y = year;
2020
+ }
2021
+ return { month: m, year: y };
2022
+ }
2023
+ getSundayIndex() {
2024
+ let firstDayOfWeek = this.getFirstDateOfWeek();
2025
+ return firstDayOfWeek > 0 ? 7 - firstDayOfWeek : 0;
2026
+ }
2027
+ isSelected(dateMeta) {
2028
+ if (this.value) {
2029
+ if (this.isSingleSelection()) {
2030
+ return this.isDateEquals(this.value, dateMeta);
2031
+ }
2032
+ else if (this.isMultipleSelection()) {
2033
+ let selected = false;
2034
+ for (let date of this.value) {
2035
+ selected = this.isDateEquals(date, dateMeta);
2036
+ if (selected) {
2037
+ break;
2038
+ }
2039
+ }
2040
+ return selected;
2041
+ }
2042
+ else if (this.isRangeSelection()) {
2043
+ if (this.value[1])
2044
+ return this.isDateEquals(this.value[0], dateMeta) || this.isDateEquals(this.value[1], dateMeta) || this.isDateBetween(this.value[0], this.value[1], dateMeta);
2045
+ else
2046
+ return this.isDateEquals(this.value[0], dateMeta);
2047
+ }
2048
+ }
2049
+ else {
2050
+ return false;
2051
+ }
2052
+ }
2053
+ isComparable() {
2054
+ return this.value != null && typeof this.value !== 'string';
2055
+ }
2056
+ isMonthSelected(month) {
2057
+ if (!this.isComparable())
2058
+ return false;
2059
+ if (this.isMultipleSelection()) {
2060
+ return this.value.some((currentValue) => currentValue.getMonth() === month && currentValue.getFullYear() === this.currentYear);
2061
+ }
2062
+ else if (this.isRangeSelection()) {
2063
+ if (!this.value[1]) {
2064
+ return this.value[0]?.getFullYear() === this.currentYear && this.value[0]?.getMonth() === month;
2065
+ }
2066
+ else {
2067
+ const currentDate = new Date(this.currentYear, month, 1);
2068
+ const startDate = new Date(this.value[0].getFullYear(), this.value[0].getMonth(), 1);
2069
+ const endDate = new Date(this.value[1].getFullYear(), this.value[1].getMonth(), 1);
2070
+ return currentDate >= startDate && currentDate <= endDate;
2071
+ }
2072
+ }
2073
+ else {
2074
+ return this.value.getMonth() === month && this.value.getFullYear() === this.currentYear;
2075
+ }
2076
+ }
2077
+ isMonthDisabled(month, year) {
2078
+ const yearToCheck = year ?? this.currentYear;
2079
+ for (let day = 1; day < this.getDaysCountInMonth(month, yearToCheck) + 1; day++) {
2080
+ if (this.isSelectable(day, month, yearToCheck, false)) {
2081
+ return false;
2082
+ }
2083
+ }
2084
+ return true;
2085
+ }
2086
+ isYearDisabled(year) {
2087
+ return Array(12)
2088
+ .fill(0)
2089
+ .every((v, month) => this.isMonthDisabled(month, year));
2090
+ }
2091
+ isYearSelected(year) {
2092
+ if (this.isComparable()) {
2093
+ let value = this.isRangeSelection() ? this.value[0] : this.value;
2094
+ return !this.isMultipleSelection() ? value.getFullYear() === year : false;
2095
+ }
2096
+ return false;
2097
+ }
2098
+ isDateEquals(value, dateMeta) {
2099
+ if (value && isDate(value))
2100
+ return value.getDate() === dateMeta.day && value.getMonth() === dateMeta.month && value.getFullYear() === dateMeta.year;
2101
+ else
2102
+ return false;
2103
+ }
2104
+ isDateBetween(start, end, dateMeta) {
2105
+ let between = false;
2106
+ if (isDate(start) && isDate(end)) {
2107
+ let date = this.formatDateMetaToDate(dateMeta);
2108
+ return start.getTime() <= date.getTime() && end.getTime() >= date.getTime();
2109
+ }
2110
+ return between;
2111
+ }
2112
+ isSingleSelection() {
2113
+ return this.selectionMode() === 'single';
2114
+ }
2115
+ isRangeSelection() {
2116
+ return this.selectionMode() === 'range';
2117
+ }
2118
+ isMultipleSelection() {
2119
+ return this.selectionMode() === 'multiple';
2120
+ }
2121
+ isToday(today, day, month, year) {
2122
+ return today.getDate() === day && today.getMonth() === month && today.getFullYear() === year;
2123
+ }
2124
+ isSelectable(day, month, year, otherMonth) {
2125
+ let validMin = true;
2126
+ let validMax = true;
2127
+ let validDate = true;
2128
+ let validDay = true;
2129
+ if (otherMonth && !this.selectOtherMonths()) {
2130
+ return false;
2131
+ }
2132
+ const minDate = this.minDate();
2133
+ if (minDate) {
2134
+ if (minDate.getFullYear() > year) {
2135
+ validMin = false;
2136
+ }
2137
+ else if (minDate.getFullYear() === year && this.currentView != 'year') {
2138
+ if (minDate.getMonth() > month) {
2139
+ validMin = false;
2140
+ }
2141
+ else if (minDate.getMonth() === month) {
2142
+ if (minDate.getDate() > day) {
2143
+ validMin = false;
2144
+ }
2145
+ }
2146
+ }
2147
+ }
2148
+ const maxDate = this.maxDate();
2149
+ if (maxDate) {
2150
+ if (maxDate.getFullYear() < year) {
2151
+ validMax = false;
2152
+ }
2153
+ else if (maxDate.getFullYear() === year) {
2154
+ if (maxDate.getMonth() < month) {
2155
+ validMax = false;
2156
+ }
2157
+ else if (maxDate.getMonth() === month) {
2158
+ if (maxDate.getDate() < day) {
2159
+ validMax = false;
2160
+ }
2161
+ }
2162
+ }
2163
+ }
2164
+ if (this.disabledDates()) {
2165
+ validDate = !this.isDateDisabled(day, month, year);
2166
+ }
2167
+ if (this.disabledDays()) {
2168
+ validDay = !this.isDayDisabled(day, month, year);
2169
+ }
2170
+ return validMin && validMax && validDate && validDay;
2171
+ }
2172
+ isDateDisabled(day, month, year) {
2173
+ const disabledDates = this.disabledDates();
2174
+ if (disabledDates) {
2175
+ for (let disabledDate of disabledDates) {
2176
+ if (disabledDate.getFullYear() === year && disabledDate.getMonth() === month && disabledDate.getDate() === day) {
2177
+ return true;
2178
+ }
2179
+ }
2180
+ }
2181
+ return false;
2182
+ }
2183
+ isDayDisabled(day, month, year) {
2184
+ const disabledDays = this.disabledDays();
2185
+ if (disabledDays) {
2186
+ let weekday = new Date(year, month, day);
2187
+ let weekdayNumber = weekday.getDay();
2188
+ return disabledDays.indexOf(weekdayNumber) !== -1;
2189
+ }
2190
+ return false;
2191
+ }
2192
+ onInputFocus(event) {
2193
+ this.focus = true;
2194
+ if (this.showOnFocus()) {
2195
+ this.showOverlay();
2196
+ }
2197
+ this.onFocus.emit(event);
2198
+ }
2199
+ onInputClick() {
2200
+ if (this.showOnFocus() && !this.overlayVisible) {
2201
+ this.showOverlay();
2202
+ }
2203
+ }
2204
+ onInputBlur(event) {
2205
+ this.focus = false;
2206
+ this.onBlur.emit(event);
2207
+ if (!this.keepInvalid()) {
2208
+ this.updateInputfield();
2209
+ }
2210
+ this.onModelTouched();
2211
+ }
2212
+ onButtonClick(event, inputfield = this.inputfieldViewChild()?.nativeElement) {
2213
+ if (this.$disabled()) {
2214
+ return;
2215
+ }
2216
+ if (!this.overlayVisible) {
2217
+ inputfield.focus();
2218
+ this.showOverlay();
2219
+ }
2220
+ else {
2221
+ this.hideOverlay();
2222
+ }
2223
+ }
2224
+ clear() {
2225
+ this.value = null;
2226
+ this.inputFieldValue = null;
2227
+ this.writeModelValue(this.value);
2228
+ this.onModelChange(this.value);
2229
+ this.updateInputfield();
2230
+ // TODO: The 'emit' function requires a mandatory any argument
2231
+ this.onClear.emit();
2232
+ }
2233
+ onOverlayClick(event) {
2234
+ this.overlayService.add({
2235
+ originalEvent: event,
2236
+ target: this.el.nativeElement
2237
+ });
2238
+ }
2239
+ getMonthName(index) {
2240
+ return this.config.getTranslation('monthNames')[index];
2241
+ }
2242
+ getYear(month) {
2243
+ return this.currentView === 'month' ? this.currentYear : month.year;
2244
+ }
2245
+ switchViewButtonDisabled() {
2246
+ return this.numberOfMonths() > 1 || this.$disabled();
2247
+ }
2248
+ onPrevButtonClick(event) {
2249
+ this.navigationState = { backward: true, button: true };
2250
+ this.navBackward(event);
2251
+ }
2252
+ onNextButtonClick(event) {
2253
+ this.navigationState = { backward: false, button: true };
2254
+ this.navForward(event);
2255
+ }
2256
+ onContainerButtonKeydown(event) {
2257
+ const inline = this.inline();
2258
+ switch (event.which) {
2259
+ //tab
2260
+ case 9:
2261
+ if (!inline) {
2262
+ this.trapFocus(event);
2263
+ }
2264
+ if (inline) {
2265
+ const headerElements = findSingle(this.el?.nativeElement, '.h-datepicker-header');
2266
+ const element = event.target;
2267
+ if (this.timeOnly()) {
2268
+ return;
2269
+ }
2270
+ else {
2271
+ if (element == headerElements?.children[headerElements?.children?.length - 1]) {
2272
+ this.initFocusableCell();
2273
+ }
2274
+ }
2275
+ }
2276
+ break;
2277
+ //escape
2278
+ case 27:
2279
+ this.inputfieldViewChild()?.nativeElement.focus();
2280
+ this.overlayVisible = false;
2281
+ event.preventDefault();
2282
+ break;
2283
+ default:
2284
+ //Noop
2285
+ break;
2286
+ }
2287
+ }
2288
+ onInputKeydown(event) {
2289
+ this.isKeydown = true;
2290
+ if (event.keyCode === 40 && this.contentViewChild()) {
2291
+ this.trapFocus(event);
2292
+ }
2293
+ else if (event.keyCode === 27) {
2294
+ if (this.overlayVisible) {
2295
+ this.inputfieldViewChild()?.nativeElement.focus();
2296
+ this.overlayVisible = false;
2297
+ event.preventDefault();
2298
+ }
2299
+ }
2300
+ else if (event.keyCode === 13) {
2301
+ if (this.overlayVisible) {
2302
+ this.overlayVisible = false;
2303
+ event.preventDefault();
2304
+ }
2305
+ }
2306
+ else if (event.keyCode === 9 && this.contentViewChild()) {
2307
+ getFocusableElements(this.contentViewChild().nativeElement).forEach((el) => (el.tabIndex = '-1'));
2308
+ if (this.overlayVisible) {
2309
+ this.overlayVisible = false;
2310
+ }
2311
+ }
2312
+ }
2313
+ onDateCellKeydown(event, dateMeta, groupIndex) {
2314
+ const cellContent = event.currentTarget;
2315
+ const cell = cellContent.parentElement;
2316
+ const currentDate = this.formatDateMetaToDate(dateMeta);
2317
+ switch (event.which) {
2318
+ //down arrow
2319
+ case 40: {
2320
+ cellContent.tabIndex = '-1';
2321
+ let cellIndex = getIndex(cell);
2322
+ let nextRow = cell.parentElement.nextElementSibling;
2323
+ if (nextRow) {
2324
+ let focusCell = nextRow.children[cellIndex].children[0];
2325
+ if (hasClass(focusCell, 'h-disabled')) {
2326
+ this.navigationState = { backward: false };
2327
+ this.navForward(event);
2328
+ }
2329
+ else {
2330
+ nextRow.children[cellIndex].children[0].tabIndex = '0';
2331
+ nextRow.children[cellIndex].children[0].focus();
2332
+ }
2333
+ }
2334
+ else {
2335
+ this.navigationState = { backward: false };
2336
+ this.navForward(event);
2337
+ }
2338
+ event.preventDefault();
2339
+ break;
2340
+ }
2341
+ //up arrow
2342
+ case 38: {
2343
+ cellContent.tabIndex = '-1';
2344
+ let cellIndex = getIndex(cell);
2345
+ let prevRow = cell.parentElement.previousElementSibling;
2346
+ if (prevRow) {
2347
+ let focusCell = prevRow.children[cellIndex].children[0];
2348
+ if (hasClass(focusCell, 'h-disabled')) {
2349
+ this.navigationState = { backward: true };
2350
+ this.navBackward(event);
2351
+ }
2352
+ else {
2353
+ focusCell.tabIndex = '0';
2354
+ focusCell.focus();
2355
+ }
2356
+ }
2357
+ else {
2358
+ this.navigationState = { backward: true };
2359
+ this.navBackward(event);
2360
+ }
2361
+ event.preventDefault();
2362
+ break;
2363
+ }
2364
+ //left arrow
2365
+ case 37: {
2366
+ cellContent.tabIndex = '-1';
2367
+ let prevCell = cell.previousElementSibling;
2368
+ if (prevCell) {
2369
+ let focusCell = prevCell.children[0];
2370
+ if (hasClass(focusCell, 'h-disabled') || hasClass(focusCell.parentElement, 'h-datepicker-weeknumber')) {
2371
+ this.navigateToMonth(true, groupIndex);
2372
+ }
2373
+ else {
2374
+ focusCell.tabIndex = '0';
2375
+ focusCell.focus();
2376
+ }
2377
+ }
2378
+ else {
2379
+ this.navigateToMonth(true, groupIndex);
2380
+ }
2381
+ event.preventDefault();
2382
+ break;
2383
+ }
2384
+ //right arrow
2385
+ case 39: {
2386
+ cellContent.tabIndex = '-1';
2387
+ let nextCell = cell.nextElementSibling;
2388
+ if (nextCell) {
2389
+ let focusCell = nextCell.children[0];
2390
+ if (hasClass(focusCell, 'h-disabled')) {
2391
+ this.navigateToMonth(false, groupIndex);
2392
+ }
2393
+ else {
2394
+ focusCell.tabIndex = '0';
2395
+ focusCell.focus();
2396
+ }
2397
+ }
2398
+ else {
2399
+ this.navigateToMonth(false, groupIndex);
2400
+ }
2401
+ event.preventDefault();
2402
+ break;
2403
+ }
2404
+ //enter
2405
+ //space
2406
+ case 13:
2407
+ case 32: {
2408
+ this.onDateSelect(event, dateMeta);
2409
+ event.preventDefault();
2410
+ break;
2411
+ }
2412
+ //escape
2413
+ case 27: {
2414
+ this.inputfieldViewChild()?.nativeElement.focus();
2415
+ this.overlayVisible = false;
2416
+ event.preventDefault();
2417
+ break;
2418
+ }
2419
+ //tab
2420
+ case 9: {
2421
+ if (!this.inline()) {
2422
+ this.trapFocus(event);
2423
+ }
2424
+ break;
2425
+ }
2426
+ // page up
2427
+ case 33: {
2428
+ cellContent.tabIndex = '-1';
2429
+ const dateToFocus = new Date(currentDate.getFullYear(), currentDate.getMonth() - 1, currentDate.getDate());
2430
+ const focusKey = this.formatDateKey(dateToFocus);
2431
+ this.navigateToMonth(true, groupIndex, `span[data-date='${focusKey}']:not(.h-disabled):not(.h-ink)`);
2432
+ event.preventDefault();
2433
+ break;
2434
+ }
2435
+ // page down
2436
+ case 34: {
2437
+ cellContent.tabIndex = '-1';
2438
+ const dateToFocus = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, currentDate.getDate());
2439
+ const focusKey = this.formatDateKey(dateToFocus);
2440
+ this.navigateToMonth(false, groupIndex, `span[data-date='${focusKey}']:not(.h-disabled):not(.h-ink)`);
2441
+ event.preventDefault();
2442
+ break;
2443
+ }
2444
+ //home
2445
+ case 36:
2446
+ cellContent.tabIndex = '-1';
2447
+ const firstDayDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);
2448
+ const firstDayDateKey = this.formatDateKey(firstDayDate);
2449
+ const firstDayCell = findSingle(cellContent.offsetParent, `span[data-date='${firstDayDateKey}']:not(.h-disabled):not(.h-ink)`);
2450
+ if (firstDayCell) {
2451
+ firstDayCell.tabIndex = '0';
2452
+ firstDayCell.focus();
2453
+ }
2454
+ event.preventDefault();
2455
+ break;
2456
+ //end
2457
+ case 35:
2458
+ cellContent.tabIndex = '-1';
2459
+ const lastDayDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);
2460
+ const lastDayDateKey = this.formatDateKey(lastDayDate);
2461
+ const lastDayCell = findSingle(cellContent.offsetParent, `span[data-date='${lastDayDateKey}']:not(.h-disabled):not(.h-ink)`);
2462
+ if (lastDayDate) {
2463
+ lastDayCell.tabIndex = '0';
2464
+ lastDayCell.focus();
2465
+ }
2466
+ event.preventDefault();
2467
+ break;
2468
+ default:
2469
+ //no op
2470
+ break;
2471
+ }
2472
+ }
2473
+ onMonthCellKeydown(event, index) {
2474
+ const cell = event.currentTarget;
2475
+ switch (event.which) {
2476
+ //arrows
2477
+ case 38:
2478
+ case 40: {
2479
+ cell.tabIndex = '-1';
2480
+ var cells = cell.parentElement.children;
2481
+ var cellIndex = getIndex(cell);
2482
+ let nextCell = cells[event.which === 40 ? cellIndex + 3 : cellIndex - 3];
2483
+ if (nextCell) {
2484
+ nextCell.tabIndex = '0';
2485
+ nextCell.focus();
2486
+ }
2487
+ event.preventDefault();
2488
+ break;
2489
+ }
2490
+ //left arrow
2491
+ case 37: {
2492
+ cell.tabIndex = '-1';
2493
+ let prevCell = cell.previousElementSibling;
2494
+ if (prevCell) {
2495
+ prevCell.tabIndex = '0';
2496
+ prevCell.focus();
2497
+ }
2498
+ else {
2499
+ this.navigationState = { backward: true };
2500
+ this.navBackward(event);
2501
+ }
2502
+ event.preventDefault();
2503
+ break;
2504
+ }
2505
+ //right arrow
2506
+ case 39: {
2507
+ cell.tabIndex = '-1';
2508
+ let nextCell = cell.nextElementSibling;
2509
+ if (nextCell) {
2510
+ nextCell.tabIndex = '0';
2511
+ nextCell.focus();
2512
+ }
2513
+ else {
2514
+ this.navigationState = { backward: false };
2515
+ this.navForward(event);
2516
+ }
2517
+ event.preventDefault();
2518
+ break;
2519
+ }
2520
+ //enter
2521
+ //space
2522
+ case 13:
2523
+ case 32: {
2524
+ this.onMonthSelect(event, index);
2525
+ event.preventDefault();
2526
+ break;
2527
+ }
2528
+ //escape
2529
+ case 27: {
2530
+ this.inputfieldViewChild()?.nativeElement.focus();
2531
+ this.overlayVisible = false;
2532
+ event.preventDefault();
2533
+ break;
2534
+ }
2535
+ //tab
2536
+ case 9: {
2537
+ if (!this.inline()) {
2538
+ this.trapFocus(event);
2539
+ }
2540
+ break;
2541
+ }
2542
+ default:
2543
+ //no op
2544
+ break;
2545
+ }
2546
+ }
2547
+ onYearCellKeydown(event, index) {
2548
+ const cell = event.currentTarget;
2549
+ switch (event.which) {
2550
+ //arrows
2551
+ case 38:
2552
+ case 40: {
2553
+ cell.tabIndex = '-1';
2554
+ var cells = cell.parentElement.children;
2555
+ var cellIndex = getIndex(cell);
2556
+ let nextCell = cells[event.which === 40 ? cellIndex + 2 : cellIndex - 2];
2557
+ if (nextCell) {
2558
+ nextCell.tabIndex = '0';
2559
+ nextCell.focus();
2560
+ }
2561
+ event.preventDefault();
2562
+ break;
2563
+ }
2564
+ //left arrow
2565
+ case 37: {
2566
+ cell.tabIndex = '-1';
2567
+ let prevCell = cell.previousElementSibling;
2568
+ if (prevCell) {
2569
+ prevCell.tabIndex = '0';
2570
+ prevCell.focus();
2571
+ }
2572
+ else {
2573
+ this.navigationState = { backward: true };
2574
+ this.navBackward(event);
2575
+ }
2576
+ event.preventDefault();
2577
+ break;
2578
+ }
2579
+ //right arrow
2580
+ case 39: {
2581
+ cell.tabIndex = '-1';
2582
+ let nextCell = cell.nextElementSibling;
2583
+ if (nextCell) {
2584
+ nextCell.tabIndex = '0';
2585
+ nextCell.focus();
2586
+ }
2587
+ else {
2588
+ this.navigationState = { backward: false };
2589
+ this.navForward(event);
2590
+ }
2591
+ event.preventDefault();
2592
+ break;
2593
+ }
2594
+ //enter
2595
+ //space
2596
+ case 13:
2597
+ case 32: {
2598
+ this.onYearSelect(event, index);
2599
+ event.preventDefault();
2600
+ break;
2601
+ }
2602
+ //escape
2603
+ case 27: {
2604
+ this.inputfieldViewChild()?.nativeElement.focus();
2605
+ this.overlayVisible = false;
2606
+ event.preventDefault();
2607
+ break;
2608
+ }
2609
+ //tab
2610
+ case 9: {
2611
+ this.trapFocus(event);
2612
+ break;
2613
+ }
2614
+ default:
2615
+ //no op
2616
+ break;
2617
+ }
2618
+ }
2619
+ navigateToMonth(prev, groupIndex, focusKey) {
2620
+ if (prev) {
2621
+ if (this.numberOfMonths() === 1 || groupIndex === 0) {
2622
+ this.navigationState = { backward: true };
2623
+ this._focusKey = focusKey;
2624
+ this.navBackward(event);
2625
+ }
2626
+ else {
2627
+ let prevMonthContainer = this.contentViewChild().nativeElement.children[groupIndex - 1];
2628
+ if (focusKey) {
2629
+ const firstDayCell = findSingle(prevMonthContainer, focusKey);
2630
+ firstDayCell.tabIndex = '0';
2631
+ firstDayCell.focus();
2632
+ }
2633
+ else {
2634
+ let cells = find(prevMonthContainer, '.h-datepicker-calendar td span:not(.h-disabled):not(.h-ink)');
2635
+ let focusCell = cells[cells.length - 1];
2636
+ focusCell.tabIndex = '0';
2637
+ focusCell.focus();
2638
+ }
2639
+ }
2640
+ }
2641
+ else {
2642
+ if (this.numberOfMonths() === 1 || groupIndex === this.numberOfMonths() - 1) {
2643
+ this.navigationState = { backward: false };
2644
+ this._focusKey = focusKey;
2645
+ this.navForward(event);
2646
+ }
2647
+ else {
2648
+ let nextMonthContainer = this.contentViewChild().nativeElement.children[groupIndex + 1];
2649
+ if (focusKey) {
2650
+ const firstDayCell = findSingle(nextMonthContainer, focusKey);
2651
+ firstDayCell.tabIndex = '0';
2652
+ firstDayCell.focus();
2653
+ }
2654
+ else {
2655
+ let focusCell = findSingle(nextMonthContainer, '.h-datepicker-calendar td span:not(.h-disabled):not(.h-ink)');
2656
+ focusCell.tabIndex = '0';
2657
+ focusCell.focus();
2658
+ }
2659
+ }
2660
+ }
2661
+ }
2662
+ updateFocus() {
2663
+ let cell;
2664
+ if (this.navigationState) {
2665
+ if (this.navigationState.button) {
2666
+ this.initFocusableCell();
2667
+ if (this.navigationState.backward)
2668
+ findSingle(this.contentViewChild().nativeElement, '.h-datepicker-prev-button').focus();
2669
+ else
2670
+ findSingle(this.contentViewChild().nativeElement, '.h-datepicker-next-button').focus();
2671
+ }
2672
+ else {
2673
+ if (this.navigationState.backward) {
2674
+ let cells;
2675
+ if (this.currentView === 'month') {
2676
+ cells = find(this.contentViewChild().nativeElement, '.h-datepicker-month-view .h-datepicker-month:not(.h-disabled)');
2677
+ }
2678
+ else if (this.currentView === 'year') {
2679
+ cells = find(this.contentViewChild().nativeElement, '.h-datepicker-year-view .h-datepicker-year:not(.h-disabled)');
2680
+ }
2681
+ else {
2682
+ cells = find(this.contentViewChild().nativeElement, this._focusKey || '.h-datepicker-calendar td span:not(.h-disabled):not(.h-ink)');
2683
+ }
2684
+ if (cells && cells.length > 0) {
2685
+ cell = cells[cells.length - 1];
2686
+ }
2687
+ }
2688
+ else {
2689
+ if (this.currentView === 'month') {
2690
+ cell = findSingle(this.contentViewChild().nativeElement, '.h-datepicker-month-view .h-datepicker-month:not(.h-disabled)');
2691
+ }
2692
+ else if (this.currentView === 'year') {
2693
+ cell = findSingle(this.contentViewChild().nativeElement, '.h-datepicker-year-view .h-datepicker-year:not(.h-disabled)');
2694
+ }
2695
+ else {
2696
+ cell = findSingle(this.contentViewChild().nativeElement, this._focusKey || '.h-datepicker-calendar td span:not(.h-disabled):not(.h-ink)');
2697
+ }
2698
+ }
2699
+ if (cell) {
2700
+ cell.tabIndex = '0';
2701
+ cell.focus();
2702
+ }
2703
+ }
2704
+ this.navigationState = null;
2705
+ this._focusKey = null;
2706
+ }
2707
+ else {
2708
+ this.initFocusableCell();
2709
+ }
2710
+ }
2711
+ initFocusableCell() {
2712
+ const contentEl = this.contentViewChild()?.nativeElement;
2713
+ let cell;
2714
+ if (this.currentView === 'month') {
2715
+ let cells = find(contentEl, '.h-datepicker-month-view .h-datepicker-month:not(.h-disabled)');
2716
+ let selectedCell = findSingle(contentEl, '.h-datepicker-month-view .h-datepicker-month.h-highlight');
2717
+ cells.forEach((cell) => (cell.tabIndex = -1));
2718
+ cell = selectedCell || cells[0];
2719
+ if (cells.length === 0) {
2720
+ let disabledCells = find(contentEl, '.h-datepicker-month-view .h-datepicker-month.h-disabled[tabindex = "0"]');
2721
+ disabledCells.forEach((cell) => (cell.tabIndex = -1));
2722
+ }
2723
+ }
2724
+ else if (this.currentView === 'year') {
2725
+ let cells = find(contentEl, '.h-datepicker-year-view .h-datepicker-year:not(.h-disabled)');
2726
+ let selectedCell = findSingle(contentEl, '.h-datepicker-year-view .h-datepicker-year.h-highlight');
2727
+ cells.forEach((cell) => (cell.tabIndex = -1));
2728
+ cell = selectedCell || cells[0];
2729
+ if (cells.length === 0) {
2730
+ let disabledCells = find(contentEl, '.h-datepicker-year-view .h-datepicker-year.h-disabled[tabindex = "0"]');
2731
+ disabledCells.forEach((cell) => (cell.tabIndex = -1));
2732
+ }
2733
+ }
2734
+ else {
2735
+ cell = findSingle(contentEl, 'span.h-highlight');
2736
+ if (!cell) {
2737
+ let todayCell = findSingle(contentEl, 'td.h-datepicker-today span:not(.h-disabled):not(.h-ink)');
2738
+ if (todayCell)
2739
+ cell = todayCell;
2740
+ else
2741
+ cell = findSingle(contentEl, '.h-datepicker-calendar td span:not(.h-disabled):not(.h-ink)');
2742
+ }
2743
+ }
2744
+ if (cell) {
2745
+ cell.tabIndex = '0';
2746
+ if (!this.preventFocus && (!this.navigationState || !this.navigationState.button)) {
2747
+ setTimeout(() => {
2748
+ if (!this.$disabled()) {
2749
+ cell.focus();
2750
+ }
2751
+ }, 1);
2752
+ }
2753
+ this.preventFocus = false;
2754
+ }
2755
+ }
2756
+ trapFocus(event) {
2757
+ let focusableElements = getFocusableElements(this.contentViewChild().nativeElement);
2758
+ if (focusableElements && focusableElements.length > 0) {
2759
+ if (!focusableElements[0].ownerDocument.activeElement) {
2760
+ focusableElements[0].focus();
2761
+ }
2762
+ else {
2763
+ let focusedIndex = focusableElements.indexOf(focusableElements[0].ownerDocument.activeElement);
2764
+ if (event.shiftKey) {
2765
+ if (focusedIndex == -1 || focusedIndex === 0) {
2766
+ if (this.focusTrap()) {
2767
+ focusableElements[focusableElements.length - 1].focus();
2768
+ }
2769
+ else {
2770
+ if (focusedIndex === -1)
2771
+ return this.hideOverlay();
2772
+ else if (focusedIndex === 0)
2773
+ return;
2774
+ }
2775
+ }
2776
+ else {
2777
+ focusableElements[focusedIndex - 1].focus();
2778
+ }
2779
+ }
2780
+ else {
2781
+ if (focusedIndex == -1) {
2782
+ if (this.timeOnly()) {
2783
+ focusableElements[0].focus();
2784
+ }
2785
+ else {
2786
+ let spanIndex = 0;
2787
+ for (let i = 0; i < focusableElements.length; i++) {
2788
+ if (focusableElements[i].tagName === 'SPAN')
2789
+ spanIndex = i;
2790
+ }
2791
+ focusableElements[spanIndex].focus();
2792
+ }
2793
+ }
2794
+ else if (focusedIndex === focusableElements.length - 1) {
2795
+ if (!this.focusTrap() && focusedIndex != -1)
2796
+ return this.hideOverlay();
2797
+ focusableElements[0].focus();
2798
+ }
2799
+ else {
2800
+ focusableElements[focusedIndex + 1].focus();
2801
+ }
2802
+ }
2803
+ }
2804
+ }
2805
+ event.preventDefault();
2806
+ }
2807
+ onMonthDropdownChange(m) {
2808
+ this.currentMonth = parseInt(m);
2809
+ this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });
2810
+ this.createMonths(this.currentMonth, this.currentYear);
2811
+ }
2812
+ onYearDropdownChange(y) {
2813
+ this.currentYear = parseInt(y);
2814
+ this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });
2815
+ this.createMonths(this.currentMonth, this.currentYear);
2816
+ }
2817
+ convertTo24Hour(hours, pm) {
2818
+ //@ts-ignore
2819
+ if (this.hourFormat() == '12') {
2820
+ if (hours === 12) {
2821
+ return pm ? 12 : 0;
2822
+ }
2823
+ else {
2824
+ return pm ? hours + 12 : hours;
2825
+ }
2826
+ }
2827
+ return hours;
2828
+ }
2829
+ constrainTime(hour, minute, second, pm) {
2830
+ let returnTimeTriple = [hour, minute, second];
2831
+ let minHoursExceeds12 = false;
2832
+ let value = this.value;
2833
+ const convertedHour = this.convertTo24Hour(hour, pm);
2834
+ const isRange = this.isRangeSelection(), isMultiple = this.isMultipleSelection(), isMultiValue = isRange || isMultiple;
2835
+ if (isMultiValue) {
2836
+ if (!this.value) {
2837
+ this.value = [new Date(), new Date()];
2838
+ }
2839
+ if (isRange) {
2840
+ value = this.value[1] || this.value[0];
2841
+ }
2842
+ if (isMultiple) {
2843
+ value = this.value[this.value.length - 1];
2844
+ }
2845
+ }
2846
+ const valueDateString = value && isDate(value) ? value.toDateString() : null;
2847
+ let isMinDate = this.minDate() && valueDateString && this.minDate().toDateString() === valueDateString;
2848
+ let isMaxDate = this.maxDate() && valueDateString && this.maxDate().toDateString() === valueDateString;
2849
+ if (isMinDate) {
2850
+ minHoursExceeds12 = this.minDate().getHours() >= 12;
2851
+ }
2852
+ switch (true // intentional fall through
2853
+ ) {
2854
+ case isMinDate && minHoursExceeds12 && this.minDate().getHours() === 12 && this.minDate().getHours() > convertedHour:
2855
+ returnTimeTriple[0] = 11;
2856
+ case isMinDate && this.minDate().getHours() === convertedHour && this.minDate().getMinutes() > minute:
2857
+ returnTimeTriple[1] = this.minDate().getMinutes();
2858
+ case isMinDate && this.minDate().getHours() === convertedHour && this.minDate().getMinutes() === minute && this.minDate().getSeconds() > second:
2859
+ returnTimeTriple[2] = this.minDate().getSeconds();
2860
+ break;
2861
+ case isMinDate && !minHoursExceeds12 && this.minDate().getHours() - 1 === convertedHour && this.minDate().getHours() > convertedHour:
2862
+ returnTimeTriple[0] = 11;
2863
+ this.pm = true;
2864
+ case isMinDate && this.minDate().getHours() === convertedHour && this.minDate().getMinutes() > minute:
2865
+ returnTimeTriple[1] = this.minDate().getMinutes();
2866
+ case isMinDate && this.minDate().getHours() === convertedHour && this.minDate().getMinutes() === minute && this.minDate().getSeconds() > second:
2867
+ returnTimeTriple[2] = this.minDate().getSeconds();
2868
+ break;
2869
+ case isMinDate && minHoursExceeds12 && this.minDate().getHours() > convertedHour && convertedHour !== 12:
2870
+ this.setCurrentHourPM(this.minDate().getHours());
2871
+ returnTimeTriple[0] = this.currentHour || 0;
2872
+ case isMinDate && this.minDate().getHours() === convertedHour && this.minDate().getMinutes() > minute:
2873
+ returnTimeTriple[1] = this.minDate().getMinutes();
2874
+ case isMinDate && this.minDate().getHours() === convertedHour && this.minDate().getMinutes() === minute && this.minDate().getSeconds() > second:
2875
+ returnTimeTriple[2] = this.minDate().getSeconds();
2876
+ break;
2877
+ case isMinDate && this.minDate().getHours() > convertedHour:
2878
+ returnTimeTriple[0] = this.minDate().getHours();
2879
+ case isMinDate && this.minDate().getHours() === convertedHour && this.minDate().getMinutes() > minute:
2880
+ returnTimeTriple[1] = this.minDate().getMinutes();
2881
+ case isMinDate && this.minDate().getHours() === convertedHour && this.minDate().getMinutes() === minute && this.minDate().getSeconds() > second:
2882
+ returnTimeTriple[2] = this.minDate().getSeconds();
2883
+ break;
2884
+ case isMaxDate && this.maxDate().getHours() < convertedHour:
2885
+ returnTimeTriple[0] = this.maxDate().getHours();
2886
+ case isMaxDate && this.maxDate().getHours() === convertedHour && this.maxDate().getMinutes() < minute:
2887
+ returnTimeTriple[1] = this.maxDate().getMinutes();
2888
+ case isMaxDate && this.maxDate().getHours() === convertedHour && this.maxDate().getMinutes() === minute && this.maxDate().getSeconds() < second:
2889
+ returnTimeTriple[2] = this.maxDate().getSeconds();
2890
+ break;
2891
+ }
2892
+ return returnTimeTriple;
2893
+ }
2894
+ incrementHour(event) {
2895
+ const prevHour = this.currentHour ?? 0;
2896
+ let newHour = (this.currentHour ?? 0) + this.stepHour();
2897
+ let newPM = this.pm;
2898
+ if (this.hourFormat() == '24')
2899
+ newHour = newHour >= 24 ? newHour - 24 : newHour;
2900
+ else if (this.hourFormat() == '12') {
2901
+ // Before the AM/PM break, now after
2902
+ if (prevHour < 12 && newHour > 11) {
2903
+ newPM = !this.pm;
2904
+ }
2905
+ newHour = newHour >= 13 ? newHour - 12 : newHour;
2906
+ }
2907
+ this.toggleAMPMIfNotMinDate(newPM);
2908
+ [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(newHour, this.currentMinute, this.currentSecond, newPM);
2909
+ event.preventDefault();
2910
+ }
2911
+ toggleAMPMIfNotMinDate(newPM) {
2912
+ let value = this.value;
2913
+ const valueDateString = value && isDate(value) ? value.toDateString() : null;
2914
+ let isMinDate = this.minDate() && valueDateString && this.minDate().toDateString() === valueDateString;
2915
+ if (isMinDate && this.minDate().getHours() >= 12) {
2916
+ this.pm = true;
2917
+ }
2918
+ else {
2919
+ this.pm = newPM;
2920
+ }
2921
+ }
2922
+ onTimePickerElementMouseDown(event, type, direction) {
2923
+ if (!this.$disabled()) {
2924
+ this.repeat(event, null, type, direction);
2925
+ event.preventDefault();
2926
+ }
2927
+ }
2928
+ onTimePickerElementMouseUp(event) {
2929
+ if (!this.$disabled()) {
2930
+ this.clearTimePickerTimer();
2931
+ this.updateTime();
2932
+ }
2933
+ }
2934
+ onTimePickerElementMouseLeave() {
2935
+ if (!this.$disabled() && this.timePickerTimer) {
2936
+ this.clearTimePickerTimer();
2937
+ this.updateTime();
2938
+ }
2939
+ }
2940
+ repeat(event, interval, type, direction) {
2941
+ let i = interval || 500;
2942
+ this.clearTimePickerTimer();
2943
+ this.timePickerTimer = setTimeout(() => {
2944
+ this.repeat(event, 100, type, direction);
2945
+ this.cd.markForCheck();
2946
+ }, i);
2947
+ switch (type) {
2948
+ case 0:
2949
+ if (direction === 1)
2950
+ this.incrementHour(event);
2951
+ else
2952
+ this.decrementHour(event);
2953
+ break;
2954
+ case 1:
2955
+ if (direction === 1)
2956
+ this.incrementMinute(event);
2957
+ else
2958
+ this.decrementMinute(event);
2959
+ break;
2960
+ case 2:
2961
+ if (direction === 1)
2962
+ this.incrementSecond(event);
2963
+ else
2964
+ this.decrementSecond(event);
2965
+ break;
2966
+ }
2967
+ this.updateInputfield();
2968
+ }
2969
+ clearTimePickerTimer() {
2970
+ if (this.timePickerTimer) {
2971
+ clearTimeout(this.timePickerTimer);
2972
+ this.timePickerTimer = null;
2973
+ }
2974
+ }
2975
+ decrementHour(event) {
2976
+ let newHour = (this.currentHour ?? 0) - this.stepHour();
2977
+ let newPM = this.pm;
2978
+ if (this.hourFormat() == '24')
2979
+ newHour = newHour < 0 ? 24 + newHour : newHour;
2980
+ else if (this.hourFormat() == '12') {
2981
+ // If we were at noon/midnight, then switch
2982
+ if (this.currentHour === 12) {
2983
+ newPM = !this.pm;
2984
+ }
2985
+ newHour = newHour <= 0 ? 12 + newHour : newHour;
2986
+ }
2987
+ this.toggleAMPMIfNotMinDate(newPM);
2988
+ [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(newHour, this.currentMinute, this.currentSecond, newPM);
2989
+ event.preventDefault();
2990
+ }
2991
+ incrementMinute(event) {
2992
+ let newMinute = (this.currentMinute ?? 0) + this.stepMinute();
2993
+ newMinute = newMinute > 59 ? newMinute - 60 : newMinute;
2994
+ [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour || 0, newMinute, this.currentSecond, this.pm);
2995
+ event.preventDefault();
2996
+ }
2997
+ decrementMinute(event) {
2998
+ let newMinute = (this.currentMinute ?? 0) - this.stepMinute();
2999
+ newMinute = newMinute < 0 ? 60 + newMinute : newMinute;
3000
+ [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour || 0, newMinute, this.currentSecond || 0, this.pm);
3001
+ event.preventDefault();
3002
+ }
3003
+ incrementSecond(event) {
3004
+ let newSecond = this.currentSecond + this.stepSecond();
3005
+ newSecond = newSecond > 59 ? newSecond - 60 : newSecond;
3006
+ [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour || 0, this.currentMinute || 0, newSecond, this.pm);
3007
+ event.preventDefault();
3008
+ }
3009
+ decrementSecond(event) {
3010
+ let newSecond = this.currentSecond - this.stepSecond();
3011
+ newSecond = newSecond < 0 ? 60 + newSecond : newSecond;
3012
+ [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour || 0, this.currentMinute || 0, newSecond, this.pm);
3013
+ event.preventDefault();
3014
+ }
3015
+ updateTime() {
3016
+ let value = this.value;
3017
+ if (this.isRangeSelection()) {
3018
+ value = this.value[1] || this.value[0];
3019
+ }
3020
+ if (this.isMultipleSelection()) {
3021
+ value = this.value[this.value.length - 1];
3022
+ }
3023
+ value = value && isDate(value) ? new Date(value.getTime()) : new Date();
3024
+ if (this.hourFormat() == '12') {
3025
+ if (this.currentHour === 12)
3026
+ value.setHours(this.pm ? 12 : 0);
3027
+ else
3028
+ value.setHours(this.pm ? this.currentHour + 12 : this.currentHour);
3029
+ }
3030
+ else {
3031
+ value.setHours(this.currentHour);
3032
+ }
3033
+ value.setMinutes(this.currentMinute);
3034
+ value.setSeconds(this.currentSecond);
3035
+ if (this.isRangeSelection()) {
3036
+ if (this.value[1])
3037
+ value = [this.value[0], value];
3038
+ else
3039
+ value = [value, null];
3040
+ }
3041
+ if (this.isMultipleSelection()) {
3042
+ value = [...this.value.slice(0, -1), value];
3043
+ }
3044
+ this.updateModel(value);
3045
+ this.onSelect.emit(value);
3046
+ this.updateInputfield();
3047
+ }
3048
+ toggleAMPM(event) {
3049
+ const newPM = !this.pm;
3050
+ this.pm = newPM;
3051
+ [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour || 0, this.currentMinute || 0, this.currentSecond || 0, newPM);
3052
+ this.updateTime();
3053
+ event.preventDefault();
3054
+ }
3055
+ onUserInput(event) {
3056
+ // IE 11 Workaround for input placeholder : https://github.com/primefaces/primeng/issues/2026
3057
+ if (!this.isKeydown) {
3058
+ return;
3059
+ }
3060
+ this.isKeydown = false;
3061
+ let val = event.target.value;
3062
+ try {
3063
+ let value = this.parseValueFromString(val);
3064
+ if (this.isValidSelection(value)) {
3065
+ this.updateModel(value);
3066
+ this.updateUI();
3067
+ }
3068
+ else if (this.keepInvalid()) {
3069
+ this.updateModel(value);
3070
+ }
3071
+ }
3072
+ catch (err) {
3073
+ //invalid date
3074
+ let value = this.keepInvalid() ? val : null;
3075
+ this.updateModel(value);
3076
+ }
3077
+ this.onInput.emit(event);
3078
+ }
3079
+ isValidSelection(value) {
3080
+ if (this.isSingleSelection()) {
3081
+ return this.isSelectable(value.getDate(), value.getMonth(), value.getFullYear(), false);
3082
+ }
3083
+ let isValid = value.every((v) => this.isSelectable(v.getDate(), v.getMonth(), v.getFullYear(), false));
3084
+ if (isValid && this.isRangeSelection()) {
3085
+ isValid = value.length === 1 || (value.length > 1 && value[1] >= value[0]);
3086
+ }
3087
+ return isValid;
3088
+ }
3089
+ parseValueFromString(text) {
3090
+ if (!text || text.trim().length === 0) {
3091
+ return null;
3092
+ }
3093
+ let value;
3094
+ if (this.isSingleSelection()) {
3095
+ value = this.parseDateTime(text);
3096
+ }
3097
+ else if (this.isMultipleSelection()) {
3098
+ let tokens = text.split(this.multipleSeparator());
3099
+ value = [];
3100
+ for (let token of tokens) {
3101
+ value.push(this.parseDateTime(token.trim()));
3102
+ }
3103
+ }
3104
+ else if (this.isRangeSelection()) {
3105
+ let tokens = text.split(' ' + this.rangeSeparator() + ' ');
3106
+ value = [];
3107
+ for (let i = 0; i < tokens.length; i++) {
3108
+ value[i] = this.parseDateTime(tokens[i].trim());
3109
+ }
3110
+ }
3111
+ return value;
3112
+ }
3113
+ parseDateTime(text) {
3114
+ let date;
3115
+ let parts = text.split(' ');
3116
+ if (this.timeOnly()) {
3117
+ date = new Date();
3118
+ this.populateTime(date, parts[0], parts[1]);
3119
+ }
3120
+ else {
3121
+ const dateFormat = this.getDateFormat();
3122
+ if (this.showTime()) {
3123
+ let ampm = this.hourFormat() == '12' ? parts.pop() : null;
3124
+ let timeString = parts.pop();
3125
+ date = this.parseDate(parts.join(' '), dateFormat);
3126
+ this.populateTime(date, timeString, ampm);
3127
+ }
3128
+ else {
3129
+ date = this.parseDate(text, dateFormat);
3130
+ }
3131
+ }
3132
+ return date;
3133
+ }
3134
+ populateTime(value, timeString, ampm) {
3135
+ if (this.hourFormat() == '12' && !ampm) {
3136
+ throw 'Invalid Time';
3137
+ }
3138
+ this.pm = ampm === 'PM' || ampm === 'pm';
3139
+ let time = this.parseTime(timeString);
3140
+ value.setHours(time.hour);
3141
+ value.setMinutes(time.minute);
3142
+ value.setSeconds(time.second);
3143
+ }
3144
+ isValidDate(date) {
3145
+ return isDate(date) && isNotEmpty(date);
3146
+ }
3147
+ updateUI() {
3148
+ let propValue = this.value;
3149
+ if (Array.isArray(propValue)) {
3150
+ propValue = propValue.length === 2 ? propValue[1] : propValue[0];
3151
+ }
3152
+ let val = this.defaultDate() && this.isValidDate(this.defaultDate()) && !this.value ? this.defaultDate() : propValue && this.isValidDate(propValue) ? propValue : new Date();
3153
+ this.currentMonth = val.getMonth();
3154
+ this.currentYear = val.getFullYear();
3155
+ this.createMonths(this.currentMonth, this.currentYear);
3156
+ if (this.showTime() || this.timeOnly()) {
3157
+ this.setCurrentHourPM(val.getHours());
3158
+ this.currentMinute = val.getMinutes();
3159
+ this.currentSecond = this.showSeconds() ? val.getSeconds() : 0;
3160
+ }
3161
+ }
3162
+ showOverlay() {
3163
+ if (!this.overlayVisible) {
3164
+ this.updateUI();
3165
+ if (!this.touchUI()) {
3166
+ this.preventFocus = true;
3167
+ }
3168
+ this.overlayMinWidth = this.el.nativeElement.offsetWidth;
3169
+ this.overlayVisible = true;
3170
+ }
3171
+ }
3172
+ hideOverlay() {
3173
+ this.inputfieldViewChild()?.nativeElement.focus();
3174
+ this.overlayVisible = false;
3175
+ this.clearTimePickerTimer();
3176
+ if (this.touchUI()) {
3177
+ this.disableModality();
3178
+ }
3179
+ this.cd.markForCheck();
3180
+ }
3181
+ toggle() {
3182
+ if (!this.inline()) {
3183
+ if (!this.overlayVisible) {
3184
+ this.showOverlay();
3185
+ this.inputfieldViewChild()?.nativeElement.focus();
3186
+ }
3187
+ else {
3188
+ this.hideOverlay();
3189
+ }
3190
+ }
3191
+ }
3192
+ onOverlayBeforeEnter(event) {
3193
+ this.overlay = event.element;
3194
+ this.$attrSelector && this.overlay.setAttribute(this.$attrSelector, '');
3195
+ const styles = !this.inline() ? { position: 'absolute', top: '0', minWidth: `${this.overlayMinWidth}px` } : undefined;
3196
+ addStyle(this.overlay, styles || {});
3197
+ this.appendOverlay();
3198
+ this.alignOverlay();
3199
+ this.setZIndex();
3200
+ this.updateFocus();
3201
+ this.bindListeners();
3202
+ this.onShow.emit(event.element);
3203
+ }
3204
+ onOverlayAfterLeave(event) {
3205
+ if (this.autoZIndex()) {
3206
+ ZIndexUtils.clear(event.element);
3207
+ }
3208
+ this.restoreOverlayAppend();
3209
+ this.onOverlayHide();
3210
+ this.onClose.emit(event.element);
3211
+ }
3212
+ appendOverlay() {
3213
+ if (this.$appendTo() && this.$appendTo() !== 'self') {
3214
+ if (this.$appendTo() === 'body')
3215
+ this.document.body.appendChild(this.overlay);
3216
+ else
3217
+ appendChild(this.$appendTo(), this.overlay);
3218
+ }
3219
+ }
3220
+ restoreOverlayAppend() {
3221
+ if (this.overlay && this.$appendTo() !== 'self') {
3222
+ this.el.nativeElement.appendChild(this.overlay);
3223
+ }
3224
+ }
3225
+ alignOverlay() {
3226
+ if (this.touchUI()) {
3227
+ this.enableModality(this.overlay);
3228
+ }
3229
+ else if (this.overlay) {
3230
+ if (this.$appendTo() && this.$appendTo() !== 'self') {
3231
+ absolutePosition(this.overlay, this.inputfieldViewChild()?.nativeElement);
3232
+ }
3233
+ else {
3234
+ relativePosition(this.overlay, this.inputfieldViewChild()?.nativeElement);
3235
+ }
3236
+ }
3237
+ }
3238
+ bindListeners() {
3239
+ this.bindDocumentClickListener();
3240
+ this.bindDocumentResizeListener();
3241
+ this.bindScrollListener();
3242
+ }
3243
+ setZIndex() {
3244
+ if (this.autoZIndex()) {
3245
+ if (this.touchUI())
3246
+ ZIndexUtils.set('modal', this.overlay, this.baseZIndex() || this.config.zIndex.modal);
3247
+ else
3248
+ ZIndexUtils.set('overlay', this.overlay, this.baseZIndex() || this.config.zIndex.overlay);
3249
+ }
3250
+ }
3251
+ enableModality(element) {
3252
+ if (!this.mask && this.touchUI()) {
3253
+ this.mask = this.renderer.createElement('div');
3254
+ this.renderer.setStyle(this.mask, 'zIndex', String(parseInt(element.style.zIndex) - 1));
3255
+ let maskStyleClass = 'h-overlay-mask h-datepicker-mask h-datepicker-mask-scrollblocker h-overlay-mask h-overlay-mask-enter-active';
3256
+ addClass(this.mask, maskStyleClass);
3257
+ this.maskClickListener = this.renderer.listen(this.mask, 'click', (event) => {
3258
+ this.disableModality();
3259
+ this.overlayVisible = false;
3260
+ });
3261
+ this.renderer.appendChild(this.document.body, this.mask);
3262
+ blockBodyScroll();
3263
+ }
3264
+ }
3265
+ disableModality() {
3266
+ if (this.mask) {
3267
+ addClass(this.mask, 'h-overlay-mask-leave');
3268
+ if (!this.animationEndListener) {
3269
+ this.animationEndListener = this.renderer.listen(this.mask, 'animationend', this.destroyMask.bind(this));
3270
+ }
3271
+ }
3272
+ }
3273
+ destroyMask() {
3274
+ if (!this.mask) {
3275
+ return;
3276
+ }
3277
+ this.renderer.removeChild(this.document.body, this.mask);
3278
+ let bodyChildren = this.document.body.children;
3279
+ let hasBlockerMasks;
3280
+ for (let i = 0; i < bodyChildren.length; i++) {
3281
+ let bodyChild = bodyChildren[i];
3282
+ if (hasClass(bodyChild, 'h-datepicker-mask-scrollblocker')) {
3283
+ hasBlockerMasks = true;
3284
+ break;
3285
+ }
3286
+ }
3287
+ if (!hasBlockerMasks) {
3288
+ unblockBodyScroll();
3289
+ }
3290
+ this.unbindAnimationEndListener();
3291
+ this.unbindMaskClickListener();
3292
+ this.mask = null;
3293
+ }
3294
+ unbindMaskClickListener() {
3295
+ if (this.maskClickListener) {
3296
+ this.maskClickListener();
3297
+ this.maskClickListener = null;
3298
+ }
3299
+ }
3300
+ unbindAnimationEndListener() {
3301
+ if (this.animationEndListener && this.mask) {
3302
+ this.animationEndListener();
3303
+ this.animationEndListener = null;
3304
+ }
3305
+ }
3306
+ getDateFormat() {
3307
+ return this.dateFormat() || this.getTranslation('dateFormat');
3308
+ }
3309
+ getFirstDateOfWeek() {
3310
+ return this.firstDayOfWeek() || this.getTranslation(TranslationKeys.FIRST_DAY_OF_WEEK);
3311
+ }
3312
+ // Ported from jquery-ui datepicker formatDate
3313
+ formatDate(date, format) {
3314
+ if (!date) {
3315
+ return '';
3316
+ }
3317
+ let iFormat;
3318
+ const lookAhead = (match) => {
3319
+ const matches = iFormat + 1 < format.length && format.charAt(iFormat + 1) === match;
3320
+ if (matches) {
3321
+ iFormat++;
3322
+ }
3323
+ return matches;
3324
+ }, formatNumber = (match, value, len) => {
3325
+ let num = '' + value;
3326
+ if (lookAhead(match)) {
3327
+ while (num.length < len) {
3328
+ num = '0' + num;
3329
+ }
3330
+ }
3331
+ return num;
3332
+ }, formatName = (match, value, shortNames, longNames) => {
3333
+ return lookAhead(match) ? longNames[value] : shortNames[value];
3334
+ };
3335
+ let output = '';
3336
+ let literal = false;
3337
+ if (date) {
3338
+ for (iFormat = 0; iFormat < format.length; iFormat++) {
3339
+ if (literal) {
3340
+ if (format.charAt(iFormat) === "'" && !lookAhead("'")) {
3341
+ literal = false;
3342
+ }
3343
+ else {
3344
+ output += format.charAt(iFormat);
3345
+ }
3346
+ }
3347
+ else {
3348
+ switch (format.charAt(iFormat)) {
3349
+ case 'd':
3350
+ output += formatNumber('d', date.getDate(), 2);
3351
+ break;
3352
+ case 'D':
3353
+ output += formatName('D', date.getDay(), this.getTranslation(TranslationKeys.DAY_NAMES_SHORT), this.getTranslation(TranslationKeys.DAY_NAMES));
3354
+ break;
3355
+ case 'o':
3356
+ output += formatNumber('o', Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
3357
+ break;
3358
+ case 'm':
3359
+ output += formatNumber('m', date.getMonth() + 1, 2);
3360
+ break;
3361
+ case 'M':
3362
+ output += formatName('M', date.getMonth(), this.getTranslation(TranslationKeys.MONTH_NAMES_SHORT), this.getTranslation(TranslationKeys.MONTH_NAMES));
3363
+ break;
3364
+ case 'y':
3365
+ output += lookAhead('y') ? date.getFullYear() : (date.getFullYear() % 100 < 10 ? '0' : '') + (date.getFullYear() % 100);
3366
+ break;
3367
+ case '@':
3368
+ output += date.getTime();
3369
+ break;
3370
+ case '!':
3371
+ output += date.getTime() * 10000 + this.ticksTo1970;
3372
+ break;
3373
+ case "'":
3374
+ if (lookAhead("'")) {
3375
+ output += "'";
3376
+ }
3377
+ else {
3378
+ literal = true;
3379
+ }
3380
+ break;
3381
+ default:
3382
+ output += format.charAt(iFormat);
3383
+ }
3384
+ }
3385
+ }
3386
+ }
3387
+ return output;
3388
+ }
3389
+ formatTime(date) {
3390
+ if (!date) {
3391
+ return '';
3392
+ }
3393
+ let output = '';
3394
+ let hours = date.getHours();
3395
+ let minutes = date.getMinutes();
3396
+ let seconds = date.getSeconds();
3397
+ if (this.hourFormat() == '12' && hours > 11 && hours != 12) {
3398
+ hours -= 12;
3399
+ }
3400
+ if (this.hourFormat() == '12') {
3401
+ output += hours === 0 ? 12 : hours < 10 ? '0' + hours : hours;
3402
+ }
3403
+ else {
3404
+ output += hours < 10 ? '0' + hours : hours;
3405
+ }
3406
+ output += ':';
3407
+ output += minutes < 10 ? '0' + minutes : minutes;
3408
+ if (this.showSeconds()) {
3409
+ output += ':';
3410
+ output += seconds < 10 ? '0' + seconds : seconds;
3411
+ }
3412
+ if (this.hourFormat() == '12') {
3413
+ output += date.getHours() > 11 ? ' PM' : ' AM';
3414
+ }
3415
+ return output;
3416
+ }
3417
+ parseTime(value) {
3418
+ let tokens = value.split(':');
3419
+ let validTokenLength = this.showSeconds() ? 3 : 2;
3420
+ if (tokens.length !== validTokenLength) {
3421
+ throw 'Invalid time';
3422
+ }
3423
+ let h = parseInt(tokens[0]);
3424
+ let m = parseInt(tokens[1]);
3425
+ let s = this.showSeconds() ? parseInt(tokens[2]) : null;
3426
+ if (isNaN(h) || isNaN(m) || h > 23 || m > 59 || (this.hourFormat() == '12' && h > 12) || (this.showSeconds() && (isNaN(s) || s > 59))) {
3427
+ throw 'Invalid time';
3428
+ }
3429
+ else {
3430
+ if (this.hourFormat() == '12') {
3431
+ if (h !== 12 && this.pm) {
3432
+ h += 12;
3433
+ }
3434
+ else if (!this.pm && h === 12) {
3435
+ h -= 12;
3436
+ }
3437
+ }
3438
+ return { hour: h, minute: m, second: s };
3439
+ }
3440
+ }
3441
+ // Ported from jquery-ui datepicker parseDate
3442
+ parseDate(value, format) {
3443
+ if (format == null || value == null) {
3444
+ throw 'Invalid arguments';
3445
+ }
3446
+ value = typeof value === 'object' ? value.toString() : value + '';
3447
+ if (value === '') {
3448
+ return null;
3449
+ }
3450
+ const shortYearCutoffValue = this.shortYearCutoff();
3451
+ let iFormat, dim, extra, iValue = 0, shortYearCutoff = typeof shortYearCutoffValue !== 'string' ? shortYearCutoffValue : (new Date().getFullYear() % 100) + parseInt(shortYearCutoffValue, 10), year = -1, month = -1, day = -1, doy = -1, literal = false, date, lookAhead = (match) => {
3452
+ let matches = iFormat + 1 < format.length && format.charAt(iFormat + 1) === match;
3453
+ if (matches) {
3454
+ iFormat++;
3455
+ }
3456
+ return matches;
3457
+ }, getNumber = (match) => {
3458
+ let isDoubled = lookAhead(match), size = match === '@' ? 14 : match === '!' ? 20 : match === 'y' && isDoubled ? 4 : match === 'o' ? 3 : 2, minSize = match === 'y' ? size : 1, digits = new RegExp('^\\d{' + minSize + ',' + size + '}'), num = value.substring(iValue).match(digits);
3459
+ if (!num) {
3460
+ throw 'Missing number at position ' + iValue;
3461
+ }
3462
+ iValue += num[0].length;
3463
+ return parseInt(num[0], 10);
3464
+ }, getName = (match, shortNames, longNames) => {
3465
+ let index = -1;
3466
+ let arr = lookAhead(match) ? longNames : shortNames;
3467
+ let names = [];
3468
+ for (let i = 0; i < arr.length; i++) {
3469
+ names.push([i, arr[i]]);
3470
+ }
3471
+ names.sort((a, b) => {
3472
+ return -(a[1].length - b[1].length);
3473
+ });
3474
+ for (let i = 0; i < names.length; i++) {
3475
+ let name = names[i][1];
3476
+ if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) {
3477
+ index = names[i][0];
3478
+ iValue += name.length;
3479
+ break;
3480
+ }
3481
+ }
3482
+ if (index !== -1) {
3483
+ return index + 1;
3484
+ }
3485
+ else {
3486
+ throw 'Unknown name at position ' + iValue;
3487
+ }
3488
+ }, checkLiteral = () => {
3489
+ if (value.charAt(iValue) !== format.charAt(iFormat)) {
3490
+ throw 'Unexpected literal at position ' + iValue;
3491
+ }
3492
+ iValue++;
3493
+ };
3494
+ if (this.view() === 'month') {
3495
+ day = 1;
3496
+ }
3497
+ for (iFormat = 0; iFormat < format.length; iFormat++) {
3498
+ if (literal) {
3499
+ if (format.charAt(iFormat) === "'" && !lookAhead("'")) {
3500
+ literal = false;
3501
+ }
3502
+ else {
3503
+ checkLiteral();
3504
+ }
3505
+ }
3506
+ else {
3507
+ switch (format.charAt(iFormat)) {
3508
+ case 'd':
3509
+ day = getNumber('d');
3510
+ break;
3511
+ case 'D':
3512
+ getName('D', this.getTranslation(TranslationKeys.DAY_NAMES_SHORT), this.getTranslation(TranslationKeys.DAY_NAMES));
3513
+ break;
3514
+ case 'o':
3515
+ doy = getNumber('o');
3516
+ break;
3517
+ case 'm':
3518
+ month = getNumber('m');
3519
+ break;
3520
+ case 'M':
3521
+ month = getName('M', this.getTranslation(TranslationKeys.MONTH_NAMES_SHORT), this.getTranslation(TranslationKeys.MONTH_NAMES));
3522
+ break;
3523
+ case 'y':
3524
+ year = getNumber('y');
3525
+ break;
3526
+ case '@':
3527
+ date = new Date(getNumber('@'));
3528
+ year = date.getFullYear();
3529
+ month = date.getMonth() + 1;
3530
+ day = date.getDate();
3531
+ break;
3532
+ case '!':
3533
+ date = new Date((getNumber('!') - this.ticksTo1970) / 10000);
3534
+ year = date.getFullYear();
3535
+ month = date.getMonth() + 1;
3536
+ day = date.getDate();
3537
+ break;
3538
+ case "'":
3539
+ if (lookAhead("'")) {
3540
+ checkLiteral();
3541
+ }
3542
+ else {
3543
+ literal = true;
3544
+ }
3545
+ break;
3546
+ default:
3547
+ checkLiteral();
3548
+ }
3549
+ }
3550
+ }
3551
+ if (iValue < value.length) {
3552
+ extra = value.substr(iValue);
3553
+ if (!/^\s+/.test(extra)) {
3554
+ throw 'Extra/unparsed characters found in date: ' + extra;
3555
+ }
3556
+ }
3557
+ if (year === -1) {
3558
+ year = new Date().getFullYear();
3559
+ }
3560
+ else if (year < 100) {
3561
+ year += new Date().getFullYear() - (new Date().getFullYear() % 100) + (year <= shortYearCutoff ? 0 : -100);
3562
+ }
3563
+ if (doy > -1) {
3564
+ month = 1;
3565
+ day = doy;
3566
+ do {
3567
+ dim = this.getDaysCountInMonth(year, month - 1);
3568
+ if (day <= dim) {
3569
+ break;
3570
+ }
3571
+ month++;
3572
+ day -= dim;
3573
+ } while (true);
3574
+ }
3575
+ if (this.view() === 'year') {
3576
+ month = month === -1 ? 1 : month;
3577
+ day = day === -1 ? 1 : day;
3578
+ }
3579
+ date = this.daylightSavingAdjust(new Date(year, month - 1, day));
3580
+ if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) {
3581
+ throw 'Invalid date'; // E.g. 31/02/00
3582
+ }
3583
+ return date;
3584
+ }
3585
+ daylightSavingAdjust(date) {
3586
+ if (!date) {
3587
+ return null;
3588
+ }
3589
+ date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
3590
+ return date;
3591
+ }
3592
+ isValidDateForTimeConstraints(selectedDate) {
3593
+ if (this.keepInvalid()) {
3594
+ return true; // If we are keeping invalid dates, we don't need to check for time constraints
3595
+ }
3596
+ return (!this.minDate() || selectedDate >= this.minDate()) && (!this.maxDate() || selectedDate <= this.maxDate());
3597
+ }
3598
+ onTodayButtonClick(event) {
3599
+ const date = new Date();
3600
+ const dateMeta = {
3601
+ day: date.getDate(),
3602
+ month: date.getMonth(),
3603
+ year: date.getFullYear(),
3604
+ otherMonth: date.getMonth() !== this.currentMonth || date.getFullYear() !== this.currentYear,
3605
+ today: true,
3606
+ selectable: true
3607
+ };
3608
+ this.createMonths(date.getMonth(), date.getFullYear());
3609
+ this.onDateSelect(event, dateMeta);
3610
+ this.onTodayClick.emit(date);
3611
+ }
3612
+ onClearButtonClick(event) {
3613
+ this.updateModel(null);
3614
+ this.updateInputfield();
3615
+ this.hideOverlay();
3616
+ this.onClearClick.emit(event);
3617
+ }
3618
+ createResponsiveStyle() {
3619
+ if (this.numberOfMonths() > 1 && this.responsiveOptions()) {
3620
+ if (!this.responsiveStyleElement) {
3621
+ this.responsiveStyleElement = this.renderer.createElement('style');
3622
+ this.responsiveStyleElement.type = 'text/css';
3623
+ setAttribute(this.responsiveStyleElement, 'nonce', this.config?.csp()?.nonce);
3624
+ this.renderer.appendChild(this.document.body, this.responsiveStyleElement);
3625
+ }
3626
+ let innerHTML = '';
3627
+ if (this.responsiveOptions()) {
3628
+ let responsiveOptions = [...(this.responsiveOptions() ?? [])].filter((o) => !!(o.breakpoint && o.numMonths)).sort((o1, o2) => -1 * o1.breakpoint.localeCompare(o2.breakpoint, undefined, { numeric: true }));
3629
+ for (let i = 0; i < responsiveOptions.length; i++) {
3630
+ let { breakpoint, numMonths } = responsiveOptions[i];
3631
+ let styles = `
3632
+ .h-datepicker[${this.attributeSelector}] .h-datepicker-group:nth-child(${numMonths}) .h-datepicker-next {
3633
+ display: inline-flex !important;
3634
+ }
3635
+ `;
3636
+ for (let j = numMonths; j < this.numberOfMonths(); j++) {
3637
+ styles += `
3638
+ .h-datepicker[${this.attributeSelector}] .h-datepicker-group:nth-child(${j + 1}) {
3639
+ display: none !important;
3640
+ }
3641
+ `;
3642
+ }
3643
+ innerHTML += `
3644
+ @media screen and (max-width: ${breakpoint}) {
3645
+ ${styles}
3646
+ }
3647
+ `;
3648
+ }
3649
+ }
3650
+ this.responsiveStyleElement.innerHTML = innerHTML;
3651
+ setAttribute(this.responsiveStyleElement, 'nonce', this.config?.csp()?.nonce);
3652
+ }
3653
+ }
3654
+ destroyResponsiveStyleElement() {
3655
+ if (this.responsiveStyleElement) {
3656
+ this.responsiveStyleElement.remove();
3657
+ this.responsiveStyleElement = null;
3658
+ }
3659
+ }
3660
+ bindDocumentClickListener() {
3661
+ if (!this.documentClickListener) {
3662
+ this.zone.runOutsideAngular(() => {
3663
+ const documentTarget = this.el ? this.el.nativeElement.ownerDocument : this.document;
3664
+ this.documentClickListener = this.renderer.listen(documentTarget, 'mousedown', (event) => {
3665
+ if (this.isOutsideClicked(event) && this.overlayVisible) {
3666
+ this.zone.run(() => {
3667
+ this.hideOverlay();
3668
+ this.onClickOutside.emit(event);
3669
+ this.cd.markForCheck();
3670
+ });
3671
+ }
3672
+ });
3673
+ });
3674
+ }
3675
+ }
3676
+ unbindDocumentClickListener() {
3677
+ if (this.documentClickListener) {
3678
+ this.documentClickListener();
3679
+ this.documentClickListener = null;
3680
+ }
3681
+ }
3682
+ bindDocumentResizeListener() {
3683
+ if (!this.documentResizeListener && !this.touchUI()) {
3684
+ this.documentResizeListener = this.renderer.listen(this.window, 'resize', this.onWindowResize.bind(this));
3685
+ }
3686
+ }
3687
+ unbindDocumentResizeListener() {
3688
+ if (this.documentResizeListener) {
3689
+ this.documentResizeListener();
3690
+ this.documentResizeListener = null;
3691
+ }
3692
+ }
3693
+ bindScrollListener() {
3694
+ if (!this.scrollHandler) {
3695
+ this.scrollHandler = new ConnectedOverlayScrollHandler(this.el?.nativeElement, () => {
3696
+ if (this.overlayVisible) {
3697
+ this.hideOverlay();
3698
+ }
3699
+ });
3700
+ }
3701
+ this.scrollHandler.bindScrollListener();
3702
+ }
3703
+ unbindScrollListener() {
3704
+ if (this.scrollHandler) {
3705
+ this.scrollHandler.unbindScrollListener();
3706
+ }
3707
+ }
3708
+ isOutsideClicked(event) {
3709
+ return !(this.el.nativeElement.isSameNode(event.target) || this.isNavIconClicked(event) || this.el.nativeElement.contains(event.target) || (this.overlay && this.overlay.contains(event.target)));
3710
+ }
3711
+ isNavIconClicked(event) {
3712
+ return hasClass(event.target, 'h-datepicker-prev-button') || hasClass(event.target, 'h-datepicker-prev-icon') || hasClass(event.target, 'h-datepicker-next-button') || hasClass(event.target, 'h-datepicker-next-icon');
3713
+ }
3714
+ onWindowResize() {
3715
+ if (this.overlayVisible && !isTouchDevice()) {
3716
+ this.hideOverlay();
3717
+ }
3718
+ }
3719
+ onOverlayHide() {
3720
+ this.currentView = this.view();
3721
+ if (this.mask) {
3722
+ this.destroyMask();
3723
+ }
3724
+ this.unbindDocumentClickListener();
3725
+ this.unbindDocumentResizeListener();
3726
+ this.unbindScrollListener();
3727
+ this.overlay = null;
3728
+ }
3729
+ /**
3730
+ * @override
3731
+ *
3732
+ * @see {@link BaseEditableHolder.writeControlValue}
3733
+ * Writes the value to the control.
3734
+ */
3735
+ writeControlValue(value) {
3736
+ this.value = value;
3737
+ if (this.value && typeof this.value === 'string') {
3738
+ try {
3739
+ this.value = this.parseValueFromString(this.value);
3740
+ }
3741
+ catch {
3742
+ if (this.keepInvalid()) {
3743
+ this.value = value;
3744
+ }
3745
+ }
3746
+ }
3747
+ this.updateInputfield();
3748
+ this.updateUI();
3749
+ this.cd.markForCheck();
3750
+ }
3751
+ onDestroy() {
3752
+ if (this.scrollHandler) {
3753
+ this.scrollHandler.destroy();
3754
+ this.scrollHandler = null;
3755
+ }
3756
+ if (this.translationSubscription) {
3757
+ this.translationSubscription.unsubscribe();
3758
+ }
3759
+ if (this.overlay && this.autoZIndex()) {
3760
+ ZIndexUtils.clear(this.overlay);
3761
+ }
3762
+ this.destroyResponsiveStyleElement();
3763
+ this.clearTimePickerTimer();
3764
+ this.restoreOverlayAppend();
3765
+ this.onOverlayHide();
3766
+ }
3767
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: DatePicker, deps: [{ token: i0.NgZone }, { token: i1.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
3768
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: DatePicker, isStandalone: true, selector: "h-datePicker, h-datepicker, h-date-picker", inputs: { iconDisplay: { classPropertyName: "iconDisplay", publicName: "iconDisplay", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, inputStyle: { classPropertyName: "inputStyle", publicName: "inputStyle", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, inputStyleClass: { classPropertyName: "inputStyleClass", publicName: "inputStyleClass", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, iconAriaLabel: { classPropertyName: "iconAriaLabel", publicName: "iconAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, multipleSeparator: { classPropertyName: "multipleSeparator", publicName: "multipleSeparator", isSignal: true, isRequired: false, transformFunction: null }, rangeSeparator: { classPropertyName: "rangeSeparator", publicName: "rangeSeparator", isSignal: true, isRequired: false, transformFunction: null }, inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null }, showOtherMonths: { classPropertyName: "showOtherMonths", publicName: "showOtherMonths", isSignal: true, isRequired: false, transformFunction: null }, selectOtherMonths: { classPropertyName: "selectOtherMonths", publicName: "selectOtherMonths", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, readonlyInput: { classPropertyName: "readonlyInput", publicName: "readonlyInput", isSignal: true, isRequired: false, transformFunction: null }, shortYearCutoff: { classPropertyName: "shortYearCutoff", publicName: "shortYearCutoff", isSignal: true, isRequired: false, transformFunction: null }, hourFormat: { classPropertyName: "hourFormat", publicName: "hourFormat", isSignal: true, isRequired: false, transformFunction: null }, timeOnly: { classPropertyName: "timeOnly", publicName: "timeOnly", isSignal: true, isRequired: false, transformFunction: null }, stepHour: { classPropertyName: "stepHour", publicName: "stepHour", isSignal: true, isRequired: false, transformFunction: null }, stepMinute: { classPropertyName: "stepMinute", publicName: "stepMinute", isSignal: true, isRequired: false, transformFunction: null }, stepSecond: { classPropertyName: "stepSecond", publicName: "stepSecond", isSignal: true, isRequired: false, transformFunction: null }, showSeconds: { classPropertyName: "showSeconds", publicName: "showSeconds", isSignal: true, isRequired: false, transformFunction: null }, showOnFocus: { classPropertyName: "showOnFocus", publicName: "showOnFocus", isSignal: true, isRequired: false, transformFunction: null }, showWeek: { classPropertyName: "showWeek", publicName: "showWeek", isSignal: true, isRequired: false, transformFunction: null }, startWeekFromFirstDayOfYear: { classPropertyName: "startWeekFromFirstDayOfYear", publicName: "startWeekFromFirstDayOfYear", isSignal: true, isRequired: false, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null }, dataType: { classPropertyName: "dataType", publicName: "dataType", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, maxDateCount: { classPropertyName: "maxDateCount", publicName: "maxDateCount", isSignal: true, isRequired: false, transformFunction: null }, showButtonBar: { classPropertyName: "showButtonBar", publicName: "showButtonBar", isSignal: true, isRequired: false, transformFunction: null }, todayButtonStyleClass: { classPropertyName: "todayButtonStyleClass", publicName: "todayButtonStyleClass", isSignal: true, isRequired: false, transformFunction: null }, clearButtonStyleClass: { classPropertyName: "clearButtonStyleClass", publicName: "clearButtonStyleClass", isSignal: true, isRequired: false, transformFunction: null }, autofocus: { classPropertyName: "autofocus", publicName: "autofocus", isSignal: true, isRequired: false, transformFunction: null }, autoZIndex: { classPropertyName: "autoZIndex", publicName: "autoZIndex", isSignal: true, isRequired: false, transformFunction: null }, baseZIndex: { classPropertyName: "baseZIndex", publicName: "baseZIndex", isSignal: true, isRequired: false, transformFunction: null }, panelStyleClass: { classPropertyName: "panelStyleClass", publicName: "panelStyleClass", isSignal: true, isRequired: false, transformFunction: null }, panelStyle: { classPropertyName: "panelStyle", publicName: "panelStyle", isSignal: true, isRequired: false, transformFunction: null }, keepInvalid: { classPropertyName: "keepInvalid", publicName: "keepInvalid", isSignal: true, isRequired: false, transformFunction: null }, hideOnDateTimeSelect: { classPropertyName: "hideOnDateTimeSelect", publicName: "hideOnDateTimeSelect", isSignal: true, isRequired: false, transformFunction: null }, touchUI: { classPropertyName: "touchUI", publicName: "touchUI", isSignal: true, isRequired: false, transformFunction: null }, timeSeparator: { classPropertyName: "timeSeparator", publicName: "timeSeparator", isSignal: true, isRequired: false, transformFunction: null }, focusTrap: { classPropertyName: "focusTrap", publicName: "focusTrap", isSignal: true, isRequired: false, transformFunction: null }, showTransitionOptions: { classPropertyName: "showTransitionOptions", publicName: "showTransitionOptions", isSignal: true, isRequired: false, transformFunction: null }, hideTransitionOptions: { classPropertyName: "hideTransitionOptions", publicName: "hideTransitionOptions", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: "disabledDates", publicName: "disabledDates", isSignal: true, isRequired: false, transformFunction: null }, disabledDays: { classPropertyName: "disabledDays", publicName: "disabledDays", isSignal: true, isRequired: false, transformFunction: null }, showTime: { classPropertyName: "showTime", publicName: "showTime", isSignal: true, isRequired: false, transformFunction: null }, responsiveOptions: { classPropertyName: "responsiveOptions", publicName: "responsiveOptions", isSignal: true, isRequired: false, transformFunction: null }, numberOfMonths: { classPropertyName: "numberOfMonths", publicName: "numberOfMonths", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null }, defaultDate: { classPropertyName: "defaultDate", publicName: "defaultDate", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, motionOptions: { classPropertyName: "motionOptions", publicName: "motionOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onFocus: "onFocus", onBlur: "onBlur", onClose: "onClose", onSelect: "onSelect", onClear: "onClear", onInput: "onInput", onTodayClick: "onTodayClick", onClearClick: "onClearClick", onMonthChange: "onMonthChange", onYearChange: "onYearChange", onClickOutside: "onClickOutside", onShow: "onShow" }, host: { properties: { "class": "cn(cx('root'), styleClass())", "style": "sx('root')" } }, providers: [DATEPICKER_VALUE_ACCESSOR, DatePickerStyle, { provide: DATEPICKER_INSTANCE, useExisting: DatePicker }, { provide: PARENT_INSTANCE, useExisting: DatePicker }], queries: [{ propertyName: "dateTemplate", first: true, predicate: ["date"], isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ["header"], isSignal: true }, { propertyName: "footerTemplate", first: true, predicate: ["footer"], isSignal: true }, { propertyName: "disabledDateTemplate", first: true, predicate: ["disabledDate"], isSignal: true }, { propertyName: "decadeTemplate", first: true, predicate: ["decade"], isSignal: true }, { propertyName: "previousIconTemplate", first: true, predicate: ["previousicon"], isSignal: true }, { propertyName: "nextIconTemplate", first: true, predicate: ["nexticon"], isSignal: true }, { propertyName: "triggerIconTemplate", first: true, predicate: ["triggericon"], isSignal: true }, { propertyName: "clearIconTemplate", first: true, predicate: ["clearicon"], isSignal: true }, { propertyName: "decrementIconTemplate", first: true, predicate: ["decrementicon"], isSignal: true }, { propertyName: "incrementIconTemplate", first: true, predicate: ["incrementicon"], isSignal: true }, { propertyName: "inputIconTemplate", first: true, predicate: ["inputicon"], isSignal: true }, { propertyName: "buttonBarTemplate", first: true, predicate: ["buttonbar"], isSignal: true }, { propertyName: "templates", predicate: HelixTemplate, isSignal: true }], viewQueries: [{ propertyName: "inputfieldViewChild", first: true, predicate: ["inputfield"], descendants: true, isSignal: true }, { propertyName: "contentViewChild", first: true, predicate: ["contentWrapper"], descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i2.Bind }], ngImport: i0, template: "@if (!inline()) {\n <input\n #inputfield\n hInputText\n data-h-maskable\n [pSize]=\"size()\"\n [attr.size]=\"inputSize()\"\n type=\"text\"\n role=\"combobox\"\n [attr.id]=\"inputId()\"\n [attr.name]=\"name()\"\n [attr.aria-required]=\"required()\"\n aria-autocomplete=\"none\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n [attr.aria-controls]=\"overlayVisible ? panelId : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-label]=\"ariaLabel()\"\n [value]=\"inputFieldValue\"\n (focus)=\"onInputFocus($event)\"\n (keydown)=\"onInputKeydown($event)\"\n (click)=\"onInputClick()\"\n (blur)=\"onInputBlur($event)\"\n [attr.required]=\"required() ? '' : undefined\"\n [attr.readonly]=\"readonlyInput() ? '' : undefined\"\n [attr.disabled]=\"$disabled() ? '' : undefined\"\n (input)=\"onUserInput($event)\"\n [ngStyle]=\"inputStyle()\"\n [class]=\"cn(cx('pcInputText'), inputStyleClass())\"\n [attr.placeholder]=\"placeholder()\"\n [attr.tabindex]=\"tabindex()\"\n [attr.inputmode]=\"touchUI() ? 'off' : null\"\n autocomplete=\"off\"\n [hAutoFocus]=\"autofocus()\"\n [variant]=\"$variant()\"\n [fluid]=\"hasFluid\"\n [invalid]=\"invalid()\"\n [pt]=\"ptm('pcInputText')\"\n [unstyled]=\"unstyled()\"\n />\n @if (showClear() && !$disabled() && inputfieldViewChild()?.nativeElement?.value) {\n @if (!clearIconTemplate() && !_clearIconTemplate) {\n <svg data-h-icon=\"times\" [class]=\"cx('clearIcon')\" [hBind]=\"ptm('inputIcon')\" (click)=\"clear()\" />\n }\n @if (clearIconTemplate() || _clearIconTemplate) {\n <span [class]=\"cx('clearIcon')\" [hBind]=\"ptm('inputIcon')\" (click)=\"clear()\">\n <ng-template *ngTemplateOutlet=\"clearIconTemplate() || _clearIconTemplate\"></ng-template>\n </span>\n }\n }\n @if (showIcon() && iconDisplay() === 'button') {\n <button\n type=\"button\"\n [attr.aria-label]=\"iconButtonAriaLabel\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n [attr.aria-controls]=\"overlayVisible ? panelId : null\"\n (click)=\"onButtonClick($event, inputfield)\"\n [class]=\"cx('dropdown')\"\n [disabled]=\"$disabled()\"\n tabindex=\"0\"\n [hBind]=\"ptm('dropdown')\"\n >\n @if (icon()) {\n <span [ngClass]=\"icon()\" [hBind]=\"ptm('dropdownIcon')\"></span>\n }\n @if (!icon()) {\n @if (!triggerIconTemplate() && !_triggerIconTemplate) {\n <svg data-h-icon=\"calendar\" [hBind]=\"ptm('dropdownIcon')\" />\n }\n <ng-template *ngTemplateOutlet=\"triggerIconTemplate() || _triggerIconTemplate\"></ng-template>\n }\n </button>\n }\n @if (iconDisplay() === 'input' && showIcon()) {\n <span [class]=\"cx('inputIconContainer')\" [hBind]=\"ptm('inputIconContainer')\" [attr.data-h]=\"inputIconDataP\">\n @if (!inputIconTemplate() && !_inputIconTemplate) {\n <svg data-h-icon=\"calendar\" (click)=\"onButtonClick($event)\" [class]=\"cx('inputIcon')\" [hBind]=\"ptm('inputIcon')\" />\n }\n <ng-container *ngTemplateOutlet=\"inputIconTemplate() || _inputIconTemplate; context: { clickCallBack: onButtonClick.bind(this) }\"></ng-container>\n </span>\n }\n}\n<h-motion [visible]=\"inline() || overlayVisible\" name=\"h-anchored-overlay\" [appear]=\"!inline()\" [options]=\"computedMotionOptions()\" (onBeforeEnter)=\"onOverlayBeforeEnter($event)\" (onAfterLeave)=\"onOverlayAfterLeave($event)\">\n <div\n #contentWrapper\n [attr.id]=\"panelId\"\n [ngStyle]=\"panelStyle()\"\n [class]=\"cn(cx('panel'), panelStyleClass())\"\n [attr.aria-label]=\"getTranslation('chooseDate')\"\n [attr.role]=\"inline() ? null : 'dialog'\"\n [attr.aria-modal]=\"inline() ? null : 'true'\"\n (click)=\"onOverlayClick($event)\"\n [hBind]=\"ptm('panel')\"\n >\n <ng-content select=\"h-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate() || _headerTemplate\"></ng-container>\n @if (!timeOnly()) {\n <div [class]=\"cx('calendarContainer')\" [hBind]=\"ptm('calendarContainer')\">\n @for (month of months; track month; let i = $index) {\n <div [class]=\"cx('calendar')\" [hBind]=\"ptm('calendar')\">\n <div [class]=\"cx('header')\" [hBind]=\"ptm('header')\">\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n [styleClass]=\"cx('pcPrevButton')\"\n (onClick)=\"onPrevButtonClick($event)\"\n [ngStyle]=\"{ visibility: i === 0 ? 'visible' : 'hidden' }\"\n type=\"button\"\n [ariaLabel]=\"prevIconAriaLabel\"\n [pt]=\"ptm('pcPrevButton')\"\n [attr.data-pc-group-section]=\"'navigator'\"\n >\n <ng-template #icon>\n @if (!previousIconTemplate() && !_previousIconTemplate) {\n <svg data-h-icon=\"chevron-left\" />\n }\n @if (previousIconTemplate() || _previousIconTemplate) {\n <span>\n <ng-template *ngTemplateOutlet=\"previousIconTemplate() || _previousIconTemplate\"></ng-template>\n </span>\n }\n </ng-template>\n </h-button>\n <div [class]=\"cx('title')\" [hBind]=\"ptm('title')\">\n @if (currentView === 'date') {\n <button\n type=\"button\"\n (click)=\"switchToMonthView($event)\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n [class]=\"cx('selectMonth')\"\n [attr.disabled]=\"switchViewButtonDisabled() ? '' : undefined\"\n [attr.aria-label]=\"this.getTranslation('chooseMonth')\"\n hRipple\n [hBind]=\"ptm('selectMonth')\"\n [attr.data-pc-group-section]=\"'navigator'\"\n >\n {{ getMonthName(month.month) }}\n </button>\n }\n @if (currentView !== 'year') {\n <button\n type=\"button\"\n (click)=\"switchToYearView($event)\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n [class]=\"cx('selectYear')\"\n [attr.disabled]=\"switchViewButtonDisabled() ? '' : undefined\"\n [attr.aria-label]=\"getTranslation('chooseYear')\"\n hRipple\n [hBind]=\"ptm('selectYear')\"\n [attr.data-pc-group-section]=\"'navigator'\"\n >\n {{ getYear(month) }}\n </button>\n }\n @if (currentView === 'year') {\n <span [class]=\"cx('decade')\" [hBind]=\"ptm('decade')\">\n @if (!decadeTemplate() && !_decadeTemplate) {\n {{ yearPickerValues()[0] }} - {{ yearPickerValues()[yearPickerValues().length - 1] }}\n }\n <ng-container *ngTemplateOutlet=\"decadeTemplate() || _decadeTemplate; context: { $implicit: yearPickerValues }\"></ng-container>\n </span>\n }\n </div>\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n [styleClass]=\"cx('pcNextButton')\"\n (onClick)=\"onNextButtonClick($event)\"\n [ngStyle]=\"{ visibility: i === months.length - 1 ? 'visible' : 'hidden' }\"\n [ariaLabel]=\"nextIconAriaLabel\"\n [pt]=\"ptm('pcNextButton')\"\n [attr.data-pc-group-section]=\"'navigator'\"\n >\n <ng-template #icon>\n @if (!nextIconTemplate() && !_nextIconTemplate) {\n <svg data-h-icon=\"chevron-right\" />\n }\n @if (nextIconTemplate() || _nextIconTemplate) {\n <ng-template *ngTemplateOutlet=\"nextIconTemplate() || _nextIconTemplate\"></ng-template>\n }\n </ng-template>\n </h-button>\n </div>\n @if (currentView === 'date') {\n <table [class]=\"cx('dayView')\" role=\"grid\" [hBind]=\"ptm('table')\">\n <thead [hBind]=\"ptm('tableHeader')\">\n <tr [hBind]=\"ptm('tableHeaderRow')\">\n @if (showWeek()) {\n <th [class]=\"cx('weekHeader')\" [hBind]=\"ptm('weekHeader')\">\n <span [hBind]=\"ptm('weekHeaderLabel')\">{{ getTranslation('weekHeader') }}</span>\n </th>\n }\n @for (weekDay of weekDays; track weekDay; let begin = $first; let end = $last) {\n <th [class]=\"cx('weekDayCell')\" scope=\"col\" [hBind]=\"ptm('weekDayCell')\">\n <span [class]=\"cx('weekDay')\" [hBind]=\"ptm('weekDay')\">{{ weekDay }}</span>\n </th>\n }\n </tr>\n </thead>\n <tbody [hBind]=\"ptm('tableBody')\">\n @for (week of month.dates; track week; let j = $index) {\n <tr [hBind]=\"ptm('tableBodyRow')\">\n @if (showWeek()) {\n <td [class]=\"cx('weekNumber')\" [hBind]=\"ptm('weekNumber')\">\n <span [class]=\"cx('weekLabelContainer')\" [hBind]=\"ptm('weekLabelContainer')\">\n {{ month.weekNumbers[j] }}\n </span>\n </td>\n }\n @for (date of week; track date) {\n <td [attr.aria-label]=\"date.day\" [class]=\"cx('dayCell', { date })\" [hBind]=\"ptm('dayCell')\">\n @if (date.otherMonth ? showOtherMonths() : true) {\n <span\n [ngClass]=\"dayClass(date)\"\n (click)=\"onDateSelect($event, date)\"\n draggable=\"false\"\n [attr.data-date]=\"formatDateKey(formatDateMetaToDate(date))\"\n (keydown)=\"onDateCellKeydown($event, date, i)\"\n hRipple\n [hBind]=\"ptm('day')\"\n >\n @if (!dateTemplate() && !_dateTemplate && (date.selectable || (!disabledDateTemplate() && !_disabledDateTemplate))) {\n {{ date.day }}\n }\n @if (date.selectable || (!disabledDateTemplate() && !_disabledDateTemplate)) {\n <ng-container *ngTemplateOutlet=\"dateTemplate() || _dateTemplate; context: { $implicit: date }\"></ng-container>\n }\n @if (!date.selectable) {\n <ng-container *ngTemplateOutlet=\"disabledDateTemplate() || _disabledDateTemplate; context: { $implicit: date }\"></ng-container>\n }\n </span>\n @if (isSelected(date)) {\n <div class=\"h-hidden-accessible\" aria-live=\"polite\">\n {{ date.day }}\n </div>\n }\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n }\n </div>\n @if (currentView === 'month') {\n <div [class]=\"cx('monthView')\" [hBind]=\"ptm('monthView')\">\n @for (m of monthPickerValues(); track m; let i = $index) {\n <span (click)=\"onMonthSelect($event, i)\" (keydown)=\"onMonthCellKeydown($event, i)\" [class]=\"cx('month', { month: m, index: i })\" hRipple [hBind]=\"ptm('month')\">\n {{ m }}\n @if (isMonthSelected(i)) {\n <div class=\"h-hidden-accessible\" aria-live=\"polite\">\n {{ m }}\n </div>\n }\n </span>\n }\n </div>\n }\n @if (currentView === 'year') {\n <div [class]=\"cx('yearView')\" [hBind]=\"ptm('yearView')\">\n @for (y of yearPickerValues(); track y) {\n <span (click)=\"onYearSelect($event, y)\" (keydown)=\"onYearCellKeydown($event, y)\" [class]=\"cx('year', { year: y })\" hRipple [hBind]=\"ptm('year')\">\n {{ y }}\n @if (isYearSelected(y)) {\n <div class=\"h-hidden-accessible\" aria-live=\"polite\">\n {{ y }}\n </div>\n }\n </span>\n }\n </div>\n }\n }\n @if ((showTime() || timeOnly()) && currentView === 'date') {\n <div [class]=\"cx('timePicker')\" [hBind]=\"ptm('timePicker')\">\n <div [class]=\"cx('hourPicker')\" [hBind]=\"ptm('hourPicker')\">\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n [styleClass]=\"cx('pcIncrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"incrementHour($event)\"\n (keydown.space)=\"incrementHour($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 0, 1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('nextHour')\"\n [pt]=\"ptm('pcIncrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!incrementIconTemplate() && !_incrementIconTemplate) {\n <svg data-h-icon=\"chevron-up\" [hBind]=\"ptm('pcIncrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate() || _incrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n <span [hBind]=\"ptm('hour')\">@if (currentHour < 10) {\n 0\n }{{ currentHour }}</span>\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n [styleClass]=\"cx('pcDecrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"decrementHour($event)\"\n (keydown.space)=\"decrementHour($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 0, -1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('prevHour')\"\n [pt]=\"ptm('pcDecrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!decrementIconTemplate() && !_decrementIconTemplate) {\n <svg data-h-icon=\"chevron-down\" [hBind]=\"ptm('pcDecrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate() || _decrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n </div>\n <div class=\"h-datepicker-separator\" [hBind]=\"ptm('separatorContainer')\">\n <span [hBind]=\"ptm('separator')\">{{ timeSeparator() }}</span>\n </div>\n <div [class]=\"cx('minutePicker')\" [hBind]=\"ptm('minutePicker')\">\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n [styleClass]=\"cx('pcIncrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"incrementMinute($event)\"\n (keydown.space)=\"incrementMinute($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 1, 1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('nextMinute')\"\n [pt]=\"ptm('pcIncrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!incrementIconTemplate() && !_incrementIconTemplate) {\n <svg data-h-icon=\"chevron-up\" [hBind]=\"ptm('pcIncrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate() || _incrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n <span [hBind]=\"ptm('minute')\">@if (currentMinute < 10) {\n 0\n }{{ currentMinute }}</span>\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n [styleClass]=\"cx('pcDecrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"decrementMinute($event)\"\n (keydown.space)=\"decrementMinute($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 1, -1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('prevMinute')\"\n [pt]=\"ptm('pcDecrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!decrementIconTemplate() && !_decrementIconTemplate) {\n <svg data-h-icon=\"chevron-down\" [hBind]=\"ptm('pcDecrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate() || _decrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n </div>\n @if (showSeconds()) {\n <div [class]=\"cx('separator')\" [hBind]=\"ptm('separatorContainer')\">\n <span [hBind]=\"ptm('separator')\">{{ timeSeparator() }}</span>\n </div>\n }\n @if (showSeconds()) {\n <div [class]=\"cx('secondPicker')\" [hBind]=\"ptm('secondPicker')\">\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n [styleClass]=\"cx('pcIncrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"incrementSecond($event)\"\n (keydown.space)=\"incrementSecond($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 2, 1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('nextSecond')\"\n [pt]=\"ptm('pcIncrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!incrementIconTemplate() && !_incrementIconTemplate) {\n <svg data-h-icon=\"chevron-up\" [hBind]=\"ptm('pcIncrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate() || _incrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n <span [hBind]=\"ptm('second')\">@if (currentSecond < 10) {\n 0\n }{{ currentSecond }}</span>\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n [styleClass]=\"cx('pcDecrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"decrementSecond($event)\"\n (keydown.space)=\"decrementSecond($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 2, -1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('prevSecond')\"\n [pt]=\"ptm('pcDecrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!decrementIconTemplate() && !_decrementIconTemplate) {\n <svg data-h-icon=\"chevron-down\" [hBind]=\"ptm('pcDecrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate() || _decrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n </div>\n }\n @if (hourFormat() == '12') {\n <div [class]=\"cx('separator')\" [hBind]=\"ptm('separatorContainer')\">\n <span [hBind]=\"ptm('separator')\">{{ timeSeparator() }}</span>\n </div>\n }\n @if (hourFormat() == '12') {\n <div [class]=\"cx('ampmPicker')\" [hBind]=\"ptm('ampmPicker')\">\n <h-button\n text\n rounded\n severity=\"secondary\"\n [styleClass]=\"cx('pcIncrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (onClick)=\"toggleAMPM($event)\"\n (keydown.enter)=\"toggleAMPM($event)\"\n [attr.aria-label]=\"getTranslation('am')\"\n [pt]=\"ptm('pcIncrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!incrementIconTemplate() && !_incrementIconTemplate) {\n <svg data-h-icon=\"chevron-up\" [hBind]=\"ptm('pcIncrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate() || _incrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n <span [hBind]=\"ptm('ampm')\">{{ pm ? 'PM' : 'AM' }}</span>\n <h-button\n text\n rounded\n severity=\"secondary\"\n [styleClass]=\"cx('pcDecrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (click)=\"toggleAMPM($event)\"\n (keydown.enter)=\"toggleAMPM($event)\"\n [attr.aria-label]=\"getTranslation('pm')\"\n [pt]=\"ptm('pcDecrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!decrementIconTemplate() && !_decrementIconTemplate) {\n <svg data-h-icon=\"chevron-down\" [hBind]=\"ptm('pcDecrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate() || _decrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n </div>\n }\n </div>\n }\n @if (showButtonBar()) {\n <div [class]=\"cx('buttonbar')\" [hBind]=\"ptm('buttonbar')\">\n @if (buttonBarTemplate() || _buttonBarTemplate) {\n <ng-container *ngTemplateOutlet=\"buttonBarTemplate() || _buttonBarTemplate; context: { todayCallback: onTodayButtonClick.bind(this), clearCallback: onClearButtonClick.bind(this) }\"></ng-container>\n } @else {\n <h-button\n size=\"small\"\n [styleClass]=\"cx('pcTodayButton')\"\n [label]=\"getTranslation('today')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (onClick)=\"onTodayButtonClick($event)\"\n [ngClass]=\"todayButtonStyleClass()\"\n severity=\"secondary\"\n variant=\"text\"\n size=\"small\"\n [pt]=\"ptm('pcTodayButton')\"\n [attr.data-pc-group-section]=\"'button'\"\n />\n <h-button\n size=\"small\"\n [styleClass]=\"cx('pcClearButton')\"\n [label]=\"getTranslation('clear')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (onClick)=\"onClearButtonClick($event)\"\n [ngClass]=\"clearButtonStyleClass()\"\n severity=\"secondary\"\n variant=\"text\"\n size=\"small\"\n [pt]=\"ptm('pcClearButton')\"\n [attr.data-pc-group-section]=\"'button'\"\n />\n }\n </div>\n }\n <ng-content select=\"h-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate() || _footerTemplate\"></ng-container>\n </div>\n</h-motion>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: Button, selector: "h-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: Ripple, selector: "[hRipple]" }, { kind: "component", type: ChevronLeftIcon, selector: "[data-h-icon=\"chevron-left\"]" }, { kind: "component", type: ChevronRightIcon, selector: "[data-h-icon=\"chevron-right\"]" }, { kind: "component", type: ChevronUpIcon, selector: "[data-h-icon=\"chevron-up\"]" }, { kind: "component", type: ChevronDownIcon, selector: "[data-h-icon=\"chevron-down\"]" }, { kind: "component", type: TimesIcon, selector: "[data-h-icon=\"times\"]" }, { kind: "component", type: CalendarIcon, selector: "[data-h-icon=\"calendar\"]" }, { kind: "directive", type: AutoFocus, selector: "[hAutoFocus]", inputs: ["hAutoFocus"] }, { kind: "directive", type: InputText, selector: "[hInputText]", inputs: ["hostName", "ptInputText", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: BindModule }, { kind: "directive", type: i2.Bind, selector: "[hBind]", inputs: ["hBind"] }, { kind: "ngmodule", type: MotionModule }, { kind: "component", type: i4.Motion, selector: "h-motion", inputs: ["visible", "mountOnEnter", "unmountOnLeave", "name", "type", "safe", "disabled", "appear", "enter", "leave", "duration", "hideStrategy", "enterFromClass", "enterToClass", "enterActiveClass", "leaveFromClass", "leaveToClass", "leaveActiveClass", "options"], outputs: ["onBeforeEnter", "onEnter", "onAfterEnter", "onEnterCancelled", "onBeforeLeave", "onLeave", "onAfterLeave", "onLeaveCancelled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3769
+ }
3770
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: DatePicker, decorators: [{
3771
+ type: Component,
3772
+ args: [{ selector: 'h-datePicker, h-datepicker, h-date-picker', standalone: true, imports: [CommonModule, Button, Ripple, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, TimesIcon, CalendarIcon, AutoFocus, InputText, SharedModule, BindModule, MotionModule], hostDirectives: [Bind], providers: [DATEPICKER_VALUE_ACCESSOR, DatePickerStyle, { provide: DATEPICKER_INSTANCE, useExisting: DatePicker }, { provide: PARENT_INSTANCE, useExisting: DatePicker }], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
3773
+ '[class]': "cn(cx('root'), styleClass())",
3774
+ '[style]': "sx('root')"
3775
+ }, template: "@if (!inline()) {\n <input\n #inputfield\n hInputText\n data-h-maskable\n [pSize]=\"size()\"\n [attr.size]=\"inputSize()\"\n type=\"text\"\n role=\"combobox\"\n [attr.id]=\"inputId()\"\n [attr.name]=\"name()\"\n [attr.aria-required]=\"required()\"\n aria-autocomplete=\"none\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n [attr.aria-controls]=\"overlayVisible ? panelId : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-label]=\"ariaLabel()\"\n [value]=\"inputFieldValue\"\n (focus)=\"onInputFocus($event)\"\n (keydown)=\"onInputKeydown($event)\"\n (click)=\"onInputClick()\"\n (blur)=\"onInputBlur($event)\"\n [attr.required]=\"required() ? '' : undefined\"\n [attr.readonly]=\"readonlyInput() ? '' : undefined\"\n [attr.disabled]=\"$disabled() ? '' : undefined\"\n (input)=\"onUserInput($event)\"\n [ngStyle]=\"inputStyle()\"\n [class]=\"cn(cx('pcInputText'), inputStyleClass())\"\n [attr.placeholder]=\"placeholder()\"\n [attr.tabindex]=\"tabindex()\"\n [attr.inputmode]=\"touchUI() ? 'off' : null\"\n autocomplete=\"off\"\n [hAutoFocus]=\"autofocus()\"\n [variant]=\"$variant()\"\n [fluid]=\"hasFluid\"\n [invalid]=\"invalid()\"\n [pt]=\"ptm('pcInputText')\"\n [unstyled]=\"unstyled()\"\n />\n @if (showClear() && !$disabled() && inputfieldViewChild()?.nativeElement?.value) {\n @if (!clearIconTemplate() && !_clearIconTemplate) {\n <svg data-h-icon=\"times\" [class]=\"cx('clearIcon')\" [hBind]=\"ptm('inputIcon')\" (click)=\"clear()\" />\n }\n @if (clearIconTemplate() || _clearIconTemplate) {\n <span [class]=\"cx('clearIcon')\" [hBind]=\"ptm('inputIcon')\" (click)=\"clear()\">\n <ng-template *ngTemplateOutlet=\"clearIconTemplate() || _clearIconTemplate\"></ng-template>\n </span>\n }\n }\n @if (showIcon() && iconDisplay() === 'button') {\n <button\n type=\"button\"\n [attr.aria-label]=\"iconButtonAriaLabel\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n [attr.aria-controls]=\"overlayVisible ? panelId : null\"\n (click)=\"onButtonClick($event, inputfield)\"\n [class]=\"cx('dropdown')\"\n [disabled]=\"$disabled()\"\n tabindex=\"0\"\n [hBind]=\"ptm('dropdown')\"\n >\n @if (icon()) {\n <span [ngClass]=\"icon()\" [hBind]=\"ptm('dropdownIcon')\"></span>\n }\n @if (!icon()) {\n @if (!triggerIconTemplate() && !_triggerIconTemplate) {\n <svg data-h-icon=\"calendar\" [hBind]=\"ptm('dropdownIcon')\" />\n }\n <ng-template *ngTemplateOutlet=\"triggerIconTemplate() || _triggerIconTemplate\"></ng-template>\n }\n </button>\n }\n @if (iconDisplay() === 'input' && showIcon()) {\n <span [class]=\"cx('inputIconContainer')\" [hBind]=\"ptm('inputIconContainer')\" [attr.data-h]=\"inputIconDataP\">\n @if (!inputIconTemplate() && !_inputIconTemplate) {\n <svg data-h-icon=\"calendar\" (click)=\"onButtonClick($event)\" [class]=\"cx('inputIcon')\" [hBind]=\"ptm('inputIcon')\" />\n }\n <ng-container *ngTemplateOutlet=\"inputIconTemplate() || _inputIconTemplate; context: { clickCallBack: onButtonClick.bind(this) }\"></ng-container>\n </span>\n }\n}\n<h-motion [visible]=\"inline() || overlayVisible\" name=\"h-anchored-overlay\" [appear]=\"!inline()\" [options]=\"computedMotionOptions()\" (onBeforeEnter)=\"onOverlayBeforeEnter($event)\" (onAfterLeave)=\"onOverlayAfterLeave($event)\">\n <div\n #contentWrapper\n [attr.id]=\"panelId\"\n [ngStyle]=\"panelStyle()\"\n [class]=\"cn(cx('panel'), panelStyleClass())\"\n [attr.aria-label]=\"getTranslation('chooseDate')\"\n [attr.role]=\"inline() ? null : 'dialog'\"\n [attr.aria-modal]=\"inline() ? null : 'true'\"\n (click)=\"onOverlayClick($event)\"\n [hBind]=\"ptm('panel')\"\n >\n <ng-content select=\"h-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate() || _headerTemplate\"></ng-container>\n @if (!timeOnly()) {\n <div [class]=\"cx('calendarContainer')\" [hBind]=\"ptm('calendarContainer')\">\n @for (month of months; track month; let i = $index) {\n <div [class]=\"cx('calendar')\" [hBind]=\"ptm('calendar')\">\n <div [class]=\"cx('header')\" [hBind]=\"ptm('header')\">\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n [styleClass]=\"cx('pcPrevButton')\"\n (onClick)=\"onPrevButtonClick($event)\"\n [ngStyle]=\"{ visibility: i === 0 ? 'visible' : 'hidden' }\"\n type=\"button\"\n [ariaLabel]=\"prevIconAriaLabel\"\n [pt]=\"ptm('pcPrevButton')\"\n [attr.data-pc-group-section]=\"'navigator'\"\n >\n <ng-template #icon>\n @if (!previousIconTemplate() && !_previousIconTemplate) {\n <svg data-h-icon=\"chevron-left\" />\n }\n @if (previousIconTemplate() || _previousIconTemplate) {\n <span>\n <ng-template *ngTemplateOutlet=\"previousIconTemplate() || _previousIconTemplate\"></ng-template>\n </span>\n }\n </ng-template>\n </h-button>\n <div [class]=\"cx('title')\" [hBind]=\"ptm('title')\">\n @if (currentView === 'date') {\n <button\n type=\"button\"\n (click)=\"switchToMonthView($event)\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n [class]=\"cx('selectMonth')\"\n [attr.disabled]=\"switchViewButtonDisabled() ? '' : undefined\"\n [attr.aria-label]=\"this.getTranslation('chooseMonth')\"\n hRipple\n [hBind]=\"ptm('selectMonth')\"\n [attr.data-pc-group-section]=\"'navigator'\"\n >\n {{ getMonthName(month.month) }}\n </button>\n }\n @if (currentView !== 'year') {\n <button\n type=\"button\"\n (click)=\"switchToYearView($event)\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n [class]=\"cx('selectYear')\"\n [attr.disabled]=\"switchViewButtonDisabled() ? '' : undefined\"\n [attr.aria-label]=\"getTranslation('chooseYear')\"\n hRipple\n [hBind]=\"ptm('selectYear')\"\n [attr.data-pc-group-section]=\"'navigator'\"\n >\n {{ getYear(month) }}\n </button>\n }\n @if (currentView === 'year') {\n <span [class]=\"cx('decade')\" [hBind]=\"ptm('decade')\">\n @if (!decadeTemplate() && !_decadeTemplate) {\n {{ yearPickerValues()[0] }} - {{ yearPickerValues()[yearPickerValues().length - 1] }}\n }\n <ng-container *ngTemplateOutlet=\"decadeTemplate() || _decadeTemplate; context: { $implicit: yearPickerValues }\"></ng-container>\n </span>\n }\n </div>\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n [styleClass]=\"cx('pcNextButton')\"\n (onClick)=\"onNextButtonClick($event)\"\n [ngStyle]=\"{ visibility: i === months.length - 1 ? 'visible' : 'hidden' }\"\n [ariaLabel]=\"nextIconAriaLabel\"\n [pt]=\"ptm('pcNextButton')\"\n [attr.data-pc-group-section]=\"'navigator'\"\n >\n <ng-template #icon>\n @if (!nextIconTemplate() && !_nextIconTemplate) {\n <svg data-h-icon=\"chevron-right\" />\n }\n @if (nextIconTemplate() || _nextIconTemplate) {\n <ng-template *ngTemplateOutlet=\"nextIconTemplate() || _nextIconTemplate\"></ng-template>\n }\n </ng-template>\n </h-button>\n </div>\n @if (currentView === 'date') {\n <table [class]=\"cx('dayView')\" role=\"grid\" [hBind]=\"ptm('table')\">\n <thead [hBind]=\"ptm('tableHeader')\">\n <tr [hBind]=\"ptm('tableHeaderRow')\">\n @if (showWeek()) {\n <th [class]=\"cx('weekHeader')\" [hBind]=\"ptm('weekHeader')\">\n <span [hBind]=\"ptm('weekHeaderLabel')\">{{ getTranslation('weekHeader') }}</span>\n </th>\n }\n @for (weekDay of weekDays; track weekDay; let begin = $first; let end = $last) {\n <th [class]=\"cx('weekDayCell')\" scope=\"col\" [hBind]=\"ptm('weekDayCell')\">\n <span [class]=\"cx('weekDay')\" [hBind]=\"ptm('weekDay')\">{{ weekDay }}</span>\n </th>\n }\n </tr>\n </thead>\n <tbody [hBind]=\"ptm('tableBody')\">\n @for (week of month.dates; track week; let j = $index) {\n <tr [hBind]=\"ptm('tableBodyRow')\">\n @if (showWeek()) {\n <td [class]=\"cx('weekNumber')\" [hBind]=\"ptm('weekNumber')\">\n <span [class]=\"cx('weekLabelContainer')\" [hBind]=\"ptm('weekLabelContainer')\">\n {{ month.weekNumbers[j] }}\n </span>\n </td>\n }\n @for (date of week; track date) {\n <td [attr.aria-label]=\"date.day\" [class]=\"cx('dayCell', { date })\" [hBind]=\"ptm('dayCell')\">\n @if (date.otherMonth ? showOtherMonths() : true) {\n <span\n [ngClass]=\"dayClass(date)\"\n (click)=\"onDateSelect($event, date)\"\n draggable=\"false\"\n [attr.data-date]=\"formatDateKey(formatDateMetaToDate(date))\"\n (keydown)=\"onDateCellKeydown($event, date, i)\"\n hRipple\n [hBind]=\"ptm('day')\"\n >\n @if (!dateTemplate() && !_dateTemplate && (date.selectable || (!disabledDateTemplate() && !_disabledDateTemplate))) {\n {{ date.day }}\n }\n @if (date.selectable || (!disabledDateTemplate() && !_disabledDateTemplate)) {\n <ng-container *ngTemplateOutlet=\"dateTemplate() || _dateTemplate; context: { $implicit: date }\"></ng-container>\n }\n @if (!date.selectable) {\n <ng-container *ngTemplateOutlet=\"disabledDateTemplate() || _disabledDateTemplate; context: { $implicit: date }\"></ng-container>\n }\n </span>\n @if (isSelected(date)) {\n <div class=\"h-hidden-accessible\" aria-live=\"polite\">\n {{ date.day }}\n </div>\n }\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n }\n </div>\n @if (currentView === 'month') {\n <div [class]=\"cx('monthView')\" [hBind]=\"ptm('monthView')\">\n @for (m of monthPickerValues(); track m; let i = $index) {\n <span (click)=\"onMonthSelect($event, i)\" (keydown)=\"onMonthCellKeydown($event, i)\" [class]=\"cx('month', { month: m, index: i })\" hRipple [hBind]=\"ptm('month')\">\n {{ m }}\n @if (isMonthSelected(i)) {\n <div class=\"h-hidden-accessible\" aria-live=\"polite\">\n {{ m }}\n </div>\n }\n </span>\n }\n </div>\n }\n @if (currentView === 'year') {\n <div [class]=\"cx('yearView')\" [hBind]=\"ptm('yearView')\">\n @for (y of yearPickerValues(); track y) {\n <span (click)=\"onYearSelect($event, y)\" (keydown)=\"onYearCellKeydown($event, y)\" [class]=\"cx('year', { year: y })\" hRipple [hBind]=\"ptm('year')\">\n {{ y }}\n @if (isYearSelected(y)) {\n <div class=\"h-hidden-accessible\" aria-live=\"polite\">\n {{ y }}\n </div>\n }\n </span>\n }\n </div>\n }\n }\n @if ((showTime() || timeOnly()) && currentView === 'date') {\n <div [class]=\"cx('timePicker')\" [hBind]=\"ptm('timePicker')\">\n <div [class]=\"cx('hourPicker')\" [hBind]=\"ptm('hourPicker')\">\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n [styleClass]=\"cx('pcIncrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"incrementHour($event)\"\n (keydown.space)=\"incrementHour($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 0, 1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('nextHour')\"\n [pt]=\"ptm('pcIncrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!incrementIconTemplate() && !_incrementIconTemplate) {\n <svg data-h-icon=\"chevron-up\" [hBind]=\"ptm('pcIncrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate() || _incrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n <span [hBind]=\"ptm('hour')\">@if (currentHour < 10) {\n 0\n }{{ currentHour }}</span>\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n [styleClass]=\"cx('pcDecrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"decrementHour($event)\"\n (keydown.space)=\"decrementHour($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 0, -1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('prevHour')\"\n [pt]=\"ptm('pcDecrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!decrementIconTemplate() && !_decrementIconTemplate) {\n <svg data-h-icon=\"chevron-down\" [hBind]=\"ptm('pcDecrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate() || _decrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n </div>\n <div class=\"h-datepicker-separator\" [hBind]=\"ptm('separatorContainer')\">\n <span [hBind]=\"ptm('separator')\">{{ timeSeparator() }}</span>\n </div>\n <div [class]=\"cx('minutePicker')\" [hBind]=\"ptm('minutePicker')\">\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n [styleClass]=\"cx('pcIncrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"incrementMinute($event)\"\n (keydown.space)=\"incrementMinute($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 1, 1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('nextMinute')\"\n [pt]=\"ptm('pcIncrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!incrementIconTemplate() && !_incrementIconTemplate) {\n <svg data-h-icon=\"chevron-up\" [hBind]=\"ptm('pcIncrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate() || _incrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n <span [hBind]=\"ptm('minute')\">@if (currentMinute < 10) {\n 0\n }{{ currentMinute }}</span>\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n [styleClass]=\"cx('pcDecrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"decrementMinute($event)\"\n (keydown.space)=\"decrementMinute($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 1, -1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('prevMinute')\"\n [pt]=\"ptm('pcDecrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!decrementIconTemplate() && !_decrementIconTemplate) {\n <svg data-h-icon=\"chevron-down\" [hBind]=\"ptm('pcDecrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate() || _decrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n </div>\n @if (showSeconds()) {\n <div [class]=\"cx('separator')\" [hBind]=\"ptm('separatorContainer')\">\n <span [hBind]=\"ptm('separator')\">{{ timeSeparator() }}</span>\n </div>\n }\n @if (showSeconds()) {\n <div [class]=\"cx('secondPicker')\" [hBind]=\"ptm('secondPicker')\">\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n [styleClass]=\"cx('pcIncrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"incrementSecond($event)\"\n (keydown.space)=\"incrementSecond($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 2, 1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('nextSecond')\"\n [pt]=\"ptm('pcIncrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!incrementIconTemplate() && !_incrementIconTemplate) {\n <svg data-h-icon=\"chevron-up\" [hBind]=\"ptm('pcIncrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate() || _incrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n <span [hBind]=\"ptm('second')\">@if (currentSecond < 10) {\n 0\n }{{ currentSecond }}</span>\n <h-button\n rounded\n variant=\"text\"\n severity=\"secondary\"\n [styleClass]=\"cx('pcDecrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"decrementSecond($event)\"\n (keydown.space)=\"decrementSecond($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 2, -1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('prevSecond')\"\n [pt]=\"ptm('pcDecrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!decrementIconTemplate() && !_decrementIconTemplate) {\n <svg data-h-icon=\"chevron-down\" [hBind]=\"ptm('pcDecrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate() || _decrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n </div>\n }\n @if (hourFormat() == '12') {\n <div [class]=\"cx('separator')\" [hBind]=\"ptm('separatorContainer')\">\n <span [hBind]=\"ptm('separator')\">{{ timeSeparator() }}</span>\n </div>\n }\n @if (hourFormat() == '12') {\n <div [class]=\"cx('ampmPicker')\" [hBind]=\"ptm('ampmPicker')\">\n <h-button\n text\n rounded\n severity=\"secondary\"\n [styleClass]=\"cx('pcIncrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (onClick)=\"toggleAMPM($event)\"\n (keydown.enter)=\"toggleAMPM($event)\"\n [attr.aria-label]=\"getTranslation('am')\"\n [pt]=\"ptm('pcIncrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!incrementIconTemplate() && !_incrementIconTemplate) {\n <svg data-h-icon=\"chevron-up\" [hBind]=\"ptm('pcIncrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate() || _incrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n <span [hBind]=\"ptm('ampm')\">{{ pm ? 'PM' : 'AM' }}</span>\n <h-button\n text\n rounded\n severity=\"secondary\"\n [styleClass]=\"cx('pcDecrementButton')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (click)=\"toggleAMPM($event)\"\n (keydown.enter)=\"toggleAMPM($event)\"\n [attr.aria-label]=\"getTranslation('pm')\"\n [pt]=\"ptm('pcDecrementButton')\"\n [attr.data-pc-group-section]=\"'timepickerbutton'\"\n >\n <ng-template #icon>\n @if (!decrementIconTemplate() && !_decrementIconTemplate) {\n <svg data-h-icon=\"chevron-down\" [hBind]=\"ptm('pcDecrementButton')['icon']\" />\n }\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate() || _decrementIconTemplate\"></ng-template>\n </ng-template>\n </h-button>\n </div>\n }\n </div>\n }\n @if (showButtonBar()) {\n <div [class]=\"cx('buttonbar')\" [hBind]=\"ptm('buttonbar')\">\n @if (buttonBarTemplate() || _buttonBarTemplate) {\n <ng-container *ngTemplateOutlet=\"buttonBarTemplate() || _buttonBarTemplate; context: { todayCallback: onTodayButtonClick.bind(this), clearCallback: onClearButtonClick.bind(this) }\"></ng-container>\n } @else {\n <h-button\n size=\"small\"\n [styleClass]=\"cx('pcTodayButton')\"\n [label]=\"getTranslation('today')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (onClick)=\"onTodayButtonClick($event)\"\n [ngClass]=\"todayButtonStyleClass()\"\n severity=\"secondary\"\n variant=\"text\"\n size=\"small\"\n [pt]=\"ptm('pcTodayButton')\"\n [attr.data-pc-group-section]=\"'button'\"\n />\n <h-button\n size=\"small\"\n [styleClass]=\"cx('pcClearButton')\"\n [label]=\"getTranslation('clear')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (onClick)=\"onClearButtonClick($event)\"\n [ngClass]=\"clearButtonStyleClass()\"\n severity=\"secondary\"\n variant=\"text\"\n size=\"small\"\n [pt]=\"ptm('pcClearButton')\"\n [attr.data-pc-group-section]=\"'button'\"\n />\n }\n </div>\n }\n <ng-content select=\"h-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate() || _footerTemplate\"></ng-container>\n </div>\n</h-motion>\n" }]
3776
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.OverlayService }], propDecorators: { iconDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconDisplay", required: false }] }], styleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleClass", required: false }] }], inputStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputStyle", required: false }] }], inputId: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputId", required: false }] }], inputStyleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputStyleClass", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledBy", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], iconAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconAriaLabel", required: false }] }], dateFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateFormat", required: false }] }], multipleSeparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "multipleSeparator", required: false }] }], rangeSeparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "rangeSeparator", required: false }] }], inline: [{ type: i0.Input, args: [{ isSignal: true, alias: "inline", required: false }] }], showOtherMonths: [{ type: i0.Input, args: [{ isSignal: true, alias: "showOtherMonths", required: false }] }], selectOtherMonths: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectOtherMonths", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], readonlyInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonlyInput", required: false }] }], shortYearCutoff: [{ type: i0.Input, args: [{ isSignal: true, alias: "shortYearCutoff", required: false }] }], hourFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "hourFormat", required: false }] }], timeOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeOnly", required: false }] }], stepHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepHour", required: false }] }], stepMinute: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepMinute", required: false }] }], stepSecond: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepSecond", required: false }] }], showSeconds: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSeconds", required: false }] }], showOnFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "showOnFocus", required: false }] }], showWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "showWeek", required: false }] }], startWeekFromFirstDayOfYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "startWeekFromFirstDayOfYear", required: false }] }], showClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "showClear", required: false }] }], dataType: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataType", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], maxDateCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDateCount", required: false }] }], showButtonBar: [{ type: i0.Input, args: [{ isSignal: true, alias: "showButtonBar", required: false }] }], todayButtonStyleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "todayButtonStyleClass", required: false }] }], clearButtonStyleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearButtonStyleClass", required: false }] }], autofocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autofocus", required: false }] }], autoZIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoZIndex", required: false }] }], baseZIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "baseZIndex", required: false }] }], panelStyleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelStyleClass", required: false }] }], panelStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelStyle", required: false }] }], keepInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "keepInvalid", required: false }] }], hideOnDateTimeSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideOnDateTimeSelect", required: false }] }], touchUI: [{ type: i0.Input, args: [{ isSignal: true, alias: "touchUI", required: false }] }], timeSeparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeSeparator", required: false }] }], focusTrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusTrap", required: false }] }], showTransitionOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTransitionOptions", required: false }] }], hideTransitionOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideTransitionOptions", required: false }] }], tabindex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabindex", required: false }] }], minDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "minDate", required: false }] }], maxDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxDate", required: false }] }], disabledDates: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledDates", required: false }] }], disabledDays: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledDays", required: false }] }], showTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTime", required: false }] }], responsiveOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "responsiveOptions", required: false }] }], numberOfMonths: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfMonths", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], view: [{ type: i0.Input, args: [{ isSignal: true, alias: "view", required: false }] }], defaultDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultDate", required: false }] }], appendTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "appendTo", required: false }] }], motionOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "motionOptions", required: false }] }], onFocus: [{ type: i0.Output, args: ["onFocus"] }], onBlur: [{ type: i0.Output, args: ["onBlur"] }], onClose: [{ type: i0.Output, args: ["onClose"] }], onSelect: [{ type: i0.Output, args: ["onSelect"] }], onClear: [{ type: i0.Output, args: ["onClear"] }], onInput: [{ type: i0.Output, args: ["onInput"] }], onTodayClick: [{ type: i0.Output, args: ["onTodayClick"] }], onClearClick: [{ type: i0.Output, args: ["onClearClick"] }], onMonthChange: [{ type: i0.Output, args: ["onMonthChange"] }], onYearChange: [{ type: i0.Output, args: ["onYearChange"] }], onClickOutside: [{ type: i0.Output, args: ["onClickOutside"] }], onShow: [{ type: i0.Output, args: ["onShow"] }], inputfieldViewChild: [{ type: i0.ViewChild, args: ['inputfield', { isSignal: true }] }], contentViewChild: [{ type: i0.ViewChild, args: ['contentWrapper', { isSignal: true }] }], dateTemplate: [{ type: i0.ContentChild, args: ['date', { ...{ descendants: false }, isSignal: true }] }], headerTemplate: [{ type: i0.ContentChild, args: ['header', { ...{ descendants: false }, isSignal: true }] }], footerTemplate: [{ type: i0.ContentChild, args: ['footer', { ...{ descendants: false }, isSignal: true }] }], disabledDateTemplate: [{ type: i0.ContentChild, args: ['disabledDate', { ...{ descendants: false }, isSignal: true }] }], decadeTemplate: [{ type: i0.ContentChild, args: ['decade', { ...{ descendants: false }, isSignal: true }] }], previousIconTemplate: [{ type: i0.ContentChild, args: ['previousicon', { ...{ descendants: false }, isSignal: true }] }], nextIconTemplate: [{ type: i0.ContentChild, args: ['nexticon', { ...{ descendants: false }, isSignal: true }] }], triggerIconTemplate: [{ type: i0.ContentChild, args: ['triggericon', { ...{ descendants: false }, isSignal: true }] }], clearIconTemplate: [{ type: i0.ContentChild, args: ['clearicon', { ...{ descendants: false }, isSignal: true }] }], decrementIconTemplate: [{ type: i0.ContentChild, args: ['decrementicon', { ...{ descendants: false }, isSignal: true }] }], incrementIconTemplate: [{ type: i0.ContentChild, args: ['incrementicon', { ...{ descendants: false }, isSignal: true }] }], inputIconTemplate: [{ type: i0.ContentChild, args: ['inputicon', { ...{ descendants: false }, isSignal: true }] }], buttonBarTemplate: [{ type: i0.ContentChild, args: ['buttonbar', { ...{ descendants: false }, isSignal: true }] }], templates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => HelixTemplate), { isSignal: true }] }] } });
3777
+ class DatePickerModule {
3778
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: DatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3779
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: DatePickerModule, imports: [DatePicker, SharedModule], exports: [DatePicker, SharedModule] });
3780
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: DatePickerModule, imports: [DatePicker, SharedModule, SharedModule] });
3781
+ }
3782
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: DatePickerModule, decorators: [{
3783
+ type: NgModule,
3784
+ args: [{
3785
+ imports: [DatePicker, SharedModule],
3786
+ exports: [DatePicker, SharedModule]
3787
+ }]
3788
+ }] });
3789
+
3790
+ /**
3791
+ * Generated bundle index. Do not edit.
3792
+ */
3793
+
3794
+ export { DATEPICKER_VALUE_ACCESSOR, DatePicker, DatePickerClasses, DatePickerModule, DatePickerStyle };
3795
+ //# sourceMappingURL=gravionlabs-helix-core-datepicker.mjs.map