primeng 19.1.3 → 20.0.0-beta.1

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