@ukic/canary-web-components 2.0.0-canary.31 → 2.0.0-canary.33

Sign up to get free protection for your applications and to get access to all the features.
Files changed (482) hide show
  1. package/README.md +6 -2
  2. package/dist/cjs/core.cjs.js +1 -1
  3. package/dist/cjs/{helpers-52ab3835.js → helpers-951fb33a.js} +25 -3
  4. package/dist/cjs/helpers-951fb33a.js.map +1 -0
  5. package/dist/cjs/{helpers-093368be.js → helpers-eabe59b6.js} +17 -1
  6. package/dist/cjs/helpers-eabe59b6.js.map +1 -0
  7. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-accordion.cjs.entry.js +8 -1
  9. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-alert.cjs.entry.js +2 -9
  11. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-button_3.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-card-horizontal.cjs.entry.js +8 -9
  19. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-card.cjs.entry.js +18 -19
  21. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-checkbox-group.cjs.entry.js +5 -1
  23. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-checkbox.cjs.entry.js +5 -1
  25. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-chip.cjs.entry.js +9 -4
  27. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-data-table.cjs.entry.js +238 -78
  31. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-date-input.cjs.entry.js +6 -1
  33. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-date-picker.cjs.entry.js +6 -1
  35. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-empty-state_2.cjs.entry.js +48 -21
  39. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-footer.cjs.entry.js +18 -7
  43. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-hero.cjs.entry.js +2 -9
  45. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +12 -10
  48. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  51. package/dist/cjs/ic-menu-item.cjs.entry.js +7 -1
  52. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-menu.cjs.entry.js +2 -2
  55. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  57. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-pagination_4.cjs.entry.js +24 -7
  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 +2 -1
  65. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -1
  67. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-search-bar.cjs.entry.js +5 -1
  69. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-select-with-multi.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  72. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  73. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  74. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  75. package/dist/cjs/ic-switch.cjs.entry.js +6 -2
  76. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  78. package/dist/cjs/ic-tab.cjs.entry.js +5 -2
  79. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  81. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  82. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +17 -0
  83. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-toggle-button.cjs.entry.js +9 -2
  85. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-top-navigation.cjs.entry.js +2 -2
  87. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-tree-item.cjs.entry.js +9 -9
  89. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-tree-view.cjs.entry.js +2 -9
  91. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  93. package/dist/cjs/loader.cjs.js +1 -1
  94. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +12 -10
  95. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -1
  96. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js +10 -0
  97. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js.map +1 -1
  98. package/dist/collection/components/ic-data-table/ic-data-table.css +82 -2
  99. package/dist/collection/components/ic-data-table/ic-data-table.js +273 -80
  100. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  101. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  102. package/dist/collection/components/ic-data-table/story-data.js +249 -8
  103. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  104. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +64 -1
  105. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  106. package/dist/collection/components/ic-date-input/ic-date-input.js +8 -1
  107. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  108. package/dist/collection/components/ic-date-picker/ic-date-picker.js +8 -1
  109. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  110. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +66 -7
  111. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  112. package/dist/collection/components/ic-tree-item/ic-tree-item.js +12 -10
  113. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  114. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js +3 -0
  115. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js.map +1 -1
  116. package/dist/collection/components/ic-tree-view/ic-tree-view.js +3 -10
  117. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  118. package/dist/collection/utils/helpers.js +12 -1
  119. package/dist/collection/utils/helpers.js.map +1 -1
  120. package/dist/collection/utils/types.js.map +1 -1
  121. package/dist/components/helpers.js +16 -1
  122. package/dist/components/helpers.js.map +1 -1
  123. package/dist/components/helpers2.js +22 -2
  124. package/dist/components/helpers2.js.map +1 -1
  125. package/dist/components/ic-accordion.js +9 -1
  126. package/dist/components/ic-accordion.js.map +1 -1
  127. package/dist/components/ic-alert2.js +3 -10
  128. package/dist/components/ic-alert2.js.map +1 -1
  129. package/dist/components/ic-button2.js.map +1 -1
  130. package/dist/components/ic-card-horizontal.js +12 -11
  131. package/dist/components/ic-card-horizontal.js.map +1 -1
  132. package/dist/components/ic-card.js +22 -21
  133. package/dist/components/ic-card.js.map +1 -1
  134. package/dist/components/ic-checkbox-group.js +5 -0
  135. package/dist/components/ic-checkbox-group.js.map +1 -1
  136. package/dist/components/ic-checkbox.js +5 -0
  137. package/dist/components/ic-checkbox.js.map +1 -1
  138. package/dist/components/ic-chip.js +11 -4
  139. package/dist/components/ic-chip.js.map +1 -1
  140. package/dist/components/ic-data-table.js +239 -78
  141. package/dist/components/ic-data-table.js.map +1 -1
  142. package/dist/components/ic-date-input2.js +7 -1
  143. package/dist/components/ic-date-input2.js.map +1 -1
  144. package/dist/components/ic-date-picker.js +7 -1
  145. package/dist/components/ic-date-picker.js.map +1 -1
  146. package/dist/components/ic-empty-state2.js +3 -13
  147. package/dist/components/ic-empty-state2.js.map +1 -1
  148. package/dist/components/ic-footer.js +18 -7
  149. package/dist/components/ic-footer.js.map +1 -1
  150. package/dist/components/ic-hero.js +3 -10
  151. package/dist/components/ic-hero.js.map +1 -1
  152. package/dist/components/ic-horizontal-scroll2.js +1 -1
  153. package/dist/components/ic-input-component-container2.js +15 -11
  154. package/dist/components/ic-input-component-container2.js.map +1 -1
  155. package/dist/components/ic-menu-item2.js +9 -1
  156. package/dist/components/ic-menu-item2.js.map +1 -1
  157. package/dist/components/ic-menu2.js +1 -1
  158. package/dist/components/ic-menu2.js.map +1 -1
  159. package/dist/components/ic-menu3.js +1 -1
  160. package/dist/components/ic-navigation-group.js +1 -1
  161. package/dist/components/ic-navigation-item.js +1 -1
  162. package/dist/components/ic-navigation-menu2.js +1 -1
  163. package/dist/components/ic-pagination-bar2.js +50 -10
  164. package/dist/components/ic-pagination-bar2.js.map +1 -1
  165. package/dist/components/ic-pagination-item2.js +6 -1
  166. package/dist/components/ic-pagination-item2.js.map +1 -1
  167. package/dist/components/ic-pagination2.js +5 -0
  168. package/dist/components/ic-pagination2.js.map +1 -1
  169. package/dist/components/ic-popover-menu.js +1 -1
  170. package/dist/components/ic-radio-group.js +1 -0
  171. package/dist/components/ic-radio-group.js.map +1 -1
  172. package/dist/components/ic-radio-option.js +6 -1
  173. package/dist/components/ic-radio-option.js.map +1 -1
  174. package/dist/components/ic-search-bar.js +6 -1
  175. package/dist/components/ic-search-bar.js.map +1 -1
  176. package/dist/components/ic-select-with-multi.js +1 -1
  177. package/dist/components/ic-select2.js +6 -1
  178. package/dist/components/ic-select2.js.map +1 -1
  179. package/dist/components/ic-side-navigation.js +1 -1
  180. package/dist/components/ic-stepper.js +1 -1
  181. package/dist/components/ic-switch.js +8 -3
  182. package/dist/components/ic-switch.js.map +1 -1
  183. package/dist/components/ic-tab.js +5 -2
  184. package/dist/components/ic-tab.js.map +1 -1
  185. package/dist/components/ic-text-field2.js +13 -7
  186. package/dist/components/ic-text-field2.js.map +1 -1
  187. package/dist/components/ic-theme.js +1 -1
  188. package/dist/components/ic-toast.js +1 -1
  189. package/dist/components/ic-toggle-button-group.js +21 -1
  190. package/dist/components/ic-toggle-button-group.js.map +1 -1
  191. package/dist/components/ic-toggle-button.js +12 -2
  192. package/dist/components/ic-toggle-button.js.map +1 -1
  193. package/dist/components/ic-top-navigation.js +2 -2
  194. package/dist/components/ic-top-navigation.js.map +1 -1
  195. package/dist/components/ic-tree-item.js +11 -10
  196. package/dist/components/ic-tree-item.js.map +1 -1
  197. package/dist/components/ic-tree-view.js +3 -10
  198. package/dist/components/ic-tree-view.js.map +1 -1
  199. package/dist/core/core.esm.js +1 -1
  200. package/dist/core/core.esm.js.map +1 -1
  201. package/dist/core/{p-56e19b01.entry.js → p-0229eb46.entry.js} +2 -2
  202. package/dist/core/{p-e210f51a.entry.js → p-03a99326.entry.js} +2 -2
  203. package/dist/core/p-03a99326.entry.js.map +1 -0
  204. package/dist/core/{p-8d276e8f.entry.js → p-03d83d2c.entry.js} +2 -2
  205. package/dist/core/{p-438abe40.entry.js → p-05f900e5.entry.js} +2 -2
  206. package/dist/core/p-05f900e5.entry.js.map +1 -0
  207. package/dist/core/{p-924548ec.entry.js → p-0c7d30f5.entry.js} +2 -2
  208. package/dist/core/{p-f4e57aaf.entry.js → p-124279fa.entry.js} +2 -2
  209. package/dist/core/p-12a5b481.entry.js +2 -0
  210. package/dist/core/p-12a5b481.entry.js.map +1 -0
  211. package/dist/core/{p-521abb6e.entry.js → p-26aeefc3.entry.js} +2 -2
  212. package/dist/core/p-26aeefc3.entry.js.map +1 -0
  213. package/dist/core/{p-de630a67.entry.js → p-29a040ef.entry.js} +2 -2
  214. package/dist/core/{p-2f7e6e38.entry.js → p-2b61d283.entry.js} +2 -2
  215. package/dist/core/{p-0a01a7ae.entry.js → p-3156304b.entry.js} +2 -2
  216. package/dist/core/{p-6398a726.entry.js → p-3169d95e.entry.js} +2 -2
  217. package/dist/core/{p-0180e00a.entry.js → p-34de5ffb.entry.js} +2 -2
  218. package/dist/core/{p-969cadfa.entry.js → p-382b88b2.entry.js} +2 -2
  219. package/dist/core/p-382b88b2.entry.js.map +1 -0
  220. package/dist/core/{p-c8141cac.entry.js → p-3a2523df.entry.js} +2 -2
  221. package/dist/core/{p-789ae7f5.entry.js → p-3b1c88ad.entry.js} +2 -2
  222. package/dist/core/p-3bbc3db1.entry.js +2 -0
  223. package/dist/core/p-3bbc3db1.entry.js.map +1 -0
  224. package/dist/core/p-3e7b08c7.entry.js +2 -0
  225. package/dist/core/p-3e7b08c7.entry.js.map +1 -0
  226. package/dist/core/p-4084bce2.entry.js +2 -0
  227. package/dist/core/p-4084bce2.entry.js.map +1 -0
  228. package/dist/core/p-48618a18.entry.js +2 -0
  229. package/dist/core/p-48618a18.entry.js.map +1 -0
  230. package/dist/core/p-4960c603.entry.js +2 -0
  231. package/dist/core/p-4960c603.entry.js.map +1 -0
  232. package/dist/core/{p-6fb3d61e.entry.js → p-4f118361.entry.js} +2 -2
  233. package/dist/core/p-5f149106.entry.js +2 -0
  234. package/dist/core/{p-ad1e70c9.entry.js.map → p-5f149106.entry.js.map} +1 -1
  235. package/dist/core/{p-f10f7f37.entry.js → p-5f71f24c.entry.js} +2 -2
  236. package/dist/core/p-5f71f24c.entry.js.map +1 -0
  237. package/dist/core/{p-74abc3bb.entry.js → p-61ca218b.entry.js} +2 -2
  238. package/dist/core/{p-9922cd00.entry.js → p-7565b23c.entry.js} +2 -2
  239. package/dist/core/p-758f03e8.entry.js +2 -0
  240. package/dist/core/p-758f03e8.entry.js.map +1 -0
  241. package/dist/core/{p-486a6957.entry.js → p-7bba4c47.entry.js} +2 -2
  242. package/dist/core/p-844fb240.entry.js +2 -0
  243. package/dist/core/p-844fb240.entry.js.map +1 -0
  244. package/dist/core/p-8ab58daa.js +2 -0
  245. package/dist/core/p-8ab58daa.js.map +1 -0
  246. package/dist/core/{p-2d063032.entry.js → p-8c2c86b5.entry.js} +2 -2
  247. package/dist/core/{p-9b70d4f8.entry.js → p-8ef60479.entry.js} +2 -2
  248. package/dist/core/p-938a0ccc.entry.js +2 -0
  249. package/dist/core/p-938a0ccc.entry.js.map +1 -0
  250. package/dist/core/{p-ca8ddad0.entry.js → p-95871655.entry.js} +2 -2
  251. package/dist/core/p-95871655.entry.js.map +1 -0
  252. package/dist/core/p-9adb2a49.entry.js +2 -0
  253. package/dist/core/p-9adb2a49.entry.js.map +1 -0
  254. package/dist/core/p-9c9147fa.entry.js +2 -0
  255. package/dist/core/p-9c9147fa.entry.js.map +1 -0
  256. package/dist/core/p-9f157649.entry.js +2 -0
  257. package/dist/core/p-9f157649.entry.js.map +1 -0
  258. package/dist/core/{p-418a84d4.entry.js → p-a3d903e4.entry.js} +2 -2
  259. package/dist/core/{p-5348af01.entry.js → p-a4088bd7.entry.js} +2 -2
  260. package/dist/core/{p-b53455c3.entry.js → p-a6fb5fe3.entry.js} +2 -2
  261. package/dist/core/{p-5e967ea4.entry.js → p-aabb04c8.entry.js} +2 -2
  262. package/dist/core/{p-3a59391f.entry.js → p-b02ad2c4.entry.js} +2 -2
  263. package/dist/core/{p-77696f7d.entry.js → p-ba353ac3.entry.js} +2 -2
  264. package/dist/core/p-ba353ac3.entry.js.map +1 -0
  265. package/dist/core/{p-ccf72538.entry.js → p-bc24c004.entry.js} +2 -2
  266. package/dist/core/{p-a7331e7c.entry.js → p-c0242c21.entry.js} +2 -2
  267. package/dist/core/{p-21d0dea6.entry.js → p-c1b268fd.entry.js} +2 -2
  268. package/dist/core/{p-99185fd5.entry.js → p-d062a801.entry.js} +2 -2
  269. package/dist/core/p-d062a801.entry.js.map +1 -0
  270. package/dist/core/{p-a72af8db.entry.js → p-d171c71d.entry.js} +2 -2
  271. package/dist/core/p-d1e0479c.entry.js +2 -0
  272. package/dist/core/p-d1e0479c.entry.js.map +1 -0
  273. package/dist/core/{p-9e5c8813.entry.js → p-d2260763.entry.js} +2 -2
  274. package/dist/core/p-d2260763.entry.js.map +1 -0
  275. package/dist/core/p-d8988d8c.entry.js +2 -0
  276. package/dist/core/p-d8988d8c.entry.js.map +1 -0
  277. package/dist/core/p-da506987.js +2 -0
  278. package/dist/core/p-da506987.js.map +1 -0
  279. package/dist/core/p-dd550e9b.entry.js +2 -0
  280. package/dist/core/p-dd550e9b.entry.js.map +1 -0
  281. package/dist/core/p-deedc7d3.entry.js +2 -0
  282. package/dist/core/p-deedc7d3.entry.js.map +1 -0
  283. package/dist/core/p-e447ed5c.entry.js +2 -0
  284. package/dist/core/p-e447ed5c.entry.js.map +1 -0
  285. package/dist/core/p-e7439c1e.entry.js +2 -0
  286. package/dist/core/p-e7439c1e.entry.js.map +1 -0
  287. package/dist/core/p-e7b913e5.entry.js +2 -0
  288. package/dist/core/p-e7b913e5.entry.js.map +1 -0
  289. package/dist/core/{p-67ae9d37.entry.js → p-e85505ec.entry.js} +2 -2
  290. package/dist/core/{p-673a4a62.entry.js → p-f237940d.entry.js} +2 -2
  291. package/dist/core/{p-648fb902.entry.js → p-f4b76daa.entry.js} +2 -2
  292. package/dist/esm/core.js +1 -1
  293. package/dist/esm/{helpers-886489d5.js → helpers-031e266e.js} +17 -2
  294. package/dist/esm/helpers-031e266e.js.map +1 -0
  295. package/dist/esm/{helpers-147b5b73.js → helpers-948df101.js} +23 -3
  296. package/dist/esm/helpers-948df101.js.map +1 -0
  297. package/dist/esm/ic-accordion-group.entry.js +1 -1
  298. package/dist/esm/ic-accordion.entry.js +8 -1
  299. package/dist/esm/ic-accordion.entry.js.map +1 -1
  300. package/dist/esm/ic-alert.entry.js +3 -10
  301. package/dist/esm/ic-alert.entry.js.map +1 -1
  302. package/dist/esm/ic-back-to-top.entry.js +1 -1
  303. package/dist/esm/ic-badge.entry.js +1 -1
  304. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  305. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  306. package/dist/esm/ic-button_3.entry.js +1 -1
  307. package/dist/esm/ic-button_3.entry.js.map +1 -1
  308. package/dist/esm/ic-card-horizontal.entry.js +9 -10
  309. package/dist/esm/ic-card-horizontal.entry.js.map +1 -1
  310. package/dist/esm/ic-card.entry.js +19 -20
  311. package/dist/esm/ic-card.entry.js.map +1 -1
  312. package/dist/esm/ic-checkbox-group.entry.js +5 -1
  313. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  314. package/dist/esm/ic-checkbox.entry.js +5 -1
  315. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  316. package/dist/esm/ic-chip.entry.js +9 -4
  317. package/dist/esm/ic-chip.entry.js.map +1 -1
  318. package/dist/esm/ic-data-row.entry.js +1 -1
  319. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  320. package/dist/esm/ic-data-table.entry.js +238 -78
  321. package/dist/esm/ic-data-table.entry.js.map +1 -1
  322. package/dist/esm/ic-date-input.entry.js +6 -1
  323. package/dist/esm/ic-date-input.entry.js.map +1 -1
  324. package/dist/esm/ic-date-picker.entry.js +6 -1
  325. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  326. package/dist/esm/ic-dialog.entry.js +1 -1
  327. package/dist/esm/ic-divider.entry.js +1 -1
  328. package/dist/esm/ic-empty-state_2.entry.js +49 -22
  329. package/dist/esm/ic-empty-state_2.entry.js.map +1 -1
  330. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  331. package/dist/esm/ic-footer-link.entry.js +1 -1
  332. package/dist/esm/ic-footer.entry.js +18 -7
  333. package/dist/esm/ic-footer.entry.js.map +1 -1
  334. package/dist/esm/ic-hero.entry.js +3 -10
  335. package/dist/esm/ic-hero.entry.js.map +1 -1
  336. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  337. package/dist/esm/ic-input-component-container_4.entry.js +13 -11
  338. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
  339. package/dist/esm/ic-link.entry.js +1 -1
  340. package/dist/esm/ic-menu-group.entry.js +1 -1
  341. package/dist/esm/ic-menu-item.entry.js +7 -1
  342. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  343. package/dist/esm/ic-menu-with-multi.entry.js +1 -1
  344. package/dist/esm/ic-menu.entry.js +2 -2
  345. package/dist/esm/ic-menu.entry.js.map +1 -1
  346. package/dist/esm/ic-navigation-button.entry.js +1 -1
  347. package/dist/esm/ic-navigation-group.entry.js +1 -1
  348. package/dist/esm/ic-navigation-item.entry.js +1 -1
  349. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  350. package/dist/esm/ic-page-header.entry.js +1 -1
  351. package/dist/esm/ic-pagination_4.entry.js +24 -7
  352. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  353. package/dist/esm/ic-popover-menu.entry.js +1 -1
  354. package/dist/esm/ic-radio-group.entry.js +2 -1
  355. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  356. package/dist/esm/ic-radio-option.entry.js +5 -1
  357. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  358. package/dist/esm/ic-search-bar.entry.js +5 -1
  359. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  360. package/dist/esm/ic-select-with-multi.entry.js +1 -1
  361. package/dist/esm/ic-side-navigation.entry.js +1 -1
  362. package/dist/esm/ic-status-tag.entry.js +1 -1
  363. package/dist/esm/ic-step.entry.js +1 -1
  364. package/dist/esm/ic-stepper.entry.js +1 -1
  365. package/dist/esm/ic-switch.entry.js +6 -2
  366. package/dist/esm/ic-switch.entry.js.map +1 -1
  367. package/dist/esm/ic-tab-group.entry.js +1 -1
  368. package/dist/esm/ic-tab.entry.js +5 -2
  369. package/dist/esm/ic-tab.entry.js.map +1 -1
  370. package/dist/esm/ic-theme.entry.js +1 -1
  371. package/dist/esm/ic-toast.entry.js +1 -1
  372. package/dist/esm/ic-toggle-button-group.entry.js +17 -0
  373. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  374. package/dist/esm/ic-toggle-button.entry.js +9 -2
  375. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  376. package/dist/esm/ic-top-navigation.entry.js +2 -2
  377. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  378. package/dist/esm/ic-tree-item.entry.js +10 -10
  379. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  380. package/dist/esm/ic-tree-view.entry.js +3 -10
  381. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  382. package/dist/esm/ic-typography.entry.js +1 -1
  383. package/dist/esm/loader.js +1 -1
  384. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +1 -1
  385. package/dist/types/components/ic-data-table/ic-data-table.d.ts +23 -0
  386. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +12 -0
  387. package/dist/types/components/ic-data-table/story-data.d.ts +141 -4
  388. package/dist/types/components/ic-date-input/ic-date-input.d.ts +1 -0
  389. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +1 -0
  390. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +8 -0
  391. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +2 -1
  392. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +0 -1
  393. package/dist/types/components.d.ts +23 -0
  394. package/dist/types/utils/helpers.d.ts +3 -1
  395. package/dist/types/utils/types.d.ts +1 -0
  396. package/hydrate/index.js +497 -180
  397. package/package.json +3 -10
  398. package/dist/cjs/helpers-093368be.js.map +0 -1
  399. package/dist/cjs/helpers-52ab3835.js.map +0 -1
  400. package/dist/core/p-01bc462e.entry.js +0 -2
  401. package/dist/core/p-01bc462e.entry.js.map +0 -1
  402. package/dist/core/p-0fc36045.entry.js +0 -2
  403. package/dist/core/p-0fc36045.entry.js.map +0 -1
  404. package/dist/core/p-15edd1aa.entry.js +0 -2
  405. package/dist/core/p-15edd1aa.entry.js.map +0 -1
  406. package/dist/core/p-16a48a63.entry.js +0 -2
  407. package/dist/core/p-16a48a63.entry.js.map +0 -1
  408. package/dist/core/p-1c25353c.entry.js +0 -2
  409. package/dist/core/p-1c25353c.entry.js.map +0 -1
  410. package/dist/core/p-213a9f8f.entry.js +0 -2
  411. package/dist/core/p-213a9f8f.entry.js.map +0 -1
  412. package/dist/core/p-383ba7e8.entry.js +0 -2
  413. package/dist/core/p-383ba7e8.entry.js.map +0 -1
  414. package/dist/core/p-41916ef7.entry.js +0 -2
  415. package/dist/core/p-41916ef7.entry.js.map +0 -1
  416. package/dist/core/p-438abe40.entry.js.map +0 -1
  417. package/dist/core/p-43a2cad3.entry.js +0 -2
  418. package/dist/core/p-43a2cad3.entry.js.map +0 -1
  419. package/dist/core/p-4aa6b8a4.entry.js +0 -2
  420. package/dist/core/p-4aa6b8a4.entry.js.map +0 -1
  421. package/dist/core/p-521abb6e.entry.js.map +0 -1
  422. package/dist/core/p-5334bc96.entry.js +0 -2
  423. package/dist/core/p-5334bc96.entry.js.map +0 -1
  424. package/dist/core/p-72446de0.entry.js +0 -2
  425. package/dist/core/p-72446de0.entry.js.map +0 -1
  426. package/dist/core/p-77696f7d.entry.js.map +0 -1
  427. package/dist/core/p-7e5da5eb.entry.js +0 -2
  428. package/dist/core/p-7e5da5eb.entry.js.map +0 -1
  429. package/dist/core/p-7eb980aa.entry.js +0 -2
  430. package/dist/core/p-7eb980aa.entry.js.map +0 -1
  431. package/dist/core/p-8128572e.js +0 -2
  432. package/dist/core/p-8128572e.js.map +0 -1
  433. package/dist/core/p-969cadfa.entry.js.map +0 -1
  434. package/dist/core/p-97f141a6.entry.js +0 -2
  435. package/dist/core/p-97f141a6.entry.js.map +0 -1
  436. package/dist/core/p-99185fd5.entry.js.map +0 -1
  437. package/dist/core/p-9e5c8813.entry.js.map +0 -1
  438. package/dist/core/p-ad1e70c9.entry.js +0 -2
  439. package/dist/core/p-af3d4eba.entry.js +0 -2
  440. package/dist/core/p-af3d4eba.entry.js.map +0 -1
  441. package/dist/core/p-b9d9273f.js +0 -2
  442. package/dist/core/p-b9d9273f.js.map +0 -1
  443. package/dist/core/p-ca8ddad0.entry.js.map +0 -1
  444. package/dist/core/p-cb3afdbf.entry.js +0 -2
  445. package/dist/core/p-cb3afdbf.entry.js.map +0 -1
  446. package/dist/core/p-d56593cc.entry.js +0 -2
  447. package/dist/core/p-d56593cc.entry.js.map +0 -1
  448. package/dist/core/p-db1887ee.entry.js +0 -2
  449. package/dist/core/p-db1887ee.entry.js.map +0 -1
  450. package/dist/core/p-e210f51a.entry.js.map +0 -1
  451. package/dist/core/p-f10f7f37.entry.js.map +0 -1
  452. package/dist/esm/helpers-147b5b73.js.map +0 -1
  453. package/dist/esm/helpers-886489d5.js.map +0 -1
  454. /package/dist/core/{p-56e19b01.entry.js.map → p-0229eb46.entry.js.map} +0 -0
  455. /package/dist/core/{p-8d276e8f.entry.js.map → p-03d83d2c.entry.js.map} +0 -0
  456. /package/dist/core/{p-924548ec.entry.js.map → p-0c7d30f5.entry.js.map} +0 -0
  457. /package/dist/core/{p-f4e57aaf.entry.js.map → p-124279fa.entry.js.map} +0 -0
  458. /package/dist/core/{p-de630a67.entry.js.map → p-29a040ef.entry.js.map} +0 -0
  459. /package/dist/core/{p-2f7e6e38.entry.js.map → p-2b61d283.entry.js.map} +0 -0
  460. /package/dist/core/{p-0a01a7ae.entry.js.map → p-3156304b.entry.js.map} +0 -0
  461. /package/dist/core/{p-6398a726.entry.js.map → p-3169d95e.entry.js.map} +0 -0
  462. /package/dist/core/{p-0180e00a.entry.js.map → p-34de5ffb.entry.js.map} +0 -0
  463. /package/dist/core/{p-c8141cac.entry.js.map → p-3a2523df.entry.js.map} +0 -0
  464. /package/dist/core/{p-789ae7f5.entry.js.map → p-3b1c88ad.entry.js.map} +0 -0
  465. /package/dist/core/{p-6fb3d61e.entry.js.map → p-4f118361.entry.js.map} +0 -0
  466. /package/dist/core/{p-74abc3bb.entry.js.map → p-61ca218b.entry.js.map} +0 -0
  467. /package/dist/core/{p-9922cd00.entry.js.map → p-7565b23c.entry.js.map} +0 -0
  468. /package/dist/core/{p-486a6957.entry.js.map → p-7bba4c47.entry.js.map} +0 -0
  469. /package/dist/core/{p-2d063032.entry.js.map → p-8c2c86b5.entry.js.map} +0 -0
  470. /package/dist/core/{p-9b70d4f8.entry.js.map → p-8ef60479.entry.js.map} +0 -0
  471. /package/dist/core/{p-418a84d4.entry.js.map → p-a3d903e4.entry.js.map} +0 -0
  472. /package/dist/core/{p-5348af01.entry.js.map → p-a4088bd7.entry.js.map} +0 -0
  473. /package/dist/core/{p-b53455c3.entry.js.map → p-a6fb5fe3.entry.js.map} +0 -0
  474. /package/dist/core/{p-5e967ea4.entry.js.map → p-aabb04c8.entry.js.map} +0 -0
  475. /package/dist/core/{p-3a59391f.entry.js.map → p-b02ad2c4.entry.js.map} +0 -0
  476. /package/dist/core/{p-ccf72538.entry.js.map → p-bc24c004.entry.js.map} +0 -0
  477. /package/dist/core/{p-a7331e7c.entry.js.map → p-c0242c21.entry.js.map} +0 -0
  478. /package/dist/core/{p-21d0dea6.entry.js.map → p-c1b268fd.entry.js.map} +0 -0
  479. /package/dist/core/{p-a72af8db.entry.js.map → p-d171c71d.entry.js.map} +0 -0
  480. /package/dist/core/{p-67ae9d37.entry.js.map → p-e85505ec.entry.js.map} +0 -0
  481. /package/dist/core/{p-673a4a62.entry.js.map → p-f237940d.entry.js.map} +0 -0
  482. /package/dist/core/{p-648fb902.entry.js.map → p-f4b76daa.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["DayButton","focussed","today","day","monthInView","onFocusDay","onBlurDay","onSelectDay","selected","focussedDayRef","inRange","showDaysOutsideMonth","disableDay","handleDayClick","handleDayFocus","handleDayBlur","dayNames","stringEnumToArray","IcDayNames","months","IcDateInputMonths","outsideRange","outsideMonth","getMonth","disabled","h","class","hidden","tabIndex","undefined","getDay","getDate","getFullYear","onClick","onBlur","onFocus","ref","el","variant","italic","MonthPicker","size","focussedMonth","onSelectMonth","onKeyDown","focussedMonthRef","minDate","maxDate","yearInView","handleMonthClick","ev","button","target","Number","getAttribute","monthNames","role","map","month","index","current","dateInRange","Date","getMonthStart","getMonthEnd","YearPicker","decadeView","focussedYear","onSelectYear","onFocusYear","onBlurYear","focussedYearRef","handleYearClick","handleYearFocus","handleYearBlur","navButtonMouseDownHandler","preventDefault","prevDecade","nextDecade","years","slice","id","yearInRange","onMouseDown","slot","width","height","fill","xmlns","d","yr","flip","icDatePickerCss","DEFAULT_DATE_FORMAT","DEFAULT_DISABLE_DATES_FROM_NOW_MSG","DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG","DEFAULT_DISABLE_DAYS_MSG","FOCUS_TIMER","PICKER_HEIGHT_SMALL","PICKER_HEIGHT_DEFAULT","PICKER_HEIGHT_LARGE","DatePicker","this","clearButtonEl","daysOfWeek","dayButtonFocussed","dayPickerKeyboardNav","dialogDescription","focusDay","liveRegionEl","monthInViewUpdateHandled","myCalendarButtonClicked","showPickerAbove","todayButtonEl","yearButtonFocussed","setDecadeView","start","currYear","decadeArr","push","decadeStart","decadeEnd","setSelectedDate","emit","dateMatches","selectedDate","value","inputEl","triggerIcChange","handleCalendarMouseDown","event","tagName","handleCalendarClick","clearDialogDescription","stopImmediatePropagation","handleDocumentClick","calendarOpen","keyDownHandler","key","closeButtonClickHandler","setCalendarFocus","focusFirstElement","monthButtonEl","setFocus","focusLastElement","showPickerClearButton","showPickerTodayButton","monthPickerVisible","focussedMonthEl","yearPickerVisible","focussedYearEl","focussedDayEl","focus","focusFocussedDay","monthButtonClickHandler","setAriaLiveRegionText","setMonthSelectedLiveRegionText","yearButtonClickHandler","getDecadeInViewText","setYearSelectedLiveRegionText","todayButtonClickHandler","setFocussedDate","getMonthInViewText","setTimeout","todayButtonKeyDownHandler","shiftKey","clearButtonClickHandler","text","innerText","clearButtonKeyDownHandler","goToPreviousMonth","moveMonths","goToNextMonth","goToPreviousYear","isPrevYearAllowed","moveYears","goToNextYear","isNextYearAllowed","renderMonthYearNavButton","buttonSize","disableTooltip","monthYearNavClickHandler","innerHTML","chevron","previousMonthButton","focussedDate","yearMatch","nextMonthButton","previousYearButton","nextYearButton","isYearAllowed","getMonthView","date","getWeekStart","startOfWeek","end","getWeekEnd","days","setDate","isCurrentMonth","updateMonthInView","currMonthView","focussedDay","handleSelectDay","handleSelectMonth","handleSelectYear","year","yrPos","indexOf","length","monthName","yearButtonEl","updateFocussedYear","monthPickerKeyDownHandler","handled","updateFocussedMonth","calendarTabHandler","yearPickerKeyDownHandler","onYearButtonFocusHandler","onYearButtonBlurHandler","monthButtonKeyDownHandler","yearButtonKeyDownHandler","handleCalendarKeyDown","moveDays","getNextDayToFocus","onDayButtonFocusHandler","onDayButtonBlurHandler","currDay","forward","level","move","nextDay","nextDayNum","disableDays","includes","numDays","numMonths","newMonth","min","setMonth","max","newDate","clampDate","numYears","newYear","setFullYear","adjust","focusYear","setFocussedYear","setFocussedDayEl","element","setFocussedMonthEl","setFocussedYearEl","prevYear","newDecade","Math","floor","oldDecade","setDateInputProps","inputProps","hideLabel","invalidDateMessage","label","showClearButton","showCalendarButton","dateFormat","disableFuture","disableFutureMessage","disablePast","disablePastMessage","disableDaysMessage","helperText","hideHelperText","inputId","name","required","validationStatus","validationText","IcWeekDays","Monday","watchDisableFutureHandler","watchMaxHandler","watchDisablePastHandler","watchMinHandler","createDate","watchStartOfWeekHandler","orderedDaysOfWeek","concat","watchOpenHandler","pickerHeight","offsetTop","offsetHeight","window","innerHeight","openAt","openAtDate","dialogDesc","document","addEventListener","removeEventListener","watchFocussedDateHandler","previous","watchMonthInViewHandler","watchYearInViewHandler","watchYearPickerVisibleHandler","watchMonthPickerVisibleHandler","watchFocussedDayEl","componentWillLoad","onComponentRequiredPropUndefined","prop","propName","IcShortDayNames","componentWillRender","dateInputProps","componentWillUpdate","localCalendarButtonClickHandler","detail","calendarButtonClickHandler","render","monthButtonText","yearButtonText","dialogLabel","monthLabel","yearLabel","minDay","yesterday","Host","Object","assign","above","calendar","dayName","header","charAt"],"sources":["src/components/ic-date-picker/ic-day-button.tsx","src/components/ic-date-picker/ic-month-picker.tsx","src/components/ic-date-picker/ic-year-picker.tsx","src/components/ic-date-picker/ic-date-picker.css?tag=ic-date-picker&encapsulation=shadow","src/components/ic-date-picker/ic-date-picker.tsx"],"sourcesContent":["import { h, FunctionalComponent } from \"@stencil/core\";\nimport { stringEnumToArray } from \"../../utils/helpers\";\nimport { IcDayNames, IcDateInputMonths } from \"../../utils/types\";\n\nexport type DayButtonProps = {\n focussed: boolean;\n today: boolean;\n day: Date;\n monthInView: number;\n onFocusDay: () => void;\n onBlurDay: () => void;\n onSelectDay: (day: Date) => void;\n selected: boolean;\n focussedDayRef?: (element: HTMLButtonElement) => void;\n inRange: boolean;\n showDaysOutsideMonth: boolean;\n disableDay: boolean;\n};\n\nexport const DayButton: FunctionalComponent<DayButtonProps> = ({\n focussed,\n today,\n day,\n monthInView,\n onFocusDay,\n onBlurDay,\n onSelectDay,\n selected,\n focussedDayRef,\n inRange,\n showDaysOutsideMonth,\n disableDay,\n}) => {\n const handleDayClick = (): void => {\n onSelectDay(day);\n };\n\n const handleDayFocus = (): void => {\n onFocusDay();\n };\n\n const handleDayBlur = (): void => {\n onBlurDay();\n };\n\n const dayNames = stringEnumToArray(IcDayNames);\n const months = stringEnumToArray(IcDateInputMonths);\n const outsideRange = !inRange || disableDay;\n const outsideMonth = monthInView !== day.getMonth();\n const disabled = outsideRange || (outsideMonth && !showDaysOutsideMonth);\n\n return (\n <div class=\"day-button-container\">\n <button\n class={{\n \"day-button\": true,\n \"outside-month\": outsideMonth,\n \"outside-range\": outsideRange,\n hidden: outsideMonth && !showDaysOutsideMonth,\n disabled: disabled,\n today: today,\n selected: selected,\n focussed: focussed,\n }}\n tabIndex={focussed ? 0 : -1}\n aria-hidden={outsideMonth ? \"true\" : \"false\"}\n aria-disabled={disabled ? \"true\" : \"false\"}\n aria-current={today ? \"date\" : undefined}\n aria-label={\n disabled || outsideMonth || outsideRange\n ? undefined\n : `Choose ${dayNames[day.getDay()]}, ${day.getDate()} ${\n months[day.getMonth()]\n } ${day.getFullYear()}`\n }\n disabled={disabled}\n onClick={handleDayClick}\n onBlur={handleDayBlur}\n onFocus={handleDayFocus}\n ref={(el: HTMLButtonElement) => {\n if (focussed && el && focussedDayRef) {\n focussedDayRef(el);\n }\n }}\n >\n {(!outsideMonth || (outsideMonth && showDaysOutsideMonth)) && (\n <ic-typography variant=\"subtitle-small\" italic={outsideMonth}>\n {day.getDate()}\n </ic-typography>\n )}\n </button>\n </div>\n );\n};\n","import { h, FunctionalComponent } from \"@stencil/core\";\nimport {\n dateInRange,\n getMonthStart,\n getMonthEnd,\n} from \"../../utils/date-helpers\";\nimport { stringEnumToArray } from \"../../utils/helpers\";\nimport { IcSizes, IcDateInputMonths } from \"../../utils/types\";\n\nexport type MonthPickerProps = {\n size: IcSizes;\n focussedMonth: number;\n monthInView: number;\n yearInView: number;\n onSelectMonth: (month: number) => void;\n onKeyDown: (ev: KeyboardEvent) => void;\n focussedMonthRef: (element: HTMLIcButtonElement) => void;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const MonthPicker: FunctionalComponent<MonthPickerProps> = ({\n size,\n focussedMonth,\n monthInView,\n onSelectMonth,\n onKeyDown,\n focussedMonthRef,\n minDate,\n maxDate,\n yearInView,\n}) => {\n const handleMonthClick = (ev: MouseEvent): void => {\n const button = ev.target as HTMLElement;\n onSelectMonth(Number(button.getAttribute(\"data-month\")));\n };\n\n const monthNames = stringEnumToArray(IcDateInputMonths);\n\n return (\n <div\n class={{\n \"month-picker\": true,\n }}\n role=\"list\"\n >\n {monthNames.map((month, index) => {\n const current = monthInView === index;\n const focussed = focussedMonth === index;\n const outsideRange = !dateInRange(\n new Date(yearInView, index, 1),\n minDate ? getMonthStart(minDate) : null,\n maxDate ? getMonthEnd(maxDate) : null\n );\n\n return (\n <ic-button\n role=\"listitem\"\n class={{\n \"month-button\": true,\n selected: current,\n focussed: focussed,\n disabled: outsideRange,\n }}\n full-width\n disabled={outsideRange}\n variant={current ? \"primary\" : \"tertiary\"}\n data-month={index}\n size={size}\n tabIndex={focussed ? 0 : -1}\n aria-current={current ? \"true\" : \"false\"}\n aria-label={current ? \"\" : `select ${month}`}\n onClick={handleMonthClick}\n onKeyDown={onKeyDown}\n ref={(el: HTMLIcButtonElement) => {\n if (focussed && el) {\n focussedMonthRef(el);\n }\n }}\n >\n {month}\n </ic-button>\n );\n })}\n </div>\n );\n};\n","import { h, FunctionalComponent } from \"@stencil/core\";\nimport { yearInRange } from \"../../utils/date-helpers\";\nimport { IcSizes } from \"../../utils/types\";\n\nexport type YearPickerProps = {\n decadeView: number[];\n size: IcSizes;\n focussedYear: number;\n yearInView: number;\n onSelectYear: (year: number) => void;\n onKeyDown: (ev: KeyboardEvent) => void;\n onFocusYear: () => void;\n onBlurYear: () => void;\n minDate: Date;\n maxDate: Date;\n focussedYearRef: (element: HTMLIcButtonElement) => void;\n};\n\nexport const YearPicker: FunctionalComponent<YearPickerProps> = ({\n decadeView,\n size,\n focussedYear,\n yearInView,\n onSelectYear,\n onFocusYear,\n onBlurYear,\n onKeyDown,\n minDate,\n maxDate,\n focussedYearRef,\n}) => {\n const handleYearClick = (ev: MouseEvent): void => {\n const button = ev.target as HTMLElement;\n onSelectYear(Number(button.getAttribute(\"data-year\")));\n };\n\n const handleYearFocus = (): void => {\n onFocusYear();\n };\n\n const handleYearBlur = (): void => {\n onBlurYear();\n };\n\n const navButtonMouseDownHandler = (ev: MouseEvent): void => {\n ev.preventDefault();\n };\n\n const prevDecade = decadeView[0];\n const nextDecade = decadeView[11];\n const years = decadeView.slice(1, 11);\n\n return (\n <div class=\"year-picker\" role=\"list\">\n <div class=\"prev-decade\" aria-hidden=\"true\">\n <ic-button\n id=\"prev-decade-button\"\n class={{\n \"year-button\": true,\n }}\n disabled={!yearInRange(prevDecade, minDate, maxDate)}\n data-year={prevDecade}\n tabIndex={-1}\n variant=\"tertiary\"\n onClick={handleYearClick}\n onMouseDown={navButtonMouseDownHandler}\n aria-hidden=\"true\"\n size={size}\n >\n {`${prevDecade - 9}s`}\n <svg\n slot=\"left-icon\"\n width=\"12\"\n height=\"12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.3333 5.33341H3.21996L6.94663 1.60675L5.99996 0.666748L0.666626 6.00008L5.99996 11.3334L6.93996 10.3934L3.21996 6.66675H11.3333V5.33341Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ic-button>\n </div>\n {years.map((yr) => {\n const current = yearInView === yr;\n const focussed = focussedYear === yr;\n return (\n <ic-button\n class={{\n \"year-button\": true,\n selected: current,\n focussed: focussed,\n }}\n disabled={!yearInRange(yr, minDate, maxDate)}\n data-year={yr}\n tabIndex={focussed ? 0 : -1}\n variant={current ? \"primary\" : \"tertiary\"}\n onClick={handleYearClick}\n aria-label={current ? \"\" : `select ${yr}`}\n role=\"listitem\"\n aria-current={current ? \"true\" : \"false\"}\n onKeyDown={onKeyDown}\n onFocus={handleYearFocus}\n onBlur={handleYearBlur}\n size={size}\n ref={(el: HTMLIcButtonElement) => {\n if (focussed && el) {\n focussedYearRef(el);\n }\n }}\n >\n {yr}\n </ic-button>\n );\n })}\n <div class=\"next-decade\" aria-hidden=\"true\">\n <ic-button\n id=\"next-decade-button\"\n class={{\n \"year-button\": true,\n flip: true,\n }}\n disabled={!yearInRange(nextDecade, minDate, maxDate)}\n data-year={nextDecade}\n tabIndex={-1}\n variant=\"tertiary\"\n onClick={handleYearClick}\n onMouseDown={navButtonMouseDownHandler}\n aria-hidden=\"true\"\n size={size}\n >\n {`${nextDecade}s`}\n <svg\n slot=\"right-icon\"\n width=\"12\"\n height=\"12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.3333 5.33341H3.21996L6.94663 1.60675L5.99996 0.666748L0.666626 6.00008L5.99996 11.3334L6.93996 10.3934L3.21996 6.66675H11.3333V5.33341Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ic-button>\n </div>\n </div>\n );\n};\n","@import \"../../../dist/core/normalize.css\";\n\n/**\n* @prop --input-width: Width of the input field\n @prop --ic-z-index-date-picker: z-index of date picker.\n*/\n\n:host {\n display: block;\n position: relative;\n\n --month-year-picker-button-width: 5rem;\n --month-button-width: 5.5rem;\n --input-field-width: var(--input-width, 19.125rem);\n}\n\n:host(.large) {\n --month-button-width: 6.3125rem;\n --input-field-width: var(--input-width, 21.125rem);\n}\n\n:host(.small) {\n --month-button-width: 6.25rem;\n --input-field-width: var(--input-width, 17.125rem);\n}\n\n:host .date-input-container {\n position: relative;\n}\n\nic-date-input {\n --input-width: var(--input-field-width);\n}\n\n:host .calendar-container {\n min-width: 19rem;\n max-width: 23.5rem;\n width: var(--input-width);\n display: flex;\n flex-direction: column;\n gap: var(--ic-space-xs);\n position: absolute;\n border: var(--ic-border-default);\n border-radius: var(--ic-border-radius);\n align-items: center;\n background-color: var(--ic-architectural-white);\n z-index: var(--ic-z-index-date-picker);\n box-sizing: border-box;\n box-shadow: var(--ic-elevation-overlay);\n margin-top: var(--ic-space-xxxs);\n padding: var(--ic-space-xs);\n animation: fade-in-calendar var(--ic-transition-duration-slow);\n}\n\n:host(.small) .calendar-container {\n min-width: 17rem;\n max-width: 21.5rem;\n}\n\n:host(.large) .calendar-container {\n min-width: 21rem;\n max-width: 25.5rem;\n}\n\n:host .calendar-container.above {\n bottom: calc(var(--ic-space-xxl) - var(--ic-space-xxs));\n}\n\n:host .month-year-nav-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n}\n\n:host .month-year-nav-container.hidden {\n display: none;\n}\n\n:host .month-year-nav {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex: 1 0 0;\n}\n\n:host .month-picker,\n:host .year-picker {\n flex-wrap: wrap;\n display: inline-flex;\n align-items: center;\n width: 17.5rem;\n column-gap: var(--ic-space-xs);\n row-gap: var(--ic-space-xxs);\n}\n\n:host(.small) .month-picker,\n:host(.small) .year-picker {\n width: 13.125rem;\n}\n\n:host(.large) .month-picker,\n:host(.large) .year-picker {\n width: 20rem;\n}\n\n:host .month-picker-button,\n:host .year-picker-button {\n width: 5rem;\n\n --min-width: 5rem;\n}\n\n:host .month-button,\n:host .year-button {\n width: var(--month-button-width);\n}\n\n:host .month-button.focussed,\n:host .year-button.focussed {\n z-index: 1;\n}\n\n:host .month-button::part(button),\n:host .year-button::part(button) {\n min-width: var(--month-button-width);\n}\n\n:host .prev-decade .year-button svg {\n margin-right: calc(-1 * var(--ic-space-xl));\n padding-top: var(--ic-space-sm);\n}\n\n:host .prev-decade .year-button::part(button) {\n padding-left: 0;\n padding-right: var(--ic-space-lg);\n}\n\n:host(.small) .prev-decade .year-button::part(button) {\n padding-left: 0;\n padding-right: calc(var(--ic-space-lg) + var(--ic-space-xxs));\n}\n\n:host .next-decade .year-button svg {\n margin-left: calc(-1 * var(--ic-space-xl));\n padding-top: var(--ic-space-sm);\n}\n\n:host .next-decade .year-button::part(button) {\n padding-right: 0;\n padding-left: var(--ic-space-lg);\n}\n\n:host(.small) .next-decade .year-button::part(button),\n:host(.large) .next-decade .year-button::part(button) {\n padding-left: var(--ic-space-xl);\n}\n\n:host .bottom-buttons {\n padding-top: var(--ic-space-xs);\n display: flex;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n animation: fade-in-buttons var(--ic-transition-duration-slow);\n}\n\n:host(.small) .bottom-buttons {\n padding-top: var(--ic-space-xxs);\n}\n\n:host .bottom-buttons.no-today {\n align-items: flex-end;\n flex-direction: column;\n}\n\n:host .bottom-buttons.hidden {\n display: none;\n}\n\n:host .calendar {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width: 15.75rem;\n animation: fade-in-buttons var(--ic-transition-duration-slow);\n}\n\n:host(.large) .calendar {\n width: 19.25rem;\n}\n\n:host(.small) .calendar {\n padding-bottom: var(--ic-space-xxs);\n width: 14rem;\n}\n\n:host .hidden {\n display: none;\n}\n\n:host .weekdays {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: var(--ic-space-xs);\n align-self: stretch;\n}\n\n:host .calendar-days-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n row-gap: var(--ic-space-xs);\n padding: var(--ic-space-xxs) 0;\n}\n\n:host(.small) .calendar-days-container {\n padding: var(--ic-space-xxxs) 0;\n}\n\n:host(.large) .calendar-days-container {\n padding: var(--ic-space-xs) 0;\n}\n\n:host .calendar-day-header {\n display: flex;\n width: 2rem;\n padding: var(--ic-space-xxs) 0;\n justify-content: center;\n align-items: center;\n}\n\n:host(.small) .calendar-day-header,\n:host(.large) .calendar-day-header {\n padding: var(--ic-space-xxs);\n}\n\n:host .calendar-day-header ic-typography {\n color: var(--ic-color-tertiary-text);\n text-align: center;\n}\n\n:host .day-button-container {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 2.25rem;\n height: 2.25rem;\n}\n\n:host(.small) .day-button-container {\n width: 2rem;\n height: 2rem;\n}\n\n:host(.large) .day-button-container {\n width: 2.5rem;\n height: 2.5rem;\n}\n\n:host .day-button {\n display: flex;\n position: relative;\n justify-content: center;\n align-items: center;\n border: 0;\n border-radius: 2rem;\n background-color: var(--ic-architectural-white);\n width: 2rem;\n height: 2rem;\n cursor: pointer;\n transition: var(--ic-easing-transition-fast);\n z-index: 0;\n}\n\n:host .day-button.disabled {\n cursor: default;\n}\n\n:host(.large) .day-button {\n width: 2.25rem;\n height: 2.25rem;\n}\n\n:host(.small) .day-button {\n width: 1.75rem;\n height: 1.75rem;\n}\n\n:host .day-button ic-typography {\n width: 1.75rem;\n color: var(--ic-color-primary-text);\n}\n\n:host .day-button.outside-range ic-typography {\n color: var(--ic-architectural-400);\n}\n\n:host .day-button.outside-month ic-typography {\n font-weight: var(--ic-font-weight-regular) !important;\n}\n\n:host\n .day-button.outside-month:not(.outside-range):not(.selected)\n ic-typography {\n color: var(--ic-color-primary-text);\n}\n\n:host .day-button:hover:not(.disabled) {\n background-color: var(--ic-action-dark-bg-hover);\n}\n\n:host .day-button:active:not(.disabled) {\n background-color: var(--ic-action-dark-bg-active);\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :host .day-button:hover:not(.disabled):not(.focussed),\n :host .day-button:active:not(.disabled):not(.focussed) {\n transition: background-color var(--ic-transition-duration-slow) ease-in-out;\n }\n}\n\n:host .day-button.selected:not(.hidden) {\n background-color: var(--ic-action-default);\n}\n\n:host .day-button.selected ic-typography {\n color: var(--ic-color-white-text);\n}\n\n:host .day-button.selected:not(.hidden):hover {\n background-color: var(--ic-action-default-hover);\n}\n\n:host .day-button.selected:not(.hidden):active {\n background-color: var(--ic-action-default-active);\n}\n\n:host .day-button.focussed {\n z-index: 1;\n}\n\n:host .day-button:focus {\n outline: none;\n}\n\n:host .day-button.focussed:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n:host .day-button.today:not(.hidden)::after {\n content: \"\";\n position: absolute;\n width: 0.875rem;\n height: 0.125rem;\n bottom: 0.4rem;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-action-default);\n}\n\n:host(.small) .day-button.today::after {\n bottom: 0.35rem;\n}\n\n:host(.large) .day-button.today::after {\n width: 1rem;\n}\n\n:host .day-button.today.selected::after {\n background-color: var(--ic-architectural-white);\n}\n\n:host #select-month-hint,\n:host #select-year-hint {\n display: none;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host .calendar-container,\n :host .calendar,\n :host .bottom-buttons {\n animation: none;\n }\n}\n\n@keyframes fade-in-buttons {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes fade-in-calendar {\n 0% {\n display: flex;\n max-height: 0;\n }\n\n 100% {\n display: flex;\n max-height: 600px;\n }\n}\n\n@media (forced-colors: active) {\n :host .day-button.today:not(.hidden)::after {\n background-color: highlight;\n }\n\n :host .day-button.selected:not(.hidden) {\n background-color: highlight;\n }\n\n :host .day-button.focussed:focus {\n border: var(--ic-hc-border);\n }\n\n :host .month-button.selected::part(button),\n :host .year-button.selected::part(button) {\n background-color: highlight;\n }\n}\n","import {\n Component,\n Element,\n Host,\n h,\n Prop,\n Listen,\n Watch,\n State,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\nimport {\n createDate,\n clampDate,\n dateMatches,\n dateInRange,\n getMonthStart,\n getMonthEnd,\n getWeekEnd,\n getWeekStart,\n yearInRange,\n} from \"../../utils/date-helpers\";\nimport {\n stringEnumToArray,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcWeekDays,\n IcShortDayNames,\n IcDateInputMonths,\n IcDateFormat,\n IcSizes,\n IcInformationStatusOrEmpty,\n} from \"../../utils/types\";\nimport chevron from \"../../assets/chevron-icon.svg\";\nimport { DayButton } from \"./ic-day-button\";\nimport { MonthPicker } from \"./ic-month-picker\";\nimport { YearPicker } from \"./ic-year-picker\";\n\nconst DEFAULT_DATE_FORMAT = \"DD/MM/YYYY\";\nconst DEFAULT_DISABLE_DATES_FROM_NOW_MSG =\n \"Dates in the future are not allowed. Please select a date in the past.\";\nconst DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG =\n \"Dates in the past are not allowed. Please select a date in the future.\";\nconst DEFAULT_DISABLE_DAYS_MSG =\n \"The date you have selected is on a day of the week that is not allowed. Please select another date.\";\nconst FOCUS_TIMER = 100;\nconst PICKER_HEIGHT_SMALL = 360;\nconst PICKER_HEIGHT_DEFAULT = 400;\nconst PICKER_HEIGHT_LARGE = 440;\n\ninterface IcDateInputProps {\n dateFormat?: IcDateFormat;\n disabled?: boolean;\n disableDays?: IcWeekDays[];\n disableDaysMessage?: string;\n disableFuture?: boolean;\n disableFutureMessage?: string;\n disablePast?: boolean;\n disablePastMessage?: string;\n helperText?: string;\n hideHelperText?: boolean;\n hideLabel?: boolean;\n inputId?: string;\n invalidDateMessage?: string;\n label: string;\n max?: string | Date;\n min?: string | Date;\n name?: string;\n required?: boolean;\n showClearButton?: boolean;\n showCalendarButton?: boolean;\n size?: IcSizes;\n value?: string | Date;\n validationStatus?: IcInformationStatusOrEmpty;\n validationText?: string;\n}\n\n@Component({\n tag: \"ic-date-picker\",\n styleUrl: \"ic-date-picker.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class DatePicker {\n private inputEl: HTMLIcDateInputElement;\n private clearButtonEl: HTMLIcButtonElement = null;\n private dateInputProps: IcDateInputProps;\n private daysOfWeek: string[] = [];\n private dayButtonFocussed: boolean = false;\n private dayPickerKeyboardNav: boolean = false;\n private decadeStart: number;\n private decadeEnd: number;\n private dialogDescription: string = \"\";\n private focusDay: boolean = true;\n private focussedYearEl: HTMLIcButtonElement;\n private liveRegionEl: HTMLElement = null;\n private monthButtonEl: HTMLIcButtonElement;\n private monthNames: string[] = [];\n private monthInViewUpdateHandled: boolean = false;\n private myCalendarButtonClicked: boolean = false;\n private showPickerAbove: boolean = false;\n private today = new Date();\n private todayButtonEl: HTMLIcButtonElement = null;\n private yearButtonEl: HTMLIcButtonElement;\n private yearButtonFocussed: boolean = false;\n\n @Element() el: HTMLIcDatePickerElement;\n\n @State() calendarOpen: boolean = false;\n @State() currMonthView: Date[] = [];\n @State() currYearPickerView: number[] = [];\n @State() decadeView: number[] = [];\n @State() focussedDate: Date = null;\n @State() focussedDay: number;\n @State() focussedDayEl: HTMLButtonElement;\n @State() focussedMonth: number;\n @State() focussedMonthEl: HTMLIcButtonElement;\n @State() focussedYear: number;\n @State() maxDate: Date = null;\n @State() minDate: Date = null;\n @State() monthInView: number;\n @State() monthPickerVisible: boolean = false;\n @State() orderedDaysOfWeek: string[] = [];\n @State() selectedDate: Date = null;\n @State() yearInView: number;\n @State() yearPickerVisible: boolean = false;\n\n /**\n * The format in which the date will be displayed.\n */\n @Prop() dateFormat?: IcDateFormat = \"DD/MM/YYYY\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The days of the week to disable.\n */\n @Prop() disableDays?: IcWeekDays[] = [];\n\n /**\n * The text to display as the validation message when `disableDays` is `true` and a disabled date is entered.\n */\n @Prop() disableDaysMessage?: string =\n \"The date you have selected is on a day of the week that is not allowed. Please select another date.\";\n\n /**\n * If `true`, dates in the future are not allowed. A validation message will appear if a date in the future is entered.\n */\n @Prop() disableFuture?: boolean = false;\n\n @Watch(\"disableFuture\")\n watchDisableFutureHandler(): void {\n this.watchMaxHandler();\n }\n\n /**\n * The text to display as the validation message when `disableFuture` is `true` and a date in the future is entered.\n */\n @Prop() disableFutureMessage?: string =\n \"Dates in the future are not allowed. Please select a date in the past.\";\n\n /**\n * If `true`, dates in the past are not allowed. A validation message will appear if a date in the past is entered.\n */\n @Prop() disablePast?: boolean = false;\n\n @Watch(\"disablePast\")\n watchDisablePastHandler(): void {\n this.watchMinHandler();\n }\n\n /**\n * The text to display as the validation message when `disablePast` is `true` and a date in the past is entered.\n */\n @Prop() disablePastMessage?: string =\n \"Dates in the past are not allowed. Please select a date in the future.\";\n\n /**\n * The helper text that will be displayed for additional field guidance. This will default to the text \"Use format\" along with the `dateFormat` value.\n */\n @Prop() helperText?: string;\n\n /**\n * If `true`, the helper text will be visually hidden, but still read out by screenreaders.\n */\n @Prop() hideHelperText: boolean = false;\n\n /**\n * If `true`, the label will be visually hidden, but the required label will still be read out by screen readers.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The ID for the input field. The default will be an automatically generated value.\n */\n @Prop() inputId?: string;\n\n /**\n * The text to display as the validation message when an invalid date is entered.\n */\n @Prop() invalidDateMessage?: string = \"Please enter a valid date.\";\n\n /**\n * The label for the date input.\n */\n @Prop() label!: string;\n\n /**\n * 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.\n * The value of this prop is ignored if `disableFuture` is set to `true`.\n */\n @Prop() max?: string | Date = \"\";\n\n @Watch(\"max\")\n watchMaxHandler(): void {\n if (this.disableFuture) {\n this.maxDate = new Date();\n } else {\n this.maxDate = createDate(this.max, this.dateFormat);\n }\n }\n\n /**\n * 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.\n * The value of this prop is ignored if `disablePast` is set to `true`.\n */\n @Prop() min?: string | Date = \"\";\n\n @Watch(\"min\")\n watchMinHandler(): void {\n if (this.disablePast) {\n this.minDate = new Date();\n } else {\n this.minDate = createDate(this.min, this.dateFormat);\n }\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string;\n\n /**\n * The date visible when the calendar opens. Used if no date is currently selected.\n * 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.\n */\n @Prop() openAtDate: string | Date = \"\";\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * If `true`, days outside the current month will be visible in the date picker.\n */\n @Prop() showDaysOutsideMonth?: boolean = true;\n\n /**\n * If `true`, the `Clear` button on the date picker will be visible.\n */\n @Prop() showPickerClearButton?: boolean = true;\n\n /**\n * If `true`, the `Go to today` button on the date picker will be visible.\n */\n @Prop() showPickerTodayButton?: boolean = true;\n\n /**\n * The size of the date picker to be displayed.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * The first day of the week. `0` for Sunday, `1` for Monday, etc.\n * Default is Monday.\n */\n @Prop() startOfWeek?: IcWeekDays = IcWeekDays.Monday;\n\n @Watch(\"startOfWeek\")\n watchStartOfWeekHandler(): void {\n this.orderedDaysOfWeek = this.daysOfWeek\n .slice(this.startOfWeek)\n .concat(this.daysOfWeek.slice(0, this.startOfWeek));\n if (this.calendarOpen) {\n this.updateMonthInView();\n }\n }\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in date validation.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message. This will override the built-in date validation.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * 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.\n */\n @Prop({ mutable: true }) value?: string | Date | null | undefined = \"\";\n\n @Watch(\"calendarOpen\")\n watchOpenHandler(): void {\n if (this.calendarOpen) {\n if (this.inputEl) {\n let pickerHeight = PICKER_HEIGHT_DEFAULT;\n if (this.size === \"small\") {\n pickerHeight = PICKER_HEIGHT_SMALL;\n } else if (this.size === \"large\") {\n pickerHeight = PICKER_HEIGHT_LARGE;\n }\n if (\n this.el.offsetTop + this.inputEl.offsetHeight + pickerHeight >\n window.innerHeight &&\n this.el.offsetTop > pickerHeight\n ) {\n this.showPickerAbove = true;\n } else {\n this.showPickerAbove = false;\n }\n }\n if (\n this.selectedDate === null ||\n !dateInRange(this.selectedDate, this.minDate, this.maxDate)\n ) {\n let openAt = new Date();\n if (this.openAtDate !== \"\") {\n openAt = createDate(this.openAtDate, this.dateFormat);\n }\n this.setFocussedDate(openAt);\n } else {\n this.setFocussedDate(this.selectedDate);\n }\n let dialogDesc = this.getMonthInViewText();\n if (this.selectedDate === null) {\n dialogDesc += \" No date selected.\";\n }\n dialogDesc +=\n \" Use arrow keys to change day. Press enter or space to select a date or press escape to close the picker\";\n this.dialogDescription = dialogDesc;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n document.addEventListener(\"click\", this.handleDocumentClick);\n } else {\n document.removeEventListener(\"click\", this.handleDocumentClick);\n this.monthPickerVisible = false;\n this.yearPickerVisible = false;\n }\n }\n\n @Watch(\"focussedDate\")\n watchFocussedDateHandler(current: Date, previous: Date): void {\n if (\n previous === null ||\n !(\n previous.getFullYear() === current.getFullYear() &&\n previous.getMonth() === current.getMonth()\n )\n ) {\n this.updateMonthInView();\n }\n }\n\n @Watch(\"monthInView\")\n watchMonthInViewHandler(): void {\n this.focussedMonth = this.monthInView;\n }\n\n @Watch(\"yearInView\")\n watchYearInViewHandler(): void {\n this.setFocussedYear(this.yearInView, false);\n }\n\n @Watch(\"yearPickerVisible\")\n watchYearPickerVisibleHandler(): void {\n if (!this.yearPickerVisible) {\n this.setFocussedYear(this.yearInView);\n }\n }\n\n @Watch(\"monthPickerVisible\")\n watchMonthPickerVisibleHandler(): void {\n if (!this.monthPickerVisible) {\n this.focussedMonth = this.monthInView;\n }\n }\n\n @Watch(\"focussedDayEl\")\n watchFocussedDayEl(): void {\n if (this.focusDay) {\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n }\n\n this.focusDay = true;\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{ value: Date }>;\n\n componentWillLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Date Picker\"\n );\n\n this.monthNames = stringEnumToArray(IcDateInputMonths);\n this.daysOfWeek = stringEnumToArray(IcShortDayNames);\n\n this.watchStartOfWeekHandler();\n this.watchMaxHandler();\n this.watchMinHandler();\n }\n\n componentWillRender(): void {\n this.dateInputProps = this.setDateInputProps();\n }\n\n componentWillUpdate(): void {\n this.dateInputProps = this.setDateInputProps();\n }\n\n @Listen(\"calendarButtonClicked\")\n localCalendarButtonClickHandler(ev: CustomEvent): void {\n this.myCalendarButtonClicked = true;\n if (!this.calendarOpen) {\n this.setSelectedDate(ev.detail.value, false);\n }\n\n this.calendarOpen = !this.calendarOpen;\n }\n\n @Listen(\"calendarButtonClicked\", { target: \"document\" })\n calendarButtonClickHandler(): void {\n //closes this picker if calendar button in another clicked\n if (!this.myCalendarButtonClicked) {\n this.calendarOpen = false;\n }\n this.myCalendarButtonClicked = false;\n }\n\n private setDecadeView = (start: number) => {\n let currYear = start - 1;\n const decadeArr = [];\n while (currYear <= start + 10) {\n decadeArr.push(currYear);\n currYear++;\n }\n this.decadeView = decadeArr;\n this.decadeStart = decadeArr[1];\n this.decadeEnd = decadeArr[10];\n };\n\n private setSelectedDate = (d: Date, emit = true): void => {\n if (d === null || !dateMatches(d, this.selectedDate)) {\n this.selectedDate = d;\n this.value = d;\n if (emit) {\n this.inputEl.triggerIcChange(d);\n }\n }\n };\n\n private handleCalendarMouseDown = (event: MouseEvent): void => {\n const target = event.target as HTMLElement;\n if (target.tagName !== \"IC-BUTTON\") {\n event.preventDefault();\n }\n };\n\n private handleCalendarClick = (event: MouseEvent): void => {\n this.clearDialogDescription();\n event.stopImmediatePropagation();\n };\n\n private handleDocumentClick = (): void => {\n this.calendarOpen = false;\n };\n\n private keyDownHandler = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n if (this.calendarOpen) {\n this.closeButtonClickHandler();\n this.inputEl.setCalendarFocus();\n event.stopImmediatePropagation();\n }\n } else {\n this.clearDialogDescription();\n event.stopImmediatePropagation();\n }\n };\n\n private closeButtonClickHandler = () => {\n this.calendarOpen = false;\n };\n\n private focusFirstElement = () => {\n this.monthButtonEl.setFocus();\n };\n\n private focusLastElement = () => {\n if (this.showPickerClearButton && !this.clearButtonEl.disabled) {\n this.clearButtonEl.setFocus();\n } else if (this.showPickerTodayButton && !this.todayButtonEl.disabled) {\n this.todayButtonEl.setFocus();\n } else if (this.monthPickerVisible) {\n this.focussedMonthEl.setFocus();\n } else if (this.yearPickerVisible) {\n this.focussedYearEl.setFocus();\n } else {\n this.focussedDayEl.focus();\n }\n };\n\n private focusFocussedDay = () => {\n this.focussedDayEl.focus();\n };\n\n private monthButtonClickHandler = () => {\n this.yearPickerVisible = false;\n this.focusDay = false;\n this.monthPickerVisible = !this.monthPickerVisible;\n if (this.monthPickerVisible) {\n this.setAriaLiveRegionText(\"Month picker view open\");\n } else {\n this.setMonthSelectedLiveRegionText();\n }\n };\n\n private yearButtonClickHandler = () => {\n this.monthPickerVisible = false;\n this.focusDay = false;\n this.yearPickerVisible = !this.yearPickerVisible;\n if (this.yearPickerVisible) {\n this.setAriaLiveRegionText(\n `Year picker view open. ${this.getDecadeInViewText()}`\n );\n } else {\n this.setYearSelectedLiveRegionText();\n }\n };\n\n private todayButtonClickHandler = () => {\n this.yearPickerVisible = false;\n this.monthPickerVisible = false;\n this.setFocussedDate(new Date());\n this.setAriaLiveRegionText(this.getMonthInViewText());\n\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n };\n\n private todayButtonKeyDownHandler = (ev: KeyboardEvent) => {\n if (ev.key === \"Tab\" && !ev.shiftKey && this.clearButtonEl.disabled) {\n this.focusFirstElement();\n ev.preventDefault();\n }\n };\n\n private clearButtonClickHandler = () => {\n this.setSelectedDate(null);\n let text = \"Selected date cleared.\";\n if (!this.monthPickerVisible && !this.yearPickerVisible) {\n text += ` ${this.getMonthInViewText()}`;\n }\n if (this.monthPickerVisible) {\n this.focussedMonthEl.setFocus();\n } else if (this.yearPickerVisible) {\n this.focussedYearEl.setFocus();\n } else {\n this.focusFocussedDay();\n }\n this.setAriaLiveRegionText(text);\n };\n\n private setMonthSelectedLiveRegionText = () => {\n this.setAriaLiveRegionText(\n `${\n this.monthNames[this.monthInView]\n } selected. ${this.getMonthInViewText()}`\n );\n };\n\n private setYearSelectedLiveRegionText = () => {\n this.setAriaLiveRegionText(\n `${this.yearInView} selected. ${this.getMonthInViewText()}`\n );\n };\n\n private getMonthInViewText = () => {\n return `${this.monthNames[this.monthInView]} ${\n this.yearInView\n } currently in view.`;\n };\n\n private getDecadeInViewText = () => {\n return `${this.decadeStart} to ${this.decadeEnd} currently in view.`;\n };\n\n private setAriaLiveRegionText = (text: string) => {\n this.liveRegionEl && (this.liveRegionEl.innerText = text);\n };\n\n private clearDialogDescription = () => {\n this.dialogDescription = \"\";\n };\n\n private clearButtonKeyDownHandler = (ev: KeyboardEvent) => {\n if (ev.key === \"Tab\" && !ev.shiftKey) {\n this.focusFirstElement();\n ev.preventDefault();\n }\n };\n\n private goToPreviousMonth = (focusDay = false) => {\n this.focusDay = focusDay;\n this.moveMonths(-1);\n };\n\n private goToNextMonth = (focusDay = false) => {\n this.focusDay = focusDay;\n this.moveMonths(1);\n };\n\n private goToPreviousYear = (focusDay = false) => {\n if (this.isPrevYearAllowed()) {\n this.focusDay = focusDay;\n this.moveYears(-1);\n }\n };\n\n private goToNextYear = (focusDay = false) => {\n if (this.isNextYearAllowed()) {\n this.focusDay = focusDay;\n this.moveYears(1);\n }\n };\n\n private navButtonMouseDownHandler = (ev: MouseEvent): void => {\n ev.preventDefault();\n };\n\n private renderMonthYearNavButton = (\n id: string,\n flip: boolean,\n disabled: boolean\n ): void => {\n const buttonSize = this.size;\n return (\n <div aria-hidden=\"true\">\n <ic-button\n id={id}\n disableTooltip={true}\n disabled={disabled}\n onClick={this.monthYearNavClickHandler}\n class={{ flip: flip }}\n variant=\"icon\"\n innerHTML={chevron}\n size={buttonSize}\n tabIndex={-1}\n aria-hidden=\"true\"\n onMouseDown={this.navButtonMouseDownHandler}\n />\n </div>\n );\n };\n\n private monthYearNavClickHandler = (ev: Event): void => {\n const target = ev.target as Element;\n switch (target.id) {\n case \"previous-month-button\":\n this.goToPreviousMonth(this.dayButtonFocussed);\n break;\n\n case \"next-month-button\":\n this.goToNextMonth(this.dayButtonFocussed);\n break;\n\n case \"previous-year-button\":\n this.goToPreviousYear(this.dayButtonFocussed);\n break;\n\n case \"next-year-button\":\n this.goToNextYear(this.dayButtonFocussed);\n break;\n }\n };\n\n private previousMonthButton = (): void => {\n let disabled = false;\n if (this.focussedDate !== null && this.minDate !== null) {\n const yearMatch =\n this.focussedDate.getFullYear() === this.minDate.getFullYear();\n if (yearMatch) {\n disabled = this.monthInView - 1 < this.minDate.getMonth();\n }\n }\n return this.renderMonthYearNavButton(\n \"previous-month-button\",\n true,\n disabled\n );\n };\n\n private nextMonthButton = (): void => {\n let disabled = false;\n if (this.focussedDate !== null && this.maxDate !== null) {\n const yearMatch =\n this.focussedDate.getFullYear() === this.maxDate.getFullYear();\n if (yearMatch) {\n disabled = this.monthInView + 1 > this.maxDate.getMonth();\n }\n }\n return this.renderMonthYearNavButton(\"next-month-button\", false, disabled);\n };\n\n private previousYearButton = (): void => {\n return this.renderMonthYearNavButton(\n \"previous-year-button\",\n true,\n !this.isPrevYearAllowed()\n );\n };\n\n private nextYearButton = (): void => {\n return this.renderMonthYearNavButton(\n \"next-year-button\",\n false,\n !this.isNextYearAllowed()\n );\n };\n\n private isPrevYearAllowed = (): boolean => {\n return this.isYearAllowed(this.yearInView - 1);\n };\n\n private isNextYearAllowed = (): boolean => {\n return this.isYearAllowed(this.yearInView + 1);\n };\n\n private isYearAllowed = (yr: number): boolean => {\n return yearInRange(yr, this.minDate, this.maxDate);\n };\n\n private getMonthView = (date: Date): Date[] => {\n const start = getWeekStart(getMonthStart(date), this.startOfWeek);\n const end = getWeekEnd(getMonthEnd(date), this.startOfWeek);\n\n const days: Date[] = [];\n let current = start;\n\n while (!dateMatches(current, end)) {\n days.push(current);\n current = new Date(current);\n current.setDate(current.getDate() + 1);\n }\n\n days.push(current);\n\n return days;\n };\n\n private isCurrentMonth = (): boolean => {\n const d = new Date();\n return (\n d.getFullYear() === this.yearInView && d.getMonth() === this.monthInView\n );\n };\n\n private updateMonthInView = (): void => {\n this.currMonthView = this.getMonthView(this.focussedDate);\n\n this.focussedDay = this.focussedDate.getDate();\n this.monthInView = this.focussedDate.getMonth();\n this.yearInView = this.focussedDate.getFullYear();\n\n if (this.dayPickerKeyboardNav) {\n this.monthInViewUpdateHandled = true;\n this.setAriaLiveRegionText(this.getMonthInViewText());\n this.dayPickerKeyboardNav = false;\n }\n };\n\n private handleSelectDay = (day: Date): void => {\n this.setSelectedDate(day);\n this.calendarOpen = false;\n this.inputEl.setCalendarFocus();\n };\n\n private handleSelectMonth = (month: number): void => {\n this.moveMonths(month - this.monthInView);\n setTimeout(() => {\n this.monthButtonEl.setFocus();\n this.monthPickerVisible = false;\n this.setMonthSelectedLiveRegionText();\n }, FOCUS_TIMER);\n };\n\n private handleSelectYear = (year: number): void => {\n const yrPos = this.decadeView.indexOf(year);\n if (yrPos > 0 && yrPos < this.decadeView.length - 1) {\n this.moveYears(year - this.yearInView);\n this.focusDay = false;\n const monthName = this.monthNames[this.monthInView];\n this.setAriaLiveRegionText(\n `${year} selected. ${monthName} ${year} currently in view.`\n );\n setTimeout(() => {\n this.yearButtonEl.setFocus();\n this.yearPickerVisible = false;\n }, FOCUS_TIMER);\n } else {\n const moveYears = year - this.focussedYear > 0 ? 10 : -10;\n this.updateFocussedYear(moveYears, this.yearButtonFocussed);\n this.setAriaLiveRegionText(this.getDecadeInViewText());\n }\n };\n\n private monthPickerKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.updateFocussedMonth(-1);\n break;\n\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.updateFocussedMonth(1);\n break;\n\n case \"Home\":\n this.updateFocussedMonth(-this.focussedMonth);\n break;\n\n case \"End\":\n this.updateFocussedMonth(11 - this.focussedMonth);\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n case \"Escape\":\n ev.stopImmediatePropagation();\n this.monthPickerVisible = false;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n break;\n\n default:\n handled = false;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private yearPickerKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.updateFocussedYear(-1);\n break;\n\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.updateFocussedYear(1);\n break;\n\n case \"Home\":\n if (this.focussedYear > this.decadeStart) {\n this.updateFocussedYear(this.decadeStart - this.focussedYear);\n }\n break;\n\n case \"End\":\n if (this.focussedYear < this.decadeEnd) {\n this.updateFocussedYear(this.decadeEnd - this.focussedYear);\n }\n break;\n\n case \"PageUp\":\n this.updateFocussedYear(-10);\n break;\n\n case \"PageDown\":\n this.updateFocussedYear(10);\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n case \"Escape\":\n ev.stopImmediatePropagation();\n this.yearPickerVisible = false;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n break;\n\n default:\n handled = false;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private onYearButtonFocusHandler = () => {\n this.yearButtonFocussed = true;\n };\n\n private onYearButtonBlurHandler = () => {\n this.yearButtonFocussed = false;\n };\n\n private monthButtonKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = false;\n switch (ev.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n handled = true;\n this.goToPreviousMonth();\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n handled = true;\n this.goToNextMonth();\n break;\n\n case \"Home\":\n handled = true;\n this.focusDay = false;\n this.moveMonths(-this.monthInView);\n break;\n\n case \"End\":\n handled = true;\n this.focusDay = false;\n this.moveMonths(11 - this.monthInView);\n break;\n\n case \"Tab\":\n if (ev.shiftKey) {\n handled = true;\n this.focusLastElement();\n }\n break;\n\n case \"Escape\":\n if (this.monthPickerVisible) {\n this.monthPickerVisible = false;\n ev.stopImmediatePropagation();\n }\n break;\n\n default:\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private yearButtonKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = false;\n switch (ev.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n handled = true;\n this.goToPreviousYear();\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n handled = true;\n this.goToNextYear();\n break;\n\n case \"Home\":\n if (this.yearPickerVisible && this.yearInView > this.decadeStart) {\n handled = true;\n this.moveYears(this.decadeStart - this.yearInView);\n }\n break;\n\n case \"End\":\n if (this.yearPickerVisible && this.yearInView < this.decadeEnd) {\n handled = true;\n this.moveYears(this.decadeEnd - this.focussedYear);\n }\n break;\n\n case \"PageUp\":\n handled = true;\n this.focusDay = false;\n this.moveYears(-10);\n break;\n\n case \"PageDown\":\n handled = true;\n this.focusDay = false;\n this.moveYears(10);\n break;\n\n case \"Escape\":\n if (this.yearPickerVisible) {\n this.yearPickerVisible = false;\n ev.stopImmediatePropagation();\n }\n break;\n\n default:\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private handleCalendarKeyDown = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowDown\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(7);\n break;\n\n case \"ArrowUp\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(-7);\n break;\n\n case \"ArrowLeft\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(-1 * this.getNextDayToFocus(this.focussedDate, false));\n break;\n\n case \"ArrowRight\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(this.getNextDayToFocus(this.focussedDate, true));\n break;\n\n case \"PageUp\":\n this.dayPickerKeyboardNav = true;\n ev.shiftKey ? this.moveYears(-1) : this.moveMonths(-1);\n break;\n\n case \"PageDown\":\n this.dayPickerKeyboardNav = true;\n ev.shiftKey ? this.moveYears(1) : this.moveMonths(1);\n break;\n\n case \"Home\":\n this.dayPickerKeyboardNav = true;\n this.setFocussedDate(\n new Date(this.focussedYear, this.focussedMonth, 1)\n );\n break;\n\n case \"End\":\n this.dayPickerKeyboardNav = true;\n this.setFocussedDate(\n new Date(this.focussedYear, this.focussedMonth + 1, 0)\n );\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n default:\n handled = false;\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private calendarTabHandler = (ev: KeyboardEvent): boolean => {\n let handled = false;\n if (\n !ev.shiftKey &&\n (!this.showPickerTodayButton || this.isCurrentMonth()) &&\n (!this.showPickerClearButton || this.clearButtonEl.disabled)\n ) {\n this.focusFirstElement();\n handled = true;\n } else if (ev.shiftKey) {\n this.yearButtonEl.setFocus();\n handled = true;\n }\n return handled;\n };\n\n private onDayButtonFocusHandler = () => {\n this.dayButtonFocussed = true;\n };\n\n private onDayButtonBlurHandler = () => {\n this.dayButtonFocussed = false;\n };\n\n private getNextDayToFocus = (\n currDay: Date,\n forward: boolean,\n level = 1\n ): number => {\n const move = forward ? 1 : -1;\n const nextDay = new Date(currDay);\n nextDay.setDate(nextDay.getDate() + move);\n const nextDayNum = Number(nextDay.getDay());\n if (this.disableDays.includes(nextDayNum)) {\n return this.getNextDayToFocus(nextDay, forward, level + 1);\n } else {\n return level;\n }\n };\n\n private moveDays = (numDays: number): void => {\n const d = new Date(this.focussedDate);\n d.setDate(d.getDate() + numDays);\n this.setFocussedDate(d);\n };\n\n private moveMonths = (numMonths: number): void => {\n const newMonth = this.focussedDate.getMonth() + numMonths;\n const min = new Date(\n new Date(getMonthStart(this.focussedDate)).setMonth(newMonth)\n );\n const max = getMonthEnd(min);\n const newDate = new Date(new Date(this.focussedDate).setMonth(newMonth));\n this.setFocussedDate(clampDate(newDate, min, max));\n\n if (\n this.monthPickerVisible === false &&\n this.yearPickerVisible === false &&\n this.monthInViewUpdateHandled === false\n ) {\n this.setAriaLiveRegionText(this.getMonthInViewText());\n }\n this.monthInViewUpdateHandled = false;\n };\n\n private moveYears = (numYears: number): void => {\n const newYear = this.focussedDate.getFullYear() + numYears;\n const min = new Date(\n new Date(getMonthStart(this.focussedDate)).setFullYear(newYear)\n );\n const max = getMonthEnd(min);\n const newDate = new Date(new Date(this.focussedDate).setFullYear(newYear));\n this.setFocussedDate(clampDate(newDate, min, max));\n\n if (\n this.monthPickerVisible === false &&\n this.yearPickerVisible === false &&\n this.monthInViewUpdateHandled === false\n ) {\n this.setAriaLiveRegionText(this.getMonthInViewText());\n }\n this.monthInViewUpdateHandled = false;\n };\n\n private updateFocussedMonth = (adjust: number): void => {\n const d = new Date(this.focussedYear, this.focussedMonth, 1);\n d.setMonth(this.focussedMonth + adjust);\n const newDate = clampDate(d, this.minDate, this.maxDate);\n this.focussedMonth = newDate.getMonth();\n setTimeout(() => this.focussedMonthEl.setFocus(), FOCUS_TIMER);\n };\n\n private updateFocussedYear = (adjust: number, focusYear = true): void => {\n const d = new Date(new Date().setFullYear(this.focussedYear + adjust));\n const newDate = clampDate(d, this.minDate, this.maxDate);\n this.setFocussedYear(newDate.getFullYear(), focusYear);\n };\n\n private setFocussedDate = (d: Date): void => {\n this.focussedDate = clampDate(d, this.minDate, this.maxDate);\n };\n\n private setFocussedDayEl = (element: HTMLButtonElement) => {\n this.focussedDayEl = element;\n };\n\n private setFocussedMonthEl = (element: HTMLIcButtonElement) => {\n this.focussedMonthEl = element;\n };\n\n private setFocussedYearEl = (element: HTMLIcButtonElement) => {\n this.focussedYearEl = element;\n };\n\n private setFocussedYear = (newYear: number, focus = true): void => {\n const prevYear = this.focussedYear;\n this.focussedYear = newYear;\n if (this.yearPickerVisible) {\n const newDecade = Math.floor(newYear / 10) * 10;\n const oldDecade = Math.floor(prevYear / 10) * 10;\n if (newDecade !== oldDecade) {\n this.setDecadeView(newDecade);\n this.setAriaLiveRegionText(this.getDecadeInViewText());\n }\n if (focus) {\n setTimeout(() => {\n if (this.focussedYearEl !== null) this.focussedYearEl.setFocus();\n }, FOCUS_TIMER);\n }\n } else {\n this.setDecadeView(Math.floor(newYear / 10) * 10);\n }\n };\n\n private setDateInputProps = (): IcDateInputProps => {\n const inputProps: IcDateInputProps = {\n hideLabel: this.hideLabel,\n invalidDateMessage: this.invalidDateMessage,\n label: this.label,\n showClearButton: true,\n showCalendarButton: true,\n value: this.value,\n };\n\n if (this.dateFormat !== DEFAULT_DATE_FORMAT) {\n inputProps.dateFormat = this.dateFormat;\n }\n if (this.disableFuture) {\n inputProps.disableFuture = this.disableFuture;\n if (this.disableFutureMessage !== DEFAULT_DISABLE_DATES_FROM_NOW_MSG) {\n inputProps.disableFutureMessage = this.disableFutureMessage;\n }\n }\n if (this.disablePast) {\n inputProps.disablePast = this.disablePast;\n if (this.disablePastMessage !== DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG) {\n inputProps.disablePastMessage = this.disablePastMessage;\n }\n }\n if (this.disableDays.length > 0) {\n inputProps.disableDays = this.disableDays;\n if (this.disableDaysMessage !== DEFAULT_DISABLE_DAYS_MSG) {\n inputProps.disableDaysMessage = this.disableDaysMessage;\n }\n }\n if (this.max !== null && this.max !== \"\") {\n inputProps.max = this.maxDate;\n }\n if (this.min !== null && this.min !== \"\") {\n inputProps.min = this.minDate;\n }\n if (this.helperText !== undefined) {\n inputProps.helperText = this.helperText;\n }\n if (this.hideHelperText !== false) {\n inputProps.hideHelperText = this.hideHelperText;\n }\n if (this.inputId !== undefined) {\n inputProps.inputId = this.inputId;\n }\n if (this.name !== undefined) {\n inputProps.name = this.name;\n }\n if (this.disabled) {\n inputProps.disabled = this.disabled;\n }\n if (this.required) {\n inputProps.required = this.required;\n }\n if (this.size !== \"default\") {\n inputProps.size = this.size;\n }\n if (this.validationStatus !== \"\") {\n inputProps.validationStatus = this.validationStatus;\n }\n if (this.validationText !== \"\") {\n inputProps.validationText = this.validationText;\n }\n return inputProps;\n };\n\n render() {\n const {\n calendarOpen,\n dateInputProps,\n monthNames,\n size,\n focussedMonth,\n focussedYear,\n monthInView,\n yearInView,\n monthPickerVisible,\n yearPickerVisible,\n orderedDaysOfWeek,\n decadeView,\n minDate,\n maxDate,\n showPickerClearButton,\n showPickerTodayButton,\n dialogDescription,\n } = this;\n\n let monthButtonText = \"\";\n if (monthPickerVisible) {\n 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.`;\n } else {\n monthButtonText = `Press Enter or Space to open month picker view or use the arrow keys to change month.`;\n }\n\n let yearButtonText = \"\";\n if (yearPickerVisible) {\n 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.`;\n } else {\n yearButtonText = `Press Enter or Space to open year picker view or use the arrow keys to change the selected year.`;\n }\n\n const dialogLabel = \"choose date\";\n\n const monthLabel =\n monthNames && monthNames[monthInView]\n ? monthNames[monthInView]\n : \"Open month picker\";\n const yearLabel = this.yearInView ? this.yearInView : \"Open year picker\";\n\n let minDay = minDate;\n if (this.disablePast) {\n const yesterday = new Date(minDate);\n yesterday.setDate(minDate.getDate() - 1);\n minDay = yesterday;\n }\n\n return (\n <Host onKeyDown={this.keyDownHandler} class={size}>\n <div class=\"date-input-container\">\n <ic-date-input\n ref={(el) => (this.inputEl = el)}\n {...dateInputProps}\n ></ic-date-input>\n </div>\n {calendarOpen && (\n <div>\n <span id=\"dialog-description\" class=\"sr-only\">\n {dialogDescription}\n </span>\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={dialogLabel}\n aria-describedBy=\"dialog-description\"\n class={{\n \"calendar-container\": true,\n above: this.showPickerAbove,\n }}\n onMouseDown={this.handleCalendarMouseDown}\n onClick={this.handleCalendarClick}\n >\n <span\n ref={(el) => (this.liveRegionEl = el)}\n id=\"live-region\"\n aria-live=\"assertive\"\n class=\"sr-only\"\n ></span>\n <div\n class={{\n \"month-year-nav-container\": true,\n }}\n >\n <div class=\"month-year-nav\">\n {this.previousMonthButton()}\n <span id=\"select-month-hint\" aria-hidden=\"true\">\n {monthButtonText}\n </span>\n <ic-button\n ref={(el: HTMLIcButtonElement) => (this.monthButtonEl = el)}\n size={size}\n class=\"month-picker-button\"\n aria-haspopup=\"menu\"\n aria-expanded={monthPickerVisible ? \"true\" : \"false\"}\n full-width=\"true\"\n variant=\"tertiary\"\n aria-label={monthLabel}\n aria-describedby=\"select-month-hint\"\n onKeyDown={this.monthButtonKeyDownHandler}\n onClick={this.monthButtonClickHandler}\n >\n {monthNames[monthInView]}\n </ic-button>\n {this.nextMonthButton()}\n </div>\n <div class=\"month-year-nav\">\n {this.previousYearButton()}\n <span id=\"select-year-hint\" aria-hidden=\"true\">\n {yearButtonText}\n </span>\n <ic-button\n ref={(el: HTMLIcButtonElement) => (this.yearButtonEl = el)}\n size={size}\n class=\"year-picker-button\"\n aria-haspopup=\"menu\"\n aria-expanded={yearPickerVisible ? \"true\" : \"false\"}\n full-width=\"true\"\n variant=\"tertiary\"\n aria-label={yearLabel}\n aria-describedby=\"select-year-hint\"\n onKeyDown={this.yearButtonKeyDownHandler}\n onClick={this.yearButtonClickHandler}\n >\n {this.yearInView}\n </ic-button>\n {this.nextYearButton()}\n </div>\n </div>\n {!(monthPickerVisible || yearPickerVisible) && (\n <div\n class={{\n calendar: true,\n hidden: monthPickerVisible || yearPickerVisible,\n }}\n onKeyDown={this.handleCalendarKeyDown}\n >\n <div class=\"weekdays\" aria-hidden=\"true\">\n {orderedDaysOfWeek.map((dayName) => {\n const header =\n size === \"small\" ? dayName.charAt(0) : dayName;\n return (\n <div class=\"calendar-day-header\">\n <ic-typography variant=\"caption\">\n {header}\n </ic-typography>\n </div>\n );\n })}\n </div>\n\n <div class=\"calendar-days-container\">\n {this.currMonthView.map((day) => (\n <DayButton\n day={day}\n disableDay={this.disableDays.includes(\n Number(day.getDay())\n )}\n today={dateMatches(day, this.today)}\n selected={dateMatches(day, this.selectedDate)}\n focussed={dateMatches(day, this.focussedDate)}\n inRange={dateInRange(day, minDay, maxDate)}\n monthInView={monthInView}\n onSelectDay={this.handleSelectDay}\n focussedDayRef={this.setFocussedDayEl}\n onFocusDay={this.onDayButtonFocusHandler}\n onBlurDay={this.onDayButtonBlurHandler}\n showDaysOutsideMonth={this.showDaysOutsideMonth}\n ></DayButton>\n ))}\n </div>\n </div>\n )}\n <div\n class={{\n \"month-picker-container\": true,\n hidden: !monthPickerVisible,\n }}\n >\n {monthPickerVisible && (\n <MonthPicker\n size={size}\n onSelectMonth={this.handleSelectMonth}\n monthInView={monthInView}\n focussedMonth={focussedMonth}\n onKeyDown={this.monthPickerKeyDownHandler}\n focussedMonthRef={this.setFocussedMonthEl}\n minDate={minDate}\n maxDate={maxDate}\n yearInView={yearInView}\n ></MonthPicker>\n )}\n </div>\n <div\n class={{\n \"year-picker-container\": true,\n hidden: !yearPickerVisible,\n }}\n >\n {yearPickerVisible && (\n <YearPicker\n decadeView={decadeView}\n size={size}\n focussedYear={focussedYear}\n onSelectYear={this.handleSelectYear}\n onKeyDown={this.yearPickerKeyDownHandler}\n onFocusYear={this.onYearButtonFocusHandler}\n onBlurYear={this.onYearButtonBlurHandler}\n yearInView={yearInView}\n minDate={minDate}\n maxDate={maxDate}\n focussedYearRef={this.setFocussedYearEl}\n ></YearPicker>\n )}\n </div>\n <div\n class={{\n \"bottom-buttons\": true,\n \"no-today\": !showPickerTodayButton,\n }}\n >\n {showPickerTodayButton && (\n <ic-button\n id=\"today-button\"\n variant=\"tertiary\"\n ref={(el: HTMLIcButtonElement) => (this.todayButtonEl = el)}\n size={size}\n aria-label=\"Navigate to current date\"\n onClick={this.todayButtonClickHandler}\n onKeyDown={this.todayButtonKeyDownHandler}\n disabled={this.isCurrentMonth()}\n >\n Go to today\n </ic-button>\n )}\n {showPickerClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"clear selected date\"\n ref={(el: HTMLIcButtonElement) => (this.clearButtonEl = el)}\n variant=\"tertiary\"\n size={size}\n onClick={this.clearButtonClickHandler}\n onKeyDown={this.clearButtonKeyDownHandler}\n disabled={\n this.value === \"\" ||\n this.value === null ||\n this.value === undefined\n }\n >\n Clear\n </ic-button>\n )}\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icToggleButtonCss","ToggleButton","constructor","hostRef","this","hostMutationObserver","hostMutationCallback","forceUpdate","handleFocus","ev","stopImmediatePropagation","handleClick","loading","disabled","icToggleChecked","emit","checked","toggleChecked","accessibleLabel","undefined","appearance","fullWidth","iconPlacement","label","size","variant","componentWillLoad","removeDisabledFalse","el","parentIconPlacement","parentElement","iconPosition","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","MutationObserver","observe","childList","disconnectedCallback","disconnect","handleHostClick","e","render","h","Host","class","onFocus","toString","onClick","title","isSlotUsed","name","slot","delegatesFocus"],"sources":["../web-components/dist/collection/components/ic-toggle-button/ic-toggle-button.css?tag=ic-toggle-button&encapsulation=shadow","../web-components/dist/collection/components/ic-toggle-button/ic-toggle-button.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/* VARIABLES FOR IC-TOGGLE-BUTTON-GROUP */\n:host {\n --button-border: var(\n --toggle-button-border,\n var(--ic-border-width) solid var(--ic-action-default)\n );\n}\n\n:host(.dark) {\n --button-border: var(\n --toggle-button-border,\n var(--ic-border-width) solid var(--ic-action-dark)\n );\n}\n\n:host(.light) {\n --button-border: var(\n --toggle-button-border,\n var(--ic-border-width) solid var(--ic-action-light)\n );\n}\n\n:host(.disabled) {\n --button-border: var(--toggle-button-border, var(--ic-border-disabled));\n}\n\n:host(.expand-toggle-group-child) ::part(button) {\n width: 100%;\n min-height: inherit;\n white-space: inherit;\n height: inherit;\n}\n\n:host ic-button {\n --icon-width: var(--ic-space-lg);\n --icon-height: var(--ic-space-lg);\n}\n\n:host(.expand-toggle-group-child) ic-button {\n min-width: 100%;\n min-height: 100%;\n white-space: normal;\n height: 100%;\n}\n\n:host(.expand-toggle-group-child) ::part(button):focus,\n:host(.expand-toggle-group-child.checked) ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-default),\n var(--ic-border-focus);\n}\n\n:host(.expand-toggle-group-child.light) ::part(button):focus,\n:host(.expand-toggle-group-child.dark) ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-dark),\n var(--ic-border-focus);\n}\n\n:host(:focus) {\n z-index: 1;\n}\n\n:host ::part(button) {\n border: var(--button-border);\n}\n\n:host(.checked) ::part(button) {\n background-color: var(--ic-action-default);\n color: var(--ic-architectural-white);\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-architectural-white);\n}\n\n:host(.checked) ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-architectural-white),\n var(--ic-border-focus);\n}\n\n:host(.checked) ::part(button):hover {\n background-color: var(--button-default-hover);\n}\n\n:host(.checked) ::part(button):active,\n:host(.icon.checked) ::part(button):active {\n background-color: var(--ic-action-default-active);\n}\n\n:host(.dark.checked) ::part(button) {\n background-color: var(--ic-action-dark);\n}\n\n:host(.dark.checked) ::part(button):hover {\n background-color: var(--ic-action-dark-hover);\n}\n\n:host(.dark.checked) ::part(button):active,\n:host(.icon.dark.checked) ::part(button):active {\n background-color: var(--ic-action-dark-active);\n}\n\n:host(.light.checked) ::part(button) {\n background-color: var(--ic-action-light);\n color: var(--ic-color-primary-text);\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-architectural-black);\n}\n\n:host(.light.checked) ::part(button):hover {\n background-color: var(--ic-action-light-hover);\n}\n\n:host(.light.checked) ::part(button):active,\n:host(.icon.light.checked) ::part(button):active {\n background-color: var(--ic-action-light-active);\n}\n\n:host(.light.checked) ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-architectural-black),\n var(--ic-border-focus);\n}\n\n:host(.disabled) ::part(button),\n:host(.icon.disabled) ::part(button) {\n border: var(--button-border);\n}\n\n:host(.disabled.checked) ::part(button),\n:host(.icon.disabled.checked) ::part(button) {\n background-color: transparent;\n}\n\n:host(.disabled.checked) ::part(button),\n:host(.icon.disabled.checked) ::part(button)::before {\n background-image: radial-gradient(var(--ic-architectural-400) 95%, white 20%);\n background-repeat: no-repeat;\n}\n\n:host(.icon) ::part(button) {\n border: var(--button-border);\n height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n width: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.icon) ::part(button):active {\n background-color: var(--ic-action-default-bg-active);\n}\n\n:host(.icon.dark) ::part(button):active {\n background-color: var(--ic-action-dark-bg-active);\n}\n\n:host(.icon.light) ::part(button):active {\n background-color: var(--ic-action-light-bg-active);\n}\n\n:host(.icon.small) ::part(button) {\n height: var(--ic-space-xl);\n width: var(--ic-space-xl);\n}\n\n:host(.icon.large) ::part(button) {\n height: var(--ic-space-xxl);\n width: var(--ic-space-xxl);\n}\n\n:host(.checked.loading) ::part(button) {\n background-color: var(--button-default-active);\n}\n\n:host(.loading) ::part(ic-loading-container) {\n --inner-color: var(--ic-architectural-white);\n}\n\n:host(.checked.loading.light) ::part(button) {\n background-color: var(--ic-action-light-active);\n}\n\n:host(.checked.loading.dark) ::part(button) {\n background-color: var(--ic-action-dark-active);\n}\n\n@media (forced-colors: active) {\n :host(.checked) ::part(button),\n :host(.checked) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.checked.light) ::part(button),\n :host(.checked.light) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.checked.dark) ::part(button),\n :host(.checked.dark) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.checked.disabled) ::part(button) {\n background-color: GrayText;\n }\n}\n","import { Host, h, forceUpdate, } from \"@stencil/core\";\nimport { isSlotUsed, onComponentRequiredPropUndefined, removeDisabledFalse, } from \"../../utils/helpers\";\n/**\n * @slot icon - Content will be displayed alongside the toggle button label.\n * @slot badge - Badge component overlaying the top right of the toggle button.\n */\nexport class ToggleButton {\n constructor() {\n this.hostMutationObserver = null;\n this.hostMutationCallback = () => {\n forceUpdate(this);\n };\n this.handleFocus = (ev) => {\n ev.stopImmediatePropagation();\n };\n this.handleClick = () => {\n !this.loading &&\n !this.disabled &&\n this.icToggleChecked.emit({\n checked: this.toggleChecked,\n });\n };\n this.accessibleLabel = undefined;\n this.appearance = \"default\";\n this.disabled = false;\n this.fullWidth = false;\n this.iconPlacement = undefined;\n this.label = undefined;\n this.loading = false;\n this.size = \"default\";\n this.toggleChecked = false;\n this.variant = \"default\";\n }\n componentWillLoad() {\n removeDisabledFalse(this.disabled, this.el);\n const parentIconPlacement = this.el.parentElement.iconPlacement;\n this.iconPosition = this.iconPlacement || parentIconPlacement;\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([\n {\n prop: this.variant === \"icon\" ? this.accessibleLabel : this.label,\n propName: this.variant === \"icon\" ? \"accessible-label\" : \"label\",\n },\n ], \"Toggle button\");\n if (typeof MutationObserver !== \"undefined\") {\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n }\n disconnectedCallback() {\n if (this.hostMutationObserver !== null &&\n this.hostMutationObserver !== undefined) {\n this.hostMutationObserver.disconnect();\n }\n }\n handleHostClick(e) {\n if (this.disabled) {\n e.stopImmediatePropagation();\n }\n else if (!this.loading) {\n this.toggleChecked = !this.toggleChecked;\n }\n }\n render() {\n return (h(Host, { class: {\n [\"disabled\"]: this.disabled,\n [\"checked\"]: this.toggleChecked,\n [`${this.appearance}`]: true,\n [\"icon\"]: this.variant === \"icon\",\n [`${this.size}`]: true,\n [\"loading\"]: this.loading,\n }, onFocus: this.handleFocus }, h(\"ic-button\", { \"aria-pressed\": this.toggleChecked.toString(), variant: this.variant === \"icon\" ? \"icon\" : \"secondary\", onClick: this.handleClick, title: this.accessibleLabel, \"aria-label\": `${this.accessibleLabel ? this.accessibleLabel : this.label}, ${this.toggleChecked ? \"ticked\" : \"unticked\"}`, disabled: this.disabled, appearance: this.appearance, size: this.size, fullWidth: this.fullWidth, loading: this.loading, \"aria-disabled\": `${this.disabled}` }, this.variant !== \"icon\" && this.label, h(\"slot\", null), isSlotUsed(this.el, \"icon\") && (h(\"slot\", { name: \"icon\", slot: `${this.iconPosition ? `${this.iconPosition}-icon` : \"icon\"}` })), isSlotUsed(this.el, \"badge\") && (h(\"slot\", { name: \"badge\", slot: \"badge\" })))));\n }\n static get is() { return \"ic-toggle-button\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-toggle-button.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-toggle-button.css\"]\n };\n }\n static get properties() {\n return {\n \"accessibleLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The accessible label that will be applied to the toggle button. This is required for the icon variant of toggle buttons.\"\n },\n \"attribute\": \"accessible-label\",\n \"reflect\": false\n },\n \"appearance\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeForeground\",\n \"resolved\": \"\\\"dark\\\" | \\\"default\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeForeground\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeForeground\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The appearance of the toggle button.\"\n },\n \"attribute\": \"appearance\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the toggle button will be in disabled state.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the toggle button will fill the width of the container.\"\n },\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"iconPlacement\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"left\\\" | \\\"right\\\" | \\\"top\\\"\",\n \"resolved\": \"\\\"left\\\" | \\\"right\\\" | \\\"top\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The placement of the icon in relation to the toggle button label.\"\n },\n \"attribute\": \"icon-placement\",\n \"reflect\": false\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label to display in the toggle button. This is required for the default variant of toggle buttons.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"loading\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the toggle button will be in loading state.\"\n },\n \"attribute\": \"loading\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"default\\\" | \\\"large\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the toggle button to be displayed.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"toggleChecked\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the toggle button will be in a checked state.\"\n },\n \"attribute\": \"toggle-checked\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"variant\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"default\\\" | \\\"icon\\\"\",\n \"resolved\": \"\\\"default\\\" | \\\"icon\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The variant of the toggle button.\"\n },\n \"attribute\": \"variant\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"default\\\"\"\n }\n };\n }\n static get events() {\n return [{\n \"method\": \"icToggleChecked\",\n \"name\": \"icToggleChecked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the user clicks a toggle button.\"\n },\n \"complexType\": {\n \"original\": \"{\\n checked: boolean;\\n }\",\n \"resolved\": \"{ checked: boolean; }\",\n \"references\": {}\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"click\",\n \"method\": \"handleHostClick\",\n \"target\": undefined,\n \"capture\": true,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-toggle-button.js.map\n"],"mappings":"iJAAA,MAAMA,EAAoB,irN,MCMbC,EAAY,MACrB,WAAAC,CAAAC,G,2DACIC,KAAKC,qBAAuB,KAC5BD,KAAKE,qBAAuB,KACxBC,EAAYH,KAAK,EAErBA,KAAKI,YAAeC,IAChBA,EAAGC,0BAA0B,EAEjCN,KAAKO,YAAc,MACdP,KAAKQ,UACDR,KAAKS,UACNT,KAAKU,gBAAgBC,KAAK,CACtBC,QAASZ,KAAKa,eAChB,EAEVb,KAAKc,gBAAkBC,UACvBf,KAAKgB,WAAa,UAClBhB,KAAKS,SAAW,MAChBT,KAAKiB,UAAY,MACjBjB,KAAKkB,cAAgBH,UACrBf,KAAKmB,MAAQJ,UACbf,KAAKQ,QAAU,MACfR,KAAKoB,KAAO,UACZpB,KAAKa,cAAgB,MACrBb,KAAKqB,QAAU,S,CAEnB,iBAAAC,GACIC,EAAoBvB,KAAKS,SAAUT,KAAKwB,IACxC,MAAMC,EAAsBzB,KAAKwB,GAAGE,cAAcR,cAClDlB,KAAK2B,aAAe3B,KAAKkB,eAAiBO,C,CAE9C,gBAAAG,GACIC,EAAiC,CAC7B,CACIC,KAAM9B,KAAKqB,UAAY,OAASrB,KAAKc,gBAAkBd,KAAKmB,MAC5DY,SAAU/B,KAAKqB,UAAY,OAAS,mBAAqB,UAE9D,iBACH,UAAWW,mBAAqB,YAAa,CACzChC,KAAKC,qBAAuB,IAAI+B,iBAAiBhC,KAAKE,sBACtDF,KAAKC,qBAAqBgC,QAAQjC,KAAKwB,GAAI,CACvCU,UAAW,M,EAIvB,oBAAAC,GACI,GAAInC,KAAKC,uBAAyB,MAC9BD,KAAKC,uBAAyBc,UAAW,CACzCf,KAAKC,qBAAqBmC,Y,EAGlC,eAAAC,CAAgBC,GACZ,GAAItC,KAAKS,SAAU,CACf6B,EAAEhC,0B,MAED,IAAKN,KAAKQ,QAAS,CACpBR,KAAKa,eAAiBb,KAAKa,a,EAGnC,MAAA0B,GACI,OAAQC,EAAEC,EAAM,CAAEC,MAAO,CACjB,CAAC,YAAa1C,KAAKS,SACnB,CAAC,WAAYT,KAAKa,cAClB,CAAC,GAAGb,KAAKgB,cAAe,KACxB,CAAC,QAAShB,KAAKqB,UAAY,OAC3B,CAAC,GAAGrB,KAAKoB,QAAS,KAClB,CAAC,WAAYpB,KAAKQ,SACnBmC,QAAS3C,KAAKI,aAAeoC,EAAE,YAAa,CAAE,eAAgBxC,KAAKa,cAAc+B,WAAYvB,QAASrB,KAAKqB,UAAY,OAAS,OAAS,YAAawB,QAAS7C,KAAKO,YAAauC,MAAO9C,KAAKc,gBAAiB,aAAc,GAAGd,KAAKc,gBAAkBd,KAAKc,gBAAkBd,KAAKmB,UAAUnB,KAAKa,cAAgB,SAAW,aAAcJ,SAAUT,KAAKS,SAAUO,WAAYhB,KAAKgB,WAAYI,KAAMpB,KAAKoB,KAAMH,UAAWjB,KAAKiB,UAAWT,QAASR,KAAKQ,QAAS,gBAAiB,GAAGR,KAAKS,YAAcT,KAAKqB,UAAY,QAAUrB,KAAKmB,MAAOqB,EAAE,OAAQ,MAAOO,EAAW/C,KAAKwB,GAAI,SAAYgB,EAAE,OAAQ,CAAEQ,KAAM,OAAQC,KAAM,GAAGjD,KAAK2B,aAAe,GAAG3B,KAAK2B,oBAAsB,WAAcoB,EAAW/C,KAAKwB,GAAI,UAAagB,EAAE,OAAQ,CAAEQ,KAAM,QAASC,KAAM,W,CAIlvB,yBAAWC,GAAmB,OAAO,IAAK,C"}
@@ -1,2 +0,0 @@
1
- import{r as i,f as t,h as e,H as n,g as r}from"./p-8455d1bb.js";import{a}from"./p-fd186591.js";import{j as o,v as c,Q as s,a as l,R as d,S as p,T as u,U as h}from"./p-8128572e.js";const m="ic-input-component-container{display:flex;border:var(--ic-border-width) solid\n var(--border-color, var(--ic-architectural-400));border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-slow);height:2.5rem;width:var(--input-width, 20rem);padding:var(--ic-space-1px);background-color:var(--ic-architectural-white);box-sizing:border-box;fill:var(--ic-architectural-400);outline:none}ic-input-component-container.fullwidth{width:100%}ic-input-component-container.disabled,ic-input-component-container.disabled:hover{border:var(--ic-border-width) dashed var(--ic-architectural-200)}ic-input-component-container.readonly,ic-input-component-container.readonly:hover{border:none;padding:0}ic-input-component-container.error{border:var(--ic-error-border-default);padding:0}ic-input-component-container.error:hover{border:var(--ic-error-border-hover)}ic-input-component-container.error:focus-within{border:var(--ic-error-border-pressed)}ic-input-component-container.warning{border:var(--ic-warning-border-default);padding:0}ic-input-component-container.warning:hover{border:var(--ic-warning-border-hover)}ic-input-component-container.warning:focus-within{border:var(--ic-warning-border-pressed)}ic-input-component-container.success{border:var(--ic-success-border-default);padding:0}ic-input-component-container.success:hover{border:var(--ic-success-border-hover)}ic-input-component-container.success:focus-within{border:var(--ic-success-border-pressed)}ic-input-component-container.small{height:var(--ic-space-xl)}ic-input-component-container.large{height:var(--ic-space-xxl)}ic-input-component-container.multiline{height:auto}ic-input-component-container .icon-container{margin-top:var(--ic-space-xxs);margin-left:0.438rem;display:flex;align-items:center}ic-input-component-container.multiline .icon-container,ic-input-component-container.multiline.small .icon-container{margin-top:0.375rem;display:block}ic-input-component-container.readonly .icon-container{margin-left:-0.313rem}ic-input-component-container.disabled ::-moz-placeholder{display:none}ic-input-component-container.disabled ::placeholder{display:none}ic-input-component-container .inline-success{margin:var(--ic-space-xs) 0.375rem;display:flex;align-items:center}ic-input-component-container.dark:hover{--border-color:var(--ic-architectural-400)}ic-input-component-container .inline-success>svg{fill:var(--ic-status-success);height:1.25rem;width:1.25rem}ic-input-component-container:hover{border:var(--ic-border-hover);color:var(--ic-action-dark-hover)}ic-input-component-container:focus{border:var(--ic-border-pressed)}.focus-indicator{display:flex;width:100%;margin:-0.125rem;padding:0.125rem;border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-fast)}.focus-indicator:focus-within,.focus-indicator-enabled{box-shadow:var(--ic-border-focus)}.focus-indicator.dark:focus-within{box-shadow:var(--ic-border-focus)}@media (forced-colors: active){ic-input-component-container,.focus-indicator{transition:none}ic-input-component-container:focus-within{border:var(--ic-border-width) solid Highlight;outline:0.125rem solid Highlight}ic-input-component-container.disabled,ic-input-component-container.disabled:hover{border:var(--ic-border-width) dashed GrayText}}";const v=class{constructor(e){i(this,e);this.hostMutationCallback=i=>{if(i.some((({type:i,addedNodes:t,removedNodes:e})=>i==="childList"?o(t,e,"left-icon"):false))){t(this)}};this.appearance="default";this.dark=false;this.disabled=false;this.fullWidth=false;this.multiLine=false;this.readonly=false;this.size="default";this.small=false;this.validationInline=false;this.validationStatus=""}componentDidLoad(){this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{childList:true})}render(){const{size:i,small:t,validationStatus:r,disabled:o,readonly:l,multiLine:d,fullWidth:p,dark:u,appearance:h,validationInline:m}=this;const v=this.validationStatus!==""&&!this.disabled&&!this.readonly?true:false;return e(n,{class:{small:t,[`${i}`]:true,[r]:v,disabled:o,readonly:l,["multiline"]:d,["fullwidth"]:p,["dark"]:u||h==="dark"},"aria-disabled":o&&`${o}`},e("div",{class:{"focus-indicator":true,dark:u||h==="dark"}},c(this.el,"left-icon")&&e("div",{class:{["icon-container"]:true}},e("slot",{name:"left-icon"})),e("slot",null),m&&r===a.Success&&e("span",{class:{["inline-success"]:true},innerHTML:s})))}get el(){return r(this)}};v.style=m;const b="ic-input-container .component-container{display:flex;flex-direction:column}";const f=class{constructor(t){i(this,t);this.disabled=false;this.readonly=false}render(){return e(n,null,e("div",{class:{["component-container"]:true,["disabled"]:this.disabled,["readonly"]:this.readonly}},e("slot",null)))}};f.style=b;const g="ic-input-label{margin-bottom:var(--ic-space-xs)}ic-input-label.with-helper{margin-bottom:var(--ic-space-xxxs)}ic-input-label.readonly{color:var(--ic-color-tertiary-text)}ic-input-label .helpertext{margin-top:var(--ic-space-xxxs);padding-bottom:var(--ic-input-label-helpertext-padding, 0)}ic-input-label .helpertext-normal{color:var(--ic-color-secondary-text)}ic-input-label .helpertext-readonly{color:var(--ic-color-tertiary-text)}ic-input-label .readonly-label{color:var(--ic-color-secondary-text)}ic-input-label .error-label{color:var(--ic-status-error)}ic-input-label .dark{color:var(--ic-architectural-white)}";const x=class{constructor(t){i(this,t);this.appearance="default";this.dark=false;this.disabled=false;this.error=false;this.for=undefined;this.helperText="";this.hideLabel=false;this.label=undefined;this.readonly=false;this.required=false}componentDidLoad(){l([{prop:this.label,propName:"label"}],"Input Label")}render(){const{disabled:i,readonly:t,label:r,required:a,helperText:o,hideLabel:c,error:s,dark:l,appearance:p}=this;const u=a?r+" *":r;const h=t?`${u}`:e("label",{htmlFor:this.for},u);const m=d(this.for);return e(n,{class:{["disabled"]:i,["readonly"]:t,["with-helper"]:o!==""}},!c&&e("ic-typography",{variant:"label",class:{["readonly-label"]:t,["error-label"]:s&&!(t||i),["dark"]:l||p==="dark"}},h),o!==""&&e("ic-typography",{variant:"caption",class:{["helpertext"]:true,["helpertext-normal"]:!i&&!t,["helpertext-readonly"]:t}},e("span",{id:m},o)))}};x.style=g;const w="ic-input-validation{width:var(--input-width, 20rem);margin-top:var(--ic-space-xs);display:flex}ic-input-validation.fullwidth{width:100%}ic-input-validation span.status-icon{padding-right:var(--ic-space-xxs)}ic-input-validation span.status-icon>svg{height:1.25rem;width:1.25rem}ic-input-validation span.icon-success>svg{fill:var(--ic-status-success)}ic-input-validation span.icon-error>svg{fill:var(--ic-status-error)}ic-input-validation span.icon-warning>svg{fill:var(--ic-status-warning)}ic-input-validation .statustext{flex-grow:1}";const y={[a.Warning]:u,[a.Error]:h,[a.Success]:s};const k=class{constructor(t){i(this,t);this.ariaLiveMode="polite";this.for=undefined;this.fullWidth=false;this.message=undefined;this.status=""}componentDidLoad(){l([{prop:this.message,propName:"message"}],"Input Validation")}render(){const i=this.status!==""?y[this.status]:"";const t=p(this.for);return e(n,{class:{[this.status]:this.status!=="",["fullwidth"]:this.fullWidth}},i!==""&&e("span",{class:{["status-icon"]:true,[`icon-${this.status}`]:true},innerHTML:i}),e("ic-typography",{variant:"caption",class:"statustext"},e("span",{"aria-live":this.ariaLiveMode,id:t},this.message)),e("slot",{name:"validation-message-adornment"}))}get el(){return r(this)}};k.style=w;export{v as ic_input_component_container,f as ic_input_container,x as ic_input_label,k as ic_input_validation};
2
- //# sourceMappingURL=p-5334bc96.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icInputComponentContainerCss","InputComponentContainer","constructor","hostRef","this","hostMutationCallback","mutationList","some","type","addedNodes","removedNodes","checkSlotInChildMutations","forceUpdate","appearance","dark","disabled","fullWidth","multiLine","readonly","size","small","validationInline","validationStatus","componentDidLoad","hostMutationObserver","MutationObserver","observe","el","childList","render","hasValidationStatus","h","Host","class","slotHasContent","name","IcInformationStatus","Success","innerHTML","successIcon","icInputContainerCss","InputContainer","icInputLabelCss","InputLabel","error","for","undefined","helperText","hideLabel","label","required","onComponentRequiredPropUndefined","prop","propName","labelText","labelContent","htmlFor","id","getInputHelperTextID","variant","icInputValidationCss","icon","Warning","warningIcon","Error","errorIcon","InputValidation","ariaLiveMode","message","status","displayIcon","getInputValidationTextID"],"sources":["../web-components/dist/collection/components/ic-input-component-container/ic-input-component-container.css?tag=ic-input-component-container","../web-components/dist/collection/components/ic-input-component-container/ic-input-component-container.js","../web-components/dist/collection/components/ic-input-container/ic-input-container.css?tag=ic-input-container","../web-components/dist/collection/components/ic-input-container/ic-input-container.js","../web-components/dist/collection/components/ic-input-label/ic-input-label.css?tag=ic-input-label","../web-components/dist/collection/components/ic-input-label/ic-input-label.js","../web-components/dist/collection/components/ic-input-validation/ic-input-validation.css?tag=ic-input-validation","../web-components/dist/collection/components/ic-input-validation/ic-input-validation.js"],"sourcesContent":["ic-input-component-container {\n /**\n * @prop --border-color: Border colour of the input component container\n */\n\n display: flex;\n border: var(--ic-border-width) solid\n var(--border-color, var(--ic-architectural-400));\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-slow);\n height: 2.5rem;\n width: var(--input-width, 20rem);\n padding: var(--ic-space-1px);\n background-color: var(--ic-architectural-white);\n box-sizing: border-box;\n fill: var(--ic-architectural-400);\n outline: none;\n}\n\nic-input-component-container.fullwidth {\n width: 100%;\n}\n\nic-input-component-container.disabled,\nic-input-component-container.disabled:hover {\n border: var(--ic-border-width) dashed var(--ic-architectural-200);\n}\n\nic-input-component-container.readonly,\nic-input-component-container.readonly:hover {\n border: none;\n padding: 0;\n}\n\nic-input-component-container.error {\n border: var(--ic-error-border-default);\n padding: 0;\n}\n\nic-input-component-container.error:hover {\n border: var(--ic-error-border-hover);\n}\n\nic-input-component-container.error:focus-within {\n border: var(--ic-error-border-pressed);\n}\n\nic-input-component-container.warning {\n border: var(--ic-warning-border-default);\n padding: 0;\n}\n\nic-input-component-container.warning:hover {\n border: var(--ic-warning-border-hover);\n}\n\nic-input-component-container.warning:focus-within {\n border: var(--ic-warning-border-pressed);\n}\n\nic-input-component-container.success {\n border: var(--ic-success-border-default);\n padding: 0;\n}\n\nic-input-component-container.success:hover {\n border: var(--ic-success-border-hover);\n}\n\nic-input-component-container.success:focus-within {\n border: var(--ic-success-border-pressed);\n}\n\nic-input-component-container.small {\n height: var(--ic-space-xl);\n}\n\nic-input-component-container.large {\n height: var(--ic-space-xxl);\n}\n\nic-input-component-container.multiline {\n height: auto;\n}\n\nic-input-component-container .icon-container {\n margin-top: var(--ic-space-xxs);\n margin-left: 0.438rem;\n display: flex;\n align-items: center;\n}\n\nic-input-component-container.multiline .icon-container,\nic-input-component-container.multiline.small .icon-container {\n margin-top: 0.375rem;\n display: block;\n}\n\nic-input-component-container.readonly .icon-container {\n margin-left: -0.313rem;\n}\n\nic-input-component-container.disabled ::-moz-placeholder {\n display: none;\n}\n\nic-input-component-container.disabled ::placeholder {\n display: none;\n}\n\nic-input-component-container .inline-success {\n margin: var(--ic-space-xs) 0.375rem;\n display: flex;\n align-items: center;\n}\n\nic-input-component-container.dark:hover {\n --border-color: var(--ic-architectural-400);\n}\n\nic-input-component-container .inline-success > svg {\n fill: var(--ic-status-success);\n height: 1.25rem;\n width: 1.25rem;\n}\n\nic-input-component-container:hover {\n border: var(--ic-border-hover);\n color: var(--ic-action-dark-hover);\n}\n\nic-input-component-container:focus {\n border: var(--ic-border-pressed);\n}\n\n.focus-indicator {\n display: flex;\n width: 100%;\n margin: -0.125rem;\n padding: 0.125rem;\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-fast);\n}\n\n.focus-indicator:focus-within,\n.focus-indicator-enabled {\n box-shadow: var(--ic-border-focus);\n}\n\n.focus-indicator.dark:focus-within {\n box-shadow: var(--ic-border-focus);\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n ic-input-component-container,\n .focus-indicator {\n transition: none;\n }\n\n ic-input-component-container:focus-within {\n border: var(--ic-border-width) solid Highlight;\n outline: 0.125rem solid Highlight;\n }\n\n ic-input-component-container.disabled,\n ic-input-component-container.disabled:hover {\n border: var(--ic-border-width) dashed GrayText;\n }\n}\n","import { Host, forceUpdate, h } from \"@stencil/core\";\nimport { IcInformationStatus, } from \"../../utils/types\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport { checkSlotInChildMutations, slotHasContent } from \"../../utils/helpers\";\n/**\n * @slot left-icon - Content will be placed to the left of the input.\n */\nexport class InputComponentContainer {\n constructor() {\n this.hostMutationCallback = (mutationList) => {\n if (mutationList.some(({ type, addedNodes, removedNodes }) => type === \"childList\"\n ? checkSlotInChildMutations(addedNodes, removedNodes, \"left-icon\")\n : false)) {\n forceUpdate(this);\n }\n };\n this.appearance = \"default\";\n this.dark = false;\n this.disabled = false;\n this.fullWidth = false;\n this.multiLine = false;\n this.readonly = false;\n this.size = \"default\";\n this.small = false;\n this.validationInline = false;\n this.validationStatus = \"\";\n }\n componentDidLoad() {\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, { childList: true });\n }\n render() {\n const { size, small, validationStatus, disabled, readonly, multiLine, fullWidth, dark, appearance, validationInline, } = this;\n const hasValidationStatus = this.validationStatus !== \"\" && !this.disabled && !this.readonly\n ? true\n : false;\n return (h(Host, { class: {\n small: small,\n [`${size}`]: true,\n [validationStatus]: hasValidationStatus,\n disabled: disabled,\n readonly: readonly,\n [\"multiline\"]: multiLine,\n [\"fullwidth\"]: fullWidth,\n [\"dark\"]: dark || appearance === \"dark\",\n }, \"aria-disabled\": disabled && `${disabled}` }, h(\"div\", { class: {\n \"focus-indicator\": true,\n dark: dark || appearance === \"dark\",\n } }, slotHasContent(this.el, \"left-icon\") && (h(\"div\", { class: {\n [\"icon-container\"]: true,\n } }, h(\"slot\", { name: \"left-icon\" }))), h(\"slot\", null), validationInline &&\n validationStatus === IcInformationStatus.Success && (h(\"span\", { class: {\n [\"inline-success\"]: true,\n }, innerHTML: successIcon })))));\n }\n static get is() { return \"ic-input-component-container\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-input-component-container.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-input-component-container.css\"]\n };\n }\n static get properties() {\n return {\n \"appearance\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"dark\\\" | \\\"default\\\"\",\n \"resolved\": \"\\\"dark\\\" | \\\"default\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The appearance of the input component container.\"\n },\n \"attribute\": \"appearance\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"dark\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Set prop `appearance` to \\\"dark\\\" instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"dark\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input component container will fill the width of the container it is in.\"\n },\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"multiLine\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input component container will allow for multiple lines.\"\n },\n \"attribute\": \"multi-line\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"readonly\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the readonly state will be set.\"\n },\n \"attribute\": \"readonly\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"default\\\" | \\\"large\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the input component container component.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"small\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Set prop `size` to \\\"small\\\" instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"small\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"validationInline\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the validation will display inline.\"\n },\n \"attribute\": \"validation-inline\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"validationStatus\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcInformationStatusOrEmpty\",\n \"resolved\": \"\\\"\\\" | \\\"error\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {\n \"IcInformationStatusOrEmpty\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcInformationStatusOrEmpty\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation status of the input component container - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"attribute\": \"validation-status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=ic-input-component-container.js.map\n","ic-input-container .component-container {\n display: flex;\n flex-direction: column;\n}\n","import { Host, h } from \"@stencil/core\";\nexport class InputContainer {\n constructor() {\n this.disabled = false;\n this.readonly = false;\n }\n render() {\n return (h(Host, null, h(\"div\", { class: {\n [\"component-container\"]: true,\n [\"disabled\"]: this.disabled,\n [\"readonly\"]: this.readonly,\n } }, h(\"slot\", null))));\n }\n static get is() { return \"ic-input-container\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-input-container.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-input-container.css\"]\n };\n }\n static get properties() {\n return {\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"readonly\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the readonly state will be set.\"\n },\n \"attribute\": \"readonly\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n }\n };\n }\n}\n//# sourceMappingURL=ic-input-container.js.map\n","ic-input-label {\n margin-bottom: var(--ic-space-xs);\n}\n\nic-input-label.with-helper {\n margin-bottom: var(--ic-space-xxxs);\n}\n\nic-input-label.readonly {\n color: var(--ic-color-tertiary-text);\n}\n\nic-input-label .helpertext {\n margin-top: var(--ic-space-xxxs);\n padding-bottom: var(--ic-input-label-helpertext-padding, 0);\n}\n\nic-input-label .helpertext-normal {\n color: var(--ic-color-secondary-text);\n}\n\nic-input-label .helpertext-readonly {\n color: var(--ic-color-tertiary-text);\n}\n\nic-input-label .readonly-label {\n color: var(--ic-color-secondary-text);\n}\n\nic-input-label .error-label {\n color: var(--ic-status-error);\n}\n\nic-input-label .dark {\n color: var(--ic-architectural-white);\n}\n\n/* Add back in after storybook has the `color-scheme: light dark` code */\n\n/* @media (prefers-color-scheme: dark) and (not (forced-colors: active)) {\n ic-input-label,\n ic-input-label .helpertext-normal,\n ic-input-label .readonly-label,\n ic-input-label .helpertext-readonly {\n color: var(--ic-architectural-white);\n }\n} */\n","import { Host, h } from \"@stencil/core\";\nimport { getInputHelperTextID, onComponentRequiredPropUndefined, } from \"../../utils/helpers\";\nexport class InputLabel {\n constructor() {\n this.appearance = \"default\";\n this.dark = false;\n this.disabled = false;\n this.error = false;\n this.for = undefined;\n this.helperText = \"\";\n this.hideLabel = false;\n this.label = undefined;\n this.readonly = false;\n this.required = false;\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.label, propName: \"label\" }], \"Input Label\");\n }\n render() {\n const { disabled, readonly, label, required, helperText, hideLabel, error, dark, appearance, } = this;\n const labelText = required ? label + \" *\" : label;\n const labelContent = readonly ? (`${labelText}`) : (h(\"label\", { htmlFor: this.for }, labelText));\n const id = getInputHelperTextID(this.for);\n return (h(Host, { class: {\n [\"disabled\"]: disabled,\n [\"readonly\"]: readonly,\n [\"with-helper\"]: helperText !== \"\",\n } }, !hideLabel && (h(\"ic-typography\", { variant: \"label\", class: {\n [\"readonly-label\"]: readonly,\n [\"error-label\"]: error && !(readonly || disabled),\n [\"dark\"]: dark || appearance === \"dark\",\n } }, labelContent)), helperText !== \"\" && (h(\"ic-typography\", { variant: \"caption\", class: {\n [\"helpertext\"]: true,\n [\"helpertext-normal\"]: !disabled && !readonly,\n [\"helpertext-readonly\"]: readonly,\n } }, h(\"span\", { id: id }, helperText)))));\n }\n static get is() { return \"ic-input-label\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"./ic-input-label.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-input-label.css\"]\n };\n }\n static get properties() {\n return {\n \"appearance\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"dark\\\" | \\\"default\\\"\",\n \"resolved\": \"\\\"dark\\\" | \\\"default\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The appearance of the input label.\"\n },\n \"attribute\": \"appearance\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"dark\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Set prop `appearance` to \\\"dark\\\" instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"dark\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"error\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input label will display with error styling.\"\n },\n \"attribute\": \"error\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"for\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ID of the form element the label is bound to.\"\n },\n \"attribute\": \"for\",\n \"reflect\": false\n },\n \"helperText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The helper text that will be displayed.\"\n },\n \"attribute\": \"helper-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"hideLabel\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label will be visually hidden.\"\n },\n \"attribute\": \"hide-label\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text content of the label.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"readonly\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the readonly state will be set.\"\n },\n \"attribute\": \"readonly\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input label will require a value.\"\n },\n \"attribute\": \"required\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n }\n };\n }\n}\n//# sourceMappingURL=ic-input-label.js.map\n","ic-input-validation {\n width: var(--input-width, 20rem);\n margin-top: var(--ic-space-xs);\n display: flex;\n}\n\nic-input-validation.fullwidth {\n width: 100%;\n}\n\nic-input-validation span.status-icon {\n padding-right: var(--ic-space-xxs);\n}\n\nic-input-validation span.status-icon > svg {\n height: 1.25rem;\n width: 1.25rem;\n}\n\nic-input-validation span.icon-success > svg {\n fill: var(--ic-status-success);\n}\n\nic-input-validation span.icon-error > svg {\n fill: var(--ic-status-error);\n}\n\nic-input-validation span.icon-warning > svg {\n fill: var(--ic-status-warning);\n}\n\nic-input-validation .statustext {\n flex-grow: 1;\n}\n","import { Host, h } from \"@stencil/core\";\nimport { IcInformationStatus, } from \"../../utils/types\";\nimport errorIcon from \"../../assets/error-icon.svg\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport warningIcon from \"../../assets/warning-icon.svg\";\nimport { getInputValidationTextID, onComponentRequiredPropUndefined, } from \"../../utils/helpers\";\nconst icon = {\n [IcInformationStatus.Warning]: warningIcon,\n [IcInformationStatus.Error]: errorIcon,\n [IcInformationStatus.Success]: successIcon,\n};\n/**\n * @slot validation-message-adornment - Content will be placed to the right of the validation message.\n */\nexport class InputValidation {\n constructor() {\n this.ariaLiveMode = \"polite\";\n this.for = undefined;\n this.fullWidth = false;\n this.message = undefined;\n this.status = \"\";\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.message, propName: \"message\" }], \"Input Validation\");\n }\n render() {\n const displayIcon = this.status !== \"\" ? icon[this.status] : \"\";\n const id = getInputValidationTextID(this.for);\n return (h(Host, { class: {\n [this.status]: this.status !== \"\",\n [\"fullwidth\"]: this.fullWidth,\n } }, displayIcon !== \"\" && (h(\"span\", { class: {\n [\"status-icon\"]: true,\n [`icon-${this.status}`]: true,\n }, innerHTML: displayIcon })), h(\"ic-typography\", { variant: \"caption\", class: \"statustext\" }, h(\"span\", { \"aria-live\": this.ariaLiveMode, id: id }, this.message)), h(\"slot\", { name: \"validation-message-adornment\" })));\n }\n static get is() { return \"ic-input-validation\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-input-validation.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-input-validation.css\"]\n };\n }\n static get properties() {\n return {\n \"ariaLiveMode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcAriaLiveModeVariants\",\n \"resolved\": \"\\\"assertive\\\" | \\\"polite\\\"\",\n \"references\": {\n \"IcAriaLiveModeVariants\": {\n \"location\": \"import\",\n \"path\": \"./ic-input-validation.types\",\n \"id\": \"src/components/ic-input-validation/ic-input-validation.types.tsx::IcAriaLiveModeVariants\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ARIA live mode to apply to the message.\"\n },\n \"attribute\": \"aria-live-mode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"polite\\\"\"\n },\n \"for\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ID of the form element the validation is bound to.\"\n },\n \"attribute\": \"for\",\n \"reflect\": false\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input validation will fill the width of the container.\"\n },\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"message\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation message to display.\"\n },\n \"attribute\": \"message\",\n \"reflect\": false\n },\n \"status\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcInformationStatusOrEmpty\",\n \"resolved\": \"\\\"\\\" | \\\"error\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {\n \"IcInformationStatusOrEmpty\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcInformationStatusOrEmpty\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The status of the validation - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"attribute\": \"status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=ic-input-validation.js.map\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as s,H as e,g as h}from"./p-8455d1bb.js";import{a,s as n,x as r,t as o,v as l,o as c,D as d,B as u,w as f,I as p,h as b,j as m}from"./p-b9d9273f.js";import{b as v,i as w,j as g,s as y,h as k,k as x}from"./p-33dd24eb.js";const $=`<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M15.8327 5.34199L14.6577 4.16699L9.99935 8.82533L5.34102 4.16699L4.16602 5.34199L8.82435 10.0003L4.16602 14.6587L5.34102 15.8337L9.99935 11.1753L14.6577 15.8337L15.8327 14.6587L11.1743 10.0003L15.8327 5.34199Z" fill="currentColor"/>\n</svg>\n`;const D=`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">\n <path d="M16.6667 2.50004H15.8334V0.833374H14.1667V2.50004H5.83342V0.833374H4.16675V2.50004H3.33341C2.41675 2.50004 1.66675 3.25004 1.66675 4.16671V17.5C1.66675 18.4167 2.41675 19.1667 3.33341 19.1667H16.6667C17.5834 19.1667 18.3334 18.4167 18.3334 17.5V4.16671C18.3334 3.25004 17.5834 2.50004 16.6667 2.50004ZM16.6667 17.5H3.33341V6.66671H16.6667V17.5Z" fill="currentColor"/>\n</svg>`;const Y='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}input{border:0;height:100%;padding:0;outline:none;background:none;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input:-webkit-autofill{box-shadow:0 0 0 var(--ic-space-sm) var(--ic-architectural-white) inset}ic-input-component-container{cursor:text}ic-input-component-container,ic-input-component-container:hover{color:var(--ic-color-tertiary-text)}ic-input-component-container .focus-indicator{padding:var(--ic-space-xxxs) var(--ic-space-xs);align-items:center}.day-input{width:1.438rem}.month-input{width:1.813rem}.year-input,.year-input.fit-to-value{width:2.313rem}.fit-to-value{width:1.25rem}.sr-only{position:absolute;left:-9999px}.input-container{width:100%;display:flex;justify-content:space-between;align-items:center;position:relative}.action-buttons{display:flex;align-items:center}.show-calendar-button-wrapper{display:flex;justify-content:center;align-items:center}.clear-button,.calendar-button{border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);margin:0}.clear-button.hidden{display:none}.clear-button:focus,.calendar-button:focus,.clear-button:active,.calendar-button:active{background-color:var(--ic-focus-blue) !important;box-shadow:inset 0 0 0 0.125rem var(--ic-focus-glow) !important;border-radius:0.25rem}.clear-button:focus,.calendar-button:focus,.clear-button:active *,.calendar-button:active *{fill:var(--ic-architectural-white)}.divider{margin:0 var(--ic-space-xxs);width:var(--ic-space-1px);background-color:var(--ic-architectural-400);border-radius:var(--ic-space-1px)}.divider.small{height:var(--ic-space-md)}.divider.default{height:calc(var(--ic-space-sm) + var(--ic-space-xs))}.divider.large{height:var(--ic-space-lg)}';let M=0;const z=class{constructor(e){t(this,e);this.calendarButtonClicked=i(this,"calendarButtonClicked",7);this.icBlur=i(this,"icBlur",7);this.icChange=i(this,"icChange",7);this.icFocus=i(this,"icFocus",7);this.ARIA_INVALID="aria-invalid";this.ARIA_LABEL="aria-label";this.ARIA_LABELLED_BY="aria-labelledby";this.EVENT_OBJECT_STRING="[object Event]";this.FIT_TO_VALUE="fit-to-value";this.initialValue=this.value;this.INPUT_EVENT_OBJECT_STRING="[object InputEvent]";this.inputsInOrder=[];this.isAfterMax=false;this.isBeforeMin=false;this.isDateSetFromKeyboardEvent=false;this.isDisabledDate=false;this.isValidDay=true;this.isValidMonth=true;this.isValidDate=true;this.isZuluTime=false;this.KEYBOARD_EVENT_OBJECT_STRING="[object KeyboardEvent]";this.MAX_DAY=31;this.MAX_MONTH=12;this.previousEmittedDate=undefined;this.previousSelectedDate=null;this.selectedDate=null;this.setInputPasteValue=(t,i)=>{const s=t;s.value=i;s.classList.add(this.FIT_TO_VALUE)};this.checkSingleCopiedValueIsValid=(t,i)=>{let s=false;const e=Number(i);switch(t){case this.dayInputEl:s=e>=1&&e<=this.MAX_DAY;break;case this.monthInputEl:s=e>=1&&e<=this.MAX_MONTH;break;case this.yearInputEl:s=true;break;default:s=false;break}return s};this.isKeyboardOrEvent=t=>Object.prototype.toString.call(t)===this.EVENT_OBJECT_STRING||Object.prototype.toString.call(t)===this.KEYBOARD_EVENT_OBJECT_STRING;this.setDateValidity=()=>{if(!a(this.day)){this.isValidDay=+this.day>this.MAX_DAY?false:true}else{this.isValidDay=true}if(!a(this.month)){this.isValidMonth=+this.month>this.MAX_MONTH?false:true}else{this.isValidMonth=true}};this.handleInput=t=>{const i=t;const s=t.target;if(s!==this.yearInputEl){if(i.inputType!=="deleteContentBackward"&&!this.preventAutoFormatting){if(s.value.length===1&&(s===this.dayInputEl&&+s.value>=4||s===this.monthInputEl&&+s.value>=2)&&+s.value<=9){this.setInputValue(s);this.notifyScreenReader(s,t);this.moveToNextInput(s)}if(s.value.length===2){if(+s.value===0){s.value="01"}this.setInputValue(s);this.setPreventInput(s,true);this.notifyScreenReader(s,t);this.moveToNextInput(s)}else{this.setPreventInput(s,false)}}else if(this.preventAutoFormatting){if(s.value.length===2&&!this.isKeyboardOrEvent(t)){this.setInputValue(s);this.setPreventInput(s,true);this.moveToNextInput(s)}else{this.setInputValue(s)}}if(s.value.length!==2){this.setPreventInput(s,false)}}else{if(s.value.length===4){this.setInputValue(s);if(Object.prototype.toString.call(t)!==this.EVENT_OBJECT_STRING){this.moveToNextInput(s)}this.setPreventInput(s,true)}else{this.setInputValue(s,true);this.setPreventInput(s,false)}}this.setFitToValueStyling(s);if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s,t)};this.handleKeyDown=(t,i)=>{var s;const e=t.target;const h=(s=t.key)===null||s===void 0?void 0:s.toLowerCase();const a=/-?\d*\.?\d+(e[-+]?\d+)?|[/-]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;if(!a.test(h)&&!((t.ctrlKey||t.metaKey)&&(h==="v"||h==="c"))){t.preventDefault()}switch(h){case"/":case"-":case".":t.preventDefault();this.setPasteInvalidText();this.moveToNextInput(e);break;case"arrowright":case"arrowleft":t.preventDefault();this.handleLeftRightArrowKeyPress(e,h);break;case"arrowup":case"arrowdown":this.preventAutoFormatting=true;this.handleUpDownArrowKeyPress(e,t);break}this.preventInput(t,i);this.isDateSetFromKeyboardEvent=true};this.handleFocus=t=>{const i=t.target;i.select()};this.handleBlur=t=>{const i=t.target;this.setPasteInvalidText();this.autocompleteInput(i)};this.handleLeftRightArrowKeyPress=(t,i)=>{if(i==="arrowright"){this.moveToNextInput(t)}else{this.moveToPreviousInput(t)}this.setPasteInvalidText()};this.notifyScreenReaderSelectedDate=()=>{const t=n(b);const i=n(m);this.selectedDateInfoEl.textContent=`Selected date: ${t[this.selectedDate.getDay()]}, ${this.selectedDate.getDate()} ${i[this.selectedDate.getMonth()]} ${this.selectedDate.getFullYear()}`};this.handleUpDownArrowKeyPress=(t,i)=>{const s=t===this.yearInputEl?0:1;let e;switch(t){case this.dayInputEl:e=this.MAX_DAY;break;case this.monthInputEl:e=this.MAX_MONTH;break;case this.yearInputEl:e=9999}if(t===null||t===void 0?void 0:t.value){if(i.key==="ArrowUp"){if(+t.value===e){i.preventDefault();t.value=`0${s}`}else{t.value=+t.value+1<10?`0${+t.value+1}`:(+t.value+1).toString()}this.notifyScreenReader(t,i)}if(i.key==="ArrowDown"){if(+t.value===s){i.preventDefault();t.value=e.toString()}else{t.value=+t.value-1<10?`0${+t.value-1}`:(+t.value-1).toString()}this.notifyScreenReader(t,i)}}else{if(i.key==="ArrowDown"){i.preventDefault();if(t===this.yearInputEl){t.value=(new Date).getFullYear().toString()}else{t.value=e.toString()}this.notifyScreenReader(t,i)}else if(i.key==="ArrowUp"){i.preventDefault();if(t===this.yearInputEl){t.value=(new Date).getFullYear().toString()}else{t.value=`0${s}`}this.notifyScreenReader(t,i)}}this.setInputValue(t);this.setFitToValueStyling(t)};this.handleDateChange=t=>{if(t||!v(this.selectedDate,this.previousSelectedDate)){if(this.value){this.inputsInOrder.forEach((t=>{t.classList.add(this.FIT_TO_VALUE)}))}if(this.day&&this.month&&this.year&&this.invalidDateText===""){this.setValueAndEmitChange(this.selectedDate);this.notifyScreenReaderSelectedDate()}else if(!(this.selectedDate===null&&this.previousSelectedDate===null)){this.setValueAndEmitChange(null);this.selectedDateInfoEl.textContent=""}this.previousSelectedDate=this.selectedDate;if(!this.isDateSetFromKeyboardEvent){this.updateInputValues(this.day,this.month,this.year)}}};this.slicePastedDate=(t,i)=>i.length>t?i.slice(0,t):i;this.isPastedStringDateValid=t=>{if(/\d+-\d+-\d+$/.test(t)||/\d+\/\d+\/\d+/.test(t)||/\d+\.\d+\.\d+/.test(t)){return true}if(/[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(?::[0-9]{2}(?:\.\d+)?)?Z/.test(t)){this.isZuluTime=true;return true}return false};this.handlePaste=t=>{t.preventDefault();const i=t.clipboardData.getData("Text");const s=this.isPastedStringDateValid(i);this.setPastedValueAndValidation(s,i,t)};this.setDate=t=>{if(t===null||t===""||t===undefined){this.day=null;this.month=null;this.year=null;this.inputsInOrder.forEach((t=>{t.classList.remove(this.FIT_TO_VALUE);this.setPreventInput(t,false)}));this.handleDateChange(true)}else{if(w(t)){let i;if(typeof t==="string"){i=new Date(+t)}else{i=t}this.day=g(i.getDate());this.month=g(i.getMonth()+1);this.year=i.getFullYear().toString()}else if(typeof t==="string"){const i=y(t,this.dateFormat);this.year=i[0];this.month=i[1];this.day=i[2]}}this.setValidationMessage()};this.formatMinMax=t=>{let i;const s=g(t.getDate());const e=g(t.getMonth()+1);const h=t.getFullYear();switch(this.dateFormat){case"DD/MM/YYYY":i=`${s}/${e}/${h}`;break;case"MM/DD/YYYY":i=`${e}/${s}/${h}`;break;case"YYYY/MM/DD":i=`${h}/${e}/${s}`;break}return i};this.updateInputValues=(t,i,s)=>{this.dayInputEl.value=t;this.monthInputEl.value=i;this.yearInputEl.value=s};this.setInputValue=(t,i=false)=>{const s=i?"":t.value;switch(t){case this.dayInputEl:this.day=s;break;case this.monthInputEl:this.month=s;break;case this.yearInputEl:if(this.year!==s){this.year=s}}this.setValidationMessage()};this.setValidationMessage=()=>{this.setDateValidity();if(!a(this.day)&&!a(this.month)&&!a(this.year)){this.selectedDate=this.convertToDate(this.year,this.month,this.day);this.isValidDate=+this.selectedDate!==0&&this.selectedDate.getDate()==+this.day;this.isDisabledDate=this.isSelectedDateDisabled();if(!this.isValidDate||this.isDisabledDate){this.inputsInOrder.forEach((t=>t.setAttribute(this.ARIA_INVALID,"true")))}else{this.inputsInOrder.forEach((t=>t.removeAttribute(this.ARIA_INVALID)))}}else{this.selectedDate=null}if(!(this.isValidDay&&this.isValidMonth&&this.isValidDate)){this.invalidDateText=this.invalidDateMessage}else if(this.isDisabledDate&&this.selectedDate!==null){if(this.isBeforeMin){if(this.disablePast){this.invalidDateText=this.disablePastMessage}else{this.invalidDateText=`Please enter a date after ${this.formatMinMax(this.minDate)}.`}}else if(this.isAfterMax){if(this.disableFuture){this.invalidDateText=this.disableFutureMessage}else{this.invalidDateText=`Please enter a date before ${this.formatMinMax(this.maxDate)}.`}}else if(this.disableDays.length!==0){this.invalidDateText=this.disableDaysMessage}else{if(this.disablePast){this.invalidDateText=this.disablePastMessage}if(this.disableFuture){this.invalidDateText=this.disableFutureMessage}}}else{this.invalidDateText=""}};this.setInputsInOrder=()=>{const t=this.el.shadowRoot.querySelectorAll("input");t.forEach((t=>this.inputsInOrder.push(t)))};this.setAriaLabelledBy=()=>{var t,i;if(this.disabled&&!a((t=this.inputCompContainerEl)===null||t===void 0?void 0:t.getAttribute(this.ARIA_LABELLED_BY))){this.removeAriaLabelledBy();return}if(this.disabled){return}const s=this.el.shadowRoot.querySelector("label");const e=`${this.inputId}-label`;if(s!==null&&s!==undefined){s.id=e}const h=!a(this.validationStatus)&&!a(this.validationText)||!a(this.invalidDateText);const n=`${(i=s===null||s===void 0?void 0:s.id)!==null&&i!==void 0?i:""} ${this.screenReaderInfoId} ${r(this.inputId,this.helperText!==""&&this.helperText!==this.defaultHelperText,h)} ${this.selectedDate?this.selectedDateInfoId:""} ${this.assistiveHintId}`;this.inputCompContainerEl.setAttribute(this.ARIA_LABELLED_BY,n)};this.setPreventInput=(t,i)=>{switch(t){case this.dayInputEl:this.preventDayInput=i;break;case this.monthInputEl:this.preventMonthInput=i;break;case this.yearInputEl:this.preventYearInput=i}};this.getInputFromDatePart=t=>{const i=s("input",{class:"day-input",id:"day-input",ref:t=>this.dayInputEl=t,"aria-label":"day",placeholder:"DD",disabled:this.disabled,onPaste:this.handlePaste,inputmode:"number",pattern:"[0-9]*",onKeyDown:t=>this.handleKeyDown(t,this.preventDayInput)});const e=s("input",{id:"month-input",class:"month-input",ref:t=>this.monthInputEl=t,"aria-label":"month",placeholder:"MM",disabled:this.disabled,onPaste:this.handlePaste,inputmode:"number",pattern:"[0-9]*",onKeyDown:t=>this.handleKeyDown(t,this.preventMonthInput)});const h=s("input",{id:"year-input",class:"year-input",ref:t=>this.yearInputEl=t,"aria-label":"year",placeholder:"YYYY",maxLength:4,disabled:this.disabled,onPaste:this.handlePaste,inputmode:"number",pattern:"[0-9]*",onKeyDown:t=>this.handleKeyDown(t,this.preventYearInput)});let a;switch(t){case"D":a=i;break;case"M":a=e;break;case"Y":a=h}return a};this.getInputsInOrder=()=>{const t=this.dateFormat.split("/");const i=[];t.forEach((t=>{i.push(this.getInputFromDatePart(t.substring(0,1)))}));return i};this.getDescOfInputsOrder=()=>{let t;switch(this.dateFormat){case"DD/MM/YYYY":t="day, month, and year";break;case"MM/DD/YYYY":t="month, day, and year";break;case"YYYY/MM/DD":t="year, month, and day"}return t};this.getScreenReaderInfo=t=>{let i="";if(this.required){i+="required"}if(t===u.Error){i+=" invalid data"}return i===""?"":i+", "};this.preventInput=(t,i)=>{const s=t.key;const e=t.target;let h;if(e){h=e.value.substring(e.selectionStart,e.selectionEnd)}if(s==="e"||s==="."||s==="-"||t.key>="0"&&t.key<="9"&&i&&!h){t.preventDefault()}};this.isSelectedDateDisabled=()=>{const t=new Date;this.isAfterMax=false;this.isBeforeMin=false;let i=false;const s=this.selectedDate.toDateString()!==t.toDateString();if(this.minDate&&this.selectedDate<this.minDate&&s){this.isBeforeMin=true;i=true}if(this.maxDate&&this.selectedDate>this.maxDate&&s){this.isAfterMax=true;i=true}if(this.disableDays.includes(this.selectedDate.getDay())){i=true}if((this.disablePast&&this.selectedDate<t||this.disableFuture&&this.selectedDate>t)&&s){i=true}return i};this.moveToNextInput=t=>{const i=this.inputsInOrder.findIndex((i=>i===t));const s=this.inputsInOrder[i+1];this.preventAutoFormatting=false;if(s){s.focus()}};this.moveToPreviousInput=t=>{const i=this.inputsInOrder.findIndex((i=>i===t));this.preventAutoFormatting=false;if(this.inputsInOrder[i-1]){this.inputsInOrder[i-1].focus()}};this.autocompleteInput=t=>{if(t===this.yearInputEl){this.autocompleteYear()}else{const i=t.value;if(i.length===1){if(+i===0){t.value="01"}else{t.value=`0${i}`}}}if(t.value){this.setInputValue(t)}};this.autocompleteYear=()=>{const t=this.yearInputEl.value;const i=["2","0","0"];let s="";if(t){i.forEach(((i,e)=>{if(t.length+e<=3){s+=i}}));this.yearInputEl.value=`${s}${t}`}};this.convertToDate=(t,i,s)=>{if(!a(t)&&!a(i)&&!a(s)){return new Date(+t,+i-1,+s)}else{return null}};this.handleHostBlur=()=>{this.removeLabelledBy=false;this.icBlur.emit({value:this.selectedDate})};this.handleHostFocus=()=>{var t;if((t=this.el.shadowRoot.activeElement)===null||t===void 0?void 0:t.id.match(/(day|month|year)-input$/)){this.removeLabelledBy=false}else{this.removeLabelledBy=true}this.icFocus.emit({value:this.selectedDate})};this.handleFormReset=()=>{this.setDate(this.initialValue);this.setValidationMessage();this.handleDateChange(false)};this.getAriaLabel=t=>t.getAttribute(this.ARIA_LABEL);this.notifyScreenReaderArrowKeys=t=>{const i=this.el.shadowRoot.querySelector("#live-region");let s="";const e=this.getAriaLabel(t);if(i&&t.value){if(t===this.monthInputEl&&!!m[+t.value-1]){s=`${t.value} - ${m[+t.value-1]}, ${e}`}if(t===this.dayInputEl||t===this.yearInputEl){s=`${t.value}, ${e}`}i.textContent=s}};this.notifyScreenReaderInput=(t,i)=>{let s="";const e=this.getAriaLabel(t);if(t===this.dayInputEl||t===this.monthInputEl){if(t.value.length===2){if(t===this.monthInputEl&&!!m[+t.value-1]&&this.isValidMonth){s=`${t.value} - ${m[+t.value-1]}, ${e}`}if(t===this.dayInputEl&&this.isValidDay){s=`${t.value}, ${e}`}}else{s=""}}else{if(t.value.length===4){s=`${t.value}, ${e}`}else{s=""}}i.textContent=s};this.setFitToValueStyling=t=>{if(t.value){t.classList.add(this.FIT_TO_VALUE)}else{t.classList.remove(this.FIT_TO_VALUE)}};this.setAriaInvalid=(t,i,s,e)=>{if(this.inputsInOrder.length){this.inputsInOrder.forEach((t=>{t.removeAttribute(this.ARIA_INVALID)}));if(!t){this.dayInputEl.setAttribute(this.ARIA_INVALID,"true")}if(!i){this.monthInputEl.setAttribute(this.ARIA_INVALID,"true")}if(!s||e){this.inputsInOrder.forEach((t=>{t.setAttribute(this.ARIA_INVALID,"true")}))}}};this.handleClear=()=>{this.inputsInOrder.forEach((t=>{t.classList.remove(this.FIT_TO_VALUE);this.setInputValue(t,true);this.setPreventInput(t,false)}));this.isDateSetFromKeyboardEvent=false;this.setValidationMessage();this.handleDateChange(true);this.inputsInOrder[0].focus()};this.handleCalendarOpen=t=>{var i,s;t.stopImmediatePropagation();(i=this.calendarButtonEl)===null||i===void 0?void 0:i.shadowRoot.querySelector("ic-tooltip").displayTooltip(false);this.calendarButtonClicked.emit({value:this.selectedDate});(s=this.calendarButtonEl)===null||s===void 0?void 0:s.shadowRoot.querySelector("ic-tooltip").displayTooltip(false);this.isDateSetFromKeyboardEvent=false};this.setValueAndEmitChange=t=>{if(!v(new Date(this.value),t)){this.emitIcChange(t);this.value=t}};this.handleCalendarFocus=()=>{this.calendarFocused=true};this.handleCalendarBlur=()=>{this.calendarFocused=false};this.handleClearFocus=()=>{this.removeLabelledBy=true;this.clearButtonFocused=true};this.handleClearBlur=t=>{var i;this.clearButtonFocused=false;if((i=t.relatedTarget)===null||i===void 0?void 0:i.id.match(/(day|year)-input$/)){this.removeLabelledBy=false;return}this.removeLabelledBy=true};this.emitIcChange=t=>{if(!(t===null&&this.previousEmittedDate===null)&&!v(t,this.previousEmittedDate)){this.previousEmittedDate=t;this.icChange.emit({value:t})}};this.day="";this.invalidDateText=undefined;this.maxDate=undefined;this.minDate=undefined;this.month="";this.year="";this.calendarFocused=false;this.clearButtonFocused=false;this.removeLabelledBy=false;this.dateFormat="DD/MM/YYYY";this.disabled=false;this.disableDays=[];this.disableDaysMessage="The date you have selected is on a day of the week that is not allowed. Please select another date.";this.disableFuture=false;this.disableFutureMessage="Dates in the future are not allowed. Please select a date in the past.";this.disablePast=false;this.disablePastMessage="Dates in the past are not allowed. Please select a date in the future.";this.helperText=undefined;this.hideHelperText=false;this.hideLabel=false;this.inputId=`ic-date-input-${M++}`;this.invalidDateMessage="Please enter a valid date.";this.label=undefined;this.max="";this.min="";this.name=this.inputId;this.required=false;this.showCalendarButton=false;this.showClearButton=true;this.size="default";this.value="";this.validationStatus="";this.validationText=""}watchDisableFutureHandler(){this.watchMaxHandler()}watchDisablePastHandler(){this.watchMinHandler()}watchMaxHandler(){if(this.disableFuture){this.maxDate=new Date}else{this.maxDate=k(this.max,this.dateFormat)}}watchMinHandler(){if(this.disablePast){this.minDate=new Date}else{this.minDate=k(this.min,this.dateFormat)}}watchRequiredHandler(){const t=this.el.shadowRoot.querySelector("label");if(this.required){const i=document.createElement("span");i.setAttribute("id","asterisk-span");i.setAttribute("aria-hidden","true");i.textContent=" *";t===null||t===void 0?void 0:t.appendChild(i)}else{const t=this.el.shadowRoot.querySelector("#asterisk-span");if(t){t.remove()}}}disconnectedCallback(){o(this.el,this.handleFormReset)}componentWillLoad(){this.defaultHelperText=`Use format ${this.dateFormat}`;if(a(this.helperText))this.helperText=this.defaultHelperText;this.watchMinHandler();this.watchMaxHandler();if(this.value){this.setDate(this.value);this.previousEmittedDate=this.selectedDate}else{this.previousEmittedDate=null}this.screenReaderInfoId=`${this.inputId}-screen-reader-info`;this.assistiveHintId=`${this.inputId}-assistive-hint`;this.selectedDateInfoId=`${this.inputId}-selected-date-info`;l(this.el,this.handleFormReset)}componentDidLoad(){this.setInputsInOrder();c([{prop:this.label,propName:"label"}],"Date Input");if(this.value){this.updateInputValues(this.day,this.month,this.year);this.inputsInOrder.forEach((t=>{t.classList.add(this.FIT_TO_VALUE)}))}this.setAriaInvalid(this.isValidDay,this.isValidMonth,this.isValidDate,this.isDisabledDate);if(this.value){this.notifyScreenReaderSelectedDate()}this.inputsInOrder.forEach((t=>{t.addEventListener("input",this.handleInput);t.addEventListener("focus",this.handleFocus);t.addEventListener("blur",this.handleBlur)}));this.watchRequiredHandler()}componentWillUpdate(){if(a(this.helperText))this.helperText=this.defaultHelperText;if(!this.isDateSetFromKeyboardEvent)this.setDate(this.value);this.setAriaInvalid(this.isValidDay,this.isValidMonth,this.isValidDate,this.isDisabledDate);this.handleDateChange(false);this.isDateSetFromKeyboardEvent=false}componentDidRender(){if(this.removeLabelledBy){this.removeAriaLabelledBy();return}this.setAriaLabelledBy()}async getDate(){return this.selectedDate}async setCalendarFocus(){if(this.calendarButtonEl){this.calendarButtonEl.focus()}}async setDisableDays(t){this.disableDays=t}async triggerIcChange(t){this.emitIcChange(t)}removeAriaLabelledBy(){this.inputCompContainerEl.removeAttribute(this.ARIA_LABELLED_BY)}setPastedValueAndValidation(t,i,s){switch(true){case t:{const t=this.isZuluTime?x(i):i;const s=t.split(/-|\/|\./);this.inputsInOrder.forEach(((t,i)=>{t.classList.add(this.FIT_TO_VALUE);if(this.isZuluTime){this.pasteZuluDateTime(s,i)}else{let e;if(t===this.dayInputEl||t===this.monthInputEl){e=this.slicePastedDate(2,s[i])}else{e=this.slicePastedDate(4,s[i])}t.value=e;this.setInputValue(t);this.autocompleteInput(t)}}));this.isZuluTime=false;break}case(i.length===1||i.length===2||i.length===4)&&d(i):if(this.checkSingleCopiedValueIsValid(s.target,i)){this.setInputPasteValue(s.target,i);this.setInputValue(s.target)}else{this.displayPastedValidation(s)}break;case i.length===3&&d(i):if(s.target!==this.yearInputEl){this.displayPastedValidation(s)}else{this.setInputPasteValue(s.target,i);this.setInputValue(s.target)}break;case i.length>=5&&d(i):this.displayPastedValidation(s)}}pasteZuluDateTime(t,i){if(i===0){const s=this.slicePastedDate(4,t[i]);this.yearInputEl.value=s;this.setInputValue(this.yearInputEl)}else if(i===1){const s=this.slicePastedDate(2,t[i]);this.monthInputEl.value=s;this.setInputValue(this.monthInputEl)}else{const s=this.slicePastedDate(2,t[i]);this.dayInputEl.value=s;this.setInputValue(this.dayInputEl)}}displayPastedValidation(t){var i;if(((i=this.invalidDateText)===null||i===void 0?void 0:i.length)>0){this.previousInvalidDateTest=this.invalidDateText}this.invalidDateText=`Please paste a valid ${this.getAriaLabel(t.target)}`;this.validationStatus=u.Error;this.isPasteValidationDisplayed=true}setPasteInvalidText(){var t;if(this.isPasteValidationDisplayed){this.invalidDateText=(t=this.previousInvalidDateTest)!==null&&t!==void 0?t:"";this.isPasteValidationDisplayed=false;this.isDateSetFromKeyboardEvent=true}}notifyScreenReader(t,i){const s=this.el.shadowRoot.querySelector("#live-region");if(s){if(this.isKeyboardOrEvent(i)){this.notifyScreenReaderArrowKeys(t)}else if(Object.prototype.toString.call(i)===this.INPUT_EVENT_OBJECT_STRING){this.notifyScreenReaderInput(t,s)}}}render(){const{inputId:t,label:i,disabled:h,helperText:n,hideHelperText:r,hideLabel:o,showClearButton:l,showCalendarButton:c,size:d}=this;const b=!a(this.validationStatus)&&!a(this.validationText);const m=b?this.validationStatus:!a(this.invalidDateText)?u.Error:"";const v=`Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;f(true,this.el,this.name,this.convertToDate(this.year,this.month,this.day),this.disabled);return s(e,{onBlur:this.handleHostBlur,onFocus:this.handleHostFocus},s("ic-input-container",{disabled:h},!(o&&r)&&s("ic-input-label",{for:t,label:i,hideLabel:o,helperText:!r?n:null,disabled:h}),s("span",{id:this.screenReaderInfoId,class:"sr-only","aria-hidden":"true"},this.getScreenReaderInfo(m),o&&`${i}\n`,r&&`${n}\n`,`${this.defaultHelperText}.`),s("span",{id:this.assistiveHintId,class:"sr-only","aria-hidden":"true"},v),s("span",{id:"live-region","aria-live":"assertive",class:"sr-only"}),s("ic-input-component-container",{id:t,ref:t=>this.inputCompContainerEl=t,disabled:h,validationStatus:m,size:d,role:"group"},s("div",{class:"input-container"},s("div",{class:"date-inputs"},this.getInputsInOrder()[0],"/",this.getInputsInOrder()[1],"/",this.getInputsInOrder()[2]),s("div",{class:"action-buttons"},l&&s("ic-button",{id:"clear-button","aria-label":"Clear input",class:{["clear-button"]:true,["hidden"]:a(this.day)&&a(this.month)&&a(this.year)},disabled:this.disabled,innerHTML:$,onClick:this.handleClear,onFocus:this.handleClearFocus,onBlur:this.handleClearBlur,variant:"icon",appearance:this.clearButtonFocused?p.Light:p.Dark,size:d}),c&&s("div",{class:"show-calendar-button-wrapper"},s("div",{class:{divider:true,[d]:true}}),s("ic-button",{id:"calendar-button",ref:t=>this.calendarButtonEl=t,"aria-label":"Display calendar","aria-haspopup":"dialog",class:"calendar-button",disabled:this.disabled,innerHTML:D,onClick:this.handleCalendarOpen,variant:"icon",size:d,onFocus:this.handleCalendarFocus,onBlur:this.handleCalendarBlur,appearance:this.calendarFocused?p.Light:p.Default}))))),s("span",{id:this.selectedDateInfoId,class:"sr-only","aria-live":"polite"},s("span",{ref:t=>this.selectedDateInfoEl=t,role:"status"})),(b||!a(this.invalidDateText))&&s("ic-input-validation",{status:m,message:b?this.validationText:this.invalidDateText,for:t})))}static get delegatesFocus(){return true}get el(){return h(this)}static get watchers(){return{disableFuture:["watchDisableFutureHandler"],disablePast:["watchDisablePastHandler"],max:["watchMaxHandler"],min:["watchMinHandler"],required:["watchRequiredHandler"]}}};z.style=Y;export{z as ic_date_input};
2
- //# sourceMappingURL=p-72446de0.entry.js.map