cax-design-system 2.8.4 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (681) hide show
  1. package/README.md +46 -46
  2. package/api/confirmation.d.ts +4 -10
  3. package/api/message.d.ts +0 -1
  4. package/autocomplete/autocomplete.d.ts +23 -6
  5. package/autocomplete/autocomplete.module.d.ts +8 -7
  6. package/avatar/avatar.d.ts +23 -1
  7. package/badge/badge.d.ts +4 -0
  8. package/button/button.d.ts +8 -1
  9. package/button/button.directive.d.ts +3 -1
  10. package/calendar/calendar.d.ts +33 -11
  11. package/card/card.d.ts +2 -6
  12. package/cascadeselect/cascadeselect.d.ts +32 -2
  13. package/categorycard/categorycard.d.ts +11 -0
  14. package/categorycard/categorycard.module.d.ts +7 -0
  15. package/categorycard/index.d.ts +5 -0
  16. package/categorycard/public_api.d.ts +2 -0
  17. package/checkbox/checkbox.d.ts +2 -2
  18. package/chip/chip.d.ts +3 -4
  19. package/commentbox/commentbox.d.ts +1 -1
  20. package/comments/comments.d.ts +83 -0
  21. package/comments/comments.module.d.ts +7 -0
  22. package/{chips → comments}/index.d.ts +1 -1
  23. package/comments/public_api.d.ts +2 -0
  24. package/comparecard/comaparecard.module.d.ts +11 -0
  25. package/comparecard/comparecard.component.d.ts +44 -0
  26. package/comparecard/index.d.ts +5 -0
  27. package/comparecard/public_api.d.ts +2 -0
  28. package/confirmdialog/confirmdialog.d.ts +13 -22
  29. package/divider/divider.d.ts +9 -1
  30. package/dom/domhandler.d.ts +2 -2
  31. package/dropdown/dropdown-item.d.ts +2 -1
  32. package/dropdown/dropdown.d.ts +24 -2
  33. package/editor/editor.d.ts +6 -1
  34. package/fesm2022/cax-design-system-accordion.mjs +22 -17
  35. package/fesm2022/cax-design-system-accordion.mjs.map +1 -1
  36. package/fesm2022/cax-design-system-animate.mjs +7 -7
  37. package/fesm2022/cax-design-system-animate.mjs.map +1 -1
  38. package/fesm2022/cax-design-system-animateonscroll.mjs +7 -7
  39. package/fesm2022/cax-design-system-animateonscroll.mjs.map +1 -1
  40. package/fesm2022/cax-design-system-api.mjs +37 -37
  41. package/fesm2022/cax-design-system-api.mjs.map +1 -1
  42. package/fesm2022/cax-design-system-autocomplete.mjs +101 -47
  43. package/fesm2022/cax-design-system-autocomplete.mjs.map +1 -1
  44. package/fesm2022/cax-design-system-autofocus.mjs +7 -7
  45. package/fesm2022/cax-design-system-autofocus.mjs.map +1 -1
  46. package/fesm2022/cax-design-system-avatar.mjs +39 -8
  47. package/fesm2022/cax-design-system-avatar.mjs.map +1 -1
  48. package/fesm2022/cax-design-system-avatargroup.mjs +8 -8
  49. package/fesm2022/cax-design-system-avatargroup.mjs.map +1 -1
  50. package/fesm2022/cax-design-system-badge.mjs +16 -12
  51. package/fesm2022/cax-design-system-badge.mjs.map +1 -1
  52. package/fesm2022/cax-design-system-baseicon.mjs +3 -3
  53. package/fesm2022/cax-design-system-baseicon.mjs.map +1 -1
  54. package/fesm2022/cax-design-system-blockui.mjs +7 -7
  55. package/fesm2022/cax-design-system-blockui.mjs.map +1 -1
  56. package/fesm2022/cax-design-system-breadcrumb.mjs +10 -11
  57. package/fesm2022/cax-design-system-breadcrumb.mjs.map +1 -1
  58. package/fesm2022/cax-design-system-button.mjs +93 -39
  59. package/fesm2022/cax-design-system-button.mjs.map +1 -1
  60. package/fesm2022/cax-design-system-buttongroup.mjs +7 -7
  61. package/fesm2022/cax-design-system-buttongroup.mjs.map +1 -1
  62. package/fesm2022/cax-design-system-calendar.mjs +388 -100
  63. package/fesm2022/cax-design-system-calendar.mjs.map +1 -1
  64. package/fesm2022/cax-design-system-card.mjs +12 -25
  65. package/fesm2022/cax-design-system-card.mjs.map +1 -1
  66. package/fesm2022/cax-design-system-carousel.mjs +7 -7
  67. package/fesm2022/cax-design-system-carousel.mjs.map +1 -1
  68. package/fesm2022/cax-design-system-cascadeselect.mjs +90 -30
  69. package/fesm2022/cax-design-system-cascadeselect.mjs.map +1 -1
  70. package/fesm2022/cax-design-system-categorycard.mjs +57 -0
  71. package/fesm2022/cax-design-system-categorycard.mjs.map +1 -0
  72. package/fesm2022/cax-design-system-chart.mjs +7 -7
  73. package/fesm2022/cax-design-system-chart.mjs.map +1 -1
  74. package/fesm2022/cax-design-system-checkbox.mjs +15 -14
  75. package/fesm2022/cax-design-system-checkbox.mjs.map +1 -1
  76. package/fesm2022/cax-design-system-chip.mjs +14 -12
  77. package/fesm2022/cax-design-system-chip.mjs.map +1 -1
  78. package/fesm2022/cax-design-system-colorpicker.mjs +8 -8
  79. package/fesm2022/cax-design-system-colorpicker.mjs.map +1 -1
  80. package/fesm2022/cax-design-system-commentbox.mjs +8 -8
  81. package/fesm2022/cax-design-system-commentbox.mjs.map +1 -1
  82. package/fesm2022/cax-design-system-comments.mjs +385 -0
  83. package/fesm2022/cax-design-system-comments.mjs.map +1 -0
  84. package/fesm2022/cax-design-system-comparecard.mjs +143 -0
  85. package/fesm2022/cax-design-system-comparecard.mjs.map +1 -0
  86. package/fesm2022/cax-design-system-confirmdialog.mjs +54 -50
  87. package/fesm2022/cax-design-system-confirmdialog.mjs.map +1 -1
  88. package/fesm2022/cax-design-system-confirmpopup.mjs +8 -8
  89. package/fesm2022/cax-design-system-confirmpopup.mjs.map +1 -1
  90. package/fesm2022/cax-design-system-contextmenu.mjs +10 -10
  91. package/fesm2022/cax-design-system-contextmenu.mjs.map +1 -1
  92. package/fesm2022/cax-design-system-dataview.mjs +10 -10
  93. package/fesm2022/cax-design-system-dataview.mjs.map +1 -1
  94. package/fesm2022/cax-design-system-defer.mjs +7 -7
  95. package/fesm2022/cax-design-system-defer.mjs.map +1 -1
  96. package/fesm2022/cax-design-system-dialog.mjs +12 -13
  97. package/fesm2022/cax-design-system-dialog.mjs.map +1 -1
  98. package/fesm2022/cax-design-system-divider.mjs +21 -11
  99. package/fesm2022/cax-design-system-divider.mjs.map +1 -1
  100. package/fesm2022/cax-design-system-dock.mjs +7 -7
  101. package/fesm2022/cax-design-system-dock.mjs.map +1 -1
  102. package/fesm2022/cax-design-system-dom.mjs +16 -6
  103. package/fesm2022/cax-design-system-dom.mjs.map +1 -1
  104. package/fesm2022/cax-design-system-dragdrop.mjs +10 -10
  105. package/fesm2022/cax-design-system-dragdrop.mjs.map +1 -1
  106. package/fesm2022/cax-design-system-dropdown.mjs +57 -22
  107. package/fesm2022/cax-design-system-dropdown.mjs.map +1 -1
  108. package/fesm2022/cax-design-system-dynamicdialog.mjs +15 -15
  109. package/fesm2022/cax-design-system-dynamicdialog.mjs.map +1 -1
  110. package/fesm2022/cax-design-system-editor.mjs +55 -15
  111. package/fesm2022/cax-design-system-editor.mjs.map +1 -1
  112. package/fesm2022/cax-design-system-fieldset.mjs +8 -8
  113. package/fesm2022/cax-design-system-fieldset.mjs.map +1 -1
  114. package/fesm2022/cax-design-system-fileupload.mjs +7 -7
  115. package/fesm2022/cax-design-system-fileupload.mjs.map +1 -1
  116. package/fesm2022/cax-design-system-floatlabel.mjs +7 -7
  117. package/fesm2022/cax-design-system-floatlabel.mjs.map +1 -1
  118. package/fesm2022/cax-design-system-focustrap.mjs +7 -7
  119. package/fesm2022/cax-design-system-focustrap.mjs.map +1 -1
  120. package/fesm2022/cax-design-system-galleria.mjs +19 -19
  121. package/fesm2022/cax-design-system-galleria.mjs.map +1 -1
  122. package/fesm2022/cax-design-system-iconfield.mjs +7 -7
  123. package/fesm2022/cax-design-system-iconfield.mjs.map +1 -1
  124. package/fesm2022/cax-design-system-icons-angledoubledown.mjs +3 -3
  125. package/fesm2022/cax-design-system-icons-angledoubledown.mjs.map +1 -1
  126. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs +3 -3
  127. package/fesm2022/cax-design-system-icons-angledoubleleft.mjs.map +1 -1
  128. package/fesm2022/cax-design-system-icons-angledoubleright.mjs +3 -3
  129. package/fesm2022/cax-design-system-icons-angledoubleright.mjs.map +1 -1
  130. package/fesm2022/cax-design-system-icons-angledoubleup.mjs +3 -3
  131. package/fesm2022/cax-design-system-icons-angledoubleup.mjs.map +1 -1
  132. package/fesm2022/cax-design-system-icons-angledown.mjs +4 -4
  133. package/fesm2022/cax-design-system-icons-angledown.mjs.map +1 -1
  134. package/fesm2022/cax-design-system-icons-angleleft.mjs +3 -3
  135. package/fesm2022/cax-design-system-icons-angleleft.mjs.map +1 -1
  136. package/fesm2022/cax-design-system-icons-angleright.mjs +3 -3
  137. package/fesm2022/cax-design-system-icons-angleright.mjs.map +1 -1
  138. package/fesm2022/cax-design-system-icons-angleup.mjs +4 -4
  139. package/fesm2022/cax-design-system-icons-angleup.mjs.map +1 -1
  140. package/fesm2022/cax-design-system-icons-arrowdown.mjs +4 -4
  141. package/fesm2022/cax-design-system-icons-arrowdown.mjs.map +1 -1
  142. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs +3 -3
  143. package/fesm2022/cax-design-system-icons-arrowdownleft.mjs.map +1 -1
  144. package/fesm2022/cax-design-system-icons-arrowdownright.mjs +3 -3
  145. package/fesm2022/cax-design-system-icons-arrowdownright.mjs.map +1 -1
  146. package/fesm2022/cax-design-system-icons-arrowleft.mjs +3 -3
  147. package/fesm2022/cax-design-system-icons-arrowleft.mjs.map +1 -1
  148. package/fesm2022/cax-design-system-icons-arrowright.mjs +3 -3
  149. package/fesm2022/cax-design-system-icons-arrowright.mjs.map +1 -1
  150. package/fesm2022/cax-design-system-icons-arrowup.mjs +4 -4
  151. package/fesm2022/cax-design-system-icons-arrowup.mjs.map +1 -1
  152. package/fesm2022/cax-design-system-icons-ban.mjs +3 -3
  153. package/fesm2022/cax-design-system-icons-ban.mjs.map +1 -1
  154. package/fesm2022/cax-design-system-icons-bars.mjs +3 -3
  155. package/fesm2022/cax-design-system-icons-bars.mjs.map +1 -1
  156. package/fesm2022/cax-design-system-icons-blank.mjs +4 -4
  157. package/fesm2022/cax-design-system-icons-blank.mjs.map +1 -1
  158. package/fesm2022/cax-design-system-icons-calendar.mjs +4 -4
  159. package/fesm2022/cax-design-system-icons-calendar.mjs.map +1 -1
  160. package/fesm2022/cax-design-system-icons-caretleft.mjs +3 -3
  161. package/fesm2022/cax-design-system-icons-caretleft.mjs.map +1 -1
  162. package/fesm2022/cax-design-system-icons-caretright.mjs +3 -3
  163. package/fesm2022/cax-design-system-icons-caretright.mjs.map +1 -1
  164. package/fesm2022/cax-design-system-icons-check.mjs +4 -4
  165. package/fesm2022/cax-design-system-icons-check.mjs.map +1 -1
  166. package/fesm2022/cax-design-system-icons-chevrondown.mjs +4 -4
  167. package/fesm2022/cax-design-system-icons-chevrondown.mjs.map +1 -1
  168. package/fesm2022/cax-design-system-icons-chevronleft.mjs +3 -3
  169. package/fesm2022/cax-design-system-icons-chevronleft.mjs.map +1 -1
  170. package/fesm2022/cax-design-system-icons-chevronright.mjs +4 -4
  171. package/fesm2022/cax-design-system-icons-chevronright.mjs.map +1 -1
  172. package/fesm2022/cax-design-system-icons-chevronup.mjs +4 -4
  173. package/fesm2022/cax-design-system-icons-chevronup.mjs.map +1 -1
  174. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs +3 -3
  175. package/fesm2022/cax-design-system-icons-exclamationtriangle.mjs.map +1 -1
  176. package/fesm2022/cax-design-system-icons-eye.mjs +4 -4
  177. package/fesm2022/cax-design-system-icons-eye.mjs.map +1 -1
  178. package/fesm2022/cax-design-system-icons-eyeslash.mjs +3 -3
  179. package/fesm2022/cax-design-system-icons-eyeslash.mjs.map +1 -1
  180. package/fesm2022/cax-design-system-icons-filter.mjs +3 -3
  181. package/fesm2022/cax-design-system-icons-filter.mjs.map +1 -1
  182. package/fesm2022/cax-design-system-icons-filterslash.mjs +4 -4
  183. package/fesm2022/cax-design-system-icons-filterslash.mjs.map +1 -1
  184. package/fesm2022/cax-design-system-icons-home.mjs +3 -3
  185. package/fesm2022/cax-design-system-icons-home.mjs.map +1 -1
  186. package/fesm2022/cax-design-system-icons-infocircle.mjs +3 -3
  187. package/fesm2022/cax-design-system-icons-infocircle.mjs.map +1 -1
  188. package/fesm2022/cax-design-system-icons-minus.mjs +3 -3
  189. package/fesm2022/cax-design-system-icons-minus.mjs.map +1 -1
  190. package/fesm2022/cax-design-system-icons-pencil.mjs +3 -3
  191. package/fesm2022/cax-design-system-icons-pencil.mjs.map +1 -1
  192. package/fesm2022/cax-design-system-icons-plus.mjs +4 -4
  193. package/fesm2022/cax-design-system-icons-plus.mjs.map +1 -1
  194. package/fesm2022/cax-design-system-icons-refresh.mjs +4 -4
  195. package/fesm2022/cax-design-system-icons-refresh.mjs.map +1 -1
  196. package/fesm2022/cax-design-system-icons-search.mjs +4 -4
  197. package/fesm2022/cax-design-system-icons-search.mjs.map +1 -1
  198. package/fesm2022/cax-design-system-icons-searchminus.mjs +4 -4
  199. package/fesm2022/cax-design-system-icons-searchminus.mjs.map +1 -1
  200. package/fesm2022/cax-design-system-icons-searchplus.mjs +4 -4
  201. package/fesm2022/cax-design-system-icons-searchplus.mjs.map +1 -1
  202. package/fesm2022/cax-design-system-icons-sortalt.mjs +3 -3
  203. package/fesm2022/cax-design-system-icons-sortalt.mjs.map +1 -1
  204. package/fesm2022/cax-design-system-icons-sortamountdown.mjs +3 -3
  205. package/fesm2022/cax-design-system-icons-sortamountdown.mjs.map +1 -1
  206. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs +3 -3
  207. package/fesm2022/cax-design-system-icons-sortamountupalt.mjs.map +1 -1
  208. package/fesm2022/cax-design-system-icons-spinner.mjs +4 -4
  209. package/fesm2022/cax-design-system-icons-spinner.mjs.map +1 -1
  210. package/fesm2022/cax-design-system-icons-star.mjs +3 -3
  211. package/fesm2022/cax-design-system-icons-star.mjs.map +1 -1
  212. package/fesm2022/cax-design-system-icons-starfill.mjs +3 -3
  213. package/fesm2022/cax-design-system-icons-starfill.mjs.map +1 -1
  214. package/fesm2022/cax-design-system-icons-thlarge.mjs +3 -3
  215. package/fesm2022/cax-design-system-icons-thlarge.mjs.map +1 -1
  216. package/fesm2022/cax-design-system-icons-times.mjs +4 -4
  217. package/fesm2022/cax-design-system-icons-times.mjs.map +1 -1
  218. package/fesm2022/cax-design-system-icons-timescircle.mjs +4 -4
  219. package/fesm2022/cax-design-system-icons-timescircle.mjs.map +1 -1
  220. package/fesm2022/cax-design-system-icons-trash.mjs +4 -4
  221. package/fesm2022/cax-design-system-icons-trash.mjs.map +1 -1
  222. package/fesm2022/cax-design-system-icons-undo.mjs +4 -4
  223. package/fesm2022/cax-design-system-icons-undo.mjs.map +1 -1
  224. package/fesm2022/cax-design-system-icons-upload.mjs +3 -3
  225. package/fesm2022/cax-design-system-icons-upload.mjs.map +1 -1
  226. package/fesm2022/cax-design-system-icons-windowmaximize.mjs +3 -3
  227. package/fesm2022/cax-design-system-icons-windowmaximize.mjs.map +1 -1
  228. package/fesm2022/cax-design-system-icons-windowminimize.mjs +3 -3
  229. package/fesm2022/cax-design-system-icons-windowminimize.mjs.map +1 -1
  230. package/fesm2022/cax-design-system-image.mjs +8 -8
  231. package/fesm2022/cax-design-system-image.mjs.map +1 -1
  232. package/fesm2022/cax-design-system-inplace.mjs +13 -13
  233. package/fesm2022/cax-design-system-inplace.mjs.map +1 -1
  234. package/fesm2022/{cax-design-system-chips.mjs → cax-design-system-inputchips.mjs} +66 -27
  235. package/fesm2022/cax-design-system-inputchips.mjs.map +1 -0
  236. package/fesm2022/cax-design-system-inputgroup.mjs +54 -10
  237. package/fesm2022/cax-design-system-inputgroup.mjs.map +1 -1
  238. package/fesm2022/cax-design-system-inputgroupaddon.mjs +8 -8
  239. package/fesm2022/cax-design-system-inputgroupaddon.mjs.map +1 -1
  240. package/fesm2022/cax-design-system-inputicon.mjs +7 -7
  241. package/fesm2022/cax-design-system-inputicon.mjs.map +1 -1
  242. package/fesm2022/cax-design-system-inputmask.mjs +33 -20
  243. package/fesm2022/cax-design-system-inputmask.mjs.map +1 -1
  244. package/fesm2022/cax-design-system-inputnumber.mjs +64 -30
  245. package/fesm2022/cax-design-system-inputnumber.mjs.map +1 -1
  246. package/fesm2022/cax-design-system-inputotp.mjs +7 -7
  247. package/fesm2022/cax-design-system-inputotp.mjs.map +1 -1
  248. package/fesm2022/cax-design-system-inputswitch.mjs +7 -7
  249. package/fesm2022/cax-design-system-inputswitch.mjs.map +1 -1
  250. package/fesm2022/cax-design-system-inputtext.mjs +30 -14
  251. package/fesm2022/cax-design-system-inputtext.mjs.map +1 -1
  252. package/fesm2022/cax-design-system-inputtextarea.mjs +49 -18
  253. package/fesm2022/cax-design-system-inputtextarea.mjs.map +1 -1
  254. package/fesm2022/cax-design-system-keyfilter.mjs +7 -7
  255. package/fesm2022/cax-design-system-keyfilter.mjs.map +1 -1
  256. package/fesm2022/cax-design-system-knob.mjs +7 -7
  257. package/fesm2022/cax-design-system-knob.mjs.map +1 -1
  258. package/fesm2022/cax-design-system-listbox.mjs +39 -369
  259. package/fesm2022/cax-design-system-listbox.mjs.map +1 -1
  260. package/fesm2022/cax-design-system-logo.mjs +8 -8
  261. package/fesm2022/cax-design-system-logo.mjs.map +1 -1
  262. package/fesm2022/cax-design-system-logocard.mjs +37 -0
  263. package/fesm2022/cax-design-system-logocard.mjs.map +1 -0
  264. package/fesm2022/cax-design-system-megamenu.mjs +10 -10
  265. package/fesm2022/cax-design-system-megamenu.mjs.map +1 -1
  266. package/fesm2022/cax-design-system-menu.mjs +15 -15
  267. package/fesm2022/cax-design-system-menu.mjs.map +1 -1
  268. package/fesm2022/cax-design-system-menubar.mjs +13 -13
  269. package/fesm2022/cax-design-system-menubar.mjs.map +1 -1
  270. package/fesm2022/cax-design-system-message.mjs +7 -7
  271. package/fesm2022/cax-design-system-message.mjs.map +1 -1
  272. package/fesm2022/cax-design-system-messages.mjs +17 -44
  273. package/fesm2022/cax-design-system-messages.mjs.map +1 -1
  274. package/fesm2022/cax-design-system-metergroup.mjs +10 -10
  275. package/fesm2022/cax-design-system-metergroup.mjs.map +1 -1
  276. package/fesm2022/cax-design-system-multiselect.mjs +58 -24
  277. package/fesm2022/cax-design-system-multiselect.mjs.map +1 -1
  278. package/fesm2022/cax-design-system-navigation.mjs +193 -105
  279. package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
  280. package/fesm2022/cax-design-system-orderlist.mjs +7 -7
  281. package/fesm2022/cax-design-system-orderlist.mjs.map +1 -1
  282. package/fesm2022/cax-design-system-organizationchart.mjs +11 -11
  283. package/fesm2022/cax-design-system-organizationchart.mjs.map +1 -1
  284. package/fesm2022/cax-design-system-overlay.mjs +8 -8
  285. package/fesm2022/cax-design-system-overlay.mjs.map +1 -1
  286. package/fesm2022/cax-design-system-overlaypanel.mjs +17 -11
  287. package/fesm2022/cax-design-system-overlaypanel.mjs.map +1 -1
  288. package/fesm2022/cax-design-system-paginator.mjs +8 -8
  289. package/fesm2022/cax-design-system-paginator.mjs.map +1 -1
  290. package/fesm2022/cax-design-system-panel.mjs +8 -8
  291. package/fesm2022/cax-design-system-panel.mjs.map +1 -1
  292. package/fesm2022/cax-design-system-panelmenu.mjs +14 -14
  293. package/fesm2022/cax-design-system-panelmenu.mjs.map +1 -1
  294. package/fesm2022/cax-design-system-password.mjs +14 -14
  295. package/fesm2022/cax-design-system-password.mjs.map +1 -1
  296. package/fesm2022/cax-design-system-picklist.mjs +7 -7
  297. package/fesm2022/cax-design-system-picklist.mjs.map +1 -1
  298. package/fesm2022/cax-design-system-productcard.mjs +90 -0
  299. package/fesm2022/cax-design-system-productcard.mjs.map +1 -0
  300. package/fesm2022/cax-design-system-progressbar.mjs +31 -9
  301. package/fesm2022/cax-design-system-progressbar.mjs.map +1 -1
  302. package/fesm2022/cax-design-system-progressspinner.mjs +17 -15
  303. package/fesm2022/cax-design-system-progressspinner.mjs.map +1 -1
  304. package/fesm2022/cax-design-system-radiobutton.mjs +27 -15
  305. package/fesm2022/cax-design-system-radiobutton.mjs.map +1 -1
  306. package/fesm2022/cax-design-system-rating.mjs +7 -7
  307. package/fesm2022/cax-design-system-rating.mjs.map +1 -1
  308. package/fesm2022/cax-design-system-ripple.mjs +7 -7
  309. package/fesm2022/cax-design-system-ripple.mjs.map +1 -1
  310. package/fesm2022/cax-design-system-scroller.mjs +8 -8
  311. package/fesm2022/cax-design-system-scroller.mjs.map +1 -1
  312. package/fesm2022/cax-design-system-scrollpanel.mjs +7 -7
  313. package/fesm2022/cax-design-system-scrollpanel.mjs.map +1 -1
  314. package/fesm2022/cax-design-system-scrolltop.mjs +8 -8
  315. package/fesm2022/cax-design-system-scrolltop.mjs.map +1 -1
  316. package/fesm2022/cax-design-system-selectbutton.mjs +79 -9
  317. package/fesm2022/cax-design-system-selectbutton.mjs.map +1 -1
  318. package/fesm2022/cax-design-system-sidebar.mjs +10 -10
  319. package/fesm2022/cax-design-system-sidebar.mjs.map +1 -1
  320. package/fesm2022/cax-design-system-skeleton.mjs +11 -10
  321. package/fesm2022/cax-design-system-skeleton.mjs.map +1 -1
  322. package/fesm2022/cax-design-system-slidemenu.mjs +10 -10
  323. package/fesm2022/cax-design-system-slidemenu.mjs.map +1 -1
  324. package/fesm2022/cax-design-system-slider.mjs +14 -199
  325. package/fesm2022/cax-design-system-slider.mjs.map +1 -1
  326. package/fesm2022/cax-design-system-speeddial.mjs +16 -9
  327. package/fesm2022/cax-design-system-speeddial.mjs.map +1 -1
  328. package/fesm2022/cax-design-system-spinner.mjs +7 -7
  329. package/fesm2022/cax-design-system-spinner.mjs.map +1 -1
  330. package/fesm2022/cax-design-system-splitbutton.mjs +10 -13
  331. package/fesm2022/cax-design-system-splitbutton.mjs.map +1 -1
  332. package/fesm2022/cax-design-system-splitter.mjs +8 -8
  333. package/fesm2022/cax-design-system-splitter.mjs.map +1 -1
  334. package/fesm2022/cax-design-system-stepper.mjs +20 -20
  335. package/fesm2022/cax-design-system-stepper.mjs.map +1 -1
  336. package/fesm2022/cax-design-system-steps.mjs +30 -11
  337. package/fesm2022/cax-design-system-steps.mjs.map +1 -1
  338. package/fesm2022/cax-design-system-styleclass.mjs +7 -7
  339. package/fesm2022/cax-design-system-styleclass.mjs.map +1 -1
  340. package/fesm2022/cax-design-system-subscriptioncard.mjs +97 -0
  341. package/fesm2022/cax-design-system-subscriptioncard.mjs.map +1 -0
  342. package/fesm2022/cax-design-system-table-paginator.mjs +129 -0
  343. package/fesm2022/cax-design-system-table-paginator.mjs.map +1 -0
  344. package/fesm2022/cax-design-system-table.mjs +284 -400
  345. package/fesm2022/cax-design-system-table.mjs.map +1 -1
  346. package/fesm2022/cax-design-system-tableconfiguration.mjs +19 -10
  347. package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -1
  348. package/fesm2022/cax-design-system-tabmenu.mjs +7 -7
  349. package/fesm2022/cax-design-system-tabmenu.mjs.map +1 -1
  350. package/fesm2022/cax-design-system-tabview.mjs +168 -95
  351. package/fesm2022/cax-design-system-tabview.mjs.map +1 -1
  352. package/fesm2022/cax-design-system-tag.mjs +71 -15
  353. package/fesm2022/cax-design-system-tag.mjs.map +1 -1
  354. package/fesm2022/cax-design-system-terminal.mjs +14 -14
  355. package/fesm2022/cax-design-system-terminal.mjs.map +1 -1
  356. package/fesm2022/cax-design-system-tieredmenu.mjs +21 -14
  357. package/fesm2022/cax-design-system-tieredmenu.mjs.map +1 -1
  358. package/fesm2022/cax-design-system-timeline.mjs +8 -8
  359. package/fesm2022/cax-design-system-timeline.mjs.map +1 -1
  360. package/fesm2022/cax-design-system-toast.mjs +13 -25
  361. package/fesm2022/cax-design-system-toast.mjs.map +1 -1
  362. package/fesm2022/cax-design-system-togglebutton.mjs +9 -9
  363. package/fesm2022/cax-design-system-togglebutton.mjs.map +1 -1
  364. package/fesm2022/cax-design-system-toggleswitch.mjs +26 -8
  365. package/fesm2022/cax-design-system-toggleswitch.mjs.map +1 -1
  366. package/fesm2022/cax-design-system-toolbar.mjs +7 -7
  367. package/fesm2022/cax-design-system-toolbar.mjs.map +1 -1
  368. package/fesm2022/cax-design-system-tooltip.mjs +40 -20
  369. package/fesm2022/cax-design-system-tooltip.mjs.map +1 -1
  370. package/fesm2022/cax-design-system-tree.mjs +12 -12
  371. package/fesm2022/cax-design-system-tree.mjs.map +1 -1
  372. package/fesm2022/cax-design-system-treeselect.mjs +8 -8
  373. package/fesm2022/cax-design-system-treeselect.mjs.map +1 -1
  374. package/fesm2022/cax-design-system-treetable.mjs +55 -55
  375. package/fesm2022/cax-design-system-treetable.mjs.map +1 -1
  376. package/fesm2022/cax-design-system-tristatecheckbox.mjs +8 -8
  377. package/fesm2022/cax-design-system-tristatecheckbox.mjs.map +1 -1
  378. package/fesm2022/cax-design-system-upload.mjs +209 -96
  379. package/fesm2022/cax-design-system-upload.mjs.map +1 -1
  380. package/fesm2022/cax-design-system-utils.mjs.map +1 -1
  381. package/fesm2022/cax-design-system-virtualscroller.mjs +7 -7
  382. package/fesm2022/cax-design-system-virtualscroller.mjs.map +1 -1
  383. package/fonts/Inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
  384. package/fonts/Inter/Inter-VariableFont_opsz,wght.ttf +0 -0
  385. package/fonts/Inter/OFL.txt +93 -0
  386. package/fonts/Inter/README.txt +118 -0
  387. package/fonts/Inter/static/Inter_18pt-Black.ttf +0 -0
  388. package/fonts/Inter/static/Inter_18pt-BlackItalic.ttf +0 -0
  389. package/fonts/Inter/static/Inter_18pt-Bold.ttf +0 -0
  390. package/fonts/Inter/static/Inter_18pt-BoldItalic.ttf +0 -0
  391. package/fonts/Inter/static/Inter_18pt-ExtraBold.ttf +0 -0
  392. package/fonts/Inter/static/Inter_18pt-ExtraBoldItalic.ttf +0 -0
  393. package/fonts/Inter/static/Inter_18pt-ExtraLight.ttf +0 -0
  394. package/fonts/Inter/static/Inter_18pt-ExtraLightItalic.ttf +0 -0
  395. package/fonts/Inter/static/Inter_18pt-Italic.ttf +0 -0
  396. package/fonts/Inter/static/Inter_18pt-Light.ttf +0 -0
  397. package/fonts/Inter/static/Inter_18pt-LightItalic.ttf +0 -0
  398. package/fonts/Inter/static/Inter_18pt-Medium.ttf +0 -0
  399. package/fonts/Inter/static/Inter_18pt-MediumItalic.ttf +0 -0
  400. package/fonts/Inter/static/Inter_18pt-Regular.ttf +0 -0
  401. package/fonts/Inter/static/Inter_18pt-SemiBold.ttf +0 -0
  402. package/fonts/Inter/static/Inter_18pt-SemiBoldItalic.ttf +0 -0
  403. package/fonts/Inter/static/Inter_18pt-Thin.ttf +0 -0
  404. package/fonts/Inter/static/Inter_18pt-ThinItalic.ttf +0 -0
  405. package/fonts/Inter/static/Inter_24pt-Black.ttf +0 -0
  406. package/fonts/Inter/static/Inter_24pt-BlackItalic.ttf +0 -0
  407. package/fonts/Inter/static/Inter_24pt-Bold.ttf +0 -0
  408. package/fonts/Inter/static/Inter_24pt-BoldItalic.ttf +0 -0
  409. package/fonts/Inter/static/Inter_24pt-ExtraBold.ttf +0 -0
  410. package/fonts/Inter/static/Inter_24pt-ExtraBoldItalic.ttf +0 -0
  411. package/fonts/Inter/static/Inter_24pt-ExtraLight.ttf +0 -0
  412. package/fonts/Inter/static/Inter_24pt-ExtraLightItalic.ttf +0 -0
  413. package/fonts/Inter/static/Inter_24pt-Italic.ttf +0 -0
  414. package/fonts/Inter/static/Inter_24pt-Light.ttf +0 -0
  415. package/fonts/Inter/static/Inter_24pt-LightItalic.ttf +0 -0
  416. package/fonts/Inter/static/Inter_24pt-Medium.ttf +0 -0
  417. package/fonts/Inter/static/Inter_24pt-MediumItalic.ttf +0 -0
  418. package/fonts/Inter/static/Inter_24pt-Regular.ttf +0 -0
  419. package/fonts/Inter/static/Inter_24pt-SemiBold.ttf +0 -0
  420. package/fonts/Inter/static/Inter_24pt-SemiBoldItalic.ttf +0 -0
  421. package/fonts/Inter/static/Inter_24pt-Thin.ttf +0 -0
  422. package/fonts/Inter/static/Inter_24pt-ThinItalic.ttf +0 -0
  423. package/fonts/Inter/static/Inter_28pt-Black.ttf +0 -0
  424. package/fonts/Inter/static/Inter_28pt-BlackItalic.ttf +0 -0
  425. package/fonts/Inter/static/Inter_28pt-Bold.ttf +0 -0
  426. package/fonts/Inter/static/Inter_28pt-BoldItalic.ttf +0 -0
  427. package/fonts/Inter/static/Inter_28pt-ExtraBold.ttf +0 -0
  428. package/fonts/Inter/static/Inter_28pt-ExtraBoldItalic.ttf +0 -0
  429. package/fonts/Inter/static/Inter_28pt-ExtraLight.ttf +0 -0
  430. package/fonts/Inter/static/Inter_28pt-ExtraLightItalic.ttf +0 -0
  431. package/fonts/Inter/static/Inter_28pt-Italic.ttf +0 -0
  432. package/fonts/Inter/static/Inter_28pt-Light.ttf +0 -0
  433. package/fonts/Inter/static/Inter_28pt-LightItalic.ttf +0 -0
  434. package/fonts/Inter/static/Inter_28pt-Medium.ttf +0 -0
  435. package/fonts/Inter/static/Inter_28pt-MediumItalic.ttf +0 -0
  436. package/fonts/Inter/static/Inter_28pt-Regular.ttf +0 -0
  437. package/fonts/Inter/static/Inter_28pt-SemiBold.ttf +0 -0
  438. package/fonts/Inter/static/Inter_28pt-SemiBoldItalic.ttf +0 -0
  439. package/fonts/Inter/static/Inter_28pt-Thin.ttf +0 -0
  440. package/fonts/Inter/static/Inter_28pt-ThinItalic.ttf +0 -0
  441. package/inputchips/index.d.ts +5 -0
  442. package/{chips/chips.d.ts → inputchips/inputchips.d.ts} +24 -6
  443. package/{chips/chips.interface.d.ts → inputchips/inputchips.interface.d.ts} +1 -1
  444. package/inputchips/inputchips.module.d.ts +14 -0
  445. package/inputchips/public_api.d.ts +3 -0
  446. package/inputgroup/inputgroup.d.ts +32 -1
  447. package/inputmask/inputmask.d.ts +9 -3
  448. package/inputnumber/inputnumber.d.ts +30 -4
  449. package/inputtext/inputtext.component.d.ts +2 -1
  450. package/inputtext/inputtext.directive.d.ts +3 -1
  451. package/inputtextarea/inputtextarea.component.d.ts +8 -1
  452. package/inputtextarea/inputtextarea.directive.d.ts +12 -1
  453. package/listbox/listbox.d.ts +14 -16
  454. package/listbox/listbox.module.d.ts +14 -0
  455. package/listbox/public_api.d.ts +1 -0
  456. package/logocard/index.d.ts +5 -0
  457. package/logocard/logocard.d.ts +6 -0
  458. package/logocard/logocard.module.d.ts +7 -0
  459. package/logocard/public_api.d.ts +2 -0
  460. package/messages/messages.d.ts +2 -11
  461. package/messages/messages.interface.d.ts +0 -2
  462. package/multiselect/multiselect.d.ts +28 -2
  463. package/navigation/navigation.d.ts +17 -12
  464. package/overlaypanel/overlaypanel.d.ts +6 -1
  465. package/package.json +240 -220
  466. package/productcard/index.d.ts +5 -0
  467. package/productcard/productcard.d.ts +19 -0
  468. package/productcard/productcard.module.d.ts +7 -0
  469. package/productcard/public_api.d.ts +2 -0
  470. package/progressbar/progressbar.d.ts +17 -2
  471. package/radiobutton/radiobutton.d.ts +1 -0
  472. package/resources/cax.min.scss +6351 -1
  473. package/resources/cax.scss +11281 -12539
  474. package/resources/components/accordion/accordion.scss +0 -46
  475. package/resources/components/autocomplete/autocomplete.scss +249 -184
  476. package/resources/components/avatar/avatar.scss +30 -34
  477. package/resources/components/avatargroup/avatargroup.scss +10 -10
  478. package/resources/components/badge/badge.scss +68 -67
  479. package/resources/components/blockui/blockui.css +26 -26
  480. package/resources/components/breadcrumb/breadcrumb.scss +36 -33
  481. package/resources/components/button/button.scss +160 -163
  482. package/resources/components/calendar/calendar.scss +368 -231
  483. package/resources/components/card/card.scss +9 -50
  484. package/resources/components/carousel/carousel.css +71 -71
  485. package/resources/components/cascadeselect/cascadeselect.scss +104 -105
  486. package/resources/components/categorycard/categorycard.scss +46 -0
  487. package/resources/components/checkbox/checkbox.scss +30 -30
  488. package/resources/components/chip/chip.scss +6 -6
  489. package/resources/components/colorpicker/colorpicker-images.scss +7 -7
  490. package/resources/components/colorpicker/colorpicker.scss +82 -82
  491. package/resources/components/commentbox/commentbox.scss +621 -611
  492. package/resources/components/comments/comments.scss +0 -0
  493. package/resources/components/common/common.scss +183 -183
  494. package/resources/components/comparecard/comparecard.component.scss +50 -0
  495. package/resources/components/confirmpopup/confirmpopup.css +53 -53
  496. package/resources/components/contextmenu/contextmenu.css +42 -42
  497. package/resources/components/dataview/dataview.css +13 -13
  498. package/resources/components/dialog/dialog.scss +193 -171
  499. package/resources/components/divider/divider.scss +0 -86
  500. package/resources/components/dock/dock.css +107 -107
  501. package/resources/components/dropdown/dropdown.scss +93 -94
  502. package/resources/components/editor/editor.scss +97 -4
  503. package/resources/components/fieldset/fieldset.css +30 -30
  504. package/resources/components/fileupload/fileupload.css +47 -47
  505. package/resources/components/galleria/galleria.css +281 -281
  506. package/resources/components/iconfield/iconfield.css +5 -5
  507. package/resources/components/image/image.scss +97 -92
  508. package/resources/components/inplace/inplace.css +19 -19
  509. package/resources/components/{chips/chips.scss → inputchips/inputchips.scss} +181 -205
  510. package/resources/components/inputicon/inputicon.css +6 -6
  511. package/resources/components/inputmask/inputmask.scss +48 -12
  512. package/resources/components/inputnumber/inputnumber.scss +109 -109
  513. package/resources/components/inputotp/inputotp.css +2 -2
  514. package/resources/components/inputswitch/inputswitch.css +23 -23
  515. package/resources/components/inputtext/inputtext.scss +138 -145
  516. package/resources/components/inputtextarea/inputtextarea.scss +15 -10
  517. package/resources/components/knob/knob.css +20 -20
  518. package/resources/components/listbox/listbox.scss +49 -0
  519. package/resources/components/logocard/logocard.scss +6 -0
  520. package/resources/components/megamenu/megamenu.css +108 -108
  521. package/resources/components/menu/menu.scss +31 -31
  522. package/resources/components/menubar/menubar.css +81 -81
  523. package/resources/components/message/message.css +17 -17
  524. package/resources/components/messages/messages.scss +53 -55
  525. package/resources/components/multiselect/multiselect.scss +132 -132
  526. package/resources/components/navigation/navigation.scss +236 -197
  527. package/resources/components/orderlist/orderlist.css +78 -78
  528. package/resources/components/organizationchart/organizationchart.css +62 -62
  529. package/resources/components/overlay/overlay.scss +80 -80
  530. package/resources/components/overlaypanel/overlaypanel.scss +84 -66
  531. package/resources/components/paginator/paginator.scss +41 -41
  532. package/resources/components/panel/panel.css +29 -29
  533. package/resources/components/panelmenu/panelmenu.css +45 -45
  534. package/resources/components/password/password.css +54 -54
  535. package/resources/components/picklist/picklist.css +60 -60
  536. package/resources/components/productcard/productcard.scss +95 -0
  537. package/resources/components/progressbar/progressbar.scss +107 -107
  538. package/resources/components/progressspinner/progressspinner.scss +0 -94
  539. package/resources/components/radiobutton/radiobutton.scss +34 -34
  540. package/resources/components/rating/rating.css +15 -15
  541. package/resources/components/ripple/ripple.scss +29 -29
  542. package/resources/components/scroller/scroller.scss +58 -58
  543. package/resources/components/scrollpanel/scrollpanel.css +50 -50
  544. package/resources/components/scrolltop/scrolltop.css +18 -18
  545. package/resources/components/sidebar/sidebar.scss +117 -117
  546. package/resources/components/skeleton/skeleton.scss +24 -25
  547. package/resources/components/slidemenu/slidemenu.css +100 -100
  548. package/resources/components/slider/{slider.css → slider.scss} +41 -41
  549. package/resources/components/speeddial/speeddial.scss +131 -122
  550. package/resources/components/spinner/spinner.css +63 -63
  551. package/resources/components/splitbutton/splitbutton.scss +57 -53
  552. package/resources/components/splitter/splitter.scss +73 -73
  553. package/resources/components/stepper/stepper.css +9 -9
  554. package/resources/components/steps/steps.scss +49 -50
  555. package/resources/components/subscriptioncard/subscriptioncard.component.scss +65 -0
  556. package/resources/components/table/table.scss +511 -458
  557. package/resources/components/table-paginator/table-paginator.component.scss +72 -0
  558. package/resources/components/tableconfiguration/tableconfiguration.scss +3 -125
  559. package/resources/components/tabmenu/tabmenu.css +80 -80
  560. package/resources/components/tabview/tabview.scss +206 -198
  561. package/resources/components/tag/tag.scss +7 -23
  562. package/resources/components/terminal/terminal.css +24 -24
  563. package/resources/components/tieredmenu/tieredmenu.scss +55 -55
  564. package/resources/components/timeline/timeline.scss +128 -128
  565. package/resources/components/toast/toast.scss +78 -87
  566. package/resources/components/toggleswitch/toggleswitch.scss +45 -36
  567. package/resources/components/toolbar/toolbar.css +19 -19
  568. package/resources/components/tooltip/tooltip.scss +124 -124
  569. package/resources/components/tree/tree.scss +154 -154
  570. package/resources/components/treeselect/treeselect.scss +114 -114
  571. package/resources/components/treetable/treetable.css +205 -205
  572. package/resources/components/upload/upload.component.scss +84 -145
  573. package/resources/fonts/Inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
  574. package/resources/fonts/Inter/Inter-VariableFont_opsz,wght.ttf +0 -0
  575. package/resources/fonts/Inter/OFL.txt +93 -0
  576. package/resources/fonts/Inter/README.txt +118 -0
  577. package/resources/fonts/Inter/static/Inter_18pt-Black.ttf +0 -0
  578. package/resources/fonts/Inter/static/Inter_18pt-BlackItalic.ttf +0 -0
  579. package/resources/fonts/Inter/static/Inter_18pt-Bold.ttf +0 -0
  580. package/resources/fonts/Inter/static/Inter_18pt-BoldItalic.ttf +0 -0
  581. package/resources/fonts/Inter/static/Inter_18pt-ExtraBold.ttf +0 -0
  582. package/resources/fonts/Inter/static/Inter_18pt-ExtraBoldItalic.ttf +0 -0
  583. package/resources/fonts/Inter/static/Inter_18pt-ExtraLight.ttf +0 -0
  584. package/resources/fonts/Inter/static/Inter_18pt-ExtraLightItalic.ttf +0 -0
  585. package/resources/fonts/Inter/static/Inter_18pt-Italic.ttf +0 -0
  586. package/resources/fonts/Inter/static/Inter_18pt-Light.ttf +0 -0
  587. package/resources/fonts/Inter/static/Inter_18pt-LightItalic.ttf +0 -0
  588. package/resources/fonts/Inter/static/Inter_18pt-Medium.ttf +0 -0
  589. package/resources/fonts/Inter/static/Inter_18pt-MediumItalic.ttf +0 -0
  590. package/resources/fonts/Inter/static/Inter_18pt-Regular.ttf +0 -0
  591. package/resources/fonts/Inter/static/Inter_18pt-SemiBold.ttf +0 -0
  592. package/resources/fonts/Inter/static/Inter_18pt-SemiBoldItalic.ttf +0 -0
  593. package/resources/fonts/Inter/static/Inter_18pt-Thin.ttf +0 -0
  594. package/resources/fonts/Inter/static/Inter_18pt-ThinItalic.ttf +0 -0
  595. package/resources/fonts/Inter/static/Inter_24pt-Black.ttf +0 -0
  596. package/resources/fonts/Inter/static/Inter_24pt-BlackItalic.ttf +0 -0
  597. package/resources/fonts/Inter/static/Inter_24pt-Bold.ttf +0 -0
  598. package/resources/fonts/Inter/static/Inter_24pt-BoldItalic.ttf +0 -0
  599. package/resources/fonts/Inter/static/Inter_24pt-ExtraBold.ttf +0 -0
  600. package/resources/fonts/Inter/static/Inter_24pt-ExtraBoldItalic.ttf +0 -0
  601. package/resources/fonts/Inter/static/Inter_24pt-ExtraLight.ttf +0 -0
  602. package/resources/fonts/Inter/static/Inter_24pt-ExtraLightItalic.ttf +0 -0
  603. package/resources/fonts/Inter/static/Inter_24pt-Italic.ttf +0 -0
  604. package/resources/fonts/Inter/static/Inter_24pt-Light.ttf +0 -0
  605. package/resources/fonts/Inter/static/Inter_24pt-LightItalic.ttf +0 -0
  606. package/resources/fonts/Inter/static/Inter_24pt-Medium.ttf +0 -0
  607. package/resources/fonts/Inter/static/Inter_24pt-MediumItalic.ttf +0 -0
  608. package/resources/fonts/Inter/static/Inter_24pt-Regular.ttf +0 -0
  609. package/resources/fonts/Inter/static/Inter_24pt-SemiBold.ttf +0 -0
  610. package/resources/fonts/Inter/static/Inter_24pt-SemiBoldItalic.ttf +0 -0
  611. package/resources/fonts/Inter/static/Inter_24pt-Thin.ttf +0 -0
  612. package/resources/fonts/Inter/static/Inter_24pt-ThinItalic.ttf +0 -0
  613. package/resources/fonts/Inter/static/Inter_28pt-Black.ttf +0 -0
  614. package/resources/fonts/Inter/static/Inter_28pt-BlackItalic.ttf +0 -0
  615. package/resources/fonts/Inter/static/Inter_28pt-Bold.ttf +0 -0
  616. package/resources/fonts/Inter/static/Inter_28pt-BoldItalic.ttf +0 -0
  617. package/resources/fonts/Inter/static/Inter_28pt-ExtraBold.ttf +0 -0
  618. package/resources/fonts/Inter/static/Inter_28pt-ExtraBoldItalic.ttf +0 -0
  619. package/resources/fonts/Inter/static/Inter_28pt-ExtraLight.ttf +0 -0
  620. package/resources/fonts/Inter/static/Inter_28pt-ExtraLightItalic.ttf +0 -0
  621. package/resources/fonts/Inter/static/Inter_28pt-Italic.ttf +0 -0
  622. package/resources/fonts/Inter/static/Inter_28pt-Light.ttf +0 -0
  623. package/resources/fonts/Inter/static/Inter_28pt-LightItalic.ttf +0 -0
  624. package/resources/fonts/Inter/static/Inter_28pt-Medium.ttf +0 -0
  625. package/resources/fonts/Inter/static/Inter_28pt-MediumItalic.ttf +0 -0
  626. package/resources/fonts/Inter/static/Inter_28pt-Regular.ttf +0 -0
  627. package/resources/fonts/Inter/static/Inter_28pt-SemiBold.ttf +0 -0
  628. package/resources/fonts/Inter/static/Inter_28pt-SemiBoldItalic.ttf +0 -0
  629. package/resources/fonts/Inter/static/Inter_28pt-Thin.ttf +0 -0
  630. package/resources/fonts/Inter/static/Inter_28pt-ThinItalic.ttf +0 -0
  631. package/resources/logo/cax-intro-logo.svg +75 -0
  632. package/resources/logo/cax-sidebar-logo.svg +6 -0
  633. package/resources/logo/dataX-dark.svg +12 -12
  634. package/resources/logo/dataX-icon-dark.svg +5 -5
  635. package/resources/logo/dataX-icon.svg +5 -5
  636. package/resources/logo/dataX.svg +12 -12
  637. package/resources/styles/colors.scss +568 -397
  638. package/resources/styles/fonts.scss +15 -0
  639. package/resources/styles/transitions.scss +23 -0
  640. package/resources/styles/typography.scss +555 -116
  641. package/resources/styles/variables.scss +85 -0
  642. package/selectbutton/selectbutton.d.ts +50 -1
  643. package/slider/public_api.d.ts +1 -0
  644. package/slider/slider.d.ts +1 -8
  645. package/slider/slider.module.d.ts +9 -0
  646. package/speeddial/speeddial.d.ts +6 -1
  647. package/splitbutton/splitbutton.d.ts +2 -2
  648. package/steps/steps.d.ts +11 -4
  649. package/steps/steps.module.d.ts +2 -1
  650. package/subscriptioncard/index.d.ts +5 -0
  651. package/subscriptioncard/public_api.d.ts +2 -0
  652. package/subscriptioncard/subscriptioncard.component.d.ts +33 -0
  653. package/subscriptioncard/subscriptioncard.module.d.ts +11 -0
  654. package/table/components/column-filter/column-filter.d.ts +0 -34
  655. package/table/components/table-header-checkbox/table-header-checkbox.d.ts +3 -1
  656. package/table/directives/cell-extend.directive.d.ts +14 -0
  657. package/table/directives/cell-highlight.directive.d.ts +4 -6
  658. package/table/public_api.d.ts +1 -0
  659. package/table/table.d.ts +34 -60
  660. package/table/table.interface.d.ts +21 -0
  661. package/table/table.module.d.ts +4 -3
  662. package/table-paginator/index.d.ts +5 -0
  663. package/table-paginator/public_api.d.ts +3 -0
  664. package/table-paginator/table-paginator.component.d.ts +28 -0
  665. package/table-paginator/table-paginator.interface.d.ts +21 -0
  666. package/table-paginator/table-paginator.module.d.ts +9 -0
  667. package/tableconfiguration/tableconfiguration.d.ts +3 -1
  668. package/tabview/tabview.d.ts +14 -12
  669. package/tabview/tabview.module.d.ts +2 -1
  670. package/tag/tag.d.ts +43 -5
  671. package/terminal/terminal.d.ts +1 -1
  672. package/tieredmenu/tieredmenu.d.ts +6 -1
  673. package/toast/toast.d.ts +1 -9
  674. package/toggleswitch/toggleswitch.d.ts +5 -0
  675. package/upload/upload.component.d.ts +51 -19
  676. package/chips/chips.module.d.ts +0 -14
  677. package/chips/public_api.d.ts +0 -3
  678. package/fesm2022/cax-design-system-chips.mjs.map +0 -1
  679. package/resources/components/listbox/listbox.css +0 -40
  680. package/resources/styles/shadow-blur.scss +0 -22
  681. package/resources/styles/space-radius-border.scss +0 -49
@@ -1,4 +1,4 @@
1
- import { trigger, state, transition, style, animate } from '@angular/animations';
1
+ import { trigger, state, style, transition, animate } from '@angular/animations';
2
2
  import * as i2 from '@angular/common';
3
3
  import { DOCUMENT, CommonModule } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
@@ -12,13 +12,9 @@ import { DomHandler, ConnectedOverlayScrollHandler } from 'cax-design-system/dom
12
12
  import * as i4 from 'cax-design-system/ripple';
13
13
  import { RippleModule } from 'cax-design-system/ripple';
14
14
  import { UniqueComponentId, ObjectUtils, ZIndexUtils } from 'cax-design-system/utils';
15
- import { ChevronLeftIcon } from 'cax-design-system/icons/chevronleft';
16
- import { ChevronRightIcon } from 'cax-design-system/icons/chevronright';
17
15
  import { ChevronUpIcon } from 'cax-design-system/icons/chevronup';
18
16
  import { ChevronDownIcon } from 'cax-design-system/icons/chevrondown';
19
17
  import { TimesIcon } from 'cax-design-system/icons/times';
20
- import { CalendarIcon } from 'cax-design-system/icons/calendar';
21
- import { ArrowDownIcon } from 'cax-design-system/icons/arrowdown';
22
18
  import * as i5 from 'cax-design-system/autofocus';
23
19
  import { AutoFocusModule } from 'cax-design-system/autofocus';
24
20
 
@@ -39,7 +35,7 @@ class Calendar {
39
35
  zone;
40
36
  config;
41
37
  overlayService;
42
- iconDisplay = 'button';
38
+ iconDisplay = 'input';
43
39
  /**
44
40
  * Inline style of the component.
45
41
  * @group Props
@@ -95,6 +91,11 @@ class Calendar {
95
91
  * @group Props
96
92
  */
97
93
  disabled;
94
+ /**
95
+ * Specifies the size of the input.
96
+ * @group Props
97
+ */
98
+ size = 'md';
98
99
  /**
99
100
  * Format of the date which can also be defined at locale settings.
100
101
  * @group Props
@@ -129,7 +130,7 @@ class Calendar {
129
130
  * When enabled, displays a button with icon next to input.
130
131
  * @group Props
131
132
  */
132
- showIcon;
133
+ showIcon = true;
133
134
  /**
134
135
  * Icon of the calendar button.
135
136
  * @group Props
@@ -176,7 +177,7 @@ class Calendar {
176
177
  * Years to change per step in yearpicker.
177
178
  * @group Props
178
179
  */
179
- stepYearPicker = 9;
180
+ stepYearPicker = 12;
180
181
  /**
181
182
  * Hours to change per step.
182
183
  * @group Props
@@ -297,6 +298,9 @@ class Calendar {
297
298
  * @group Props
298
299
  */
299
300
  labelText;
301
+ helperText;
302
+ errorText;
303
+ invalid;
300
304
  timeSeparator = ':';
301
305
  leftIcon = true;
302
306
  //@Input() rightIcon: boolean= false;
@@ -481,8 +485,9 @@ class Calendar {
481
485
  }
482
486
  get inputClass() {
483
487
  return {
484
- 'cax-inputtext cax-component': true,
485
- 'cax-variant-filled': this.variant === 'filled' || this.config.inputStyle() === 'filled'
488
+ 'cax-inputtext cax-calendar-input cax-component': true,
489
+ 'cax-variant-filled': this.variant === 'filled' || this.config.inputStyle() === 'filled',
490
+ 'cax-input-invalid': this.invalid
486
491
  };
487
492
  }
488
493
  /**
@@ -553,8 +558,7 @@ class Calendar {
553
558
  * Callback to invoke when datepicker panel is shown.
554
559
  * @group Emits
555
560
  */
556
- onInlineSaved = new EventEmitter();
557
- onInlineCancelled = new EventEmitter();
561
+ onDateSaved = new EventEmitter();
558
562
  onShow = new EventEmitter();
559
563
  templates;
560
564
  containerViewChild;
@@ -641,8 +645,12 @@ class Calendar {
641
645
  _defaultDate;
642
646
  _focusKey = null;
643
647
  originalValue = null;
644
- formattedInlineDate = '';
645
648
  window;
649
+ isJustFocused = false;
650
+ preSelectValue;
651
+ isSaved = false;
652
+ manualInputValue = '';
653
+ manualInputError = null;
646
654
  get locale() {
647
655
  return this._locale;
648
656
  }
@@ -685,7 +693,6 @@ class Calendar {
685
693
  this.cd.markForCheck();
686
694
  });
687
695
  this.initialized = true;
688
- this.updateFormattedInlineDate();
689
696
  }
690
697
  ngAfterContentInit() {
691
698
  this.templates.forEach((item) => {
@@ -745,17 +752,6 @@ class Calendar {
745
752
  }
746
753
  }
747
754
  }
748
- updateFormattedInlineDate() {
749
- if (this.value) {
750
- const day = this.value.getDate().toString().padStart(2, '0');
751
- const month = (this.value.getMonth() + 1).toString().padStart(2, '0');
752
- const year = this.value.getFullYear();
753
- this.formattedInlineDate = `${month}/${day}/${year}`;
754
- }
755
- else {
756
- this.formattedInlineDate = '';
757
- }
758
- }
759
755
  getTranslation(option) {
760
756
  return this.config.getTranslation(option);
761
757
  }
@@ -783,8 +779,7 @@ class Calendar {
783
779
  }
784
780
  yearPickerValues() {
785
781
  let yearPickerValues = [];
786
- let halfRange = Math.floor(this.stepYearPicker / 2);
787
- let startYear = this.currentYear - halfRange;
782
+ let startYear = Math.floor(this.currentYear / this.stepYearPicker) * this.stepYearPicker;
788
783
  for (let i = 0; i < this.stepYearPicker; i++) {
789
784
  yearPickerValues.push(startYear + i);
790
785
  }
@@ -942,6 +937,42 @@ class Calendar {
942
937
  this.createMonths(this.currentMonth, this.currentYear);
943
938
  }
944
939
  }
940
+ navBackwardYear(event) {
941
+ if (this.disabled) {
942
+ event.preventDefault();
943
+ return;
944
+ }
945
+ this.isMonthNavigate = true;
946
+ if (this.currentView === 'year') {
947
+ this.decrementYearPickerStep();
948
+ setTimeout(() => {
949
+ this.updateFocus();
950
+ }, 1);
951
+ }
952
+ else {
953
+ this.decrementYear();
954
+ this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });
955
+ this.createMonths(this.currentMonth, this.currentYear);
956
+ }
957
+ }
958
+ navForwardYear(event) {
959
+ if (this.disabled) {
960
+ event.preventDefault();
961
+ return;
962
+ }
963
+ this.isMonthNavigate = true;
964
+ if (this.currentView === 'year') {
965
+ this.incrementYearPickerStep();
966
+ setTimeout(() => {
967
+ this.updateFocus();
968
+ }, 1);
969
+ }
970
+ else {
971
+ this.incrementYear();
972
+ this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });
973
+ this.createMonths(this.currentMonth, this.currentYear);
974
+ }
975
+ }
945
976
  decrementYear() {
946
977
  this.currentYear--;
947
978
  let _yearOptions = this.yearOptions;
@@ -964,6 +995,24 @@ class Calendar {
964
995
  this.populateYearOptions(_yearOptions[0] + difference, _yearOptions[_yearOptions.length - 1] + difference);
965
996
  }
966
997
  }
998
+ // switchToMonthView(event: Event) {
999
+ // if (this.view === 'month') return;
1000
+ // if (this.currentView == 'month') {
1001
+ // this.setCurrentView(this.view);
1002
+ // } else {
1003
+ // this.setCurrentView('month');
1004
+ // }
1005
+ // event.preventDefault();
1006
+ // }
1007
+ // switchToYearView(event: Event) {
1008
+ // if (this.view === 'year') return;
1009
+ // if (this.currentView == 'year') {
1010
+ // this.setCurrentView(this.view);
1011
+ // } else {
1012
+ // this.setCurrentView('year');
1013
+ // }
1014
+ // event.preventDefault();
1015
+ // }
967
1016
  switchToMonthView(event) {
968
1017
  this.setCurrentView('month');
969
1018
  event.preventDefault();
@@ -984,26 +1033,13 @@ class Calendar {
984
1033
  if (this.value.length === 0) {
985
1034
  this.value = null;
986
1035
  }
987
- this.updateModel(this.value);
988
1036
  }
989
1037
  else {
990
1038
  if (this.shouldSelectDate(dateMeta)) {
991
1039
  this.selectDate(dateMeta);
992
1040
  }
993
1041
  }
994
- if (this.hideOnDateTimeSelect && (this.isSingleSelection() || (this.isRangeSelection() && this.value[1]))) {
995
- setTimeout(() => {
996
- event.preventDefault();
997
- this.hideOverlay();
998
- if (this.mask) {
999
- this.disableModality();
1000
- }
1001
- this.cd.markForCheck();
1002
- }, 150);
1003
- }
1004
- this.updateInputfield();
1005
1042
  event.preventDefault();
1006
- this.updateFormattedInlineDate();
1007
1043
  }
1008
1044
  shouldSelectDate(dateMeta) {
1009
1045
  if (this.isMultipleSelection())
@@ -1011,6 +1047,26 @@ class Calendar {
1011
1047
  else
1012
1048
  return true;
1013
1049
  }
1050
+ // onMonthSelect(event: Event, index: number) {
1051
+ // if (this.view === 'month') {
1052
+ // this.onDateSelect(event, { year: this.currentYear, month: index, day: 1, selectable: true });
1053
+ // } else {
1054
+ // this.currentMonth = index;
1055
+ // this.createMonths(this.currentMonth, this.currentYear);
1056
+ // this.setCurrentView(this.view);
1057
+ // this.onMonthChange.emit({ month: this.currentMonth + 1, year: this.currentYear });
1058
+ // }
1059
+ // }
1060
+ // onYearSelect(event: Event, year: number) {
1061
+ // if (this.view === 'year') {
1062
+ // this.onDateSelect(event, { year: year, month: 0, day: 1, selectable: true });
1063
+ // } else {
1064
+ // this.currentYear = year;
1065
+ // this.setCurrentView(this.view);
1066
+ // this.createMonths(this.currentMonth, this.currentYear);
1067
+ // this.onYearChange.emit({ month: this.currentMonth + 1, year: this.currentYear });
1068
+ // }
1069
+ // }
1014
1070
  onMonthSelect(event, index) {
1015
1071
  if (this.view === 'month') {
1016
1072
  this.onDateSelect(event, { year: this.currentYear, month: index, day: 1, selectable: true });
@@ -1033,24 +1089,31 @@ class Calendar {
1033
1089
  }
1034
1090
  }
1035
1091
  updateInputfield() {
1092
+ this.inputFieldValue = this.getFormattedValue(this.value);
1093
+ this.updateFilledState();
1094
+ if (this.inputfieldViewChild && this.inputfieldViewChild.nativeElement) {
1095
+ this.inputfieldViewChild.nativeElement.value = this.inputFieldValue;
1096
+ }
1097
+ }
1098
+ getFormattedValue(value) {
1036
1099
  let formattedValue = '';
1037
- if (this.value) {
1100
+ if (value) {
1038
1101
  if (this.isSingleSelection()) {
1039
- formattedValue = this.formatDateTime(this.value);
1102
+ formattedValue = this.formatDateTime(value);
1040
1103
  }
1041
1104
  else if (this.isMultipleSelection()) {
1042
- for (let i = 0; i < this.value.length; i++) {
1043
- let dateAsString = this.formatDateTime(this.value[i]);
1105
+ for (let i = 0; i < value.length; i++) {
1106
+ let dateAsString = this.formatDateTime(value[i]);
1044
1107
  formattedValue += dateAsString;
1045
- if (i !== this.value.length - 1) {
1108
+ if (i !== value.length - 1) {
1046
1109
  formattedValue += this.multipleSeparator + ' ';
1047
1110
  }
1048
1111
  }
1049
1112
  }
1050
1113
  else if (this.isRangeSelection()) {
1051
- if (this.value && this.value.length) {
1052
- let startDate = this.value[0];
1053
- let endDate = this.value[1];
1114
+ if (value.length) {
1115
+ let startDate = value[0];
1116
+ let endDate = value[1];
1054
1117
  formattedValue = this.formatDateTime(startDate);
1055
1118
  if (endDate) {
1056
1119
  formattedValue += ' ' + this.rangeSeparator + ' ' + this.formatDateTime(endDate);
@@ -1058,11 +1121,7 @@ class Calendar {
1058
1121
  }
1059
1122
  }
1060
1123
  }
1061
- this.inputFieldValue = formattedValue;
1062
- this.updateFilledState();
1063
- if (this.inputfieldViewChild && this.inputfieldViewChild.nativeElement) {
1064
- this.inputfieldViewChild.nativeElement.value = this.inputFieldValue;
1065
- }
1124
+ return formattedValue;
1066
1125
  }
1067
1126
  formatDateTime(date) {
1068
1127
  let formattedValue = this.keepInvalid ? date : null;
@@ -1137,10 +1196,10 @@ class Calendar {
1137
1196
  this.currentSecond = date.getSeconds();
1138
1197
  }
1139
1198
  if (this.isSingleSelection()) {
1140
- this.updateModel(date);
1199
+ this.value = date;
1141
1200
  }
1142
1201
  else if (this.isMultipleSelection()) {
1143
- this.updateModel(this.value ? [...this.value, date] : [date]);
1202
+ this.value = this.value ? [...this.value, date] : [date];
1144
1203
  }
1145
1204
  else if (this.isRangeSelection()) {
1146
1205
  if (this.value && this.value.length) {
@@ -1153,13 +1212,22 @@ class Calendar {
1153
1212
  startDate = date;
1154
1213
  endDate = null;
1155
1214
  }
1156
- this.updateModel([startDate, endDate]);
1215
+ this.value = [startDate, endDate];
1157
1216
  }
1158
1217
  else {
1159
- this.updateModel([date, null]);
1218
+ this.value = [date, null];
1160
1219
  }
1161
1220
  }
1162
1221
  this.onSelect.emit(date);
1222
+ this.manualInputValue = this.getFormattedValue(this.value);
1223
+ if (this.isRangeSelection() && (!this.value || this.value[1] == null)) {
1224
+ this.manualInputError = 'Please select end date';
1225
+ }
1226
+ else {
1227
+ this.manualInputError = null;
1228
+ }
1229
+ this.updateUI();
1230
+ this.cd.markForCheck();
1163
1231
  }
1164
1232
  updateModel(value) {
1165
1233
  this.value = value;
@@ -1248,16 +1316,34 @@ class Calendar {
1248
1316
  return false;
1249
1317
  }
1250
1318
  }
1319
+ isRangeStart(dateMeta) {
1320
+ return this.isRangeSelection() && this.value && this.isDateEquals(this.value[0], dateMeta);
1321
+ }
1322
+ isRangeEnd(dateMeta) {
1323
+ return this.isRangeSelection() && this.value && this.isDateEquals(this.value[1], dateMeta);
1324
+ }
1325
+ isRangeSelectionCompleted() {
1326
+ return this.isRangeSelection() && !!this.value && !!this.value[0] && !!this.value[1];
1327
+ }
1328
+ isRangeBetween(dateMeta) {
1329
+ return this.isRangeSelection() && !!this.value && !!this.value[0] && !!this.value[1] && this.isDateBetween(this.value[0], this.value[1], dateMeta) && !this.isDateEquals(this.value[0], dateMeta) && !this.isDateEquals(this.value[1], dateMeta);
1330
+ }
1251
1331
  isComparable() {
1252
1332
  return this.value != null && typeof this.value !== 'string';
1253
1333
  }
1254
1334
  isMonthSelected(month) {
1255
1335
  if (!this.isComparable())
1256
1336
  return false;
1257
- if (this.isMultipleSelection())
1258
- return false;
1259
- let value = this.isRangeSelection() ? this.value[0] : this.value;
1260
- return value ? value.getMonth() === month : false;
1337
+ const isMatch = (date) => date && date.getMonth() === month && date.getFullYear() === this.currentYear;
1338
+ if (this.isMultipleSelection()) {
1339
+ return this.value.some((d) => isMatch(d));
1340
+ }
1341
+ else if (this.isRangeSelection()) {
1342
+ return (this.value[0] && isMatch(this.value[0])) || (this.value[1] && isMatch(this.value[1]));
1343
+ }
1344
+ else {
1345
+ return isMatch(this.value);
1346
+ }
1261
1347
  }
1262
1348
  isMonthDisabled(month, year) {
1263
1349
  const yearToCheck = year ?? this.currentYear;
@@ -1276,10 +1362,16 @@ class Calendar {
1276
1362
  isYearSelected(year) {
1277
1363
  if (!this.isComparable())
1278
1364
  return false;
1279
- if (this.isMultipleSelection())
1280
- return false;
1281
- let value = this.isRangeSelection() ? this.value[0] : this.value;
1282
- return value ? value.getFullYear() === year : false;
1365
+ const isMatch = (date) => date && date.getFullYear() === year;
1366
+ if (this.isMultipleSelection()) {
1367
+ return this.value.some((d) => isMatch(d));
1368
+ }
1369
+ else if (this.isRangeSelection()) {
1370
+ return (this.value[0] && isMatch(this.value[0])) || (this.value[1] && isMatch(this.value[1]));
1371
+ }
1372
+ else {
1373
+ return isMatch(this.value);
1374
+ }
1283
1375
  }
1284
1376
  isDateEquals(value, dateMeta) {
1285
1377
  if (value && ObjectUtils.isDate(value))
@@ -1375,6 +1467,7 @@ class Calendar {
1375
1467
  this.focus = true;
1376
1468
  if (this.showOnFocus) {
1377
1469
  this.showOverlay();
1470
+ this.isJustFocused = true;
1378
1471
  }
1379
1472
  this.onFocus.emit(event);
1380
1473
  }
@@ -1392,6 +1485,10 @@ class Calendar {
1392
1485
  this.onModelTouched();
1393
1486
  }
1394
1487
  onButtonClick(event, inputfield = this.inputfieldViewChild?.nativeElement) {
1488
+ if (this.isJustFocused) {
1489
+ this.isJustFocused = false;
1490
+ return;
1491
+ }
1395
1492
  if (!this.overlayVisible) {
1396
1493
  inputfield.focus();
1397
1494
  this.showOverlay();
@@ -1400,13 +1497,22 @@ class Calendar {
1400
1497
  this.hideOverlay();
1401
1498
  }
1402
1499
  }
1403
- clear() {
1404
- this.inputFieldValue = null;
1500
+ clear(event) {
1405
1501
  this.value = null;
1406
- this.onModelChange(this.value);
1502
+ if (!this.overlayVisible) {
1503
+ this.updateModel(null);
1504
+ this.updateInputfield();
1505
+ }
1506
+ this.updateUI();
1407
1507
  this.onClear.emit();
1508
+ if (event) {
1509
+ event.stopPropagation();
1510
+ }
1408
1511
  }
1409
1512
  onOverlayClick(event) {
1513
+ if (event) {
1514
+ event.stopPropagation();
1515
+ }
1410
1516
  this.overlayService.add({
1411
1517
  originalEvent: event,
1412
1518
  target: this.el.nativeElement
@@ -1429,6 +1535,14 @@ class Calendar {
1429
1535
  this.navigationState = { backward: false, button: true };
1430
1536
  this.navForward(event);
1431
1537
  }
1538
+ onPrevYearButtonClick(event) {
1539
+ this.navigationState = { backward: true, button: true };
1540
+ this.navBackwardYear(event);
1541
+ }
1542
+ onNextYearButtonClick(event) {
1543
+ this.navigationState = { backward: false, button: true };
1544
+ this.navForwardYear(event);
1545
+ }
1432
1546
  onContainerButtonKeydown(event) {
1433
1547
  switch (event.which) {
1434
1548
  //tab
@@ -1836,13 +1950,13 @@ class Calendar {
1836
1950
  }
1837
1951
  updateFocus() {
1838
1952
  let cell;
1839
- if (this.navigationState) {
1953
+ if (this.navigationState && this.contentViewChild && this.contentViewChild.nativeElement) {
1840
1954
  if (this.navigationState.button) {
1841
1955
  this.initFocusableCell();
1842
- if (this.navigationState.backward)
1843
- DomHandler.findSingle(this.contentViewChild.nativeElement, '.cax-datepicker-prev').focus();
1844
- else
1845
- DomHandler.findSingle(this.contentViewChild.nativeElement, '.cax-datepicker-next').focus();
1956
+ const buttonEl = this.navigationState.backward ? DomHandler.findSingle(this.contentViewChild.nativeElement, '.cax-datepicker-prev') : DomHandler.findSingle(this.contentViewChild.nativeElement, '.cax-datepicker-next');
1957
+ if (buttonEl) {
1958
+ buttonEl.focus();
1959
+ }
1846
1960
  }
1847
1961
  else {
1848
1962
  if (this.navigationState.backward) {
@@ -2220,9 +2334,10 @@ class Calendar {
2220
2334
  if (this.isMultipleSelection()) {
2221
2335
  value = [...this.value.slice(0, -1), value];
2222
2336
  }
2223
- this.updateModel(value);
2337
+ this.value = value;
2224
2338
  this.onSelect.emit(value);
2225
- this.updateInputfield();
2339
+ this.updateUI();
2340
+ this.cd.markForCheck();
2226
2341
  }
2227
2342
  toggleAMPM(event) {
2228
2343
  const newPM = !this.pm;
@@ -2257,14 +2372,20 @@ class Calendar {
2257
2372
  this.onInput.emit(event);
2258
2373
  }
2259
2374
  isValidSelection(value) {
2375
+ if (!value) {
2376
+ return true;
2377
+ }
2260
2378
  if (this.isSingleSelection()) {
2261
2379
  return this.isSelectable(value.getDate(), value.getMonth(), value.getFullYear(), false);
2262
2380
  }
2263
- let isValid = value.every((v) => this.isSelectable(v.getDate(), v.getMonth(), v.getFullYear(), false));
2264
- if (isValid && this.isRangeSelection()) {
2265
- isValid = value.length === 1 || (value.length > 1 && value[1] >= value[0]);
2381
+ if (Array.isArray(value)) {
2382
+ let isValid = value.every((v) => v == null || this.isSelectable(v.getDate(), v.getMonth(), v.getFullYear(), false));
2383
+ if (isValid && this.isRangeSelection()) {
2384
+ isValid = value.length === 1 || (value.length > 1 && (!value[1] || value[1] >= value[0]));
2385
+ }
2386
+ return isValid;
2266
2387
  }
2267
- return isValid;
2388
+ return false;
2268
2389
  }
2269
2390
  parseValueFromString(text) {
2270
2391
  if (!text || text.trim().length === 0) {
@@ -2345,6 +2466,15 @@ class Calendar {
2345
2466
  if (!this.touchUI) {
2346
2467
  this.preventFocus = true;
2347
2468
  }
2469
+ this.preSelectValue = this.value ? (Array.isArray(this.value) ? [...this.value] : this.value) : null;
2470
+ this.manualInputValue = this.getFormattedValue(this.value);
2471
+ if (this.isRangeSelection() && this.value && !this.value[1]) {
2472
+ this.manualInputError = 'Please select end date';
2473
+ }
2474
+ else {
2475
+ this.manualInputError = null;
2476
+ }
2477
+ this.isSaved = false;
2348
2478
  this.overlayVisible = true;
2349
2479
  }
2350
2480
  }
@@ -2533,6 +2663,18 @@ class Calendar {
2533
2663
  getDateFormat() {
2534
2664
  return this.dateFormat || this.getTranslation('dateFormat');
2535
2665
  }
2666
+ getInputMask() {
2667
+ let format = this.getDateFormat();
2668
+ if (!format)
2669
+ return '';
2670
+ // Replace d, m, h, s, etc. with 9 for the mask
2671
+ // Specifically handle 'yy' to always expect 4 digits (yyyy)
2672
+ let mask = format.replace(/[dmhMsH]/g, '9').replace(/yy/g, '9999');
2673
+ if (this.isRangeSelection()) {
2674
+ return `${mask} ${this.rangeSeparator} ${mask}`;
2675
+ }
2676
+ return mask;
2677
+ }
2536
2678
  getFirstDateOfWeek() {
2537
2679
  return this._firstDayOfWeek || this.getTranslation(TranslationKeys.FIRST_DAY_OF_WEEK);
2538
2680
  }
@@ -2832,10 +2974,15 @@ class Calendar {
2832
2974
  this.onTodayClick.emit(date);
2833
2975
  }
2834
2976
  onClearButtonClick(event) {
2977
+ this.value = null;
2978
+ this.preSelectValue = null;
2979
+ this.manualInputValue = '';
2980
+ this.manualInputError = null;
2835
2981
  this.updateModel(null);
2836
2982
  this.updateInputfield();
2837
- this.hideOverlay();
2983
+ this.updateUI();
2838
2984
  this.onClearClick.emit(event);
2985
+ this.cd.markForCheck();
2839
2986
  }
2840
2987
  onBackButtonClick(event) {
2841
2988
  if (this.currentView == 'year')
@@ -2933,7 +3080,7 @@ class Calendar {
2933
3080
  }
2934
3081
  }
2935
3082
  isOutsideClicked(event) {
2936
- return !(this.el.nativeElement.isSameNode(event.target) || this.isNavIconClicked(event) || this.el.nativeElement.contains(event.target) || (this.overlay && this.overlay.contains(event.target)));
3083
+ return !(this.containerViewChild?.nativeElement.isSameNode(event.target) || this.isNavIconClicked(event) || this.containerViewChild?.nativeElement.contains(event.target) || (this.overlay && this.overlay.contains(event.target)));
2937
3084
  }
2938
3085
  isNavIconClicked(event) {
2939
3086
  return (DomHandler.hasClass(event.target, 'cax-datepicker-prev') ||
@@ -2951,6 +3098,10 @@ class Calendar {
2951
3098
  if (this.mask) {
2952
3099
  this.destroyMask();
2953
3100
  }
3101
+ if (!this.isSaved) {
3102
+ this.value = this.preSelectValue;
3103
+ this.updateUI();
3104
+ }
2954
3105
  this.unbindDocumentClickListener();
2955
3106
  this.unbindDocumentResizeListener();
2956
3107
  this.unbindScrollListener();
@@ -2972,19 +3123,149 @@ class Calendar {
2972
3123
  this.restoreOverlayAppend();
2973
3124
  this.onOverlayHide();
2974
3125
  }
2975
- onInlineSave(event) {
2976
- this.onInlineSaved.emit(this.value);
3126
+ onDateSave(event) {
3127
+ if (this.manualInputError) {
3128
+ return;
3129
+ }
3130
+ this.isSaved = true;
3131
+ this.updateModel(this.value);
3132
+ this.updateInputfield();
3133
+ this.onDateSaved.emit(this.value);
3134
+ this.hideOverlay();
2977
3135
  }
2978
- onInlineCancel() {
2979
- // Revert to original value if needed
2980
- if (this.originalValue) {
2981
- this.value = new Date(this.originalValue);
2982
- this.updateFormattedInlineDate();
3136
+ onManualInput(event) {
3137
+ let val = event.target.value;
3138
+ const baseDateFormat = this.getDateFormat();
3139
+ const baseMask = baseDateFormat.replace(/[dmhMsH]/g, '9').replace(/yy/g, '9999');
3140
+ if (val) {
3141
+ const rawDigits = val.replace(/\D/g, '');
3142
+ let maskedValue = '';
3143
+ let rawIdx = 0;
3144
+ if (this.isMultipleSelection()) {
3145
+ const dateDigitsLen = baseMask.replace(/[^9]/g, '').length;
3146
+ const numDates = Math.ceil(rawDigits.length / dateDigitsLen);
3147
+ for (let n = 0; n < numDates; n++) {
3148
+ if (n > 0)
3149
+ maskedValue += this.multipleSeparator + ' ';
3150
+ for (let i = 0; i < baseMask.length && rawIdx < rawDigits.length; i++) {
3151
+ if (baseMask[i] === '9') {
3152
+ maskedValue += rawDigits[rawIdx++];
3153
+ }
3154
+ else {
3155
+ maskedValue += baseMask[i];
3156
+ }
3157
+ }
3158
+ }
3159
+ }
3160
+ else if (this.isRangeSelection()) {
3161
+ const fullMask = `${baseMask} ${this.rangeSeparator} ${baseMask}`;
3162
+ for (let i = 0; i < fullMask.length && rawIdx < rawDigits.length; i++) {
3163
+ if (fullMask[i] === '9') {
3164
+ maskedValue += rawDigits[rawIdx++];
3165
+ }
3166
+ else {
3167
+ maskedValue += fullMask[i];
3168
+ }
3169
+ }
3170
+ }
3171
+ else {
3172
+ for (let i = 0; i < baseMask.length && rawIdx < rawDigits.length; i++) {
3173
+ if (baseMask[i] === '9') {
3174
+ maskedValue += rawDigits[rawIdx++];
3175
+ }
3176
+ else {
3177
+ maskedValue += baseMask[i];
3178
+ }
3179
+ }
3180
+ }
3181
+ val = maskedValue;
3182
+ event.target.value = val;
3183
+ }
3184
+ this.manualInputValue = val;
3185
+ if (!val || val.trim().length === 0) {
3186
+ this.value = null;
3187
+ this.manualInputError = null;
3188
+ this.updateUI();
3189
+ this.cd.markForCheck();
3190
+ return;
3191
+ }
3192
+ this.preventFocus = true;
3193
+ try {
3194
+ const parsedValue = this.parseValueFromString(val);
3195
+ if (this.isValidSelection(parsedValue)) {
3196
+ this.value = parsedValue;
3197
+ if (this.isRangeSelection() && (!this.value || this.value[1] == null)) {
3198
+ this.manualInputError = 'Please enter end date';
3199
+ }
3200
+ else {
3201
+ this.manualInputError = null;
3202
+ }
3203
+ this.updateUI();
3204
+ }
3205
+ else {
3206
+ // If invalid selection, try to keep valid parts for highlights
3207
+ if (this.isRangeSelection() && Array.isArray(parsedValue) && parsedValue.length > 0) {
3208
+ if (this.isValidDate(parsedValue[0])) {
3209
+ this.value = [parsedValue[0], null];
3210
+ }
3211
+ else {
3212
+ this.value = null;
3213
+ }
3214
+ }
3215
+ else if (this.isMultipleSelection() && Array.isArray(parsedValue)) {
3216
+ this.value = parsedValue.filter((d) => this.isValidDate(d));
3217
+ }
3218
+ else {
3219
+ this.value = null;
3220
+ }
3221
+ this.manualInputError = 'Invalid date selection';
3222
+ this.updateUI();
3223
+ }
2983
3224
  }
2984
- this.onInlineCancelled.emit();
3225
+ catch (err) {
3226
+ // Partial input or formatting error - try to preserve valid parts
3227
+ if (this.isRangeSelection()) {
3228
+ const tokens = val.split(' ' + this.rangeSeparator + ' ');
3229
+ try {
3230
+ const firstDate = this.parseDateTime(tokens[0].trim());
3231
+ if (this.isValidDate(firstDate)) {
3232
+ this.value = [firstDate, null];
3233
+ this.manualInputError = 'Please enter end date';
3234
+ }
3235
+ else {
3236
+ this.value = null;
3237
+ this.manualInputError = 'Invalid date format';
3238
+ }
3239
+ }
3240
+ catch {
3241
+ this.value = null;
3242
+ this.manualInputError = 'Invalid date format';
3243
+ }
3244
+ }
3245
+ else if (this.isMultipleSelection()) {
3246
+ const tokens = val.split(this.multipleSeparator);
3247
+ const validDates = [];
3248
+ for (let token of tokens) {
3249
+ try {
3250
+ const d = this.parseDateTime(token.trim());
3251
+ if (this.isValidDate(d))
3252
+ validDates.push(d);
3253
+ }
3254
+ catch { }
3255
+ }
3256
+ this.value = validDates.length > 0 ? validDates : null;
3257
+ this.manualInputError = 'Invalid date format';
3258
+ }
3259
+ else {
3260
+ this.value = null;
3261
+ this.manualInputError = 'Invalid date format';
3262
+ }
3263
+ this.updateUI();
3264
+ }
3265
+ this.cd.markForCheck();
2985
3266
  }
2986
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: Calendar, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.caxConfig }, { token: i1.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
2987
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.16", type: Calendar, isStandalone: true, selector: "cax-calendar", inputs: { iconDisplay: "iconDisplay", style: "style", styleClass: "styleClass", inputStyle: "inputStyle", inputId: "inputId", name: "name", inputStyleClass: "inputStyleClass", placeholder: "placeholder", ariaLabelledBy: "ariaLabelledBy", ariaLabel: "ariaLabel", iconAriaLabel: "iconAriaLabel", disabled: ["disabled", "disabled", booleanAttribute], dateFormat: "dateFormat", multipleSeparator: "multipleSeparator", rangeSeparator: "rangeSeparator", inline: ["inline", "inline", booleanAttribute], showOtherMonths: ["showOtherMonths", "showOtherMonths", booleanAttribute], selectOtherMonths: ["selectOtherMonths", "selectOtherMonths", booleanAttribute], showIcon: ["showIcon", "showIcon", booleanAttribute], icon: "icon", appendTo: "appendTo", readonlyInput: ["readonlyInput", "readonlyInput", booleanAttribute], shortYearCutoff: "shortYearCutoff", monthNavigator: ["monthNavigator", "monthNavigator", booleanAttribute], yearNavigator: ["yearNavigator", "yearNavigator", booleanAttribute], hourFormat: "hourFormat", timeOnly: ["timeOnly", "timeOnly", booleanAttribute], stepYearPicker: ["stepYearPicker", "stepYearPicker", numberAttribute], stepHour: ["stepHour", "stepHour", numberAttribute], stepMinute: ["stepMinute", "stepMinute", numberAttribute], stepSecond: ["stepSecond", "stepSecond", numberAttribute], showSeconds: ["showSeconds", "showSeconds", booleanAttribute], required: ["required", "required", booleanAttribute], showOnFocus: ["showOnFocus", "showOnFocus", booleanAttribute], showWeek: ["showWeek", "showWeek", booleanAttribute], startWeekFromFirstDayOfYear: "startWeekFromFirstDayOfYear", showClear: ["showClear", "showClear", booleanAttribute], dataType: "dataType", selectionMode: "selectionMode", maxDateCount: ["maxDateCount", "maxDateCount", numberAttribute], showButtonBar: ["showButtonBar", "showButtonBar", booleanAttribute], todayButtonStyleClass: "todayButtonStyleClass", clearButtonStyleClass: "clearButtonStyleClass", autofocus: ["autofocus", "autofocus", booleanAttribute], autoZIndex: ["autoZIndex", "autoZIndex", booleanAttribute], baseZIndex: ["baseZIndex", "baseZIndex", numberAttribute], panelStyleClass: "panelStyleClass", panelStyle: "panelStyle", keepInvalid: ["keepInvalid", "keepInvalid", booleanAttribute], hideOnDateTimeSelect: ["hideOnDateTimeSelect", "hideOnDateTimeSelect", booleanAttribute], touchUI: ["touchUI", "touchUI", booleanAttribute], labelText: "labelText", timeSeparator: "timeSeparator", leftIcon: "leftIcon", focusTrap: ["focusTrap", "focusTrap", booleanAttribute], showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", tabindex: ["tabindex", "tabindex", numberAttribute], variant: "variant", minDate: "minDate", maxDate: "maxDate", disabledDates: "disabledDates", disabledDays: "disabledDays", yearRange: "yearRange", showTime: "showTime", responsiveOptions: "responsiveOptions", numberOfMonths: "numberOfMonths", firstDayOfWeek: "firstDayOfWeek", locale: "locale", view: "view", defaultDate: "defaultDate" }, outputs: { onFocus: "onFocus", onBlur: "onBlur", onClose: "onClose", onSelect: "onSelect", onClear: "onClear", onInput: "onInput", onTodayClick: "onTodayClick", onClearClick: "onClearClick", onMonthChange: "onMonthChange", onYearChange: "onYearChange", onClickOutside: "onClickOutside", onInlineSaved: "onInlineSaved", onInlineCancelled: "onInlineCancelled", onShow: "onShow" }, host: { properties: { "class.cax-inputwrapper-filled": "filled", "class.cax-inputwrapper-focus": "focus", "class.cax-calendar-clearable": "showClear && !disabled" }, classAttribute: "cax-element cax-inputwrapper" }, providers: [CALENDAR_VALUE_ACCESSOR], queries: [{ propertyName: "templates", predicate: CaxTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "inputfieldViewChild", first: true, predicate: ["inputfield"], descendants: true }, { propertyName: "content", first: true, predicate: ["contentWrapper"], descendants: true }], ngImport: i0, template: "<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", styles: ["@layer cax{.cax-calendar{position:relative;display:inline-flex;width:100%}.cax-calendar-main-label{font-weight:500;font-size:14px;line-height:20px;margin-bottom:8px}.cax-calendar .cax-inputtext{flex:1 1 auto;width:1%;text-overflow:ellipsis;height:40px;padding-left:1.8rem!important;padding-right:1.8rem!important}.cax-calendar-w-btn .cax-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.cax-calendar-w-btn .cax-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.cax-fluid .cax-calendar{display:flex}.cax-fluid .cax-calendar .cax-inputtext{width:1%}.cax-calendar .cax-datepicker{min-width:100%}.cax-datepicker{width:auto;position:absolute;top:0;left:0}.cax-datepicker-inline{display:inline-block;position:static;overflow-x:auto}.cax-datepicker-header{display:flex;align-items:center;justify-content:space-between}.cax-datepicker-header .cax-datepicker-title{margin:0 auto}.cax-datepicker-prev,.cax-datepicker-next{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.cax-datepicker-multiple-month .cax-datepicker-group-container .cax-datepicker-group{flex:1 1 auto}.cax-datepicker-multiple-month .cax-datepicker-group-container{display:flex}.cax-datepicker table{width:100%;border-collapse:collapse}.cax-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 auto;overflow:hidden;position:relative}.cax-monthpicker-month{width:33.3%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.cax-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.cax-timepicker{display:flex;justify-content:center;align-items:center}.cax-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.cax-timepicker>div{display:flex;align-items:center;flex-direction:column}.cax-datepicker-touch-ui,.cax-calendar .cax-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.cax-yearpicker-year{width:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.cax-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.cax-datepicker-icon{pointer-events:none}.cax-calendar-clearable{position:relative}.cax-datepicker-icon{pointer-events:none;left:1.67px;margin-top:1px!important}.cax-input-icon-left{order:-1}.cax-datepicker-inline-actions{display:flex;justify-content:space-between;margin-top:13px;padding:10px}.cax-datepicker-inline-actions .cax-datepicker-inline-input{margin-bottom:10px;position:relative;display:inline-block}.cax-datepicker-inline-actions .cax-datepicker-inline-input input{width:130px;height:32px;padding-left:2rem;border-radius:8px;font-size:14px;font-weight:500}.cax-datepicker-inline-actions .cax-datepicker-inline-input .cax-calendar-minimalistic{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);font-size:1rem;pointer-events:none}.left-side{display:flex;justify-content:space-between;gap:15px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[caxButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "link"] }, { kind: "component", type: i3.Button, selector: "cax-button", inputs: ["type", "iconPos", "icon", "badge", "rightIcon", "leftIcon", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i4.Ripple, selector: "[caxRipple]" }, { kind: "component", type: ChevronLeftIcon, selector: "ChevronLeftIcon" }, { kind: "component", type: ChevronRightIcon, selector: "ChevronRightIcon" }, { kind: "component", type: ChevronUpIcon, selector: "ChevronUpIcon" }, { kind: "component", type: ChevronDownIcon, selector: "ChevronDownIcon" }, { kind: "component", type: TimesIcon, selector: "TimesIcon" }, { kind: "ngmodule", type: AutoFocusModule }, { kind: "directive", type: i5.AutoFocus, selector: "[caxAutoFocus]", inputs: ["autofocus"] }], animations: [
3267
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: Calendar, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.caxConfig }, { token: i1.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
3268
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.21", type: Calendar, isStandalone: true, selector: "cax-calendar", inputs: { iconDisplay: "iconDisplay", style: "style", styleClass: "styleClass", inputStyle: "inputStyle", inputId: "inputId", name: "name", inputStyleClass: "inputStyleClass", placeholder: "placeholder", ariaLabelledBy: "ariaLabelledBy", ariaLabel: "ariaLabel", iconAriaLabel: "iconAriaLabel", disabled: ["disabled", "disabled", booleanAttribute], size: "size", dateFormat: "dateFormat", multipleSeparator: "multipleSeparator", rangeSeparator: "rangeSeparator", inline: ["inline", "inline", booleanAttribute], showOtherMonths: ["showOtherMonths", "showOtherMonths", booleanAttribute], selectOtherMonths: ["selectOtherMonths", "selectOtherMonths", booleanAttribute], showIcon: ["showIcon", "showIcon", booleanAttribute], icon: "icon", appendTo: "appendTo", readonlyInput: ["readonlyInput", "readonlyInput", booleanAttribute], shortYearCutoff: "shortYearCutoff", monthNavigator: ["monthNavigator", "monthNavigator", booleanAttribute], yearNavigator: ["yearNavigator", "yearNavigator", booleanAttribute], hourFormat: "hourFormat", timeOnly: ["timeOnly", "timeOnly", booleanAttribute], stepYearPicker: ["stepYearPicker", "stepYearPicker", numberAttribute], stepHour: ["stepHour", "stepHour", numberAttribute], stepMinute: ["stepMinute", "stepMinute", numberAttribute], stepSecond: ["stepSecond", "stepSecond", numberAttribute], showSeconds: ["showSeconds", "showSeconds", booleanAttribute], required: ["required", "required", booleanAttribute], showOnFocus: ["showOnFocus", "showOnFocus", booleanAttribute], showWeek: ["showWeek", "showWeek", booleanAttribute], startWeekFromFirstDayOfYear: "startWeekFromFirstDayOfYear", showClear: ["showClear", "showClear", booleanAttribute], dataType: "dataType", selectionMode: "selectionMode", maxDateCount: ["maxDateCount", "maxDateCount", numberAttribute], showButtonBar: ["showButtonBar", "showButtonBar", booleanAttribute], todayButtonStyleClass: "todayButtonStyleClass", clearButtonStyleClass: "clearButtonStyleClass", autofocus: ["autofocus", "autofocus", booleanAttribute], autoZIndex: ["autoZIndex", "autoZIndex", booleanAttribute], baseZIndex: ["baseZIndex", "baseZIndex", numberAttribute], panelStyleClass: "panelStyleClass", panelStyle: "panelStyle", keepInvalid: ["keepInvalid", "keepInvalid", booleanAttribute], hideOnDateTimeSelect: ["hideOnDateTimeSelect", "hideOnDateTimeSelect", booleanAttribute], touchUI: ["touchUI", "touchUI", booleanAttribute], labelText: "labelText", helperText: "helperText", errorText: "errorText", invalid: ["invalid", "invalid", booleanAttribute], timeSeparator: "timeSeparator", leftIcon: "leftIcon", focusTrap: ["focusTrap", "focusTrap", booleanAttribute], showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", tabindex: ["tabindex", "tabindex", numberAttribute], variant: "variant", minDate: "minDate", maxDate: "maxDate", disabledDates: "disabledDates", disabledDays: "disabledDays", yearRange: "yearRange", showTime: "showTime", responsiveOptions: "responsiveOptions", numberOfMonths: "numberOfMonths", firstDayOfWeek: "firstDayOfWeek", locale: "locale", view: "view", defaultDate: "defaultDate" }, outputs: { onFocus: "onFocus", onBlur: "onBlur", onClose: "onClose", onSelect: "onSelect", onClear: "onClear", onInput: "onInput", onTodayClick: "onTodayClick", onClearClick: "onClearClick", onMonthChange: "onMonthChange", onYearChange: "onYearChange", onClickOutside: "onClickOutside", onDateSaved: "onDateSaved", onShow: "onShow" }, host: { properties: { "class.cax-inputwrapper-filled": "filled", "class.cax-inputwrapper-focus": "focus", "class.cax-calendar-clearable": "showClear && !disabled" }, classAttribute: "cax-element cax-inputwrapper" }, providers: [CALENDAR_VALUE_ACCESSOR], queries: [{ propertyName: "templates", predicate: CaxTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "inputfieldViewChild", first: true, predicate: ["inputfield"], descendants: true }, { propertyName: "content", first: true, predicate: ["contentWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"cax-calendar-container\" [ngClass]=\"['cax-calendar-' + size]\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <div *ngIf=\"labelText\" [ngClass]=\"{'cax-calendar-main-label': labelText}\">\n <label *ngIf=\"labelText\" [ngClass]=\"{'cax-text-action-sm-semibold': size == 'sm', 'cax-text-action-md-semibold': size == 'md', 'cax-text-action-lg-semibold': size == 'lg'}\">{{ labelText }}</label>\n </div>\n <span\n #container\n (click)=\"onButtonClick($event)\"\n [ngClass]=\"{\n 'cax-calendar': true,\n 'cax-input-icon-left': showIcon && iconDisplay === 'input' && leftIcon,\n 'cax-input-icon-right': showIcon && iconDisplay === 'input',\n 'cax-calendar-w-btn': showIcon && iconDisplay === 'button',\n 'cax-calendar-timeonly': timeOnly,\n 'cax-calendar-disabled': disabled,\n 'cax-focus': focus || overlayVisible\n }\"\n >\n <ng-template [ngIf]=\"!inline\">\n <input\n #inputfield\n type=\"text\"\n role=\"combobox\"\n [attr.id]=\"inputId\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.aria-required]=\"required\"\n aria-autocomplete=\"none\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n [attr.aria-controls]=\"overlayVisible ? panelId : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n [value]=\"inputFieldValue\"\n (focus)=\"onInputFocus($event)\"\n (keydown)=\"onInputKeydown($event)\"\n (blur)=\"onInputBlur($event)\"\n [readonly]=\"readonlyInput\"\n (input)=\"onUserInput($event)\"\n [ngStyle]=\"inputStyle\"\n [class]=\"inputStyleClass\"\n [placeholder]=\"placeholder || ''\"\n [disabled]=\"disabled\"\n [attr.tabindex]=\"tabindex\"\n [attr.inputmode]=\"touchUI ? 'off' : null\"\n [ngClass]=\"inputClass\"\n autocomplete=\"off\"\n caxAutoFocus\n [autofocus]=\"autofocus\"\n [class.cax-text-action-sm-medium]=\"size === 'sm'\"\n [class.cax-text-action-md-regular]=\"size === 'md'\"\n [class.cax-text-action-lg-regular]=\"size === 'lg'\"\n />\n <ng-container *ngIf=\"showClear && !disabled && value != null\">\n <TimesIcon *ngIf=\"!clearIconTemplate\" [styleClass]=\"'cax-calendar-clear-icon'\" (click)=\"clear($event)\" />\n <span *ngIf=\"clearIconTemplate\" class=\"cax-calendar-clear-icon\" (click)=\"clear($event)\">\n <ng-template *ngTemplateOutlet=\"clearIconTemplate\"></ng-template>\n </span>\n </ng-container>\n <button\n type=\"button\"\n [attr.aria-label]=\"iconButtonAriaLabel\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n [attr.aria-controls]=\"overlayVisible ? panelId : null\"\n caxButton\n caxRipple\n *ngIf=\"showIcon && iconDisplay === 'button'\"\n (click)=\"onButtonClick($event, inputfield)\"\n class=\"cax-datepicker-trigger cax-button-icon-only\"\n [disabled]=\"disabled\"\n tabindex=\"0\"\n >\n <span *ngIf=\"icon\" [ngClass]=\"icon\"></span>\n <ng-container *ngIf=\"!icon\">\n <i class=\"cax cax-calendar-icon\" *ngIf=\"!triggerIconTemplate\"></i>\n <ng-template *ngTemplateOutlet=\"triggerIconTemplate\"></ng-template>\n </ng-container>\n </button>\n <ng-container *ngIf=\"iconDisplay === 'input' && showIcon\">\n <i\n class=\"cax cax-calendar-icon\"\n *ngIf=\"!inputIconTemplate\"\n [ngClass]=\"{\n 'cax-datepicker-icon': showOnFocus\n }\"\n ></i>\n <ng-container *ngTemplateOutlet=\"inputIconTemplate; context: { clickCallBack: onButtonClick.bind(this) }\"></ng-container>\n </ng-container>\n </ng-template>\n <ng-container>\n <i class=\"cax cax-downarrow\" [ngClass]=\"overlayVisible ? 'cax-alt-arrow-up' : 'cax-alt-arrow-down'\"></i>\n </ng-container>\n\n <div\n #contentWrapper\n (click)=\"onOverlayClick($event)\"\n [attr.id]=\"panelId\"\n [class]=\"panelStyleClass\"\n [ngStyle]=\"panelStyle\"\n [ngClass]=\"{\n 'cax-datepicker cax-component': true,\n 'cax-datepicker-inline': inline,\n 'cax-disabled': disabled,\n 'cax-datepicker-timeonly': timeOnly,\n 'cax-datepicker-multiple-month': this.numberOfMonths > 1,\n 'cax-datepicker-monthpicker': view === 'month',\n 'cax-datepicker-touch-ui': touchUI\n }\"\n [@overlayAnimation]=\"\n touchUI\n ? { value: 'visibleTouchUI', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\n : { value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\n \"\n [attr.aria-label]=\"getTranslation('chooseDate')\"\n [attr.role]=\"inline ? null : 'dialog'\"\n [attr.aria-modal]=\"inline ? null : 'true'\"\n [@.disabled]=\"inline === true\"\n (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\"\n (@overlayAnimation.done)=\"onOverlayAnimationDone($event)\"\n (click)=\"onOverlayClick($event)\"\n *ngIf=\"inline || overlayVisible\"\n >\n <ng-content select=\"cax-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <ng-container *ngIf=\"!timeOnly\">\n <div class=\"cax-datepicker-group-container\">\n <div class=\"cax-datepicker-group\" *ngFor=\"let month of months; let i = index\">\n <!-- <div class=\"cax-datepicker-header\">\n <div class=\"cax-datepicker-month-selector\" *ngIf=\"view !== 'year' && view !== 'month'\">\n <cax-button icon=\"cax cax-alt-arrow-left\" link=\"true\" size=\"sm\" severity=\"secondary\" (click)=\"onPrevButtonClick($event)\" (keydown)=\"onContainerButtonKeydown($event)\" styleClass=\"cax-datepicker-prev\"></cax-button>\n <div class=\"cax-datepicker-month-dropdown\" [class.cax-datepicker-dropdown-no-icon]=\"view === 'month'\" (click)=\"switchToMonthView($event)\" (keydown)=\"onContainerButtonKeydown($event)\">\n <span>{{ getMonthName(month.month) }}</span>\n <i *ngIf=\"currentView !== 'month' && view !== 'month'\" class=\"cax cax-alt-arrow-down\"></i>\n <i *ngIf=\"currentView === 'month' && view !== 'month'\" class=\"cax cax-alt-arrow-up\"></i>\n </div>\n <cax-button icon=\"cax cax-alt-arrow-right\" link=\"true\" size=\"sm\" severity=\"secondary\" (click)=\"onNextButtonClick($event)\" (keydown)=\"onContainerButtonKeydown($event)\" styleClass=\"cax-datepicker-next\"></cax-button>\n </div>\n <div class=\"cax-datepicker-year-selector\">\n <cax-button icon=\"cax cax-alt-arrow-left\" link=\"true\" size=\"sm\" severity=\"secondary\" (click)=\"onPrevYearButtonClick($event)\" (keydown)=\"onContainerButtonKeydown($event)\" styleClass=\"cax-datepicker-prev\"></cax-button>\n <div class=\"cax-datepicker-year-dropdown\" [class.cax-datepicker-dropdown-no-icon]=\"view === 'year'\" (click)=\"switchToYearView($event)\" (keydown)=\"onContainerButtonKeydown($event)\">\n <span>{{ getYear(month) }}</span>\n <i *ngIf=\"currentView !== 'year' && view !== 'year'\" class=\"cax cax-alt-arrow-down\"></i>\n <i *ngIf=\"currentView === 'year' && view !== 'year'\" class=\"cax cax-alt-arrow-up\"></i>\n </div>\n <cax-button icon=\"cax cax-alt-arrow-right\" link=\"true\" size=\"sm\" severity=\"secondary\" (click)=\"onNextYearButtonClick($event)\" (keydown)=\"onContainerButtonKeydown($event)\" styleClass=\"cax-datepicker-next\"></cax-button>\n </div>\n </div> -->\n <div class=\"cax-datepicker-header\">\n <button (keydown)=\"onContainerButtonKeydown($event)\" class=\"cax-datepicker-prev cax-link\" (click)=\"onPrevButtonClick($event)\" *ngIf=\"i === 0\" type=\"button\" [attr.aria-label]=\"prevIconAriaLabel\" caxRipple>\n <!-- <ChevronLeftIcon [styleClass]=\"'cax-datepicker-prev-icon'\" *ngIf=\"!previousIconTemplate\" /> -->\n <i class=\"cax cax-alt-arrow-left cax-datepicker-prev-icon\" *ngIf=\"!previousIconTemplate\"></i>\n <span *ngIf=\"previousIconTemplate\" class=\"cax-datepicker-prev-icon\">\n <ng-template *ngTemplateOutlet=\"previousIconTemplate\"></ng-template>\n </span>\n </button>\n <div class=\"cax-datepicker-title\">\n <button\n type=\"button\"\n (click)=\"switchToMonthView($event)\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n *ngIf=\"currentView === 'date'\"\n class=\"cax-datepicker-month cax-link cax-text-action-lg-link-semibold\"\n [disabled]=\"switchViewButtonDisabled()\"\n [attr.aria-label]=\"this.getTranslation('chooseMonth')\"\n >\n {{ getMonthName(month.month) }}\n </button>\n <button\n type=\"button\"\n (click)=\"switchToYearView($event)\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n *ngIf=\"currentView !== 'year'\"\n class=\"cax-datepicker-year cax-link cax-text-action-lg-link-semibold\"\n [disabled]=\"switchViewButtonDisabled()\"\n [attr.aria-label]=\"getTranslation('chooseYear')\"\n >\n {{ getYear(month) }}\n </button>\n <span class=\"cax-datepicker-decade cax-text-action-lg-link-semibold\" *ngIf=\"currentView === 'year'\">\n <ng-container *ngIf=\"!decadeTemplate\">{{ yearPickerValues()[0] }} - {{ yearPickerValues()[yearPickerValues().length - 1] }}</ng-container>\n <ng-container *ngTemplateOutlet=\"decadeTemplate; context: { $implicit: yearPickerValues }\"></ng-container>\n </span>\n </div>\n <button\n (keydown)=\"onContainerButtonKeydown($event)\"\n class=\"cax-datepicker-next cax-link\"\n (click)=\"onNextButtonClick($event)\"\n [style.display]=\"numberOfMonths === 1 ? 'inline-flex' : i === numberOfMonths - 1 ? 'inline-flex' : 'none'\"\n type=\"button\"\n [attr.aria-label]=\"nextIconAriaLabel\"\n caxRipple\n >\n <!-- <ChevronRightIcon [styleClass]=\"'cax-datepicker-next-icon'\" *ngIf=\"!nextIconTemplate\" /> -->\n <i class=\"cax cax-alt-arrow-right cax-datepicker-next-icon\" *ngIf=\"!nextIconTemplate\"></i>\n <span *ngIf=\"nextIconTemplate\" class=\"cax-datepicker-next-icon\">\n <ng-template *ngTemplateOutlet=\"nextIconTemplate\"></ng-template>\n </span>\n </button>\n </div>\n\n <div class=\"cax-datepicker-calendar-container\" *ngIf=\"currentView === 'date'\">\n <table class=\"cax-datepicker-calendar\" role=\"grid\">\n <thead>\n <tr>\n <th *ngIf=\"showWeek\" class=\"cax-datepicker-weekheader cax-disabled\">\n <span>{{ getTranslation('weekHeader') }}</span>\n </th>\n <th scope=\"col\" *ngFor=\"let weekDay of weekDays; let begin = first; let end = last\">\n <span>{{ weekDay }}</span>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let week of month.dates; let j = index\">\n <td *ngIf=\"showWeek\" class=\"cax-datepicker-weeknumber\">\n <span class=\"cax-disabled\"> {{ month.weekNumbers[j] }} </span>\n </td>\n <td class=\"cax-text-action-lg-semibold\" *ngFor=\"let date of week\" [attr.aria-label]=\"date.day\" [ngClass]=\"{ 'cax-datepicker-other-month': date.otherMonth, 'cax-datepicker-today': date.today }\">\n <ng-container *ngIf=\"date.otherMonth ? showOtherMonths : true\">\n <span\n [ngClass]=\"{ 'cax-highlight cax-datepicker-current-day': isSelected(date) && date.selectable, 'cax-disabled': !date.selectable, 'cax-datepicker-range-start': isRangeStart(date) && isRangeSelectionCompleted(), 'cax-datepicker-range-end': isRangeEnd(date) && isRangeSelectionCompleted(), 'cax-datepicker-range-between': isRangeBetween(date) }\"\n (click)=\"onDateSelect($event, date)\"\n draggable=\"false\"\n [attr.data-date]=\"formatDateKey(formatDateMetaToDate(date))\"\n (keydown)=\"onDateCellKeydown($event, date, i)\"\n caxRipple\n >\n <ng-container *ngIf=\"!dateTemplate && (date.selectable || !disabledDateTemplate)\">{{ date.day }}</ng-container>\n <ng-container *ngIf=\"date.selectable || !disabledDateTemplate\">\n <ng-container *ngTemplateOutlet=\"dateTemplate; context: { $implicit: date }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!date.selectable\">\n <ng-container *ngTemplateOutlet=\"disabledDateTemplate; context: { $implicit: date }\"></ng-container>\n </ng-container>\n </span>\n <div *ngIf=\"isSelected(date)\" class=\"cax-hidden-accessible\" aria-live=\"polite\">{{ date.day }}</div>\n </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n <div class=\"cax-monthpicker\" *ngIf=\"currentView === 'month'\">\n <span\n *ngFor=\"let m of monthPickerValues(); let i = index\"\n (click)=\"onMonthSelect($event, i)\"\n (keydown)=\"onMonthCellKeydown($event, i)\"\n class=\"cax-monthpicker-month cax-text-action-lg-semibold\"\n [ngClass]=\"{ 'cax-highlight': isMonthSelected(i), 'cax-disabled': isMonthDisabled(i) }\"\n caxRipple\n >\n {{ m }}\n <div *ngIf=\"isMonthSelected(i)\" class=\"cax-hidden-accessible\" aria-live=\"polite\">{{ m }}</div>\n </span>\n </div>\n <div class=\"cax-yearpicker\" *ngIf=\"currentView === 'year'\">\n <span\n *ngFor=\"let y of yearPickerValues()\"\n (click)=\"onYearSelect($event, y)\"\n (keydown)=\"onYearCellKeydown($event, y)\"\n class=\"cax-yearpicker-year cax-text-action-lg-semibold\"\n [ngClass]=\"{ 'cax-highlight': isYearSelected(y), 'cax-disabled': isYearDisabled(y) }\"\n caxRipple\n >\n {{ y }}\n <div *ngIf=\"isYearSelected(y)\" class=\"cax-hidden-accessible\" aria-live=\"polite\">{{ y }}</div>\n </span>\n </div>\n </ng-container>\n <div class=\"cax-timepicker\" *ngIf=\"(showTime || timeOnly) && currentView === 'date'\">\n <div class=\"cax-hour-picker\">\n <button\n class=\"cax-link\"\n type=\"button\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"incrementHour($event)\"\n (keydown.space)=\"incrementHour($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 0, 1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('nextHour')\"\n caxRipple\n >\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\n </button>\n <span><ng-container *ngIf=\"currentHour < 10\">0</ng-container>{{ currentHour }}</span>\n <button\n class=\"cax-link\"\n type=\"button\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"decrementHour($event)\"\n (keydown.space)=\"decrementHour($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 0, -1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('prevHour')\"\n caxRipple\n >\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\n </button>\n </div>\n <div class=\"cax-separator\">\n <span>{{ timeSeparator }}</span>\n </div>\n <div class=\"cax-minute-picker\">\n <button\n class=\"cax-link\"\n type=\"button\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"incrementMinute($event)\"\n (keydown.space)=\"incrementMinute($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 1, 1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('nextMinute')\"\n caxRipple\n >\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\n </button>\n <span><ng-container *ngIf=\"currentMinute < 10\">0</ng-container>{{ currentMinute }}</span>\n <button\n class=\"cax-link\"\n type=\"button\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"decrementMinute($event)\"\n (keydown.space)=\"decrementMinute($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 1, -1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('prevMinute')\"\n caxRipple\n >\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\n </button>\n </div>\n <div class=\"cax-separator\" *ngIf=\"showSeconds\">\n <span>{{ timeSeparator }}</span>\n </div>\n <div class=\"cax-second-picker\" *ngIf=\"showSeconds\">\n <button\n class=\"cax-link\"\n type=\"button\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"incrementSecond($event)\"\n (keydown.space)=\"incrementSecond($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 2, 1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('nextSecond')\"\n caxRipple\n >\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\n </button>\n <span><ng-container *ngIf=\"currentSecond < 10\">0</ng-container>{{ currentSecond }}</span>\n <button\n class=\"cax-link\"\n type=\"button\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"decrementSecond($event)\"\n (keydown.space)=\"decrementSecond($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 2, -1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('prevSecond')\"\n caxRipple\n >\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\n </button>\n </div>\n <div class=\"cax-ampm-picker\" *ngIf=\"hourFormat == '12'\">\n <button class=\"cax-link\" type=\"button\" (keydown)=\"onContainerButtonKeydown($event)\" (click)=\"toggleAMPM($event)\" (keydown.enter)=\"toggleAMPM($event)\" [attr.aria-label]=\"getTranslation('am')\" caxRipple>\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\n </button>\n <span>{{ pm ? 'PM' : 'AM' }}</span>\n <button class=\"cax-link\" type=\"button\" (keydown)=\"onContainerButtonKeydown($event)\" (click)=\"toggleAMPM($event)\" (keydown.enter)=\"toggleAMPM($event)\" [attr.aria-label]=\"getTranslation('pm')\" caxRipple>\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\n </button>\n </div>\n </div>\n <div class=\"cax-datepicker-buttonbar\" *ngIf=\"showButtonBar\">\n <cax-button\n *ngIf=\"currentView !== 'year' && currentView !== 'month'\"\n type=\"button\"\n [link]=\"true\"\n [label]=\"getTranslation('clear')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (onClick)=\"onClearButtonClick($event)\"\n caxRipple\n ></cax-button>\n <cax-button *ngIf=\"currentView === 'year' || currentView === 'month'\" type=\"button\" [link]=\"true\" [label]=\"'Back'\" (keydown)=\"onContainerButtonKeydown($event)\" (onClick)=\"onBackButtonClick($event)\" caxRipple></cax-button>\n </div>\n\n <div class=\"cax-datepicker-inline-actions\">\n <div class=\"cax-datepicker-manual-input\">\n <span class=\"cax-input-icon-left\">\n <i class=\"cax cax-calendar-icon\"></i>\n <input\n type=\"text\"\n class=\"cax-inputtext cax-text-action-sm-medium\"\n [ngClass]=\"{'cax-invalid': manualInputError}\"\n [placeholder]=\"getDateFormat() + (isRangeSelection() ? ' - ' + getDateFormat() : '')\"\n [value]=\"manualInputValue\"\n (input)=\"onManualInput($event)\"\n [disabled]=\"disabled\"\n />\n </span>\n <small *ngIf=\"manualInputError\" class=\"cax-error cax-text-action-sm-medium\">{{ manualInputError }}</small>\n </div>\n <!-- Similar to input mask -->\n <div class=\"cax-datepicker-inline-buttons\">\n <cax-button [label]=\"'Clear'\" [severity]=\"'secondary'\" [size]=\"'sm'\" outlined=\"true\" (onClick)=\"onClearButtonClick($event)\"> </cax-button>\n <cax-button [label]=\"'Save'\" [size]=\"'sm'\" outlined=\"true\" (onClick)=\"onDateSave($event)\" [disabled]=\"!!manualInputError\"> </cax-button>\n </div>\n </div>\n <ng-content select=\"cax-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </span>\n\n <small *ngIf=\"invalid\" class=\"cax-error\" [ngClass]=\"{'disabled-opacity': disabled, 'cax-text-action-sm-medium': size === 'sm', 'cax-text-action-md-regular': size === 'md', 'cax-text-action-lg-regular': size === 'lg'}\"> {{ errorText }} </small>\n <small *ngIf=\"helperText && !invalid\" class=\"cax-helper-text\" [ngClass]=\"{'disabled-opacity': disabled, 'cax-text-action-sm-medium': size === 'sm', 'cax-text-action-md-regular': size === 'md', 'cax-text-action-lg-regular': size === 'lg'}\">\n {{ helperText }}\n </small>\n</div>\n", styles: ["@layer cax{.cax-calendar-container{display:flex;flex-direction:column;gap:8px;width:216px}.cax-calendar{position:relative;display:inline-flex}.cax-calendar-main-label{font-weight:600;font-size:14px;line-height:20px}.cax-calendar .cax-inputtext{height:40px;padding:0 38px;cursor:pointer}.cax-calendar-w-btn .cax-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.cax-calendar-w-btn .cax-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.cax-downarrow{position:absolute;font-size:20px;top:25%!important;right:10px;cursor:pointer;pointer-events:none}.cax-fluid .cax-calendar{display:flex}.cax-calendar .cax-datepicker{width:360px;min-width:360px}.cax-datepicker{width:auto;position:absolute;top:0;left:0;display:flex;flex-direction:column;gap:16px}.cax-datepicker .cax-datepicker-group{display:flex;flex-direction:column;gap:16px}.cax-datepicker-inline{position:relative}.cax-datepicker-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px}.cax-datepicker-header .cax-datepicker-prev,.cax-datepicker-header .cax-datepicker-next{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.cax-datepicker-header .cax-datepicker-prev-icon,.cax-datepicker-header .cax-datepicker-next-icon{font-size:24px}.cax-datepicker-header .cax-datepicker-title{display:flex;gap:4px}.cax-datepicker-header .cax-datepicker-title .cax-datepicker-month,.cax-datepicker-header .cax-datepicker-title .cax-datepicker-year,.cax-datepicker-header .cax-datepicker-title .cax-datepicker-decade{padding:8px 12px;font-size:16px;font-weight:600;text-decoration:underline}.cax-datepicker-header .cax-datepicker-month-selector,.cax-datepicker-header .cax-datepicker-year-selector{display:flex;align-items:center}.cax-datepicker-header .cax-datepicker-month-selector .cax-button .cax-button-icon-center,.cax-datepicker-header .cax-datepicker-year-selector .cax-button .cax-button-icon-center{font-size:16px!important;font-weight:500!important}.cax-datepicker-header .cax-datepicker-month-selector .cax-button:focus,.cax-datepicker-header .cax-datepicker-year-selector .cax-button:focus{outline:none!important}.cax-datepicker-header .cax-datepicker-month-selector .cax-datepicker-month-dropdown,.cax-datepicker-header .cax-datepicker-month-selector .cax-datepicker-year-dropdown,.cax-datepicker-header .cax-datepicker-year-selector .cax-datepicker-month-dropdown,.cax-datepicker-header .cax-datepicker-year-selector .cax-datepicker-year-dropdown{display:flex;align-items:center;font-weight:600;margin-left:12px;cursor:pointer}.cax-datepicker-header .cax-datepicker-month-selector .cax-datepicker-month-dropdown.cax-datepicker-dropdown-no-icon,.cax-datepicker-header .cax-datepicker-month-selector .cax-datepicker-year-dropdown.cax-datepicker-dropdown-no-icon,.cax-datepicker-header .cax-datepicker-year-selector .cax-datepicker-month-dropdown.cax-datepicker-dropdown-no-icon,.cax-datepicker-header .cax-datepicker-year-selector .cax-datepicker-year-dropdown.cax-datepicker-dropdown-no-icon{margin-right:12px}.cax-datepicker-header .cax-datepicker-month-selector .cax-datepicker-month-dropdown i,.cax-datepicker-header .cax-datepicker-month-selector .cax-datepicker-year-dropdown i,.cax-datepicker-header .cax-datepicker-year-selector .cax-datepicker-month-dropdown i,.cax-datepicker-header .cax-datepicker-year-selector .cax-datepicker-year-dropdown i{font-size:16px;height:32px;width:32px;display:flex;align-items:center;justify-content:center}.cax-datepicker-multiple-month .cax-datepicker-group-container .cax-datepicker-group{flex:1 1 auto}.cax-datepicker-multiple-month .cax-datepicker-group-container{display:flex}.cax-datepicker table{width:100%;border-collapse:collapse;border-spacing:0}.cax-datepicker td{padding:0}.cax-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;overflow:visible;position:relative;margin:0 auto;width:48px;height:48px}.cax-datepicker td>span.cax-datepicker-range-between{background:var(--primary-75)!important;border-radius:0!important;color:var(--neutral-900)!important;width:100%!important}.cax-datepicker td>span.cax-datepicker-range-start.cax-highlight{background:transparent!important;width:100%!important;z-index:1}.cax-datepicker td>span.cax-datepicker-range-start.cax-highlight:before{content:\"\";position:absolute;top:0;right:0;width:50%;height:100%;background:var(--primary-75);z-index:-1}.cax-datepicker td>span.cax-datepicker-range-start.cax-highlight:after{content:\"\";position:absolute;top:0;left:50%;transform:translate(-50%);width:48px;height:48px;background:var(--primary-500);border-radius:50%;z-index:-1}.cax-datepicker td>span.cax-datepicker-range-end.cax-highlight{background:transparent!important;width:100%!important;z-index:1}.cax-datepicker td>span.cax-datepicker-range-end.cax-highlight:before{content:\"\";position:absolute;top:0;left:0;width:50%;height:100%;background:var(--primary-75);z-index:-1}.cax-datepicker td>span.cax-datepicker-range-end.cax-highlight:after{content:\"\";position:absolute;top:0;left:50%;transform:translate(-50%);width:48px;height:48px;background:var(--primary-500);border-radius:50%;z-index:-1}.cax-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.cax-timepicker{display:flex;justify-content:center;align-items:center}.cax-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.cax-timepicker>div{display:flex;align-items:center;flex-direction:column}.cax-datepicker-touch-ui,.cax-calendar .cax-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.cax-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.cax-calendar-clearable{position:relative}.cax-datepicker-icon{pointer-events:none;position:absolute;left:10px;font-size:20px;top:25%!important}.cax-datepicker-inline-actions{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 16px 0}.cax-datepicker-inline-actions .cax-datepicker-manual-input{display:flex;flex-direction:column;gap:4px;flex:1 1 auto;margin-right:12px}.cax-datepicker-inline-actions .cax-datepicker-manual-input .cax-input-icon-left{width:100%;position:relative;display:flex;align-items:center}.cax-datepicker-inline-actions .cax-datepicker-manual-input .cax-input-icon-left i{position:absolute;left:8px;top:25%!important;font-size:16px;color:var(--neutral-900)}.cax-datepicker-inline-actions .cax-datepicker-manual-input .cax-input-icon-left .cax-inputtext{width:100%;height:32px;padding:4px 8px 4px 30px;font-size:12px}.cax-datepicker-inline-actions .cax-datepicker-manual-input .cax-input-icon-left .cax-inputtext.cax-invalid{border-color:var(--error-600)}.cax-datepicker-inline-actions .cax-datepicker-manual-input .cax-input-icon-left .cax-inputtext.cax-invalid:hover{border-color:var(--error-750);box-shadow:0 0 0 1px var(--error-750)}.cax-datepicker-inline-actions .cax-datepicker-manual-input .cax-error{font-size:11px;color:var(--error-600)}.cax-datepicker-inline-actions .cax-datepicker-inline-buttons{margin-left:auto;display:flex;align-items:center;gap:8px}.left-side{display:flex;justify-content:space-between;gap:15px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[caxButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "link"] }, { kind: "component", type: i3.Button, selector: "cax-button", inputs: ["type", "iconPos", "icon", "badge", "rightIcon", "leftIcon", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i4.Ripple, selector: "[caxRipple]" }, { kind: "component", type: ChevronUpIcon, selector: "ChevronUpIcon" }, { kind: "component", type: ChevronDownIcon, selector: "ChevronDownIcon" }, { kind: "component", type: TimesIcon, selector: "TimesIcon" }, { kind: "ngmodule", type: AutoFocusModule }, { kind: "directive", type: i5.AutoFocus, selector: "[caxAutoFocus]", inputs: ["autofocus"] }], animations: [
2988
3269
  trigger('overlayAnimation', [
2989
3270
  state('visibleTouchUI', style({
2990
3271
  transform: 'translate(-50%,-50%)',
@@ -3002,7 +3283,7 @@ class Calendar {
3002
3283
  ])
3003
3284
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3004
3285
  }
3005
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: Calendar, decorators: [{
3286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: Calendar, decorators: [{
3006
3287
  type: Component,
3007
3288
  args: [{ selector: 'cax-calendar', animations: [
3008
3289
  trigger('overlayAnimation', [
@@ -3025,7 +3306,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImpo
3025
3306
  '[class.cax-inputwrapper-filled]': 'filled',
3026
3307
  '[class.cax-inputwrapper-focus]': 'focus',
3027
3308
  '[class.cax-calendar-clearable]': 'showClear && !disabled'
3028
- }, providers: [CALENDAR_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, ButtonModule, SharedModule, RippleModule, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronDownIcon, TimesIcon, CalendarIcon, AutoFocusModule, ArrowDownIcon], template: "<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", styles: ["@layer cax{.cax-calendar{position:relative;display:inline-flex;width:100%}.cax-calendar-main-label{font-weight:500;font-size:14px;line-height:20px;margin-bottom:8px}.cax-calendar .cax-inputtext{flex:1 1 auto;width:1%;text-overflow:ellipsis;height:40px;padding-left:1.8rem!important;padding-right:1.8rem!important}.cax-calendar-w-btn .cax-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.cax-calendar-w-btn .cax-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.cax-fluid .cax-calendar{display:flex}.cax-fluid .cax-calendar .cax-inputtext{width:1%}.cax-calendar .cax-datepicker{min-width:100%}.cax-datepicker{width:auto;position:absolute;top:0;left:0}.cax-datepicker-inline{display:inline-block;position:static;overflow-x:auto}.cax-datepicker-header{display:flex;align-items:center;justify-content:space-between}.cax-datepicker-header .cax-datepicker-title{margin:0 auto}.cax-datepicker-prev,.cax-datepicker-next{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.cax-datepicker-multiple-month .cax-datepicker-group-container .cax-datepicker-group{flex:1 1 auto}.cax-datepicker-multiple-month .cax-datepicker-group-container{display:flex}.cax-datepicker table{width:100%;border-collapse:collapse}.cax-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;margin:0 auto;overflow:hidden;position:relative}.cax-monthpicker-month{width:33.3%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.cax-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.cax-timepicker{display:flex;justify-content:center;align-items:center}.cax-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.cax-timepicker>div{display:flex;align-items:center;flex-direction:column}.cax-datepicker-touch-ui,.cax-calendar .cax-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.cax-yearpicker-year{width:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.cax-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.cax-datepicker-icon{pointer-events:none}.cax-calendar-clearable{position:relative}.cax-datepicker-icon{pointer-events:none;left:1.67px;margin-top:1px!important}.cax-input-icon-left{order:-1}.cax-datepicker-inline-actions{display:flex;justify-content:space-between;margin-top:13px;padding:10px}.cax-datepicker-inline-actions .cax-datepicker-inline-input{margin-bottom:10px;position:relative;display:inline-block}.cax-datepicker-inline-actions .cax-datepicker-inline-input input{width:130px;height:32px;padding-left:2rem;border-radius:8px;font-size:14px;font-weight:500}.cax-datepicker-inline-actions .cax-datepicker-inline-input .cax-calendar-minimalistic{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);font-size:1rem;pointer-events:none}.left-side{display:flex;justify-content:space-between;gap:15px}}\n"] }]
3309
+ }, providers: [CALENDAR_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, ButtonModule, SharedModule, RippleModule, ChevronUpIcon, ChevronDownIcon, TimesIcon, AutoFocusModule], template: "<div class=\"cax-calendar-container\" [ngClass]=\"['cax-calendar-' + size]\" [ngStyle]=\"style\" [class]=\"styleClass\">\n <div *ngIf=\"labelText\" [ngClass]=\"{'cax-calendar-main-label': labelText}\">\n <label *ngIf=\"labelText\" [ngClass]=\"{'cax-text-action-sm-semibold': size == 'sm', 'cax-text-action-md-semibold': size == 'md', 'cax-text-action-lg-semibold': size == 'lg'}\">{{ labelText }}</label>\n </div>\n <span\n #container\n (click)=\"onButtonClick($event)\"\n [ngClass]=\"{\n 'cax-calendar': true,\n 'cax-input-icon-left': showIcon && iconDisplay === 'input' && leftIcon,\n 'cax-input-icon-right': showIcon && iconDisplay === 'input',\n 'cax-calendar-w-btn': showIcon && iconDisplay === 'button',\n 'cax-calendar-timeonly': timeOnly,\n 'cax-calendar-disabled': disabled,\n 'cax-focus': focus || overlayVisible\n }\"\n >\n <ng-template [ngIf]=\"!inline\">\n <input\n #inputfield\n type=\"text\"\n role=\"combobox\"\n [attr.id]=\"inputId\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [attr.aria-required]=\"required\"\n aria-autocomplete=\"none\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n [attr.aria-controls]=\"overlayVisible ? panelId : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n [value]=\"inputFieldValue\"\n (focus)=\"onInputFocus($event)\"\n (keydown)=\"onInputKeydown($event)\"\n (blur)=\"onInputBlur($event)\"\n [readonly]=\"readonlyInput\"\n (input)=\"onUserInput($event)\"\n [ngStyle]=\"inputStyle\"\n [class]=\"inputStyleClass\"\n [placeholder]=\"placeholder || ''\"\n [disabled]=\"disabled\"\n [attr.tabindex]=\"tabindex\"\n [attr.inputmode]=\"touchUI ? 'off' : null\"\n [ngClass]=\"inputClass\"\n autocomplete=\"off\"\n caxAutoFocus\n [autofocus]=\"autofocus\"\n [class.cax-text-action-sm-medium]=\"size === 'sm'\"\n [class.cax-text-action-md-regular]=\"size === 'md'\"\n [class.cax-text-action-lg-regular]=\"size === 'lg'\"\n />\n <ng-container *ngIf=\"showClear && !disabled && value != null\">\n <TimesIcon *ngIf=\"!clearIconTemplate\" [styleClass]=\"'cax-calendar-clear-icon'\" (click)=\"clear($event)\" />\n <span *ngIf=\"clearIconTemplate\" class=\"cax-calendar-clear-icon\" (click)=\"clear($event)\">\n <ng-template *ngTemplateOutlet=\"clearIconTemplate\"></ng-template>\n </span>\n </ng-container>\n <button\n type=\"button\"\n [attr.aria-label]=\"iconButtonAriaLabel\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"overlayVisible ?? false\"\n [attr.aria-controls]=\"overlayVisible ? panelId : null\"\n caxButton\n caxRipple\n *ngIf=\"showIcon && iconDisplay === 'button'\"\n (click)=\"onButtonClick($event, inputfield)\"\n class=\"cax-datepicker-trigger cax-button-icon-only\"\n [disabled]=\"disabled\"\n tabindex=\"0\"\n >\n <span *ngIf=\"icon\" [ngClass]=\"icon\"></span>\n <ng-container *ngIf=\"!icon\">\n <i class=\"cax cax-calendar-icon\" *ngIf=\"!triggerIconTemplate\"></i>\n <ng-template *ngTemplateOutlet=\"triggerIconTemplate\"></ng-template>\n </ng-container>\n </button>\n <ng-container *ngIf=\"iconDisplay === 'input' && showIcon\">\n <i\n class=\"cax cax-calendar-icon\"\n *ngIf=\"!inputIconTemplate\"\n [ngClass]=\"{\n 'cax-datepicker-icon': showOnFocus\n }\"\n ></i>\n <ng-container *ngTemplateOutlet=\"inputIconTemplate; context: { clickCallBack: onButtonClick.bind(this) }\"></ng-container>\n </ng-container>\n </ng-template>\n <ng-container>\n <i class=\"cax cax-downarrow\" [ngClass]=\"overlayVisible ? 'cax-alt-arrow-up' : 'cax-alt-arrow-down'\"></i>\n </ng-container>\n\n <div\n #contentWrapper\n (click)=\"onOverlayClick($event)\"\n [attr.id]=\"panelId\"\n [class]=\"panelStyleClass\"\n [ngStyle]=\"panelStyle\"\n [ngClass]=\"{\n 'cax-datepicker cax-component': true,\n 'cax-datepicker-inline': inline,\n 'cax-disabled': disabled,\n 'cax-datepicker-timeonly': timeOnly,\n 'cax-datepicker-multiple-month': this.numberOfMonths > 1,\n 'cax-datepicker-monthpicker': view === 'month',\n 'cax-datepicker-touch-ui': touchUI\n }\"\n [@overlayAnimation]=\"\n touchUI\n ? { value: 'visibleTouchUI', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\n : { value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\n \"\n [attr.aria-label]=\"getTranslation('chooseDate')\"\n [attr.role]=\"inline ? null : 'dialog'\"\n [attr.aria-modal]=\"inline ? null : 'true'\"\n [@.disabled]=\"inline === true\"\n (@overlayAnimation.start)=\"onOverlayAnimationStart($event)\"\n (@overlayAnimation.done)=\"onOverlayAnimationDone($event)\"\n (click)=\"onOverlayClick($event)\"\n *ngIf=\"inline || overlayVisible\"\n >\n <ng-content select=\"cax-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <ng-container *ngIf=\"!timeOnly\">\n <div class=\"cax-datepicker-group-container\">\n <div class=\"cax-datepicker-group\" *ngFor=\"let month of months; let i = index\">\n <!-- <div class=\"cax-datepicker-header\">\n <div class=\"cax-datepicker-month-selector\" *ngIf=\"view !== 'year' && view !== 'month'\">\n <cax-button icon=\"cax cax-alt-arrow-left\" link=\"true\" size=\"sm\" severity=\"secondary\" (click)=\"onPrevButtonClick($event)\" (keydown)=\"onContainerButtonKeydown($event)\" styleClass=\"cax-datepicker-prev\"></cax-button>\n <div class=\"cax-datepicker-month-dropdown\" [class.cax-datepicker-dropdown-no-icon]=\"view === 'month'\" (click)=\"switchToMonthView($event)\" (keydown)=\"onContainerButtonKeydown($event)\">\n <span>{{ getMonthName(month.month) }}</span>\n <i *ngIf=\"currentView !== 'month' && view !== 'month'\" class=\"cax cax-alt-arrow-down\"></i>\n <i *ngIf=\"currentView === 'month' && view !== 'month'\" class=\"cax cax-alt-arrow-up\"></i>\n </div>\n <cax-button icon=\"cax cax-alt-arrow-right\" link=\"true\" size=\"sm\" severity=\"secondary\" (click)=\"onNextButtonClick($event)\" (keydown)=\"onContainerButtonKeydown($event)\" styleClass=\"cax-datepicker-next\"></cax-button>\n </div>\n <div class=\"cax-datepicker-year-selector\">\n <cax-button icon=\"cax cax-alt-arrow-left\" link=\"true\" size=\"sm\" severity=\"secondary\" (click)=\"onPrevYearButtonClick($event)\" (keydown)=\"onContainerButtonKeydown($event)\" styleClass=\"cax-datepicker-prev\"></cax-button>\n <div class=\"cax-datepicker-year-dropdown\" [class.cax-datepicker-dropdown-no-icon]=\"view === 'year'\" (click)=\"switchToYearView($event)\" (keydown)=\"onContainerButtonKeydown($event)\">\n <span>{{ getYear(month) }}</span>\n <i *ngIf=\"currentView !== 'year' && view !== 'year'\" class=\"cax cax-alt-arrow-down\"></i>\n <i *ngIf=\"currentView === 'year' && view !== 'year'\" class=\"cax cax-alt-arrow-up\"></i>\n </div>\n <cax-button icon=\"cax cax-alt-arrow-right\" link=\"true\" size=\"sm\" severity=\"secondary\" (click)=\"onNextYearButtonClick($event)\" (keydown)=\"onContainerButtonKeydown($event)\" styleClass=\"cax-datepicker-next\"></cax-button>\n </div>\n </div> -->\n <div class=\"cax-datepicker-header\">\n <button (keydown)=\"onContainerButtonKeydown($event)\" class=\"cax-datepicker-prev cax-link\" (click)=\"onPrevButtonClick($event)\" *ngIf=\"i === 0\" type=\"button\" [attr.aria-label]=\"prevIconAriaLabel\" caxRipple>\n <!-- <ChevronLeftIcon [styleClass]=\"'cax-datepicker-prev-icon'\" *ngIf=\"!previousIconTemplate\" /> -->\n <i class=\"cax cax-alt-arrow-left cax-datepicker-prev-icon\" *ngIf=\"!previousIconTemplate\"></i>\n <span *ngIf=\"previousIconTemplate\" class=\"cax-datepicker-prev-icon\">\n <ng-template *ngTemplateOutlet=\"previousIconTemplate\"></ng-template>\n </span>\n </button>\n <div class=\"cax-datepicker-title\">\n <button\n type=\"button\"\n (click)=\"switchToMonthView($event)\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n *ngIf=\"currentView === 'date'\"\n class=\"cax-datepicker-month cax-link cax-text-action-lg-link-semibold\"\n [disabled]=\"switchViewButtonDisabled()\"\n [attr.aria-label]=\"this.getTranslation('chooseMonth')\"\n >\n {{ getMonthName(month.month) }}\n </button>\n <button\n type=\"button\"\n (click)=\"switchToYearView($event)\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n *ngIf=\"currentView !== 'year'\"\n class=\"cax-datepicker-year cax-link cax-text-action-lg-link-semibold\"\n [disabled]=\"switchViewButtonDisabled()\"\n [attr.aria-label]=\"getTranslation('chooseYear')\"\n >\n {{ getYear(month) }}\n </button>\n <span class=\"cax-datepicker-decade cax-text-action-lg-link-semibold\" *ngIf=\"currentView === 'year'\">\n <ng-container *ngIf=\"!decadeTemplate\">{{ yearPickerValues()[0] }} - {{ yearPickerValues()[yearPickerValues().length - 1] }}</ng-container>\n <ng-container *ngTemplateOutlet=\"decadeTemplate; context: { $implicit: yearPickerValues }\"></ng-container>\n </span>\n </div>\n <button\n (keydown)=\"onContainerButtonKeydown($event)\"\n class=\"cax-datepicker-next cax-link\"\n (click)=\"onNextButtonClick($event)\"\n [style.display]=\"numberOfMonths === 1 ? 'inline-flex' : i === numberOfMonths - 1 ? 'inline-flex' : 'none'\"\n type=\"button\"\n [attr.aria-label]=\"nextIconAriaLabel\"\n caxRipple\n >\n <!-- <ChevronRightIcon [styleClass]=\"'cax-datepicker-next-icon'\" *ngIf=\"!nextIconTemplate\" /> -->\n <i class=\"cax cax-alt-arrow-right cax-datepicker-next-icon\" *ngIf=\"!nextIconTemplate\"></i>\n <span *ngIf=\"nextIconTemplate\" class=\"cax-datepicker-next-icon\">\n <ng-template *ngTemplateOutlet=\"nextIconTemplate\"></ng-template>\n </span>\n </button>\n </div>\n\n <div class=\"cax-datepicker-calendar-container\" *ngIf=\"currentView === 'date'\">\n <table class=\"cax-datepicker-calendar\" role=\"grid\">\n <thead>\n <tr>\n <th *ngIf=\"showWeek\" class=\"cax-datepicker-weekheader cax-disabled\">\n <span>{{ getTranslation('weekHeader') }}</span>\n </th>\n <th scope=\"col\" *ngFor=\"let weekDay of weekDays; let begin = first; let end = last\">\n <span>{{ weekDay }}</span>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let week of month.dates; let j = index\">\n <td *ngIf=\"showWeek\" class=\"cax-datepicker-weeknumber\">\n <span class=\"cax-disabled\"> {{ month.weekNumbers[j] }} </span>\n </td>\n <td class=\"cax-text-action-lg-semibold\" *ngFor=\"let date of week\" [attr.aria-label]=\"date.day\" [ngClass]=\"{ 'cax-datepicker-other-month': date.otherMonth, 'cax-datepicker-today': date.today }\">\n <ng-container *ngIf=\"date.otherMonth ? showOtherMonths : true\">\n <span\n [ngClass]=\"{ 'cax-highlight cax-datepicker-current-day': isSelected(date) && date.selectable, 'cax-disabled': !date.selectable, 'cax-datepicker-range-start': isRangeStart(date) && isRangeSelectionCompleted(), 'cax-datepicker-range-end': isRangeEnd(date) && isRangeSelectionCompleted(), 'cax-datepicker-range-between': isRangeBetween(date) }\"\n (click)=\"onDateSelect($event, date)\"\n draggable=\"false\"\n [attr.data-date]=\"formatDateKey(formatDateMetaToDate(date))\"\n (keydown)=\"onDateCellKeydown($event, date, i)\"\n caxRipple\n >\n <ng-container *ngIf=\"!dateTemplate && (date.selectable || !disabledDateTemplate)\">{{ date.day }}</ng-container>\n <ng-container *ngIf=\"date.selectable || !disabledDateTemplate\">\n <ng-container *ngTemplateOutlet=\"dateTemplate; context: { $implicit: date }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!date.selectable\">\n <ng-container *ngTemplateOutlet=\"disabledDateTemplate; context: { $implicit: date }\"></ng-container>\n </ng-container>\n </span>\n <div *ngIf=\"isSelected(date)\" class=\"cax-hidden-accessible\" aria-live=\"polite\">{{ date.day }}</div>\n </ng-container>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n <div class=\"cax-monthpicker\" *ngIf=\"currentView === 'month'\">\n <span\n *ngFor=\"let m of monthPickerValues(); let i = index\"\n (click)=\"onMonthSelect($event, i)\"\n (keydown)=\"onMonthCellKeydown($event, i)\"\n class=\"cax-monthpicker-month cax-text-action-lg-semibold\"\n [ngClass]=\"{ 'cax-highlight': isMonthSelected(i), 'cax-disabled': isMonthDisabled(i) }\"\n caxRipple\n >\n {{ m }}\n <div *ngIf=\"isMonthSelected(i)\" class=\"cax-hidden-accessible\" aria-live=\"polite\">{{ m }}</div>\n </span>\n </div>\n <div class=\"cax-yearpicker\" *ngIf=\"currentView === 'year'\">\n <span\n *ngFor=\"let y of yearPickerValues()\"\n (click)=\"onYearSelect($event, y)\"\n (keydown)=\"onYearCellKeydown($event, y)\"\n class=\"cax-yearpicker-year cax-text-action-lg-semibold\"\n [ngClass]=\"{ 'cax-highlight': isYearSelected(y), 'cax-disabled': isYearDisabled(y) }\"\n caxRipple\n >\n {{ y }}\n <div *ngIf=\"isYearSelected(y)\" class=\"cax-hidden-accessible\" aria-live=\"polite\">{{ y }}</div>\n </span>\n </div>\n </ng-container>\n <div class=\"cax-timepicker\" *ngIf=\"(showTime || timeOnly) && currentView === 'date'\">\n <div class=\"cax-hour-picker\">\n <button\n class=\"cax-link\"\n type=\"button\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"incrementHour($event)\"\n (keydown.space)=\"incrementHour($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 0, 1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('nextHour')\"\n caxRipple\n >\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\n </button>\n <span><ng-container *ngIf=\"currentHour < 10\">0</ng-container>{{ currentHour }}</span>\n <button\n class=\"cax-link\"\n type=\"button\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"decrementHour($event)\"\n (keydown.space)=\"decrementHour($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 0, -1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('prevHour')\"\n caxRipple\n >\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\n </button>\n </div>\n <div class=\"cax-separator\">\n <span>{{ timeSeparator }}</span>\n </div>\n <div class=\"cax-minute-picker\">\n <button\n class=\"cax-link\"\n type=\"button\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"incrementMinute($event)\"\n (keydown.space)=\"incrementMinute($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 1, 1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('nextMinute')\"\n caxRipple\n >\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\n </button>\n <span><ng-container *ngIf=\"currentMinute < 10\">0</ng-container>{{ currentMinute }}</span>\n <button\n class=\"cax-link\"\n type=\"button\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"decrementMinute($event)\"\n (keydown.space)=\"decrementMinute($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 1, -1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('prevMinute')\"\n caxRipple\n >\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\n </button>\n </div>\n <div class=\"cax-separator\" *ngIf=\"showSeconds\">\n <span>{{ timeSeparator }}</span>\n </div>\n <div class=\"cax-second-picker\" *ngIf=\"showSeconds\">\n <button\n class=\"cax-link\"\n type=\"button\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"incrementSecond($event)\"\n (keydown.space)=\"incrementSecond($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 2, 1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('nextSecond')\"\n caxRipple\n >\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\n </button>\n <span><ng-container *ngIf=\"currentSecond < 10\">0</ng-container>{{ currentSecond }}</span>\n <button\n class=\"cax-link\"\n type=\"button\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (keydown.enter)=\"decrementSecond($event)\"\n (keydown.space)=\"decrementSecond($event)\"\n (mousedown)=\"onTimePickerElementMouseDown($event, 2, -1)\"\n (mouseup)=\"onTimePickerElementMouseUp($event)\"\n (keyup.enter)=\"onTimePickerElementMouseUp($event)\"\n (keyup.space)=\"onTimePickerElementMouseUp($event)\"\n (mouseleave)=\"onTimePickerElementMouseLeave()\"\n [attr.aria-label]=\"getTranslation('prevSecond')\"\n caxRipple\n >\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\n </button>\n </div>\n <div class=\"cax-ampm-picker\" *ngIf=\"hourFormat == '12'\">\n <button class=\"cax-link\" type=\"button\" (keydown)=\"onContainerButtonKeydown($event)\" (click)=\"toggleAMPM($event)\" (keydown.enter)=\"toggleAMPM($event)\" [attr.aria-label]=\"getTranslation('am')\" caxRipple>\n <ChevronUpIcon *ngIf=\"!incrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"incrementIconTemplate\"></ng-template>\n </button>\n <span>{{ pm ? 'PM' : 'AM' }}</span>\n <button class=\"cax-link\" type=\"button\" (keydown)=\"onContainerButtonKeydown($event)\" (click)=\"toggleAMPM($event)\" (keydown.enter)=\"toggleAMPM($event)\" [attr.aria-label]=\"getTranslation('pm')\" caxRipple>\n <ChevronDownIcon *ngIf=\"!decrementIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"decrementIconTemplate\"></ng-template>\n </button>\n </div>\n </div>\n <div class=\"cax-datepicker-buttonbar\" *ngIf=\"showButtonBar\">\n <cax-button\n *ngIf=\"currentView !== 'year' && currentView !== 'month'\"\n type=\"button\"\n [link]=\"true\"\n [label]=\"getTranslation('clear')\"\n (keydown)=\"onContainerButtonKeydown($event)\"\n (onClick)=\"onClearButtonClick($event)\"\n caxRipple\n ></cax-button>\n <cax-button *ngIf=\"currentView === 'year' || currentView === 'month'\" type=\"button\" [link]=\"true\" [label]=\"'Back'\" (keydown)=\"onContainerButtonKeydown($event)\" (onClick)=\"onBackButtonClick($event)\" caxRipple></cax-button>\n </div>\n\n <div class=\"cax-datepicker-inline-actions\">\n <div class=\"cax-datepicker-manual-input\">\n <span class=\"cax-input-icon-left\">\n <i class=\"cax cax-calendar-icon\"></i>\n <input\n type=\"text\"\n class=\"cax-inputtext cax-text-action-sm-medium\"\n [ngClass]=\"{'cax-invalid': manualInputError}\"\n [placeholder]=\"getDateFormat() + (isRangeSelection() ? ' - ' + getDateFormat() : '')\"\n [value]=\"manualInputValue\"\n (input)=\"onManualInput($event)\"\n [disabled]=\"disabled\"\n />\n </span>\n <small *ngIf=\"manualInputError\" class=\"cax-error cax-text-action-sm-medium\">{{ manualInputError }}</small>\n </div>\n <!-- Similar to input mask -->\n <div class=\"cax-datepicker-inline-buttons\">\n <cax-button [label]=\"'Clear'\" [severity]=\"'secondary'\" [size]=\"'sm'\" outlined=\"true\" (onClick)=\"onClearButtonClick($event)\"> </cax-button>\n <cax-button [label]=\"'Save'\" [size]=\"'sm'\" outlined=\"true\" (onClick)=\"onDateSave($event)\" [disabled]=\"!!manualInputError\"> </cax-button>\n </div>\n </div>\n <ng-content select=\"cax-footer\"></ng-content>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </span>\n\n <small *ngIf=\"invalid\" class=\"cax-error\" [ngClass]=\"{'disabled-opacity': disabled, 'cax-text-action-sm-medium': size === 'sm', 'cax-text-action-md-regular': size === 'md', 'cax-text-action-lg-regular': size === 'lg'}\"> {{ errorText }} </small>\n <small *ngIf=\"helperText && !invalid\" class=\"cax-helper-text\" [ngClass]=\"{'disabled-opacity': disabled, 'cax-text-action-sm-medium': size === 'sm', 'cax-text-action-md-regular': size === 'md', 'cax-text-action-lg-regular': size === 'lg'}\">\n {{ helperText }}\n </small>\n</div>\n", styles: ["@layer cax{.cax-calendar-container{display:flex;flex-direction:column;gap:8px;width:216px}.cax-calendar{position:relative;display:inline-flex}.cax-calendar-main-label{font-weight:600;font-size:14px;line-height:20px}.cax-calendar .cax-inputtext{height:40px;padding:0 38px;cursor:pointer}.cax-calendar-w-btn .cax-inputtext{border-top-right-radius:0;border-bottom-right-radius:0}.cax-calendar-w-btn .cax-datepicker-trigger{border-top-left-radius:0;border-bottom-left-radius:0}.cax-downarrow{position:absolute;font-size:20px;top:25%!important;right:10px;cursor:pointer;pointer-events:none}.cax-fluid .cax-calendar{display:flex}.cax-calendar .cax-datepicker{width:360px;min-width:360px}.cax-datepicker{width:auto;position:absolute;top:0;left:0;display:flex;flex-direction:column;gap:16px}.cax-datepicker .cax-datepicker-group{display:flex;flex-direction:column;gap:16px}.cax-datepicker-inline{position:relative}.cax-datepicker-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px}.cax-datepicker-header .cax-datepicker-prev,.cax-datepicker-header .cax-datepicker-next{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.cax-datepicker-header .cax-datepicker-prev-icon,.cax-datepicker-header .cax-datepicker-next-icon{font-size:24px}.cax-datepicker-header .cax-datepicker-title{display:flex;gap:4px}.cax-datepicker-header .cax-datepicker-title .cax-datepicker-month,.cax-datepicker-header .cax-datepicker-title .cax-datepicker-year,.cax-datepicker-header .cax-datepicker-title .cax-datepicker-decade{padding:8px 12px;font-size:16px;font-weight:600;text-decoration:underline}.cax-datepicker-header .cax-datepicker-month-selector,.cax-datepicker-header .cax-datepicker-year-selector{display:flex;align-items:center}.cax-datepicker-header .cax-datepicker-month-selector .cax-button .cax-button-icon-center,.cax-datepicker-header .cax-datepicker-year-selector .cax-button .cax-button-icon-center{font-size:16px!important;font-weight:500!important}.cax-datepicker-header .cax-datepicker-month-selector .cax-button:focus,.cax-datepicker-header .cax-datepicker-year-selector .cax-button:focus{outline:none!important}.cax-datepicker-header .cax-datepicker-month-selector .cax-datepicker-month-dropdown,.cax-datepicker-header .cax-datepicker-month-selector .cax-datepicker-year-dropdown,.cax-datepicker-header .cax-datepicker-year-selector .cax-datepicker-month-dropdown,.cax-datepicker-header .cax-datepicker-year-selector .cax-datepicker-year-dropdown{display:flex;align-items:center;font-weight:600;margin-left:12px;cursor:pointer}.cax-datepicker-header .cax-datepicker-month-selector .cax-datepicker-month-dropdown.cax-datepicker-dropdown-no-icon,.cax-datepicker-header .cax-datepicker-month-selector .cax-datepicker-year-dropdown.cax-datepicker-dropdown-no-icon,.cax-datepicker-header .cax-datepicker-year-selector .cax-datepicker-month-dropdown.cax-datepicker-dropdown-no-icon,.cax-datepicker-header .cax-datepicker-year-selector .cax-datepicker-year-dropdown.cax-datepicker-dropdown-no-icon{margin-right:12px}.cax-datepicker-header .cax-datepicker-month-selector .cax-datepicker-month-dropdown i,.cax-datepicker-header .cax-datepicker-month-selector .cax-datepicker-year-dropdown i,.cax-datepicker-header .cax-datepicker-year-selector .cax-datepicker-month-dropdown i,.cax-datepicker-header .cax-datepicker-year-selector .cax-datepicker-year-dropdown i{font-size:16px;height:32px;width:32px;display:flex;align-items:center;justify-content:center}.cax-datepicker-multiple-month .cax-datepicker-group-container .cax-datepicker-group{flex:1 1 auto}.cax-datepicker-multiple-month .cax-datepicker-group-container{display:flex}.cax-datepicker table{width:100%;border-collapse:collapse;border-spacing:0}.cax-datepicker td{padding:0}.cax-datepicker td>span{display:flex;justify-content:center;align-items:center;cursor:pointer;overflow:visible;position:relative;margin:0 auto;width:48px;height:48px}.cax-datepicker td>span.cax-datepicker-range-between{background:var(--primary-75)!important;border-radius:0!important;color:var(--neutral-900)!important;width:100%!important}.cax-datepicker td>span.cax-datepicker-range-start.cax-highlight{background:transparent!important;width:100%!important;z-index:1}.cax-datepicker td>span.cax-datepicker-range-start.cax-highlight:before{content:\"\";position:absolute;top:0;right:0;width:50%;height:100%;background:var(--primary-75);z-index:-1}.cax-datepicker td>span.cax-datepicker-range-start.cax-highlight:after{content:\"\";position:absolute;top:0;left:50%;transform:translate(-50%);width:48px;height:48px;background:var(--primary-500);border-radius:50%;z-index:-1}.cax-datepicker td>span.cax-datepicker-range-end.cax-highlight{background:transparent!important;width:100%!important;z-index:1}.cax-datepicker td>span.cax-datepicker-range-end.cax-highlight:before{content:\"\";position:absolute;top:0;left:0;width:50%;height:100%;background:var(--primary-75);z-index:-1}.cax-datepicker td>span.cax-datepicker-range-end.cax-highlight:after{content:\"\";position:absolute;top:0;left:50%;transform:translate(-50%);width:48px;height:48px;background:var(--primary-500);border-radius:50%;z-index:-1}.cax-datepicker-buttonbar{display:flex;justify-content:space-between;align-items:center}.cax-timepicker{display:flex;justify-content:center;align-items:center}.cax-timepicker button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.cax-timepicker>div{display:flex;align-items:center;flex-direction:column}.cax-datepicker-touch-ui,.cax-calendar .cax-datepicker-touch-ui{position:fixed;top:50%;left:50%;min-width:80vw;transform:translate(-50%,-50%)}.cax-calendar-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.cax-calendar-clearable{position:relative}.cax-datepicker-icon{pointer-events:none;position:absolute;left:10px;font-size:20px;top:25%!important}.cax-datepicker-inline-actions{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 16px 0}.cax-datepicker-inline-actions .cax-datepicker-manual-input{display:flex;flex-direction:column;gap:4px;flex:1 1 auto;margin-right:12px}.cax-datepicker-inline-actions .cax-datepicker-manual-input .cax-input-icon-left{width:100%;position:relative;display:flex;align-items:center}.cax-datepicker-inline-actions .cax-datepicker-manual-input .cax-input-icon-left i{position:absolute;left:8px;top:25%!important;font-size:16px;color:var(--neutral-900)}.cax-datepicker-inline-actions .cax-datepicker-manual-input .cax-input-icon-left .cax-inputtext{width:100%;height:32px;padding:4px 8px 4px 30px;font-size:12px}.cax-datepicker-inline-actions .cax-datepicker-manual-input .cax-input-icon-left .cax-inputtext.cax-invalid{border-color:var(--error-600)}.cax-datepicker-inline-actions .cax-datepicker-manual-input .cax-input-icon-left .cax-inputtext.cax-invalid:hover{border-color:var(--error-750);box-shadow:0 0 0 1px var(--error-750)}.cax-datepicker-inline-actions .cax-datepicker-manual-input .cax-error{font-size:11px;color:var(--error-600)}.cax-datepicker-inline-actions .cax-datepicker-inline-buttons{margin-left:auto;display:flex;align-items:center;gap:8px}.left-side{display:flex;justify-content:space-between;gap:15px}}\n"] }]
3029
3310
  }], ctorParameters: () => [{ type: Document, decorators: [{
3030
3311
  type: Inject,
3031
3312
  args: [DOCUMENT]
@@ -3054,6 +3335,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImpo
3054
3335
  }], disabled: [{
3055
3336
  type: Input,
3056
3337
  args: [{ transform: booleanAttribute }]
3338
+ }], size: [{
3339
+ type: Input
3057
3340
  }], dateFormat: [{
3058
3341
  type: Input
3059
3342
  }], multipleSeparator: [{
@@ -3159,6 +3442,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImpo
3159
3442
  args: [{ transform: booleanAttribute }]
3160
3443
  }], labelText: [{
3161
3444
  type: Input
3445
+ }], helperText: [{
3446
+ type: Input
3447
+ }], errorText: [{
3448
+ type: Input
3449
+ }], invalid: [{
3450
+ type: Input,
3451
+ args: [{ transform: booleanAttribute }]
3162
3452
  }], timeSeparator: [{
3163
3453
  type: Input
3164
3454
  }], leftIcon: [{
@@ -3221,9 +3511,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImpo
3221
3511
  type: Output
3222
3512
  }], onClickOutside: [{
3223
3513
  type: Output
3224
- }], onInlineSaved: [{
3225
- type: Output
3226
- }], onInlineCancelled: [{
3514
+ }], onDateSaved: [{
3227
3515
  type: Output
3228
3516
  }], onShow: [{
3229
3517
  type: Output
@@ -3242,11 +3530,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImpo
3242
3530
  }] } });
3243
3531
 
3244
3532
  class CalendarModule {
3245
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: CalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3246
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.16", ngImport: i0, type: CalendarModule, imports: [Calendar, ButtonModule, SharedModule], exports: [Calendar, ButtonModule, SharedModule] });
3247
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: CalendarModule, imports: [Calendar, ButtonModule, SharedModule, ButtonModule, SharedModule] });
3533
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: CalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3534
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: CalendarModule, imports: [Calendar, ButtonModule, SharedModule], exports: [Calendar, ButtonModule, SharedModule] });
3535
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: CalendarModule, imports: [Calendar, ButtonModule, SharedModule, ButtonModule, SharedModule] });
3248
3536
  }
3249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.16", ngImport: i0, type: CalendarModule, decorators: [{
3537
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: CalendarModule, decorators: [{
3250
3538
  type: NgModule,
3251
3539
  args: [{
3252
3540
  imports: [Calendar, ButtonModule, SharedModule],