@ukic/canary-web-components 2.0.0-canary.10 → 2.0.0-canary.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (460) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-7a069459.js → helpers-b525d45a.js} +2 -7
  3. package/dist/cjs/helpers-b525d45a.js.map +1 -0
  4. package/dist/cjs/{helpers-f75cf7cf.js → helpers-c4444a7e.js} +48 -94
  5. package/dist/cjs/helpers-c4444a7e.js.map +1 -0
  6. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-button_3.cjs.entry.js +2 -8
  13. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-card.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +57 -0
  20. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -0
  21. package/dist/cjs/ic-data-table.cjs.entry.js +308 -43
  22. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  25. package/dist/cjs/{ic-pagination-bar.cjs.entry.js → ic-empty-state_2.cjs.entry.js} +34 -4
  26. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -0
  27. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  32. package/dist/cjs/{ic-menu.cjs.entry.js → ic-input-component-container_3.cjs.entry.js} +69 -5
  33. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -0
  34. package/dist/cjs/ic-input-label_2.cjs.entry.js +86 -0
  35. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -0
  36. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-navigation-group.cjs.entry.js +13 -16
  43. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-navigation-item.cjs.entry.js +32 -28
  45. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  48. package/dist/cjs/ic-pagination_4.cjs.entry.js +5 -5
  49. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  51. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-select-with-multi.cjs.entry.js +19 -6
  55. package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  57. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  62. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  63. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-top-navigation.cjs.entry.js +60 -46
  68. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-typography.cjs.entry.js +35 -11
  70. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  71. package/dist/cjs/index-4cf27b16.js +10 -18
  72. package/dist/cjs/loader.cjs.js +1 -1
  73. package/dist/collection/collection-manifest.json +1 -2
  74. package/dist/collection/components/ic-data-table/ic-data-table.css +82 -7
  75. package/dist/collection/components/ic-data-table/ic-data-table.js +535 -44
  76. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  77. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  78. package/dist/collection/components/ic-data-table/story-data.js +386 -11
  79. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  80. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.e2e.js +217 -0
  81. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.e2e.js.map +1 -0
  82. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +319 -0
  83. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  84. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +87 -0
  85. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +160 -0
  86. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +1 -0
  87. package/dist/collection/components/{ic-date-picker/test/a11y/ic-date-picker.test.a11y.js → ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js} +3 -5
  88. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js.map +1 -0
  89. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js +70 -0
  90. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js.map +1 -0
  91. package/dist/collection/components/ic-menu-with-multi/ic-menu.js +2 -2
  92. package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +1 -1
  93. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +1 -1
  94. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  95. package/dist/collection/components/ic-select-with-multi/ic-select.js +2 -2
  96. package/dist/collection/components/ic-select-with-multi/ic-select.js.map +1 -1
  97. package/dist/collection/utils/constants.js +0 -55
  98. package/dist/collection/utils/constants.js.map +1 -1
  99. package/dist/collection/utils/helpers.js +43 -259
  100. package/dist/collection/utils/helpers.js.map +1 -1
  101. package/dist/collection/utils/types.js +0 -45
  102. package/dist/collection/utils/types.js.map +1 -1
  103. package/dist/components/helpers.js +2 -7
  104. package/dist/components/helpers.js.map +1 -1
  105. package/dist/components/helpers2.js +45 -91
  106. package/dist/components/helpers2.js.map +1 -1
  107. package/dist/components/ic-button2.js +3 -11
  108. package/dist/components/ic-button2.js.map +1 -1
  109. package/dist/components/ic-card.js +1 -1
  110. package/dist/components/ic-checkbox-group.js +1 -1
  111. package/dist/components/ic-checkbox.js +1 -1
  112. package/dist/components/ic-chip.js +1 -1
  113. package/dist/components/{ic-date-input.d.ts → ic-data-table-title-bar.d.ts} +4 -4
  114. package/dist/components/ic-data-table-title-bar.js +136 -0
  115. package/dist/components/ic-data-table-title-bar.js.map +1 -0
  116. package/dist/components/ic-data-table.js +334 -49
  117. package/dist/components/ic-data-table.js.map +1 -1
  118. package/dist/components/ic-empty-state.js +1 -57
  119. package/dist/components/ic-empty-state.js.map +1 -1
  120. package/dist/{esm/ic-empty-state.entry.js → components/ic-empty-state2.js} +38 -11
  121. package/dist/components/ic-empty-state2.js.map +1 -0
  122. package/dist/components/ic-input-component-container2.js +1 -1
  123. package/dist/components/ic-input-component-container2.js.map +1 -1
  124. package/dist/components/ic-link2.js +1 -1
  125. package/dist/components/ic-menu-item2.js +1 -1
  126. package/dist/components/ic-menu2.js +2 -2
  127. package/dist/components/ic-menu2.js.map +1 -1
  128. package/dist/components/ic-menu3.js +1 -1
  129. package/dist/components/ic-menu3.js.map +1 -1
  130. package/dist/components/ic-navigation-button.js +1 -1
  131. package/dist/components/ic-navigation-group.js +12 -15
  132. package/dist/components/ic-navigation-group.js.map +1 -1
  133. package/dist/components/ic-navigation-item.js +32 -28
  134. package/dist/components/ic-navigation-item.js.map +1 -1
  135. package/dist/components/ic-pagination-bar2.js +1 -1
  136. package/dist/components/ic-pagination-bar2.js.map +1 -1
  137. package/dist/components/ic-pagination-item2.js +1 -1
  138. package/dist/components/ic-pagination2.js +5 -5
  139. package/dist/components/ic-pagination2.js.map +1 -1
  140. package/dist/components/ic-radio-group.js +1 -1
  141. package/dist/components/ic-radio-option.js +1 -1
  142. package/dist/components/ic-search-bar.js +1 -1
  143. package/dist/components/ic-select-with-multi.js +14 -1
  144. package/dist/components/ic-select-with-multi.js.map +1 -1
  145. package/dist/components/ic-select2.js +1 -1
  146. package/dist/components/ic-switch.js +1 -1
  147. package/dist/components/ic-tab.js +1 -1
  148. package/dist/components/ic-text-field2.js +1 -1
  149. package/dist/components/ic-toggle-button.js +1 -1
  150. package/dist/components/ic-top-navigation.js +61 -47
  151. package/dist/components/ic-top-navigation.js.map +1 -1
  152. package/dist/components/ic-typography2.js +38 -12
  153. package/dist/components/ic-typography2.js.map +1 -1
  154. package/dist/core/core.css +1 -1
  155. package/dist/core/core.esm.js +1 -1
  156. package/dist/core/core.esm.js.map +1 -1
  157. package/dist/core/{p-8ea47d42.entry.js → p-045359e1.entry.js} +2 -2
  158. package/dist/core/{p-3745da83.entry.js → p-10fb4c46.entry.js} +2 -2
  159. package/dist/core/p-169bfa51.entry.js +2 -0
  160. package/dist/core/p-169bfa51.entry.js.map +1 -0
  161. package/dist/core/{p-2e2e0099.entry.js → p-1ca332ca.entry.js} +2 -2
  162. package/dist/core/p-1e91f540.entry.js +2 -0
  163. package/dist/core/p-1e91f540.entry.js.map +1 -0
  164. package/dist/core/{p-d4fdd8c1.entry.js → p-204ace96.entry.js} +2 -2
  165. package/dist/core/{p-5fe96107.entry.js → p-2eac7dcc.entry.js} +2 -2
  166. package/dist/core/p-347e8dab.entry.js +2 -0
  167. package/dist/core/p-347e8dab.entry.js.map +1 -0
  168. package/dist/core/p-3803a5b5.entry.js +2 -0
  169. package/dist/core/p-3803a5b5.entry.js.map +1 -0
  170. package/dist/core/{p-36508aad.entry.js → p-4753bac8.entry.js} +2 -2
  171. package/dist/core/{p-4f1ffa39.entry.js → p-4baa0916.entry.js} +2 -2
  172. package/dist/core/{p-776671cf.entry.js → p-4f413fc0.entry.js} +2 -2
  173. package/dist/core/p-5171169f.entry.js +2 -0
  174. package/dist/core/p-5171169f.entry.js.map +1 -0
  175. package/dist/core/{p-9d540656.entry.js → p-595be57d.entry.js} +2 -2
  176. package/dist/core/{p-7cecf5d5.entry.js → p-5ae93c16.entry.js} +2 -2
  177. package/dist/core/{p-1ce75941.entry.js → p-5e0c830b.entry.js} +2 -2
  178. package/dist/core/p-5ee4319c.entry.js +2 -0
  179. package/dist/core/p-5ee4319c.entry.js.map +1 -0
  180. package/dist/core/p-5f4e96ec.entry.js +2 -0
  181. package/dist/core/p-5f4e96ec.entry.js.map +1 -0
  182. package/dist/core/{p-e74f1d09.entry.js → p-624d4f5f.entry.js} +2 -2
  183. package/dist/core/{p-9d01a7ad.entry.js → p-6933f8e9.entry.js} +2 -2
  184. package/dist/core/{p-5e2e6c3b.entry.js → p-6c3044b6.entry.js} +2 -2
  185. package/dist/core/p-7267fe19.entry.js +2 -0
  186. package/dist/core/p-7267fe19.entry.js.map +1 -0
  187. package/dist/core/{p-6690bc04.entry.js → p-75dac3d1.entry.js} +2 -2
  188. package/dist/core/{p-85609bdd.entry.js → p-7ef8d616.entry.js} +2 -2
  189. package/dist/core/{p-a0f9b259.entry.js → p-81ddc39d.entry.js} +2 -2
  190. package/dist/core/{p-a6447b13.entry.js → p-869954a2.entry.js} +2 -2
  191. package/dist/core/{p-47ac6838.entry.js → p-88d54b72.entry.js} +2 -2
  192. package/dist/core/{p-06ae5bec.entry.js → p-8b08d8fe.entry.js} +2 -2
  193. package/dist/core/{p-ca8cbd6a.entry.js → p-917c5721.entry.js} +2 -2
  194. package/dist/core/p-942282cd.entry.js +2 -0
  195. package/dist/core/p-942282cd.entry.js.map +1 -0
  196. package/dist/core/p-96b3e7e2.js +2 -0
  197. package/dist/core/p-96b3e7e2.js.map +1 -0
  198. package/dist/core/p-9caf19eb.js +2 -0
  199. package/dist/core/p-9caf19eb.js.map +1 -0
  200. package/dist/core/{p-76d26018.entry.js → p-a0f8efb2.entry.js} +2 -2
  201. package/dist/core/{p-a42c2f37.entry.js → p-a31031a5.entry.js} +2 -2
  202. package/dist/core/{p-b306cbc8.entry.js → p-a434c3d4.entry.js} +2 -2
  203. package/dist/core/{p-86012178.entry.js → p-a43c12cd.entry.js} +2 -2
  204. package/dist/core/{p-8c90110a.entry.js → p-a50c3b9e.entry.js} +2 -2
  205. package/dist/core/p-aac4185b.entry.js +2 -0
  206. package/dist/core/p-aac4185b.entry.js.map +1 -0
  207. package/dist/core/{p-1b7d426b.entry.js → p-ab09986c.entry.js} +2 -2
  208. package/dist/core/{p-9e3178e8.entry.js → p-b6639e4a.entry.js} +2 -2
  209. package/dist/core/{p-9e3178e8.entry.js.map → p-b6639e4a.entry.js.map} +1 -1
  210. package/dist/core/{p-62e22508.entry.js → p-b82dcc29.entry.js} +2 -2
  211. package/dist/core/{p-d5c99ec3.entry.js → p-ba86928c.entry.js} +2 -2
  212. package/dist/core/{p-d3856ed3.entry.js → p-c34848da.entry.js} +2 -2
  213. package/dist/core/{p-98448bdb.entry.js → p-d8469ac0.entry.js} +2 -2
  214. package/dist/core/{p-1832f4b5.entry.js → p-db9c03c0.entry.js} +2 -2
  215. package/dist/core/{p-ae422058.entry.js → p-e3997d60.entry.js} +2 -2
  216. package/dist/core/{p-982a6e88.entry.js → p-e834344e.entry.js} +2 -2
  217. package/dist/core/p-f14454b1.entry.js +2 -0
  218. package/dist/core/{p-f55ad6ae.entry.js.map → p-f14454b1.entry.js.map} +1 -1
  219. package/dist/core/{p-c7820c23.entry.js → p-f3c840cd.entry.js} +2 -2
  220. package/dist/core/p-f6888309.entry.js +2 -0
  221. package/dist/core/p-f6888309.entry.js.map +1 -0
  222. package/dist/core/p-f74a8752.entry.js +2 -0
  223. package/dist/core/p-f74a8752.entry.js.map +1 -0
  224. package/dist/core/{p-5759d771.entry.js → p-f7a14c01.entry.js} +2 -2
  225. package/dist/core/{p-0939ce92.entry.js → p-f843da01.entry.js} +2 -2
  226. package/dist/core/{p-e84b0310.entry.js → p-fc5611e2.entry.js} +2 -2
  227. package/dist/esm/core.js +1 -1
  228. package/dist/esm/{helpers-7aa21b0a.js → helpers-12b4266a.js} +2 -7
  229. package/dist/esm/helpers-12b4266a.js.map +1 -0
  230. package/dist/esm/{helpers-f328a7b6.js → helpers-1f07eb61.js} +46 -92
  231. package/dist/esm/helpers-1f07eb61.js.map +1 -0
  232. package/dist/esm/ic-accordion.entry.js +1 -1
  233. package/dist/esm/ic-alert.entry.js +1 -1
  234. package/dist/esm/ic-back-to-top.entry.js +1 -1
  235. package/dist/esm/ic-badge.entry.js +1 -1
  236. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  237. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  238. package/dist/esm/ic-button_3.entry.js +2 -8
  239. package/dist/esm/ic-button_3.entry.js.map +1 -1
  240. package/dist/esm/ic-card.entry.js +1 -1
  241. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  242. package/dist/esm/ic-checkbox.entry.js +1 -1
  243. package/dist/esm/ic-chip.entry.js +1 -1
  244. package/dist/esm/ic-data-row.entry.js +1 -1
  245. package/dist/esm/ic-data-table-title-bar.entry.js +53 -0
  246. package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -0
  247. package/dist/esm/ic-data-table.entry.js +309 -44
  248. package/dist/esm/ic-data-table.entry.js.map +1 -1
  249. package/dist/esm/ic-dialog.entry.js +1 -1
  250. package/dist/esm/ic-divider.entry.js +1 -1
  251. package/dist/esm/{ic-pagination-bar.entry.js → ic-empty-state_2.entry.js} +34 -5
  252. package/dist/esm/ic-empty-state_2.entry.js.map +1 -0
  253. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  254. package/dist/esm/ic-footer-link.entry.js +1 -1
  255. package/dist/esm/ic-footer.entry.js +1 -1
  256. package/dist/esm/ic-hero.entry.js +1 -1
  257. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  258. package/dist/esm/{ic-menu.entry.js → ic-input-component-container_3.entry.js} +69 -7
  259. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -0
  260. package/dist/esm/ic-input-label_2.entry.js +81 -0
  261. package/dist/esm/ic-input-label_2.entry.js.map +1 -0
  262. package/dist/esm/ic-link.entry.js +1 -1
  263. package/dist/esm/ic-menu-group.entry.js +1 -1
  264. package/dist/esm/ic-menu-item.entry.js +1 -1
  265. package/dist/esm/ic-menu-with-multi.entry.js +1 -1
  266. package/dist/esm/ic-menu-with-multi.entry.js.map +1 -1
  267. package/dist/esm/ic-navigation-button.entry.js +1 -1
  268. package/dist/esm/ic-navigation-group.entry.js +13 -16
  269. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  270. package/dist/esm/ic-navigation-item.entry.js +32 -28
  271. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  272. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  273. package/dist/esm/ic-page-header.entry.js +1 -1
  274. package/dist/esm/ic-pagination_4.entry.js +5 -5
  275. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  276. package/dist/esm/ic-popover-menu.entry.js +1 -1
  277. package/dist/esm/ic-radio-group.entry.js +1 -1
  278. package/dist/esm/ic-radio-option.entry.js +1 -1
  279. package/dist/esm/ic-search-bar.entry.js +1 -1
  280. package/dist/esm/ic-select-with-multi.entry.js +14 -1
  281. package/dist/esm/ic-select-with-multi.entry.js.map +1 -1
  282. package/dist/esm/ic-side-navigation.entry.js +1 -1
  283. package/dist/esm/ic-status-tag.entry.js +1 -1
  284. package/dist/esm/ic-step.entry.js +1 -1
  285. package/dist/esm/ic-stepper.entry.js +1 -1
  286. package/dist/esm/ic-switch.entry.js +1 -1
  287. package/dist/esm/ic-tab-group.entry.js +1 -1
  288. package/dist/esm/ic-tab-panel.entry.js +1 -1
  289. package/dist/esm/ic-tab.entry.js +1 -1
  290. package/dist/esm/ic-theme.entry.js +1 -1
  291. package/dist/esm/ic-toast.entry.js +1 -1
  292. package/dist/esm/ic-toggle-button.entry.js +1 -1
  293. package/dist/esm/ic-top-navigation.entry.js +60 -46
  294. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  295. package/dist/esm/ic-typography.entry.js +36 -12
  296. package/dist/esm/ic-typography.entry.js.map +1 -1
  297. package/dist/esm/index-93509377.js +10 -18
  298. package/dist/esm/loader.js +1 -1
  299. package/dist/esm/polyfills/core-js.js +0 -0
  300. package/dist/esm/polyfills/dom.js +0 -0
  301. package/dist/esm/polyfills/es5-html-element.js +0 -0
  302. package/dist/esm/polyfills/index.js +0 -0
  303. package/dist/esm/polyfills/system.js +0 -0
  304. package/dist/types/components/ic-data-table/ic-data-table.d.ts +96 -1
  305. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +11 -0
  306. package/dist/types/components/ic-data-table/story-data.d.ts +99 -0
  307. package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.d.ts +36 -0
  308. package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +2 -2
  309. package/dist/types/components/ic-select-with-multi/ic-select.d.ts +2 -2
  310. package/dist/types/components.d.ts +141 -389
  311. package/dist/types/utils/constants.d.ts +0 -37
  312. package/dist/types/utils/helpers.d.ts +16 -83
  313. package/dist/types/utils/types.d.ts +1 -92
  314. package/hydrate/index.js +945 -2932
  315. package/package.json +3 -4
  316. package/dist/cjs/date-helpers-c9551119.js +0 -150
  317. package/dist/cjs/date-helpers-c9551119.js.map +0 -1
  318. package/dist/cjs/helpers-7a069459.js.map +0 -1
  319. package/dist/cjs/helpers-f75cf7cf.js.map +0 -1
  320. package/dist/cjs/ic-date-input.cjs.entry.js +0 -1073
  321. package/dist/cjs/ic-date-input.cjs.entry.js.map +0 -1
  322. package/dist/cjs/ic-date-picker.cjs.entry.js +0 -1050
  323. package/dist/cjs/ic-date-picker.cjs.entry.js.map +0 -1
  324. package/dist/cjs/ic-empty-state.cjs.entry.js +0 -38
  325. package/dist/cjs/ic-empty-state.cjs.entry.js.map +0 -1
  326. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +0 -150
  327. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +0 -1
  328. package/dist/cjs/ic-menu.cjs.entry.js.map +0 -1
  329. package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +0 -1
  330. package/dist/collection/assets/calendar.svg +0 -3
  331. package/dist/collection/components/ic-date-input/ic-date-input.css +0 -560
  332. package/dist/collection/components/ic-date-input/ic-date-input.js +0 -1668
  333. package/dist/collection/components/ic-date-input/ic-date-input.js.map +0 -1
  334. package/dist/collection/components/ic-date-input/story-data.js +0 -28
  335. package/dist/collection/components/ic-date-input/story-data.js.map +0 -1
  336. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js +0 -1156
  337. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js.map +0 -1
  338. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js +0 -42
  339. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js.map +0 -1
  340. package/dist/collection/components/ic-date-picker/ic-date-picker.css +0 -878
  341. package/dist/collection/components/ic-date-picker/ic-date-picker.js +0 -1506
  342. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +0 -1
  343. package/dist/collection/components/ic-date-picker/ic-day-button.js +0 -36
  344. package/dist/collection/components/ic-date-picker/ic-day-button.js.map +0 -1
  345. package/dist/collection/components/ic-date-picker/ic-month-picker.js +0 -29
  346. package/dist/collection/components/ic-date-picker/ic-month-picker.js.map +0 -1
  347. package/dist/collection/components/ic-date-picker/ic-year-picker.js +0 -39
  348. package/dist/collection/components/ic-date-picker/ic-year-picker.js.map +0 -1
  349. package/dist/collection/components/ic-date-picker/story-data.js +0 -147
  350. package/dist/collection/components/ic-date-picker/story-data.js.map +0 -1
  351. package/dist/collection/components/ic-date-picker/test/a11y/ic-date-picker.test.a11y.js.map +0 -1
  352. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker-utils.spec.js +0 -207
  353. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker-utils.spec.js.map +0 -1
  354. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js +0 -962
  355. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js.map +0 -1
  356. package/dist/collection/utils/date-helpers.js +0 -133
  357. package/dist/collection/utils/date-helpers.js.map +0 -1
  358. package/dist/components/ic-date-input.js +0 -8
  359. package/dist/components/ic-date-input.js.map +0 -1
  360. package/dist/components/ic-date-input2.js +0 -1301
  361. package/dist/components/ic-date-input2.js.map +0 -1
  362. package/dist/components/ic-date-picker.d.ts +0 -11
  363. package/dist/components/ic-date-picker.js +0 -1171
  364. package/dist/components/ic-date-picker.js.map +0 -1
  365. package/dist/core/p-16f67397.entry.js +0 -2
  366. package/dist/core/p-16f67397.entry.js.map +0 -1
  367. package/dist/core/p-2c1fecb9.entry.js +0 -2
  368. package/dist/core/p-2c1fecb9.entry.js.map +0 -1
  369. package/dist/core/p-33679c06.entry.js +0 -2
  370. package/dist/core/p-33679c06.entry.js.map +0 -1
  371. package/dist/core/p-33dd24eb.js +0 -2
  372. package/dist/core/p-33dd24eb.js.map +0 -1
  373. package/dist/core/p-5392bca0.entry.js +0 -2
  374. package/dist/core/p-5392bca0.entry.js.map +0 -1
  375. package/dist/core/p-550a5674.entry.js +0 -2
  376. package/dist/core/p-550a5674.entry.js.map +0 -1
  377. package/dist/core/p-6c0e2ceb.entry.js +0 -2
  378. package/dist/core/p-6c0e2ceb.entry.js.map +0 -1
  379. package/dist/core/p-8ab12a15.entry.js +0 -2
  380. package/dist/core/p-8ab12a15.entry.js.map +0 -1
  381. package/dist/core/p-aabab75f.entry.js +0 -2
  382. package/dist/core/p-aabab75f.entry.js.map +0 -1
  383. package/dist/core/p-c7590421.entry.js +0 -2
  384. package/dist/core/p-c7590421.entry.js.map +0 -1
  385. package/dist/core/p-caf857de.entry.js +0 -2
  386. package/dist/core/p-caf857de.entry.js.map +0 -1
  387. package/dist/core/p-cd799087.js +0 -2
  388. package/dist/core/p-cd799087.js.map +0 -1
  389. package/dist/core/p-d32692e2.entry.js +0 -2
  390. package/dist/core/p-d32692e2.entry.js.map +0 -1
  391. package/dist/core/p-d35c7c18.js +0 -2
  392. package/dist/core/p-d35c7c18.js.map +0 -1
  393. package/dist/core/p-e189f1d0.entry.js +0 -2
  394. package/dist/core/p-e189f1d0.entry.js.map +0 -1
  395. package/dist/core/p-e5d76564.entry.js +0 -2
  396. package/dist/core/p-e5d76564.entry.js.map +0 -1
  397. package/dist/core/p-f55ad6ae.entry.js +0 -2
  398. package/dist/core/p-f91527a0.entry.js +0 -2
  399. package/dist/core/p-f91527a0.entry.js.map +0 -1
  400. package/dist/esm/date-helpers-0e5e32a7.js +0 -136
  401. package/dist/esm/date-helpers-0e5e32a7.js.map +0 -1
  402. package/dist/esm/helpers-7aa21b0a.js.map +0 -1
  403. package/dist/esm/helpers-f328a7b6.js.map +0 -1
  404. package/dist/esm/ic-date-input.entry.js +0 -1069
  405. package/dist/esm/ic-date-input.entry.js.map +0 -1
  406. package/dist/esm/ic-date-picker.entry.js +0 -1046
  407. package/dist/esm/ic-date-picker.entry.js.map +0 -1
  408. package/dist/esm/ic-empty-state.entry.js.map +0 -1
  409. package/dist/esm/ic-input-component-container_4.entry.js +0 -143
  410. package/dist/esm/ic-input-component-container_4.entry.js.map +0 -1
  411. package/dist/esm/ic-menu.entry.js.map +0 -1
  412. package/dist/esm/ic-pagination-bar.entry.js.map +0 -1
  413. package/dist/types/components/ic-date-input/ic-date-input.d.ts +0 -242
  414. package/dist/types/components/ic-date-input/story-data.d.ts +0 -1
  415. package/dist/types/components/ic-date-input/test/helpers/ic-date-input.d.ts +0 -23
  416. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +0 -251
  417. package/dist/types/components/ic-date-picker/ic-day-button.d.ts +0 -16
  418. package/dist/types/components/ic-date-picker/ic-month-picker.d.ts +0 -14
  419. package/dist/types/components/ic-date-picker/ic-year-picker.d.ts +0 -16
  420. package/dist/types/components/ic-date-picker/story-data.d.ts +0 -22
  421. package/dist/types/utils/date-helpers.d.ts +0 -22
  422. /package/dist/core/{p-8ea47d42.entry.js.map → p-045359e1.entry.js.map} +0 -0
  423. /package/dist/core/{p-3745da83.entry.js.map → p-10fb4c46.entry.js.map} +0 -0
  424. /package/dist/core/{p-2e2e0099.entry.js.map → p-1ca332ca.entry.js.map} +0 -0
  425. /package/dist/core/{p-d4fdd8c1.entry.js.map → p-204ace96.entry.js.map} +0 -0
  426. /package/dist/core/{p-5fe96107.entry.js.map → p-2eac7dcc.entry.js.map} +0 -0
  427. /package/dist/core/{p-36508aad.entry.js.map → p-4753bac8.entry.js.map} +0 -0
  428. /package/dist/core/{p-4f1ffa39.entry.js.map → p-4baa0916.entry.js.map} +0 -0
  429. /package/dist/core/{p-776671cf.entry.js.map → p-4f413fc0.entry.js.map} +0 -0
  430. /package/dist/core/{p-9d540656.entry.js.map → p-595be57d.entry.js.map} +0 -0
  431. /package/dist/core/{p-7cecf5d5.entry.js.map → p-5ae93c16.entry.js.map} +0 -0
  432. /package/dist/core/{p-1ce75941.entry.js.map → p-5e0c830b.entry.js.map} +0 -0
  433. /package/dist/core/{p-e74f1d09.entry.js.map → p-624d4f5f.entry.js.map} +0 -0
  434. /package/dist/core/{p-9d01a7ad.entry.js.map → p-6933f8e9.entry.js.map} +0 -0
  435. /package/dist/core/{p-5e2e6c3b.entry.js.map → p-6c3044b6.entry.js.map} +0 -0
  436. /package/dist/core/{p-6690bc04.entry.js.map → p-75dac3d1.entry.js.map} +0 -0
  437. /package/dist/core/{p-85609bdd.entry.js.map → p-7ef8d616.entry.js.map} +0 -0
  438. /package/dist/core/{p-a0f9b259.entry.js.map → p-81ddc39d.entry.js.map} +0 -0
  439. /package/dist/core/{p-a6447b13.entry.js.map → p-869954a2.entry.js.map} +0 -0
  440. /package/dist/core/{p-47ac6838.entry.js.map → p-88d54b72.entry.js.map} +0 -0
  441. /package/dist/core/{p-06ae5bec.entry.js.map → p-8b08d8fe.entry.js.map} +0 -0
  442. /package/dist/core/{p-ca8cbd6a.entry.js.map → p-917c5721.entry.js.map} +0 -0
  443. /package/dist/core/{p-76d26018.entry.js.map → p-a0f8efb2.entry.js.map} +0 -0
  444. /package/dist/core/{p-a42c2f37.entry.js.map → p-a31031a5.entry.js.map} +0 -0
  445. /package/dist/core/{p-b306cbc8.entry.js.map → p-a434c3d4.entry.js.map} +0 -0
  446. /package/dist/core/{p-86012178.entry.js.map → p-a43c12cd.entry.js.map} +0 -0
  447. /package/dist/core/{p-8c90110a.entry.js.map → p-a50c3b9e.entry.js.map} +0 -0
  448. /package/dist/core/{p-1b7d426b.entry.js.map → p-ab09986c.entry.js.map} +0 -0
  449. /package/dist/core/{p-62e22508.entry.js.map → p-b82dcc29.entry.js.map} +0 -0
  450. /package/dist/core/{p-d5c99ec3.entry.js.map → p-ba86928c.entry.js.map} +0 -0
  451. /package/dist/core/{p-d3856ed3.entry.js.map → p-c34848da.entry.js.map} +0 -0
  452. /package/dist/core/{p-98448bdb.entry.js.map → p-d8469ac0.entry.js.map} +0 -0
  453. /package/dist/core/{p-1832f4b5.entry.js.map → p-db9c03c0.entry.js.map} +0 -0
  454. /package/dist/core/{p-ae422058.entry.js.map → p-e3997d60.entry.js.map} +0 -0
  455. /package/dist/core/{p-982a6e88.entry.js.map → p-e834344e.entry.js.map} +0 -0
  456. /package/dist/core/{p-c7820c23.entry.js.map → p-f3c840cd.entry.js.map} +0 -0
  457. /package/dist/core/{p-5759d771.entry.js.map → p-f7a14c01.entry.js.map} +0 -0
  458. /package/dist/core/{p-0939ce92.entry.js.map → p-f843da01.entry.js.map} +0 -0
  459. /package/dist/core/{p-e84b0310.entry.js.map → p-fc5611e2.entry.js.map} +0 -0
  460. /package/dist/types/components/{ic-date-picker/test/a11y/ic-date-picker.test.a11y.d.ts → ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.d.ts} +0 -0
@@ -1,1506 +0,0 @@
1
- import { Host, h, } from "@stencil/core";
2
- import { createDate, clampDate, dateMatches, dateInRange, getMonthStart, getMonthEnd, getWeekEnd, getWeekStart, yearInRange, } from "../../utils/date-helpers";
3
- import { stringEnumToArray, onComponentRequiredPropUndefined, } from "../../utils/helpers";
4
- import { IcWeekDays, IcShortDayNames, IcDateInputMonths, } from "../../utils/types";
5
- import chevron from "../../assets/chevron-icon.svg";
6
- import { DayButton } from "./ic-day-button";
7
- import { MonthPicker } from "./ic-month-picker";
8
- import { YearPicker } from "./ic-year-picker";
9
- const DEFAULT_DATE_FORMAT = "DD/MM/YYYY";
10
- const DEFAULT_DISABLE_DATES_FROM_NOW_MSG = "Dates in the future are not allowed. Please select a date in the past.";
11
- const DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG = "Dates in the past are not allowed. Please select a date in the future.";
12
- const DEFAULT_DISABLE_DAYS_MSG = "The date you have selected is on a day of the week that is not allowed. Please select another date.";
13
- const FOCUS_TIMER = 100;
14
- const PICKER_HEIGHT_SMALL = 360;
15
- const PICKER_HEIGHT_DEFAULT = 400;
16
- const PICKER_HEIGHT_LARGE = 440;
17
- export class DatePicker {
18
- constructor() {
19
- this.clearButtonEl = null;
20
- this.daysOfWeek = [];
21
- this.dayButtonFocussed = false;
22
- this.dayPickerKeyboardNav = false;
23
- this.dialogDescription = "";
24
- this.focusDay = true;
25
- this.liveRegionEl = null;
26
- this.monthNames = [];
27
- this.monthInViewUpdateHandled = false;
28
- this.myCalendarButtonClicked = false;
29
- this.showPickerAbove = false;
30
- this.today = new Date();
31
- this.todayButtonEl = null;
32
- this.yearButtonFocussed = false;
33
- this.setDecadeView = (start) => {
34
- let currYear = start - 1;
35
- const decadeArr = [];
36
- while (currYear <= start + 10) {
37
- decadeArr.push(currYear);
38
- currYear++;
39
- }
40
- this.decadeView = decadeArr;
41
- this.decadeStart = decadeArr[1];
42
- this.decadeEnd = decadeArr[10];
43
- };
44
- this.setSelectedDate = (d, emit = true) => {
45
- if (d === null || !dateMatches(d, this.selectedDate)) {
46
- this.selectedDate = d;
47
- this.value = d;
48
- if (emit) {
49
- this.icChange.emit({ value: d });
50
- }
51
- }
52
- };
53
- this.handleCalendarMouseDown = (event) => {
54
- const target = event.target;
55
- if (target.tagName !== "IC-BUTTON") {
56
- event.preventDefault();
57
- }
58
- };
59
- this.handleCalendarClick = (event) => {
60
- this.clearDialogDescription();
61
- event.stopImmediatePropagation();
62
- };
63
- this.handleDocumentClick = () => {
64
- this.calendarOpen = false;
65
- };
66
- this.keyDownHandler = (event) => {
67
- if (event.key === "Escape") {
68
- this.closeButtonClickHandler();
69
- this.inputEl.setCalendarFocus();
70
- }
71
- else {
72
- this.clearDialogDescription();
73
- }
74
- event.stopImmediatePropagation();
75
- };
76
- this.closeButtonClickHandler = () => {
77
- this.calendarOpen = false;
78
- };
79
- this.focusFirstElement = () => {
80
- this.monthButtonEl.setFocus();
81
- };
82
- this.focusLastElement = () => {
83
- if (this.showPickerClearButton && !this.clearButtonEl.disabled) {
84
- this.clearButtonEl.setFocus();
85
- }
86
- else if (this.showPickerTodayButton && !this.todayButtonEl.disabled) {
87
- this.todayButtonEl.setFocus();
88
- }
89
- else if (this.monthPickerVisible) {
90
- this.focussedMonthEl.setFocus();
91
- }
92
- else if (this.yearPickerVisible) {
93
- this.focussedYearEl.setFocus();
94
- }
95
- else {
96
- this.focussedDayEl.focus();
97
- }
98
- };
99
- this.focusFocussedDay = () => {
100
- this.focussedDayEl.focus();
101
- };
102
- this.monthButtonClickHandler = () => {
103
- this.yearPickerVisible = false;
104
- this.focusDay = false;
105
- this.monthPickerVisible = !this.monthPickerVisible;
106
- if (this.monthPickerVisible) {
107
- this.setAriaLiveRegionText("Month picker view open");
108
- }
109
- else {
110
- this.setMonthSelectedLiveRegionText();
111
- }
112
- };
113
- this.yearButtonClickHandler = () => {
114
- this.monthPickerVisible = false;
115
- this.focusDay = false;
116
- this.yearPickerVisible = !this.yearPickerVisible;
117
- if (this.yearPickerVisible) {
118
- this.setAriaLiveRegionText(`Year picker view open. ${this.getDecadeInViewText()}`);
119
- }
120
- else {
121
- this.setYearSelectedLiveRegionText();
122
- }
123
- };
124
- this.todayButtonClickHandler = () => {
125
- this.yearPickerVisible = false;
126
- this.monthPickerVisible = false;
127
- this.setFocussedDate(new Date());
128
- this.setAriaLiveRegionText(this.getMonthInViewText());
129
- setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);
130
- };
131
- this.todayButtonKeyDownHandler = (ev) => {
132
- if (ev.key === "Tab" && !ev.shiftKey && this.clearButtonEl.disabled) {
133
- this.focusFirstElement();
134
- ev.preventDefault();
135
- }
136
- };
137
- this.clearButtonClickHandler = () => {
138
- this.setSelectedDate(null, false);
139
- let text = "Selected date cleared.";
140
- if (!this.monthPickerVisible && !this.yearPickerVisible) {
141
- text += ` ${this.getMonthInViewText()}`;
142
- }
143
- if (this.monthPickerVisible) {
144
- this.focussedMonthEl.setFocus();
145
- }
146
- else if (this.yearPickerVisible) {
147
- this.focussedYearEl.setFocus();
148
- }
149
- else {
150
- this.focusFocussedDay();
151
- }
152
- this.setAriaLiveRegionText(text);
153
- };
154
- this.setMonthSelectedLiveRegionText = () => {
155
- this.setAriaLiveRegionText(`${this.monthNames[this.monthInView]} selected. ${this.getMonthInViewText()}`);
156
- };
157
- this.setYearSelectedLiveRegionText = () => {
158
- this.setAriaLiveRegionText(`${this.yearInView} selected. ${this.getMonthInViewText()}`);
159
- };
160
- this.getMonthInViewText = () => {
161
- return `${this.monthNames[this.monthInView]} ${this.yearInView} currently in view.`;
162
- };
163
- this.getDecadeInViewText = () => {
164
- return `${this.decadeStart} to ${this.decadeEnd} currently in view.`;
165
- };
166
- this.setAriaLiveRegionText = (text) => {
167
- this.liveRegionEl.innerText = text;
168
- };
169
- this.clearDialogDescription = () => {
170
- this.dialogDescription = "";
171
- };
172
- this.clearButtonKeyDownHandler = (ev) => {
173
- if (ev.key === "Tab" && !ev.shiftKey) {
174
- this.focusFirstElement();
175
- ev.preventDefault();
176
- }
177
- };
178
- this.goToPreviousMonth = (focusDay = false) => {
179
- this.focusDay = focusDay;
180
- this.moveMonths(-1);
181
- };
182
- this.goToNextMonth = (focusDay = false) => {
183
- this.focusDay = focusDay;
184
- this.moveMonths(1);
185
- };
186
- this.goToPreviousYear = (focusDay = false) => {
187
- if (this.isPrevYearAllowed()) {
188
- this.focusDay = focusDay;
189
- this.moveYears(-1);
190
- }
191
- };
192
- this.goToNextYear = (focusDay = false) => {
193
- if (this.isNextYearAllowed()) {
194
- this.focusDay = focusDay;
195
- this.moveYears(1);
196
- }
197
- };
198
- this.navButtonMouseDownHandler = (ev) => {
199
- ev.preventDefault();
200
- };
201
- this.renderMonthYearNavButton = (id, flip, disabled) => {
202
- const buttonSize = this.size;
203
- return (h("div", { "aria-hidden": "true" }, h("ic-button", { id: id, disableTooltip: true, disabled: disabled, onClick: this.monthYearNavClickHandler, class: { flip: flip }, variant: "icon", innerHTML: chevron, size: buttonSize, tabIndex: -1, "aria-hidden": "true", onMouseDown: this.navButtonMouseDownHandler })));
204
- };
205
- this.monthYearNavClickHandler = (ev) => {
206
- const target = ev.target;
207
- switch (target.id) {
208
- case "previous-month-button":
209
- this.goToPreviousMonth(this.dayButtonFocussed);
210
- break;
211
- case "next-month-button":
212
- this.goToNextMonth(this.dayButtonFocussed);
213
- break;
214
- case "previous-year-button":
215
- this.goToPreviousYear(this.dayButtonFocussed);
216
- break;
217
- case "next-year-button":
218
- this.goToNextYear(this.dayButtonFocussed);
219
- break;
220
- }
221
- };
222
- this.previousMonthButton = () => {
223
- let disabled = false;
224
- if (this.focussedDate !== null && this.minDate !== null) {
225
- const yearMatch = this.focussedDate.getFullYear() === this.minDate.getFullYear();
226
- if (yearMatch) {
227
- disabled = this.monthInView - 1 < this.minDate.getMonth();
228
- }
229
- }
230
- return this.renderMonthYearNavButton("previous-month-button", true, disabled);
231
- };
232
- this.nextMonthButton = () => {
233
- let disabled = false;
234
- if (this.focussedDate !== null && this.maxDate !== null) {
235
- const yearMatch = this.focussedDate.getFullYear() === this.maxDate.getFullYear();
236
- if (yearMatch) {
237
- disabled = this.monthInView + 1 > this.maxDate.getMonth();
238
- }
239
- }
240
- return this.renderMonthYearNavButton("next-month-button", false, disabled);
241
- };
242
- this.previousYearButton = () => {
243
- return this.renderMonthYearNavButton("previous-year-button", true, !this.isPrevYearAllowed());
244
- };
245
- this.nextYearButton = () => {
246
- return this.renderMonthYearNavButton("next-year-button", false, !this.isNextYearAllowed());
247
- };
248
- this.isPrevYearAllowed = () => {
249
- return this.isYearAllowed(this.yearInView - 1);
250
- };
251
- this.isNextYearAllowed = () => {
252
- return this.isYearAllowed(this.yearInView + 1);
253
- };
254
- this.isYearAllowed = (yr) => {
255
- return yearInRange(yr, this.minDate, this.maxDate);
256
- };
257
- this.getMonthView = (date) => {
258
- const start = getWeekStart(getMonthStart(date), this.startOfWeek);
259
- const end = getWeekEnd(getMonthEnd(date), this.startOfWeek);
260
- const days = [];
261
- let current = start;
262
- while (!dateMatches(current, end)) {
263
- days.push(current);
264
- current = new Date(current);
265
- current.setDate(current.getDate() + 1);
266
- }
267
- days.push(current);
268
- return days;
269
- };
270
- this.isCurrentMonth = () => {
271
- const d = new Date();
272
- return (d.getFullYear() === this.yearInView && d.getMonth() === this.monthInView);
273
- };
274
- this.updateMonthInView = () => {
275
- this.currMonthView = this.getMonthView(this.focussedDate);
276
- this.focussedDay = this.focussedDate.getDate();
277
- this.monthInView = this.focussedDate.getMonth();
278
- this.yearInView = this.focussedDate.getFullYear();
279
- if (this.dayPickerKeyboardNav) {
280
- this.monthInViewUpdateHandled = true;
281
- this.setAriaLiveRegionText(this.getMonthInViewText());
282
- this.dayPickerKeyboardNav = false;
283
- }
284
- };
285
- this.handleSelectDay = (day) => {
286
- this.setSelectedDate(day);
287
- this.calendarOpen = false;
288
- this.inputEl.setCalendarFocus();
289
- };
290
- this.handleSelectMonth = (month) => {
291
- this.moveMonths(month - this.monthInView);
292
- setTimeout(() => {
293
- this.monthButtonEl.setFocus();
294
- this.monthPickerVisible = false;
295
- this.setMonthSelectedLiveRegionText();
296
- }, FOCUS_TIMER);
297
- };
298
- this.handleSelectYear = (year) => {
299
- const yrPos = this.decadeView.indexOf(year);
300
- if (yrPos > 0 && yrPos < this.decadeView.length - 1) {
301
- this.moveYears(year - this.yearInView);
302
- this.focusDay = false;
303
- const monthName = this.monthNames[this.monthInView];
304
- this.setAriaLiveRegionText(`${year} selected. ${monthName} ${year} currently in view.`);
305
- setTimeout(() => {
306
- this.yearButtonEl.setFocus();
307
- this.yearPickerVisible = false;
308
- }, FOCUS_TIMER);
309
- }
310
- else {
311
- const moveYears = year - this.focussedYear > 0 ? 10 : -10;
312
- this.updateFocussedYear(moveYears, this.yearButtonFocussed);
313
- this.setAriaLiveRegionText(this.getDecadeInViewText());
314
- }
315
- };
316
- this.monthPickerKeyDownHandler = (ev) => {
317
- let handled = true;
318
- switch (ev.key) {
319
- case "ArrowUp":
320
- case "ArrowLeft":
321
- this.updateFocussedMonth(-1);
322
- break;
323
- case "ArrowDown":
324
- case "ArrowRight":
325
- this.updateFocussedMonth(1);
326
- break;
327
- case "Home":
328
- this.updateFocussedMonth(-this.focussedMonth);
329
- break;
330
- case "End":
331
- this.updateFocussedMonth(11 - this.focussedMonth);
332
- break;
333
- case "Tab":
334
- handled = this.calendarTabHandler(ev);
335
- break;
336
- case "Escape":
337
- ev.stopImmediatePropagation();
338
- this.monthPickerVisible = false;
339
- setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);
340
- break;
341
- default:
342
- handled = false;
343
- }
344
- if (handled) {
345
- ev.preventDefault();
346
- }
347
- };
348
- this.yearPickerKeyDownHandler = (ev) => {
349
- let handled = true;
350
- switch (ev.key) {
351
- case "ArrowUp":
352
- case "ArrowLeft":
353
- this.updateFocussedYear(-1);
354
- break;
355
- case "ArrowDown":
356
- case "ArrowRight":
357
- this.updateFocussedYear(1);
358
- break;
359
- case "Home":
360
- if (this.focussedYear > this.decadeStart) {
361
- this.updateFocussedYear(this.decadeStart - this.focussedYear);
362
- }
363
- break;
364
- case "End":
365
- if (this.focussedYear < this.decadeEnd) {
366
- this.updateFocussedYear(this.decadeEnd - this.focussedYear);
367
- }
368
- break;
369
- case "PageUp":
370
- this.updateFocussedYear(-10);
371
- break;
372
- case "PageDown":
373
- this.updateFocussedYear(10);
374
- break;
375
- case "Tab":
376
- handled = this.calendarTabHandler(ev);
377
- break;
378
- case "Escape":
379
- ev.stopImmediatePropagation();
380
- this.yearPickerVisible = false;
381
- setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);
382
- break;
383
- default:
384
- handled = false;
385
- }
386
- if (handled) {
387
- ev.preventDefault();
388
- }
389
- };
390
- this.onYearButtonFocusHandler = () => {
391
- this.yearButtonFocussed = true;
392
- };
393
- this.onYearButtonBlurHandler = () => {
394
- this.yearButtonFocussed = false;
395
- };
396
- this.monthButtonKeyDownHandler = (ev) => {
397
- let handled = false;
398
- switch (ev.key) {
399
- case "ArrowLeft":
400
- case "ArrowUp":
401
- handled = true;
402
- this.goToPreviousMonth();
403
- break;
404
- case "ArrowRight":
405
- case "ArrowDown":
406
- handled = true;
407
- this.goToNextMonth();
408
- break;
409
- case "Home":
410
- handled = true;
411
- this.focusDay = false;
412
- this.moveMonths(-this.monthInView);
413
- break;
414
- case "End":
415
- handled = true;
416
- this.focusDay = false;
417
- this.moveMonths(11 - this.monthInView);
418
- break;
419
- case "Tab":
420
- if (ev.shiftKey) {
421
- handled = true;
422
- this.focusLastElement();
423
- }
424
- break;
425
- case "Escape":
426
- if (this.monthPickerVisible) {
427
- this.monthPickerVisible = false;
428
- ev.stopImmediatePropagation();
429
- }
430
- break;
431
- default:
432
- break;
433
- }
434
- if (handled) {
435
- ev.preventDefault();
436
- }
437
- };
438
- this.yearButtonKeyDownHandler = (ev) => {
439
- let handled = false;
440
- switch (ev.key) {
441
- case "ArrowLeft":
442
- case "ArrowUp":
443
- handled = true;
444
- this.goToPreviousYear();
445
- break;
446
- case "ArrowRight":
447
- case "ArrowDown":
448
- handled = true;
449
- this.goToNextYear();
450
- break;
451
- case "Home":
452
- if (this.yearPickerVisible && this.yearInView > this.decadeStart) {
453
- handled = true;
454
- this.moveYears(this.decadeStart - this.yearInView);
455
- }
456
- break;
457
- case "End":
458
- if (this.yearPickerVisible && this.yearInView < this.decadeEnd) {
459
- handled = true;
460
- this.moveYears(this.decadeEnd - this.focussedYear);
461
- }
462
- break;
463
- case "PageUp":
464
- handled = true;
465
- this.focusDay = false;
466
- this.moveYears(-10);
467
- break;
468
- case "PageDown":
469
- handled = true;
470
- this.focusDay = false;
471
- this.moveYears(10);
472
- break;
473
- case "Escape":
474
- if (this.yearPickerVisible) {
475
- this.yearPickerVisible = false;
476
- ev.stopImmediatePropagation();
477
- }
478
- break;
479
- default:
480
- break;
481
- }
482
- if (handled) {
483
- ev.preventDefault();
484
- }
485
- };
486
- this.handleCalendarKeyDown = (ev) => {
487
- let handled = true;
488
- switch (ev.key) {
489
- case "ArrowDown":
490
- this.dayPickerKeyboardNav = true;
491
- this.moveDays(7);
492
- break;
493
- case "ArrowUp":
494
- this.dayPickerKeyboardNav = true;
495
- this.moveDays(-7);
496
- break;
497
- case "ArrowLeft":
498
- this.dayPickerKeyboardNav = true;
499
- this.moveDays(-1 * this.getNextDayToFocus(this.focussedDate, false));
500
- break;
501
- case "ArrowRight":
502
- this.dayPickerKeyboardNav = true;
503
- this.moveDays(this.getNextDayToFocus(this.focussedDate, true));
504
- break;
505
- case "PageUp":
506
- this.dayPickerKeyboardNav = true;
507
- ev.shiftKey ? this.moveYears(-1) : this.moveMonths(-1);
508
- break;
509
- case "PageDown":
510
- this.dayPickerKeyboardNav = true;
511
- ev.shiftKey ? this.moveYears(1) : this.moveMonths(1);
512
- break;
513
- case "Home":
514
- this.dayPickerKeyboardNav = true;
515
- this.setFocussedDate(new Date(this.focussedYear, this.focussedMonth, 1));
516
- break;
517
- case "End":
518
- this.dayPickerKeyboardNav = true;
519
- this.setFocussedDate(new Date(this.focussedYear, this.focussedMonth + 1, 0));
520
- break;
521
- case "Tab":
522
- handled = this.calendarTabHandler(ev);
523
- break;
524
- default:
525
- handled = false;
526
- break;
527
- }
528
- if (handled) {
529
- ev.preventDefault();
530
- }
531
- };
532
- this.calendarTabHandler = (ev) => {
533
- let handled = false;
534
- if (!ev.shiftKey &&
535
- (!this.showPickerTodayButton || this.isCurrentMonth()) &&
536
- (!this.showPickerClearButton || this.clearButtonEl.disabled)) {
537
- this.focusFirstElement();
538
- handled = true;
539
- }
540
- else if (ev.shiftKey) {
541
- this.yearButtonEl.setFocus();
542
- handled = true;
543
- }
544
- return handled;
545
- };
546
- this.onDayButtonFocusHandler = () => {
547
- this.dayButtonFocussed = true;
548
- };
549
- this.onDayButtonBlurHandler = () => {
550
- this.dayButtonFocussed = false;
551
- };
552
- this.getNextDayToFocus = (currDay, forward, level = 1) => {
553
- const move = forward ? 1 : -1;
554
- const nextDay = new Date(currDay);
555
- nextDay.setDate(nextDay.getDate() + move);
556
- const nextDayNum = Number(nextDay.getDay());
557
- if (this.disableDays.includes(nextDayNum)) {
558
- return this.getNextDayToFocus(nextDay, forward, level + 1);
559
- }
560
- else {
561
- return level;
562
- }
563
- };
564
- this.moveDays = (numDays) => {
565
- const d = new Date(this.focussedDate);
566
- d.setDate(d.getDate() + numDays);
567
- this.setFocussedDate(d);
568
- };
569
- this.moveMonths = (numMonths) => {
570
- const newMonth = this.focussedDate.getMonth() + numMonths;
571
- const min = new Date(new Date(getMonthStart(this.focussedDate)).setMonth(newMonth));
572
- const max = getMonthEnd(min);
573
- const newDate = new Date(new Date(this.focussedDate).setMonth(newMonth));
574
- this.setFocussedDate(clampDate(newDate, min, max));
575
- if (this.monthPickerVisible === false &&
576
- this.yearPickerVisible === false &&
577
- this.monthInViewUpdateHandled === false) {
578
- this.setAriaLiveRegionText(this.getMonthInViewText());
579
- }
580
- this.monthInViewUpdateHandled = false;
581
- };
582
- this.moveYears = (numYears) => {
583
- const newYear = this.focussedDate.getFullYear() + numYears;
584
- const min = new Date(new Date(getMonthStart(this.focussedDate)).setFullYear(newYear));
585
- const max = getMonthEnd(min);
586
- const newDate = new Date(new Date(this.focussedDate).setFullYear(newYear));
587
- this.setFocussedDate(clampDate(newDate, min, max));
588
- if (this.monthPickerVisible === false &&
589
- this.yearPickerVisible === false &&
590
- this.monthInViewUpdateHandled === false) {
591
- this.setAriaLiveRegionText(this.getMonthInViewText());
592
- }
593
- this.monthInViewUpdateHandled = false;
594
- };
595
- this.updateFocussedMonth = (adjust) => {
596
- const d = new Date(this.focussedYear, this.focussedMonth, 1);
597
- d.setMonth(this.focussedMonth + adjust);
598
- const newDate = clampDate(d, this.minDate, this.maxDate);
599
- this.focussedMonth = newDate.getMonth();
600
- setTimeout(() => this.focussedMonthEl.setFocus(), FOCUS_TIMER);
601
- };
602
- this.updateFocussedYear = (adjust, focusYear = true) => {
603
- const d = new Date(new Date().setFullYear(this.focussedYear + adjust));
604
- const newDate = clampDate(d, this.minDate, this.maxDate);
605
- this.setFocussedYear(newDate.getFullYear(), focusYear);
606
- };
607
- this.setFocussedDate = (d) => {
608
- this.focussedDate = clampDate(d, this.minDate, this.maxDate);
609
- };
610
- this.setFocussedDayEl = (element) => {
611
- this.focussedDayEl = element;
612
- };
613
- this.setFocussedMonthEl = (element) => {
614
- this.focussedMonthEl = element;
615
- };
616
- this.setFocussedYearEl = (element) => {
617
- this.focussedYearEl = element;
618
- };
619
- this.setFocussedYear = (newYear, focus = true) => {
620
- const prevYear = this.focussedYear;
621
- this.focussedYear = newYear;
622
- if (this.yearPickerVisible) {
623
- const newDecade = Math.floor(newYear / 10) * 10;
624
- const oldDecade = Math.floor(prevYear / 10) * 10;
625
- if (newDecade !== oldDecade) {
626
- this.setDecadeView(newDecade);
627
- this.setAriaLiveRegionText(this.getDecadeInViewText());
628
- }
629
- if (focus) {
630
- setTimeout(() => {
631
- if (this.focussedYearEl !== null)
632
- this.focussedYearEl.setFocus();
633
- }, FOCUS_TIMER);
634
- }
635
- }
636
- else {
637
- this.setDecadeView(Math.floor(newYear / 10) * 10);
638
- }
639
- };
640
- this.setDateInputProps = () => {
641
- const untilNowMsg = !this.disablePast ||
642
- this.disablePastMessage === DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG
643
- ? ""
644
- : this.disablePastMessage;
645
- const fromNowMsg = !this.disableFuture ||
646
- this.disableFutureMessage === DEFAULT_DISABLE_DATES_FROM_NOW_MSG
647
- ? ""
648
- : this.disableFutureMessage;
649
- const disableDaysMsg = !this.disableDays.length ||
650
- this.disableDaysMessage === DEFAULT_DISABLE_DAYS_MSG
651
- ? ""
652
- : this.disableDaysMessage;
653
- if (this.dateFormat !== DEFAULT_DATE_FORMAT) {
654
- this.dateInputProps.dateFormat = this.dateFormat;
655
- }
656
- if (this.disableFuture) {
657
- this.dateInputProps.disableFuture = this.disableFuture;
658
- if (fromNowMsg !== "") {
659
- this.dateInputProps.disableFutureMessage = fromNowMsg;
660
- }
661
- }
662
- if (this.disablePast) {
663
- this.dateInputProps.disablePast = this.disablePast;
664
- if (untilNowMsg !== "") {
665
- this.dateInputProps.disablePastMessage = untilNowMsg;
666
- }
667
- }
668
- if (this.disableDays.length > 0) {
669
- this.dateInputProps.disableDays = this.disableDays;
670
- if (disableDaysMsg !== "") {
671
- this.dateInputProps.disableDaysMessage = disableDaysMsg;
672
- }
673
- }
674
- this.dateInputProps.label = this.label;
675
- if (this.max !== null && this.max !== "") {
676
- this.dateInputProps.max = this.maxDate;
677
- }
678
- if (this.min !== null && this.min !== "") {
679
- this.dateInputProps.min = this.minDate;
680
- }
681
- if (this.helperText !== undefined) {
682
- this.dateInputProps.helperText = this.helperText;
683
- }
684
- if (this.inputId !== undefined) {
685
- this.dateInputProps.inputId = this.inputId;
686
- }
687
- if (this.name !== undefined) {
688
- this.dateInputProps.name = this.name;
689
- }
690
- this.dateInputProps.showClearButton = true;
691
- this.dateInputProps.showCalendarButton = true;
692
- if (this.disabled) {
693
- this.dateInputProps.disabled = this.disabled;
694
- }
695
- if (this.required) {
696
- this.dateInputProps.required = this.required;
697
- }
698
- if (this.size !== "default") {
699
- this.dateInputProps.size = this.size;
700
- }
701
- if (this.validationStatus !== "") {
702
- this.dateInputProps.validationStatus = this.validationStatus;
703
- }
704
- if (this.validationText !== "") {
705
- this.dateInputProps.validationText = this.validationText;
706
- }
707
- this.dateInputProps.value = this.value;
708
- };
709
- this.calendarOpen = false;
710
- this.currMonthView = [];
711
- this.currYearPickerView = [];
712
- this.dateInputProps = { label: "" };
713
- this.decadeView = [];
714
- this.focussedDate = null;
715
- this.focussedDay = undefined;
716
- this.focussedDayEl = undefined;
717
- this.focussedMonth = undefined;
718
- this.focussedMonthEl = undefined;
719
- this.focussedYear = undefined;
720
- this.maxDate = null;
721
- this.minDate = null;
722
- this.monthInView = undefined;
723
- this.monthPickerVisible = false;
724
- this.orderedDaysOfWeek = [];
725
- this.selectedDate = null;
726
- this.yearInView = undefined;
727
- this.yearPickerVisible = false;
728
- this.dateFormat = "DD/MM/YYYY";
729
- this.disabled = false;
730
- this.disableDays = [];
731
- this.disableDaysMessage = "The date you have selected is on a day of the week that is not allowed. Please select another date.";
732
- this.disableFuture = false;
733
- this.disableFutureMessage = "Dates in the future are not allowed. Please select a date in the past.";
734
- this.disablePast = false;
735
- this.disablePastMessage = "Dates in the past are not allowed. Please select a date in the future.";
736
- this.helperText = undefined;
737
- this.inputId = undefined;
738
- this.label = undefined;
739
- this.max = "";
740
- this.min = "";
741
- this.name = undefined;
742
- this.openAtDate = "";
743
- this.required = false;
744
- this.showDaysOutsideMonth = true;
745
- this.showPickerClearButton = true;
746
- this.showPickerTodayButton = true;
747
- this.size = "default";
748
- this.startOfWeek = IcWeekDays.Monday;
749
- this.validationStatus = "";
750
- this.validationText = "";
751
- this.value = "";
752
- }
753
- watchMaxHandler() {
754
- if (this.disableFuture) {
755
- this.maxDate = new Date();
756
- }
757
- else {
758
- this.maxDate = createDate(this.max, this.dateFormat);
759
- }
760
- }
761
- watchMinHandler() {
762
- if (this.disablePast) {
763
- this.minDate = new Date();
764
- }
765
- else {
766
- this.minDate = createDate(this.min, this.dateFormat);
767
- }
768
- }
769
- watchOpenHandler() {
770
- if (this.calendarOpen) {
771
- if (this.inputEl) {
772
- let pickerHeight = PICKER_HEIGHT_DEFAULT;
773
- if (this.size === "small") {
774
- pickerHeight = PICKER_HEIGHT_SMALL;
775
- }
776
- else if (this.size === "large") {
777
- pickerHeight = PICKER_HEIGHT_LARGE;
778
- }
779
- if (this.el.offsetTop + this.inputEl.offsetHeight + pickerHeight >
780
- window.innerHeight &&
781
- this.el.offsetTop > pickerHeight) {
782
- this.showPickerAbove = true;
783
- }
784
- else {
785
- this.showPickerAbove = false;
786
- }
787
- }
788
- if (this.selectedDate === null ||
789
- !dateInRange(this.selectedDate, this.minDate, this.maxDate)) {
790
- let openAt = new Date();
791
- if (this.openAtDate !== "") {
792
- openAt = createDate(this.openAtDate, this.dateFormat);
793
- }
794
- this.setFocussedDate(openAt);
795
- }
796
- else {
797
- this.setFocussedDate(this.selectedDate);
798
- }
799
- let dialogDesc = this.getMonthInViewText();
800
- if (this.selectedDate === null) {
801
- dialogDesc += " No date selected.";
802
- }
803
- dialogDesc +=
804
- " Use arrow keys to change day. Press enter or space to select a date or press escape to close the picker";
805
- this.dialogDescription = dialogDesc;
806
- setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);
807
- document.addEventListener("click", this.handleDocumentClick);
808
- }
809
- else {
810
- document.removeEventListener("click", this.handleDocumentClick);
811
- this.monthPickerVisible = false;
812
- this.yearPickerVisible = false;
813
- }
814
- }
815
- watchFocussedDateHandler(current, previous) {
816
- if (previous === null ||
817
- !(previous.getFullYear() === current.getFullYear() &&
818
- previous.getMonth() === current.getMonth())) {
819
- this.updateMonthInView();
820
- }
821
- }
822
- watchMonthInViewHandler() {
823
- this.focussedMonth = this.monthInView;
824
- }
825
- watchYearInViewHandler() {
826
- this.setFocussedYear(this.yearInView, false);
827
- }
828
- watchYearPickerVisibleHandler() {
829
- if (!this.yearPickerVisible) {
830
- this.setFocussedYear(this.yearInView);
831
- }
832
- }
833
- watchMonthPickerVisibleHandler() {
834
- if (!this.monthPickerVisible) {
835
- this.focussedMonth = this.monthInView;
836
- }
837
- }
838
- watchFocussedDayEl() {
839
- if (this.focusDay) {
840
- setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);
841
- }
842
- this.focusDay = true;
843
- }
844
- componentWillLoad() {
845
- onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Date Picker");
846
- this.monthNames = stringEnumToArray(IcDateInputMonths);
847
- this.daysOfWeek = stringEnumToArray(IcShortDayNames);
848
- this.orderedDaysOfWeek = this.daysOfWeek
849
- .splice(this.startOfWeek, this.daysOfWeek.length)
850
- .concat(this.daysOfWeek.splice(0, this.startOfWeek));
851
- this.watchMaxHandler();
852
- this.watchMinHandler();
853
- }
854
- localCalendarButtonClickHandler(ev) {
855
- this.myCalendarButtonClicked = true;
856
- if (!this.calendarOpen) {
857
- this.setSelectedDate(ev.detail.value, false);
858
- }
859
- this.calendarOpen = !this.calendarOpen;
860
- }
861
- calendarButtonClickHandler() {
862
- //closes this picker if calendar button in another clicked
863
- if (!this.myCalendarButtonClicked) {
864
- this.calendarOpen = false;
865
- }
866
- this.myCalendarButtonClicked = false;
867
- }
868
- render() {
869
- const { calendarOpen, dateInputProps, monthNames, size, focussedMonth, focussedYear, monthInView, yearInView, monthPickerVisible, yearPickerVisible, orderedDaysOfWeek, decadeView, minDate, maxDate, showPickerClearButton, showPickerTodayButton, dialogDescription, } = this;
870
- let monthButtonText = "";
871
- if (monthPickerVisible) {
872
- 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.`;
873
- }
874
- else {
875
- monthButtonText = `Press Enter or Space to open month picker view or use the arrow keys to change month.`;
876
- }
877
- let yearButtonText = "";
878
- if (yearPickerVisible) {
879
- 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.`;
880
- }
881
- else {
882
- yearButtonText = `Press Enter or Space to open year picker view or use the arrow keys to change the selected year.`;
883
- }
884
- this.setDateInputProps();
885
- const dialogLabel = "choose date";
886
- const monthLabel = monthNames && monthNames[monthInView]
887
- ? monthNames[monthInView]
888
- : "Open month picker";
889
- const yearLabel = this.yearInView ? this.yearInView : "Open year picker";
890
- let minDay = minDate;
891
- if (this.disablePast) {
892
- const yesterday = new Date(minDate);
893
- yesterday.setDate(minDate.getDate() - 1);
894
- minDay = yesterday;
895
- }
896
- return (h(Host, { onKeyDown: this.keyDownHandler, class: size }, h("div", { class: "date-input-container" }, h("ic-date-input", Object.assign({ ref: (el) => (this.inputEl = el) }, dateInputProps))), calendarOpen && (h("div", null, h("span", { id: "dialog-description", class: "sr-only" }, dialogDescription), h("div", { role: "dialog", "aria-modal": "true", "aria-label": dialogLabel, "aria-describedBy": "dialog-description", class: {
897
- "calendar-container": true,
898
- above: this.showPickerAbove,
899
- }, onMouseDown: this.handleCalendarMouseDown, onClick: this.handleCalendarClick }, h("span", { ref: (el) => (this.liveRegionEl = el), id: "live-region", "aria-live": "assertive", class: "sr-only" }), h("div", { class: {
900
- "month-year-nav-container": true,
901
- } }, h("div", { class: "month-year-nav" }, this.previousMonthButton(), h("span", { id: "select-month-hint", "aria-hidden": "true" }, monthButtonText), h("ic-button", { ref: (el) => (this.monthButtonEl = el), size: size, class: "month-picker-button", "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", { class: "month-year-nav" }, this.previousYearButton(), h("span", { id: "select-year-hint", "aria-hidden": "true" }, yearButtonText), h("ic-button", { ref: (el) => (this.yearButtonEl = el), size: size, class: "year-picker-button", "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("div", { class: {
902
- calendar: true,
903
- hidden: monthPickerVisible || yearPickerVisible,
904
- }, onKeyDown: this.handleCalendarKeyDown }, h("div", { class: "weekdays", "aria-hidden": "true" }, orderedDaysOfWeek.map((dayName) => {
905
- const header = size === "small" ? dayName.charAt(0) : dayName;
906
- return (h("div", { class: "calendar-day-header" }, h("ic-typography", { variant: "caption" }, header)));
907
- })), h("div", { class: "calendar-days-container" }, this.currMonthView.map((day) => (h(DayButton, { day: day, disableDay: this.disableDays.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 })))))), h("div", { class: {
908
- "month-picker-container": true,
909
- hidden: !monthPickerVisible,
910
- } }, monthPickerVisible && (h(MonthPicker, { size: size, onSelectMonth: this.handleSelectMonth, monthInView: monthInView, focussedMonth: focussedMonth, onKeyDown: this.monthPickerKeyDownHandler, focussedMonthRef: this.setFocussedMonthEl, minDate: minDate, maxDate: maxDate, yearInView: yearInView }))), h("div", { class: {
911
- "year-picker-container": true,
912
- hidden: !yearPickerVisible,
913
- } }, yearPickerVisible && (h(YearPicker, { 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", { class: {
914
- "bottom-buttons": true,
915
- "no-today": !showPickerTodayButton,
916
- } }, showPickerTodayButton && (h("ic-button", { 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")), showPickerClearButton && (h("ic-button", { 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 === "" ||
917
- this.value === null ||
918
- this.value === undefined }, "Clear"))))))));
919
- }
920
- static get is() { return "ic-date-picker"; }
921
- static get encapsulation() { return "shadow"; }
922
- static get delegatesFocus() { return true; }
923
- static get originalStyleUrls() {
924
- return {
925
- "$": ["ic-date-picker.css"]
926
- };
927
- }
928
- static get styleUrls() {
929
- return {
930
- "$": ["ic-date-picker.css"]
931
- };
932
- }
933
- static get properties() {
934
- return {
935
- "dateFormat": {
936
- "type": "string",
937
- "mutable": false,
938
- "complexType": {
939
- "original": "IcDateFormat",
940
- "resolved": "\"DD/MM/YYYY\" | \"MM/DD/YYYY\" | \"YYYY/MM/DD\"",
941
- "references": {
942
- "IcDateFormat": {
943
- "location": "import",
944
- "path": "../../utils/types",
945
- "id": "src/utils/types.ts::IcDateFormat"
946
- }
947
- }
948
- },
949
- "required": false,
950
- "optional": true,
951
- "docs": {
952
- "tags": [],
953
- "text": "The format in which the date will be displayed."
954
- },
955
- "attribute": "date-format",
956
- "reflect": false,
957
- "defaultValue": "\"DD/MM/YYYY\""
958
- },
959
- "disabled": {
960
- "type": "boolean",
961
- "mutable": false,
962
- "complexType": {
963
- "original": "boolean",
964
- "resolved": "boolean",
965
- "references": {}
966
- },
967
- "required": false,
968
- "optional": true,
969
- "docs": {
970
- "tags": [],
971
- "text": "If `true`, the disabled state will be set."
972
- },
973
- "attribute": "disabled",
974
- "reflect": false,
975
- "defaultValue": "false"
976
- },
977
- "disableDays": {
978
- "type": "unknown",
979
- "mutable": false,
980
- "complexType": {
981
- "original": "IcWeekDays[]",
982
- "resolved": "IcWeekDays[]",
983
- "references": {
984
- "IcWeekDays": {
985
- "location": "import",
986
- "path": "../../utils/types",
987
- "id": "src/utils/types.ts::IcWeekDays"
988
- }
989
- }
990
- },
991
- "required": false,
992
- "optional": true,
993
- "docs": {
994
- "tags": [],
995
- "text": "The days of the week to disable."
996
- },
997
- "defaultValue": "[]"
998
- },
999
- "disableDaysMessage": {
1000
- "type": "string",
1001
- "mutable": false,
1002
- "complexType": {
1003
- "original": "string",
1004
- "resolved": "string",
1005
- "references": {}
1006
- },
1007
- "required": false,
1008
- "optional": true,
1009
- "docs": {
1010
- "tags": [],
1011
- "text": "The text to display as the validation message when `disableDays` is `true` and a disabled date is entered."
1012
- },
1013
- "attribute": "disable-days-message",
1014
- "reflect": false,
1015
- "defaultValue": "\"The date you have selected is on a day of the week that is not allowed. Please select another date.\""
1016
- },
1017
- "disableFuture": {
1018
- "type": "boolean",
1019
- "mutable": false,
1020
- "complexType": {
1021
- "original": "boolean",
1022
- "resolved": "boolean",
1023
- "references": {}
1024
- },
1025
- "required": false,
1026
- "optional": true,
1027
- "docs": {
1028
- "tags": [],
1029
- "text": "If `true`, dates in the future are not allowed. A validation message will appear if a date in the future is entered."
1030
- },
1031
- "attribute": "disable-future",
1032
- "reflect": false,
1033
- "defaultValue": "false"
1034
- },
1035
- "disableFutureMessage": {
1036
- "type": "string",
1037
- "mutable": false,
1038
- "complexType": {
1039
- "original": "string",
1040
- "resolved": "string",
1041
- "references": {}
1042
- },
1043
- "required": false,
1044
- "optional": true,
1045
- "docs": {
1046
- "tags": [],
1047
- "text": "The text to display as the validation message when `disableFuture` is `true` and a date in the future is entered."
1048
- },
1049
- "attribute": "disable-future-message",
1050
- "reflect": false,
1051
- "defaultValue": "\"Dates in the future are not allowed. Please select a date in the past.\""
1052
- },
1053
- "disablePast": {
1054
- "type": "boolean",
1055
- "mutable": false,
1056
- "complexType": {
1057
- "original": "boolean",
1058
- "resolved": "boolean",
1059
- "references": {}
1060
- },
1061
- "required": false,
1062
- "optional": true,
1063
- "docs": {
1064
- "tags": [],
1065
- "text": "If `true`, dates in the past are not allowed. A validation message will appear if a date in the past is entered."
1066
- },
1067
- "attribute": "disable-past",
1068
- "reflect": false,
1069
- "defaultValue": "false"
1070
- },
1071
- "disablePastMessage": {
1072
- "type": "string",
1073
- "mutable": false,
1074
- "complexType": {
1075
- "original": "string",
1076
- "resolved": "string",
1077
- "references": {}
1078
- },
1079
- "required": false,
1080
- "optional": true,
1081
- "docs": {
1082
- "tags": [],
1083
- "text": "The text to display as the validation message when `disablePast` is `true` and a date in the past is entered."
1084
- },
1085
- "attribute": "disable-past-message",
1086
- "reflect": false,
1087
- "defaultValue": "\"Dates in the past are not allowed. Please select a date in the future.\""
1088
- },
1089
- "helperText": {
1090
- "type": "string",
1091
- "mutable": false,
1092
- "complexType": {
1093
- "original": "string",
1094
- "resolved": "string",
1095
- "references": {}
1096
- },
1097
- "required": false,
1098
- "optional": true,
1099
- "docs": {
1100
- "tags": [],
1101
- "text": "The helper text that will be displayed for additional field guidance. This will default to the text \"Use format\" along with the `dateFormat` value."
1102
- },
1103
- "attribute": "helper-text",
1104
- "reflect": false
1105
- },
1106
- "inputId": {
1107
- "type": "string",
1108
- "mutable": false,
1109
- "complexType": {
1110
- "original": "string",
1111
- "resolved": "string",
1112
- "references": {}
1113
- },
1114
- "required": false,
1115
- "optional": true,
1116
- "docs": {
1117
- "tags": [],
1118
- "text": "The ID for the input field. The default will be an automatically generated value."
1119
- },
1120
- "attribute": "input-id",
1121
- "reflect": false
1122
- },
1123
- "label": {
1124
- "type": "string",
1125
- "mutable": false,
1126
- "complexType": {
1127
- "original": "string",
1128
- "resolved": "string",
1129
- "references": {}
1130
- },
1131
- "required": true,
1132
- "optional": false,
1133
- "docs": {
1134
- "tags": [],
1135
- "text": "The label for the date input."
1136
- },
1137
- "attribute": "label",
1138
- "reflect": false
1139
- },
1140
- "max": {
1141
- "type": "string",
1142
- "mutable": false,
1143
- "complexType": {
1144
- "original": "string | Date",
1145
- "resolved": "Date | string",
1146
- "references": {
1147
- "Date": {
1148
- "location": "global",
1149
- "id": "global::Date"
1150
- }
1151
- }
1152
- },
1153
- "required": false,
1154
- "optional": true,
1155
- "docs": {
1156
- "tags": [],
1157
- "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`."
1158
- },
1159
- "attribute": "max",
1160
- "reflect": false,
1161
- "defaultValue": "\"\""
1162
- },
1163
- "min": {
1164
- "type": "string",
1165
- "mutable": false,
1166
- "complexType": {
1167
- "original": "string | Date",
1168
- "resolved": "Date | string",
1169
- "references": {
1170
- "Date": {
1171
- "location": "global",
1172
- "id": "global::Date"
1173
- }
1174
- }
1175
- },
1176
- "required": false,
1177
- "optional": true,
1178
- "docs": {
1179
- "tags": [],
1180
- "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`."
1181
- },
1182
- "attribute": "min",
1183
- "reflect": false,
1184
- "defaultValue": "\"\""
1185
- },
1186
- "name": {
1187
- "type": "string",
1188
- "mutable": false,
1189
- "complexType": {
1190
- "original": "string",
1191
- "resolved": "string",
1192
- "references": {}
1193
- },
1194
- "required": false,
1195
- "optional": true,
1196
- "docs": {
1197
- "tags": [],
1198
- "text": "The name of the control, which is submitted with the form data."
1199
- },
1200
- "attribute": "name",
1201
- "reflect": false
1202
- },
1203
- "openAtDate": {
1204
- "type": "string",
1205
- "mutable": false,
1206
- "complexType": {
1207
- "original": "string | Date",
1208
- "resolved": "Date | string",
1209
- "references": {
1210
- "Date": {
1211
- "location": "global",
1212
- "id": "global::Date"
1213
- }
1214
- }
1215
- },
1216
- "required": false,
1217
- "optional": false,
1218
- "docs": {
1219
- "tags": [],
1220
- "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."
1221
- },
1222
- "attribute": "open-at-date",
1223
- "reflect": false,
1224
- "defaultValue": "\"\""
1225
- },
1226
- "required": {
1227
- "type": "boolean",
1228
- "mutable": false,
1229
- "complexType": {
1230
- "original": "boolean",
1231
- "resolved": "boolean",
1232
- "references": {}
1233
- },
1234
- "required": false,
1235
- "optional": true,
1236
- "docs": {
1237
- "tags": [],
1238
- "text": "If `true`, the input will require a value."
1239
- },
1240
- "attribute": "required",
1241
- "reflect": false,
1242
- "defaultValue": "false"
1243
- },
1244
- "showDaysOutsideMonth": {
1245
- "type": "boolean",
1246
- "mutable": false,
1247
- "complexType": {
1248
- "original": "boolean",
1249
- "resolved": "boolean",
1250
- "references": {}
1251
- },
1252
- "required": false,
1253
- "optional": true,
1254
- "docs": {
1255
- "tags": [],
1256
- "text": "If `true`, days outside the current month will be visible in the date picker."
1257
- },
1258
- "attribute": "show-days-outside-month",
1259
- "reflect": false,
1260
- "defaultValue": "true"
1261
- },
1262
- "showPickerClearButton": {
1263
- "type": "boolean",
1264
- "mutable": false,
1265
- "complexType": {
1266
- "original": "boolean",
1267
- "resolved": "boolean",
1268
- "references": {}
1269
- },
1270
- "required": false,
1271
- "optional": true,
1272
- "docs": {
1273
- "tags": [],
1274
- "text": "If `true`, the `Clear` button on the date picker will be visible."
1275
- },
1276
- "attribute": "show-picker-clear-button",
1277
- "reflect": false,
1278
- "defaultValue": "true"
1279
- },
1280
- "showPickerTodayButton": {
1281
- "type": "boolean",
1282
- "mutable": false,
1283
- "complexType": {
1284
- "original": "boolean",
1285
- "resolved": "boolean",
1286
- "references": {}
1287
- },
1288
- "required": false,
1289
- "optional": true,
1290
- "docs": {
1291
- "tags": [],
1292
- "text": "If `true`, the `Go to today` button on the date picker will be visible."
1293
- },
1294
- "attribute": "show-picker-today-button",
1295
- "reflect": false,
1296
- "defaultValue": "true"
1297
- },
1298
- "size": {
1299
- "type": "string",
1300
- "mutable": false,
1301
- "complexType": {
1302
- "original": "IcSizes",
1303
- "resolved": "\"default\" | \"large\" | \"small\"",
1304
- "references": {
1305
- "IcSizes": {
1306
- "location": "import",
1307
- "path": "../../utils/types",
1308
- "id": "src/utils/types.ts::IcSizes"
1309
- }
1310
- }
1311
- },
1312
- "required": false,
1313
- "optional": true,
1314
- "docs": {
1315
- "tags": [],
1316
- "text": "The size of the date picker to be displayed."
1317
- },
1318
- "attribute": "size",
1319
- "reflect": false,
1320
- "defaultValue": "\"default\""
1321
- },
1322
- "startOfWeek": {
1323
- "type": "number",
1324
- "mutable": false,
1325
- "complexType": {
1326
- "original": "IcWeekDays",
1327
- "resolved": "IcWeekDays.Friday | IcWeekDays.Monday | IcWeekDays.Saturday | IcWeekDays.Sunday | IcWeekDays.Thursday | IcWeekDays.Tuesday | IcWeekDays.Wednesday",
1328
- "references": {
1329
- "IcWeekDays": {
1330
- "location": "import",
1331
- "path": "../../utils/types",
1332
- "id": "src/utils/types.ts::IcWeekDays"
1333
- }
1334
- }
1335
- },
1336
- "required": false,
1337
- "optional": true,
1338
- "docs": {
1339
- "tags": [],
1340
- "text": "The first day of the week. `0` for Sunday, `1` for Monday, etc.\nDefault is Monday."
1341
- },
1342
- "attribute": "start-of-week",
1343
- "reflect": false,
1344
- "defaultValue": "IcWeekDays.Monday"
1345
- },
1346
- "validationStatus": {
1347
- "type": "string",
1348
- "mutable": false,
1349
- "complexType": {
1350
- "original": "IcInformationStatusOrEmpty",
1351
- "resolved": "\"\" | \"error\" | \"success\" | \"warning\"",
1352
- "references": {
1353
- "IcInformationStatusOrEmpty": {
1354
- "location": "import",
1355
- "path": "../../utils/types",
1356
- "id": "src/utils/types.ts::IcInformationStatusOrEmpty"
1357
- }
1358
- }
1359
- },
1360
- "required": false,
1361
- "optional": true,
1362
- "docs": {
1363
- "tags": [],
1364
- "text": "The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in date validation."
1365
- },
1366
- "attribute": "validation-status",
1367
- "reflect": false,
1368
- "defaultValue": "\"\""
1369
- },
1370
- "validationText": {
1371
- "type": "string",
1372
- "mutable": false,
1373
- "complexType": {
1374
- "original": "string",
1375
- "resolved": "string",
1376
- "references": {}
1377
- },
1378
- "required": false,
1379
- "optional": true,
1380
- "docs": {
1381
- "tags": [],
1382
- "text": "The text to display as the validation message. This will override the built-in date validation."
1383
- },
1384
- "attribute": "validation-text",
1385
- "reflect": false,
1386
- "defaultValue": "\"\""
1387
- },
1388
- "value": {
1389
- "type": "string",
1390
- "mutable": true,
1391
- "complexType": {
1392
- "original": "string | Date | null | undefined",
1393
- "resolved": "Date | string",
1394
- "references": {
1395
- "Date": {
1396
- "location": "global",
1397
- "id": "global::Date"
1398
- }
1399
- }
1400
- },
1401
- "required": false,
1402
- "optional": true,
1403
- "docs": {
1404
- "tags": [],
1405
- "text": "The value of the date picker. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object."
1406
- },
1407
- "attribute": "value",
1408
- "reflect": false,
1409
- "defaultValue": "\"\""
1410
- }
1411
- };
1412
- }
1413
- static get states() {
1414
- return {
1415
- "calendarOpen": {},
1416
- "currMonthView": {},
1417
- "currYearPickerView": {},
1418
- "dateInputProps": {},
1419
- "decadeView": {},
1420
- "focussedDate": {},
1421
- "focussedDay": {},
1422
- "focussedDayEl": {},
1423
- "focussedMonth": {},
1424
- "focussedMonthEl": {},
1425
- "focussedYear": {},
1426
- "maxDate": {},
1427
- "minDate": {},
1428
- "monthInView": {},
1429
- "monthPickerVisible": {},
1430
- "orderedDaysOfWeek": {},
1431
- "selectedDate": {},
1432
- "yearInView": {},
1433
- "yearPickerVisible": {}
1434
- };
1435
- }
1436
- static get events() {
1437
- return [{
1438
- "method": "icChange",
1439
- "name": "icChange",
1440
- "bubbles": true,
1441
- "cancelable": true,
1442
- "composed": true,
1443
- "docs": {
1444
- "tags": [],
1445
- "text": "Emitted when the value has changed."
1446
- },
1447
- "complexType": {
1448
- "original": "{ value: Date }",
1449
- "resolved": "{ value: Date; }",
1450
- "references": {
1451
- "Date": {
1452
- "location": "global",
1453
- "id": "global::Date"
1454
- }
1455
- }
1456
- }
1457
- }];
1458
- }
1459
- static get elementRef() { return "el"; }
1460
- static get watchers() {
1461
- return [{
1462
- "propName": "max",
1463
- "methodName": "watchMaxHandler"
1464
- }, {
1465
- "propName": "min",
1466
- "methodName": "watchMinHandler"
1467
- }, {
1468
- "propName": "calendarOpen",
1469
- "methodName": "watchOpenHandler"
1470
- }, {
1471
- "propName": "focussedDate",
1472
- "methodName": "watchFocussedDateHandler"
1473
- }, {
1474
- "propName": "monthInView",
1475
- "methodName": "watchMonthInViewHandler"
1476
- }, {
1477
- "propName": "yearInView",
1478
- "methodName": "watchYearInViewHandler"
1479
- }, {
1480
- "propName": "yearPickerVisible",
1481
- "methodName": "watchYearPickerVisibleHandler"
1482
- }, {
1483
- "propName": "monthPickerVisible",
1484
- "methodName": "watchMonthPickerVisibleHandler"
1485
- }, {
1486
- "propName": "focussedDayEl",
1487
- "methodName": "watchFocussedDayEl"
1488
- }];
1489
- }
1490
- static get listeners() {
1491
- return [{
1492
- "name": "calendarButtonClicked",
1493
- "method": "localCalendarButtonClickHandler",
1494
- "target": undefined,
1495
- "capture": false,
1496
- "passive": false
1497
- }, {
1498
- "name": "calendarButtonClicked",
1499
- "method": "calendarButtonClickHandler",
1500
- "target": "document",
1501
- "capture": false,
1502
- "passive": false
1503
- }];
1504
- }
1505
- }
1506
- //# sourceMappingURL=ic-date-picker.js.map