@ukic/canary-web-components 3.0.0-canary.30 → 3.0.0-canary.31

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 (494) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/date-helpers-d7ee7b45.js.map +1 -1
  3. package/dist/cjs/{helpers-da852478.js → helpers-6f4b406b.js} +20 -20
  4. package/dist/cjs/helpers-6f4b406b.js.map +1 -0
  5. package/dist/cjs/ic-button_3.cjs.entry.js +5 -5
  6. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-calendar_2.cjs.entry.js +2354 -0
  8. package/dist/cjs/ic-calendar_2.cjs.entry.js.map +1 -0
  9. package/dist/cjs/ic-card-horizontal.cjs.entry.js +6 -6
  10. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  12. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-checkbox_3.cjs.entry.js +39 -16
  14. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  16. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  18. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +4 -4
  20. package/dist/cjs/ic-data-table.cjs.entry.js +8 -8
  21. package/dist/cjs/ic-date-picker.cjs.entry.js +98 -854
  22. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  26. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-hero.cjs.entry.js +11 -6
  28. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -5
  30. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +10 -10
  32. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-layout-grid-item.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
  36. package/dist/cjs/ic-layout-grid.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-menu.cjs.entry.js +3 -3
  42. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-navigation-menu.cjs.entry.js +4 -4
  46. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-page-header.cjs.entry.js +6 -6
  48. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-pagination_4.cjs.entry.js +18 -18
  50. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-popover-menu.cjs.entry.js +4 -4
  52. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-radio-group.cjs.entry.js +4 -4
  54. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-radio-option.cjs.entry.js +4 -4
  56. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-search-bar.cjs.entry.js +9 -9
  58. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  60. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-side-navigation.cjs.entry.js +4 -4
  62. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  66. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  68. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-step.cjs.entry.js +13 -13
  70. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  72. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-switch.cjs.entry.js +4 -4
  74. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  76. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
  78. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  80. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-table-of-contents.cjs.entry.js +4 -4
  82. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  83. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-time-input.cjs.entry.js +5 -5
  85. package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  87. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  89. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +2 -2
  91. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
  93. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-tree-item.cjs.entry.js +3 -3
  95. package/dist/cjs/ic-tree-view.cjs.entry.js +4 -4
  96. package/dist/cjs/index-d337cd8a.js +4 -4
  97. package/dist/cjs/loader.cjs.js +1 -1
  98. package/dist/collection/collection-manifest.json +1 -0
  99. package/dist/collection/components/ic-calendar/ic-calendar.css +910 -0
  100. package/dist/collection/components/ic-calendar/ic-calendar.js +1542 -0
  101. package/dist/collection/components/ic-calendar/ic-calendar.js.map +1 -0
  102. package/dist/collection/components/ic-calendar/ic-calendar.stories.js +295 -0
  103. package/dist/collection/components/ic-calendar/ic-calendar.stories.js.map +1 -0
  104. package/dist/collection/components/ic-calendar/ic-day-button.js.map +1 -0
  105. package/dist/collection/components/ic-calendar/ic-month-picker.js +35 -0
  106. package/dist/collection/components/ic-calendar/ic-month-picker.js.map +1 -0
  107. package/dist/collection/components/ic-calendar/ic-year-picker.js +57 -0
  108. package/dist/collection/components/ic-calendar/ic-year-picker.js.map +1 -0
  109. package/dist/collection/components/ic-calendar/test/a11y/ic-calendar.test.a11y.js +13 -0
  110. package/dist/collection/components/ic-calendar/test/a11y/ic-calendar.test.a11y.js.map +1 -0
  111. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +6 -6
  112. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -1
  113. package/dist/collection/components/ic-data-table/ic-data-table.js +7 -7
  114. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +3 -3
  115. package/dist/collection/components/ic-date-input/ic-date-input.js +8 -7
  116. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  117. package/dist/collection/components/ic-date-picker/ic-date-picker.css +7 -405
  118. package/dist/collection/components/ic-date-picker/ic-date-picker.js +145 -802
  119. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  120. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js +110 -0
  121. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js.map +1 -1
  122. package/dist/collection/components/ic-date-picker/story-data.js +5 -1
  123. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -1
  124. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +7 -7
  125. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  126. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.js +3 -3
  127. package/dist/collection/components/ic-time-input/ic-time-input.js +9 -8
  128. package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
  129. package/dist/collection/components/ic-tree-item/ic-tree-item.js +2 -2
  130. package/dist/collection/components/ic-tree-view/ic-tree-view.js +3 -3
  131. package/dist/collection/utils/date-helpers.js +3 -0
  132. package/dist/collection/utils/date-helpers.js.map +1 -1
  133. package/dist/collection/utils/types.js.map +1 -1
  134. package/dist/{esm/date-helpers-2b531c8c.js → components/date-helpers.js} +2 -2
  135. package/dist/components/date-helpers.js.map +1 -0
  136. package/dist/components/helpers2.js +20 -20
  137. package/dist/components/helpers2.js.map +1 -1
  138. package/dist/components/ic-calendar.d.ts +11 -0
  139. package/dist/components/ic-calendar.js +8 -0
  140. package/dist/components/ic-calendar.js.map +1 -0
  141. package/dist/components/ic-calendar2.js +1235 -0
  142. package/dist/components/ic-calendar2.js.map +1 -0
  143. package/dist/components/ic-card-horizontal.js +6 -6
  144. package/dist/components/ic-card-horizontal.js.map +1 -1
  145. package/dist/components/ic-checkbox-group.js +2 -2
  146. package/dist/components/ic-checkbox-group.js.map +1 -1
  147. package/dist/components/ic-checkbox2.js +31 -8
  148. package/dist/components/ic-checkbox2.js.map +1 -1
  149. package/dist/components/ic-data-list.js +2 -2
  150. package/dist/components/ic-data-list.js.map +1 -1
  151. package/dist/components/ic-data-row.js +2 -2
  152. package/dist/components/ic-data-row.js.map +1 -1
  153. package/dist/components/ic-data-table-title-bar.js +3 -3
  154. package/dist/components/ic-data-table.js +8 -8
  155. package/dist/components/ic-date-input2.js +6 -88
  156. package/dist/components/ic-date-input2.js.map +1 -1
  157. package/dist/components/ic-date-picker.js +113 -880
  158. package/dist/components/ic-date-picker.js.map +1 -1
  159. package/dist/components/ic-dialog.js +1 -1
  160. package/dist/components/ic-dialog.js.map +1 -1
  161. package/dist/components/ic-empty-state2.js +2 -2
  162. package/dist/components/ic-empty-state2.js.map +1 -1
  163. package/dist/components/ic-footer-link.js +2 -2
  164. package/dist/components/ic-footer-link.js.map +1 -1
  165. package/dist/components/ic-hero.js +12 -6
  166. package/dist/components/ic-hero.js.map +1 -1
  167. package/dist/components/ic-horizontal-scroll2.js +5 -5
  168. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  169. package/dist/components/ic-input-component-container2.js +3 -3
  170. package/dist/components/ic-input-component-container2.js.map +1 -1
  171. package/dist/components/ic-input-container2.js +2 -2
  172. package/dist/components/ic-input-container2.js.map +1 -1
  173. package/dist/components/ic-input-label2.js +2 -2
  174. package/dist/components/ic-input-label2.js.map +1 -1
  175. package/dist/components/ic-input-validation2.js +3 -3
  176. package/dist/components/ic-input-validation2.js.map +1 -1
  177. package/dist/components/ic-layout-grid-item.js +2 -2
  178. package/dist/components/ic-layout-grid-item.js.map +1 -1
  179. package/dist/components/ic-layout-grid.js +2 -2
  180. package/dist/components/ic-layout-grid.js.map +1 -1
  181. package/dist/components/ic-link2.js +1 -1
  182. package/dist/components/ic-link2.js.map +1 -1
  183. package/dist/components/ic-loading-indicator2.js +5 -5
  184. package/dist/components/ic-loading-indicator2.js.map +1 -1
  185. package/dist/components/ic-menu-group.js +1 -1
  186. package/dist/components/ic-menu-group.js.map +1 -1
  187. package/dist/components/ic-menu2.js +3 -3
  188. package/dist/components/ic-menu2.js.map +1 -1
  189. package/dist/components/ic-navigation-group.js +1 -1
  190. package/dist/components/ic-navigation-group.js.map +1 -1
  191. package/dist/components/ic-navigation-menu2.js +4 -4
  192. package/dist/components/ic-navigation-menu2.js.map +1 -1
  193. package/dist/components/ic-page-header.js +6 -6
  194. package/dist/components/ic-page-header.js.map +1 -1
  195. package/dist/components/ic-pagination-bar2.js +6 -6
  196. package/dist/components/ic-pagination-bar2.js.map +1 -1
  197. package/dist/components/ic-pagination-item2.js +1 -1
  198. package/dist/components/ic-pagination-item2.js.map +1 -1
  199. package/dist/components/ic-pagination2.js +4 -4
  200. package/dist/components/ic-pagination2.js.map +1 -1
  201. package/dist/components/ic-popover-menu.js +4 -4
  202. package/dist/components/ic-popover-menu.js.map +1 -1
  203. package/dist/components/ic-radio-group.js +4 -4
  204. package/dist/components/ic-radio-group.js.map +1 -1
  205. package/dist/components/ic-radio-option.js +4 -4
  206. package/dist/components/ic-radio-option.js.map +1 -1
  207. package/dist/components/ic-search-bar.js +9 -9
  208. package/dist/components/ic-search-bar.js.map +1 -1
  209. package/dist/components/ic-section-container2.js +2 -2
  210. package/dist/components/ic-section-container2.js.map +1 -1
  211. package/dist/components/ic-select2.js +7 -7
  212. package/dist/components/ic-select2.js.map +1 -1
  213. package/dist/components/ic-side-navigation.js +4 -4
  214. package/dist/components/ic-side-navigation.js.map +1 -1
  215. package/dist/components/ic-skeleton.js +2 -2
  216. package/dist/components/ic-skeleton.js.map +1 -1
  217. package/dist/components/ic-skip-link.js +2 -2
  218. package/dist/components/ic-skip-link.js.map +1 -1
  219. package/dist/components/ic-status-tag.js +2 -2
  220. package/dist/components/ic-status-tag.js.map +1 -1
  221. package/dist/components/ic-step.js +13 -13
  222. package/dist/components/ic-step.js.map +1 -1
  223. package/dist/components/ic-stepper.js +2 -2
  224. package/dist/components/ic-stepper.js.map +1 -1
  225. package/dist/components/ic-switch.js +4 -4
  226. package/dist/components/ic-switch.js.map +1 -1
  227. package/dist/components/ic-tab-context.js +1 -1
  228. package/dist/components/ic-tab-context.js.map +1 -1
  229. package/dist/components/ic-tab-group.js +2 -2
  230. package/dist/components/ic-tab-group.js.map +1 -1
  231. package/dist/components/ic-tab-panel.js +2 -2
  232. package/dist/components/ic-tab-panel.js.map +1 -1
  233. package/dist/components/ic-table-of-contents.js +3 -3
  234. package/dist/components/ic-text-field2.js +6 -6
  235. package/dist/components/ic-text-field2.js.map +1 -1
  236. package/dist/components/ic-theme.js +1 -1
  237. package/dist/components/ic-theme.js.map +1 -1
  238. package/dist/components/ic-time-input.js +5 -5
  239. package/dist/components/ic-time-input.js.map +1 -1
  240. package/dist/components/ic-toast-region.js +1 -1
  241. package/dist/components/ic-toast-region.js.map +1 -1
  242. package/dist/components/ic-toast.js +4 -4
  243. package/dist/components/ic-toast.js.map +1 -1
  244. package/dist/components/ic-toggle-button-group.js +2 -2
  245. package/dist/components/ic-toggle-button-group.js.map +1 -1
  246. package/dist/components/ic-toggle-button.js +2 -2
  247. package/dist/components/ic-toggle-button.js.map +1 -1
  248. package/dist/components/ic-tree-item.js +3 -3
  249. package/dist/components/ic-tree-view.js +4 -4
  250. package/dist/core/core.css +21 -9
  251. package/dist/core/core.esm.js +1 -1
  252. package/dist/core/core.esm.js.map +1 -1
  253. package/dist/core/{p-9fade6ad.entry.js → p-0043b019.entry.js} +2 -2
  254. package/dist/core/{p-9fade6ad.entry.js.map → p-0043b019.entry.js.map} +1 -1
  255. package/dist/core/{p-889bb8db.entry.js → p-04cb17d7.entry.js} +2 -2
  256. package/dist/core/{p-889bb8db.entry.js.map → p-04cb17d7.entry.js.map} +1 -1
  257. package/dist/core/{p-5ef453b6.entry.js → p-15c05eb8.entry.js} +2 -2
  258. package/dist/core/{p-5ef453b6.entry.js.map → p-15c05eb8.entry.js.map} +1 -1
  259. package/dist/core/p-1a976789.entry.js +2 -0
  260. package/dist/core/p-1a976789.entry.js.map +1 -0
  261. package/dist/core/{p-1be092cc.entry.js → p-2188b483.entry.js} +2 -2
  262. package/dist/core/{p-1be092cc.entry.js.map → p-2188b483.entry.js.map} +1 -1
  263. package/dist/core/{p-8c94541e.entry.js → p-24bac55f.entry.js} +2 -2
  264. package/dist/core/{p-8c94541e.entry.js.map → p-24bac55f.entry.js.map} +1 -1
  265. package/dist/core/{p-7f304d85.entry.js → p-2646a629.entry.js} +2 -2
  266. package/dist/core/{p-7f304d85.entry.js.map → p-2646a629.entry.js.map} +1 -1
  267. package/dist/core/{p-5cf704e3.entry.js → p-319e3d5b.entry.js} +2 -2
  268. package/dist/core/{p-5cf704e3.entry.js.map → p-319e3d5b.entry.js.map} +1 -1
  269. package/dist/core/{p-9e200827.entry.js → p-31f3fb15.entry.js} +2 -2
  270. package/dist/core/{p-9e200827.entry.js.map → p-31f3fb15.entry.js.map} +1 -1
  271. package/dist/core/{p-fd64c0e5.entry.js → p-3891ce53.entry.js} +2 -2
  272. package/dist/core/{p-fd64c0e5.entry.js.map → p-3891ce53.entry.js.map} +1 -1
  273. package/dist/core/{p-fad44bc8.entry.js → p-3ba2b455.entry.js} +2 -2
  274. package/dist/core/{p-fad44bc8.entry.js.map → p-3ba2b455.entry.js.map} +1 -1
  275. package/dist/core/{p-df220b91.entry.js → p-3ef2e98d.entry.js} +2 -2
  276. package/dist/core/{p-03ae0bc3.entry.js → p-41def410.entry.js} +2 -2
  277. package/dist/core/{p-03ae0bc3.entry.js.map → p-41def410.entry.js.map} +1 -1
  278. package/dist/core/p-4b188516.entry.js +2 -0
  279. package/dist/core/p-4b188516.entry.js.map +1 -0
  280. package/dist/core/{p-93e1ba0a.entry.js → p-5254a078.entry.js} +2 -2
  281. package/dist/core/{p-93e1ba0a.entry.js.map → p-5254a078.entry.js.map} +1 -1
  282. package/dist/core/{p-9c2e9189.entry.js → p-53740194.entry.js} +2 -2
  283. package/dist/core/{p-9c2e9189.entry.js.map → p-53740194.entry.js.map} +1 -1
  284. package/dist/core/{p-e380a54e.entry.js → p-5a4344cb.entry.js} +2 -2
  285. package/dist/core/{p-e380a54e.entry.js.map → p-5a4344cb.entry.js.map} +1 -1
  286. package/dist/core/p-5b32aaf3.entry.js +2 -0
  287. package/dist/core/p-5b32aaf3.entry.js.map +1 -0
  288. package/dist/core/{p-d8200098.entry.js → p-67c3985d.entry.js} +2 -2
  289. package/dist/core/{p-d8200098.entry.js.map → p-67c3985d.entry.js.map} +1 -1
  290. package/dist/core/{p-982a173d.entry.js → p-7332320d.entry.js} +2 -2
  291. package/dist/core/{p-982a173d.entry.js.map → p-7332320d.entry.js.map} +1 -1
  292. package/dist/core/{p-bc441e4c.js → p-75c3b882.js} +2 -2
  293. package/dist/core/{p-bc441e4c.js.map → p-75c3b882.js.map} +1 -1
  294. package/dist/core/{p-b88db5e3.entry.js → p-7a0f62c2.entry.js} +2 -2
  295. package/dist/core/{p-b88db5e3.entry.js.map → p-7a0f62c2.entry.js.map} +1 -1
  296. package/dist/core/p-81f12581.entry.js +2 -0
  297. package/dist/core/p-81f12581.entry.js.map +1 -0
  298. package/dist/core/{p-193afb53.entry.js → p-847cbb16.entry.js} +2 -2
  299. package/dist/core/{p-193afb53.entry.js.map → p-847cbb16.entry.js.map} +1 -1
  300. package/dist/core/{p-f3ccaa0b.entry.js → p-8e592393.entry.js} +2 -2
  301. package/dist/core/{p-f3ccaa0b.entry.js.map → p-8e592393.entry.js.map} +1 -1
  302. package/dist/core/p-9044539c.entry.js +2 -0
  303. package/dist/core/p-9044539c.entry.js.map +1 -0
  304. package/dist/core/{p-f4e7cae6.entry.js → p-90611726.entry.js} +2 -2
  305. package/dist/core/{p-f4e7cae6.entry.js.map → p-90611726.entry.js.map} +1 -1
  306. package/dist/core/{p-b00efb15.entry.js → p-9674b63f.entry.js} +2 -2
  307. package/dist/core/{p-b00efb15.entry.js.map → p-9674b63f.entry.js.map} +1 -1
  308. package/dist/core/{p-a27e1cee.entry.js → p-9a95f428.entry.js} +2 -2
  309. package/dist/core/{p-a27e1cee.entry.js.map → p-9a95f428.entry.js.map} +1 -1
  310. package/dist/core/{p-fb43abd6.entry.js → p-9ca147f3.entry.js} +2 -2
  311. package/dist/core/{p-fb43abd6.entry.js.map → p-9ca147f3.entry.js.map} +1 -1
  312. package/dist/core/{p-a8cc28a6.entry.js → p-9f76eed6.entry.js} +2 -2
  313. package/dist/core/{p-035dbee0.entry.js → p-a1448064.entry.js} +2 -2
  314. package/dist/core/{p-035dbee0.entry.js.map → p-a1448064.entry.js.map} +1 -1
  315. package/dist/core/{p-9ce9d39a.entry.js → p-a237af88.entry.js} +2 -2
  316. package/dist/core/{p-9ce9d39a.entry.js.map → p-a237af88.entry.js.map} +1 -1
  317. package/dist/core/{p-09c31ac6.entry.js → p-adde6c66.entry.js} +2 -2
  318. package/dist/core/{p-09c31ac6.entry.js.map → p-adde6c66.entry.js.map} +1 -1
  319. package/dist/core/{p-72b7051a.entry.js → p-af821831.entry.js} +2 -2
  320. package/dist/core/{p-72b7051a.entry.js.map → p-af821831.entry.js.map} +1 -1
  321. package/dist/core/{p-12e8dcdd.entry.js → p-afedcfdb.entry.js} +2 -2
  322. package/dist/core/{p-12e8dcdd.entry.js.map → p-afedcfdb.entry.js.map} +1 -1
  323. package/dist/core/{p-f098e531.entry.js → p-b4a2f6fa.entry.js} +2 -2
  324. package/dist/core/{p-f098e531.entry.js.map → p-b4a2f6fa.entry.js.map} +1 -1
  325. package/dist/core/p-b4bfaf8f.entry.js +2 -0
  326. package/dist/core/p-b4bfaf8f.entry.js.map +1 -0
  327. package/dist/core/{p-ea1de762.entry.js → p-b80b08ae.entry.js} +2 -2
  328. package/dist/core/p-b80b08ae.entry.js.map +1 -0
  329. package/dist/core/{p-7bf9bbde.entry.js → p-ba21f477.entry.js} +2 -2
  330. package/dist/core/{p-7bf9bbde.entry.js.map → p-ba21f477.entry.js.map} +1 -1
  331. package/dist/core/{p-63203e59.entry.js → p-ba75ed34.entry.js} +2 -2
  332. package/dist/core/{p-63203e59.entry.js.map → p-ba75ed34.entry.js.map} +1 -1
  333. package/dist/core/{p-15a81f32.entry.js → p-bd9a76d8.entry.js} +2 -2
  334. package/dist/core/{p-15a81f32.entry.js.map → p-bd9a76d8.entry.js.map} +1 -1
  335. package/dist/core/{p-10950727.entry.js → p-c3eddb99.entry.js} +2 -2
  336. package/dist/core/{p-10950727.entry.js.map → p-c3eddb99.entry.js.map} +1 -1
  337. package/dist/core/{p-a99ad459.entry.js → p-c5d65718.entry.js} +2 -2
  338. package/dist/core/{p-a99ad459.entry.js.map → p-c5d65718.entry.js.map} +1 -1
  339. package/dist/core/{p-eb958cc8.entry.js → p-c6c87e58.entry.js} +2 -2
  340. package/dist/core/{p-eb958cc8.entry.js.map → p-c6c87e58.entry.js.map} +1 -1
  341. package/dist/core/{p-c8ce7d60.entry.js → p-e00e67ff.entry.js} +2 -2
  342. package/dist/core/{p-c8ce7d60.entry.js.map → p-e00e67ff.entry.js.map} +1 -1
  343. package/dist/core/{p-069e758b.entry.js → p-e1920777.entry.js} +2 -2
  344. package/dist/core/{p-92936b49.entry.js → p-ef5b6622.entry.js} +2 -2
  345. package/dist/core/{p-0f22f41e.js → p-f48ce5f6.js} +2 -2
  346. package/dist/core/p-f48ce5f6.js.map +1 -0
  347. package/dist/core/{p-1ca62941.entry.js → p-f5cea10d.entry.js} +2 -2
  348. package/dist/esm/core.js +1 -1
  349. package/dist/esm/date-helpers-5723de08.js +86 -0
  350. package/dist/esm/{date-helpers-2b531c8c.js.map → date-helpers-5723de08.js.map} +1 -1
  351. package/dist/esm/{helpers-89cb996d.js → helpers-9f228880.js} +21 -21
  352. package/dist/esm/helpers-9f228880.js.map +1 -0
  353. package/dist/esm/ic-button_3.entry.js +5 -5
  354. package/dist/esm/ic-button_3.entry.js.map +1 -1
  355. package/dist/esm/ic-calendar_2.entry.js +2349 -0
  356. package/dist/esm/ic-calendar_2.entry.js.map +1 -0
  357. package/dist/esm/ic-card-horizontal.entry.js +6 -6
  358. package/dist/esm/ic-card-horizontal.entry.js.map +1 -1
  359. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  360. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  361. package/dist/esm/ic-checkbox_3.entry.js +39 -16
  362. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  363. package/dist/esm/ic-data-list.entry.js +2 -2
  364. package/dist/esm/ic-data-list.entry.js.map +1 -1
  365. package/dist/esm/ic-data-row.entry.js +2 -2
  366. package/dist/esm/ic-data-row.entry.js.map +1 -1
  367. package/dist/esm/ic-data-table-title-bar.entry.js +4 -4
  368. package/dist/esm/ic-data-table.entry.js +8 -8
  369. package/dist/esm/ic-date-picker.entry.js +100 -856
  370. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  371. package/dist/esm/ic-dialog.entry.js +1 -1
  372. package/dist/esm/ic-dialog.entry.js.map +1 -1
  373. package/dist/esm/ic-footer-link.entry.js +2 -2
  374. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  375. package/dist/esm/ic-hero.entry.js +11 -6
  376. package/dist/esm/ic-hero.entry.js.map +1 -1
  377. package/dist/esm/ic-horizontal-scroll.entry.js +5 -5
  378. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  379. package/dist/esm/ic-input-component-container_4.entry.js +10 -10
  380. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
  381. package/dist/esm/ic-layout-grid-item.entry.js +2 -2
  382. package/dist/esm/ic-layout-grid-item.entry.js.map +1 -1
  383. package/dist/esm/ic-layout-grid.entry.js +2 -2
  384. package/dist/esm/ic-layout-grid.entry.js.map +1 -1
  385. package/dist/esm/ic-link.entry.js +1 -1
  386. package/dist/esm/ic-link.entry.js.map +1 -1
  387. package/dist/esm/ic-menu-group.entry.js +1 -1
  388. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  389. package/dist/esm/ic-menu.entry.js +3 -3
  390. package/dist/esm/ic-menu.entry.js.map +1 -1
  391. package/dist/esm/ic-navigation-group.entry.js +1 -1
  392. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  393. package/dist/esm/ic-navigation-menu.entry.js +4 -4
  394. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  395. package/dist/esm/ic-page-header.entry.js +6 -6
  396. package/dist/esm/ic-page-header.entry.js.map +1 -1
  397. package/dist/esm/ic-pagination_4.entry.js +18 -18
  398. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  399. package/dist/esm/ic-popover-menu.entry.js +4 -4
  400. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  401. package/dist/esm/ic-radio-group.entry.js +4 -4
  402. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  403. package/dist/esm/ic-radio-option.entry.js +4 -4
  404. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  405. package/dist/esm/ic-search-bar.entry.js +9 -9
  406. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  407. package/dist/esm/ic-section-container.entry.js +2 -2
  408. package/dist/esm/ic-section-container.entry.js.map +1 -1
  409. package/dist/esm/ic-side-navigation.entry.js +4 -4
  410. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  411. package/dist/esm/ic-skeleton.entry.js +2 -2
  412. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  413. package/dist/esm/ic-skip-link.entry.js +2 -2
  414. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  415. package/dist/esm/ic-status-tag.entry.js +2 -2
  416. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  417. package/dist/esm/ic-step.entry.js +13 -13
  418. package/dist/esm/ic-step.entry.js.map +1 -1
  419. package/dist/esm/ic-stepper.entry.js +2 -2
  420. package/dist/esm/ic-stepper.entry.js.map +1 -1
  421. package/dist/esm/ic-switch.entry.js +4 -4
  422. package/dist/esm/ic-switch.entry.js.map +1 -1
  423. package/dist/esm/ic-tab-context.entry.js +1 -1
  424. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  425. package/dist/esm/ic-tab-group.entry.js +2 -2
  426. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  427. package/dist/esm/ic-tab-panel.entry.js +2 -2
  428. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  429. package/dist/esm/ic-table-of-contents.entry.js +4 -4
  430. package/dist/esm/ic-theme.entry.js +1 -1
  431. package/dist/esm/ic-theme.entry.js.map +1 -1
  432. package/dist/esm/ic-time-input.entry.js +5 -5
  433. package/dist/esm/ic-time-input.entry.js.map +1 -1
  434. package/dist/esm/ic-toast-region.entry.js +1 -1
  435. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  436. package/dist/esm/ic-toast.entry.js +4 -4
  437. package/dist/esm/ic-toast.entry.js.map +1 -1
  438. package/dist/esm/ic-toggle-button-group.entry.js +2 -2
  439. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  440. package/dist/esm/ic-toggle-button.entry.js +2 -2
  441. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  442. package/dist/esm/ic-tree-item.entry.js +3 -3
  443. package/dist/esm/ic-tree-view.entry.js +4 -4
  444. package/dist/esm/index-a7a720e7.js +4 -4
  445. package/dist/esm/loader.js +1 -1
  446. package/dist/types/components/ic-calendar/ic-calendar.d.ts +216 -0
  447. package/dist/types/components/ic-calendar/ic-calendar.stories.d.ts +151 -0
  448. package/dist/types/components/ic-calendar/test/a11y/ic-calendar.test.a11y.d.ts +1 -0
  449. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +1 -2
  450. package/dist/types/components/ic-date-input/ic-date-input.d.ts +2 -2
  451. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +22 -105
  452. package/dist/types/components/ic-date-picker/ic-date-picker.stories.d.ts +81 -0
  453. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +1 -1
  454. package/dist/types/components/ic-time-input/ic-time-input.d.ts +2 -2
  455. package/dist/types/components.d.ts +213 -14
  456. package/dist/types/utils/date-helpers.d.ts +1 -0
  457. package/dist/types/utils/types.d.ts +1 -0
  458. package/hydrate/index.js +2085 -1639
  459. package/hydrate/index.mjs +2085 -1639
  460. package/package.json +3 -3
  461. package/dist/cjs/helpers-da852478.js.map +0 -1
  462. package/dist/cjs/ic-date-input.cjs.entry.js +0 -1214
  463. package/dist/cjs/ic-date-input.cjs.entry.js.map +0 -1
  464. package/dist/collection/components/ic-date-picker/ic-day-button.js.map +0 -1
  465. package/dist/collection/components/ic-date-picker/ic-month-picker.js +0 -29
  466. package/dist/collection/components/ic-date-picker/ic-month-picker.js.map +0 -1
  467. package/dist/collection/components/ic-date-picker/ic-year-picker.js +0 -39
  468. package/dist/collection/components/ic-date-picker/ic-year-picker.js.map +0 -1
  469. package/dist/core/p-0f22f41e.js.map +0 -1
  470. package/dist/core/p-13c8859b.entry.js +0 -2
  471. package/dist/core/p-13c8859b.entry.js.map +0 -1
  472. package/dist/core/p-2528ecec.entry.js +0 -2
  473. package/dist/core/p-2528ecec.entry.js.map +0 -1
  474. package/dist/core/p-402870f7.entry.js +0 -2
  475. package/dist/core/p-402870f7.entry.js.map +0 -1
  476. package/dist/core/p-bd8c2e24.entry.js +0 -2
  477. package/dist/core/p-bd8c2e24.entry.js.map +0 -1
  478. package/dist/core/p-c0d4db72.entry.js +0 -2
  479. package/dist/core/p-c0d4db72.entry.js.map +0 -1
  480. package/dist/core/p-ea1de762.entry.js.map +0 -1
  481. package/dist/core/p-f16c4210.entry.js +0 -2
  482. package/dist/core/p-f16c4210.entry.js.map +0 -1
  483. package/dist/esm/helpers-89cb996d.js.map +0 -1
  484. package/dist/esm/ic-date-input.entry.js +0 -1210
  485. package/dist/esm/ic-date-input.entry.js.map +0 -1
  486. /package/dist/collection/components/{ic-date-picker → ic-calendar}/ic-day-button.js +0 -0
  487. /package/dist/core/{p-df220b91.entry.js.map → p-3ef2e98d.entry.js.map} +0 -0
  488. /package/dist/core/{p-a8cc28a6.entry.js.map → p-9f76eed6.entry.js.map} +0 -0
  489. /package/dist/core/{p-069e758b.entry.js.map → p-e1920777.entry.js.map} +0 -0
  490. /package/dist/core/{p-92936b49.entry.js.map → p-ef5b6622.entry.js.map} +0 -0
  491. /package/dist/core/{p-1ca62941.entry.js.map → p-f5cea10d.entry.js.map} +0 -0
  492. /package/dist/types/components/{ic-date-picker → ic-calendar}/ic-day-button.d.ts +0 -0
  493. /package/dist/types/components/{ic-date-picker → ic-calendar}/ic-month-picker.d.ts +0 -0
  494. /package/dist/types/components/{ic-date-picker → ic-calendar}/ic-year-picker.d.ts +0 -0
@@ -0,0 +1,1542 @@
1
+ import { Host, h, } from "@stencil/core";
2
+ import { IcDateInputMonths, IcShortDayNames, IcWeekDays, } from "../../utils/types";
3
+ import { addSixWeeks, clampDate, convertToDoubleDigits, createDate, dateInRange, dateMatches, getMonthStart, getMonthEnd, getWeekStart, yearInRange, } from "../../utils/date-helpers";
4
+ import chevron from "../../assets/chevron-icon.svg";
5
+ import { DayButton } from "./ic-day-button";
6
+ import { MonthPicker } from "./ic-month-picker";
7
+ import { YearPicker } from "./ic-year-picker";
8
+ import { removeDisabledFalse, stringEnumToArray } from "../../utils/helpers";
9
+ const FOCUS_TIMER = 100;
10
+ export class Calendar {
11
+ constructor() {
12
+ this.daysOfWeek = [];
13
+ this.dayButtonFocussed = false;
14
+ this.dayPickerKeyboardNav = false;
15
+ this.dialogDescription = "";
16
+ this.focusDay = true;
17
+ this.liveRegionEl = undefined;
18
+ this.monthNames = [];
19
+ this.monthInViewUpdateHandled = false;
20
+ this.parentIsDatePicker = false;
21
+ this.today = new Date();
22
+ this.yearButtonFocussed = false;
23
+ this.clearButtonClicked = false;
24
+ this.currMonthView = [];
25
+ this.currYearPickerView = [];
26
+ this.decadeView = [];
27
+ this.focussedDate = null;
28
+ this.maxDate = null;
29
+ this.minDate = null;
30
+ this.monthPickerVisible = false;
31
+ this.orderedDaysOfWeek = [];
32
+ this.selectedDate = null;
33
+ this.yearPickerVisible = false;
34
+ /**
35
+ * The format in which the date will be displayed.
36
+ */
37
+ this.dateFormat = "DD/MM/YYYY";
38
+ /**
39
+ * If `true`, the disabled state will be set.
40
+ */
41
+ this.disabled = false;
42
+ /**
43
+ * The days of the week to disable.
44
+ */
45
+ this.disableDays = [];
46
+ /**
47
+ * If `true`, dates in the future are not allowed.
48
+ */
49
+ this.disableFuture = false;
50
+ /**
51
+ * If `true`, dates in the past are not allowed.
52
+ */
53
+ this.disablePast = false;
54
+ /**
55
+ * 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.
56
+ * The value of this prop is ignored if `disableFuture` is set to `true`.
57
+ */
58
+ this.max = "";
59
+ /**
60
+ * 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.
61
+ * The value of this prop is ignored if `disablePast` is set to `true`.
62
+ */
63
+ this.min = "";
64
+ /**
65
+ * The date visible when the calendar opens. Used if no date is currently selected.
66
+ * 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.
67
+ */
68
+ this.openAtDate = "";
69
+ /**
70
+ * If `true`, the `Clear` button on the calendar will be visible.
71
+ */
72
+ this.showClearButton = true;
73
+ /**
74
+ * If `true`, days outside the current month will be visible in the calendar.
75
+ */
76
+ this.showDaysOutsideMonth = true;
77
+ /**
78
+ * If `true`, the `Go to today` button on the calendar will be visible.
79
+ */
80
+ this.showTodayButton = true;
81
+ /**
82
+ * The size of the calendar to be displayed.
83
+ */
84
+ this.size = "medium";
85
+ /**
86
+ * The first day of the week. `0` for Sunday, `1` for Monday, etc.
87
+ * Default is Monday.
88
+ */
89
+ this.startOfWeek = IcWeekDays.Monday;
90
+ /**
91
+ * Sets the calendar to the dark or light theme colors. "inherit" will set the color based on the system settings or ic-theme component.
92
+ */
93
+ this.theme = "inherit";
94
+ /**
95
+ * The value of the calendar and the date visible when the calendar opens.
96
+ * 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.
97
+ */
98
+ this.value = "";
99
+ this.isValidDateValue = (value) => {
100
+ if (value == null)
101
+ return true;
102
+ if (value instanceof Date) {
103
+ return !isNaN(value.getTime());
104
+ }
105
+ if (typeof value !== "string")
106
+ return false;
107
+ const iso8601Regex = /^\d{4}-\d{2}-\d{2}(?:[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?)?$/;
108
+ if (iso8601Regex.test(value)) {
109
+ return !isNaN(Date.parse(value));
110
+ }
111
+ const [a, b, c] = value.split("/").map(Number);
112
+ if ([a, b, c].some(isNaN))
113
+ return false;
114
+ let day, month, year;
115
+ switch (this.dateFormat) {
116
+ case "DD/MM/YYYY":
117
+ [day, month, year] = [a, b, c];
118
+ break;
119
+ case "MM/DD/YYYY":
120
+ [month, day, year] = [a, b, c];
121
+ break;
122
+ case "YYYY/MM/DD":
123
+ [year, month, day] = [a, b, c];
124
+ break;
125
+ default:
126
+ return false;
127
+ }
128
+ if (month < 1 || month > 12 || day < 1 || day > 31)
129
+ return false;
130
+ const date = new Date(year, month - 1, day);
131
+ return (date.getFullYear() === year &&
132
+ date.getMonth() === month - 1 &&
133
+ date.getDate() === day);
134
+ };
135
+ this.isPresent = (prop) => prop !== "" && prop !== undefined && prop !== null;
136
+ this.setOpenAtDate = () => {
137
+ var _a;
138
+ let openAt = null;
139
+ if (this.disabled) {
140
+ openAt = new Date();
141
+ }
142
+ else {
143
+ if (this.clearButtonClicked) {
144
+ openAt = this.focussedDate ? this.focussedDate : new Date();
145
+ this.clearButtonClicked = false;
146
+ }
147
+ else {
148
+ if (!this.disabled &&
149
+ this.value != null &&
150
+ this.isValidDateValue(this.value)) {
151
+ openAt = createDate(this.value, this.dateFormat);
152
+ }
153
+ if (!!openAt && dateInRange(openAt, this.minDate, this.maxDate)) {
154
+ const selectedDay = openAt.getDay();
155
+ if (!!this.disableDays &&
156
+ this.disableDays.length > 0 &&
157
+ typeof selectedDay == "number" &&
158
+ this.disableDays.includes(selectedDay)) {
159
+ openAt = createDate((_a = this.value) !== null && _a !== void 0 ? _a : new Date(), this.dateFormat);
160
+ this.setSelectedDate(null);
161
+ }
162
+ else {
163
+ this.setSelectedDate(openAt);
164
+ }
165
+ }
166
+ else if (this.isPresent(this.openAtDate)) {
167
+ openAt = createDate(this.openAtDate, this.dateFormat);
168
+ }
169
+ else {
170
+ openAt = new Date();
171
+ }
172
+ }
173
+ }
174
+ this.setFocussedDate(openAt);
175
+ this.updateMonthInView();
176
+ let dialogDesc = this.getMonthInViewText();
177
+ if (this.selectedDate === null) {
178
+ dialogDesc += " No date selected.";
179
+ }
180
+ dialogDesc += ` Use arrow keys to change day. Press enter or space to select a date${this.parentIsDatePicker ? " or press escape to close the picker" : ""}.`;
181
+ this.dialogDescription = dialogDesc;
182
+ setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);
183
+ };
184
+ /* Refs & setters */
185
+ this.setFocussedDayEl = (element) => {
186
+ this.focussedDayEl = element;
187
+ };
188
+ this.setFocussedMonthEl = (element) => {
189
+ this.focussedMonthEl = element;
190
+ };
191
+ this.setFocussedYearEl = (element) => {
192
+ this.focussedYearEl = element;
193
+ };
194
+ this.setFocussedYear = (newYear, focus = true) => {
195
+ const prevYear = this.focussedYear;
196
+ this.focussedYear = newYear;
197
+ if (this.yearPickerVisible) {
198
+ const newDecade = Math.floor(newYear / 10) * 10;
199
+ const oldDecade = Math.floor(prevYear / 10) * 10;
200
+ if (newDecade !== oldDecade) {
201
+ this.setDecadeView(newDecade);
202
+ this.setAriaLiveRegionText(this.getDecadeInViewText());
203
+ }
204
+ if (focus) {
205
+ setTimeout(() => {
206
+ if (this.focussedYearEl !== null)
207
+ this.focussedYearEl.setFocus();
208
+ }, FOCUS_TIMER);
209
+ }
210
+ }
211
+ else {
212
+ this.setDecadeView(Math.floor(newYear / 10) * 10);
213
+ }
214
+ };
215
+ this.setFocussedDate = (d) => {
216
+ this.focussedDate = clampDate(d, this.minDate, this.maxDate);
217
+ };
218
+ this.setSelectedDate = (d, emit = true) => {
219
+ if (d === null || !dateMatches(d, this.selectedDate)) {
220
+ this.selectedDate = d;
221
+ this.value = d;
222
+ if (emit) {
223
+ this.icChange.emit(this.setDateChangeEventDetail(d));
224
+ }
225
+ }
226
+ };
227
+ this.setDateChangeEventDetail = (d) => {
228
+ let UTCDate = null;
229
+ let day = null;
230
+ let month = null;
231
+ let year = null;
232
+ if (d !== null) {
233
+ UTCDate = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
234
+ day = convertToDoubleDigits(d.getDate());
235
+ month = convertToDoubleDigits(d.getMonth() + 1);
236
+ year = d.getFullYear().toString();
237
+ }
238
+ return {
239
+ value: d,
240
+ dateObject: {
241
+ day: day === "" ? null : day,
242
+ month: month === "" ? null : month,
243
+ year: year === "" ? null : year,
244
+ },
245
+ utcValue: UTCDate,
246
+ };
247
+ };
248
+ this.setAriaLiveRegionText = (text) => {
249
+ this.liveRegionEl && (this.liveRegionEl.innerText = text);
250
+ };
251
+ /* Navigation helpers */
252
+ this.goToPreviousMonth = (focusDay = false) => {
253
+ this.focusDay = focusDay;
254
+ this.moveMonths(-1);
255
+ };
256
+ this.goToNextMonth = (focusDay = false) => {
257
+ this.focusDay = focusDay;
258
+ this.moveMonths(1);
259
+ };
260
+ this.goToPreviousYear = (focusDay = false) => {
261
+ if (this.isPrevYearAllowed()) {
262
+ this.focusDay = focusDay;
263
+ this.moveYears(-1);
264
+ }
265
+ };
266
+ this.goToNextYear = (focusDay = false) => {
267
+ if (this.isNextYearAllowed()) {
268
+ this.focusDay = focusDay;
269
+ this.moveYears(1);
270
+ }
271
+ };
272
+ this.moveDays = (numDays) => {
273
+ if (this.focussedDate) {
274
+ const d = new Date(this.focussedDate);
275
+ d.setDate(d.getDate() + numDays);
276
+ this.setFocussedDate(d);
277
+ }
278
+ };
279
+ this.moveMonths = (numMonths) => {
280
+ if (this.focussedDate) {
281
+ const newMonth = this.focussedDate.getMonth() + numMonths;
282
+ const min = new Date(new Date(getMonthStart(this.focussedDate)).setMonth(newMonth));
283
+ const max = getMonthEnd(min);
284
+ const newDate = new Date(new Date(this.focussedDate).setMonth(newMonth));
285
+ this.setFocussedDate(clampDate(newDate, min, max));
286
+ if (this.monthPickerVisible === false &&
287
+ this.yearPickerVisible === false &&
288
+ this.monthInViewUpdateHandled === false) {
289
+ this.setAriaLiveRegionText(this.getMonthInViewText());
290
+ }
291
+ this.monthInViewUpdateHandled = false;
292
+ }
293
+ };
294
+ this.moveYears = (numYears) => {
295
+ if (this.focussedDate) {
296
+ const newYear = this.focussedDate.getFullYear() + numYears;
297
+ const min = new Date(new Date(getMonthStart(this.focussedDate)).setFullYear(newYear));
298
+ const max = getMonthEnd(min);
299
+ const newDate = new Date(new Date(this.focussedDate).setFullYear(newYear));
300
+ this.setFocussedDate(clampDate(newDate, min, max));
301
+ if (this.monthPickerVisible === false &&
302
+ this.yearPickerVisible === false &&
303
+ this.monthInViewUpdateHandled === false) {
304
+ this.setAriaLiveRegionText(this.getMonthInViewText());
305
+ }
306
+ this.monthInViewUpdateHandled = false;
307
+ }
308
+ };
309
+ this.updateFocussedMonth = (adjust) => {
310
+ const d = new Date(this.focussedYear, this.focussedMonth, 1);
311
+ d.setMonth(this.focussedMonth + adjust);
312
+ const newDate = clampDate(d, this.minDate, this.maxDate);
313
+ this.focussedMonth = newDate.getMonth();
314
+ setTimeout(() => this.focussedMonthEl.setFocus(), FOCUS_TIMER);
315
+ };
316
+ this.updateFocussedYear = (adjust, focusYear = true) => {
317
+ const d = new Date(new Date().setFullYear(this.focussedYear + adjust));
318
+ const newDate = clampDate(d, this.minDate, this.maxDate);
319
+ this.setFocussedYear(newDate.getFullYear(), focusYear);
320
+ };
321
+ this.getNextDayToFocus = (currDay, forward, level = 1) => {
322
+ var _a;
323
+ const move = forward ? 1 : -1;
324
+ const nextDay = new Date(currDay);
325
+ nextDay.setDate(nextDay.getDate() + move);
326
+ return ((_a = this.disableDays) === null || _a === void 0 ? void 0 : _a.includes(Number(nextDay.getDay())))
327
+ ? this.getNextDayToFocus(nextDay, forward, level + 1)
328
+ : level;
329
+ };
330
+ /* Focus helpers */
331
+ this.focusFirstElement = () => {
332
+ var _a;
333
+ (_a = this.monthButtonEl) === null || _a === void 0 ? void 0 : _a.setFocus();
334
+ };
335
+ this.focusLastElement = () => {
336
+ if (this.showClearButton &&
337
+ this.clearButtonEl &&
338
+ !this.clearButtonEl.disabled) {
339
+ this.clearButtonEl.setFocus();
340
+ }
341
+ else if (this.showTodayButton &&
342
+ this.todayButtonEl &&
343
+ !this.todayButtonEl.disabled) {
344
+ this.todayButtonEl.setFocus();
345
+ }
346
+ else if (this.monthPickerVisible) {
347
+ this.focussedMonthEl.setFocus();
348
+ }
349
+ else if (this.yearPickerVisible) {
350
+ this.focussedYearEl.setFocus();
351
+ }
352
+ else {
353
+ this.focussedDayEl.focus();
354
+ }
355
+ };
356
+ this.focusFocussedDay = () => {
357
+ this.focussedDayEl.focus();
358
+ };
359
+ /* Click handlers */
360
+ this.monthButtonClickHandler = () => {
361
+ this.yearPickerVisible = false;
362
+ this.focusDay = false;
363
+ this.monthPickerVisible = !this.monthPickerVisible;
364
+ if (this.monthPickerVisible) {
365
+ this.setAriaLiveRegionText("Month picker view open");
366
+ }
367
+ else {
368
+ this.setMonthSelectedLiveRegionText();
369
+ this.icCalendarMonthSelect.emit();
370
+ }
371
+ };
372
+ this.yearButtonClickHandler = () => {
373
+ this.monthPickerVisible = false;
374
+ this.focusDay = false;
375
+ this.yearPickerVisible = !this.yearPickerVisible;
376
+ if (this.yearPickerVisible) {
377
+ this.setAriaLiveRegionText(`Year picker view open. ${this.getDecadeInViewText()}`);
378
+ }
379
+ else {
380
+ this.setYearSelectedLiveRegionText();
381
+ this.icCalendarYearSelect.emit();
382
+ }
383
+ };
384
+ this.todayButtonClickHandler = () => {
385
+ this.yearPickerVisible = false;
386
+ this.monthPickerVisible = false;
387
+ this.setFocussedDate(new Date());
388
+ this.setAriaLiveRegionText(this.getMonthInViewText());
389
+ setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);
390
+ };
391
+ this.clearButtonClickHandler = () => {
392
+ this.clearButtonClicked = true;
393
+ this.selectedDate && this.setFocussedDate(this.selectedDate);
394
+ this.setSelectedDate(null);
395
+ this.icChange.emit(this.setDateChangeEventDetail(this.selectedDate));
396
+ let text = "Selected date cleared.";
397
+ if (!this.monthPickerVisible && !this.yearPickerVisible) {
398
+ text += ` ${this.getMonthInViewText()}`;
399
+ }
400
+ if (this.monthPickerVisible) {
401
+ this.focussedMonthEl.setFocus();
402
+ }
403
+ else if (this.yearPickerVisible) {
404
+ this.focussedYearEl.setFocus();
405
+ }
406
+ else {
407
+ this.focusFocussedDay();
408
+ }
409
+ this.setAriaLiveRegionText(text);
410
+ };
411
+ this.monthYearNavClickHandler = (ev) => {
412
+ const target = ev.target;
413
+ switch (target.id) {
414
+ case "previous-month-button":
415
+ this.goToPreviousMonth(this.dayButtonFocussed);
416
+ break;
417
+ case "next-month-button":
418
+ this.goToNextMonth(this.dayButtonFocussed);
419
+ break;
420
+ case "previous-year-button":
421
+ this.goToPreviousYear(this.dayButtonFocussed);
422
+ break;
423
+ case "next-year-button":
424
+ this.goToNextYear(this.dayButtonFocussed);
425
+ break;
426
+ }
427
+ };
428
+ this.handleCalendarClick = (event) => {
429
+ this.clearDialogDescription();
430
+ event.stopImmediatePropagation();
431
+ };
432
+ /* Keyboard handlers */
433
+ this.handleCalendarKeyDown = (ev) => {
434
+ let handled = true;
435
+ switch (ev.key) {
436
+ case "ArrowDown":
437
+ this.dayPickerKeyboardNav = true;
438
+ this.moveDays(7);
439
+ break;
440
+ case "ArrowUp":
441
+ this.dayPickerKeyboardNav = true;
442
+ this.moveDays(-7);
443
+ break;
444
+ case "ArrowLeft":
445
+ this.dayPickerKeyboardNav = true;
446
+ if (this.focussedDate)
447
+ this.moveDays(-1 * this.getNextDayToFocus(this.focussedDate, false));
448
+ break;
449
+ case "ArrowRight":
450
+ this.dayPickerKeyboardNav = true;
451
+ if (this.focussedDate)
452
+ this.moveDays(this.getNextDayToFocus(this.focussedDate, true));
453
+ break;
454
+ case "PageUp":
455
+ this.dayPickerKeyboardNav = true;
456
+ ev.shiftKey ? this.moveYears(-1) : this.moveMonths(-1);
457
+ break;
458
+ case "PageDown":
459
+ this.dayPickerKeyboardNav = true;
460
+ ev.shiftKey ? this.moveYears(1) : this.moveMonths(1);
461
+ break;
462
+ case "Home":
463
+ this.dayPickerKeyboardNav = true;
464
+ this.setFocussedDate(new Date(this.focussedYear, this.focussedMonth, 1));
465
+ break;
466
+ case "End":
467
+ this.dayPickerKeyboardNav = true;
468
+ this.setFocussedDate(new Date(this.focussedYear, this.focussedMonth + 1, 0));
469
+ break;
470
+ case "Tab":
471
+ handled = this.calendarTabHandler(ev);
472
+ break;
473
+ default:
474
+ handled = false;
475
+ break;
476
+ }
477
+ if (handled) {
478
+ ev.preventDefault();
479
+ }
480
+ };
481
+ this.monthPickerKeyDownHandler = (ev) => {
482
+ let handled = true;
483
+ switch (ev.key) {
484
+ case "ArrowUp":
485
+ case "ArrowLeft":
486
+ this.updateFocussedMonth(-1);
487
+ break;
488
+ case "ArrowDown":
489
+ case "ArrowRight":
490
+ this.updateFocussedMonth(1);
491
+ break;
492
+ case "Home":
493
+ this.updateFocussedMonth(-this.focussedMonth);
494
+ break;
495
+ case "End":
496
+ this.updateFocussedMonth(11 - this.focussedMonth);
497
+ break;
498
+ case "Tab":
499
+ handled = this.calendarTabHandler(ev);
500
+ break;
501
+ case "Escape":
502
+ ev.stopImmediatePropagation();
503
+ this.monthPickerVisible = false;
504
+ setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);
505
+ break;
506
+ default:
507
+ handled = false;
508
+ }
509
+ if (handled) {
510
+ ev.preventDefault();
511
+ }
512
+ };
513
+ this.yearPickerKeyDownHandler = (ev) => {
514
+ let handled = true;
515
+ switch (ev.key) {
516
+ case "ArrowUp":
517
+ case "ArrowLeft":
518
+ this.updateFocussedYear(-1);
519
+ break;
520
+ case "ArrowDown":
521
+ case "ArrowRight":
522
+ this.updateFocussedYear(1);
523
+ break;
524
+ case "Home":
525
+ if (this.focussedYear > this.decadeStart) {
526
+ this.updateFocussedYear(this.decadeStart - this.focussedYear);
527
+ }
528
+ break;
529
+ case "End":
530
+ if (this.focussedYear < this.decadeEnd) {
531
+ this.updateFocussedYear(this.decadeEnd - this.focussedYear);
532
+ }
533
+ break;
534
+ case "PageUp":
535
+ this.updateFocussedYear(-10);
536
+ break;
537
+ case "PageDown":
538
+ this.updateFocussedYear(10);
539
+ break;
540
+ case "Tab":
541
+ handled = this.calendarTabHandler(ev);
542
+ break;
543
+ case "Escape":
544
+ ev.stopImmediatePropagation();
545
+ this.yearPickerVisible = false;
546
+ setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);
547
+ break;
548
+ default:
549
+ handled = false;
550
+ }
551
+ if (handled) {
552
+ ev.preventDefault();
553
+ }
554
+ };
555
+ this.monthButtonKeyDownHandler = (ev) => {
556
+ let handled = false;
557
+ switch (ev.key) {
558
+ case "ArrowLeft":
559
+ case "ArrowUp":
560
+ handled = true;
561
+ this.goToPreviousMonth();
562
+ break;
563
+ case "ArrowRight":
564
+ case "ArrowDown":
565
+ handled = true;
566
+ this.goToNextMonth();
567
+ break;
568
+ case "Home":
569
+ handled = true;
570
+ this.focusDay = false;
571
+ this.moveMonths(-this.monthInView);
572
+ break;
573
+ case "End":
574
+ handled = true;
575
+ this.focusDay = false;
576
+ this.moveMonths(11 - this.monthInView);
577
+ break;
578
+ case "Tab":
579
+ if (ev.shiftKey) {
580
+ handled = true;
581
+ this.focusLastElement();
582
+ }
583
+ break;
584
+ case "Escape":
585
+ if (this.monthPickerVisible) {
586
+ this.monthPickerVisible = false;
587
+ ev.stopImmediatePropagation();
588
+ }
589
+ break;
590
+ default:
591
+ break;
592
+ }
593
+ if (handled) {
594
+ ev.preventDefault();
595
+ }
596
+ };
597
+ this.yearButtonKeyDownHandler = (ev) => {
598
+ let handled = false;
599
+ switch (ev.key) {
600
+ case "ArrowLeft":
601
+ case "ArrowUp":
602
+ handled = true;
603
+ this.goToPreviousYear();
604
+ break;
605
+ case "ArrowRight":
606
+ case "ArrowDown":
607
+ handled = true;
608
+ this.goToNextYear();
609
+ break;
610
+ case "Home":
611
+ if (this.yearPickerVisible && this.yearInView > this.decadeStart) {
612
+ handled = true;
613
+ this.moveYears(this.decadeStart - this.yearInView);
614
+ }
615
+ break;
616
+ case "End":
617
+ if (this.yearPickerVisible && this.yearInView < this.decadeEnd) {
618
+ handled = true;
619
+ this.moveYears(this.decadeEnd - this.focussedYear);
620
+ }
621
+ break;
622
+ case "PageUp":
623
+ handled = true;
624
+ this.focusDay = false;
625
+ this.moveYears(-10);
626
+ break;
627
+ case "PageDown":
628
+ handled = true;
629
+ this.focusDay = false;
630
+ this.moveYears(10);
631
+ break;
632
+ case "Escape":
633
+ if (this.yearPickerVisible) {
634
+ this.yearPickerVisible = false;
635
+ ev.stopImmediatePropagation();
636
+ }
637
+ break;
638
+ default:
639
+ break;
640
+ }
641
+ if (handled) {
642
+ ev.preventDefault();
643
+ }
644
+ };
645
+ this.todayButtonKeyDownHandler = (ev) => {
646
+ var _a;
647
+ if (ev.key === "Tab" &&
648
+ !ev.shiftKey &&
649
+ ((_a = this.clearButtonEl) === null || _a === void 0 ? void 0 : _a.disabled) &&
650
+ this.parentIsDatePicker) {
651
+ this.focusFirstElement();
652
+ ev.preventDefault();
653
+ }
654
+ };
655
+ this.clearButtonKeyDownHandler = (ev) => {
656
+ if (ev.key === "Tab" && !ev.shiftKey && this.parentIsDatePicker) {
657
+ this.focusFirstElement();
658
+ ev.preventDefault();
659
+ }
660
+ };
661
+ this.calendarTabHandler = (ev) => {
662
+ var _a, _b;
663
+ let handled = false;
664
+ if (!ev.shiftKey &&
665
+ (!this.showTodayButton || this.isCurrentMonth()) &&
666
+ (!this.showClearButton || ((_a = this.clearButtonEl) === null || _a === void 0 ? void 0 : _a.disabled)) &&
667
+ this.parentIsDatePicker) {
668
+ this.focusFirstElement();
669
+ handled = true;
670
+ }
671
+ else if (ev.shiftKey) {
672
+ (_b = this.yearButtonEl) === null || _b === void 0 ? void 0 : _b.setFocus();
673
+ handled = true;
674
+ }
675
+ return handled;
676
+ };
677
+ /* Utility functions */
678
+ this.setMonthSelectedLiveRegionText = () => {
679
+ this.setAriaLiveRegionText(`${this.monthNames[this.monthInView]} selected. ${this.getMonthInViewText()}`);
680
+ };
681
+ this.setYearSelectedLiveRegionText = () => {
682
+ this.setAriaLiveRegionText(`${this.yearInView} selected. ${this.getMonthInViewText()}`);
683
+ };
684
+ this.setDecadeView = (start) => {
685
+ let currYear = start - 1;
686
+ const decadeArr = [];
687
+ while (currYear <= start + 10) {
688
+ decadeArr.push(currYear);
689
+ currYear++;
690
+ }
691
+ this.decadeView = decadeArr;
692
+ this.decadeStart = decadeArr[1];
693
+ this.decadeEnd = decadeArr[10];
694
+ };
695
+ this.getMonthInViewText = () => {
696
+ return `${this.monthNames[this.monthInView]} ${this.yearInView} currently in view.`;
697
+ };
698
+ this.getDecadeInViewText = () => {
699
+ return `${this.decadeStart} to ${this.decadeEnd} currently in view.`;
700
+ };
701
+ this.isPrevYearAllowed = () => {
702
+ return this.isYearAllowed(this.yearInView - 1);
703
+ };
704
+ this.isNextYearAllowed = () => {
705
+ return this.isYearAllowed(this.yearInView + 1);
706
+ };
707
+ this.isYearAllowed = (yr) => yearInRange(yr, this.minDate, this.maxDate);
708
+ this.getMonthView = (date) => {
709
+ const start = getWeekStart(getMonthStart(date), this.startOfWeek);
710
+ const end = addSixWeeks(start);
711
+ const days = [];
712
+ let current = start;
713
+ while (!dateMatches(current, end)) {
714
+ days.push(current);
715
+ current = new Date(current);
716
+ current.setDate(current.getDate() + 1);
717
+ }
718
+ days.push(current);
719
+ return days;
720
+ };
721
+ this.isCurrentMonth = () => {
722
+ const d = new Date();
723
+ return (d.getFullYear() === this.yearInView && d.getMonth() === this.monthInView);
724
+ };
725
+ this.updateMonthInView = () => {
726
+ if (this.focussedDate) {
727
+ this.currMonthView = this.getMonthView(this.focussedDate);
728
+ this.focussedDay = this.focussedDate.getDate();
729
+ this.monthInView = this.focussedDate.getMonth();
730
+ this.yearInView = this.focussedDate.getFullYear();
731
+ if (this.dayPickerKeyboardNav) {
732
+ this.monthInViewUpdateHandled = true;
733
+ this.setAriaLiveRegionText(this.getMonthInViewText());
734
+ this.dayPickerKeyboardNav = false;
735
+ }
736
+ }
737
+ };
738
+ /* Mouse handlers */
739
+ this.navButtonMouseDownHandler = (ev) => {
740
+ ev.preventDefault();
741
+ };
742
+ this.handleCalendarMouseDown = (event) => {
743
+ const target = event.target;
744
+ if (target.tagName !== "IC-BUTTON") {
745
+ event.preventDefault();
746
+ }
747
+ };
748
+ this.handleSelectDay = (day) => {
749
+ this.setSelectedDate(day);
750
+ this.setFocussedDate(day);
751
+ this.icCalendarDaySelect.emit();
752
+ };
753
+ this.handleSelectMonth = (month) => {
754
+ this.moveMonths(month - this.monthInView);
755
+ setTimeout(() => {
756
+ var _a;
757
+ (_a = this.monthButtonEl) === null || _a === void 0 ? void 0 : _a.setFocus();
758
+ this.monthPickerVisible = false;
759
+ this.setMonthSelectedLiveRegionText();
760
+ this.icCalendarMonthSelect.emit();
761
+ }, FOCUS_TIMER);
762
+ };
763
+ this.handleSelectYear = (year) => {
764
+ const yrPos = this.decadeView.indexOf(year);
765
+ if (yrPos > 0 && yrPos < this.decadeView.length - 1) {
766
+ this.moveYears(year - this.yearInView);
767
+ this.focusDay = false;
768
+ const monthName = this.monthNames[this.monthInView];
769
+ this.setAriaLiveRegionText(`${year} selected. ${monthName} ${year} currently in view.`);
770
+ setTimeout(() => {
771
+ var _a;
772
+ (_a = this.yearButtonEl) === null || _a === void 0 ? void 0 : _a.setFocus();
773
+ this.yearPickerVisible = false;
774
+ this.icCalendarYearSelect.emit();
775
+ }, FOCUS_TIMER);
776
+ }
777
+ else {
778
+ const moveYears = year - this.focussedYear > 0 ? 10 : -10;
779
+ this.updateFocussedYear(moveYears, this.yearButtonFocussed);
780
+ this.setAriaLiveRegionText(this.getDecadeInViewText());
781
+ }
782
+ };
783
+ this.onDayButtonFocusHandler = () => {
784
+ this.dayButtonFocussed = true;
785
+ };
786
+ this.onDayButtonBlurHandler = () => {
787
+ this.dayButtonFocussed = false;
788
+ };
789
+ this.onYearButtonFocusHandler = () => {
790
+ this.yearButtonFocussed = true;
791
+ };
792
+ this.onYearButtonBlurHandler = () => {
793
+ this.yearButtonFocussed = false;
794
+ };
795
+ /* Render helpers */
796
+ this.renderMonthYearNavButton = (id, flip, disabled) => {
797
+ const buttonSize = this.size;
798
+ return (h("ic-button", { id: id, disableTooltip: true, disabled: disabled, onClick: this.monthYearNavClickHandler, class: { flip: flip }, variant: "icon-tertiary", innerHTML: chevron, size: buttonSize, tabIndex: -1, "aria-label": `Go to ${id.slice(0, -7).replace("-", " ")}`, onMouseDown: this.navButtonMouseDownHandler }));
799
+ };
800
+ this.previousMonthButton = () => {
801
+ let disabled = false;
802
+ if (this.disabled) {
803
+ disabled = true;
804
+ }
805
+ else {
806
+ if (this.focussedDate !== null && this.minDate !== null) {
807
+ const yearMatch = this.focussedDate.getFullYear() === this.minDate.getFullYear();
808
+ if (yearMatch) {
809
+ disabled = this.monthInView - 1 < this.minDate.getMonth();
810
+ }
811
+ }
812
+ }
813
+ return this.renderMonthYearNavButton("previous-month-button", true, disabled);
814
+ };
815
+ this.nextMonthButton = () => {
816
+ let disabled = false;
817
+ if (this.disabled) {
818
+ disabled = true;
819
+ }
820
+ else {
821
+ if (this.focussedDate !== null && this.maxDate !== null) {
822
+ const yearMatch = this.focussedDate.getFullYear() === this.maxDate.getFullYear();
823
+ if (yearMatch) {
824
+ disabled = this.monthInView + 1 > this.maxDate.getMonth();
825
+ }
826
+ }
827
+ }
828
+ return this.renderMonthYearNavButton("next-month-button", false, disabled);
829
+ };
830
+ this.previousYearButton = () => {
831
+ return this.renderMonthYearNavButton("previous-year-button", true, this.disabled || !this.isPrevYearAllowed());
832
+ };
833
+ this.nextYearButton = () => {
834
+ return this.renderMonthYearNavButton("next-year-button", false, this.disabled || !this.isNextYearAllowed());
835
+ };
836
+ }
837
+ watchDisabledHandler() {
838
+ var _a, _b;
839
+ removeDisabledFalse(this.disabled, this.el);
840
+ if (this.disabled) {
841
+ this.setSelectedDate(null);
842
+ (_a = this.clearButtonEl) === null || _a === void 0 ? void 0 : _a.disabled;
843
+ (_b = this.todayButtonEl) === null || _b === void 0 ? void 0 : _b.disabled;
844
+ }
845
+ else {
846
+ this.setOpenAtDate();
847
+ }
848
+ }
849
+ watchDisableFutureHandler() {
850
+ this.watchMaxHandler();
851
+ }
852
+ watchDisablePastHandler() {
853
+ this.watchMinHandler();
854
+ }
855
+ watchMaxHandler() {
856
+ if (this.disableFuture) {
857
+ this.maxDate = new Date();
858
+ }
859
+ else {
860
+ this.maxDate = createDate(this.max, this.dateFormat);
861
+ }
862
+ }
863
+ watchMinHandler() {
864
+ if (this.disablePast) {
865
+ this.minDate = new Date();
866
+ }
867
+ else {
868
+ this.minDate = createDate(this.min, this.dateFormat);
869
+ }
870
+ }
871
+ watchStartOfWeekHandler() {
872
+ this.orderedDaysOfWeek = this.daysOfWeek
873
+ .slice(this.startOfWeek)
874
+ .concat(this.daysOfWeek.slice(0, this.startOfWeek));
875
+ this.updateMonthInView();
876
+ }
877
+ valueChanged(newValue, oldValue, propName) {
878
+ if (newValue !== oldValue && this.isValidDateValue(newValue)) {
879
+ if (propName === "value") {
880
+ this.value = newValue;
881
+ }
882
+ this.setOpenAtDate();
883
+ }
884
+ }
885
+ watchFocussedDateHandler(current, previous) {
886
+ if (previous === null ||
887
+ !(previous.getFullYear() === current.getFullYear() &&
888
+ previous.getMonth() === current.getMonth())) {
889
+ this.updateMonthInView();
890
+ }
891
+ }
892
+ watchMonthInViewHandler() {
893
+ this.focussedMonth = this.monthInView;
894
+ }
895
+ watchYearInViewHandler() {
896
+ this.setFocussedYear(this.yearInView, false);
897
+ }
898
+ watchYearPickerVisibleHandler() {
899
+ if (!this.yearPickerVisible) {
900
+ this.setFocussedYear(this.yearInView);
901
+ }
902
+ }
903
+ watchMonthPickerVisibleHandler() {
904
+ if (!this.monthPickerVisible) {
905
+ this.focussedMonth = this.monthInView;
906
+ }
907
+ }
908
+ watchFocussedDayEl() {
909
+ if (this.focusDay) {
910
+ setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);
911
+ }
912
+ this.focusDay = true;
913
+ }
914
+ componentWillLoad() {
915
+ var _a;
916
+ const root = this.el.getRootNode();
917
+ this.parentIsDatePicker =
918
+ root instanceof ShadowRoot && ((_a = root.host) === null || _a === void 0 ? void 0 : _a.tagName) === "IC-DATE-PICKER";
919
+ this.monthNames = stringEnumToArray(IcDateInputMonths);
920
+ this.daysOfWeek = stringEnumToArray(IcShortDayNames);
921
+ this.watchStartOfWeekHandler();
922
+ this.watchMaxHandler();
923
+ this.watchMinHandler();
924
+ this.setOpenAtDate();
925
+ removeDisabledFalse(this.disabled, this.el);
926
+ }
927
+ /**
928
+ * @internal Clears the dialog description used to provide more context for screen readers.
929
+ */
930
+ async clearDialogDescription() {
931
+ this.dialogDescription = "";
932
+ }
933
+ render() {
934
+ const { dialogDescription, monthNames, focussedMonth, focussedYear, monthInView, yearInView, monthPickerVisible, yearPickerVisible, decadeView, minDate, maxDate, orderedDaysOfWeek, parentIsDatePicker, showClearButton, showTodayButton, size, theme, } = this;
935
+ let monthButtonText = "";
936
+ if (monthPickerVisible) {
937
+ 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.`;
938
+ }
939
+ else {
940
+ monthButtonText = `Press Enter or Space to open month picker view or use the arrow keys to change month.`;
941
+ }
942
+ let yearButtonText = "";
943
+ if (yearPickerVisible) {
944
+ 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.`;
945
+ }
946
+ else {
947
+ yearButtonText = `Press Enter or Space to open year picker view or use the arrow keys to change the selected year.`;
948
+ }
949
+ const dialogLabel = "choose date";
950
+ const monthLabel = monthNames && monthNames[monthInView]
951
+ ? monthNames[monthInView]
952
+ : "Open month picker";
953
+ const yearLabel = this.yearInView ? this.yearInView : "Open year picker";
954
+ let minDay = minDate;
955
+ if (minDate && this.disablePast) {
956
+ const yesterday = new Date(minDate);
957
+ yesterday.setDate(minDate.getDate() - 1);
958
+ minDay = yesterday;
959
+ }
960
+ const weeks = [];
961
+ for (let i = 0; i < this.currMonthView.length; i += 7) {
962
+ weeks.push(this.currMonthView.slice(i, i + 7));
963
+ }
964
+ return (h(Host, { key: '5811c7e3bf515643f11c4ecd66e166ab672a15ab', class: {
965
+ [`ic-calendar-${size}`]: true,
966
+ [`ic-theme-${theme}`]: theme !== "inherit",
967
+ } }, h("div", { key: '56f6fbfa98519f60e040d524f19d52bb2449e96d' }, h("span", { key: 'a52cc22ba545f12ccde1541b84bddbedc1a88734', id: "dialog-description", class: "sr-only" }, dialogDescription), h("div", Object.assign({ key: 'a4f6a18f109f7c55c5ba9a369dbc47352d215517' }, (parentIsDatePicker && {
968
+ role: "dialog",
969
+ "aria-modal": "true",
970
+ }), { "aria-label": dialogLabel, "aria-describedBy": "dialog-description", class: {
971
+ "calendar-container": true,
972
+ }, onMouseDown: this.handleCalendarMouseDown, onClick: this.handleCalendarClick }), h("span", { key: '63a3c2c916c905efce47669886edff51422fd755', ref: (el) => (this.liveRegionEl = el), id: "live-region", "aria-live": "assertive", class: "sr-only" }), h("div", { key: 'd553857fb83f497d666355b283391530a94c09a9', class: {
973
+ "month-year-nav-container": true,
974
+ } }, h("div", { key: 'aff93454cc4f27db3e8464ac4289471c353f0086', class: "month-year-nav" }, this.previousMonthButton(), h("span", { key: 'a4771ae4d86e75fbf80134a4a53190a9d9402297', id: "select-month-hint", "aria-hidden": "true" }, monthButtonText), h("ic-button", { key: '325ed5a8bb306b318c2fa471de7ac82ac0e98e2e', ref: (el) => (this.monthButtonEl = el), size: size, class: "month-picker-button", disabled: this.disabled, "aria-haspopup": "menu", "aria-expanded": monthPickerVisible ? "true" : "false", "full-width": "true", variant: "tertiary", "aria-label": monthLabel, "aria-describedby": "select-month-hint", onKeyDown: this.monthButtonKeyDownHandler, onClick: this.monthButtonClickHandler }, monthNames[monthInView]), this.nextMonthButton()), h("div", { key: '91adac1ecbcccbab1b1c76c741ea64b2d7efe818', class: "month-year-nav" }, this.previousYearButton(), h("span", { key: '2ccac8cb808bfd951f36e5f371c128ff9e1bf84e', id: "select-year-hint", "aria-hidden": "true" }, yearButtonText), h("ic-button", { key: '289835494a1015ec0ea67e8885c627ad1436b404', ref: (el) => (this.yearButtonEl = el), size: size, class: "year-picker-button", disabled: this.disabled, "aria-haspopup": "menu", "aria-expanded": yearPickerVisible ? "true" : "false", "full-width": "true", variant: "tertiary", "aria-label": yearLabel, "aria-describedby": "select-year-hint", onKeyDown: this.yearButtonKeyDownHandler, onClick: this.yearButtonClickHandler }, this.yearInView), this.nextYearButton())), !(monthPickerVisible || yearPickerVisible) && (h("table", { key: 'd1bff2567dee5787f0ccd9ba2c0c40aa2c5e671a', role: "grid", class: {
975
+ calendar: true,
976
+ hidden: monthPickerVisible || yearPickerVisible,
977
+ }, onKeyDown: this.handleCalendarKeyDown }, h("thead", { key: '9dccafd91918a15ec52fd641991e0803ccb65468', class: "weekdays-container" }, h("tr", { key: '2ecccfb88a4220bec5ed80b4819651f57a819909', class: "weekdays" }, orderedDaysOfWeek.map((dayName) => {
978
+ const header = size === "small" ? dayName.charAt(0) : dayName;
979
+ return (h("th", { scope: "col", class: "calendar-day-header" }, header));
980
+ }))), h("tbody", { key: '9c676dff19754d06310e626c8aba69e05ca8a71e', class: "calendar-days-container" }, weeks.map((week, weekIdx) => (h("tr", { key: weekIdx }, week.map((day) => {
981
+ var _a;
982
+ return (h("td", { key: day.toISOString() }, h(DayButton, { day: day, disableDay: this.disabled ||
983
+ ((_a = this.disableDays) === null || _a === void 0 ? void 0 : _a.includes(Number(day.getDay()))), today: dateMatches(day, this.today), selected: dateMatches(day, this.selectedDate), focussed: dateMatches(day, this.focussedDate), inRange: dateInRange(day, minDay, maxDate), monthInView: monthInView, onSelectDay: this.handleSelectDay, focussedDayRef: this.setFocussedDayEl, onFocusDay: this.onDayButtonFocusHandler, onBlurDay: this.onDayButtonBlurHandler, showDaysOutsideMonth: this.showDaysOutsideMonth })));
984
+ }))))))), h("div", { key: '5137281599f0ad0c3d1658448b740d1192073ad2', class: {
985
+ "month-picker-container": true,
986
+ hidden: !monthPickerVisible,
987
+ } }, monthPickerVisible && (h(MonthPicker, { key: '460809cfbfb7db2aacd28470220863769c884651', size: size, onSelectMonth: this.handleSelectMonth, monthInView: monthInView, focussedMonth: focussedMonth, onKeyDown: this.monthPickerKeyDownHandler, focussedMonthRef: this.setFocussedMonthEl, minDate: minDate, maxDate: maxDate, yearInView: yearInView }))), h("div", { key: 'af3eb48f6bbeaf1a1ccdbb7a5f941241d10e6c4f', class: {
988
+ "year-picker-container": true,
989
+ hidden: !yearPickerVisible,
990
+ } }, yearPickerVisible && (h(YearPicker, { key: '4de6dd0c0563a6519b39f0fdf58a329a7bba450c', decadeView: decadeView, size: size, focussedYear: focussedYear, onSelectYear: this.handleSelectYear, onKeyDown: this.yearPickerKeyDownHandler, onFocusYear: this.onYearButtonFocusHandler, onBlurYear: this.onYearButtonBlurHandler, yearInView: yearInView, minDate: minDate, maxDate: maxDate, focussedYearRef: this.setFocussedYearEl }))), h("div", { key: '18495cc7c4150208bb64a0a222a7e233ea3a93d7', class: {
991
+ "bottom-buttons": true,
992
+ "no-today": !showTodayButton,
993
+ } }, showTodayButton && (h("ic-button", { key: 'd8623ea2ecc501dc77ad3fd47cd9f41b8e104c86', id: "today-button", variant: "tertiary", ref: (el) => (this.todayButtonEl = el), size: size, "aria-label": "Navigate to current date", onClick: this.todayButtonClickHandler, onKeyDown: this.todayButtonKeyDownHandler, disabled: this.isCurrentMonth() }, "Go to today")), showClearButton && (h("ic-button", { key: '40df11d2d3b36a505bab8c60acbbfb1eed03eddb', id: "clear-button", "aria-label": "clear selected date", ref: (el) => (this.clearButtonEl = el), variant: "tertiary", size: size, onClick: this.clearButtonClickHandler, onKeyDown: this.clearButtonKeyDownHandler, disabled: this.value === "" ||
994
+ this.value === null ||
995
+ this.value === undefined }, "Clear")))))));
996
+ }
997
+ static get is() { return "ic-calendar"; }
998
+ static get encapsulation() { return "shadow"; }
999
+ static get delegatesFocus() { return true; }
1000
+ static get originalStyleUrls() {
1001
+ return {
1002
+ "$": ["ic-calendar.css"]
1003
+ };
1004
+ }
1005
+ static get styleUrls() {
1006
+ return {
1007
+ "$": ["ic-calendar.css"]
1008
+ };
1009
+ }
1010
+ static get properties() {
1011
+ return {
1012
+ "dateFormat": {
1013
+ "type": "string",
1014
+ "mutable": false,
1015
+ "complexType": {
1016
+ "original": "IcDateFormat",
1017
+ "resolved": "\"DD/MM/YYYY\" | \"MM/DD/YYYY\" | \"YYYY/MM/DD\"",
1018
+ "references": {
1019
+ "IcDateFormat": {
1020
+ "location": "import",
1021
+ "path": "../../utils/types",
1022
+ "id": "src/utils/types.ts::IcDateFormat"
1023
+ }
1024
+ }
1025
+ },
1026
+ "required": false,
1027
+ "optional": false,
1028
+ "docs": {
1029
+ "tags": [],
1030
+ "text": "The format in which the date will be displayed."
1031
+ },
1032
+ "getter": false,
1033
+ "setter": false,
1034
+ "attribute": "date-format",
1035
+ "reflect": false,
1036
+ "defaultValue": "\"DD/MM/YYYY\""
1037
+ },
1038
+ "disabled": {
1039
+ "type": "boolean",
1040
+ "mutable": false,
1041
+ "complexType": {
1042
+ "original": "boolean",
1043
+ "resolved": "boolean",
1044
+ "references": {}
1045
+ },
1046
+ "required": false,
1047
+ "optional": false,
1048
+ "docs": {
1049
+ "tags": [],
1050
+ "text": "If `true`, the disabled state will be set."
1051
+ },
1052
+ "getter": false,
1053
+ "setter": false,
1054
+ "attribute": "disabled",
1055
+ "reflect": true,
1056
+ "defaultValue": "false"
1057
+ },
1058
+ "disableDays": {
1059
+ "type": "unknown",
1060
+ "mutable": false,
1061
+ "complexType": {
1062
+ "original": "IcWeekDays[]",
1063
+ "resolved": "IcWeekDays[] | undefined",
1064
+ "references": {
1065
+ "IcWeekDays": {
1066
+ "location": "import",
1067
+ "path": "../../utils/types",
1068
+ "id": "src/utils/types.ts::IcWeekDays"
1069
+ }
1070
+ }
1071
+ },
1072
+ "required": false,
1073
+ "optional": true,
1074
+ "docs": {
1075
+ "tags": [],
1076
+ "text": "The days of the week to disable."
1077
+ },
1078
+ "getter": false,
1079
+ "setter": false,
1080
+ "defaultValue": "[]"
1081
+ },
1082
+ "disableFuture": {
1083
+ "type": "boolean",
1084
+ "mutable": false,
1085
+ "complexType": {
1086
+ "original": "boolean",
1087
+ "resolved": "boolean | undefined",
1088
+ "references": {}
1089
+ },
1090
+ "required": false,
1091
+ "optional": true,
1092
+ "docs": {
1093
+ "tags": [],
1094
+ "text": "If `true`, dates in the future are not allowed."
1095
+ },
1096
+ "getter": false,
1097
+ "setter": false,
1098
+ "attribute": "disable-future",
1099
+ "reflect": false,
1100
+ "defaultValue": "false"
1101
+ },
1102
+ "disablePast": {
1103
+ "type": "boolean",
1104
+ "mutable": false,
1105
+ "complexType": {
1106
+ "original": "boolean",
1107
+ "resolved": "boolean | undefined",
1108
+ "references": {}
1109
+ },
1110
+ "required": false,
1111
+ "optional": true,
1112
+ "docs": {
1113
+ "tags": [],
1114
+ "text": "If `true`, dates in the past are not allowed."
1115
+ },
1116
+ "getter": false,
1117
+ "setter": false,
1118
+ "attribute": "disable-past",
1119
+ "reflect": false,
1120
+ "defaultValue": "false"
1121
+ },
1122
+ "max": {
1123
+ "type": "string",
1124
+ "mutable": false,
1125
+ "complexType": {
1126
+ "original": "string | Date",
1127
+ "resolved": "Date | string",
1128
+ "references": {
1129
+ "Date": {
1130
+ "location": "global",
1131
+ "id": "global::Date"
1132
+ }
1133
+ }
1134
+ },
1135
+ "required": false,
1136
+ "optional": false,
1137
+ "docs": {
1138
+ "tags": [],
1139
+ "text": "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.\nThe value of this prop is ignored if `disableFuture` is set to `true`."
1140
+ },
1141
+ "getter": false,
1142
+ "setter": false,
1143
+ "attribute": "max",
1144
+ "reflect": false,
1145
+ "defaultValue": "\"\""
1146
+ },
1147
+ "min": {
1148
+ "type": "string",
1149
+ "mutable": false,
1150
+ "complexType": {
1151
+ "original": "string | Date",
1152
+ "resolved": "Date | string",
1153
+ "references": {
1154
+ "Date": {
1155
+ "location": "global",
1156
+ "id": "global::Date"
1157
+ }
1158
+ }
1159
+ },
1160
+ "required": false,
1161
+ "optional": false,
1162
+ "docs": {
1163
+ "tags": [],
1164
+ "text": "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.\nThe value of this prop is ignored if `disablePast` is set to `true`."
1165
+ },
1166
+ "getter": false,
1167
+ "setter": false,
1168
+ "attribute": "min",
1169
+ "reflect": false,
1170
+ "defaultValue": "\"\""
1171
+ },
1172
+ "openAtDate": {
1173
+ "type": "string",
1174
+ "mutable": false,
1175
+ "complexType": {
1176
+ "original": "string | Date",
1177
+ "resolved": "Date | string",
1178
+ "references": {
1179
+ "Date": {
1180
+ "location": "global",
1181
+ "id": "global::Date"
1182
+ }
1183
+ }
1184
+ },
1185
+ "required": false,
1186
+ "optional": false,
1187
+ "docs": {
1188
+ "tags": [],
1189
+ "text": "The date visible when the calendar opens. Used if no date is currently selected.\nThe value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object."
1190
+ },
1191
+ "getter": false,
1192
+ "setter": false,
1193
+ "attribute": "open-at-date",
1194
+ "reflect": false,
1195
+ "defaultValue": "\"\""
1196
+ },
1197
+ "showClearButton": {
1198
+ "type": "boolean",
1199
+ "mutable": false,
1200
+ "complexType": {
1201
+ "original": "boolean",
1202
+ "resolved": "boolean | undefined",
1203
+ "references": {}
1204
+ },
1205
+ "required": false,
1206
+ "optional": true,
1207
+ "docs": {
1208
+ "tags": [],
1209
+ "text": "If `true`, the `Clear` button on the calendar will be visible."
1210
+ },
1211
+ "getter": false,
1212
+ "setter": false,
1213
+ "attribute": "show-clear-button",
1214
+ "reflect": false,
1215
+ "defaultValue": "true"
1216
+ },
1217
+ "showDaysOutsideMonth": {
1218
+ "type": "boolean",
1219
+ "mutable": false,
1220
+ "complexType": {
1221
+ "original": "boolean",
1222
+ "resolved": "boolean | undefined",
1223
+ "references": {}
1224
+ },
1225
+ "required": false,
1226
+ "optional": true,
1227
+ "docs": {
1228
+ "tags": [],
1229
+ "text": "If `true`, days outside the current month will be visible in the calendar."
1230
+ },
1231
+ "getter": false,
1232
+ "setter": false,
1233
+ "attribute": "show-days-outside-month",
1234
+ "reflect": false,
1235
+ "defaultValue": "true"
1236
+ },
1237
+ "showTodayButton": {
1238
+ "type": "boolean",
1239
+ "mutable": false,
1240
+ "complexType": {
1241
+ "original": "boolean",
1242
+ "resolved": "boolean | undefined",
1243
+ "references": {}
1244
+ },
1245
+ "required": false,
1246
+ "optional": true,
1247
+ "docs": {
1248
+ "tags": [],
1249
+ "text": "If `true`, the `Go to today` button on the calendar will be visible."
1250
+ },
1251
+ "getter": false,
1252
+ "setter": false,
1253
+ "attribute": "show-today-button",
1254
+ "reflect": false,
1255
+ "defaultValue": "true"
1256
+ },
1257
+ "size": {
1258
+ "type": "string",
1259
+ "mutable": false,
1260
+ "complexType": {
1261
+ "original": "IcSizes",
1262
+ "resolved": "\"large\" | \"medium\" | \"small\"",
1263
+ "references": {
1264
+ "IcSizes": {
1265
+ "location": "import",
1266
+ "path": "../../utils/types",
1267
+ "id": "src/utils/types.ts::IcSizes"
1268
+ }
1269
+ }
1270
+ },
1271
+ "required": false,
1272
+ "optional": false,
1273
+ "docs": {
1274
+ "tags": [],
1275
+ "text": "The size of the calendar to be displayed."
1276
+ },
1277
+ "getter": false,
1278
+ "setter": false,
1279
+ "attribute": "size",
1280
+ "reflect": false,
1281
+ "defaultValue": "\"medium\""
1282
+ },
1283
+ "startOfWeek": {
1284
+ "type": "number",
1285
+ "mutable": false,
1286
+ "complexType": {
1287
+ "original": "IcWeekDays",
1288
+ "resolved": "IcWeekDays.Friday | IcWeekDays.Monday | IcWeekDays.Saturday | IcWeekDays.Sunday | IcWeekDays.Thursday | IcWeekDays.Tuesday | IcWeekDays.Wednesday",
1289
+ "references": {
1290
+ "IcWeekDays": {
1291
+ "location": "import",
1292
+ "path": "../../utils/types",
1293
+ "id": "src/utils/types.ts::IcWeekDays"
1294
+ }
1295
+ }
1296
+ },
1297
+ "required": false,
1298
+ "optional": false,
1299
+ "docs": {
1300
+ "tags": [],
1301
+ "text": "The first day of the week. `0` for Sunday, `1` for Monday, etc.\nDefault is Monday."
1302
+ },
1303
+ "getter": false,
1304
+ "setter": false,
1305
+ "attribute": "start-of-week",
1306
+ "reflect": false,
1307
+ "defaultValue": "IcWeekDays.Monday"
1308
+ },
1309
+ "theme": {
1310
+ "type": "string",
1311
+ "mutable": false,
1312
+ "complexType": {
1313
+ "original": "IcThemeMode",
1314
+ "resolved": "\"dark\" | \"inherit\" | \"light\" | undefined",
1315
+ "references": {
1316
+ "IcThemeMode": {
1317
+ "location": "import",
1318
+ "path": "../../utils/types",
1319
+ "id": "src/utils/types.ts::IcThemeMode"
1320
+ }
1321
+ }
1322
+ },
1323
+ "required": false,
1324
+ "optional": true,
1325
+ "docs": {
1326
+ "tags": [],
1327
+ "text": "Sets the calendar to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component."
1328
+ },
1329
+ "getter": false,
1330
+ "setter": false,
1331
+ "attribute": "theme",
1332
+ "reflect": false,
1333
+ "defaultValue": "\"inherit\""
1334
+ },
1335
+ "value": {
1336
+ "type": "string",
1337
+ "mutable": true,
1338
+ "complexType": {
1339
+ "original": "IcDateValueFormat",
1340
+ "resolved": "Date | null | string | undefined",
1341
+ "references": {
1342
+ "IcDateValueFormat": {
1343
+ "location": "import",
1344
+ "path": "../../utils/types",
1345
+ "id": "src/utils/types.ts::IcDateValueFormat"
1346
+ }
1347
+ }
1348
+ },
1349
+ "required": false,
1350
+ "optional": true,
1351
+ "docs": {
1352
+ "tags": [],
1353
+ "text": "The value of the calendar and the date visible when the calendar opens.\nThe value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object."
1354
+ },
1355
+ "getter": false,
1356
+ "setter": false,
1357
+ "attribute": "value",
1358
+ "reflect": true,
1359
+ "defaultValue": "\"\""
1360
+ }
1361
+ };
1362
+ }
1363
+ static get states() {
1364
+ return {
1365
+ "clearButtonClicked": {},
1366
+ "currMonthView": {},
1367
+ "currYearPickerView": {},
1368
+ "decadeView": {},
1369
+ "focussedDate": {},
1370
+ "focussedDay": {},
1371
+ "focussedDayEl": {},
1372
+ "focussedMonth": {},
1373
+ "focussedMonthEl": {},
1374
+ "focussedYear": {},
1375
+ "maxDate": {},
1376
+ "minDate": {},
1377
+ "monthInView": {},
1378
+ "monthPickerVisible": {},
1379
+ "orderedDaysOfWeek": {},
1380
+ "selectedDate": {},
1381
+ "yearInView": {},
1382
+ "yearPickerVisible": {}
1383
+ };
1384
+ }
1385
+ static get events() {
1386
+ return [{
1387
+ "method": "icChange",
1388
+ "name": "icChange",
1389
+ "bubbles": true,
1390
+ "cancelable": true,
1391
+ "composed": true,
1392
+ "docs": {
1393
+ "tags": [],
1394
+ "text": "Emitted when the value has changed."
1395
+ },
1396
+ "complexType": {
1397
+ "original": "{\n value: Date | null;\n dateObject: {\n day: string | null;\n month: string | null;\n year: string | null;\n };\n utcValue: Date | null;\n }",
1398
+ "resolved": "{ value: Date | null; dateObject: { day: string | null; month: string | null; year: string | null; }; utcValue: Date | null; }",
1399
+ "references": {
1400
+ "Date": {
1401
+ "location": "global",
1402
+ "id": "global::Date"
1403
+ }
1404
+ }
1405
+ }
1406
+ }, {
1407
+ "method": "icCalendarClearButtonClick",
1408
+ "name": "icCalendarClearButtonClick",
1409
+ "bubbles": true,
1410
+ "cancelable": true,
1411
+ "composed": true,
1412
+ "docs": {
1413
+ "tags": [],
1414
+ "text": "Emitted when the clear button has been clicked."
1415
+ },
1416
+ "complexType": {
1417
+ "original": "void",
1418
+ "resolved": "void",
1419
+ "references": {}
1420
+ }
1421
+ }, {
1422
+ "method": "icCalendarDaySelect",
1423
+ "name": "icCalendarDaySelect",
1424
+ "bubbles": true,
1425
+ "cancelable": true,
1426
+ "composed": true,
1427
+ "docs": {
1428
+ "tags": [{
1429
+ "name": "internal",
1430
+ "text": "Emitted when a day is selected."
1431
+ }],
1432
+ "text": ""
1433
+ },
1434
+ "complexType": {
1435
+ "original": "void",
1436
+ "resolved": "void",
1437
+ "references": {}
1438
+ }
1439
+ }, {
1440
+ "method": "icCalendarMonthSelect",
1441
+ "name": "icCalendarMonthSelect",
1442
+ "bubbles": true,
1443
+ "cancelable": true,
1444
+ "composed": true,
1445
+ "docs": {
1446
+ "tags": [],
1447
+ "text": "Emitted when a month is selected."
1448
+ },
1449
+ "complexType": {
1450
+ "original": "void",
1451
+ "resolved": "void",
1452
+ "references": {}
1453
+ }
1454
+ }, {
1455
+ "method": "icCalendarYearSelect",
1456
+ "name": "icCalendarYearSelect",
1457
+ "bubbles": true,
1458
+ "cancelable": true,
1459
+ "composed": true,
1460
+ "docs": {
1461
+ "tags": [],
1462
+ "text": "Emitted when a year is selected."
1463
+ },
1464
+ "complexType": {
1465
+ "original": "void",
1466
+ "resolved": "void",
1467
+ "references": {}
1468
+ }
1469
+ }];
1470
+ }
1471
+ static get methods() {
1472
+ return {
1473
+ "clearDialogDescription": {
1474
+ "complexType": {
1475
+ "signature": "() => Promise<void>",
1476
+ "parameters": [],
1477
+ "references": {
1478
+ "Promise": {
1479
+ "location": "global",
1480
+ "id": "global::Promise"
1481
+ }
1482
+ },
1483
+ "return": "Promise<void>"
1484
+ },
1485
+ "docs": {
1486
+ "text": "",
1487
+ "tags": [{
1488
+ "name": "internal",
1489
+ "text": "Clears the dialog description used to provide more context for screen readers."
1490
+ }]
1491
+ }
1492
+ }
1493
+ };
1494
+ }
1495
+ static get elementRef() { return "el"; }
1496
+ static get watchers() {
1497
+ return [{
1498
+ "propName": "disabled",
1499
+ "methodName": "watchDisabledHandler"
1500
+ }, {
1501
+ "propName": "disableFuture",
1502
+ "methodName": "watchDisableFutureHandler"
1503
+ }, {
1504
+ "propName": "disablePast",
1505
+ "methodName": "watchDisablePastHandler"
1506
+ }, {
1507
+ "propName": "max",
1508
+ "methodName": "watchMaxHandler"
1509
+ }, {
1510
+ "propName": "min",
1511
+ "methodName": "watchMinHandler"
1512
+ }, {
1513
+ "propName": "startOfWeek",
1514
+ "methodName": "watchStartOfWeekHandler"
1515
+ }, {
1516
+ "propName": "value",
1517
+ "methodName": "valueChanged"
1518
+ }, {
1519
+ "propName": "openAtDate",
1520
+ "methodName": "valueChanged"
1521
+ }, {
1522
+ "propName": "focussedDate",
1523
+ "methodName": "watchFocussedDateHandler"
1524
+ }, {
1525
+ "propName": "monthInView",
1526
+ "methodName": "watchMonthInViewHandler"
1527
+ }, {
1528
+ "propName": "yearInView",
1529
+ "methodName": "watchYearInViewHandler"
1530
+ }, {
1531
+ "propName": "yearPickerVisible",
1532
+ "methodName": "watchYearPickerVisibleHandler"
1533
+ }, {
1534
+ "propName": "monthPickerVisible",
1535
+ "methodName": "watchMonthPickerVisibleHandler"
1536
+ }, {
1537
+ "propName": "focussedDayEl",
1538
+ "methodName": "watchFocussedDayEl"
1539
+ }];
1540
+ }
1541
+ }
1542
+ //# sourceMappingURL=ic-calendar.js.map