@ukic/canary-web-components 3.0.0-canary.13 → 3.0.0-canary.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (602) hide show
  1. package/dist/cjs/core.cjs.js +2 -2
  2. package/dist/cjs/{date-helpers-c9551119.js → date-helpers-6f70dd03.js} +20 -66
  3. package/dist/cjs/date-helpers-6f70dd03.js.map +1 -0
  4. package/dist/cjs/{helpers-fc51fdcb.js → helpers-bec0dbd4.js} +2 -2
  5. package/dist/cjs/{helpers-fc51fdcb.js.map → helpers-bec0dbd4.js.map} +1 -1
  6. package/dist/cjs/{helpers-0e4c4fdd.js → helpers-d01564f7.js} +35 -17
  7. package/dist/cjs/helpers-d01564f7.js.map +1 -0
  8. package/dist/cjs/ic-accordion-group.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-accordion.cjs.entry.js +2 -2
  10. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
  12. package/dist/cjs/ic-badge.cjs.entry.js +3 -3
  13. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -2
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  16. package/dist/cjs/ic-button_3.cjs.entry.js +61 -3
  17. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-card-horizontal.cjs.entry.js +16 -12
  19. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-card-vertical.cjs.entry.js +3 -3
  21. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-checkbox-group.cjs.entry.js +7 -7
  23. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  24. package/dist/cjs/{ic-empty-state_2.cjs.entry.js → ic-checkbox_3.cjs.entry.js} +158 -24
  25. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -0
  26. package/dist/cjs/ic-chip.cjs.entry.js +3 -3
  27. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-classification-banner.cjs.entry.js +3 -3
  29. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-data-list.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  32. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +7 -7
  33. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-data-table.cjs.entry.js +310 -276
  35. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-date-input.cjs.entry.js +175 -160
  37. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-date-picker.cjs.entry.js +92 -70
  39. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-dialog.cjs.entry.js +38 -47
  41. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  43. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  44. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  45. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  46. package/dist/cjs/ic-hero.cjs.entry.js +2 -2
  47. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +3 -3
  49. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-input-label_2.cjs.entry.js +2 -2
  51. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  52. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  53. package/dist/cjs/ic-menu-item.cjs.entry.js +3 -3
  54. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-navigation-button.cjs.entry.js +2 -2
  56. package/dist/cjs/ic-navigation-group.cjs.entry.js +23 -17
  57. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-navigation-menu.cjs.entry.js +38 -24
  60. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-page-header.cjs.entry.js +12 -11
  62. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-pagination_4.cjs.entry.js +53 -32
  64. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-popover-menu.cjs.entry.js +7 -6
  66. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-radio-group.cjs.entry.js +7 -7
  68. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-radio-option.cjs.entry.js +2 -2
  70. package/dist/cjs/ic-search-bar.cjs.entry.js +3 -3
  71. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-section-container.cjs.entry.js +3 -3
  73. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-side-navigation.cjs.entry.js +10 -7
  75. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-skeleton.cjs.entry.js +3 -3
  77. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-skip-link.cjs.entry.js +11 -10
  79. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-status-tag.cjs.entry.js +5 -5
  81. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-step.cjs.entry.js +17 -16
  83. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-stepper.cjs.entry.js +4 -4
  85. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-switch.cjs.entry.js +6 -6
  87. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-tab-context.cjs.entry.js +2 -2
  89. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-tab-group.cjs.entry.js +4 -4
  91. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-tab-panel.cjs.entry.js +3 -3
  93. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-tab.cjs.entry.js +3 -3
  95. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-theme.cjs.entry.js +3 -3
  97. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-toast-region.cjs.entry.js +2 -2
  99. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-toast.cjs.entry.js +6 -6
  101. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +4 -4
  103. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  104. package/dist/cjs/ic-toggle-button.cjs.entry.js +5 -5
  105. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  106. package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -9
  107. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  108. package/dist/cjs/ic-tree-item.cjs.entry.js +56 -42
  109. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  110. package/dist/cjs/ic-tree-view.cjs.entry.js +127 -22
  111. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  112. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  113. package/dist/cjs/{index-8a24b20c.js → index-d337cd8a.js} +6 -11
  114. package/dist/cjs/index-d337cd8a.js.map +1 -0
  115. package/dist/cjs/loader.cjs.js +2 -2
  116. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +1 -1
  117. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +27 -23
  118. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -1
  119. package/dist/collection/components/ic-data-table/ic-data-table.css +19 -2
  120. package/dist/collection/components/ic-data-table/ic-data-table.js +385 -330
  121. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  122. package/dist/collection/components/ic-data-table/ic-data-table.stories.js +8 -9
  123. package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -1
  124. package/dist/collection/components/ic-data-table/story-data.js +13 -14
  125. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  126. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +9 -9
  127. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +1 -1
  128. package/dist/collection/components/ic-date-input/ic-date-input.js +240 -198
  129. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  130. package/dist/collection/components/ic-date-input/ic-date-input.stories.js +19 -1
  131. package/dist/collection/components/ic-date-input/ic-date-input.stories.js.map +1 -1
  132. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js +6 -3
  133. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js.map +1 -1
  134. package/dist/collection/components/ic-date-picker/ic-date-picker.js +133 -91
  135. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  136. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js +9 -1
  137. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js.map +1 -1
  138. package/dist/collection/components/ic-date-picker/ic-day-button.js +1 -1
  139. package/dist/collection/components/ic-date-picker/ic-day-button.js.map +1 -1
  140. package/dist/collection/components/ic-date-picker/ic-month-picker.js.map +1 -1
  141. package/dist/collection/components/ic-date-picker/ic-year-picker.js.map +1 -1
  142. package/dist/collection/components/ic-date-picker/story-data.js +16 -1
  143. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -1
  144. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +41 -38
  145. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  146. package/dist/collection/components/ic-tree-item/ic-tree-item.js +86 -50
  147. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  148. package/dist/collection/components/ic-tree-view/ic-tree-view.js +165 -31
  149. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  150. package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js +384 -12
  151. package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js.map +1 -1
  152. package/dist/collection/components/ic-tree-view/ic-tree-view.types.js +2 -0
  153. package/dist/collection/components/ic-tree-view/ic-tree-view.types.js.map +1 -0
  154. package/dist/collection/utils/date-helpers.js +19 -61
  155. package/dist/collection/utils/date-helpers.js.map +1 -1
  156. package/dist/collection/utils/helpers.js +44 -61
  157. package/dist/collection/utils/helpers.js.map +1 -1
  158. package/dist/collection/utils/testa11y.helpers.js +2 -1
  159. package/dist/collection/utils/testa11y.helpers.js.map +1 -1
  160. package/dist/components/helpers.js +1 -1
  161. package/dist/components/helpers2.js +32 -16
  162. package/dist/components/helpers2.js.map +1 -1
  163. package/dist/components/ic-badge.js +1 -1
  164. package/dist/components/ic-badge.js.map +1 -1
  165. package/dist/components/ic-button2.js +59 -1
  166. package/dist/components/ic-button2.js.map +1 -1
  167. package/dist/components/ic-card-horizontal.js +14 -10
  168. package/dist/components/ic-card-horizontal.js.map +1 -1
  169. package/dist/components/ic-card-vertical.js +1 -1
  170. package/dist/components/ic-card-vertical.js.map +1 -1
  171. package/dist/components/ic-checkbox-group.js +5 -5
  172. package/dist/components/ic-checkbox-group.js.map +1 -1
  173. package/dist/components/ic-checkbox.js +1 -175
  174. package/dist/components/ic-checkbox.js.map +1 -1
  175. package/dist/{esm/ic-checkbox.entry.js → components/ic-checkbox2.js} +53 -11
  176. package/dist/components/ic-checkbox2.js.map +1 -0
  177. package/dist/components/ic-chip.js +1 -1
  178. package/dist/components/ic-chip.js.map +1 -1
  179. package/dist/components/ic-classification-banner.js +2 -2
  180. package/dist/components/ic-classification-banner.js.map +1 -1
  181. package/dist/components/ic-data-table-title-bar.js +5 -5
  182. package/dist/components/ic-data-table-title-bar.js.map +1 -1
  183. package/dist/components/ic-data-table.js +319 -279
  184. package/dist/components/ic-data-table.js.map +1 -1
  185. package/dist/components/ic-date-input2.js +198 -225
  186. package/dist/components/ic-date-input2.js.map +1 -1
  187. package/dist/components/ic-date-picker.js +90 -67
  188. package/dist/components/ic-date-picker.js.map +1 -1
  189. package/dist/components/ic-dialog.js +38 -47
  190. package/dist/components/ic-dialog.js.map +1 -1
  191. package/dist/components/ic-input-component-container2.js +1 -1
  192. package/dist/components/ic-input-component-container2.js.map +1 -1
  193. package/dist/components/ic-menu-item2.js +1 -1
  194. package/dist/components/ic-menu-item2.js.map +1 -1
  195. package/dist/components/ic-navigation-group.js +22 -15
  196. package/dist/components/ic-navigation-group.js.map +1 -1
  197. package/dist/components/ic-navigation-menu2.js +37 -23
  198. package/dist/components/ic-navigation-menu2.js.map +1 -1
  199. package/dist/components/ic-page-header.js +10 -9
  200. package/dist/components/ic-page-header.js.map +1 -1
  201. package/dist/components/ic-pagination-bar2.js +22 -20
  202. package/dist/components/ic-pagination-bar2.js.map +1 -1
  203. package/dist/components/ic-pagination-item2.js +2 -2
  204. package/dist/components/ic-pagination-item2.js.map +1 -1
  205. package/dist/components/ic-pagination2.js +5 -5
  206. package/dist/components/ic-pagination2.js.map +1 -1
  207. package/dist/components/ic-popover-menu.js +5 -4
  208. package/dist/components/ic-popover-menu.js.map +1 -1
  209. package/dist/components/ic-radio-group.js +5 -5
  210. package/dist/components/ic-radio-group.js.map +1 -1
  211. package/dist/components/ic-search-bar.js +1 -1
  212. package/dist/components/ic-search-bar.js.map +1 -1
  213. package/dist/components/ic-section-container2.js +2 -2
  214. package/dist/components/ic-section-container2.js.map +1 -1
  215. package/dist/components/ic-select2.js +13 -10
  216. package/dist/components/ic-select2.js.map +1 -1
  217. package/dist/components/ic-side-navigation.js +8 -5
  218. package/dist/components/ic-side-navigation.js.map +1 -1
  219. package/dist/components/ic-skeleton.js +2 -2
  220. package/dist/components/ic-skeleton.js.map +1 -1
  221. package/dist/components/ic-skip-link.js +10 -9
  222. package/dist/components/ic-skip-link.js.map +1 -1
  223. package/dist/components/ic-status-tag.js +3 -3
  224. package/dist/components/ic-status-tag.js.map +1 -1
  225. package/dist/components/ic-step.js +15 -14
  226. package/dist/components/ic-step.js.map +1 -1
  227. package/dist/components/ic-stepper.js +2 -2
  228. package/dist/components/ic-stepper.js.map +1 -1
  229. package/dist/components/ic-switch.js +4 -4
  230. package/dist/components/ic-switch.js.map +1 -1
  231. package/dist/components/ic-tab-context.js +1 -1
  232. package/dist/components/ic-tab-context.js.map +1 -1
  233. package/dist/components/ic-tab-group.js +2 -2
  234. package/dist/components/ic-tab-group.js.map +1 -1
  235. package/dist/components/ic-tab-panel.js +2 -2
  236. package/dist/components/ic-tab-panel.js.map +1 -1
  237. package/dist/components/ic-tab.js +1 -1
  238. package/dist/components/ic-tab.js.map +1 -1
  239. package/dist/components/ic-text-field2.js +35 -13
  240. package/dist/components/ic-text-field2.js.map +1 -1
  241. package/dist/components/ic-theme.js +1 -1
  242. package/dist/components/ic-theme.js.map +1 -1
  243. package/dist/components/ic-toast-region.js +1 -1
  244. package/dist/components/ic-toast-region.js.map +1 -1
  245. package/dist/components/ic-toast.js +5 -5
  246. package/dist/components/ic-toast.js.map +1 -1
  247. package/dist/components/ic-toggle-button-group.js +2 -2
  248. package/dist/components/ic-toggle-button-group.js.map +1 -1
  249. package/dist/components/ic-toggle-button.js +3 -3
  250. package/dist/components/ic-toggle-button.js.map +1 -1
  251. package/dist/components/ic-top-navigation.js +4 -8
  252. package/dist/components/ic-top-navigation.js.map +1 -1
  253. package/dist/components/ic-tree-item.js +55 -40
  254. package/dist/components/ic-tree-item.js.map +1 -1
  255. package/dist/components/ic-tree-view.js +132 -23
  256. package/dist/components/ic-tree-view.js.map +1 -1
  257. package/dist/core/core.css +353 -245
  258. package/dist/core/core.esm.js +1 -1
  259. package/dist/core/core.esm.js.map +1 -1
  260. package/dist/core/{p-8d73a3cc.entry.js → p-0616dfbe.entry.js} +2 -2
  261. package/dist/core/p-0616dfbe.entry.js.map +1 -0
  262. package/dist/core/{p-b17e7059.entry.js → p-06bf2cea.entry.js} +2 -2
  263. package/dist/core/{p-b17e7059.entry.js.map → p-06bf2cea.entry.js.map} +1 -1
  264. package/dist/core/{p-f2f7299b.entry.js → p-071f4748.entry.js} +2 -2
  265. package/dist/core/{p-f2f7299b.entry.js.map → p-071f4748.entry.js.map} +1 -1
  266. package/dist/core/p-09e8b002.entry.js +2 -0
  267. package/dist/core/p-09e8b002.entry.js.map +1 -0
  268. package/dist/core/{p-b18a5861.entry.js → p-110486f0.entry.js} +2 -2
  269. package/dist/core/{p-b18a5861.entry.js.map → p-110486f0.entry.js.map} +1 -1
  270. package/dist/core/p-19ecd2a6.entry.js +2 -0
  271. package/dist/core/p-19ecd2a6.entry.js.map +1 -0
  272. package/dist/core/p-1a2b4803.entry.js +2 -0
  273. package/dist/core/p-1a2b4803.entry.js.map +1 -0
  274. package/dist/core/{p-32720276.entry.js → p-1bbae4b3.entry.js} +2 -2
  275. package/dist/core/{p-0fd762bf.entry.js → p-1f415138.entry.js} +2 -2
  276. package/dist/core/p-1f415138.entry.js.map +1 -0
  277. package/dist/core/{p-b8aa37f9.entry.js → p-20bd48cf.entry.js} +2 -2
  278. package/dist/core/{p-be5ad372.entry.js → p-21193099.entry.js} +2 -2
  279. package/dist/core/p-264335c5.entry.js +2 -0
  280. package/dist/core/p-264335c5.entry.js.map +1 -0
  281. package/dist/core/{p-a214a9f8.entry.js → p-30a5b319.entry.js} +2 -2
  282. package/dist/core/{p-a214a9f8.entry.js.map → p-30a5b319.entry.js.map} +1 -1
  283. package/dist/core/{p-9f4fa820.entry.js → p-3244a174.entry.js} +2 -2
  284. package/dist/core/{p-9f4fa820.entry.js.map → p-3244a174.entry.js.map} +1 -1
  285. package/dist/core/{p-5dc25d11.entry.js → p-37df68fe.entry.js} +2 -2
  286. package/dist/core/{p-5dc25d11.entry.js.map → p-37df68fe.entry.js.map} +1 -1
  287. package/dist/core/{p-3e9564b5.entry.js → p-39269b62.entry.js} +2 -2
  288. package/dist/core/p-3955fa94.entry.js +2 -0
  289. package/dist/core/p-3955fa94.entry.js.map +1 -0
  290. package/dist/core/p-3f185257.entry.js +2 -0
  291. package/dist/core/p-3f185257.entry.js.map +1 -0
  292. package/dist/core/p-401f0043.entry.js +2 -0
  293. package/dist/core/{p-144b1dee.entry.js.map → p-401f0043.entry.js.map} +1 -1
  294. package/dist/core/{p-da798f58.entry.js → p-44ac8f8a.entry.js} +2 -2
  295. package/dist/core/{p-afc4ce53.entry.js → p-4d39cab8.entry.js} +2 -2
  296. package/dist/core/{p-fd006a9b.entry.js → p-4e187a11.entry.js} +2 -2
  297. package/dist/core/{p-d154b26c.entry.js → p-50324682.entry.js} +2 -2
  298. package/dist/core/{p-cd9e1ffa.entry.js → p-50f4d151.entry.js} +2 -2
  299. package/dist/core/{p-cd9e1ffa.entry.js.map → p-50f4d151.entry.js.map} +1 -1
  300. package/dist/core/{p-22e0ed96.entry.js → p-5796b6cd.entry.js} +2 -2
  301. package/dist/core/{p-96551ddf.entry.js → p-57c80527.entry.js} +2 -2
  302. package/dist/core/p-59aed40c.entry.js +2 -0
  303. package/dist/core/p-59aed40c.entry.js.map +1 -0
  304. package/dist/core/{p-b6db0cc1.entry.js → p-60d15d35.entry.js} +2 -2
  305. package/dist/core/p-65d3a515.entry.js +2 -0
  306. package/dist/core/p-65d3a515.entry.js.map +1 -0
  307. package/dist/core/{p-272352cb.entry.js → p-6aa1e928.entry.js} +2 -2
  308. package/dist/core/p-6e0f93c5.entry.js +2 -0
  309. package/dist/core/p-6e0f93c5.entry.js.map +1 -0
  310. package/dist/core/p-6f6d793f.entry.js +2 -0
  311. package/dist/core/p-6f6d793f.entry.js.map +1 -0
  312. package/dist/core/{p-507ec499.entry.js → p-701696aa.entry.js} +2 -2
  313. package/dist/core/{p-507ec499.entry.js.map → p-701696aa.entry.js.map} +1 -1
  314. package/dist/core/{p-1334a78f.entry.js → p-73e41eac.entry.js} +2 -2
  315. package/dist/core/p-7bbd9fcb.entry.js +2 -0
  316. package/dist/core/p-7bbd9fcb.entry.js.map +1 -0
  317. package/dist/core/p-7d054704.js +2 -0
  318. package/dist/core/p-7d054704.js.map +1 -0
  319. package/dist/core/{p-08fd225f.entry.js → p-857c46c0.entry.js} +2 -2
  320. package/dist/core/p-858dd362.entry.js +2 -0
  321. package/dist/core/p-858dd362.entry.js.map +1 -0
  322. package/dist/core/{p-0e3cb8d0.entry.js → p-8856dff4.entry.js} +2 -2
  323. package/dist/core/p-8c5a23b4.entry.js +2 -0
  324. package/dist/core/p-8c5a23b4.entry.js.map +1 -0
  325. package/dist/core/{p-00135a74.js → p-8e4e97b4.js} +3 -3
  326. package/dist/core/p-8e4e97b4.js.map +1 -0
  327. package/dist/core/p-91dc6ad3.entry.js +2 -0
  328. package/dist/core/p-91dc6ad3.entry.js.map +1 -0
  329. package/dist/core/{p-0c3bd9e6.entry.js → p-94427b50.entry.js} +2 -2
  330. package/dist/core/{p-e13b43b1.entry.js → p-9cf7494c.entry.js} +2 -2
  331. package/dist/core/{p-0848efa2.entry.js → p-a2671eb0.entry.js} +2 -2
  332. package/dist/core/p-a2fcea60.entry.js +2 -0
  333. package/dist/core/p-a2fcea60.entry.js.map +1 -0
  334. package/dist/core/p-a5ee9c8d.entry.js +2 -0
  335. package/dist/core/p-a5ee9c8d.entry.js.map +1 -0
  336. package/dist/core/{p-a4582939.entry.js → p-a88369e1.entry.js} +2 -2
  337. package/dist/core/p-a88369e1.entry.js.map +1 -0
  338. package/dist/core/{p-a30d165d.entry.js → p-af405fc0.entry.js} +2 -2
  339. package/dist/core/p-af405fc0.entry.js.map +1 -0
  340. package/dist/core/p-b953b22f.entry.js +2 -0
  341. package/dist/core/p-b953b22f.entry.js.map +1 -0
  342. package/dist/core/p-bb9142fe.entry.js +2 -0
  343. package/dist/core/{p-67f3bf1a.entry.js.map → p-bb9142fe.entry.js.map} +1 -1
  344. package/dist/core/{p-60a0c711.entry.js → p-bfdefe7a.entry.js} +2 -2
  345. package/dist/core/{p-60a0c711.entry.js.map → p-bfdefe7a.entry.js.map} +1 -1
  346. package/dist/core/p-c4baa405.entry.js +2 -0
  347. package/dist/core/p-c4baa405.entry.js.map +1 -0
  348. package/dist/core/p-c86ca475.js +2 -0
  349. package/dist/core/p-c86ca475.js.map +1 -0
  350. package/dist/core/p-cda2a461.entry.js +2 -0
  351. package/dist/core/p-cda2a461.entry.js.map +1 -0
  352. package/dist/core/{p-f6013934.entry.js → p-ce83c802.entry.js} +2 -2
  353. package/dist/core/p-ce83c802.entry.js.map +1 -0
  354. package/dist/core/p-cea17764.entry.js +2 -0
  355. package/dist/core/{p-4e5934f3.entry.js.map → p-cea17764.entry.js.map} +1 -1
  356. package/dist/core/{p-f541034c.entry.js → p-d0768256.entry.js} +2 -2
  357. package/dist/core/p-d2d6f1eb.entry.js +2 -0
  358. package/dist/core/p-d2d6f1eb.entry.js.map +1 -0
  359. package/dist/core/{p-c6f1e205.entry.js → p-d4628704.entry.js} +2 -2
  360. package/dist/core/p-d4628704.entry.js.map +1 -0
  361. package/dist/core/{p-0f6b9686.js → p-e246d84b.js} +2 -2
  362. package/dist/core/p-e4fa4ee5.entry.js +2 -0
  363. package/dist/core/p-e4fa4ee5.entry.js.map +1 -0
  364. package/dist/core/{p-3d1ba098.entry.js → p-e6779171.entry.js} +2 -2
  365. package/dist/core/{p-fd42f129.entry.js → p-e8bb1522.entry.js} +2 -2
  366. package/dist/core/p-e8bb1522.entry.js.map +1 -0
  367. package/dist/core/{p-4da17eda.entry.js → p-f42ca69f.entry.js} +2 -2
  368. package/dist/core/{p-3dc4e128.entry.js → p-f5e9c8c8.entry.js} +2 -2
  369. package/dist/core/p-f5e9c8c8.entry.js.map +1 -0
  370. package/dist/core/{p-0e119312.entry.js → p-fa02a267.entry.js} +2 -2
  371. package/dist/core/{p-0e119312.entry.js.map → p-fa02a267.entry.js.map} +1 -1
  372. package/dist/esm/core.js +3 -3
  373. package/dist/esm/{date-helpers-0e5e32a7.js → date-helpers-3b8c39ab.js} +20 -66
  374. package/dist/esm/date-helpers-3b8c39ab.js.map +1 -0
  375. package/dist/esm/{helpers-bbab69a2.js → helpers-bf471ace.js} +3 -3
  376. package/dist/esm/{helpers-bbab69a2.js.map → helpers-bf471ace.js.map} +1 -1
  377. package/dist/esm/{helpers-4e38ba2b.js → helpers-ddc2008a.js} +34 -18
  378. package/dist/esm/helpers-ddc2008a.js.map +1 -0
  379. package/dist/esm/ic-accordion-group.entry.js +2 -2
  380. package/dist/esm/ic-accordion.entry.js +2 -2
  381. package/dist/esm/ic-alert.entry.js +2 -2
  382. package/dist/esm/ic-back-to-top.entry.js +2 -2
  383. package/dist/esm/ic-badge.entry.js +3 -3
  384. package/dist/esm/ic-badge.entry.js.map +1 -1
  385. package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
  386. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  387. package/dist/esm/ic-button_3.entry.js +61 -3
  388. package/dist/esm/ic-button_3.entry.js.map +1 -1
  389. package/dist/esm/ic-card-horizontal.entry.js +16 -12
  390. package/dist/esm/ic-card-horizontal.entry.js.map +1 -1
  391. package/dist/esm/ic-card-vertical.entry.js +3 -3
  392. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  393. package/dist/esm/ic-checkbox-group.entry.js +7 -7
  394. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  395. package/dist/esm/{ic-empty-state_2.entry.js → ic-checkbox_3.entry.js} +158 -25
  396. package/dist/esm/ic-checkbox_3.entry.js.map +1 -0
  397. package/dist/esm/ic-chip.entry.js +3 -3
  398. package/dist/esm/ic-chip.entry.js.map +1 -1
  399. package/dist/esm/ic-classification-banner.entry.js +3 -3
  400. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  401. package/dist/esm/ic-data-list.entry.js +1 -1
  402. package/dist/esm/ic-data-row.entry.js +2 -2
  403. package/dist/esm/ic-data-table-title-bar.entry.js +7 -7
  404. package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -1
  405. package/dist/esm/ic-data-table.entry.js +310 -276
  406. package/dist/esm/ic-data-table.entry.js.map +1 -1
  407. package/dist/esm/ic-date-input.entry.js +175 -160
  408. package/dist/esm/ic-date-input.entry.js.map +1 -1
  409. package/dist/esm/ic-date-picker.entry.js +92 -70
  410. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  411. package/dist/esm/ic-dialog.entry.js +38 -47
  412. package/dist/esm/ic-dialog.entry.js.map +1 -1
  413. package/dist/esm/ic-divider.entry.js +2 -2
  414. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  415. package/dist/esm/ic-footer-link.entry.js +2 -2
  416. package/dist/esm/ic-footer.entry.js +2 -2
  417. package/dist/esm/ic-hero.entry.js +2 -2
  418. package/dist/esm/ic-horizontal-scroll.entry.js +2 -2
  419. package/dist/esm/ic-input-component-container_3.entry.js +3 -3
  420. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  421. package/dist/esm/ic-input-label_2.entry.js +2 -2
  422. package/dist/esm/ic-link.entry.js +2 -2
  423. package/dist/esm/ic-menu-group.entry.js +2 -2
  424. package/dist/esm/ic-menu-item.entry.js +3 -3
  425. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  426. package/dist/esm/ic-navigation-button.entry.js +2 -2
  427. package/dist/esm/ic-navigation-group.entry.js +23 -17
  428. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  429. package/dist/esm/ic-navigation-item.entry.js +2 -2
  430. package/dist/esm/ic-navigation-menu.entry.js +38 -24
  431. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  432. package/dist/esm/ic-page-header.entry.js +12 -11
  433. package/dist/esm/ic-page-header.entry.js.map +1 -1
  434. package/dist/esm/ic-pagination_4.entry.js +53 -32
  435. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  436. package/dist/esm/ic-popover-menu.entry.js +7 -6
  437. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  438. package/dist/esm/ic-radio-group.entry.js +7 -7
  439. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  440. package/dist/esm/ic-radio-option.entry.js +2 -2
  441. package/dist/esm/ic-search-bar.entry.js +3 -3
  442. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  443. package/dist/esm/ic-section-container.entry.js +3 -3
  444. package/dist/esm/ic-section-container.entry.js.map +1 -1
  445. package/dist/esm/ic-side-navigation.entry.js +10 -7
  446. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  447. package/dist/esm/ic-skeleton.entry.js +3 -3
  448. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  449. package/dist/esm/ic-skip-link.entry.js +11 -10
  450. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  451. package/dist/esm/ic-status-tag.entry.js +5 -5
  452. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  453. package/dist/esm/ic-step.entry.js +17 -16
  454. package/dist/esm/ic-step.entry.js.map +1 -1
  455. package/dist/esm/ic-stepper.entry.js +4 -4
  456. package/dist/esm/ic-stepper.entry.js.map +1 -1
  457. package/dist/esm/ic-switch.entry.js +6 -6
  458. package/dist/esm/ic-switch.entry.js.map +1 -1
  459. package/dist/esm/ic-tab-context.entry.js +2 -2
  460. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  461. package/dist/esm/ic-tab-group.entry.js +4 -4
  462. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  463. package/dist/esm/ic-tab-panel.entry.js +3 -3
  464. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  465. package/dist/esm/ic-tab.entry.js +3 -3
  466. package/dist/esm/ic-tab.entry.js.map +1 -1
  467. package/dist/esm/ic-theme.entry.js +3 -3
  468. package/dist/esm/ic-theme.entry.js.map +1 -1
  469. package/dist/esm/ic-toast-region.entry.js +2 -2
  470. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  471. package/dist/esm/ic-toast.entry.js +6 -6
  472. package/dist/esm/ic-toast.entry.js.map +1 -1
  473. package/dist/esm/ic-toggle-button-group.entry.js +4 -4
  474. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  475. package/dist/esm/ic-toggle-button.entry.js +5 -5
  476. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  477. package/dist/esm/ic-top-navigation.entry.js +5 -9
  478. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  479. package/dist/esm/ic-tree-item.entry.js +56 -42
  480. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  481. package/dist/esm/ic-tree-view.entry.js +127 -22
  482. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  483. package/dist/esm/ic-typography.entry.js +2 -2
  484. package/dist/esm/{index-163fe708.js → index-a7a720e7.js} +6 -11
  485. package/dist/esm/index-a7a720e7.js.map +1 -0
  486. package/dist/esm/loader.js +3 -3
  487. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +3 -3
  488. package/dist/types/components/ic-data-table/ic-data-table.d.ts +30 -20
  489. package/dist/types/components/ic-data-table/ic-data-table.stories.d.ts +3 -9
  490. package/dist/types/components/ic-data-table/story-data.d.ts +15 -4
  491. package/dist/types/components/ic-date-input/ic-date-input.d.ts +46 -29
  492. package/dist/types/components/ic-date-input/ic-date-input.stories.d.ts +6 -0
  493. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +18 -12
  494. package/dist/types/components/ic-date-picker/ic-date-picker.stories.d.ts +8 -0
  495. package/dist/types/components/ic-date-picker/ic-day-button.d.ts +2 -2
  496. package/dist/types/components/ic-date-picker/ic-month-picker.d.ts +3 -3
  497. package/dist/types/components/ic-date-picker/ic-year-picker.d.ts +3 -3
  498. package/dist/types/components/ic-date-picker/story-data.d.ts +1 -0
  499. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +2 -2
  500. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +8 -2
  501. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +21 -4
  502. package/dist/types/components/ic-tree-view/ic-tree-view.stories.d.ts +91 -13
  503. package/dist/types/components/ic-tree-view/ic-tree-view.types.d.ts +12 -0
  504. package/dist/types/components.d.ts +129 -73
  505. package/dist/types/utils/date-helpers.d.ts +4 -4
  506. package/dist/types/utils/helpers.d.ts +8 -17
  507. package/hydrate/index.js +1223 -955
  508. package/hydrate/index.mjs +1223 -955
  509. package/package.json +3 -3
  510. package/dist/cjs/date-helpers-c9551119.js.map +0 -1
  511. package/dist/cjs/helpers-0e4c4fdd.js.map +0 -1
  512. package/dist/cjs/ic-checkbox.cjs.entry.js +0 -141
  513. package/dist/cjs/ic-checkbox.cjs.entry.js.map +0 -1
  514. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +0 -1
  515. package/dist/cjs/index-8a24b20c.js.map +0 -1
  516. package/dist/core/p-00135a74.js.map +0 -1
  517. package/dist/core/p-0efeab8a.entry.js +0 -2
  518. package/dist/core/p-0efeab8a.entry.js.map +0 -1
  519. package/dist/core/p-0fd762bf.entry.js.map +0 -1
  520. package/dist/core/p-144b1dee.entry.js +0 -2
  521. package/dist/core/p-1cf61bf2.entry.js +0 -2
  522. package/dist/core/p-1cf61bf2.entry.js.map +0 -1
  523. package/dist/core/p-33dd24eb.js +0 -2
  524. package/dist/core/p-33dd24eb.js.map +0 -1
  525. package/dist/core/p-3dc4e128.entry.js.map +0 -1
  526. package/dist/core/p-44ffa951.entry.js +0 -2
  527. package/dist/core/p-44ffa951.entry.js.map +0 -1
  528. package/dist/core/p-47962514.entry.js +0 -2
  529. package/dist/core/p-47962514.entry.js.map +0 -1
  530. package/dist/core/p-4e5934f3.entry.js +0 -2
  531. package/dist/core/p-5329e478.entry.js +0 -2
  532. package/dist/core/p-5329e478.entry.js.map +0 -1
  533. package/dist/core/p-5b2a7c1a.entry.js +0 -2
  534. package/dist/core/p-5b2a7c1a.entry.js.map +0 -1
  535. package/dist/core/p-67f3bf1a.entry.js +0 -2
  536. package/dist/core/p-6eaf585a.entry.js +0 -2
  537. package/dist/core/p-6eaf585a.entry.js.map +0 -1
  538. package/dist/core/p-8c4f212a.entry.js +0 -2
  539. package/dist/core/p-8c4f212a.entry.js.map +0 -1
  540. package/dist/core/p-8d73a3cc.entry.js.map +0 -1
  541. package/dist/core/p-9265efef.entry.js +0 -2
  542. package/dist/core/p-9265efef.entry.js.map +0 -1
  543. package/dist/core/p-95f2c59a.entry.js +0 -2
  544. package/dist/core/p-95f2c59a.entry.js.map +0 -1
  545. package/dist/core/p-a30d165d.entry.js.map +0 -1
  546. package/dist/core/p-a35cdfc3.entry.js +0 -2
  547. package/dist/core/p-a35cdfc3.entry.js.map +0 -1
  548. package/dist/core/p-a4582939.entry.js.map +0 -1
  549. package/dist/core/p-a7f95a61.entry.js +0 -2
  550. package/dist/core/p-a7f95a61.entry.js.map +0 -1
  551. package/dist/core/p-a81c9048.entry.js +0 -2
  552. package/dist/core/p-a81c9048.entry.js.map +0 -1
  553. package/dist/core/p-ac74cdac.entry.js +0 -2
  554. package/dist/core/p-ac74cdac.entry.js.map +0 -1
  555. package/dist/core/p-ad3e543e.entry.js +0 -2
  556. package/dist/core/p-ad3e543e.entry.js.map +0 -1
  557. package/dist/core/p-ae2bae87.entry.js +0 -2
  558. package/dist/core/p-ae2bae87.entry.js.map +0 -1
  559. package/dist/core/p-afde50b8.js +0 -2
  560. package/dist/core/p-afde50b8.js.map +0 -1
  561. package/dist/core/p-b84213d1.entry.js +0 -2
  562. package/dist/core/p-b84213d1.entry.js.map +0 -1
  563. package/dist/core/p-c2aef5cc.entry.js +0 -2
  564. package/dist/core/p-c2aef5cc.entry.js.map +0 -1
  565. package/dist/core/p-c6f1e205.entry.js.map +0 -1
  566. package/dist/core/p-cd59dc16.entry.js +0 -2
  567. package/dist/core/p-cd59dc16.entry.js.map +0 -1
  568. package/dist/core/p-e86c1c95.entry.js +0 -2
  569. package/dist/core/p-e86c1c95.entry.js.map +0 -1
  570. package/dist/core/p-f6013934.entry.js.map +0 -1
  571. package/dist/core/p-fba58c42.entry.js +0 -2
  572. package/dist/core/p-fba58c42.entry.js.map +0 -1
  573. package/dist/core/p-fd42f129.entry.js.map +0 -1
  574. package/dist/core/p-fde3bbb2.entry.js +0 -2
  575. package/dist/core/p-fde3bbb2.entry.js.map +0 -1
  576. package/dist/esm/date-helpers-0e5e32a7.js.map +0 -1
  577. package/dist/esm/helpers-4e38ba2b.js.map +0 -1
  578. package/dist/esm/ic-checkbox.entry.js.map +0 -1
  579. package/dist/esm/ic-empty-state_2.entry.js.map +0 -1
  580. package/dist/esm/index-163fe708.js.map +0 -1
  581. /package/dist/core/{p-32720276.entry.js.map → p-1bbae4b3.entry.js.map} +0 -0
  582. /package/dist/core/{p-b8aa37f9.entry.js.map → p-20bd48cf.entry.js.map} +0 -0
  583. /package/dist/core/{p-be5ad372.entry.js.map → p-21193099.entry.js.map} +0 -0
  584. /package/dist/core/{p-3e9564b5.entry.js.map → p-39269b62.entry.js.map} +0 -0
  585. /package/dist/core/{p-da798f58.entry.js.map → p-44ac8f8a.entry.js.map} +0 -0
  586. /package/dist/core/{p-afc4ce53.entry.js.map → p-4d39cab8.entry.js.map} +0 -0
  587. /package/dist/core/{p-fd006a9b.entry.js.map → p-4e187a11.entry.js.map} +0 -0
  588. /package/dist/core/{p-d154b26c.entry.js.map → p-50324682.entry.js.map} +0 -0
  589. /package/dist/core/{p-22e0ed96.entry.js.map → p-5796b6cd.entry.js.map} +0 -0
  590. /package/dist/core/{p-96551ddf.entry.js.map → p-57c80527.entry.js.map} +0 -0
  591. /package/dist/core/{p-b6db0cc1.entry.js.map → p-60d15d35.entry.js.map} +0 -0
  592. /package/dist/core/{p-272352cb.entry.js.map → p-6aa1e928.entry.js.map} +0 -0
  593. /package/dist/core/{p-1334a78f.entry.js.map → p-73e41eac.entry.js.map} +0 -0
  594. /package/dist/core/{p-08fd225f.entry.js.map → p-857c46c0.entry.js.map} +0 -0
  595. /package/dist/core/{p-0e3cb8d0.entry.js.map → p-8856dff4.entry.js.map} +0 -0
  596. /package/dist/core/{p-0c3bd9e6.entry.js.map → p-94427b50.entry.js.map} +0 -0
  597. /package/dist/core/{p-e13b43b1.entry.js.map → p-9cf7494c.entry.js.map} +0 -0
  598. /package/dist/core/{p-0848efa2.entry.js.map → p-a2671eb0.entry.js.map} +0 -0
  599. /package/dist/core/{p-f541034c.entry.js.map → p-d0768256.entry.js.map} +0 -0
  600. /package/dist/core/{p-0f6b9686.js.map → p-e246d84b.js.map} +0 -0
  601. /package/dist/core/{p-3d1ba098.entry.js.map → p-e6779171.entry.js.map} +0 -0
  602. /package/dist/core/{p-4da17eda.entry.js.map → p-f42ca69f.entry.js.map} +0 -0
@@ -13,12 +13,8 @@ const isMonthFirstFormat = (dateString) => {
13
13
  const monthFirstFormat = /^(0[1-9]|1[0-2])(\/|-)(0[1-9]|[12][0-9]|3[01])(\/|-)\d{4}$/;
14
14
  return monthFirstFormat.test(dateString);
15
15
  };
16
- const isDayFirstFormat = (dateString) => {
17
- const dayFirstFormat = /^(0[1-9]|[12][0-9]|3[01])(\/|-)(0[1-9]|1[0-2])(\/|-)\d{4}$/;
18
- return dayFirstFormat.test(dateString);
19
- };
20
16
  const createDate = (date, dateFormat) => {
21
- let newDate;
17
+ let newDate = new Date();
22
18
  if (isDateOrEpoch(date)) {
23
19
  newDate = typeof date === "string" ? new Date(date) : date;
24
20
  }
@@ -31,57 +27,30 @@ const createDate = (date, dateFormat) => {
31
27
  }
32
28
  return newDate;
33
29
  };
34
- const isDateOrEpoch = (date) => {
35
- return date instanceof Date || !isNaN(+new Date(+date));
36
- };
30
+ const isDateOrEpoch = (date) => date instanceof Date || !isNaN(+new Date(+date));
37
31
  const extractDateFromZuluDateTime = (zuluDateTime) => zuluDateTime.slice(0, zuluDateTime.indexOf("T"));
38
32
  const splitStringDate = (date, dateFormat) => {
39
33
  // returns an array where item 1 is year, item 2 is month, item 3 is day
40
- if (date.includes("T") && date.includes("Z")) {
41
- const nextDate = extractDateFromZuluDateTime(date);
42
- return nextDate.split("-");
43
- }
34
+ if (date.includes("T") && date.includes("Z"))
35
+ return extractDateFromZuluDateTime(date).split("-");
44
36
  let newDate = [];
45
- const dateWithSlashes = date.replace(/-/g, "/");
46
- if (dateWithSlashes.split("/").length > 1) {
47
- const dateParts = dateWithSlashes.split("/");
48
- // pad any values to 2 characters
49
- dateParts.forEach((d, i) => {
50
- if (d.length === 1) {
51
- dateParts[i] = convertToDoubleDigits(d);
52
- }
53
- });
37
+ const splitDateWithSlashes = date.replace(/-/g, "/").split("/");
38
+ if (splitDateWithSlashes.length > 1) {
39
+ const dateParts = splitDateWithSlashes.map((part) => part.length === 1 ? convertToDoubleDigits(part) : part); // pad any values to 2 characters
54
40
  if (dateParts[0].length === 4) {
55
41
  newDate = [dateParts[0], dateParts[1], dateParts[2]];
56
42
  }
57
43
  else {
58
- const newDateStr = dateParts.join("/");
59
- const validDayFirst = isDayFirstFormat(newDateStr);
60
- const validMonthFirst = isMonthFirstFormat(newDateStr);
61
- if (validDayFirst && validMonthFirst) {
62
- if (dateFormat.charAt(0) === "M") {
63
- newDate = [dateParts[2], dateParts[0], dateParts[1]];
64
- }
65
- else {
66
- newDate = [dateParts[2], dateParts[1], dateParts[0]];
67
- }
68
- }
69
- else if (validMonthFirst) {
44
+ newDate = [dateParts[2], dateParts[1], dateParts[0]];
45
+ if (isMonthFirstFormat(dateParts.join("/")) &&
46
+ dateFormat.charAt(0) === "M") {
70
47
  newDate = [dateParts[2], dateParts[0], dateParts[1]];
71
48
  }
72
- else {
73
- newDate = [dateParts[2], dateParts[1], dateParts[0]];
74
- }
75
49
  }
76
50
  }
77
51
  return newDate;
78
52
  };
79
- const convertToDoubleDigits = (value) => {
80
- if (+value < 10) {
81
- return `0${value}`;
82
- }
83
- return value.toString();
84
- };
53
+ const convertToDoubleDigits = (value) => +value < 10 ? `0${value}` : value.toString();
85
54
  const getWeekStart = (date, startDay) => {
86
55
  const tmpDate = new Date(date);
87
56
  const day = tmpDate.getDay();
@@ -105,14 +74,11 @@ const getMonthEnd = (date) => {
105
74
  /**
106
75
  * Compare if two dates are equal exactly equal
107
76
  */
108
- const dateMatches = (a, b) => {
109
- if (a === null || b === null) {
110
- return false;
111
- }
112
- return (a.getFullYear() === b.getFullYear() &&
113
- a.getMonth() === b.getMonth() &&
114
- a.getDate() === b.getDate());
115
- };
77
+ const dateMatches = (a, b) => a !== null &&
78
+ b !== null &&
79
+ a.getFullYear() === b.getFullYear() &&
80
+ a.getMonth() === b.getMonth() &&
81
+ a.getDate() === b.getDate();
116
82
  const clampDate = (date, min, max) => {
117
83
  const time = date.getTime();
118
84
  if (min !== null && time < min.getTime()) {
@@ -126,21 +92,9 @@ const clampDate = (date, min, max) => {
126
92
  /**
127
93
  * Compare if date is within specified range
128
94
  */
129
- const dateInRange = (date, min, max) => {
130
- return clampDate(date, min, max) === date;
131
- };
132
- const yearInRange = (year, min, max) => {
133
- let allowed = true;
134
- if (year !== null) {
135
- if (min !== null && year < min.getFullYear()) {
136
- allowed = false;
137
- }
138
- if (allowed && max !== null && year > max.getFullYear()) {
139
- allowed = false;
140
- }
141
- }
142
- return allowed;
143
- };
95
+ const dateInRange = (date, min, max) => clampDate(date, min, max) === date;
96
+ const yearInRange = (year, min, max) => !year ||
97
+ (!(min && year < min.getFullYear()) && !(max && year > max.getFullYear()));
144
98
 
145
99
  const Clear = `<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
146
100
  <path d="M15.8327 5.34199L14.6577 4.16699L9.99935 8.82533L5.34102 4.16699L4.16602 5.34199L8.82435 10.0003L4.16602 14.6587L5.34102 15.8337L9.99935 11.1753L14.6577 15.8337L15.8327 14.6587L11.1743 10.0003L15.8327 5.34199Z" fill="currentColor"/>
@@ -164,6 +118,7 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
164
118
  this.icBlur = createEvent(this, "icBlur", 7);
165
119
  this.icChange = createEvent(this, "icChange", 7);
166
120
  this.icFocus = createEvent(this, "icFocus", 7);
121
+ this.DEFAULT_DATE_FORMAT = "DD/MM/YYYY";
167
122
  this.ARIA_INVALID = "aria-invalid";
168
123
  this.ARIA_LABEL = "aria-label";
169
124
  this.ARIA_LABELLED_BY = "aria-labelledby";
@@ -183,20 +138,24 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
183
138
  this.KEYBOARD_EVENT_OBJECT_STRING = "[object KeyboardEvent]";
184
139
  this.MAX_DAY = 31;
185
140
  this.MAX_MONTH = 12;
186
- this.previousEmittedDate = undefined;
187
141
  this.previousSelectedDate = null;
188
142
  this.selectedDate = null;
189
- this.day = "";
190
- this.month = "";
191
- this.year = "";
143
+ this.externalSetDate = false;
144
+ this.clearInput = false;
192
145
  this.calendarFocused = false;
193
146
  this.clearButtonFocused = false;
194
147
  this.removeLabelledBy = false;
148
+ this.day = "";
149
+ this.month = "";
150
+ this.year = "";
195
151
  /**
196
152
  * The format in which the date will be displayed.
197
153
  */
198
- // eslint-disable-next-line sonarjs/no-duplicate-string
199
- this.dateFormat = "DD/MM/YYYY";
154
+ this.dateFormat = this.DEFAULT_DATE_FORMAT;
155
+ /**
156
+ * If `true`, every individual input field completed will emit an icChange event.
157
+ */
158
+ this.emitDatePartChange = false;
200
159
  /**
201
160
  * If `true`, the disabled state will be set.
202
161
  */
@@ -288,9 +247,11 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
288
247
  */
289
248
  this.validationText = "";
290
249
  this.setInputPasteValue = (input, pastedValue) => {
291
- const inputEl = input;
292
- inputEl.value = pastedValue;
293
- inputEl.classList.add(this.FIT_TO_VALUE);
250
+ if (input) {
251
+ const inputEl = input;
252
+ inputEl.value = pastedValue;
253
+ inputEl.classList.add(this.FIT_TO_VALUE);
254
+ }
294
255
  };
295
256
  this.checkSingleCopiedValueIsValid = (input, pastedValue) => {
296
257
  let isValid = false;
@@ -305,9 +266,6 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
305
266
  case this.yearInputEl:
306
267
  isValid = true;
307
268
  break;
308
- default:
309
- isValid = false;
310
- break;
311
269
  }
312
270
  return isValid;
313
271
  };
@@ -449,8 +407,10 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
449
407
  };
450
408
  this.handleBlur = (event) => {
451
409
  const input = event.target;
452
- this.setPasteInvalidText();
453
- this.autocompleteInput(input);
410
+ if (input) {
411
+ this.setPasteInvalidText();
412
+ this.autocompleteInput(input);
413
+ }
454
414
  };
455
415
  this.handleLeftRightArrowKeyPress = (input, key) => {
456
416
  if (key === "arrowright") {
@@ -462,13 +422,15 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
462
422
  this.setPasteInvalidText();
463
423
  };
464
424
  this.notifyScreenReaderSelectedDate = () => {
465
- const dayNames = stringEnumToArray(IcDayNames);
466
- const months = stringEnumToArray(IcDateInputMonths);
467
- this.selectedDateInfoEl.textContent = `Selected date: ${dayNames[this.selectedDate.getDay()]}, ${this.selectedDate.getDate()} ${months[this.selectedDate.getMonth()]} ${this.selectedDate.getFullYear()}`;
425
+ if (this.selectedDate && this.selectedDateInfoEl) {
426
+ const dayNames = stringEnumToArray(IcDayNames);
427
+ const months = stringEnumToArray(IcDateInputMonths);
428
+ this.selectedDateInfoEl.textContent = `Selected date: ${dayNames[this.selectedDate.getDay()]}, ${this.selectedDate.getDate()} ${months[this.selectedDate.getMonth()]} ${this.selectedDate.getFullYear()}`;
429
+ }
468
430
  };
469
431
  this.handleUpDownArrowKeyPress = (input, event) => {
470
432
  const minValue = input === this.yearInputEl ? 0 : 1;
471
- let maxValue;
433
+ let maxValue = 9999;
472
434
  switch (input) {
473
435
  case this.dayInputEl:
474
436
  maxValue = this.MAX_DAY;
@@ -511,22 +473,18 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
511
473
  else {
512
474
  if (event.key === "ArrowDown") {
513
475
  event.preventDefault();
514
- if (input === this.yearInputEl) {
515
- input.value = new Date().getFullYear().toString();
516
- }
517
- else {
518
- input.value = maxValue.toString();
519
- }
476
+ input.value =
477
+ input === this.yearInputEl
478
+ ? new Date().getFullYear().toString()
479
+ : maxValue.toString();
520
480
  this.notifyScreenReader(input, event);
521
481
  }
522
482
  else if (event.key === "ArrowUp") {
523
483
  event.preventDefault();
524
- if (input === this.yearInputEl) {
525
- input.value = new Date().getFullYear().toString();
526
- }
527
- else {
528
- input.value = `0${minValue}`;
529
- }
484
+ input.value =
485
+ input === this.yearInputEl
486
+ ? new Date().getFullYear().toString()
487
+ : `0${minValue}`;
530
488
  this.notifyScreenReader(input, event);
531
489
  }
532
490
  }
@@ -546,7 +504,8 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
546
504
  this.setValueAndEmitChange(this.selectedDate);
547
505
  this.notifyScreenReaderSelectedDate();
548
506
  }
549
- else if (!(this.selectedDate === null && this.previousSelectedDate === null)) {
507
+ else if (!(this.selectedDate === null && this.previousSelectedDate === null) &&
508
+ this.selectedDateInfoEl) {
550
509
  this.setValueAndEmitChange(null);
551
510
  this.selectedDateInfoEl.textContent = "";
552
511
  }
@@ -576,16 +535,20 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
576
535
  // Set value of each input to value of pasted date part
577
536
  // Allows formats separated by '-' or '/'
578
537
  this.handlePaste = (event) => {
538
+ var _a;
579
539
  event.preventDefault();
580
- const pastedValue = event.clipboardData.getData("Text");
540
+ const pastedValue = ((_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.getData("Text")) || "";
581
541
  const isValidDate = this.isPastedStringDateValid(pastedValue);
582
542
  this.setPastedValueAndValidation(isValidDate, pastedValue, event);
583
543
  };
584
544
  this.setDate = (date) => {
585
545
  if (date === null || date === "" || date === undefined) {
586
- this.day = null;
587
- this.month = null;
588
- this.year = null;
546
+ if (this.day)
547
+ this.day = "";
548
+ if (this.month)
549
+ this.month = "";
550
+ if (this.year)
551
+ this.year = "";
589
552
  this.inputsInOrder.forEach((input) => {
590
553
  input.classList.remove(this.FIT_TO_VALUE);
591
554
  this.setPreventInput(input, false);
@@ -608,9 +571,11 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
608
571
  }
609
572
  else if (typeof date === "string") {
610
573
  const defaultDateArray = splitStringDate(date, this.dateFormat);
574
+ this.selectedDate = new Date(Number(defaultDateArray[0]), Number(defaultDateArray[1]) - 1, Number(defaultDateArray[2]));
611
575
  this.year = defaultDateArray[0];
612
576
  this.month = defaultDateArray[1];
613
577
  this.day = defaultDateArray[2];
578
+ this.setValueAndEmitChange(this.selectedDate);
614
579
  }
615
580
  }
616
581
  this.setValidationMessage();
@@ -621,7 +586,7 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
621
586
  const month = convertToDoubleDigits(date.getMonth() + 1);
622
587
  const year = date.getFullYear();
623
588
  switch (this.dateFormat) {
624
- case "DD/MM/YYYY":
589
+ case this.DEFAULT_DATE_FORMAT:
625
590
  formattedDate = `${day}/${month}/${year}`;
626
591
  break;
627
592
  case "MM/DD/YYYY":
@@ -634,9 +599,11 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
634
599
  return formattedDate;
635
600
  };
636
601
  this.updateInputValues = (day, month, year) => {
637
- this.dayInputEl.value = day;
638
- this.monthInputEl.value = month;
639
- this.yearInputEl.value = year;
602
+ if (this.dayInputEl && this.monthInputEl && this.yearInputEl) {
603
+ this.dayInputEl.value = day;
604
+ this.monthInputEl.value = month;
605
+ this.yearInputEl.value = year;
606
+ }
640
607
  };
641
608
  // Set value in state based on input
642
609
  this.setInputValue = (input, clear = false) => {
@@ -664,7 +631,9 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
664
631
  // (used https://www.hectane.com/blog/javascript-date-validation-with-leap-year)
665
632
  this.selectedDate = this.convertToDate(this.year, this.month, this.day);
666
633
  this.isValidDate =
667
- +this.selectedDate !== 0 && this.selectedDate.getDate() == +this.day;
634
+ !!this.selectedDate &&
635
+ +this.selectedDate !== 0 &&
636
+ this.selectedDate.getDate() == +this.day;
668
637
  this.isDisabledDate = this.isSelectedDateDisabled();
669
638
  if (!this.isValidDate || this.isDisabledDate) {
670
639
  this.inputsInOrder.forEach((input) => input.setAttribute(this.ARIA_INVALID, "true"));
@@ -714,13 +683,13 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
714
683
  };
715
684
  // Set refs to the input elements in the order they are displayed (based on the dateFormat)
716
685
  this.setInputsInOrder = () => {
717
- const inputs = this.el.shadowRoot.querySelectorAll("input");
718
- inputs.forEach((input) => this.inputsInOrder.push(input));
686
+ var _a;
687
+ (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll("input").forEach((input) => this.inputsInOrder.push(input));
719
688
  };
720
689
  // Includes text usually added using aria-describedby
721
690
  // (which doesn't work on input component container)
722
691
  this.setAriaLabelledBy = () => {
723
- var _a, _b;
692
+ var _a, _b, _c;
724
693
  if (this.disabled &&
725
694
  !isEmptyString((_a = this.inputCompContainerEl) === null || _a === void 0 ? void 0 : _a.getAttribute(this.ARIA_LABELLED_BY))) {
726
695
  this.removeAriaLabelledBy();
@@ -729,14 +698,14 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
729
698
  if (this.disabled) {
730
699
  return;
731
700
  }
732
- const labelEl = this.el.shadowRoot.querySelector("label");
701
+ const labelEl = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector("label");
733
702
  const labelId = `${this.inputId}-label`;
734
703
  if (labelEl !== null && labelEl !== undefined) {
735
704
  labelEl.id = labelId;
736
705
  }
737
706
  const hasValidation = !isEmptyString(this.validationStatus) ||
738
707
  !isEmptyString(this.invalidDateText);
739
- const labelledBy = `${(_b = labelEl === null || labelEl === void 0 ? void 0 : labelEl.id) !== null && _b !== void 0 ? _b : ""} ${this.screenReaderInfoId} ${getInputDescribedByText(this.inputId, this.helperText !== "" && this.helperText !== this.defaultHelperText, hasValidation)} ${this.selectedDate ? this.selectedDateInfoId : ""} ${this.assistiveHintId}`;
708
+ const labelledBy = `${(_c = labelEl === null || labelEl === void 0 ? void 0 : labelEl.id) !== null && _c !== void 0 ? _c : ""} ${this.screenReaderInfoId} ${getInputDescribedByText(this.inputId, this.helperText !== "" && this.helperText !== this.defaultHelperText, hasValidation)} ${this.selectedDate ? this.selectedDateInfoId : ""} ${this.assistiveHintId}`;
740
709
  this.inputCompContainerEl.setAttribute(this.ARIA_LABELLED_BY, labelledBy);
741
710
  };
742
711
  // Sets boolean for each input, used to limit the number of characters within each field (2 for day / month, 4 for year)
@@ -785,7 +754,7 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
785
754
  this.getDescOfInputsOrder = () => {
786
755
  let description;
787
756
  switch (this.dateFormat) {
788
- case "DD/MM/YYYY":
757
+ case this.DEFAULT_DATE_FORMAT:
789
758
  description = "day, month, and year";
790
759
  break;
791
760
  case "MM/DD/YYYY":
@@ -817,7 +786,7 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
817
786
  const input = event.target;
818
787
  let selectedString;
819
788
  if (input) {
820
- selectedString = input.value.substring(input.selectionStart, input.selectionEnd);
789
+ selectedString = input.value.substring(input.selectionStart || 0, input.selectionEnd || undefined);
821
790
  }
822
791
  if (key === "e" ||
823
792
  key === "." ||
@@ -829,81 +798,60 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
829
798
  event.preventDefault();
830
799
  }
831
800
  };
832
- // Get whether date has been disabled using disableFuture or disablePast prop, but always allow current day
833
- // Consider using dateClamp and inDateRange
801
+ /**
802
+ * Get whether date has been disabled using disableFuture or disablePast prop, but always allow current day
803
+ * Consider using dateClamp and inDateRange
804
+ * @returns `boolean`
805
+ */
834
806
  this.isSelectedDateDisabled = () => {
807
+ if (!this.selectedDate)
808
+ return false;
835
809
  const currentDate = new Date();
836
- this.isAfterMax = false;
837
- this.isBeforeMin = false;
838
- let disabled = false;
839
810
  const isNotToday = this.selectedDate.toDateString() !== currentDate.toDateString();
840
- if (this.minDate && this.selectedDate < this.minDate && isNotToday) {
841
- this.isBeforeMin = true;
842
- disabled = true;
843
- }
844
- if (this.maxDate && this.selectedDate > this.maxDate && isNotToday) {
845
- this.isAfterMax = true;
846
- disabled = true;
847
- }
848
- if (this.disableDays.includes(this.selectedDate.getDay())) {
849
- disabled = true;
850
- }
851
- if (((this.disablePast && this.selectedDate < currentDate) ||
852
- (this.disableFuture && this.selectedDate > currentDate)) &&
853
- isNotToday) {
854
- disabled = true;
855
- }
856
- return disabled;
811
+ this.isAfterMax =
812
+ this.maxDate && this.selectedDate > this.maxDate && isNotToday;
813
+ this.isBeforeMin =
814
+ this.minDate && this.selectedDate < this.minDate && isNotToday;
815
+ return (this.isAfterMax ||
816
+ this.isBeforeMin ||
817
+ this.disableDays.includes(this.selectedDate.getDay()) ||
818
+ (((!!this.disablePast && this.selectedDate < currentDate) ||
819
+ (!!this.disableFuture && this.selectedDate > currentDate)) &&
820
+ isNotToday));
857
821
  };
858
822
  this.moveToNextInput = (currentInput) => {
859
- const currentInputPos = this.inputsInOrder.findIndex((input) => input === currentInput);
860
- const nextInput = this.inputsInOrder[currentInputPos + 1];
823
+ var _a;
861
824
  this.preventAutoFormatting = false;
862
- if (nextInput) {
863
- nextInput.focus();
864
- }
825
+ (_a = this.inputsInOrder[this.inputsInOrder.findIndex((input) => input === currentInput) + 1]) === null || _a === void 0 ? void 0 : _a.focus();
865
826
  };
866
827
  this.moveToPreviousInput = (currentInput) => {
867
- const currentInputPos = this.inputsInOrder.findIndex((input) => input === currentInput);
828
+ var _a;
868
829
  this.preventAutoFormatting = false;
869
- if (this.inputsInOrder[currentInputPos - 1]) {
870
- this.inputsInOrder[currentInputPos - 1].focus();
871
- }
830
+ (_a = this.inputsInOrder[this.inputsInOrder.findIndex((input) => input === currentInput) - 1]) === null || _a === void 0 ? void 0 : _a.focus();
872
831
  };
873
832
  this.autocompleteInput = (input) => {
874
- if (input === this.yearInputEl) {
875
- this.autocompleteYear();
833
+ const inputValue = input.value;
834
+ if (this.yearInputEl && input === this.yearInputEl) {
835
+ // Autocomplete year as current millennium when fewer than 4 characters entered
836
+ const yearNumbers = ["2", "0", "0"];
837
+ let autocompletedInput = "";
838
+ if (inputValue) {
839
+ yearNumbers.forEach((number, index) => {
840
+ if (inputValue.length + index <= 3) {
841
+ autocompletedInput += number;
842
+ }
843
+ });
844
+ this.yearInputEl.value = `${autocompletedInput}${inputValue}`;
845
+ }
876
846
  }
877
- else {
878
- const inputValue = input.value;
847
+ else if (inputValue.length === 1) {
879
848
  // Autocomplete input as 2 characters (leading zero) when only 1 character entered (for day and month)
880
- if (inputValue.length === 1) {
881
- if (+inputValue === 0) {
882
- input.value = "01";
883
- }
884
- else {
885
- input.value = `0${inputValue}`;
886
- }
887
- }
849
+ input.value = +inputValue === 0 ? "01" : `0${inputValue}`;
888
850
  }
889
851
  if (input.value) {
890
852
  this.setInputValue(input);
891
853
  }
892
854
  };
893
- // Autocomplete year as current millennium when fewer than 4 characters entered
894
- this.autocompleteYear = () => {
895
- const inputValue = this.yearInputEl.value;
896
- const yearNumbers = ["2", "0", "0"];
897
- let autocompletedInput = "";
898
- if (inputValue) {
899
- yearNumbers.forEach((number, index) => {
900
- if (inputValue.length + index <= 3) {
901
- autocompletedInput += number;
902
- }
903
- });
904
- this.yearInputEl.value = `${autocompletedInput}${inputValue}`;
905
- }
906
- };
907
855
  this.convertToDate = (year, month, day) => {
908
856
  if (!isEmptyString(year) && !isEmptyString(month) && !isEmptyString(day)) {
909
857
  return new Date(+year, +month - 1, +day);
@@ -917,8 +865,8 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
917
865
  this.icBlur.emit({ value: this.selectedDate });
918
866
  };
919
867
  this.handleHostFocus = () => {
920
- var _a;
921
- if ((_a = this.el.shadowRoot.activeElement) === null || _a === void 0 ? void 0 : _a.id.match(/(day|month|year)-input$/)) {
868
+ var _a, _b;
869
+ if ((_b = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) === null || _b === void 0 ? void 0 : _b.id.match(/(day|month|year)-input$/)) {
922
870
  this.removeLabelledBy = false;
923
871
  }
924
872
  else {
@@ -932,14 +880,13 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
932
880
  this.setValidationMessage();
933
881
  this.handleDateChange(false);
934
882
  };
935
- this.getAriaLabel = (input) => {
936
- return input.getAttribute(this.ARIA_LABEL);
937
- };
883
+ this.getAriaLabel = (input) => input.getAttribute(this.ARIA_LABEL);
938
884
  this.notifyScreenReaderArrowKeys = (input) => {
939
- const liveRegion = this.el.shadowRoot.querySelector("#live-region");
940
- let announcement = "";
885
+ var _a;
886
+ const liveRegion = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("#live-region");
941
887
  const ariaLabel = this.getAriaLabel(input);
942
- if (liveRegion && input.value) {
888
+ if (liveRegion && input.value && ariaLabel) {
889
+ let announcement = "";
943
890
  if (input === this.monthInputEl &&
944
891
  !!IcDateInputMonths[+input.value - 1]) {
945
892
  announcement = `${input.value} - ${IcDateInputMonths[+input.value - 1]}, ${ariaLabel}`;
@@ -951,32 +898,23 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
951
898
  }
952
899
  };
953
900
  this.notifyScreenReaderInput = (input, liveRegion) => {
954
- let announcement = "";
955
901
  const ariaLabel = this.getAriaLabel(input);
956
- if (input === this.dayInputEl || input === this.monthInputEl) {
957
- if (input.value.length === 2) {
958
- if (input === this.monthInputEl &&
959
- !!IcDateInputMonths[+input.value - 1] &&
960
- this.isValidMonth) {
961
- announcement = `${input.value} - ${IcDateInputMonths[+input.value - 1]}, ${ariaLabel}`;
962
- }
963
- if (input === this.dayInputEl && this.isValidDay) {
964
- announcement = `${input.value}, ${ariaLabel}`;
965
- }
966
- }
967
- else {
968
- announcement = "";
969
- }
970
- }
971
- else {
972
- if (input.value.length === 4) {
973
- announcement = `${input.value}, ${ariaLabel}`;
902
+ const value = input.value;
903
+ if (ariaLabel && value) {
904
+ let announcement = "";
905
+ const monthValue = IcDateInputMonths[+value - 1];
906
+ if (input === this.monthInputEl &&
907
+ !!monthValue &&
908
+ this.isValidMonth &&
909
+ value.length === 2) {
910
+ announcement = `${value} - ${monthValue}`;
974
911
  }
975
- else {
976
- announcement = "";
912
+ else if ((input === this.dayInputEl && this.isValidDay && value.length === 2) ||
913
+ (input === this.yearInputEl && value.length === 4)) {
914
+ announcement = value;
977
915
  }
916
+ liveRegion.textContent = `${announcement}, ${ariaLabel}`;
978
917
  }
979
- liveRegion.textContent = announcement;
980
918
  };
981
919
  this.setFitToValueStyling = (input) => {
982
920
  if (input.value) {
@@ -987,15 +925,16 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
987
925
  }
988
926
  };
989
927
  this.setAriaInvalid = (validDay, validMonth, validDate, disabledDate) => {
928
+ var _a, _b;
990
929
  if (this.inputsInOrder.length) {
991
930
  this.inputsInOrder.forEach((input) => {
992
931
  input.removeAttribute(this.ARIA_INVALID);
993
932
  });
994
933
  if (!validDay) {
995
- this.dayInputEl.setAttribute(this.ARIA_INVALID, "true");
934
+ (_a = this.dayInputEl) === null || _a === void 0 ? void 0 : _a.setAttribute(this.ARIA_INVALID, "true");
996
935
  }
997
936
  if (!validMonth) {
998
- this.monthInputEl.setAttribute(this.ARIA_INVALID, "true");
937
+ (_b = this.monthInputEl) === null || _b === void 0 ? void 0 : _b.setAttribute(this.ARIA_INVALID, "true");
999
938
  }
1000
939
  if (!validDate || disabledDate) {
1001
940
  this.inputsInOrder.forEach((input) => {
@@ -1005,26 +944,28 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
1005
944
  }
1006
945
  };
1007
946
  this.handleClear = () => {
947
+ this.clearInput = true;
1008
948
  this.inputsInOrder.forEach((input) => {
1009
949
  input.classList.remove(this.FIT_TO_VALUE);
1010
950
  this.setInputValue(input, true);
1011
951
  this.setPreventInput(input, false);
1012
952
  });
953
+ this.clearInput = false;
1013
954
  this.isDateSetFromKeyboardEvent = false;
1014
955
  this.setValidationMessage();
1015
956
  this.handleDateChange(true);
1016
957
  this.inputsInOrder[0].focus();
1017
958
  };
1018
959
  this.handleCalendarOpen = (ev) => {
1019
- var _a, _b;
960
+ var _a, _b, _c, _d, _e, _f;
1020
961
  ev.stopImmediatePropagation();
1021
- (_a = this.calendarButtonEl) === null || _a === void 0 ? void 0 : _a.shadowRoot.querySelector("ic-tooltip").displayTooltip(false);
962
+ (_c = (_b = (_a = this.calendarButtonEl) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector("ic-tooltip")) === null || _c === void 0 ? void 0 : _c.displayTooltip(false);
1022
963
  this.calendarButtonClicked.emit({ value: this.selectedDate });
1023
- (_b = this.calendarButtonEl) === null || _b === void 0 ? void 0 : _b.shadowRoot.querySelector("ic-tooltip").displayTooltip(false);
964
+ (_f = (_e = (_d = this.calendarButtonEl) === null || _d === void 0 ? void 0 : _d.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector("ic-tooltip")) === null || _f === void 0 ? void 0 : _f.displayTooltip(false);
1024
965
  this.isDateSetFromKeyboardEvent = false;
1025
966
  };
1026
967
  this.setValueAndEmitChange = (value) => {
1027
- if (!dateMatches(new Date(this.value), value)) {
968
+ if (!dateMatches(this.value ? new Date(this.value) : null, value)) {
1028
969
  this.emitIcChange(value);
1029
970
  this.value = value;
1030
971
  }
@@ -1049,13 +990,36 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
1049
990
  this.removeLabelledBy = true;
1050
991
  };
1051
992
  this.emitIcChange = (d) => {
1052
- if (!(d === null && this.previousEmittedDate === null) &&
1053
- !dateMatches(d, this.previousEmittedDate)) {
1054
- this.previousEmittedDate = d;
1055
- this.icChange.emit({ value: d });
993
+ this.selectedDate = d;
994
+ if (!dateMatches(this.selectedDate, d) ||
995
+ this.day !== null ||
996
+ this.month !== null ||
997
+ this.year !== null) {
998
+ let UTCDate = null;
999
+ if (d !== null) {
1000
+ UTCDate = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
1001
+ }
1002
+ this.icChange.emit({
1003
+ value: d,
1004
+ dateObject: {
1005
+ day: this.day === "" ? null : this.day,
1006
+ month: this.month === "" ? null : this.month,
1007
+ year: this.year === "" ? null : this.year,
1008
+ },
1009
+ utcValue: UTCDate,
1010
+ });
1056
1011
  }
1057
1012
  };
1058
1013
  }
1014
+ watchInputHandler() {
1015
+ if (this.emitDatePartChange &&
1016
+ !this.externalSetDate &&
1017
+ !this.clearInput &&
1018
+ !(this.day && this.month && this.year) &&
1019
+ this.selectedDate === null) {
1020
+ this.emitIcChange(this.selectedDate);
1021
+ }
1022
+ }
1059
1023
  watchDisabledHandler() {
1060
1024
  removeDisabledFalse(this.disabled, this.el);
1061
1025
  }
@@ -1082,9 +1046,10 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
1082
1046
  }
1083
1047
  }
1084
1048
  watchRequiredHandler() {
1049
+ var _a, _b;
1085
1050
  // Prevent asterisk being read out after the label by screen reader (by applying aria-hidden)
1086
1051
  // Needed because label is included in 'aria-labelledby' instead of using 'aria-label'
1087
- const labelEl = this.el.shadowRoot.querySelector("label");
1052
+ const labelEl = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("label");
1088
1053
  if (this.required) {
1089
1054
  const asteriskSpan = document.createElement("span");
1090
1055
  asteriskSpan.setAttribute("id", "asterisk-span");
@@ -1093,7 +1058,7 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
1093
1058
  labelEl === null || labelEl === void 0 ? void 0 : labelEl.appendChild(asteriskSpan);
1094
1059
  }
1095
1060
  else {
1096
- const asteriskSpan = this.el.shadowRoot.querySelector("#asterisk-span");
1061
+ const asteriskSpan = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector("#asterisk-span");
1097
1062
  if (asteriskSpan) {
1098
1063
  asteriskSpan.remove();
1099
1064
  }
@@ -1109,11 +1074,8 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
1109
1074
  this.watchMinHandler();
1110
1075
  this.watchMaxHandler();
1111
1076
  if (this.value) {
1077
+ this.externalSetDate = true;
1112
1078
  this.setDate(this.value);
1113
- this.previousEmittedDate = this.selectedDate;
1114
- }
1115
- else {
1116
- this.previousEmittedDate = null;
1117
1079
  }
1118
1080
  this.screenReaderInfoId = `${this.inputId}-screen-reader-info`;
1119
1081
  this.assistiveHintId = `${this.inputId}-assistive-hint`;
@@ -1182,7 +1144,10 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
1182
1144
  * @internal Used to enable other components to invoke an IcChange event from the input.
1183
1145
  */
1184
1146
  async triggerIcChange(d) {
1147
+ this.externalSetDate = true;
1148
+ this.setDate(d);
1185
1149
  this.emitIcChange(d);
1150
+ this.externalSetDate = false;
1186
1151
  }
1187
1152
  removeAriaLabelledBy() {
1188
1153
  this.inputCompContainerEl.removeAttribute(this.ARIA_LABELLED_BY);
@@ -1243,18 +1208,18 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
1243
1208
  }
1244
1209
  pasteZuluDateTime(dateParts, index) {
1245
1210
  // ['YYYY', 'MM', 'DD']
1246
- if (index === 0) {
1211
+ if (index === 0 && this.yearInputEl) {
1247
1212
  const dateValue = this.slicePastedDate(4, dateParts[index]);
1248
1213
  this.yearInputEl.value = dateValue;
1249
1214
  this.setInputValue(this.yearInputEl);
1250
1215
  }
1251
- else if (index === 1) {
1216
+ else if (index === 1 && this.monthInputEl) {
1252
1217
  // The month value is the second item in the array
1253
1218
  const dateValue = this.slicePastedDate(2, dateParts[index]);
1254
1219
  this.monthInputEl.value = dateValue;
1255
1220
  this.setInputValue(this.monthInputEl);
1256
1221
  }
1257
- else {
1222
+ else if (this.dayInputEl) {
1258
1223
  const dateValue = this.slicePastedDate(2, dateParts[index]);
1259
1224
  this.dayInputEl.value = dateValue;
1260
1225
  this.setInputValue(this.dayInputEl);
@@ -1279,7 +1244,8 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
1279
1244
  }
1280
1245
  }
1281
1246
  notifyScreenReader(input, event) {
1282
- const liveRegion = this.el.shadowRoot.querySelector("#live-region");
1247
+ var _a;
1248
+ const liveRegion = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("#live-region");
1283
1249
  if (liveRegion) {
1284
1250
  if (this.isKeyboardOrEvent(event)) {
1285
1251
  this.notifyScreenReaderArrowKeys(input);
@@ -1299,19 +1265,22 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
1299
1265
  : "";
1300
1266
  const assistiveHint = `Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;
1301
1267
  renderHiddenInput(true, this.el, this.name, this.convertToDate(this.year, this.month, this.day), this.disabled);
1302
- return (h(Host, { key: '08b8f65934b55fd86e9abe2fad8f232af68b3754', class: {
1268
+ return (h(Host, { key: '5e9f71b2a1c5dbc55f615ea389121c300ed68fd4', class: {
1303
1269
  [`ic-theme-${theme}`]: theme !== "inherit",
1304
1270
  [`ic-date-input-disabled`]: disabled,
1305
- }, onBlur: this.handleHostBlur, onFocus: this.handleHostFocus }, h("ic-input-container", { key: '285bb0e746630a08c3e4e29bc8a24f5d97b4b4e5', disabled: disabled }, !(hideLabel && hideHelperText) && (h("ic-input-label", { key: 'f1facdecd84445133a67c87a2d6e5ba4dfbfbceb', for: inputId, label: label, hideLabel: hideLabel, helperText: !hideHelperText ? helperText : "", disabled: disabled })), h("span", { key: '25ae3fae1dc4f2862ec14e348138adfadf0dc3c7', id: this.screenReaderInfoId, class: "sr-only", "aria-hidden": "true" }, this.getScreenReaderInfo(validationStatus), hideLabel && `${label}\n`, hideHelperText && `${helperText}\n`, `${this.defaultHelperText}.`), h("span", { key: 'd3c34084b3b846795063f799720b7d918f10f5a9', id: this.assistiveHintId, class: "sr-only", "aria-hidden": "true" }, assistiveHint), h("span", { key: '37ecdc3ee7ced98dac405591cb106e1a03add976', id: "live-region", "aria-live": "assertive", class: "sr-only" }), h("ic-input-component-container", { key: 'cfcfae24a49a49e0f2a878a7c024818e1cce125a', id: inputId, ref: (el) => (this.inputCompContainerEl = el), disabled: disabled, validationStatus: validationStatus, size: size, role: "group", class: { [`ic-theme-${theme}`]: theme !== "inherit" } }, h("div", { key: '4d090542f2fb72fae8cda326af45278552707cd6', class: "input-container" }, h("div", { key: '4eef737c2a8d25353a41ea31b2e8bc21ec55ff9a', class: "date-inputs" }, this.getInputsInOrder()[0], "/", this.getInputsInOrder()[1], "/", this.getInputsInOrder()[2]), h("div", { key: 'bc1cb74a96f75b4018f2e39f8712a870f5f4bf6e', class: "action-buttons" }, showClearButton && (h("ic-button", { key: 'e58854f9e3b74a7f46a253a8421c8c9775047069', id: "clear-button", "aria-label": "Clear input", class: {
1271
+ }, onBlur: this.handleHostBlur, onFocus: this.handleHostFocus }, h("ic-input-container", { key: '64fe93a68d17f2b84e296efb2d9602876628d972', disabled: disabled }, !(hideLabel && hideHelperText) && (h("ic-input-label", { key: '69bb1722d84504483a7691fe713c86639025765f', for: inputId, label: label, hideLabel: hideLabel, helperText: !hideHelperText ? helperText : "", disabled: disabled })), h("span", { key: '3ef289406284d077b47db67d8b5d45919fdaad0e', id: this.screenReaderInfoId, class: "sr-only", "aria-hidden": "true" }, this.getScreenReaderInfo(validationStatus), hideLabel && `${label}\n`, hideHelperText && `${helperText}\n`, `${this.defaultHelperText}.`), h("span", { key: '20222a2534cf00d15fe40610412babb302fc0e7a', id: this.assistiveHintId, class: "sr-only", "aria-hidden": "true" }, assistiveHint), h("span", { key: '5d4346a0fec1b1ee9d22057b7f2f1aa3b98f9693', id: "live-region", "aria-live": "assertive", class: "sr-only" }), h("ic-input-component-container", { key: '1a2adcdeaf2e5cb437f77dd76054dcd872937bfc', id: inputId, ref: (el) => (this.inputCompContainerEl = el), disabled: disabled, validationStatus: validationStatus, size: size, role: "group", class: { [`ic-theme-${theme}`]: theme !== "inherit" } }, h("div", { key: 'ad5c42cec33b39329bde1975b094f3f13e974191', class: "input-container" }, h("div", { key: '5bc9b871e605562b50306d5bb6bcc078892bafc5', class: "date-inputs" }, this.getInputsInOrder()[0], "/", this.getInputsInOrder()[1], "/", this.getInputsInOrder()[2]), h("div", { key: '6efb1d64b2eeab1c3da78d1e0b95f3df987fedcc', class: "action-buttons" }, showClearButton && (h("ic-button", { key: '39a73d58a6814d3fac7425050291e3f2f821cd72', id: "clear-button", "aria-label": "Clear input", class: {
1306
1272
  ["clear-button"]: true,
1307
1273
  ["hidden"]: isEmptyString(this.day) &&
1308
1274
  isEmptyString(this.month) &&
1309
1275
  isEmptyString(this.year),
1310
- }, disabled: this.disabled, innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearFocus, onBlur: this.handleClearBlur, variant: "icon-tertiary", theme: this.clearButtonFocused ? "light" : "dark", size: size })), showCalendarButton && (h("div", { key: 'd7e3f4e87e69d949a1c9e56230ae78b22dfd23f8', class: "show-calendar-button-wrapper" }, h("div", { key: '21bcae037bcb6d81bd89ba1eb51f279f048fa2df', class: { divider: true, [size]: true } }), h("ic-button", { key: '3bad8c476367e3aac94092078fe9d8aa52f396ff', id: "calendar-button", ref: (el) => (this.calendarButtonEl = el), "aria-label": "Display calendar", "aria-haspopup": "dialog", class: "calendar-button", disabled: this.disabled, innerHTML: Calendar, onClick: this.handleCalendarOpen, variant: "icon-tertiary", size: size, onFocus: this.handleCalendarFocus, onBlur: this.handleCalendarBlur, theme: this.calendarFocused ? "light" : "dark" })))))), h("span", { key: 'c11a9f0fc1eae4efc3a3a29ebdd1eb65a6de7630', id: this.selectedDateInfoId, class: "sr-only", "aria-live": "polite" }, h("span", { key: '2930c304db0ad50b6991454d9375fdc2e1a4547a', ref: (el) => (this.selectedDateInfoEl = el), role: "status" })), (hasCustomValidation || !isEmptyString(this.invalidDateText)) && (h("ic-input-validation", { key: '5fc1473b568a1f82c3c1ee9f73e20a19f7c28d85', status: validationStatus, message: hasCustomValidation ? this.validationText : this.invalidDateText, for: inputId })))));
1276
+ }, disabled: this.disabled, innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearFocus, onBlur: this.handleClearBlur, variant: "icon-tertiary", theme: this.clearButtonFocused ? "light" : "dark", size: size })), showCalendarButton && (h("div", { key: '6d05e11943d6bd56f9dd6d20b8306a45062ac3f2', class: "show-calendar-button-wrapper" }, h("div", { key: 'c04cdf2665700c19fdc323bf92435d2b0d710016', class: { divider: true, [size]: true } }), h("ic-button", { key: '1a88f2b979c6c1569bb5bff797ea28e86526ff69', id: "calendar-button", ref: (el) => (this.calendarButtonEl = el), "aria-label": "Display calendar", "aria-haspopup": "dialog", class: "calendar-button", disabled: this.disabled, innerHTML: Calendar, onClick: this.handleCalendarOpen, variant: "icon-tertiary", size: size, onFocus: this.handleCalendarFocus, onBlur: this.handleCalendarBlur, theme: this.calendarFocused ? "light" : "dark" })))))), h("span", { key: '49dc06b59b4ecbee2899842a1dc63d5bbde70cc3', id: this.selectedDateInfoId, class: "sr-only", "aria-live": "polite" }, h("span", { key: 'bd2d89299077ceaf51b03fc5f22e6d0ff2f1550a', ref: (el) => (this.selectedDateInfoEl = el), role: "status" })), (hasCustomValidation || !isEmptyString(this.invalidDateText)) && (h("ic-input-validation", { key: 'd1502e42604239e61c7ec08840c258d2ea4d07e8', status: validationStatus, message: hasCustomValidation ? this.validationText : this.invalidDateText, for: inputId })))));
1311
1277
  }
1312
1278
  static get delegatesFocus() { return true; }
1313
1279
  get el() { return this; }
1314
1280
  static get watchers() { return {
1281
+ "day": ["watchInputHandler"],
1282
+ "month": ["watchInputHandler"],
1283
+ "year": ["watchInputHandler"],
1315
1284
  "disabled": ["watchDisabledHandler"],
1316
1285
  "disableFuture": ["watchDisableFutureHandler"],
1317
1286
  "disablePast": ["watchDisablePastHandler"],
@@ -1322,6 +1291,7 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
1322
1291
  static get style() { return IcDateInputStyle0; }
1323
1292
  }, [17, "ic-date-input", {
1324
1293
  "dateFormat": [1, "date-format"],
1294
+ "emitDatePartChange": [4, "emit-date-part-change"],
1325
1295
  "disabled": [4],
1326
1296
  "disableDays": [1040],
1327
1297
  "disableDaysMessage": [1, "disable-days-message"],
@@ -1346,20 +1316,23 @@ const DateInput = /*@__PURE__*/ proxyCustomElement(class DateInput extends HTMLE
1346
1316
  "value": [1025],
1347
1317
  "validationStatus": [1025, "validation-status"],
1348
1318
  "validationText": [1, "validation-text"],
1349
- "day": [32],
1350
1319
  "invalidDateText": [32],
1351
1320
  "maxDate": [32],
1352
1321
  "minDate": [32],
1353
- "month": [32],
1354
- "year": [32],
1355
1322
  "calendarFocused": [32],
1356
1323
  "clearButtonFocused": [32],
1357
1324
  "removeLabelledBy": [32],
1325
+ "day": [32],
1326
+ "month": [32],
1327
+ "year": [32],
1358
1328
  "getDate": [64],
1359
1329
  "setCalendarFocus": [64],
1360
1330
  "setDisableDays": [64],
1361
1331
  "triggerIcChange": [64]
1362
1332
  }, undefined, {
1333
+ "day": ["watchInputHandler"],
1334
+ "month": ["watchInputHandler"],
1335
+ "year": ["watchInputHandler"],
1363
1336
  "disabled": ["watchDisabledHandler"],
1364
1337
  "disableFuture": ["watchDisableFutureHandler"],
1365
1338
  "disablePast": ["watchDisablePastHandler"],