@ukic/canary-web-components 3.0.0-canary.5 → 3.0.0-canary.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (514) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-55099147.js → helpers-0d86316e.js} +33 -29
  3. package/dist/cjs/helpers-0d86316e.js.map +1 -0
  4. package/dist/cjs/{helpers-c80f6ce4.js → helpers-e0da4ae1.js} +17 -17
  5. package/dist/cjs/{helpers-c80f6ce4.js.map → helpers-e0da4ae1.js.map} +1 -1
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-accordion.cjs.entry.js +8 -1
  8. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  10. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-badge.cjs.entry.js +2 -2
  13. package/dist/cjs/ic-badge.cjs.entry.js.map +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 +10 -7
  17. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-card-horizontal.cjs.entry.js +17 -8
  19. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-card-vertical.cjs.entry.js +15 -6
  21. package/dist/cjs/ic-card-vertical.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 +72 -61
  31. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-date-input.cjs.entry.js +7 -2
  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 +3 -3
  38. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-empty-state_2.cjs.entry.js +6 -3
  40. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-footer-link-group.cjs.entry.js +4 -5
  42. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-footer-link.cjs.entry.js +4 -5
  44. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-footer.cjs.entry.js +7 -8
  46. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-hero.cjs.entry.js +6 -7
  48. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +3 -3
  50. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +13 -4
  52. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-link.cjs.entry.js +9 -6
  55. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  57. package/dist/cjs/ic-menu-item.cjs.entry.js +7 -1
  58. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-navigation-button.cjs.entry.js +6 -7
  60. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-navigation-group.cjs.entry.js +5 -6
  62. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-navigation-item.cjs.entry.js +4 -4
  64. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-pagination_4.cjs.entry.js +36 -7
  68. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-radio-group.cjs.entry.js +9 -1
  71. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -1
  73. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-search-bar.cjs.entry.js +7 -3
  75. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-side-navigation.cjs.entry.js +5 -5
  77. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  79. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  80. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  81. package/dist/cjs/ic-switch.cjs.entry.js +6 -2
  82. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  84. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  85. package/dist/cjs/ic-tab.cjs.entry.js +5 -2
  86. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-theme.cjs.entry.js +20 -20
  88. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  90. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -0
  91. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-toggle-button.cjs.entry.js +7 -1
  93. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-top-navigation.cjs.entry.js +10 -6
  95. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-tree-item.cjs.entry.js +13 -4
  97. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-tree-view.cjs.entry.js +16 -4
  99. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  101. package/dist/cjs/loader.cjs.js +1 -1
  102. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +4 -1
  103. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +22 -10
  104. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -1
  105. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js +10 -0
  106. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js.map +1 -1
  107. package/dist/collection/components/ic-data-table/ic-data-table.css +10 -0
  108. package/dist/collection/components/ic-data-table/ic-data-table.js +70 -59
  109. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  110. package/dist/collection/components/ic-data-table/story-data.js +86 -2
  111. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  112. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +38 -0
  113. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  114. package/dist/collection/components/ic-date-input/ic-date-input.css +2 -1
  115. package/dist/collection/components/ic-date-input/ic-date-input.js +8 -1
  116. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  117. package/dist/collection/components/ic-date-picker/ic-date-picker.js +8 -1
  118. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  119. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +4 -1
  120. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  121. package/dist/collection/components/ic-tree-item/ic-tree-item.css +20 -3
  122. package/dist/collection/components/ic-tree-item/ic-tree-item.js +31 -3
  123. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  124. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js +3 -0
  125. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js.map +1 -1
  126. package/dist/collection/components/ic-tree-view/ic-tree-view.css +16 -2
  127. package/dist/collection/components/ic-tree-view/ic-tree-view.js +51 -1
  128. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  129. package/dist/collection/utils/helpers.js +21 -24
  130. package/dist/collection/utils/helpers.js.map +1 -1
  131. package/dist/collection/utils/types.js +6 -6
  132. package/dist/collection/utils/types.js.map +1 -1
  133. package/dist/components/helpers.js +30 -26
  134. package/dist/components/helpers.js.map +1 -1
  135. package/dist/components/helpers2.js +16 -16
  136. package/dist/components/helpers2.js.map +1 -1
  137. package/dist/components/ic-accordion.js +9 -1
  138. package/dist/components/ic-accordion.js.map +1 -1
  139. package/dist/components/ic-alert.js +2 -2
  140. package/dist/components/ic-alert.js.map +1 -1
  141. package/dist/components/ic-badge.js +2 -2
  142. package/dist/components/ic-badge.js.map +1 -1
  143. package/dist/components/ic-button2.js +11 -8
  144. package/dist/components/ic-button2.js.map +1 -1
  145. package/dist/components/ic-card-horizontal.js +20 -9
  146. package/dist/components/ic-card-horizontal.js.map +1 -1
  147. package/dist/components/ic-card-vertical.js +18 -7
  148. package/dist/components/ic-card-vertical.js.map +1 -1
  149. package/dist/components/ic-checkbox-group.js +5 -0
  150. package/dist/components/ic-checkbox-group.js.map +1 -1
  151. package/dist/components/ic-checkbox.js +5 -0
  152. package/dist/components/ic-checkbox.js.map +1 -1
  153. package/dist/components/ic-chip.js +11 -4
  154. package/dist/components/ic-chip.js.map +1 -1
  155. package/dist/components/ic-data-table.js +71 -60
  156. package/dist/components/ic-data-table.js.map +1 -1
  157. package/dist/components/ic-date-input2.js +8 -2
  158. package/dist/components/ic-date-input2.js.map +1 -1
  159. package/dist/components/ic-date-picker.js +7 -1
  160. package/dist/components/ic-date-picker.js.map +1 -1
  161. package/dist/components/ic-divider2.js +4 -4
  162. package/dist/components/ic-divider2.js.map +1 -1
  163. package/dist/components/ic-footer-link-group.js +5 -6
  164. package/dist/components/ic-footer-link-group.js.map +1 -1
  165. package/dist/components/ic-footer-link.js +5 -6
  166. package/dist/components/ic-footer-link.js.map +1 -1
  167. package/dist/components/ic-footer.js +8 -9
  168. package/dist/components/ic-footer.js.map +1 -1
  169. package/dist/components/ic-hero.js +7 -8
  170. package/dist/components/ic-hero.js.map +1 -1
  171. package/dist/components/ic-horizontal-scroll2.js +3 -3
  172. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  173. package/dist/components/ic-input-component-container2.js +13 -2
  174. package/dist/components/ic-input-component-container2.js.map +1 -1
  175. package/dist/components/ic-link2.js +10 -7
  176. package/dist/components/ic-link2.js.map +1 -1
  177. package/dist/components/ic-menu-item2.js +9 -1
  178. package/dist/components/ic-menu-item2.js.map +1 -1
  179. package/dist/components/ic-menu2.js +3 -3
  180. package/dist/components/ic-menu2.js.map +1 -1
  181. package/dist/components/ic-navigation-button.js +7 -8
  182. package/dist/components/ic-navigation-button.js.map +1 -1
  183. package/dist/components/ic-navigation-group.js +6 -7
  184. package/dist/components/ic-navigation-group.js.map +1 -1
  185. package/dist/components/ic-navigation-item.js +5 -5
  186. package/dist/components/ic-navigation-item.js.map +1 -1
  187. package/dist/components/ic-pagination-bar2.js +4 -1
  188. package/dist/components/ic-pagination-bar2.js.map +1 -1
  189. package/dist/components/ic-pagination-item2.js +6 -1
  190. package/dist/components/ic-pagination-item2.js.map +1 -1
  191. package/dist/components/ic-pagination2.js +5 -0
  192. package/dist/components/ic-pagination2.js.map +1 -1
  193. package/dist/components/ic-radio-group.js +8 -0
  194. package/dist/components/ic-radio-group.js.map +1 -1
  195. package/dist/components/ic-radio-option.js +6 -1
  196. package/dist/components/ic-radio-option.js.map +1 -1
  197. package/dist/components/ic-search-bar.js +8 -3
  198. package/dist/components/ic-search-bar.js.map +1 -1
  199. package/dist/components/ic-select2.js +10 -3
  200. package/dist/components/ic-select2.js.map +1 -1
  201. package/dist/components/ic-side-navigation.js +6 -6
  202. package/dist/components/ic-side-navigation.js.map +1 -1
  203. package/dist/components/ic-switch.js +8 -3
  204. package/dist/components/ic-switch.js.map +1 -1
  205. package/dist/components/ic-tab.js +5 -2
  206. package/dist/components/ic-tab.js.map +1 -1
  207. package/dist/components/ic-text-field2.js +22 -6
  208. package/dist/components/ic-text-field2.js.map +1 -1
  209. package/dist/components/ic-theme.js +22 -22
  210. package/dist/components/ic-theme.js.map +1 -1
  211. package/dist/components/ic-toggle-button-group.js +3 -0
  212. package/dist/components/ic-toggle-button-group.js.map +1 -1
  213. package/dist/components/ic-toggle-button.js +9 -1
  214. package/dist/components/ic-toggle-button.js.map +1 -1
  215. package/dist/components/ic-top-navigation.js +11 -7
  216. package/dist/components/ic-top-navigation.js.map +1 -1
  217. package/dist/components/ic-tree-item.js +15 -4
  218. package/dist/components/ic-tree-item.js.map +1 -1
  219. package/dist/components/ic-tree-view.js +19 -4
  220. package/dist/components/ic-tree-view.js.map +1 -1
  221. package/dist/core/core.css +63 -43
  222. package/dist/core/core.esm.js +1 -1
  223. package/dist/core/core.esm.js.map +1 -1
  224. package/dist/core/{p-690d0bbd.entry.js → p-006d37d0.entry.js} +2 -2
  225. package/dist/core/p-006d37d0.entry.js.map +1 -0
  226. package/dist/core/p-06cda732.entry.js +2 -0
  227. package/dist/core/p-06cda732.entry.js.map +1 -0
  228. package/dist/core/{p-6f92ee7a.entry.js → p-07881c14.entry.js} +2 -2
  229. package/dist/core/{p-e4b9221b.entry.js → p-1084a7f9.entry.js} +2 -2
  230. package/dist/core/p-1084a7f9.entry.js.map +1 -0
  231. package/dist/core/p-1893f635.entry.js +2 -0
  232. package/dist/core/p-1893f635.entry.js.map +1 -0
  233. package/dist/core/{p-3106c4fd.entry.js → p-19f85b60.entry.js} +2 -2
  234. package/dist/core/p-21f6619f.entry.js +2 -0
  235. package/dist/core/p-21f6619f.entry.js.map +1 -0
  236. package/dist/core/{p-70543f44.entry.js → p-2412ba0b.entry.js} +2 -2
  237. package/dist/core/p-2664bfab.entry.js +2 -0
  238. package/dist/core/p-2664bfab.entry.js.map +1 -0
  239. package/dist/core/{p-9235425c.entry.js → p-26a41692.entry.js} +2 -2
  240. package/dist/core/p-29a86adf.entry.js +2 -0
  241. package/dist/core/p-29a86adf.entry.js.map +1 -0
  242. package/dist/core/p-2c38ff71.entry.js +2 -0
  243. package/dist/core/p-2c38ff71.entry.js.map +1 -0
  244. package/dist/core/p-324be8cf.entry.js +2 -0
  245. package/dist/core/p-324be8cf.entry.js.map +1 -0
  246. package/dist/core/{p-160de322.entry.js → p-3272931c.entry.js} +2 -2
  247. package/dist/core/p-34e57694.entry.js +2 -0
  248. package/dist/core/p-34e57694.entry.js.map +1 -0
  249. package/dist/core/{p-0687cc81.entry.js → p-35caddb3.entry.js} +2 -2
  250. package/dist/core/p-35caddb3.entry.js.map +1 -0
  251. package/dist/core/{p-3bbfefcc.entry.js → p-38aca488.entry.js} +2 -2
  252. package/dist/core/p-38aca488.entry.js.map +1 -0
  253. package/dist/core/{p-91cf88d6.entry.js → p-39190da3.entry.js} +2 -2
  254. package/dist/core/p-39190da3.entry.js.map +1 -0
  255. package/dist/core/p-3ae329ab.entry.js +2 -0
  256. package/dist/core/p-3ae329ab.entry.js.map +1 -0
  257. package/dist/core/{p-f5d1e747.entry.js → p-3b84953c.entry.js} +2 -2
  258. package/dist/core/{p-3b3a8108.entry.js → p-3bc4bc81.entry.js} +2 -2
  259. package/dist/core/{p-fca3589b.entry.js → p-47f2f713.entry.js} +2 -2
  260. package/dist/core/{p-b2389339.js → p-4bcd86cf.js} +2 -2
  261. package/dist/core/p-4bcd86cf.js.map +1 -0
  262. package/dist/core/{p-29623ad5.entry.js → p-5284ccab.entry.js} +2 -2
  263. package/dist/core/p-5284ccab.entry.js.map +1 -0
  264. package/dist/core/{p-c4dc8fdf.entry.js → p-5d749879.entry.js} +2 -2
  265. package/dist/core/{p-7c843bc8.entry.js → p-670c10af.entry.js} +2 -2
  266. package/dist/core/p-670c10af.entry.js.map +1 -0
  267. package/dist/core/{p-dd3a9cb1.entry.js → p-68eb216b.entry.js} +2 -2
  268. package/dist/core/{p-ffe923ae.entry.js → p-6a2ed698.entry.js} +2 -2
  269. package/dist/core/{p-bdce46ca.entry.js → p-6aa0f42b.entry.js} +2 -2
  270. package/dist/core/p-6aa0f42b.entry.js.map +1 -0
  271. package/dist/core/p-6d179eed.entry.js +2 -0
  272. package/dist/core/p-6d179eed.entry.js.map +1 -0
  273. package/dist/core/p-7765a219.entry.js +2 -0
  274. package/dist/core/p-7765a219.entry.js.map +1 -0
  275. package/dist/core/p-77a98aa2.entry.js +2 -0
  276. package/dist/core/p-77a98aa2.entry.js.map +1 -0
  277. package/dist/core/{p-7e358f32.entry.js → p-78f747ee.entry.js} +2 -2
  278. package/dist/core/p-78f747ee.entry.js.map +1 -0
  279. package/dist/core/{p-bd5aada7.entry.js → p-7a9de1bb.entry.js} +2 -2
  280. package/dist/core/{p-25597c03.js → p-808715e2.js} +2 -2
  281. package/dist/core/p-808715e2.js.map +1 -0
  282. package/dist/core/{p-9da6df82.entry.js → p-83f39782.entry.js} +2 -2
  283. package/dist/core/{p-acb0eddb.entry.js → p-8e300091.entry.js} +2 -2
  284. package/dist/core/{p-3d478ba9.entry.js → p-92398f47.entry.js} +2 -2
  285. package/dist/core/{p-3d478ba9.entry.js.map → p-92398f47.entry.js.map} +1 -1
  286. package/dist/core/{p-b4eb1c6d.entry.js → p-95d1c9e6.entry.js} +2 -2
  287. package/dist/core/{p-b4dd4835.entry.js → p-9b600ef3.entry.js} +2 -2
  288. package/dist/core/p-9b600ef3.entry.js.map +1 -0
  289. package/dist/core/{p-c894bc8f.entry.js → p-a0dfd2cf.entry.js} +2 -2
  290. package/dist/core/p-a0dfd2cf.entry.js.map +1 -0
  291. package/dist/core/p-a7cda2d6.entry.js +2 -0
  292. package/dist/core/p-a7cda2d6.entry.js.map +1 -0
  293. package/dist/core/p-aa876e5e.entry.js +2 -0
  294. package/dist/core/p-aa876e5e.entry.js.map +1 -0
  295. package/dist/core/p-b047cd84.entry.js +2 -0
  296. package/dist/core/p-b047cd84.entry.js.map +1 -0
  297. package/dist/core/p-b1c68968.entry.js +2 -0
  298. package/dist/core/p-b1c68968.entry.js.map +1 -0
  299. package/dist/core/{p-a67c358a.entry.js → p-b7e5b682.entry.js} +2 -2
  300. package/dist/core/{p-df05b999.entry.js → p-b9081a99.entry.js} +2 -2
  301. package/dist/core/p-b9081a99.entry.js.map +1 -0
  302. package/dist/core/{p-47ae7d10.entry.js → p-c6bdbee1.entry.js} +2 -2
  303. package/dist/core/p-c6bdbee1.entry.js.map +1 -0
  304. package/dist/core/p-ca4bfffd.entry.js +2 -0
  305. package/dist/core/p-ca4bfffd.entry.js.map +1 -0
  306. package/dist/core/p-ccd141a9.entry.js +2 -0
  307. package/dist/core/p-ccd141a9.entry.js.map +1 -0
  308. package/dist/core/{p-e532fa26.entry.js → p-d5648fdc.entry.js} +2 -2
  309. package/dist/core/p-d5648fdc.entry.js.map +1 -0
  310. package/dist/core/p-d7bc2e7f.entry.js +2 -0
  311. package/dist/core/p-d7bc2e7f.entry.js.map +1 -0
  312. package/dist/core/{p-43891495.entry.js → p-d981ef7a.entry.js} +2 -2
  313. package/dist/core/{p-43891495.entry.js.map → p-d981ef7a.entry.js.map} +1 -1
  314. package/dist/core/{p-bc7d33e1.entry.js → p-e0b556b4.entry.js} +2 -2
  315. package/dist/core/p-e0b556b4.entry.js.map +1 -0
  316. package/dist/core/{p-10afa533.entry.js → p-eb6e3878.entry.js} +2 -2
  317. package/dist/core/{p-40f94113.entry.js → p-efd608ab.entry.js} +2 -2
  318. package/dist/core/{p-f08723ca.entry.js → p-f02d5539.entry.js} +2 -2
  319. package/dist/core/p-f95e52d8.entry.js +2 -0
  320. package/dist/core/p-f95e52d8.entry.js.map +1 -0
  321. package/dist/core/{p-a0c3f221.entry.js → p-fafc157b.entry.js} +2 -2
  322. package/dist/core/p-fafc157b.entry.js.map +1 -0
  323. package/dist/esm/core.js +1 -1
  324. package/dist/esm/{helpers-d399f9c8.js → helpers-759bbf51.js} +17 -17
  325. package/dist/esm/{helpers-d399f9c8.js.map → helpers-759bbf51.js.map} +1 -1
  326. package/dist/esm/{helpers-d3091c8c.js → helpers-fcc7a364.js} +31 -27
  327. package/dist/esm/helpers-fcc7a364.js.map +1 -0
  328. package/dist/esm/ic-accordion-group.entry.js +1 -1
  329. package/dist/esm/ic-accordion.entry.js +8 -1
  330. package/dist/esm/ic-accordion.entry.js.map +1 -1
  331. package/dist/esm/ic-alert.entry.js +2 -2
  332. package/dist/esm/ic-alert.entry.js.map +1 -1
  333. package/dist/esm/ic-back-to-top.entry.js +1 -1
  334. package/dist/esm/ic-badge.entry.js +2 -2
  335. package/dist/esm/ic-badge.entry.js.map +1 -1
  336. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  337. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  338. package/dist/esm/ic-button_3.entry.js +10 -7
  339. package/dist/esm/ic-button_3.entry.js.map +1 -1
  340. package/dist/esm/ic-card-horizontal.entry.js +17 -8
  341. package/dist/esm/ic-card-horizontal.entry.js.map +1 -1
  342. package/dist/esm/ic-card-vertical.entry.js +15 -6
  343. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  344. package/dist/esm/ic-checkbox-group.entry.js +5 -1
  345. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  346. package/dist/esm/ic-checkbox.entry.js +5 -1
  347. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  348. package/dist/esm/ic-chip.entry.js +9 -4
  349. package/dist/esm/ic-chip.entry.js.map +1 -1
  350. package/dist/esm/ic-data-row.entry.js +1 -1
  351. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  352. package/dist/esm/ic-data-table.entry.js +72 -61
  353. package/dist/esm/ic-data-table.entry.js.map +1 -1
  354. package/dist/esm/ic-date-input.entry.js +7 -2
  355. package/dist/esm/ic-date-input.entry.js.map +1 -1
  356. package/dist/esm/ic-date-picker.entry.js +6 -1
  357. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  358. package/dist/esm/ic-dialog.entry.js +1 -1
  359. package/dist/esm/ic-divider.entry.js +3 -3
  360. package/dist/esm/ic-divider.entry.js.map +1 -1
  361. package/dist/esm/ic-empty-state_2.entry.js +6 -3
  362. package/dist/esm/ic-empty-state_2.entry.js.map +1 -1
  363. package/dist/esm/ic-footer-link-group.entry.js +4 -5
  364. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  365. package/dist/esm/ic-footer-link.entry.js +4 -5
  366. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  367. package/dist/esm/ic-footer.entry.js +7 -8
  368. package/dist/esm/ic-footer.entry.js.map +1 -1
  369. package/dist/esm/ic-hero.entry.js +6 -7
  370. package/dist/esm/ic-hero.entry.js.map +1 -1
  371. package/dist/esm/ic-horizontal-scroll.entry.js +3 -3
  372. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  373. package/dist/esm/ic-input-component-container_3.entry.js +13 -4
  374. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  375. package/dist/esm/ic-input-label_2.entry.js +1 -1
  376. package/dist/esm/ic-link.entry.js +9 -6
  377. package/dist/esm/ic-link.entry.js.map +1 -1
  378. package/dist/esm/ic-menu-group.entry.js +1 -1
  379. package/dist/esm/ic-menu-item.entry.js +7 -1
  380. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  381. package/dist/esm/ic-navigation-button.entry.js +6 -7
  382. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  383. package/dist/esm/ic-navigation-group.entry.js +5 -6
  384. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  385. package/dist/esm/ic-navigation-item.entry.js +4 -4
  386. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  387. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  388. package/dist/esm/ic-page-header.entry.js +1 -1
  389. package/dist/esm/ic-pagination_4.entry.js +36 -7
  390. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  391. package/dist/esm/ic-popover-menu.entry.js +1 -1
  392. package/dist/esm/ic-radio-group.entry.js +9 -1
  393. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  394. package/dist/esm/ic-radio-option.entry.js +5 -1
  395. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  396. package/dist/esm/ic-search-bar.entry.js +7 -3
  397. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  398. package/dist/esm/ic-side-navigation.entry.js +5 -5
  399. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  400. package/dist/esm/ic-status-tag.entry.js +1 -1
  401. package/dist/esm/ic-step.entry.js +1 -1
  402. package/dist/esm/ic-stepper.entry.js +1 -1
  403. package/dist/esm/ic-switch.entry.js +6 -2
  404. package/dist/esm/ic-switch.entry.js.map +1 -1
  405. package/dist/esm/ic-tab-group.entry.js +1 -1
  406. package/dist/esm/ic-tab-panel.entry.js +1 -1
  407. package/dist/esm/ic-tab.entry.js +5 -2
  408. package/dist/esm/ic-tab.entry.js.map +1 -1
  409. package/dist/esm/ic-theme.entry.js +20 -20
  410. package/dist/esm/ic-theme.entry.js.map +1 -1
  411. package/dist/esm/ic-toast.entry.js +1 -1
  412. package/dist/esm/ic-toggle-button-group.entry.js +3 -0
  413. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  414. package/dist/esm/ic-toggle-button.entry.js +7 -1
  415. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  416. package/dist/esm/ic-top-navigation.entry.js +10 -6
  417. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  418. package/dist/esm/ic-tree-item.entry.js +13 -4
  419. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  420. package/dist/esm/ic-tree-view.entry.js +16 -4
  421. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  422. package/dist/esm/ic-typography.entry.js +1 -1
  423. package/dist/esm/loader.js +1 -1
  424. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +4 -3
  425. package/dist/types/components/ic-data-table/ic-data-table.d.ts +2 -0
  426. package/dist/types/components/ic-data-table/story-data.d.ts +78 -0
  427. package/dist/types/components/ic-date-input/ic-date-input.d.ts +1 -0
  428. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +1 -0
  429. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +6 -0
  430. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +9 -0
  431. package/dist/types/components.d.ts +24 -0
  432. package/dist/types/utils/helpers.d.ts +9 -9
  433. package/dist/types/utils/types.d.ts +5 -5
  434. package/hydrate/index.js +403 -233
  435. package/package.json +3 -3
  436. package/dist/cjs/helpers-55099147.js.map +0 -1
  437. package/dist/core/p-006afa83.entry.js +0 -2
  438. package/dist/core/p-006afa83.entry.js.map +0 -1
  439. package/dist/core/p-0687cc81.entry.js.map +0 -1
  440. package/dist/core/p-12b1db1b.entry.js +0 -2
  441. package/dist/core/p-12b1db1b.entry.js.map +0 -1
  442. package/dist/core/p-199ce579.entry.js +0 -2
  443. package/dist/core/p-199ce579.entry.js.map +0 -1
  444. package/dist/core/p-25597c03.js.map +0 -1
  445. package/dist/core/p-29623ad5.entry.js.map +0 -1
  446. package/dist/core/p-2d6fffa4.entry.js +0 -2
  447. package/dist/core/p-2d6fffa4.entry.js.map +0 -1
  448. package/dist/core/p-31082e64.entry.js +0 -2
  449. package/dist/core/p-31082e64.entry.js.map +0 -1
  450. package/dist/core/p-3bbfefcc.entry.js.map +0 -1
  451. package/dist/core/p-47ae7d10.entry.js.map +0 -1
  452. package/dist/core/p-59d48811.entry.js +0 -2
  453. package/dist/core/p-59d48811.entry.js.map +0 -1
  454. package/dist/core/p-690d0bbd.entry.js.map +0 -1
  455. package/dist/core/p-6f7cf143.entry.js +0 -2
  456. package/dist/core/p-6f7cf143.entry.js.map +0 -1
  457. package/dist/core/p-7a1f1e0d.entry.js +0 -2
  458. package/dist/core/p-7a1f1e0d.entry.js.map +0 -1
  459. package/dist/core/p-7c843bc8.entry.js.map +0 -1
  460. package/dist/core/p-7e358f32.entry.js.map +0 -1
  461. package/dist/core/p-81da002e.entry.js +0 -2
  462. package/dist/core/p-81da002e.entry.js.map +0 -1
  463. package/dist/core/p-83c09d8d.entry.js +0 -2
  464. package/dist/core/p-83c09d8d.entry.js.map +0 -1
  465. package/dist/core/p-8d933976.entry.js +0 -2
  466. package/dist/core/p-8d933976.entry.js.map +0 -1
  467. package/dist/core/p-91cf88d6.entry.js.map +0 -1
  468. package/dist/core/p-92f443aa.entry.js +0 -2
  469. package/dist/core/p-92f443aa.entry.js.map +0 -1
  470. package/dist/core/p-982deb94.entry.js +0 -2
  471. package/dist/core/p-982deb94.entry.js.map +0 -1
  472. package/dist/core/p-99c76218.entry.js +0 -2
  473. package/dist/core/p-99c76218.entry.js.map +0 -1
  474. package/dist/core/p-9ae77f11.entry.js +0 -2
  475. package/dist/core/p-9ae77f11.entry.js.map +0 -1
  476. package/dist/core/p-a0c3f221.entry.js.map +0 -1
  477. package/dist/core/p-b2389339.js.map +0 -1
  478. package/dist/core/p-b4dd4835.entry.js.map +0 -1
  479. package/dist/core/p-bc7d33e1.entry.js.map +0 -1
  480. package/dist/core/p-bdce46ca.entry.js.map +0 -1
  481. package/dist/core/p-be7bc371.entry.js +0 -2
  482. package/dist/core/p-be7bc371.entry.js.map +0 -1
  483. package/dist/core/p-c12f3582.entry.js +0 -2
  484. package/dist/core/p-c12f3582.entry.js.map +0 -1
  485. package/dist/core/p-c5ea1e19.entry.js +0 -2
  486. package/dist/core/p-c5ea1e19.entry.js.map +0 -1
  487. package/dist/core/p-c894bc8f.entry.js.map +0 -1
  488. package/dist/core/p-df05b999.entry.js.map +0 -1
  489. package/dist/core/p-e4b9221b.entry.js.map +0 -1
  490. package/dist/core/p-e532fa26.entry.js.map +0 -1
  491. package/dist/core/p-e89e5ec8.entry.js +0 -2
  492. package/dist/core/p-e89e5ec8.entry.js.map +0 -1
  493. package/dist/core/p-f4414801.entry.js +0 -2
  494. package/dist/core/p-f4414801.entry.js.map +0 -1
  495. package/dist/esm/helpers-d3091c8c.js.map +0 -1
  496. /package/dist/core/{p-6f92ee7a.entry.js.map → p-07881c14.entry.js.map} +0 -0
  497. /package/dist/core/{p-3106c4fd.entry.js.map → p-19f85b60.entry.js.map} +0 -0
  498. /package/dist/core/{p-70543f44.entry.js.map → p-2412ba0b.entry.js.map} +0 -0
  499. /package/dist/core/{p-9235425c.entry.js.map → p-26a41692.entry.js.map} +0 -0
  500. /package/dist/core/{p-160de322.entry.js.map → p-3272931c.entry.js.map} +0 -0
  501. /package/dist/core/{p-f5d1e747.entry.js.map → p-3b84953c.entry.js.map} +0 -0
  502. /package/dist/core/{p-3b3a8108.entry.js.map → p-3bc4bc81.entry.js.map} +0 -0
  503. /package/dist/core/{p-fca3589b.entry.js.map → p-47f2f713.entry.js.map} +0 -0
  504. /package/dist/core/{p-c4dc8fdf.entry.js.map → p-5d749879.entry.js.map} +0 -0
  505. /package/dist/core/{p-dd3a9cb1.entry.js.map → p-68eb216b.entry.js.map} +0 -0
  506. /package/dist/core/{p-ffe923ae.entry.js.map → p-6a2ed698.entry.js.map} +0 -0
  507. /package/dist/core/{p-bd5aada7.entry.js.map → p-7a9de1bb.entry.js.map} +0 -0
  508. /package/dist/core/{p-9da6df82.entry.js.map → p-83f39782.entry.js.map} +0 -0
  509. /package/dist/core/{p-acb0eddb.entry.js.map → p-8e300091.entry.js.map} +0 -0
  510. /package/dist/core/{p-b4eb1c6d.entry.js.map → p-95d1c9e6.entry.js.map} +0 -0
  511. /package/dist/core/{p-a67c358a.entry.js.map → p-b7e5b682.entry.js.map} +0 -0
  512. /package/dist/core/{p-10afa533.entry.js.map → p-eb6e3878.entry.js.map} +0 -0
  513. /package/dist/core/{p-40f94113.entry.js.map → p-efd608ab.entry.js.map} +0 -0
  514. /package/dist/core/{p-f08723ca.entry.js.map → p-f02d5539.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["icDateInputCss","inputIds","DateInput","this","ARIA_INVALID","ARIA_LABEL","ARIA_LABELLED_BY","EVENT_OBJECT_STRING","FIT_TO_VALUE","initialValue","value","INPUT_EVENT_OBJECT_STRING","inputsInOrder","isAfterMax","isBeforeMin","isDateSetFromKeyboardEvent","isDisabledDate","isValidDay","isValidMonth","isValidDate","isZuluTime","KEYBOARD_EVENT_OBJECT_STRING","MAX_DAY","MAX_MONTH","previousEmittedDate","undefined","previousSelectedDate","selectedDate","setInputPasteValue","input","pastedValue","inputEl","classList","add","checkSingleCopiedValueIsValid","isValid","Number","dayInputEl","monthInputEl","yearInputEl","isKeyboardOrEvent","event","Object","prototype","toString","call","setDateValidity","isEmptyString","day","month","handleInput","inputEvent","target","inputType","preventAutoFormatting","length","setInputValue","notifyScreenReader","moveToNextInput","setPreventInput","setFitToValueStyling","setValidationMessage","handleKeyDown","isInputPrevented","eventKey","_a","key","toLowerCase","regex","test","ctrlKey","metaKey","preventDefault","setPasteInvalidText","handleLeftRightArrowKeyPress","handleUpDownArrowKeyPress","preventInput","handleFocus","select","handleBlur","autocompleteInput","moveToPreviousInput","notifyScreenReaderSelectedDate","dayNames","stringEnumToArray","IcDayNames","months","IcDateInputMonths","selectedDateInfoEl","textContent","getDay","getDate","getMonth","getFullYear","minValue","maxValue","Date","handleDateChange","force","dateMatches","forEach","year","invalidDateText","setValueAndEmitChange","updateInputValues","slicePastedDate","valueLength","datePart","slice","isPastedStringDateValid","handlePaste","clipboardData","getData","setPastedValueAndValidation","setDate","date","remove","isDateOrEpoch","newDate","convertToDoubleDigits","defaultDateArray","splitStringDate","dateFormat","formatMinMax","formattedDate","clear","newValue","convertToDate","isSelectedDateDisabled","setAttribute","removeAttribute","invalidDateMessage","disablePast","disablePastMessage","minDate","disableFuture","disableFutureMessage","maxDate","disableDays","disableDaysMessage","setInputsInOrder","inputs","el","shadowRoot","querySelectorAll","push","setAriaLabelledBy","disabled","inputCompContainerEl","getAttribute","removeAriaLabelledBy","labelEl","querySelector","labelId","inputId","id","hasValidation","validationStatus","validationText","labelledBy","_b","screenReaderInfoId","getInputDescribedByText","helperText","defaultHelperText","selectedDateInfoId","assistiveHintId","isPrevented","preventDayInput","preventMonthInput","preventYearInput","getInputFromDatePart","dayInput","h","class","ref","placeholder","onPaste","inputmode","pattern","onKeyDown","monthInput","yearInput","maxLength","getInputsInOrder","dateParts","split","part","substring","getDescOfInputsOrder","description","getScreenReaderInfo","inputDescriptors","required","IcInformationStatus","Error","selectedString","selectionStart","selectionEnd","currentDate","isNotToday","toDateString","includes","currentInput","currentInputPos","findIndex","nextInput","focus","autocompleteYear","inputValue","yearNumbers","autocompletedInput","number","index","handleHostBlur","removeLabelledBy","icBlur","emit","handleHostFocus","activeElement","match","icFocus","handleFormReset","getAriaLabel","notifyScreenReaderArrowKeys","liveRegion","announcement","ariaLabel","notifyScreenReaderInput","setAriaInvalid","validDay","validMonth","validDate","disabledDate","handleClear","handleCalendarOpen","ev","stopImmediatePropagation","calendarButtonEl","displayTooltip","calendarButtonClicked","emitIcChange","handleCalendarFocus","calendarFocused","handleCalendarBlur","handleClearFocus","clearButtonFocused","handleClearBlur","relatedTarget","d","icChange","watchDisableFutureHandler","watchMaxHandler","watchDisablePastHandler","watchMinHandler","createDate","max","min","watchRequiredHandler","asteriskSpan","document","createElement","appendChild","disconnectedCallback","removeFormResetListener","componentWillLoad","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","addEventListener","componentWillUpdate","componentDidRender","setCalendarFocus","setDisableDays","days","triggerIcChange","nextParsedValue","extractDateFromZuluDateTime","pasteZuluDateTime","dateValue","isNumeric","displayPastedValidation","previousInvalidDateTest","isPasteValidationDisplayed","render","hideHelperText","hideLabel","showClearButton","showCalendarButton","size","theme","hasCustomValidation","assistiveHint","renderHiddenInput","name","Host","onBlur","onFocus","for","role","innerHTML","Clear","onClick","variant","divider","Calendar","status","message"],"sources":["src/components/ic-date-input/ic-date-input.css?tag=ic-date-input&encapsulation=shadow","src/components/ic-date-input/ic-date-input.tsx"],"sourcesContent":["@import \"../../../dist/core/normalize.css\";\n\n:host {\n --ic-input-label-helpertext-padding: var(--ic-space-xxs);\n --input-bg-color: var(--ic-date-input-bg);\n --ic-input-label-text-color: var(--ic-date-input-label);\n --ic-input-label-helper-text-color: var(--ic-date-input-subtitle);\n --border-color: var(--ic-date-input-border);\n --border-color-disabled: var(--ic-date-input-border-disabled);\n --border-color-hover: var(--ic-date-input-border-default-hover);\n --border-color-pressed: var(--ic-date-input-border-default-pressed);\n --border-error-color: var(--ic-date-input-border-error);\n --border-error-color-hover: var(--ic-date-input-border-error-hover);\n --border-error-color-pressed: var(--ic-date-input-border-error-pressed);\n --border-success-color: var(--ic-date-input-border-success);\n --border-success-color-hover: var(--ic-date-input-border-success-hover);\n --border-success-color-pressed: var(--ic-date-input-border-success-pressed);\n --border-warning-color: var(--ic-date-input-border-warning);\n --border-warning-color-hover: var(--ic-date-input-border-warning-hover);\n --border-warning-color-pressed: var(--ic-date-input-border-warning-pressed);\n}\n\n:host(.ic-date-input-disabled) {\n --ic-input-label-text-color: var(--ic-date-input-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-date-input-subtitle-disabled);\n}\n\ninput {\n border: 0;\n height: 100%;\n padding: 0;\n outline: none;\n background: none;\n -moz-appearance: textfield;\n appearance: textfield;\n color: var(--ic-date-input-text-filled);\n caret-color: var(--ic-date-input-typing-cursor);\n}\n\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n}\n\ninput:-webkit-autofill {\n box-shadow: 0 0 0 var(--ic-space-sm) var(--ic-architectural-white) inset;\n}\n\ninput::placeholder {\n color: var(--ic-date-input-text-placeholder);\n}\n\nic-input-component-container {\n cursor: text;\n}\n\nic-input-component-container .focus-indicator {\n padding: var(--ic-space-xxxs) var(--ic-space-xs);\n align-items: center;\n}\n\n.date-inputs {\n color: var(--ic-date-input-text-placeholder);\n}\n\n.day-input {\n width: 1.438rem;\n}\n\n.month-input {\n width: 1.813rem;\n}\n\n.year-input,\n.year-input.fit-to-value {\n width: 2.313rem;\n}\n\n.fit-to-value {\n width: 1.25rem;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n.input-container {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n}\n\n.action-buttons {\n display: flex;\n align-items: center;\n}\n\n.show-calendar-button-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.clear-button,\n.calendar-button {\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n margin: 0;\n}\n\n.clear-button.hidden {\n display: none;\n}\n\n.clear-button:focus,\n.calendar-button:focus,\n.clear-button:active,\n.calendar-button:active {\n background-color: var(--ic-color-focus-inner) !important;\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;\n border-radius: 0.25rem;\n}\n\n.calendar-button:focus,\n.calendar-button:active {\n --ic-button-tertiary-text-active: var(--ic-atoms-input-clear-button-focus);\n --ic-button-tertiary-text-hover-active: var(\n --ic-atoms-input-clear-button-focus\n );\n --ic-button-tertiary-text-pressed-active: var(\n --ic-atoms-input-clear-button-focus\n );\n}\n\n.clear-button:focus,\n.calendar-button:focus,\n.clear-button:active *,\n.calendar-button:active * {\n fill: var(--ic-architectural-white);\n}\n\n.clear-button svg {\n color: var(--ic-date-input-clear-icon);\n}\n\n.divider {\n margin: 0 var(--ic-space-xxs);\n width: var(--ic-space-1px);\n background-color: var(--ic-atoms-input-divider);\n border-radius: var(--ic-space-1px);\n}\n\n.divider.small {\n height: var(--ic-space-md);\n}\n\n.divider.medium {\n height: calc(var(--ic-space-sm) + var(--ic-space-xs));\n}\n\n.divider.large {\n height: var(--ic-space-lg);\n}\n\nic-input-validation {\n --ic-input-validation-status-text-color: var(--ic-date-input-status-text);\n --ic-input-validation-error: var(--ic-date-input-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-date-input-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-date-input-icon-success);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Host,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSizes,\n IcDateFormat,\n IcDateInputMonths,\n IcDayNames,\n IcWeekDays,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n convertToDoubleDigits,\n createDate,\n dateMatches,\n extractDateFromZuluDateTime,\n isDateOrEpoch,\n splitStringDate,\n} from \"../../utils/date-helpers\";\nimport {\n addFormResetListener,\n getInputDescribedByText,\n isEmptyString,\n isNumeric,\n onComponentRequiredPropUndefined,\n removeFormResetListener,\n renderHiddenInput,\n stringEnumToArray,\n} from \"../../utils/helpers\";\nimport Clear from \"../../assets/clear-icon.svg\";\nimport Calendar from \"../../assets/calendar.svg\";\n\nlet inputIds = 0;\n\n@Component({\n tag: \"ic-date-input\",\n styleUrl: \"ic-date-input.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class DateInput {\n private ARIA_INVALID = \"aria-invalid\";\n private ARIA_LABEL = \"aria-label\";\n private ARIA_LABELLED_BY = \"aria-labelledby\";\n private assistiveHintId: string;\n private calendarButtonEl: HTMLIcButtonElement;\n private dayInputEl: HTMLInputElement;\n private defaultHelperText: string;\n private EVENT_OBJECT_STRING = \"[object Event]\";\n private FIT_TO_VALUE = \"fit-to-value\";\n\n private initialValue = this.value;\n private inputCompContainerEl: HTMLIcInputComponentContainerElement;\n private INPUT_EVENT_OBJECT_STRING = \"[object InputEvent]\";\n private inputsInOrder: HTMLInputElement[] = [];\n\n private isAfterMax: boolean = false;\n private isBeforeMin: boolean = false;\n private isDateSetFromKeyboardEvent: boolean = false;\n private isDisabledDate: boolean = false;\n private isPasteValidationDisplayed: boolean;\n private isValidDay: boolean = true;\n private isValidMonth: boolean = true;\n private isValidDate: boolean = true;\n private isZuluTime: boolean = false;\n\n private KEYBOARD_EVENT_OBJECT_STRING = \"[object KeyboardEvent]\";\n private MAX_DAY = 31;\n private MAX_MONTH = 12;\n private monthInputEl: HTMLInputElement;\n\n private preventAutoFormatting: boolean;\n private preventDayInput: boolean;\n private preventMonthInput: boolean;\n private preventYearInput: boolean;\n\n private previousInvalidDateTest: string;\n private previousEmittedDate: Date = undefined;\n private previousSelectedDate: Date = null;\n\n private selectedDate: Date = null;\n private selectedDateInfoEl: HTMLSpanElement;\n private screenReaderInfoId: string;\n private selectedDateInfoId: string;\n\n private yearInputEl: HTMLInputElement;\n\n @Element() el: HTMLIcDateInputElement;\n\n @State() day: string = \"\";\n @State() invalidDateText: string;\n @State() maxDate: Date;\n @State() minDate: Date;\n @State() month: string = \"\";\n @State() year: string = \"\";\n @State() calendarFocused: boolean = false;\n @State() clearButtonFocused: boolean = false;\n @State() removeLabelledBy: boolean = false;\n\n /**\n * The format in which the date will be displayed.\n */\n // eslint-disable-next-line sonarjs/no-duplicate-string\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({ mutable: true }) disableDays?: IcWeekDays[] = [];\n\n /**\n * The text to display as the validation message when `disableDays` is set 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({ mutable: true }) 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 will still be read out by screen readers.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId?: string = `ic-date-input-${inputIds++}`;\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 = this.inputId;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required?: boolean = false;\n\n @Watch(\"required\")\n watchRequiredHandler(): void {\n // Prevent asterisk being read out after the label by screen reader (by applying aria-hidden)\n // Needed because label is included in 'aria-labelledby' instead of using 'aria-label'\n const labelEl = this.el.shadowRoot.querySelector(\"label\");\n if (this.required) {\n const asteriskSpan = document.createElement(\"span\");\n asteriskSpan.setAttribute(\"id\", \"asterisk-span\");\n asteriskSpan.setAttribute(\"aria-hidden\", \"true\");\n asteriskSpan.textContent = \" *\";\n labelEl?.appendChild(asteriskSpan);\n } else {\n const asteriskSpan = this.el.shadowRoot.querySelector(\"#asterisk-span\");\n if (asteriskSpan) {\n asteriskSpan.remove();\n }\n }\n }\n\n /**\n * @internal If `true`, a button which displays the calendar view when clicked will be displayed.\n */\n @Prop() showCalendarButton?: boolean = false;\n\n /**\n * If `true`, a button which clears the date input when clicked will be displayed.\n */\n @Prop() showClearButton?: boolean = true;\n\n /**\n * The size of the date input to be displayed.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * Sets the date picker to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value of the date input. 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 /**\n * The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in date validation.\n */\n @Prop({ mutable: true }) 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 * @internal Emitted when the calendar is opened.\n */\n @Event() calendarButtonClicked: EventEmitter<{ value: Date }>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() icBlur: EventEmitter<{ value: Date }>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{ value: Date }>;\n\n /**\n * Emitted when the input gains focus.\n */\n @Event() icFocus: EventEmitter<{ value: Date }>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.defaultHelperText = `Use format ${this.dateFormat}`;\n\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n\n this.watchMinHandler();\n this.watchMaxHandler();\n\n if (this.value) {\n this.setDate(this.value);\n this.previousEmittedDate = this.selectedDate;\n } else {\n this.previousEmittedDate = null;\n }\n\n this.screenReaderInfoId = `${this.inputId}-screen-reader-info`;\n this.assistiveHintId = `${this.inputId}-assistive-hint`;\n this.selectedDateInfoId = `${this.inputId}-selected-date-info`;\n\n addFormResetListener(this.el, this.handleFormReset);\n }\n\n componentDidLoad(): void {\n this.setInputsInOrder();\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Date Input\"\n );\n\n if (this.value) {\n this.updateInputValues(this.day, this.month, this.year);\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n\n this.setAriaInvalid(\n this.isValidDay,\n this.isValidMonth,\n this.isValidDate,\n this.isDisabledDate\n );\n\n if (this.value) {\n this.notifyScreenReaderSelectedDate();\n }\n\n this.inputsInOrder.forEach((input) => {\n input.addEventListener(\"input\", this.handleInput);\n input.addEventListener(\"focus\", this.handleFocus);\n input.addEventListener(\"blur\", this.handleBlur);\n });\n\n this.watchRequiredHandler();\n }\n\n componentWillUpdate(): void {\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n\n if (!this.isDateSetFromKeyboardEvent) this.setDate(this.value);\n\n this.setAriaInvalid(\n this.isValidDay,\n this.isValidMonth,\n this.isValidDate,\n this.isDisabledDate\n );\n this.handleDateChange(false);\n this.isDateSetFromKeyboardEvent = false;\n }\n\n componentDidRender(): void {\n if (this.removeLabelledBy) {\n this.removeAriaLabelledBy();\n return;\n }\n\n this.setAriaLabelledBy();\n }\n\n /**\n * Returns the value as a Date object\n * @returns Date\n */\n @Method()\n async getDate(): Promise<Date> {\n return this.selectedDate;\n }\n\n /**\n * @internal Sets focus on the calendar button.\n */\n @Method()\n async setCalendarFocus(): Promise<void> {\n if (this.calendarButtonEl) {\n this.calendarButtonEl.focus();\n }\n }\n\n /**\n * @internal Used to pass disabledDays from parent component.\n */\n @Method()\n async setDisableDays(days: IcWeekDays[]): Promise<void> {\n this.disableDays = days;\n }\n\n /**\n * @internal Used to enable other components to invoke an IcChange event from the input.\n */\n @Method()\n async triggerIcChange(d: Date): Promise<void> {\n this.emitIcChange(d);\n }\n\n private setInputPasteValue = (input: EventTarget, pastedValue: string) => {\n const inputEl = input as HTMLInputElement;\n\n inputEl.value = pastedValue;\n inputEl.classList.add(this.FIT_TO_VALUE);\n };\n\n private checkSingleCopiedValueIsValid = (\n input: EventTarget,\n pastedValue: string\n ) => {\n let isValid = false;\n const value = Number(pastedValue);\n\n switch (input) {\n case this.dayInputEl:\n isValid = value >= 1 && value <= this.MAX_DAY;\n break;\n case this.monthInputEl:\n isValid = value >= 1 && value <= this.MAX_MONTH;\n break;\n case this.yearInputEl:\n isValid = true;\n break;\n default:\n isValid = false;\n break;\n }\n\n return isValid;\n };\n\n /**\n * Using Object.prototype.string to determine type if event from user\n * @param event - event object used to differentiate keyboard, generic or input event\n * @returns boolean\n */\n private isKeyboardOrEvent = (event: Event) => {\n return (\n Object.prototype.toString.call(event) === this.EVENT_OBJECT_STRING ||\n Object.prototype.toString.call(event) ===\n this.KEYBOARD_EVENT_OBJECT_STRING\n );\n };\n\n private setDateValidity = () => {\n if (!isEmptyString(this.day)) {\n this.isValidDay = +this.day > this.MAX_DAY ? false : true;\n } else {\n this.isValidDay = true;\n }\n\n if (!isEmptyString(this.month)) {\n this.isValidMonth = +this.month > this.MAX_MONTH ? false : true;\n } else {\n this.isValidMonth = true;\n }\n };\n\n private handleInput = (event: Event) => {\n const inputEvent = event as InputEvent;\n const input = event.target as HTMLInputElement;\n\n if (input !== this.yearInputEl) {\n // Only auto-format if input event is not a character being deleted\n // and not as user is changing value using up / down keys\n if (\n inputEvent.inputType !== \"deleteContentBackward\" &&\n !this.preventAutoFormatting\n ) {\n if (\n input.value.length === 1 &&\n ((input === this.dayInputEl && +input.value >= 4) ||\n (input === this.monthInputEl && +input.value >= 2)) &&\n +input.value <= 9\n ) {\n this.setInputValue(input);\n this.notifyScreenReader(input, event);\n this.moveToNextInput(input);\n }\n\n if (input.value.length === 2) {\n if (+input.value === 0) {\n input.value = \"01\";\n }\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.notifyScreenReader(input, event);\n this.moveToNextInput(input);\n } else {\n this.setPreventInput(input, false);\n }\n } else if (this.preventAutoFormatting) {\n /**\n * Using arrow keys prevents auto formatting so need to deal with\n * switching from arrow keys to inputting numbers\n **/\n if (input.value.length === 2 && !this.isKeyboardOrEvent(event)) {\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.moveToNextInput(input);\n } else {\n this.setInputValue(input);\n }\n }\n\n if (input.value.length !== 2) {\n this.setPreventInput(input, false);\n }\n } else {\n if (input.value.length === 4) {\n this.setInputValue(input);\n if (\n Object.prototype.toString.call(event) !== this.EVENT_OBJECT_STRING\n ) {\n this.moveToNextInput(input);\n }\n this.setPreventInput(input, true);\n } else {\n this.setInputValue(input, true);\n this.setPreventInput(input, false);\n }\n }\n\n // Add / remove class to make input width match size of value i.e. 2 digits' width for day / month, 4 for year\n this.setFitToValueStyling(input);\n\n if (input.value.length === 0) {\n this.setInputValue(input, true);\n this.setValidationMessage();\n }\n\n this.notifyScreenReader(input, event);\n };\n\n private handleKeyDown = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const input = event.target as HTMLInputElement;\n\n const eventKey = event.key?.toLowerCase();\n // Regex required due to FF allowing all characters as values for number text field.\n const regex =\n /-?\\d*\\.?\\d+(e[-+]?\\d+)?|[/-]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;\n if (\n !regex.test(eventKey) &&\n !(\n (event.ctrlKey || event.metaKey) &&\n (eventKey === \"v\" || eventKey === \"c\")\n )\n ) {\n event.preventDefault();\n }\n\n switch (eventKey) {\n case \"/\":\n case \"-\":\n case \".\":\n event.preventDefault();\n this.setPasteInvalidText();\n this.moveToNextInput(input);\n break;\n case \"arrowright\":\n case \"arrowleft\":\n event.preventDefault();\n this.handleLeftRightArrowKeyPress(input, eventKey);\n break;\n case \"arrowup\":\n case \"arrowdown\":\n this.preventAutoFormatting = true;\n this.handleUpDownArrowKeyPress(input, event);\n break;\n default:\n break;\n }\n\n this.preventInput(event, isInputPrevented);\n this.isDateSetFromKeyboardEvent = true;\n };\n\n private handleFocus = (event: FocusEvent) => {\n // Highlight / select all characters in input for easy replacement\n const input = event.target as HTMLInputElement;\n\n input.select();\n };\n\n private handleBlur = (event: FocusEvent) => {\n const input = event.target as HTMLInputElement;\n\n this.setPasteInvalidText();\n this.autocompleteInput(input);\n };\n\n private handleLeftRightArrowKeyPress = (\n input: HTMLInputElement,\n key: string\n ) => {\n if (key === \"arrowright\") {\n this.moveToNextInput(input);\n } else {\n this.moveToPreviousInput(input);\n }\n\n this.setPasteInvalidText();\n };\n\n private notifyScreenReaderSelectedDate = () => {\n const dayNames = stringEnumToArray(IcDayNames);\n const months = stringEnumToArray(IcDateInputMonths);\n\n this.selectedDateInfoEl.textContent = `Selected date: ${\n dayNames[this.selectedDate.getDay()]\n }, ${this.selectedDate.getDate()} ${\n months[this.selectedDate.getMonth()]\n } ${this.selectedDate.getFullYear()}`;\n };\n\n private handleUpDownArrowKeyPress = (\n input: HTMLInputElement,\n event: KeyboardEvent\n ) => {\n const minValue = input === this.yearInputEl ? 0 : 1;\n\n let maxValue;\n\n switch (input) {\n case this.dayInputEl:\n maxValue = this.MAX_DAY;\n break;\n case this.monthInputEl:\n maxValue = this.MAX_MONTH;\n break;\n case this.yearInputEl:\n maxValue = 9999;\n }\n\n // Make value loop round when min / max reached\n if (input?.value) {\n if (event.key === \"ArrowUp\") {\n if (+input.value === maxValue) {\n event.preventDefault();\n input.value = `0${minValue}`;\n } else {\n input.value =\n +input.value + 1 < 10\n ? `0${+input.value + 1}`\n : (+input.value + 1).toString();\n }\n this.notifyScreenReader(input, event);\n }\n\n if (event.key === \"ArrowDown\") {\n if (+input.value === minValue) {\n event.preventDefault();\n input.value = maxValue.toString();\n } else {\n input.value =\n +input.value - 1 < 10\n ? `0${+input.value - 1}`\n : (+input.value - 1).toString();\n }\n this.notifyScreenReader(input, event);\n }\n } else {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n if (input === this.yearInputEl) {\n input.value = new Date().getFullYear().toString();\n } else {\n input.value = maxValue.toString();\n }\n this.notifyScreenReader(input, event);\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n if (input === this.yearInputEl) {\n input.value = new Date().getFullYear().toString();\n } else {\n input.value = `0${minValue}`;\n }\n this.notifyScreenReader(input, event);\n }\n }\n\n this.setInputValue(input);\n this.setFitToValueStyling(input);\n };\n\n private handleDateChange = (force: boolean) => {\n // Prevent icChange being emitted when each individual input is changed\n // This method is used within componentWillUpdate instead of using @Watch('value');\n if (force || !dateMatches(this.selectedDate, this.previousSelectedDate)) {\n if (this.value) {\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n if (this.day && this.month && this.year && this.invalidDateText === \"\") {\n this.setValueAndEmitChange(this.selectedDate);\n this.notifyScreenReaderSelectedDate();\n } else if (\n !(this.selectedDate === null && this.previousSelectedDate === null)\n ) {\n this.setValueAndEmitChange(null);\n this.selectedDateInfoEl.textContent = \"\";\n }\n this.previousSelectedDate = this.selectedDate;\n\n if (!this.isDateSetFromKeyboardEvent) {\n this.updateInputValues(this.day, this.month, this.year);\n }\n }\n };\n\n private slicePastedDate = (valueLength: number, datePart: string): string => {\n return datePart.length > valueLength\n ? datePart.slice(0, valueLength)\n : datePart;\n };\n\n private isPastedStringDateValid = (value: string) => {\n if (\n /\\d+-\\d+-\\d+$/.test(value) ||\n /\\d+\\/\\d+\\/\\d+/.test(value) ||\n /\\d+\\.\\d+\\.\\d+/.test(value)\n ) {\n return true;\n }\n\n if (\n /[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(?::[0-9]{2}(?:\\.\\d+)?)?Z/.test(\n value\n )\n ) {\n this.isZuluTime = true;\n return true;\n }\n\n return false;\n };\n\n // Set value of each input to value of pasted date part\n // Allows formats separated by '-' or '/'\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n\n const pastedValue = event.clipboardData.getData(\"Text\");\n const isValidDate = this.isPastedStringDateValid(pastedValue);\n\n this.setPastedValueAndValidation(isValidDate, pastedValue, event);\n };\n\n private setDate = (date: string | Date) => {\n if (date === null || date === \"\" || date === undefined) {\n this.day = null;\n this.month = null;\n this.year = null;\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setPreventInput(input, false);\n });\n this.handleDateChange(true);\n } else {\n if (isDateOrEpoch(date)) {\n let newDate;\n if (typeof date === \"string\") {\n // Checking if epoch date time\n newDate = new Date(+date);\n } else {\n newDate = date;\n }\n\n this.day = convertToDoubleDigits(newDate.getDate());\n this.month = convertToDoubleDigits(newDate.getMonth() + 1);\n this.year = newDate.getFullYear().toString();\n } else if (typeof date === \"string\") {\n const defaultDateArray = splitStringDate(date, this.dateFormat);\n this.year = defaultDateArray[0];\n this.month = defaultDateArray[1];\n this.day = defaultDateArray[2];\n }\n }\n\n this.setValidationMessage();\n };\n\n private formatMinMax = (date: Date) => {\n let formattedDate;\n\n const day = convertToDoubleDigits(date.getDate());\n const month = convertToDoubleDigits(date.getMonth() + 1);\n const year = date.getFullYear();\n\n switch (this.dateFormat) {\n case \"DD/MM/YYYY\":\n formattedDate = `${day}/${month}/${year}`;\n break;\n case \"MM/DD/YYYY\":\n formattedDate = `${month}/${day}/${year}`;\n break;\n case \"YYYY/MM/DD\":\n formattedDate = `${year}/${month}/${day}`;\n break;\n default:\n break;\n }\n return formattedDate;\n };\n private updateInputValues = (day: string, month: string, year: string) => {\n this.dayInputEl.value = day;\n this.monthInputEl.value = month;\n this.yearInputEl.value = year;\n };\n\n // Set value in state based on input\n private setInputValue = (input: HTMLInputElement, clear = false) => {\n const newValue = clear ? \"\" : input.value;\n\n switch (input) {\n case this.dayInputEl:\n this.day = newValue;\n break;\n case this.monthInputEl:\n this.month = newValue;\n break;\n case this.yearInputEl:\n if (this.year !== newValue) {\n this.year = newValue;\n }\n }\n\n this.setValidationMessage();\n };\n\n private setValidationMessage = () => {\n this.setDateValidity();\n\n if (\n !isEmptyString(this.day) &&\n !isEmptyString(this.month) &&\n !isEmptyString(this.year)\n ) {\n // Check whether date actually exists\n // (used https://www.hectane.com/blog/javascript-date-validation-with-leap-year)\n this.selectedDate = this.convertToDate(this.year, this.month, this.day);\n this.isValidDate =\n +this.selectedDate !== 0 && this.selectedDate.getDate() == +this.day;\n this.isDisabledDate = this.isSelectedDateDisabled();\n\n if (!this.isValidDate || this.isDisabledDate) {\n this.inputsInOrder.forEach((input) =>\n input.setAttribute(this.ARIA_INVALID, \"true\")\n );\n } else {\n this.inputsInOrder.forEach((input) =>\n input.removeAttribute(this.ARIA_INVALID)\n );\n }\n } else {\n this.selectedDate = null;\n }\n\n if (!(this.isValidDay && this.isValidMonth && this.isValidDate)) {\n this.invalidDateText = this.invalidDateMessage;\n } else if (this.isDisabledDate && this.selectedDate !== null) {\n if (this.isBeforeMin) {\n if (this.disablePast) {\n this.invalidDateText = this.disablePastMessage;\n } else {\n this.invalidDateText = `Please enter a date after ${this.formatMinMax(\n this.minDate\n )}.`;\n }\n } else if (this.isAfterMax) {\n if (this.disableFuture) {\n this.invalidDateText = this.disableFutureMessage;\n } else {\n this.invalidDateText = `Please enter a date before ${this.formatMinMax(\n this.maxDate\n )}.`;\n }\n } else if (this.disableDays.length !== 0) {\n this.invalidDateText = this.disableDaysMessage;\n } else {\n if (this.disablePast) {\n this.invalidDateText = this.disablePastMessage;\n }\n if (this.disableFuture) {\n this.invalidDateText = this.disableFutureMessage;\n }\n }\n } else {\n this.invalidDateText = \"\";\n }\n };\n\n // Set refs to the input elements in the order they are displayed (based on the dateFormat)\n private setInputsInOrder = () => {\n const inputs = this.el.shadowRoot.querySelectorAll(\"input\");\n inputs.forEach((input) => this.inputsInOrder.push(input));\n };\n\n // Includes text usually added using aria-describedby\n // (which doesn't work on input component container)\n private setAriaLabelledBy = () => {\n if (\n this.disabled &&\n !isEmptyString(\n this.inputCompContainerEl?.getAttribute(this.ARIA_LABELLED_BY)\n )\n ) {\n this.removeAriaLabelledBy();\n return;\n }\n\n if (this.disabled) {\n return;\n }\n\n const labelEl = this.el.shadowRoot.querySelector(\"label\");\n const labelId = `${this.inputId}-label`;\n\n if (labelEl !== null && labelEl !== undefined) {\n labelEl.id = labelId;\n }\n\n const hasValidation =\n (!isEmptyString(this.validationStatus) &&\n !isEmptyString(this.validationText)) ||\n !isEmptyString(this.invalidDateText);\n\n const labelledBy = `${labelEl?.id ?? \"\"} ${\n this.screenReaderInfoId\n } ${getInputDescribedByText(\n this.inputId,\n this.helperText !== \"\" && this.helperText !== this.defaultHelperText,\n hasValidation\n )} ${this.selectedDate ? this.selectedDateInfoId : \"\"} ${\n this.assistiveHintId\n }`;\n\n this.inputCompContainerEl.setAttribute(this.ARIA_LABELLED_BY, labelledBy);\n };\n\n // Sets boolean for each input, used to limit the number of characters within each field (2 for day / month, 4 for year)\n private setPreventInput = (input: HTMLInputElement, isPrevented: boolean) => {\n switch (input) {\n case this.dayInputEl:\n this.preventDayInput = isPrevented;\n break;\n case this.monthInputEl:\n this.preventMonthInput = isPrevented;\n break;\n case this.yearInputEl:\n this.preventYearInput = isPrevented;\n }\n };\n\n // Get input based on letter representing each date part (\"D\", \"M\" or \"Y\")\n // (retrieved from dateFormat)\n private getInputFromDatePart = (datePart: string) => {\n const dayInput = (\n <input\n class=\"day-input\"\n id=\"day-input\"\n ref={(el) => (this.dayInputEl = el)}\n aria-label=\"day\"\n placeholder=\"DD\"\n disabled={this.disabled}\n onPaste={this.handlePaste}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onKeyDown={(event) => this.handleKeyDown(event, this.preventDayInput)}\n ></input>\n );\n\n const monthInput = (\n <input\n id=\"month-input\"\n class=\"month-input\"\n ref={(el) => (this.monthInputEl = el)}\n aria-label=\"month\"\n placeholder=\"MM\"\n disabled={this.disabled}\n onPaste={this.handlePaste}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onKeyDown={(event) => this.handleKeyDown(event, this.preventMonthInput)}\n ></input>\n );\n\n const yearInput = (\n <input\n id=\"year-input\"\n class=\"year-input\"\n ref={(el) => (this.yearInputEl = el)}\n aria-label=\"year\"\n placeholder=\"YYYY\"\n maxLength={4}\n disabled={this.disabled}\n onPaste={this.handlePaste}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onKeyDown={(event) => this.handleKeyDown(event, this.preventYearInput)}\n ></input>\n );\n\n let input;\n\n switch (datePart) {\n case \"D\":\n input = dayInput;\n break;\n case \"M\":\n input = monthInput;\n break;\n case \"Y\":\n input = yearInput;\n }\n\n return input;\n };\n\n // Get input elements in order of chosen date format\n private getInputsInOrder = () => {\n const dateParts = this.dateFormat.split(\"/\");\n\n const inputsInOrder: HTMLInputElement[] = [];\n\n dateParts.forEach((part: string) => {\n inputsInOrder.push(this.getInputFromDatePart(part.substring(0, 1)));\n });\n\n return inputsInOrder;\n };\n\n // To add to the end of assistive hint to make it clearer that each date part has its own input\n // that can be changed individually\n private getDescOfInputsOrder = () => {\n let description;\n\n switch (this.dateFormat) {\n case \"DD/MM/YYYY\":\n description = \"day, month, and year\";\n break;\n case \"MM/DD/YYYY\":\n description = \"month, day, and year\";\n break;\n case \"YYYY/MM/DD\":\n description = \"year, month, and day\";\n }\n\n return description;\n };\n\n // Add 'required' or 'invalid data' to span used in aria-labelledby\n // Many ARIA attributes aren't read out by screen reader when on the input component container\n private getScreenReaderInfo = (validationStatus: string) => {\n let inputDescriptors = \"\";\n\n if (this.required) {\n inputDescriptors += \"required\";\n }\n\n if (validationStatus === IcInformationStatus.Error) {\n inputDescriptors += \" invalid data\";\n }\n\n return inputDescriptors === \"\" ? \"\" : inputDescriptors + \", \";\n };\n\n // Prevent non-number characters being entered\n // ('e' or '.' - which are usually allowed in <input type=\"number\">)\n // And limit the number of characters within each field (2 for day / month, 4 for year)\n // (because 'maxlength' doesn't work on <input type=\"number\">)\n private preventInput = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const key = event.key;\n const input = event.target as HTMLInputElement;\n let selectedString;\n\n if (input) {\n selectedString = input.value.substring(\n input.selectionStart,\n input.selectionEnd\n );\n }\n\n if (\n key === \"e\" ||\n key === \".\" ||\n key === \"-\" ||\n (event.key >= \"0\" &&\n event.key <= \"9\" &&\n isInputPrevented &&\n !selectedString)\n ) {\n event.preventDefault();\n }\n };\n\n // Get whether date has been disabled using disableFuture or disablePast prop, but always allow current day\n // Consider using dateClamp and inDateRange\n private isSelectedDateDisabled = () => {\n const currentDate = new Date();\n this.isAfterMax = false;\n this.isBeforeMin = false;\n\n let disabled = false;\n const isNotToday =\n this.selectedDate.toDateString() !== currentDate.toDateString();\n\n if (this.minDate && this.selectedDate < this.minDate && isNotToday) {\n this.isBeforeMin = true;\n disabled = true;\n }\n\n if (this.maxDate && this.selectedDate > this.maxDate && isNotToday) {\n this.isAfterMax = true;\n disabled = true;\n }\n\n if (this.disableDays.includes(this.selectedDate.getDay())) {\n disabled = true;\n }\n\n if (\n ((this.disablePast && this.selectedDate < currentDate) ||\n (this.disableFuture && this.selectedDate > currentDate)) &&\n isNotToday\n ) {\n disabled = true;\n }\n\n return disabled;\n };\n\n private moveToNextInput = (currentInput: HTMLInputElement) => {\n const currentInputPos = this.inputsInOrder.findIndex(\n (input) => input === currentInput\n );\n const nextInput = this.inputsInOrder[currentInputPos + 1];\n\n this.preventAutoFormatting = false;\n\n if (nextInput) {\n nextInput.focus();\n }\n };\n\n private moveToPreviousInput = (currentInput: HTMLInputElement) => {\n const currentInputPos = this.inputsInOrder.findIndex(\n (input) => input === currentInput\n );\n\n this.preventAutoFormatting = false;\n\n if (this.inputsInOrder[currentInputPos - 1]) {\n this.inputsInOrder[currentInputPos - 1].focus();\n }\n };\n\n private autocompleteInput = (input: HTMLInputElement) => {\n if (input === this.yearInputEl) {\n this.autocompleteYear();\n } else {\n const inputValue = input.value;\n\n // Autocomplete input as 2 characters (leading zero) when only 1 character entered (for day and month)\n if (inputValue.length === 1) {\n if (+inputValue === 0) {\n input.value = \"01\";\n } else {\n input.value = `0${inputValue}`;\n }\n }\n }\n\n if (input.value) {\n this.setInputValue(input);\n }\n };\n\n // Autocomplete year as current millennium when fewer than 4 characters entered\n private autocompleteYear = () => {\n const inputValue = this.yearInputEl.value;\n const yearNumbers = [\"2\", \"0\", \"0\"];\n\n let autocompletedInput = \"\";\n\n if (inputValue) {\n yearNumbers.forEach((number, index) => {\n if (inputValue.length + index <= 3) {\n autocompletedInput += number;\n }\n });\n\n this.yearInputEl.value = `${autocompletedInput}${inputValue}`;\n }\n };\n\n private convertToDate = (\n year: string,\n month: string,\n day: string\n ): Date | null => {\n if (!isEmptyString(year) && !isEmptyString(month) && !isEmptyString(day)) {\n return new Date(+year, +month - 1, +day);\n } else {\n return null;\n }\n };\n\n private handleHostBlur = () => {\n this.removeLabelledBy = false;\n this.icBlur.emit({ value: this.selectedDate });\n };\n\n private handleHostFocus = () => {\n if (this.el.shadowRoot.activeElement?.id.match(/(day|month|year)-input$/)) {\n this.removeLabelledBy = false;\n } else {\n this.removeLabelledBy = true;\n }\n this.icFocus.emit({ value: this.selectedDate });\n };\n\n private handleFormReset = () => {\n // Get the initial value and populate day, month and year again.\n this.setDate(this.initialValue);\n this.setValidationMessage();\n this.handleDateChange(false);\n };\n\n private getAriaLabel = (input: HTMLInputElement): string => {\n return input.getAttribute(this.ARIA_LABEL);\n };\n\n private notifyScreenReaderArrowKeys = (input: HTMLInputElement) => {\n const liveRegion = this.el.shadowRoot.querySelector(\"#live-region\");\n let announcement = \"\";\n const ariaLabel = this.getAriaLabel(input);\n\n if (liveRegion && input.value) {\n if (\n input === this.monthInputEl &&\n !!IcDateInputMonths[+input.value - 1]\n ) {\n announcement = `${input.value} - ${\n IcDateInputMonths[+input.value - 1]\n }, ${ariaLabel}`;\n }\n\n if (input === this.dayInputEl || input === this.yearInputEl) {\n announcement = `${input.value}, ${ariaLabel}`;\n }\n\n liveRegion.textContent = announcement;\n }\n };\n\n private removeAriaLabelledBy() {\n this.inputCompContainerEl.removeAttribute(this.ARIA_LABELLED_BY);\n }\n\n private setPastedValueAndValidation(\n isValidDate: boolean,\n pastedValue: string,\n event: ClipboardEvent\n ) {\n switch (true) {\n case isValidDate: {\n const nextParsedValue = this.isZuluTime\n ? extractDateFromZuluDateTime(pastedValue)\n : pastedValue;\n const dateParts = nextParsedValue.split(/-|\\/|\\./);\n this.inputsInOrder.forEach((input, index) => {\n input.classList.add(this.FIT_TO_VALUE);\n\n if (this.isZuluTime) {\n this.pasteZuluDateTime(dateParts, index);\n } else {\n let dateValue;\n\n if (input === this.dayInputEl || input === this.monthInputEl) {\n dateValue = this.slicePastedDate(2, dateParts[index]);\n } else {\n dateValue = this.slicePastedDate(4, dateParts[index]);\n }\n\n input.value = dateValue;\n\n this.setInputValue(input);\n this.autocompleteInput(input);\n }\n });\n this.isZuluTime = false;\n break;\n }\n\n case (pastedValue.length === 1 ||\n pastedValue.length === 2 ||\n pastedValue.length === 4) &&\n isNumeric(pastedValue):\n if (this.checkSingleCopiedValueIsValid(event.target, pastedValue)) {\n // Check if copied value can be pasted into input\n this.setInputPasteValue(event.target, pastedValue);\n this.setInputValue(event.target as HTMLInputElement);\n } else {\n this.displayPastedValidation(event);\n }\n break;\n\n case pastedValue.length === 3 && isNumeric(pastedValue):\n if (event.target !== this.yearInputEl) {\n this.displayPastedValidation(event);\n } else {\n this.setInputPasteValue(event.target, pastedValue);\n this.setInputValue(event.target as HTMLInputElement);\n }\n break;\n\n case pastedValue.length >= 5 && isNumeric(pastedValue):\n this.displayPastedValidation(event);\n }\n }\n\n private pasteZuluDateTime(dateParts: string[], index: number) {\n // ['YYYY', 'MM', 'DD']\n if (index === 0) {\n const dateValue = this.slicePastedDate(4, dateParts[index]);\n this.yearInputEl.value = dateValue;\n this.setInputValue(this.yearInputEl);\n } else if (index === 1) {\n // The month value is the second item in the array\n const dateValue = this.slicePastedDate(2, dateParts[index]);\n this.monthInputEl.value = dateValue;\n this.setInputValue(this.monthInputEl);\n } else {\n const dateValue = this.slicePastedDate(2, dateParts[index]);\n this.dayInputEl.value = dateValue;\n this.setInputValue(this.dayInputEl);\n }\n }\n\n private displayPastedValidation(event: ClipboardEvent) {\n if (this.invalidDateText?.length > 0) {\n this.previousInvalidDateTest = this.invalidDateText;\n }\n\n this.invalidDateText = `Please paste a valid ${this.getAriaLabel(\n event.target as HTMLInputElement\n )}`;\n\n this.validationStatus = IcInformationStatus.Error;\n this.isPasteValidationDisplayed = true;\n }\n\n private setPasteInvalidText() {\n if (this.isPasteValidationDisplayed) {\n this.invalidDateText = this.previousInvalidDateTest ?? \"\";\n this.isPasteValidationDisplayed = false;\n\n // This is to prevent setDate from triggering within componentWillUpdate\n this.isDateSetFromKeyboardEvent = true;\n }\n }\n\n private notifyScreenReader(input: HTMLInputElement, event: Event) {\n const liveRegion = this.el.shadowRoot.querySelector(\"#live-region\");\n\n if (liveRegion) {\n if (this.isKeyboardOrEvent(event)) {\n this.notifyScreenReaderArrowKeys(input);\n } else if (\n Object.prototype.toString.call(event) === this.INPUT_EVENT_OBJECT_STRING\n ) {\n this.notifyScreenReaderInput(input, liveRegion as HTMLElement);\n }\n }\n }\n\n private notifyScreenReaderInput = (\n input: HTMLInputElement,\n liveRegion: HTMLElement\n ) => {\n let announcement = \"\";\n const ariaLabel = this.getAriaLabel(input);\n\n if (input === this.dayInputEl || input === this.monthInputEl) {\n if (input.value.length === 2) {\n if (\n input === this.monthInputEl &&\n !!IcDateInputMonths[+input.value - 1] &&\n this.isValidMonth\n ) {\n announcement = `${input.value} - ${\n IcDateInputMonths[+input.value - 1]\n }, ${ariaLabel}`;\n }\n\n if (input === this.dayInputEl && this.isValidDay) {\n announcement = `${input.value}, ${ariaLabel}`;\n }\n } else {\n announcement = \"\";\n }\n } else {\n if (input.value.length === 4) {\n announcement = `${input.value}, ${ariaLabel}`;\n } else {\n announcement = \"\";\n }\n }\n liveRegion.textContent = announcement;\n };\n\n private setFitToValueStyling = (input: HTMLInputElement) => {\n if (input.value) {\n input.classList.add(this.FIT_TO_VALUE);\n } else {\n input.classList.remove(this.FIT_TO_VALUE);\n }\n };\n\n private setAriaInvalid = (\n validDay: boolean,\n validMonth: boolean,\n validDate: boolean,\n disabledDate: boolean\n ) => {\n if (this.inputsInOrder.length) {\n this.inputsInOrder.forEach((input) => {\n input.removeAttribute(this.ARIA_INVALID);\n });\n\n if (!validDay) {\n this.dayInputEl.setAttribute(this.ARIA_INVALID, \"true\");\n }\n\n if (!validMonth) {\n this.monthInputEl.setAttribute(this.ARIA_INVALID, \"true\");\n }\n\n if (!validDate || disabledDate) {\n this.inputsInOrder.forEach((input) => {\n input.setAttribute(this.ARIA_INVALID, \"true\");\n });\n }\n }\n };\n\n private handleClear = () => {\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setInputValue(input, true);\n this.setPreventInput(input, false);\n });\n this.isDateSetFromKeyboardEvent = false;\n this.setValidationMessage();\n this.handleDateChange(true);\n\n this.inputsInOrder[0].focus();\n };\n\n private handleCalendarOpen = (ev: MouseEvent) => {\n ev.stopImmediatePropagation();\n this.calendarButtonEl?.shadowRoot\n .querySelector(\"ic-tooltip\")\n .displayTooltip(false);\n this.calendarButtonClicked.emit({ value: this.selectedDate });\n this.calendarButtonEl?.shadowRoot\n .querySelector(\"ic-tooltip\")\n .displayTooltip(false);\n this.isDateSetFromKeyboardEvent = false;\n };\n\n private setValueAndEmitChange = (value: Date) => {\n if (!dateMatches(new Date(this.value), value)) {\n this.emitIcChange(value);\n this.value = value;\n }\n };\n\n private handleCalendarFocus = () => {\n this.calendarFocused = true;\n };\n\n private handleCalendarBlur = () => {\n this.calendarFocused = false;\n };\n\n private handleClearFocus = () => {\n this.removeLabelledBy = true;\n this.clearButtonFocused = true;\n };\n\n private handleClearBlur = (ev: FocusEvent) => {\n this.clearButtonFocused = false;\n if ((ev.relatedTarget as HTMLElement)?.id.match(/(day|year)-input$/)) {\n this.removeLabelledBy = false;\n return;\n }\n\n this.removeLabelledBy = true;\n };\n\n private emitIcChange = (d: Date) => {\n if (\n !(d === null && this.previousEmittedDate === null) &&\n !dateMatches(d, this.previousEmittedDate)\n ) {\n this.previousEmittedDate = d;\n this.icChange.emit({ value: d });\n }\n };\n\n render() {\n const {\n inputId,\n label,\n disabled,\n helperText,\n hideHelperText,\n hideLabel,\n showClearButton,\n showCalendarButton,\n size,\n theme,\n } = this;\n\n const hasCustomValidation =\n !isEmptyString(this.validationStatus) &&\n !isEmptyString(this.validationText);\n\n const validationStatus = hasCustomValidation\n ? this.validationStatus\n : !isEmptyString(this.invalidDateText)\n ? IcInformationStatus.Error\n : \"\";\n\n const assistiveHint = `Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;\n\n renderHiddenInput(\n true,\n this.el,\n this.name,\n this.convertToDate(this.year, this.month, this.day),\n this.disabled\n );\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-date-input-disabled`]: disabled,\n }}\n onBlur={this.handleHostBlur}\n onFocus={this.handleHostFocus}\n >\n <ic-input-container disabled={disabled}>\n {!(hideLabel && hideHelperText) && (\n <ic-input-label\n for={inputId}\n label={label}\n hideLabel={hideLabel}\n helperText={!hideHelperText ? helperText : null}\n disabled={disabled}\n ></ic-input-label>\n )}\n <span id={this.screenReaderInfoId} class=\"sr-only\" aria-hidden=\"true\">\n {this.getScreenReaderInfo(validationStatus)}\n {hideLabel && `${label}\\n`}\n {hideHelperText && `${helperText}\\n`}\n {`${this.defaultHelperText}.`}\n </span>\n <span id={this.assistiveHintId} class=\"sr-only\" aria-hidden=\"true\">\n {assistiveHint}\n </span>\n <span id=\"live-region\" aria-live=\"assertive\" class=\"sr-only\"></span>\n <ic-input-component-container\n id={inputId}\n ref={(el: HTMLIcInputComponentContainerElement) =>\n (this.inputCompContainerEl = el)\n }\n disabled={disabled}\n validationStatus={validationStatus}\n size={size}\n role=\"group\"\n class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}\n >\n <div class=\"input-container\">\n <div class=\"date-inputs\">\n {this.getInputsInOrder()[0]}/{this.getInputsInOrder()[1]}/\n {this.getInputsInOrder()[2]}\n </div>\n <div class=\"action-buttons\">\n {showClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear input\"\n class={{\n [\"clear-button\"]: true,\n [\"hidden\"]:\n isEmptyString(this.day) &&\n isEmptyString(this.month) &&\n isEmptyString(this.year),\n }}\n disabled={this.disabled}\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearFocus}\n onBlur={this.handleClearBlur}\n variant=\"icon-tertiary\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n size={size}\n ></ic-button>\n )}\n {showCalendarButton && (\n <div class=\"show-calendar-button-wrapper\">\n <div class={{ divider: true, [size]: true }}></div>\n <ic-button\n id=\"calendar-button\"\n ref={(el: HTMLIcButtonElement) =>\n (this.calendarButtonEl = el)\n }\n aria-label=\"Display calendar\"\n aria-haspopup=\"dialog\"\n class=\"calendar-button\"\n disabled={this.disabled}\n innerHTML={Calendar}\n onClick={this.handleCalendarOpen}\n variant=\"icon-tertiary\"\n size={size}\n onFocus={this.handleCalendarFocus}\n onBlur={this.handleCalendarBlur}\n theme={this.calendarFocused ? \"light\" : \"dark\"}\n ></ic-button>\n </div>\n )}\n </div>\n </div>\n </ic-input-component-container>\n <span id={this.selectedDateInfoId} class=\"sr-only\" aria-live=\"polite\">\n <span\n ref={(el) => (this.selectedDateInfoEl = el)}\n role=\"status\"\n ></span>\n </span>\n {(hasCustomValidation || !isEmptyString(this.invalidDateText)) && (\n <ic-input-validation\n status={validationStatus}\n message={\n hasCustomValidation ? this.validationText : this.invalidDateText\n }\n for={inputId}\n ></ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icCardHorizontalCss","Card","this","hostMutationObserver","hostMutationCallback","mutationList","some","type","addedNodes","removedNodes","checkSlotInChildMutations","forceUpdate","parentFocussed","isFocussed","parentBlurred","disconnectedCallback","parentIsAnchorTag","parentEl","removeEventListener","_a","disconnect","componentWillLoad","el","parentElement","tagName","clickable","classList","add","addEventListener","removeDisabledFalse","disabled","componentDidLoad","isSlotUsed","onComponentRequiredPropUndefined","prop","heading","propName","updateTheme","MutationObserver","observe","childList","handleHostClick","event","stopImmediatePropagation","themeChangeHandler","ev","detail","mode","setFocus","shadowRoot","querySelector","focus","newTheme","foregroundColor","getThemeFromContext","IcThemeForegroundEnum","Default","theme","render","appearance","message","href","hreflang","referrerpolicy","rel","target","size","Component","undefined","attrs","hrefLang","referrerPolicy","h","Host","class","Object","assign","card","focussed","dark","Dark","tabindex","name","variant"],"sources":["src/components/ic-card-horizontal/ic-card-horizontal.css?tag=ic-card-horizontal&encapsulation=shadow","src/components/ic-card-horizontal/ic-card-horizontal.tsx"],"sourcesContent":["@import \"../../../dist/core/normalize.css\";\n\n/**\n * @prop --card-horizontal-width: Width of the horizontal card\n */\n\n:host {\n display: flex;\n\n --card-max-width: 548px;\n --image-size: 114px;\n --message-max-lines: 2;\n}\n\n.card.small {\n --card-max-width: 360px;\n}\n\n.card.large {\n --card-max-width: 720px;\n --image-size: 142px;\n --message-max-lines: 3;\n}\n\n.card.extra-large {\n --card-max-width: 1130px;\n --image-size: 186px;\n --message-max-lines: 5;\n}\n\na {\n text-decoration: none !important;\n color: var(--ic-card-text-primary) !important;\n}\n\nbutton {\n border: none;\n background-color: transparent;\n outline: var(--ic-hc-focus-outline);\n padding: 0;\n}\n\n.card,\n.card.clickable {\n display: flex;\n flex-direction: row;\n border: var(--ic-space-1px) solid var(--ic-card-border-primary);\n border-radius: var(--ic-border-radius);\n box-sizing: border-box;\n text-align: left;\n color: var(--ic-card-text-primary);\n transition: var(--ic-easing-transition-fast);\n position: relative;\n max-width: var(--card-max-width);\n height: fit-content;\n width: var(--card-horizontal-width, fit-content);\n}\n\n.dark.card,\n.dark.card.clickable {\n border: var(--ic-border-width) solid\n var(--ic-color-border-neutral-pressed-dark);\n}\n\n.card.clickable:hover {\n background-color: var(--ic-card-background-hover);\n border: var(--ic-space-1px) solid var(--ic-card-hover-border-color);\n cursor: pointer;\n}\n\n.card.clickable:focus,\n.card.clickable.focussed {\n background-color: var(--ic-card-background-hover);\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n border: var(--ic-space-1px) solid var(--ic-card-pressed-border-color);\n}\n\n.card.clickable:active {\n background-color: var(--ic-card-background-pressed);\n box-shadow: var(--ic-border-focus);\n}\n\n.card.disabled {\n border: var(--ic-space-1px) dashed var(--ic-card-disabled-border-color);\n}\n\n.card-header {\n display: flex;\n align-items: center;\n}\n\n.icon {\n display: flex;\n align-items: center;\n padding-right: var(--ic-space-xs);\n}\n\n.card ::slotted(svg) {\n fill: var(--ic-card-icon);\n}\n\n.card.disabled ::slotted(svg) {\n fill: var(--ic-card-disabled-text);\n}\n\n.card.clickable .card-title {\n --ic-typography-color: var(--ic-card-clickable-text);\n\n color: var(--ic-card-clickable-text);\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n}\n\n.card.clickable:hover .card-title,\n.card.clickable:focus .card-title,\n.card.clickable.focussed .card-title {\n display: inline-block;\n border-bottom: 0.25rem solid !important;\n margin-bottom: -0.25rem !important;\n text-decoration: none;\n}\n\n.card.clickable:active .card-title {\n text-decoration: none;\n}\n\n.card.disabled .card-title {\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n text-decoration-color: var(--ic-card-disabled-text);\n color: var(--ic-card-disabled-text);\n\n --ic-typography-color: var(--ic-card-disabled-text);\n}\n\n.card-message {\n margin-top: var(--ic-space-xxxs);\n align-items: left;\n}\n\n.card.disabled .card-message {\n --ic-typography-color: var(--ic-card-disabled-text);\n}\n\n.image {\n display: flex;\n height: var(--image-size);\n width: var(--image-size);\n border-radius: var(--ic-border-radius);\n}\n\n.card-content {\n display: flex;\n flex-direction: column;\n padding: var(--ic-space-md);\n}\n\n.card .card-title ::slotted([slot=\"heading\"]),\n.card .card-title ic-typography p {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: calc(var(--card-max-width) - var(--ic-space-xl));\n}\n\n.card.with-icon .card-title ::slotted([slot=\"heading\"]),\n.card.with-icon .card-title ic-typography p {\n max-width: calc(var(--card-max-width) - (2 * var(--ic-space-xl)));\n}\n\n.card.with-image .card-title ::slotted([slot=\"heading\"]),\n.card.with-image .card-title ic-typography p {\n max-width: calc(\n var(--card-max-width) - var(--image-size) - var(--ic-space-xl)\n );\n}\n\n.card.with-image.with-icon .card-title ::slotted([slot=\"heading\"]),\n.card.with-image.with-icon .card-title ic-typography p {\n max-width: calc(\n var(--card-max-width) - var(--image-size) - (2 * var(--ic-space-xl))\n );\n}\n\n.card .card-message ::slotted([slot=\"message\"]),\n.card .card-message ic-typography {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n line-clamp: var(--message-max-lines, initial);\n -webkit-line-clamp: var(--message-max-lines, initial);\n overflow: hidden;\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .card ::slotted(svg) {\n fill: currentcolor;\n }\n\n .card.disabled ::slotted(svg) {\n fill: GrayText !important;\n }\n\n .card.disabled {\n border-color: GrayText !important;\n }\n\n .card.disabled .card-message,\n .card.disabled .card-title {\n color: GrayText;\n\n --ic-typography-color: GrayText;\n }\n}\n","import {\n Component,\n Element,\n Listen,\n Prop,\n State,\n h,\n Method,\n forceUpdate,\n Host,\n} from \"@stencil/core\";\nimport {\n onComponentRequiredPropUndefined,\n isSlotUsed,\n getThemeFromContext,\n removeDisabledFalse,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { IcCardSizes } from \"./ic-card-horizontal.types\";\n\n/**\n * @slot heading - Content will be placed at the top of the horizontal card to the right of the icon.\n * @slot message - Content will be placed in the main body of the horizontal card.\n * @slot image - Content will be placed to the left of all other content.\n * @slot icon - Content will be placed to the left of the horizontal card heading.\n * @slot badge - Badge component overlaying the top right of the horizontal card.\n */\n@Component({\n tag: \"ic-card-horizontal\",\n styleUrl: \"ic-card-horizontal.css\",\n shadow: true,\n})\nexport class Card {\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcCardHorizontalElement;\n\n @State() appearance?: IcThemeForeground = \"default\";\n @State() isFocussed: boolean = false;\n @State() parentEl: HTMLElement | null = null;\n @State() parentIsAnchorTag: boolean = false;\n\n /**\n * If `true`, the horizontal card will be a clickable variant, instead of static.\n */\n @Prop({ mutable: true }) clickable?: boolean = false;\n\n /**\n * If `true`, the horizontal card will be disabled if it is clickable.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The heading for the horizontal card. This is required, unless a slotted heading is used.\n */\n @Prop() heading?: string;\n\n /**\n * The URL that the clickable horizontal card link points to. If set, the clickable horizontal card will render as an \"a\" tag, otherwise it will render as a button.\n */\n @Prop() href?: string | undefined;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string = \"\";\n\n /**\n * The main body message of the horizontal card.\n */\n @Prop() message?: string = \"\";\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The size of the horizontal card.\n */\n @Prop() size: IcCardSizes = \"medium\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n disconnectedCallback(): void {\n if (this.parentIsAnchorTag) {\n this.parentEl.removeEventListener(\"focus\", this.parentFocussed);\n this.parentEl.removeEventListener(\"blur\", this.parentBlurred);\n }\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.parentEl = this.el.parentElement;\n\n if (this.parentEl.tagName === \"A\") {\n this.clickable = true;\n this.parentIsAnchorTag = true;\n this.parentEl.classList.add(\"ic-card-wrapper-link\");\n this.parentEl.addEventListener(\"focus\", this.parentFocussed);\n this.parentEl.addEventListener(\"blur\", this.parentBlurred);\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Card\"\n );\n this.updateTheme();\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent<IcTheme>): void {\n this.updateTheme(ev.detail.mode);\n }\n\n /**\n * Sets focus on the card.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"a\")) {\n this.el.shadowRoot.querySelector(\"a\").focus();\n } else if (this.el.shadowRoot.querySelector(\"button\")) {\n this.el.shadowRoot.querySelector(\"button\").focus();\n }\n }\n\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n if (\n mutationList.some(\n ({ type, addedNodes, removedNodes }) =>\n type === \"childList\" &&\n checkSlotInChildMutations(addedNodes, removedNodes, \"image\")\n )\n ) {\n forceUpdate(this);\n }\n };\n\n private parentFocussed = (): void => {\n this.isFocussed = true;\n };\n\n private parentBlurred = (): void => {\n this.isFocussed = false;\n };\n\n private updateTheme(newTheme: IcThemeForeground = null): void {\n const foregroundColor = getThemeFromContext(this.el, newTheme);\n\n if (foregroundColor !== IcThemeForegroundEnum.Default) {\n this.theme = foregroundColor;\n }\n }\n\n render() {\n const {\n appearance,\n clickable,\n disabled,\n heading,\n message,\n href,\n hreflang,\n referrerpolicy,\n rel,\n target,\n parentIsAnchorTag,\n isFocussed,\n size,\n theme,\n } = this;\n\n const Component =\n parentIsAnchorTag || !clickable\n ? \"div\"\n : href === undefined\n ? \"button\"\n : \"a\";\n\n const attrs = Component == \"a\" && {\n href: href,\n hrefLang: hreflang,\n referrerPolicy: referrerpolicy,\n rel: rel,\n target: target,\n };\n\n return (\n <Host class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}>\n <Component\n class={{\n card: true,\n clickable: clickable && !disabled,\n disabled,\n focussed: isFocussed,\n dark: appearance === IcThemeForegroundEnum.Dark,\n [`${size}`]: true,\n \"with-icon\": isSlotUsed(this.el, \"icon\"),\n \"with-image\": isSlotUsed(this.el, \"image\"),\n }}\n tabindex={clickable && !parentIsAnchorTag ? 0 : null}\n aria-disabled={disabled ? \"true\" : null}\n disabled={disabled ? true : null}\n {...attrs}\n >\n {isSlotUsed(this.el, \"image\") && (\n <div class=\"image\">\n <slot name=\"image\"></slot>\n </div>\n )}\n <div class=\"card-content\">\n <div class=\"card-header\">\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon\">\n <slot name=\"icon\" />\n </div>\n )}\n <div class=\"card-title\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\">\n <p>{heading}</p>\n </ic-typography>\n </slot>\n </div>\n </div>\n {(message || isSlotUsed(this.el, \"message\")) && (\n <div class=\"card-message\">\n {message && (\n <ic-typography variant=\"body\">{message}</ic-typography>\n )}\n {isSlotUsed(this.el, \"message\") && <slot name=\"message\"></slot>}\n </div>\n )}\n </div>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </Component>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as i,h as t,H as e,g as o}from"./p-8455d1bb.js";import{D as n,g as s,e as a,x as r}from"./p-b2389339.js";import{C as h}from"./p-170ddfc2.js";const d='/*! 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}:host{display:block;--ic-typography-color:currentcolor}:host(.in-side-menu){border-bottom:var(--ic-border-width) solid\n var(--ic-divider-background-monochrome);padding:var(--ic-space-md) 0}:host .navigation-group{height:100%;width:-moz-fit-content;width:fit-content;color:var(--ic-theme-text);display:flex;align-items:center;justify-content:center;padding:0 var(--ic-space-md) var(--ic-space-xxs);transition:var(--ic-easing-transition-slow);position:relative;background:none;border:none;white-space:nowrap}:host(.in-side-menu) .navigation-group{height:2.5rem;width:100%;text-align:left}:host(.in-side-menu) .navigation-group .ic-typography-label{width:11.875rem}:host(.in-side-menu) .navigation-group-side-menu{color:var(--ic-top-navigation-nav-group-link);justify-content:flex-start;padding:0 var(--ic-space-md) 0 var(--ic-space-md)}:host(.in-side-menu) .navigation-group-side-menu-collapsed,:host(.in-side-menu) .navigation-group-side-menu-expanded{color:var(--ic-top-navigation-nav-group-link);justify-content:flex-start;padding-left:var(--ic-space-md)}:host(.in-side-menu) .navigation-group-side-menu-expanded{margin-bottom:var(--ic-space-xs)}:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,:host(.in-side-menu) .navigation-group-side-menu-expanded::after{border-style:solid;border-width:0.125em 0.125em 0 0;content:"";display:inline-block;height:0.45em;left:0.75em;position:relative;top:-0.1em;transform:rotate(135deg);vertical-align:top;width:0.45em}:host(.in-side-menu) .navigation-group-side-menu-expanded::after{top:0.15em;transform:rotate(-45deg)}:host .navigation-group:hover,:host .navigation-group:active,:host .selected{background-color:var(--ic-architectural-20);color:var(--ic-color-text-primary-light);outline:none;cursor:pointer}:host(:not(.in-side-menu)) .navigation-group:focus{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);outline:var(--ic-hc-focus-outline);z-index:var(--ic-z-index-navigation-item);transition:box-shadow var(--ic-easing-transition-fast)}:host(.in-side-menu) .navigation-group-side-menu:hover,:host(.in-side-menu) .navigation-group-side-menu:focus{background-color:var(--ic-top-navigation-nav-group-hover);color:var(--ic-top-navigation-nav-group-link);cursor:auto;box-shadow:none;outline:none}:host(.in-side-menu) .navigation-group-side-menu:active{background-color:var(--ic-top-navigation-nav-group-pressed);color:var(--ic-top-navigation-nav-group-link)}:host(.in-side-menu) .navigation-group-side-menu:focus{outline:var(--ic-hc-focus-outline)}:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus){background-color:var(--ic-action-dark-bg-hover);color:var(--ic-action-default);cursor:pointer}:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus){background-color:var(--ic-action-dark-bg-pressed);color:var(--ic-action-default)}:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus{color:var(--ic-action-default);box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);outline:var(--ic-hc-focus-outline)}:host .navigation-group-dropdown{background-color:var(--ic-top-navigation-menu-background);border-bottom:var(--ic-space-1px) solid var(--ic-top-navigation-menu-border);position:absolute;left:0;right:0;padding:var(--ic-space-xs) var(--ic-space-md);box-shadow:0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);z-index:calc(var(--ic-z-index-navigation-item) - 1)}:host .navigation-group-dropdown-items-list{list-style:none;display:flex;flex-flow:column wrap;align-content:flex-start;padding-left:var(--ic-space-md);max-height:16.5rem}:host .chevron-toggle-icon-wrapper{display:flex;align-items:center}:host .chevron-toggle-icon-wrapper svg{transform:rotate(90deg);height:var(--ic-space-lg);width:var(--ic-space-lg)}:host .chevron-toggle-icon-closed svg{transform:rotate(-90deg)}:host(.ic-navigation-group-expanded) .grouped-links-wrapper{height:var(--navigation-child-items-height, auto) !important;transition:var(--ic-easing-transition-slow);overflow:hidden}:host(.ic-navigation-group-side-nav) .link,:host(.ic-navigation-group-side-nav) ::slotted(a){height:var(--navigation-child-items-height, auto)}:host(.ic-navigation-group-collapsed) .grouped-links-wrapper{height:0;transition:var(--ic-easing-transition-slow);overflow:hidden}:host(.ic-navigation-group-side-nav) .navigation-group{height:var(--navigation-group-height);width:var(--navigation-group-width);justify-content:var(--navigation-group-justify-content);padding-right:var(--navigation-group-expand-toggle-padding)}:host(.ic-navigation-group-side-nav) .navigation-group:hover,:host(.ic-navigation-group-side-nav) .navigation-group:active,:host(.ic-navigation-group-side-nav) .selected{background-color:var(--navigation-group-hover);color:var(--navigation-group-text-hover)}:host(.ic-navigation-group-side-nav) .navigation-group:focus{box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);background:none}:host(.ic-navigation-group-side-nav) .ic-typography-caption{position:var(--navigation-group-title-position);left:var(--navigation-group-title-position-left);white-space:nowrap}';const c=class{constructor(e){i(this,e);this.allGroupedNavigationItems=[];this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS=100;this.IC_NAVIGATION_ITEM="ic-navigation-item";this.mouseGate=false;this.nodeName="IC-NAVIGATION-GROUP";this.GROUPED_LINKS_WRAPPER_CLASS=".grouped-links-wrapper";this.sideNavExpandHandler=i=>{this.isSideNavExpanded=i.detail.sideNavExpanded;const t=this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);if(!t)return;if(this.isSideNavExpanded){if(this.expanded&&this.expandedNavItemsHeight){this.setGroupedLinksElementHeight(t,this.expandedNavItemsHeight)}else if(this.expanded){setTimeout((()=>{this.expandedNavItemsHeight=this.getNavigationChildItemsHeight();this.setGroupedLinksElementHeight(t,this.expandedNavItemsHeight)}),this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS)}}else{if(this.expanded&&this.collapsedNavItemsHeight){this.setGroupedLinksElementHeight(t,this.collapsedNavItemsHeight)}else if(this.expanded){setTimeout((()=>{this.collapsedNavItemsHeight=this.getNavigationChildItemsHeight();this.setGroupedLinksElementHeight(t,this.collapsedNavItemsHeight)}),this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS)}}};this.topNavResizedHandler=({detail:i})=>{var t;const{size:e}=i;if(e!==this.deviceSize){this.deviceSize=e;this.inTopNavSideMenu=e<=(((t=this.parentEl)===null||t===void 0?void 0:t.customMobileBreakpoint)||n.L)}};this.setGroupedNavItemTabIndex=i=>{this.el.querySelectorAll(this.IC_NAVIGATION_ITEM).forEach((t=>{const e=t.shadowRoot.querySelector("a")||t.querySelector("a");if(e){e.setAttribute("tabindex",i)}}))};this.toggleGroupedLinkWrapperHeight=(i,t)=>{if(!i)return;if(t){if(this.isSideNavExpanded){this.setGroupedLinksElementHeight(i,this.expandedNavItemsHeight)}else{this.setGroupedLinksElementHeight(i,this.collapsedNavItemsHeight)}this.setGroupedNavItemTabIndex("0")}else{i.style.setProperty("--navigation-child-items-height","0");this.setGroupedNavItemTabIndex("-1")}};this.toggleExpanded=()=>{this.expanded=!this.expanded;const i=this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);this.toggleGroupedLinkWrapperHeight(i,this.expanded)};this.handleClick=i=>{if(this.navigationType==="top"&&i.detail){this.toggleDropdown()}else{this.toggleExpanded()}};this.handleBlur=i=>{const t=i.relatedTarget;if(!this.el.contains(t)){this.hideDropdown()}};this.handleTopNavKeydown=i=>{if(i.key===" "||i.key==="Enter"){this.toggleDropdown()}else if(!this.inTopNavSideMenu&&i.key==="Escape"){this.hideDropdown()}};this.handleKeydown=i=>{if(i.key==="Enter"||i.key===" "||i.key==="Escape"){switch(this.navigationType){case"top":this.handleTopNavKeydown(i);break;case"side":this.toggleExpanded();i.preventDefault();break;default:this.toggleExpanded();break}}};this.handleMouseLeave=i=>{const t=i.relatedTarget;this.mouseGate=false;if(!this.el.contains(t)&&t!==this.dropdown&&document.activeElement!==this.el&&!this.el.contains(document.activeElement)&&(t===null||t===void 0?void 0:t.nodeName)===this.nodeName&&this.dropdownOpen===true){this.mouseGate=true;this.hideDropdown()}else if(!this.el.contains(t)&&t!==this.dropdown&&!this.el.contains(document.activeElement)){this.mouseGate=false;setTimeout((()=>{this.dropdownOpen?this.hideDropdown():null}),500)}};this.handleMouseEnter=i=>{const t=i.relatedTarget;document.addEventListener("keydown",this.handleKeydown);if((t===null||t===void 0?void 0:t.nodeName)===this.nodeName&&this.mouseGate===true){this.showDropdown()}else if(this.dropdownOpen===false&&t!==null&&this.mouseGate===false){this.mouseGate=true;setTimeout((()=>{this.mouseGate&&this.showDropdown()}),500)}};this.renderDropdownGroupedLinks=()=>t("div",{class:{["navigation-group-dropdown"]:!this.inTopNavSideMenu,["navigation-group-dropdown-side-menu"]:this.inTopNavSideMenu,["selected"]:this.dropdownOpen&&!this.inTopNavSideMenu},onMouseLeave:!this.inTopNavSideMenu?this.handleMouseLeave:null,ref:i=>this.dropdown=i},t("nav",{class:{["navigation-group-dropdown-items"]:!this.inTopNavSideMenu}},t("ul",null,t("slot",null))));this.renderGroupedLinks=()=>t("ul",{class:"grouped-links-wrapper"},t("slot",null));this.getNavigationChildItemsHeight=()=>{let i=0;this.allGroupedNavigationItems.forEach((t=>{i+=t.offsetHeight}));return`${i}px`};this.setInitialGroupedLinksWrapperHeight=()=>{const i=this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);if(!i)return;if(!this.isSideNavExpanded&&!this.collapsedNavItemsHeight&&this.expanded){this.collapsedNavItemsHeight=this.getNavigationChildItemsHeight();this.setGroupedLinksElementHeight(i,this.collapsedNavItemsHeight)}if(this.isSideNavExpanded&&this.expanded){this.expandedNavItemsHeight=this.getNavigationChildItemsHeight();this.setGroupedLinksElementHeight(i,this.expandedNavItemsHeight)}};this.renderNavigationItems=()=>{if(this.dropdownOpen||this.inTopNavSideMenu&&!this.expandable){return this.renderDropdownGroupedLinks()}if(this.navigationType!=="top"){return this.renderGroupedLinks()}return null};this.deviceSize=n.XL;this.dropdownOpen=false;this.expanded=true;this.focusStyle=s();this.inTopNavSideMenu=false;this.navigationType=undefined;this.parentEl=undefined;this.expandable=false;this.label=undefined;this.theme="inherit"}disconnectedCallback(){var i,t;if(this.navigationType==="side"){(i=this.parentEl)===null||i===void 0?void 0:i.removeEventListener("icSideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){(t=this.parentEl)===null||t===void 0?void 0:t.removeEventListener("icTopNavResized",this.topNavResizedHandler)}}componentWillLoad(){this.deviceSize=a();const{navType:i,parent:t}=r(this.el);this.navigationType=i;this.parentEl=t;if(this.navigationType==="side"){this.parentEl.addEventListener("icSideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){this.parentEl.addEventListener("icTopNavResized",this.topNavResizedHandler);if(this.deviceSize<=this.parentEl.customMobileBreakpoint)this.inTopNavSideMenu=true}}componentDidLoad(){this.allGroupedNavigationItems=Array.from(this.el.querySelectorAll(this.IC_NAVIGATION_ITEM));setTimeout((()=>this.setInitialGroupedLinksWrapperHeight()),this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS)}childBlurHandler(){this.hideDropdown()}navItemClickHandler(){this.hideDropdown()}themeChangeHandler(i){const t=i.detail;this.focusStyle=t.mode}async setFocus(){if(this.groupEl){this.groupEl.focus()}}toggleDropdown(){this.dropdownOpen=!this.dropdownOpen}showDropdown(){if(!this.dropdownOpen){this.toggleDropdown()}}hideDropdown(){document.removeEventListener("keydown",this.handleKeydown);if(this.dropdownOpen){this.toggleDropdown()}}setGroupedLinksElementHeight(i,t){i.style.setProperty("--navigation-child-items-height",t)}render(){const{label:i,dropdownOpen:o,inTopNavSideMenu:n,expandable:s}=this;return t(e,{class:{["in-side-menu"]:n,"ic-navigation-group-expanded":this.expanded,"ic-navigation-group-collapsed":!this.expanded,["ic-navigation-group-side-nav"]:this.navigationType==="side",[`ic-theme-${this.theme}`]:this.theme!=="inherit"},role:"listitem"},t("button",{onMouseEnter:!n&&this.navigationType==="top"&&this.handleMouseEnter,onMouseLeave:this.navigationType==="top"&&this.handleMouseLeave,tabindex:n&&!s?"-1":"0",onBlur:this.handleBlur,onClick:s?this.handleClick:null,onKeyDown:this.handleKeydown,class:{["navigation-group"]:true,[this.focusStyle]:!n,["navigation-group-side-menu"]:n&&!s,["navigation-group-side-menu-collapsed"]:n&&s&&!o,["navigation-group-side-menu-expanded"]:n&&s&&o,["selected"]:o&&!n},ref:i=>this.groupEl=i,"aria-expanded":`${o||this.expanded}`,"aria-haspopup":`${!n&&this.navigationType==="top"}`},t("ic-typography",{variant:this.navigationType==="side"?"caption":"label"},i),this.navigationType==="side"&&s&&t("div",{class:{"chevron-toggle-icon-wrapper":true,"chevron-toggle-icon-closed":this.expanded},innerHTML:h})),this.renderNavigationItems())}static get delegatesFocus(){return true}get el(){return o(this)}};c.style=d;export{c as ic_navigation_group};
2
- //# sourceMappingURL=p-6f7cf143.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icNavigationGroupCss","NavigationGroup","constructor","hostRef","this","allGroupedNavigationItems","DYNAMIC_GROUPED_LINKS_HEIGHT_MS","IC_NAVIGATION_ITEM","mouseGate","nodeName","GROUPED_LINKS_WRAPPER_CLASS","sideNavExpandHandler","event","isSideNavExpanded","detail","sideNavExpanded","linkWrapper","el","shadowRoot","querySelector","expanded","expandedNavItemsHeight","setGroupedLinksElementHeight","setTimeout","getNavigationChildItemsHeight","collapsedNavItemsHeight","topNavResizedHandler","_a","size","deviceSize","inTopNavSideMenu","parentEl","customMobileBreakpoint","DEVICE_SIZES","L","setGroupedNavItemTabIndex","tabIndexValue","querySelectorAll","forEach","navigationItem","navItem","setAttribute","toggleGroupedLinkWrapperHeight","wrapper","style","setProperty","toggleExpanded","handleClick","ev","navigationType","toggleDropdown","handleBlur","target","relatedTarget","contains","hideDropdown","handleTopNavKeydown","key","handleKeydown","preventDefault","handleMouseLeave","relTarget","dropdown","document","activeElement","dropdownOpen","handleMouseEnter","addEventListener","showDropdown","renderDropdownGroupedLinks","h","class","onMouseLeave","ref","renderGroupedLinks","navigationChildItemsHeight","offsetHeight","setInitialGroupedLinksWrapperHeight","renderNavigationItems","expandable","XL","focusStyle","getThemeForegroundColor","undefined","label","theme","disconnectedCallback","_b","removeEventListener","componentWillLoad","getCurrentDeviceSize","navType","parent","getNavItemParentDetails","componentDidLoad","Array","from","childBlurHandler","navItemClickHandler","themeChangeHandler","mode","setFocus","groupEl","focus","groupedNavItemWrapper","height","render","Host","role","onMouseEnter","tabindex","onBlur","onClick","onKeyDown","variant","innerHTML","chevronIcon","delegatesFocus"],"sources":["../web-components/dist/collection/components/ic-navigation-group/ic-navigation-group.css?tag=ic-navigation-group&encapsulation=shadow","../web-components/dist/collection/components/ic-navigation-group/ic-navigation-group.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/**\n * @prop --ic-z-index-navigation-item: z-index of navigation group item\n */\n\n:host {\n display: block;\n\n --ic-typography-color: currentcolor;\n}\n\n:host(.in-side-menu) {\n border-bottom: var(--ic-border-width) solid\n var(--ic-divider-background-monochrome);\n padding: var(--ic-space-md) 0;\n}\n\n:host .navigation-group {\n height: 100%;\n width: -moz-fit-content;\n width: fit-content;\n color: var(--ic-theme-text);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md) var(--ic-space-xxs);\n transition: var(--ic-easing-transition-slow);\n position: relative;\n background: none;\n border: none;\n white-space: nowrap;\n}\n\n:host(.in-side-menu) .navigation-group {\n height: 2.5rem;\n width: 100%;\n text-align: left;\n}\n\n:host(.in-side-menu) .navigation-group .ic-typography-label {\n width: 11.875rem;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu {\n color: var(--ic-top-navigation-nav-group-link);\n justify-content: flex-start;\n padding: 0 var(--ic-space-md) 0 var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed,\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n color: var(--ic-top-navigation-nav-group-link);\n justify-content: flex-start;\n padding-left: var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n border-style: solid;\n border-width: 0.125em 0.125em 0 0;\n content: \"\";\n display: inline-block;\n height: 0.45em;\n left: 0.75em;\n position: relative;\n top: -0.1em;\n transform: rotate(135deg);\n vertical-align: top;\n width: 0.45em;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n top: 0.15em;\n transform: rotate(-45deg);\n}\n\n:host .navigation-group:hover,\n:host .navigation-group:active,\n:host .selected {\n background-color: var(--ic-architectural-20);\n color: var(--ic-color-text-primary-light);\n outline: none;\n cursor: pointer;\n}\n\n:host(:not(.in-side-menu)) .navigation-group:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n z-index: var(--ic-z-index-navigation-item);\n transition: box-shadow var(--ic-easing-transition-fast);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:hover,\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n background-color: var(--ic-top-navigation-nav-group-hover);\n color: var(--ic-top-navigation-nav-group-link);\n cursor: auto;\n box-shadow: none;\n outline: none;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:active {\n background-color: var(--ic-top-navigation-nav-group-pressed);\n color: var(--ic-top-navigation-nav-group-link);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus) {\n background-color: var(--ic-action-dark-bg-hover);\n color: var(--ic-action-default);\n cursor: pointer;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus) {\n background-color: var(--ic-action-dark-bg-pressed);\n color: var(--ic-action-default);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus {\n color: var(--ic-action-default);\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host .navigation-group-dropdown {\n background-color: var(--ic-top-navigation-menu-background);\n border-bottom: var(--ic-space-1px) solid var(--ic-top-navigation-menu-border);\n position: absolute;\n left: 0;\n right: 0;\n padding: var(--ic-space-xs) var(--ic-space-md);\n box-shadow: 0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);\n z-index: calc(var(--ic-z-index-navigation-item) - 1);\n}\n\n:host .navigation-group-dropdown-items-list {\n list-style: none;\n display: flex;\n flex-flow: column wrap;\n align-content: flex-start;\n padding-left: var(--ic-space-md);\n max-height: 16.5rem;\n}\n\n:host .chevron-toggle-icon-wrapper {\n display: flex;\n align-items: center;\n}\n\n:host .chevron-toggle-icon-wrapper svg {\n transform: rotate(90deg);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host .chevron-toggle-icon-closed svg {\n transform: rotate(-90deg);\n}\n\n:host(.ic-navigation-group-expanded) .grouped-links-wrapper {\n height: var(--navigation-child-items-height, auto) !important;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.ic-navigation-group-side-nav) .link,\n:host(.ic-navigation-group-side-nav) ::slotted(a) {\n height: var(--navigation-child-items-height, auto);\n}\n\n:host(.ic-navigation-group-collapsed) .grouped-links-wrapper {\n height: 0;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.ic-navigation-group-side-nav) .navigation-group {\n height: var(--navigation-group-height);\n width: var(--navigation-group-width);\n justify-content: var(--navigation-group-justify-content);\n padding-right: var(--navigation-group-expand-toggle-padding);\n}\n\n:host(.ic-navigation-group-side-nav) .navigation-group:hover,\n:host(.ic-navigation-group-side-nav) .navigation-group:active,\n:host(.ic-navigation-group-side-nav) .selected {\n background-color: var(--navigation-group-hover);\n color: var(--navigation-group-text-hover);\n}\n\n:host(.ic-navigation-group-side-nav) .navigation-group:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background: none;\n}\n\n:host(.ic-navigation-group-side-nav) .ic-typography-caption {\n position: var(--navigation-group-title-position);\n left: var(--navigation-group-title-position-left);\n white-space: nowrap;\n}\n","import { Host, h, } from \"@stencil/core\";\nimport { DEVICE_SIZES, getCurrentDeviceSize, getThemeForegroundColor, getNavItemParentDetails, } from \"../../utils/helpers\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nexport class NavigationGroup {\n constructor() {\n this.allGroupedNavigationItems = [];\n this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 100;\n this.IC_NAVIGATION_ITEM = \"ic-navigation-item\";\n this.mouseGate = false;\n this.nodeName = \"IC-NAVIGATION-GROUP\";\n this.GROUPED_LINKS_WRAPPER_CLASS = \".grouped-links-wrapper\";\n this.sideNavExpandHandler = (event) => {\n this.isSideNavExpanded = event.detail.sideNavExpanded;\n const linkWrapper = this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);\n if (!linkWrapper)\n return;\n if (this.isSideNavExpanded) {\n if (this.expanded && this.expandedNavItemsHeight) {\n this.setGroupedLinksElementHeight(linkWrapper, this.expandedNavItemsHeight);\n }\n else if (this.expanded) {\n setTimeout(() => {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(linkWrapper, this.expandedNavItemsHeight);\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n }\n else {\n if (this.expanded && this.collapsedNavItemsHeight) {\n this.setGroupedLinksElementHeight(linkWrapper, this.collapsedNavItemsHeight);\n }\n else if (this.expanded) {\n setTimeout(() => {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(linkWrapper, this.collapsedNavItemsHeight);\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n }\n };\n this.topNavResizedHandler = ({ detail, }) => {\n var _a;\n const { size } = detail;\n if (size !== this.deviceSize) {\n this.deviceSize = size;\n this.inTopNavSideMenu =\n size <=\n (((_a = this.parentEl) === null || _a === void 0 ? void 0 : _a.customMobileBreakpoint) || DEVICE_SIZES.L);\n }\n };\n this.setGroupedNavItemTabIndex = (tabIndexValue) => {\n this.el\n .querySelectorAll(this.IC_NAVIGATION_ITEM)\n .forEach((navigationItem) => {\n const navItem = navigationItem.shadowRoot.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n if (navItem) {\n navItem.setAttribute(\"tabindex\", tabIndexValue);\n }\n });\n };\n this.toggleGroupedLinkWrapperHeight = (wrapper, expanded) => {\n if (!wrapper)\n return;\n if (expanded) {\n if (this.isSideNavExpanded) {\n this.setGroupedLinksElementHeight(wrapper, this.expandedNavItemsHeight);\n }\n else {\n this.setGroupedLinksElementHeight(wrapper, this.collapsedNavItemsHeight);\n }\n this.setGroupedNavItemTabIndex(\"0\");\n }\n else {\n wrapper.style.setProperty(\"--navigation-child-items-height\", \"0\");\n this.setGroupedNavItemTabIndex(\"-1\");\n }\n };\n this.toggleExpanded = () => {\n this.expanded = !this.expanded;\n const linkWrapper = this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);\n this.toggleGroupedLinkWrapperHeight(linkWrapper, this.expanded);\n };\n this.handleClick = (ev) => {\n if (this.navigationType === \"top\" && ev.detail) {\n this.toggleDropdown();\n }\n else {\n this.toggleExpanded();\n }\n };\n this.handleBlur = (ev) => {\n const target = ev.relatedTarget;\n if (!this.el.contains(target)) {\n this.hideDropdown();\n }\n };\n this.handleTopNavKeydown = (ev) => {\n if (ev.key === \" \" || ev.key === \"Enter\") {\n this.toggleDropdown();\n }\n else if (!this.inTopNavSideMenu && ev.key === \"Escape\") {\n this.hideDropdown();\n }\n };\n this.handleKeydown = (ev) => {\n if (ev.key === \"Enter\" || ev.key === \" \" || ev.key === \"Escape\") {\n switch (this.navigationType) {\n case \"top\":\n this.handleTopNavKeydown(ev);\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\n }\n }\n };\n this.handleMouseLeave = (ev) => {\n const relTarget = ev.relatedTarget;\n this.mouseGate = false;\n if (!this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n document.activeElement !== this.el &&\n !this.el.contains(document.activeElement) &&\n (relTarget === null || relTarget === void 0 ? void 0 : relTarget.nodeName) === this.nodeName &&\n this.dropdownOpen === true) {\n this.mouseGate = true;\n this.hideDropdown();\n }\n else if (!this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n !this.el.contains(document.activeElement)) {\n this.mouseGate = false;\n setTimeout(() => {\n this.dropdownOpen ? this.hideDropdown() : null;\n }, 500);\n }\n };\n this.handleMouseEnter = (ev) => {\n const relTarget = ev.relatedTarget;\n document.addEventListener(\"keydown\", this.handleKeydown);\n if ((relTarget === null || relTarget === void 0 ? void 0 : relTarget.nodeName) === this.nodeName && this.mouseGate === true) {\n this.showDropdown();\n }\n else if (this.dropdownOpen === false &&\n relTarget !== null &&\n this.mouseGate === false) {\n this.mouseGate = true;\n setTimeout(() => {\n this.mouseGate && this.showDropdown();\n }, 500);\n }\n };\n this.renderDropdownGroupedLinks = () => (h(\"div\", { class: {\n [\"navigation-group-dropdown\"]: !this.inTopNavSideMenu,\n [\"navigation-group-dropdown-side-menu\"]: this.inTopNavSideMenu,\n [\"selected\"]: this.dropdownOpen && !this.inTopNavSideMenu,\n }, onMouseLeave: !this.inTopNavSideMenu ? this.handleMouseLeave : null, ref: (el) => (this.dropdown = el) }, h(\"nav\", { class: {\n [\"navigation-group-dropdown-items\"]: !this.inTopNavSideMenu,\n } }, h(\"ul\", null, h(\"slot\", null)))));\n this.renderGroupedLinks = () => (h(\"ul\", { class: \"grouped-links-wrapper\" }, h(\"slot\", null)));\n /**\n * Gets the total height of navigation links to improve\n * smoothness of expand/collapse animations\n */\n this.getNavigationChildItemsHeight = () => {\n let navigationChildItemsHeight = 0;\n this.allGroupedNavigationItems.forEach((navItem) => {\n navigationChildItemsHeight += navItem.offsetHeight;\n });\n return `${navigationChildItemsHeight}px`;\n };\n this.setInitialGroupedLinksWrapperHeight = () => {\n const linkWrapper = this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);\n if (!linkWrapper)\n return;\n if (!this.isSideNavExpanded &&\n !this.collapsedNavItemsHeight &&\n this.expanded) {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(linkWrapper, this.collapsedNavItemsHeight);\n }\n if (this.isSideNavExpanded && this.expanded) {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(linkWrapper, this.expandedNavItemsHeight);\n }\n };\n this.renderNavigationItems = () => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return this.renderDropdownGroupedLinks();\n }\n if (this.navigationType !== \"top\") {\n return this.renderGroupedLinks();\n }\n return null;\n };\n this.deviceSize = DEVICE_SIZES.XL;\n this.dropdownOpen = false;\n this.expanded = true;\n this.focusStyle = getThemeForegroundColor();\n this.inTopNavSideMenu = false;\n this.navigationType = undefined;\n this.parentEl = undefined;\n this.expandable = false;\n this.label = undefined;\n this.theme = \"inherit\";\n }\n disconnectedCallback() {\n var _a, _b;\n if (this.navigationType === \"side\") {\n (_a = this.parentEl) === null || _a === void 0 ? void 0 : _a.removeEventListener(\"icSideNavExpanded\", this.sideNavExpandHandler);\n }\n else if (this.navigationType === \"top\") {\n (_b = this.parentEl) === null || _b === void 0 ? void 0 : _b.removeEventListener(\"icTopNavResized\", this.topNavResizedHandler);\n }\n }\n componentWillLoad() {\n this.deviceSize = getCurrentDeviceSize();\n const { navType, parent } = getNavItemParentDetails(this.el);\n this.navigationType = navType;\n this.parentEl = parent;\n if (this.navigationType === \"side\") {\n this.parentEl.addEventListener(\"icSideNavExpanded\", this.sideNavExpandHandler);\n }\n else if (this.navigationType === \"top\") {\n this.parentEl.addEventListener(\"icTopNavResized\", this.topNavResizedHandler);\n if (this.deviceSize <=\n this.parentEl.customMobileBreakpoint)\n this.inTopNavSideMenu = true;\n }\n }\n componentDidLoad() {\n this.allGroupedNavigationItems = Array.from(this.el.querySelectorAll(this.IC_NAVIGATION_ITEM));\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(() => this.setInitialGroupedLinksWrapperHeight(), this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n childBlurHandler() {\n this.hideDropdown();\n }\n navItemClickHandler() {\n this.hideDropdown();\n }\n themeChangeHandler(ev) {\n const theme = ev.detail;\n this.focusStyle = theme.mode;\n }\n /**\n * Sets focus on the nav item.\n */\n async setFocus() {\n if (this.groupEl) {\n this.groupEl.focus();\n }\n }\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n }\n showDropdown() {\n if (!this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n hideDropdown() {\n document.removeEventListener(\"keydown\", this.handleKeydown);\n if (this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n setGroupedLinksElementHeight(groupedNavItemWrapper, height) {\n groupedNavItemWrapper.style.setProperty(\"--navigation-child-items-height\", height);\n }\n render() {\n const { label, dropdownOpen, inTopNavSideMenu, expandable } = this;\n return (h(Host, { class: {\n [\"in-side-menu\"]: inTopNavSideMenu,\n \"ic-navigation-group-expanded\": this.expanded,\n \"ic-navigation-group-collapsed\": !this.expanded,\n [\"ic-navigation-group-side-nav\"]: this.navigationType === \"side\",\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }, role: \"listitem\" }, h(\"button\", { onMouseEnter: !inTopNavSideMenu &&\n this.navigationType === \"top\" &&\n this.handleMouseEnter, onMouseLeave: this.navigationType === \"top\" && this.handleMouseLeave, tabindex: inTopNavSideMenu && !expandable ? \"-1\" : \"0\", onBlur: this.handleBlur, onClick: expandable ? this.handleClick : null, onKeyDown: this.handleKeydown, class: {\n [\"navigation-group\"]: true,\n [this.focusStyle]: !inTopNavSideMenu,\n [\"navigation-group-side-menu\"]: inTopNavSideMenu && !expandable,\n [\"navigation-group-side-menu-collapsed\"]: inTopNavSideMenu && expandable && !dropdownOpen,\n [\"navigation-group-side-menu-expanded\"]: inTopNavSideMenu && expandable && dropdownOpen,\n [\"selected\"]: dropdownOpen && !inTopNavSideMenu,\n }, ref: (el) => (this.groupEl = el), \"aria-expanded\": `${dropdownOpen || this.expanded}`, \"aria-haspopup\": `${!inTopNavSideMenu && this.navigationType === \"top\"}` }, h(\"ic-typography\", { variant: this.navigationType === \"side\" ? \"caption\" : \"label\" }, label), this.navigationType === \"side\" && expandable && (h(\"div\", { class: {\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": this.expanded,\n }, innerHTML: chevronIcon }))), this.renderNavigationItems()));\n }\n static get is() { return \"ic-navigation-group\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-navigation-group.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-navigation-group.css\"]\n };\n }\n static get properties() {\n return {\n \"expandable\": {\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 group will be expandable in the side menu.\"\n },\n \"attribute\": \"expandable\",\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\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label to display on the group.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"deviceSize\": {},\n \"dropdownOpen\": {},\n \"expanded\": {},\n \"focusStyle\": {},\n \"inTopNavSideMenu\": {},\n \"navigationType\": {},\n \"parentEl\": {}\n };\n }\n static get methods() {\n return {\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets focus on the nav item.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"childBlur\",\n \"method\": \"childBlurHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"navItemClicked\",\n \"method\": \"navItemClickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"themeChange\",\n \"method\": \"themeChangeHandler\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-navigation-group.js.map\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as i,H as s,g as o,f as a}from"./p-8455d1bb.js";import{r as n,a as r,L as l,c as h,C as c,A as d,M as u,k as p,v as b,j as f,l as m,n as g,p as v,N as x,w as y,O as w,P as k,i as z,E as L}from"./p-b2389339.js";const C=`<svg width="8" height="10" viewBox="0 0 8 10" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M2.08748 0L0.912476 1.175L4.72914 5L0.912476 8.825L2.08748 10L7.08748 5L2.08748 0Z" fill="currentColor"/>\n</svg>\n`;const H=`<svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M11.1709 8.825L7.34589 5L11.1709 1.175L9.99589 0L4.99589 5L9.99589 10L11.1709 8.825ZM0.829224 0H2.49589V10H0.829224V0Z" fill="currentColour"/>\n</svg>`;const $='/*! 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}:host{box-sizing:border-box;width:100%;display:flex;justify-content:center}nav{width:100%;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center}ic-button{cursor:pointer}ic-button.next-previous{--icon-width:var(--ic-space-xs);--icon-height:calc(var(--ic-space-xs) + var(--ic-space-xxxs));padding:0 var(--ic-space-xxs) 0 var(--ic-space-xxxs)}ic-button.first-last{--icon-width:calc(var(--ic-space-sm) + var(--ic-space-xxxs));--icon-height:calc(var(--ic-space-xs) + var(--ic-space-xxxs))}ic-button.first-last::part(button),ic-button.next-previous::part(button){color:var(--ic-pagination-chevron)}:host(.ic-pagination-monochrome) ic-button.first-last::part(button),:host(.ic-pagination-monochrome) ic-button.next-previous::part(button){color:var(--ic-pagination-chevron-monochrome)}ic-button.ic-button-disabled.first-last::part(button),ic-button.ic-button-disabled.next-previous::part(button){color:var(--ic-pagination-chevron-disabled)}.disabled{color:var(--ic-architectural-200);pointer-events:none;cursor:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.hide-current-page{display:none}.sr-only{position:absolute;left:-9999px}';const T=class{constructor(s){t(this,s);this.icPageChange=e(this,"icPageChange",7);this.handleClickFirst=()=>{this.currentPage=1;this.icPageChange.emit({value:this.currentPage})};this.handleClickPrevious=()=>{this.currentPage--;this.icPageChange.emit({value:this.currentPage})};this.handleClickNext=()=>{this.currentPage++;this.icPageChange.emit({value:this.currentPage})};this.handleClickLast=()=>{this.currentPage=this.pages;this.icPageChange.emit({value:this.currentPage})};this.firstButton=()=>i("ic-button",{id:"first-page-button","aria-label":"Go to first page",theme:this.theme,onClick:this.handleClickFirst,class:"page-button first-last",disabled:this.currentPage===1||this.disabled,variant:"icon-tertiary",monochrome:this.theme=="light"||this.theme=="dark",innerHTML:H});this.previousButton=()=>i("ic-button",{id:"previous-page-button","aria-label":"Go to previous page",theme:this.theme,onClick:this.handleClickPrevious,class:"page-button next-previous flip",disabled:this.currentPage===1||this.disabled,variant:"icon-tertiary",monochrome:this.theme=="light"||this.theme=="dark",innerHTML:C});this.nextButton=()=>i("ic-button",{id:"next-page-button","aria-label":"Go to next page",theme:this.theme,onClick:this.handleClickNext,class:"page-button next-previous",disabled:this.currentPage===this.pages||this.disabled,variant:"icon-tertiary",monochrome:this.theme=="light"||this.theme=="dark",innerHTML:C});this.lastButton=()=>i("ic-button",{id:"last-page-button","aria-label":"Go to last page",theme:this.theme,onClick:this.handleClickLast,class:"page-button first-last flip",disabled:this.currentPage===this.pages||this.disabled,variant:"icon-tertiary",monochrome:this.theme=="light"||this.theme=="dark",innerHTML:H});this.renderStartEllipsis=()=>i("ic-pagination-item",{theme:this.theme,monochrome:this.monochrome,type:"ellipsis",id:"start-ellipsis",disabled:this.disabled});this.renderEndEllipsis=()=>i("ic-pagination-item",{theme:this.theme,monochrome:this.monochrome,type:"ellipsis",id:"end-ellipsis",disabled:this.disabled});this.renderStartItems=()=>this.startItems.map((t=>i("ic-pagination-item",{theme:this.theme,monochrome:this.monochrome,selected:t===this.currentPage,id:`pagination-item-${t}`,type:"page",page:t,disabled:this.disabled})));this.renderEndItems=()=>this.endItems.map((t=>i("ic-pagination-item",{theme:this.theme,monochrome:this.monochrome,selected:t===this.currentPage,id:`pagination-item-${t}`,type:"page",page:t,disabled:this.disabled})));this.renderMiddleItems=()=>this.midItems.map((t=>i("ic-pagination-item",{theme:this.theme,monochrome:this.monochrome,selected:t===this.currentPage,id:`pagination-item-${t}`,type:"page",page:t,disabled:this.disabled})));this.endEllipsis=false;this.endItems=[];this.midItems=[];this.startEllipsis=false;this.startItems=[];this.adjacentPageCount=1;this.boundaryPageCount=1;this.defaultPage=1;this.disabled=false;this.hideCurrentPage=false;this.hideFirstAndLastPageButton=false;this.label="Page";this.monochrome=false;this.pages=undefined;this.theme="inherit";this.type="simple";this.currentPage=this.defaultPage}watchAdjacentPageCountHandler(){if(this.adjacentPageCount>2){this.adjacentPageCount=2}}watchBoundaryPageCountHandler(){if(this.boundaryPageCount>2){this.boundaryPageCount=2}}watchNumberPagesHandler(){this.watchPageChangeHandler()}watchTypeHandler(){this.watchPageChangeHandler()}watchPageChangeHandler(){if(this.type==="simple"){return}this.startEllipsis=false;this.endEllipsis=false;this.startItems=[];this.endItems=[];this.midItems=[];const t=[];let e=0;const i=[];let s=this.pages;const o=[];let a;let n;let r=false;let l=false;if(this.pages<=this.boundaryPageCount*2+this.adjacentPageCount*2+3){this.startEllipsis=false;this.endEllipsis=false;for(let e=1;e<=this.pages;e++){t.push(e)}this.startItems=t;return}e=this.boundaryPageCount===0?1:this.boundaryPageCount;s=this.boundaryPageCount===0?this.pages:this.pages-this.boundaryPageCount+1;if(this.currentPage<=this.adjacentPageCount+this.boundaryPageCount+2){r=false;l=true;let t=2*this.adjacentPageCount+1;if(this.boundaryPageCount===0){t--}a=e+1;n=a+t}else{r=true;if(this.currentPage>this.pages-(this.adjacentPageCount+this.boundaryPageCount+2)){let t=2*this.adjacentPageCount+1;if(this.boundaryPageCount===0){t--}n=this.boundaryPageCount===0?this.pages-1:this.pages-this.boundaryPageCount;a=n-t}else{l=true;a=this.currentPage-this.adjacentPageCount;n=this.currentPage+this.adjacentPageCount}}if(this.boundaryPageCount>0||this.boundaryPageCount===0&&r===false){for(let i=1;i<=e;i++){t.push(i)}}if(this.boundaryPageCount>0||this.boundaryPageCount===0&&l===false){for(let t=s;t<=this.pages;t++){i.push(t)}}for(let t=a;t<=n;t++){o.push(t)}this.startEllipsis=r;this.endEllipsis=l;this.startItems=t;this.endItems=i;this.midItems=o}componentWillLoad(){this.watchPageChangeHandler();this.watchBoundaryPageCountHandler();this.watchAdjacentPageCountHandler();n(this.disabled,this.el)}componentDidLoad(){r([{prop:this.pages,propName:"pages"}],"Pagination")}paginationItemClickHandler(t){const e=t.detail.page;this.currentPage=e;this.icPageChange.emit({value:this.currentPage})}async setCurrentPage(t){if(typeof t==="number"&&t>0&&t<=this.pages){this.currentPage=t}else{console.error("Current page must be a number greater than zero but less than or equal to the total number of pages")}}render(){const{type:t,currentPage:e,hideCurrentPage:o,disabled:a,hideFirstAndLastPageButton:n,label:r,theme:l,monochrome:h}=this;return i(s,{class:{[`ic-theme-${l}`]:l!=="inherit",["ic-pagination-monochrome"]:h}},t==="simple"&&i("nav",{class:{["disabled"]:a},role:"navigation","aria-label":"Pagination Navigation"},n?null:this.firstButton(),this.previousButton(),i("ic-pagination-item",{theme:this.theme,monochrome:this.monochrome,type:"simple-current",page:e,label:r,class:{["hide-current-page"]:o},disabled:a}),this.nextButton(),n?null:this.lastButton()),t==="complex"&&i("nav",{class:{["disabled"]:a},role:"navigation","aria-label":"Pagination Navigation"},n?null:this.firstButton(),this.previousButton(),this.renderStartItems(),this.startEllipsis&&this.renderStartEllipsis(),this.renderMiddleItems(),this.endEllipsis&&this.renderEndEllipsis(),this.renderEndItems(),this.nextButton(),n?null:this.lastButton()),t==="complex"&&i("span",{class:"sr-only","aria-live":"polite"},"Page ",this.currentPage))}get el(){return o(this)}static get watchers(){return{adjacentPageCount:["watchAdjacentPageCountHandler"],boundaryPageCount:["watchBoundaryPageCountHandler"],pages:["watchNumberPagesHandler"],type:["watchTypeHandler"],currentPage:["watchPageChangeHandler"]}}};T.style=$;const M='/*! 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}a{text-align:center}.item-container{display:flex;justify-content:center;align-items:center;width:calc(var(--ic-space-xl) + var(--ic-space-sm));height:var(--ic-space-xl);margin:var(--ic-space-xxs) var(--ic-space-xxxs);cursor:pointer;text-decoration:none}button{background:none;border:none;outline:inherit;position:relative}.ellipsis{pointer-events:none;--ic-typography-color:var(--ic-pagination-ellipsis)}.monochrome .ellipsis{--ic-typography-color:var(--ic-pagination-ellipsis-monochrome)}.item-container:focus{box-shadow:var(--ic-border-focus);outline:var(--ic-hc-focus-outline);border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-fast)}.page{--ic-typography-color:var(--ic-pagination-page-number)}.monochrome .page{--ic-typography-color:var(--ic-pagination-page-number-monochrome)}.simple-current{min-width:calc(var(--ic-space-xxl) + var(--ic-space-md));height:var(--ic-space-lg);cursor:default}.item-container.page:hover:not(.selected):not(:focus){border-radius:var(--ic-border-radius);background-color:var(--ic-pagination-hover)}.item-container.page:active:not(.selected):not(:focus){background-color:var(--ic-pagination-pressed)}.monochrome .item-container.page:hover:not(.selected):not(:focus){background-color:var(--ic-pagination-hover-monochrome)}.monochrome .item-container.page:active:not(.selected):not(:focus){background-color:var(--ic-pagination-pressed-monochrome)}.selected{pointer-events:none;outline:none}.selected::after{content:"";height:var(--ic-space-xxs);width:100%;position:absolute;bottom:0;background-color:var(--ic-pagination-selected-banner)}.monochrome .selected::after{background-color:var(--ic-pagination-selected-banner-monochrome)}.page-selected{--ic-typography-color:var(--ic-pagination-text)}.item-container.page.light:hover:not(.selected):not(:focus){background-color:var(--ic-action-light-bg-hover)}.item-container.page.light:active:not(.selected):not(:focus){background-color:var(--ic-action-light-bg-pressed)}ic-typography.light,ic-typography.page-selected.light{--ic-typography-color:var(--ic-architectural-white)}.selected.light::after{content:"";height:var(--ic-space-xxs);width:100%;position:absolute;bottom:0;background-color:var(--ic-action-light)}.item-container.page.dark:hover:not(.selected):not(:focus){background-color:var(--ic-action-dark-bg-hover)}.item-container.page.dark:active:not(.selected):not(:focus){background-color:var(--ic-action-dark-bg-pressed)}ic-typography.dark{--ic-typography-color:var(--ic-color-text-primary)}.selected.dark::after{content:"";height:var(--ic-space-xxs);width:100%;position:absolute;bottom:0;background-color:var(--ic-action-dark)}.disabled{--ic-typography-color:var(--ic-architectural-200);pointer-events:none;cursor:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (forced-colors: active){.selected::after{background-color:Highlight}.selected.light::after{background-color:Highlight}.selected.dark::after{background-color:Highlight}.disabled{--ic-typography-color:GrayText}}';const j=class{constructor(i){t(this,i);this.paginationItemClick=e(this,"paginationItemClick",7);this.handleClick=()=>{this.paginationItemClick.emit({page:this.page})};this.capitalizedLabel=undefined;this.disabled=false;this.label="Page";this.monochrome=false;this.page=undefined;this.selected=false;this.theme="inherit";this.type=undefined}watchLabelHandler(){this.capitalizedLabel=l(this.label)}componentWillLoad(){this.watchLabelHandler();n(this.disabled,this.el)}render(){const{page:t,selected:e,type:s,disabled:o,label:a,capitalizedLabel:n,monochrome:r}=this;return i("a",{class:{["monochrome"]:r}},s==="ellipsis"?i("div",{class:{["item-container"]:true,["ellipsis"]:true,["disabled"]:o}},i("ic-typography",{variant:"label"},"...")):s==="page"?i("button",{disabled:o,onClick:this.handleClick,tabindex:e?"-1":"0",role:"button","aria-current":e&&"page","aria-label":e?`${a}: ${t}`:`Go to ${a} ${t}`,class:{["selected"]:!o&&e,["disabled"]:o,["item-container"]:true,["page"]:s==="page"}},i("ic-typography",{variant:"label",class:{["page-selected"]:e,["disabled"]:o}},t)):i("ic-typography",{"aria-live":"polite",class:{[`simple-current`]:true,["disabled"]:o},variant:"label"},n," ",t))}get el(){return o(this)}static get watchers(){return{label:["watchLabelHandler"]}}};j.style=M;const B=`<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n<path d="M7 9.5L12 14.5L17 9.5H7Z" fill="currentColor" />\n</svg>\n`;const P=`<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">\n<path d="M12.6666 4.27334L11.7266 3.33334L7.99998 7.06001L4.27331 3.33334L3.33331 4.27334L7.05998 8.00001L3.33331 11.7267L4.27331 12.6667L7.99998 8.94001L11.7266 12.6667L12.6666 11.7267L8.93998 8.00001L12.6666 4.27334Z" fill="currentColor" />\n</svg>\n`;const O='/*! 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}:host{display:block;position:relative;--ic-input-label-helpertext-padding:var(--ic-space-xxs);--menu-max-height:100px;--border-color:var(--ic-select-field-border);--border-color-hover:var(--ic-select-field-border-hover);--border-color-pressed:var(--ic-select-field-border-pressed);--border-color-disabled:var(--ic-select-field-border-disabled);--border-color-error:var(--ic-select-field-border-error);--border-color-error-hover:var(--ic-select-field-border-error-hover);--border-color-error-pressed:var(--ic-select-field-border-error-pressed);--border-color-success:var(--ic-select-field-border-success);--border-color-success-hover:var(--ic-select-field-border-success-hover);--border-color-success-pressed:var(--ic-select-field-border-success-pressed);--border-color-warning:var(--ic-select-field-border-warning);--border-color-warning-hover:var(--ic-select-field-border-warning-hover);--border-color-warning-pressed:var(--ic-select-field-border-warning-pressed);--ic-input-label-text-color:var(--ic-select-field-labe);--ic-input-label-helper-text-color:var(\n --ic-select-input-field-label-subtitle\n );--ic-input-validation-status-text-color:var(--ic-select-state-text);--ic-input-validation-error:var(--ic-select-state-icon-error);--ic-input-validation-warning-icon-color:var(--ic-select-state-icon-warning);--ic-input-validation-success-icon-color:var(--ic-select-state-icon-success);--menu-item-text-color:var(--ic-select-list-option-text);--menu-bg-color:var(--ic-select-list-option-background);--menu-border-color:var(--ic-select-dropdown-list-border)}:host(.ic-select-disabled){--ic-input-label-text-color:var(--ic-select-field-label-disabled);--ic-input-label-helper-text-color:var(\n --ic-select-input-field-label-subtitle-disabled\n )}:host(.ic-select-full-width){width:100%}ic-input-component-container.menu-open{--border-color:var(--ic-select-field-border-pressed)}ic-input-validation .status-icon,ic-input-validation .statustext{visibility:visible}ic-input-validation.menu-open .status-icon,ic-input-validation.menu-open .statustext{visibility:hidden;transition:visibility 0s}ic-input-label{margin-bottom:var(--ic-space-xs) !important}select{border:0;border-radius:var(--ic-border-radius);background-color:var(--ic-select-field-background);color:var(--ic-select-content-text);line-height:1.5rem;letter-spacing:0.005rem;width:100%;height:100%;padding-left:0.375rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;background-position:right 0.375rem center;background-image:var(--ic-select-mobile-dropdown-icon);caret-color:var(--ic-select-input-field-text-cursor)}select option,.select-option-selected{color:var(--ic-select-list-option-text)}select:disabled{color:var(--ic-select-content-text-disabled);background-image:var(--ic-select-mobile-dropdown-icon-disabled)}select:focus{border:0;outline:0}select:not([disabled]){cursor:pointer}.select-container{width:100%;display:flex;align-items:center;position:relative}.select-input{width:100%;height:100%;padding:0 0.375rem;display:flex;cursor:pointer;align-items:center;justify-content:space-between;background:none;border:none;background-color:var(--ic-select-field-background);color:var(--ic-select-content-text)}.select-input:focus{outline:var(--ic-hc-focus-outline)}.select-input[disabled]{pointer-events:none}:host(.ic-select-searchable) .select-input{cursor:auto}.select-input.with-clear-button{padding-right:0}.value-text{max-width:calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-bottom:0 !important}.value-text.with-clear-button{padding-right:calc(var(--ic-space-xl) + var(--ic-space-xs))}.searchable-select-container{align-items:center;display:flex;width:100%;position:relative}.expand-icon{height:var(--ic-space-lg);padding-left:var(--ic-space-xxs);color:var(--ic-select-expand-icon-color)}.expand-icon>svg{display:inline-block;width:var(--ic-space-lg);height:var(--ic-space-lg)}:host(.ic-select-disabled) .expand-icon,:host(.ic-select-disabled) .expand-icon>svg>path{color:var(--ic-select-disabled-expand-icon-color)}:host(.ic-select-searchable) .expand-icon{padding-left:0;height:2.25rem}:host(.ic-select-searchable) .expand-icon>svg{height:2.25rem;padding:0 calc(var(--ic-space-xxxs) + var(--ic-space-xxs)) 0\n var(--ic-space-xxs)}:host(.ic-select-searchable:not(.ic-select-disabled)) .expand-icon>svg{cursor:pointer}.expand-icon-open{color:var(--ic-select-expand-icon-color)}.expand-icon-open,:host(.ic-select-searchable) .expand-icon-open{transform:rotateX(180deg)}:host(.ic-select-disabled) .value-text,.placeholder{color:var(--ic-select-content-placeholder-text)}.select-input-end{display:flex;align-items:center}.clear-button-container{display:flex;align-items:center}.divider{width:var(--ic-space-1px);background-color:var(--ic-select-content-divider);margin:var(--ic-space-xxs) 0;border-radius:var(--ic-space-1px);height:var(--ic-space-lg)}:host(.ic-select-small) .divider{height:var(--ic-space-md)}:host(.ic-select-large) .divider{height:var(--ic-space-xl)}.clear-button{color:var(--ic-select-clear-button);position:absolute;right:calc(var(--ic-space-xl) + var(--ic-space-xxs) - var(--ic-space-1px));border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition)}.clear-button:focus{background-color:var(--ic-color-focus-inner);box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer);border-radius:0.25rem}.clear-button.searchable{position:static}.searchable-select-results-status,.multi-select-selected-count{border:0;clip:rect(0, 0, 0, 0, 0);height:var(--ic-space-1px);overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:var(--ic-space-1px)}::slotted([slot="icon"]){fill:var(--ic-select-content-placeholder-text)}.has-value ::slotted([slot="icon"]){fill:var(--ic-select-content-text)}.readonly ::slotted([slot="icon"]){padding:0.375rem;margin-bottom:0.75rem}@media (forced-colors: active){.has-value ::slotted([slot="icon"]){fill:currentcolor}}';let I=0;const N=[...y,"tabindex","title"];const q=class{constructor(i){t(this,i);this.icBlur=e(this,"icBlur",7);this.icChange=e(this,"icChange",7);this.icClear=e(this,"icClear",7);this.icClose=e(this,"icClose",7);this.icFocus=e(this,"icFocus",7);this.icInput=e(this,"icInput",7);this.icOpen=e(this,"icOpen",7);this.icOptionSelect=e(this,"icOptionSelect",7);this.icOptionDeselect=e(this,"icOptionDeselect",7);this.icRetryLoad=e(this,"icRetryLoad",7);this.hasSetDefaultValue=false;this.inheritedAttributes={};this.initialOptionsEmpty=false;this.inputId=`ic-select-input-${I++}`;this.menuId=`${this.inputId}-menu`;this.searchableMenuItemSelected=false;this.ungroupedOptions=[];this.hostMutationObserver=null;this.hostMutationCallback=t=>{let e=false;t.forEach((({attributeName:t,type:i,addedNodes:s,removedNodes:o})=>{if(N.includes(t)){this.inheritedAttributes[t]=this.el.getAttribute(t);e=true}else if(i==="childList"){e=h(s,o,"icon")}}));if(e){a(this)}};this.handleRetry=t=>{var e;if(t.detail.keyPressed)(e=this.searchableSelectElement)===null||e===void 0?void 0:e.focus();this.blurredBecauseButtonPressed=true;this.retryButtonClick=true;this.hasSetDefaultValue=true;this.icRetryLoad.emit({value:this.hiddenInputValue})};this.emitIcChange=t=>{if(!this.searchable){if(this.multiple&&!Array.isArray(t)&&t!==null){this.handleMultipleSelectChange(t)}else{this.value=t}}clearTimeout(this.debounceIcChange);this.debounceIcChange=window.setTimeout((()=>{const e=this.multiple?this.value:t;this.icChange.emit({value:e})}),this.currDebounce)};this.emitImmediateIcChange=t=>{this.value=t;clearTimeout(this.debounceIcChange);this.icChange.emit({value:t})};this.deduplicateOptions=t=>{const e=[];const i=[];let s;t.forEach((t=>{if(t.children){s=[];t.children.forEach((t=>{if(e.includes(t.value)){console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${t.value}) which has been removed.`)}else{e.push(t.value);s.push(t)}}));const o=Object.assign(Object.assign({},t),{children:s});i.push(o)}else{if(e.includes(t.value)){console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${t.value}) which has been removed.`)}else{e.push(t.value);i.push(t)}}}));return i};this.setOptionsValuesFromLabels=()=>{var t;if(((t=this.options)===null||t===void 0?void 0:t.length)>0&&this.options.map){this.options.map((t=>{if(!t.value){t.value=t.label}}))}};this.setUngroupedOptions=t=>{this.ungroupedOptions=t.detail.options};this.setTextColor=()=>{if(this.nativeSelectElement.selectedIndex===0){this.nativeSelectElement.className="placeholder"}else{this.nativeSelectElement.className="select-option-selected"}};this.setMenuChange=t=>{if(this.open!==t){this.open=t}};this.getLabelFromValue=t=>c(t,this.uniqueOptions);this.getMultipleOptionsString=t=>{const e=t===null||t===void 0?void 0:t.map((t=>this.getLabelFromValue(t)));return e===null||e===void 0?void 0:e.join(", ")};this.getFilteredChildMenuOptions=t=>{let e=t.children;if(this.searchable){e=d(t.children,this.includeDescriptionsInSearch,this.searchableSelectInputValue,this.searchMatchPosition)}else{e=d(t.children,false,this.pressedCharacters,"start")}const i=Object.assign({},t);i.children=e;return i};this.getValueSortedByOptions=t=>{const e=t;const i=this.ungroupedOptions.map((t=>t.value));e.sort(((t,e)=>i.indexOf(t)-i.indexOf(e)));return e};this.handleNativeSelectChange=()=>{this.icOptionSelect.emit({value:this.nativeSelectElement.value});this.emitImmediateIcChange(this.nativeSelectElement.value);this.setTextColor()};this.handleCustomSelectChange=t=>{var e;const i=t.detail.value;if(this.searchable&&t.detail.label===this.emptyOptionListText){this.searchableSelectElement.focus();return}if(this.searchable){this.value=i;this.searchableMenuItemSelected=true;if(this.value===this.currValue){this.searchableSelectInputValue=this.getLabelFromValue(this.value)}this.inputValueToFilter=null;this.hiddenInputValue=this.getValueFromLabel(this.searchableSelectInputValue)}if(this.multiple&&((e=this.value)===null||e===void 0?void 0:e.includes(i))){this.icOptionDeselect.emit({value:i})}else{this.icOptionSelect.emit({value:i})}this.ariaActiveDescendant=t.detail.optionId;this.emitIcChange(i)};this.handleMultipleSelectChange=t=>{if(this.value){let e=this.value.slice();if(this.value.includes(t)){const i=e.indexOf(t);e.splice(i,1)}else{e.push(t);e=this.getValueSortedByOptions(e)}this.value=e.length===0?null:e}else{const e=[];e.push(t);this.value=e}};this.handleSelectAllChange=t=>{const e=t.detail.select;const i=this.ungroupedOptions.filter((t=>!t.disabled));const s=i.map((t=>t.value));let o;if(e){let t;if(this.value){t=s.filter((t=>this.value&&!this.value.includes(t)))}else{t=s}t.forEach((t=>this.icOptionSelect.emit({value:t})));o=s}else{this.value.forEach((t=>this.icOptionDeselect.emit({value:t})));o=null}this.emitIcChange(o)};this.handleMenuChange=t=>{this.open=t.detail.open;this.pressedCharacters="";this.searchable&&this.handleFocusIndicatorDisplay()};this.handleMenuKeyPress=t=>{t.cancelBubble=true;if(!this.multiple){this.handleCharacterKeyDown(t.detail.key)}};this.handleFocusIndicatorDisplay=()=>{const t=this.el.shadowRoot.querySelector(".focus-indicator");if(this.open){t.classList.add("focus-indicator-enabled")}else{t.classList.remove("focus-indicator-enabled")}};this.handleMouseDown=t=>{if(!this.open){t.preventDefault()}};this.isExternalFiltering=()=>this.searchable&&this.disableAutoFiltering;this.handleClick=t=>{var e;if(!this.open){if(this.isExternalFiltering()){this.menu.options=this.filteredOptions}else if(!this.hasTimedOut&&!this.loading&&!((e=this.noOptions)===null||e===void 0?void 0:e.length)&&(!this.searchable||this.searchableMenuItemSelected)){this.noOptions=null;this.menu.options=this.uniqueOptions}}if(t.detail!==0){this.menu.handleClickOpen()}};this.handleExpandIconMouseDown=t=>{if(!this.disabled){t.preventDefault();this.searchableSelectElement.focus();this.handleClick(t)}};this.handleClear=t=>{t.stopPropagation();this.hasTimedOut=false;clearTimeout(this.timeoutTimer);this.noOptions=null;this.emitImmediateIcChange(null);this.icClear.emit();if(this.searchable){this.searchableSelectElement.value=null;this.searchableSelectInputValue=null;this.filteredOptions=this.uniqueOptions;this.hiddenInputValue=null;this.searchableSelectElement.focus()}else{this.customSelectElement.focus()}};this.handleCharacterKeyDown=t=>{if(this.open&&t===" "&&this.pressedCharacters.length===0&&!this.hasTimedOut&&!this.loading){this.setMenuChange(false)}if(t.length===1&&!this.searchable){window.clearTimeout(this.characterKeyPressTimer);this.characterKeyPressTimer=window.setTimeout((()=>this.pressedCharacters=""),1e3);if(!(t===" "&&!this.pressedCharacters)){this.pressedCharacters+=t;this.handleFilter();if(!this.noOptions){this.emitImmediateIcChange(this.filteredOptions[0].value)}}}else{this.pressedCharacters=""}};this.handleNativeSelectKeyDown=t=>{if(t.key!=="Escape"&&t.key!=="Tab"||this.open){t.cancelBubble=true}this.handleCharacterKeyDown(t.key)};this.handleKeyDown=t=>{if(t.key!=="Escape"&&t.key!=="Tab"||this.open){t.cancelBubble=true}const e=t.key==="ArrowDown"||t.key==="ArrowUp";if(!this.open){if(this.isExternalFiltering()&&(t.key==="Enter"||e)){this.menu.options=this.filteredOptions}else{if(!this.hasTimedOut){this.noOptions=null;this.menu.options=this.uniqueOptions}}}if(this.open&&t.key==="Enter"){this.setMenuChange(false)}else{if(!(e&&this.noOptions!==null)){if(!(t.key===" "&&this.pressedCharacters.length>0)){this.menu.handleKeyboardOpen(t)}if(!this.multiple){this.handleCharacterKeyDown(t.key)}}}};this.handleClearButtonFocus=()=>{this.clearButtonFocused=true};this.handleClearButtonBlur=t=>{var e;const i=(e=this.menu)===null||e===void 0?void 0:e.querySelector("#retry-button");if(!(this.searchableSelectElement&&t.relatedTarget===this.searchableSelectElement)&&!(i&&t.relatedTarget===i)){this.setMenuChange(false);this.handleFocusIndicatorDisplay()}this.clearButtonFocused=false};this.handleFilter=()=>{var t;const e=this.deduplicateOptions(this.searchable?[...this.uniqueOptions]:this.ungroupedOptions);let i=false;let s=[];e.map((t=>{if(t.children)i=true}));let o;if(this.searchable){o=d(e,this.includeDescriptionsInSearch,this.inputValueToFilter,this.searchMatchPosition);this.searchableMenuItemSelected=false}else{o=d(e,false,this.pressedCharacters,"start")}if(!i&&((t=o[0])===null||t===void 0?void 0:t.label)!==this.emptyOptionListText){s=o}else if(i){e.map((t=>{if(this.includeGroupTitlesInSearch){if(o.indexOf(t)!==-1){s.push(t)}else{s.push(this.getFilteredChildMenuOptions(t))}}else{s.push(this.getFilteredChildMenuOptions(t))}}))}let a=false;if(i){a=true;s.map((t=>{if(t.children.length>0){a=false}}))}if(s.length>0&&!a){this.noOptions=null;this.filteredOptions=s}else{this.noOptions=[{label:this.emptyOptionListText,value:""}];this.filteredOptions=this.noOptions}};this.triggerLoading=()=>{this.hasTimedOut=false;this.noOptions=[{label:this.loadingLabel,value:"",loading:true}];if(this.filteredOptions!==this.noOptions&&this.searchable){this.filteredOptions=this.noOptions}else if(this.uniqueOptions!==this.noOptions&&!this.searchable){this.uniqueOptions=this.noOptions}if(this.timeout){this.timeoutTimer=window.setTimeout((()=>{this.loading=false;this.hasTimedOut=true;this.noOptions=[{label:this.loadingErrorLabel,value:"",timedOut:true}];this.filteredOptions=this.noOptions;if(!this.searchable)this.uniqueOptions=this.noOptions}),this.timeout)}};this.getValueFromLabel=t=>{var e;return(e=this.uniqueOptions.find((e=>e.label===t)))===null||e===void 0?void 0:e.value};this.handleSearchableSelectInput=t=>{this.searchableSelectInputValue=t.target.value;this.icInput.emit({value:this.searchableSelectInputValue});this.emitIcChange(this.searchableSelectInputValue);this.hiddenInputValue=this.searchableSelectInputValue;this.inputValueToFilter=this.searchableSelectInputValue;this.setMenuChange(true);if(!this.disableAutoFiltering){this.handleFilter();this.debounceAriaLiveUpdate()}};this.updateSearchableSelectResultAriaLive=()=>{const t=this.el.shadowRoot.querySelector(".searchable-select-results-status");if(t){if(this.noOptions!==null){t.innerText=this.emptyOptionListText}else{t.innerText=""}}};this.updateMultiSelectedCountAriaLive=()=>{var t;const e=this.el.shadowRoot.querySelector(".multi-select-selected-count");const i=`${(t=this.currValue)===null||t===void 0?void 0:t.length} of ${u(this.options)} selected`;if(e&&e.innerText!==i){e.innerText=i}};this.getDefaultValue=t=>this.getLabelFromValue(t)||t||null;this.setDefaultValue=()=>{if(!this.hasSetDefaultValue&&this.currValue){this.searchableSelectInputValue=this.searchable&&this.getDefaultValue(this.currValue);this.initialValue=this.currValue;this.hasSetDefaultValue=true}};this.onFocus=()=>{this.icFocus.emit()};this.onBlur=({relatedTarget:t})=>{var e;const i=t;if(i!==null&&(i.tagName==="UL"&&i.className.includes("menu")||i.tagName==="LI"&&i.className.includes("option"))){return}const s=(e=this.menu)===null||e===void 0?void 0:e.querySelector("#retry-button");const o=this.searchable&&!!this.menu&&i!==this.menu&&!Array.from(this.menu.querySelectorAll("[role='option']")).includes(i)&&!(this.clearButton&&i===this.clearButton)&&!(s&&i===s);if(o){if(!this.retryButtonClick){this.setMenuChange(false)}this.handleFocusIndicatorDisplay()}this.retryButtonClick=false;this.icBlur.emit()};this.onTimeoutBlur=t=>{if(t.detail.ev.relatedTarget!==this.searchableSelectElement&&!this.blurredBecauseButtonPressed){this.setMenuChange(false);this.handleFocusIndicatorDisplay();this.icBlur.emit()}this.blurredBecauseButtonPressed=false};this.handleFormReset=()=>{this.value=this.initialValue;if(this.searchable){this.searchableSelectInputValue=this.getDefaultValue(this.value);this.hiddenInputValue=this.value}};this.ariaActiveDescendant=undefined;this.clearButtonFocused=false;this.debounceIcChange=undefined;this.hiddenInputValue=undefined;this.noOptions=null;this.open=false;this.pressedCharacters="";this.searchableSelectInputValue=null;this.disabled=false;this.disableAutoFiltering=false;this.emptyOptionListText="No results found";this.form=undefined;this.fullWidth=false;this.helperText="";this.hideLabel=false;this.includeDescriptionsInSearch=false;this.includeGroupTitlesInSearch=false;this.label=undefined;this.loadingErrorLabel="Loading Error";this.loadingLabel="Loading...";this.multiple=false;this.name=this.inputId;this.placeholder="Select an option";this.readonly=false;this.required=false;this.searchable=false;this.searchMatchPosition="anywhere";this.selectOnEnter=false;this.showClearButton=false;this.size="medium";this.timeout=undefined;this.theme="inherit";this.validationStatus="";this.validationText="";this.loading=false;this.options=[];this.filteredOptions=this.options;this.uniqueOptions=this.options;this.debounce=0;this.currDebounce=this.debounce;this.value=undefined;this.initialValue=this.value;this.inputValueToFilter=this.value;this.currValue=this.value}loadingHandler(t){t&&this.triggerLoading()}watchOptionsHandler(){var t;if(!this.hasTimedOut&&this.options!==this.noOptions){this.loading=false;clearTimeout(this.timeoutTimer);if(this.isExternalFiltering()){if(((t=this.options)===null||t===void 0?void 0:t.length)>0){this.setOptionsValuesFromLabels();this.noOptions=null;this.uniqueOptions=this.deduplicateOptions(this.options);this.filteredOptions=this.uniqueOptions}else{this.noOptions=[{label:this.emptyOptionListText,value:""}];this.uniqueOptions=this.noOptions;this.filteredOptions=this.noOptions}this.updateSearchableSelectResultAriaLive();this.setDefaultValue()}else{this.setOptionsValuesFromLabels();this.uniqueOptions=this.deduplicateOptions(this.options);this.filteredOptions=this.uniqueOptions;if(this.initialOptionsEmpty){this.setDefaultValue();this.initialOptionsEmpty=false}}}else{if(!this.searchable){this.options=this.noOptions}}}debounceChangedHandler(t){this.updateOnChangeDebounce(t)}valueChangedHandler(){if(this.value!==this.currValue){if(this.value&&this.multiple){this.currValue=this.getValueSortedByOptions(this.value);this.updateMultiSelectedCountAriaLive()}else{this.currValue=this.value}}if(this.searchable){this.searchableSelectInputValue=this.getLabelFromValue(this.currValue)||this.currValue}}openChangedHandler(){this.open?this.icOpen.emit():this.icClose.emit()}disconnectedCallback(){var t;p(this.el,this.handleFormReset);(t=this.hostMutationObserver)===null||t===void 0?void 0:t.disconnect()}componentWillLoad(){var t;this.inheritedAttributes=b(this.el,N);n(this.disabled,this.el);this.setOptionsValuesFromLabels();f(this.el,this.handleFormReset);if(!((t=this.options)===null||t===void 0?void 0:t.length)){this.initialOptionsEmpty=true;this.noOptions=[{label:this.emptyOptionListText,value:""}];this.uniqueOptions=this.noOptions;this.filteredOptions=this.noOptions}else{this.setDefaultValue();this.uniqueOptions=this.deduplicateOptions(this.options)}}componentDidLoad(){r([{prop:this.label,propName:"label"}],"Select");if(this.loading){this.triggerLoading()}this.hiddenInputValue=this.searchable&&this.currValue;this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true,childList:true})}componentDidRender(){if(this.nativeSelectElement&&!this.disabled){this.setTextColor()}}async setFocus(){if(this.nativeSelectElement){this.nativeSelectElement.focus()}else if(this.customSelectElement){this.customSelectElement.focus()}else if(this.searchableSelectElement){this.searchableSelectElement.focus()}}updateOnChangeDebounce(t){if(this.currDebounce!==t){this.currDebounce=t}}debounceAriaLiveUpdate(){clearTimeout(this.debounceAria);window.setTimeout((()=>{this.updateSearchableSelectResultAriaLive()}),800)}render(){const{size:t,disabled:e,fullWidth:o,helperText:a,hideLabel:n,label:r,menuId:l,multiple:h,name:c,options:d,placeholder:p,readonly:b,required:f,searchable:y,showClearButton:k,validationStatus:z,validationText:L,currValue:C,theme:H}=this;m(true,this.el,c,this.searchable?this.hiddenInputValue:C,e);const $=`${z===w.Error}`;const T=g(this.inputId,a!=="",v(this.validationStatus,this.disabled)).trim();let M=!!this.el.querySelector(`[slot="icon"]`);if(M&&(e||b&&!this.value)){M=false}const j=`${C===null||C===void 0?void 0:C.length} of ${u(this.options)} selected`;return i(s,{class:{"ic-select-disabled":e,"ic-select-searchable":y,[`ic-select-${t}`]:t!=="medium","ic-select-full-width":o,[`ic-theme-${H}`]:H!=="inherit"},onBlur:this.onBlur},i("ic-input-container",{readonly:b},!n&&i("ic-input-label",{for:this.inputId,label:r,helperText:a,required:f,disabled:e,readonly:b}),i("ic-input-component-container",{ref:t=>this.anchorEl=t,class:{"menu-open":this.open},size:t,fullWidth:o,disabled:e,readonly:b,validationStatus:z},M&&i("span",{slot:"left-icon",class:{["readonly"]:b,["has-value"]:!!this.value}},i("slot",{name:"icon"})),b?i("ic-typography",null,i("p",null,h?this.getMultipleOptionsString(C):this.getLabelFromValue(C))):x()&&!h?i("select",Object.assign({ref:t=>this.nativeSelectElement=t,disabled:e,onChange:this.handleNativeSelectChange,required:f,id:this.inputId,"aria-label":r,"aria-describedby":T,"aria-invalid":$,onBlur:this.onBlur,onFocus:this.onFocus,onKeyDown:this.handleNativeSelectKeyDown,form:this.form},this.inheritedAttributes),i("option",{value:"",selected:true,disabled:!k},p),d.map((t=>{if(t.children){return i("optgroup",{label:t.label},t.children.map((t=>i("option",{value:t.value,disabled:t.disabled,selected:t.value===C},t.label))))}else{return i("option",{value:t.value,disabled:t.disabled,selected:t.value===C},t.label)}}))):y?i("div",{class:"searchable-select-container"},i("input",{class:{"select-input":true,"with-clear-button":!!this.searchableSelectInputValue},role:"combobox",autocomplete:"off","aria-label":r,"aria-describedby":T,"aria-activedescendant":this.ariaActiveDescendant,"aria-autocomplete":"list","aria-expanded":`${this.open}`,"aria-invalid":$,"aria-required":`${f}`,"aria-controls":l,ref:t=>this.searchableSelectElement=t,id:this.inputId,value:this.searchableSelectInputValue,placeholder:p,disabled:e,onInput:this.handleSearchableSelectInput,onClick:this.handleClick,onKeyDown:this.handleKeyDown,onFocus:this.onFocus,onBlur:this.onBlur,form:this.form}),this.searchableSelectInputValue&&(k||y)&&i("div",{class:"clear-button-container"},i("ic-button",{id:"clear-button",ref:t=>this.clearButton=t,"aria-label":this.searchableSelectInputValue&&C===null?"Clear input":"Clear selection",class:"clear-button",innerHTML:P,onClick:this.handleClear,onFocus:this.handleClearButtonFocus,onBlur:this.handleClearButtonBlur,size:t,variant:"icon",theme:this.clearButtonFocused?"light":"dark"}),i("div",{class:"divider"})),i("span",{onMouseDown:this.handleExpandIconMouseDown,class:{"expand-icon":true,"expand-icon-open":this.open},innerHTML:B,"aria-hidden":"true"}),i("div",{"aria-live":"polite",role:"status",class:"searchable-select-results-status"})):i("div",{class:"select-container"},i("button",{class:"select-input",ref:t=>this.customSelectElement=t,id:this.inputId,"aria-label":`${r}, ${(h&&C?`${j}, ${this.getMultipleOptionsString(C)}`:this.getLabelFromValue(C))||p}${f?", required":""}`,"aria-describedby":T,"aria-invalid":$,"aria-haspopup":"listbox","aria-expanded":this.open?"true":"false","aria-owns":l,"aria-controls":l,disabled:e,onBlur:this.onBlur,onFocus:this.onFocus,onClick:this.handleClick,onMouseDown:this.handleMouseDown,onKeyDown:this.handleKeyDown},i("ic-typography",{variant:"body",class:{"value-text":true,"with-clear-button":C&&k,placeholder:!this.value||h&&this.value.length<1}},(h?this.getMultipleOptionsString(C):this.getLabelFromValue(C))||p),i("div",{class:"select-input-end"},C&&k&&i("div",{class:"divider"}),i("span",{class:{"expand-icon":true,"expand-icon-open":this.open},innerHTML:B,"aria-hidden":"true"}))),C&&k&&i("ic-button",{id:"clear-button","aria-label":"Clear selection",class:"clear-button",innerHTML:P,onClick:this.handleClear,onFocus:this.handleClearButtonFocus,onBlur:this.handleClearButtonBlur,size:t,variant:"icon",theme:this.clearButtonFocused?"light":"dark"}))),(!x()||h)&&i("ic-menu",{class:{"no-results":this.loading||this.hasTimedOut||this.noOptions!==null&&this.noOptions[0]&&this.noOptions[0].label===this.emptyOptionListText},ref:t=>this.menu=t,inputEl:y?this.searchableSelectElement:this.customSelectElement,inputLabel:r,anchorEl:this.anchorEl,size:t,menuId:l,open:this.open,options:y?this.filteredOptions:this.uniqueOptions,value:h?C:C,fullWidth:o,selectOnEnter:this.selectOnEnter,onMenuStateChange:this.handleMenuChange,onMenuOptionSelect:this.handleCustomSelectChange,onMenuOptionSelectAll:this.handleSelectAllChange,onMenuKeyPress:this.handleMenuKeyPress,onUngroupedOptionsSet:this.setUngroupedOptions,onRetryButtonClicked:this.handleRetry,parentEl:this.el,onTimeoutBlur:this.onTimeoutBlur,activationType:this.searchable||h||this.selectOnEnter?"manual":"automatic",closeOnSelect:!h}),this.multiple&&i("div",{"aria-live":"polite",role:"status",class:"multi-select-selected-count"}),v(this.validationStatus,this.disabled)&&i("ic-input-validation",{class:{"menu-open":this.open},ariaLiveMode:"polite",status:z,message:L,for:this.inputId})))}static get delegatesFocus(){return true}get el(){return o(this)}static get watchers(){return{loading:["loadingHandler"],options:["watchOptionsHandler"],debounce:["debounceChangedHandler"],value:["valueChangedHandler"],open:["openChangedHandler"]}}};q.style=O;const F='/*! 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}:host{display:block;--ic-input-label-helpertext-padding:var(--ic-space-xxs);--border-color:var(--ic-text-field-border-neutral);--border-color-hover:var(--ic-text-field-border-neutral-hover);--border-color-pressed:var(--ic-text-field-border-neutral-pressed);--border-color-disabled:var(--ic-text-field-border-disabled);--border-color-error:var(--ic-text-field-border-error);--border-color-error-hover:var(--ic-text-field-border-error-hover);--border-color-error-pressed:var(--ic-text-field-border-error-pressed);--border-color-success:var(--ic-text-field-border-success);--border-color-success-hover:var(--ic-text-field-border-success-hover);--border-color-success-pressed:var(--ic-text-field-border-success-pressed);--border-color-warning:var(--ic-text-field-border-warning);--border-color-warning-hover:var(--ic-text-field-border-warning-hover);--border-color-warning-pressed:var(--ic-text-field-border-warning-pressed);--ic-input-label-text-color:var(--ic-text-field-label);--ic-input-label-helper-text-color:var(--ic-text-field-subtitle);--ic-input-validation-status-text-color:var(--ic-text-field-state-text);--ic-input-validation-error:var(--ic-text-field-state-icon-error);--ic-input-validation-warning-icon-color:var(\n --ic-text-field-state-icon-warning\n );--ic-input-validation-success-icon-color:var(\n --ic-text-field-state-icon-success\n );--ic-input-component-container-success-icon-inline-color:var(\n --ic-text-field-state-icon-success\n )}:host(.ic-text-field-disabled){--ic-input-label-text-color:var(--ic-text-field-label-disabled);--ic-input-label-helper-text-color:var(--ic-text-field-subtitle-disabled);--text-field-placeholder-color:var(\n --ic-text-field-text-area-placeholder-text-disabled\n )}:host(.ic-text-field-full-width){width:100%}::-moz-placeholder{color:var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );opacity:1}::placeholder{color:var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );opacity:1}input,textarea{border:0;border-radius:var(--ic-border-radius);color:var(--text-field-text-color, var(--ic-text-field-text));background-color:var(--input-bg-color, var(--ic-text-field-background));line-height:1.5rem;letter-spacing:0.005rem;width:100%;padding-right:var(--ic-space-xs);padding-left:var(--ic-space-xs);caret-color:var(\n --text-field-typing-cursor,\n var(--ic-text-field-typing-cursor)\n )}textarea{min-height:var(--ic-space-lg);resize:vertical;padding-top:0.375rem}input:focus,textarea:focus{border:0;outline:0}input:disabled,textarea:disabled{color:var(\n --text-field-disabled-text-color,\n var(--ic-text-field-text-disabled)\n )}input.readonly,textarea.readonly{color:var(--ic-text-field-read-only-input-text-internal)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type="number"]{-moz-appearance:textfield}textarea.no-resize{resize:none}.char-count-text{--ic-typography-color:var(--ic-text-field-character-limit);padding-right:var(--ic-space-xxxs)}:host(.ic-text-field-disabled) .char-count-text{--ic-typography-color:var(--ic-text-field-character-limit-disabled)}.no-left-pad{padding-left:0}::slotted([slot="icon"]){fill:var(--ic-text-field-text-disabled)}.has-value ::slotted([slot="icon"]){fill:var(--ic-text-field-input-internal-icon)}.char-count{margin-right:calc(-1 * var(--ic-space-xxxs))}.remaining-char-count-desc{position:absolute;left:-9999px}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-results-button,input[type="search"]::-webkit-search-results-decoration{display:none}input[type="search"].truncate-value{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (forced-colors: active){input.readonly,textarea.readonly{color:canvastext}.has-value ::slotted([slot="icon"]){fill:currentcolor}}';let D=0;const S=[...y,"title"];const E=class{constructor(i){t(this,i);this.getValidationText=e(this,"getValidationText",7);this.icBlur=e(this,"icBlur",7);this.icChange=e(this,"icChange",7);this.icFocus=e(this,"icFocus",7);this.icInput=e(this,"icInput",7);this.icKeydown=e(this,"icKeydown",7);this.inheritedAttributes={};this.hostMutationObserver=null;this.getMaxValueExceeded=t=>{if(this.type==="number"){this.minValueUnattained=t&&Number(t)<Number(this.min);this.maxValueExceeded=Number(t)>Number(this.max)}};this.getMaxCharactersReached=t=>{this.numChars=t.length;this.maxCharactersReached=this.maxCharacters>0?this.numChars>=this.maxCharacters:false;if(this.maxCharactersWarning&&!this.maxCharactersReached){this.maxCharactersWarning=false}};this.onInput=t=>{this.value=t.target.value;this.icInput.emit({value:this.value})};this.onBlur=t=>{const e=t.target.value;this.numChars=e.length;this.minCharactersUnattained=this.minCharacters>0?this.numChars<this.minCharacters:false;this.icBlur.emit({value:e})};this.onFocus=t=>{this.icFocus.emit({value:t.target.value})};this.hasStatus=t=>t!==""&&!this.disabled;this.handleFormReset=()=>{this.value=this.initialValue};this.hostMutationCallback=t=>{let e=false;t.forEach((({attributeName:t,type:i,addedNodes:s,removedNodes:o})=>{if(S.includes(t)){this.inheritedAttributes[t]=this.el.getAttribute(t);e=true}else if(i==="childList"){e=h(s,o,"icon")}}));if(e){a(this)}};this.numChars=0;this.maxCharactersReached=false;this.maxCharactersWarning=false;this.minCharactersUnattained=false;this.maxValueExceeded=false;this.minValueUnattained=false;this.ariaActiveDescendant=undefined;this.ariaAutocomplete=undefined;this.ariaExpanded=undefined;this.ariaOwns=undefined;this.autocapitalize="off";this.autocomplete="off";this.autocorrect="off";this.autoFocus=false;this.disabled=false;this.fullWidth=false;this.helperText="";this.hideCharCount=false;this.hideLabel=false;this.hiddenInput=true;this.inputId=`ic-text-field-input-${D++}`;this.inputmode="text";this.label=undefined;this.max=undefined;this.maxCharacters=0;this.min=undefined;this.minCharacters=0;this.name=this.inputId;this.placeholder="";this.readonly=false;this.required=false;this.resize=false;this.role=undefined;this.rows=1;this.size="medium";this.spellcheck=false;this.theme="inherit";this.truncateValue=undefined;this.type="text";this.validationInline=false;this.validationInlineInternal=false;this.validationStatus="";this.validationText="";this.debounce=0;this.value="";this.initialValue=this.value}debounceChanged(){this.icChange=k(this.icChange,this.debounce)}watchValueHandler(t){let e;if(this.maxCharacters>0){e=t.substring(0,this.maxCharacters);this.value=e}else{e=t}if(this.inputEl&&this.inputEl.value!==e){this.inputEl.value=e}this.getMaxValueExceeded(e);this.getMaxCharactersReached(e);this.icChange.emit({value:e})}connectedCallback(){this.debounceChanged()}disconnectedCallback(){var t;p(this.el,this.handleFormReset);(t=this.hostMutationObserver)===null||t===void 0?void 0:t.disconnect()}componentWillLoad(){if(this.value!==this.initialValue){this.watchValueHandler(this.value)}else if(this.maxCharacters>0){this.value=this.value.substring(0,this.maxCharacters)}this.getMaxValueExceeded(this.value);this.getMaxCharactersReached(this.value);this.inheritedAttributes=b(this.el,S);if(this.readonly){this.maxValueExceeded=false;this.minValueUnattained=false}f(this.el,this.handleFormReset);n(this.disabled,this.el)}componentDidLoad(){r([{prop:this.label,propName:"label"}],"Text Field");if(this.validationInlineInternal){this.getValidationText.emit({value:this.validationText})}this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true,childList:true})}handleKeyDown(t){this.icKeydown.emit({event:t});this.maxCharactersWarning=this.maxCharactersReached}async setFocus(){var t;(t=this.inputEl)===null||t===void 0?void 0:t.focus()}render(){const{inputId:t,name:e,label:o,required:a,size:n,placeholder:r,helperText:l,hideCharCount:h,rows:c,resize:d,disabled:u,value:p,min:b,max:f,numChars:v,readonly:x,maxCharacters:y,maxCharactersWarning:k,maxCharactersReached:C,minCharacters:H,minCharactersUnattained:$,minValueUnattained:T,maxValueExceeded:M,validationStatus:j,validationText:B,validationInline:P,validationInlineInternal:O,spellcheck:I,inputmode:N,fullWidth:q,truncateValue:F,hiddenInput:D,theme:S}=this;const E=x||u;const W=M||T||$||k?k?w.Warning:w.Error:j;const A=k?`Maximum input is ${y} characters`:M?`Maximum value of ${f} exceeded`:T?`Minimum value of ${b} not met`:$?`Minimum input is ${H} characters`:B;const V=x?0:y;const G=k||M||T||W===w.Error?"assertive":"polite";const K=this.hasStatus(W)&&!(W==w.Success&&P)&&!O;const U=c>1;const _=V-v;const Z=`${_} character${_===1?"":"s"} remaining.`;const R=y>0?`${t}-char-count-desc`:"";const X=`${R} ${g(t,l!=="",K)}`.trim();const J=E&&!x;const Q=!!this.el.querySelector(`[slot="icon"]`)&&!J;const Y=`${W===w.Error}`;if(D){m(true,this.el,e,p,E)}return i(s,{class:{"ic-text-field-full-width":q,[`ic-theme-${S}`]:S!=="inherit","ic-text-field-disabled":E}},i("ic-input-container",{readonly:x,disabled:E},!this.hideLabel&&i("ic-input-label",{for:t,label:o,helperText:l,required:a,disabled:J,readonly:x}),i("ic-input-component-container",{size:n,validationStatus:W,multiLine:U,disabled:E,readonly:x,validationInline:P,fullWidth:q},Q&&i("span",{class:{readonly:x,"has-value":p.length>0},slot:"left-icon"},i("slot",{name:"icon"})),!U?i("input",Object.assign({id:t,name:e,ref:t=>this.inputEl=t,type:this.type,min:b,max:f,value:p,class:{"no-left-pad":!Q&&x,readonly:x,"truncate-value":F},placeholder:r?r:"",required:a,disabled:E,readonly:x,onInput:this.onInput,onBlur:this.onBlur,onFocus:this.onFocus,"aria-label":o,"aria-describedby":X,"aria-invalid":Y,"aria-activedescendant":this.ariaActiveDescendant,"aria-expanded":this.ariaExpanded,"aria-owns":this.ariaOwns,autocomplete:this.autocomplete,autocapitalize:this.autocapitalize,autoFocus:this.autoFocus,spellcheck:I,inputmode:N,role:this.role,maxlength:C?y:null,minlength:$?H:null},this.inheritedAttributes)):i("textarea",Object.assign({id:t,class:{"no-resize":d===false||x,"no-left-pad":!Q&&x,readonly:x},name:e,ref:t=>this.inputEl=t,value:p,rows:c,required:a,disabled:E,placeholder:r?r:"",readonly:x,onInput:this.onInput,onBlur:this.onBlur,onFocus:this.onFocus,"aria-label":o,"aria-describedby":X,"aria-invalid":Y,autocapitalize:this.autocapitalize,autoFocus:this.autoFocus,spellcheck:I,inputmode:N,maxlength:C?y:null,minlength:$?H:null},this.inheritedAttributes)),z(this.el,"clear-button")&&i("slot",{name:"clear-button"}),z(this.el,"search-submit-button")&&i("slot",{name:"search-submit-button"})),z(this.el,"menu")&&i("slot",{name:"menu"}),(!L(j)||!L(B)||V>0||M||k||$||T)&&!O&&i("ic-input-validation",{status:this.hasStatus(W)===false||W===w.Success&&P||O?"":W,message:K?A:"",ariaLiveMode:G,for:t,fullWidth:q},!x&&V>0&&i("div",{slot:"validation-message-adornment"},!h&&i("ic-typography",{variant:"caption",class:"char-count-text"},i("span",{class:"char-count"},v,"/",V)),i("span",{class:"remaining-char-count-desc","aria-live":"polite"},Z),i("span",{hidden:true,id:R},"Field can contain a maximum of ",V," characters.")))))}get el(){return o(this)}static get watchers(){return{debounce:["debounceChanged"],value:["watchValueHandler"]}}};E.style=F;export{T as ic_pagination,j as ic_pagination_item,q as ic_select,E as ic_text_field};
2
- //# sourceMappingURL=p-7a1f1e0d.entry.js.map