@ukic/canary-web-components 2.0.0-canary.21 → 2.0.0-canary.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (706) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-081d6031.js → helpers-093368be.js} +3 -1
  3. package/dist/cjs/helpers-093368be.js.map +1 -0
  4. package/dist/cjs/{helpers-261701cd.js → helpers-85c5ca15.js} +14 -1
  5. package/dist/cjs/helpers-85c5ca15.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +8 -8
  7. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-accordion.cjs.entry.js +4 -4
  9. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-alert.cjs.entry.js +1 -3
  11. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-back-to-top.cjs.entry.js +12 -15
  13. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-badge.cjs.entry.js +15 -27
  15. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +4 -4
  17. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-breadcrumb.cjs.entry.js +3 -3
  19. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-button_3.cjs.entry.js +27 -22
  21. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
  23. package/dist/cjs/{ic-card.cjs.entry.js → ic-card-vertical.cjs.entry.js} +6 -6
  24. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -0
  25. package/dist/cjs/ic-checkbox-group.cjs.entry.js +6 -5
  26. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-checkbox.cjs.entry.js +6 -15
  28. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-chip.cjs.entry.js +9 -10
  30. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-classification-banner.cjs.entry.js +2 -2
  32. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-data-list.cjs.entry.js +28 -0
  34. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -0
  35. package/dist/cjs/ic-data-row.cjs.entry.js +9 -10
  36. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-data-table.cjs.entry.js +526 -71
  40. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-date-input.cjs.entry.js +4 -3
  42. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-date-picker.cjs.entry.js +7 -3
  44. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-dialog.cjs.entry.js +12 -97
  46. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  48. package/dist/cjs/ic-empty-state_2.cjs.entry.js +8 -8
  49. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-footer-link-group.cjs.entry.js +9 -9
  51. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-footer-link.cjs.entry.js +6 -7
  53. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-footer.cjs.entry.js +8 -8
  55. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-hero.cjs.entry.js +8 -9
  57. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -5
  59. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +21 -25
  61. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-link.cjs.entry.js +6 -7
  63. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-menu-item.cjs.entry.js +3 -3
  66. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +9 -11
  68. package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-menu.cjs.entry.js +8 -10
  70. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  72. package/dist/cjs/ic-navigation-group.cjs.entry.js +9 -9
  73. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-navigation-item.cjs.entry.js +5 -5
  75. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  77. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-page-header.cjs.entry.js +7 -8
  79. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-pagination_4.cjs.entry.js +95 -101
  81. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-popover-menu.cjs.entry.js +3 -3
  83. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-radio-group.cjs.entry.js +40 -25
  85. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -18
  87. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-search-bar.cjs.entry.js +18 -24
  89. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-select-with-multi.cjs.entry.js +13 -21
  91. package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-side-navigation.cjs.entry.js +7 -7
  93. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-skeleton.cjs.entry.js +4 -5
  95. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -11
  97. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-step.cjs.entry.js +40 -43
  99. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-stepper.cjs.entry.js +16 -16
  101. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ic-switch.cjs.entry.js +5 -6
  103. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  104. package/dist/cjs/ic-tab-context.cjs.entry.js +0 -11
  105. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  106. package/dist/cjs/ic-tab-group.cjs.entry.js +4 -5
  107. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  108. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -8
  109. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  110. package/dist/cjs/ic-tab.cjs.entry.js +4 -4
  111. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  112. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  113. package/dist/cjs/ic-toast-region.cjs.entry.js +0 -7
  114. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  115. package/dist/cjs/ic-toast.cjs.entry.js +83 -35
  116. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  117. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +16 -16
  118. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  119. package/dist/cjs/ic-toggle-button.cjs.entry.js +13 -13
  120. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  121. package/dist/cjs/ic-top-navigation.cjs.entry.js +4 -4
  122. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  123. package/dist/cjs/ic-tree-item.cjs.entry.js +241 -0
  124. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -0
  125. package/dist/cjs/ic-tree-view.cjs.entry.js +203 -0
  126. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -0
  127. package/dist/cjs/ic-typography.cjs.entry.js +51 -16
  128. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  129. package/dist/cjs/index-4cf27b16.js +16 -8
  130. package/dist/cjs/loader.cjs.js +1 -1
  131. package/dist/collection/assets/arrow-dropdown.svg +3 -0
  132. package/dist/collection/collection-manifest.json +5 -3
  133. package/dist/collection/components/ic-data-table/ic-data-table.css +55 -5
  134. package/dist/collection/components/ic-data-table/ic-data-table.js +570 -77
  135. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  136. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  137. package/dist/collection/components/ic-data-table/story-data.js +364 -21
  138. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  139. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +1 -1
  140. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  141. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +1 -1
  142. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +1 -1
  143. package/dist/collection/components/ic-date-input/ic-date-input.js +21 -2
  144. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  145. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js +7 -0
  146. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js.map +1 -1
  147. package/dist/collection/components/ic-date-picker/ic-date-picker.css +24 -24
  148. package/dist/collection/components/ic-date-picker/ic-date-picker.js +23 -1
  149. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  150. package/dist/collection/components/ic-menu-with-multi/ic-menu.css +11 -11
  151. package/dist/collection/components/ic-menu-with-multi/ic-menu.js +7 -30
  152. package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +1 -1
  153. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +1 -1
  154. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +1 -1
  155. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +1 -1
  156. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  157. package/dist/collection/components/ic-select-with-multi/ic-select.css +14 -12
  158. package/dist/collection/components/ic-select-with-multi/ic-select.js +13 -142
  159. package/dist/collection/components/ic-select-with-multi/ic-select.js.map +1 -1
  160. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.e2e.js +1 -1
  161. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.e2e.js.map +1 -1
  162. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js +6 -6
  163. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js.map +1 -1
  164. package/dist/collection/components/ic-tree-item/ic-tree-item.css +150 -0
  165. package/dist/collection/components/ic-tree-item/ic-tree-item.js +592 -0
  166. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -0
  167. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js +114 -0
  168. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js.map +1 -0
  169. package/dist/collection/components/ic-tree-view/ic-tree-view.css +56 -0
  170. package/dist/collection/components/ic-tree-view/ic-tree-view.js +296 -0
  171. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -0
  172. package/dist/collection/components/ic-tree-view/test/basic/ic-tree-view.spec.js +85 -0
  173. package/dist/collection/components/ic-tree-view/test/basic/ic-tree-view.spec.js.map +1 -0
  174. package/dist/collection/utils/types.js.map +1 -1
  175. package/dist/components/helpers.js +2 -1
  176. package/dist/components/helpers.js.map +1 -1
  177. package/dist/components/helpers2.js +11 -1
  178. package/dist/components/helpers2.js.map +1 -1
  179. package/dist/components/ic-accordion-group.js +8 -8
  180. package/dist/components/ic-accordion-group.js.map +1 -1
  181. package/dist/components/ic-accordion.js +3 -3
  182. package/dist/components/ic-accordion.js.map +1 -1
  183. package/dist/components/ic-alert.js +127 -1
  184. package/dist/components/ic-alert.js.map +1 -1
  185. package/dist/components/ic-back-to-top.js +25 -16
  186. package/dist/components/ic-back-to-top.js.map +1 -1
  187. package/dist/components/ic-badge.js +17 -31
  188. package/dist/components/ic-badge.js.map +1 -1
  189. package/dist/components/ic-breadcrumb-group.js +4 -4
  190. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  191. package/dist/components/ic-breadcrumb2.js +3 -3
  192. package/dist/components/ic-breadcrumb2.js.map +1 -1
  193. package/dist/components/ic-button2.js +10 -10
  194. package/dist/components/ic-button2.js.map +1 -1
  195. package/dist/components/{ic-card.js → ic-card-vertical.js} +11 -11
  196. package/dist/components/ic-card-vertical.js.map +1 -0
  197. package/dist/components/ic-checkbox-group.js +6 -6
  198. package/dist/components/ic-checkbox-group.js.map +1 -1
  199. package/dist/components/ic-checkbox.js +6 -21
  200. package/dist/components/ic-checkbox.js.map +1 -1
  201. package/dist/components/ic-chip.js +9 -11
  202. package/dist/components/ic-chip.js.map +1 -1
  203. package/dist/components/ic-classification-banner.js +2 -2
  204. package/dist/components/ic-classification-banner.js.map +1 -1
  205. package/dist/components/ic-data-list.js +51 -0
  206. package/dist/components/ic-data-list.js.map +1 -0
  207. package/dist/components/ic-data-row.js +10 -12
  208. package/dist/components/ic-data-row.js.map +1 -1
  209. package/dist/components/ic-data-table-title-bar.js +1 -1
  210. package/dist/components/ic-data-table-title-bar.js.map +1 -1
  211. package/dist/components/ic-data-table.js +531 -72
  212. package/dist/components/ic-data-table.js.map +1 -1
  213. package/dist/components/ic-date-input2.js +5 -3
  214. package/dist/components/ic-date-input2.js.map +1 -1
  215. package/dist/components/ic-date-picker.js +8 -3
  216. package/dist/components/ic-date-picker.js.map +1 -1
  217. package/dist/components/ic-dialog.js +14 -112
  218. package/dist/components/ic-dialog.js.map +1 -1
  219. package/dist/components/ic-divider2.js +1 -1
  220. package/dist/components/ic-empty-state2.js +7 -7
  221. package/dist/components/ic-empty-state2.js.map +1 -1
  222. package/dist/components/ic-footer-link-group.js +10 -10
  223. package/dist/components/ic-footer-link-group.js.map +1 -1
  224. package/dist/components/ic-footer-link.js +13 -8
  225. package/dist/components/ic-footer-link.js.map +1 -1
  226. package/dist/components/ic-footer.js +8 -8
  227. package/dist/components/ic-footer.js.map +1 -1
  228. package/dist/components/ic-hero.js +8 -10
  229. package/dist/components/ic-hero.js.map +1 -1
  230. package/dist/components/ic-horizontal-scroll2.js +5 -5
  231. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  232. package/dist/components/ic-input-component-container2.js +11 -16
  233. package/dist/components/ic-input-component-container2.js.map +1 -1
  234. package/dist/components/ic-input-label2.js +10 -12
  235. package/dist/components/ic-input-label2.js.map +1 -1
  236. package/dist/components/ic-input-validation2.js +4 -4
  237. package/dist/components/ic-input-validation2.js.map +1 -1
  238. package/dist/components/ic-link2.js +6 -8
  239. package/dist/components/ic-link2.js.map +1 -1
  240. package/dist/components/ic-loading-indicator2.js +9 -9
  241. package/dist/components/ic-loading-indicator2.js.map +1 -1
  242. package/dist/components/ic-menu-group.js +1 -1
  243. package/dist/components/ic-menu-item2.js +3 -3
  244. package/dist/components/ic-menu-item2.js.map +1 -1
  245. package/dist/components/ic-menu2.js +7 -10
  246. package/dist/components/ic-menu2.js.map +1 -1
  247. package/dist/components/ic-menu3.js +9 -12
  248. package/dist/components/ic-menu3.js.map +1 -1
  249. package/dist/components/ic-navigation-button.js +1 -1
  250. package/dist/components/ic-navigation-group.js +9 -9
  251. package/dist/components/ic-navigation-group.js.map +1 -1
  252. package/dist/components/ic-navigation-item.js +5 -5
  253. package/dist/components/ic-navigation-item.js.map +1 -1
  254. package/dist/components/ic-navigation-menu2.js +2 -2
  255. package/dist/components/ic-navigation-menu2.js.map +1 -1
  256. package/dist/components/ic-page-header.js +7 -9
  257. package/dist/components/ic-page-header.js.map +1 -1
  258. package/dist/components/ic-pagination-bar2.js +2 -2
  259. package/dist/components/ic-pagination-bar2.js.map +1 -1
  260. package/dist/components/ic-pagination-item2.js +1 -1
  261. package/dist/components/ic-pagination2.js +38 -36
  262. package/dist/components/ic-pagination2.js.map +1 -1
  263. package/dist/components/ic-popover-menu.js +3 -3
  264. package/dist/components/ic-popover-menu.js.map +1 -1
  265. package/dist/components/ic-radio-group.js +41 -26
  266. package/dist/components/ic-radio-group.js.map +1 -1
  267. package/dist/components/ic-radio-option.js +6 -25
  268. package/dist/components/ic-radio-option.js.map +1 -1
  269. package/dist/components/ic-search-bar.js +20 -27
  270. package/dist/components/ic-search-bar.js.map +1 -1
  271. package/dist/components/ic-select-with-multi.js +14 -29
  272. package/dist/components/ic-select-with-multi.js.map +1 -1
  273. package/dist/components/ic-select2.js +14 -29
  274. package/dist/components/ic-select2.js.map +1 -1
  275. package/dist/components/ic-side-navigation.js +7 -7
  276. package/dist/components/ic-side-navigation.js.map +1 -1
  277. package/dist/components/ic-skeleton.js +4 -6
  278. package/dist/components/ic-skeleton.js.map +1 -1
  279. package/dist/components/ic-status-tag.js +1 -12
  280. package/dist/components/ic-status-tag.js.map +1 -1
  281. package/dist/components/ic-step.js +46 -49
  282. package/dist/components/ic-step.js.map +1 -1
  283. package/dist/components/ic-stepper.js +16 -16
  284. package/dist/components/ic-stepper.js.map +1 -1
  285. package/dist/components/ic-switch.js +5 -7
  286. package/dist/components/ic-switch.js.map +1 -1
  287. package/dist/components/ic-tab-context.js +0 -11
  288. package/dist/components/ic-tab-context.js.map +1 -1
  289. package/dist/components/ic-tab-group.js +3 -5
  290. package/dist/components/ic-tab-group.js.map +1 -1
  291. package/dist/components/ic-tab-panel.js +1 -9
  292. package/dist/components/ic-tab-panel.js.map +1 -1
  293. package/dist/components/ic-tab.js +3 -3
  294. package/dist/components/ic-tab.js.map +1 -1
  295. package/dist/components/ic-text-field2.js +51 -53
  296. package/dist/components/ic-text-field2.js.map +1 -1
  297. package/dist/components/ic-theme.js +1 -1
  298. package/dist/components/ic-toast-region.js +1 -9
  299. package/dist/components/ic-toast-region.js.map +1 -1
  300. package/dist/components/ic-toast.js +86 -36
  301. package/dist/components/ic-toast.js.map +1 -1
  302. package/dist/components/ic-toggle-button-group.js +16 -16
  303. package/dist/components/ic-toggle-button-group.js.map +1 -1
  304. package/dist/components/ic-toggle-button.js +13 -13
  305. package/dist/components/ic-toggle-button.js.map +1 -1
  306. package/dist/components/ic-tooltip2.js +12 -5
  307. package/dist/components/ic-tooltip2.js.map +1 -1
  308. package/dist/components/ic-top-navigation.js +4 -4
  309. package/dist/components/ic-top-navigation.js.map +1 -1
  310. package/dist/components/ic-tree-item.d.ts +11 -0
  311. package/dist/components/ic-tree-item.js +286 -0
  312. package/dist/components/ic-tree-item.js.map +1 -0
  313. package/dist/components/ic-tree-view.d.ts +11 -0
  314. package/dist/components/ic-tree-view.js +237 -0
  315. package/dist/components/ic-tree-view.js.map +1 -0
  316. package/dist/components/ic-typography2.js +57 -19
  317. package/dist/components/ic-typography2.js.map +1 -1
  318. package/dist/core/core.css +1 -1
  319. package/dist/core/core.esm.js +1 -1
  320. package/dist/core/core.esm.js.map +1 -1
  321. package/dist/core/p-00b29b5c.entry.js +2 -0
  322. package/dist/core/p-00b29b5c.entry.js.map +1 -0
  323. package/dist/core/p-01937eb0.entry.js +2 -0
  324. package/dist/core/p-01937eb0.entry.js.map +1 -0
  325. package/dist/core/p-06db67a5.entry.js +2 -0
  326. package/dist/core/p-06db67a5.entry.js.map +1 -0
  327. package/dist/core/{p-e5b1dd58.entry.js → p-0896531a.entry.js} +2 -2
  328. package/dist/core/p-0896531a.entry.js.map +1 -0
  329. package/dist/core/{p-fdacc7f7.entry.js → p-125bc120.entry.js} +2 -2
  330. package/dist/core/p-155054f4.entry.js +2 -0
  331. package/dist/core/p-155054f4.entry.js.map +1 -0
  332. package/dist/core/p-19be677b.entry.js +2 -0
  333. package/dist/core/p-19be677b.entry.js.map +1 -0
  334. package/dist/core/p-20aae323.entry.js +2 -0
  335. package/dist/core/p-20aae323.entry.js.map +1 -0
  336. package/dist/core/{p-b3ed5423.entry.js → p-21ecca00.entry.js} +2 -2
  337. package/dist/core/p-21ecca00.entry.js.map +1 -0
  338. package/dist/core/{p-1d0cff8a.entry.js → p-22260ed4.entry.js} +2 -2
  339. package/dist/core/{p-fab8da25.entry.js → p-2533d147.entry.js} +2 -2
  340. package/dist/core/p-2533d147.entry.js.map +1 -0
  341. package/dist/core/p-2ec4ced3.entry.js +2 -0
  342. package/dist/core/p-2ec4ced3.entry.js.map +1 -0
  343. package/dist/core/{p-45ebcb74.js → p-2fb52051.js} +2 -2
  344. package/dist/{esm/helpers-d41662f3.js.map → core/p-2fb52051.js.map} +1 -1
  345. package/dist/core/{p-d5d36143.entry.js → p-30d385c6.entry.js} +2 -2
  346. package/dist/core/p-30d385c6.entry.js.map +1 -0
  347. package/dist/core/p-3bd8a4fa.entry.js +2 -0
  348. package/dist/core/p-3bd8a4fa.entry.js.map +1 -0
  349. package/dist/core/{p-9e7a5c72.entry.js → p-3f2ae26e.entry.js} +2 -2
  350. package/dist/core/p-3f2ae26e.entry.js.map +1 -0
  351. package/dist/core/p-401d0c66.entry.js +2 -0
  352. package/dist/core/p-401d0c66.entry.js.map +1 -0
  353. package/dist/core/{p-452985d9.entry.js → p-4188b38a.entry.js} +2 -2
  354. package/dist/core/p-4188b38a.entry.js.map +1 -0
  355. package/dist/core/{p-d44b7f21.entry.js → p-41a53070.entry.js} +2 -2
  356. package/dist/core/p-41a53070.entry.js.map +1 -0
  357. package/dist/core/p-4309460f.entry.js +2 -0
  358. package/dist/core/p-4309460f.entry.js.map +1 -0
  359. package/dist/core/p-436d179b.entry.js +2 -0
  360. package/dist/core/p-436d179b.entry.js.map +1 -0
  361. package/dist/core/p-439d1a97.entry.js +2 -0
  362. package/dist/core/p-439d1a97.entry.js.map +1 -0
  363. package/dist/core/p-4974da93.entry.js +2 -0
  364. package/dist/core/p-4974da93.entry.js.map +1 -0
  365. package/dist/core/p-4d316a43.entry.js +2 -0
  366. package/dist/core/p-4d316a43.entry.js.map +1 -0
  367. package/dist/core/{p-5fea8f1c.entry.js → p-54306250.entry.js} +2 -2
  368. package/dist/core/{p-5fea8f1c.entry.js.map → p-54306250.entry.js.map} +1 -1
  369. package/dist/core/p-57527684.entry.js +2 -0
  370. package/dist/core/p-57527684.entry.js.map +1 -0
  371. package/dist/core/p-5a95dd44.entry.js +2 -0
  372. package/dist/core/p-5a95dd44.entry.js.map +1 -0
  373. package/dist/core/p-5cecbd1f.entry.js +2 -0
  374. package/dist/core/p-5cecbd1f.entry.js.map +1 -0
  375. package/dist/core/p-5e41f96d.entry.js +2 -0
  376. package/dist/core/p-5e41f96d.entry.js.map +1 -0
  377. package/dist/core/p-64826d54.entry.js +2 -0
  378. package/dist/core/p-64826d54.entry.js.map +1 -0
  379. package/dist/core/{p-d91428b4.entry.js → p-64b1e4a8.entry.js} +2 -2
  380. package/dist/core/p-64b1e4a8.entry.js.map +1 -0
  381. package/dist/core/p-65cf6a11.entry.js +2 -0
  382. package/dist/core/p-65cf6a11.entry.js.map +1 -0
  383. package/dist/core/{p-a589ead8.entry.js → p-6a5ffe7d.entry.js} +2 -2
  384. package/dist/core/p-6a5ffe7d.entry.js.map +1 -0
  385. package/dist/core/p-6c6c71ba.entry.js +2 -0
  386. package/dist/core/p-6c6c71ba.entry.js.map +1 -0
  387. package/dist/core/p-6f0e9434.entry.js +2 -0
  388. package/dist/core/p-6f0e9434.entry.js.map +1 -0
  389. package/dist/core/p-84eaa486.entry.js +2 -0
  390. package/dist/core/p-84eaa486.entry.js.map +1 -0
  391. package/dist/core/p-85cb6bb7.entry.js +2 -0
  392. package/dist/core/p-85cb6bb7.entry.js.map +1 -0
  393. package/dist/core/{p-fb4219d6.entry.js → p-88ba5a88.entry.js} +2 -2
  394. package/dist/core/{p-6b74397a.entry.js → p-8c5b63c6.entry.js} +2 -2
  395. package/dist/core/p-8c5b63c6.entry.js.map +1 -0
  396. package/dist/core/p-8da08c05.entry.js +2 -0
  397. package/dist/core/p-8da08c05.entry.js.map +1 -0
  398. package/dist/core/{p-569a68c0.entry.js → p-91cf89c8.entry.js} +2 -2
  399. package/dist/core/p-91cf89c8.entry.js.map +1 -0
  400. package/dist/core/p-98981fa7.entry.js +2 -0
  401. package/dist/core/p-98981fa7.entry.js.map +1 -0
  402. package/dist/core/p-9d3e0e60.entry.js +2 -0
  403. package/dist/core/p-9d3e0e60.entry.js.map +1 -0
  404. package/dist/core/p-a2194364.entry.js +2 -0
  405. package/dist/core/p-a2194364.entry.js.map +1 -0
  406. package/dist/core/{p-59d9ea22.entry.js → p-a4d0f166.entry.js} +2 -2
  407. package/dist/core/p-a4d0f166.entry.js.map +1 -0
  408. package/dist/core/p-aaa6f849.entry.js +2 -0
  409. package/dist/core/p-aaa6f849.entry.js.map +1 -0
  410. package/dist/core/p-adbe0d89.js +2 -0
  411. package/dist/core/p-adbe0d89.js.map +1 -0
  412. package/dist/core/p-b4ab627a.entry.js +2 -0
  413. package/dist/core/p-b4ab627a.entry.js.map +1 -0
  414. package/dist/core/{p-9e69f517.entry.js → p-b6e208e3.entry.js} +2 -2
  415. package/dist/core/p-b7abaec8.entry.js +2 -0
  416. package/dist/core/p-b7abaec8.entry.js.map +1 -0
  417. package/dist/core/p-bc4aec3a.entry.js +2 -0
  418. package/dist/core/p-bc4aec3a.entry.js.map +1 -0
  419. package/dist/core/{p-0ea28e7a.entry.js → p-bcf04b18.entry.js} +2 -2
  420. package/dist/core/p-bcf04b18.entry.js.map +1 -0
  421. package/dist/core/{p-d39239be.entry.js → p-be70c278.entry.js} +2 -2
  422. package/dist/core/{p-d39239be.entry.js.map → p-be70c278.entry.js.map} +1 -1
  423. package/dist/core/p-bf009b9a.entry.js +2 -0
  424. package/dist/core/p-bf009b9a.entry.js.map +1 -0
  425. package/dist/core/{p-40fc7162.entry.js → p-cbd730aa.entry.js} +2 -2
  426. package/dist/core/p-cbd730aa.entry.js.map +1 -0
  427. package/dist/core/p-d76e24e4.entry.js +2 -0
  428. package/dist/core/p-d76e24e4.entry.js.map +1 -0
  429. package/dist/core/p-d7bf1057.entry.js +2 -0
  430. package/dist/core/p-d7bf1057.entry.js.map +1 -0
  431. package/dist/core/p-d9254b14.entry.js +2 -0
  432. package/dist/core/p-d9254b14.entry.js.map +1 -0
  433. package/dist/core/p-e20f8772.entry.js +2 -0
  434. package/dist/core/p-e20f8772.entry.js.map +1 -0
  435. package/dist/core/p-e26769b0.entry.js +2 -0
  436. package/dist/core/p-e26769b0.entry.js.map +1 -0
  437. package/dist/core/p-e2dba05a.entry.js +2 -0
  438. package/dist/core/p-e2dba05a.entry.js.map +1 -0
  439. package/dist/core/p-ec862c7e.entry.js +2 -0
  440. package/dist/core/p-ec862c7e.entry.js.map +1 -0
  441. package/dist/core/{p-145c8074.entry.js → p-ede631c5.entry.js} +2 -2
  442. package/dist/core/p-ef9175d8.entry.js +2 -0
  443. package/dist/core/p-ef9175d8.entry.js.map +1 -0
  444. package/dist/core/{p-787ffd96.entry.js → p-f1072c28.entry.js} +2 -2
  445. package/dist/core/{p-452985d9.entry.js.map → p-f1072c28.entry.js.map} +1 -1
  446. package/dist/core/p-f4db39eb.entry.js +2 -0
  447. package/dist/core/p-f4db39eb.entry.js.map +1 -0
  448. package/dist/esm/core.js +1 -1
  449. package/dist/esm/{helpers-d41662f3.js → helpers-0f5fe29b.js} +3 -2
  450. package/dist/esm/helpers-0f5fe29b.js.map +1 -0
  451. package/dist/esm/{helpers-e75fd113.js → helpers-f543bc77.js} +12 -2
  452. package/dist/esm/helpers-f543bc77.js.map +1 -0
  453. package/dist/esm/ic-accordion-group.entry.js +8 -8
  454. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  455. package/dist/esm/ic-accordion.entry.js +4 -4
  456. package/dist/esm/ic-accordion.entry.js.map +1 -1
  457. package/dist/esm/ic-alert.entry.js +1 -3
  458. package/dist/esm/ic-alert.entry.js.map +1 -1
  459. package/dist/esm/ic-back-to-top.entry.js +12 -15
  460. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  461. package/dist/esm/ic-badge.entry.js +15 -27
  462. package/dist/esm/ic-badge.entry.js.map +1 -1
  463. package/dist/esm/ic-breadcrumb-group.entry.js +4 -4
  464. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  465. package/dist/esm/ic-breadcrumb.entry.js +3 -3
  466. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  467. package/dist/esm/ic-button_3.entry.js +27 -22
  468. package/dist/esm/ic-button_3.entry.js.map +1 -1
  469. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  470. package/dist/esm/{ic-card.entry.js → ic-card-vertical.entry.js} +6 -6
  471. package/dist/esm/ic-card-vertical.entry.js.map +1 -0
  472. package/dist/esm/ic-checkbox-group.entry.js +6 -5
  473. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  474. package/dist/esm/ic-checkbox.entry.js +6 -15
  475. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  476. package/dist/esm/ic-chip.entry.js +9 -10
  477. package/dist/esm/ic-chip.entry.js.map +1 -1
  478. package/dist/esm/ic-classification-banner.entry.js +2 -2
  479. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  480. package/dist/esm/ic-data-list.entry.js +24 -0
  481. package/dist/esm/ic-data-list.entry.js.map +1 -0
  482. package/dist/esm/ic-data-row.entry.js +9 -10
  483. package/dist/esm/ic-data-row.entry.js.map +1 -1
  484. package/dist/esm/ic-data-table-title-bar.entry.js +2 -2
  485. package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -1
  486. package/dist/esm/ic-data-table.entry.js +526 -71
  487. package/dist/esm/ic-data-table.entry.js.map +1 -1
  488. package/dist/esm/ic-date-input.entry.js +4 -3
  489. package/dist/esm/ic-date-input.entry.js.map +1 -1
  490. package/dist/esm/ic-date-picker.entry.js +7 -3
  491. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  492. package/dist/esm/ic-dialog.entry.js +12 -97
  493. package/dist/esm/ic-dialog.entry.js.map +1 -1
  494. package/dist/esm/ic-divider.entry.js +1 -1
  495. package/dist/esm/ic-empty-state_2.entry.js +8 -8
  496. package/dist/esm/ic-empty-state_2.entry.js.map +1 -1
  497. package/dist/esm/ic-footer-link-group.entry.js +9 -9
  498. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  499. package/dist/esm/ic-footer-link.entry.js +6 -7
  500. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  501. package/dist/esm/ic-footer.entry.js +8 -8
  502. package/dist/esm/ic-footer.entry.js.map +1 -1
  503. package/dist/esm/ic-hero.entry.js +8 -9
  504. package/dist/esm/ic-hero.entry.js.map +1 -1
  505. package/dist/esm/ic-horizontal-scroll.entry.js +5 -5
  506. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  507. package/dist/esm/ic-input-component-container_4.entry.js +21 -25
  508. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
  509. package/dist/esm/ic-link.entry.js +6 -7
  510. package/dist/esm/ic-link.entry.js.map +1 -1
  511. package/dist/esm/ic-menu-group.entry.js +1 -1
  512. package/dist/esm/ic-menu-item.entry.js +3 -3
  513. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  514. package/dist/esm/ic-menu-with-multi.entry.js +9 -11
  515. package/dist/esm/ic-menu-with-multi.entry.js.map +1 -1
  516. package/dist/esm/ic-menu.entry.js +8 -10
  517. package/dist/esm/ic-menu.entry.js.map +1 -1
  518. package/dist/esm/ic-navigation-button.entry.js +1 -1
  519. package/dist/esm/ic-navigation-group.entry.js +9 -9
  520. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  521. package/dist/esm/ic-navigation-item.entry.js +5 -5
  522. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  523. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  524. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  525. package/dist/esm/ic-page-header.entry.js +7 -8
  526. package/dist/esm/ic-page-header.entry.js.map +1 -1
  527. package/dist/esm/ic-pagination_4.entry.js +95 -101
  528. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  529. package/dist/esm/ic-popover-menu.entry.js +3 -3
  530. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  531. package/dist/esm/ic-radio-group.entry.js +40 -25
  532. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  533. package/dist/esm/ic-radio-option.entry.js +5 -18
  534. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  535. package/dist/esm/ic-search-bar.entry.js +18 -24
  536. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  537. package/dist/esm/ic-select-with-multi.entry.js +13 -21
  538. package/dist/esm/ic-select-with-multi.entry.js.map +1 -1
  539. package/dist/esm/ic-side-navigation.entry.js +7 -7
  540. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  541. package/dist/esm/ic-skeleton.entry.js +4 -5
  542. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  543. package/dist/esm/ic-status-tag.entry.js +2 -11
  544. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  545. package/dist/esm/ic-step.entry.js +40 -43
  546. package/dist/esm/ic-step.entry.js.map +1 -1
  547. package/dist/esm/ic-stepper.entry.js +16 -16
  548. package/dist/esm/ic-stepper.entry.js.map +1 -1
  549. package/dist/esm/ic-switch.entry.js +5 -6
  550. package/dist/esm/ic-switch.entry.js.map +1 -1
  551. package/dist/esm/ic-tab-context.entry.js +0 -11
  552. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  553. package/dist/esm/ic-tab-group.entry.js +4 -5
  554. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  555. package/dist/esm/ic-tab-panel.entry.js +1 -8
  556. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  557. package/dist/esm/ic-tab.entry.js +4 -4
  558. package/dist/esm/ic-tab.entry.js.map +1 -1
  559. package/dist/esm/ic-theme.entry.js +1 -1
  560. package/dist/esm/ic-toast-region.entry.js +0 -7
  561. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  562. package/dist/esm/ic-toast.entry.js +83 -35
  563. package/dist/esm/ic-toast.entry.js.map +1 -1
  564. package/dist/esm/ic-toggle-button-group.entry.js +16 -16
  565. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  566. package/dist/esm/ic-toggle-button.entry.js +13 -13
  567. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  568. package/dist/esm/ic-top-navigation.entry.js +4 -4
  569. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  570. package/dist/esm/ic-tree-item.entry.js +237 -0
  571. package/dist/esm/ic-tree-item.entry.js.map +1 -0
  572. package/dist/esm/ic-tree-view.entry.js +199 -0
  573. package/dist/esm/ic-tree-view.entry.js.map +1 -0
  574. package/dist/esm/ic-typography.entry.js +52 -17
  575. package/dist/esm/ic-typography.entry.js.map +1 -1
  576. package/dist/esm/index-93509377.js +16 -8
  577. package/dist/esm/loader.js +1 -1
  578. package/dist/types/components/ic-data-table/ic-data-table.d.ts +68 -7
  579. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +9 -0
  580. package/dist/types/components/ic-data-table/story-data.d.ts +112 -0
  581. package/dist/types/components/ic-date-input/ic-date-input.d.ts +4 -0
  582. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +4 -0
  583. package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +0 -4
  584. package/dist/types/components/ic-select-with-multi/ic-select.d.ts +1 -31
  585. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +95 -0
  586. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +40 -0
  587. package/dist/types/components.d.ts +175 -72
  588. package/dist/types/utils/types.d.ts +1 -1
  589. package/hydrate/index.js +1925 -1126
  590. package/package.json +3 -3
  591. package/dist/cjs/helpers-081d6031.js.map +0 -1
  592. package/dist/cjs/helpers-261701cd.js.map +0 -1
  593. package/dist/cjs/ic-card.cjs.entry.js.map +0 -1
  594. package/dist/cjs/ic-data-entity.cjs.entry.js +0 -29
  595. package/dist/cjs/ic-data-entity.cjs.entry.js.map +0 -1
  596. package/dist/components/ic-alert2.js +0 -133
  597. package/dist/components/ic-alert2.js.map +0 -1
  598. package/dist/components/ic-card.js.map +0 -1
  599. package/dist/components/ic-data-entity.js +0 -53
  600. package/dist/components/ic-data-entity.js.map +0 -1
  601. package/dist/core/p-007da09d.entry.js +0 -2
  602. package/dist/core/p-007da09d.entry.js.map +0 -1
  603. package/dist/core/p-01008e8d.entry.js +0 -2
  604. package/dist/core/p-01008e8d.entry.js.map +0 -1
  605. package/dist/core/p-01297278.entry.js +0 -2
  606. package/dist/core/p-01297278.entry.js.map +0 -1
  607. package/dist/core/p-0551f0cf.entry.js +0 -2
  608. package/dist/core/p-0551f0cf.entry.js.map +0 -1
  609. package/dist/core/p-0944d33b.entry.js +0 -2
  610. package/dist/core/p-0944d33b.entry.js.map +0 -1
  611. package/dist/core/p-0ea28e7a.entry.js.map +0 -1
  612. package/dist/core/p-169bcf0f.entry.js +0 -2
  613. package/dist/core/p-169bcf0f.entry.js.map +0 -1
  614. package/dist/core/p-1733278a.entry.js +0 -2
  615. package/dist/core/p-1733278a.entry.js.map +0 -1
  616. package/dist/core/p-1ac733c1.entry.js +0 -2
  617. package/dist/core/p-1ac733c1.entry.js.map +0 -1
  618. package/dist/core/p-2647931d.entry.js +0 -2
  619. package/dist/core/p-2647931d.entry.js.map +0 -1
  620. package/dist/core/p-32a3b6c8.entry.js +0 -2
  621. package/dist/core/p-32a3b6c8.entry.js.map +0 -1
  622. package/dist/core/p-354e5dbe.entry.js +0 -2
  623. package/dist/core/p-354e5dbe.entry.js.map +0 -1
  624. package/dist/core/p-3ba4335c.entry.js +0 -2
  625. package/dist/core/p-3ba4335c.entry.js.map +0 -1
  626. package/dist/core/p-3be4aae0.entry.js +0 -2
  627. package/dist/core/p-3be4aae0.entry.js.map +0 -1
  628. package/dist/core/p-3d9eca50.entry.js +0 -2
  629. package/dist/core/p-3d9eca50.entry.js.map +0 -1
  630. package/dist/core/p-40fc7162.entry.js.map +0 -1
  631. package/dist/core/p-45ebcb74.js.map +0 -1
  632. package/dist/core/p-4e6f7cfe.entry.js +0 -2
  633. package/dist/core/p-4e6f7cfe.entry.js.map +0 -1
  634. package/dist/core/p-569a68c0.entry.js.map +0 -1
  635. package/dist/core/p-59d9ea22.entry.js.map +0 -1
  636. package/dist/core/p-6358925c.entry.js +0 -2
  637. package/dist/core/p-6358925c.entry.js.map +0 -1
  638. package/dist/core/p-66595f5f.entry.js +0 -2
  639. package/dist/core/p-66595f5f.entry.js.map +0 -1
  640. package/dist/core/p-693a77bb.entry.js +0 -2
  641. package/dist/core/p-693a77bb.entry.js.map +0 -1
  642. package/dist/core/p-6b74397a.entry.js.map +0 -1
  643. package/dist/core/p-6e697a16.entry.js +0 -2
  644. package/dist/core/p-6e697a16.entry.js.map +0 -1
  645. package/dist/core/p-6f8fd43e.entry.js +0 -2
  646. package/dist/core/p-6f8fd43e.entry.js.map +0 -1
  647. package/dist/core/p-787ffd96.entry.js.map +0 -1
  648. package/dist/core/p-7f690fa3.entry.js +0 -2
  649. package/dist/core/p-7f690fa3.entry.js.map +0 -1
  650. package/dist/core/p-96670e29.entry.js +0 -2
  651. package/dist/core/p-96670e29.entry.js.map +0 -1
  652. package/dist/core/p-9777ebb1.entry.js +0 -2
  653. package/dist/core/p-9777ebb1.entry.js.map +0 -1
  654. package/dist/core/p-9e7a5c72.entry.js.map +0 -1
  655. package/dist/core/p-9f8ef2bc.entry.js +0 -2
  656. package/dist/core/p-9f8ef2bc.entry.js.map +0 -1
  657. package/dist/core/p-a4585c7e.entry.js +0 -2
  658. package/dist/core/p-a4585c7e.entry.js.map +0 -1
  659. package/dist/core/p-a589ead8.entry.js.map +0 -1
  660. package/dist/core/p-a6d3743c.entry.js +0 -2
  661. package/dist/core/p-a6d3743c.entry.js.map +0 -1
  662. package/dist/core/p-a8c97918.entry.js +0 -2
  663. package/dist/core/p-a8c97918.entry.js.map +0 -1
  664. package/dist/core/p-a970d653.entry.js +0 -2
  665. package/dist/core/p-a970d653.entry.js.map +0 -1
  666. package/dist/core/p-ae7c2c39.entry.js +0 -2
  667. package/dist/core/p-ae7c2c39.entry.js.map +0 -1
  668. package/dist/core/p-b3ed5423.entry.js.map +0 -1
  669. package/dist/core/p-be4c0cc8.entry.js +0 -2
  670. package/dist/core/p-be4c0cc8.entry.js.map +0 -1
  671. package/dist/core/p-c04f1bfb.entry.js +0 -2
  672. package/dist/core/p-c04f1bfb.entry.js.map +0 -1
  673. package/dist/core/p-d06c0049.entry.js +0 -2
  674. package/dist/core/p-d06c0049.entry.js.map +0 -1
  675. package/dist/core/p-d3ea79e1.entry.js +0 -2
  676. package/dist/core/p-d3ea79e1.entry.js.map +0 -1
  677. package/dist/core/p-d448bdbd.entry.js +0 -2
  678. package/dist/core/p-d448bdbd.entry.js.map +0 -1
  679. package/dist/core/p-d44b7f21.entry.js.map +0 -1
  680. package/dist/core/p-d5d36143.entry.js.map +0 -1
  681. package/dist/core/p-d68e0c94.entry.js +0 -2
  682. package/dist/core/p-d68e0c94.entry.js.map +0 -1
  683. package/dist/core/p-d91428b4.entry.js.map +0 -1
  684. package/dist/core/p-e191290c.entry.js +0 -2
  685. package/dist/core/p-e191290c.entry.js.map +0 -1
  686. package/dist/core/p-e2421111.entry.js +0 -2
  687. package/dist/core/p-e2421111.entry.js.map +0 -1
  688. package/dist/core/p-e393e53c.entry.js +0 -2
  689. package/dist/core/p-e393e53c.entry.js.map +0 -1
  690. package/dist/core/p-e5b1dd58.entry.js.map +0 -1
  691. package/dist/core/p-f6735e4a.js +0 -2
  692. package/dist/core/p-f6735e4a.js.map +0 -1
  693. package/dist/core/p-fab8da25.entry.js.map +0 -1
  694. package/dist/core/p-fc0eac8b.entry.js +0 -2
  695. package/dist/core/p-fc0eac8b.entry.js.map +0 -1
  696. package/dist/core/p-ffeca3c7.entry.js +0 -2
  697. package/dist/core/p-ffeca3c7.entry.js.map +0 -1
  698. package/dist/esm/helpers-e75fd113.js.map +0 -1
  699. package/dist/esm/ic-card.entry.js.map +0 -1
  700. package/dist/esm/ic-data-entity.entry.js +0 -25
  701. package/dist/esm/ic-data-entity.entry.js.map +0 -1
  702. /package/dist/core/{p-fdacc7f7.entry.js.map → p-125bc120.entry.js.map} +0 -0
  703. /package/dist/core/{p-1d0cff8a.entry.js.map → p-22260ed4.entry.js.map} +0 -0
  704. /package/dist/core/{p-fb4219d6.entry.js.map → p-88ba5a88.entry.js.map} +0 -0
  705. /package/dist/core/{p-9e69f517.entry.js.map → p-b6e208e3.entry.js.map} +0 -0
  706. /package/dist/core/{p-145c8074.entry.js.map → p-ede631c5.entry.js.map} +0 -0
@@ -455,12 +455,12 @@ video {
455
455
  --input-field-width: var(--input-width, 19.125rem);
456
456
  }
457
457
 
458
- :host(.large) {
458
+ :host(.ic-date-picker-large) {
459
459
  --month-button-width: 6.3125rem;
460
460
  --input-field-width: var(--input-width, 21.125rem);
461
461
  }
462
462
 
463
- :host(.small) {
463
+ :host(.ic-date-picker-small) {
464
464
  --month-button-width: 6.25rem;
465
465
  --input-field-width: var(--input-width, 17.125rem);
466
466
  }
@@ -493,12 +493,12 @@ ic-date-input {
493
493
  animation: fade-in-calendar var(--ic-transition-duration-slow);
494
494
  }
495
495
 
496
- :host(.small) .calendar-container {
496
+ :host(.ic-date-picker-small) .calendar-container {
497
497
  min-width: 17rem;
498
498
  max-width: 21.5rem;
499
499
  }
500
500
 
501
- :host(.large) .calendar-container {
501
+ :host(.ic-date-picker-large) .calendar-container {
502
502
  min-width: 21rem;
503
503
  max-width: 25.5rem;
504
504
  }
@@ -536,13 +536,13 @@ ic-date-input {
536
536
  row-gap: var(--ic-space-xxs);
537
537
  }
538
538
 
539
- :host(.small) .month-picker,
540
- :host(.small) .year-picker {
539
+ :host(.ic-date-picker-small) .month-picker,
540
+ :host(.ic-date-picker-small) .year-picker {
541
541
  width: 13.125rem;
542
542
  }
543
543
 
544
- :host(.large) .month-picker,
545
- :host(.large) .year-picker {
544
+ :host(.ic-date-picker-large) .month-picker,
545
+ :host(.ic-date-picker-large) .year-picker {
546
546
  width: 20rem;
547
547
  }
548
548
 
@@ -578,7 +578,7 @@ ic-date-input {
578
578
  padding-right: var(--ic-space-lg);
579
579
  }
580
580
 
581
- :host(.small) .prev-decade .year-button::part(button) {
581
+ :host(.ic-date-picker-small) .prev-decade .year-button::part(button) {
582
582
  padding-left: 0;
583
583
  padding-right: calc(var(--ic-space-lg) + var(--ic-space-xxs));
584
584
  }
@@ -593,8 +593,8 @@ ic-date-input {
593
593
  padding-left: var(--ic-space-lg);
594
594
  }
595
595
 
596
- :host(.small) .next-decade .year-button::part(button),
597
- :host(.large) .next-decade .year-button::part(button) {
596
+ :host(.ic-date-picker-small) .next-decade .year-button::part(button),
597
+ :host(.ic-date-picker-large) .next-decade .year-button::part(button) {
598
598
  padding-left: var(--ic-space-xl);
599
599
  }
600
600
 
@@ -607,7 +607,7 @@ ic-date-input {
607
607
  animation: fade-in-buttons var(--ic-transition-duration-slow);
608
608
  }
609
609
 
610
- :host(.small) .bottom-buttons {
610
+ :host(.ic-date-picker-small) .bottom-buttons {
611
611
  padding-top: var(--ic-space-xxs);
612
612
  }
613
613
 
@@ -628,11 +628,11 @@ ic-date-input {
628
628
  animation: fade-in-buttons var(--ic-transition-duration-slow);
629
629
  }
630
630
 
631
- :host(.large) .calendar {
631
+ :host(.ic-date-picker-large) .calendar {
632
632
  width: 19.25rem;
633
633
  }
634
634
 
635
- :host(.small) .calendar {
635
+ :host(.ic-date-picker-small) .calendar {
636
636
  padding-bottom: var(--ic-space-xxs);
637
637
  width: 14rem;
638
638
  }
@@ -657,11 +657,11 @@ ic-date-input {
657
657
  padding: var(--ic-space-xxs) 0;
658
658
  }
659
659
 
660
- :host(.small) .calendar-days-container {
660
+ :host(.ic-date-picker-small) .calendar-days-container {
661
661
  padding: var(--ic-space-xxxs) 0;
662
662
  }
663
663
 
664
- :host(.large) .calendar-days-container {
664
+ :host(.ic-date-picker-large) .calendar-days-container {
665
665
  padding: var(--ic-space-xs) 0;
666
666
  }
667
667
 
@@ -673,8 +673,8 @@ ic-date-input {
673
673
  align-items: center;
674
674
  }
675
675
 
676
- :host(.small) .calendar-day-header,
677
- :host(.large) .calendar-day-header {
676
+ :host(.ic-date-picker-small) .calendar-day-header,
677
+ :host(.ic-date-picker-large) .calendar-day-header {
678
678
  padding: var(--ic-space-xxs);
679
679
  }
680
680
 
@@ -691,12 +691,12 @@ ic-date-input {
691
691
  height: 2.25rem;
692
692
  }
693
693
 
694
- :host(.small) .day-button-container {
694
+ :host(.ic-date-picker-small) .day-button-container {
695
695
  width: 2rem;
696
696
  height: 2rem;
697
697
  }
698
698
 
699
- :host(.large) .day-button-container {
699
+ :host(.ic-date-picker-large) .day-button-container {
700
700
  width: 2.5rem;
701
701
  height: 2.5rem;
702
702
  }
@@ -720,12 +720,12 @@ ic-date-input {
720
720
  cursor: default;
721
721
  }
722
722
 
723
- :host(.large) .day-button {
723
+ :host(.ic-date-picker-large) .day-button {
724
724
  width: 2.25rem;
725
725
  height: 2.25rem;
726
726
  }
727
727
 
728
- :host(.small) .day-button {
728
+ :host(.ic-date-picker-small) .day-button {
729
729
  width: 1.75rem;
730
730
  height: 1.75rem;
731
731
  }
@@ -802,11 +802,11 @@ ic-date-input {
802
802
  background-color: var(--ic-action-default);
803
803
  }
804
804
 
805
- :host(.small) .day-button.today::after {
805
+ :host(.ic-date-picker-small) .day-button.today::after {
806
806
  bottom: 0.35rem;
807
807
  }
808
808
 
809
- :host(.large) .day-button.today::after {
809
+ :host(.ic-date-picker-large) .day-button.today::after {
810
810
  width: 1rem;
811
811
  }
812
812
 
@@ -677,6 +677,9 @@ export class DatePicker {
677
677
  if (this.helperText !== undefined) {
678
678
  inputProps.helperText = this.helperText;
679
679
  }
680
+ if (this.hideHelperText !== false) {
681
+ inputProps.hideHelperText = this.hideHelperText;
682
+ }
680
683
  if (this.inputId !== undefined) {
681
684
  inputProps.inputId = this.inputId;
682
685
  }
@@ -727,6 +730,7 @@ export class DatePicker {
727
730
  this.disablePast = false;
728
731
  this.disablePastMessage = "Dates in the past are not allowed. Please select a date in the future.";
729
732
  this.helperText = undefined;
733
+ this.hideHelperText = false;
730
734
  this.inputId = undefined;
731
735
  this.label = undefined;
732
736
  this.max = "";
@@ -903,7 +907,7 @@ export class DatePicker {
903
907
  yesterday.setDate(minDate.getDate() - 1);
904
908
  minDay = yesterday;
905
909
  }
906
- return (h(Host, { onKeyDown: this.keyDownHandler, class: size }, h("div", { class: "date-input-container" }, h("ic-date-input", Object.assign({ ref: (el) => (this.inputEl = el) }, dateInputProps))), calendarOpen && (h("div", null, h("span", { id: "dialog-description", class: "sr-only" }, dialogDescription), h("div", { role: "dialog", "aria-modal": "true", "aria-label": dialogLabel, "aria-describedBy": "dialog-description", class: {
910
+ return (h(Host, { onKeyDown: this.keyDownHandler, class: { [`ic-date-picker-${size}`]: true } }, h("div", { class: "date-input-container" }, h("ic-date-input", Object.assign({ ref: (el) => (this.inputEl = el) }, dateInputProps))), calendarOpen && (h("div", null, h("span", { id: "dialog-description", class: "sr-only" }, dialogDescription), h("div", { role: "dialog", "aria-modal": "true", "aria-label": dialogLabel, "aria-describedBy": "dialog-description", class: {
907
911
  "calendar-container": true,
908
912
  above: this.showPickerAbove,
909
913
  }, onMouseDown: this.handleCalendarMouseDown, onClick: this.handleCalendarClick }, h("span", { ref: (el) => (this.liveRegionEl = el), id: "live-region", "aria-live": "assertive", class: "sr-only" }), h("div", { class: {
@@ -1113,6 +1117,24 @@ export class DatePicker {
1113
1117
  "attribute": "helper-text",
1114
1118
  "reflect": false
1115
1119
  },
1120
+ "hideHelperText": {
1121
+ "type": "boolean",
1122
+ "mutable": false,
1123
+ "complexType": {
1124
+ "original": "boolean",
1125
+ "resolved": "boolean",
1126
+ "references": {}
1127
+ },
1128
+ "required": false,
1129
+ "optional": false,
1130
+ "docs": {
1131
+ "tags": [],
1132
+ "text": "If `true`, the helper text will be visually hidden, but still read out by screenreaders."
1133
+ },
1134
+ "attribute": "hide-helper-text",
1135
+ "reflect": false,
1136
+ "defaultValue": "false"
1137
+ },
1116
1138
  "inputId": {
1117
1139
  "type": "string",
1118
1140
  "mutable": false,
@@ -1 +1 @@
1
- {"version":3,"file":"ic-date-picker.js","sourceRoot":"","sources":["../../../src/components/ic-date-picker/ic-date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n h,\n Prop,\n Listen,\n Watch,\n State,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\nimport {\n createDate,\n clampDate,\n dateMatches,\n dateInRange,\n getMonthStart,\n getMonthEnd,\n getWeekEnd,\n getWeekStart,\n yearInRange,\n} from \"../../utils/date-helpers\";\nimport {\n stringEnumToArray,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcWeekDays,\n IcShortDayNames,\n IcDateInputMonths,\n IcDateFormat,\n IcSizes,\n IcInformationStatusOrEmpty,\n} from \"../../utils/types\";\nimport chevron from \"../../assets/chevron-icon.svg\";\nimport { DayButton } from \"./ic-day-button\";\nimport { MonthPicker } from \"./ic-month-picker\";\nimport { YearPicker } from \"./ic-year-picker\";\n\nconst DEFAULT_DATE_FORMAT = \"DD/MM/YYYY\";\nconst DEFAULT_DISABLE_DATES_FROM_NOW_MSG =\n \"Dates in the future are not allowed. Please select a date in the past.\";\nconst DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG =\n \"Dates in the past are not allowed. Please select a date in the future.\";\nconst DEFAULT_DISABLE_DAYS_MSG =\n \"The date you have selected is on a day of the week that is not allowed. Please select another date.\";\nconst FOCUS_TIMER = 100;\nconst PICKER_HEIGHT_SMALL = 360;\nconst PICKER_HEIGHT_DEFAULT = 400;\nconst PICKER_HEIGHT_LARGE = 440;\n\ninterface IcDateInputProps {\n dateFormat?: IcDateFormat;\n disabled?: boolean;\n disableDays?: IcWeekDays[];\n disableDaysMessage?: string;\n disableFuture?: boolean;\n disableFutureMessage?: string;\n disablePast?: boolean;\n disablePastMessage?: string;\n helperText?: string;\n inputId?: string;\n label: string;\n max?: string | Date;\n min?: string | Date;\n name?: string;\n required?: boolean;\n showClearButton?: boolean;\n showCalendarButton?: boolean;\n size?: IcSizes;\n value?: string | Date;\n validationStatus?: IcInformationStatusOrEmpty;\n validationText?: string;\n}\n\n@Component({\n tag: \"ic-date-picker\",\n styleUrl: \"ic-date-picker.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class DatePicker {\n private inputEl: HTMLIcDateInputElement;\n private clearButtonEl: HTMLIcButtonElement = null;\n private dateInputProps: IcDateInputProps;\n private daysOfWeek: string[] = [];\n private dayButtonFocussed: boolean = false;\n private dayPickerKeyboardNav: boolean = false;\n private decadeStart: number;\n private decadeEnd: number;\n private dialogDescription: string = \"\";\n private focusDay: boolean = true;\n private focussedYearEl: HTMLIcButtonElement;\n private liveRegionEl: HTMLElement = null;\n private monthButtonEl: HTMLIcButtonElement;\n private monthNames: string[] = [];\n private monthInViewUpdateHandled: boolean = false;\n private myCalendarButtonClicked: boolean = false;\n private showPickerAbove: boolean = false;\n private today = new Date();\n private todayButtonEl: HTMLIcButtonElement = null;\n private yearButtonEl: HTMLIcButtonElement;\n private yearButtonFocussed: boolean = false;\n\n @Element() el: HTMLIcDatePickerElement;\n\n @State() calendarOpen: boolean = false;\n @State() currMonthView: Date[] = [];\n @State() currYearPickerView: number[] = [];\n @State() decadeView: number[] = [];\n @State() focussedDate: Date = null;\n @State() focussedDay: number;\n @State() focussedDayEl: HTMLButtonElement;\n @State() focussedMonth: number;\n @State() focussedMonthEl: HTMLIcButtonElement;\n @State() focussedYear: number;\n @State() maxDate: Date = null;\n @State() minDate: Date = null;\n @State() monthInView: number;\n @State() monthPickerVisible: boolean = false;\n @State() orderedDaysOfWeek: string[] = [];\n @State() selectedDate: Date = null;\n @State() yearInView: number;\n @State() yearPickerVisible: boolean = false;\n\n /**\n * The format in which the date will be displayed.\n */\n @Prop() dateFormat?: IcDateFormat = \"DD/MM/YYYY\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The days of the week to disable.\n */\n @Prop() disableDays?: IcWeekDays[] = [];\n\n /**\n * The text to display as the validation message when `disableDays` is `true` and a disabled date is entered.\n */\n @Prop() disableDaysMessage?: string =\n \"The date you have selected is on a day of the week that is not allowed. Please select another date.\";\n\n /**\n * If `true`, dates in the future are not allowed. A validation message will appear if a date in the future is entered.\n */\n @Prop() disableFuture?: boolean = false;\n\n @Watch(\"disableFuture\")\n watchDisableFutureHandler(): void {\n this.watchMaxHandler();\n }\n\n /**\n * The text to display as the validation message when `disableFuture` is `true` and a date in the future is entered.\n */\n @Prop() disableFutureMessage?: string =\n \"Dates in the future are not allowed. Please select a date in the past.\";\n\n /**\n * If `true`, dates in the past are not allowed. A validation message will appear if a date in the past is entered.\n */\n @Prop() disablePast?: boolean = false;\n\n @Watch(\"disablePast\")\n watchDisablePastHandler(): void {\n this.watchMinHandler();\n }\n\n /**\n * The text to display as the validation message when `disablePast` is `true` and a date in the past is entered.\n */\n @Prop() disablePastMessage?: string =\n \"Dates in the past are not allowed. Please select a date in the future.\";\n\n /**\n * The helper text that will be displayed for additional field guidance. This will default to the text \"Use format\" along with the `dateFormat` value.\n */\n @Prop() helperText?: string;\n\n /**\n * The ID for the input field. The default will be an automatically generated value.\n */\n @Prop() inputId?: string;\n\n /**\n * The label for the date input.\n */\n @Prop() label!: string;\n\n /**\n * The latest date that will be allowed. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n * The value of this prop is ignored if `disableFuture` is set to `true`.\n */\n @Prop() max?: string | Date = \"\";\n\n @Watch(\"max\")\n watchMaxHandler(): void {\n if (this.disableFuture) {\n this.maxDate = new Date();\n } else {\n this.maxDate = createDate(this.max, this.dateFormat);\n }\n }\n\n /**\n * The earliest date that will be allowed. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n * The value of this prop is ignored if `disablePast` is set to `true`.\n */\n @Prop() min?: string | Date = \"\";\n\n @Watch(\"min\")\n watchMinHandler(): void {\n if (this.disablePast) {\n this.minDate = new Date();\n } else {\n this.minDate = createDate(this.min, this.dateFormat);\n }\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string;\n\n /**\n * The date visible when the calendar opens. Used if no date is currently selected.\n * The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n */\n @Prop() openAtDate: string | Date = \"\";\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * If `true`, days outside the current month will be visible in the date picker.\n */\n @Prop() showDaysOutsideMonth?: boolean = true;\n\n /**\n * If `true`, the `Clear` button on the date picker will be visible.\n */\n @Prop() showPickerClearButton?: boolean = true;\n\n /**\n * If `true`, the `Go to today` button on the date picker will be visible.\n */\n @Prop() showPickerTodayButton?: boolean = true;\n\n /**\n * The size of the date picker to be displayed.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * The first day of the week. `0` for Sunday, `1` for Monday, etc.\n * Default is Monday.\n */\n @Prop() startOfWeek?: IcWeekDays = IcWeekDays.Monday;\n\n @Watch(\"startOfWeek\")\n watchStartOfWeekHandler(): void {\n this.orderedDaysOfWeek = this.daysOfWeek\n .slice(this.startOfWeek)\n .concat(this.daysOfWeek.slice(0, this.startOfWeek));\n if (this.calendarOpen) {\n this.updateMonthInView();\n }\n }\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in date validation.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message. This will override the built-in date validation.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * The value of the date picker. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n */\n @Prop({ mutable: true }) value?: string | Date | null | undefined = \"\";\n\n @Watch(\"calendarOpen\")\n watchOpenHandler(): void {\n if (this.calendarOpen) {\n if (this.inputEl) {\n let pickerHeight = PICKER_HEIGHT_DEFAULT;\n if (this.size === \"small\") {\n pickerHeight = PICKER_HEIGHT_SMALL;\n } else if (this.size === \"large\") {\n pickerHeight = PICKER_HEIGHT_LARGE;\n }\n if (\n this.el.offsetTop + this.inputEl.offsetHeight + pickerHeight >\n window.innerHeight &&\n this.el.offsetTop > pickerHeight\n ) {\n this.showPickerAbove = true;\n } else {\n this.showPickerAbove = false;\n }\n }\n if (\n this.selectedDate === null ||\n !dateInRange(this.selectedDate, this.minDate, this.maxDate)\n ) {\n let openAt = new Date();\n if (this.openAtDate !== \"\") {\n openAt = createDate(this.openAtDate, this.dateFormat);\n }\n this.setFocussedDate(openAt);\n } else {\n this.setFocussedDate(this.selectedDate);\n }\n let dialogDesc = this.getMonthInViewText();\n if (this.selectedDate === null) {\n dialogDesc += \" No date selected.\";\n }\n dialogDesc +=\n \" Use arrow keys to change day. Press enter or space to select a date or press escape to close the picker\";\n this.dialogDescription = dialogDesc;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n document.addEventListener(\"click\", this.handleDocumentClick);\n } else {\n document.removeEventListener(\"click\", this.handleDocumentClick);\n this.monthPickerVisible = false;\n this.yearPickerVisible = false;\n }\n }\n\n @Watch(\"focussedDate\")\n watchFocussedDateHandler(current: Date, previous: Date): void {\n if (\n previous === null ||\n !(\n previous.getFullYear() === current.getFullYear() &&\n previous.getMonth() === current.getMonth()\n )\n ) {\n this.updateMonthInView();\n }\n }\n\n @Watch(\"monthInView\")\n watchMonthInViewHandler(): void {\n this.focussedMonth = this.monthInView;\n }\n\n @Watch(\"yearInView\")\n watchYearInViewHandler(): void {\n this.setFocussedYear(this.yearInView, false);\n }\n\n @Watch(\"yearPickerVisible\")\n watchYearPickerVisibleHandler(): void {\n if (!this.yearPickerVisible) {\n this.setFocussedYear(this.yearInView);\n }\n }\n\n @Watch(\"monthPickerVisible\")\n watchMonthPickerVisibleHandler(): void {\n if (!this.monthPickerVisible) {\n this.focussedMonth = this.monthInView;\n }\n }\n\n @Watch(\"focussedDayEl\")\n watchFocussedDayEl(): void {\n if (this.focusDay) {\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n }\n\n this.focusDay = true;\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{ value: Date }>;\n\n componentWillLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Date Picker\"\n );\n\n this.monthNames = stringEnumToArray(IcDateInputMonths);\n this.daysOfWeek = stringEnumToArray(IcShortDayNames);\n\n this.watchStartOfWeekHandler();\n this.watchMaxHandler();\n this.watchMinHandler();\n }\n\n componentWillRender(): void {\n this.dateInputProps = this.setDateInputProps();\n }\n\n componentWillUpdate(): void {\n this.dateInputProps = this.setDateInputProps();\n }\n\n @Listen(\"calendarButtonClicked\")\n localCalendarButtonClickHandler(ev: CustomEvent): void {\n this.myCalendarButtonClicked = true;\n if (!this.calendarOpen) {\n this.setSelectedDate(ev.detail.value, false);\n }\n\n this.calendarOpen = !this.calendarOpen;\n }\n\n @Listen(\"calendarButtonClicked\", { target: \"document\" })\n calendarButtonClickHandler(): void {\n //closes this picker if calendar button in another clicked\n if (!this.myCalendarButtonClicked) {\n this.calendarOpen = false;\n }\n this.myCalendarButtonClicked = false;\n }\n\n private setDecadeView = (start: number) => {\n let currYear = start - 1;\n const decadeArr = [];\n while (currYear <= start + 10) {\n decadeArr.push(currYear);\n currYear++;\n }\n this.decadeView = decadeArr;\n this.decadeStart = decadeArr[1];\n this.decadeEnd = decadeArr[10];\n };\n\n private setSelectedDate = (d: Date, emit = true): void => {\n if (d === null || !dateMatches(d, this.selectedDate)) {\n this.selectedDate = d;\n this.value = d;\n if (emit) {\n this.inputEl.triggerIcChange(d);\n }\n }\n };\n\n private handleCalendarMouseDown = (event: MouseEvent): void => {\n const target = event.target as HTMLElement;\n if (target.tagName !== \"IC-BUTTON\") {\n event.preventDefault();\n }\n };\n\n private handleCalendarClick = (event: MouseEvent): void => {\n this.clearDialogDescription();\n event.stopImmediatePropagation();\n };\n\n private handleDocumentClick = (): void => {\n this.calendarOpen = false;\n };\n\n private keyDownHandler = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n if (this.calendarOpen) {\n this.closeButtonClickHandler();\n this.inputEl.setCalendarFocus();\n event.stopImmediatePropagation();\n }\n } else {\n this.clearDialogDescription();\n event.stopImmediatePropagation();\n }\n };\n\n private closeButtonClickHandler = () => {\n this.calendarOpen = false;\n };\n\n private focusFirstElement = () => {\n this.monthButtonEl.setFocus();\n };\n\n private focusLastElement = () => {\n if (this.showPickerClearButton && !this.clearButtonEl.disabled) {\n this.clearButtonEl.setFocus();\n } else if (this.showPickerTodayButton && !this.todayButtonEl.disabled) {\n this.todayButtonEl.setFocus();\n } else if (this.monthPickerVisible) {\n this.focussedMonthEl.setFocus();\n } else if (this.yearPickerVisible) {\n this.focussedYearEl.setFocus();\n } else {\n this.focussedDayEl.focus();\n }\n };\n\n private focusFocussedDay = () => {\n this.focussedDayEl.focus();\n };\n\n private monthButtonClickHandler = () => {\n this.yearPickerVisible = false;\n this.focusDay = false;\n this.monthPickerVisible = !this.monthPickerVisible;\n if (this.monthPickerVisible) {\n this.setAriaLiveRegionText(\"Month picker view open\");\n } else {\n this.setMonthSelectedLiveRegionText();\n }\n };\n\n private yearButtonClickHandler = () => {\n this.monthPickerVisible = false;\n this.focusDay = false;\n this.yearPickerVisible = !this.yearPickerVisible;\n if (this.yearPickerVisible) {\n this.setAriaLiveRegionText(\n `Year picker view open. ${this.getDecadeInViewText()}`\n );\n } else {\n this.setYearSelectedLiveRegionText();\n }\n };\n\n private todayButtonClickHandler = () => {\n this.yearPickerVisible = false;\n this.monthPickerVisible = false;\n this.setFocussedDate(new Date());\n this.setAriaLiveRegionText(this.getMonthInViewText());\n\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n };\n\n private todayButtonKeyDownHandler = (ev: KeyboardEvent) => {\n if (ev.key === \"Tab\" && !ev.shiftKey && this.clearButtonEl.disabled) {\n this.focusFirstElement();\n ev.preventDefault();\n }\n };\n\n private clearButtonClickHandler = () => {\n this.setSelectedDate(null);\n let text = \"Selected date cleared.\";\n if (!this.monthPickerVisible && !this.yearPickerVisible) {\n text += ` ${this.getMonthInViewText()}`;\n }\n if (this.monthPickerVisible) {\n this.focussedMonthEl.setFocus();\n } else if (this.yearPickerVisible) {\n this.focussedYearEl.setFocus();\n } else {\n this.focusFocussedDay();\n }\n this.setAriaLiveRegionText(text);\n };\n\n private setMonthSelectedLiveRegionText = () => {\n this.setAriaLiveRegionText(\n `${\n this.monthNames[this.monthInView]\n } selected. ${this.getMonthInViewText()}`\n );\n };\n\n private setYearSelectedLiveRegionText = () => {\n this.setAriaLiveRegionText(\n `${this.yearInView} selected. ${this.getMonthInViewText()}`\n );\n };\n\n private getMonthInViewText = () => {\n return `${this.monthNames[this.monthInView]} ${\n this.yearInView\n } currently in view.`;\n };\n\n private getDecadeInViewText = () => {\n return `${this.decadeStart} to ${this.decadeEnd} currently in view.`;\n };\n\n private setAriaLiveRegionText = (text: string) => {\n this.liveRegionEl && (this.liveRegionEl.innerText = text);\n };\n\n private clearDialogDescription = () => {\n this.dialogDescription = \"\";\n };\n\n private clearButtonKeyDownHandler = (ev: KeyboardEvent) => {\n if (ev.key === \"Tab\" && !ev.shiftKey) {\n this.focusFirstElement();\n ev.preventDefault();\n }\n };\n\n private goToPreviousMonth = (focusDay = false) => {\n this.focusDay = focusDay;\n this.moveMonths(-1);\n };\n\n private goToNextMonth = (focusDay = false) => {\n this.focusDay = focusDay;\n this.moveMonths(1);\n };\n\n private goToPreviousYear = (focusDay = false) => {\n if (this.isPrevYearAllowed()) {\n this.focusDay = focusDay;\n this.moveYears(-1);\n }\n };\n\n private goToNextYear = (focusDay = false) => {\n if (this.isNextYearAllowed()) {\n this.focusDay = focusDay;\n this.moveYears(1);\n }\n };\n\n private navButtonMouseDownHandler = (ev: MouseEvent): void => {\n ev.preventDefault();\n };\n\n private renderMonthYearNavButton = (\n id: string,\n flip: boolean,\n disabled: boolean\n ): void => {\n const buttonSize = this.size;\n return (\n <div aria-hidden=\"true\">\n <ic-button\n id={id}\n disableTooltip={true}\n disabled={disabled}\n onClick={this.monthYearNavClickHandler}\n class={{ flip: flip }}\n variant=\"icon\"\n innerHTML={chevron}\n size={buttonSize}\n tabIndex={-1}\n aria-hidden=\"true\"\n onMouseDown={this.navButtonMouseDownHandler}\n />\n </div>\n );\n };\n\n private monthYearNavClickHandler = (ev: Event): void => {\n const target = ev.target as Element;\n switch (target.id) {\n case \"previous-month-button\":\n this.goToPreviousMonth(this.dayButtonFocussed);\n break;\n\n case \"next-month-button\":\n this.goToNextMonth(this.dayButtonFocussed);\n break;\n\n case \"previous-year-button\":\n this.goToPreviousYear(this.dayButtonFocussed);\n break;\n\n case \"next-year-button\":\n this.goToNextYear(this.dayButtonFocussed);\n break;\n }\n };\n\n private previousMonthButton = (): void => {\n let disabled = false;\n if (this.focussedDate !== null && this.minDate !== null) {\n const yearMatch =\n this.focussedDate.getFullYear() === this.minDate.getFullYear();\n if (yearMatch) {\n disabled = this.monthInView - 1 < this.minDate.getMonth();\n }\n }\n return this.renderMonthYearNavButton(\n \"previous-month-button\",\n true,\n disabled\n );\n };\n\n private nextMonthButton = (): void => {\n let disabled = false;\n if (this.focussedDate !== null && this.maxDate !== null) {\n const yearMatch =\n this.focussedDate.getFullYear() === this.maxDate.getFullYear();\n if (yearMatch) {\n disabled = this.monthInView + 1 > this.maxDate.getMonth();\n }\n }\n return this.renderMonthYearNavButton(\"next-month-button\", false, disabled);\n };\n\n private previousYearButton = (): void => {\n return this.renderMonthYearNavButton(\n \"previous-year-button\",\n true,\n !this.isPrevYearAllowed()\n );\n };\n\n private nextYearButton = (): void => {\n return this.renderMonthYearNavButton(\n \"next-year-button\",\n false,\n !this.isNextYearAllowed()\n );\n };\n\n private isPrevYearAllowed = (): boolean => {\n return this.isYearAllowed(this.yearInView - 1);\n };\n\n private isNextYearAllowed = (): boolean => {\n return this.isYearAllowed(this.yearInView + 1);\n };\n\n private isYearAllowed = (yr: number): boolean => {\n return yearInRange(yr, this.minDate, this.maxDate);\n };\n\n private getMonthView = (date: Date): Date[] => {\n const start = getWeekStart(getMonthStart(date), this.startOfWeek);\n const end = getWeekEnd(getMonthEnd(date), this.startOfWeek);\n\n const days: Date[] = [];\n let current = start;\n\n while (!dateMatches(current, end)) {\n days.push(current);\n current = new Date(current);\n current.setDate(current.getDate() + 1);\n }\n\n days.push(current);\n\n return days;\n };\n\n private isCurrentMonth = (): boolean => {\n const d = new Date();\n return (\n d.getFullYear() === this.yearInView && d.getMonth() === this.monthInView\n );\n };\n\n private updateMonthInView = (): void => {\n this.currMonthView = this.getMonthView(this.focussedDate);\n\n this.focussedDay = this.focussedDate.getDate();\n this.monthInView = this.focussedDate.getMonth();\n this.yearInView = this.focussedDate.getFullYear();\n\n if (this.dayPickerKeyboardNav) {\n this.monthInViewUpdateHandled = true;\n this.setAriaLiveRegionText(this.getMonthInViewText());\n this.dayPickerKeyboardNav = false;\n }\n };\n\n private handleSelectDay = (day: Date): void => {\n this.setSelectedDate(day);\n this.calendarOpen = false;\n this.inputEl.setCalendarFocus();\n };\n\n private handleSelectMonth = (month: number): void => {\n this.moveMonths(month - this.monthInView);\n setTimeout(() => {\n this.monthButtonEl.setFocus();\n this.monthPickerVisible = false;\n this.setMonthSelectedLiveRegionText();\n }, FOCUS_TIMER);\n };\n\n private handleSelectYear = (year: number): void => {\n const yrPos = this.decadeView.indexOf(year);\n if (yrPos > 0 && yrPos < this.decadeView.length - 1) {\n this.moveYears(year - this.yearInView);\n this.focusDay = false;\n const monthName = this.monthNames[this.monthInView];\n this.setAriaLiveRegionText(\n `${year} selected. ${monthName} ${year} currently in view.`\n );\n setTimeout(() => {\n this.yearButtonEl.setFocus();\n this.yearPickerVisible = false;\n }, FOCUS_TIMER);\n } else {\n const moveYears = year - this.focussedYear > 0 ? 10 : -10;\n this.updateFocussedYear(moveYears, this.yearButtonFocussed);\n this.setAriaLiveRegionText(this.getDecadeInViewText());\n }\n };\n\n private monthPickerKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.updateFocussedMonth(-1);\n break;\n\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.updateFocussedMonth(1);\n break;\n\n case \"Home\":\n this.updateFocussedMonth(-this.focussedMonth);\n break;\n\n case \"End\":\n this.updateFocussedMonth(11 - this.focussedMonth);\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n case \"Escape\":\n ev.stopImmediatePropagation();\n this.monthPickerVisible = false;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n break;\n\n default:\n handled = false;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private yearPickerKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.updateFocussedYear(-1);\n break;\n\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.updateFocussedYear(1);\n break;\n\n case \"Home\":\n if (this.focussedYear > this.decadeStart) {\n this.updateFocussedYear(this.decadeStart - this.focussedYear);\n }\n break;\n\n case \"End\":\n if (this.focussedYear < this.decadeEnd) {\n this.updateFocussedYear(this.decadeEnd - this.focussedYear);\n }\n break;\n\n case \"PageUp\":\n this.updateFocussedYear(-10);\n break;\n\n case \"PageDown\":\n this.updateFocussedYear(10);\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n case \"Escape\":\n ev.stopImmediatePropagation();\n this.yearPickerVisible = false;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n break;\n\n default:\n handled = false;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private onYearButtonFocusHandler = () => {\n this.yearButtonFocussed = true;\n };\n\n private onYearButtonBlurHandler = () => {\n this.yearButtonFocussed = false;\n };\n\n private monthButtonKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = false;\n switch (ev.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n handled = true;\n this.goToPreviousMonth();\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n handled = true;\n this.goToNextMonth();\n break;\n\n case \"Home\":\n handled = true;\n this.focusDay = false;\n this.moveMonths(-this.monthInView);\n break;\n\n case \"End\":\n handled = true;\n this.focusDay = false;\n this.moveMonths(11 - this.monthInView);\n break;\n\n case \"Tab\":\n if (ev.shiftKey) {\n handled = true;\n this.focusLastElement();\n }\n break;\n\n case \"Escape\":\n if (this.monthPickerVisible) {\n this.monthPickerVisible = false;\n ev.stopImmediatePropagation();\n }\n break;\n\n default:\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private yearButtonKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = false;\n switch (ev.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n handled = true;\n this.goToPreviousYear();\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n handled = true;\n this.goToNextYear();\n break;\n\n case \"Home\":\n if (this.yearPickerVisible && this.yearInView > this.decadeStart) {\n handled = true;\n this.moveYears(this.decadeStart - this.yearInView);\n }\n break;\n\n case \"End\":\n if (this.yearPickerVisible && this.yearInView < this.decadeEnd) {\n handled = true;\n this.moveYears(this.decadeEnd - this.focussedYear);\n }\n break;\n\n case \"PageUp\":\n handled = true;\n this.focusDay = false;\n this.moveYears(-10);\n break;\n\n case \"PageDown\":\n handled = true;\n this.focusDay = false;\n this.moveYears(10);\n break;\n\n case \"Escape\":\n if (this.yearPickerVisible) {\n this.yearPickerVisible = false;\n ev.stopImmediatePropagation();\n }\n break;\n\n default:\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private handleCalendarKeyDown = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowDown\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(7);\n break;\n\n case \"ArrowUp\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(-7);\n break;\n\n case \"ArrowLeft\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(-1 * this.getNextDayToFocus(this.focussedDate, false));\n break;\n\n case \"ArrowRight\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(this.getNextDayToFocus(this.focussedDate, true));\n break;\n\n case \"PageUp\":\n this.dayPickerKeyboardNav = true;\n ev.shiftKey ? this.moveYears(-1) : this.moveMonths(-1);\n break;\n\n case \"PageDown\":\n this.dayPickerKeyboardNav = true;\n ev.shiftKey ? this.moveYears(1) : this.moveMonths(1);\n break;\n\n case \"Home\":\n this.dayPickerKeyboardNav = true;\n this.setFocussedDate(\n new Date(this.focussedYear, this.focussedMonth, 1)\n );\n break;\n\n case \"End\":\n this.dayPickerKeyboardNav = true;\n this.setFocussedDate(\n new Date(this.focussedYear, this.focussedMonth + 1, 0)\n );\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n default:\n handled = false;\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private calendarTabHandler = (ev: KeyboardEvent): boolean => {\n let handled = false;\n if (\n !ev.shiftKey &&\n (!this.showPickerTodayButton || this.isCurrentMonth()) &&\n (!this.showPickerClearButton || this.clearButtonEl.disabled)\n ) {\n this.focusFirstElement();\n handled = true;\n } else if (ev.shiftKey) {\n this.yearButtonEl.setFocus();\n handled = true;\n }\n return handled;\n };\n\n private onDayButtonFocusHandler = () => {\n this.dayButtonFocussed = true;\n };\n\n private onDayButtonBlurHandler = () => {\n this.dayButtonFocussed = false;\n };\n\n private getNextDayToFocus = (\n currDay: Date,\n forward: boolean,\n level = 1\n ): number => {\n const move = forward ? 1 : -1;\n const nextDay = new Date(currDay);\n nextDay.setDate(nextDay.getDate() + move);\n const nextDayNum = Number(nextDay.getDay());\n if (this.disableDays.includes(nextDayNum)) {\n return this.getNextDayToFocus(nextDay, forward, level + 1);\n } else {\n return level;\n }\n };\n\n private moveDays = (numDays: number): void => {\n const d = new Date(this.focussedDate);\n d.setDate(d.getDate() + numDays);\n this.setFocussedDate(d);\n };\n\n private moveMonths = (numMonths: number): void => {\n const newMonth = this.focussedDate.getMonth() + numMonths;\n const min = new Date(\n new Date(getMonthStart(this.focussedDate)).setMonth(newMonth)\n );\n const max = getMonthEnd(min);\n const newDate = new Date(new Date(this.focussedDate).setMonth(newMonth));\n this.setFocussedDate(clampDate(newDate, min, max));\n\n if (\n this.monthPickerVisible === false &&\n this.yearPickerVisible === false &&\n this.monthInViewUpdateHandled === false\n ) {\n this.setAriaLiveRegionText(this.getMonthInViewText());\n }\n this.monthInViewUpdateHandled = false;\n };\n\n private moveYears = (numYears: number): void => {\n const newYear = this.focussedDate.getFullYear() + numYears;\n const min = new Date(\n new Date(getMonthStart(this.focussedDate)).setFullYear(newYear)\n );\n const max = getMonthEnd(min);\n const newDate = new Date(new Date(this.focussedDate).setFullYear(newYear));\n this.setFocussedDate(clampDate(newDate, min, max));\n\n if (\n this.monthPickerVisible === false &&\n this.yearPickerVisible === false &&\n this.monthInViewUpdateHandled === false\n ) {\n this.setAriaLiveRegionText(this.getMonthInViewText());\n }\n this.monthInViewUpdateHandled = false;\n };\n\n private updateFocussedMonth = (adjust: number): void => {\n const d = new Date(this.focussedYear, this.focussedMonth, 1);\n d.setMonth(this.focussedMonth + adjust);\n const newDate = clampDate(d, this.minDate, this.maxDate);\n this.focussedMonth = newDate.getMonth();\n setTimeout(() => this.focussedMonthEl.setFocus(), FOCUS_TIMER);\n };\n\n private updateFocussedYear = (adjust: number, focusYear = true): void => {\n const d = new Date(new Date().setFullYear(this.focussedYear + adjust));\n const newDate = clampDate(d, this.minDate, this.maxDate);\n this.setFocussedYear(newDate.getFullYear(), focusYear);\n };\n\n private setFocussedDate = (d: Date): void => {\n this.focussedDate = clampDate(d, this.minDate, this.maxDate);\n };\n\n private setFocussedDayEl = (element: HTMLButtonElement) => {\n this.focussedDayEl = element;\n };\n\n private setFocussedMonthEl = (element: HTMLIcButtonElement) => {\n this.focussedMonthEl = element;\n };\n\n private setFocussedYearEl = (element: HTMLIcButtonElement) => {\n this.focussedYearEl = element;\n };\n\n private setFocussedYear = (newYear: number, focus = true): void => {\n const prevYear = this.focussedYear;\n this.focussedYear = newYear;\n if (this.yearPickerVisible) {\n const newDecade = Math.floor(newYear / 10) * 10;\n const oldDecade = Math.floor(prevYear / 10) * 10;\n if (newDecade !== oldDecade) {\n this.setDecadeView(newDecade);\n this.setAriaLiveRegionText(this.getDecadeInViewText());\n }\n if (focus) {\n setTimeout(() => {\n if (this.focussedYearEl !== null) this.focussedYearEl.setFocus();\n }, FOCUS_TIMER);\n }\n } else {\n this.setDecadeView(Math.floor(newYear / 10) * 10);\n }\n };\n\n private setDateInputProps = (): IcDateInputProps => {\n const inputProps: IcDateInputProps = {\n label: this.label,\n showClearButton: true,\n showCalendarButton: true,\n value: this.value,\n };\n\n if (this.dateFormat !== DEFAULT_DATE_FORMAT) {\n inputProps.dateFormat = this.dateFormat;\n }\n if (this.disableFuture) {\n inputProps.disableFuture = this.disableFuture;\n if (this.disableFutureMessage !== DEFAULT_DISABLE_DATES_FROM_NOW_MSG) {\n inputProps.disableFutureMessage = this.disableFutureMessage;\n }\n }\n if (this.disablePast) {\n inputProps.disablePast = this.disablePast;\n if (this.disablePastMessage !== DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG) {\n inputProps.disablePastMessage = this.disablePastMessage;\n }\n }\n if (this.disableDays.length > 0) {\n inputProps.disableDays = this.disableDays;\n if (this.disableDaysMessage !== DEFAULT_DISABLE_DAYS_MSG) {\n inputProps.disableDaysMessage = this.disableDaysMessage;\n }\n }\n if (this.max !== null && this.max !== \"\") {\n inputProps.max = this.maxDate;\n }\n if (this.min !== null && this.min !== \"\") {\n inputProps.min = this.minDate;\n }\n if (this.helperText !== undefined) {\n inputProps.helperText = this.helperText;\n }\n if (this.inputId !== undefined) {\n inputProps.inputId = this.inputId;\n }\n if (this.name !== undefined) {\n inputProps.name = this.name;\n }\n if (this.disabled) {\n inputProps.disabled = this.disabled;\n }\n if (this.required) {\n inputProps.required = this.required;\n }\n if (this.size !== \"default\") {\n inputProps.size = this.size;\n }\n if (this.validationStatus !== \"\") {\n inputProps.validationStatus = this.validationStatus;\n }\n if (this.validationText !== \"\") {\n inputProps.validationText = this.validationText;\n }\n return inputProps;\n };\n\n render() {\n const {\n calendarOpen,\n dateInputProps,\n monthNames,\n size,\n focussedMonth,\n focussedYear,\n monthInView,\n yearInView,\n monthPickerVisible,\n yearPickerVisible,\n orderedDaysOfWeek,\n decadeView,\n minDate,\n maxDate,\n showPickerClearButton,\n showPickerTodayButton,\n dialogDescription,\n } = this;\n\n let monthButtonText = \"\";\n if (monthPickerVisible) {\n monthButtonText = `Use the arrow keys to change the selected month. To return to day picker view, press Enter or Space to select a month, or press Escape.`;\n } else {\n monthButtonText = `Press Enter or Space to open month picker view or use the arrow keys to change month.`;\n }\n\n let yearButtonText = \"\";\n if (yearPickerVisible) {\n yearButtonText = `Use the arrow keys to change the selected year. To return to day picker view, press Enter or Space to select a year, or press Escape.`;\n } else {\n yearButtonText = `Press Enter or Space to open year picker view or use the arrow keys to change the selected year.`;\n }\n\n const dialogLabel = \"choose date\";\n\n const monthLabel =\n monthNames && monthNames[monthInView]\n ? monthNames[monthInView]\n : \"Open month picker\";\n const yearLabel = this.yearInView ? this.yearInView : \"Open year picker\";\n\n let minDay = minDate;\n if (this.disablePast) {\n const yesterday = new Date(minDate);\n yesterday.setDate(minDate.getDate() - 1);\n minDay = yesterday;\n }\n\n return (\n <Host onKeyDown={this.keyDownHandler} class={size}>\n <div class=\"date-input-container\">\n <ic-date-input\n ref={(el) => (this.inputEl = el)}\n {...dateInputProps}\n ></ic-date-input>\n </div>\n {calendarOpen && (\n <div>\n <span id=\"dialog-description\" class=\"sr-only\">\n {dialogDescription}\n </span>\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={dialogLabel}\n aria-describedBy=\"dialog-description\"\n class={{\n \"calendar-container\": true,\n above: this.showPickerAbove,\n }}\n onMouseDown={this.handleCalendarMouseDown}\n onClick={this.handleCalendarClick}\n >\n <span\n ref={(el) => (this.liveRegionEl = el)}\n id=\"live-region\"\n aria-live=\"assertive\"\n class=\"sr-only\"\n ></span>\n <div\n class={{\n \"month-year-nav-container\": true,\n }}\n >\n <div class=\"month-year-nav\">\n {this.previousMonthButton()}\n <span id=\"select-month-hint\" aria-hidden=\"true\">\n {monthButtonText}\n </span>\n <ic-button\n ref={(el: HTMLIcButtonElement) => (this.monthButtonEl = el)}\n size={size}\n class=\"month-picker-button\"\n aria-haspopup=\"menu\"\n aria-expanded={monthPickerVisible ? \"true\" : \"false\"}\n full-width=\"true\"\n variant=\"tertiary\"\n aria-label={monthLabel}\n aria-describedby=\"select-month-hint\"\n onKeyDown={this.monthButtonKeyDownHandler}\n onClick={this.monthButtonClickHandler}\n >\n {monthNames[monthInView]}\n </ic-button>\n {this.nextMonthButton()}\n </div>\n <div class=\"month-year-nav\">\n {this.previousYearButton()}\n <span id=\"select-year-hint\" aria-hidden=\"true\">\n {yearButtonText}\n </span>\n <ic-button\n ref={(el: HTMLIcButtonElement) => (this.yearButtonEl = el)}\n size={size}\n class=\"year-picker-button\"\n aria-haspopup=\"menu\"\n aria-expanded={yearPickerVisible ? \"true\" : \"false\"}\n full-width=\"true\"\n variant=\"tertiary\"\n aria-label={yearLabel}\n aria-describedby=\"select-year-hint\"\n onKeyDown={this.yearButtonKeyDownHandler}\n onClick={this.yearButtonClickHandler}\n >\n {this.yearInView}\n </ic-button>\n {this.nextYearButton()}\n </div>\n </div>\n {!(monthPickerVisible || yearPickerVisible) && (\n <div\n class={{\n calendar: true,\n hidden: monthPickerVisible || yearPickerVisible,\n }}\n onKeyDown={this.handleCalendarKeyDown}\n >\n <div class=\"weekdays\" aria-hidden=\"true\">\n {orderedDaysOfWeek.map((dayName) => {\n const header =\n size === \"small\" ? dayName.charAt(0) : dayName;\n return (\n <div class=\"calendar-day-header\">\n <ic-typography variant=\"caption\">\n {header}\n </ic-typography>\n </div>\n );\n })}\n </div>\n\n <div class=\"calendar-days-container\">\n {this.currMonthView.map((day) => (\n <DayButton\n day={day}\n disableDay={this.disableDays.includes(\n Number(day.getDay())\n )}\n today={dateMatches(day, this.today)}\n selected={dateMatches(day, this.selectedDate)}\n focussed={dateMatches(day, this.focussedDate)}\n inRange={dateInRange(day, minDay, maxDate)}\n monthInView={monthInView}\n onSelectDay={this.handleSelectDay}\n focussedDayRef={this.setFocussedDayEl}\n onFocusDay={this.onDayButtonFocusHandler}\n onBlurDay={this.onDayButtonBlurHandler}\n showDaysOutsideMonth={this.showDaysOutsideMonth}\n ></DayButton>\n ))}\n </div>\n </div>\n )}\n <div\n class={{\n \"month-picker-container\": true,\n hidden: !monthPickerVisible,\n }}\n >\n {monthPickerVisible && (\n <MonthPicker\n size={size}\n onSelectMonth={this.handleSelectMonth}\n monthInView={monthInView}\n focussedMonth={focussedMonth}\n onKeyDown={this.monthPickerKeyDownHandler}\n focussedMonthRef={this.setFocussedMonthEl}\n minDate={minDate}\n maxDate={maxDate}\n yearInView={yearInView}\n ></MonthPicker>\n )}\n </div>\n <div\n class={{\n \"year-picker-container\": true,\n hidden: !yearPickerVisible,\n }}\n >\n {yearPickerVisible && (\n <YearPicker\n decadeView={decadeView}\n size={size}\n focussedYear={focussedYear}\n onSelectYear={this.handleSelectYear}\n onKeyDown={this.yearPickerKeyDownHandler}\n onFocusYear={this.onYearButtonFocusHandler}\n onBlurYear={this.onYearButtonBlurHandler}\n yearInView={yearInView}\n minDate={minDate}\n maxDate={maxDate}\n focussedYearRef={this.setFocussedYearEl}\n ></YearPicker>\n )}\n </div>\n <div\n class={{\n \"bottom-buttons\": true,\n \"no-today\": !showPickerTodayButton,\n }}\n >\n {showPickerTodayButton && (\n <ic-button\n id=\"today-button\"\n variant=\"tertiary\"\n ref={(el: HTMLIcButtonElement) => (this.todayButtonEl = el)}\n size={size}\n aria-label=\"Navigate to current date\"\n onClick={this.todayButtonClickHandler}\n onKeyDown={this.todayButtonKeyDownHandler}\n disabled={this.isCurrentMonth()}\n >\n Go to today\n </ic-button>\n )}\n {showPickerClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"clear selected date\"\n ref={(el: HTMLIcButtonElement) => (this.clearButtonEl = el)}\n variant=\"tertiary\"\n size={size}\n onClick={this.clearButtonClickHandler}\n onKeyDown={this.clearButtonKeyDownHandler}\n disabled={\n this.value === \"\" ||\n this.value === null ||\n this.value === undefined\n }\n >\n Clear\n </ic-button>\n )}\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-date-picker.js","sourceRoot":"","sources":["../../../src/components/ic-date-picker/ic-date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n h,\n Prop,\n Listen,\n Watch,\n State,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\nimport {\n createDate,\n clampDate,\n dateMatches,\n dateInRange,\n getMonthStart,\n getMonthEnd,\n getWeekEnd,\n getWeekStart,\n yearInRange,\n} from \"../../utils/date-helpers\";\nimport {\n stringEnumToArray,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcWeekDays,\n IcShortDayNames,\n IcDateInputMonths,\n IcDateFormat,\n IcSizes,\n IcInformationStatusOrEmpty,\n} from \"../../utils/types\";\nimport chevron from \"../../assets/chevron-icon.svg\";\nimport { DayButton } from \"./ic-day-button\";\nimport { MonthPicker } from \"./ic-month-picker\";\nimport { YearPicker } from \"./ic-year-picker\";\n\nconst DEFAULT_DATE_FORMAT = \"DD/MM/YYYY\";\nconst DEFAULT_DISABLE_DATES_FROM_NOW_MSG =\n \"Dates in the future are not allowed. Please select a date in the past.\";\nconst DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG =\n \"Dates in the past are not allowed. Please select a date in the future.\";\nconst DEFAULT_DISABLE_DAYS_MSG =\n \"The date you have selected is on a day of the week that is not allowed. Please select another date.\";\nconst FOCUS_TIMER = 100;\nconst PICKER_HEIGHT_SMALL = 360;\nconst PICKER_HEIGHT_DEFAULT = 400;\nconst PICKER_HEIGHT_LARGE = 440;\n\ninterface IcDateInputProps {\n dateFormat?: IcDateFormat;\n disabled?: boolean;\n disableDays?: IcWeekDays[];\n disableDaysMessage?: string;\n disableFuture?: boolean;\n disableFutureMessage?: string;\n disablePast?: boolean;\n disablePastMessage?: string;\n helperText?: string;\n hideHelperText?: boolean;\n inputId?: string;\n label: string;\n max?: string | Date;\n min?: string | Date;\n name?: string;\n required?: boolean;\n showClearButton?: boolean;\n showCalendarButton?: boolean;\n size?: IcSizes;\n value?: string | Date;\n validationStatus?: IcInformationStatusOrEmpty;\n validationText?: string;\n}\n\n@Component({\n tag: \"ic-date-picker\",\n styleUrl: \"ic-date-picker.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class DatePicker {\n private inputEl: HTMLIcDateInputElement;\n private clearButtonEl: HTMLIcButtonElement = null;\n private dateInputProps: IcDateInputProps;\n private daysOfWeek: string[] = [];\n private dayButtonFocussed: boolean = false;\n private dayPickerKeyboardNav: boolean = false;\n private decadeStart: number;\n private decadeEnd: number;\n private dialogDescription: string = \"\";\n private focusDay: boolean = true;\n private focussedYearEl: HTMLIcButtonElement;\n private liveRegionEl: HTMLElement = null;\n private monthButtonEl: HTMLIcButtonElement;\n private monthNames: string[] = [];\n private monthInViewUpdateHandled: boolean = false;\n private myCalendarButtonClicked: boolean = false;\n private showPickerAbove: boolean = false;\n private today = new Date();\n private todayButtonEl: HTMLIcButtonElement = null;\n private yearButtonEl: HTMLIcButtonElement;\n private yearButtonFocussed: boolean = false;\n\n @Element() el: HTMLIcDatePickerElement;\n\n @State() calendarOpen: boolean = false;\n @State() currMonthView: Date[] = [];\n @State() currYearPickerView: number[] = [];\n @State() decadeView: number[] = [];\n @State() focussedDate: Date = null;\n @State() focussedDay: number;\n @State() focussedDayEl: HTMLButtonElement;\n @State() focussedMonth: number;\n @State() focussedMonthEl: HTMLIcButtonElement;\n @State() focussedYear: number;\n @State() maxDate: Date = null;\n @State() minDate: Date = null;\n @State() monthInView: number;\n @State() monthPickerVisible: boolean = false;\n @State() orderedDaysOfWeek: string[] = [];\n @State() selectedDate: Date = null;\n @State() yearInView: number;\n @State() yearPickerVisible: boolean = false;\n\n /**\n * The format in which the date will be displayed.\n */\n @Prop() dateFormat?: IcDateFormat = \"DD/MM/YYYY\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The days of the week to disable.\n */\n @Prop() disableDays?: IcWeekDays[] = [];\n\n /**\n * The text to display as the validation message when `disableDays` is `true` and a disabled date is entered.\n */\n @Prop() disableDaysMessage?: string =\n \"The date you have selected is on a day of the week that is not allowed. Please select another date.\";\n\n /**\n * If `true`, dates in the future are not allowed. A validation message will appear if a date in the future is entered.\n */\n @Prop() disableFuture?: boolean = false;\n\n @Watch(\"disableFuture\")\n watchDisableFutureHandler(): void {\n this.watchMaxHandler();\n }\n\n /**\n * The text to display as the validation message when `disableFuture` is `true` and a date in the future is entered.\n */\n @Prop() disableFutureMessage?: string =\n \"Dates in the future are not allowed. Please select a date in the past.\";\n\n /**\n * If `true`, dates in the past are not allowed. A validation message will appear if a date in the past is entered.\n */\n @Prop() disablePast?: boolean = false;\n\n @Watch(\"disablePast\")\n watchDisablePastHandler(): void {\n this.watchMinHandler();\n }\n\n /**\n * The text to display as the validation message when `disablePast` is `true` and a date in the past is entered.\n */\n @Prop() disablePastMessage?: string =\n \"Dates in the past are not allowed. Please select a date in the future.\";\n\n /**\n * The helper text that will be displayed for additional field guidance. This will default to the text \"Use format\" along with the `dateFormat` value.\n */\n @Prop() helperText?: string;\n\n /**\n * If `true`, the helper text will be visually hidden, but still read out by screenreaders.\n */\n @Prop() hideHelperText: boolean = false;\n\n /**\n * The ID for the input field. The default will be an automatically generated value.\n */\n @Prop() inputId?: string;\n\n /**\n * The label for the date input.\n */\n @Prop() label!: string;\n\n /**\n * The latest date that will be allowed. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n * The value of this prop is ignored if `disableFuture` is set to `true`.\n */\n @Prop() max?: string | Date = \"\";\n\n @Watch(\"max\")\n watchMaxHandler(): void {\n if (this.disableFuture) {\n this.maxDate = new Date();\n } else {\n this.maxDate = createDate(this.max, this.dateFormat);\n }\n }\n\n /**\n * The earliest date that will be allowed. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n * The value of this prop is ignored if `disablePast` is set to `true`.\n */\n @Prop() min?: string | Date = \"\";\n\n @Watch(\"min\")\n watchMinHandler(): void {\n if (this.disablePast) {\n this.minDate = new Date();\n } else {\n this.minDate = createDate(this.min, this.dateFormat);\n }\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string;\n\n /**\n * The date visible when the calendar opens. Used if no date is currently selected.\n * The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n */\n @Prop() openAtDate: string | Date = \"\";\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * If `true`, days outside the current month will be visible in the date picker.\n */\n @Prop() showDaysOutsideMonth?: boolean = true;\n\n /**\n * If `true`, the `Clear` button on the date picker will be visible.\n */\n @Prop() showPickerClearButton?: boolean = true;\n\n /**\n * If `true`, the `Go to today` button on the date picker will be visible.\n */\n @Prop() showPickerTodayButton?: boolean = true;\n\n /**\n * The size of the date picker to be displayed.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * The first day of the week. `0` for Sunday, `1` for Monday, etc.\n * Default is Monday.\n */\n @Prop() startOfWeek?: IcWeekDays = IcWeekDays.Monday;\n\n @Watch(\"startOfWeek\")\n watchStartOfWeekHandler(): void {\n this.orderedDaysOfWeek = this.daysOfWeek\n .slice(this.startOfWeek)\n .concat(this.daysOfWeek.slice(0, this.startOfWeek));\n if (this.calendarOpen) {\n this.updateMonthInView();\n }\n }\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in date validation.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message. This will override the built-in date validation.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * The value of the date picker. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n */\n @Prop({ mutable: true }) value?: string | Date | null | undefined = \"\";\n\n @Watch(\"calendarOpen\")\n watchOpenHandler(): void {\n if (this.calendarOpen) {\n if (this.inputEl) {\n let pickerHeight = PICKER_HEIGHT_DEFAULT;\n if (this.size === \"small\") {\n pickerHeight = PICKER_HEIGHT_SMALL;\n } else if (this.size === \"large\") {\n pickerHeight = PICKER_HEIGHT_LARGE;\n }\n if (\n this.el.offsetTop + this.inputEl.offsetHeight + pickerHeight >\n window.innerHeight &&\n this.el.offsetTop > pickerHeight\n ) {\n this.showPickerAbove = true;\n } else {\n this.showPickerAbove = false;\n }\n }\n if (\n this.selectedDate === null ||\n !dateInRange(this.selectedDate, this.minDate, this.maxDate)\n ) {\n let openAt = new Date();\n if (this.openAtDate !== \"\") {\n openAt = createDate(this.openAtDate, this.dateFormat);\n }\n this.setFocussedDate(openAt);\n } else {\n this.setFocussedDate(this.selectedDate);\n }\n let dialogDesc = this.getMonthInViewText();\n if (this.selectedDate === null) {\n dialogDesc += \" No date selected.\";\n }\n dialogDesc +=\n \" Use arrow keys to change day. Press enter or space to select a date or press escape to close the picker\";\n this.dialogDescription = dialogDesc;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n document.addEventListener(\"click\", this.handleDocumentClick);\n } else {\n document.removeEventListener(\"click\", this.handleDocumentClick);\n this.monthPickerVisible = false;\n this.yearPickerVisible = false;\n }\n }\n\n @Watch(\"focussedDate\")\n watchFocussedDateHandler(current: Date, previous: Date): void {\n if (\n previous === null ||\n !(\n previous.getFullYear() === current.getFullYear() &&\n previous.getMonth() === current.getMonth()\n )\n ) {\n this.updateMonthInView();\n }\n }\n\n @Watch(\"monthInView\")\n watchMonthInViewHandler(): void {\n this.focussedMonth = this.monthInView;\n }\n\n @Watch(\"yearInView\")\n watchYearInViewHandler(): void {\n this.setFocussedYear(this.yearInView, false);\n }\n\n @Watch(\"yearPickerVisible\")\n watchYearPickerVisibleHandler(): void {\n if (!this.yearPickerVisible) {\n this.setFocussedYear(this.yearInView);\n }\n }\n\n @Watch(\"monthPickerVisible\")\n watchMonthPickerVisibleHandler(): void {\n if (!this.monthPickerVisible) {\n this.focussedMonth = this.monthInView;\n }\n }\n\n @Watch(\"focussedDayEl\")\n watchFocussedDayEl(): void {\n if (this.focusDay) {\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n }\n\n this.focusDay = true;\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{ value: Date }>;\n\n componentWillLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Date Picker\"\n );\n\n this.monthNames = stringEnumToArray(IcDateInputMonths);\n this.daysOfWeek = stringEnumToArray(IcShortDayNames);\n\n this.watchStartOfWeekHandler();\n this.watchMaxHandler();\n this.watchMinHandler();\n }\n\n componentWillRender(): void {\n this.dateInputProps = this.setDateInputProps();\n }\n\n componentWillUpdate(): void {\n this.dateInputProps = this.setDateInputProps();\n }\n\n @Listen(\"calendarButtonClicked\")\n localCalendarButtonClickHandler(ev: CustomEvent): void {\n this.myCalendarButtonClicked = true;\n if (!this.calendarOpen) {\n this.setSelectedDate(ev.detail.value, false);\n }\n\n this.calendarOpen = !this.calendarOpen;\n }\n\n @Listen(\"calendarButtonClicked\", { target: \"document\" })\n calendarButtonClickHandler(): void {\n //closes this picker if calendar button in another clicked\n if (!this.myCalendarButtonClicked) {\n this.calendarOpen = false;\n }\n this.myCalendarButtonClicked = false;\n }\n\n private setDecadeView = (start: number) => {\n let currYear = start - 1;\n const decadeArr = [];\n while (currYear <= start + 10) {\n decadeArr.push(currYear);\n currYear++;\n }\n this.decadeView = decadeArr;\n this.decadeStart = decadeArr[1];\n this.decadeEnd = decadeArr[10];\n };\n\n private setSelectedDate = (d: Date, emit = true): void => {\n if (d === null || !dateMatches(d, this.selectedDate)) {\n this.selectedDate = d;\n this.value = d;\n if (emit) {\n this.inputEl.triggerIcChange(d);\n }\n }\n };\n\n private handleCalendarMouseDown = (event: MouseEvent): void => {\n const target = event.target as HTMLElement;\n if (target.tagName !== \"IC-BUTTON\") {\n event.preventDefault();\n }\n };\n\n private handleCalendarClick = (event: MouseEvent): void => {\n this.clearDialogDescription();\n event.stopImmediatePropagation();\n };\n\n private handleDocumentClick = (): void => {\n this.calendarOpen = false;\n };\n\n private keyDownHandler = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n if (this.calendarOpen) {\n this.closeButtonClickHandler();\n this.inputEl.setCalendarFocus();\n event.stopImmediatePropagation();\n }\n } else {\n this.clearDialogDescription();\n event.stopImmediatePropagation();\n }\n };\n\n private closeButtonClickHandler = () => {\n this.calendarOpen = false;\n };\n\n private focusFirstElement = () => {\n this.monthButtonEl.setFocus();\n };\n\n private focusLastElement = () => {\n if (this.showPickerClearButton && !this.clearButtonEl.disabled) {\n this.clearButtonEl.setFocus();\n } else if (this.showPickerTodayButton && !this.todayButtonEl.disabled) {\n this.todayButtonEl.setFocus();\n } else if (this.monthPickerVisible) {\n this.focussedMonthEl.setFocus();\n } else if (this.yearPickerVisible) {\n this.focussedYearEl.setFocus();\n } else {\n this.focussedDayEl.focus();\n }\n };\n\n private focusFocussedDay = () => {\n this.focussedDayEl.focus();\n };\n\n private monthButtonClickHandler = () => {\n this.yearPickerVisible = false;\n this.focusDay = false;\n this.monthPickerVisible = !this.monthPickerVisible;\n if (this.monthPickerVisible) {\n this.setAriaLiveRegionText(\"Month picker view open\");\n } else {\n this.setMonthSelectedLiveRegionText();\n }\n };\n\n private yearButtonClickHandler = () => {\n this.monthPickerVisible = false;\n this.focusDay = false;\n this.yearPickerVisible = !this.yearPickerVisible;\n if (this.yearPickerVisible) {\n this.setAriaLiveRegionText(\n `Year picker view open. ${this.getDecadeInViewText()}`\n );\n } else {\n this.setYearSelectedLiveRegionText();\n }\n };\n\n private todayButtonClickHandler = () => {\n this.yearPickerVisible = false;\n this.monthPickerVisible = false;\n this.setFocussedDate(new Date());\n this.setAriaLiveRegionText(this.getMonthInViewText());\n\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n };\n\n private todayButtonKeyDownHandler = (ev: KeyboardEvent) => {\n if (ev.key === \"Tab\" && !ev.shiftKey && this.clearButtonEl.disabled) {\n this.focusFirstElement();\n ev.preventDefault();\n }\n };\n\n private clearButtonClickHandler = () => {\n this.setSelectedDate(null);\n let text = \"Selected date cleared.\";\n if (!this.monthPickerVisible && !this.yearPickerVisible) {\n text += ` ${this.getMonthInViewText()}`;\n }\n if (this.monthPickerVisible) {\n this.focussedMonthEl.setFocus();\n } else if (this.yearPickerVisible) {\n this.focussedYearEl.setFocus();\n } else {\n this.focusFocussedDay();\n }\n this.setAriaLiveRegionText(text);\n };\n\n private setMonthSelectedLiveRegionText = () => {\n this.setAriaLiveRegionText(\n `${\n this.monthNames[this.monthInView]\n } selected. ${this.getMonthInViewText()}`\n );\n };\n\n private setYearSelectedLiveRegionText = () => {\n this.setAriaLiveRegionText(\n `${this.yearInView} selected. ${this.getMonthInViewText()}`\n );\n };\n\n private getMonthInViewText = () => {\n return `${this.monthNames[this.monthInView]} ${\n this.yearInView\n } currently in view.`;\n };\n\n private getDecadeInViewText = () => {\n return `${this.decadeStart} to ${this.decadeEnd} currently in view.`;\n };\n\n private setAriaLiveRegionText = (text: string) => {\n this.liveRegionEl && (this.liveRegionEl.innerText = text);\n };\n\n private clearDialogDescription = () => {\n this.dialogDescription = \"\";\n };\n\n private clearButtonKeyDownHandler = (ev: KeyboardEvent) => {\n if (ev.key === \"Tab\" && !ev.shiftKey) {\n this.focusFirstElement();\n ev.preventDefault();\n }\n };\n\n private goToPreviousMonth = (focusDay = false) => {\n this.focusDay = focusDay;\n this.moveMonths(-1);\n };\n\n private goToNextMonth = (focusDay = false) => {\n this.focusDay = focusDay;\n this.moveMonths(1);\n };\n\n private goToPreviousYear = (focusDay = false) => {\n if (this.isPrevYearAllowed()) {\n this.focusDay = focusDay;\n this.moveYears(-1);\n }\n };\n\n private goToNextYear = (focusDay = false) => {\n if (this.isNextYearAllowed()) {\n this.focusDay = focusDay;\n this.moveYears(1);\n }\n };\n\n private navButtonMouseDownHandler = (ev: MouseEvent): void => {\n ev.preventDefault();\n };\n\n private renderMonthYearNavButton = (\n id: string,\n flip: boolean,\n disabled: boolean\n ): void => {\n const buttonSize = this.size;\n return (\n <div aria-hidden=\"true\">\n <ic-button\n id={id}\n disableTooltip={true}\n disabled={disabled}\n onClick={this.monthYearNavClickHandler}\n class={{ flip: flip }}\n variant=\"icon\"\n innerHTML={chevron}\n size={buttonSize}\n tabIndex={-1}\n aria-hidden=\"true\"\n onMouseDown={this.navButtonMouseDownHandler}\n />\n </div>\n );\n };\n\n private monthYearNavClickHandler = (ev: Event): void => {\n const target = ev.target as Element;\n switch (target.id) {\n case \"previous-month-button\":\n this.goToPreviousMonth(this.dayButtonFocussed);\n break;\n\n case \"next-month-button\":\n this.goToNextMonth(this.dayButtonFocussed);\n break;\n\n case \"previous-year-button\":\n this.goToPreviousYear(this.dayButtonFocussed);\n break;\n\n case \"next-year-button\":\n this.goToNextYear(this.dayButtonFocussed);\n break;\n }\n };\n\n private previousMonthButton = (): void => {\n let disabled = false;\n if (this.focussedDate !== null && this.minDate !== null) {\n const yearMatch =\n this.focussedDate.getFullYear() === this.minDate.getFullYear();\n if (yearMatch) {\n disabled = this.monthInView - 1 < this.minDate.getMonth();\n }\n }\n return this.renderMonthYearNavButton(\n \"previous-month-button\",\n true,\n disabled\n );\n };\n\n private nextMonthButton = (): void => {\n let disabled = false;\n if (this.focussedDate !== null && this.maxDate !== null) {\n const yearMatch =\n this.focussedDate.getFullYear() === this.maxDate.getFullYear();\n if (yearMatch) {\n disabled = this.monthInView + 1 > this.maxDate.getMonth();\n }\n }\n return this.renderMonthYearNavButton(\"next-month-button\", false, disabled);\n };\n\n private previousYearButton = (): void => {\n return this.renderMonthYearNavButton(\n \"previous-year-button\",\n true,\n !this.isPrevYearAllowed()\n );\n };\n\n private nextYearButton = (): void => {\n return this.renderMonthYearNavButton(\n \"next-year-button\",\n false,\n !this.isNextYearAllowed()\n );\n };\n\n private isPrevYearAllowed = (): boolean => {\n return this.isYearAllowed(this.yearInView - 1);\n };\n\n private isNextYearAllowed = (): boolean => {\n return this.isYearAllowed(this.yearInView + 1);\n };\n\n private isYearAllowed = (yr: number): boolean => {\n return yearInRange(yr, this.minDate, this.maxDate);\n };\n\n private getMonthView = (date: Date): Date[] => {\n const start = getWeekStart(getMonthStart(date), this.startOfWeek);\n const end = getWeekEnd(getMonthEnd(date), this.startOfWeek);\n\n const days: Date[] = [];\n let current = start;\n\n while (!dateMatches(current, end)) {\n days.push(current);\n current = new Date(current);\n current.setDate(current.getDate() + 1);\n }\n\n days.push(current);\n\n return days;\n };\n\n private isCurrentMonth = (): boolean => {\n const d = new Date();\n return (\n d.getFullYear() === this.yearInView && d.getMonth() === this.monthInView\n );\n };\n\n private updateMonthInView = (): void => {\n this.currMonthView = this.getMonthView(this.focussedDate);\n\n this.focussedDay = this.focussedDate.getDate();\n this.monthInView = this.focussedDate.getMonth();\n this.yearInView = this.focussedDate.getFullYear();\n\n if (this.dayPickerKeyboardNav) {\n this.monthInViewUpdateHandled = true;\n this.setAriaLiveRegionText(this.getMonthInViewText());\n this.dayPickerKeyboardNav = false;\n }\n };\n\n private handleSelectDay = (day: Date): void => {\n this.setSelectedDate(day);\n this.calendarOpen = false;\n this.inputEl.setCalendarFocus();\n };\n\n private handleSelectMonth = (month: number): void => {\n this.moveMonths(month - this.monthInView);\n setTimeout(() => {\n this.monthButtonEl.setFocus();\n this.monthPickerVisible = false;\n this.setMonthSelectedLiveRegionText();\n }, FOCUS_TIMER);\n };\n\n private handleSelectYear = (year: number): void => {\n const yrPos = this.decadeView.indexOf(year);\n if (yrPos > 0 && yrPos < this.decadeView.length - 1) {\n this.moveYears(year - this.yearInView);\n this.focusDay = false;\n const monthName = this.monthNames[this.monthInView];\n this.setAriaLiveRegionText(\n `${year} selected. ${monthName} ${year} currently in view.`\n );\n setTimeout(() => {\n this.yearButtonEl.setFocus();\n this.yearPickerVisible = false;\n }, FOCUS_TIMER);\n } else {\n const moveYears = year - this.focussedYear > 0 ? 10 : -10;\n this.updateFocussedYear(moveYears, this.yearButtonFocussed);\n this.setAriaLiveRegionText(this.getDecadeInViewText());\n }\n };\n\n private monthPickerKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.updateFocussedMonth(-1);\n break;\n\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.updateFocussedMonth(1);\n break;\n\n case \"Home\":\n this.updateFocussedMonth(-this.focussedMonth);\n break;\n\n case \"End\":\n this.updateFocussedMonth(11 - this.focussedMonth);\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n case \"Escape\":\n ev.stopImmediatePropagation();\n this.monthPickerVisible = false;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n break;\n\n default:\n handled = false;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private yearPickerKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.updateFocussedYear(-1);\n break;\n\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.updateFocussedYear(1);\n break;\n\n case \"Home\":\n if (this.focussedYear > this.decadeStart) {\n this.updateFocussedYear(this.decadeStart - this.focussedYear);\n }\n break;\n\n case \"End\":\n if (this.focussedYear < this.decadeEnd) {\n this.updateFocussedYear(this.decadeEnd - this.focussedYear);\n }\n break;\n\n case \"PageUp\":\n this.updateFocussedYear(-10);\n break;\n\n case \"PageDown\":\n this.updateFocussedYear(10);\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n case \"Escape\":\n ev.stopImmediatePropagation();\n this.yearPickerVisible = false;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n break;\n\n default:\n handled = false;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private onYearButtonFocusHandler = () => {\n this.yearButtonFocussed = true;\n };\n\n private onYearButtonBlurHandler = () => {\n this.yearButtonFocussed = false;\n };\n\n private monthButtonKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = false;\n switch (ev.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n handled = true;\n this.goToPreviousMonth();\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n handled = true;\n this.goToNextMonth();\n break;\n\n case \"Home\":\n handled = true;\n this.focusDay = false;\n this.moveMonths(-this.monthInView);\n break;\n\n case \"End\":\n handled = true;\n this.focusDay = false;\n this.moveMonths(11 - this.monthInView);\n break;\n\n case \"Tab\":\n if (ev.shiftKey) {\n handled = true;\n this.focusLastElement();\n }\n break;\n\n case \"Escape\":\n if (this.monthPickerVisible) {\n this.monthPickerVisible = false;\n ev.stopImmediatePropagation();\n }\n break;\n\n default:\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private yearButtonKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = false;\n switch (ev.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n handled = true;\n this.goToPreviousYear();\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n handled = true;\n this.goToNextYear();\n break;\n\n case \"Home\":\n if (this.yearPickerVisible && this.yearInView > this.decadeStart) {\n handled = true;\n this.moveYears(this.decadeStart - this.yearInView);\n }\n break;\n\n case \"End\":\n if (this.yearPickerVisible && this.yearInView < this.decadeEnd) {\n handled = true;\n this.moveYears(this.decadeEnd - this.focussedYear);\n }\n break;\n\n case \"PageUp\":\n handled = true;\n this.focusDay = false;\n this.moveYears(-10);\n break;\n\n case \"PageDown\":\n handled = true;\n this.focusDay = false;\n this.moveYears(10);\n break;\n\n case \"Escape\":\n if (this.yearPickerVisible) {\n this.yearPickerVisible = false;\n ev.stopImmediatePropagation();\n }\n break;\n\n default:\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private handleCalendarKeyDown = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowDown\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(7);\n break;\n\n case \"ArrowUp\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(-7);\n break;\n\n case \"ArrowLeft\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(-1 * this.getNextDayToFocus(this.focussedDate, false));\n break;\n\n case \"ArrowRight\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(this.getNextDayToFocus(this.focussedDate, true));\n break;\n\n case \"PageUp\":\n this.dayPickerKeyboardNav = true;\n ev.shiftKey ? this.moveYears(-1) : this.moveMonths(-1);\n break;\n\n case \"PageDown\":\n this.dayPickerKeyboardNav = true;\n ev.shiftKey ? this.moveYears(1) : this.moveMonths(1);\n break;\n\n case \"Home\":\n this.dayPickerKeyboardNav = true;\n this.setFocussedDate(\n new Date(this.focussedYear, this.focussedMonth, 1)\n );\n break;\n\n case \"End\":\n this.dayPickerKeyboardNav = true;\n this.setFocussedDate(\n new Date(this.focussedYear, this.focussedMonth + 1, 0)\n );\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n default:\n handled = false;\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private calendarTabHandler = (ev: KeyboardEvent): boolean => {\n let handled = false;\n if (\n !ev.shiftKey &&\n (!this.showPickerTodayButton || this.isCurrentMonth()) &&\n (!this.showPickerClearButton || this.clearButtonEl.disabled)\n ) {\n this.focusFirstElement();\n handled = true;\n } else if (ev.shiftKey) {\n this.yearButtonEl.setFocus();\n handled = true;\n }\n return handled;\n };\n\n private onDayButtonFocusHandler = () => {\n this.dayButtonFocussed = true;\n };\n\n private onDayButtonBlurHandler = () => {\n this.dayButtonFocussed = false;\n };\n\n private getNextDayToFocus = (\n currDay: Date,\n forward: boolean,\n level = 1\n ): number => {\n const move = forward ? 1 : -1;\n const nextDay = new Date(currDay);\n nextDay.setDate(nextDay.getDate() + move);\n const nextDayNum = Number(nextDay.getDay());\n if (this.disableDays.includes(nextDayNum)) {\n return this.getNextDayToFocus(nextDay, forward, level + 1);\n } else {\n return level;\n }\n };\n\n private moveDays = (numDays: number): void => {\n const d = new Date(this.focussedDate);\n d.setDate(d.getDate() + numDays);\n this.setFocussedDate(d);\n };\n\n private moveMonths = (numMonths: number): void => {\n const newMonth = this.focussedDate.getMonth() + numMonths;\n const min = new Date(\n new Date(getMonthStart(this.focussedDate)).setMonth(newMonth)\n );\n const max = getMonthEnd(min);\n const newDate = new Date(new Date(this.focussedDate).setMonth(newMonth));\n this.setFocussedDate(clampDate(newDate, min, max));\n\n if (\n this.monthPickerVisible === false &&\n this.yearPickerVisible === false &&\n this.monthInViewUpdateHandled === false\n ) {\n this.setAriaLiveRegionText(this.getMonthInViewText());\n }\n this.monthInViewUpdateHandled = false;\n };\n\n private moveYears = (numYears: number): void => {\n const newYear = this.focussedDate.getFullYear() + numYears;\n const min = new Date(\n new Date(getMonthStart(this.focussedDate)).setFullYear(newYear)\n );\n const max = getMonthEnd(min);\n const newDate = new Date(new Date(this.focussedDate).setFullYear(newYear));\n this.setFocussedDate(clampDate(newDate, min, max));\n\n if (\n this.monthPickerVisible === false &&\n this.yearPickerVisible === false &&\n this.monthInViewUpdateHandled === false\n ) {\n this.setAriaLiveRegionText(this.getMonthInViewText());\n }\n this.monthInViewUpdateHandled = false;\n };\n\n private updateFocussedMonth = (adjust: number): void => {\n const d = new Date(this.focussedYear, this.focussedMonth, 1);\n d.setMonth(this.focussedMonth + adjust);\n const newDate = clampDate(d, this.minDate, this.maxDate);\n this.focussedMonth = newDate.getMonth();\n setTimeout(() => this.focussedMonthEl.setFocus(), FOCUS_TIMER);\n };\n\n private updateFocussedYear = (adjust: number, focusYear = true): void => {\n const d = new Date(new Date().setFullYear(this.focussedYear + adjust));\n const newDate = clampDate(d, this.minDate, this.maxDate);\n this.setFocussedYear(newDate.getFullYear(), focusYear);\n };\n\n private setFocussedDate = (d: Date): void => {\n this.focussedDate = clampDate(d, this.minDate, this.maxDate);\n };\n\n private setFocussedDayEl = (element: HTMLButtonElement) => {\n this.focussedDayEl = element;\n };\n\n private setFocussedMonthEl = (element: HTMLIcButtonElement) => {\n this.focussedMonthEl = element;\n };\n\n private setFocussedYearEl = (element: HTMLIcButtonElement) => {\n this.focussedYearEl = element;\n };\n\n private setFocussedYear = (newYear: number, focus = true): void => {\n const prevYear = this.focussedYear;\n this.focussedYear = newYear;\n if (this.yearPickerVisible) {\n const newDecade = Math.floor(newYear / 10) * 10;\n const oldDecade = Math.floor(prevYear / 10) * 10;\n if (newDecade !== oldDecade) {\n this.setDecadeView(newDecade);\n this.setAriaLiveRegionText(this.getDecadeInViewText());\n }\n if (focus) {\n setTimeout(() => {\n if (this.focussedYearEl !== null) this.focussedYearEl.setFocus();\n }, FOCUS_TIMER);\n }\n } else {\n this.setDecadeView(Math.floor(newYear / 10) * 10);\n }\n };\n\n private setDateInputProps = (): IcDateInputProps => {\n const inputProps: IcDateInputProps = {\n label: this.label,\n showClearButton: true,\n showCalendarButton: true,\n value: this.value,\n };\n\n if (this.dateFormat !== DEFAULT_DATE_FORMAT) {\n inputProps.dateFormat = this.dateFormat;\n }\n if (this.disableFuture) {\n inputProps.disableFuture = this.disableFuture;\n if (this.disableFutureMessage !== DEFAULT_DISABLE_DATES_FROM_NOW_MSG) {\n inputProps.disableFutureMessage = this.disableFutureMessage;\n }\n }\n if (this.disablePast) {\n inputProps.disablePast = this.disablePast;\n if (this.disablePastMessage !== DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG) {\n inputProps.disablePastMessage = this.disablePastMessage;\n }\n }\n if (this.disableDays.length > 0) {\n inputProps.disableDays = this.disableDays;\n if (this.disableDaysMessage !== DEFAULT_DISABLE_DAYS_MSG) {\n inputProps.disableDaysMessage = this.disableDaysMessage;\n }\n }\n if (this.max !== null && this.max !== \"\") {\n inputProps.max = this.maxDate;\n }\n if (this.min !== null && this.min !== \"\") {\n inputProps.min = this.minDate;\n }\n if (this.helperText !== undefined) {\n inputProps.helperText = this.helperText;\n }\n if (this.hideHelperText !== false) {\n inputProps.hideHelperText = this.hideHelperText;\n }\n if (this.inputId !== undefined) {\n inputProps.inputId = this.inputId;\n }\n if (this.name !== undefined) {\n inputProps.name = this.name;\n }\n if (this.disabled) {\n inputProps.disabled = this.disabled;\n }\n if (this.required) {\n inputProps.required = this.required;\n }\n if (this.size !== \"default\") {\n inputProps.size = this.size;\n }\n if (this.validationStatus !== \"\") {\n inputProps.validationStatus = this.validationStatus;\n }\n if (this.validationText !== \"\") {\n inputProps.validationText = this.validationText;\n }\n return inputProps;\n };\n\n render() {\n const {\n calendarOpen,\n dateInputProps,\n monthNames,\n size,\n focussedMonth,\n focussedYear,\n monthInView,\n yearInView,\n monthPickerVisible,\n yearPickerVisible,\n orderedDaysOfWeek,\n decadeView,\n minDate,\n maxDate,\n showPickerClearButton,\n showPickerTodayButton,\n dialogDescription,\n } = this;\n\n let monthButtonText = \"\";\n if (monthPickerVisible) {\n monthButtonText = `Use the arrow keys to change the selected month. To return to day picker view, press Enter or Space to select a month, or press Escape.`;\n } else {\n monthButtonText = `Press Enter or Space to open month picker view or use the arrow keys to change month.`;\n }\n\n let yearButtonText = \"\";\n if (yearPickerVisible) {\n yearButtonText = `Use the arrow keys to change the selected year. To return to day picker view, press Enter or Space to select a year, or press Escape.`;\n } else {\n yearButtonText = `Press Enter or Space to open year picker view or use the arrow keys to change the selected year.`;\n }\n\n const dialogLabel = \"choose date\";\n\n const monthLabel =\n monthNames && monthNames[monthInView]\n ? monthNames[monthInView]\n : \"Open month picker\";\n const yearLabel = this.yearInView ? this.yearInView : \"Open year picker\";\n\n let minDay = minDate;\n if (this.disablePast) {\n const yesterday = new Date(minDate);\n yesterday.setDate(minDate.getDate() - 1);\n minDay = yesterday;\n }\n\n return (\n <Host\n onKeyDown={this.keyDownHandler}\n class={{ [`ic-date-picker-${size}`]: true }}\n >\n <div class=\"date-input-container\">\n <ic-date-input\n ref={(el) => (this.inputEl = el)}\n {...dateInputProps}\n ></ic-date-input>\n </div>\n {calendarOpen && (\n <div>\n <span id=\"dialog-description\" class=\"sr-only\">\n {dialogDescription}\n </span>\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={dialogLabel}\n aria-describedBy=\"dialog-description\"\n class={{\n \"calendar-container\": true,\n above: this.showPickerAbove,\n }}\n onMouseDown={this.handleCalendarMouseDown}\n onClick={this.handleCalendarClick}\n >\n <span\n ref={(el) => (this.liveRegionEl = el)}\n id=\"live-region\"\n aria-live=\"assertive\"\n class=\"sr-only\"\n ></span>\n <div\n class={{\n \"month-year-nav-container\": true,\n }}\n >\n <div class=\"month-year-nav\">\n {this.previousMonthButton()}\n <span id=\"select-month-hint\" aria-hidden=\"true\">\n {monthButtonText}\n </span>\n <ic-button\n ref={(el: HTMLIcButtonElement) => (this.monthButtonEl = el)}\n size={size}\n class=\"month-picker-button\"\n aria-haspopup=\"menu\"\n aria-expanded={monthPickerVisible ? \"true\" : \"false\"}\n full-width=\"true\"\n variant=\"tertiary\"\n aria-label={monthLabel}\n aria-describedby=\"select-month-hint\"\n onKeyDown={this.monthButtonKeyDownHandler}\n onClick={this.monthButtonClickHandler}\n >\n {monthNames[monthInView]}\n </ic-button>\n {this.nextMonthButton()}\n </div>\n <div class=\"month-year-nav\">\n {this.previousYearButton()}\n <span id=\"select-year-hint\" aria-hidden=\"true\">\n {yearButtonText}\n </span>\n <ic-button\n ref={(el: HTMLIcButtonElement) => (this.yearButtonEl = el)}\n size={size}\n class=\"year-picker-button\"\n aria-haspopup=\"menu\"\n aria-expanded={yearPickerVisible ? \"true\" : \"false\"}\n full-width=\"true\"\n variant=\"tertiary\"\n aria-label={yearLabel}\n aria-describedby=\"select-year-hint\"\n onKeyDown={this.yearButtonKeyDownHandler}\n onClick={this.yearButtonClickHandler}\n >\n {this.yearInView}\n </ic-button>\n {this.nextYearButton()}\n </div>\n </div>\n {!(monthPickerVisible || yearPickerVisible) && (\n <div\n class={{\n calendar: true,\n hidden: monthPickerVisible || yearPickerVisible,\n }}\n onKeyDown={this.handleCalendarKeyDown}\n >\n <div class=\"weekdays\" aria-hidden=\"true\">\n {orderedDaysOfWeek.map((dayName) => {\n const header =\n size === \"small\" ? dayName.charAt(0) : dayName;\n return (\n <div class=\"calendar-day-header\">\n <ic-typography variant=\"caption\">\n {header}\n </ic-typography>\n </div>\n );\n })}\n </div>\n\n <div class=\"calendar-days-container\">\n {this.currMonthView.map((day) => (\n <DayButton\n day={day}\n disableDay={this.disableDays.includes(\n Number(day.getDay())\n )}\n today={dateMatches(day, this.today)}\n selected={dateMatches(day, this.selectedDate)}\n focussed={dateMatches(day, this.focussedDate)}\n inRange={dateInRange(day, minDay, maxDate)}\n monthInView={monthInView}\n onSelectDay={this.handleSelectDay}\n focussedDayRef={this.setFocussedDayEl}\n onFocusDay={this.onDayButtonFocusHandler}\n onBlurDay={this.onDayButtonBlurHandler}\n showDaysOutsideMonth={this.showDaysOutsideMonth}\n ></DayButton>\n ))}\n </div>\n </div>\n )}\n <div\n class={{\n \"month-picker-container\": true,\n hidden: !monthPickerVisible,\n }}\n >\n {monthPickerVisible && (\n <MonthPicker\n size={size}\n onSelectMonth={this.handleSelectMonth}\n monthInView={monthInView}\n focussedMonth={focussedMonth}\n onKeyDown={this.monthPickerKeyDownHandler}\n focussedMonthRef={this.setFocussedMonthEl}\n minDate={minDate}\n maxDate={maxDate}\n yearInView={yearInView}\n ></MonthPicker>\n )}\n </div>\n <div\n class={{\n \"year-picker-container\": true,\n hidden: !yearPickerVisible,\n }}\n >\n {yearPickerVisible && (\n <YearPicker\n decadeView={decadeView}\n size={size}\n focussedYear={focussedYear}\n onSelectYear={this.handleSelectYear}\n onKeyDown={this.yearPickerKeyDownHandler}\n onFocusYear={this.onYearButtonFocusHandler}\n onBlurYear={this.onYearButtonBlurHandler}\n yearInView={yearInView}\n minDate={minDate}\n maxDate={maxDate}\n focussedYearRef={this.setFocussedYearEl}\n ></YearPicker>\n )}\n </div>\n <div\n class={{\n \"bottom-buttons\": true,\n \"no-today\": !showPickerTodayButton,\n }}\n >\n {showPickerTodayButton && (\n <ic-button\n id=\"today-button\"\n variant=\"tertiary\"\n ref={(el: HTMLIcButtonElement) => (this.todayButtonEl = el)}\n size={size}\n aria-label=\"Navigate to current date\"\n onClick={this.todayButtonClickHandler}\n onKeyDown={this.todayButtonKeyDownHandler}\n disabled={this.isCurrentMonth()}\n >\n Go to today\n </ic-button>\n )}\n {showPickerClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"clear selected date\"\n ref={(el: HTMLIcButtonElement) => (this.clearButtonEl = el)}\n variant=\"tertiary\"\n size={size}\n onClick={this.clearButtonClickHandler}\n onKeyDown={this.clearButtonKeyDownHandler}\n disabled={\n this.value === \"\" ||\n this.value === null ||\n this.value === undefined\n }\n >\n Clear\n </ic-button>\n )}\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}