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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (542) 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-6d736902.js} +27 -4
  5. package/dist/cjs/helpers-6d736902.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 +18 -17
  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 +41 -86
  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 +25 -2
  23. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-data-table.cjs.entry.js +43 -308
  26. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-date-input.cjs.entry.js +1108 -0
  28. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -0
  29. package/dist/cjs/ic-date-picker.cjs.entry.js +1053 -0
  30. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -0
  31. package/dist/cjs/ic-dialog.cjs.entry.js +14 -4
  32. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  34. package/dist/cjs/ic-empty-state.cjs.entry.js +38 -0
  35. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -0
  36. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +150 -0
  42. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -0
  43. package/dist/cjs/ic-link.cjs.entry.js +33 -15
  44. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +1 -1
  48. package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +1 -1
  49. package/dist/cjs/{ic-input-component-container_3.cjs.entry.js → ic-menu.cjs.entry.js} +5 -69
  50. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -0
  51. package/dist/cjs/ic-navigation-button.cjs.entry.js +26 -5
  52. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-navigation-group.cjs.entry.js +16 -13
  54. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-navigation-item.cjs.entry.js +29 -33
  56. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  59. package/dist/cjs/{ic-empty-state_2.cjs.entry.js → ic-pagination-bar.cjs.entry.js} +4 -34
  60. package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +1 -0
  61. package/dist/cjs/ic-pagination_4.cjs.entry.js +53 -16
  62. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-radio-group.cjs.entry.js +40 -26
  65. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-radio-option.cjs.entry.js +9 -4
  67. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-select-with-multi.cjs.entry.js +6 -19
  70. package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
  72. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  74. package/dist/cjs/ic-step.cjs.entry.js +5 -2
  75. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-stepper.cjs.entry.js +2 -1
  77. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  79. package/dist/cjs/ic-tab-context.cjs.entry.js +18 -2
  80. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  82. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  83. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  84. package/dist/cjs/ic-theme.cjs.entry.js +3 -10
  85. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  87. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  88. package/dist/cjs/ic-top-navigation.cjs.entry.js +46 -60
  89. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-typography.cjs.entry.js +11 -35
  91. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  92. package/dist/cjs/index-4cf27b16.js +18 -10
  93. package/dist/cjs/loader.cjs.js +1 -1
  94. package/dist/collection/assets/calendar.svg +3 -0
  95. package/dist/collection/collection-manifest.json +2 -1
  96. package/dist/collection/components/ic-data-table/ic-data-table.css +7 -82
  97. package/dist/collection/components/ic-data-table/ic-data-table.js +44 -535
  98. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  99. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  100. package/dist/collection/components/ic-data-table/story-data.js +11 -386
  101. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  102. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +0 -319
  103. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  104. package/dist/collection/components/ic-date-input/ic-date-input.css +560 -0
  105. package/dist/collection/components/ic-date-input/ic-date-input.js +1737 -0
  106. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -0
  107. package/dist/collection/components/ic-date-input/story-data.js +28 -0
  108. package/dist/collection/components/ic-date-input/story-data.js.map +1 -0
  109. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js +1142 -0
  110. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js.map +1 -0
  111. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js +42 -0
  112. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js.map +1 -0
  113. package/dist/collection/components/ic-date-picker/ic-date-picker.css +878 -0
  114. package/dist/collection/components/ic-date-picker/ic-date-picker.js +1512 -0
  115. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -0
  116. package/dist/collection/components/ic-date-picker/ic-day-button.js +36 -0
  117. package/dist/collection/components/ic-date-picker/ic-day-button.js.map +1 -0
  118. package/dist/collection/components/ic-date-picker/ic-month-picker.js +29 -0
  119. package/dist/collection/components/ic-date-picker/ic-month-picker.js.map +1 -0
  120. package/dist/collection/components/ic-date-picker/ic-year-picker.js +39 -0
  121. package/dist/collection/components/ic-date-picker/ic-year-picker.js.map +1 -0
  122. package/dist/collection/components/ic-date-picker/story-data.js +148 -0
  123. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -0
  124. 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
  125. package/dist/collection/components/ic-date-picker/test/a11y/ic-date-picker.test.a11y.js.map +1 -0
  126. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker-utils.spec.js +207 -0
  127. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker-utils.spec.js.map +1 -0
  128. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js +991 -0
  129. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js.map +1 -0
  130. package/dist/collection/components/ic-menu-with-multi/ic-menu.js +2 -2
  131. package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +1 -1
  132. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +1 -1
  133. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  134. package/dist/collection/components/ic-select-with-multi/ic-select.js +2 -2
  135. package/dist/collection/components/ic-select-with-multi/ic-select.js.map +1 -1
  136. package/dist/collection/utils/constants.js +55 -0
  137. package/dist/collection/utils/constants.js.map +1 -1
  138. package/dist/collection/utils/date-helpers.js +133 -0
  139. package/dist/collection/utils/date-helpers.js.map +1 -0
  140. package/dist/collection/utils/helpers.js +272 -42
  141. package/dist/collection/utils/helpers.js.map +1 -1
  142. package/dist/collection/utils/types.js +45 -0
  143. package/dist/collection/utils/types.js.map +1 -1
  144. package/dist/components/helpers.js +26 -3
  145. package/dist/components/helpers.js.map +1 -1
  146. package/dist/components/helpers2.js +91 -45
  147. package/dist/components/helpers2.js.map +1 -1
  148. package/dist/components/ic-accordion-group.js +14 -4
  149. package/dist/components/ic-accordion-group.js.map +1 -1
  150. package/dist/components/ic-badge.js +18 -17
  151. package/dist/components/ic-badge.js.map +1 -1
  152. package/dist/components/ic-button2.js +43 -86
  153. package/dist/components/ic-button2.js.map +1 -1
  154. package/dist/components/ic-card.js +1 -1
  155. package/dist/components/ic-checkbox-group.js +1 -1
  156. package/dist/components/ic-checkbox.js +1 -1
  157. package/dist/components/ic-chip.js +29 -3
  158. package/dist/components/ic-chip.js.map +1 -1
  159. package/dist/components/ic-data-table.js +49 -334
  160. package/dist/components/ic-data-table.js.map +1 -1
  161. package/dist/components/{ic-data-table-title-bar.d.ts → ic-date-input.d.ts} +4 -4
  162. package/dist/components/ic-date-input.js +8 -0
  163. package/dist/components/ic-date-input.js.map +1 -0
  164. package/dist/components/ic-date-input2.js +1340 -0
  165. package/dist/components/ic-date-input2.js.map +1 -0
  166. package/dist/components/ic-date-picker.d.ts +11 -0
  167. package/dist/components/ic-date-picker.js +1175 -0
  168. package/dist/components/ic-date-picker.js.map +1 -0
  169. package/dist/components/ic-dialog.js +13 -3
  170. package/dist/components/ic-dialog.js.map +1 -1
  171. package/dist/components/ic-empty-state.js +57 -1
  172. package/dist/components/ic-empty-state.js.map +1 -1
  173. package/dist/components/ic-input-component-container2.js +1 -1
  174. package/dist/components/ic-input-component-container2.js.map +1 -1
  175. package/dist/components/ic-link2.js +34 -16
  176. package/dist/components/ic-link2.js.map +1 -1
  177. package/dist/components/ic-loading-indicator2.js +1 -1
  178. package/dist/components/ic-loading-indicator2.js.map +1 -1
  179. package/dist/components/ic-menu-item2.js +1 -1
  180. package/dist/components/ic-menu2.js +2 -2
  181. package/dist/components/ic-menu2.js.map +1 -1
  182. package/dist/components/ic-menu3.js +1 -1
  183. package/dist/components/ic-menu3.js.map +1 -1
  184. package/dist/components/ic-navigation-button.js +26 -5
  185. package/dist/components/ic-navigation-button.js.map +1 -1
  186. package/dist/components/ic-navigation-group.js +15 -12
  187. package/dist/components/ic-navigation-group.js.map +1 -1
  188. package/dist/components/ic-navigation-item.js +29 -33
  189. package/dist/components/ic-navigation-item.js.map +1 -1
  190. package/dist/components/ic-pagination-bar2.js +1 -1
  191. package/dist/components/ic-pagination-bar2.js.map +1 -1
  192. package/dist/components/ic-pagination-item2.js +1 -1
  193. package/dist/components/ic-pagination2.js +5 -5
  194. package/dist/components/ic-pagination2.js.map +1 -1
  195. package/dist/components/ic-radio-group.js +40 -26
  196. package/dist/components/ic-radio-group.js.map +1 -1
  197. package/dist/components/ic-radio-option.js +11 -5
  198. package/dist/components/ic-radio-option.js.map +1 -1
  199. package/dist/components/ic-search-bar.js +1 -1
  200. package/dist/components/ic-select-with-multi.js +1 -14
  201. package/dist/components/ic-select-with-multi.js.map +1 -1
  202. package/dist/components/ic-select2.js +25 -7
  203. package/dist/components/ic-select2.js.map +1 -1
  204. package/dist/components/ic-side-navigation.js +1 -1
  205. package/dist/components/ic-side-navigation.js.map +1 -1
  206. package/dist/components/ic-step.js +4 -1
  207. package/dist/components/ic-step.js.map +1 -1
  208. package/dist/components/ic-stepper.js +2 -0
  209. package/dist/components/ic-stepper.js.map +1 -1
  210. package/dist/components/ic-switch.js +1 -1
  211. package/dist/components/ic-tab-context.js +18 -2
  212. package/dist/components/ic-tab-context.js.map +1 -1
  213. package/dist/components/ic-tab.js +1 -1
  214. package/dist/components/ic-text-field2.js +27 -8
  215. package/dist/components/ic-text-field2.js.map +1 -1
  216. package/dist/components/ic-theme.js +3 -10
  217. package/dist/components/ic-theme.js.map +1 -1
  218. package/dist/components/ic-toggle-button.js +1 -1
  219. package/dist/components/ic-top-navigation.js +47 -61
  220. package/dist/components/ic-top-navigation.js.map +1 -1
  221. package/dist/components/ic-typography2.js +12 -38
  222. package/dist/components/ic-typography2.js.map +1 -1
  223. package/dist/core/core.css +1 -1
  224. package/dist/core/core.esm.js +1 -1
  225. package/dist/core/core.esm.js.map +1 -1
  226. package/dist/core/{p-869954a2.entry.js → p-00bd7919.entry.js} +2 -2
  227. package/dist/core/p-00c5639e.entry.js +2 -0
  228. package/dist/core/{p-db9c03c0.entry.js.map → p-00c5639e.entry.js.map} +1 -1
  229. package/dist/core/p-06c27edb.entry.js +2 -0
  230. package/dist/core/p-06c27edb.entry.js.map +1 -0
  231. package/dist/core/{p-a0f8efb2.entry.js → p-0af27517.entry.js} +2 -2
  232. package/dist/core/p-0af27517.entry.js.map +1 -0
  233. package/dist/core/p-162f3e36.entry.js +2 -0
  234. package/dist/core/{p-624d4f5f.entry.js.map → p-162f3e36.entry.js.map} +1 -1
  235. package/dist/core/p-19c1e271.entry.js +2 -0
  236. package/dist/core/p-19c1e271.entry.js.map +1 -0
  237. package/dist/core/{p-a50c3b9e.entry.js → p-1a91e842.entry.js} +2 -2
  238. package/dist/core/{p-76915584.entry.js → p-1c3bd46d.entry.js} +2 -2
  239. package/dist/core/p-1c3bd46d.entry.js.map +1 -0
  240. package/dist/core/p-2c9d6334.entry.js +2 -0
  241. package/dist/core/p-2c9d6334.entry.js.map +1 -0
  242. package/dist/core/p-33dd24eb.js +2 -0
  243. package/dist/core/p-33dd24eb.js.map +1 -0
  244. package/dist/core/p-3dcc61cc.entry.js +2 -0
  245. package/dist/core/p-3dcc61cc.entry.js.map +1 -0
  246. package/dist/core/p-3e9a8977.entry.js +2 -0
  247. package/dist/core/{p-595be57d.entry.js.map → p-3e9a8977.entry.js.map} +1 -1
  248. package/dist/core/{p-f3c840cd.entry.js → p-41b682dc.entry.js} +2 -2
  249. package/dist/core/p-494c3cbe.entry.js +2 -0
  250. package/dist/core/p-494c3cbe.entry.js.map +1 -0
  251. package/dist/core/p-4ad3012a.entry.js +2 -0
  252. package/dist/core/p-4ad3012a.entry.js.map +1 -0
  253. package/dist/core/p-4bd13376.entry.js +2 -0
  254. package/dist/core/p-4bd13376.entry.js.map +1 -0
  255. package/dist/core/p-4fd58768.entry.js +2 -0
  256. package/dist/core/p-4fd58768.entry.js.map +1 -0
  257. package/dist/core/{p-8b08d8fe.entry.js → p-6dce8e88.entry.js} +2 -2
  258. package/dist/core/{p-1ca332ca.entry.js → p-6eb58b0a.entry.js} +2 -2
  259. package/dist/core/p-730f058b.entry.js +2 -0
  260. package/dist/core/p-730f058b.entry.js.map +1 -0
  261. package/dist/core/p-7f53d1be.entry.js +2 -0
  262. package/dist/core/p-7f53d1be.entry.js.map +1 -0
  263. package/dist/core/{p-5ae93c16.entry.js → p-7fda2f94.entry.js} +2 -2
  264. package/dist/core/p-843bdaae.entry.js +2 -0
  265. package/dist/core/p-843bdaae.entry.js.map +1 -0
  266. package/dist/core/p-849f43c3.entry.js +2 -0
  267. package/dist/core/p-849f43c3.entry.js.map +1 -0
  268. package/dist/core/{p-c34848da.entry.js → p-8b1f9648.entry.js} +2 -2
  269. package/dist/core/{p-a434c3d4.entry.js → p-8b820365.entry.js} +2 -2
  270. package/dist/core/p-940de102.entry.js +2 -0
  271. package/dist/core/p-940de102.entry.js.map +1 -0
  272. package/dist/core/{p-2eac7dcc.entry.js → p-946625a3.entry.js} +2 -2
  273. package/dist/core/{p-7ef8d616.entry.js → p-9528b29e.entry.js} +2 -2
  274. package/dist/core/{p-a43c12cd.entry.js → p-9567c117.entry.js} +2 -2
  275. package/dist/core/{p-b82dcc29.entry.js → p-957de939.entry.js} +2 -2
  276. package/dist/core/{p-045359e1.entry.js → p-99bf38e3.entry.js} +2 -2
  277. package/dist/core/{p-81ddc39d.entry.js → p-9d8883d7.entry.js} +2 -2
  278. package/dist/core/{p-b6639e4a.entry.js → p-9e3178e8.entry.js} +2 -2
  279. package/dist/core/{p-b6639e4a.entry.js.map → p-9e3178e8.entry.js.map} +1 -1
  280. package/dist/core/p-a05755b1.entry.js +2 -0
  281. package/dist/core/p-a05755b1.entry.js.map +1 -0
  282. package/dist/core/{p-e834344e.entry.js → p-a1556d97.entry.js} +2 -2
  283. package/dist/core/{p-f843da01.entry.js → p-a2dc10d8.entry.js} +2 -2
  284. package/dist/core/{p-ab09986c.entry.js → p-a8c15117.entry.js} +2 -2
  285. package/dist/core/p-aabab75f.entry.js +2 -0
  286. package/dist/core/p-aabab75f.entry.js.map +1 -0
  287. package/dist/core/{p-f7a14c01.entry.js → p-c14a897d.entry.js} +2 -2
  288. package/dist/core/p-c621d6b0.entry.js +2 -0
  289. package/dist/core/p-c621d6b0.entry.js.map +1 -0
  290. package/dist/core/p-c7590421.entry.js +2 -0
  291. package/dist/core/p-c7590421.entry.js.map +1 -0
  292. package/dist/core/p-c953edb9.entry.js +2 -0
  293. package/dist/core/p-c953edb9.entry.js.map +1 -0
  294. package/dist/core/p-cca482e2.entry.js +2 -0
  295. package/dist/core/p-cca482e2.entry.js.map +1 -0
  296. package/dist/core/p-cd799087.js +2 -0
  297. package/dist/core/p-cd799087.js.map +1 -0
  298. package/dist/core/{p-e3997d60.entry.js → p-d2d63a61.entry.js} +2 -2
  299. package/dist/core/p-d32d331b.entry.js +2 -0
  300. package/dist/core/p-d32d331b.entry.js.map +1 -0
  301. package/dist/core/{p-4f413fc0.entry.js → p-db3a35fb.entry.js} +2 -2
  302. package/dist/core/p-dc5e1f8f.entry.js +2 -0
  303. package/dist/core/{p-6933f8e9.entry.js.map → p-dc5e1f8f.entry.js.map} +1 -1
  304. package/dist/core/{p-204ace96.entry.js → p-e16f73ba.entry.js} +2 -2
  305. package/dist/core/p-e189f1d0.entry.js +2 -0
  306. package/dist/core/p-e189f1d0.entry.js.map +1 -0
  307. package/dist/core/{p-917c5721.entry.js → p-e1963c78.entry.js} +2 -2
  308. package/dist/core/p-e1963c78.entry.js.map +1 -0
  309. package/dist/core/{p-f14454b1.entry.js → p-e8151d13.entry.js} +2 -2
  310. package/dist/core/p-ee765ad5.js +2 -0
  311. package/dist/core/p-ee765ad5.js.map +1 -0
  312. package/dist/core/{p-fc5611e2.entry.js → p-f2147136.entry.js} +2 -2
  313. package/dist/core/p-f2147136.entry.js.map +1 -0
  314. package/dist/core/{p-5e0c830b.entry.js → p-f8f36680.entry.js} +2 -2
  315. package/dist/core/{p-5e0c830b.entry.js.map → p-f8f36680.entry.js.map} +1 -1
  316. package/dist/core/p-fca46bd9.entry.js +2 -0
  317. package/dist/core/p-fca46bd9.entry.js.map +1 -0
  318. package/dist/core/{p-a31031a5.entry.js → p-ff3a01f3.entry.js} +2 -2
  319. package/dist/core/{p-75dac3d1.entry.js → p-ff6f1e3a.entry.js} +2 -2
  320. package/dist/esm/core.js +1 -1
  321. package/dist/esm/date-helpers-0e5e32a7.js +136 -0
  322. package/dist/esm/date-helpers-0e5e32a7.js.map +1 -0
  323. package/dist/esm/{helpers-12b4266a.js → helpers-c34e4042.js} +27 -4
  324. package/dist/esm/helpers-c34e4042.js.map +1 -0
  325. package/dist/esm/{helpers-1f07eb61.js → helpers-f328a7b6.js} +92 -46
  326. package/dist/esm/helpers-f328a7b6.js.map +1 -0
  327. package/dist/esm/ic-accordion-group.entry.js +11 -2
  328. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  329. package/dist/esm/ic-accordion.entry.js +1 -1
  330. package/dist/esm/ic-alert.entry.js +1 -1
  331. package/dist/esm/ic-back-to-top.entry.js +1 -1
  332. package/dist/esm/ic-badge.entry.js +18 -17
  333. package/dist/esm/ic-badge.entry.js.map +1 -1
  334. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  335. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  336. package/dist/esm/ic-button_3.entry.js +41 -86
  337. package/dist/esm/ic-button_3.entry.js.map +1 -1
  338. package/dist/esm/ic-card.entry.js +1 -1
  339. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  340. package/dist/esm/ic-checkbox.entry.js +1 -1
  341. package/dist/esm/ic-chip.entry.js +25 -2
  342. package/dist/esm/ic-chip.entry.js.map +1 -1
  343. package/dist/esm/ic-data-row.entry.js +1 -1
  344. package/dist/esm/ic-data-table.entry.js +44 -309
  345. package/dist/esm/ic-data-table.entry.js.map +1 -1
  346. package/dist/esm/ic-date-input.entry.js +1104 -0
  347. package/dist/esm/ic-date-input.entry.js.map +1 -0
  348. package/dist/esm/ic-date-picker.entry.js +1049 -0
  349. package/dist/esm/ic-date-picker.entry.js.map +1 -0
  350. package/dist/esm/ic-dialog.entry.js +14 -4
  351. package/dist/esm/ic-dialog.entry.js.map +1 -1
  352. package/dist/esm/ic-divider.entry.js +1 -1
  353. package/dist/{components/ic-empty-state2.js → esm/ic-empty-state.entry.js} +11 -38
  354. package/dist/esm/ic-empty-state.entry.js.map +1 -0
  355. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  356. package/dist/esm/ic-footer-link.entry.js +1 -1
  357. package/dist/esm/ic-footer.entry.js +1 -1
  358. package/dist/esm/ic-hero.entry.js +1 -1
  359. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  360. package/dist/esm/ic-input-component-container_4.entry.js +143 -0
  361. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -0
  362. package/dist/esm/ic-link.entry.js +34 -16
  363. package/dist/esm/ic-link.entry.js.map +1 -1
  364. package/dist/esm/ic-menu-group.entry.js +1 -1
  365. package/dist/esm/ic-menu-item.entry.js +1 -1
  366. package/dist/esm/ic-menu-with-multi.entry.js +1 -1
  367. package/dist/esm/ic-menu-with-multi.entry.js.map +1 -1
  368. package/dist/esm/{ic-input-component-container_3.entry.js → ic-menu.entry.js} +7 -69
  369. package/dist/esm/ic-menu.entry.js.map +1 -0
  370. package/dist/esm/ic-navigation-button.entry.js +27 -6
  371. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  372. package/dist/esm/ic-navigation-group.entry.js +16 -13
  373. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  374. package/dist/esm/ic-navigation-item.entry.js +29 -33
  375. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  376. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  377. package/dist/esm/ic-page-header.entry.js +1 -1
  378. package/dist/esm/{ic-empty-state_2.entry.js → ic-pagination-bar.entry.js} +5 -34
  379. package/dist/esm/ic-pagination-bar.entry.js.map +1 -0
  380. package/dist/esm/ic-pagination_4.entry.js +54 -17
  381. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  382. package/dist/esm/ic-popover-menu.entry.js +1 -1
  383. package/dist/esm/ic-radio-group.entry.js +40 -26
  384. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  385. package/dist/esm/ic-radio-option.entry.js +9 -4
  386. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  387. package/dist/esm/ic-search-bar.entry.js +1 -1
  388. package/dist/esm/ic-select-with-multi.entry.js +1 -14
  389. package/dist/esm/ic-select-with-multi.entry.js.map +1 -1
  390. package/dist/esm/ic-side-navigation.entry.js +2 -2
  391. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  392. package/dist/esm/ic-status-tag.entry.js +1 -1
  393. package/dist/esm/ic-step.entry.js +5 -2
  394. package/dist/esm/ic-step.entry.js.map +1 -1
  395. package/dist/esm/ic-stepper.entry.js +2 -1
  396. package/dist/esm/ic-stepper.entry.js.map +1 -1
  397. package/dist/esm/ic-switch.entry.js +1 -1
  398. package/dist/esm/ic-tab-context.entry.js +18 -2
  399. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  400. package/dist/esm/ic-tab-group.entry.js +1 -1
  401. package/dist/esm/ic-tab-panel.entry.js +1 -1
  402. package/dist/esm/ic-tab.entry.js +1 -1
  403. package/dist/esm/ic-theme.entry.js +3 -10
  404. package/dist/esm/ic-theme.entry.js.map +1 -1
  405. package/dist/esm/ic-toast.entry.js +1 -1
  406. package/dist/esm/ic-toggle-button.entry.js +1 -1
  407. package/dist/esm/ic-top-navigation.entry.js +46 -60
  408. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  409. package/dist/esm/ic-typography.entry.js +12 -36
  410. package/dist/esm/ic-typography.entry.js.map +1 -1
  411. package/dist/esm/index-93509377.js +18 -10
  412. package/dist/esm/loader.js +1 -1
  413. package/dist/esm/polyfills/core-js.js +0 -0
  414. package/dist/esm/polyfills/dom.js +0 -0
  415. package/dist/esm/polyfills/es5-html-element.js +0 -0
  416. package/dist/esm/polyfills/index.js +0 -0
  417. package/dist/esm/polyfills/system.js +0 -0
  418. package/dist/types/components/ic-data-table/ic-data-table.d.ts +1 -96
  419. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +0 -11
  420. package/dist/types/components/ic-data-table/story-data.d.ts +0 -99
  421. package/dist/types/components/ic-date-input/ic-date-input.d.ts +251 -0
  422. package/dist/types/components/ic-date-input/story-data.d.ts +1 -0
  423. package/dist/types/components/ic-date-input/test/helpers/ic-date-input.d.ts +23 -0
  424. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +231 -0
  425. package/dist/types/components/ic-date-picker/ic-day-button.d.ts +16 -0
  426. package/dist/types/components/ic-date-picker/ic-month-picker.d.ts +14 -0
  427. package/dist/types/components/ic-date-picker/ic-year-picker.d.ts +16 -0
  428. package/dist/types/components/ic-date-picker/story-data.d.ts +22 -0
  429. package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +2 -2
  430. package/dist/types/components/ic-select-with-multi/ic-select.d.ts +2 -2
  431. package/dist/types/components.d.ts +390 -141
  432. package/dist/types/utils/constants.d.ts +37 -0
  433. package/dist/types/utils/date-helpers.d.ts +22 -0
  434. package/dist/types/utils/helpers.d.ts +84 -16
  435. package/dist/types/utils/types.d.ts +92 -1
  436. package/hydrate/index.js +3275 -1148
  437. package/package.json +4 -3
  438. package/dist/cjs/helpers-b525d45a.js.map +0 -1
  439. package/dist/cjs/helpers-c4444a7e.js.map +0 -1
  440. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +0 -57
  441. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +0 -1
  442. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +0 -1
  443. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +0 -1
  444. package/dist/cjs/ic-input-label_2.cjs.entry.js +0 -86
  445. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +0 -1
  446. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.e2e.js +0 -217
  447. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.e2e.js.map +0 -1
  448. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +0 -87
  449. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +0 -160
  450. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +0 -1
  451. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js.map +0 -1
  452. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js +0 -70
  453. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js.map +0 -1
  454. package/dist/components/ic-data-table-title-bar.js +0 -136
  455. package/dist/components/ic-data-table-title-bar.js.map +0 -1
  456. package/dist/components/ic-empty-state2.js.map +0 -1
  457. package/dist/core/p-10fb4c46.entry.js +0 -2
  458. package/dist/core/p-10fb4c46.entry.js.map +0 -1
  459. package/dist/core/p-169bfa51.entry.js +0 -2
  460. package/dist/core/p-169bfa51.entry.js.map +0 -1
  461. package/dist/core/p-1e91f540.entry.js +0 -2
  462. package/dist/core/p-1e91f540.entry.js.map +0 -1
  463. package/dist/core/p-347e8dab.entry.js +0 -2
  464. package/dist/core/p-347e8dab.entry.js.map +0 -1
  465. package/dist/core/p-3803a5b5.entry.js +0 -2
  466. package/dist/core/p-3803a5b5.entry.js.map +0 -1
  467. package/dist/core/p-4753bac8.entry.js +0 -2
  468. package/dist/core/p-4753bac8.entry.js.map +0 -1
  469. package/dist/core/p-4baa0916.entry.js +0 -2
  470. package/dist/core/p-4baa0916.entry.js.map +0 -1
  471. package/dist/core/p-5171169f.entry.js +0 -2
  472. package/dist/core/p-5171169f.entry.js.map +0 -1
  473. package/dist/core/p-595be57d.entry.js +0 -2
  474. package/dist/core/p-5ee4319c.entry.js +0 -2
  475. package/dist/core/p-5ee4319c.entry.js.map +0 -1
  476. package/dist/core/p-5f4e96ec.entry.js +0 -2
  477. package/dist/core/p-5f4e96ec.entry.js.map +0 -1
  478. package/dist/core/p-624d4f5f.entry.js +0 -2
  479. package/dist/core/p-6933f8e9.entry.js +0 -2
  480. package/dist/core/p-6c3044b6.entry.js +0 -2
  481. package/dist/core/p-6c3044b6.entry.js.map +0 -1
  482. package/dist/core/p-7267fe19.entry.js +0 -2
  483. package/dist/core/p-7267fe19.entry.js.map +0 -1
  484. package/dist/core/p-76915584.entry.js.map +0 -1
  485. package/dist/core/p-88d54b72.entry.js +0 -2
  486. package/dist/core/p-88d54b72.entry.js.map +0 -1
  487. package/dist/core/p-917c5721.entry.js.map +0 -1
  488. package/dist/core/p-942282cd.entry.js +0 -2
  489. package/dist/core/p-942282cd.entry.js.map +0 -1
  490. package/dist/core/p-96b3e7e2.js +0 -2
  491. package/dist/core/p-96b3e7e2.js.map +0 -1
  492. package/dist/core/p-9caf19eb.js +0 -2
  493. package/dist/core/p-9caf19eb.js.map +0 -1
  494. package/dist/core/p-a0f8efb2.entry.js.map +0 -1
  495. package/dist/core/p-aac4185b.entry.js +0 -2
  496. package/dist/core/p-aac4185b.entry.js.map +0 -1
  497. package/dist/core/p-b2aa3d7c.entry.js +0 -2
  498. package/dist/core/p-b2aa3d7c.entry.js.map +0 -1
  499. package/dist/core/p-ba86928c.entry.js +0 -2
  500. package/dist/core/p-ba86928c.entry.js.map +0 -1
  501. package/dist/core/p-d8469ac0.entry.js +0 -2
  502. package/dist/core/p-d8469ac0.entry.js.map +0 -1
  503. package/dist/core/p-db9c03c0.entry.js +0 -2
  504. package/dist/core/p-f6888309.entry.js +0 -2
  505. package/dist/core/p-f6888309.entry.js.map +0 -1
  506. package/dist/core/p-f74a8752.entry.js +0 -2
  507. package/dist/core/p-f74a8752.entry.js.map +0 -1
  508. package/dist/core/p-fc5611e2.entry.js.map +0 -1
  509. package/dist/esm/helpers-12b4266a.js.map +0 -1
  510. package/dist/esm/helpers-1f07eb61.js.map +0 -1
  511. package/dist/esm/ic-data-table-title-bar.entry.js +0 -53
  512. package/dist/esm/ic-data-table-title-bar.entry.js.map +0 -1
  513. package/dist/esm/ic-empty-state_2.entry.js.map +0 -1
  514. package/dist/esm/ic-input-component-container_3.entry.js.map +0 -1
  515. package/dist/esm/ic-input-label_2.entry.js +0 -81
  516. package/dist/esm/ic-input-label_2.entry.js.map +0 -1
  517. package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.d.ts +0 -36
  518. /package/dist/core/{p-869954a2.entry.js.map → p-00bd7919.entry.js.map} +0 -0
  519. /package/dist/core/{p-a50c3b9e.entry.js.map → p-1a91e842.entry.js.map} +0 -0
  520. /package/dist/core/{p-f3c840cd.entry.js.map → p-41b682dc.entry.js.map} +0 -0
  521. /package/dist/core/{p-8b08d8fe.entry.js.map → p-6dce8e88.entry.js.map} +0 -0
  522. /package/dist/core/{p-1ca332ca.entry.js.map → p-6eb58b0a.entry.js.map} +0 -0
  523. /package/dist/core/{p-5ae93c16.entry.js.map → p-7fda2f94.entry.js.map} +0 -0
  524. /package/dist/core/{p-c34848da.entry.js.map → p-8b1f9648.entry.js.map} +0 -0
  525. /package/dist/core/{p-a434c3d4.entry.js.map → p-8b820365.entry.js.map} +0 -0
  526. /package/dist/core/{p-2eac7dcc.entry.js.map → p-946625a3.entry.js.map} +0 -0
  527. /package/dist/core/{p-7ef8d616.entry.js.map → p-9528b29e.entry.js.map} +0 -0
  528. /package/dist/core/{p-a43c12cd.entry.js.map → p-9567c117.entry.js.map} +0 -0
  529. /package/dist/core/{p-b82dcc29.entry.js.map → p-957de939.entry.js.map} +0 -0
  530. /package/dist/core/{p-045359e1.entry.js.map → p-99bf38e3.entry.js.map} +0 -0
  531. /package/dist/core/{p-81ddc39d.entry.js.map → p-9d8883d7.entry.js.map} +0 -0
  532. /package/dist/core/{p-e834344e.entry.js.map → p-a1556d97.entry.js.map} +0 -0
  533. /package/dist/core/{p-f843da01.entry.js.map → p-a2dc10d8.entry.js.map} +0 -0
  534. /package/dist/core/{p-ab09986c.entry.js.map → p-a8c15117.entry.js.map} +0 -0
  535. /package/dist/core/{p-f7a14c01.entry.js.map → p-c14a897d.entry.js.map} +0 -0
  536. /package/dist/core/{p-e3997d60.entry.js.map → p-d2d63a61.entry.js.map} +0 -0
  537. /package/dist/core/{p-4f413fc0.entry.js.map → p-db3a35fb.entry.js.map} +0 -0
  538. /package/dist/core/{p-204ace96.entry.js.map → p-e16f73ba.entry.js.map} +0 -0
  539. /package/dist/core/{p-f14454b1.entry.js.map → p-e8151d13.entry.js.map} +0 -0
  540. /package/dist/core/{p-a31031a5.entry.js.map → p-ff3a01f3.entry.js.map} +0 -0
  541. /package/dist/core/{p-75dac3d1.entry.js.map → p-ff6f1e3a.entry.js.map} +0 -0
  542. /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,991 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { DatePicker } from "../../ic-date-picker";
3
+ import { DateInput } from "../../../ic-date-input/ic-date-input";
4
+ import { IcButton as Button } from "@ukic/web-components/dist/components/ic-button";
5
+ import { IcTooltip as Tooltip } from "@ukic/web-components/dist/components/ic-tooltip";
6
+ import { waitForTimeout, testKeyboardEvent as keyboardEvent, } from "../../../../testspec.setup";
7
+ import { dateMatches } from "../../../../utils/date-helpers";
8
+ import { IcInputLabel as InputLabel } from "@ukic/web-components/dist/components/ic-input-label";
9
+ const DELAY_MS = 350;
10
+ const dateIsToday = (d) => {
11
+ return dateMatches(d, new Date());
12
+ };
13
+ beforeAll(() => {
14
+ jest.spyOn(console, "warn").mockImplementation(jest.fn());
15
+ });
16
+ describe("ic-date-picker", () => {
17
+ it("should render default size", async () => {
18
+ const page = await newSpecPage({
19
+ components: [DatePicker, DateInput, Button, Tooltip],
20
+ html: `<ic-date-picker label="Date picker label" value="11/07/2023"></ic-date-picker>`,
21
+ });
22
+ page.rootInstance.setSelectedDate(new Date(2023, 6, 11));
23
+ page.rootInstance.calendarOpen = true;
24
+ await page.waitForChanges();
25
+ await waitForTimeout(DELAY_MS);
26
+ expect(page.rootInstance.calendarOpen).toBe(true);
27
+ expect(page.root).toMatchSnapshot();
28
+ });
29
+ it("should render small datepicker", async () => {
30
+ const page = await newSpecPage({
31
+ components: [DatePicker, DateInput, Button, Tooltip],
32
+ html: `<ic-date-picker label="Date picker label" size="small" value="11/07/2023"></ic-date-picker>`,
33
+ });
34
+ page.rootInstance.setSelectedDate(new Date(2023, 6, 11));
35
+ page.rootInstance.calendarOpen = true;
36
+ await page.waitForChanges();
37
+ await waitForTimeout(DELAY_MS);
38
+ expect(page.root).toMatchSnapshot();
39
+ });
40
+ it("should render large datepicker", async () => {
41
+ const page = await newSpecPage({
42
+ components: [DatePicker, DateInput, Button, Tooltip],
43
+ html: `<ic-date-picker label="Date picker label" size="large" value="11/07/2023"></ic-date-picker>`,
44
+ });
45
+ page.rootInstance.setSelectedDate(new Date(2023, 6, 11));
46
+ page.rootInstance.calendarOpen = true;
47
+ await page.waitForChanges();
48
+ await waitForTimeout(DELAY_MS);
49
+ expect(page.root).toMatchSnapshot();
50
+ });
51
+ it("should render with today & clear buttons hidden", async () => {
52
+ const page = await newSpecPage({
53
+ components: [DatePicker, DateInput, Button, Tooltip],
54
+ html: `<ic-date-picker label="Date picker label" show-picker-today-button="false" show-picker-clear-button="false" value="11/07/2023"></ic-date-picker>`,
55
+ });
56
+ page.rootInstance.setSelectedDate(new Date(2023, 6, 11));
57
+ page.rootInstance.calendarOpen = true;
58
+ await page.waitForChanges();
59
+ await waitForTimeout(DELAY_MS);
60
+ expect(page.root).toMatchSnapshot();
61
+ });
62
+ it("should render disabled", async () => {
63
+ const page = await newSpecPage({
64
+ components: [DatePicker, DateInput, Button, Tooltip],
65
+ html: `<ic-date-picker label="Date picker label" disabled="true"></ic-date-picker>`,
66
+ });
67
+ expect(page.root).toMatchSnapshot();
68
+ });
69
+ it("should render as required field", async () => {
70
+ const page = await newSpecPage({
71
+ components: [DatePicker, DateInput, Button, Tooltip],
72
+ html: `<ic-date-picker label="Date picker label" required="true"></ic-date-picker>`,
73
+ });
74
+ expect(page.root).toMatchSnapshot();
75
+ });
76
+ it("should render with custom inputId and name", async () => {
77
+ const page = await newSpecPage({
78
+ components: [DatePicker, DateInput, Button, Tooltip],
79
+ html: `<ic-date-picker label="Date picker label" input-id="custom-id" name="custom-name" ></ic-date-picker>`,
80
+ });
81
+ expect(page.root).toMatchSnapshot();
82
+ });
83
+ it("should render with custom validation", async () => {
84
+ const page = await newSpecPage({
85
+ components: [DatePicker, DateInput, Button, Tooltip],
86
+ html: `<ic-date-picker label="Date picker label" validation-status="error" validation-text="Text error text"></ic-date-picker>`,
87
+ });
88
+ expect(page.root).toMatchSnapshot();
89
+ });
90
+ it("should render with DD/MM/YYYY format", async () => {
91
+ const page = await newSpecPage({
92
+ components: [DatePicker, DateInput, Button, Tooltip],
93
+ html: `<ic-date-picker label="Date picker label" date-format="DD/MM/YYYY" value="11-07-2023"></ic-date-picker>`,
94
+ });
95
+ page.rootInstance.setSelectedDate(new Date(2023, 6, 11));
96
+ page.rootInstance.calendarOpen = true;
97
+ await page.waitForChanges();
98
+ await waitForTimeout(DELAY_MS);
99
+ expect(page.root).toMatchSnapshot();
100
+ });
101
+ it("should render with MM/DD/YYYY format", async () => {
102
+ const page = await newSpecPage({
103
+ components: [DatePicker, DateInput, Button, Tooltip, InputLabel],
104
+ html: `<ic-date-picker label="Date picker label" date-format="MM/DD/YYYY" value="07-11-2023" helper-text="Use US Format"></ic-date-picker>`,
105
+ });
106
+ page.rootInstance.setSelectedDate(new Date(2023, 6, 11));
107
+ page.rootInstance.calendarOpen = true;
108
+ await page.waitForChanges();
109
+ await waitForTimeout(DELAY_MS);
110
+ expect(page.root).toMatchSnapshot();
111
+ });
112
+ it("should render with YYYY/MM/DD format", async () => {
113
+ const page = await newSpecPage({
114
+ components: [DatePicker, DateInput, Button, Tooltip],
115
+ html: `<ic-date-picker label="Date picker label" date-format="YYYY/MM/DD" value="2023/07/11"></ic-date-picker>`,
116
+ });
117
+ page.rootInstance.setSelectedDate(new Date(2023, 6, 11));
118
+ page.rootInstance.calendarOpen = true;
119
+ await page.waitForChanges();
120
+ await waitForTimeout(DELAY_MS);
121
+ expect(page.root).toMatchSnapshot();
122
+ });
123
+ it("should render with saturday and sundays disabled", async () => {
124
+ const page = await newSpecPage({
125
+ components: [DatePicker, DateInput, Button, Tooltip],
126
+ html: `<ic-date-picker label="Date picker label" value="11/07/2023" disable-days-message="Saturday and Sunday not allowed"></ic-date-picker>`,
127
+ });
128
+ page.root.disableDays = [0, 6];
129
+ page.rootInstance.setSelectedDate(new Date(2023, 6, 11));
130
+ page.rootInstance.calendarOpen = true;
131
+ await page.waitForChanges();
132
+ await waitForTimeout(DELAY_MS);
133
+ expect(page.root).toMatchSnapshot();
134
+ expect(page.rootInstance.dateInputProps.disableDaysMessage).toEqual("Saturday and Sunday not allowed");
135
+ });
136
+ it("should open at specified date", async () => {
137
+ const page = await newSpecPage({
138
+ components: [DatePicker, DateInput, Button, Tooltip],
139
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
140
+ });
141
+ page.rootInstance.calendarOpen = true;
142
+ await page.waitForChanges();
143
+ await waitForTimeout(DELAY_MS);
144
+ expect(page.root).toMatchSnapshot();
145
+ });
146
+ it("should have sunday as first day of week", async () => {
147
+ const page = await newSpecPage({
148
+ components: [DatePicker, DateInput, Button, Tooltip],
149
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022" start-of-week="0"></ic-date-picker>`,
150
+ });
151
+ page.rootInstance.calendarOpen = true;
152
+ await page.waitForChanges();
153
+ await waitForTimeout(DELAY_MS);
154
+ expect(page.root).toMatchSnapshot();
155
+ });
156
+ it("should have correct date focussed on open", async () => {
157
+ const page = await newSpecPage({
158
+ components: [DatePicker, DateInput, Button, Tooltip],
159
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
160
+ });
161
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
162
+ page.rootInstance.calendarOpen = true;
163
+ await page.waitForChanges();
164
+ await waitForTimeout(DELAY_MS);
165
+ expect(page.rootInstance.focussedDate).toEqual(page.rootInstance.selectedDate);
166
+ });
167
+ it("should update date when day clicked", async () => {
168
+ const page = await newSpecPage({
169
+ components: [DatePicker, DateInput, Button, Tooltip],
170
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
171
+ });
172
+ page.rootInstance.calendarOpen = true;
173
+ await page.waitForChanges();
174
+ await waitForTimeout(DELAY_MS);
175
+ const dayButton = page.root.shadowRoot.querySelector("div.calendar-days-container > div.day-button-container:nth-child(26) > button");
176
+ dayButton.click();
177
+ await page.waitForChanges();
178
+ await waitForTimeout(DELAY_MS);
179
+ expect(page.rootInstance.calendarOpen).toBe(false);
180
+ expect(page.rootInstance.selectedDate).toEqual(new Date(2022, 11, 23));
181
+ });
182
+ it("should show month picker view when button clicked", async () => {
183
+ const page = await newSpecPage({
184
+ components: [DatePicker, DateInput, Button, Tooltip],
185
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
186
+ });
187
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
188
+ page.rootInstance.calendarOpen = true;
189
+ await page.waitForChanges();
190
+ await waitForTimeout(DELAY_MS);
191
+ const monthButton = page.root.shadowRoot.querySelector(".month-picker-button");
192
+ monthButton.click();
193
+ await page.waitForChanges();
194
+ await waitForTimeout(DELAY_MS);
195
+ expect(page.root).toMatchSnapshot();
196
+ expect(page.rootInstance.monthPickerVisible).toBe(true);
197
+ monthButton.click();
198
+ await page.waitForChanges();
199
+ await waitForTimeout(DELAY_MS);
200
+ expect(page.rootInstance.monthPickerVisible).toBe(false);
201
+ });
202
+ it("should show year picker view when button clicked", async () => {
203
+ const page = await newSpecPage({
204
+ components: [DatePicker, DateInput, Button, Tooltip],
205
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
206
+ });
207
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
208
+ page.rootInstance.calendarOpen = true;
209
+ await page.waitForChanges();
210
+ await waitForTimeout(DELAY_MS);
211
+ const yearButton = page.root.shadowRoot.querySelector(".year-picker-button");
212
+ yearButton.click();
213
+ await page.waitForChanges();
214
+ await waitForTimeout(DELAY_MS);
215
+ expect(page.root).toMatchSnapshot();
216
+ expect(page.rootInstance.yearPickerVisible).toBe(true);
217
+ yearButton.click();
218
+ await page.waitForChanges();
219
+ await waitForTimeout(DELAY_MS);
220
+ expect(page.rootInstance.yearPickerVisible).toBe(false);
221
+ });
222
+ it("should only allow selection in specified month", async () => {
223
+ const page = await newSpecPage({
224
+ components: [DatePicker, DateInput, Button, Tooltip],
225
+ html: `<ic-date-picker label="Date picker label" min="01/10/2023" max="31/10/2023"></ic-date-picker>`,
226
+ });
227
+ page.rootInstance.calendarOpen = true;
228
+ await page.waitForChanges();
229
+ await waitForTimeout(DELAY_MS);
230
+ expect(page.root).toMatchSnapshot();
231
+ });
232
+ it("should select month when button clicked", async () => {
233
+ const page = await newSpecPage({
234
+ components: [DatePicker, DateInput, Button, Tooltip],
235
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
236
+ });
237
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
238
+ page.rootInstance.calendarOpen = true;
239
+ await page.waitForChanges();
240
+ await waitForTimeout(DELAY_MS);
241
+ const monthButton = page.root.shadowRoot.querySelector(".month-picker-button");
242
+ monthButton.click();
243
+ await page.waitForChanges();
244
+ await waitForTimeout(DELAY_MS);
245
+ const janButton = page.root.shadowRoot.querySelector("div.month-picker > ic-button:nth-child(1)");
246
+ janButton.click();
247
+ await page.waitForChanges();
248
+ await waitForTimeout(DELAY_MS);
249
+ expect(page.rootInstance.monthPickerVisible).toBe(false);
250
+ expect(page.rootInstance.monthInView).toBe(0);
251
+ expect(page.rootInstance.liveRegionEl.innerText).toEqual("January selected. January 2022 currently in view.");
252
+ });
253
+ it("should select year when button clicked", async () => {
254
+ const page = await newSpecPage({
255
+ components: [DatePicker, DateInput, Button, Tooltip],
256
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
257
+ });
258
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
259
+ page.rootInstance.calendarOpen = true;
260
+ await page.waitForChanges();
261
+ await waitForTimeout(DELAY_MS);
262
+ const yearButton = page.root.shadowRoot.querySelector(".year-picker-button");
263
+ yearButton.click();
264
+ await page.waitForChanges();
265
+ await waitForTimeout(DELAY_MS);
266
+ const firstYearButton = page.root.shadowRoot.querySelector("div.year-picker > ic-button:nth-child(2)");
267
+ firstYearButton.click();
268
+ await page.waitForChanges();
269
+ await waitForTimeout(DELAY_MS);
270
+ expect(page.rootInstance.yearPickerVisible).toBe(false);
271
+ expect(page.rootInstance.yearInView).toBe(2020);
272
+ });
273
+ it("should go to previous decade when button clicked", async () => {
274
+ const page = await newSpecPage({
275
+ components: [DatePicker, DateInput, Button, Tooltip],
276
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
277
+ });
278
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
279
+ page.rootInstance.calendarOpen = true;
280
+ await page.waitForChanges();
281
+ await waitForTimeout(DELAY_MS);
282
+ const yearButton = page.root.shadowRoot.querySelector(".year-picker-button");
283
+ yearButton.click();
284
+ await page.waitForChanges();
285
+ await waitForTimeout(DELAY_MS);
286
+ const prevDecadeButton = page.root.shadowRoot.querySelector("div.year-picker > div.prev-decade > ic-button:nth-child(1)");
287
+ prevDecadeButton.click();
288
+ await page.waitForChanges();
289
+ await waitForTimeout(DELAY_MS);
290
+ const firstYearButton = page.root.shadowRoot.querySelector("div.year-picker > ic-button:nth-child(2)");
291
+ firstYearButton.click();
292
+ await page.waitForChanges();
293
+ await waitForTimeout(DELAY_MS);
294
+ expect(page.rootInstance.yearInView).toBe(2010);
295
+ });
296
+ it("should go to next decade when button clicked", async () => {
297
+ const page = await newSpecPage({
298
+ components: [DatePicker, DateInput, Button, Tooltip],
299
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
300
+ });
301
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
302
+ page.rootInstance.calendarOpen = true;
303
+ await page.waitForChanges();
304
+ await waitForTimeout(DELAY_MS);
305
+ const yearButton = page.root.shadowRoot.querySelector(".year-picker-button");
306
+ yearButton.click();
307
+ await page.waitForChanges();
308
+ await waitForTimeout(DELAY_MS);
309
+ const nextDecadeButton = page.root.shadowRoot.querySelector("div.year-picker > div.next-decade > ic-button:nth-child(1)");
310
+ nextDecadeButton.click();
311
+ await page.waitForChanges();
312
+ await waitForTimeout(DELAY_MS);
313
+ const firstYearButton = page.root.shadowRoot.querySelector("div.year-picker > ic-button:nth-child(2)");
314
+ firstYearButton.click();
315
+ await page.waitForChanges();
316
+ await waitForTimeout(DELAY_MS);
317
+ expect(page.rootInstance.yearInView).toBe(2030);
318
+ });
319
+ it("should test disableFuture and disableFutureMessage props", async () => {
320
+ const page = await newSpecPage({
321
+ components: [DatePicker, DateInput, Button, Tooltip],
322
+ html: `<ic-date-picker label="Date picker label" disable-future="true" disable-future-message="Days in the future not allowed"></ic-date-picker>`,
323
+ });
324
+ await page.waitForChanges();
325
+ page.rootInstance.setSelectedDate(new Date(2222, 11, 25));
326
+ page.rootInstance.calendarOpen = true;
327
+ await page.waitForChanges();
328
+ await waitForTimeout(DELAY_MS);
329
+ expect(dateIsToday(page.rootInstance.maxDate)).toBe(true);
330
+ expect(dateMatches(page.rootInstance.focussedDate, new Date())).toBe(true);
331
+ expect(page.rootInstance.dateInputProps.disableFutureMessage).toEqual("Days in the future not allowed");
332
+ page.rootInstance.inputEl.value = "25/12/2222";
333
+ await page.waitForChanges();
334
+ //check dates in future allowed when prop is changed
335
+ page.rootInstance.disableFuture = false;
336
+ page.rootInstance.setSelectedDate(new Date(2222, 11, 25));
337
+ page.rootInstance.calendarOpen = true;
338
+ await page.waitForChanges();
339
+ expect(page.rootInstance.maxDate.toString()).toBe("Invalid Date");
340
+ expect(dateMatches(page.rootInstance.focussedDate, new Date())).toBe(true);
341
+ await waitForTimeout(DELAY_MS);
342
+ });
343
+ it("should test disablePast and disablePastMessage props", async () => {
344
+ const page = await newSpecPage({
345
+ components: [DatePicker, DateInput, Button, Tooltip],
346
+ html: `<ic-date-picker label="Date picker label" disable-past="true" disable-past-message="Days in the past not allowed"></ic-date-picker>`,
347
+ });
348
+ await page.waitForChanges();
349
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
350
+ page.rootInstance.calendarOpen = true;
351
+ await page.waitForChanges();
352
+ await waitForTimeout(DELAY_MS);
353
+ expect(dateMatches(page.rootInstance.minDate, new Date())).toBe(true);
354
+ expect(dateMatches(page.rootInstance.focussedDate, new Date())).toBe(true);
355
+ expect(page.rootInstance.dateInputProps.disablePastMessage).toEqual("Days in the past not allowed");
356
+ page.rootInstance.calendarOpen = false;
357
+ await page.waitForChanges();
358
+ //check dates in past allowed when prop is changed
359
+ page.rootInstance.disablePast = false;
360
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
361
+ page.rootInstance.calendarOpen = true;
362
+ await page.waitForChanges();
363
+ await waitForTimeout(DELAY_MS);
364
+ expect(page.rootInstance.minDate.toString()).toBe("Invalid Date");
365
+ expect(dateMatches(page.rootInstance.focussedDate, new Date(2022, 11, 25))).toBe(true);
366
+ });
367
+ it("should close picker when another element clicked", async () => {
368
+ const page = await newSpecPage({
369
+ components: [DatePicker, DateInput, Button, Tooltip],
370
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
371
+ });
372
+ page.rootInstance.calendarOpen = true;
373
+ await page.waitForChanges();
374
+ await waitForTimeout(DELAY_MS);
375
+ page.root.click();
376
+ await page.waitForChanges();
377
+ await waitForTimeout(DELAY_MS);
378
+ expect(page.rootInstance.calendarOpen).toBe(false);
379
+ });
380
+ it("should close picker when Escape key pressed", async () => {
381
+ const page = await newSpecPage({
382
+ components: [DatePicker, DateInput, Button, Tooltip],
383
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
384
+ });
385
+ page.rootInstance.calendarOpen = true;
386
+ await page.waitForChanges();
387
+ await waitForTimeout(DELAY_MS);
388
+ page.rootInstance.keyDownHandler(keyboardEvent("Escape"));
389
+ await page.waitForChanges();
390
+ await waitForTimeout(DELAY_MS);
391
+ expect(page.rootInstance.calendarOpen).toBe(false);
392
+ });
393
+ it("should clear dialog description when key pressed", async () => {
394
+ const page = await newSpecPage({
395
+ components: [DatePicker, DateInput, Button, Tooltip],
396
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
397
+ });
398
+ page.rootInstance.calendarOpen = true;
399
+ await page.waitForChanges();
400
+ await waitForTimeout(DELAY_MS);
401
+ page.rootInstance.keyDownHandler(keyboardEvent("Tab"));
402
+ await page.waitForChanges();
403
+ await waitForTimeout(DELAY_MS);
404
+ expect(page.rootInstance.dialogDescription).toBe("");
405
+ });
406
+ it("should test go to today button", async () => {
407
+ const page = await newSpecPage({
408
+ components: [DatePicker, DateInput, Button, Tooltip],
409
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
410
+ });
411
+ page.rootInstance.calendarOpen = true;
412
+ await page.waitForChanges();
413
+ await waitForTimeout(DELAY_MS);
414
+ const todayButton = page.root.shadowRoot.querySelector("div.bottom-buttons > #today-button");
415
+ todayButton.click();
416
+ await page.waitForChanges();
417
+ await waitForTimeout(DELAY_MS);
418
+ expect(dateIsToday(page.rootInstance.focussedDate)).toBe(true);
419
+ });
420
+ it("should test go to today button - month view", async () => {
421
+ const page = await newSpecPage({
422
+ components: [DatePicker, DateInput, Button, Tooltip],
423
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
424
+ });
425
+ page.rootInstance.calendarOpen = true;
426
+ await page.waitForChanges();
427
+ await waitForTimeout(DELAY_MS);
428
+ page.rootInstance.monthPickerVisible = true;
429
+ await page.waitForChanges();
430
+ await waitForTimeout(DELAY_MS);
431
+ const todayButton = page.root.shadowRoot.querySelector("div.bottom-buttons > #today-button");
432
+ todayButton.click();
433
+ await page.waitForChanges();
434
+ await waitForTimeout(DELAY_MS);
435
+ expect(page.rootInstance.monthPickerVisible).toBe(false);
436
+ expect(dateIsToday(page.rootInstance.focussedDate)).toBe(true);
437
+ });
438
+ it("should test go to today button - year view", async () => {
439
+ const page = await newSpecPage({
440
+ components: [DatePicker, DateInput, Button, Tooltip],
441
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
442
+ });
443
+ page.rootInstance.calendarOpen = true;
444
+ await page.waitForChanges();
445
+ await waitForTimeout(DELAY_MS);
446
+ page.rootInstance.yearPickerVisible = true;
447
+ await page.waitForChanges();
448
+ await waitForTimeout(DELAY_MS);
449
+ const todayButton = page.root.shadowRoot.querySelector("div.bottom-buttons > #today-button");
450
+ todayButton.click();
451
+ await page.waitForChanges();
452
+ await waitForTimeout(DELAY_MS);
453
+ expect(page.rootInstance.yearPickerVisible).toBe(false);
454
+ expect(dateIsToday(page.rootInstance.focussedDate)).toBe(true);
455
+ });
456
+ it("should test clear button", async () => {
457
+ const page = await newSpecPage({
458
+ components: [DatePicker, DateInput, Button, Tooltip],
459
+ html: `<ic-date-picker label="Date picker label" value="25/12/2022"></ic-date-picker>`,
460
+ });
461
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
462
+ page.rootInstance.calendarOpen = true;
463
+ await page.waitForChanges();
464
+ await waitForTimeout(DELAY_MS);
465
+ Object.defineProperty(page.rootInstance.focussedDayEl, "focus", {
466
+ value: jest.fn(),
467
+ });
468
+ expect(page.rootInstance.focussedDayEl.focus).not.toHaveBeenCalled();
469
+ expect(page.rootInstance.selectedDate).not.toBe(null);
470
+ const clearButton = page.root.shadowRoot.querySelector("div.bottom-buttons > #clear-button");
471
+ clearButton.click();
472
+ await page.waitForChanges();
473
+ await waitForTimeout(DELAY_MS);
474
+ expect(page.rootInstance.selectedDate).toBe(null);
475
+ expect(page.rootInstance.focussedDayEl.focus).toHaveBeenCalled();
476
+ expect(page.rootInstance.liveRegionEl.textContent).toBe("Selected date cleared. December 2022 currently in view.");
477
+ });
478
+ it("should test clear button - month view", async () => {
479
+ const page = await newSpecPage({
480
+ components: [DatePicker, DateInput, Button, Tooltip],
481
+ html: `<ic-date-picker label="Date picker label" value="25/12/2022"></ic-date-picker>`,
482
+ });
483
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
484
+ page.rootInstance.calendarOpen = true;
485
+ await page.waitForChanges();
486
+ await waitForTimeout(DELAY_MS);
487
+ page.rootInstance.monthPickerVisible = true;
488
+ await page.waitForChanges();
489
+ await waitForTimeout(DELAY_MS);
490
+ Object.defineProperty(page.rootInstance.focussedMonthEl, "setFocus", {
491
+ value: jest.fn(),
492
+ });
493
+ expect(page.rootInstance.focussedMonthEl.setFocus).not.toHaveBeenCalled();
494
+ expect(page.root.value).not.toBe("");
495
+ const clearButton = page.root.shadowRoot.querySelector("div.bottom-buttons > #clear-button");
496
+ clearButton.click();
497
+ await page.waitForChanges();
498
+ await waitForTimeout(DELAY_MS);
499
+ expect(page.rootInstance.selectedDate).toBe(null);
500
+ expect(page.rootInstance.monthPickerVisible).toBe(true);
501
+ expect(page.rootInstance.focussedMonthEl.setFocus).toHaveBeenCalled();
502
+ expect(page.rootInstance.liveRegionEl.textContent).toBe("Selected date cleared.");
503
+ });
504
+ it("should test clear button - year view", async () => {
505
+ const page = await newSpecPage({
506
+ components: [DatePicker, DateInput, Button, Tooltip],
507
+ html: `<ic-date-picker label="Date picker label" value="25/12/2022"></ic-date-picker>`,
508
+ });
509
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
510
+ page.rootInstance.calendarOpen = true;
511
+ await page.waitForChanges();
512
+ await waitForTimeout(DELAY_MS);
513
+ page.rootInstance.yearPickerVisible = true;
514
+ await page.waitForChanges();
515
+ await waitForTimeout(DELAY_MS);
516
+ Object.defineProperty(page.rootInstance.focussedYearEl, "setFocus", {
517
+ value: jest.fn(),
518
+ });
519
+ expect(page.rootInstance.focussedYearEl.setFocus).not.toHaveBeenCalled();
520
+ expect(page.root.value).not.toBe("");
521
+ const clearButton = page.root.shadowRoot.querySelector("div.bottom-buttons > #clear-button");
522
+ clearButton.click();
523
+ await page.waitForChanges();
524
+ await waitForTimeout(DELAY_MS);
525
+ expect(page.root.value).toBeNull();
526
+ expect(page.rootInstance.yearPickerVisible).toBe(true);
527
+ expect(page.rootInstance.focussedYearEl.setFocus).toHaveBeenCalled();
528
+ expect(page.rootInstance.liveRegionEl.textContent).toBe("Selected date cleared.");
529
+ });
530
+ it("should test month & year nav buttons", async () => {
531
+ const page = await newSpecPage({
532
+ components: [DatePicker, DateInput, Button, Tooltip],
533
+ html: `<ic-date-picker label="Date picker label" value="25/12/2022"></ic-date-picker>`,
534
+ });
535
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
536
+ page.rootInstance.calendarOpen = true;
537
+ await page.waitForChanges();
538
+ await waitForTimeout(DELAY_MS);
539
+ const prevMonthButton = page.root.shadowRoot.querySelector("#previous-month-button");
540
+ prevMonthButton.click();
541
+ await page.waitForChanges();
542
+ await waitForTimeout(DELAY_MS);
543
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 10, 25));
544
+ const nextMonthButton = page.root.shadowRoot.querySelector("#next-month-button");
545
+ nextMonthButton.click();
546
+ await page.waitForChanges();
547
+ await waitForTimeout(DELAY_MS);
548
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 11, 25));
549
+ const prevYearButton = page.root.shadowRoot.querySelector("#previous-year-button");
550
+ prevYearButton.click();
551
+ await page.waitForChanges();
552
+ await waitForTimeout(DELAY_MS);
553
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2021, 11, 25));
554
+ const nextYearButton = page.root.shadowRoot.querySelector("#next-year-button");
555
+ nextYearButton.click();
556
+ await page.waitForChanges();
557
+ await waitForTimeout(DELAY_MS);
558
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 11, 25));
559
+ });
560
+ it("should test tab on goto today button goes to first element on dialog when clear disabled", async () => {
561
+ const page = await newSpecPage({
562
+ components: [DatePicker, DateInput, Button, Tooltip],
563
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
564
+ });
565
+ page.rootInstance.calendarOpen = true;
566
+ await page.waitForChanges();
567
+ await waitForTimeout(DELAY_MS);
568
+ page.rootInstance.todayButtonKeyDownHandler(keyboardEvent("Tab"));
569
+ await page.waitForChanges();
570
+ expect(page.rootInstance.focusFirstElement).toHaveBeenCalled;
571
+ });
572
+ it("should test tab on clear button goes to first element on dialog", async () => {
573
+ const page = await newSpecPage({
574
+ components: [DatePicker, DateInput, Button, Tooltip],
575
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
576
+ });
577
+ page.rootInstance.calendarOpen = true;
578
+ await page.waitForChanges();
579
+ await waitForTimeout(DELAY_MS);
580
+ page.rootInstance.clearButtonKeyDownHandler(keyboardEvent("Tab"));
581
+ await page.waitForChanges();
582
+ expect(page.rootInstance.focusFirstElement).toHaveBeenCalled;
583
+ });
584
+ it("should test monthButtonKeyDownHandler", async () => {
585
+ const page = await newSpecPage({
586
+ components: [DatePicker, DateInput, Button, Tooltip],
587
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
588
+ });
589
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
590
+ page.rootInstance.calendarOpen = true;
591
+ await page.waitForChanges();
592
+ await waitForTimeout(DELAY_MS);
593
+ page.rootInstance.monthPickerVisible = true;
594
+ await page.waitForChanges();
595
+ await waitForTimeout(DELAY_MS);
596
+ page.rootInstance.monthButtonKeyDownHandler(keyboardEvent("ArrowUp"));
597
+ await page.waitForChanges();
598
+ expect(page.rootInstance.monthInView).toBe(10);
599
+ page.rootInstance.monthButtonKeyDownHandler(keyboardEvent("ArrowDown"));
600
+ await page.waitForChanges();
601
+ expect(page.rootInstance.monthInView).toBe(11);
602
+ page.rootInstance.monthButtonKeyDownHandler(keyboardEvent("ArrowRight"));
603
+ await page.waitForChanges();
604
+ expect(page.rootInstance.monthInView).toBe(0);
605
+ page.rootInstance.monthButtonKeyDownHandler(keyboardEvent("ArrowLeft"));
606
+ await page.waitForChanges();
607
+ expect(page.rootInstance.monthInView).toBe(11);
608
+ page.rootInstance.monthButtonKeyDownHandler(keyboardEvent("Home"));
609
+ await page.waitForChanges();
610
+ expect(page.rootInstance.monthInView).toBe(0);
611
+ page.rootInstance.monthButtonKeyDownHandler(keyboardEvent("End"));
612
+ await page.waitForChanges();
613
+ expect(page.rootInstance.monthInView).toBe(11);
614
+ Object.defineProperty(page.rootInstance.clearButtonEl, "setFocus", {
615
+ value: jest.fn(),
616
+ });
617
+ const tabKeyEvent = keyboardEvent("Tab");
618
+ tabKeyEvent.shiftKey = true;
619
+ page.rootInstance.monthButtonKeyDownHandler(tabKeyEvent);
620
+ await page.waitForChanges();
621
+ expect(page.rootInstance.clearButtonEl.setFocus).toHaveBeenCalled();
622
+ //should focus today button when clear hidden
623
+ page.rootInstance.showPickerClearButton = false;
624
+ await page.waitForChanges();
625
+ await waitForTimeout(DELAY_MS);
626
+ Object.defineProperty(page.rootInstance.todayButtonEl, "setFocus", {
627
+ value: jest.fn(),
628
+ });
629
+ page.rootInstance.monthButtonKeyDownHandler(tabKeyEvent);
630
+ await page.waitForChanges();
631
+ expect(page.rootInstance.todayButtonEl.setFocus).toHaveBeenCalled();
632
+ // should focus month when today hidden
633
+ //should focus month button when month view open and today hidden
634
+ page.rootInstance.showPickerTodayButton = false;
635
+ await page.waitForChanges();
636
+ await waitForTimeout(DELAY_MS);
637
+ Object.defineProperty(page.rootInstance.focussedMonthEl, "setFocus", {
638
+ value: jest.fn(),
639
+ });
640
+ page.rootInstance.monthButtonKeyDownHandler(tabKeyEvent);
641
+ await page.waitForChanges();
642
+ expect(page.rootInstance.focussedMonthEl.setFocus).toHaveBeenCalled();
643
+ //should focus day
644
+ page.rootInstance.monthButtonKeyDownHandler(keyboardEvent("Enter"));
645
+ page.rootInstance.monthButtonKeyDownHandler(keyboardEvent("Escape"));
646
+ await page.waitForChanges();
647
+ await waitForTimeout(DELAY_MS);
648
+ expect(page.rootInstance.monthPickerVisible).toBe(false);
649
+ Object.defineProperty(page.rootInstance.focussedDayEl, "focus", {
650
+ value: jest.fn(),
651
+ });
652
+ page.rootInstance.monthButtonKeyDownHandler(tabKeyEvent);
653
+ await page.waitForChanges();
654
+ expect(page.rootInstance.focussedDayEl.focus).toHaveBeenCalled();
655
+ //should focus year
656
+ page.rootInstance.yearPickerVisible = true;
657
+ await page.waitForChanges();
658
+ await waitForTimeout(DELAY_MS);
659
+ Object.defineProperty(page.rootInstance.focussedYearEl, "setFocus", {
660
+ value: jest.fn(),
661
+ });
662
+ page.rootInstance.monthButtonKeyDownHandler(tabKeyEvent);
663
+ await page.waitForChanges();
664
+ expect(page.rootInstance.focussedYearEl.setFocus).toHaveBeenCalled();
665
+ });
666
+ it("should test yearButtonKeyDownHandler", async () => {
667
+ const page = await newSpecPage({
668
+ components: [DatePicker, DateInput, Button, Tooltip],
669
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
670
+ });
671
+ page.rootInstance.setSelectedDate(new Date(2022, 11, 25));
672
+ page.rootInstance.calendarOpen = true;
673
+ await page.waitForChanges();
674
+ await waitForTimeout(DELAY_MS);
675
+ page.rootInstance.yearPickerVisible = true;
676
+ await page.waitForChanges();
677
+ await waitForTimeout(DELAY_MS);
678
+ page.rootInstance.yearButtonKeyDownHandler(keyboardEvent("ArrowUp"));
679
+ await page.waitForChanges();
680
+ expect(page.rootInstance.yearInView).toBe(2021);
681
+ page.rootInstance.yearButtonKeyDownHandler(keyboardEvent("ArrowDown"));
682
+ await page.waitForChanges();
683
+ expect(page.rootInstance.yearInView).toBe(2022);
684
+ page.rootInstance.yearButtonKeyDownHandler(keyboardEvent("ArrowRight"));
685
+ await page.waitForChanges();
686
+ expect(page.rootInstance.yearInView).toBe(2023);
687
+ page.rootInstance.yearButtonKeyDownHandler(keyboardEvent("ArrowLeft"));
688
+ await page.waitForChanges();
689
+ expect(page.rootInstance.yearInView).toBe(2022);
690
+ page.rootInstance.yearButtonKeyDownHandler(keyboardEvent("Home"));
691
+ await page.waitForChanges();
692
+ expect(page.rootInstance.yearInView).toBe(2020);
693
+ page.rootInstance.yearButtonKeyDownHandler(keyboardEvent("End"));
694
+ await page.waitForChanges();
695
+ expect(page.rootInstance.yearInView).toBe(2029);
696
+ page.rootInstance.yearButtonKeyDownHandler(keyboardEvent("PageUp"));
697
+ await page.waitForChanges();
698
+ expect(page.rootInstance.yearInView).toBe(2019);
699
+ page.rootInstance.yearButtonKeyDownHandler(keyboardEvent("PageDown"));
700
+ await page.waitForChanges();
701
+ expect(page.rootInstance.yearInView).toBe(2029);
702
+ page.rootInstance.yearButtonKeyDownHandler(keyboardEvent("Enter"));
703
+ page.rootInstance.yearButtonKeyDownHandler(keyboardEvent("Escape"));
704
+ await page.waitForChanges();
705
+ await waitForTimeout(DELAY_MS);
706
+ expect(page.rootInstance.yearPickerVisible).toBe(false);
707
+ });
708
+ it("should test monthPickerKeyDownHandler", async () => {
709
+ const page = await newSpecPage({
710
+ components: [DatePicker, DateInput, Button, Tooltip],
711
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
712
+ });
713
+ page.rootInstance.calendarOpen = true;
714
+ await page.waitForChanges();
715
+ await waitForTimeout(DELAY_MS);
716
+ page.rootInstance.monthPickerVisible = true;
717
+ await page.waitForChanges();
718
+ await waitForTimeout(DELAY_MS);
719
+ page.rootInstance.monthPickerKeyDownHandler(keyboardEvent("ArrowUp"));
720
+ await page.waitForChanges();
721
+ await waitForTimeout(DELAY_MS);
722
+ expect(page.rootInstance.focussedMonth).toBe(10);
723
+ page.rootInstance.monthPickerKeyDownHandler(keyboardEvent("ArrowDown"));
724
+ await page.waitForChanges();
725
+ await waitForTimeout(DELAY_MS);
726
+ expect(page.rootInstance.focussedMonth).toBe(11);
727
+ page.rootInstance.monthPickerKeyDownHandler(keyboardEvent("ArrowRight"));
728
+ await page.waitForChanges();
729
+ await waitForTimeout(DELAY_MS);
730
+ expect(page.rootInstance.focussedMonth).toBe(0);
731
+ page.rootInstance.monthPickerKeyDownHandler(keyboardEvent("ArrowLeft"));
732
+ await page.waitForChanges();
733
+ await waitForTimeout(DELAY_MS);
734
+ expect(page.rootInstance.focussedMonth).toBe(11);
735
+ page.rootInstance.monthPickerKeyDownHandler(keyboardEvent("Home"));
736
+ await page.waitForChanges();
737
+ await waitForTimeout(DELAY_MS);
738
+ expect(page.rootInstance.focussedMonth).toBe(0);
739
+ page.rootInstance.monthPickerKeyDownHandler(keyboardEvent("End"));
740
+ await page.waitForChanges();
741
+ await waitForTimeout(DELAY_MS);
742
+ expect(page.rootInstance.focussedMonth).toBe(11);
743
+ page.rootInstance.monthPickerKeyDownHandler(keyboardEvent("Tab"));
744
+ page.rootInstance.monthPickerKeyDownHandler(keyboardEvent("Enter"));
745
+ page.rootInstance.monthPickerKeyDownHandler(keyboardEvent("Escape"));
746
+ await page.waitForChanges();
747
+ await waitForTimeout(DELAY_MS);
748
+ expect(page.rootInstance.monthPickerVisible).toBe(false);
749
+ });
750
+ it("should test yearPickerKeyDownHandler ", async () => {
751
+ const page = await newSpecPage({
752
+ components: [DatePicker, DateInput, Button, Tooltip],
753
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022"></ic-date-picker>`,
754
+ });
755
+ page.rootInstance.calendarOpen = true;
756
+ await page.waitForChanges();
757
+ await waitForTimeout(DELAY_MS);
758
+ page.rootInstance.yearPickerVisible = true;
759
+ await page.waitForChanges();
760
+ await waitForTimeout(DELAY_MS);
761
+ page.rootInstance.yearPickerKeyDownHandler(keyboardEvent("ArrowUp"));
762
+ await page.waitForChanges();
763
+ await waitForTimeout(DELAY_MS);
764
+ expect(page.rootInstance.focussedYear).toBe(2021);
765
+ page.rootInstance.yearPickerKeyDownHandler(keyboardEvent("ArrowDown"));
766
+ await page.waitForChanges();
767
+ await waitForTimeout(DELAY_MS);
768
+ expect(page.rootInstance.focussedYear).toBe(2022);
769
+ page.rootInstance.yearPickerKeyDownHandler(keyboardEvent("ArrowRight"));
770
+ await page.waitForChanges();
771
+ await waitForTimeout(DELAY_MS);
772
+ expect(page.rootInstance.focussedYear).toBe(2023);
773
+ page.rootInstance.yearPickerKeyDownHandler(keyboardEvent("ArrowLeft"));
774
+ await page.waitForChanges();
775
+ await waitForTimeout(DELAY_MS);
776
+ expect(page.rootInstance.focussedYear).toBe(2022);
777
+ page.rootInstance.yearPickerKeyDownHandler(keyboardEvent("Home"));
778
+ await page.waitForChanges();
779
+ await waitForTimeout(DELAY_MS);
780
+ expect(page.rootInstance.focussedYear).toBe(2020);
781
+ page.rootInstance.yearPickerKeyDownHandler(keyboardEvent("End"));
782
+ await page.waitForChanges();
783
+ await waitForTimeout(DELAY_MS);
784
+ expect(page.rootInstance.focussedYear).toBe(2029);
785
+ page.rootInstance.yearPickerKeyDownHandler(keyboardEvent("PageUp"));
786
+ await page.waitForChanges();
787
+ await waitForTimeout(DELAY_MS);
788
+ expect(page.rootInstance.focussedYear).toBe(2019);
789
+ page.rootInstance.yearPickerKeyDownHandler(keyboardEvent("PageDown"));
790
+ await page.waitForChanges();
791
+ await waitForTimeout(DELAY_MS);
792
+ expect(page.rootInstance.focussedYear).toBe(2029);
793
+ page.rootInstance.yearPickerKeyDownHandler(keyboardEvent("Tab"));
794
+ page.rootInstance.yearPickerKeyDownHandler(keyboardEvent("Enter"));
795
+ page.rootInstance.yearPickerKeyDownHandler(keyboardEvent("Escape"));
796
+ await page.waitForChanges();
797
+ await waitForTimeout(DELAY_MS);
798
+ expect(page.rootInstance.yearPickerVisible).toBe(false);
799
+ });
800
+ it("should test handleCalendarKeyDown", async () => {
801
+ const page = await newSpecPage({
802
+ components: [DatePicker, DateInput, Button, Tooltip],
803
+ html: `<ic-date-picker label="Date picker label" open-at-date="25/12/2022" show-picker-today-button="false" show-picker-clear-button="false"></ic-date-picker>`,
804
+ });
805
+ page.rootInstance.calendarOpen = true;
806
+ await page.waitForChanges();
807
+ await waitForTimeout(DELAY_MS);
808
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("ArrowUp"));
809
+ await page.waitForChanges();
810
+ await waitForTimeout(DELAY_MS);
811
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 11, 18));
812
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("ArrowDown"));
813
+ await page.waitForChanges();
814
+ await waitForTimeout(DELAY_MS);
815
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 11, 25));
816
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("ArrowRight"));
817
+ await page.waitForChanges();
818
+ await waitForTimeout(DELAY_MS);
819
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 11, 26));
820
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("ArrowLeft"));
821
+ await page.waitForChanges();
822
+ await waitForTimeout(DELAY_MS);
823
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 11, 25));
824
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("Home"));
825
+ await page.waitForChanges();
826
+ await waitForTimeout(DELAY_MS);
827
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 11, 1));
828
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("End"));
829
+ await page.waitForChanges();
830
+ await waitForTimeout(DELAY_MS);
831
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 11, 31));
832
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("PageUp"));
833
+ await page.waitForChanges();
834
+ await waitForTimeout(DELAY_MS);
835
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 10, 30));
836
+ expect(page.rootInstance.liveRegionEl.innerText).toEqual("November 2022 currently in view.");
837
+ let keyEvent = keyboardEvent("PageUp");
838
+ keyEvent.shiftKey = true;
839
+ page.rootInstance.handleCalendarKeyDown(keyEvent);
840
+ await page.waitForChanges();
841
+ await waitForTimeout(DELAY_MS);
842
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2021, 10, 30));
843
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("PageDown"));
844
+ await page.waitForChanges();
845
+ await waitForTimeout(DELAY_MS);
846
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2021, 11, 30));
847
+ keyEvent = keyboardEvent("PageDown");
848
+ keyEvent.shiftKey = true;
849
+ page.rootInstance.handleCalendarKeyDown(keyEvent);
850
+ await page.waitForChanges();
851
+ await waitForTimeout(DELAY_MS);
852
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 11, 30));
853
+ Object.defineProperty(page.rootInstance.monthButtonEl, "setFocus", {
854
+ value: jest.fn(),
855
+ });
856
+ // simulate pressing enter to handle default behaviour case
857
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("Enter"));
858
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("Tab"));
859
+ await page.waitForChanges();
860
+ await waitForTimeout(DELAY_MS);
861
+ expect(page.rootInstance.monthButtonEl.setFocus).toHaveBeenCalled();
862
+ //test tab with clear button disabled (rather than hidden)
863
+ page.root.showPickerClearButton = true;
864
+ await page.waitForChanges();
865
+ await waitForTimeout(DELAY_MS);
866
+ page.rootInstance.clearButtonEl.disabled = true;
867
+ await page.waitForChanges();
868
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("Tab"));
869
+ await page.waitForChanges();
870
+ expect(page.rootInstance.monthButtonEl.setFocus).toHaveBeenCalledTimes(2);
871
+ Object.defineProperty(page.rootInstance.yearButtonEl, "setFocus", {
872
+ value: jest.fn(),
873
+ });
874
+ keyEvent = keyboardEvent("Tab");
875
+ keyEvent.shiftKey = true;
876
+ page.rootInstance.handleCalendarKeyDown(keyEvent);
877
+ await page.waitForChanges();
878
+ expect(page.rootInstance.yearButtonEl.setFocus).toHaveBeenCalled();
879
+ });
880
+ it("should test keyboard navigation when weekends disabled", async () => {
881
+ const page = await newSpecPage({
882
+ components: [DatePicker, DateInput, Button, Tooltip],
883
+ html: `<ic-date-picker label="Date picker label" open-at-date="23/12/2022"></ic-date-picker>`,
884
+ });
885
+ page.root.disableDays = [0, 6];
886
+ page.rootInstance.calendarOpen = true;
887
+ await page.waitForChanges();
888
+ await waitForTimeout(DELAY_MS);
889
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("ArrowRight"));
890
+ await page.waitForChanges();
891
+ await waitForTimeout(DELAY_MS);
892
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 11, 26));
893
+ page.rootInstance.handleCalendarKeyDown(keyboardEvent("ArrowLeft"));
894
+ await page.waitForChanges();
895
+ await waitForTimeout(DELAY_MS);
896
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 11, 23));
897
+ });
898
+ it("should test calendarButtonClickHandler", async () => {
899
+ const page = await newSpecPage({
900
+ components: [DatePicker, DateInput, Button, Tooltip],
901
+ html: `<ic-date-picker label="Date picker label"></ic-date-picker>`,
902
+ });
903
+ page.rootInstance.calendarOpen = true;
904
+ await page.waitForChanges();
905
+ await waitForTimeout(DELAY_MS);
906
+ page.rootInstance.calendarButtonClickHandler();
907
+ expect(page.rootInstance.calendarOpen).toBe(false);
908
+ });
909
+ it("should test localCalendarButtonClickHandler", async () => {
910
+ const page = await newSpecPage({
911
+ components: [DatePicker, DateInput, Button, Tooltip],
912
+ html: `<ic-date-picker label="Date picker label"></ic-date-picker>`,
913
+ });
914
+ const ev = { detail: { value: new Date(2022, 11, 25) } };
915
+ page.rootInstance.localCalendarButtonClickHandler(ev);
916
+ await page.waitForChanges();
917
+ await waitForTimeout(DELAY_MS);
918
+ expect(page.rootInstance.calendarOpen).toBe(true);
919
+ expect(page.rootInstance.focussedDate).toEqual(new Date(2022, 11, 25));
920
+ });
921
+ it("should test blur of day button", async () => {
922
+ const page = await newSpecPage({
923
+ components: [DatePicker, DateInput, Button, Tooltip],
924
+ html: `<ic-date-picker label="Date picker label" open-at-date="23/12/2022"></ic-date-picker>`,
925
+ });
926
+ page.rootInstance.calendarOpen = true;
927
+ await page.waitForChanges();
928
+ await waitForTimeout(DELAY_MS);
929
+ expect(page.rootInstance.dayButtonFocussed).toBe(true);
930
+ const dayButton = page.root.shadowRoot.querySelector("div.calendar-days-container > div.day-button-container:nth-child(26) > button");
931
+ dayButton.blur();
932
+ expect(page.rootInstance.dayButtonFocussed).toBe(false);
933
+ });
934
+ it("should test nav button mouse down handler", async () => {
935
+ const page = await newSpecPage({
936
+ components: [DatePicker, DateInput, Button, Tooltip],
937
+ html: `<ic-date-picker label="Date picker label" open-at-date="23/12/2022"></ic-date-picker>`,
938
+ });
939
+ page.rootInstance.calendarOpen = true;
940
+ await page.waitForChanges();
941
+ await waitForTimeout(DELAY_MS);
942
+ const dayButton = page.root.shadowRoot.querySelector("#previous-month-button");
943
+ const mouseEvent = new window.window.MouseEvent("mousedown", {
944
+ bubbles: true,
945
+ cancelable: true,
946
+ });
947
+ Object.defineProperty(mouseEvent, "preventDefault", {
948
+ value: jest.fn(),
949
+ });
950
+ dayButton.dispatchEvent(mouseEvent);
951
+ await page.waitForChanges();
952
+ expect(mouseEvent.preventDefault).toHaveBeenCalled();
953
+ });
954
+ it("should test setAriaLiveRegionText", async () => {
955
+ const page = await newSpecPage({
956
+ components: [DatePicker, DateInput, Button, Tooltip],
957
+ html: `<ic-date-picker label="Date picker label" open-at-date="23/12/2022"></ic-date-picker>`,
958
+ });
959
+ page.rootInstance.calendarOpen = true;
960
+ await page.waitForChanges();
961
+ await waitForTimeout(DELAY_MS);
962
+ const text = "some text in the aria live region";
963
+ page.rootInstance.setAriaLiveRegionText(text);
964
+ await page.waitForChanges();
965
+ expect(page.rootInstance.liveRegionEl.innerText).toEqual(text);
966
+ });
967
+ it("should test focus and blur of year button", async () => {
968
+ const page = await newSpecPage({
969
+ components: [DatePicker, DateInput, Button, Tooltip],
970
+ html: `<ic-date-picker label="Date picker label" open-at-date="23/12/2022"></ic-date-picker>`,
971
+ });
972
+ page.rootInstance.calendarOpen = true;
973
+ await page.waitForChanges();
974
+ await waitForTimeout(DELAY_MS);
975
+ const yearButton = page.root.shadowRoot.querySelector(".year-picker-button");
976
+ yearButton.click();
977
+ await page.waitForChanges();
978
+ await waitForTimeout(DELAY_MS);
979
+ expect(page.rootInstance.yearButtonFocussed).toBe(false);
980
+ const firstYearButton = page.root.shadowRoot.querySelector("div.year-picker > ic-button:nth-child(2)");
981
+ firstYearButton.focus();
982
+ await page.waitForChanges();
983
+ await waitForTimeout(DELAY_MS);
984
+ expect(page.rootInstance.yearButtonFocussed).toBe(true);
985
+ firstYearButton.blur();
986
+ await page.waitForChanges();
987
+ await waitForTimeout(DELAY_MS);
988
+ expect(page.rootInstance.yearButtonFocussed).toBe(false);
989
+ });
990
+ });
991
+ //# sourceMappingURL=ic-date-picker.spec.js.map