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