cax-design-system 2.8.2 → 2.8.4

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 (1067) hide show
  1. package/README.md +1 -1
  2. package/accordion/accordion.d.ts +224 -0
  3. package/accordion/accordion.interface.d.ts +49 -0
  4. package/accordion/accordion.module.d.ts +13 -0
  5. package/accordion/index.d.ts +3 -286
  6. package/accordion/public_api.d.ts +3 -0
  7. package/animate/animate.d.ts +40 -0
  8. package/animate/index.d.ts +3 -41
  9. package/animate/public_api.d.ts +1 -0
  10. package/animateonscroll/animateonscroll.d.ts +75 -0
  11. package/animateonscroll/index.d.ts +3 -75
  12. package/animateonscroll/public_api.d.ts +1 -0
  13. package/api/blockableui.d.ts +10 -0
  14. package/api/caxconfig.d.ts +24 -0
  15. package/api/confirmaeventtype.d.ts +8 -0
  16. package/api/confirmation.d.ts +96 -0
  17. package/api/confirmationservice.d.ts +30 -0
  18. package/api/contextmenuservice.d.ts +11 -0
  19. package/api/filtermatchmode.d.ts +22 -0
  20. package/api/filtermetadata.d.ts +18 -0
  21. package/api/filteroperator.d.ts +4 -0
  22. package/api/filterservice.d.ts +10 -0
  23. package/api/index.d.ts +3 -1856
  24. package/api/lazyloadevent.d.ts +47 -0
  25. package/api/lazyloadmeta.d.ts +19 -0
  26. package/api/megamenuitem.d.ts +130 -0
  27. package/api/menuitem.d.ts +176 -0
  28. package/api/message.d.ts +30 -0
  29. package/api/messageservice.d.ts +32 -0
  30. package/api/overlayoptions.d.ts +188 -0
  31. package/api/overlayservice.d.ts +9 -0
  32. package/api/primeicons.d.ts +313 -0
  33. package/api/public_api.d.ts +34 -0
  34. package/api/scrolleroptions.d.ts +116 -0
  35. package/api/selectitem.d.ts +12 -0
  36. package/api/selectitemgroup.d.ts +10 -0
  37. package/api/shared.d.ts +24 -0
  38. package/api/sortevent.d.ts +12 -0
  39. package/api/sortmeta.d.ts +8 -0
  40. package/api/tablestate.d.ts +60 -0
  41. package/api/themegeneratorservice.d.ts +12 -0
  42. package/api/tooltipoptions.d.ts +69 -0
  43. package/api/translation.d.ts +135 -0
  44. package/api/translationkeys.d.ts +50 -0
  45. package/api/treedragdropservice.d.ts +12 -0
  46. package/api/treenode.d.ts +91 -0
  47. package/api/treenodedragevent.d.ts +27 -0
  48. package/api/treetablenode.d.ts +36 -0
  49. package/autocomplete/autocomplete.d.ts +616 -0
  50. package/autocomplete/autocomplete.interface.d.ts +164 -0
  51. package/autocomplete/autocomplete.module.d.ts +20 -0
  52. package/autocomplete/index.d.ts +3 -799
  53. package/autocomplete/public_api.d.ts +3 -0
  54. package/autofocus/autofocus.d.ts +28 -0
  55. package/autofocus/index.d.ts +3 -29
  56. package/autofocus/public_api.d.ts +1 -0
  57. package/avatar/avatar.d.ts +73 -0
  58. package/avatar/avatar.module.d.ts +7 -0
  59. package/avatar/index.d.ts +3 -80
  60. package/avatar/public_api.d.ts +2 -0
  61. package/avatargroup/avatargroup.d.ts +21 -0
  62. package/avatargroup/avatargroup.module.d.ts +9 -0
  63. package/avatargroup/index.d.ts +3 -30
  64. package/avatargroup/public_api.d.ts +2 -0
  65. package/badge/badge.d.ts +21 -0
  66. package/badge/badge.directive.d.ts +35 -0
  67. package/badge/badge.module.d.ts +10 -0
  68. package/badge/index.d.ts +5 -67
  69. package/badge/public_api.d.ts +3 -0
  70. package/baseicon/baseicon.d.ts +15 -0
  71. package/baseicon/index.d.ts +5 -18
  72. package/baseicon/public_api.d.ts +1 -0
  73. package/blockui/blockui.d.ts +64 -0
  74. package/blockui/blockui.interface.d.ts +11 -0
  75. package/blockui/index.d.ts +3 -77
  76. package/blockui/public_api.d.ts +2 -0
  77. package/breadcrumb/breadcrumb.d.ts +55 -0
  78. package/breadcrumb/breadcrumb.interface.d.ts +38 -0
  79. package/breadcrumb/breadcrumb.module.d.ts +13 -0
  80. package/breadcrumb/index.d.ts +3 -105
  81. package/breadcrumb/public_api.d.ts +3 -0
  82. package/button/button.d.ts +85 -0
  83. package/button/button.directive.d.ts +49 -0
  84. package/button/button.interface.d.ts +30 -0
  85. package/button/button.module.d.ts +9 -0
  86. package/button/index.d.ts +3 -170
  87. package/button/public_api.d.ts +4 -0
  88. package/buttongroup/buttongroup.d.ts +11 -0
  89. package/buttongroup/index.d.ts +5 -14
  90. package/buttongroup/public_api.d.ts +1 -0
  91. package/calendar/calendar.d.ts +722 -0
  92. package/calendar/calendar.interface.d.ts +204 -0
  93. package/calendar/calendar.module.d.ts +9 -0
  94. package/calendar/index.d.ts +3 -935
  95. package/calendar/public_api.d.ts +3 -0
  96. package/card/card.d.ts +53 -0
  97. package/card/card.interface.d.ts +27 -0
  98. package/card/card.module.d.ts +11 -0
  99. package/card/index.d.ts +3 -92
  100. package/card/public_api.d.ts +3 -0
  101. package/carousel/carousel.d.ts +227 -0
  102. package/carousel/carousel.interface.d.ts +63 -0
  103. package/carousel/index.d.ts +3 -290
  104. package/carousel/public_api.d.ts +2 -0
  105. package/cascadeselect/cascadeselect.d.ts +435 -0
  106. package/cascadeselect/cascadeselect.interface.d.ts +115 -0
  107. package/cascadeselect/cascadeselect.module.d.ts +15 -0
  108. package/cascadeselect/index.d.ts +3 -564
  109. package/cascadeselect/public_api.d.ts +3 -0
  110. package/chart/chart.d.ts +87 -0
  111. package/chart/index.d.ts +3 -88
  112. package/chart/public_api.d.ts +1 -0
  113. package/checkbox/checkbox.d.ts +168 -0
  114. package/checkbox/checkbox.interface.d.ts +26 -0
  115. package/checkbox/checkbox.module.d.ts +10 -0
  116. package/checkbox/index.d.ts +3 -204
  117. package/checkbox/public_api.d.ts +3 -0
  118. package/chip/chip.d.ts +38 -0
  119. package/chip/chip.interface.d.ts +15 -0
  120. package/chip/chip.module.d.ts +10 -0
  121. package/chip/index.d.ts +3 -63
  122. package/chip/public_api.d.ts +3 -0
  123. package/chips/chips.d.ts +233 -0
  124. package/chips/chips.interface.d.ts +58 -0
  125. package/chips/chips.module.d.ts +14 -0
  126. package/chips/index.d.ts +3 -305
  127. package/chips/public_api.d.ts +3 -0
  128. package/colorpicker/colorpicker.d.ts +240 -0
  129. package/colorpicker/colorpicker.interface.d.ts +15 -0
  130. package/colorpicker/colorpicker.module.d.ts +9 -0
  131. package/colorpicker/index.d.ts +3 -265
  132. package/colorpicker/public_api.d.ts +3 -0
  133. package/commentbox/commentbox.d.ts +120 -0
  134. package/commentbox/commentbox.module.d.ts +17 -0
  135. package/commentbox/index.d.ts +5 -138
  136. package/commentbox/public_api.d.ts +2 -0
  137. package/confirmdialog/confirmdialog.d.ts +281 -0
  138. package/confirmdialog/confirmdialog.interface.d.ts +39 -0
  139. package/confirmdialog/confirmdialog.module.d.ts +15 -0
  140. package/confirmdialog/index.d.ts +3 -336
  141. package/confirmdialog/public_api.d.ts +3 -0
  142. package/confirmpopup/confirmpopup.d.ts +119 -0
  143. package/confirmpopup/confirmpopup.interface.d.ts +27 -0
  144. package/confirmpopup/index.d.ts +3 -148
  145. package/confirmpopup/public_api.d.ts +2 -0
  146. package/contextmenu/contextmenu.d.ts +260 -0
  147. package/contextmenu/index.d.ts +3 -261
  148. package/contextmenu/public_api.d.ts +1 -0
  149. package/dataview/dataview.d.ts +274 -0
  150. package/dataview/dataview.interface.d.ts +183 -0
  151. package/dataview/index.d.ts +3 -457
  152. package/dataview/public_api.d.ts +2 -0
  153. package/defer/defer.d.ts +39 -0
  154. package/defer/index.d.ts +3 -40
  155. package/defer/public_api.d.ts +1 -0
  156. package/dialog/dialog.d.ts +364 -0
  157. package/dialog/dialog.interface.d.ts +31 -0
  158. package/dialog/dialog.module.d.ts +15 -0
  159. package/dialog/index.d.ts +3 -411
  160. package/dialog/public_api.d.ts +3 -0
  161. package/divider/divider.d.ts +49 -0
  162. package/divider/divider.module.d.ts +7 -0
  163. package/divider/index.d.ts +3 -56
  164. package/divider/public_api.d.ts +2 -0
  165. package/dock/dock.d.ts +115 -0
  166. package/dock/dock.interface.d.ts +19 -0
  167. package/dock/index.d.ts +3 -136
  168. package/dock/public_api.d.ts +2 -0
  169. package/dom/connectedoverlayscrollhandler.d.ts +9 -0
  170. package/dom/domhandler.d.ts +95 -0
  171. package/dom/index.d.ts +3 -105
  172. package/dom/public_api.d.ts +2 -0
  173. package/dragdrop/dragdrop.d.ts +112 -0
  174. package/dragdrop/dragdrop.module.d.ts +8 -0
  175. package/dragdrop/index.d.ts +3 -120
  176. package/dragdrop/public_api.d.ts +2 -0
  177. package/dropdown/dropdown-item.d.ts +30 -0
  178. package/dropdown/dropdown.d.ts +628 -0
  179. package/dropdown/dropdown.interface.d.ts +154 -0
  180. package/dropdown/dropdown.module.d.ts +11 -0
  181. package/dropdown/index.d.ts +3 -818
  182. package/dropdown/public_api.d.ts +4 -0
  183. package/dynamicdialog/dialogservice.d.ts +35 -0
  184. package/dynamicdialog/dynamicdialog-config.d.ts +221 -0
  185. package/dynamicdialog/dynamicdialog-injector.d.ts +7 -0
  186. package/dynamicdialog/dynamicdialog-ref.d.ts +101 -0
  187. package/dynamicdialog/dynamicdialog.d.ts +124 -0
  188. package/dynamicdialog/dynamicdialogcontent.d.ts +8 -0
  189. package/dynamicdialog/index.d.ts +3 -490
  190. package/dynamicdialog/public_api.d.ts +6 -0
  191. package/editor/editor.d.ts +104 -0
  192. package/editor/editor.interface.d.ts +64 -0
  193. package/editor/editor.module.d.ts +9 -0
  194. package/editor/index.d.ts +3 -177
  195. package/editor/public_api.d.ts +3 -0
  196. package/fesm2022/cax-design-system-accordion.mjs +12 -11
  197. package/fesm2022/cax-design-system-accordion.mjs.map +1 -1
  198. package/fesm2022/cax-design-system-animate.mjs +8 -7
  199. package/fesm2022/cax-design-system-animate.mjs.map +1 -1
  200. package/fesm2022/cax-design-system-animateonscroll.mjs +8 -7
  201. package/fesm2022/cax-design-system-animateonscroll.mjs.map +1 -1
  202. package/fesm2022/cax-design-system-api.mjs +37 -37
  203. package/fesm2022/cax-design-system-api.mjs.map +1 -1
  204. package/fesm2022/cax-design-system-autocomplete.mjs +8 -8
  205. package/fesm2022/cax-design-system-autocomplete.mjs.map +1 -1
  206. package/fesm2022/cax-design-system-autofocus.mjs +7 -7
  207. package/fesm2022/cax-design-system-autofocus.mjs.map +1 -1
  208. package/fesm2022/cax-design-system-avatar.mjs +7 -7
  209. package/fesm2022/cax-design-system-avatar.mjs.map +1 -1
  210. package/fesm2022/cax-design-system-avatargroup.mjs +8 -8
  211. package/fesm2022/cax-design-system-avatargroup.mjs.map +1 -1
  212. package/fesm2022/cax-design-system-badge.mjs +12 -11
  213. package/fesm2022/cax-design-system-badge.mjs.map +1 -1
  214. package/fesm2022/cax-design-system-baseicon.mjs +3 -3
  215. package/fesm2022/cax-design-system-baseicon.mjs.map +1 -1
  216. package/fesm2022/cax-design-system-blockui.mjs +8 -8
  217. package/fesm2022/cax-design-system-blockui.mjs.map +1 -1
  218. package/fesm2022/cax-design-system-breadcrumb.mjs +8 -8
  219. package/fesm2022/cax-design-system-breadcrumb.mjs.map +1 -1
  220. package/fesm2022/cax-design-system-button.mjs +11 -11
  221. package/fesm2022/cax-design-system-button.mjs.map +1 -1
  222. package/fesm2022/cax-design-system-buttongroup.mjs +9 -8
  223. package/fesm2022/cax-design-system-buttongroup.mjs.map +1 -1
  224. package/fesm2022/cax-design-system-calendar.mjs +8 -8
  225. package/fesm2022/cax-design-system-calendar.mjs.map +1 -1
  226. package/fesm2022/cax-design-system-card.mjs +8 -8
  227. package/fesm2022/cax-design-system-card.mjs.map +1 -1
  228. package/fesm2022/cax-design-system-carousel.mjs +8 -8
  229. package/fesm2022/cax-design-system-carousel.mjs.map +1 -1
  230. package/fesm2022/cax-design-system-cascadeselect.mjs +12 -12
  231. package/fesm2022/cax-design-system-cascadeselect.mjs.map +1 -1
  232. package/fesm2022/cax-design-system-chart.mjs +8 -7
  233. package/fesm2022/cax-design-system-chart.mjs.map +1 -1
  234. package/fesm2022/cax-design-system-checkbox.mjs +8 -8
  235. package/fesm2022/cax-design-system-checkbox.mjs.map +1 -1
  236. package/fesm2022/cax-design-system-chip.mjs +8 -8
  237. package/fesm2022/cax-design-system-chip.mjs.map +1 -1
  238. package/fesm2022/cax-design-system-chips.mjs +7 -7
  239. package/fesm2022/cax-design-system-chips.mjs.map +1 -1
  240. package/fesm2022/cax-design-system-colorpicker.mjs +8 -8
  241. package/fesm2022/cax-design-system-colorpicker.mjs.map +1 -1
  242. package/fesm2022/cax-design-system-commentbox.mjs +8 -8
  243. package/fesm2022/cax-design-system-commentbox.mjs.map +1 -1
  244. package/fesm2022/cax-design-system-confirmdialog.mjs +8 -8
  245. package/fesm2022/cax-design-system-confirmdialog.mjs.map +1 -1
  246. package/fesm2022/cax-design-system-confirmpopup.mjs +8 -8
  247. package/fesm2022/cax-design-system-confirmpopup.mjs.map +1 -1
  248. package/fesm2022/cax-design-system-contextmenu.mjs +12 -11
  249. package/fesm2022/cax-design-system-contextmenu.mjs.map +1 -1
  250. package/fesm2022/cax-design-system-dataview.mjs +12 -11
  251. package/fesm2022/cax-design-system-dataview.mjs.map +1 -1
  252. package/fesm2022/cax-design-system-defer.mjs +8 -7
  253. package/fesm2022/cax-design-system-defer.mjs.map +1 -1
  254. package/fesm2022/cax-design-system-dialog.mjs +8 -8
  255. package/fesm2022/cax-design-system-dialog.mjs.map +1 -1
  256. package/fesm2022/cax-design-system-divider.mjs +7 -7
  257. package/fesm2022/cax-design-system-divider.mjs.map +1 -1
  258. package/fesm2022/cax-design-system-dock.mjs +8 -8
  259. package/fesm2022/cax-design-system-dock.mjs.map +1 -1
  260. package/fesm2022/cax-design-system-dom.mjs.map +1 -1
  261. package/fesm2022/cax-design-system-dragdrop.mjs +12 -10
  262. package/fesm2022/cax-design-system-dragdrop.mjs.map +1 -1
  263. package/fesm2022/cax-design-system-dropdown.mjs +10 -10
  264. package/fesm2022/cax-design-system-dropdown.mjs.map +1 -1
  265. package/fesm2022/cax-design-system-dynamicdialog.mjs +16 -15
  266. package/fesm2022/cax-design-system-dynamicdialog.mjs.map +1 -1
  267. package/fesm2022/cax-design-system-editor.mjs +8 -8
  268. package/fesm2022/cax-design-system-editor.mjs.map +1 -1
  269. package/fesm2022/cax-design-system-fieldset.mjs +8 -8
  270. package/fesm2022/cax-design-system-fieldset.mjs.map +1 -1
  271. package/fesm2022/cax-design-system-fileupload.mjs +8 -8
  272. package/fesm2022/cax-design-system-fileupload.mjs.map +1 -1
  273. package/fesm2022/cax-design-system-floatlabel.mjs +9 -8
  274. package/fesm2022/cax-design-system-floatlabel.mjs.map +1 -1
  275. package/fesm2022/cax-design-system-focustrap.mjs +8 -7
  276. package/fesm2022/cax-design-system-focustrap.mjs.map +1 -1
  277. package/fesm2022/cax-design-system-galleria.mjs +28 -24
  278. package/fesm2022/cax-design-system-galleria.mjs.map +1 -1
  279. package/fesm2022/cax-design-system-iconfield.mjs +8 -8
  280. package/fesm2022/cax-design-system-iconfield.mjs.map +1 -1
  281. package/fesm2022/cax-design-system-icons-angledoubledown.mjs +3 -3
  282. package/fesm2022/cax-design-system-icons-angledoubledown.mjs.map +1 -1
  283. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs +3 -3
  284. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs.map +1 -1
  285. package/fesm2022/cax-design-system-icons-angledoubleright.mjs +3 -3
  286. package/fesm2022/cax-design-system-icons-angledoubleright.mjs.map +1 -1
  287. package/fesm2022/cax-design-system-icons-angledoubleup.mjs +3 -3
  288. package/fesm2022/cax-design-system-icons-angledoubleup.mjs.map +1 -1
  289. package/fesm2022/cax-design-system-icons-angledown.mjs +3 -3
  290. package/fesm2022/cax-design-system-icons-angledown.mjs.map +1 -1
  291. package/fesm2022/cax-design-system-icons-angleleft.mjs +3 -3
  292. package/fesm2022/cax-design-system-icons-angleleft.mjs.map +1 -1
  293. package/fesm2022/cax-design-system-icons-angleright.mjs +3 -3
  294. package/fesm2022/cax-design-system-icons-angleright.mjs.map +1 -1
  295. package/fesm2022/cax-design-system-icons-angleup.mjs +3 -3
  296. package/fesm2022/cax-design-system-icons-angleup.mjs.map +1 -1
  297. package/fesm2022/cax-design-system-icons-arrowdown.mjs +3 -3
  298. package/fesm2022/cax-design-system-icons-arrowdown.mjs.map +1 -1
  299. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs +3 -3
  300. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs.map +1 -1
  301. package/fesm2022/cax-design-system-icons-arrowdownright.mjs +3 -3
  302. package/fesm2022/cax-design-system-icons-arrowdownright.mjs.map +1 -1
  303. package/fesm2022/cax-design-system-icons-arrowleft.mjs +3 -3
  304. package/fesm2022/cax-design-system-icons-arrowleft.mjs.map +1 -1
  305. package/fesm2022/cax-design-system-icons-arrowright.mjs +3 -3
  306. package/fesm2022/cax-design-system-icons-arrowright.mjs.map +1 -1
  307. package/fesm2022/cax-design-system-icons-arrowup.mjs +3 -3
  308. package/fesm2022/cax-design-system-icons-arrowup.mjs.map +1 -1
  309. package/fesm2022/cax-design-system-icons-ban.mjs +3 -3
  310. package/fesm2022/cax-design-system-icons-ban.mjs.map +1 -1
  311. package/fesm2022/cax-design-system-icons-bars.mjs +3 -3
  312. package/fesm2022/cax-design-system-icons-bars.mjs.map +1 -1
  313. package/fesm2022/cax-design-system-icons-blank.mjs +3 -3
  314. package/fesm2022/cax-design-system-icons-blank.mjs.map +1 -1
  315. package/fesm2022/cax-design-system-icons-calendar.mjs +3 -3
  316. package/fesm2022/cax-design-system-icons-calendar.mjs.map +1 -1
  317. package/fesm2022/cax-design-system-icons-caretleft.mjs +3 -3
  318. package/fesm2022/cax-design-system-icons-caretleft.mjs.map +1 -1
  319. package/fesm2022/cax-design-system-icons-caretright.mjs +3 -3
  320. package/fesm2022/cax-design-system-icons-caretright.mjs.map +1 -1
  321. package/fesm2022/cax-design-system-icons-check.mjs +3 -3
  322. package/fesm2022/cax-design-system-icons-check.mjs.map +1 -1
  323. package/fesm2022/cax-design-system-icons-chevrondown.mjs +3 -3
  324. package/fesm2022/cax-design-system-icons-chevrondown.mjs.map +1 -1
  325. package/fesm2022/cax-design-system-icons-chevronleft.mjs +3 -3
  326. package/fesm2022/cax-design-system-icons-chevronleft.mjs.map +1 -1
  327. package/fesm2022/cax-design-system-icons-chevronright.mjs +3 -3
  328. package/fesm2022/cax-design-system-icons-chevronright.mjs.map +1 -1
  329. package/fesm2022/cax-design-system-icons-chevronup.mjs +3 -3
  330. package/fesm2022/cax-design-system-icons-chevronup.mjs.map +1 -1
  331. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs +3 -3
  332. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs.map +1 -1
  333. package/fesm2022/cax-design-system-icons-eye.mjs +3 -3
  334. package/fesm2022/cax-design-system-icons-eye.mjs.map +1 -1
  335. package/fesm2022/cax-design-system-icons-eyeslash.mjs +3 -3
  336. package/fesm2022/cax-design-system-icons-eyeslash.mjs.map +1 -1
  337. package/fesm2022/cax-design-system-icons-filter.mjs +3 -3
  338. package/fesm2022/cax-design-system-icons-filter.mjs.map +1 -1
  339. package/fesm2022/cax-design-system-icons-filterslash.mjs +3 -3
  340. package/fesm2022/cax-design-system-icons-filterslash.mjs.map +1 -1
  341. package/fesm2022/cax-design-system-icons-home.mjs +3 -3
  342. package/fesm2022/cax-design-system-icons-home.mjs.map +1 -1
  343. package/fesm2022/cax-design-system-icons-infocircle.mjs +3 -3
  344. package/fesm2022/cax-design-system-icons-infocircle.mjs.map +1 -1
  345. package/fesm2022/cax-design-system-icons-minus.mjs +3 -3
  346. package/fesm2022/cax-design-system-icons-minus.mjs.map +1 -1
  347. package/fesm2022/cax-design-system-icons-pencil.mjs +3 -3
  348. package/fesm2022/cax-design-system-icons-pencil.mjs.map +1 -1
  349. package/fesm2022/cax-design-system-icons-plus.mjs +3 -3
  350. package/fesm2022/cax-design-system-icons-plus.mjs.map +1 -1
  351. package/fesm2022/cax-design-system-icons-refresh.mjs +3 -3
  352. package/fesm2022/cax-design-system-icons-refresh.mjs.map +1 -1
  353. package/fesm2022/cax-design-system-icons-search.mjs +3 -3
  354. package/fesm2022/cax-design-system-icons-search.mjs.map +1 -1
  355. package/fesm2022/cax-design-system-icons-searchminus.mjs +3 -3
  356. package/fesm2022/cax-design-system-icons-searchminus.mjs.map +1 -1
  357. package/fesm2022/cax-design-system-icons-searchplus.mjs +3 -3
  358. package/fesm2022/cax-design-system-icons-searchplus.mjs.map +1 -1
  359. package/fesm2022/cax-design-system-icons-sortalt.mjs +3 -3
  360. package/fesm2022/cax-design-system-icons-sortalt.mjs.map +1 -1
  361. package/fesm2022/cax-design-system-icons-sortamountdown.mjs +3 -3
  362. package/fesm2022/cax-design-system-icons-sortamountdown.mjs.map +1 -1
  363. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs +3 -3
  364. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs.map +1 -1
  365. package/fesm2022/cax-design-system-icons-spinner.mjs +3 -3
  366. package/fesm2022/cax-design-system-icons-spinner.mjs.map +1 -1
  367. package/fesm2022/cax-design-system-icons-star.mjs +3 -3
  368. package/fesm2022/cax-design-system-icons-star.mjs.map +1 -1
  369. package/fesm2022/cax-design-system-icons-starfill.mjs +3 -3
  370. package/fesm2022/cax-design-system-icons-starfill.mjs.map +1 -1
  371. package/fesm2022/cax-design-system-icons-thlarge.mjs +3 -3
  372. package/fesm2022/cax-design-system-icons-thlarge.mjs.map +1 -1
  373. package/fesm2022/cax-design-system-icons-times.mjs +3 -3
  374. package/fesm2022/cax-design-system-icons-times.mjs.map +1 -1
  375. package/fesm2022/cax-design-system-icons-timescircle.mjs +3 -3
  376. package/fesm2022/cax-design-system-icons-timescircle.mjs.map +1 -1
  377. package/fesm2022/cax-design-system-icons-trash.mjs +3 -3
  378. package/fesm2022/cax-design-system-icons-trash.mjs.map +1 -1
  379. package/fesm2022/cax-design-system-icons-undo.mjs +3 -3
  380. package/fesm2022/cax-design-system-icons-undo.mjs.map +1 -1
  381. package/fesm2022/cax-design-system-icons-upload.mjs +3 -3
  382. package/fesm2022/cax-design-system-icons-upload.mjs.map +1 -1
  383. package/fesm2022/cax-design-system-icons-windowmaximize.mjs +3 -3
  384. package/fesm2022/cax-design-system-icons-windowmaximize.mjs.map +1 -1
  385. package/fesm2022/cax-design-system-icons-windowminimize.mjs +3 -3
  386. package/fesm2022/cax-design-system-icons-windowminimize.mjs.map +1 -1
  387. package/fesm2022/cax-design-system-image.mjs +7 -7
  388. package/fesm2022/cax-design-system-image.mjs.map +1 -1
  389. package/fesm2022/cax-design-system-inplace.mjs +16 -14
  390. package/fesm2022/cax-design-system-inplace.mjs.map +1 -1
  391. package/fesm2022/cax-design-system-inputgroup.mjs +8 -8
  392. package/fesm2022/cax-design-system-inputgroup.mjs.map +1 -1
  393. package/fesm2022/cax-design-system-inputgroupaddon.mjs +8 -8
  394. package/fesm2022/cax-design-system-inputgroupaddon.mjs.map +1 -1
  395. package/fesm2022/cax-design-system-inputicon.mjs +8 -8
  396. package/fesm2022/cax-design-system-inputicon.mjs.map +1 -1
  397. package/fesm2022/cax-design-system-inputmask.mjs +8 -8
  398. package/fesm2022/cax-design-system-inputmask.mjs.map +1 -1
  399. package/fesm2022/cax-design-system-inputnumber.mjs +7 -7
  400. package/fesm2022/cax-design-system-inputnumber.mjs.map +1 -1
  401. package/fesm2022/cax-design-system-inputotp.mjs +8 -7
  402. package/fesm2022/cax-design-system-inputotp.mjs.map +1 -1
  403. package/fesm2022/cax-design-system-inputswitch.mjs +8 -8
  404. package/fesm2022/cax-design-system-inputswitch.mjs.map +1 -1
  405. package/fesm2022/cax-design-system-inputtext.mjs +12 -11
  406. package/fesm2022/cax-design-system-inputtext.mjs.map +1 -1
  407. package/fesm2022/cax-design-system-inputtextarea.mjs +12 -11
  408. package/fesm2022/cax-design-system-inputtextarea.mjs.map +1 -1
  409. package/fesm2022/cax-design-system-keyfilter.mjs +8 -7
  410. package/fesm2022/cax-design-system-keyfilter.mjs.map +1 -1
  411. package/fesm2022/cax-design-system-knob.mjs +8 -8
  412. package/fesm2022/cax-design-system-knob.mjs.map +1 -1
  413. package/fesm2022/cax-design-system-listbox.mjs +8 -8
  414. package/fesm2022/cax-design-system-listbox.mjs.map +1 -1
  415. package/fesm2022/cax-design-system-logo.mjs +7 -7
  416. package/fesm2022/cax-design-system-logo.mjs.map +1 -1
  417. package/fesm2022/cax-design-system-megamenu.mjs +12 -11
  418. package/fesm2022/cax-design-system-megamenu.mjs.map +1 -1
  419. package/fesm2022/cax-design-system-menu.mjs +17 -16
  420. package/fesm2022/cax-design-system-menu.mjs.map +1 -1
  421. package/fesm2022/cax-design-system-menubar.mjs +15 -14
  422. package/fesm2022/cax-design-system-menubar.mjs.map +1 -1
  423. package/fesm2022/cax-design-system-message.mjs +8 -8
  424. package/fesm2022/cax-design-system-message.mjs.map +1 -1
  425. package/fesm2022/cax-design-system-messages.mjs +7 -7
  426. package/fesm2022/cax-design-system-messages.mjs.map +1 -1
  427. package/fesm2022/cax-design-system-metergroup.mjs +13 -11
  428. package/fesm2022/cax-design-system-metergroup.mjs.map +1 -1
  429. package/fesm2022/cax-design-system-multiselect.mjs +12 -12
  430. package/fesm2022/cax-design-system-multiselect.mjs.map +1 -1
  431. package/fesm2022/cax-design-system-navigation.mjs +7 -7
  432. package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
  433. package/fesm2022/cax-design-system-orderlist.mjs +8 -8
  434. package/fesm2022/cax-design-system-orderlist.mjs.map +1 -1
  435. package/fesm2022/cax-design-system-organizationchart.mjs +12 -11
  436. package/fesm2022/cax-design-system-organizationchart.mjs.map +1 -1
  437. package/fesm2022/cax-design-system-overlay.mjs +7 -7
  438. package/fesm2022/cax-design-system-overlay.mjs.map +1 -1
  439. package/fesm2022/cax-design-system-overlaypanel.mjs +7 -7
  440. package/fesm2022/cax-design-system-overlaypanel.mjs.map +1 -1
  441. package/fesm2022/cax-design-system-paginator.mjs +8 -8
  442. package/fesm2022/cax-design-system-paginator.mjs.map +1 -1
  443. package/fesm2022/cax-design-system-panel.mjs +8 -8
  444. package/fesm2022/cax-design-system-panel.mjs.map +1 -1
  445. package/fesm2022/cax-design-system-panelmenu.mjs +16 -15
  446. package/fesm2022/cax-design-system-panelmenu.mjs.map +1 -1
  447. package/fesm2022/cax-design-system-password.mjs +17 -15
  448. package/fesm2022/cax-design-system-password.mjs.map +1 -1
  449. package/fesm2022/cax-design-system-picklist.mjs +8 -8
  450. package/fesm2022/cax-design-system-picklist.mjs.map +1 -1
  451. package/fesm2022/cax-design-system-progressbar.mjs +8 -8
  452. package/fesm2022/cax-design-system-progressbar.mjs.map +1 -1
  453. package/fesm2022/cax-design-system-progressspinner.mjs +8 -8
  454. package/fesm2022/cax-design-system-progressspinner.mjs.map +1 -1
  455. package/fesm2022/cax-design-system-radiobutton.mjs +10 -10
  456. package/fesm2022/cax-design-system-radiobutton.mjs.map +1 -1
  457. package/fesm2022/cax-design-system-rating.mjs +8 -8
  458. package/fesm2022/cax-design-system-rating.mjs.map +1 -1
  459. package/fesm2022/cax-design-system-ripple.mjs +7 -7
  460. package/fesm2022/cax-design-system-ripple.mjs.map +1 -1
  461. package/fesm2022/cax-design-system-scroller.mjs +7 -7
  462. package/fesm2022/cax-design-system-scroller.mjs.map +1 -1
  463. package/fesm2022/cax-design-system-scrollpanel.mjs +8 -8
  464. package/fesm2022/cax-design-system-scrollpanel.mjs.map +1 -1
  465. package/fesm2022/cax-design-system-scrolltop.mjs +8 -8
  466. package/fesm2022/cax-design-system-scrolltop.mjs.map +1 -1
  467. package/fesm2022/cax-design-system-selectbutton.mjs +8 -8
  468. package/fesm2022/cax-design-system-selectbutton.mjs.map +1 -1
  469. package/fesm2022/cax-design-system-sidebar.mjs +8 -8
  470. package/fesm2022/cax-design-system-sidebar.mjs.map +1 -1
  471. package/fesm2022/cax-design-system-skeleton.mjs +8 -8
  472. package/fesm2022/cax-design-system-skeleton.mjs.map +1 -1
  473. package/fesm2022/cax-design-system-slidemenu.mjs +13 -12
  474. package/fesm2022/cax-design-system-slidemenu.mjs.map +1 -1
  475. package/fesm2022/cax-design-system-slider.mjs +8 -8
  476. package/fesm2022/cax-design-system-slider.mjs.map +1 -1
  477. package/fesm2022/cax-design-system-speeddial.mjs +8 -8
  478. package/fesm2022/cax-design-system-speeddial.mjs.map +1 -1
  479. package/fesm2022/cax-design-system-spinner.mjs +8 -8
  480. package/fesm2022/cax-design-system-spinner.mjs.map +1 -1
  481. package/fesm2022/cax-design-system-splitbutton.mjs +8 -8
  482. package/fesm2022/cax-design-system-splitbutton.mjs.map +1 -1
  483. package/fesm2022/cax-design-system-splitter.mjs +8 -8
  484. package/fesm2022/cax-design-system-splitter.mjs.map +1 -1
  485. package/fesm2022/cax-design-system-stepper.mjs +27 -23
  486. package/fesm2022/cax-design-system-stepper.mjs.map +1 -1
  487. package/fesm2022/cax-design-system-steps.mjs +8 -8
  488. package/fesm2022/cax-design-system-steps.mjs.map +1 -1
  489. package/fesm2022/cax-design-system-styleclass.mjs +8 -7
  490. package/fesm2022/cax-design-system-styleclass.mjs.map +1 -1
  491. package/fesm2022/cax-design-system-table.mjs +89 -89
  492. package/fesm2022/cax-design-system-table.mjs.map +1 -1
  493. package/fesm2022/cax-design-system-tableconfiguration.mjs +27 -13
  494. package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -1
  495. package/fesm2022/cax-design-system-tabmenu.mjs +8 -8
  496. package/fesm2022/cax-design-system-tabmenu.mjs.map +1 -1
  497. package/fesm2022/cax-design-system-tabview.mjs +12 -12
  498. package/fesm2022/cax-design-system-tabview.mjs.map +1 -1
  499. package/fesm2022/cax-design-system-tag.mjs +8 -8
  500. package/fesm2022/cax-design-system-tag.mjs.map +1 -1
  501. package/fesm2022/cax-design-system-terminal.mjs +11 -11
  502. package/fesm2022/cax-design-system-terminal.mjs.map +1 -1
  503. package/fesm2022/cax-design-system-tieredmenu.mjs +12 -11
  504. package/fesm2022/cax-design-system-tieredmenu.mjs.map +1 -1
  505. package/fesm2022/cax-design-system-timeline.mjs +8 -8
  506. package/fesm2022/cax-design-system-timeline.mjs.map +1 -1
  507. package/fesm2022/cax-design-system-toast.mjs +10 -10
  508. package/fesm2022/cax-design-system-toast.mjs.map +1 -1
  509. package/fesm2022/cax-design-system-togglebutton.mjs +8 -8
  510. package/fesm2022/cax-design-system-togglebutton.mjs.map +1 -1
  511. package/fesm2022/cax-design-system-toggleswitch.mjs +8 -8
  512. package/fesm2022/cax-design-system-toggleswitch.mjs.map +1 -1
  513. package/fesm2022/cax-design-system-toolbar.mjs +8 -8
  514. package/fesm2022/cax-design-system-toolbar.mjs.map +1 -1
  515. package/fesm2022/cax-design-system-tooltip.mjs +8 -7
  516. package/fesm2022/cax-design-system-tooltip.mjs.map +1 -1
  517. package/fesm2022/cax-design-system-tree.mjs +12 -12
  518. package/fesm2022/cax-design-system-tree.mjs.map +1 -1
  519. package/fesm2022/cax-design-system-treeselect.mjs +8 -8
  520. package/fesm2022/cax-design-system-treeselect.mjs.map +1 -1
  521. package/fesm2022/cax-design-system-treetable.mjs +72 -57
  522. package/fesm2022/cax-design-system-treetable.mjs.map +1 -1
  523. package/fesm2022/cax-design-system-tristatecheckbox.mjs +7 -7
  524. package/fesm2022/cax-design-system-tristatecheckbox.mjs.map +1 -1
  525. package/fesm2022/cax-design-system-upload.mjs +19 -14
  526. package/fesm2022/cax-design-system-upload.mjs.map +1 -1
  527. package/fesm2022/cax-design-system-utils.mjs.map +1 -1
  528. package/fesm2022/cax-design-system-virtualscroller.mjs +8 -7
  529. package/fesm2022/cax-design-system-virtualscroller.mjs.map +1 -1
  530. package/fieldset/fieldset.d.ts +93 -0
  531. package/fieldset/fieldset.interface.d.ts +46 -0
  532. package/fieldset/index.d.ts +3 -140
  533. package/fieldset/public_api.d.ts +2 -0
  534. package/fileupload/fileupload.d.ts +380 -0
  535. package/fileupload/fileupload.interface.d.ts +226 -0
  536. package/fileupload/index.d.ts +3 -606
  537. package/fileupload/public_api.d.ts +2 -0
  538. package/floatlabel/floatlabel.d.ts +9 -0
  539. package/floatlabel/floatlabel.module.d.ts +10 -0
  540. package/floatlabel/index.d.ts +3 -19
  541. package/floatlabel/public_api.d.ts +2 -0
  542. package/focustrap/focustrap.d.ts +34 -0
  543. package/focustrap/index.d.ts +3 -35
  544. package/focustrap/public_api.d.ts +1 -0
  545. package/galleria/galleria.d.ts +404 -0
  546. package/galleria/galleria.interface.d.ts +97 -0
  547. package/galleria/index.d.ts +3 -502
  548. package/galleria/public_api.d.ts +2 -0
  549. package/iconfield/iconfield.d.ts +25 -0
  550. package/iconfield/index.d.ts +3 -26
  551. package/iconfield/public_api.d.ts +1 -0
  552. package/icons/angledoubledown/angledoubledown.d.ts +6 -0
  553. package/icons/angledoubledown/index.d.ts +5 -9
  554. package/icons/angledoubledown/public_api.d.ts +1 -0
  555. package/icons/angledoubleleft/angledoubleleft.d.ts +6 -0
  556. package/icons/angledoubleleft/index.d.ts +5 -9
  557. package/icons/angledoubleleft/public_api.d.ts +1 -0
  558. package/icons/angledoubleright/angledoubleright.d.ts +6 -0
  559. package/icons/angledoubleright/index.d.ts +5 -9
  560. package/icons/angledoubleright/public_api.d.ts +1 -0
  561. package/icons/angledoubleup/angledoubleup.d.ts +6 -0
  562. package/icons/angledoubleup/index.d.ts +5 -9
  563. package/icons/angledoubleup/public_api.d.ts +1 -0
  564. package/icons/angledown/angledown.d.ts +6 -0
  565. package/icons/angledown/index.d.ts +5 -9
  566. package/icons/angledown/public_api.d.ts +1 -0
  567. package/icons/angleleft/angleleft.d.ts +6 -0
  568. package/icons/angleleft/index.d.ts +5 -9
  569. package/icons/angleleft/public_api.d.ts +1 -0
  570. package/icons/angleright/angleright.d.ts +6 -0
  571. package/icons/angleright/index.d.ts +5 -9
  572. package/icons/angleright/public_api.d.ts +1 -0
  573. package/icons/angleup/angleup.d.ts +6 -0
  574. package/icons/angleup/index.d.ts +5 -9
  575. package/icons/angleup/public_api.d.ts +1 -0
  576. package/icons/arrowdown/arrowdown.d.ts +9 -0
  577. package/icons/arrowdown/index.d.ts +5 -12
  578. package/icons/arrowdown/public_api.d.ts +1 -0
  579. package/icons/arrowdownleft/arrowdownleft.d.ts +6 -0
  580. package/icons/arrowdownleft/index.d.ts +5 -9
  581. package/icons/arrowdownleft/public_api.d.ts +1 -0
  582. package/icons/arrowdownright/arrowdownright.d.ts +6 -0
  583. package/icons/arrowdownright/index.d.ts +5 -9
  584. package/icons/arrowdownright/public_api.d.ts +1 -0
  585. package/icons/arrowleft/arrowleft.d.ts +8 -0
  586. package/icons/arrowleft/index.d.ts +5 -11
  587. package/icons/arrowleft/public_api.d.ts +1 -0
  588. package/icons/arrowright/arrowright.d.ts +6 -0
  589. package/icons/arrowright/index.d.ts +5 -9
  590. package/icons/arrowright/public_api.d.ts +1 -0
  591. package/icons/arrowup/arrowup.d.ts +8 -0
  592. package/icons/arrowup/index.d.ts +5 -11
  593. package/icons/arrowup/public_api.d.ts +1 -0
  594. package/icons/ban/ban.d.ts +8 -0
  595. package/icons/ban/index.d.ts +5 -11
  596. package/icons/ban/public_api.d.ts +1 -0
  597. package/icons/bars/bars.d.ts +6 -0
  598. package/icons/bars/index.d.ts +5 -9
  599. package/icons/bars/public_api.d.ts +1 -0
  600. package/icons/blank/blank.d.ts +6 -0
  601. package/icons/blank/index.d.ts +5 -9
  602. package/icons/blank/public_api.d.ts +1 -0
  603. package/icons/calendar/calendar.d.ts +6 -0
  604. package/icons/calendar/index.d.ts +5 -9
  605. package/icons/calendar/public_api.d.ts +1 -0
  606. package/icons/caretleft/caretleft.d.ts +6 -0
  607. package/icons/caretleft/index.d.ts +5 -9
  608. package/icons/caretleft/public_api.d.ts +1 -0
  609. package/icons/caretright/caretright.d.ts +6 -0
  610. package/icons/caretright/index.d.ts +5 -9
  611. package/icons/caretright/public_api.d.ts +1 -0
  612. package/icons/check/check.d.ts +6 -0
  613. package/icons/check/index.d.ts +5 -9
  614. package/icons/check/public_api.d.ts +1 -0
  615. package/icons/chevrondown/chevrondown.d.ts +6 -0
  616. package/icons/chevrondown/index.d.ts +5 -9
  617. package/icons/chevrondown/public_api.d.ts +1 -0
  618. package/icons/chevronleft/chevronleft.d.ts +6 -0
  619. package/icons/chevronleft/index.d.ts +5 -9
  620. package/icons/chevronleft/public_api.d.ts +1 -0
  621. package/icons/chevronright/chevronright.d.ts +6 -0
  622. package/icons/chevronright/index.d.ts +5 -9
  623. package/icons/chevronright/public_api.d.ts +1 -0
  624. package/icons/chevronup/chevronup.d.ts +6 -0
  625. package/icons/chevronup/index.d.ts +5 -9
  626. package/icons/chevronup/public_api.d.ts +1 -0
  627. package/icons/exclamationtriangle/exclamationtriangle.d.ts +9 -0
  628. package/icons/exclamationtriangle/index.d.ts +5 -12
  629. package/icons/exclamationtriangle/public_api.d.ts +1 -0
  630. package/icons/eye/eye.d.ts +6 -0
  631. package/icons/eye/index.d.ts +5 -9
  632. package/icons/eye/public_api.d.ts +1 -0
  633. package/icons/eyeslash/eyeslash.d.ts +8 -0
  634. package/icons/eyeslash/index.d.ts +5 -11
  635. package/icons/eyeslash/public_api.d.ts +1 -0
  636. package/icons/filter/filter.d.ts +8 -0
  637. package/icons/filter/index.d.ts +5 -11
  638. package/icons/filter/public_api.d.ts +1 -0
  639. package/icons/filterslash/filterslash.d.ts +8 -0
  640. package/icons/filterslash/index.d.ts +5 -11
  641. package/icons/filterslash/public_api.d.ts +1 -0
  642. package/icons/home/home.d.ts +8 -0
  643. package/icons/home/index.d.ts +5 -11
  644. package/icons/home/public_api.d.ts +1 -0
  645. package/icons/infocircle/index.d.ts +5 -11
  646. package/icons/infocircle/infocircle.d.ts +8 -0
  647. package/icons/infocircle/public_api.d.ts +1 -0
  648. package/icons/minus/index.d.ts +5 -9
  649. package/icons/minus/minus.d.ts +6 -0
  650. package/icons/minus/public_api.d.ts +1 -0
  651. package/icons/pencil/index.d.ts +5 -11
  652. package/icons/pencil/pencil.d.ts +8 -0
  653. package/icons/pencil/public_api.d.ts +1 -0
  654. package/icons/plus/index.d.ts +5 -11
  655. package/icons/plus/plus.d.ts +8 -0
  656. package/icons/plus/public_api.d.ts +1 -0
  657. package/icons/refresh/index.d.ts +5 -11
  658. package/icons/refresh/public_api.d.ts +1 -0
  659. package/icons/refresh/refresh.d.ts +8 -0
  660. package/icons/search/index.d.ts +5 -11
  661. package/icons/search/public_api.d.ts +1 -0
  662. package/icons/search/search.d.ts +8 -0
  663. package/icons/searchminus/index.d.ts +5 -11
  664. package/icons/searchminus/public_api.d.ts +1 -0
  665. package/icons/searchminus/searchminus.d.ts +8 -0
  666. package/icons/searchplus/index.d.ts +5 -11
  667. package/icons/searchplus/public_api.d.ts +1 -0
  668. package/icons/searchplus/searchplus.d.ts +8 -0
  669. package/icons/sortalt/index.d.ts +5 -11
  670. package/icons/sortalt/public_api.d.ts +1 -0
  671. package/icons/sortalt/sortalt.d.ts +8 -0
  672. package/icons/sortamountdown/index.d.ts +5 -11
  673. package/icons/sortamountdown/public_api.d.ts +1 -0
  674. package/icons/sortamountdown/sortamountdown.d.ts +8 -0
  675. package/icons/sortamountupalt/index.d.ts +5 -11
  676. package/icons/sortamountupalt/public_api.d.ts +1 -0
  677. package/icons/sortamountupalt/sortamountupalt.d.ts +8 -0
  678. package/icons/spinner/index.d.ts +5 -11
  679. package/icons/spinner/public_api.d.ts +1 -0
  680. package/icons/spinner/spinner.d.ts +8 -0
  681. package/icons/star/index.d.ts +5 -11
  682. package/icons/star/public_api.d.ts +1 -0
  683. package/icons/star/star.d.ts +8 -0
  684. package/icons/starfill/index.d.ts +5 -11
  685. package/icons/starfill/public_api.d.ts +1 -0
  686. package/icons/starfill/starfill.d.ts +8 -0
  687. package/icons/thlarge/index.d.ts +5 -11
  688. package/icons/thlarge/public_api.d.ts +1 -0
  689. package/icons/thlarge/thlarge.d.ts +8 -0
  690. package/icons/times/index.d.ts +5 -9
  691. package/icons/times/public_api.d.ts +1 -0
  692. package/icons/times/times.d.ts +6 -0
  693. package/icons/timescircle/index.d.ts +5 -11
  694. package/icons/timescircle/public_api.d.ts +1 -0
  695. package/icons/timescircle/timescircle.d.ts +8 -0
  696. package/icons/trash/index.d.ts +5 -11
  697. package/icons/trash/public_api.d.ts +1 -0
  698. package/icons/trash/trash.d.ts +8 -0
  699. package/icons/undo/index.d.ts +5 -11
  700. package/icons/undo/public_api.d.ts +1 -0
  701. package/icons/undo/undo.d.ts +8 -0
  702. package/icons/upload/index.d.ts +5 -11
  703. package/icons/upload/public_api.d.ts +1 -0
  704. package/icons/upload/upload.d.ts +8 -0
  705. package/icons/windowmaximize/index.d.ts +5 -11
  706. package/icons/windowmaximize/public_api.d.ts +1 -0
  707. package/icons/windowmaximize/windowmaximize.d.ts +8 -0
  708. package/icons/windowminimize/index.d.ts +5 -11
  709. package/icons/windowminimize/public_api.d.ts +1 -0
  710. package/icons/windowminimize/windowminimize.d.ts +8 -0
  711. package/image/image.d.ts +188 -0
  712. package/image/image.interface.d.ts +31 -0
  713. package/image/image.module.d.ts +8 -0
  714. package/image/index.d.ts +3 -228
  715. package/image/public_api.d.ts +3 -0
  716. package/index.d.ts +5 -2
  717. package/inplace/index.d.ts +3 -130
  718. package/inplace/inplace.d.ts +109 -0
  719. package/inplace/inplace.interface.d.ts +19 -0
  720. package/inplace/public_api.d.ts +2 -0
  721. package/inputgroup/index.d.ts +3 -48
  722. package/inputgroup/inputgroup.d.ts +33 -0
  723. package/inputgroup/inputgroup.module.d.ts +15 -0
  724. package/inputgroup/public_api.d.ts +2 -0
  725. package/inputgroupaddon/index.d.ts +3 -35
  726. package/inputgroupaddon/inputgroupaddon.d.ts +21 -0
  727. package/inputgroupaddon/inputgroupaddon.module.d.ts +14 -0
  728. package/inputgroupaddon/public_api.d.ts +2 -0
  729. package/inputicon/index.d.ts +3 -22
  730. package/inputicon/inputicon.d.ts +21 -0
  731. package/inputicon/public_api.d.ts +1 -0
  732. package/inputmask/index.d.ts +3 -304
  733. package/inputmask/inputmask.d.ts +273 -0
  734. package/inputmask/inputmask.interface.d.ts +19 -0
  735. package/inputmask/inputmask.module.d.ts +12 -0
  736. package/inputmask/public_api.d.ts +3 -0
  737. package/inputnumber/index.d.ts +3 -443
  738. package/inputnumber/inputnumber.d.ts +397 -0
  739. package/inputnumber/inputnumber.interface.d.ts +38 -0
  740. package/inputnumber/inputnumber.module.d.ts +8 -0
  741. package/inputnumber/public_api.d.ts +3 -0
  742. package/inputotp/index.d.ts +3 -189
  743. package/inputotp/inputotp.d.ts +123 -0
  744. package/inputotp/inputotp.interface.d.ts +65 -0
  745. package/inputotp/public_api.d.ts +2 -0
  746. package/inputswitch/index.d.ts +3 -123
  747. package/inputswitch/inputswitch.d.ts +106 -0
  748. package/inputswitch/inputswitch.interface.d.ts +15 -0
  749. package/inputswitch/public_api.d.ts +2 -0
  750. package/inputtext/index.d.ts +5 -76
  751. package/inputtext/inputtext.component.d.ts +43 -0
  752. package/inputtext/inputtext.directive.d.ts +25 -0
  753. package/inputtext/inputtext.module.d.ts +10 -0
  754. package/inputtext/public_api.d.ts +3 -0
  755. package/inputtextarea/index.d.ts +3 -112
  756. package/inputtextarea/inputtextarea.component.d.ts +57 -0
  757. package/inputtextarea/inputtextarea.directive.d.ts +47 -0
  758. package/inputtextarea/inputtextarea.module.d.ts +10 -0
  759. package/inputtextarea/public_api.d.ts +3 -0
  760. package/keyfilter/index.d.ts +3 -65
  761. package/keyfilter/keyfilter.d.ts +58 -0
  762. package/keyfilter/keyfilter.interface.d.ts +5 -0
  763. package/keyfilter/public_api.d.ts +2 -0
  764. package/knob/index.d.ts +3 -179
  765. package/knob/knob.d.ts +178 -0
  766. package/knob/public_api.d.ts +1 -0
  767. package/listbox/index.d.ts +3 -620
  768. package/listbox/listbox.d.ts +463 -0
  769. package/listbox/listbox.interface.d.ts +156 -0
  770. package/listbox/public_api.d.ts +2 -0
  771. package/logo/index.d.ts +5 -20
  772. package/logo/logo.d.ts +11 -0
  773. package/logo/logo.module.d.ts +7 -0
  774. package/logo/public_api.d.ts +2 -0
  775. package/megamenu/index.d.ts +3 -230
  776. package/megamenu/megamenu.d.ts +198 -0
  777. package/megamenu/megamenu.interface.d.ts +31 -0
  778. package/megamenu/public_api.d.ts +2 -0
  779. package/menu/index.d.ts +3 -222
  780. package/menu/menu.d.ts +210 -0
  781. package/menu/menu.module.d.ts +12 -0
  782. package/menu/public_api.d.ts +2 -0
  783. package/menubar/index.d.ts +3 -290
  784. package/menubar/menubar.d.ts +248 -0
  785. package/menubar/menubar.interface.d.ts +40 -0
  786. package/menubar/public_api.d.ts +2 -0
  787. package/message/index.d.ts +3 -53
  788. package/message/message.d.ts +52 -0
  789. package/message/public_api.d.ts +1 -0
  790. package/messages/index.d.ts +3 -140
  791. package/messages/messages.d.ts +115 -0
  792. package/messages/messages.interface.d.ts +18 -0
  793. package/messages/messages.module.d.ts +8 -0
  794. package/messages/public_api.d.ts +3 -0
  795. package/metergroup/index.d.ts +3 -224
  796. package/metergroup/metergroup.d.ts +101 -0
  797. package/metergroup/metergroup.interface.d.ts +122 -0
  798. package/metergroup/public_api.d.ts +2 -0
  799. package/multiselect/index.d.ts +3 -974
  800. package/multiselect/multiselect.d.ts +710 -0
  801. package/multiselect/multiselect.interface.d.ts +247 -0
  802. package/multiselect/multiselect.module.d.ts +20 -0
  803. package/multiselect/public_api.d.ts +3 -0
  804. package/navigation/index.d.ts +5 -105
  805. package/navigation/navigation.d.ts +70 -0
  806. package/navigation/navigation.interface.d.ts +26 -0
  807. package/navigation/navigation.module.d.ts +7 -0
  808. package/navigation/public_api.d.ts +2 -0
  809. package/orderlist/index.d.ts +3 -381
  810. package/orderlist/orderlist.d.ts +270 -0
  811. package/orderlist/orderlist.interface.d.ts +110 -0
  812. package/orderlist/public_api.d.ts +2 -0
  813. package/organizationchart/index.d.ts +3 -192
  814. package/organizationchart/organizationchart.d.ts +132 -0
  815. package/organizationchart/organizationchart.interface.d.ts +59 -0
  816. package/organizationchart/public_api.d.ts +2 -0
  817. package/overlay/index.d.ts +3 -246
  818. package/overlay/overlay.d.ts +238 -0
  819. package/overlay/overlay.module.d.ts +8 -0
  820. package/overlay/public_api.d.ts +2 -0
  821. package/overlaypanel/index.d.ts +3 -170
  822. package/overlaypanel/overlaypanel.d.ts +162 -0
  823. package/overlaypanel/overlaypanel.module.d.ts +8 -0
  824. package/overlaypanel/public_api.d.ts +2 -0
  825. package/package.json +375 -375
  826. package/paginator/index.d.ts +3 -249
  827. package/paginator/paginator.d.ts +195 -0
  828. package/paginator/paginator.interface.d.ts +37 -0
  829. package/paginator/paginator.module.d.ts +17 -0
  830. package/paginator/public_api.d.ts +3 -0
  831. package/panel/index.d.ts +3 -185
  832. package/panel/panel.d.ts +126 -0
  833. package/panel/panel.interface.d.ts +58 -0
  834. package/panel/public_api.d.ts +2 -0
  835. package/panelmenu/index.d.ts +3 -249
  836. package/panelmenu/panelmenu.d.ts +225 -0
  837. package/panelmenu/panelmenu.interface.d.ts +23 -0
  838. package/panelmenu/public_api.d.ts +2 -0
  839. package/password/index.d.ts +3 -342
  840. package/password/password.d.ts +342 -0
  841. package/password/public_api.d.ts +1 -0
  842. package/picklist/index.d.ts +3 -696
  843. package/picklist/picklist.d.ts +453 -0
  844. package/picklist/picklist.interface.d.ts +242 -0
  845. package/picklist/public_api.d.ts +2 -0
  846. package/progressbar/index.d.ts +3 -61
  847. package/progressbar/progressbar.d.ts +54 -0
  848. package/progressbar/progressbar.module.d.ts +8 -0
  849. package/progressbar/public_api.d.ts +2 -0
  850. package/progressspinner/index.d.ts +3 -58
  851. package/progressspinner/progressspinner.d.ts +50 -0
  852. package/progressspinner/progressspinner.module.d.ts +8 -0
  853. package/progressspinner/public_api.d.ts +2 -0
  854. package/public_api.d.ts +2 -0
  855. package/radiobutton/index.d.ts +3 -173
  856. package/radiobutton/public_api.d.ts +3 -0
  857. package/radiobutton/radiobutton.d.ts +150 -0
  858. package/radiobutton/radiobutton.interface.d.ts +15 -0
  859. package/radiobutton/radiobutton.module.d.ts +7 -0
  860. package/rating/index.d.ts +3 -181
  861. package/rating/public_api.d.ts +2 -0
  862. package/rating/rating.d.ts +146 -0
  863. package/rating/rating.interface.d.ts +34 -0
  864. package/resources/cax.min.scss +1 -1
  865. package/resources/cax.scss +36 -14
  866. package/resources/components/calendar/calendar.scss +215 -219
  867. package/resources/components/colorpicker/images/color.png +0 -0
  868. package/resources/components/colorpicker/images/hue.png +0 -0
  869. package/resources/components/password/images/password-meter.png +0 -0
  870. package/resources/components/table/table.scss +10 -3
  871. package/resources/components/toggleswitch/toggleswitch.scss +1 -1
  872. package/resources/components/tree/images/line.gif +0 -0
  873. package/resources/images/color.png +0 -0
  874. package/resources/images/hue.png +0 -0
  875. package/resources/images/line.gif +0 -0
  876. package/resources/images/password-meter.png +0 -0
  877. package/ripple/index.d.ts +3 -37
  878. package/ripple/public_api.d.ts +2 -0
  879. package/ripple/ripple.d.ts +30 -0
  880. package/ripple/ripple.module.d.ts +7 -0
  881. package/scroller/index.d.ts +3 -528
  882. package/scroller/public_api.d.ts +3 -0
  883. package/scroller/scroller.d.ts +343 -0
  884. package/scroller/scroller.interface.d.ts +177 -0
  885. package/scroller/scroller.module.d.ts +8 -0
  886. package/scrollpanel/index.d.ts +3 -116
  887. package/scrollpanel/public_api.d.ts +2 -0
  888. package/scrollpanel/scrollpanel.d.ts +103 -0
  889. package/scrollpanel/scrollpanel.interface.d.ts +11 -0
  890. package/scrolltop/index.d.ts +3 -117
  891. package/scrolltop/public_api.d.ts +2 -0
  892. package/scrolltop/scrolltop.d.ts +97 -0
  893. package/scrolltop/scrolltop.interface.d.ts +18 -0
  894. package/selectbutton/index.d.ts +3 -184
  895. package/selectbutton/public_api.d.ts +3 -0
  896. package/selectbutton/selectbutton.d.ts +128 -0
  897. package/selectbutton/selectbutton.interface.d.ts +45 -0
  898. package/selectbutton/selectbutton.module.d.ts +11 -0
  899. package/sidebar/index.d.ts +3 -213
  900. package/sidebar/public_api.d.ts +3 -0
  901. package/sidebar/sidebar.d.ts +173 -0
  902. package/sidebar/sidebar.interface.d.ts +27 -0
  903. package/sidebar/sidebar.module.d.ts +12 -0
  904. package/skeleton/index.d.ts +3 -69
  905. package/skeleton/public_api.d.ts +2 -0
  906. package/skeleton/skeleton.d.ts +61 -0
  907. package/skeleton/skeleton.module.d.ts +8 -0
  908. package/slidemenu/index.d.ts +3 -339
  909. package/slidemenu/public_api.d.ts +2 -0
  910. package/slidemenu/slidemenu.d.ts +322 -0
  911. package/slidemenu/slidemenu.interface.d.ts +15 -0
  912. package/slider/index.d.ts +3 -214
  913. package/slider/public_api.d.ts +2 -0
  914. package/slider/slider.d.ts +174 -0
  915. package/slider/slider.interface.d.ts +38 -0
  916. package/speeddial/index.d.ts +3 -319
  917. package/speeddial/public_api.d.ts +3 -0
  918. package/speeddial/speeddial.d.ts +277 -0
  919. package/speeddial/speeddial.interface.d.ts +28 -0
  920. package/speeddial/speeddial.module.d.ts +14 -0
  921. package/spinner/index.d.ts +5 -93
  922. package/spinner/public_api.d.ts +1 -0
  923. package/spinner/spinner.d.ts +90 -0
  924. package/splitbutton/index.d.ts +3 -264
  925. package/splitbutton/public_api.d.ts +3 -0
  926. package/splitbutton/splitbutton.d.ts +222 -0
  927. package/splitbutton/splitbutton.interface.d.ts +30 -0
  928. package/splitbutton/splitbutton.module.d.ts +13 -0
  929. package/splitter/index.d.ts +3 -201
  930. package/splitter/public_api.d.ts +3 -0
  931. package/splitter/splitter.d.ts +158 -0
  932. package/splitter/splitter.interface.d.ts +34 -0
  933. package/splitter/splitter.module.d.ts +9 -0
  934. package/stepper/index.d.ts +3 -145
  935. package/stepper/public_api.d.ts +2 -0
  936. package/stepper/stepper.d.ts +117 -0
  937. package/stepper/stepper.interface.d.ts +26 -0
  938. package/steps/index.d.ts +3 -87
  939. package/steps/public_api.d.ts +2 -0
  940. package/steps/steps.d.ts +77 -0
  941. package/steps/steps.module.d.ts +10 -0
  942. package/styleclass/index.d.ts +3 -109
  943. package/styleclass/public_api.d.ts +1 -0
  944. package/styleclass/styleclass.d.ts +108 -0
  945. package/table/columnfilter.interface.d.ts +247 -0
  946. package/table/components/cell-editor/cell-editor.d.ts +20 -0
  947. package/table/components/column-filter/column-filter.d.ts +291 -0
  948. package/table/components/column-filter-form-element/column-filter-form-element.d.ts +37 -0
  949. package/table/components/sort-icon/sort-icon.d.ts +22 -0
  950. package/table/components/table-body/table-body.d.ts +36 -0
  951. package/table/components/table-checkbox/table-checkbox.d.ts +32 -0
  952. package/table/components/table-header-checkbox/table-header-checkbox.d.ts +29 -0
  953. package/table/components/table-radio-button/table-radio-button.d.ts +29 -0
  954. package/table/directives/cancel-editable-row.directive.d.ts +11 -0
  955. package/table/directives/cell-highlight.directive.d.ts +14 -0
  956. package/table/directives/content-menu-row.directive.d.ts +22 -0
  957. package/table/directives/dynamic-column-width.directive.d.ts +12 -0
  958. package/table/directives/editable-column.directive.d.ts +40 -0
  959. package/table/directives/editable-row.directive.d.ts +12 -0
  960. package/table/directives/frozen-column.directive.d.ts +16 -0
  961. package/table/directives/init-editable-row.directive.d.ts +11 -0
  962. package/table/directives/reorderable-column.directive.d.ts +32 -0
  963. package/table/directives/reorderable-row-handle.directive.d.ts +9 -0
  964. package/table/directives/reorderable-row.directive.d.ts +34 -0
  965. package/table/directives/resizable-column.directive.d.ts +35 -0
  966. package/table/directives/row-group-header.directive.d.ts +9 -0
  967. package/table/directives/row-toggler.directive.d.ts +13 -0
  968. package/table/directives/save-editable-row.directive.d.ts +11 -0
  969. package/table/directives/selectable-row-double-click.directive.d.ts +22 -0
  970. package/table/directives/selectable-row.directive.d.ts +37 -0
  971. package/table/directives/sortable-column.directive.d.ts +24 -0
  972. package/table/index.d.ts +3 -2556
  973. package/table/public_api.d.ts +30 -0
  974. package/table/table.d.ts +871 -0
  975. package/table/table.interface.d.ts +623 -0
  976. package/table/table.module.d.ts +34 -0
  977. package/table/table.service.d.ts +24 -0
  978. package/tableconfiguration/index.d.ts +5 -25
  979. package/tableconfiguration/public_api.d.ts +2 -0
  980. package/tableconfiguration/tableconfiguration.d.ts +16 -0
  981. package/tableconfiguration/tableconfiguration.module.d.ts +7 -0
  982. package/tabmenu/index.d.ts +3 -160
  983. package/tabmenu/public_api.d.ts +2 -0
  984. package/tabmenu/tabmenu.d.ts +126 -0
  985. package/tabmenu/tabmenu.interface.d.ts +32 -0
  986. package/tabview/index.d.ts +3 -357
  987. package/tabview/public_api.d.ts +3 -0
  988. package/tabview/tabview.d.ts +293 -0
  989. package/tabview/tabview.interface.d.ts +49 -0
  990. package/tabview/tabview.module.d.ts +15 -0
  991. package/tag/index.d.ts +3 -82
  992. package/tag/public_api.d.ts +3 -0
  993. package/tag/tag.d.ts +61 -0
  994. package/tag/tag.interface.d.ts +11 -0
  995. package/tag/tag.module.d.ts +9 -0
  996. package/terminal/index.d.ts +3 -68
  997. package/terminal/public_api.d.ts +2 -0
  998. package/terminal/terminal.d.ts +56 -0
  999. package/terminal/terminalservice.d.ts +11 -0
  1000. package/tieredmenu/index.d.ts +3 -307
  1001. package/tieredmenu/public_api.d.ts +3 -0
  1002. package/tieredmenu/tieredmenu.d.ts +266 -0
  1003. package/tieredmenu/tieredmenu.interface.d.ts +27 -0
  1004. package/tieredmenu/tiredmenu.module.d.ts +13 -0
  1005. package/timeline/index.d.ts +3 -100
  1006. package/timeline/public_api.d.ts +3 -0
  1007. package/timeline/timeline.d.ts +47 -0
  1008. package/timeline/timeline.interface.d.ts +43 -0
  1009. package/timeline/timeline.module.d.ts +9 -0
  1010. package/toast/index.d.ts +3 -202
  1011. package/toast/public_api.d.ts +3 -0
  1012. package/toast/toast.d.ts +142 -0
  1013. package/toast/toast.interface.d.ts +52 -0
  1014. package/toast/toast.module.d.ts +9 -0
  1015. package/toast/toastitem.d.ts +37 -0
  1016. package/togglebutton/index.d.ts +3 -150
  1017. package/togglebutton/public_api.d.ts +2 -0
  1018. package/togglebutton/togglebutton.d.ts +115 -0
  1019. package/togglebutton/togglebutton.interface.d.ts +34 -0
  1020. package/toggleswitch/index.d.ts +5 -25
  1021. package/toggleswitch/public_api.d.ts +2 -0
  1022. package/toggleswitch/toggleswitch.d.ts +14 -0
  1023. package/toggleswitch/toggleswitch.module.d.ts +9 -0
  1024. package/toolbar/index.d.ts +3 -64
  1025. package/toolbar/public_api.d.ts +2 -0
  1026. package/toolbar/toolbar.d.ts +43 -0
  1027. package/toolbar/toolbar.interface.d.ts +19 -0
  1028. package/tooltip/index.d.ts +3 -218
  1029. package/tooltip/public_api.d.ts +2 -0
  1030. package/tooltip/tooltip.d.ts +208 -0
  1031. package/tooltip/tooltip.module.d.ts +10 -0
  1032. package/tree/index.d.ts +3 -673
  1033. package/tree/public_api.d.ts +3 -0
  1034. package/tree/tree.d.ts +461 -0
  1035. package/tree/tree.interface.d.ts +193 -0
  1036. package/tree/tree.module.d.ts +21 -0
  1037. package/treeselect/index.d.ts +3 -517
  1038. package/treeselect/public_api.d.ts +3 -0
  1039. package/treeselect/treeselect.d.ts +394 -0
  1040. package/treeselect/treeselect.interface.d.ts +108 -0
  1041. package/treeselect/treeselect.module.d.ts +16 -0
  1042. package/treetable/index.d.ts +3 -1461
  1043. package/treetable/public_api.d.ts +2 -0
  1044. package/treetable/treetable.d.ts +988 -0
  1045. package/treetable/treetable.interface.d.ts +472 -0
  1046. package/tristatecheckbox/index.d.ts +3 -155
  1047. package/tristatecheckbox/public_api.d.ts +3 -0
  1048. package/tristatecheckbox/tristatecheckbox.d.ts +117 -0
  1049. package/tristatecheckbox/tristatecheckbox.interface.d.ts +30 -0
  1050. package/tristatecheckbox/tristatecheckbox.module.d.ts +8 -0
  1051. package/ts-helpers/index.d.ts +5 -6
  1052. package/ts-helpers/public_api.d.ts +1 -0
  1053. package/ts-helpers/ts-helpers.d.ts +4 -0
  1054. package/upload/index.d.ts +5 -81
  1055. package/upload/public_api.d.ts +2 -0
  1056. package/upload/upload.component.d.ts +67 -0
  1057. package/upload/upload.component.module.d.ts +11 -0
  1058. package/utils/index.d.ts +5 -35
  1059. package/utils/objectutils.d.ts +24 -0
  1060. package/utils/public_api.d.ts +4 -0
  1061. package/utils/uniquecomponentid.d.ts +2 -0
  1062. package/utils/zindexutils.d.ts +7 -0
  1063. package/virtualscroller/index.d.ts +3 -161
  1064. package/virtualscroller/public_api.d.ts +2 -0
  1065. package/virtualscroller/virtualscroller.d.ts +89 -0
  1066. package/virtualscroller/virtualscroller.interface.d.ts +72 -0
  1067. package/cax-design-system-2.8.2.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"cax-design-system-calendar.mjs","sources":["../../src/app/components/calendar/calendar.ts","../../src/app/components/calendar/calendar.html","../../src/app/components/calendar/calendar.module.ts","../../src/app/components/calendar/cax-design-system-calendar.ts"],"sourcesContent":["import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n NgZone,\n numberAttribute,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { OverlayService, caxConfig, CaxTemplate, SharedModule, TranslationKeys } from 'cax-design-system/api';\nimport { ButtonModule } from 'cax-design-system/button';\nimport { ConnectedOverlayScrollHandler, DomHandler } from 'cax-design-system/dom';\nimport { RippleModule } from 'cax-design-system/ripple';\nimport { ObjectUtils, UniqueComponentId, ZIndexUtils } from 'cax-design-system/utils';\nimport { Subscription } from 'rxjs';\nimport { ChevronLeftIcon } from 'cax-design-system/icons/chevronleft';\nimport { ChevronRightIcon } from 'cax-design-system/icons/chevronright';\nimport { ChevronUpIcon } from 'cax-design-system/icons/chevronup';\nimport { ChevronDownIcon } from 'cax-design-system/icons/chevrondown';\nimport { TimesIcon } from 'cax-design-system/icons/times';\nimport { CalendarIcon } from 'cax-design-system/icons/calendar';\nimport { ArrowDownIcon } from 'cax-design-system/icons/arrowdown';\nimport { Nullable, VoidListener } from 'cax-design-system/ts-helpers';\nimport { CalendarMonthChangeEvent, CalendarResponsiveOptions, CalendarTypeView, CalendarYearChangeEvent, LocaleSettings, Month, NavigationState } from './calendar.interface';\nimport { AutoFocusModule } from 'cax-design-system/autofocus';\n\nexport const CALENDAR_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Calendar),\n multi: true\n};\n/**\n * Calendar also known as DatePicker, is a form component to work with dates.\n * @group Components\n */\n@Component({\n selector: 'cax-calendar',\n templateUrl: './calendar.html',\n animations: [\n trigger('overlayAnimation', [\n state(\n 'visibleTouchUI',\n style({\n transform: 'translate(-50%,-50%)',\n opacity: 1\n })\n ),\n transition('void => visible', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}', style({ opacity: 1, transform: '*' }))]),\n transition('visible => void', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))]),\n transition('void => visibleTouchUI', [style({ opacity: 0, transform: 'translate3d(-50%, -40%, 0) scale(0.9)' }), animate('{{showTransitionParams}}')]),\n transition('visibleTouchUI => void', [\n animate(\n '{{hideTransitionParams}}',\n style({\n opacity: 0,\n transform: 'translate3d(-50%, -40%, 0) scale(0.9)'\n })\n )\n ])\n ])\n ],\n host: {\n class: 'cax-element cax-inputwrapper',\n '[class.cax-inputwrapper-filled]': 'filled',\n '[class.cax-inputwrapper-focus]': 'focus',\n '[class.cax-calendar-clearable]': 'showClear && !disabled'\n },\n providers: [CALENDAR_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./calendar.scss'],\n standalone: true,\n imports: [CommonModule, ButtonModule, SharedModule, RippleModule, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, TimesIcon, CalendarIcon, AutoFocusModule, ArrowDownIcon]\n})\nexport class Calendar implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() iconDisplay: 'input' | 'button' = 'button';\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the input field.\n * @group Props\n */\n @Input() inputStyle: { [klass: string]: any } | null | undefined;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Name of the input element.\n * @group Props\n */\n @Input() name: string | undefined;\n /**\n * Style class of the input field.\n * @group Props\n */\n @Input() inputStyleClass: string | undefined;\n /**\n * Placeholder text for the input.\n * @group Props\n */\n @Input() placeholder: string | undefined;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n\n /**\n * Defines a string that labels the icon button for accessibility.\n * @group Props\n */\n @Input() iconAriaLabel: string | undefined;\n /**\n * When specified, disables the component.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n /**\n * Format of the date which can also be defined at locale settings.\n * @group Props\n */\n @Input() dateFormat: string | undefined;\n /**\n * Separator for multiple selection mode.\n * @group Props\n */\n @Input() multipleSeparator: string = ',';\n /**\n * Separator for joining start and end dates on range selection mode.\n * @group Props\n */\n @Input() rangeSeparator: string = '-';\n /**\n * When enabled, displays the calendar as inline. Default is false for popup mode.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) inline: boolean = false;\n /**\n * 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.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showOtherMonths: boolean = true;\n /**\n * 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.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) selectOtherMonths: boolean | undefined;\n /**\n * When enabled, displays a button with icon next to input.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showIcon: boolean | undefined;\n /**\n * Icon of the calendar button.\n * @group Props\n */\n @Input() icon: string | undefined;\n /**\n * 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).\n * @group Props\n */\n @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * When specified, prevents entering the date manually with keyboard.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) readonlyInput: boolean | undefined;\n /**\n * The cutoff year for determining the century for a date.\n * @group Props\n */\n @Input() shortYearCutoff: any = '+10';\n /**\n * Whether the month should be rendered as a dropdown instead of text.\n * @group Props\n * @deprecated Navigator is always on.\n */\n @Input({ transform: booleanAttribute }) monthNavigator: boolean | undefined;\n /**\n * Whether the year should be rendered as a dropdown instead of text.\n * @group Props\n * @deprecated Navigator is always on.\n */\n @Input({ transform: booleanAttribute }) yearNavigator: boolean | undefined;\n /**\n * Specifies 12 or 24 hour format.\n * @group Props\n */\n @Input() hourFormat: string = '24';\n /**\n * Whether to display timepicker only.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) timeOnly: boolean | undefined;\n /**\n * Years to change per step in yearpicker.\n * @group Props\n */\n @Input({ transform: numberAttribute }) stepYearPicker: number = 9;\n /**\n * Hours to change per step.\n * @group Props\n */\n @Input({ transform: numberAttribute }) stepHour: number = 1;\n /**\n * Minutes to change per step.\n * @group Props\n */\n @Input({ transform: numberAttribute }) stepMinute: number = 1;\n /**\n * Seconds to change per step.\n * @group Props\n */\n @Input({ transform: numberAttribute }) stepSecond: number = 1;\n /**\n * Whether to show the seconds in time picker.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showSeconds: boolean = false;\n /**\n * When present, it specifies that an input field must be filled out before submitting the form.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) required: boolean | undefined;\n /**\n * When disabled, datepicker will not be visible with input focus.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showOnFocus: boolean = true;\n /**\n * When enabled, calendar will show week numbers.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showWeek: boolean = false;\n /**\n * When enabled, calendar will start week numbers from first day of the year.\n * @group Props\n */\n @Input() startWeekFromFirstDayOfYear: boolean = false;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showClear: boolean = false;\n /**\n * Type of the value to write back to ngModel, default is date and alternative is string.\n * @group Props\n */\n @Input() dataType: string = 'date';\n /**\n * Defines the quantity of the selection, valid values are \"single\", \"multiple\" and \"range\".\n * @group Props\n */\n @Input() selectionMode: 'single' | 'multiple' | 'range' | undefined = 'single';\n /**\n * Maximum number of selectable dates in multiple mode.\n * @group Props\n */\n @Input({ transform: numberAttribute }) maxDateCount: number | undefined;\n /**\n * Whether to display today and clear buttons at the footer\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showButtonBar: boolean | undefined;\n /**\n * Style class of the today button.\n * @group Props\n */\n @Input() todayButtonStyleClass: string = 'cax-button-text';\n /**\n * Style class of the clear button.\n * @group Props\n */\n @Input() clearButtonStyleClass: string = 'cax-button-text';\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Whether to automatically manage layering.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoZIndex: boolean = true;\n /**\n * Base zIndex value to use in layering.\n * @group Props\n */\n @Input({ transform: numberAttribute }) baseZIndex: number = 0;\n /**\n * Style class of the datetimepicker container element.\n * @group Props\n */\n @Input() panelStyleClass: string | undefined;\n /**\n * Inline style of the datetimepicker container element.\n * @group Props\n */\n @Input() panelStyle: any;\n /**\n * Keep invalid value when input blur.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) keepInvalid: boolean = false;\n /**\n * Whether to hide the overlay on date selection.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) hideOnDateTimeSelect: boolean = true;\n /**\n * When enabled, calendar overlay is displayed as optimized for touch devices.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) touchUI: boolean | undefined;\n /**\n * Separator of time selector.\n * @group Props\n */\n @Input() labelText: string | undefined;\n @Input() timeSeparator: string = ':';\n @Input() leftIcon: boolean = true;\n //@Input() rightIcon: boolean= false;\n /**\n * When enabled, can only focus on elements inside the calendar.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) focusTrap: boolean = true;\n /**\n * Transition options of the show animation.\n * @group Props\n */\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation.\n * @group Props\n */\n @Input() hideTransitionOptions: string = '.1s linear';\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n @Input() variant: 'filled' | 'outlined' = 'outlined';\n /**\n * The minimum selectable date.\n * @group Props\n */\n @Input() get minDate(): Date | undefined | null {\n return this._minDate;\n }\n set minDate(date: Date | undefined | null) {\n this._minDate = date;\n\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * The maximum selectable date.\n * @group Props\n */\n @Input() get maxDate(): Date | undefined | null {\n return this._maxDate;\n }\n set maxDate(date: Date | undefined | null) {\n this._maxDate = date;\n\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * Array with dates that should be disabled (not selectable).\n * @group Props\n */\n @Input() get disabledDates(): Date[] {\n return this._disabledDates;\n }\n set disabledDates(disabledDates: Date[]) {\n this._disabledDates = disabledDates;\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * Array with weekday numbers that should be disabled (not selectable).\n * @group Props\n */\n @Input() get disabledDays(): number[] {\n return this._disabledDays;\n }\n set disabledDays(disabledDays: number[]) {\n this._disabledDays = disabledDays;\n\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * The range of years displayed in the year drop-down in (nnnn:nnnn) format such as (2000:2020).\n * @group Props\n * @deprecated Years are based on decades by default.\n */\n @Input() get yearRange(): string {\n return this._yearRange;\n }\n set yearRange(yearRange: string) {\n this._yearRange = yearRange;\n\n if (yearRange) {\n const years = yearRange.split(':');\n const yearStart = parseInt(years[0]);\n const yearEnd = parseInt(years[1]);\n\n this.populateYearOptions(yearStart, yearEnd);\n }\n }\n /**\n * Whether to display timepicker.\n * @group Props\n */\n @Input() get showTime(): boolean {\n return this._showTime;\n }\n set showTime(showTime: boolean) {\n this._showTime = showTime;\n\n if (this.currentHour === undefined) {\n this.initTime(this.value || new Date());\n }\n this.updateInputfield();\n }\n /**\n * An array of options for responsive design.\n * @group Props\n */\n @Input() get responsiveOptions(): CalendarResponsiveOptions[] {\n return this._responsiveOptions;\n }\n set responsiveOptions(responsiveOptions: CalendarResponsiveOptions[]) {\n this._responsiveOptions = responsiveOptions;\n\n this.destroyResponsiveStyleElement();\n this.createResponsiveStyle();\n }\n /**\n * Number of months to display.\n * @group Props\n */\n @Input() get numberOfMonths(): number {\n return this._numberOfMonths;\n }\n set numberOfMonths(numberOfMonths: number) {\n this._numberOfMonths = numberOfMonths;\n\n this.destroyResponsiveStyleElement();\n this.createResponsiveStyle();\n }\n /**\n * Defines the first of the week for various date calculations.\n * @group Props\n */\n @Input() get firstDayOfWeek(): number {\n return this._firstDayOfWeek;\n }\n set firstDayOfWeek(firstDayOfWeek: number) {\n this._firstDayOfWeek = firstDayOfWeek;\n\n this.createWeekDays();\n }\n /**\n * Option to set calendar locale.\n * @group Props\n * @deprecated Locale property has no effect, use new i18n API instead.\n */\n @Input() set locale(newLocale: LocaleSettings) {\n console.warn('Locale property has no effect, use new i18n API instead.');\n }\n /**\n * Type of view to display, valid values are \"date\" for datepicker and \"month\" for month picker.\n * @group Props\n */\n @Input() get view(): CalendarTypeView {\n return this._view;\n }\n set view(view: CalendarTypeView) {\n this._view = view;\n this.currentView = this._view;\n }\n /**\n * Set the date to highlight on first opening if the field is blank.\n * @group Props\n */\n @Input() get defaultDate(): Date {\n return this._defaultDate;\n }\n set defaultDate(defaultDate: Date) {\n this._defaultDate = defaultDate;\n\n if (this.initialized) {\n const date = defaultDate || new Date();\n this.currentMonth = date.getMonth();\n this.currentYear = date.getFullYear();\n this.initTime(date);\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n get inputClass() {\n return {\n 'cax-inputtext cax-component': true,\n 'cax-variant-filled': this.variant === 'filled' || this.config.inputStyle() === 'filled'\n };\n }\n\n /**\n * Callback to invoke on focus of input field.\n * @param {Event} event - browser event.\n * @group Emits\n */\n @Output() onFocus: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke on blur of input field.\n * @param {Event} event - browser event.\n * @group Emits\n */\n @Output() onBlur: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when date panel closed.\n * @param {Event} event - Mouse event\n * @group Emits\n */\n @Output() onClose: EventEmitter<AnimationEvent> = new EventEmitter<AnimationEvent>();\n /**\n * Callback to invoke on date select.\n * @param {Date} date - date value.\n * @group Emits\n */\n @Output() onSelect: EventEmitter<Date> = new EventEmitter<Date>();\n /**\n * Callback to invoke when input field cleared.\n * @group Emits\n */\n @Output() onClear: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Callback to invoke when input field is being typed.\n * @param {Event} event - browser event\n * @group Emits\n */\n @Output() onInput: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Callback to invoke when today button is clicked.\n * @param {Date} date - today as a date instance.\n * @group Emits\n */\n @Output() onTodayClick: EventEmitter<Date> = new EventEmitter<Date>();\n /**\n * Callback to invoke when clear button is clicked.\n * @param {Event} event - browser event.\n * @group Emits\n */\n @Output() onClearClick: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Callback to invoke when a month is changed using the navigators.\n * @param {CalendarMonthChangeEvent} event - custom month change event.\n * @group Emits\n */\n @Output() onMonthChange: EventEmitter<CalendarMonthChangeEvent> = new EventEmitter<CalendarMonthChangeEvent>();\n /**\n * Callback to invoke when a year is changed using the navigators.\n * @param {CalendarYearChangeEvent} event - custom year change event.\n * @group Emits\n */\n @Output() onYearChange: EventEmitter<CalendarYearChangeEvent> = new EventEmitter<CalendarYearChangeEvent>();\n /**\n * Callback to invoke when clicked outside of the date panel.\n * @group Emits\n */\n @Output() onClickOutside: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Callback to invoke when datepicker panel is shown.\n * @group Emits\n */\n @Output() onInlineSaved: EventEmitter<Date> = new EventEmitter<Date>();\n @Output() onInlineCancelled: EventEmitter<void> = new EventEmitter<void>();\n\n @Output() onShow: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChildren(CaxTemplate) templates!: QueryList<CaxTemplate>;\n\n @ViewChild('container', { static: false }) containerViewChild: Nullable<ElementRef>;\n\n @ViewChild('inputfield', { static: false }) inputfieldViewChild: Nullable<ElementRef>;\n\n @ViewChild('contentWrapper', { static: false }) set content(content: ElementRef) {\n this.contentViewChild = content;\n\n if (this.contentViewChild) {\n if (this.isMonthNavigate) {\n Promise.resolve(null).then(() => this.updateFocus());\n this.isMonthNavigate = false;\n } else {\n if (!this.focus && !this.inline) {\n this.initFocusableCell();\n }\n }\n }\n }\n\n contentViewChild!: ElementRef;\n\n value: any;\n\n dates: Nullable<Date[]>;\n\n months!: Month[];\n\n weekDays: Nullable<string[]>;\n\n currentMonth!: number;\n\n currentYear!: number;\n\n currentHour: Nullable<number>;\n\n currentMinute: Nullable<number>;\n\n currentSecond: Nullable<number>;\n\n pm: Nullable<boolean>;\n\n mask: Nullable<HTMLDivElement>;\n\n maskClickListener: VoidListener;\n\n overlay: Nullable<HTMLDivElement>;\n\n responsiveStyleElement: HTMLStyleElement | undefined | null;\n\n overlayVisible: Nullable<boolean>;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n calendarElement: Nullable<HTMLElement | ElementRef>;\n\n timePickerTimer: any;\n\n documentClickListener: VoidListener;\n\n animationEndListener: VoidListener;\n\n ticksTo1970: Nullable<number>;\n\n yearOptions: Nullable<number[]>;\n\n focus: Nullable<boolean>;\n\n isKeydown: Nullable<boolean>;\n\n filled: Nullable<boolean>;\n\n inputFieldValue: Nullable<string> = null;\n\n _minDate?: Date | null;\n\n _maxDate?: Date | null;\n\n _showTime!: boolean;\n\n _yearRange!: string;\n\n preventDocumentListener: Nullable<boolean>;\n\n dateTemplate: Nullable<TemplateRef<any>>;\n\n headerTemplate: Nullable<TemplateRef<any>>;\n\n footerTemplate: Nullable<TemplateRef<any>>;\n\n disabledDateTemplate: Nullable<TemplateRef<any>>;\n\n decadeTemplate: Nullable<TemplateRef<any>>;\n\n previousIconTemplate: Nullable<TemplateRef<any>>;\n\n nextIconTemplate: Nullable<TemplateRef<any>>;\n\n triggerIconTemplate: Nullable<TemplateRef<any>>;\n\n clearIconTemplate: Nullable<TemplateRef<any>>;\n\n decrementIconTemplate: Nullable<TemplateRef<any>>;\n\n incrementIconTemplate: Nullable<TemplateRef<any>>;\n\n inputIconTemplate: Nullable<TemplateRef<any>>;\n\n _disabledDates!: Array<Date>;\n\n _disabledDays!: Array<number>;\n\n selectElement: Nullable;\n\n todayElement: Nullable;\n\n focusElement: Nullable;\n\n scrollHandler: Nullable<ConnectedOverlayScrollHandler>;\n\n documentResizeListener: VoidListener;\n\n navigationState: Nullable<NavigationState> = null;\n\n isMonthNavigate: Nullable<boolean>;\n\n initialized: Nullable<boolean>;\n\n translationSubscription: Nullable<Subscription>;\n\n _locale!: LocaleSettings;\n\n _responsiveOptions!: CalendarResponsiveOptions[];\n\n currentView: Nullable<string>;\n\n attributeSelector: Nullable<string>;\n\n panelId: Nullable<string>;\n\n _numberOfMonths: number = 1;\n\n _firstDayOfWeek!: number;\n\n _view: CalendarTypeView = 'date';\n\n preventFocus: Nullable<boolean>;\n\n _defaultDate!: Date;\n\n _focusKey: Nullable<string> = null;\n\n originalValue: Date = null;\n\n formattedInlineDate: string = '';\n\n private window: Window;\n\n get locale() {\n return this._locale;\n }\n\n get iconButtonAriaLabel() {\n return this.iconAriaLabel ? this.iconAriaLabel : this.getTranslation('chooseDate');\n }\n\n get prevIconAriaLabel() {\n return this.currentView === 'year' ? this.getTranslation('prevDecade') : this.currentView === 'month' ? this.getTranslation('prevYear') : this.getTranslation('prevMonth');\n }\n\n get nextIconAriaLabel() {\n return this.currentView === 'year' ? this.getTranslation('nextDecade') : this.currentView === 'month' ? this.getTranslation('nextYear') : this.getTranslation('nextMonth');\n }\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n public el: ElementRef,\n public renderer: Renderer2,\n public cd: ChangeDetectorRef,\n private zone: NgZone,\n private config: caxConfig,\n public overlayService: OverlayService\n ) {\n this.window = this.document.defaultView as Window;\n }\n\n ngOnInit() {\n this.attributeSelector = UniqueComponentId();\n this.panelId = this.attributeSelector + '_panel';\n const date = this.defaultDate || new Date();\n this.createResponsiveStyle();\n this.currentMonth = date.getMonth();\n this.currentYear = date.getFullYear();\n this.yearOptions = [];\n this.currentView = this.view;\n\n if (this.view === 'date') {\n this.createWeekDays();\n this.initTime(date);\n this.createMonths(this.currentMonth, this.currentYear);\n this.ticksTo1970 = ((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000;\n }\n\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.createWeekDays();\n this.cd.markForCheck();\n });\n\n this.initialized = true;\n\n this.updateFormattedInlineDate();\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'date':\n this.dateTemplate = item.template;\n break;\n\n case 'decade':\n this.decadeTemplate = item.template;\n break;\n\n case 'disabledDate':\n this.disabledDateTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'inputicon':\n this.inputIconTemplate = item.template;\n break;\n\n case 'previousicon':\n this.previousIconTemplate = item.template;\n break;\n\n case 'nexticon':\n this.nextIconTemplate = item.template;\n break;\n\n case 'triggericon':\n this.triggerIconTemplate = item.template;\n break;\n\n case 'clearicon':\n this.clearIconTemplate = item.template;\n break;\n\n case 'decrementicon':\n this.decrementIconTemplate = item.template;\n break;\n\n case 'incrementicon':\n this.incrementIconTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n default:\n this.dateTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n if (this.inline) {\n this.contentViewChild && this.contentViewChild.nativeElement.setAttribute(this.attributeSelector, '');\n\n if (!this.disabled && !this.inline) {\n this.initFocusableCell();\n if (this.numberOfMonths === 1) {\n if (this.contentViewChild && this.contentViewChild.nativeElement) {\n this.contentViewChild.nativeElement.style.width = DomHandler.getOuterWidth(this.containerViewChild?.nativeElement) + 'px';\n }\n }\n }\n }\n }\n\n updateFormattedInlineDate() {\n if (this.value) {\n const day = this.value.getDate().toString().padStart(2, '0');\n const month = (this.value.getMonth() + 1).toString().padStart(2, '0');\n const year = this.value.getFullYear();\n this.formattedInlineDate = `${month}/${day}/${year}`;\n } else {\n this.formattedInlineDate = '';\n }\n }\n\n getTranslation(option: string) {\n return this.config.getTranslation(option);\n }\n\n populateYearOptions(start: number, end: number) {\n this.yearOptions = [];\n\n for (let i = start; i <= end; i++) {\n this.yearOptions.push(i);\n }\n }\n\n createWeekDays() {\n this.weekDays = [];\n let dayIndex = this.getFirstDateOfWeek();\n let dayLabels = this.getTranslation(TranslationKeys.DAY_NAMES_MIN);\n for (let i = 0; i < 7; i++) {\n this.weekDays.push(dayLabels[dayIndex]);\n dayIndex = dayIndex == 6 ? 0 : ++dayIndex;\n }\n }\n\n monthPickerValues() {\n let monthPickerValues = [];\n for (let i = 0; i <= 11; i++) {\n monthPickerValues.push(this.config.getTranslation('monthNamesShort')[i]);\n }\n\n return monthPickerValues;\n }\n\n yearPickerValues() {\n let yearPickerValues = [];\n let halfRange = Math.floor(this.stepYearPicker / 2);\n let startYear = this.currentYear - halfRange;\n for (let i = 0; i < this.stepYearPicker; i++) {\n yearPickerValues.push(startYear + i);\n }\n\n return yearPickerValues;\n }\n\n createMonths(month: number, year: number) {\n this.months = this.months = [];\n for (let i = 0; i < this.numberOfMonths; i++) {\n let m = month + i;\n let y = year;\n if (m > 11) {\n m = (m % 11) - 1;\n y = year + 1;\n }\n\n this.months.push(this.createMonth(m, y));\n }\n }\n\n getWeekNumber(date: Date) {\n let checkDate = new Date(date.getTime());\n if (this.startWeekFromFirstDayOfYear) {\n let firstDayOfWeek: number = +this.getFirstDateOfWeek();\n checkDate.setDate(checkDate.getDate() + 6 + firstDayOfWeek - checkDate.getDay());\n } else {\n checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));\n }\n let time = checkDate.getTime();\n checkDate.setMonth(0);\n checkDate.setDate(1);\n return Math.floor(Math.round((time - checkDate.getTime()) / 86400000) / 7) + 1;\n }\n\n createMonth(month: number, year: number): Month {\n let dates = [];\n let firstDay = this.getFirstDayOfMonthIndex(month, year);\n let daysLength = this.getDaysCountInMonth(month, year);\n let prevMonthDaysLength = this.getDaysCountInPrevMonth(month, year);\n let dayNo = 1;\n let today = new Date();\n let weekNumbers = [];\n let monthRows = Math.ceil((daysLength + firstDay) / 7);\n\n for (let i = 0; i < monthRows; i++) {\n let week = [];\n\n if (i == 0) {\n for (let j = prevMonthDaysLength - firstDay + 1; j <= prevMonthDaysLength; j++) {\n let prev = this.getPreviousMonthAndYear(month, year);\n week.push({ day: j, month: prev.month, year: prev.year, otherMonth: true, today: this.isToday(today, j, prev.month, prev.year), selectable: this.isSelectable(j, prev.month, prev.year, true) });\n }\n\n let remainingDaysLength = 7 - week.length;\n for (let j = 0; j < remainingDaysLength; j++) {\n week.push({ day: dayNo, month: month, year: year, today: this.isToday(today, dayNo, month, year), selectable: this.isSelectable(dayNo, month, year, false) });\n dayNo++;\n }\n } else {\n for (let j = 0; j < 7; j++) {\n if (dayNo > daysLength) {\n let next = this.getNextMonthAndYear(month, year);\n week.push({\n day: dayNo - daysLength,\n month: next.month,\n year: next.year,\n otherMonth: true,\n today: this.isToday(today, dayNo - daysLength, next.month, next.year),\n selectable: this.isSelectable(dayNo - daysLength, next.month, next.year, true)\n });\n } else {\n week.push({ day: dayNo, month: month, year: year, today: this.isToday(today, dayNo, month, year), selectable: this.isSelectable(dayNo, month, year, false) });\n }\n\n dayNo++;\n }\n }\n\n if (this.showWeek) {\n weekNumbers.push(this.getWeekNumber(new Date(week[0].year, week[0].month, week[0].day)));\n }\n\n dates.push(week);\n }\n\n return {\n month: month,\n year: year,\n dates: <any>dates,\n weekNumbers: weekNumbers\n };\n }\n\n initTime(date: Date) {\n this.pm = date.getHours() > 11;\n\n if (this.showTime) {\n this.currentMinute = date.getMinutes();\n this.currentSecond = date.getSeconds();\n this.setCurrentHourPM(date.getHours());\n } else if (this.timeOnly) {\n this.currentMinute = 0;\n this.currentHour = 0;\n this.currentSecond = 0;\n }\n }\n\n navBackward(event: any) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n this.isMonthNavigate = true;\n\n if (this.currentView === 'month') {\n this.decrementYear();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n } else if (this.currentView === 'year') {\n this.decrementYearPickerStep();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n } else {\n if (this.currentMonth === 0) {\n this.currentMonth = 11;\n this.decrementYear();\n } else {\n this.currentMonth--;\n }\n\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n\n navForward(event: any) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n this.isMonthNavigate = true;\n\n if (this.currentView === 'month') {\n this.incrementYear();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n } else if (this.currentView === 'year') {\n this.incrementYearPickerStep();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n } else {\n if (this.currentMonth === 11) {\n this.currentMonth = 0;\n this.incrementYear();\n } else {\n this.currentMonth++;\n }\n\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n\n decrementYear() {\n this.currentYear--;\n let _yearOptions = <number[]>this.yearOptions;\n\n if (this.yearNavigator && this.currentYear < _yearOptions[0]) {\n let difference = _yearOptions[_yearOptions.length - 1] - _yearOptions[0];\n this.populateYearOptions(_yearOptions[0] - difference, _yearOptions[_yearOptions.length - 1] - difference);\n }\n }\n\n decrementYearPickerStep() {\n this.currentYear = this.currentYear - this.stepYearPicker;\n }\n\n incrementYearPickerStep() {\n this.currentYear = this.currentYear + this.stepYearPicker;\n }\n\n incrementYear() {\n this.currentYear++;\n let _yearOptions = <number[]>this.yearOptions;\n\n if (this.yearNavigator && this.currentYear > _yearOptions[_yearOptions.length - 1]) {\n let difference = _yearOptions[_yearOptions.length - 1] - _yearOptions[0];\n this.populateYearOptions(_yearOptions[0] + difference, _yearOptions[_yearOptions.length - 1] + difference);\n }\n }\n\n switchToMonthView(event: Event) {\n this.setCurrentView('month');\n event.preventDefault();\n }\n\n switchToYearView(event: Event) {\n this.setCurrentView('year');\n event.preventDefault();\n }\n\n onDateSelect(event: Event, dateMeta: any) {\n if (this.disabled || !dateMeta.selectable) {\n event.preventDefault();\n return;\n }\n\n if (this.isMultipleSelection() && this.isSelected(dateMeta)) {\n this.value = this.value.filter((date: Date, i: number) => {\n return !this.isDateEquals(date, dateMeta);\n });\n if (this.value.length === 0) {\n this.value = null;\n }\n this.updateModel(this.value);\n } else {\n if (this.shouldSelectDate(dateMeta)) {\n this.selectDate(dateMeta);\n }\n }\n\n if (this.hideOnDateTimeSelect && (this.isSingleSelection() || (this.isRangeSelection() && this.value[1]))) {\n setTimeout(() => {\n event.preventDefault();\n this.hideOverlay();\n\n if (this.mask) {\n this.disableModality();\n }\n\n this.cd.markForCheck();\n }, 150);\n }\n\n this.updateInputfield();\n event.preventDefault();\n this.updateFormattedInlineDate();\n }\n\n shouldSelectDate(dateMeta: any) {\n if (this.isMultipleSelection()) return this.maxDateCount != null ? this.maxDateCount > (this.value ? this.value.length : 0) : true;\n else return true;\n }\n\n onMonthSelect(event: Event, index: number) {\n if (this.view === 'month') {\n this.onDateSelect(event, { year: this.currentYear, month: index, day: 1, selectable: true });\n } else {\n this.currentMonth = index;\n this.createMonths(this.currentMonth, this.currentYear);\n this.setCurrentView('date');\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n }\n }\n\n onYearSelect(event: Event, year: number) {\n if (this.view === 'year') {\n this.onDateSelect(event, { year: year, month: 0, day: 1, selectable: true });\n } else {\n this.currentYear = year;\n this.setCurrentView('month');\n this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n }\n }\n\n updateInputfield() {\n let formattedValue = '';\n\n if (this.value) {\n if (this.isSingleSelection()) {\n formattedValue = this.formatDateTime(this.value);\n } else if (this.isMultipleSelection()) {\n for (let i = 0; i < this.value.length; i++) {\n let dateAsString = this.formatDateTime(this.value[i]);\n formattedValue += dateAsString;\n if (i !== this.value.length - 1) {\n formattedValue += this.multipleSeparator + ' ';\n }\n }\n } else if (this.isRangeSelection()) {\n if (this.value && this.value.length) {\n let startDate = this.value[0];\n let endDate = this.value[1];\n\n formattedValue = this.formatDateTime(startDate);\n if (endDate) {\n formattedValue += ' ' + this.rangeSeparator + ' ' + this.formatDateTime(endDate);\n }\n }\n }\n }\n\n this.inputFieldValue = formattedValue;\n this.updateFilledState();\n if (this.inputfieldViewChild && this.inputfieldViewChild.nativeElement) {\n this.inputfieldViewChild.nativeElement.value = this.inputFieldValue;\n }\n }\n\n formatDateTime(date: any) {\n let formattedValue = this.keepInvalid ? date : null;\n const isDateValid = this.isValidDateForTimeConstraints(date);\n\n if (this.isValidDate(date)) {\n if (this.timeOnly) {\n formattedValue = this.formatTime(date);\n } else {\n formattedValue = this.formatDate(date, this.getDateFormat());\n if (this.showTime) {\n formattedValue += ' ' + this.formatTime(date);\n }\n }\n } else if (this.dataType === 'string') {\n formattedValue = date;\n }\n formattedValue = isDateValid ? formattedValue : '';\n return formattedValue;\n }\n\n formatDateMetaToDate(dateMeta: any): Date {\n return new Date(dateMeta.year, dateMeta.month, dateMeta.day);\n }\n\n formatDateKey(date: Date): string {\n return `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;\n }\n\n setCurrentHourPM(hours: number) {\n if (this.hourFormat == '12') {\n this.pm = hours > 11;\n if (hours >= 12) {\n this.currentHour = hours == 12 ? 12 : hours - 12;\n } else {\n this.currentHour = hours == 0 ? 12 : hours;\n }\n } else {\n this.currentHour = hours;\n }\n }\n\n setCurrentView(currentView: CalendarTypeView) {\n this.currentView = currentView;\n this.cd.detectChanges();\n this.alignOverlay();\n }\n\n selectDate(dateMeta: any) {\n let date = this.formatDateMetaToDate(dateMeta);\n\n if (this.showTime) {\n if (this.hourFormat == '12') {\n if (this.currentHour === 12) date.setHours(this.pm ? 12 : 0);\n else date.setHours(this.pm ? <number>this.currentHour + 12 : <number>this.currentHour);\n } else {\n date.setHours(<number>this.currentHour);\n }\n\n date.setMinutes(<number>this.currentMinute);\n date.setSeconds(<number>this.currentSecond);\n }\n\n if (this.minDate && this.minDate > date) {\n date = this.minDate;\n this.setCurrentHourPM(date.getHours());\n this.currentMinute = date.getMinutes();\n this.currentSecond = date.getSeconds();\n }\n\n if (this.maxDate && this.maxDate < date) {\n date = this.maxDate;\n this.setCurrentHourPM(date.getHours());\n this.currentMinute = date.getMinutes();\n this.currentSecond = date.getSeconds();\n }\n\n if (this.isSingleSelection()) {\n this.updateModel(date);\n } else if (this.isMultipleSelection()) {\n this.updateModel(this.value ? [...this.value, date] : [date]);\n } else if (this.isRangeSelection()) {\n if (this.value && this.value.length) {\n let startDate = this.value[0];\n let endDate = this.value[1];\n\n if (!endDate && date.getTime() >= startDate.getTime()) {\n endDate = date;\n } else {\n startDate = date;\n endDate = null;\n }\n\n this.updateModel([startDate, endDate]);\n } else {\n this.updateModel([date, null]);\n }\n }\n\n this.onSelect.emit(date);\n }\n\n updateModel(value: any) {\n this.value = value;\n\n if (this.dataType == 'date') {\n this.onModelChange(this.value);\n } else if (this.dataType == 'string') {\n if (this.isSingleSelection()) {\n this.onModelChange(this.formatDateTime(this.value));\n } else {\n let stringArrValue = null;\n if (Array.isArray(this.value)) {\n stringArrValue = this.value.map((date: Date) => this.formatDateTime(date));\n }\n this.onModelChange(stringArrValue);\n }\n }\n }\n\n getFirstDayOfMonthIndex(month: number, year: number) {\n let day = new Date();\n day.setDate(1);\n day.setMonth(month);\n day.setFullYear(year);\n\n let dayIndex = day.getDay() + this.getSundayIndex();\n return dayIndex >= 7 ? dayIndex - 7 : dayIndex;\n }\n\n getDaysCountInMonth(month: number, year: number) {\n return 32 - this.daylightSavingAdjust(new Date(year, month, 32)).getDate();\n }\n\n getDaysCountInPrevMonth(month: number, year: number) {\n let prev = this.getPreviousMonthAndYear(month, year);\n return this.getDaysCountInMonth(prev.month, prev.year);\n }\n\n getPreviousMonthAndYear(month: number, year: number) {\n let m, y;\n\n if (month === 0) {\n m = 11;\n y = year - 1;\n } else {\n m = month - 1;\n y = year;\n }\n\n return { month: m, year: y };\n }\n\n getNextMonthAndYear(month: number, year: number) {\n let m, y;\n\n if (month === 11) {\n m = 0;\n y = year + 1;\n } else {\n m = month + 1;\n y = year;\n }\n\n return { month: m, year: y };\n }\n\n getSundayIndex() {\n let firstDayOfWeek = this.getFirstDateOfWeek();\n\n return firstDayOfWeek > 0 ? 7 - firstDayOfWeek : 0;\n }\n\n isSelected(dateMeta: any): boolean | undefined {\n if (this.value) {\n if (this.isSingleSelection()) {\n return this.isDateEquals(this.value, dateMeta);\n } else if (this.isMultipleSelection()) {\n let selected = false;\n for (let date of this.value) {\n selected = this.isDateEquals(date, dateMeta);\n if (selected) {\n break;\n }\n }\n\n return selected;\n } else if (this.isRangeSelection()) {\n if (this.value[1]) return this.isDateEquals(this.value[0], dateMeta) || this.isDateEquals(this.value[1], dateMeta) || this.isDateBetween(this.value[0], this.value[1], dateMeta);\n else return this.isDateEquals(this.value[0], dateMeta);\n }\n } else {\n return false;\n }\n }\n\n isComparable() {\n return this.value != null && typeof this.value !== 'string';\n }\n\n isMonthSelected(month: number) {\n if (!this.isComparable()) return false;\n if (this.isMultipleSelection()) return false;\n let value = this.isRangeSelection() ? this.value[0] : this.value;\n return value ? value.getMonth() === month : false;\n }\n\n isMonthDisabled(month: number, year?: number) {\n const yearToCheck = year ?? this.currentYear;\n\n for (let day = 1; day < this.getDaysCountInMonth(month, yearToCheck) + 1; day++) {\n if (this.isSelectable(day, month, yearToCheck, false)) {\n return false;\n }\n }\n return true;\n }\n\n isYearDisabled(year: number) {\n return Array(12)\n .fill(0)\n .every((v, month) => this.isMonthDisabled(month, year));\n }\n\n isYearSelected(year: number) {\n if (!this.isComparable()) return false;\n if (this.isMultipleSelection()) return false;\n\n let value = this.isRangeSelection() ? this.value[0] : this.value;\n return value ? value.getFullYear() === year : false;\n }\n\n isDateEquals(value: any, dateMeta: any) {\n if (value && ObjectUtils.isDate(value)) return value.getDate() === dateMeta.day && value.getMonth() === dateMeta.month && value.getFullYear() === dateMeta.year;\n else return false;\n }\n\n isDateBetween(start: Date, end: Date, dateMeta: any) {\n let between: boolean = false;\n if (ObjectUtils.isDate(start) && ObjectUtils.isDate(end)) {\n let date: Date = this.formatDateMetaToDate(dateMeta);\n return start.getTime() <= date.getTime() && end.getTime() >= date.getTime();\n }\n\n return between;\n }\n\n isSingleSelection(): boolean {\n return this.selectionMode === 'single';\n }\n\n isRangeSelection(): boolean {\n return this.selectionMode === 'range';\n }\n\n isMultipleSelection(): boolean {\n return this.selectionMode === 'multiple';\n }\n\n isToday(today: Date, day: number, month: number, year: number): boolean {\n return today.getDate() === day && today.getMonth() === month && today.getFullYear() === year;\n }\n\n isSelectable(day: any, month: any, year: any, otherMonth: any): boolean {\n let validMin = true;\n let validMax = true;\n let validDate = true;\n let validDay = true;\n\n if (otherMonth && !this.selectOtherMonths) {\n return false;\n }\n\n if (this.minDate) {\n if (this.minDate.getFullYear() > year) {\n validMin = false;\n } else if (this.minDate.getFullYear() === year && this.currentView != 'year') {\n if (this.minDate.getMonth() > month) {\n validMin = false;\n } else if (this.minDate.getMonth() === month) {\n if (this.minDate.getDate() > day) {\n validMin = false;\n }\n }\n }\n }\n\n if (this.maxDate) {\n if (this.maxDate.getFullYear() < year) {\n validMax = false;\n } else if (this.maxDate.getFullYear() === year) {\n if (this.maxDate.getMonth() < month) {\n validMax = false;\n } else if (this.maxDate.getMonth() === month) {\n if (this.maxDate.getDate() < day) {\n validMax = false;\n }\n }\n }\n }\n\n if (this.disabledDates) {\n validDate = !this.isDateDisabled(day, month, year);\n }\n\n if (this.disabledDays) {\n validDay = !this.isDayDisabled(day, month, year);\n }\n\n return validMin && validMax && validDate && validDay;\n }\n\n isDateDisabled(day: number, month: number, year: number): boolean {\n if (this.disabledDates) {\n for (let disabledDate of this.disabledDates) {\n if (disabledDate.getFullYear() === year && disabledDate.getMonth() === month && disabledDate.getDate() === day) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n isDayDisabled(day: number, month: number, year: number): boolean {\n if (this.disabledDays) {\n let weekday = new Date(year, month, day);\n let weekdayNumber = weekday.getDay();\n return this.disabledDays.indexOf(weekdayNumber) !== -1;\n }\n return false;\n }\n\n onInputFocus(event: Event) {\n this.focus = true;\n if (this.showOnFocus) {\n this.showOverlay();\n }\n this.onFocus.emit(event);\n }\n\n onInputClick() {\n if (this.showOnFocus && !this.overlayVisible) {\n this.showOverlay();\n }\n }\n\n onInputBlur(event: Event) {\n this.focus = false;\n this.onBlur.emit(event);\n if (!this.keepInvalid) {\n this.updateInputfield();\n }\n this.onModelTouched();\n }\n\n onButtonClick(event: Event, inputfield: any = this.inputfieldViewChild?.nativeElement) {\n if (!this.overlayVisible) {\n inputfield.focus();\n this.showOverlay();\n } else {\n this.hideOverlay();\n }\n }\n\n clear() {\n this.inputFieldValue = null;\n this.value = null;\n this.onModelChange(this.value);\n this.onClear.emit();\n }\n\n onOverlayClick(event: Event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\n }\n\n getMonthName(index: number) {\n return this.config.getTranslation('monthNames')[index];\n }\n\n getYear(month: any) {\n return this.currentView === 'month' ? this.currentYear : month.year;\n }\n\n switchViewButtonDisabled() {\n return this.numberOfMonths > 1 || this.disabled;\n }\n\n onPrevButtonClick(event: Event) {\n this.navigationState = { backward: true, button: true };\n this.navBackward(event);\n }\n\n onNextButtonClick(event: Event) {\n this.navigationState = { backward: false, button: true };\n this.navForward(event);\n }\n\n onContainerButtonKeydown(event: KeyboardEvent) {\n switch (event.which) {\n //tab\n case 9:\n if (!this.inline) {\n this.trapFocus(event);\n }\n if (this.inline) {\n const headerElements = DomHandler.findSingle(this.containerViewChild?.nativeElement, '.cax-datepicker-header');\n const element = event.target;\n if (this.timeOnly) {\n return;\n } else {\n if (element == headerElements.children[headerElements?.children?.length - 1]) {\n this.initFocusableCell();\n }\n }\n }\n break;\n\n //escape\n case 27:\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n\n default:\n //Noop\n break;\n }\n }\n\n onInputKeydown(event: any) {\n this.isKeydown = true;\n if (event.keyCode === 40 && this.contentViewChild) {\n this.trapFocus(event);\n } else if (event.keyCode === 27) {\n if (this.overlayVisible) {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n }\n } else if (event.keyCode === 13) {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n event.preventDefault();\n }\n } else if (event.keyCode === 9 && this.contentViewChild) {\n DomHandler.getFocusableElements(this.contentViewChild.nativeElement).forEach((el) => (el.tabIndex = '-1'));\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n }\n }\n\n onDateCellKeydown(event: any, dateMeta: any, groupIndex: number) {\n const cellContent = event.currentTarget;\n const cell = cellContent.parentElement;\n const currentDate = this.formatDateMetaToDate(dateMeta);\n switch (event.which) {\n //down arrow\n case 40: {\n cellContent.tabIndex = '-1';\n let cellIndex = DomHandler.index(cell);\n let nextRow = cell.parentElement.nextElementSibling;\n if (nextRow) {\n let focusCell = nextRow.children[cellIndex].children[0];\n if (DomHandler.hasClass(focusCell, 'cax-disabled')) {\n this.navigationState = { backward: false };\n this.navForward(event);\n } else {\n nextRow.children[cellIndex].children[0].tabIndex = '0';\n nextRow.children[cellIndex].children[0].focus();\n }\n } else {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n event.preventDefault();\n break;\n }\n\n //up arrow\n case 38: {\n cellContent.tabIndex = '-1';\n let cellIndex = DomHandler.index(cell);\n let prevRow = cell.parentElement.previousElementSibling;\n if (prevRow) {\n let focusCell = prevRow.children[cellIndex].children[0];\n if (DomHandler.hasClass(focusCell, 'cax-disabled')) {\n this.navigationState = { backward: true };\n this.navBackward(event);\n } else {\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n } else {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n event.preventDefault();\n break;\n }\n\n //left arrow\n case 37: {\n cellContent.tabIndex = '-1';\n let prevCell = cell.previousElementSibling;\n if (prevCell) {\n let focusCell = prevCell.children[0];\n if (DomHandler.hasClass(focusCell, 'cax-disabled') || DomHandler.hasClass(focusCell.parentElement, 'cax-datepicker-weeknumber')) {\n this.navigateToMonth(true, groupIndex);\n } else {\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n } else {\n this.navigateToMonth(true, groupIndex);\n }\n event.preventDefault();\n break;\n }\n\n //right arrow\n case 39: {\n cellContent.tabIndex = '-1';\n let nextCell = cell.nextElementSibling;\n if (nextCell) {\n let focusCell = nextCell.children[0];\n if (DomHandler.hasClass(focusCell, 'cax-disabled')) {\n this.navigateToMonth(false, groupIndex);\n } else {\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n } else {\n this.navigateToMonth(false, groupIndex);\n }\n event.preventDefault();\n break;\n }\n\n //enter\n //space\n case 13:\n case 32: {\n this.onDateSelect(event, dateMeta);\n event.preventDefault();\n break;\n }\n\n //escape\n case 27: {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n }\n\n //tab\n case 9: {\n if (!this.inline) {\n this.trapFocus(event);\n }\n break;\n }\n\n // page up\n case 33: {\n cellContent.tabIndex = '-1';\n const dateToFocus = new Date(currentDate.getFullYear(), currentDate.getMonth() - 1, currentDate.getDate());\n const focusKey = this.formatDateKey(dateToFocus);\n this.navigateToMonth(true, groupIndex, `span[data-date='${focusKey}']:not(.cax-disabled):not(.cax-ink)`);\n event.preventDefault();\n break;\n }\n\n // page down\n case 34: {\n cellContent.tabIndex = '-1';\n const dateToFocus = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, currentDate.getDate());\n const focusKey = this.formatDateKey(dateToFocus);\n this.navigateToMonth(false, groupIndex, `span[data-date='${focusKey}']:not(.cax-disabled):not(.cax-ink)`);\n event.preventDefault();\n break;\n }\n\n //home\n case 36:\n cellContent.tabIndex = '-1';\n const firstDayDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n const firstDayDateKey = this.formatDateKey(firstDayDate);\n const firstDayCell = DomHandler.findSingle(cellContent.offsetParent, `span[data-date='${firstDayDateKey}']:not(.cax-disabled):not(.cax-ink)`);\n if (firstDayCell) {\n firstDayCell.tabIndex = '0';\n firstDayCell.focus();\n }\n event.preventDefault();\n break;\n\n //end\n case 35:\n cellContent.tabIndex = '-1';\n const lastDayDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n const lastDayDateKey = this.formatDateKey(lastDayDate);\n const lastDayCell = DomHandler.findSingle(cellContent.offsetParent, `span[data-date='${lastDayDateKey}']:not(.cax-disabled):not(.cax-ink)`);\n if (lastDayDate) {\n lastDayCell.tabIndex = '0';\n lastDayCell.focus();\n }\n event.preventDefault();\n break;\n\n default:\n //no op\n break;\n }\n }\n\n onMonthCellKeydown(event: any, index: number) {\n const cell = event.currentTarget;\n switch (event.which) {\n //arrows\n case 38:\n case 40: {\n cell.tabIndex = '-1';\n var cells = cell.parentElement.children;\n var cellIndex = DomHandler.index(cell);\n let nextCell = cells[event.which === 40 ? cellIndex + 3 : cellIndex - 3];\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n event.preventDefault();\n break;\n }\n\n //left arrow\n case 37: {\n cell.tabIndex = '-1';\n let prevCell = cell.previousElementSibling;\n if (prevCell) {\n prevCell.tabIndex = '0';\n prevCell.focus();\n } else {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n\n event.preventDefault();\n break;\n }\n\n //right arrow\n case 39: {\n cell.tabIndex = '-1';\n let nextCell = cell.nextElementSibling;\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n } else {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n\n event.preventDefault();\n break;\n }\n\n //enter\n //space\n case 13:\n case 32: {\n this.onMonthSelect(event, index);\n event.preventDefault();\n break;\n }\n\n //escape\n case 27: {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n }\n\n //tab\n case 9: {\n if (!this.inline) {\n this.trapFocus(event);\n }\n break;\n }\n\n default:\n //no op\n break;\n }\n }\n\n onYearCellKeydown(event: any, index: number) {\n const cell = event.currentTarget;\n\n switch (event.which) {\n //arrows\n case 38:\n case 40: {\n cell.tabIndex = '-1';\n var cells = cell.parentElement.children;\n var cellIndex = DomHandler.index(cell);\n let nextCell = cells[event.which === 40 ? cellIndex + 2 : cellIndex - 2];\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n event.preventDefault();\n break;\n }\n\n //left arrow\n case 37: {\n cell.tabIndex = '-1';\n let prevCell = cell.previousElementSibling;\n if (prevCell) {\n prevCell.tabIndex = '0';\n prevCell.focus();\n } else {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n\n event.preventDefault();\n break;\n }\n\n //right arrow\n case 39: {\n cell.tabIndex = '-1';\n let nextCell = cell.nextElementSibling;\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n } else {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n\n event.preventDefault();\n break;\n }\n\n //enter\n //space\n case 13:\n case 32: {\n this.onYearSelect(event, index);\n event.preventDefault();\n break;\n }\n\n //escape\n case 27: {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n }\n\n //tab\n case 9: {\n this.trapFocus(event);\n break;\n }\n\n default:\n //no op\n break;\n }\n }\n\n navigateToMonth(prev: boolean, groupIndex: number, focusKey?: string) {\n if (prev) {\n if (this.numberOfMonths === 1 || groupIndex === 0) {\n this.navigationState = { backward: true };\n this._focusKey = focusKey;\n this.navBackward(event);\n } else {\n let prevMonthContainer = this.contentViewChild.nativeElement.children[groupIndex - 1];\n if (focusKey) {\n const firstDayCell = DomHandler.findSingle(prevMonthContainer, focusKey);\n firstDayCell.tabIndex = '0';\n firstDayCell.focus();\n } else {\n let cells = DomHandler.find(prevMonthContainer, '.cax-datepicker-calendar td span:not(.cax-disabled):not(.cax-ink)');\n let focusCell = cells[cells.length - 1];\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n } else {\n if (this.numberOfMonths === 1 || groupIndex === this.numberOfMonths - 1) {\n this.navigationState = { backward: false };\n this._focusKey = focusKey;\n this.navForward(event);\n } else {\n let nextMonthContainer = this.contentViewChild.nativeElement.children[groupIndex + 1];\n if (focusKey) {\n const firstDayCell = DomHandler.findSingle(nextMonthContainer, focusKey);\n firstDayCell.tabIndex = '0';\n firstDayCell.focus();\n } else {\n let focusCell = DomHandler.findSingle(nextMonthContainer, '.cax-datepicker-calendar td span:not(.cax-disabled):not(.cax-ink)');\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n }\n }\n\n updateFocus() {\n let cell;\n\n if (this.navigationState) {\n if (this.navigationState.button) {\n this.initFocusableCell();\n\n if (this.navigationState.backward) DomHandler.findSingle(this.contentViewChild.nativeElement, '.cax-datepicker-prev').focus();\n else DomHandler.findSingle(this.contentViewChild.nativeElement, '.cax-datepicker-next').focus();\n } else {\n if (this.navigationState.backward) {\n let cells;\n\n if (this.currentView === 'month') {\n cells = DomHandler.find(this.contentViewChild.nativeElement, '.cax-monthpicker .cax-monthpicker-month:not(.cax-disabled)');\n } else if (this.currentView === 'year') {\n cells = DomHandler.find(this.contentViewChild.nativeElement, '.cax-yearpicker .cax-yearpicker-year:not(.cax-disabled)');\n } else {\n cells = DomHandler.find(this.contentViewChild.nativeElement, this._focusKey || '.cax-datepicker-calendar td span:not(.cax-disabled):not(.cax-ink)');\n }\n\n if (cells && cells.length > 0) {\n cell = cells[cells.length - 1];\n }\n } else {\n if (this.currentView === 'month') {\n cell = DomHandler.findSingle(this.contentViewChild.nativeElement, '.cax-monthpicker .cax-monthpicker-month:not(.cax-disabled)');\n } else if (this.currentView === 'year') {\n cell = DomHandler.findSingle(this.contentViewChild.nativeElement, '.cax-yearpicker .cax-yearpicker-year:not(.cax-disabled)');\n } else {\n cell = DomHandler.findSingle(this.contentViewChild.nativeElement, this._focusKey || '.cax-datepicker-calendar td span:not(.cax-disabled):not(.cax-ink)');\n }\n }\n\n if (cell) {\n cell.tabIndex = '0';\n cell.focus();\n }\n }\n\n this.navigationState = null;\n this._focusKey = null;\n } else {\n this.initFocusableCell();\n }\n this.alignOverlay();\n }\n\n initFocusableCell() {\n const contentEl = this.contentViewChild?.nativeElement;\n let cell!: any;\n\n if (this.currentView === 'month') {\n let cells = DomHandler.find(contentEl, '.cax-monthpicker .cax-monthpicker-month:not(.cax-disabled)');\n let selectedCell = DomHandler.findSingle(contentEl, '.cax-monthpicker .cax-monthpicker-month.cax-highlight');\n cells.forEach((cell) => (cell.tabIndex = -1));\n cell = selectedCell || cells[0];\n\n if (cells.length === 0) {\n let disabledCells = DomHandler.find(contentEl, '.cax-monthpicker .cax-monthpicker-month.cax-disabled[tabindex = \"0\"]');\n disabledCells.forEach((cell) => (cell.tabIndex = -1));\n }\n } else if (this.currentView === 'year') {\n let cells = DomHandler.find(contentEl, '.cax-yearpicker .cax-yearpicker-year:not(.cax-disabled)');\n let selectedCell = DomHandler.findSingle(contentEl, '.cax-yearpicker .cax-yearpicker-year.cax-highlight');\n cells.forEach((cell) => (cell.tabIndex = -1));\n cell = selectedCell || cells[0];\n\n if (cells.length === 0) {\n let disabledCells = DomHandler.find(contentEl, '.cax-yearpicker .cax-yearpicker-year.cax-disabled[tabindex = \"0\"]');\n disabledCells.forEach((cell) => (cell.tabIndex = -1));\n }\n } else {\n cell = DomHandler.findSingle(contentEl, 'span.cax-highlight');\n if (!cell) {\n let todayCell = DomHandler.findSingle(contentEl, 'td.cax-datepicker-today span:not(.cax-disabled):not(.cax-ink)');\n if (todayCell) cell = todayCell;\n else cell = DomHandler.findSingle(contentEl, '.cax-datepicker-calendar td span:not(.cax-disabled):not(.cax-ink)');\n }\n }\n\n if (cell) {\n cell.tabIndex = '0';\n\n if (!this.preventFocus && (!this.navigationState || !this.navigationState.button)) {\n setTimeout(() => {\n if (!this.disabled) {\n cell.focus();\n }\n }, 1);\n }\n\n this.preventFocus = false;\n }\n }\n\n trapFocus(event: any) {\n let focusableElements = DomHandler.getFocusableElements(this.contentViewChild.nativeElement);\n\n if (focusableElements && focusableElements.length > 0) {\n if (!focusableElements[0].ownerDocument.activeElement) {\n focusableElements[0].focus();\n } else {\n let focusedIndex = focusableElements.indexOf(focusableElements[0].ownerDocument.activeElement);\n\n if (event.shiftKey) {\n if (focusedIndex == -1 || focusedIndex === 0) {\n if (this.focusTrap) {\n focusableElements[focusableElements.length - 1].focus();\n } else {\n if (focusedIndex === -1) return this.hideOverlay();\n else if (focusedIndex === 0) return;\n }\n } else {\n focusableElements[focusedIndex - 1].focus();\n }\n } else {\n if (focusedIndex == -1) {\n if (this.timeOnly) {\n focusableElements[0].focus();\n } else {\n let spanIndex = 0;\n\n for (let i = 0; i < focusableElements.length; i++) {\n if (focusableElements[i].tagName === 'SPAN') spanIndex = i;\n }\n\n focusableElements[spanIndex].focus();\n }\n } else if (focusedIndex === focusableElements.length - 1) {\n if (!this.focusTrap && focusedIndex != -1) return this.hideOverlay();\n\n focusableElements[0].focus();\n } else {\n focusableElements[focusedIndex + 1].focus();\n }\n }\n }\n }\n\n event.preventDefault();\n }\n\n onMonthDropdownChange(m: string) {\n this.currentMonth = parseInt(m);\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n\n onYearDropdownChange(y: string) {\n this.currentYear = parseInt(y);\n this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n\n convertTo24Hour(hours: number, pm: boolean) {\n //@ts-ignore\n if (this.hourFormat == '12') {\n if (hours === 12) {\n return pm ? 12 : 0;\n } else {\n return pm ? hours + 12 : hours;\n }\n }\n return hours;\n }\n\n constrainTime(hour: number, minute: number, second: number, pm: boolean) {\n let returnTimeTriple: number[] = [hour, minute, second];\n let minHoursExceeds12: boolean;\n let value = this.value;\n const convertedHour = this.convertTo24Hour(hour, pm);\n const isRange = this.isRangeSelection(),\n isMultiple = this.isMultipleSelection(),\n isMultiValue = isRange || isMultiple;\n\n if (isMultiValue) {\n if (!this.value) {\n this.value = [new Date(), new Date()];\n }\n if (isRange) {\n value = this.value[1] || this.value[0];\n }\n if (isMultiple) {\n value = this.value[this.value.length - 1];\n }\n }\n const valueDateString = value ? value.toDateString() : null;\n let isMinDate = this.minDate && valueDateString && this.minDate.toDateString() === valueDateString;\n let isMaxDate = this.maxDate && valueDateString && this.maxDate.toDateString() === valueDateString;\n\n if (isMinDate) {\n minHoursExceeds12 = this.minDate.getHours() >= 12;\n }\n\n switch (\n true // intentional fall through\n ) {\n case isMinDate && minHoursExceeds12 && this.minDate.getHours() === 12 && this.minDate.getHours() > convertedHour:\n returnTimeTriple[0] = 11;\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMinDate && !minHoursExceeds12 && this.minDate.getHours() - 1 === convertedHour && this.minDate.getHours() > convertedHour:\n returnTimeTriple[0] = 11;\n this.pm = true;\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n\n case isMinDate && minHoursExceeds12 && this.minDate.getHours() > convertedHour && convertedHour !== 12:\n this.setCurrentHourPM(this.minDate.getHours());\n returnTimeTriple[0] = this.currentHour;\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMinDate && this.minDate.getHours() > convertedHour:\n returnTimeTriple[0] = this.minDate.getHours();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMaxDate && this.maxDate.getHours() < convertedHour:\n returnTimeTriple[0] = this.maxDate.getHours();\n case isMaxDate && this.maxDate.getHours() === convertedHour && this.maxDate.getMinutes() < minute:\n returnTimeTriple[1] = this.maxDate.getMinutes();\n case isMaxDate && this.maxDate.getHours() === convertedHour && this.maxDate.getMinutes() === minute && this.maxDate.getSeconds() < second:\n returnTimeTriple[2] = this.maxDate.getSeconds();\n break;\n }\n\n return returnTimeTriple;\n }\n\n incrementHour(event: any) {\n const prevHour = this.currentHour ?? 0;\n let newHour = (this.currentHour ?? 0) + this.stepHour;\n let newPM = this.pm;\n if (this.hourFormat == '24') newHour = newHour >= 24 ? newHour - 24 : newHour;\n else if (this.hourFormat == '12') {\n // Before the AM/PM break, now after\n if (prevHour < 12 && newHour > 11) {\n newPM = !this.pm;\n }\n newHour = newHour >= 13 ? newHour - 12 : newHour;\n }\n this.toggleAMPMIfNotMinDate(newPM);\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(newHour, this.currentMinute!, this.currentSecond!, newPM!);\n event.preventDefault();\n }\n\n toggleAMPMIfNotMinDate(newPM: boolean) {\n let value = this.value;\n\n if ((this.selectionMode == 'range' || this.selectionMode == 'multiple') && Array.isArray(value) && value.length > 0) {\n value = value[value.length - 1];\n }\n const valueDateString = value ? value.toDateString() : null;\n let isMinDate = this.minDate && valueDateString && this.minDate.toDateString() === valueDateString;\n if (isMinDate && this.minDate.getHours() >= 12) {\n this.pm = true;\n } else {\n this.pm = newPM;\n }\n }\n\n onTimePickerElementMouseDown(event: Event, type: number, direction: number) {\n if (!this.disabled) {\n this.repeat(event, null, type, direction);\n event.preventDefault();\n }\n }\n\n onTimePickerElementMouseUp(event: Event) {\n if (!this.disabled) {\n this.clearTimePickerTimer();\n this.updateTime();\n }\n }\n\n onTimePickerElementMouseLeave() {\n if (!this.disabled && this.timePickerTimer) {\n this.clearTimePickerTimer();\n this.updateTime();\n }\n }\n\n repeat(event: Event | null, interval: number | null, type: number | null, direction: number | null) {\n let i = interval || 500;\n\n this.clearTimePickerTimer();\n this.timePickerTimer = setTimeout(() => {\n this.repeat(event, 100, type, direction);\n this.cd.markForCheck();\n }, i);\n\n switch (type) {\n case 0:\n if (direction === 1) this.incrementHour(event);\n else this.decrementHour(event);\n break;\n\n case 1:\n if (direction === 1) this.incrementMinute(event);\n else this.decrementMinute(event);\n break;\n\n case 2:\n if (direction === 1) this.incrementSecond(event);\n else this.decrementSecond(event);\n break;\n }\n\n this.updateInputfield();\n }\n\n clearTimePickerTimer() {\n if (this.timePickerTimer) {\n clearTimeout(this.timePickerTimer);\n this.timePickerTimer = null;\n }\n }\n\n decrementHour(event: any) {\n let newHour = (this.currentHour ?? 0) - this.stepHour;\n let newPM = this.pm;\n if (this.hourFormat == '24') newHour = newHour < 0 ? 24 + newHour : newHour;\n else if (this.hourFormat == '12') {\n // If we were at noon/midnight, then switch\n if (this.currentHour === 12) {\n newPM = !this.pm;\n }\n newHour = newHour <= 0 ? 12 + newHour : newHour;\n }\n this.toggleAMPMIfNotMinDate(newPM);\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(newHour, this.currentMinute!, this.currentSecond!, newPM!);\n event.preventDefault();\n }\n\n incrementMinute(event: any) {\n let newMinute = (this.currentMinute ?? 0) + this.stepMinute;\n newMinute = newMinute > 59 ? newMinute - 60 : newMinute;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, newMinute, this.currentSecond!, this.pm!);\n event.preventDefault();\n }\n\n decrementMinute(event: any) {\n let newMinute = (this.currentMinute ?? 0) - this.stepMinute;\n newMinute = newMinute < 0 ? 60 + newMinute : newMinute;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, newMinute, this.currentSecond, this.pm);\n event.preventDefault();\n }\n\n incrementSecond(event: any) {\n let newSecond = <any>this.currentSecond + this.stepSecond;\n newSecond = newSecond > 59 ? newSecond - 60 : newSecond;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, newSecond, this.pm);\n event.preventDefault();\n }\n\n decrementSecond(event: any) {\n let newSecond = <any>this.currentSecond - this.stepSecond;\n newSecond = newSecond < 0 ? 60 + newSecond : newSecond;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, newSecond, this.pm);\n event.preventDefault();\n }\n\n updateTime() {\n let value = this.value;\n if (this.isRangeSelection()) {\n value = this.value[1] || this.value[0];\n }\n if (this.isMultipleSelection()) {\n value = this.value[this.value.length - 1];\n }\n value = value ? new Date(value.getTime()) : new Date();\n\n if (this.hourFormat == '12') {\n if (this.currentHour === 12) value.setHours(this.pm ? 12 : 0);\n else value.setHours(this.pm ? <number>this.currentHour + 12 : this.currentHour);\n } else {\n value.setHours(this.currentHour);\n }\n\n value.setMinutes(this.currentMinute);\n value.setSeconds(this.currentSecond);\n if (this.isRangeSelection()) {\n if (this.value[1]) value = [this.value[0], value];\n else value = [value, null];\n }\n\n if (this.isMultipleSelection()) {\n value = [...this.value.slice(0, -1), value];\n }\n\n this.updateModel(value);\n this.onSelect.emit(value);\n this.updateInputfield();\n }\n\n toggleAMPM(event: any) {\n const newPM = !this.pm;\n this.pm = newPM;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, this.currentSecond, newPM);\n this.updateTime();\n event.preventDefault();\n }\n\n onUserInput(event: KeyboardEvent | any) {\n // IE 11 Workaround for input placeholder : https://github.com/primefaces/cax-design-system/issues/2026\n if (!this.isKeydown) {\n return;\n }\n this.isKeydown = false;\n\n let val = (<HTMLInputElement>event.target).value;\n try {\n let value = this.parseValueFromString(val);\n if (this.isValidSelection(value)) {\n this.updateModel(value);\n this.updateUI();\n } else if (this.keepInvalid) {\n this.updateModel(value);\n }\n } catch (err) {\n //invalid date\n let value = this.keepInvalid ? val : null;\n this.updateModel(value);\n }\n\n this.filled = (val != null && val.length) as any;\n this.onInput.emit(event);\n }\n\n isValidSelection(value: any): boolean {\n if (this.isSingleSelection()) {\n return this.isSelectable(value.getDate(), value.getMonth(), value.getFullYear(), false);\n }\n let isValid = value.every((v: any) => this.isSelectable(v.getDate(), v.getMonth(), v.getFullYear(), false));\n if (isValid && this.isRangeSelection()) {\n isValid = value.length === 1 || (value.length > 1 && value[1] >= value[0]);\n }\n return isValid;\n }\n\n parseValueFromString(text: string): Date | Date[] | null {\n if (!text || text.trim().length === 0) {\n return null;\n }\n\n let value: any;\n\n if (this.isSingleSelection()) {\n value = this.parseDateTime(text);\n } else if (this.isMultipleSelection()) {\n let tokens = text.split(this.multipleSeparator);\n value = [];\n for (let token of tokens) {\n value.push(this.parseDateTime(token.trim()));\n }\n } else if (this.isRangeSelection()) {\n let tokens = text.split(' ' + this.rangeSeparator + ' ');\n value = [];\n for (let i = 0; i < tokens.length; i++) {\n value[i] = this.parseDateTime(tokens[i].trim());\n }\n }\n\n return value;\n }\n\n parseDateTime(text: any): Date {\n let date: Date;\n let parts: string[] = text.split(' ');\n\n if (this.timeOnly) {\n date = new Date();\n this.populateTime(date, parts[0], parts[1]);\n } else {\n const dateFormat = this.getDateFormat();\n if (this.showTime) {\n let ampm = this.hourFormat == '12' ? parts.pop() : null;\n let timeString = parts.pop();\n\n date = this.parseDate(parts.join(' '), dateFormat);\n this.populateTime(date, timeString, ampm);\n } else {\n date = this.parseDate(text, dateFormat);\n }\n }\n\n return date;\n }\n\n populateTime(value: any, timeString: any, ampm: any) {\n if (this.hourFormat == '12' && !ampm) {\n throw 'Invalid Time';\n }\n\n this.pm = ampm === 'PM' || ampm === 'pm';\n let time = this.parseTime(timeString);\n value.setHours(time.hour);\n value.setMinutes(time.minute);\n value.setSeconds(time.second);\n }\n\n isValidDate(date: any) {\n return ObjectUtils.isDate(date) && ObjectUtils.isNotEmpty(date);\n }\n\n updateUI() {\n let propValue = this.value;\n if (Array.isArray(propValue)) {\n propValue = propValue[1] || propValue[0];\n }\n\n let val = this.defaultDate && this.isValidDate(this.defaultDate) && !this.value ? this.defaultDate : propValue && this.isValidDate(propValue) ? propValue : new Date();\n\n this.currentMonth = val.getMonth();\n this.currentYear = val.getFullYear();\n this.createMonths(this.currentMonth, this.currentYear);\n\n if (this.showTime || this.timeOnly) {\n this.setCurrentHourPM(val.getHours());\n this.currentMinute = val.getMinutes();\n this.currentSecond = val.getSeconds();\n }\n }\n\n showOverlay() {\n if (!this.overlayVisible) {\n this.updateUI();\n\n if (!this.touchUI) {\n this.preventFocus = true;\n }\n\n this.overlayVisible = true;\n }\n }\n\n hideOverlay() {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n this.clearTimePickerTimer();\n\n if (this.touchUI) {\n this.disableModality();\n }\n\n this.cd.markForCheck();\n }\n\n toggle() {\n if (!this.inline) {\n if (!this.overlayVisible) {\n this.showOverlay();\n this.inputfieldViewChild?.nativeElement.focus();\n } else {\n this.hideOverlay();\n }\n }\n }\n\n onOverlayAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n case 'visibleTouchUI':\n if (!this.inline) {\n this.overlay = event.element;\n this.overlay?.setAttribute(this.attributeSelector as string, '');\n this.appendOverlay();\n this.updateFocus();\n if (this.autoZIndex) {\n if (this.touchUI) ZIndexUtils.set('modal', this.overlay, this.baseZIndex || this.config.zIndex.modal);\n else ZIndexUtils.set('overlay', this.overlay, this.baseZIndex || this.config.zIndex.overlay);\n }\n\n this.alignOverlay();\n this.onShow.emit(event);\n }\n break;\n\n case 'void':\n this.onOverlayHide();\n this.onClose.emit(event);\n break;\n }\n }\n\n onOverlayAnimationDone(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n case 'visibleTouchUI':\n if (!this.inline) {\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n }\n break;\n\n case 'void':\n if (this.autoZIndex) {\n ZIndexUtils.clear(event.element);\n }\n break;\n }\n }\n\n appendOverlay() {\n if (this.appendTo) {\n if (this.appendTo === 'body') this.document.body.appendChild(<HTMLElement>this.overlay);\n else DomHandler.appendChild(this.overlay, this.appendTo);\n }\n }\n\n restoreOverlayAppend() {\n if (this.overlay && this.appendTo) {\n this.el.nativeElement.appendChild(this.overlay);\n }\n }\n\n alignOverlay() {\n if (this.touchUI) {\n this.enableModality(this.overlay);\n } else if (this.overlay) {\n if (this.appendTo) {\n if (this.view === 'date') {\n if (!this.overlay.style.width) {\n this.overlay.style.width = DomHandler.getOuterWidth(this.overlay) + 'px';\n }\n if (!this.overlay.style.minWidth) {\n this.overlay.style.minWidth = DomHandler.getOuterWidth(this.inputfieldViewChild?.nativeElement) + 'px';\n }\n } else {\n if (!this.overlay.style.width) {\n this.overlay.style.width = DomHandler.getOuterWidth(this.inputfieldViewChild?.nativeElement) + 'px';\n }\n }\n\n DomHandler.absolutePosition(this.overlay, this.inputfieldViewChild?.nativeElement);\n } else {\n DomHandler.relativePosition(this.overlay, this.inputfieldViewChild?.nativeElement);\n }\n }\n }\n\n enableModality(element: any) {\n if (!this.mask && this.touchUI) {\n this.mask = this.renderer.createElement('div');\n this.renderer.setStyle(this.mask, 'zIndex', String(parseInt(element.style.zIndex) - 1));\n let maskStyleClass = 'cax-component-overlay cax-datepicker-mask cax-datepicker-mask-scrollblocker cax-component-overlay cax-component-overlay-enter';\n DomHandler.addMultipleClasses(this.mask, maskStyleClass);\n\n this.maskClickListener = this.renderer.listen(this.mask, 'click', (event: any) => {\n this.disableModality();\n this.overlayVisible = false;\n });\n this.renderer.appendChild(this.document.body, this.mask);\n DomHandler.blockBodyScroll();\n }\n }\n\n disableModality() {\n if (this.mask) {\n DomHandler.addClass(this.mask, 'cax-component-overlay-leave');\n if (!this.animationEndListener) {\n this.animationEndListener = this.renderer.listen(this.mask, 'animationend', this.destroyMask.bind(this));\n }\n }\n }\n\n destroyMask() {\n if (!this.mask) {\n return;\n }\n this.renderer.removeChild(this.document.body, this.mask);\n let bodyChildren = this.document.body.children;\n let hasBlockerMasks!: boolean;\n for (let i = 0; i < bodyChildren.length; i++) {\n let bodyChild = bodyChildren[i];\n if (DomHandler.hasClass(bodyChild, 'cax-datepicker-mask-scrollblocker')) {\n hasBlockerMasks = true;\n break;\n }\n }\n\n if (!hasBlockerMasks) {\n DomHandler.unblockBodyScroll();\n }\n\n this.unbindAnimationEndListener();\n this.unbindMaskClickListener();\n this.mask = null;\n }\n\n unbindMaskClickListener() {\n if (this.maskClickListener) {\n this.maskClickListener();\n this.maskClickListener = null;\n }\n }\n\n unbindAnimationEndListener() {\n if (this.animationEndListener && this.mask) {\n this.animationEndListener();\n this.animationEndListener = null;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n if (this.value && typeof this.value === 'string') {\n try {\n this.value = this.parseValueFromString(this.value);\n } catch {\n if (this.keepInvalid) {\n this.value = value;\n }\n }\n }\n\n this.updateInputfield();\n this.updateUI();\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n getDateFormat() {\n return this.dateFormat || this.getTranslation('dateFormat');\n }\n\n getFirstDateOfWeek() {\n return this._firstDayOfWeek || this.getTranslation(TranslationKeys.FIRST_DAY_OF_WEEK);\n }\n\n // Ported from jquery-ui datepicker formatDate\n formatDate(date: any, format: any) {\n if (!date) {\n return '';\n }\n\n let iFormat!: any;\n const lookAhead = (match: string) => {\n const matches = iFormat + 1 < format.length && format.charAt(iFormat + 1) === match;\n if (matches) {\n iFormat++;\n }\n return matches;\n },\n formatNumber = (match: string, value: any, len: any) => {\n let num = '' + value;\n if (lookAhead(match)) {\n while (num.length < len) {\n num = '0' + num;\n }\n }\n return num;\n },\n formatName = (match: string, value: any, shortNames: any, longNames: any) => {\n return lookAhead(match) ? longNames[value] : shortNames[value];\n };\n let output = '';\n let literal = false;\n\n if (date) {\n for (iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\n literal = false;\n } else {\n output += format.charAt(iFormat);\n }\n } else {\n switch (format.charAt(iFormat)) {\n case 'd':\n output += formatNumber('d', date.getDate(), 2);\n break;\n case 'D':\n output += formatName('D', date.getDay(), this.getTranslation(TranslationKeys.DAY_NAMES_SHORT), this.getTranslation(TranslationKeys.DAY_NAMES));\n break;\n case 'o':\n output += formatNumber('o', Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);\n break;\n case 'm':\n output += formatNumber('m', date.getMonth() + 1, 2);\n break;\n case 'M':\n output += formatName('M', date.getMonth(), this.getTranslation(TranslationKeys.MONTH_NAMES_SHORT), this.getTranslation(TranslationKeys.MONTH_NAMES));\n break;\n case 'y':\n output += lookAhead('y') ? date.getFullYear() : (date.getFullYear() % 100 < 10 ? '0' : '') + (date.getFullYear() % 100);\n break;\n case '@':\n output += date.getTime();\n break;\n case '!':\n output += date.getTime() * 10000 + <number>this.ticksTo1970;\n break;\n case \"'\":\n if (lookAhead(\"'\")) {\n output += \"'\";\n } else {\n literal = true;\n }\n break;\n default:\n output += format.charAt(iFormat);\n }\n }\n }\n }\n return output;\n }\n\n formatTime(date: any) {\n if (!date) {\n return '';\n }\n\n let output = '';\n let hours = date.getHours();\n let minutes = date.getMinutes();\n let seconds = date.getSeconds();\n\n if (this.hourFormat == '12' && hours > 11 && hours != 12) {\n hours -= 12;\n }\n\n if (this.hourFormat == '12') {\n output += hours === 0 ? 12 : hours < 10 ? '0' + hours : hours;\n } else {\n output += hours < 10 ? '0' + hours : hours;\n }\n output += ':';\n output += minutes < 10 ? '0' + minutes : minutes;\n\n if (this.showSeconds) {\n output += ':';\n output += seconds < 10 ? '0' + seconds : seconds;\n }\n\n if (this.hourFormat == '12') {\n output += date.getHours() > 11 ? ' PM' : ' AM';\n }\n\n return output;\n }\n\n parseTime(value: any) {\n let tokens: string[] = value.split(':');\n let validTokenLength = this.showSeconds ? 3 : 2;\n\n if (tokens.length !== validTokenLength) {\n throw 'Invalid time';\n }\n\n let h = parseInt(tokens[0]);\n let m = parseInt(tokens[1]);\n let s = this.showSeconds ? parseInt(tokens[2]) : null;\n\n if (isNaN(h) || isNaN(m) || h > 23 || m > 59 || (this.hourFormat == '12' && h > 12) || (this.showSeconds && (isNaN(<any>s) || <any>s > 59))) {\n throw 'Invalid time';\n } else {\n if (this.hourFormat == '12') {\n if (h !== 12 && this.pm) {\n h += 12;\n } else if (!this.pm && h === 12) {\n h -= 12;\n }\n }\n\n return { hour: h, minute: m, second: s };\n }\n }\n\n // Ported from jquery-ui datepicker parseDate\n parseDate(value: any, format: any) {\n if (format == null || value == null) {\n throw 'Invalid arguments';\n }\n\n value = typeof value === 'object' ? value.toString() : value + '';\n if (value === '') {\n return null;\n }\n\n let iFormat!: any,\n dim,\n extra,\n iValue = 0,\n shortYearCutoff = typeof this.shortYearCutoff !== 'string' ? this.shortYearCutoff : (new Date().getFullYear() % 100) + parseInt(this.shortYearCutoff, 10),\n year = -1,\n month = -1,\n day = -1,\n doy = -1,\n literal = false,\n date,\n lookAhead = (match: any) => {\n let matches = iFormat + 1 < format.length && format.charAt(iFormat + 1) === match;\n if (matches) {\n iFormat++;\n }\n return matches;\n },\n getNumber = (match: any) => {\n let isDoubled = lookAhead(match),\n size = match === '@' ? 14 : match === '!' ? 20 : match === 'y' && isDoubled ? 4 : match === 'o' ? 3 : 2,\n minSize = match === 'y' ? size : 1,\n digits = new RegExp('^\\\\d{' + minSize + ',' + size + '}'),\n num = value.substring(iValue).match(digits);\n if (!num) {\n throw 'Missing number at position ' + iValue;\n }\n iValue += num[0].length;\n return parseInt(num[0], 10);\n },\n getName = (match: any, shortNames: any, longNames: any) => {\n let index = -1;\n let arr = lookAhead(match) ? longNames : shortNames;\n let names = [];\n\n for (let i = 0; i < arr.length; i++) {\n names.push([i, arr[i]]);\n }\n names.sort((a, b) => {\n return -(a[1].length - b[1].length);\n });\n\n for (let i = 0; i < names.length; i++) {\n let name = names[i][1];\n if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) {\n index = names[i][0];\n iValue += name.length;\n break;\n }\n }\n\n if (index !== -1) {\n return index + 1;\n } else {\n throw 'Unknown name at position ' + iValue;\n }\n },\n checkLiteral = () => {\n if (value.charAt(iValue) !== format.charAt(iFormat)) {\n throw 'Unexpected literal at position ' + iValue;\n }\n iValue++;\n };\n\n if (this.view === 'month') {\n day = 1;\n }\n\n for (iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\n literal = false;\n } else {\n checkLiteral();\n }\n } else {\n switch (format.charAt(iFormat)) {\n case 'd':\n day = getNumber('d');\n break;\n case 'D':\n getName('D', this.getTranslation(TranslationKeys.DAY_NAMES_SHORT), this.getTranslation(TranslationKeys.DAY_NAMES));\n break;\n case 'o':\n doy = getNumber('o');\n break;\n case 'm':\n month = getNumber('m');\n break;\n case 'M':\n month = getName('M', this.getTranslation(TranslationKeys.MONTH_NAMES_SHORT), this.getTranslation(TranslationKeys.MONTH_NAMES));\n break;\n case 'y':\n year = getNumber('y');\n break;\n case '@':\n date = new Date(getNumber('@'));\n year = date.getFullYear();\n month = date.getMonth() + 1;\n day = date.getDate();\n break;\n case '!':\n date = new Date((getNumber('!') - <number>this.ticksTo1970) / 10000);\n year = date.getFullYear();\n month = date.getMonth() + 1;\n day = date.getDate();\n break;\n case \"'\":\n if (lookAhead(\"'\")) {\n checkLiteral();\n } else {\n literal = true;\n }\n break;\n default:\n checkLiteral();\n }\n }\n }\n\n if (iValue < value.length) {\n extra = value.substr(iValue);\n if (!/^\\s+/.test(extra)) {\n throw 'Extra/unparsed characters found in date: ' + extra;\n }\n }\n\n if (year === -1) {\n year = new Date().getFullYear();\n } else if (year < 100) {\n year += new Date().getFullYear() - (new Date().getFullYear() % 100) + (year <= shortYearCutoff ? 0 : -100);\n }\n\n if (doy > -1) {\n month = 1;\n day = doy;\n do {\n dim = this.getDaysCountInMonth(year, month - 1);\n if (day <= dim) {\n break;\n }\n month++;\n day -= dim;\n } while (true);\n }\n\n if (this.view === 'year') {\n month = month === -1 ? 1 : month;\n day = day === -1 ? 1 : day;\n }\n\n date = this.daylightSavingAdjust(new Date(year, month - 1, day));\n\n if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) {\n throw 'Invalid date'; // E.g. 31/02/00\n }\n\n return date;\n }\n\n daylightSavingAdjust(date: any) {\n if (!date) {\n return null;\n }\n\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n\n return date;\n }\n\n updateFilledState() {\n this.filled = (this.inputFieldValue && this.inputFieldValue != '') as boolean;\n }\n\n isValidDateForTimeConstraints(selectedDate: Date) {\n if (this.keepInvalid) {\n return true; // If we are keeping invalid dates, we don't need to check for time constraints\n }\n return (!this.minDate || selectedDate >= this.minDate) && (!this.maxDate || selectedDate <= this.maxDate);\n }\n\n onTodayButtonClick(event: any) {\n const date: Date = new Date();\n const dateMeta = { day: date.getDate(), month: date.getMonth(), year: date.getFullYear(), otherMonth: date.getMonth() !== this.currentMonth || date.getFullYear() !== this.currentYear, today: true, selectable: true };\n\n this.createMonths(date.getMonth(), date.getFullYear());\n this.onDateSelect(event, dateMeta);\n this.onTodayClick.emit(date);\n }\n\n onClearButtonClick(event: any) {\n this.updateModel(null);\n this.updateInputfield();\n this.hideOverlay();\n this.onClearClick.emit(event);\n }\n\n onBackButtonClick(event: any) {\n if (this.currentView == 'year') this.setCurrentView('month');\n else if (this.currentView == 'month') this.setCurrentView('date');\n }\n\n createResponsiveStyle() {\n if (this.numberOfMonths > 1 && this.responsiveOptions) {\n if (!this.responsiveStyleElement) {\n this.responsiveStyleElement = this.renderer.createElement('style');\n (<HTMLStyleElement>this.responsiveStyleElement).type = 'text/css';\n DomHandler.setAttribute(this.responsiveStyleElement, 'nonce', this.config?.csp()?.nonce);\n this.renderer.appendChild(this.document.body, this.responsiveStyleElement);\n }\n\n let innerHTML = '';\n if (this.responsiveOptions) {\n let responsiveOptions = [...this.responsiveOptions].filter((o) => !!(o.breakpoint && o.numMonths)).sort((o1: any, o2: any) => -1 * o1.breakpoint.localeCompare(o2.breakpoint, undefined, { numeric: true }));\n\n for (let i = 0; i < responsiveOptions.length; i++) {\n let { breakpoint, numMonths } = responsiveOptions[i];\n let styles = `\n .cax-datepicker[${this.attributeSelector}] .cax-datepicker-group:nth-child(${numMonths}) .cax-datepicker-next {\n display: inline-flex !important;\n }\n `;\n\n for (let j: number = <number>numMonths; j < this.numberOfMonths; j++) {\n styles += `\n .cax-datepicker[${this.attributeSelector}] .cax-datepicker-group:nth-child(${j + 1}) {\n display: none !important;\n }\n `;\n }\n\n innerHTML += `\n @media screen and (max-width: ${breakpoint}) {\n ${styles}\n }\n `;\n }\n }\n\n (<HTMLStyleElement>this.responsiveStyleElement).innerHTML = innerHTML;\n }\n }\n\n destroyResponsiveStyleElement() {\n if (this.responsiveStyleElement) {\n this.responsiveStyleElement.remove();\n this.responsiveStyleElement = null;\n }\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.zone.runOutsideAngular(() => {\n const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : this.document;\n\n this.documentClickListener = this.renderer.listen(documentTarget, 'mousedown', (event) => {\n if (this.isOutsideClicked(event) && this.overlayVisible) {\n this.zone.run(() => {\n this.hideOverlay();\n this.onClickOutside.emit(event);\n\n this.cd.markForCheck();\n });\n }\n });\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n bindDocumentResizeListener() {\n if (!this.documentResizeListener && !this.touchUI) {\n this.documentResizeListener = this.renderer.listen(this.window, 'resize', this.onWindowResize.bind(this));\n }\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.containerViewChild?.nativeElement, () => {\n if (this.overlayVisible) {\n this.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n isOutsideClicked(event: Event) {\n return !(this.el.nativeElement.isSameNode(event.target) || this.isNavIconClicked(event) || this.el.nativeElement.contains(event.target) || (this.overlay && this.overlay.contains(<Node>event.target)));\n }\n\n isNavIconClicked(event: Event) {\n return (\n DomHandler.hasClass(event.target, 'cax-datepicker-prev') ||\n DomHandler.hasClass(event.target, 'cax-datepicker-prev-icon') ||\n DomHandler.hasClass(event.target, 'cax-datepicker-next') ||\n DomHandler.hasClass(event.target, 'cax-datepicker-next-icon')\n );\n }\n\n onWindowResize() {\n if (this.overlayVisible && !DomHandler.isTouchDevice()) {\n this.hideOverlay();\n }\n }\n\n onOverlayHide() {\n this.currentView = this.view;\n\n if (this.mask) {\n this.destroyMask();\n }\n\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n }\n\n ngOnDestroy() {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n\n if (this.overlay && this.autoZIndex) {\n ZIndexUtils.clear(this.overlay);\n }\n\n this.destroyResponsiveStyleElement();\n this.clearTimePickerTimer();\n this.restoreOverlayAppend();\n this.onOverlayHide();\n }\n\n onInlineSave(event?: Event) {\n this.onInlineSaved.emit(this.value);\n }\n\n onInlineCancel() {\n // Revert to original value if needed\n if (this.originalValue) {\n this.value = new Date(this.originalValue);\n this.updateFormattedInlineDate();\n }\n this.onInlineCancelled.emit();\n }\n}\n","<div [ngClass]=\"{'cax-calendar-main-label': labelText}\">\r\n <label *ngIf=\"labelText\" [ngClass]=\"labelTextClass\">{{ labelText }}</label>\r\n</div>\r\n<span\r\n #container\r\n [ngClass]=\"{\r\n 'cax-calendar': true,\r\n 'cax-input-icon-left': showIcon && iconDisplay === 'input' && leftIcon,\r\n 'cax-input-icon-right': showIcon && iconDisplay === 'input',\r\n 'cax-calendar-w-btn': showIcon && iconDisplay === 'button',\r\n 'cax-calendar-timeonly': timeOnly,\r\n 'cax-calendar-disabled': disabled,\r\n 'cax-focus': focus || overlayVisible\r\n }\"\r\n [ngStyle]=\"style\"\r\n [class]=\"styleClass\"\r\n>\r\n <ng-template [ngIf]=\"!inline\">\r\n <input\r\n #inputfield\r\n type=\"text\"\r\n role=\"combobox\"\r\n [attr.id]=\"inputId\"\r\n [attr.name]=\"name\"\r\n [attr.required]=\"required\"\r\n [attr.aria-required]=\"required\"\r\n aria-autocomplete=\"none\"\r\n aria-haspopup=\"dialog\"\r\n [attr.aria-expanded]=\"overlayVisible ?? false\"\r\n [attr.aria-controls]=\"overlayVisible ? panelId : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [value]=\"inputFieldValue\"\r\n (focus)=\"onInputFocus($event)\"\r\n (keydown)=\"onInputKeydown($event)\"\r\n (click)=\"onInputClick()\"\r\n (blur)=\"onInputBlur($event)\"\r\n [readonly]=\"readonlyInput\"\r\n (input)=\"onUserInput($event)\"\r\n [ngStyle]=\"inputStyle\"\r\n [class]=\"inputStyleClass\"\r\n [placeholder]=\"placeholder || ''\"\r\n [disabled]=\"disabled\"\r\n [attr.tabindex]=\"tabindex\"\r\n [attr.inputmode]=\"touchUI ? 'off' : null\"\r\n [ngClass]=\"inputClass\"\r\n autocomplete=\"off\"\r\n caxAutoFocus\r\n [autofocus]=\"autofocus\"\r\n />\r\n <ng-container *ngIf=\"showClear && !disabled && value != null\">\r\n <TimesIcon *ngIf=\"!clearIconTemplate\" [styleClass]=\"'cax-calendar-clear-icon'\" (click)=\"clear()\" />\r\n <span *ngIf=\"clearIconTemplate\" class=\"cax-calendar-clear-icon\" (click)=\"clear()\">\r\n <ng-template *ngTemplateOutlet=\"clearIconTemplate\"></ng-template>\r\n </span>\r\n </ng-container>\r\n <button\r\n type=\"button\"\r\n [attr.aria-label]=\"iconButtonAriaLabel\"\r\n aria-haspopup=\"dialog\"\r\n [attr.aria-expanded]=\"overlayVisible ?? false\"\r\n [attr.aria-controls]=\"overlayVisible ? panelId : null\"\r\n caxButton\r\n caxRipple\r\n *ngIf=\"showIcon && iconDisplay === 'button'\"\r\n (click)=\"onButtonClick($event, inputfield)\"\r\n class=\"cax-datepicker-trigger cax-button-icon-only\"\r\n [disabled]=\"disabled\"\r\n tabindex=\"0\"\r\n >\r\n <span *ngIf=\"icon\" [ngClass]=\"icon\"></span>\r\n <ng-container *ngIf=\"!icon\">\r\n <i class=\"cax cax-calendar-icon\" *ngIf=\"!triggerIconTemplate\" ></i>\r\n <ng-template *ngTemplateOutlet=\"triggerIconTemplate\"></ng-template>\r\n </ng-container>\r\n </button>\r\n <ng-container *ngIf=\"iconDisplay === 'input' && showIcon\">\r\n <i class=\"cax cax-calendar-icon\"\r\n (click)=\"onButtonClick($event)\"\r\n *ngIf=\"!inputIconTemplate\"\r\n [ngClass]=\"{\r\n 'cax-datepicker-icon': showOnFocus\r\n }\"\r\n ></i>\r\n <ng-container *ngTemplateOutlet=\"inputIconTemplate; context: { clickCallBack: onButtonClick.bind(this) }\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-container *ngIf=\"iconDisplay === 'input' && showIcon\">\r\n <i class=\"cax cax-alt-arrow-down cax-downarrow\"></i>\r\n </ng-container>\r\n \r\n <div\r\n #contentWrapper\r\n [attr.id]=\"panelId\"\r\n [class]=\"panelStyleClass\"\r\n [ngStyle]=\"panelStyle\"\r\n [ngClass]=\"{\r\n 'cax-datepicker cax-component': true,\r\n 'cax-datepicker-inline': inline,\r\n 'cax-disabled': disabled,\r\n 'cax-datepicker-timeonly': timeOnly,\r\n 'cax-datepicker-multiple-month': this.numberOfMonths > 1,\r\n 'cax-datepicker-monthpicker': view === 'month',\r\n 'cax-datepicker-touch-ui': touchUI\r\n }\"\r\n [@overlayAnimation]=\"\r\n touchUI\r\n ? { value: 'visibleTouchUI', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\r\n : { value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\r\n \"\r\n [attr.aria-label]=\"getTranslation('chooseDate')\"\r\n [attr.role]=\"inline ? null : 'dialog'\"\r\n [attr.aria-modal]=\"inline ? null : 'true'\"\r\n [@.disabled]=\"inline === true\"\r\n (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\"\r\n (@overlayAnimation.done)=\"onOverlayAnimationDone($event)\"\r\n (click)=\"onOverlayClick($event)\"\r\n *ngIf=\"inline || overlayVisible\"\r\n >\r\n <ng-content select=\"cax-header\"></ng-content>\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n <ng-container *ngIf=\"!timeOnly\">\r\n <div class=\"cax-datepicker-group-container\">\r\n <div class=\"cax-datepicker-group\" *ngFor=\"let month of months; let i = index\">\r\n <div class=\"cax-datepicker-header\">\r\n <button (keydown)=\"onContainerButtonKeydown($event)\" class=\"cax-datepicker-prev cax-link\" (click)=\"onPrevButtonClick($event)\" *ngIf=\"i === 0\" type=\"button\" [attr.aria-label]=\"prevIconAriaLabel\" caxRipple>\r\n <ChevronLeftIcon [styleClass]=\"'cax-datepicker-prev-icon'\" *ngIf=\"!previousIconTemplate\" />\r\n <span *ngIf=\"previousIconTemplate\" class=\"cax-datepicker-prev-icon\">\r\n <ng-template *ngTemplateOutlet=\"previousIconTemplate\"></ng-template>\r\n </span>\r\n </button>\r\n <div class=\"cax-datepicker-title\">\r\n <button\r\n type=\"button\"\r\n (click)=\"switchToMonthView($event)\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n *ngIf=\"currentView === 'date'\"\r\n class=\"cax-datepicker-month cax-link\"\r\n [disabled]=\"switchViewButtonDisabled()\"\r\n [attr.aria-label]=\"this.getTranslation('chooseMonth')\"\r\n >\r\n {{ getMonthName(month.month) }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n (click)=\"switchToYearView($event)\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n *ngIf=\"currentView !== 'year'\"\r\n class=\"cax-datepicker-year cax-link\"\r\n [disabled]=\"switchViewButtonDisabled()\"\r\n [attr.aria-label]=\"getTranslation('chooseYear')\"\r\n >\r\n {{ getYear(month) }}\r\n </button>\r\n <span class=\"cax-datepicker-decade\" *ngIf=\"currentView === 'year'\">\r\n Year\r\n <!-- <ng-container *ngIf=\"!decadeTemplate\">{{ yearPickerValues()[0] }} - {{ yearPickerValues()[yearPickerValues().length - 1] }}</ng-container>\r\n <ng-container *ngTemplateOutlet=\"decadeTemplate; context: { $implicit: yearPickerValues }\"></ng-container> -->\r\n </span>\r\n </div>\r\n <button\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n class=\"cax-datepicker-next cax-link\"\r\n (click)=\"onNextButtonClick($event)\"\r\n [style.display]=\"numberOfMonths === 1 ? 'inline-flex' : i === numberOfMonths - 1 ? 'inline-flex' : 'none'\"\r\n type=\"button\"\r\n [attr.aria-label]=\"nextIconAriaLabel\"\r\n caxRipple\r\n >\r\n <ChevronRightIcon [styleClass]=\"'cax-datepicker-next-icon'\" *ngIf=\"!nextIconTemplate\" />\r\n <span *ngIf=\"nextIconTemplate\" class=\"cax-datepicker-next-icon\">\r\n <ng-template *ngTemplateOutlet=\"nextIconTemplate\"></ng-template>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"cax-datepicker-calendar-container\" *ngIf=\"currentView === 'date'\">\r\n <table class=\"cax-datepicker-calendar\" role=\"grid\">\r\n <thead>\r\n <tr>\r\n <th *ngIf=\"showWeek\" class=\"cax-datepicker-weekheader cax-disabled\">\r\n <span>{{ getTranslation('weekHeader') }}</span>\r\n </th>\r\n <th scope=\"col\" *ngFor=\"let weekDay of weekDays; let begin = first; let end = last\">\r\n <span>{{ weekDay }}</span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let week of month.dates; let j = index\">\r\n <td *ngIf=\"showWeek\" class=\"cax-datepicker-weeknumber\">\r\n <span class=\"cax-disabled\"> {{ month.weekNumbers[j] }} </span>\r\n </td>\r\n <td *ngFor=\"let date of week\" [attr.aria-label]=\"date.day\" [ngClass]=\"{ 'cax-datepicker-other-month': date.otherMonth, 'cax-datepicker-today': date.today }\">\r\n <ng-container *ngIf=\"date.otherMonth ? showOtherMonths : true\">\r\n <span\r\n [ngClass]=\"{ 'cax-highlight cax-datepicker-current-day': isSelected(date) && date.selectable, 'cax-disabled': !date.selectable }\"\r\n (click)=\"onDateSelect($event, date)\"\r\n draggable=\"false\"\r\n [attr.data-date]=\"formatDateKey(formatDateMetaToDate(date))\"\r\n (keydown)=\"onDateCellKeydown($event, date, i)\"\r\n caxRipple\r\n >\r\n <ng-container *ngIf=\"!dateTemplate && (date.selectable || !disabledDateTemplate)\">{{ date.day }}</ng-container>\r\n <ng-container *ngIf=\"date.selectable || !disabledDateTemplate\">\r\n <ng-container *ngTemplateOutlet=\"dateTemplate; context: { $implicit: date }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!date.selectable\">\r\n <ng-container *ngTemplateOutlet=\"disabledDateTemplate; context: { $implicit: date }\"></ng-container>\r\n </ng-container>\r\n </span>\r\n <div *ngIf=\"isSelected(date)\" class=\"cax-hidden-accessible\" aria-live=\"polite\">{{ date.day }}</div>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"cax-monthpicker\" *ngIf=\"currentView === 'month'\">\r\n <span\r\n *ngFor=\"let m of monthPickerValues(); let i = index\"\r\n (click)=\"onMonthSelect($event, i)\"\r\n (keydown)=\"onMonthCellKeydown($event, i)\"\r\n class=\"cax-monthpicker-month\"\r\n [ngClass]=\"{ 'cax-highlight': isMonthSelected(i), 'cax-disabled': isMonthDisabled(i) }\"\r\n caxRipple\r\n >\r\n {{ m }}\r\n <div *ngIf=\"isMonthSelected(i)\" class=\"cax-hidden-accessible\" aria-live=\"polite\">{{ m }}</div>\r\n </span>\r\n </div>\r\n <div class=\"cax-yearpicker\" *ngIf=\"currentView === 'year'\">\r\n <span\r\n *ngFor=\"let y of yearPickerValues()\"\r\n (click)=\"onYearSelect($event, y)\"\r\n (keydown)=\"onYearCellKeydown($event, y)\"\r\n class=\"cax-yearpicker-year\"\r\n [ngClass]=\"{ 'cax-highlight': isYearSelected(y), 'cax-disabled': isYearDisabled(y) }\"\r\n caxRipple\r\n >\r\n {{ y }}\r\n <div *ngIf=\"isYearSelected(y)\" class=\"cax-hidden-accessible\" aria-live=\"polite\">{{ y }}</div>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <div class=\"cax-timepicker\" *ngIf=\"(showTime || timeOnly) && currentView === 'date'\">\r\n <div class=\"cax-hour-picker\">\r\n <button\r\n class=\"cax-link\"\r\n type=\"button\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (keydown.enter)=\"incrementHour($event)\"\r\n (keydown.space)=\"incrementHour($event)\"\r\n (mousedown)=\"onTimePickerElementMouseDown($event, 0, 1)\"\r\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\r\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\r\n [attr.aria-label]=\"getTranslation('nextHour')\"\r\n caxRipple\r\n >\r\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\r\n </button>\r\n <span><ng-container *ngIf=\"currentHour < 10\">0</ng-container>{{ currentHour }}</span>\r\n <button\r\n class=\"cax-link\"\r\n type=\"button\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (keydown.enter)=\"decrementHour($event)\"\r\n (keydown.space)=\"decrementHour($event)\"\r\n (mousedown)=\"onTimePickerElementMouseDown($event, 0, -1)\"\r\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\r\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\r\n [attr.aria-label]=\"getTranslation('prevHour')\"\r\n caxRipple\r\n >\r\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div class=\"cax-separator\">\r\n <span>{{ timeSeparator }}</span>\r\n </div>\r\n <div class=\"cax-minute-picker\">\r\n <button\r\n class=\"cax-link\"\r\n type=\"button\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (keydown.enter)=\"incrementMinute($event)\"\r\n (keydown.space)=\"incrementMinute($event)\"\r\n (mousedown)=\"onTimePickerElementMouseDown($event, 1, 1)\"\r\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\r\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\r\n [attr.aria-label]=\"getTranslation('nextMinute')\"\r\n caxRipple\r\n >\r\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\r\n </button>\r\n <span><ng-container *ngIf=\"currentMinute < 10\">0</ng-container>{{ currentMinute }}</span>\r\n <button\r\n class=\"cax-link\"\r\n type=\"button\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (keydown.enter)=\"decrementMinute($event)\"\r\n (keydown.space)=\"decrementMinute($event)\"\r\n (mousedown)=\"onTimePickerElementMouseDown($event, 1, -1)\"\r\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\r\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\r\n [attr.aria-label]=\"getTranslation('prevMinute')\"\r\n caxRipple\r\n >\r\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div class=\"cax-separator\" *ngIf=\"showSeconds\">\r\n <span>{{ timeSeparator }}</span>\r\n </div>\r\n <div class=\"cax-second-picker\" *ngIf=\"showSeconds\">\r\n <button\r\n class=\"cax-link\"\r\n type=\"button\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (keydown.enter)=\"incrementSecond($event)\"\r\n (keydown.space)=\"incrementSecond($event)\"\r\n (mousedown)=\"onTimePickerElementMouseDown($event, 2, 1)\"\r\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\r\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\r\n [attr.aria-label]=\"getTranslation('nextSecond')\"\r\n caxRipple\r\n >\r\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\r\n </button>\r\n <span><ng-container *ngIf=\"currentSecond < 10\">0</ng-container>{{ currentSecond }}</span>\r\n <button\r\n class=\"cax-link\"\r\n type=\"button\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (keydown.enter)=\"decrementSecond($event)\"\r\n (keydown.space)=\"decrementSecond($event)\"\r\n (mousedown)=\"onTimePickerElementMouseDown($event, 2, -1)\"\r\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\r\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\r\n [attr.aria-label]=\"getTranslation('prevSecond')\"\r\n caxRipple\r\n >\r\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div class=\"cax-ampm-picker\" *ngIf=\"hourFormat == '12'\">\r\n <button class=\"cax-link\" type=\"button\" (keydown)=\"onContainerButtonKeydown($event)\" (click)=\"toggleAMPM($event)\" (keydown.enter)=\"toggleAMPM($event)\" [attr.aria-label]=\"getTranslation('am')\" caxRipple>\r\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\r\n </button>\r\n <span>{{ pm ? 'PM' : 'AM' }}</span>\r\n <button class=\"cax-link\" type=\"button\" (keydown)=\"onContainerButtonKeydown($event)\" (click)=\"toggleAMPM($event)\" (keydown.enter)=\"toggleAMPM($event)\" [attr.aria-label]=\"getTranslation('pm')\" caxRipple>\r\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"cax-datepicker-buttonbar\" *ngIf=\"showButtonBar\">\r\n <cax-button\r\n *ngIf=\"currentView !== 'year' && currentView !== 'month'\"\r\n type=\"button\"\r\n [link]=\"true\"\r\n [label]=\"getTranslation('clear')\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (onClick)=\"onClearButtonClick($event)\"\r\n caxRipple\r\n ></cax-button>\r\n <cax-button *ngIf=\"currentView === 'year' || currentView === 'month'\" type=\"button\" [link]=\"true\" [label]=\"'Back'\" (keydown)=\"onContainerButtonKeydown($event)\" (onClick)=\"onBackButtonClick($event)\" caxRipple></cax-button>\r\n </div>\r\n <!-- For the inline -->\r\n <div class=\"cax-datepicker-inline-actions\" *ngIf=\"inline\">\r\n <cax-button\r\n [label]=\"'Cancel'\"\r\n [severity]=\"'secondary'\"\r\n [size]=\"'small'\"\r\n (click)=\"onInlineCancel()\">\r\n </cax-button>\r\n <div class=\"left-side\">\r\n <div class=\"cax-datepicker-inline-input\">\r\n <i class=\"cax cax-calendar-minimalistic\"></i>\r\n <input\r\n type=\"text\"\r\n [attr.id]=\"inputId\"\r\n [value]=\"formattedInlineDate\"\r\n readonly\r\n class=\"cax-datepicker-inline-display\"\r\n />\r\n </div>\r\n <div class=\"cax-datepicker-inline-buttons\">\r\n <cax-button\r\n [label]=\"'Save'\"\r\n [severity]=\"'Primary'\"\r\n [size]=\"'small'\"\r\n (click)=\"onInlineSave()\">\r\n </cax-button>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-content select=\"cax-footer\"></ng-content>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n</span>\r\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'cax-design-system/api';\nimport { ButtonModule } from 'cax-design-system/button';\nimport { Calendar } from './calendar';\n\n@NgModule({\n imports: [Calendar, ButtonModule, SharedModule],\n exports: [Calendar, ButtonModule, SharedModule]\n})\nexport class CalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cax-design-system-calendar.mjs","sources":["../../src/app/components/calendar/calendar.ts","../../src/app/components/calendar/calendar.html","../../src/app/components/calendar/calendar.module.ts","../../src/app/components/calendar/cax-design-system-calendar.ts"],"sourcesContent":["import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n NgZone,\n numberAttribute,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { OverlayService, caxConfig, CaxTemplate, SharedModule, TranslationKeys } from 'cax-design-system/api';\nimport { ButtonModule } from 'cax-design-system/button';\nimport { ConnectedOverlayScrollHandler, DomHandler } from 'cax-design-system/dom';\nimport { RippleModule } from 'cax-design-system/ripple';\nimport { ObjectUtils, UniqueComponentId, ZIndexUtils } from 'cax-design-system/utils';\nimport { Subscription } from 'rxjs';\nimport { ChevronLeftIcon } from 'cax-design-system/icons/chevronleft';\nimport { ChevronRightIcon } from 'cax-design-system/icons/chevronright';\nimport { ChevronUpIcon } from 'cax-design-system/icons/chevronup';\nimport { ChevronDownIcon } from 'cax-design-system/icons/chevrondown';\nimport { TimesIcon } from 'cax-design-system/icons/times';\nimport { CalendarIcon } from 'cax-design-system/icons/calendar';\nimport { ArrowDownIcon } from 'cax-design-system/icons/arrowdown';\nimport { Nullable, VoidListener } from 'cax-design-system/ts-helpers';\nimport { CalendarMonthChangeEvent, CalendarResponsiveOptions, CalendarTypeView, CalendarYearChangeEvent, LocaleSettings, Month, NavigationState } from './calendar.interface';\nimport { AutoFocusModule } from 'cax-design-system/autofocus';\n\nexport const CALENDAR_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Calendar),\n multi: true\n};\n/**\n * Calendar also known as DatePicker, is a form component to work with dates.\n * @group Components\n */\n@Component({\n selector: 'cax-calendar',\n templateUrl: './calendar.html',\n animations: [\n trigger('overlayAnimation', [\n state(\n 'visibleTouchUI',\n style({\n transform: 'translate(-50%,-50%)',\n opacity: 1\n })\n ),\n transition('void => visible', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}', style({ opacity: 1, transform: '*' }))]),\n transition('visible => void', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))]),\n transition('void => visibleTouchUI', [style({ opacity: 0, transform: 'translate3d(-50%, -40%, 0) scale(0.9)' }), animate('{{showTransitionParams}}')]),\n transition('visibleTouchUI => void', [\n animate(\n '{{hideTransitionParams}}',\n style({\n opacity: 0,\n transform: 'translate3d(-50%, -40%, 0) scale(0.9)'\n })\n )\n ])\n ])\n ],\n host: {\n class: 'cax-element cax-inputwrapper',\n '[class.cax-inputwrapper-filled]': 'filled',\n '[class.cax-inputwrapper-focus]': 'focus',\n '[class.cax-calendar-clearable]': 'showClear && !disabled'\n },\n providers: [CALENDAR_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./calendar.scss'],\n standalone: true,\n imports: [CommonModule, ButtonModule, SharedModule, RippleModule, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, TimesIcon, CalendarIcon, AutoFocusModule, ArrowDownIcon]\n})\nexport class Calendar implements OnInit, OnDestroy, ControlValueAccessor {\n @Input() iconDisplay: 'input' | 'button' = 'button';\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the input field.\n * @group Props\n */\n @Input() inputStyle: { [klass: string]: any } | null | undefined;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Name of the input element.\n * @group Props\n */\n @Input() name: string | undefined;\n /**\n * Style class of the input field.\n * @group Props\n */\n @Input() inputStyleClass: string | undefined;\n /**\n * Placeholder text for the input.\n * @group Props\n */\n @Input() placeholder: string | undefined;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n\n /**\n * Defines a string that labels the icon button for accessibility.\n * @group Props\n */\n @Input() iconAriaLabel: string | undefined;\n /**\n * When specified, disables the component.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n /**\n * Format of the date which can also be defined at locale settings.\n * @group Props\n */\n @Input() dateFormat: string | undefined;\n /**\n * Separator for multiple selection mode.\n * @group Props\n */\n @Input() multipleSeparator: string = ',';\n /**\n * Separator for joining start and end dates on range selection mode.\n * @group Props\n */\n @Input() rangeSeparator: string = '-';\n /**\n * When enabled, displays the calendar as inline. Default is false for popup mode.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) inline: boolean = false;\n /**\n * 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.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showOtherMonths: boolean = true;\n /**\n * 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.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) selectOtherMonths: boolean | undefined;\n /**\n * When enabled, displays a button with icon next to input.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showIcon: boolean | undefined;\n /**\n * Icon of the calendar button.\n * @group Props\n */\n @Input() icon: string | undefined;\n /**\n * 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).\n * @group Props\n */\n @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * When specified, prevents entering the date manually with keyboard.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) readonlyInput: boolean | undefined;\n /**\n * The cutoff year for determining the century for a date.\n * @group Props\n */\n @Input() shortYearCutoff: any = '+10';\n /**\n * Whether the month should be rendered as a dropdown instead of text.\n * @group Props\n * @deprecated Navigator is always on.\n */\n @Input({ transform: booleanAttribute }) monthNavigator: boolean | undefined;\n /**\n * Whether the year should be rendered as a dropdown instead of text.\n * @group Props\n * @deprecated Navigator is always on.\n */\n @Input({ transform: booleanAttribute }) yearNavigator: boolean | undefined;\n /**\n * Specifies 12 or 24 hour format.\n * @group Props\n */\n @Input() hourFormat: string = '24';\n /**\n * Whether to display timepicker only.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) timeOnly: boolean | undefined;\n /**\n * Years to change per step in yearpicker.\n * @group Props\n */\n @Input({ transform: numberAttribute }) stepYearPicker: number = 9;\n /**\n * Hours to change per step.\n * @group Props\n */\n @Input({ transform: numberAttribute }) stepHour: number = 1;\n /**\n * Minutes to change per step.\n * @group Props\n */\n @Input({ transform: numberAttribute }) stepMinute: number = 1;\n /**\n * Seconds to change per step.\n * @group Props\n */\n @Input({ transform: numberAttribute }) stepSecond: number = 1;\n /**\n * Whether to show the seconds in time picker.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showSeconds: boolean = false;\n /**\n * When present, it specifies that an input field must be filled out before submitting the form.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) required: boolean | undefined;\n /**\n * When disabled, datepicker will not be visible with input focus.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showOnFocus: boolean = true;\n /**\n * When enabled, calendar will show week numbers.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showWeek: boolean = false;\n /**\n * When enabled, calendar will start week numbers from first day of the year.\n * @group Props\n */\n @Input() startWeekFromFirstDayOfYear: boolean = false;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showClear: boolean = false;\n /**\n * Type of the value to write back to ngModel, default is date and alternative is string.\n * @group Props\n */\n @Input() dataType: string = 'date';\n /**\n * Defines the quantity of the selection, valid values are \"single\", \"multiple\" and \"range\".\n * @group Props\n */\n @Input() selectionMode: 'single' | 'multiple' | 'range' | undefined = 'single';\n /**\n * Maximum number of selectable dates in multiple mode.\n * @group Props\n */\n @Input({ transform: numberAttribute }) maxDateCount: number | undefined;\n /**\n * Whether to display today and clear buttons at the footer\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showButtonBar: boolean | undefined;\n /**\n * Style class of the today button.\n * @group Props\n */\n @Input() todayButtonStyleClass: string = 'cax-button-text';\n /**\n * Style class of the clear button.\n * @group Props\n */\n @Input() clearButtonStyleClass: string = 'cax-button-text';\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Whether to automatically manage layering.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoZIndex: boolean = true;\n /**\n * Base zIndex value to use in layering.\n * @group Props\n */\n @Input({ transform: numberAttribute }) baseZIndex: number = 0;\n /**\n * Style class of the datetimepicker container element.\n * @group Props\n */\n @Input() panelStyleClass: string | undefined;\n /**\n * Inline style of the datetimepicker container element.\n * @group Props\n */\n @Input() panelStyle: any;\n /**\n * Keep invalid value when input blur.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) keepInvalid: boolean = false;\n /**\n * Whether to hide the overlay on date selection.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) hideOnDateTimeSelect: boolean = true;\n /**\n * When enabled, calendar overlay is displayed as optimized for touch devices.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) touchUI: boolean | undefined;\n /**\n * Separator of time selector.\n * @group Props\n */\n @Input() labelText: string | undefined;\n @Input() timeSeparator: string = ':';\n @Input() leftIcon: boolean = true;\n //@Input() rightIcon: boolean= false;\n /**\n * When enabled, can only focus on elements inside the calendar.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) focusTrap: boolean = true;\n /**\n * Transition options of the show animation.\n * @group Props\n */\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation.\n * @group Props\n */\n @Input() hideTransitionOptions: string = '.1s linear';\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n @Input() variant: 'filled' | 'outlined' = 'outlined';\n /**\n * The minimum selectable date.\n * @group Props\n */\n @Input() get minDate(): Date | undefined | null {\n return this._minDate;\n }\n set minDate(date: Date | undefined | null) {\n this._minDate = date;\n\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * The maximum selectable date.\n * @group Props\n */\n @Input() get maxDate(): Date | undefined | null {\n return this._maxDate;\n }\n set maxDate(date: Date | undefined | null) {\n this._maxDate = date;\n\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * Array with dates that should be disabled (not selectable).\n * @group Props\n */\n @Input() get disabledDates(): Date[] {\n return this._disabledDates;\n }\n set disabledDates(disabledDates: Date[]) {\n this._disabledDates = disabledDates;\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * Array with weekday numbers that should be disabled (not selectable).\n * @group Props\n */\n @Input() get disabledDays(): number[] {\n return this._disabledDays;\n }\n set disabledDays(disabledDays: number[]) {\n this._disabledDays = disabledDays;\n\n if (this.currentMonth != undefined && this.currentMonth != null && this.currentYear) {\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n /**\n * The range of years displayed in the year drop-down in (nnnn:nnnn) format such as (2000:2020).\n * @group Props\n * @deprecated Years are based on decades by default.\n */\n @Input() get yearRange(): string {\n return this._yearRange;\n }\n set yearRange(yearRange: string) {\n this._yearRange = yearRange;\n\n if (yearRange) {\n const years = yearRange.split(':');\n const yearStart = parseInt(years[0]);\n const yearEnd = parseInt(years[1]);\n\n this.populateYearOptions(yearStart, yearEnd);\n }\n }\n /**\n * Whether to display timepicker.\n * @group Props\n */\n @Input() get showTime(): boolean {\n return this._showTime;\n }\n set showTime(showTime: boolean) {\n this._showTime = showTime;\n\n if (this.currentHour === undefined) {\n this.initTime(this.value || new Date());\n }\n this.updateInputfield();\n }\n /**\n * An array of options for responsive design.\n * @group Props\n */\n @Input() get responsiveOptions(): CalendarResponsiveOptions[] {\n return this._responsiveOptions;\n }\n set responsiveOptions(responsiveOptions: CalendarResponsiveOptions[]) {\n this._responsiveOptions = responsiveOptions;\n\n this.destroyResponsiveStyleElement();\n this.createResponsiveStyle();\n }\n /**\n * Number of months to display.\n * @group Props\n */\n @Input() get numberOfMonths(): number {\n return this._numberOfMonths;\n }\n set numberOfMonths(numberOfMonths: number) {\n this._numberOfMonths = numberOfMonths;\n\n this.destroyResponsiveStyleElement();\n this.createResponsiveStyle();\n }\n /**\n * Defines the first of the week for various date calculations.\n * @group Props\n */\n @Input() get firstDayOfWeek(): number {\n return this._firstDayOfWeek;\n }\n set firstDayOfWeek(firstDayOfWeek: number) {\n this._firstDayOfWeek = firstDayOfWeek;\n\n this.createWeekDays();\n }\n /**\n * Option to set calendar locale.\n * @group Props\n * @deprecated Locale property has no effect, use new i18n API instead.\n */\n @Input() set locale(newLocale: LocaleSettings) {\n console.warn('Locale property has no effect, use new i18n API instead.');\n }\n /**\n * Type of view to display, valid values are \"date\" for datepicker and \"month\" for month picker.\n * @group Props\n */\n @Input() get view(): CalendarTypeView {\n return this._view;\n }\n set view(view: CalendarTypeView) {\n this._view = view;\n this.currentView = this._view;\n }\n /**\n * Set the date to highlight on first opening if the field is blank.\n * @group Props\n */\n @Input() get defaultDate(): Date {\n return this._defaultDate;\n }\n set defaultDate(defaultDate: Date) {\n this._defaultDate = defaultDate;\n\n if (this.initialized) {\n const date = defaultDate || new Date();\n this.currentMonth = date.getMonth();\n this.currentYear = date.getFullYear();\n this.initTime(date);\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n get inputClass() {\n return {\n 'cax-inputtext cax-component': true,\n 'cax-variant-filled': this.variant === 'filled' || this.config.inputStyle() === 'filled'\n };\n }\n\n /**\n * Callback to invoke on focus of input field.\n * @param {Event} event - browser event.\n * @group Emits\n */\n @Output() onFocus: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke on blur of input field.\n * @param {Event} event - browser event.\n * @group Emits\n */\n @Output() onBlur: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when date panel closed.\n * @param {Event} event - Mouse event\n * @group Emits\n */\n @Output() onClose: EventEmitter<AnimationEvent> = new EventEmitter<AnimationEvent>();\n /**\n * Callback to invoke on date select.\n * @param {Date} date - date value.\n * @group Emits\n */\n @Output() onSelect: EventEmitter<Date> = new EventEmitter<Date>();\n /**\n * Callback to invoke when input field cleared.\n * @group Emits\n */\n @Output() onClear: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Callback to invoke when input field is being typed.\n * @param {Event} event - browser event\n * @group Emits\n */\n @Output() onInput: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Callback to invoke when today button is clicked.\n * @param {Date} date - today as a date instance.\n * @group Emits\n */\n @Output() onTodayClick: EventEmitter<Date> = new EventEmitter<Date>();\n /**\n * Callback to invoke when clear button is clicked.\n * @param {Event} event - browser event.\n * @group Emits\n */\n @Output() onClearClick: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Callback to invoke when a month is changed using the navigators.\n * @param {CalendarMonthChangeEvent} event - custom month change event.\n * @group Emits\n */\n @Output() onMonthChange: EventEmitter<CalendarMonthChangeEvent> = new EventEmitter<CalendarMonthChangeEvent>();\n /**\n * Callback to invoke when a year is changed using the navigators.\n * @param {CalendarYearChangeEvent} event - custom year change event.\n * @group Emits\n */\n @Output() onYearChange: EventEmitter<CalendarYearChangeEvent> = new EventEmitter<CalendarYearChangeEvent>();\n /**\n * Callback to invoke when clicked outside of the date panel.\n * @group Emits\n */\n @Output() onClickOutside: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Callback to invoke when datepicker panel is shown.\n * @group Emits\n */\n @Output() onInlineSaved: EventEmitter<Date> = new EventEmitter<Date>();\n @Output() onInlineCancelled: EventEmitter<void> = new EventEmitter<void>();\n\n @Output() onShow: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChildren(CaxTemplate) templates!: QueryList<CaxTemplate>;\n\n @ViewChild('container', { static: false }) containerViewChild: Nullable<ElementRef>;\n\n @ViewChild('inputfield', { static: false }) inputfieldViewChild: Nullable<ElementRef>;\n\n @ViewChild('contentWrapper', { static: false }) set content(content: ElementRef) {\n this.contentViewChild = content;\n\n if (this.contentViewChild) {\n if (this.isMonthNavigate) {\n Promise.resolve(null).then(() => this.updateFocus());\n this.isMonthNavigate = false;\n } else {\n if (!this.focus && !this.inline) {\n this.initFocusableCell();\n }\n }\n }\n }\n\n contentViewChild!: ElementRef;\n\n value: any;\n\n dates: Nullable<Date[]>;\n\n months!: Month[];\n\n weekDays: Nullable<string[]>;\n\n currentMonth!: number;\n\n currentYear!: number;\n\n currentHour: Nullable<number>;\n\n currentMinute: Nullable<number>;\n\n currentSecond: Nullable<number>;\n\n pm: Nullable<boolean>;\n\n mask: Nullable<HTMLDivElement>;\n\n maskClickListener: VoidListener;\n\n overlay: Nullable<HTMLDivElement>;\n\n responsiveStyleElement: HTMLStyleElement | undefined | null;\n\n overlayVisible: Nullable<boolean>;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n calendarElement: Nullable<HTMLElement | ElementRef>;\n\n timePickerTimer: any;\n\n documentClickListener: VoidListener;\n\n animationEndListener: VoidListener;\n\n ticksTo1970: Nullable<number>;\n\n yearOptions: Nullable<number[]>;\n\n focus: Nullable<boolean>;\n\n isKeydown: Nullable<boolean>;\n\n filled: Nullable<boolean>;\n\n inputFieldValue: Nullable<string> = null;\n\n _minDate?: Date | null;\n\n _maxDate?: Date | null;\n\n _showTime!: boolean;\n\n _yearRange!: string;\n\n preventDocumentListener: Nullable<boolean>;\n\n dateTemplate: Nullable<TemplateRef<any>>;\n\n headerTemplate: Nullable<TemplateRef<any>>;\n\n footerTemplate: Nullable<TemplateRef<any>>;\n\n disabledDateTemplate: Nullable<TemplateRef<any>>;\n\n decadeTemplate: Nullable<TemplateRef<any>>;\n\n previousIconTemplate: Nullable<TemplateRef<any>>;\n\n nextIconTemplate: Nullable<TemplateRef<any>>;\n\n triggerIconTemplate: Nullable<TemplateRef<any>>;\n\n clearIconTemplate: Nullable<TemplateRef<any>>;\n\n decrementIconTemplate: Nullable<TemplateRef<any>>;\n\n incrementIconTemplate: Nullable<TemplateRef<any>>;\n\n inputIconTemplate: Nullable<TemplateRef<any>>;\n\n _disabledDates!: Array<Date>;\n\n _disabledDays!: Array<number>;\n\n selectElement: Nullable;\n\n todayElement: Nullable;\n\n focusElement: Nullable;\n\n scrollHandler: Nullable<ConnectedOverlayScrollHandler>;\n\n documentResizeListener: VoidListener;\n\n navigationState: Nullable<NavigationState> = null;\n\n isMonthNavigate: Nullable<boolean>;\n\n initialized: Nullable<boolean>;\n\n translationSubscription: Nullable<Subscription>;\n\n _locale!: LocaleSettings;\n\n _responsiveOptions!: CalendarResponsiveOptions[];\n\n currentView: Nullable<string>;\n\n attributeSelector: Nullable<string>;\n\n panelId: Nullable<string>;\n\n _numberOfMonths: number = 1;\n\n _firstDayOfWeek!: number;\n\n _view: CalendarTypeView = 'date';\n\n preventFocus: Nullable<boolean>;\n\n _defaultDate!: Date;\n\n _focusKey: Nullable<string> = null;\n\n originalValue: Date = null;\n\n formattedInlineDate: string = '';\n\n private window: Window;\n\n get locale() {\n return this._locale;\n }\n\n get iconButtonAriaLabel() {\n return this.iconAriaLabel ? this.iconAriaLabel : this.getTranslation('chooseDate');\n }\n\n get prevIconAriaLabel() {\n return this.currentView === 'year' ? this.getTranslation('prevDecade') : this.currentView === 'month' ? this.getTranslation('prevYear') : this.getTranslation('prevMonth');\n }\n\n get nextIconAriaLabel() {\n return this.currentView === 'year' ? this.getTranslation('nextDecade') : this.currentView === 'month' ? this.getTranslation('nextYear') : this.getTranslation('nextMonth');\n }\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n public el: ElementRef,\n public renderer: Renderer2,\n public cd: ChangeDetectorRef,\n private zone: NgZone,\n private config: caxConfig,\n public overlayService: OverlayService\n ) {\n this.window = this.document.defaultView as Window;\n }\n\n ngOnInit() {\n this.attributeSelector = UniqueComponentId();\n this.panelId = this.attributeSelector + '_panel';\n const date = this.defaultDate || new Date();\n this.createResponsiveStyle();\n this.currentMonth = date.getMonth();\n this.currentYear = date.getFullYear();\n this.yearOptions = [];\n this.currentView = this.view;\n\n if (this.view === 'date') {\n this.createWeekDays();\n this.initTime(date);\n this.createMonths(this.currentMonth, this.currentYear);\n this.ticksTo1970 = ((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000;\n }\n\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.createWeekDays();\n this.cd.markForCheck();\n });\n\n this.initialized = true;\n\n this.updateFormattedInlineDate();\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'date':\n this.dateTemplate = item.template;\n break;\n\n case 'decade':\n this.decadeTemplate = item.template;\n break;\n\n case 'disabledDate':\n this.disabledDateTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n\n case 'inputicon':\n this.inputIconTemplate = item.template;\n break;\n\n case 'previousicon':\n this.previousIconTemplate = item.template;\n break;\n\n case 'nexticon':\n this.nextIconTemplate = item.template;\n break;\n\n case 'triggericon':\n this.triggerIconTemplate = item.template;\n break;\n\n case 'clearicon':\n this.clearIconTemplate = item.template;\n break;\n\n case 'decrementicon':\n this.decrementIconTemplate = item.template;\n break;\n\n case 'incrementicon':\n this.incrementIconTemplate = item.template;\n break;\n\n case 'footer':\n this.footerTemplate = item.template;\n break;\n\n default:\n this.dateTemplate = item.template;\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n if (this.inline) {\n this.contentViewChild && this.contentViewChild.nativeElement.setAttribute(this.attributeSelector, '');\n\n if (!this.disabled && !this.inline) {\n this.initFocusableCell();\n if (this.numberOfMonths === 1) {\n if (this.contentViewChild && this.contentViewChild.nativeElement) {\n this.contentViewChild.nativeElement.style.width = DomHandler.getOuterWidth(this.containerViewChild?.nativeElement) + 'px';\n }\n }\n }\n }\n }\n\n updateFormattedInlineDate() {\n if (this.value) {\n const day = this.value.getDate().toString().padStart(2, '0');\n const month = (this.value.getMonth() + 1).toString().padStart(2, '0');\n const year = this.value.getFullYear();\n this.formattedInlineDate = `${month}/${day}/${year}`;\n } else {\n this.formattedInlineDate = '';\n }\n }\n\n getTranslation(option: string) {\n return this.config.getTranslation(option);\n }\n\n populateYearOptions(start: number, end: number) {\n this.yearOptions = [];\n\n for (let i = start; i <= end; i++) {\n this.yearOptions.push(i);\n }\n }\n\n createWeekDays() {\n this.weekDays = [];\n let dayIndex = this.getFirstDateOfWeek();\n let dayLabels = this.getTranslation(TranslationKeys.DAY_NAMES_MIN);\n for (let i = 0; i < 7; i++) {\n this.weekDays.push(dayLabels[dayIndex]);\n dayIndex = dayIndex == 6 ? 0 : ++dayIndex;\n }\n }\n\n monthPickerValues() {\n let monthPickerValues = [];\n for (let i = 0; i <= 11; i++) {\n monthPickerValues.push(this.config.getTranslation('monthNamesShort')[i]);\n }\n\n return monthPickerValues;\n }\n\n yearPickerValues() {\n let yearPickerValues = [];\n let halfRange = Math.floor(this.stepYearPicker / 2);\n let startYear = this.currentYear - halfRange;\n for (let i = 0; i < this.stepYearPicker; i++) {\n yearPickerValues.push(startYear + i);\n }\n\n return yearPickerValues;\n }\n\n createMonths(month: number, year: number) {\n this.months = this.months = [];\n for (let i = 0; i < this.numberOfMonths; i++) {\n let m = month + i;\n let y = year;\n if (m > 11) {\n m = (m % 11) - 1;\n y = year + 1;\n }\n\n this.months.push(this.createMonth(m, y));\n }\n }\n\n getWeekNumber(date: Date) {\n let checkDate = new Date(date.getTime());\n if (this.startWeekFromFirstDayOfYear) {\n let firstDayOfWeek: number = +this.getFirstDateOfWeek();\n checkDate.setDate(checkDate.getDate() + 6 + firstDayOfWeek - checkDate.getDay());\n } else {\n checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));\n }\n let time = checkDate.getTime();\n checkDate.setMonth(0);\n checkDate.setDate(1);\n return Math.floor(Math.round((time - checkDate.getTime()) / 86400000) / 7) + 1;\n }\n\n createMonth(month: number, year: number): Month {\n let dates = [];\n let firstDay = this.getFirstDayOfMonthIndex(month, year);\n let daysLength = this.getDaysCountInMonth(month, year);\n let prevMonthDaysLength = this.getDaysCountInPrevMonth(month, year);\n let dayNo = 1;\n let today = new Date();\n let weekNumbers = [];\n let monthRows = Math.ceil((daysLength + firstDay) / 7);\n\n for (let i = 0; i < monthRows; i++) {\n let week = [];\n\n if (i == 0) {\n for (let j = prevMonthDaysLength - firstDay + 1; j <= prevMonthDaysLength; j++) {\n let prev = this.getPreviousMonthAndYear(month, year);\n week.push({ day: j, month: prev.month, year: prev.year, otherMonth: true, today: this.isToday(today, j, prev.month, prev.year), selectable: this.isSelectable(j, prev.month, prev.year, true) });\n }\n\n let remainingDaysLength = 7 - week.length;\n for (let j = 0; j < remainingDaysLength; j++) {\n week.push({ day: dayNo, month: month, year: year, today: this.isToday(today, dayNo, month, year), selectable: this.isSelectable(dayNo, month, year, false) });\n dayNo++;\n }\n } else {\n for (let j = 0; j < 7; j++) {\n if (dayNo > daysLength) {\n let next = this.getNextMonthAndYear(month, year);\n week.push({\n day: dayNo - daysLength,\n month: next.month,\n year: next.year,\n otherMonth: true,\n today: this.isToday(today, dayNo - daysLength, next.month, next.year),\n selectable: this.isSelectable(dayNo - daysLength, next.month, next.year, true)\n });\n } else {\n week.push({ day: dayNo, month: month, year: year, today: this.isToday(today, dayNo, month, year), selectable: this.isSelectable(dayNo, month, year, false) });\n }\n\n dayNo++;\n }\n }\n\n if (this.showWeek) {\n weekNumbers.push(this.getWeekNumber(new Date(week[0].year, week[0].month, week[0].day)));\n }\n\n dates.push(week);\n }\n\n return {\n month: month,\n year: year,\n dates: <any>dates,\n weekNumbers: weekNumbers\n };\n }\n\n initTime(date: Date) {\n this.pm = date.getHours() > 11;\n\n if (this.showTime) {\n this.currentMinute = date.getMinutes();\n this.currentSecond = date.getSeconds();\n this.setCurrentHourPM(date.getHours());\n } else if (this.timeOnly) {\n this.currentMinute = 0;\n this.currentHour = 0;\n this.currentSecond = 0;\n }\n }\n\n navBackward(event: any) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n this.isMonthNavigate = true;\n\n if (this.currentView === 'month') {\n this.decrementYear();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n } else if (this.currentView === 'year') {\n this.decrementYearPickerStep();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n } else {\n if (this.currentMonth === 0) {\n this.currentMonth = 11;\n this.decrementYear();\n } else {\n this.currentMonth--;\n }\n\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n\n navForward(event: any) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n this.isMonthNavigate = true;\n\n if (this.currentView === 'month') {\n this.incrementYear();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n } else if (this.currentView === 'year') {\n this.incrementYearPickerStep();\n setTimeout(() => {\n this.updateFocus();\n }, 1);\n } else {\n if (this.currentMonth === 11) {\n this.currentMonth = 0;\n this.incrementYear();\n } else {\n this.currentMonth++;\n }\n\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n }\n\n decrementYear() {\n this.currentYear--;\n let _yearOptions = <number[]>this.yearOptions;\n\n if (this.yearNavigator && this.currentYear < _yearOptions[0]) {\n let difference = _yearOptions[_yearOptions.length - 1] - _yearOptions[0];\n this.populateYearOptions(_yearOptions[0] - difference, _yearOptions[_yearOptions.length - 1] - difference);\n }\n }\n\n decrementYearPickerStep() {\n this.currentYear = this.currentYear - this.stepYearPicker;\n }\n\n incrementYearPickerStep() {\n this.currentYear = this.currentYear + this.stepYearPicker;\n }\n\n incrementYear() {\n this.currentYear++;\n let _yearOptions = <number[]>this.yearOptions;\n\n if (this.yearNavigator && this.currentYear > _yearOptions[_yearOptions.length - 1]) {\n let difference = _yearOptions[_yearOptions.length - 1] - _yearOptions[0];\n this.populateYearOptions(_yearOptions[0] + difference, _yearOptions[_yearOptions.length - 1] + difference);\n }\n }\n\n switchToMonthView(event: Event) {\n this.setCurrentView('month');\n event.preventDefault();\n }\n\n switchToYearView(event: Event) {\n this.setCurrentView('year');\n event.preventDefault();\n }\n\n onDateSelect(event: Event, dateMeta: any) {\n if (this.disabled || !dateMeta.selectable) {\n event.preventDefault();\n return;\n }\n\n if (this.isMultipleSelection() && this.isSelected(dateMeta)) {\n this.value = this.value.filter((date: Date, i: number) => {\n return !this.isDateEquals(date, dateMeta);\n });\n if (this.value.length === 0) {\n this.value = null;\n }\n this.updateModel(this.value);\n } else {\n if (this.shouldSelectDate(dateMeta)) {\n this.selectDate(dateMeta);\n }\n }\n\n if (this.hideOnDateTimeSelect && (this.isSingleSelection() || (this.isRangeSelection() && this.value[1]))) {\n setTimeout(() => {\n event.preventDefault();\n this.hideOverlay();\n\n if (this.mask) {\n this.disableModality();\n }\n\n this.cd.markForCheck();\n }, 150);\n }\n\n this.updateInputfield();\n event.preventDefault();\n this.updateFormattedInlineDate();\n }\n\n shouldSelectDate(dateMeta: any) {\n if (this.isMultipleSelection()) return this.maxDateCount != null ? this.maxDateCount > (this.value ? this.value.length : 0) : true;\n else return true;\n }\n\n onMonthSelect(event: Event, index: number) {\n if (this.view === 'month') {\n this.onDateSelect(event, { year: this.currentYear, month: index, day: 1, selectable: true });\n } else {\n this.currentMonth = index;\n this.createMonths(this.currentMonth, this.currentYear);\n this.setCurrentView('date');\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n }\n }\n\n onYearSelect(event: Event, year: number) {\n if (this.view === 'year') {\n this.onDateSelect(event, { year: year, month: 0, day: 1, selectable: true });\n } else {\n this.currentYear = year;\n this.setCurrentView('month');\n this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n }\n }\n\n updateInputfield() {\n let formattedValue = '';\n\n if (this.value) {\n if (this.isSingleSelection()) {\n formattedValue = this.formatDateTime(this.value);\n } else if (this.isMultipleSelection()) {\n for (let i = 0; i < this.value.length; i++) {\n let dateAsString = this.formatDateTime(this.value[i]);\n formattedValue += dateAsString;\n if (i !== this.value.length - 1) {\n formattedValue += this.multipleSeparator + ' ';\n }\n }\n } else if (this.isRangeSelection()) {\n if (this.value && this.value.length) {\n let startDate = this.value[0];\n let endDate = this.value[1];\n\n formattedValue = this.formatDateTime(startDate);\n if (endDate) {\n formattedValue += ' ' + this.rangeSeparator + ' ' + this.formatDateTime(endDate);\n }\n }\n }\n }\n\n this.inputFieldValue = formattedValue;\n this.updateFilledState();\n if (this.inputfieldViewChild && this.inputfieldViewChild.nativeElement) {\n this.inputfieldViewChild.nativeElement.value = this.inputFieldValue;\n }\n }\n\n formatDateTime(date: any) {\n let formattedValue = this.keepInvalid ? date : null;\n const isDateValid = this.isValidDateForTimeConstraints(date);\n\n if (this.isValidDate(date)) {\n if (this.timeOnly) {\n formattedValue = this.formatTime(date);\n } else {\n formattedValue = this.formatDate(date, this.getDateFormat());\n if (this.showTime) {\n formattedValue += ' ' + this.formatTime(date);\n }\n }\n } else if (this.dataType === 'string') {\n formattedValue = date;\n }\n formattedValue = isDateValid ? formattedValue : '';\n return formattedValue;\n }\n\n formatDateMetaToDate(dateMeta: any): Date {\n return new Date(dateMeta.year, dateMeta.month, dateMeta.day);\n }\n\n formatDateKey(date: Date): string {\n return `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;\n }\n\n setCurrentHourPM(hours: number) {\n if (this.hourFormat == '12') {\n this.pm = hours > 11;\n if (hours >= 12) {\n this.currentHour = hours == 12 ? 12 : hours - 12;\n } else {\n this.currentHour = hours == 0 ? 12 : hours;\n }\n } else {\n this.currentHour = hours;\n }\n }\n\n setCurrentView(currentView: CalendarTypeView) {\n this.currentView = currentView;\n this.cd.detectChanges();\n this.alignOverlay();\n }\n\n selectDate(dateMeta: any) {\n let date = this.formatDateMetaToDate(dateMeta);\n\n if (this.showTime) {\n if (this.hourFormat == '12') {\n if (this.currentHour === 12) date.setHours(this.pm ? 12 : 0);\n else date.setHours(this.pm ? <number>this.currentHour + 12 : <number>this.currentHour);\n } else {\n date.setHours(<number>this.currentHour);\n }\n\n date.setMinutes(<number>this.currentMinute);\n date.setSeconds(<number>this.currentSecond);\n }\n\n if (this.minDate && this.minDate > date) {\n date = this.minDate;\n this.setCurrentHourPM(date.getHours());\n this.currentMinute = date.getMinutes();\n this.currentSecond = date.getSeconds();\n }\n\n if (this.maxDate && this.maxDate < date) {\n date = this.maxDate;\n this.setCurrentHourPM(date.getHours());\n this.currentMinute = date.getMinutes();\n this.currentSecond = date.getSeconds();\n }\n\n if (this.isSingleSelection()) {\n this.updateModel(date);\n } else if (this.isMultipleSelection()) {\n this.updateModel(this.value ? [...this.value, date] : [date]);\n } else if (this.isRangeSelection()) {\n if (this.value && this.value.length) {\n let startDate = this.value[0];\n let endDate = this.value[1];\n\n if (!endDate && date.getTime() >= startDate.getTime()) {\n endDate = date;\n } else {\n startDate = date;\n endDate = null;\n }\n\n this.updateModel([startDate, endDate]);\n } else {\n this.updateModel([date, null]);\n }\n }\n\n this.onSelect.emit(date);\n }\n\n updateModel(value: any) {\n this.value = value;\n\n if (this.dataType == 'date') {\n this.onModelChange(this.value);\n } else if (this.dataType == 'string') {\n if (this.isSingleSelection()) {\n this.onModelChange(this.formatDateTime(this.value));\n } else {\n let stringArrValue = null;\n if (Array.isArray(this.value)) {\n stringArrValue = this.value.map((date: Date) => this.formatDateTime(date));\n }\n this.onModelChange(stringArrValue);\n }\n }\n }\n\n getFirstDayOfMonthIndex(month: number, year: number) {\n let day = new Date();\n day.setDate(1);\n day.setMonth(month);\n day.setFullYear(year);\n\n let dayIndex = day.getDay() + this.getSundayIndex();\n return dayIndex >= 7 ? dayIndex - 7 : dayIndex;\n }\n\n getDaysCountInMonth(month: number, year: number) {\n return 32 - this.daylightSavingAdjust(new Date(year, month, 32)).getDate();\n }\n\n getDaysCountInPrevMonth(month: number, year: number) {\n let prev = this.getPreviousMonthAndYear(month, year);\n return this.getDaysCountInMonth(prev.month, prev.year);\n }\n\n getPreviousMonthAndYear(month: number, year: number) {\n let m, y;\n\n if (month === 0) {\n m = 11;\n y = year - 1;\n } else {\n m = month - 1;\n y = year;\n }\n\n return { month: m, year: y };\n }\n\n getNextMonthAndYear(month: number, year: number) {\n let m, y;\n\n if (month === 11) {\n m = 0;\n y = year + 1;\n } else {\n m = month + 1;\n y = year;\n }\n\n return { month: m, year: y };\n }\n\n getSundayIndex() {\n let firstDayOfWeek = this.getFirstDateOfWeek();\n\n return firstDayOfWeek > 0 ? 7 - firstDayOfWeek : 0;\n }\n\n isSelected(dateMeta: any): boolean | undefined {\n if (this.value) {\n if (this.isSingleSelection()) {\n return this.isDateEquals(this.value, dateMeta);\n } else if (this.isMultipleSelection()) {\n let selected = false;\n for (let date of this.value) {\n selected = this.isDateEquals(date, dateMeta);\n if (selected) {\n break;\n }\n }\n\n return selected;\n } else if (this.isRangeSelection()) {\n if (this.value[1]) return this.isDateEquals(this.value[0], dateMeta) || this.isDateEquals(this.value[1], dateMeta) || this.isDateBetween(this.value[0], this.value[1], dateMeta);\n else return this.isDateEquals(this.value[0], dateMeta);\n }\n } else {\n return false;\n }\n }\n\n isComparable() {\n return this.value != null && typeof this.value !== 'string';\n }\n\n isMonthSelected(month: number) {\n if (!this.isComparable()) return false;\n if (this.isMultipleSelection()) return false;\n let value = this.isRangeSelection() ? this.value[0] : this.value;\n return value ? value.getMonth() === month : false;\n }\n\n isMonthDisabled(month: number, year?: number) {\n const yearToCheck = year ?? this.currentYear;\n\n for (let day = 1; day < this.getDaysCountInMonth(month, yearToCheck) + 1; day++) {\n if (this.isSelectable(day, month, yearToCheck, false)) {\n return false;\n }\n }\n return true;\n }\n\n isYearDisabled(year: number) {\n return Array(12)\n .fill(0)\n .every((v, month) => this.isMonthDisabled(month, year));\n }\n\n isYearSelected(year: number) {\n if (!this.isComparable()) return false;\n if (this.isMultipleSelection()) return false;\n\n let value = this.isRangeSelection() ? this.value[0] : this.value;\n return value ? value.getFullYear() === year : false;\n }\n\n isDateEquals(value: any, dateMeta: any) {\n if (value && ObjectUtils.isDate(value)) return value.getDate() === dateMeta.day && value.getMonth() === dateMeta.month && value.getFullYear() === dateMeta.year;\n else return false;\n }\n\n isDateBetween(start: Date, end: Date, dateMeta: any) {\n let between: boolean = false;\n if (ObjectUtils.isDate(start) && ObjectUtils.isDate(end)) {\n let date: Date = this.formatDateMetaToDate(dateMeta);\n return start.getTime() <= date.getTime() && end.getTime() >= date.getTime();\n }\n\n return between;\n }\n\n isSingleSelection(): boolean {\n return this.selectionMode === 'single';\n }\n\n isRangeSelection(): boolean {\n return this.selectionMode === 'range';\n }\n\n isMultipleSelection(): boolean {\n return this.selectionMode === 'multiple';\n }\n\n isToday(today: Date, day: number, month: number, year: number): boolean {\n return today.getDate() === day && today.getMonth() === month && today.getFullYear() === year;\n }\n\n isSelectable(day: any, month: any, year: any, otherMonth: any): boolean {\n let validMin = true;\n let validMax = true;\n let validDate = true;\n let validDay = true;\n\n if (otherMonth && !this.selectOtherMonths) {\n return false;\n }\n\n if (this.minDate) {\n if (this.minDate.getFullYear() > year) {\n validMin = false;\n } else if (this.minDate.getFullYear() === year && this.currentView != 'year') {\n if (this.minDate.getMonth() > month) {\n validMin = false;\n } else if (this.minDate.getMonth() === month) {\n if (this.minDate.getDate() > day) {\n validMin = false;\n }\n }\n }\n }\n\n if (this.maxDate) {\n if (this.maxDate.getFullYear() < year) {\n validMax = false;\n } else if (this.maxDate.getFullYear() === year) {\n if (this.maxDate.getMonth() < month) {\n validMax = false;\n } else if (this.maxDate.getMonth() === month) {\n if (this.maxDate.getDate() < day) {\n validMax = false;\n }\n }\n }\n }\n\n if (this.disabledDates) {\n validDate = !this.isDateDisabled(day, month, year);\n }\n\n if (this.disabledDays) {\n validDay = !this.isDayDisabled(day, month, year);\n }\n\n return validMin && validMax && validDate && validDay;\n }\n\n isDateDisabled(day: number, month: number, year: number): boolean {\n if (this.disabledDates) {\n for (let disabledDate of this.disabledDates) {\n if (disabledDate.getFullYear() === year && disabledDate.getMonth() === month && disabledDate.getDate() === day) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n isDayDisabled(day: number, month: number, year: number): boolean {\n if (this.disabledDays) {\n let weekday = new Date(year, month, day);\n let weekdayNumber = weekday.getDay();\n return this.disabledDays.indexOf(weekdayNumber) !== -1;\n }\n return false;\n }\n\n onInputFocus(event: Event) {\n this.focus = true;\n if (this.showOnFocus) {\n this.showOverlay();\n }\n this.onFocus.emit(event);\n }\n\n onInputClick() {\n if (this.showOnFocus && !this.overlayVisible) {\n this.showOverlay();\n }\n }\n\n onInputBlur(event: Event) {\n this.focus = false;\n this.onBlur.emit(event);\n if (!this.keepInvalid) {\n this.updateInputfield();\n }\n this.onModelTouched();\n }\n\n onButtonClick(event: Event, inputfield: any = this.inputfieldViewChild?.nativeElement) {\n if (!this.overlayVisible) {\n inputfield.focus();\n this.showOverlay();\n } else {\n this.hideOverlay();\n }\n }\n\n clear() {\n this.inputFieldValue = null;\n this.value = null;\n this.onModelChange(this.value);\n this.onClear.emit();\n }\n\n onOverlayClick(event: Event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\n }\n\n getMonthName(index: number) {\n return this.config.getTranslation('monthNames')[index];\n }\n\n getYear(month: any) {\n return this.currentView === 'month' ? this.currentYear : month.year;\n }\n\n switchViewButtonDisabled() {\n return this.numberOfMonths > 1 || this.disabled;\n }\n\n onPrevButtonClick(event: Event) {\n this.navigationState = { backward: true, button: true };\n this.navBackward(event);\n }\n\n onNextButtonClick(event: Event) {\n this.navigationState = { backward: false, button: true };\n this.navForward(event);\n }\n\n onContainerButtonKeydown(event: KeyboardEvent) {\n switch (event.which) {\n //tab\n case 9:\n if (!this.inline) {\n this.trapFocus(event);\n }\n if (this.inline) {\n const headerElements = DomHandler.findSingle(this.containerViewChild?.nativeElement, '.cax-datepicker-header');\n const element = event.target;\n if (this.timeOnly) {\n return;\n } else {\n if (element == headerElements.children[headerElements?.children?.length - 1]) {\n this.initFocusableCell();\n }\n }\n }\n break;\n\n //escape\n case 27:\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n\n default:\n //Noop\n break;\n }\n }\n\n onInputKeydown(event: any) {\n this.isKeydown = true;\n if (event.keyCode === 40 && this.contentViewChild) {\n this.trapFocus(event);\n } else if (event.keyCode === 27) {\n if (this.overlayVisible) {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n }\n } else if (event.keyCode === 13) {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n event.preventDefault();\n }\n } else if (event.keyCode === 9 && this.contentViewChild) {\n DomHandler.getFocusableElements(this.contentViewChild.nativeElement).forEach((el) => (el.tabIndex = '-1'));\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n }\n }\n\n onDateCellKeydown(event: any, dateMeta: any, groupIndex: number) {\n const cellContent = event.currentTarget;\n const cell = cellContent.parentElement;\n const currentDate = this.formatDateMetaToDate(dateMeta);\n switch (event.which) {\n //down arrow\n case 40: {\n cellContent.tabIndex = '-1';\n let cellIndex = DomHandler.index(cell);\n let nextRow = cell.parentElement.nextElementSibling;\n if (nextRow) {\n let focusCell = nextRow.children[cellIndex].children[0];\n if (DomHandler.hasClass(focusCell, 'cax-disabled')) {\n this.navigationState = { backward: false };\n this.navForward(event);\n } else {\n nextRow.children[cellIndex].children[0].tabIndex = '0';\n nextRow.children[cellIndex].children[0].focus();\n }\n } else {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n event.preventDefault();\n break;\n }\n\n //up arrow\n case 38: {\n cellContent.tabIndex = '-1';\n let cellIndex = DomHandler.index(cell);\n let prevRow = cell.parentElement.previousElementSibling;\n if (prevRow) {\n let focusCell = prevRow.children[cellIndex].children[0];\n if (DomHandler.hasClass(focusCell, 'cax-disabled')) {\n this.navigationState = { backward: true };\n this.navBackward(event);\n } else {\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n } else {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n event.preventDefault();\n break;\n }\n\n //left arrow\n case 37: {\n cellContent.tabIndex = '-1';\n let prevCell = cell.previousElementSibling;\n if (prevCell) {\n let focusCell = prevCell.children[0];\n if (DomHandler.hasClass(focusCell, 'cax-disabled') || DomHandler.hasClass(focusCell.parentElement, 'cax-datepicker-weeknumber')) {\n this.navigateToMonth(true, groupIndex);\n } else {\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n } else {\n this.navigateToMonth(true, groupIndex);\n }\n event.preventDefault();\n break;\n }\n\n //right arrow\n case 39: {\n cellContent.tabIndex = '-1';\n let nextCell = cell.nextElementSibling;\n if (nextCell) {\n let focusCell = nextCell.children[0];\n if (DomHandler.hasClass(focusCell, 'cax-disabled')) {\n this.navigateToMonth(false, groupIndex);\n } else {\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n } else {\n this.navigateToMonth(false, groupIndex);\n }\n event.preventDefault();\n break;\n }\n\n //enter\n //space\n case 13:\n case 32: {\n this.onDateSelect(event, dateMeta);\n event.preventDefault();\n break;\n }\n\n //escape\n case 27: {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n }\n\n //tab\n case 9: {\n if (!this.inline) {\n this.trapFocus(event);\n }\n break;\n }\n\n // page up\n case 33: {\n cellContent.tabIndex = '-1';\n const dateToFocus = new Date(currentDate.getFullYear(), currentDate.getMonth() - 1, currentDate.getDate());\n const focusKey = this.formatDateKey(dateToFocus);\n this.navigateToMonth(true, groupIndex, `span[data-date='${focusKey}']:not(.cax-disabled):not(.cax-ink)`);\n event.preventDefault();\n break;\n }\n\n // page down\n case 34: {\n cellContent.tabIndex = '-1';\n const dateToFocus = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, currentDate.getDate());\n const focusKey = this.formatDateKey(dateToFocus);\n this.navigateToMonth(false, groupIndex, `span[data-date='${focusKey}']:not(.cax-disabled):not(.cax-ink)`);\n event.preventDefault();\n break;\n }\n\n //home\n case 36:\n cellContent.tabIndex = '-1';\n const firstDayDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n const firstDayDateKey = this.formatDateKey(firstDayDate);\n const firstDayCell = DomHandler.findSingle(cellContent.offsetParent, `span[data-date='${firstDayDateKey}']:not(.cax-disabled):not(.cax-ink)`);\n if (firstDayCell) {\n firstDayCell.tabIndex = '0';\n firstDayCell.focus();\n }\n event.preventDefault();\n break;\n\n //end\n case 35:\n cellContent.tabIndex = '-1';\n const lastDayDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n const lastDayDateKey = this.formatDateKey(lastDayDate);\n const lastDayCell = DomHandler.findSingle(cellContent.offsetParent, `span[data-date='${lastDayDateKey}']:not(.cax-disabled):not(.cax-ink)`);\n if (lastDayDate) {\n lastDayCell.tabIndex = '0';\n lastDayCell.focus();\n }\n event.preventDefault();\n break;\n\n default:\n //no op\n break;\n }\n }\n\n onMonthCellKeydown(event: any, index: number) {\n const cell = event.currentTarget;\n switch (event.which) {\n //arrows\n case 38:\n case 40: {\n cell.tabIndex = '-1';\n var cells = cell.parentElement.children;\n var cellIndex = DomHandler.index(cell);\n let nextCell = cells[event.which === 40 ? cellIndex + 3 : cellIndex - 3];\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n event.preventDefault();\n break;\n }\n\n //left arrow\n case 37: {\n cell.tabIndex = '-1';\n let prevCell = cell.previousElementSibling;\n if (prevCell) {\n prevCell.tabIndex = '0';\n prevCell.focus();\n } else {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n\n event.preventDefault();\n break;\n }\n\n //right arrow\n case 39: {\n cell.tabIndex = '-1';\n let nextCell = cell.nextElementSibling;\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n } else {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n\n event.preventDefault();\n break;\n }\n\n //enter\n //space\n case 13:\n case 32: {\n this.onMonthSelect(event, index);\n event.preventDefault();\n break;\n }\n\n //escape\n case 27: {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n }\n\n //tab\n case 9: {\n if (!this.inline) {\n this.trapFocus(event);\n }\n break;\n }\n\n default:\n //no op\n break;\n }\n }\n\n onYearCellKeydown(event: any, index: number) {\n const cell = event.currentTarget;\n\n switch (event.which) {\n //arrows\n case 38:\n case 40: {\n cell.tabIndex = '-1';\n var cells = cell.parentElement.children;\n var cellIndex = DomHandler.index(cell);\n let nextCell = cells[event.which === 40 ? cellIndex + 2 : cellIndex - 2];\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n }\n event.preventDefault();\n break;\n }\n\n //left arrow\n case 37: {\n cell.tabIndex = '-1';\n let prevCell = cell.previousElementSibling;\n if (prevCell) {\n prevCell.tabIndex = '0';\n prevCell.focus();\n } else {\n this.navigationState = { backward: true };\n this.navBackward(event);\n }\n\n event.preventDefault();\n break;\n }\n\n //right arrow\n case 39: {\n cell.tabIndex = '-1';\n let nextCell = cell.nextElementSibling;\n if (nextCell) {\n nextCell.tabIndex = '0';\n nextCell.focus();\n } else {\n this.navigationState = { backward: false };\n this.navForward(event);\n }\n\n event.preventDefault();\n break;\n }\n\n //enter\n //space\n case 13:\n case 32: {\n this.onYearSelect(event, index);\n event.preventDefault();\n break;\n }\n\n //escape\n case 27: {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n event.preventDefault();\n break;\n }\n\n //tab\n case 9: {\n this.trapFocus(event);\n break;\n }\n\n default:\n //no op\n break;\n }\n }\n\n navigateToMonth(prev: boolean, groupIndex: number, focusKey?: string) {\n if (prev) {\n if (this.numberOfMonths === 1 || groupIndex === 0) {\n this.navigationState = { backward: true };\n this._focusKey = focusKey;\n this.navBackward(event);\n } else {\n let prevMonthContainer = this.contentViewChild.nativeElement.children[groupIndex - 1];\n if (focusKey) {\n const firstDayCell = DomHandler.findSingle(prevMonthContainer, focusKey);\n firstDayCell.tabIndex = '0';\n firstDayCell.focus();\n } else {\n let cells = DomHandler.find(prevMonthContainer, '.cax-datepicker-calendar td span:not(.cax-disabled):not(.cax-ink)');\n let focusCell = cells[cells.length - 1];\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n } else {\n if (this.numberOfMonths === 1 || groupIndex === this.numberOfMonths - 1) {\n this.navigationState = { backward: false };\n this._focusKey = focusKey;\n this.navForward(event);\n } else {\n let nextMonthContainer = this.contentViewChild.nativeElement.children[groupIndex + 1];\n if (focusKey) {\n const firstDayCell = DomHandler.findSingle(nextMonthContainer, focusKey);\n firstDayCell.tabIndex = '0';\n firstDayCell.focus();\n } else {\n let focusCell = DomHandler.findSingle(nextMonthContainer, '.cax-datepicker-calendar td span:not(.cax-disabled):not(.cax-ink)');\n focusCell.tabIndex = '0';\n focusCell.focus();\n }\n }\n }\n }\n\n updateFocus() {\n let cell;\n\n if (this.navigationState) {\n if (this.navigationState.button) {\n this.initFocusableCell();\n\n if (this.navigationState.backward) DomHandler.findSingle(this.contentViewChild.nativeElement, '.cax-datepicker-prev').focus();\n else DomHandler.findSingle(this.contentViewChild.nativeElement, '.cax-datepicker-next').focus();\n } else {\n if (this.navigationState.backward) {\n let cells;\n\n if (this.currentView === 'month') {\n cells = DomHandler.find(this.contentViewChild.nativeElement, '.cax-monthpicker .cax-monthpicker-month:not(.cax-disabled)');\n } else if (this.currentView === 'year') {\n cells = DomHandler.find(this.contentViewChild.nativeElement, '.cax-yearpicker .cax-yearpicker-year:not(.cax-disabled)');\n } else {\n cells = DomHandler.find(this.contentViewChild.nativeElement, this._focusKey || '.cax-datepicker-calendar td span:not(.cax-disabled):not(.cax-ink)');\n }\n\n if (cells && cells.length > 0) {\n cell = cells[cells.length - 1];\n }\n } else {\n if (this.currentView === 'month') {\n cell = DomHandler.findSingle(this.contentViewChild.nativeElement, '.cax-monthpicker .cax-monthpicker-month:not(.cax-disabled)');\n } else if (this.currentView === 'year') {\n cell = DomHandler.findSingle(this.contentViewChild.nativeElement, '.cax-yearpicker .cax-yearpicker-year:not(.cax-disabled)');\n } else {\n cell = DomHandler.findSingle(this.contentViewChild.nativeElement, this._focusKey || '.cax-datepicker-calendar td span:not(.cax-disabled):not(.cax-ink)');\n }\n }\n\n if (cell) {\n cell.tabIndex = '0';\n cell.focus();\n }\n }\n\n this.navigationState = null;\n this._focusKey = null;\n } else {\n this.initFocusableCell();\n }\n this.alignOverlay();\n }\n\n initFocusableCell() {\n const contentEl = this.contentViewChild?.nativeElement;\n let cell!: any;\n\n if (this.currentView === 'month') {\n let cells = DomHandler.find(contentEl, '.cax-monthpicker .cax-monthpicker-month:not(.cax-disabled)');\n let selectedCell = DomHandler.findSingle(contentEl, '.cax-monthpicker .cax-monthpicker-month.cax-highlight');\n cells.forEach((cell) => (cell.tabIndex = -1));\n cell = selectedCell || cells[0];\n\n if (cells.length === 0) {\n let disabledCells = DomHandler.find(contentEl, '.cax-monthpicker .cax-monthpicker-month.cax-disabled[tabindex = \"0\"]');\n disabledCells.forEach((cell) => (cell.tabIndex = -1));\n }\n } else if (this.currentView === 'year') {\n let cells = DomHandler.find(contentEl, '.cax-yearpicker .cax-yearpicker-year:not(.cax-disabled)');\n let selectedCell = DomHandler.findSingle(contentEl, '.cax-yearpicker .cax-yearpicker-year.cax-highlight');\n cells.forEach((cell) => (cell.tabIndex = -1));\n cell = selectedCell || cells[0];\n\n if (cells.length === 0) {\n let disabledCells = DomHandler.find(contentEl, '.cax-yearpicker .cax-yearpicker-year.cax-disabled[tabindex = \"0\"]');\n disabledCells.forEach((cell) => (cell.tabIndex = -1));\n }\n } else {\n cell = DomHandler.findSingle(contentEl, 'span.cax-highlight');\n if (!cell) {\n let todayCell = DomHandler.findSingle(contentEl, 'td.cax-datepicker-today span:not(.cax-disabled):not(.cax-ink)');\n if (todayCell) cell = todayCell;\n else cell = DomHandler.findSingle(contentEl, '.cax-datepicker-calendar td span:not(.cax-disabled):not(.cax-ink)');\n }\n }\n\n if (cell) {\n cell.tabIndex = '0';\n\n if (!this.preventFocus && (!this.navigationState || !this.navigationState.button)) {\n setTimeout(() => {\n if (!this.disabled) {\n cell.focus();\n }\n }, 1);\n }\n\n this.preventFocus = false;\n }\n }\n\n trapFocus(event: any) {\n let focusableElements = DomHandler.getFocusableElements(this.contentViewChild.nativeElement);\n\n if (focusableElements && focusableElements.length > 0) {\n if (!focusableElements[0].ownerDocument.activeElement) {\n focusableElements[0].focus();\n } else {\n let focusedIndex = focusableElements.indexOf(focusableElements[0].ownerDocument.activeElement);\n\n if (event.shiftKey) {\n if (focusedIndex == -1 || focusedIndex === 0) {\n if (this.focusTrap) {\n focusableElements[focusableElements.length - 1].focus();\n } else {\n if (focusedIndex === -1) return this.hideOverlay();\n else if (focusedIndex === 0) return;\n }\n } else {\n focusableElements[focusedIndex - 1].focus();\n }\n } else {\n if (focusedIndex == -1) {\n if (this.timeOnly) {\n focusableElements[0].focus();\n } else {\n let spanIndex = 0;\n\n for (let i = 0; i < focusableElements.length; i++) {\n if (focusableElements[i].tagName === 'SPAN') spanIndex = i;\n }\n\n focusableElements[spanIndex].focus();\n }\n } else if (focusedIndex === focusableElements.length - 1) {\n if (!this.focusTrap && focusedIndex != -1) return this.hideOverlay();\n\n focusableElements[0].focus();\n } else {\n focusableElements[focusedIndex + 1].focus();\n }\n }\n }\n }\n\n event.preventDefault();\n }\n\n onMonthDropdownChange(m: string) {\n this.currentMonth = parseInt(m);\n this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n\n onYearDropdownChange(y: string) {\n this.currentYear = parseInt(y);\n this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });\n this.createMonths(this.currentMonth, this.currentYear);\n }\n\n convertTo24Hour(hours: number, pm: boolean) {\n //@ts-ignore\n if (this.hourFormat == '12') {\n if (hours === 12) {\n return pm ? 12 : 0;\n } else {\n return pm ? hours + 12 : hours;\n }\n }\n return hours;\n }\n\n constrainTime(hour: number, minute: number, second: number, pm: boolean) {\n let returnTimeTriple: number[] = [hour, minute, second];\n let minHoursExceeds12: boolean;\n let value = this.value;\n const convertedHour = this.convertTo24Hour(hour, pm);\n const isRange = this.isRangeSelection(),\n isMultiple = this.isMultipleSelection(),\n isMultiValue = isRange || isMultiple;\n\n if (isMultiValue) {\n if (!this.value) {\n this.value = [new Date(), new Date()];\n }\n if (isRange) {\n value = this.value[1] || this.value[0];\n }\n if (isMultiple) {\n value = this.value[this.value.length - 1];\n }\n }\n const valueDateString = value ? value.toDateString() : null;\n let isMinDate = this.minDate && valueDateString && this.minDate.toDateString() === valueDateString;\n let isMaxDate = this.maxDate && valueDateString && this.maxDate.toDateString() === valueDateString;\n\n if (isMinDate) {\n minHoursExceeds12 = this.minDate.getHours() >= 12;\n }\n\n switch (\n true // intentional fall through\n ) {\n case isMinDate && minHoursExceeds12 && this.minDate.getHours() === 12 && this.minDate.getHours() > convertedHour:\n returnTimeTriple[0] = 11;\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMinDate && !minHoursExceeds12 && this.minDate.getHours() - 1 === convertedHour && this.minDate.getHours() > convertedHour:\n returnTimeTriple[0] = 11;\n this.pm = true;\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n\n case isMinDate && minHoursExceeds12 && this.minDate.getHours() > convertedHour && convertedHour !== 12:\n this.setCurrentHourPM(this.minDate.getHours());\n returnTimeTriple[0] = this.currentHour;\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMinDate && this.minDate.getHours() > convertedHour:\n returnTimeTriple[0] = this.minDate.getHours();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() > minute:\n returnTimeTriple[1] = this.minDate.getMinutes();\n case isMinDate && this.minDate.getHours() === convertedHour && this.minDate.getMinutes() === minute && this.minDate.getSeconds() > second:\n returnTimeTriple[2] = this.minDate.getSeconds();\n break;\n case isMaxDate && this.maxDate.getHours() < convertedHour:\n returnTimeTriple[0] = this.maxDate.getHours();\n case isMaxDate && this.maxDate.getHours() === convertedHour && this.maxDate.getMinutes() < minute:\n returnTimeTriple[1] = this.maxDate.getMinutes();\n case isMaxDate && this.maxDate.getHours() === convertedHour && this.maxDate.getMinutes() === minute && this.maxDate.getSeconds() < second:\n returnTimeTriple[2] = this.maxDate.getSeconds();\n break;\n }\n\n return returnTimeTriple;\n }\n\n incrementHour(event: any) {\n const prevHour = this.currentHour ?? 0;\n let newHour = (this.currentHour ?? 0) + this.stepHour;\n let newPM = this.pm;\n if (this.hourFormat == '24') newHour = newHour >= 24 ? newHour - 24 : newHour;\n else if (this.hourFormat == '12') {\n // Before the AM/PM break, now after\n if (prevHour < 12 && newHour > 11) {\n newPM = !this.pm;\n }\n newHour = newHour >= 13 ? newHour - 12 : newHour;\n }\n this.toggleAMPMIfNotMinDate(newPM);\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(newHour, this.currentMinute!, this.currentSecond!, newPM!);\n event.preventDefault();\n }\n\n toggleAMPMIfNotMinDate(newPM: boolean) {\n let value = this.value;\n\n if ((this.selectionMode == 'range' || this.selectionMode == 'multiple') && Array.isArray(value) && value.length > 0) {\n value = value[value.length - 1];\n }\n const valueDateString = value ? value.toDateString() : null;\n let isMinDate = this.minDate && valueDateString && this.minDate.toDateString() === valueDateString;\n if (isMinDate && this.minDate.getHours() >= 12) {\n this.pm = true;\n } else {\n this.pm = newPM;\n }\n }\n\n onTimePickerElementMouseDown(event: Event, type: number, direction: number) {\n if (!this.disabled) {\n this.repeat(event, null, type, direction);\n event.preventDefault();\n }\n }\n\n onTimePickerElementMouseUp(event: Event) {\n if (!this.disabled) {\n this.clearTimePickerTimer();\n this.updateTime();\n }\n }\n\n onTimePickerElementMouseLeave() {\n if (!this.disabled && this.timePickerTimer) {\n this.clearTimePickerTimer();\n this.updateTime();\n }\n }\n\n repeat(event: Event | null, interval: number | null, type: number | null, direction: number | null) {\n let i = interval || 500;\n\n this.clearTimePickerTimer();\n this.timePickerTimer = setTimeout(() => {\n this.repeat(event, 100, type, direction);\n this.cd.markForCheck();\n }, i);\n\n switch (type) {\n case 0:\n if (direction === 1) this.incrementHour(event);\n else this.decrementHour(event);\n break;\n\n case 1:\n if (direction === 1) this.incrementMinute(event);\n else this.decrementMinute(event);\n break;\n\n case 2:\n if (direction === 1) this.incrementSecond(event);\n else this.decrementSecond(event);\n break;\n }\n\n this.updateInputfield();\n }\n\n clearTimePickerTimer() {\n if (this.timePickerTimer) {\n clearTimeout(this.timePickerTimer);\n this.timePickerTimer = null;\n }\n }\n\n decrementHour(event: any) {\n let newHour = (this.currentHour ?? 0) - this.stepHour;\n let newPM = this.pm;\n if (this.hourFormat == '24') newHour = newHour < 0 ? 24 + newHour : newHour;\n else if (this.hourFormat == '12') {\n // If we were at noon/midnight, then switch\n if (this.currentHour === 12) {\n newPM = !this.pm;\n }\n newHour = newHour <= 0 ? 12 + newHour : newHour;\n }\n this.toggleAMPMIfNotMinDate(newPM);\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(newHour, this.currentMinute!, this.currentSecond!, newPM!);\n event.preventDefault();\n }\n\n incrementMinute(event: any) {\n let newMinute = (this.currentMinute ?? 0) + this.stepMinute;\n newMinute = newMinute > 59 ? newMinute - 60 : newMinute;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, newMinute, this.currentSecond!, this.pm!);\n event.preventDefault();\n }\n\n decrementMinute(event: any) {\n let newMinute = (this.currentMinute ?? 0) - this.stepMinute;\n newMinute = newMinute < 0 ? 60 + newMinute : newMinute;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, newMinute, this.currentSecond, this.pm);\n event.preventDefault();\n }\n\n incrementSecond(event: any) {\n let newSecond = <any>this.currentSecond + this.stepSecond;\n newSecond = newSecond > 59 ? newSecond - 60 : newSecond;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, newSecond, this.pm);\n event.preventDefault();\n }\n\n decrementSecond(event: any) {\n let newSecond = <any>this.currentSecond - this.stepSecond;\n newSecond = newSecond < 0 ? 60 + newSecond : newSecond;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, newSecond, this.pm);\n event.preventDefault();\n }\n\n updateTime() {\n let value = this.value;\n if (this.isRangeSelection()) {\n value = this.value[1] || this.value[0];\n }\n if (this.isMultipleSelection()) {\n value = this.value[this.value.length - 1];\n }\n value = value ? new Date(value.getTime()) : new Date();\n\n if (this.hourFormat == '12') {\n if (this.currentHour === 12) value.setHours(this.pm ? 12 : 0);\n else value.setHours(this.pm ? <number>this.currentHour + 12 : this.currentHour);\n } else {\n value.setHours(this.currentHour);\n }\n\n value.setMinutes(this.currentMinute);\n value.setSeconds(this.currentSecond);\n if (this.isRangeSelection()) {\n if (this.value[1]) value = [this.value[0], value];\n else value = [value, null];\n }\n\n if (this.isMultipleSelection()) {\n value = [...this.value.slice(0, -1), value];\n }\n\n this.updateModel(value);\n this.onSelect.emit(value);\n this.updateInputfield();\n }\n\n toggleAMPM(event: any) {\n const newPM = !this.pm;\n this.pm = newPM;\n [this.currentHour, this.currentMinute, this.currentSecond] = this.constrainTime(this.currentHour, this.currentMinute, this.currentSecond, newPM);\n this.updateTime();\n event.preventDefault();\n }\n\n onUserInput(event: KeyboardEvent | any) {\n // IE 11 Workaround for input placeholder : https://github.com/primefaces/cax-design-system/issues/2026\n if (!this.isKeydown) {\n return;\n }\n this.isKeydown = false;\n\n let val = (<HTMLInputElement>event.target).value;\n try {\n let value = this.parseValueFromString(val);\n if (this.isValidSelection(value)) {\n this.updateModel(value);\n this.updateUI();\n } else if (this.keepInvalid) {\n this.updateModel(value);\n }\n } catch (err) {\n //invalid date\n let value = this.keepInvalid ? val : null;\n this.updateModel(value);\n }\n\n this.filled = (val != null && val.length) as any;\n this.onInput.emit(event);\n }\n\n isValidSelection(value: any): boolean {\n if (this.isSingleSelection()) {\n return this.isSelectable(value.getDate(), value.getMonth(), value.getFullYear(), false);\n }\n let isValid = value.every((v: any) => this.isSelectable(v.getDate(), v.getMonth(), v.getFullYear(), false));\n if (isValid && this.isRangeSelection()) {\n isValid = value.length === 1 || (value.length > 1 && value[1] >= value[0]);\n }\n return isValid;\n }\n\n parseValueFromString(text: string): Date | Date[] | null {\n if (!text || text.trim().length === 0) {\n return null;\n }\n\n let value: any;\n\n if (this.isSingleSelection()) {\n value = this.parseDateTime(text);\n } else if (this.isMultipleSelection()) {\n let tokens = text.split(this.multipleSeparator);\n value = [];\n for (let token of tokens) {\n value.push(this.parseDateTime(token.trim()));\n }\n } else if (this.isRangeSelection()) {\n let tokens = text.split(' ' + this.rangeSeparator + ' ');\n value = [];\n for (let i = 0; i < tokens.length; i++) {\n value[i] = this.parseDateTime(tokens[i].trim());\n }\n }\n\n return value;\n }\n\n parseDateTime(text: any): Date {\n let date: Date;\n let parts: string[] = text.split(' ');\n\n if (this.timeOnly) {\n date = new Date();\n this.populateTime(date, parts[0], parts[1]);\n } else {\n const dateFormat = this.getDateFormat();\n if (this.showTime) {\n let ampm = this.hourFormat == '12' ? parts.pop() : null;\n let timeString = parts.pop();\n\n date = this.parseDate(parts.join(' '), dateFormat);\n this.populateTime(date, timeString, ampm);\n } else {\n date = this.parseDate(text, dateFormat);\n }\n }\n\n return date;\n }\n\n populateTime(value: any, timeString: any, ampm: any) {\n if (this.hourFormat == '12' && !ampm) {\n throw 'Invalid Time';\n }\n\n this.pm = ampm === 'PM' || ampm === 'pm';\n let time = this.parseTime(timeString);\n value.setHours(time.hour);\n value.setMinutes(time.minute);\n value.setSeconds(time.second);\n }\n\n isValidDate(date: any) {\n return ObjectUtils.isDate(date) && ObjectUtils.isNotEmpty(date);\n }\n\n updateUI() {\n let propValue = this.value;\n if (Array.isArray(propValue)) {\n propValue = propValue[1] || propValue[0];\n }\n\n let val = this.defaultDate && this.isValidDate(this.defaultDate) && !this.value ? this.defaultDate : propValue && this.isValidDate(propValue) ? propValue : new Date();\n\n this.currentMonth = val.getMonth();\n this.currentYear = val.getFullYear();\n this.createMonths(this.currentMonth, this.currentYear);\n\n if (this.showTime || this.timeOnly) {\n this.setCurrentHourPM(val.getHours());\n this.currentMinute = val.getMinutes();\n this.currentSecond = val.getSeconds();\n }\n }\n\n showOverlay() {\n if (!this.overlayVisible) {\n this.updateUI();\n\n if (!this.touchUI) {\n this.preventFocus = true;\n }\n\n this.overlayVisible = true;\n }\n }\n\n hideOverlay() {\n this.inputfieldViewChild?.nativeElement.focus();\n this.overlayVisible = false;\n this.clearTimePickerTimer();\n\n if (this.touchUI) {\n this.disableModality();\n }\n\n this.cd.markForCheck();\n }\n\n toggle() {\n if (!this.inline) {\n if (!this.overlayVisible) {\n this.showOverlay();\n this.inputfieldViewChild?.nativeElement.focus();\n } else {\n this.hideOverlay();\n }\n }\n }\n\n onOverlayAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n case 'visibleTouchUI':\n if (!this.inline) {\n this.overlay = event.element;\n this.overlay?.setAttribute(this.attributeSelector as string, '');\n this.appendOverlay();\n this.updateFocus();\n if (this.autoZIndex) {\n if (this.touchUI) ZIndexUtils.set('modal', this.overlay, this.baseZIndex || this.config.zIndex.modal);\n else ZIndexUtils.set('overlay', this.overlay, this.baseZIndex || this.config.zIndex.overlay);\n }\n\n this.alignOverlay();\n this.onShow.emit(event);\n }\n break;\n\n case 'void':\n this.onOverlayHide();\n this.onClose.emit(event);\n break;\n }\n }\n\n onOverlayAnimationDone(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n case 'visibleTouchUI':\n if (!this.inline) {\n this.bindDocumentClickListener();\n this.bindDocumentResizeListener();\n this.bindScrollListener();\n }\n break;\n\n case 'void':\n if (this.autoZIndex) {\n ZIndexUtils.clear(event.element);\n }\n break;\n }\n }\n\n appendOverlay() {\n if (this.appendTo) {\n if (this.appendTo === 'body') this.document.body.appendChild(<HTMLElement>this.overlay);\n else DomHandler.appendChild(this.overlay, this.appendTo);\n }\n }\n\n restoreOverlayAppend() {\n if (this.overlay && this.appendTo) {\n this.el.nativeElement.appendChild(this.overlay);\n }\n }\n\n alignOverlay() {\n if (this.touchUI) {\n this.enableModality(this.overlay);\n } else if (this.overlay) {\n if (this.appendTo) {\n if (this.view === 'date') {\n if (!this.overlay.style.width) {\n this.overlay.style.width = DomHandler.getOuterWidth(this.overlay) + 'px';\n }\n if (!this.overlay.style.minWidth) {\n this.overlay.style.minWidth = DomHandler.getOuterWidth(this.inputfieldViewChild?.nativeElement) + 'px';\n }\n } else {\n if (!this.overlay.style.width) {\n this.overlay.style.width = DomHandler.getOuterWidth(this.inputfieldViewChild?.nativeElement) + 'px';\n }\n }\n\n DomHandler.absolutePosition(this.overlay, this.inputfieldViewChild?.nativeElement);\n } else {\n DomHandler.relativePosition(this.overlay, this.inputfieldViewChild?.nativeElement);\n }\n }\n }\n\n enableModality(element: any) {\n if (!this.mask && this.touchUI) {\n this.mask = this.renderer.createElement('div');\n this.renderer.setStyle(this.mask, 'zIndex', String(parseInt(element.style.zIndex) - 1));\n let maskStyleClass = 'cax-component-overlay cax-datepicker-mask cax-datepicker-mask-scrollblocker cax-component-overlay cax-component-overlay-enter';\n DomHandler.addMultipleClasses(this.mask, maskStyleClass);\n\n this.maskClickListener = this.renderer.listen(this.mask, 'click', (event: any) => {\n this.disableModality();\n this.overlayVisible = false;\n });\n this.renderer.appendChild(this.document.body, this.mask);\n DomHandler.blockBodyScroll();\n }\n }\n\n disableModality() {\n if (this.mask) {\n DomHandler.addClass(this.mask, 'cax-component-overlay-leave');\n if (!this.animationEndListener) {\n this.animationEndListener = this.renderer.listen(this.mask, 'animationend', this.destroyMask.bind(this));\n }\n }\n }\n\n destroyMask() {\n if (!this.mask) {\n return;\n }\n this.renderer.removeChild(this.document.body, this.mask);\n let bodyChildren = this.document.body.children;\n let hasBlockerMasks!: boolean;\n for (let i = 0; i < bodyChildren.length; i++) {\n let bodyChild = bodyChildren[i];\n if (DomHandler.hasClass(bodyChild, 'cax-datepicker-mask-scrollblocker')) {\n hasBlockerMasks = true;\n break;\n }\n }\n\n if (!hasBlockerMasks) {\n DomHandler.unblockBodyScroll();\n }\n\n this.unbindAnimationEndListener();\n this.unbindMaskClickListener();\n this.mask = null;\n }\n\n unbindMaskClickListener() {\n if (this.maskClickListener) {\n this.maskClickListener();\n this.maskClickListener = null;\n }\n }\n\n unbindAnimationEndListener() {\n if (this.animationEndListener && this.mask) {\n this.animationEndListener();\n this.animationEndListener = null;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n if (this.value && typeof this.value === 'string') {\n try {\n this.value = this.parseValueFromString(this.value);\n } catch {\n if (this.keepInvalid) {\n this.value = value;\n }\n }\n }\n\n this.updateInputfield();\n this.updateUI();\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n getDateFormat() {\n return this.dateFormat || this.getTranslation('dateFormat');\n }\n\n getFirstDateOfWeek() {\n return this._firstDayOfWeek || this.getTranslation(TranslationKeys.FIRST_DAY_OF_WEEK);\n }\n\n // Ported from jquery-ui datepicker formatDate\n formatDate(date: any, format: any) {\n if (!date) {\n return '';\n }\n\n let iFormat!: any;\n const lookAhead = (match: string) => {\n const matches = iFormat + 1 < format.length && format.charAt(iFormat + 1) === match;\n if (matches) {\n iFormat++;\n }\n return matches;\n },\n formatNumber = (match: string, value: any, len: any) => {\n let num = '' + value;\n if (lookAhead(match)) {\n while (num.length < len) {\n num = '0' + num;\n }\n }\n return num;\n },\n formatName = (match: string, value: any, shortNames: any, longNames: any) => {\n return lookAhead(match) ? longNames[value] : shortNames[value];\n };\n let output = '';\n let literal = false;\n\n if (date) {\n for (iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\n literal = false;\n } else {\n output += format.charAt(iFormat);\n }\n } else {\n switch (format.charAt(iFormat)) {\n case 'd':\n output += formatNumber('d', date.getDate(), 2);\n break;\n case 'D':\n output += formatName('D', date.getDay(), this.getTranslation(TranslationKeys.DAY_NAMES_SHORT), this.getTranslation(TranslationKeys.DAY_NAMES));\n break;\n case 'o':\n output += formatNumber('o', Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);\n break;\n case 'm':\n output += formatNumber('m', date.getMonth() + 1, 2);\n break;\n case 'M':\n output += formatName('M', date.getMonth(), this.getTranslation(TranslationKeys.MONTH_NAMES_SHORT), this.getTranslation(TranslationKeys.MONTH_NAMES));\n break;\n case 'y':\n output += lookAhead('y') ? date.getFullYear() : (date.getFullYear() % 100 < 10 ? '0' : '') + (date.getFullYear() % 100);\n break;\n case '@':\n output += date.getTime();\n break;\n case '!':\n output += date.getTime() * 10000 + <number>this.ticksTo1970;\n break;\n case \"'\":\n if (lookAhead(\"'\")) {\n output += \"'\";\n } else {\n literal = true;\n }\n break;\n default:\n output += format.charAt(iFormat);\n }\n }\n }\n }\n return output;\n }\n\n formatTime(date: any) {\n if (!date) {\n return '';\n }\n\n let output = '';\n let hours = date.getHours();\n let minutes = date.getMinutes();\n let seconds = date.getSeconds();\n\n if (this.hourFormat == '12' && hours > 11 && hours != 12) {\n hours -= 12;\n }\n\n if (this.hourFormat == '12') {\n output += hours === 0 ? 12 : hours < 10 ? '0' + hours : hours;\n } else {\n output += hours < 10 ? '0' + hours : hours;\n }\n output += ':';\n output += minutes < 10 ? '0' + minutes : minutes;\n\n if (this.showSeconds) {\n output += ':';\n output += seconds < 10 ? '0' + seconds : seconds;\n }\n\n if (this.hourFormat == '12') {\n output += date.getHours() > 11 ? ' PM' : ' AM';\n }\n\n return output;\n }\n\n parseTime(value: any) {\n let tokens: string[] = value.split(':');\n let validTokenLength = this.showSeconds ? 3 : 2;\n\n if (tokens.length !== validTokenLength) {\n throw 'Invalid time';\n }\n\n let h = parseInt(tokens[0]);\n let m = parseInt(tokens[1]);\n let s = this.showSeconds ? parseInt(tokens[2]) : null;\n\n if (isNaN(h) || isNaN(m) || h > 23 || m > 59 || (this.hourFormat == '12' && h > 12) || (this.showSeconds && (isNaN(<any>s) || <any>s > 59))) {\n throw 'Invalid time';\n } else {\n if (this.hourFormat == '12') {\n if (h !== 12 && this.pm) {\n h += 12;\n } else if (!this.pm && h === 12) {\n h -= 12;\n }\n }\n\n return { hour: h, minute: m, second: s };\n }\n }\n\n // Ported from jquery-ui datepicker parseDate\n parseDate(value: any, format: any) {\n if (format == null || value == null) {\n throw 'Invalid arguments';\n }\n\n value = typeof value === 'object' ? value.toString() : value + '';\n if (value === '') {\n return null;\n }\n\n let iFormat!: any,\n dim,\n extra,\n iValue = 0,\n shortYearCutoff = typeof this.shortYearCutoff !== 'string' ? this.shortYearCutoff : (new Date().getFullYear() % 100) + parseInt(this.shortYearCutoff, 10),\n year = -1,\n month = -1,\n day = -1,\n doy = -1,\n literal = false,\n date,\n lookAhead = (match: any) => {\n let matches = iFormat + 1 < format.length && format.charAt(iFormat + 1) === match;\n if (matches) {\n iFormat++;\n }\n return matches;\n },\n getNumber = (match: any) => {\n let isDoubled = lookAhead(match),\n size = match === '@' ? 14 : match === '!' ? 20 : match === 'y' && isDoubled ? 4 : match === 'o' ? 3 : 2,\n minSize = match === 'y' ? size : 1,\n digits = new RegExp('^\\\\d{' + minSize + ',' + size + '}'),\n num = value.substring(iValue).match(digits);\n if (!num) {\n throw 'Missing number at position ' + iValue;\n }\n iValue += num[0].length;\n return parseInt(num[0], 10);\n },\n getName = (match: any, shortNames: any, longNames: any) => {\n let index = -1;\n let arr = lookAhead(match) ? longNames : shortNames;\n let names = [];\n\n for (let i = 0; i < arr.length; i++) {\n names.push([i, arr[i]]);\n }\n names.sort((a, b) => {\n return -(a[1].length - b[1].length);\n });\n\n for (let i = 0; i < names.length; i++) {\n let name = names[i][1];\n if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) {\n index = names[i][0];\n iValue += name.length;\n break;\n }\n }\n\n if (index !== -1) {\n return index + 1;\n } else {\n throw 'Unknown name at position ' + iValue;\n }\n },\n checkLiteral = () => {\n if (value.charAt(iValue) !== format.charAt(iFormat)) {\n throw 'Unexpected literal at position ' + iValue;\n }\n iValue++;\n };\n\n if (this.view === 'month') {\n day = 1;\n }\n\n for (iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !lookAhead(\"'\")) {\n literal = false;\n } else {\n checkLiteral();\n }\n } else {\n switch (format.charAt(iFormat)) {\n case 'd':\n day = getNumber('d');\n break;\n case 'D':\n getName('D', this.getTranslation(TranslationKeys.DAY_NAMES_SHORT), this.getTranslation(TranslationKeys.DAY_NAMES));\n break;\n case 'o':\n doy = getNumber('o');\n break;\n case 'm':\n month = getNumber('m');\n break;\n case 'M':\n month = getName('M', this.getTranslation(TranslationKeys.MONTH_NAMES_SHORT), this.getTranslation(TranslationKeys.MONTH_NAMES));\n break;\n case 'y':\n year = getNumber('y');\n break;\n case '@':\n date = new Date(getNumber('@'));\n year = date.getFullYear();\n month = date.getMonth() + 1;\n day = date.getDate();\n break;\n case '!':\n date = new Date((getNumber('!') - <number>this.ticksTo1970) / 10000);\n year = date.getFullYear();\n month = date.getMonth() + 1;\n day = date.getDate();\n break;\n case \"'\":\n if (lookAhead(\"'\")) {\n checkLiteral();\n } else {\n literal = true;\n }\n break;\n default:\n checkLiteral();\n }\n }\n }\n\n if (iValue < value.length) {\n extra = value.substr(iValue);\n if (!/^\\s+/.test(extra)) {\n throw 'Extra/unparsed characters found in date: ' + extra;\n }\n }\n\n if (year === -1) {\n year = new Date().getFullYear();\n } else if (year < 100) {\n year += new Date().getFullYear() - (new Date().getFullYear() % 100) + (year <= shortYearCutoff ? 0 : -100);\n }\n\n if (doy > -1) {\n month = 1;\n day = doy;\n do {\n dim = this.getDaysCountInMonth(year, month - 1);\n if (day <= dim) {\n break;\n }\n month++;\n day -= dim;\n } while (true);\n }\n\n if (this.view === 'year') {\n month = month === -1 ? 1 : month;\n day = day === -1 ? 1 : day;\n }\n\n date = this.daylightSavingAdjust(new Date(year, month - 1, day));\n\n if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) {\n throw 'Invalid date'; // E.g. 31/02/00\n }\n\n return date;\n }\n\n daylightSavingAdjust(date: any) {\n if (!date) {\n return null;\n }\n\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n\n return date;\n }\n\n updateFilledState() {\n this.filled = (this.inputFieldValue && this.inputFieldValue != '') as boolean;\n }\n\n isValidDateForTimeConstraints(selectedDate: Date) {\n if (this.keepInvalid) {\n return true; // If we are keeping invalid dates, we don't need to check for time constraints\n }\n return (!this.minDate || selectedDate >= this.minDate) && (!this.maxDate || selectedDate <= this.maxDate);\n }\n\n onTodayButtonClick(event: any) {\n const date: Date = new Date();\n const dateMeta = { day: date.getDate(), month: date.getMonth(), year: date.getFullYear(), otherMonth: date.getMonth() !== this.currentMonth || date.getFullYear() !== this.currentYear, today: true, selectable: true };\n\n this.createMonths(date.getMonth(), date.getFullYear());\n this.onDateSelect(event, dateMeta);\n this.onTodayClick.emit(date);\n }\n\n onClearButtonClick(event: any) {\n this.updateModel(null);\n this.updateInputfield();\n this.hideOverlay();\n this.onClearClick.emit(event);\n }\n\n onBackButtonClick(event: any) {\n if (this.currentView == 'year') this.setCurrentView('month');\n else if (this.currentView == 'month') this.setCurrentView('date');\n }\n\n createResponsiveStyle() {\n if (this.numberOfMonths > 1 && this.responsiveOptions) {\n if (!this.responsiveStyleElement) {\n this.responsiveStyleElement = this.renderer.createElement('style');\n (<HTMLStyleElement>this.responsiveStyleElement).type = 'text/css';\n DomHandler.setAttribute(this.responsiveStyleElement, 'nonce', this.config?.csp()?.nonce);\n this.renderer.appendChild(this.document.body, this.responsiveStyleElement);\n }\n\n let innerHTML = '';\n if (this.responsiveOptions) {\n let responsiveOptions = [...this.responsiveOptions].filter((o) => !!(o.breakpoint && o.numMonths)).sort((o1: any, o2: any) => -1 * o1.breakpoint.localeCompare(o2.breakpoint, undefined, { numeric: true }));\n\n for (let i = 0; i < responsiveOptions.length; i++) {\n let { breakpoint, numMonths } = responsiveOptions[i];\n let styles = `\n .cax-datepicker[${this.attributeSelector}] .cax-datepicker-group:nth-child(${numMonths}) .cax-datepicker-next {\n display: inline-flex !important;\n }\n `;\n\n for (let j: number = <number>numMonths; j < this.numberOfMonths; j++) {\n styles += `\n .cax-datepicker[${this.attributeSelector}] .cax-datepicker-group:nth-child(${j + 1}) {\n display: none !important;\n }\n `;\n }\n\n innerHTML += `\n @media screen and (max-width: ${breakpoint}) {\n ${styles}\n }\n `;\n }\n }\n\n (<HTMLStyleElement>this.responsiveStyleElement).innerHTML = innerHTML;\n }\n }\n\n destroyResponsiveStyleElement() {\n if (this.responsiveStyleElement) {\n this.responsiveStyleElement.remove();\n this.responsiveStyleElement = null;\n }\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.zone.runOutsideAngular(() => {\n const documentTarget: any = this.el ? this.el.nativeElement.ownerDocument : this.document;\n\n this.documentClickListener = this.renderer.listen(documentTarget, 'mousedown', (event) => {\n if (this.isOutsideClicked(event) && this.overlayVisible) {\n this.zone.run(() => {\n this.hideOverlay();\n this.onClickOutside.emit(event);\n\n this.cd.markForCheck();\n });\n }\n });\n });\n }\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n bindDocumentResizeListener() {\n if (!this.documentResizeListener && !this.touchUI) {\n this.documentResizeListener = this.renderer.listen(this.window, 'resize', this.onWindowResize.bind(this));\n }\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.containerViewChild?.nativeElement, () => {\n if (this.overlayVisible) {\n this.hideOverlay();\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n isOutsideClicked(event: Event) {\n return !(this.el.nativeElement.isSameNode(event.target) || this.isNavIconClicked(event) || this.el.nativeElement.contains(event.target) || (this.overlay && this.overlay.contains(<Node>event.target)));\n }\n\n isNavIconClicked(event: Event) {\n return (\n DomHandler.hasClass(event.target, 'cax-datepicker-prev') ||\n DomHandler.hasClass(event.target, 'cax-datepicker-prev-icon') ||\n DomHandler.hasClass(event.target, 'cax-datepicker-next') ||\n DomHandler.hasClass(event.target, 'cax-datepicker-next-icon')\n );\n }\n\n onWindowResize() {\n if (this.overlayVisible && !DomHandler.isTouchDevice()) {\n this.hideOverlay();\n }\n }\n\n onOverlayHide() {\n this.currentView = this.view;\n\n if (this.mask) {\n this.destroyMask();\n }\n\n this.unbindDocumentClickListener();\n this.unbindDocumentResizeListener();\n this.unbindScrollListener();\n this.overlay = null;\n }\n\n ngOnDestroy() {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n\n if (this.overlay && this.autoZIndex) {\n ZIndexUtils.clear(this.overlay);\n }\n\n this.destroyResponsiveStyleElement();\n this.clearTimePickerTimer();\n this.restoreOverlayAppend();\n this.onOverlayHide();\n }\n\n onInlineSave(event?: Event) {\n this.onInlineSaved.emit(this.value);\n }\n\n onInlineCancel() {\n // Revert to original value if needed\n if (this.originalValue) {\n this.value = new Date(this.originalValue);\n this.updateFormattedInlineDate();\n }\n this.onInlineCancelled.emit();\n }\n}\n","<div [ngClass]=\"{'cax-calendar-main-label': labelText}\">\r\n <label *ngIf=\"labelText\" [ngClass]=\"labelTextClass\">{{ labelText }}</label>\r\n</div>\r\n<span\r\n #container\r\n [ngClass]=\"{\r\n 'cax-calendar': true,\r\n 'cax-input-icon-left': showIcon && iconDisplay === 'input' && leftIcon,\r\n 'cax-input-icon-right': showIcon && iconDisplay === 'input',\r\n 'cax-calendar-w-btn': showIcon && iconDisplay === 'button',\r\n 'cax-calendar-timeonly': timeOnly,\r\n 'cax-calendar-disabled': disabled,\r\n 'cax-focus': focus || overlayVisible\r\n }\"\r\n [ngStyle]=\"style\"\r\n [class]=\"styleClass\"\r\n>\r\n <ng-template [ngIf]=\"!inline\">\r\n <input\r\n #inputfield\r\n type=\"text\"\r\n role=\"combobox\"\r\n [attr.id]=\"inputId\"\r\n [attr.name]=\"name\"\r\n [attr.required]=\"required\"\r\n [attr.aria-required]=\"required\"\r\n aria-autocomplete=\"none\"\r\n aria-haspopup=\"dialog\"\r\n [attr.aria-expanded]=\"overlayVisible ?? false\"\r\n [attr.aria-controls]=\"overlayVisible ? panelId : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [value]=\"inputFieldValue\"\r\n (focus)=\"onInputFocus($event)\"\r\n (keydown)=\"onInputKeydown($event)\"\r\n (click)=\"onInputClick()\"\r\n (blur)=\"onInputBlur($event)\"\r\n [readonly]=\"readonlyInput\"\r\n (input)=\"onUserInput($event)\"\r\n [ngStyle]=\"inputStyle\"\r\n [class]=\"inputStyleClass\"\r\n [placeholder]=\"placeholder || ''\"\r\n [disabled]=\"disabled\"\r\n [attr.tabindex]=\"tabindex\"\r\n [attr.inputmode]=\"touchUI ? 'off' : null\"\r\n [ngClass]=\"inputClass\"\r\n autocomplete=\"off\"\r\n caxAutoFocus\r\n [autofocus]=\"autofocus\"\r\n />\r\n <ng-container *ngIf=\"showClear && !disabled && value != null\">\r\n <TimesIcon *ngIf=\"!clearIconTemplate\" [styleClass]=\"'cax-calendar-clear-icon'\" (click)=\"clear()\" />\r\n <span *ngIf=\"clearIconTemplate\" class=\"cax-calendar-clear-icon\" (click)=\"clear()\">\r\n <ng-template *ngTemplateOutlet=\"clearIconTemplate\"></ng-template>\r\n </span>\r\n </ng-container>\r\n <button\r\n type=\"button\"\r\n [attr.aria-label]=\"iconButtonAriaLabel\"\r\n aria-haspopup=\"dialog\"\r\n [attr.aria-expanded]=\"overlayVisible ?? false\"\r\n [attr.aria-controls]=\"overlayVisible ? panelId : null\"\r\n caxButton\r\n caxRipple\r\n *ngIf=\"showIcon && iconDisplay === 'button'\"\r\n (click)=\"onButtonClick($event, inputfield)\"\r\n class=\"cax-datepicker-trigger cax-button-icon-only\"\r\n [disabled]=\"disabled\"\r\n tabindex=\"0\"\r\n >\r\n <span *ngIf=\"icon\" [ngClass]=\"icon\"></span>\r\n <ng-container *ngIf=\"!icon\">\r\n <i class=\"cax cax-calendar-icon\" *ngIf=\"!triggerIconTemplate\" ></i>\r\n <ng-template *ngTemplateOutlet=\"triggerIconTemplate\"></ng-template>\r\n </ng-container>\r\n </button>\r\n <ng-container *ngIf=\"iconDisplay === 'input' && showIcon\">\r\n <i class=\"cax cax-calendar-icon\"\r\n (click)=\"onButtonClick($event)\"\r\n *ngIf=\"!inputIconTemplate\"\r\n [ngClass]=\"{\r\n 'cax-datepicker-icon': showOnFocus\r\n }\"\r\n ></i>\r\n <ng-container *ngTemplateOutlet=\"inputIconTemplate; context: { clickCallBack: onButtonClick.bind(this) }\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ng-container *ngIf=\"iconDisplay === 'input' && showIcon\">\r\n <i class=\"cax cax-alt-arrow-down cax-downarrow\"></i>\r\n </ng-container>\r\n \r\n <div\r\n #contentWrapper\r\n [attr.id]=\"panelId\"\r\n [class]=\"panelStyleClass\"\r\n [ngStyle]=\"panelStyle\"\r\n [ngClass]=\"{\r\n 'cax-datepicker cax-component': true,\r\n 'cax-datepicker-inline': inline,\r\n 'cax-disabled': disabled,\r\n 'cax-datepicker-timeonly': timeOnly,\r\n 'cax-datepicker-multiple-month': this.numberOfMonths > 1,\r\n 'cax-datepicker-monthpicker': view === 'month',\r\n 'cax-datepicker-touch-ui': touchUI\r\n }\"\r\n [@overlayAnimation]=\"\r\n touchUI\r\n ? { value: 'visibleTouchUI', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\r\n : { value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\r\n \"\r\n [attr.aria-label]=\"getTranslation('chooseDate')\"\r\n [attr.role]=\"inline ? null : 'dialog'\"\r\n [attr.aria-modal]=\"inline ? null : 'true'\"\r\n [@.disabled]=\"inline === true\"\r\n (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\"\r\n (@overlayAnimation.done)=\"onOverlayAnimationDone($event)\"\r\n (click)=\"onOverlayClick($event)\"\r\n *ngIf=\"inline || overlayVisible\"\r\n >\r\n <ng-content select=\"cax-header\"></ng-content>\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n <ng-container *ngIf=\"!timeOnly\">\r\n <div class=\"cax-datepicker-group-container\">\r\n <div class=\"cax-datepicker-group\" *ngFor=\"let month of months; let i = index\">\r\n <div class=\"cax-datepicker-header\">\r\n <button (keydown)=\"onContainerButtonKeydown($event)\" class=\"cax-datepicker-prev cax-link\" (click)=\"onPrevButtonClick($event)\" *ngIf=\"i === 0\" type=\"button\" [attr.aria-label]=\"prevIconAriaLabel\" caxRipple>\r\n <ChevronLeftIcon [styleClass]=\"'cax-datepicker-prev-icon'\" *ngIf=\"!previousIconTemplate\" />\r\n <span *ngIf=\"previousIconTemplate\" class=\"cax-datepicker-prev-icon\">\r\n <ng-template *ngTemplateOutlet=\"previousIconTemplate\"></ng-template>\r\n </span>\r\n </button>\r\n <div class=\"cax-datepicker-title\">\r\n <button\r\n type=\"button\"\r\n (click)=\"switchToMonthView($event)\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n *ngIf=\"currentView === 'date'\"\r\n class=\"cax-datepicker-month cax-link\"\r\n [disabled]=\"switchViewButtonDisabled()\"\r\n [attr.aria-label]=\"this.getTranslation('chooseMonth')\"\r\n >\r\n {{ getMonthName(month.month) }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n (click)=\"switchToYearView($event)\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n *ngIf=\"currentView !== 'year'\"\r\n class=\"cax-datepicker-year cax-link\"\r\n [disabled]=\"switchViewButtonDisabled()\"\r\n [attr.aria-label]=\"getTranslation('chooseYear')\"\r\n >\r\n {{ getYear(month) }}\r\n </button>\r\n <span class=\"cax-datepicker-decade\" *ngIf=\"currentView === 'year'\">\r\n Year\r\n <!-- <ng-container *ngIf=\"!decadeTemplate\">{{ yearPickerValues()[0] }} - {{ yearPickerValues()[yearPickerValues().length - 1] }}</ng-container>\r\n <ng-container *ngTemplateOutlet=\"decadeTemplate; context: { $implicit: yearPickerValues }\"></ng-container> -->\r\n </span>\r\n </div>\r\n <button\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n class=\"cax-datepicker-next cax-link\"\r\n (click)=\"onNextButtonClick($event)\"\r\n [style.display]=\"numberOfMonths === 1 ? 'inline-flex' : i === numberOfMonths - 1 ? 'inline-flex' : 'none'\"\r\n type=\"button\"\r\n [attr.aria-label]=\"nextIconAriaLabel\"\r\n caxRipple\r\n >\r\n <ChevronRightIcon [styleClass]=\"'cax-datepicker-next-icon'\" *ngIf=\"!nextIconTemplate\" />\r\n <span *ngIf=\"nextIconTemplate\" class=\"cax-datepicker-next-icon\">\r\n <ng-template *ngTemplateOutlet=\"nextIconTemplate\"></ng-template>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"cax-datepicker-calendar-container\" *ngIf=\"currentView === 'date'\">\r\n <table class=\"cax-datepicker-calendar\" role=\"grid\">\r\n <thead>\r\n <tr>\r\n <th *ngIf=\"showWeek\" class=\"cax-datepicker-weekheader cax-disabled\">\r\n <span>{{ getTranslation('weekHeader') }}</span>\r\n </th>\r\n <th scope=\"col\" *ngFor=\"let weekDay of weekDays; let begin = first; let end = last\">\r\n <span>{{ weekDay }}</span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let week of month.dates; let j = index\">\r\n <td *ngIf=\"showWeek\" class=\"cax-datepicker-weeknumber\">\r\n <span class=\"cax-disabled\"> {{ month.weekNumbers[j] }} </span>\r\n </td>\r\n <td *ngFor=\"let date of week\" [attr.aria-label]=\"date.day\" [ngClass]=\"{ 'cax-datepicker-other-month': date.otherMonth, 'cax-datepicker-today': date.today }\">\r\n <ng-container *ngIf=\"date.otherMonth ? showOtherMonths : true\">\r\n <span\r\n [ngClass]=\"{ 'cax-highlight cax-datepicker-current-day': isSelected(date) && date.selectable, 'cax-disabled': !date.selectable }\"\r\n (click)=\"onDateSelect($event, date)\"\r\n draggable=\"false\"\r\n [attr.data-date]=\"formatDateKey(formatDateMetaToDate(date))\"\r\n (keydown)=\"onDateCellKeydown($event, date, i)\"\r\n caxRipple\r\n >\r\n <ng-container *ngIf=\"!dateTemplate && (date.selectable || !disabledDateTemplate)\">{{ date.day }}</ng-container>\r\n <ng-container *ngIf=\"date.selectable || !disabledDateTemplate\">\r\n <ng-container *ngTemplateOutlet=\"dateTemplate; context: { $implicit: date }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!date.selectable\">\r\n <ng-container *ngTemplateOutlet=\"disabledDateTemplate; context: { $implicit: date }\"></ng-container>\r\n </ng-container>\r\n </span>\r\n <div *ngIf=\"isSelected(date)\" class=\"cax-hidden-accessible\" aria-live=\"polite\">{{ date.day }}</div>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"cax-monthpicker\" *ngIf=\"currentView === 'month'\">\r\n <span\r\n *ngFor=\"let m of monthPickerValues(); let i = index\"\r\n (click)=\"onMonthSelect($event, i)\"\r\n (keydown)=\"onMonthCellKeydown($event, i)\"\r\n class=\"cax-monthpicker-month\"\r\n [ngClass]=\"{ 'cax-highlight': isMonthSelected(i), 'cax-disabled': isMonthDisabled(i) }\"\r\n caxRipple\r\n >\r\n {{ m }}\r\n <div *ngIf=\"isMonthSelected(i)\" class=\"cax-hidden-accessible\" aria-live=\"polite\">{{ m }}</div>\r\n </span>\r\n </div>\r\n <div class=\"cax-yearpicker\" *ngIf=\"currentView === 'year'\">\r\n <span\r\n *ngFor=\"let y of yearPickerValues()\"\r\n (click)=\"onYearSelect($event, y)\"\r\n (keydown)=\"onYearCellKeydown($event, y)\"\r\n class=\"cax-yearpicker-year\"\r\n [ngClass]=\"{ 'cax-highlight': isYearSelected(y), 'cax-disabled': isYearDisabled(y) }\"\r\n caxRipple\r\n >\r\n {{ y }}\r\n <div *ngIf=\"isYearSelected(y)\" class=\"cax-hidden-accessible\" aria-live=\"polite\">{{ y }}</div>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <div class=\"cax-timepicker\" *ngIf=\"(showTime || timeOnly) && currentView === 'date'\">\r\n <div class=\"cax-hour-picker\">\r\n <button\r\n class=\"cax-link\"\r\n type=\"button\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (keydown.enter)=\"incrementHour($event)\"\r\n (keydown.space)=\"incrementHour($event)\"\r\n (mousedown)=\"onTimePickerElementMouseDown($event, 0, 1)\"\r\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\r\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\r\n [attr.aria-label]=\"getTranslation('nextHour')\"\r\n caxRipple\r\n >\r\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\r\n </button>\r\n <span><ng-container *ngIf=\"currentHour < 10\">0</ng-container>{{ currentHour }}</span>\r\n <button\r\n class=\"cax-link\"\r\n type=\"button\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (keydown.enter)=\"decrementHour($event)\"\r\n (keydown.space)=\"decrementHour($event)\"\r\n (mousedown)=\"onTimePickerElementMouseDown($event, 0, -1)\"\r\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\r\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\r\n [attr.aria-label]=\"getTranslation('prevHour')\"\r\n caxRipple\r\n >\r\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div class=\"cax-separator\">\r\n <span>{{ timeSeparator }}</span>\r\n </div>\r\n <div class=\"cax-minute-picker\">\r\n <button\r\n class=\"cax-link\"\r\n type=\"button\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (keydown.enter)=\"incrementMinute($event)\"\r\n (keydown.space)=\"incrementMinute($event)\"\r\n (mousedown)=\"onTimePickerElementMouseDown($event, 1, 1)\"\r\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\r\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\r\n [attr.aria-label]=\"getTranslation('nextMinute')\"\r\n caxRipple\r\n >\r\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\r\n </button>\r\n <span><ng-container *ngIf=\"currentMinute < 10\">0</ng-container>{{ currentMinute }}</span>\r\n <button\r\n class=\"cax-link\"\r\n type=\"button\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (keydown.enter)=\"decrementMinute($event)\"\r\n (keydown.space)=\"decrementMinute($event)\"\r\n (mousedown)=\"onTimePickerElementMouseDown($event, 1, -1)\"\r\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\r\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\r\n [attr.aria-label]=\"getTranslation('prevMinute')\"\r\n caxRipple\r\n >\r\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div class=\"cax-separator\" *ngIf=\"showSeconds\">\r\n <span>{{ timeSeparator }}</span>\r\n </div>\r\n <div class=\"cax-second-picker\" *ngIf=\"showSeconds\">\r\n <button\r\n class=\"cax-link\"\r\n type=\"button\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (keydown.enter)=\"incrementSecond($event)\"\r\n (keydown.space)=\"incrementSecond($event)\"\r\n (mousedown)=\"onTimePickerElementMouseDown($event, 2, 1)\"\r\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\r\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\r\n [attr.aria-label]=\"getTranslation('nextSecond')\"\r\n caxRipple\r\n >\r\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\r\n </button>\r\n <span><ng-container *ngIf=\"currentSecond < 10\">0</ng-container>{{ currentSecond }}</span>\r\n <button\r\n class=\"cax-link\"\r\n type=\"button\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (keydown.enter)=\"decrementSecond($event)\"\r\n (keydown.space)=\"decrementSecond($event)\"\r\n (mousedown)=\"onTimePickerElementMouseDown($event, 2, -1)\"\r\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\r\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\r\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\r\n [attr.aria-label]=\"getTranslation('prevSecond')\"\r\n caxRipple\r\n >\r\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div class=\"cax-ampm-picker\" *ngIf=\"hourFormat == '12'\">\r\n <button class=\"cax-link\" type=\"button\" (keydown)=\"onContainerButtonKeydown($event)\" (click)=\"toggleAMPM($event)\" (keydown.enter)=\"toggleAMPM($event)\" [attr.aria-label]=\"getTranslation('am')\" caxRipple>\r\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\r\n </button>\r\n <span>{{ pm ? 'PM' : 'AM' }}</span>\r\n <button class=\"cax-link\" type=\"button\" (keydown)=\"onContainerButtonKeydown($event)\" (click)=\"toggleAMPM($event)\" (keydown.enter)=\"toggleAMPM($event)\" [attr.aria-label]=\"getTranslation('pm')\" caxRipple>\r\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"cax-datepicker-buttonbar\" *ngIf=\"showButtonBar\">\r\n <cax-button\r\n *ngIf=\"currentView !== 'year' && currentView !== 'month'\"\r\n type=\"button\"\r\n [link]=\"true\"\r\n [label]=\"getTranslation('clear')\"\r\n (keydown)=\"onContainerButtonKeydown($event)\"\r\n (onClick)=\"onClearButtonClick($event)\"\r\n caxRipple\r\n ></cax-button>\r\n <cax-button *ngIf=\"currentView === 'year' || currentView === 'month'\" type=\"button\" [link]=\"true\" [label]=\"'Back'\" (keydown)=\"onContainerButtonKeydown($event)\" (onClick)=\"onBackButtonClick($event)\" caxRipple></cax-button>\r\n </div>\r\n <!-- For the inline -->\r\n <div class=\"cax-datepicker-inline-actions\" *ngIf=\"inline\">\r\n <cax-button\r\n [label]=\"'Cancel'\"\r\n [severity]=\"'secondary'\"\r\n [size]=\"'small'\"\r\n (click)=\"onInlineCancel()\">\r\n </cax-button>\r\n <div class=\"left-side\">\r\n <div class=\"cax-datepicker-inline-input\">\r\n <i class=\"cax cax-calendar-minimalistic\"></i>\r\n <input\r\n type=\"text\"\r\n [attr.id]=\"inputId\"\r\n [value]=\"formattedInlineDate\"\r\n readonly\r\n class=\"cax-datepicker-inline-display\"\r\n />\r\n </div>\r\n <div class=\"cax-datepicker-inline-buttons\">\r\n <cax-button\r\n [label]=\"'Save'\"\r\n [severity]=\"'Primary'\"\r\n [size]=\"'small'\"\r\n (click)=\"onInlineSave()\">\r\n </cax-button>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-content select=\"cax-footer\"></ng-content>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n</span>\r\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'cax-design-system/api';\nimport { ButtonModule } from 'cax-design-system/button';\nimport { Calendar } from './calendar';\n\n@NgModule({\n imports: [Calendar, ButtonModule, SharedModule],\n exports: [Calendar, ButtonModule, SharedModule]\n})\nexport class CalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}