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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (496) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/date-helpers-c9551119.js +150 -0
  3. package/dist/cjs/date-helpers-c9551119.js.map +1 -0
  4. package/dist/cjs/{helpers-b525d45a.js → helpers-6acbb97e.js} +15 -3
  5. package/dist/cjs/helpers-6acbb97e.js.map +1 -0
  6. package/dist/cjs/{helpers-c4444a7e.js → helpers-f75cf7cf.js} +94 -48
  7. package/dist/cjs/helpers-f75cf7cf.js.map +1 -0
  8. package/dist/cjs/ic-accordion-group.cjs.entry.js +11 -2
  9. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-badge.cjs.entry.js +16 -8
  14. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-button_3.cjs.entry.js +8 -2
  18. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-card.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-data-table.cjs.entry.js +43 -308
  25. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-date-input.cjs.entry.js +1108 -0
  27. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -0
  28. package/dist/cjs/ic-date-picker.cjs.entry.js +1053 -0
  29. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -0
  30. package/dist/cjs/ic-dialog.cjs.entry.js +14 -4
  31. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-empty-state.cjs.entry.js +38 -0
  34. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -0
  35. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +150 -0
  41. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -0
  42. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  43. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +1 -1
  47. package/dist/cjs/{ic-input-component-container_3.cjs.entry.js → ic-menu.cjs.entry.js} +5 -69
  48. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -0
  49. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-navigation-group.cjs.entry.js +16 -13
  51. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-navigation-item.cjs.entry.js +29 -33
  53. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  56. package/dist/cjs/{ic-empty-state_2.cjs.entry.js → ic-pagination-bar.cjs.entry.js} +4 -34
  57. package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +1 -0
  58. package/dist/cjs/ic-pagination_4.cjs.entry.js +5 -5
  59. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  62. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  63. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-select-with-multi.cjs.entry.js +6 -19
  65. package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
  67. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  72. package/dist/cjs/ic-tab-context.cjs.entry.js +18 -2
  73. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  75. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  76. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  77. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  78. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  79. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  80. package/dist/cjs/ic-top-navigation.cjs.entry.js +46 -60
  81. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-typography.cjs.entry.js +11 -35
  83. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  84. package/dist/cjs/index-4cf27b16.js +18 -10
  85. package/dist/cjs/loader.cjs.js +1 -1
  86. package/dist/collection/assets/calendar.svg +3 -0
  87. package/dist/collection/collection-manifest.json +2 -1
  88. package/dist/collection/components/ic-data-table/ic-data-table.css +7 -82
  89. package/dist/collection/components/ic-data-table/ic-data-table.js +44 -535
  90. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  91. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  92. package/dist/collection/components/ic-data-table/story-data.js +11 -386
  93. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  94. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +0 -319
  95. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  96. package/dist/collection/components/ic-date-input/ic-date-input.css +560 -0
  97. package/dist/collection/components/ic-date-input/ic-date-input.js +1737 -0
  98. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -0
  99. package/dist/collection/components/ic-date-input/story-data.js +28 -0
  100. package/dist/collection/components/ic-date-input/story-data.js.map +1 -0
  101. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js +1142 -0
  102. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js.map +1 -0
  103. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js +42 -0
  104. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js.map +1 -0
  105. package/dist/collection/components/ic-date-picker/ic-date-picker.css +878 -0
  106. package/dist/collection/components/ic-date-picker/ic-date-picker.js +1512 -0
  107. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -0
  108. package/dist/collection/components/ic-date-picker/ic-day-button.js +36 -0
  109. package/dist/collection/components/ic-date-picker/ic-day-button.js.map +1 -0
  110. package/dist/collection/components/ic-date-picker/ic-month-picker.js +29 -0
  111. package/dist/collection/components/ic-date-picker/ic-month-picker.js.map +1 -0
  112. package/dist/collection/components/ic-date-picker/ic-year-picker.js +39 -0
  113. package/dist/collection/components/ic-date-picker/ic-year-picker.js.map +1 -0
  114. package/dist/collection/components/ic-date-picker/story-data.js +148 -0
  115. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -0
  116. package/dist/collection/components/{ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js → ic-date-picker/test/a11y/ic-date-picker.test.a11y.js} +5 -3
  117. package/dist/collection/components/ic-date-picker/test/a11y/ic-date-picker.test.a11y.js.map +1 -0
  118. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker-utils.spec.js +207 -0
  119. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker-utils.spec.js.map +1 -0
  120. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js +991 -0
  121. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js.map +1 -0
  122. package/dist/collection/components/ic-menu-with-multi/ic-menu.js +2 -2
  123. package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +1 -1
  124. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +1 -1
  125. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  126. package/dist/collection/components/ic-select-with-multi/ic-select.js +2 -2
  127. package/dist/collection/components/ic-select-with-multi/ic-select.js.map +1 -1
  128. package/dist/collection/utils/constants.js +55 -0
  129. package/dist/collection/utils/constants.js.map +1 -1
  130. package/dist/collection/utils/date-helpers.js +133 -0
  131. package/dist/collection/utils/date-helpers.js.map +1 -0
  132. package/dist/collection/utils/helpers.js +272 -42
  133. package/dist/collection/utils/helpers.js.map +1 -1
  134. package/dist/collection/utils/types.js +45 -0
  135. package/dist/collection/utils/types.js.map +1 -1
  136. package/dist/components/helpers.js +15 -3
  137. package/dist/components/helpers.js.map +1 -1
  138. package/dist/components/helpers2.js +91 -45
  139. package/dist/components/helpers2.js.map +1 -1
  140. package/dist/components/ic-accordion-group.js +14 -4
  141. package/dist/components/ic-accordion-group.js.map +1 -1
  142. package/dist/components/ic-badge.js +16 -8
  143. package/dist/components/ic-badge.js.map +1 -1
  144. package/dist/components/ic-button2.js +11 -3
  145. package/dist/components/ic-button2.js.map +1 -1
  146. package/dist/components/ic-card.js +1 -1
  147. package/dist/components/ic-checkbox-group.js +1 -1
  148. package/dist/components/ic-checkbox.js +1 -1
  149. package/dist/components/ic-chip.js +1 -1
  150. package/dist/components/ic-data-table.js +49 -334
  151. package/dist/components/ic-data-table.js.map +1 -1
  152. package/dist/components/{ic-data-table-title-bar.d.ts → ic-date-input.d.ts} +4 -4
  153. package/dist/components/ic-date-input.js +8 -0
  154. package/dist/components/ic-date-input.js.map +1 -0
  155. package/dist/components/ic-date-input2.js +1340 -0
  156. package/dist/components/ic-date-input2.js.map +1 -0
  157. package/dist/components/ic-date-picker.d.ts +11 -0
  158. package/dist/components/ic-date-picker.js +1175 -0
  159. package/dist/components/ic-date-picker.js.map +1 -0
  160. package/dist/components/ic-dialog.js +13 -3
  161. package/dist/components/ic-dialog.js.map +1 -1
  162. package/dist/components/ic-empty-state.js +57 -1
  163. package/dist/components/ic-empty-state.js.map +1 -1
  164. package/dist/components/ic-input-component-container2.js +1 -1
  165. package/dist/components/ic-input-component-container2.js.map +1 -1
  166. package/dist/components/ic-link2.js +1 -1
  167. package/dist/components/ic-menu-item2.js +1 -1
  168. package/dist/components/ic-menu2.js +2 -2
  169. package/dist/components/ic-menu2.js.map +1 -1
  170. package/dist/components/ic-menu3.js +1 -1
  171. package/dist/components/ic-menu3.js.map +1 -1
  172. package/dist/components/ic-navigation-button.js +1 -1
  173. package/dist/components/ic-navigation-group.js +15 -12
  174. package/dist/components/ic-navigation-group.js.map +1 -1
  175. package/dist/components/ic-navigation-item.js +29 -33
  176. package/dist/components/ic-navigation-item.js.map +1 -1
  177. package/dist/components/ic-pagination-bar2.js +1 -1
  178. package/dist/components/ic-pagination-bar2.js.map +1 -1
  179. package/dist/components/ic-pagination-item2.js +1 -1
  180. package/dist/components/ic-pagination2.js +5 -5
  181. package/dist/components/ic-pagination2.js.map +1 -1
  182. package/dist/components/ic-radio-group.js +1 -1
  183. package/dist/components/ic-radio-option.js +1 -1
  184. package/dist/components/ic-search-bar.js +1 -1
  185. package/dist/components/ic-select-with-multi.js +1 -14
  186. package/dist/components/ic-select-with-multi.js.map +1 -1
  187. package/dist/components/ic-select2.js +1 -1
  188. package/dist/components/ic-side-navigation.js +1 -1
  189. package/dist/components/ic-side-navigation.js.map +1 -1
  190. package/dist/components/ic-switch.js +1 -1
  191. package/dist/components/ic-tab-context.js +18 -2
  192. package/dist/components/ic-tab-context.js.map +1 -1
  193. package/dist/components/ic-tab.js +1 -1
  194. package/dist/components/ic-text-field2.js +1 -1
  195. package/dist/components/ic-toggle-button.js +1 -1
  196. package/dist/components/ic-top-navigation.js +47 -61
  197. package/dist/components/ic-top-navigation.js.map +1 -1
  198. package/dist/components/ic-typography2.js +12 -38
  199. package/dist/components/ic-typography2.js.map +1 -1
  200. package/dist/core/core.css +1 -1
  201. package/dist/core/core.esm.js +1 -1
  202. package/dist/core/core.esm.js.map +1 -1
  203. package/dist/core/{p-917c5721.entry.js → p-04f46dac.entry.js} +2 -2
  204. package/dist/core/{p-204ace96.entry.js → p-05d0ac42.entry.js} +2 -2
  205. package/dist/core/{p-a50c3b9e.entry.js → p-0707f2fc.entry.js} +2 -2
  206. package/dist/core/{p-6933f8e9.entry.js → p-094a0455.entry.js} +2 -2
  207. package/dist/core/{p-a434c3d4.entry.js → p-1170c02d.entry.js} +2 -2
  208. package/dist/core/{p-869954a2.entry.js → p-169dcfdd.entry.js} +2 -2
  209. package/dist/core/{p-f7a14c01.entry.js → p-1a4bce88.entry.js} +2 -2
  210. package/dist/core/{p-76915584.entry.js → p-1c3bd46d.entry.js} +2 -2
  211. package/dist/core/p-1c3bd46d.entry.js.map +1 -0
  212. package/dist/core/{p-4baa0916.entry.js → p-28bddd8d.entry.js} +2 -2
  213. package/dist/core/{p-a43c12cd.entry.js → p-2ec33c00.entry.js} +2 -2
  214. package/dist/core/p-31800427.entry.js +2 -0
  215. package/dist/core/{p-045359e1.entry.js.map → p-31800427.entry.js.map} +1 -1
  216. package/dist/core/p-33dd24eb.js +2 -0
  217. package/dist/core/p-33dd24eb.js.map +1 -0
  218. package/dist/core/p-3b0caac0.js +2 -0
  219. package/dist/core/p-3b0caac0.js.map +1 -0
  220. package/dist/core/{p-f843da01.entry.js → p-3d0185a4.entry.js} +2 -2
  221. package/dist/core/{p-f3c840cd.entry.js → p-3f4c408a.entry.js} +2 -2
  222. package/dist/core/{p-e834344e.entry.js → p-4020d7f7.entry.js} +2 -2
  223. package/dist/core/p-402fd288.entry.js +2 -0
  224. package/dist/core/p-402fd288.entry.js.map +1 -0
  225. package/dist/core/{p-88d54b72.entry.js → p-49449a2d.entry.js} +2 -2
  226. package/dist/core/{p-db9c03c0.entry.js → p-4a30b0fc.entry.js} +2 -2
  227. package/dist/core/{p-a31031a5.entry.js → p-4b361789.entry.js} +2 -2
  228. package/dist/core/p-50cfc2bb.entry.js +2 -0
  229. package/dist/core/{p-ba86928c.entry.js.map → p-50cfc2bb.entry.js.map} +1 -1
  230. package/dist/core/{p-624d4f5f.entry.js → p-55d819a6.entry.js} +2 -2
  231. package/dist/core/{p-10fb4c46.entry.js → p-58c87b3d.entry.js} +2 -2
  232. package/dist/core/p-623f911f.entry.js +2 -0
  233. package/dist/core/p-623f911f.entry.js.map +1 -0
  234. package/dist/core/p-66b8f0a7.entry.js +2 -0
  235. package/dist/core/p-66b8f0a7.entry.js.map +1 -0
  236. package/dist/core/p-6b68ee01.entry.js +2 -0
  237. package/dist/core/p-6b68ee01.entry.js.map +1 -0
  238. package/dist/core/{p-595be57d.entry.js → p-7c8f85fd.entry.js} +2 -2
  239. package/dist/core/{p-d8469ac0.entry.js → p-7d1381ef.entry.js} +2 -2
  240. package/dist/core/p-849f43c3.entry.js +2 -0
  241. package/dist/core/p-849f43c3.entry.js.map +1 -0
  242. package/dist/core/{p-e3997d60.entry.js → p-8b1d128c.entry.js} +2 -2
  243. package/dist/core/{p-81ddc39d.entry.js → p-8ef85b15.entry.js} +2 -2
  244. package/dist/core/p-925da2d2.entry.js +2 -0
  245. package/dist/core/p-925da2d2.entry.js.map +1 -0
  246. package/dist/core/p-940de102.entry.js +2 -0
  247. package/dist/core/p-940de102.entry.js.map +1 -0
  248. package/dist/core/p-981b6f12.entry.js +2 -0
  249. package/dist/core/p-981b6f12.entry.js.map +1 -0
  250. package/dist/core/{p-b6639e4a.entry.js → p-9e3178e8.entry.js} +2 -2
  251. package/dist/core/{p-b6639e4a.entry.js.map → p-9e3178e8.entry.js.map} +1 -1
  252. package/dist/core/{p-a0f8efb2.entry.js → p-a9ed6a71.entry.js} +2 -2
  253. package/dist/core/p-aabab75f.entry.js +2 -0
  254. package/dist/core/p-aabab75f.entry.js.map +1 -0
  255. package/dist/core/{p-ab09986c.entry.js → p-b3d21d06.entry.js} +2 -2
  256. package/dist/core/p-b612d68b.entry.js +2 -0
  257. package/dist/core/p-b612d68b.entry.js.map +1 -0
  258. package/dist/core/p-b8a3b16d.entry.js +2 -0
  259. package/dist/core/p-b8a3b16d.entry.js.map +1 -0
  260. package/dist/core/{p-b82dcc29.entry.js → p-bbcd6d06.entry.js} +2 -2
  261. package/dist/core/{p-1ca332ca.entry.js → p-bcfbd465.entry.js} +2 -2
  262. package/dist/core/{p-5ae93c16.entry.js → p-bf316546.entry.js} +2 -2
  263. package/dist/core/{p-fc5611e2.entry.js → p-c51496ee.entry.js} +2 -2
  264. package/dist/core/p-c51496ee.entry.js.map +1 -0
  265. package/dist/core/p-c7590421.entry.js +2 -0
  266. package/dist/core/p-c7590421.entry.js.map +1 -0
  267. package/dist/core/{p-4f413fc0.entry.js → p-c7b52046.entry.js} +2 -2
  268. package/dist/core/p-cd799087.js +2 -0
  269. package/dist/core/p-cd799087.js.map +1 -0
  270. package/dist/core/{p-7ef8d616.entry.js → p-da578abf.entry.js} +2 -2
  271. package/dist/core/p-dae1779d.entry.js +2 -0
  272. package/dist/core/{p-f14454b1.entry.js.map → p-dae1779d.entry.js.map} +1 -1
  273. package/dist/core/{p-8b08d8fe.entry.js → p-e0e26834.entry.js} +2 -2
  274. package/dist/core/p-e189f1d0.entry.js +2 -0
  275. package/dist/core/p-e189f1d0.entry.js.map +1 -0
  276. package/dist/core/p-e30f2623.entry.js +2 -0
  277. package/dist/core/p-e30f2623.entry.js.map +1 -0
  278. package/dist/core/p-e676069e.entry.js +2 -0
  279. package/dist/core/p-e676069e.entry.js.map +1 -0
  280. package/dist/core/{p-75dac3d1.entry.js → p-ed7379e3.entry.js} +2 -2
  281. package/dist/core/{p-c34848da.entry.js → p-f4965c26.entry.js} +2 -2
  282. package/dist/core/{p-6c3044b6.entry.js → p-f9ee48f7.entry.js} +2 -2
  283. package/dist/core/{p-2eac7dcc.entry.js → p-f9fcdd21.entry.js} +2 -2
  284. package/dist/core/p-fdd8f3a5.entry.js +2 -0
  285. package/dist/core/p-fdd8f3a5.entry.js.map +1 -0
  286. package/dist/core/{p-5e0c830b.entry.js → p-ffa94639.entry.js} +2 -2
  287. package/dist/core/{p-5e0c830b.entry.js.map → p-ffa94639.entry.js.map} +1 -1
  288. package/dist/esm/core.js +1 -1
  289. package/dist/esm/date-helpers-0e5e32a7.js +136 -0
  290. package/dist/esm/date-helpers-0e5e32a7.js.map +1 -0
  291. package/dist/esm/{helpers-12b4266a.js → helpers-451953f9.js} +16 -4
  292. package/dist/esm/helpers-451953f9.js.map +1 -0
  293. package/dist/esm/{helpers-1f07eb61.js → helpers-f328a7b6.js} +92 -46
  294. package/dist/esm/helpers-f328a7b6.js.map +1 -0
  295. package/dist/esm/ic-accordion-group.entry.js +11 -2
  296. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  297. package/dist/esm/ic-accordion.entry.js +1 -1
  298. package/dist/esm/ic-alert.entry.js +1 -1
  299. package/dist/esm/ic-back-to-top.entry.js +1 -1
  300. package/dist/esm/ic-badge.entry.js +16 -8
  301. package/dist/esm/ic-badge.entry.js.map +1 -1
  302. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  303. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  304. package/dist/esm/ic-button_3.entry.js +8 -2
  305. package/dist/esm/ic-button_3.entry.js.map +1 -1
  306. package/dist/esm/ic-card.entry.js +1 -1
  307. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  308. package/dist/esm/ic-checkbox.entry.js +1 -1
  309. package/dist/esm/ic-chip.entry.js +1 -1
  310. package/dist/esm/ic-data-row.entry.js +1 -1
  311. package/dist/esm/ic-data-table.entry.js +44 -309
  312. package/dist/esm/ic-data-table.entry.js.map +1 -1
  313. package/dist/esm/ic-date-input.entry.js +1104 -0
  314. package/dist/esm/ic-date-input.entry.js.map +1 -0
  315. package/dist/esm/ic-date-picker.entry.js +1049 -0
  316. package/dist/esm/ic-date-picker.entry.js.map +1 -0
  317. package/dist/esm/ic-dialog.entry.js +14 -4
  318. package/dist/esm/ic-dialog.entry.js.map +1 -1
  319. package/dist/esm/ic-divider.entry.js +1 -1
  320. package/dist/{components/ic-empty-state2.js → esm/ic-empty-state.entry.js} +11 -38
  321. package/dist/esm/ic-empty-state.entry.js.map +1 -0
  322. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  323. package/dist/esm/ic-footer-link.entry.js +1 -1
  324. package/dist/esm/ic-footer.entry.js +1 -1
  325. package/dist/esm/ic-hero.entry.js +1 -1
  326. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  327. package/dist/esm/ic-input-component-container_4.entry.js +143 -0
  328. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -0
  329. package/dist/esm/ic-link.entry.js +1 -1
  330. package/dist/esm/ic-menu-group.entry.js +1 -1
  331. package/dist/esm/ic-menu-item.entry.js +1 -1
  332. package/dist/esm/ic-menu-with-multi.entry.js +1 -1
  333. package/dist/esm/ic-menu-with-multi.entry.js.map +1 -1
  334. package/dist/esm/{ic-input-component-container_3.entry.js → ic-menu.entry.js} +7 -69
  335. package/dist/esm/ic-menu.entry.js.map +1 -0
  336. package/dist/esm/ic-navigation-button.entry.js +1 -1
  337. package/dist/esm/ic-navigation-group.entry.js +16 -13
  338. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  339. package/dist/esm/ic-navigation-item.entry.js +29 -33
  340. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  341. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  342. package/dist/esm/ic-page-header.entry.js +1 -1
  343. package/dist/esm/{ic-empty-state_2.entry.js → ic-pagination-bar.entry.js} +5 -34
  344. package/dist/esm/ic-pagination-bar.entry.js.map +1 -0
  345. package/dist/esm/ic-pagination_4.entry.js +5 -5
  346. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  347. package/dist/esm/ic-popover-menu.entry.js +1 -1
  348. package/dist/esm/ic-radio-group.entry.js +1 -1
  349. package/dist/esm/ic-radio-option.entry.js +1 -1
  350. package/dist/esm/ic-search-bar.entry.js +1 -1
  351. package/dist/esm/ic-select-with-multi.entry.js +1 -14
  352. package/dist/esm/ic-select-with-multi.entry.js.map +1 -1
  353. package/dist/esm/ic-side-navigation.entry.js +2 -2
  354. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  355. package/dist/esm/ic-status-tag.entry.js +1 -1
  356. package/dist/esm/ic-step.entry.js +1 -1
  357. package/dist/esm/ic-stepper.entry.js +1 -1
  358. package/dist/esm/ic-switch.entry.js +1 -1
  359. package/dist/esm/ic-tab-context.entry.js +18 -2
  360. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  361. package/dist/esm/ic-tab-group.entry.js +1 -1
  362. package/dist/esm/ic-tab-panel.entry.js +1 -1
  363. package/dist/esm/ic-tab.entry.js +1 -1
  364. package/dist/esm/ic-theme.entry.js +1 -1
  365. package/dist/esm/ic-toast.entry.js +1 -1
  366. package/dist/esm/ic-toggle-button.entry.js +1 -1
  367. package/dist/esm/ic-top-navigation.entry.js +46 -60
  368. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  369. package/dist/esm/ic-typography.entry.js +12 -36
  370. package/dist/esm/ic-typography.entry.js.map +1 -1
  371. package/dist/esm/index-93509377.js +18 -10
  372. package/dist/esm/loader.js +1 -1
  373. package/dist/esm/polyfills/core-js.js +0 -0
  374. package/dist/esm/polyfills/dom.js +0 -0
  375. package/dist/esm/polyfills/es5-html-element.js +0 -0
  376. package/dist/esm/polyfills/index.js +0 -0
  377. package/dist/esm/polyfills/system.js +0 -0
  378. package/dist/types/components/ic-data-table/ic-data-table.d.ts +1 -96
  379. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +0 -11
  380. package/dist/types/components/ic-data-table/story-data.d.ts +0 -99
  381. package/dist/types/components/ic-date-input/ic-date-input.d.ts +251 -0
  382. package/dist/types/components/ic-date-input/story-data.d.ts +1 -0
  383. package/dist/types/components/ic-date-input/test/helpers/ic-date-input.d.ts +23 -0
  384. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +231 -0
  385. package/dist/types/components/ic-date-picker/ic-day-button.d.ts +16 -0
  386. package/dist/types/components/ic-date-picker/ic-month-picker.d.ts +14 -0
  387. package/dist/types/components/ic-date-picker/ic-year-picker.d.ts +16 -0
  388. package/dist/types/components/ic-date-picker/story-data.d.ts +22 -0
  389. package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +2 -2
  390. package/dist/types/components/ic-select-with-multi/ic-select.d.ts +2 -2
  391. package/dist/types/components.d.ts +390 -141
  392. package/dist/types/utils/constants.d.ts +37 -0
  393. package/dist/types/utils/date-helpers.d.ts +22 -0
  394. package/dist/types/utils/helpers.d.ts +84 -16
  395. package/dist/types/utils/types.d.ts +92 -1
  396. package/hydrate/index.js +3026 -950
  397. package/package.json +4 -3
  398. package/dist/cjs/helpers-b525d45a.js.map +0 -1
  399. package/dist/cjs/helpers-c4444a7e.js.map +0 -1
  400. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +0 -57
  401. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +0 -1
  402. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +0 -1
  403. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +0 -1
  404. package/dist/cjs/ic-input-label_2.cjs.entry.js +0 -86
  405. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +0 -1
  406. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.e2e.js +0 -217
  407. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.e2e.js.map +0 -1
  408. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +0 -87
  409. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +0 -160
  410. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +0 -1
  411. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js.map +0 -1
  412. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js +0 -70
  413. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js.map +0 -1
  414. package/dist/components/ic-data-table-title-bar.js +0 -136
  415. package/dist/components/ic-data-table-title-bar.js.map +0 -1
  416. package/dist/components/ic-empty-state2.js.map +0 -1
  417. package/dist/core/p-045359e1.entry.js +0 -2
  418. package/dist/core/p-169bfa51.entry.js +0 -2
  419. package/dist/core/p-169bfa51.entry.js.map +0 -1
  420. package/dist/core/p-1e91f540.entry.js +0 -2
  421. package/dist/core/p-1e91f540.entry.js.map +0 -1
  422. package/dist/core/p-347e8dab.entry.js +0 -2
  423. package/dist/core/p-347e8dab.entry.js.map +0 -1
  424. package/dist/core/p-3803a5b5.entry.js +0 -2
  425. package/dist/core/p-3803a5b5.entry.js.map +0 -1
  426. package/dist/core/p-4753bac8.entry.js +0 -2
  427. package/dist/core/p-4753bac8.entry.js.map +0 -1
  428. package/dist/core/p-5171169f.entry.js +0 -2
  429. package/dist/core/p-5171169f.entry.js.map +0 -1
  430. package/dist/core/p-5ee4319c.entry.js +0 -2
  431. package/dist/core/p-5ee4319c.entry.js.map +0 -1
  432. package/dist/core/p-5f4e96ec.entry.js +0 -2
  433. package/dist/core/p-5f4e96ec.entry.js.map +0 -1
  434. package/dist/core/p-7267fe19.entry.js +0 -2
  435. package/dist/core/p-7267fe19.entry.js.map +0 -1
  436. package/dist/core/p-76915584.entry.js.map +0 -1
  437. package/dist/core/p-942282cd.entry.js +0 -2
  438. package/dist/core/p-942282cd.entry.js.map +0 -1
  439. package/dist/core/p-96b3e7e2.js +0 -2
  440. package/dist/core/p-96b3e7e2.js.map +0 -1
  441. package/dist/core/p-9caf19eb.js +0 -2
  442. package/dist/core/p-9caf19eb.js.map +0 -1
  443. package/dist/core/p-aac4185b.entry.js +0 -2
  444. package/dist/core/p-aac4185b.entry.js.map +0 -1
  445. package/dist/core/p-b2aa3d7c.entry.js +0 -2
  446. package/dist/core/p-b2aa3d7c.entry.js.map +0 -1
  447. package/dist/core/p-ba86928c.entry.js +0 -2
  448. package/dist/core/p-f14454b1.entry.js +0 -2
  449. package/dist/core/p-f6888309.entry.js +0 -2
  450. package/dist/core/p-f6888309.entry.js.map +0 -1
  451. package/dist/core/p-f74a8752.entry.js +0 -2
  452. package/dist/core/p-f74a8752.entry.js.map +0 -1
  453. package/dist/core/p-fc5611e2.entry.js.map +0 -1
  454. package/dist/esm/helpers-12b4266a.js.map +0 -1
  455. package/dist/esm/helpers-1f07eb61.js.map +0 -1
  456. package/dist/esm/ic-data-table-title-bar.entry.js +0 -53
  457. package/dist/esm/ic-data-table-title-bar.entry.js.map +0 -1
  458. package/dist/esm/ic-empty-state_2.entry.js.map +0 -1
  459. package/dist/esm/ic-input-component-container_3.entry.js.map +0 -1
  460. package/dist/esm/ic-input-label_2.entry.js +0 -81
  461. package/dist/esm/ic-input-label_2.entry.js.map +0 -1
  462. package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.d.ts +0 -36
  463. /package/dist/core/{p-917c5721.entry.js.map → p-04f46dac.entry.js.map} +0 -0
  464. /package/dist/core/{p-204ace96.entry.js.map → p-05d0ac42.entry.js.map} +0 -0
  465. /package/dist/core/{p-a50c3b9e.entry.js.map → p-0707f2fc.entry.js.map} +0 -0
  466. /package/dist/core/{p-6933f8e9.entry.js.map → p-094a0455.entry.js.map} +0 -0
  467. /package/dist/core/{p-a434c3d4.entry.js.map → p-1170c02d.entry.js.map} +0 -0
  468. /package/dist/core/{p-869954a2.entry.js.map → p-169dcfdd.entry.js.map} +0 -0
  469. /package/dist/core/{p-f7a14c01.entry.js.map → p-1a4bce88.entry.js.map} +0 -0
  470. /package/dist/core/{p-4baa0916.entry.js.map → p-28bddd8d.entry.js.map} +0 -0
  471. /package/dist/core/{p-a43c12cd.entry.js.map → p-2ec33c00.entry.js.map} +0 -0
  472. /package/dist/core/{p-f843da01.entry.js.map → p-3d0185a4.entry.js.map} +0 -0
  473. /package/dist/core/{p-f3c840cd.entry.js.map → p-3f4c408a.entry.js.map} +0 -0
  474. /package/dist/core/{p-e834344e.entry.js.map → p-4020d7f7.entry.js.map} +0 -0
  475. /package/dist/core/{p-88d54b72.entry.js.map → p-49449a2d.entry.js.map} +0 -0
  476. /package/dist/core/{p-db9c03c0.entry.js.map → p-4a30b0fc.entry.js.map} +0 -0
  477. /package/dist/core/{p-a31031a5.entry.js.map → p-4b361789.entry.js.map} +0 -0
  478. /package/dist/core/{p-624d4f5f.entry.js.map → p-55d819a6.entry.js.map} +0 -0
  479. /package/dist/core/{p-10fb4c46.entry.js.map → p-58c87b3d.entry.js.map} +0 -0
  480. /package/dist/core/{p-595be57d.entry.js.map → p-7c8f85fd.entry.js.map} +0 -0
  481. /package/dist/core/{p-d8469ac0.entry.js.map → p-7d1381ef.entry.js.map} +0 -0
  482. /package/dist/core/{p-e3997d60.entry.js.map → p-8b1d128c.entry.js.map} +0 -0
  483. /package/dist/core/{p-81ddc39d.entry.js.map → p-8ef85b15.entry.js.map} +0 -0
  484. /package/dist/core/{p-a0f8efb2.entry.js.map → p-a9ed6a71.entry.js.map} +0 -0
  485. /package/dist/core/{p-ab09986c.entry.js.map → p-b3d21d06.entry.js.map} +0 -0
  486. /package/dist/core/{p-b82dcc29.entry.js.map → p-bbcd6d06.entry.js.map} +0 -0
  487. /package/dist/core/{p-1ca332ca.entry.js.map → p-bcfbd465.entry.js.map} +0 -0
  488. /package/dist/core/{p-5ae93c16.entry.js.map → p-bf316546.entry.js.map} +0 -0
  489. /package/dist/core/{p-4f413fc0.entry.js.map → p-c7b52046.entry.js.map} +0 -0
  490. /package/dist/core/{p-7ef8d616.entry.js.map → p-da578abf.entry.js.map} +0 -0
  491. /package/dist/core/{p-8b08d8fe.entry.js.map → p-e0e26834.entry.js.map} +0 -0
  492. /package/dist/core/{p-75dac3d1.entry.js.map → p-ed7379e3.entry.js.map} +0 -0
  493. /package/dist/core/{p-c34848da.entry.js.map → p-f4965c26.entry.js.map} +0 -0
  494. /package/dist/core/{p-6c3044b6.entry.js.map → p-f9ee48f7.entry.js.map} +0 -0
  495. /package/dist/core/{p-2eac7dcc.entry.js.map → p-f9fcdd21.entry.js.map} +0 -0
  496. /package/dist/types/components/{ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.d.ts → ic-date-picker/test/a11y/ic-date-picker.test.a11y.d.ts} +0 -0
@@ -0,0 +1,1512 @@
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.inputEl.triggerIcChange(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);
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 && (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 inputProps = {
642
+ label: this.label,
643
+ showClearButton: true,
644
+ showCalendarButton: true,
645
+ value: this.value,
646
+ };
647
+ if (this.dateFormat !== DEFAULT_DATE_FORMAT) {
648
+ inputProps.dateFormat = this.dateFormat;
649
+ }
650
+ if (this.disableFuture) {
651
+ inputProps.disableFuture = this.disableFuture;
652
+ if (this.disableFutureMessage !== DEFAULT_DISABLE_DATES_FROM_NOW_MSG) {
653
+ inputProps.disableFutureMessage = this.disableFutureMessage;
654
+ }
655
+ }
656
+ if (this.disablePast) {
657
+ inputProps.disablePast = this.disablePast;
658
+ if (this.disablePastMessage !== DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG) {
659
+ inputProps.disablePastMessage = this.disablePastMessage;
660
+ }
661
+ }
662
+ if (this.disableDays.length > 0) {
663
+ inputProps.disableDays = this.disableDays;
664
+ if (this.disableDaysMessage !== DEFAULT_DISABLE_DAYS_MSG) {
665
+ inputProps.disableDaysMessage = this.disableDaysMessage;
666
+ }
667
+ }
668
+ if (this.max !== null && this.max !== "") {
669
+ inputProps.max = this.maxDate;
670
+ }
671
+ if (this.min !== null && this.min !== "") {
672
+ inputProps.min = this.minDate;
673
+ }
674
+ if (this.helperText !== undefined) {
675
+ inputProps.helperText = this.helperText;
676
+ }
677
+ if (this.inputId !== undefined) {
678
+ inputProps.inputId = this.inputId;
679
+ }
680
+ if (this.name !== undefined) {
681
+ inputProps.name = this.name;
682
+ }
683
+ if (this.disabled) {
684
+ inputProps.disabled = this.disabled;
685
+ }
686
+ if (this.required) {
687
+ inputProps.required = this.required;
688
+ }
689
+ if (this.size !== "default") {
690
+ inputProps.size = this.size;
691
+ }
692
+ if (this.validationStatus !== "") {
693
+ inputProps.validationStatus = this.validationStatus;
694
+ }
695
+ if (this.validationText !== "") {
696
+ inputProps.validationText = this.validationText;
697
+ }
698
+ return inputProps;
699
+ };
700
+ this.calendarOpen = false;
701
+ this.currMonthView = [];
702
+ this.currYearPickerView = [];
703
+ this.decadeView = [];
704
+ this.focussedDate = null;
705
+ this.focussedDay = undefined;
706
+ this.focussedDayEl = undefined;
707
+ this.focussedMonth = undefined;
708
+ this.focussedMonthEl = undefined;
709
+ this.focussedYear = undefined;
710
+ this.maxDate = null;
711
+ this.minDate = null;
712
+ this.monthInView = undefined;
713
+ this.monthPickerVisible = false;
714
+ this.orderedDaysOfWeek = [];
715
+ this.selectedDate = null;
716
+ this.yearInView = undefined;
717
+ this.yearPickerVisible = false;
718
+ this.dateFormat = "DD/MM/YYYY";
719
+ this.disabled = false;
720
+ this.disableDays = [];
721
+ this.disableDaysMessage = "The date you have selected is on a day of the week that is not allowed. Please select another date.";
722
+ this.disableFuture = false;
723
+ this.disableFutureMessage = "Dates in the future are not allowed. Please select a date in the past.";
724
+ this.disablePast = false;
725
+ this.disablePastMessage = "Dates in the past are not allowed. Please select a date in the future.";
726
+ this.helperText = undefined;
727
+ this.inputId = undefined;
728
+ this.label = undefined;
729
+ this.max = "";
730
+ this.min = "";
731
+ this.name = undefined;
732
+ this.openAtDate = "";
733
+ this.required = false;
734
+ this.showDaysOutsideMonth = true;
735
+ this.showPickerClearButton = true;
736
+ this.showPickerTodayButton = true;
737
+ this.size = "default";
738
+ this.startOfWeek = IcWeekDays.Monday;
739
+ this.validationStatus = "";
740
+ this.validationText = "";
741
+ this.value = "";
742
+ }
743
+ watchDisableFutureHandler() {
744
+ this.watchMaxHandler();
745
+ }
746
+ watchDisablePastHandler() {
747
+ this.watchMinHandler();
748
+ }
749
+ watchMaxHandler() {
750
+ if (this.disableFuture) {
751
+ this.maxDate = new Date();
752
+ }
753
+ else {
754
+ this.maxDate = createDate(this.max, this.dateFormat);
755
+ }
756
+ }
757
+ watchMinHandler() {
758
+ if (this.disablePast) {
759
+ this.minDate = new Date();
760
+ }
761
+ else {
762
+ this.minDate = createDate(this.min, this.dateFormat);
763
+ }
764
+ }
765
+ watchOpenHandler() {
766
+ if (this.calendarOpen) {
767
+ if (this.inputEl) {
768
+ let pickerHeight = PICKER_HEIGHT_DEFAULT;
769
+ if (this.size === "small") {
770
+ pickerHeight = PICKER_HEIGHT_SMALL;
771
+ }
772
+ else if (this.size === "large") {
773
+ pickerHeight = PICKER_HEIGHT_LARGE;
774
+ }
775
+ if (this.el.offsetTop + this.inputEl.offsetHeight + pickerHeight >
776
+ window.innerHeight &&
777
+ this.el.offsetTop > pickerHeight) {
778
+ this.showPickerAbove = true;
779
+ }
780
+ else {
781
+ this.showPickerAbove = false;
782
+ }
783
+ }
784
+ if (this.selectedDate === null ||
785
+ !dateInRange(this.selectedDate, this.minDate, this.maxDate)) {
786
+ let openAt = new Date();
787
+ if (this.openAtDate !== "") {
788
+ openAt = createDate(this.openAtDate, this.dateFormat);
789
+ }
790
+ this.setFocussedDate(openAt);
791
+ }
792
+ else {
793
+ this.setFocussedDate(this.selectedDate);
794
+ }
795
+ let dialogDesc = this.getMonthInViewText();
796
+ if (this.selectedDate === null) {
797
+ dialogDesc += " No date selected.";
798
+ }
799
+ dialogDesc +=
800
+ " Use arrow keys to change day. Press enter or space to select a date or press escape to close the picker";
801
+ this.dialogDescription = dialogDesc;
802
+ setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);
803
+ document.addEventListener("click", this.handleDocumentClick);
804
+ }
805
+ else {
806
+ document.removeEventListener("click", this.handleDocumentClick);
807
+ this.monthPickerVisible = false;
808
+ this.yearPickerVisible = false;
809
+ }
810
+ }
811
+ watchFocussedDateHandler(current, previous) {
812
+ if (previous === null ||
813
+ !(previous.getFullYear() === current.getFullYear() &&
814
+ previous.getMonth() === current.getMonth())) {
815
+ this.updateMonthInView();
816
+ }
817
+ }
818
+ watchMonthInViewHandler() {
819
+ this.focussedMonth = this.monthInView;
820
+ }
821
+ watchYearInViewHandler() {
822
+ this.setFocussedYear(this.yearInView, false);
823
+ }
824
+ watchYearPickerVisibleHandler() {
825
+ if (!this.yearPickerVisible) {
826
+ this.setFocussedYear(this.yearInView);
827
+ }
828
+ }
829
+ watchMonthPickerVisibleHandler() {
830
+ if (!this.monthPickerVisible) {
831
+ this.focussedMonth = this.monthInView;
832
+ }
833
+ }
834
+ watchFocussedDayEl() {
835
+ if (this.focusDay) {
836
+ setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);
837
+ }
838
+ this.focusDay = true;
839
+ }
840
+ componentWillLoad() {
841
+ onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Date Picker");
842
+ this.monthNames = stringEnumToArray(IcDateInputMonths);
843
+ this.daysOfWeek = stringEnumToArray(IcShortDayNames);
844
+ this.orderedDaysOfWeek = this.daysOfWeek
845
+ .splice(this.startOfWeek, this.daysOfWeek.length)
846
+ .concat(this.daysOfWeek.splice(0, this.startOfWeek));
847
+ this.watchMaxHandler();
848
+ this.watchMinHandler();
849
+ }
850
+ componentWillRender() {
851
+ this.dateInputProps = this.setDateInputProps();
852
+ }
853
+ componentWillUpdate() {
854
+ this.dateInputProps = this.setDateInputProps();
855
+ }
856
+ localCalendarButtonClickHandler(ev) {
857
+ this.myCalendarButtonClicked = true;
858
+ if (!this.calendarOpen) {
859
+ this.setSelectedDate(ev.detail.value, false);
860
+ }
861
+ this.calendarOpen = !this.calendarOpen;
862
+ }
863
+ calendarButtonClickHandler() {
864
+ //closes this picker if calendar button in another clicked
865
+ if (!this.myCalendarButtonClicked) {
866
+ this.calendarOpen = false;
867
+ }
868
+ this.myCalendarButtonClicked = false;
869
+ }
870
+ render() {
871
+ const { calendarOpen, dateInputProps, monthNames, size, focussedMonth, focussedYear, monthInView, yearInView, monthPickerVisible, yearPickerVisible, orderedDaysOfWeek, decadeView, minDate, maxDate, showPickerClearButton, showPickerTodayButton, dialogDescription, } = this;
872
+ let monthButtonText = "";
873
+ if (monthPickerVisible) {
874
+ 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.`;
875
+ }
876
+ else {
877
+ monthButtonText = `Press Enter or Space to open month picker view or use the arrow keys to change month.`;
878
+ }
879
+ let yearButtonText = "";
880
+ if (yearPickerVisible) {
881
+ 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.`;
882
+ }
883
+ else {
884
+ yearButtonText = `Press Enter or Space to open year picker view or use the arrow keys to change the selected year.`;
885
+ }
886
+ const dialogLabel = "choose date";
887
+ const monthLabel = monthNames && monthNames[monthInView]
888
+ ? monthNames[monthInView]
889
+ : "Open month picker";
890
+ const yearLabel = this.yearInView ? this.yearInView : "Open year picker";
891
+ let minDay = minDate;
892
+ if (this.disablePast) {
893
+ const yesterday = new Date(minDate);
894
+ yesterday.setDate(minDate.getDate() - 1);
895
+ minDay = yesterday;
896
+ }
897
+ 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: {
898
+ "calendar-container": true,
899
+ above: this.showPickerAbove,
900
+ }, 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: {
901
+ "month-year-nav-container": true,
902
+ } }, 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: {
903
+ calendar: true,
904
+ hidden: monthPickerVisible || yearPickerVisible,
905
+ }, onKeyDown: this.handleCalendarKeyDown }, h("div", { class: "weekdays", "aria-hidden": "true" }, orderedDaysOfWeek.map((dayName) => {
906
+ const header = size === "small" ? dayName.charAt(0) : dayName;
907
+ return (h("div", { class: "calendar-day-header" }, h("ic-typography", { variant: "caption" }, header)));
908
+ })), 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: {
909
+ "month-picker-container": true,
910
+ hidden: !monthPickerVisible,
911
+ } }, 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: {
912
+ "year-picker-container": true,
913
+ hidden: !yearPickerVisible,
914
+ } }, 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: {
915
+ "bottom-buttons": true,
916
+ "no-today": !showPickerTodayButton,
917
+ } }, 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 === "" ||
918
+ this.value === null ||
919
+ this.value === undefined }, "Clear"))))))));
920
+ }
921
+ static get is() { return "ic-date-picker"; }
922
+ static get encapsulation() { return "shadow"; }
923
+ static get delegatesFocus() { return true; }
924
+ static get originalStyleUrls() {
925
+ return {
926
+ "$": ["ic-date-picker.css"]
927
+ };
928
+ }
929
+ static get styleUrls() {
930
+ return {
931
+ "$": ["ic-date-picker.css"]
932
+ };
933
+ }
934
+ static get properties() {
935
+ return {
936
+ "dateFormat": {
937
+ "type": "string",
938
+ "mutable": false,
939
+ "complexType": {
940
+ "original": "IcDateFormat",
941
+ "resolved": "\"DD/MM/YYYY\" | \"MM/DD/YYYY\" | \"YYYY/MM/DD\"",
942
+ "references": {
943
+ "IcDateFormat": {
944
+ "location": "import",
945
+ "path": "../../utils/types",
946
+ "id": "src/utils/types.ts::IcDateFormat"
947
+ }
948
+ }
949
+ },
950
+ "required": false,
951
+ "optional": true,
952
+ "docs": {
953
+ "tags": [],
954
+ "text": "The format in which the date will be displayed."
955
+ },
956
+ "attribute": "date-format",
957
+ "reflect": false,
958
+ "defaultValue": "\"DD/MM/YYYY\""
959
+ },
960
+ "disabled": {
961
+ "type": "boolean",
962
+ "mutable": false,
963
+ "complexType": {
964
+ "original": "boolean",
965
+ "resolved": "boolean",
966
+ "references": {}
967
+ },
968
+ "required": false,
969
+ "optional": true,
970
+ "docs": {
971
+ "tags": [],
972
+ "text": "If `true`, the disabled state will be set."
973
+ },
974
+ "attribute": "disabled",
975
+ "reflect": false,
976
+ "defaultValue": "false"
977
+ },
978
+ "disableDays": {
979
+ "type": "unknown",
980
+ "mutable": false,
981
+ "complexType": {
982
+ "original": "IcWeekDays[]",
983
+ "resolved": "IcWeekDays[]",
984
+ "references": {
985
+ "IcWeekDays": {
986
+ "location": "import",
987
+ "path": "../../utils/types",
988
+ "id": "src/utils/types.ts::IcWeekDays"
989
+ }
990
+ }
991
+ },
992
+ "required": false,
993
+ "optional": true,
994
+ "docs": {
995
+ "tags": [],
996
+ "text": "The days of the week to disable."
997
+ },
998
+ "defaultValue": "[]"
999
+ },
1000
+ "disableDaysMessage": {
1001
+ "type": "string",
1002
+ "mutable": false,
1003
+ "complexType": {
1004
+ "original": "string",
1005
+ "resolved": "string",
1006
+ "references": {}
1007
+ },
1008
+ "required": false,
1009
+ "optional": true,
1010
+ "docs": {
1011
+ "tags": [],
1012
+ "text": "The text to display as the validation message when `disableDays` is `true` and a disabled date is entered."
1013
+ },
1014
+ "attribute": "disable-days-message",
1015
+ "reflect": false,
1016
+ "defaultValue": "\"The date you have selected is on a day of the week that is not allowed. Please select another date.\""
1017
+ },
1018
+ "disableFuture": {
1019
+ "type": "boolean",
1020
+ "mutable": false,
1021
+ "complexType": {
1022
+ "original": "boolean",
1023
+ "resolved": "boolean",
1024
+ "references": {}
1025
+ },
1026
+ "required": false,
1027
+ "optional": true,
1028
+ "docs": {
1029
+ "tags": [],
1030
+ "text": "If `true`, dates in the future are not allowed. A validation message will appear if a date in the future is entered."
1031
+ },
1032
+ "attribute": "disable-future",
1033
+ "reflect": false,
1034
+ "defaultValue": "false"
1035
+ },
1036
+ "disableFutureMessage": {
1037
+ "type": "string",
1038
+ "mutable": false,
1039
+ "complexType": {
1040
+ "original": "string",
1041
+ "resolved": "string",
1042
+ "references": {}
1043
+ },
1044
+ "required": false,
1045
+ "optional": true,
1046
+ "docs": {
1047
+ "tags": [],
1048
+ "text": "The text to display as the validation message when `disableFuture` is `true` and a date in the future is entered."
1049
+ },
1050
+ "attribute": "disable-future-message",
1051
+ "reflect": false,
1052
+ "defaultValue": "\"Dates in the future are not allowed. Please select a date in the past.\""
1053
+ },
1054
+ "disablePast": {
1055
+ "type": "boolean",
1056
+ "mutable": false,
1057
+ "complexType": {
1058
+ "original": "boolean",
1059
+ "resolved": "boolean",
1060
+ "references": {}
1061
+ },
1062
+ "required": false,
1063
+ "optional": true,
1064
+ "docs": {
1065
+ "tags": [],
1066
+ "text": "If `true`, dates in the past are not allowed. A validation message will appear if a date in the past is entered."
1067
+ },
1068
+ "attribute": "disable-past",
1069
+ "reflect": false,
1070
+ "defaultValue": "false"
1071
+ },
1072
+ "disablePastMessage": {
1073
+ "type": "string",
1074
+ "mutable": false,
1075
+ "complexType": {
1076
+ "original": "string",
1077
+ "resolved": "string",
1078
+ "references": {}
1079
+ },
1080
+ "required": false,
1081
+ "optional": true,
1082
+ "docs": {
1083
+ "tags": [],
1084
+ "text": "The text to display as the validation message when `disablePast` is `true` and a date in the past is entered."
1085
+ },
1086
+ "attribute": "disable-past-message",
1087
+ "reflect": false,
1088
+ "defaultValue": "\"Dates in the past are not allowed. Please select a date in the future.\""
1089
+ },
1090
+ "helperText": {
1091
+ "type": "string",
1092
+ "mutable": false,
1093
+ "complexType": {
1094
+ "original": "string",
1095
+ "resolved": "string",
1096
+ "references": {}
1097
+ },
1098
+ "required": false,
1099
+ "optional": true,
1100
+ "docs": {
1101
+ "tags": [],
1102
+ "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."
1103
+ },
1104
+ "attribute": "helper-text",
1105
+ "reflect": false
1106
+ },
1107
+ "inputId": {
1108
+ "type": "string",
1109
+ "mutable": false,
1110
+ "complexType": {
1111
+ "original": "string",
1112
+ "resolved": "string",
1113
+ "references": {}
1114
+ },
1115
+ "required": false,
1116
+ "optional": true,
1117
+ "docs": {
1118
+ "tags": [],
1119
+ "text": "The ID for the input field. The default will be an automatically generated value."
1120
+ },
1121
+ "attribute": "input-id",
1122
+ "reflect": false
1123
+ },
1124
+ "label": {
1125
+ "type": "string",
1126
+ "mutable": false,
1127
+ "complexType": {
1128
+ "original": "string",
1129
+ "resolved": "string",
1130
+ "references": {}
1131
+ },
1132
+ "required": true,
1133
+ "optional": false,
1134
+ "docs": {
1135
+ "tags": [],
1136
+ "text": "The label for the date input."
1137
+ },
1138
+ "attribute": "label",
1139
+ "reflect": false
1140
+ },
1141
+ "max": {
1142
+ "type": "string",
1143
+ "mutable": false,
1144
+ "complexType": {
1145
+ "original": "string | Date",
1146
+ "resolved": "Date | string",
1147
+ "references": {
1148
+ "Date": {
1149
+ "location": "global",
1150
+ "id": "global::Date"
1151
+ }
1152
+ }
1153
+ },
1154
+ "required": false,
1155
+ "optional": true,
1156
+ "docs": {
1157
+ "tags": [],
1158
+ "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`."
1159
+ },
1160
+ "attribute": "max",
1161
+ "reflect": false,
1162
+ "defaultValue": "\"\""
1163
+ },
1164
+ "min": {
1165
+ "type": "string",
1166
+ "mutable": false,
1167
+ "complexType": {
1168
+ "original": "string | Date",
1169
+ "resolved": "Date | string",
1170
+ "references": {
1171
+ "Date": {
1172
+ "location": "global",
1173
+ "id": "global::Date"
1174
+ }
1175
+ }
1176
+ },
1177
+ "required": false,
1178
+ "optional": true,
1179
+ "docs": {
1180
+ "tags": [],
1181
+ "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`."
1182
+ },
1183
+ "attribute": "min",
1184
+ "reflect": false,
1185
+ "defaultValue": "\"\""
1186
+ },
1187
+ "name": {
1188
+ "type": "string",
1189
+ "mutable": false,
1190
+ "complexType": {
1191
+ "original": "string",
1192
+ "resolved": "string",
1193
+ "references": {}
1194
+ },
1195
+ "required": false,
1196
+ "optional": true,
1197
+ "docs": {
1198
+ "tags": [],
1199
+ "text": "The name of the control, which is submitted with the form data."
1200
+ },
1201
+ "attribute": "name",
1202
+ "reflect": false
1203
+ },
1204
+ "openAtDate": {
1205
+ "type": "string",
1206
+ "mutable": false,
1207
+ "complexType": {
1208
+ "original": "string | Date",
1209
+ "resolved": "Date | string",
1210
+ "references": {
1211
+ "Date": {
1212
+ "location": "global",
1213
+ "id": "global::Date"
1214
+ }
1215
+ }
1216
+ },
1217
+ "required": false,
1218
+ "optional": false,
1219
+ "docs": {
1220
+ "tags": [],
1221
+ "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."
1222
+ },
1223
+ "attribute": "open-at-date",
1224
+ "reflect": false,
1225
+ "defaultValue": "\"\""
1226
+ },
1227
+ "required": {
1228
+ "type": "boolean",
1229
+ "mutable": false,
1230
+ "complexType": {
1231
+ "original": "boolean",
1232
+ "resolved": "boolean",
1233
+ "references": {}
1234
+ },
1235
+ "required": false,
1236
+ "optional": true,
1237
+ "docs": {
1238
+ "tags": [],
1239
+ "text": "If `true`, the input will require a value."
1240
+ },
1241
+ "attribute": "required",
1242
+ "reflect": false,
1243
+ "defaultValue": "false"
1244
+ },
1245
+ "showDaysOutsideMonth": {
1246
+ "type": "boolean",
1247
+ "mutable": false,
1248
+ "complexType": {
1249
+ "original": "boolean",
1250
+ "resolved": "boolean",
1251
+ "references": {}
1252
+ },
1253
+ "required": false,
1254
+ "optional": true,
1255
+ "docs": {
1256
+ "tags": [],
1257
+ "text": "If `true`, days outside the current month will be visible in the date picker."
1258
+ },
1259
+ "attribute": "show-days-outside-month",
1260
+ "reflect": false,
1261
+ "defaultValue": "true"
1262
+ },
1263
+ "showPickerClearButton": {
1264
+ "type": "boolean",
1265
+ "mutable": false,
1266
+ "complexType": {
1267
+ "original": "boolean",
1268
+ "resolved": "boolean",
1269
+ "references": {}
1270
+ },
1271
+ "required": false,
1272
+ "optional": true,
1273
+ "docs": {
1274
+ "tags": [],
1275
+ "text": "If `true`, the `Clear` button on the date picker will be visible."
1276
+ },
1277
+ "attribute": "show-picker-clear-button",
1278
+ "reflect": false,
1279
+ "defaultValue": "true"
1280
+ },
1281
+ "showPickerTodayButton": {
1282
+ "type": "boolean",
1283
+ "mutable": false,
1284
+ "complexType": {
1285
+ "original": "boolean",
1286
+ "resolved": "boolean",
1287
+ "references": {}
1288
+ },
1289
+ "required": false,
1290
+ "optional": true,
1291
+ "docs": {
1292
+ "tags": [],
1293
+ "text": "If `true`, the `Go to today` button on the date picker will be visible."
1294
+ },
1295
+ "attribute": "show-picker-today-button",
1296
+ "reflect": false,
1297
+ "defaultValue": "true"
1298
+ },
1299
+ "size": {
1300
+ "type": "string",
1301
+ "mutable": false,
1302
+ "complexType": {
1303
+ "original": "IcSizes",
1304
+ "resolved": "\"default\" | \"large\" | \"small\"",
1305
+ "references": {
1306
+ "IcSizes": {
1307
+ "location": "import",
1308
+ "path": "../../utils/types",
1309
+ "id": "src/utils/types.ts::IcSizes"
1310
+ }
1311
+ }
1312
+ },
1313
+ "required": false,
1314
+ "optional": true,
1315
+ "docs": {
1316
+ "tags": [],
1317
+ "text": "The size of the date picker to be displayed."
1318
+ },
1319
+ "attribute": "size",
1320
+ "reflect": false,
1321
+ "defaultValue": "\"default\""
1322
+ },
1323
+ "startOfWeek": {
1324
+ "type": "number",
1325
+ "mutable": false,
1326
+ "complexType": {
1327
+ "original": "IcWeekDays",
1328
+ "resolved": "IcWeekDays.Friday | IcWeekDays.Monday | IcWeekDays.Saturday | IcWeekDays.Sunday | IcWeekDays.Thursday | IcWeekDays.Tuesday | IcWeekDays.Wednesday",
1329
+ "references": {
1330
+ "IcWeekDays": {
1331
+ "location": "import",
1332
+ "path": "../../utils/types",
1333
+ "id": "src/utils/types.ts::IcWeekDays"
1334
+ }
1335
+ }
1336
+ },
1337
+ "required": false,
1338
+ "optional": true,
1339
+ "docs": {
1340
+ "tags": [],
1341
+ "text": "The first day of the week. `0` for Sunday, `1` for Monday, etc.\nDefault is Monday."
1342
+ },
1343
+ "attribute": "start-of-week",
1344
+ "reflect": false,
1345
+ "defaultValue": "IcWeekDays.Monday"
1346
+ },
1347
+ "validationStatus": {
1348
+ "type": "string",
1349
+ "mutable": false,
1350
+ "complexType": {
1351
+ "original": "IcInformationStatusOrEmpty",
1352
+ "resolved": "\"\" | \"error\" | \"success\" | \"warning\"",
1353
+ "references": {
1354
+ "IcInformationStatusOrEmpty": {
1355
+ "location": "import",
1356
+ "path": "../../utils/types",
1357
+ "id": "src/utils/types.ts::IcInformationStatusOrEmpty"
1358
+ }
1359
+ }
1360
+ },
1361
+ "required": false,
1362
+ "optional": true,
1363
+ "docs": {
1364
+ "tags": [],
1365
+ "text": "The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in date validation."
1366
+ },
1367
+ "attribute": "validation-status",
1368
+ "reflect": false,
1369
+ "defaultValue": "\"\""
1370
+ },
1371
+ "validationText": {
1372
+ "type": "string",
1373
+ "mutable": false,
1374
+ "complexType": {
1375
+ "original": "string",
1376
+ "resolved": "string",
1377
+ "references": {}
1378
+ },
1379
+ "required": false,
1380
+ "optional": true,
1381
+ "docs": {
1382
+ "tags": [],
1383
+ "text": "The text to display as the validation message. This will override the built-in date validation."
1384
+ },
1385
+ "attribute": "validation-text",
1386
+ "reflect": false,
1387
+ "defaultValue": "\"\""
1388
+ },
1389
+ "value": {
1390
+ "type": "string",
1391
+ "mutable": true,
1392
+ "complexType": {
1393
+ "original": "string | Date | null | undefined",
1394
+ "resolved": "Date | string",
1395
+ "references": {
1396
+ "Date": {
1397
+ "location": "global",
1398
+ "id": "global::Date"
1399
+ }
1400
+ }
1401
+ },
1402
+ "required": false,
1403
+ "optional": true,
1404
+ "docs": {
1405
+ "tags": [],
1406
+ "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."
1407
+ },
1408
+ "attribute": "value",
1409
+ "reflect": false,
1410
+ "defaultValue": "\"\""
1411
+ }
1412
+ };
1413
+ }
1414
+ static get states() {
1415
+ return {
1416
+ "calendarOpen": {},
1417
+ "currMonthView": {},
1418
+ "currYearPickerView": {},
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": "disableFuture",
1463
+ "methodName": "watchDisableFutureHandler"
1464
+ }, {
1465
+ "propName": "disablePast",
1466
+ "methodName": "watchDisablePastHandler"
1467
+ }, {
1468
+ "propName": "max",
1469
+ "methodName": "watchMaxHandler"
1470
+ }, {
1471
+ "propName": "min",
1472
+ "methodName": "watchMinHandler"
1473
+ }, {
1474
+ "propName": "calendarOpen",
1475
+ "methodName": "watchOpenHandler"
1476
+ }, {
1477
+ "propName": "focussedDate",
1478
+ "methodName": "watchFocussedDateHandler"
1479
+ }, {
1480
+ "propName": "monthInView",
1481
+ "methodName": "watchMonthInViewHandler"
1482
+ }, {
1483
+ "propName": "yearInView",
1484
+ "methodName": "watchYearInViewHandler"
1485
+ }, {
1486
+ "propName": "yearPickerVisible",
1487
+ "methodName": "watchYearPickerVisibleHandler"
1488
+ }, {
1489
+ "propName": "monthPickerVisible",
1490
+ "methodName": "watchMonthPickerVisibleHandler"
1491
+ }, {
1492
+ "propName": "focussedDayEl",
1493
+ "methodName": "watchFocussedDayEl"
1494
+ }];
1495
+ }
1496
+ static get listeners() {
1497
+ return [{
1498
+ "name": "calendarButtonClicked",
1499
+ "method": "localCalendarButtonClickHandler",
1500
+ "target": undefined,
1501
+ "capture": false,
1502
+ "passive": false
1503
+ }, {
1504
+ "name": "calendarButtonClicked",
1505
+ "method": "calendarButtonClickHandler",
1506
+ "target": "document",
1507
+ "capture": false,
1508
+ "passive": false
1509
+ }];
1510
+ }
1511
+ }
1512
+ //# sourceMappingURL=ic-date-picker.js.map