@ukic/canary-web-components 3.0.0-canary.24 → 3.0.0-canary.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-56717660.js → helpers-b55826ba.js} +22 -22
  3. package/dist/cjs/{helpers-56717660.js.map → helpers-b55826ba.js.map} +1 -1
  4. package/dist/cjs/helpers-da852478.js.map +1 -1
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-action-chip.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-button_3.cjs.entry.js +24 -18
  15. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js +3 -3
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox_3.cjs.entry.js +6 -6
  20. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  23. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  25. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-date-input.cjs.entry.js +6 -6
  27. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-dialog.cjs.entry.js +6 -4
  29. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  33. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-hero.cjs.entry.js +5 -5
  36. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +7 -7
  38. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +27 -14
  40. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-layout-grid-item.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
  44. package/dist/cjs/ic-layout-grid.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  46. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-menu.cjs.entry.js +6 -6
  51. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  54. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  57. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  59. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-pagination_4.cjs.entry.js +44 -35
  61. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
  63. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-radio-group.cjs.entry.js +5 -5
  65. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
  67. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-search-bar.cjs.entry.js +10 -10
  69. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  71. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-side-navigation.cjs.entry.js +5 -5
  73. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  75. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  77. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  79. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-step.cjs.entry.js +14 -14
  81. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  83. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-switch.cjs.entry.js +5 -5
  85. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-tab-context.cjs.entry.js +10 -2
  87. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  89. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  91. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  93. package/dist/cjs/ic-table-of-contents.cjs.entry.js +363 -0
  94. package/dist/cjs/ic-table-of-contents.cjs.entry.js.map +1 -0
  95. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  96. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  97. package/dist/cjs/ic-time-input.cjs.entry.js +7 -7
  98. package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
  99. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  100. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  102. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  104. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
  106. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  107. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  108. package/dist/cjs/ic-tree-item.cjs.entry.js +2 -2
  109. package/dist/cjs/ic-tree-view.cjs.entry.js +3 -3
  110. package/dist/cjs/ic-typography.cjs.entry.js +3 -3
  111. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  112. package/dist/cjs/index-d337cd8a.js +4 -0
  113. package/dist/cjs/loader.cjs.js +1 -1
  114. package/dist/collection/assets/error-icon.svg +4 -4
  115. package/dist/collection/assets/info-icon.svg +4 -4
  116. package/dist/collection/assets/neutral-icon.svg +4 -4
  117. package/dist/collection/assets/success-icon.svg +4 -4
  118. package/dist/collection/assets/warning-icon.svg +4 -4
  119. package/dist/collection/collection-manifest.json +1 -0
  120. package/dist/collection/components/ic-data-table/ic-data-table.stories.js +1 -1
  121. package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -1
  122. package/dist/collection/components/ic-data-table/story-data.js +82 -54
  123. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  124. package/dist/collection/components/ic-date-input/ic-date-input.js +6 -6
  125. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  126. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents-item.js +28 -0
  127. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents-item.js.map +1 -0
  128. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.css +145 -0
  129. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.js +526 -0
  130. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.js.map +1 -0
  131. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.stories.js +291 -0
  132. package/dist/collection/components/ic-table-of-contents/ic-table-of-contents.stories.js.map +1 -0
  133. package/dist/collection/components/ic-table-of-contents/test/a11y/ic-table-of-contents.test.a11y.js +13 -0
  134. package/dist/collection/components/ic-table-of-contents/test/a11y/ic-table-of-contents.test.a11y.js.map +1 -0
  135. package/dist/collection/components/ic-time-input/ic-time-input.js +7 -7
  136. package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
  137. package/dist/collection/components/ic-tree-item/ic-tree-item.js +2 -2
  138. package/dist/collection/components/ic-tree-view/ic-tree-view.js +3 -3
  139. package/dist/collection/utils/types.js.map +1 -1
  140. package/dist/components/helpers.js +22 -22
  141. package/dist/components/helpers2.js.map +1 -1
  142. package/dist/components/ic-alert.js +1 -1
  143. package/dist/components/ic-alert.js.map +1 -1
  144. package/dist/components/ic-button2.js +15 -10
  145. package/dist/components/ic-button2.js.map +1 -1
  146. package/dist/components/ic-checkbox-group.js +2 -2
  147. package/dist/components/ic-checkbox-group.js.map +1 -1
  148. package/dist/components/ic-checkbox2.js +3 -3
  149. package/dist/components/ic-checkbox2.js.map +1 -1
  150. package/dist/components/ic-data-list.js +2 -2
  151. package/dist/components/ic-data-list.js.map +1 -1
  152. package/dist/components/ic-data-row.js +2 -2
  153. package/dist/components/ic-data-row.js.map +1 -1
  154. package/dist/components/ic-date-input2.js +6 -6
  155. package/dist/components/ic-date-input2.js.map +1 -1
  156. package/dist/components/ic-dialog.js +5 -3
  157. package/dist/components/ic-dialog.js.map +1 -1
  158. package/dist/components/ic-empty-state2.js +2 -2
  159. package/dist/components/ic-empty-state2.js.map +1 -1
  160. package/dist/components/ic-footer-link.js +2 -2
  161. package/dist/components/ic-footer-link.js.map +1 -1
  162. package/dist/components/ic-hero.js +4 -4
  163. package/dist/components/ic-hero.js.map +1 -1
  164. package/dist/components/ic-horizontal-scroll2.js +6 -6
  165. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  166. package/dist/components/ic-input-component-container2.js +3 -3
  167. package/dist/components/ic-input-component-container2.js.map +1 -1
  168. package/dist/components/ic-input-container2.js +2 -2
  169. package/dist/components/ic-input-container2.js.map +1 -1
  170. package/dist/components/ic-input-label2.js +2 -2
  171. package/dist/components/ic-input-label2.js.map +1 -1
  172. package/dist/components/ic-input-validation2.js +21 -6
  173. package/dist/components/ic-input-validation2.js.map +1 -1
  174. package/dist/components/ic-layout-grid-item.js +2 -2
  175. package/dist/components/ic-layout-grid-item.js.map +1 -1
  176. package/dist/components/ic-layout-grid.js +2 -2
  177. package/dist/components/ic-layout-grid.js.map +1 -1
  178. package/dist/components/ic-link2.js +1 -1
  179. package/dist/components/ic-link2.js.map +1 -1
  180. package/dist/components/ic-loading-indicator2.js +5 -5
  181. package/dist/components/ic-loading-indicator2.js.map +1 -1
  182. package/dist/components/ic-menu-group.js +1 -1
  183. package/dist/components/ic-menu-group.js.map +1 -1
  184. package/dist/components/ic-menu2.js +5 -5
  185. package/dist/components/ic-menu2.js.map +1 -1
  186. package/dist/components/ic-navigation-group.js +1 -1
  187. package/dist/components/ic-navigation-group.js.map +1 -1
  188. package/dist/components/ic-navigation-menu2.js +4 -4
  189. package/dist/components/ic-navigation-menu2.js.map +1 -1
  190. package/dist/components/ic-page-header.js +6 -6
  191. package/dist/components/ic-page-header.js.map +1 -1
  192. package/dist/components/ic-pagination-item2.js +1 -1
  193. package/dist/components/ic-pagination-item2.js.map +1 -1
  194. package/dist/components/ic-pagination2.js +4 -4
  195. package/dist/components/ic-pagination2.js.map +1 -1
  196. package/dist/components/ic-popover-menu.js +4 -4
  197. package/dist/components/ic-popover-menu.js.map +1 -1
  198. package/dist/components/ic-radio-group.js +4 -4
  199. package/dist/components/ic-radio-group.js.map +1 -1
  200. package/dist/components/ic-radio-option.js +4 -4
  201. package/dist/components/ic-radio-option.js.map +1 -1
  202. package/dist/components/ic-search-bar.js +10 -10
  203. package/dist/components/ic-search-bar.js.map +1 -1
  204. package/dist/components/ic-section-container2.js +2 -2
  205. package/dist/components/ic-section-container2.js.map +1 -1
  206. package/dist/components/ic-select2.js +10 -9
  207. package/dist/components/ic-select2.js.map +1 -1
  208. package/dist/components/ic-side-navigation.js +5 -5
  209. package/dist/components/ic-side-navigation.js.map +1 -1
  210. package/dist/components/ic-skeleton.js +2 -2
  211. package/dist/components/ic-skeleton.js.map +1 -1
  212. package/dist/components/ic-skip-link.js +2 -2
  213. package/dist/components/ic-skip-link.js.map +1 -1
  214. package/dist/components/ic-status-tag.js +2 -2
  215. package/dist/components/ic-status-tag.js.map +1 -1
  216. package/dist/components/ic-step.js +13 -13
  217. package/dist/components/ic-step.js.map +1 -1
  218. package/dist/components/ic-stepper.js +2 -2
  219. package/dist/components/ic-stepper.js.map +1 -1
  220. package/dist/components/ic-switch.js +4 -4
  221. package/dist/components/ic-switch.js.map +1 -1
  222. package/dist/components/ic-tab-context.js +11 -2
  223. package/dist/components/ic-tab-context.js.map +1 -1
  224. package/dist/components/ic-tab-group.js +2 -2
  225. package/dist/components/ic-tab-group.js.map +1 -1
  226. package/dist/components/ic-tab-panel.js +2 -2
  227. package/dist/components/ic-tab-panel.js.map +1 -1
  228. package/dist/components/ic-table-of-contents.d.ts +11 -0
  229. package/dist/components/ic-table-of-contents.js +408 -0
  230. package/dist/components/ic-table-of-contents.js.map +1 -0
  231. package/dist/components/ic-text-field2.js +30 -21
  232. package/dist/components/ic-text-field2.js.map +1 -1
  233. package/dist/components/ic-theme.js +1 -1
  234. package/dist/components/ic-theme.js.map +1 -1
  235. package/dist/components/ic-time-input.js +7 -7
  236. package/dist/components/ic-time-input.js.map +1 -1
  237. package/dist/components/ic-toast-region.js +1 -1
  238. package/dist/components/ic-toast-region.js.map +1 -1
  239. package/dist/components/ic-toast.js +3 -3
  240. package/dist/components/ic-toast.js.map +1 -1
  241. package/dist/components/ic-toggle-button-group.js +2 -2
  242. package/dist/components/ic-toggle-button-group.js.map +1 -1
  243. package/dist/components/ic-toggle-button.js +2 -2
  244. package/dist/components/ic-toggle-button.js.map +1 -1
  245. package/dist/components/ic-tooltip2.js +6 -4
  246. package/dist/components/ic-tooltip2.js.map +1 -1
  247. package/dist/components/ic-top-navigation.js +1 -1
  248. package/dist/components/ic-tree-item.js +2 -2
  249. package/dist/components/ic-tree-view.js +3 -3
  250. package/dist/components/ic-typography2.js +2 -2
  251. package/dist/components/ic-typography2.js.map +1 -1
  252. package/dist/core/core.css +32 -4
  253. package/dist/core/core.esm.js +1 -1
  254. package/dist/core/core.esm.js.map +1 -1
  255. package/dist/core/{p-3f241d71.entry.js → p-09c0961a.entry.js} +2 -2
  256. package/dist/core/{p-3f241d71.entry.js.map → p-09c0961a.entry.js.map} +1 -1
  257. package/dist/core/p-0f22f41e.js.map +1 -1
  258. package/dist/core/{p-d13a066e.entry.js → p-0fffe635.entry.js} +2 -2
  259. package/dist/core/{p-d13a066e.entry.js.map → p-0fffe635.entry.js.map} +1 -1
  260. package/dist/core/{p-aa94c4b0.entry.js → p-17423822.entry.js} +2 -2
  261. package/dist/core/{p-aa94c4b0.entry.js.map → p-17423822.entry.js.map} +1 -1
  262. package/dist/core/{p-d47e200c.entry.js → p-20f248be.entry.js} +2 -2
  263. package/dist/core/{p-be5df6a9.entry.js → p-25d21dbd.entry.js} +2 -2
  264. package/dist/core/{p-be5df6a9.entry.js.map → p-25d21dbd.entry.js.map} +1 -1
  265. package/dist/core/{p-9fe5e2eb.entry.js → p-30a2abe9.entry.js} +2 -2
  266. package/dist/core/{p-c067e62c.entry.js → p-318c6a4c.entry.js} +2 -2
  267. package/dist/core/{p-364cc350.entry.js → p-3414247d.entry.js} +2 -2
  268. package/dist/core/{p-287e5c17.entry.js → p-37d217b5.entry.js} +2 -2
  269. package/dist/core/{p-287e5c17.entry.js.map → p-37d217b5.entry.js.map} +1 -1
  270. package/dist/core/{p-df88ff5b.entry.js → p-37daa8fe.entry.js} +2 -2
  271. package/dist/core/{p-df88ff5b.entry.js.map → p-37daa8fe.entry.js.map} +1 -1
  272. package/dist/core/p-3bb4ea35.entry.js +2 -0
  273. package/dist/core/p-3bb4ea35.entry.js.map +1 -0
  274. package/dist/core/{p-d41b0da0.entry.js → p-3bee8f39.entry.js} +2 -2
  275. package/dist/core/{p-d41b0da0.entry.js.map → p-3bee8f39.entry.js.map} +1 -1
  276. package/dist/core/{p-fb8c47ce.entry.js → p-4479c7e7.entry.js} +2 -2
  277. package/dist/core/{p-fb8c47ce.entry.js.map → p-4479c7e7.entry.js.map} +1 -1
  278. package/dist/core/{p-45dd12ee.entry.js → p-4747c39f.entry.js} +2 -2
  279. package/dist/core/p-4747c39f.entry.js.map +1 -0
  280. package/dist/core/{p-ffac41d6.entry.js → p-492fcb51.entry.js} +2 -2
  281. package/dist/core/{p-ffac41d6.entry.js.map → p-492fcb51.entry.js.map} +1 -1
  282. package/dist/core/{p-17acca45.entry.js → p-4eb74281.entry.js} +2 -2
  283. package/dist/core/p-4eb74281.entry.js.map +1 -0
  284. package/dist/core/{p-9863a070.entry.js → p-4fa1a80f.entry.js} +2 -2
  285. package/dist/core/{p-6796acff.entry.js → p-514c4401.entry.js} +2 -2
  286. package/dist/core/{p-b93e8ecb.entry.js → p-5534bb37.entry.js} +2 -2
  287. package/dist/core/p-55934942.entry.js +2 -0
  288. package/dist/core/p-55934942.entry.js.map +1 -0
  289. package/dist/core/{p-43285eeb.entry.js → p-570ff466.entry.js} +2 -2
  290. package/dist/core/{p-43285eeb.entry.js.map → p-570ff466.entry.js.map} +1 -1
  291. package/dist/core/{p-6e8ef73c.entry.js → p-57721431.entry.js} +2 -2
  292. package/dist/core/{p-6e8ef73c.entry.js.map → p-57721431.entry.js.map} +1 -1
  293. package/dist/core/{p-bc7d730d.entry.js → p-587d704d.entry.js} +2 -2
  294. package/dist/core/p-587d704d.entry.js.map +1 -0
  295. package/dist/core/{p-5fbc8e62.entry.js → p-5fcfcfb6.entry.js} +2 -2
  296. package/dist/core/{p-5fbc8e62.entry.js.map → p-5fcfcfb6.entry.js.map} +1 -1
  297. package/dist/core/{p-4bddb866.entry.js → p-6a884eef.entry.js} +2 -2
  298. package/dist/core/{p-4bddb866.entry.js.map → p-6a884eef.entry.js.map} +1 -1
  299. package/dist/core/p-6d2fa004.entry.js +2 -0
  300. package/dist/core/p-6d2fa004.entry.js.map +1 -0
  301. package/dist/core/{p-9fffb01e.entry.js → p-7821c7dc.entry.js} +2 -2
  302. package/dist/core/{p-608a8a4d.entry.js → p-8bb49790.entry.js} +2 -2
  303. package/dist/core/{p-5c7c7205.entry.js → p-92f199b0.entry.js} +2 -2
  304. package/dist/core/p-9810080e.entry.js +2 -0
  305. package/dist/core/p-9810080e.entry.js.map +1 -0
  306. package/dist/core/{p-518a8e87.entry.js → p-98286c35.entry.js} +2 -2
  307. package/dist/core/{p-518a8e87.entry.js.map → p-98286c35.entry.js.map} +1 -1
  308. package/dist/core/{p-ea061ccf.entry.js → p-9a8bcb78.entry.js} +2 -2
  309. package/dist/core/{p-ea061ccf.entry.js.map → p-9a8bcb78.entry.js.map} +1 -1
  310. package/dist/core/{p-812a0246.entry.js → p-9ad64b6f.entry.js} +2 -2
  311. package/dist/core/{p-b87e4485.entry.js → p-9c491db1.entry.js} +2 -2
  312. package/dist/core/{p-1a5efa3e.entry.js → p-9c8070a1.entry.js} +2 -2
  313. package/dist/core/{p-8b5022bc.entry.js → p-9cf6ccfd.entry.js} +2 -2
  314. package/dist/core/{p-8b5022bc.entry.js.map → p-9cf6ccfd.entry.js.map} +1 -1
  315. package/dist/core/p-9f5a1473.entry.js +2 -0
  316. package/dist/core/p-9f5a1473.entry.js.map +1 -0
  317. package/dist/core/{p-59048c2a.entry.js → p-a0c361ec.entry.js} +2 -2
  318. package/dist/core/p-a0c361ec.entry.js.map +1 -0
  319. package/dist/core/{p-51e2de77.entry.js → p-a7bc9a19.entry.js} +2 -2
  320. package/dist/core/{p-51e2de77.entry.js.map → p-a7bc9a19.entry.js.map} +1 -1
  321. package/dist/core/{p-588a331f.entry.js → p-a8d934fe.entry.js} +2 -2
  322. package/dist/core/{p-588a331f.entry.js.map → p-a8d934fe.entry.js.map} +1 -1
  323. package/dist/core/{p-145c0245.entry.js → p-aaa6d8e1.entry.js} +2 -2
  324. package/dist/core/{p-145c0245.entry.js.map → p-aaa6d8e1.entry.js.map} +1 -1
  325. package/dist/core/{p-f7d746d7.entry.js → p-b12c4643.entry.js} +2 -2
  326. package/dist/core/{p-f7d746d7.entry.js.map → p-b12c4643.entry.js.map} +1 -1
  327. package/dist/core/{p-31d6d587.entry.js → p-b2c49dfd.entry.js} +2 -2
  328. package/dist/core/p-b2c49dfd.entry.js.map +1 -0
  329. package/dist/core/{p-999f0a5d.entry.js → p-b4a2f6fa.entry.js} +2 -2
  330. package/dist/core/{p-999f0a5d.entry.js.map → p-b4a2f6fa.entry.js.map} +1 -1
  331. package/dist/core/p-b5dd226f.entry.js +2 -0
  332. package/dist/core/{p-20374e30.entry.js.map → p-b5dd226f.entry.js.map} +1 -1
  333. package/dist/core/{p-8051e61b.entry.js → p-b8cb867c.entry.js} +2 -2
  334. package/dist/core/{p-f517f412.entry.js → p-b95d99c7.entry.js} +2 -2
  335. package/dist/core/p-c039a175.entry.js +2 -0
  336. package/dist/core/{p-ad48c77c.entry.js.map → p-c039a175.entry.js.map} +1 -1
  337. package/dist/core/p-c08ea34d.entry.js +2 -0
  338. package/dist/core/p-c08ea34d.entry.js.map +1 -0
  339. package/dist/core/{p-fecef807.entry.js → p-c7a97221.entry.js} +2 -2
  340. package/dist/core/{p-91646e38.entry.js → p-c95be271.entry.js} +2 -2
  341. package/dist/core/p-c95be271.entry.js.map +1 -0
  342. package/dist/core/p-cd3f12ad.entry.js +2 -0
  343. package/dist/core/p-cd3f12ad.entry.js.map +1 -0
  344. package/dist/core/{p-40743d97.entry.js → p-d143aa70.entry.js} +2 -2
  345. package/dist/core/{p-40743d97.entry.js.map → p-d143aa70.entry.js.map} +1 -1
  346. package/dist/core/{p-c3fe54ab.entry.js → p-d3b9c04b.entry.js} +2 -2
  347. package/dist/core/{p-c3fe54ab.entry.js.map → p-d3b9c04b.entry.js.map} +1 -1
  348. package/dist/core/{p-cb4522ed.entry.js → p-d3eb3356.entry.js} +2 -2
  349. package/dist/core/{p-66ae9eb3.entry.js → p-d6a1b39c.entry.js} +2 -2
  350. package/dist/core/{p-66ae9eb3.entry.js.map → p-d6a1b39c.entry.js.map} +1 -1
  351. package/dist/core/{p-efe2fbd7.entry.js → p-d7c44cce.entry.js} +2 -2
  352. package/dist/core/p-d7c44cce.entry.js.map +1 -0
  353. package/dist/core/{p-e543f2e7.entry.js → p-e435052b.entry.js} +2 -2
  354. package/dist/core/{p-e543f2e7.entry.js.map → p-e435052b.entry.js.map} +1 -1
  355. package/dist/core/{p-b8938f93.entry.js → p-e4f1d72b.entry.js} +2 -2
  356. package/dist/core/p-ee95905f.js +2 -0
  357. package/dist/core/{p-efa95979.js.map → p-ee95905f.js.map} +1 -1
  358. package/dist/core/{p-2fe31f66.entry.js → p-f4b08cdb.entry.js} +2 -2
  359. package/dist/core/{p-2fe31f66.entry.js.map → p-f4b08cdb.entry.js.map} +1 -1
  360. package/dist/core/{p-5976d13e.entry.js → p-f5cc4e94.entry.js} +2 -2
  361. package/dist/core/{p-5976d13e.entry.js.map → p-f5cc4e94.entry.js.map} +1 -1
  362. package/dist/core/{p-558936fb.entry.js → p-f6772530.entry.js} +2 -2
  363. package/dist/core/{p-0fad83d8.entry.js → p-fc125ca6.entry.js} +2 -2
  364. package/dist/core/{p-0fad83d8.entry.js.map → p-fc125ca6.entry.js.map} +1 -1
  365. package/dist/esm/core.js +1 -1
  366. package/dist/esm/helpers-89cb996d.js.map +1 -1
  367. package/dist/esm/{helpers-f3928d01.js → helpers-fee7d348.js} +22 -22
  368. package/dist/esm/{helpers-f3928d01.js.map → helpers-fee7d348.js.map} +1 -1
  369. package/dist/esm/ic-accordion-group.entry.js +1 -1
  370. package/dist/esm/ic-accordion.entry.js +1 -1
  371. package/dist/esm/ic-action-chip.entry.js +1 -1
  372. package/dist/esm/ic-alert.entry.js +2 -2
  373. package/dist/esm/ic-alert.entry.js.map +1 -1
  374. package/dist/esm/ic-back-to-top.entry.js +1 -1
  375. package/dist/esm/ic-badge.entry.js +1 -1
  376. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  377. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  378. package/dist/esm/ic-button_3.entry.js +24 -18
  379. package/dist/esm/ic-button_3.entry.js.map +1 -1
  380. package/dist/esm/ic-card-vertical.entry.js +1 -1
  381. package/dist/esm/ic-checkbox-group.entry.js +3 -3
  382. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  383. package/dist/esm/ic-checkbox_3.entry.js +6 -6
  384. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  385. package/dist/esm/ic-chip.entry.js +1 -1
  386. package/dist/esm/ic-data-list.entry.js +2 -2
  387. package/dist/esm/ic-data-list.entry.js.map +1 -1
  388. package/dist/esm/ic-data-row.entry.js +3 -3
  389. package/dist/esm/ic-data-row.entry.js.map +1 -1
  390. package/dist/esm/ic-date-input.entry.js +6 -6
  391. package/dist/esm/ic-date-input.entry.js.map +1 -1
  392. package/dist/esm/ic-dialog.entry.js +6 -4
  393. package/dist/esm/ic-dialog.entry.js.map +1 -1
  394. package/dist/esm/ic-divider.entry.js +1 -1
  395. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  396. package/dist/esm/ic-footer-link.entry.js +3 -3
  397. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  398. package/dist/esm/ic-footer.entry.js +1 -1
  399. package/dist/esm/ic-hero.entry.js +5 -5
  400. package/dist/esm/ic-hero.entry.js.map +1 -1
  401. package/dist/esm/ic-horizontal-scroll.entry.js +7 -7
  402. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  403. package/dist/esm/ic-input-component-container_4.entry.js +27 -14
  404. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
  405. package/dist/esm/ic-layout-grid-item.entry.js +2 -2
  406. package/dist/esm/ic-layout-grid-item.entry.js.map +1 -1
  407. package/dist/esm/ic-layout-grid.entry.js +2 -2
  408. package/dist/esm/ic-layout-grid.entry.js.map +1 -1
  409. package/dist/esm/ic-link.entry.js +2 -2
  410. package/dist/esm/ic-link.entry.js.map +1 -1
  411. package/dist/esm/ic-menu-group.entry.js +2 -2
  412. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  413. package/dist/esm/ic-menu-item.entry.js +1 -1
  414. package/dist/esm/ic-menu.entry.js +6 -6
  415. package/dist/esm/ic-menu.entry.js.map +1 -1
  416. package/dist/esm/ic-navigation-button.entry.js +1 -1
  417. package/dist/esm/ic-navigation-group.entry.js +2 -2
  418. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  419. package/dist/esm/ic-navigation-item.entry.js +1 -1
  420. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  421. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  422. package/dist/esm/ic-page-header.entry.js +7 -7
  423. package/dist/esm/ic-page-header.entry.js.map +1 -1
  424. package/dist/esm/ic-pagination_4.entry.js +44 -35
  425. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  426. package/dist/esm/ic-popover-menu.entry.js +5 -5
  427. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  428. package/dist/esm/ic-radio-group.entry.js +5 -5
  429. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  430. package/dist/esm/ic-radio-option.entry.js +5 -5
  431. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  432. package/dist/esm/ic-search-bar.entry.js +10 -10
  433. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  434. package/dist/esm/ic-section-container.entry.js +2 -2
  435. package/dist/esm/ic-section-container.entry.js.map +1 -1
  436. package/dist/esm/ic-side-navigation.entry.js +5 -5
  437. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  438. package/dist/esm/ic-skeleton.entry.js +2 -2
  439. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  440. package/dist/esm/ic-skip-link.entry.js +2 -2
  441. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  442. package/dist/esm/ic-status-tag.entry.js +3 -3
  443. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  444. package/dist/esm/ic-step.entry.js +14 -14
  445. package/dist/esm/ic-step.entry.js.map +1 -1
  446. package/dist/esm/ic-stepper.entry.js +3 -3
  447. package/dist/esm/ic-stepper.entry.js.map +1 -1
  448. package/dist/esm/ic-switch.entry.js +5 -5
  449. package/dist/esm/ic-switch.entry.js.map +1 -1
  450. package/dist/esm/ic-tab-context.entry.js +10 -2
  451. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  452. package/dist/esm/ic-tab-group.entry.js +3 -3
  453. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  454. package/dist/esm/ic-tab-panel.entry.js +2 -2
  455. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  456. package/dist/esm/ic-tab.entry.js +1 -1
  457. package/dist/esm/ic-table-of-contents.entry.js +359 -0
  458. package/dist/esm/ic-table-of-contents.entry.js.map +1 -0
  459. package/dist/esm/ic-theme.entry.js +2 -2
  460. package/dist/esm/ic-theme.entry.js.map +1 -1
  461. package/dist/esm/ic-time-input.entry.js +7 -7
  462. package/dist/esm/ic-time-input.entry.js.map +1 -1
  463. package/dist/esm/ic-toast-region.entry.js +1 -1
  464. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  465. package/dist/esm/ic-toast.entry.js +4 -4
  466. package/dist/esm/ic-toast.entry.js.map +1 -1
  467. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  468. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  469. package/dist/esm/ic-toggle-button.entry.js +3 -3
  470. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  471. package/dist/esm/ic-top-navigation.entry.js +1 -1
  472. package/dist/esm/ic-tree-item.entry.js +2 -2
  473. package/dist/esm/ic-tree-view.entry.js +3 -3
  474. package/dist/esm/ic-typography.entry.js +3 -3
  475. package/dist/esm/ic-typography.entry.js.map +1 -1
  476. package/dist/esm/index-a7a720e7.js +4 -0
  477. package/dist/esm/loader.js +1 -1
  478. package/dist/types/components/ic-data-table/story-data.d.ts +2 -2
  479. package/dist/types/components/ic-table-of-contents/ic-table-of-contents-item.d.ts +14 -0
  480. package/dist/types/components/ic-table-of-contents/ic-table-of-contents.d.ts +83 -0
  481. package/dist/types/components/ic-table-of-contents/ic-table-of-contents.stories.d.ts +90 -0
  482. package/dist/types/components/ic-table-of-contents/test/a11y/ic-table-of-contents.test.a11y.d.ts +1 -0
  483. package/dist/types/components.d.ts +79 -2
  484. package/dist/types/utils/types.d.ts +1 -0
  485. package/hydrate/index.js +635 -222
  486. package/hydrate/index.mjs +635 -222
  487. package/package.json +4 -4
  488. package/dist/core/p-17acca45.entry.js.map +0 -1
  489. package/dist/core/p-20374e30.entry.js +0 -2
  490. package/dist/core/p-2f4f4aea.entry.js +0 -2
  491. package/dist/core/p-2f4f4aea.entry.js.map +0 -1
  492. package/dist/core/p-31d6d587.entry.js.map +0 -1
  493. package/dist/core/p-45dd12ee.entry.js.map +0 -1
  494. package/dist/core/p-59048c2a.entry.js.map +0 -1
  495. package/dist/core/p-5ac30e1f.entry.js +0 -2
  496. package/dist/core/p-5ac30e1f.entry.js.map +0 -1
  497. package/dist/core/p-7d2d067f.entry.js +0 -2
  498. package/dist/core/p-7d2d067f.entry.js.map +0 -1
  499. package/dist/core/p-91646e38.entry.js.map +0 -1
  500. package/dist/core/p-ad48c77c.entry.js +0 -2
  501. package/dist/core/p-afece95e.entry.js +0 -2
  502. package/dist/core/p-afece95e.entry.js.map +0 -1
  503. package/dist/core/p-bc7d730d.entry.js.map +0 -1
  504. package/dist/core/p-e7f22a19.entry.js +0 -2
  505. package/dist/core/p-e7f22a19.entry.js.map +0 -1
  506. package/dist/core/p-efa95979.js +0 -2
  507. package/dist/core/p-efe2fbd7.entry.js.map +0 -1
  508. package/dist/core/p-f3201a0b.entry.js +0 -2
  509. package/dist/core/p-f3201a0b.entry.js.map +0 -1
  510. /package/dist/core/{p-d47e200c.entry.js.map → p-20f248be.entry.js.map} +0 -0
  511. /package/dist/core/{p-9fe5e2eb.entry.js.map → p-30a2abe9.entry.js.map} +0 -0
  512. /package/dist/core/{p-c067e62c.entry.js.map → p-318c6a4c.entry.js.map} +0 -0
  513. /package/dist/core/{p-364cc350.entry.js.map → p-3414247d.entry.js.map} +0 -0
  514. /package/dist/core/{p-9863a070.entry.js.map → p-4fa1a80f.entry.js.map} +0 -0
  515. /package/dist/core/{p-6796acff.entry.js.map → p-514c4401.entry.js.map} +0 -0
  516. /package/dist/core/{p-b93e8ecb.entry.js.map → p-5534bb37.entry.js.map} +0 -0
  517. /package/dist/core/{p-9fffb01e.entry.js.map → p-7821c7dc.entry.js.map} +0 -0
  518. /package/dist/core/{p-608a8a4d.entry.js.map → p-8bb49790.entry.js.map} +0 -0
  519. /package/dist/core/{p-5c7c7205.entry.js.map → p-92f199b0.entry.js.map} +0 -0
  520. /package/dist/core/{p-812a0246.entry.js.map → p-9ad64b6f.entry.js.map} +0 -0
  521. /package/dist/core/{p-b87e4485.entry.js.map → p-9c491db1.entry.js.map} +0 -0
  522. /package/dist/core/{p-1a5efa3e.entry.js.map → p-9c8070a1.entry.js.map} +0 -0
  523. /package/dist/core/{p-8051e61b.entry.js.map → p-b8cb867c.entry.js.map} +0 -0
  524. /package/dist/core/{p-f517f412.entry.js.map → p-b95d99c7.entry.js.map} +0 -0
  525. /package/dist/core/{p-fecef807.entry.js.map → p-c7a97221.entry.js.map} +0 -0
  526. /package/dist/core/{p-cb4522ed.entry.js.map → p-d3eb3356.entry.js.map} +0 -0
  527. /package/dist/core/{p-b8938f93.entry.js.map → p-e4f1d72b.entry.js.map} +0 -0
  528. /package/dist/core/{p-558936fb.entry.js.map → p-f6772530.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["icCheckboxCss","IcCheckboxStyle0","Checkbox","constructor","hostRef","this","additionalFieldDisplay","checked","initiallyChecked","disabled","dynamicText","hideLabel","indeterminate","displayIndeterminate","nativeIndeterminateBehaviour","theme","value","handleClick","icCheck","emit","handleFormReset","watchDisabledHandler","removeDisabledFalse","el","watchIndeterminateHandler","componentWillLoad","addFormResetListener","parentElement","tagName","name","label","size","groupLabel","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentDidRender","querySelectorAll","forEach","textfield","setAttribute","additionalFieldContainer","style","display","disconnectedCallback","removeFormResetListener","setFocus","_a","checkboxEl","focus","render","form","id","replace","isDynamicAdditionalField","renderHiddenInput","removeHiddenInput","h","Host","key","class","viewBox","xmlns","d","role","checkbox","ref","type","onClick","undefined","variant","htmlFor","isSlotUsed","delegatesFocus","icEmptyStateCss","IcEmptyStateStyle0","EmptyState","hostMutationObserver","aligned","imageSize","disconnect","heading","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","body","maxLines","subheading","icPaginationBarCss","IcPaginationBarStyle0","PaginationBar","PAGE_INPUT_FIELD_ID","INVALID_PAGE_ERROR","resizeObserver","activePage","inputError","itemsPerPage","itemsPerPageString","lowerBound","paginationWrapped","alignment","currentPage","hideAllFromItemsPerPage","itemLabel","monochrome","rangeLabelType","pageLabel","showGoToPageControl","hideRangeLabel","selectItemsPerPageOnEnter","showItemsPerPageControl","setToFirstPageOnPaginationChange","changeItemsPerPage","setItemsPerPage","Number","pageDropdownEl","userSetItemsPerPage","changePage","page","setUpperBound","focusElFromLabel","_b","paginationBarEl","querySelector","goToPage","input","pageInputEl","totalPages","paginationEl","setCurrentPage","icPageChange","pageInputTooltipEl","displayTooltip","validationStatus","setInputError","goToPageLabelClickHandler","handleBlur","textField","handleFocus","handleInputChange","inputValue","parseInt","handleKeydown","ev","handleKeyUp","isNaN","itemsPerPageLabelClickHandler","paginationShouldWrap","clientHeight","runResizeObserver","ResizeObserver","clientWidth","paginationWidth","error","setToFirstPage","firstPage","newValue","toString","icItemsPerPageChange","totalItems","Math","ceil","fromItemsPerPage","setPaginationBarContent","clonedItemsPerPageOptions","itemsPerPageOptions","JSON","parse","stringify","displayedItemsPerPageOptions","push","String","filter","lastOptionValue","some","updated","upperBound","min","watchPageNumberHandler","console","watchSelectedItemsPerPageHandler","selectedItemsPerPage","option","length","watchItemLabelHandler","capitalizedItemLabel","capitalize","lowerCaseItemLabel","toLowerCase","watchItemsPerPageOptionsHandler","newVal","oldVal","watchPageLabelHandler","capitalizedPageLabel","lowerCasePageLabel","watchTotalItemsHandler","watchSetToFirstPageOnPaginationChange","checkResizeObserver","shadowRoot","_c","textAlign","padding","pageChangeHandler","detail","options","selectOnEnter","onIcChange","pages","target","disableHover","disableClick","onKeyDown","onKeyUp","onInput","max","validationInlineInternal","onBlur","onFocus"],"sources":["../web-components/dist/collection/components/ic-checkbox/ic-checkbox.css?tag=ic-checkbox&encapsulation=shadow","../web-components/dist/collection/components/ic-checkbox/ic-checkbox.js","../web-components/dist/collection/components/ic-empty-state/ic-empty-state.css?tag=ic-empty-state&encapsulation=shadow","../web-components/dist/collection/components/ic-empty-state/ic-empty-state.js","src/components/ic-pagination-bar/ic-pagination-bar.css?tag=ic-pagination-bar&encapsulation=shadow","src/components/ic-pagination-bar/ic-pagination-bar.tsx"],"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:host(.ic-checkbox-disabled) {\n pointer-events: none;\n}\n\n.container {\n display: flex;\n width: -moz-fit-content;\n width: fit-content;\n padding: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);\n margin-bottom: var(--ic-space-xxs);\n align-items: center;\n}\n\n:host(.ic-data-table-checkbox) .container {\n padding: 0;\n margin-bottom: 0;\n}\n\n:host(.ic-checkbox-small) .container {\n margin-bottom: var(--ic-space-xxxs);\n}\n\n.checkbox {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n display: block;\n position: relative;\n top: 0;\n left: 0;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n background-color: var(--ic-checkbox-background-unselected);\n border: var(--ic-border-width) solid var(--ic-checkbox-border-unselected);\n border-radius: var(--ic-border-radius);\n outline: none;\n cursor: pointer;\n transition: var(--ic-easing-transition-fast);\n flex-shrink: 0;\n}\n\n:host .container svg {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-checkbox-small) .checkbox,\n:host(.ic-checkbox-small) .container svg {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n:host(.ic-checkbox-large) .checkbox,\n:host(.ic-checkbox-large) .container svg {\n width: var(--ic-space-xl);\n height: var(--ic-space-xl);\n}\n\n.checkbox:checked {\n background-color: var(--ic-checkbox-background-selected);\n border: var(--ic-border-width) solid var(--ic-checkbox-background-selected);\n transition: var(--ic-easing-transition-slow);\n}\n\n.checkbox:checked:disabled {\n background-color: var(--ic-checkbox-background-selected-disabled);\n border: var(--ic-border-width) solid\n var(--ic-checkbox-background-selected-disabled);\n}\n\n.checkbox:indeterminate,\n.checkbox.indeterminate:checked {\n background-color: var(--ic-checkbox-background-indeterminate);\n border: 0.125rem solid var(--ic-checkbox-background-indeterminate);\n}\n\n.checkbox:indeterminate:disabled,\n.checkbox.indeterminate:checked:disabled {\n background-color: var(--ic-checkbox-background-indeterminate-disabled);\n border: 0.125rem solid var(--ic-checkbox-background-indeterminate-disabled);\n}\n\n.checkbox:checked:hover {\n background-color: var(--ic-checkbox-background-selected-hover);\n}\n\n.checkbox:indeterminate:hover,\n.checkbox.indeterminate:checked:hover {\n background-color: var(--ic-checkbox-background-indeterminate-hover);\n border: 0.125rem solid var(--ic-checkbox-background-indeterminate-hover);\n}\n\n.checkbox:checked:active {\n background-color: var(--ic-checkbox-background-selected-pressed);\n}\n\n.checkbox:indeterminate:active,\n.checkbox.indeterminate:checked:active {\n background-color: var(--ic-checkbox-background-indeterminate-pressed);\n border: 0.125rem solid var(--ic-checkbox-background-indeterminate-pressed);\n}\n\n.checkbox:hover {\n box-shadow: 0 0 0 0.25rem var(--ic-checkbox-action-background-hover);\n border: var(--ic-border-width) solid\n var(--ic-checkbox-border-unselected-hover);\n}\n\n.checkbox:active {\n box-shadow: 0 0 0 0.25rem var(--ic-checkbox-action-background-pressed);\n border: var(--ic-border-width) solid\n var(--ic-checkbox-border-unselected-pressed);\n}\n\n.checkbox:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n.checkbox:disabled {\n border: var(--ic-border-width) dashed\n var(--ic-checkbox-border-unselected-disabled);\n}\n\n.checkbox-label {\n color: var(--ic-checkbox-text);\n\n --ic-typography-color: var(--ic-checkbox-text);\n}\n\n.checkbox-label > label {\n padding-left: var(--ic-space-sm);\n display: inline-block;\n}\n\n:host(.ic-checkbox-disabled) .checkbox-label {\n color: var(--ic-checkbox-text-disabled);\n\n --ic-typography-color: var(--ic-checkbox-text-disabled);\n}\n\n.checkbox-label:hover {\n cursor: pointer;\n}\n\n.checkmark {\n position: relative;\n right: calc(-1 * var(--ic-space-lg));\n margin-left: calc(-1 * var(--ic-space-lg));\n fill: var(--ic-checkbox-icon-pressed);\n z-index: 1;\n background-color: transparent;\n pointer-events: none;\n flex-shrink: 0;\n}\n\n:host(.ic-checkbox-small) .checkmark {\n margin-left: calc(-1 * var(--ic-space-md));\n right: calc(-1 * var(--ic-space-md));\n}\n\n:host(.ic-checkbox-large) .checkmark {\n margin-left: calc(-1 * var(--ic-space-xl));\n right: calc(-1 * var(--ic-space-xl));\n}\n\n.indeterminate-symbol {\n position: relative;\n width: 0.875rem;\n height: var(--ic-space-xxxs);\n right: -1.188rem;\n margin-left: -0.875rem;\n z-index: 1;\n background-color: var(--ic-checkbox-icon-indeterminate);\n pointer-events: none;\n flex-shrink: 0;\n}\n\n:host(.ic-checkbox-small) .indeterminate-symbol {\n width: 0.6rem;\n right: -0.8rem;\n margin-left: -0.6rem;\n}\n\n:host(.ic-checkbox-large) .indeterminate-symbol {\n width: 1.25rem;\n right: -1.625rem;\n margin-left: -1.25rem;\n}\n\n.additional-field-wrapper {\n margin-left: calc(var(--ic-space-md) + var(--ic-space-lg));\n margin-top: calc(var(--ic-space-sm) / 2);\n}\n\n.branch-corner {\n height: var(--ic-space-md);\n width: var(--ic-space-xl);\n border-radius: 0 0 0 0.188rem;\n border-bottom: 0.125rem solid var(--ic-checkbox-required-bar);\n border-left: 0.125rem solid var(--ic-checkbox-required-bar);\n}\n\n.dynamic-container {\n display: flex;\n position: relative;\n margin: var(--ic-space-xxxs) 0 var(--ic-space-xxs) var(--ic-space-md);\n gap: var(--ic-space-xs);\n}\n\n.dynamic-text {\n color: var(--ic-checkbox-required-text);\n\n --ic-typography-color: var(--ic-checkbox-required-text);\n\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-bottom: var(--ic-space-xs);\n border-radius: 2%;\n}\n\n.dynamic-field-container {\n flex: 100%;\n}\n\n@media (max-width: 576px) {\n ::slotted(*) {\n --input-width: 100%;\n }\n\n .dynamic-field-container {\n flex: initial;\n }\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n .checkbox {\n -webkit-appearance: revert;\n -moz-appearance: revert;\n appearance: revert;\n transition: none;\n }\n\n .checkbox:checked {\n transition: none;\n }\n\n .checkbox:focus-visible {\n outline: 0.125rem solid highlight;\n }\n\n .checkbox:disabled:not(:checked) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border-color: GrayText;\n }\n\n .checkmark {\n fill: none;\n }\n\n .indeterminate-symbol {\n display: none;\n }\n}\n\n/* Right to left */\n.checkmark:dir(rtl) {\n right: 0;\n}\n\n.checkbox-label:dir(rtl) {\n padding-right: var(--ic-space-sm);\n padding-left: 0;\n}\n\n.indeterminate-symbol:dir(rtl) {\n right: 0.288rem;\n}\n\n.branch-corner:dir(rtl) {\n border-radius: 0 0 0.188rem;\n border-right: 0.125rem solid var(--ic-action-default);\n border-left: none;\n}\n\n.dynamic-container:dir(rtl) {\n margin: var(--ic-space-xxxs) var(--ic-space-sm) var(--ic-space-xxs) 0;\n}\n","import { Host, h, } from \"@stencil/core\";\nimport { isSlotUsed, onComponentRequiredPropUndefined, renderHiddenInput, removeHiddenInput, addFormResetListener, removeFormResetListener, removeDisabledFalse, } from \"../../utils/helpers\";\n/**\n * @slot additional-field - Content to be displayed alongside a checkbox.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Checkbox {\n constructor() {\n /**\n * The style of additionalField that will be displayed if used.\n */\n this.additionalFieldDisplay = \"static\";\n /**\n * If `true`, the checkbox will be set to the checked state. This is only the initial state and will be updated to unchecked if the checkbox is clicked.\n */\n this.checked = false;\n this.initiallyChecked = this.checked;\n /**\n * If `true`, the checkbox will be set to the disabled state.\n */\n this.disabled = false;\n /**\n * The text to be displayed when dynamic.\n */\n this.dynamicText = \"This selection requires additional answers\";\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n this.hideLabel = false;\n /**\n * If `true`, the indeterminate state will be displayed when checked.\n */\n this.indeterminate = false;\n this.displayIndeterminate = this.indeterminate;\n /**\n * If `true`, the checkbox will behave like a native checkbox where the `indeterminate` prop sets the indeterminate visual styling, independent of the `checked` state.\n */\n this.nativeIndeterminateBehaviour = false;\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 this.theme = \"inherit\";\n /**\n * The value for the checkbox.\n */\n this.value = \"\";\n this.handleClick = () => {\n this.checked = !this.checked;\n this.displayIndeterminate =\n !this.nativeIndeterminateBehaviour && this.indeterminate && this.checked;\n this.icCheck.emit();\n };\n this.handleFormReset = () => {\n this.checked = this.initiallyChecked;\n };\n }\n watchDisabledHandler() {\n removeDisabledFalse(this.disabled, this.el);\n }\n watchIndeterminateHandler() {\n this.displayIndeterminate =\n this.indeterminate && (this.nativeIndeterminateBehaviour || this.checked);\n }\n componentWillLoad() {\n removeDisabledFalse(this.disabled, this.el);\n addFormResetListener(this.el, this.handleFormReset);\n const { parentElement } = this.el;\n if ((parentElement === null || parentElement === void 0 ? void 0 : parentElement.tagName) === \"IC-CHECKBOX-GROUP\") {\n const { name, label, size } = parentElement;\n if (!this.name)\n this.name = name;\n if (!this.size)\n this.size = size;\n this.groupLabel = label;\n }\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.label, propName: \"label\" }], \"Checkbox\");\n }\n componentDidRender() {\n if (this.additionalFieldDisplay === \"static\") {\n this.el\n .querySelectorAll(\"ic-text-field\")\n .forEach((textfield) => textfield.setAttribute(\"disabled\", `${!this.checked}`));\n }\n else if (this.additionalFieldContainer) {\n this.additionalFieldContainer.style.display = !this.checked\n ? \"none\"\n : \"flex\";\n }\n }\n disconnectedCallback() {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n /**\n * Sets focus on the checkbox.\n */\n async setFocus() {\n var _a;\n (_a = this.checkboxEl) === null || _a === void 0 ? void 0 : _a.focus();\n }\n render() {\n const { additionalFieldDisplay, checked, disabled, displayIndeterminate, dynamicText, el, form, groupLabel, handleClick, hideLabel, label, name, size, theme, value, } = this;\n const id = `ic-checkbox-${label}-${groupLabel}`.replace(/ /g, \"-\");\n const isDynamicAdditionalField = additionalFieldDisplay === \"dynamic\";\n checked\n ? renderHiddenInput(el, value, name, disabled)\n : removeHiddenInput(el);\n return (h(Host, { key: '153b0b333ca1d0755d4e52dd9119d48cd1c246cc', class: {\n \"ic-checkbox-disabled\": disabled,\n [`ic-checkbox-${size}`]: !!size,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n } }, h(\"div\", { key: 'c0f56ee4fbbdd38fea208d133cdd1fa91a41d6c7', class: \"container\" }, displayIndeterminate ? (h(\"div\", { class: \"indeterminate-symbol\" })) : (checked && (h(\"svg\", { class: \"checkmark\", viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\" }, h(\"title\", null, \"checkmark icon\"), h(\"path\", { d: \"M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z\" })))), h(\"input\", { key: 'f8335e54b2f765591b3781d76a01632c34065855', role: \"checkbox\", class: {\n checkbox: true,\n checked,\n indeterminate: displayIndeterminate,\n }, ref: (el) => (this.checkboxEl = el), type: \"checkbox\", name: name, id: id, value: value, disabled: disabled, checked: checked, indeterminate: displayIndeterminate, onClick: handleClick, form: form, \"aria-label\": hideLabel ? label : undefined }), !hideLabel && (h(\"ic-typography\", { key: '2ba4862a349e6b3f34c050c434ce247687f0dfd8', class: \"checkbox-label\", variant: \"body\" }, h(\"label\", { key: 'a3f3c733b5dc0a0acdf89d3b7db603e965102618', htmlFor: id }, label)))), isSlotUsed(el, \"additional-field\") && (h(\"div\", { key: 'ad38f0547dda8ce82cd107fec3f3ff9d555cc1e8', class: \"dynamic-container\", ref: (el) => (this.additionalFieldContainer = el) }, isDynamicAdditionalField && h(\"div\", { key: 'd2c8566cada65dbd60546873ccbfedb33ec0e093', class: \"branch-corner\" }), h(\"div\", { key: '05489504f66d7f6e79bbbf18302dd63348f2f4a7', class: \"dynamic-field-container\" }, isDynamicAdditionalField && (h(\"ic-typography\", { key: 'eb397dc91080f791a4fd13e3c1815fad70c7cb87', variant: \"caption\" }, h(\"p\", { key: '49633d6c0806655957055fbef51688bfdeb11411', class: \"dynamic-text\", \"aria-live\": \"polite\" }, dynamicText))), h(\"div\", { key: '916e20f79f80cd7ff0fb5c4b030caf07f146ffcc', class: {\n \"additional-field-wrapper\": !isDynamicAdditionalField,\n } }, h(\"slot\", { key: '5783108ca7c6edb7c55dad2cc9469549e31d7cd3', name: \"additional-field\" })))))));\n }\n static get is() { return \"ic-checkbox\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-checkbox.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-checkbox.css\"]\n };\n }\n static get properties() {\n return {\n \"additionalFieldDisplay\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcAdditionalFieldTypes\",\n \"resolved\": \"\\\"dynamic\\\" | \\\"static\\\"\",\n \"references\": {\n \"IcAdditionalFieldTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcAdditionalFieldTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The style of additionalField that will be displayed if used.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"additional-field-display\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"static\\\"\"\n },\n \"checked\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the checkbox will be set to the checked state. This is only the initial state and will be updated to unchecked if the checkbox is clicked.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"checked\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the checkbox will be set to the disabled state.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"dynamicText\": {\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 text to be displayed when dynamic.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"dynamic-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"This selection requires additional answers\\\"\"\n },\n \"form\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The <form> element to associate the checkbox with.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"form\",\n \"reflect\": false\n },\n \"groupLabel\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The group label for the checkbox.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"group-label\",\n \"reflect\": false\n },\n \"hideLabel\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the label will be hidden and the required label value will be applied as an aria-label.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hide-label\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"indeterminate\": {\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 indeterminate state will be displayed when checked.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"indeterminate\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label for the checkbox.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The name for the checkbox. If not set when used in a checkbox group, the name will be based on the group name.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"name\",\n \"reflect\": false\n },\n \"nativeIndeterminateBehaviour\": {\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 checkbox will behave like a native checkbox where the `indeterminate` prop sets the indeterminate visual styling, independent of the `checked` state.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"native-indeterminate-behaviour\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"large\\\" | \\\"medium\\\" | \\\"small\\\" | undefined\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the checkbox to be displayed. This does not affect the font size of the label. If a checkbox is contained in a checkbox group, this will override the size set on checkbox group.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"size\",\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\": false,\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n },\n \"value\": {\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 value for the checkbox.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"value\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"initiallyChecked\": {},\n \"displayIndeterminate\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icCheck\",\n \"name\": \"icCheck\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a checkbox has been checked.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\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 checkbox.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"disabled\",\n \"methodName\": \"watchDisabledHandler\"\n }, {\n \"propName\": \"indeterminate\",\n \"methodName\": \"watchIndeterminateHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-checkbox.js.map\n",":host {\n gap: var(--ic-space-xs);\n padding: var(--ic-space-xs);\n}\n\n:host,\n.action-area {\n display: flex;\n flex-direction: column;\n}\n\n.action-area {\n gap: var(--ic-space-md);\n}\n\n:host ::slotted(svg),\n:host ::slotted(img) {\n border-radius: var(--ic-space-xxs);\n}\n\n:host(.ic-empty-state-right),\n:host(.ic-empty-state-right) .action-area {\n align-items: flex-end;\n text-align: right;\n}\n\n:host(.ic-empty-state-center),\n:host(.ic-empty-state-center) .action-area {\n align-items: center;\n text-align: center;\n}\n\n:host(.image-medium) ::slotted(svg),\n:host(.image-medium) ::slotted(img) {\n height: calc(3 * var(--ic-space-lg)) !important;\n width: calc(3 * var(--ic-space-lg)) !important;\n}\n\n:host(.image-small) ::slotted(svg),\n:host(.image-small) ::slotted(img) {\n height: var(--ic-space-xxl) !important;\n width: var(--ic-space-xxl) !important;\n}\n\n:host(.image-large) ::slotted(svg),\n:host(.image-large) ::slotted(img) {\n height: calc(4 * var(--ic-space-xl)) !important;\n width: calc(4 * var(--ic-space-xl)) !important;\n}\n\n::slotted([slot=\"heading\"]),\n.empty-state-heading {\n --ic-typography-color: var(--ic-empty-state-title);\n}\n\n::slotted([slot=\"subheading\"]),\n.empty-state-subheading {\n --ic-typography-color: var(--ic-empty-state-subtitle);\n}\n\n::slotted([slot=\"body\"]),\n.empty-state-body {\n --ic-typography-color: var(--ic-empty-state-body);\n}\n","import { h, Host } from \"@stencil/core\";\nimport { isSlotUsed, onComponentRequiredPropUndefined, renderDynamicChildSlots, } from \"../../utils/helpers\";\n/**\n * @slot image - Content is placed at the top above all other content.\n * @slot actions - Content is placed at the bottom below all other content.\n * @slot heading - Content will be rendered in place of the heading prop.\n * @slot subheading - Content will be rendered in place of the subheading prop.\n * @slot body - Content will be rendered in place of the body prop.\n */\nexport class EmptyState {\n constructor() {\n this.hostMutationObserver = null;\n /**\n * The alignment of the empty state container.\n */\n this.aligned = \"left\";\n /**\n * The size of the image or icon used in the image slot.\n */\n this.imageSize = \"medium\";\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 this.theme = \"inherit\";\n }\n disconnectedCallback() {\n var _a;\n (_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n componentDidLoad() {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined([{ prop: this.heading, propName: \"heading\" }], \"Empty State\");\n this.hostMutationObserver = new MutationObserver((mutationList) => renderDynamicChildSlots(mutationList, [\"image\", \"actions\"], this));\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n render() {\n const { aligned, body, maxLines, heading, imageSize, subheading, theme } = this;\n return (h(Host, { key: '4bb35d1c3476b88cc58e952b1b8785e4425d5339', class: {\n [`ic-empty-state-${aligned}`]: true,\n [`image-${imageSize}`]: isSlotUsed(this.el, \"image\"),\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n } }, isSlotUsed(this.el, \"image\") && h(\"slot\", { key: '9e87ed9f746d37f57505a75c62b10279b31ef54e', name: \"image\" }), h(\"div\", { key: '4f94dc11d843660d3fecd976fa71f9c57644c89b' }, h(\"slot\", { key: 'be23c55a8dc832904fbae342890d2a3d2d74ae85', name: \"heading\" }, h(\"ic-typography\", { key: '52bf3dca695fecff3e5d650bd81db23d09665258', variant: \"h4\", class: \"empty-state-heading\" }, heading)), h(\"slot\", { key: '7ed10d78475ac8b9c3f5a084a1294ad1be180f15', name: \"subheading\" }, h(\"ic-typography\", { key: '5772d056578a64a951178c3c3026b36d4b316496', variant: \"subtitle-small\", class: \"empty-state-subheading\" }, subheading)), h(\"slot\", { key: '14a8815b51a06521642921f09fa8346483522e84', name: \"body\" }, h(\"ic-typography\", { key: 'bca780cc2275e81d4e25bae45f5065f6fab3bcd5', maxLines: maxLines, class: \"empty-state-body\" }, body))), isSlotUsed(this.el, \"actions\") && (h(\"div\", { key: 'd6c0f61a358c1d0c86c4da922ed0504ffdc8228f', class: \"action-area\" }, h(\"slot\", { key: 'ac150a34e883376bfee43a6edbeb8992c3bc3f96', name: \"actions\" })))));\n }\n static get is() { return \"ic-empty-state\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-empty-state.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-empty-state.css\"]\n };\n }\n static get properties() {\n return {\n \"aligned\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcEmptyStateAlignment\",\n \"resolved\": \"\\\"center\\\" | \\\"left\\\" | \\\"right\\\" | undefined\",\n \"references\": {\n \"IcEmptyStateAlignment\": {\n \"location\": \"import\",\n \"path\": \"./ic-empty-state.types\",\n \"id\": \"src/components/ic-empty-state/ic-empty-state.types.ts::IcEmptyStateAlignment\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The alignment of the empty state container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"aligned\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"left\\\"\"\n },\n \"body\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The body text rendered in the empty state container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"body\",\n \"reflect\": false\n },\n \"maxLines\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The number of lines of body text to display before truncating.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"max-lines\",\n \"reflect\": false\n },\n \"heading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The title rendered in the empty state container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"heading\",\n \"reflect\": false\n },\n \"imageSize\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"large\\\" | \\\"medium\\\" | \\\"small\\\" | undefined\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the image or icon used in the image slot.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"image-size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"medium\\\"\"\n },\n \"subheading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The subtitle rendered in the empty state container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"subheading\",\n \"reflect\": false\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\" | undefined\",\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=ic-empty-state.js.map\n",":host() {\n display: block;\n}\n\n.pagination-bar {\n height: 3.5rem;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--ic-space-xl);\n padding: var(--ic-space-xs) var(--ic-space-md);\n box-sizing: border-box;\n\n --ic-typography-color: var(--ic-pagination-text);\n}\n\n.pagination-bar-left {\n justify-content: flex-start;\n}\n\n.item-controls {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xl);\n}\n\n.pagination-bar-space-between .item-controls {\n margin-right: auto;\n}\n\n.items-per-page-holder {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xs);\n}\n\n.items-per-page-input {\n --input-width: 5rem;\n --ic-typography-color: var(--ic-pagination-select-content);\n}\n\n.pagination-controls {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xl);\n}\n\n.pagination-controls-wrap {\n flex-direction: column;\n align-items: flex-end;\n gap: var(--ic-space-xs);\n}\n\n.pagination-bar-space-between .pagination-controls {\n margin-left: auto;\n}\n\n.go-to-page-holder {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xs);\n}\n\n.go-to-page-input {\n --input-width: var(--ic-space-xl);\n}\n\n.go-to-page-button {\n --min-width: var(--ic-space-xl);\n}\n\n.items-per-page-control-label {\n white-space: nowrap;\n}\n\n@media screen and (max-width: 768px) {\n .pagination-bar {\n flex-direction: column;\n align-items: flex-end;\n height: fit-content;\n gap: var(--ic-space-xs);\n }\n\n .pagination-bar-left {\n align-items: flex-start;\n }\n}\n\n@media screen and (max-width: 320px) {\n .item-controls,\n .pagination-controls {\n flex-direction: column;\n align-items: flex-end;\n gap: var(--ic-space-xs);\n }\n\n .pagination-bar-left .item-controls,\n .pagination-bar-left .pagination-controls,\n .pagination-bar-space-between .item-controls,\n .pagination-bar-space-between .pagination-controls {\n align-items: flex-start;\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport {\n Component,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Listen,\n h,\n Watch,\n Host,\n} from \"@stencil/core\";\nimport { IcThemeMode } from \"@ukic/web-components\";\nimport { capitalize, checkResizeObserver } from \"../../utils/helpers\";\nimport { IcPageChangeEventDetail } from \"./ic-pagination-bar.types\";\nimport {\n IcPaginationAlignmentOptions,\n IcPaginationLabelTypes,\n IcPaginationTypes,\n} from \"@ukic/web-components/dist/types/components/ic-pagination/ic-pagination.types\";\n\n@Component({\n tag: \"ic-pagination-bar\",\n styleUrl: \"ic-pagination-bar.css\",\n shadow: true,\n})\nexport class PaginationBar {\n private PAGE_INPUT_FIELD_ID = \"go-to-page-input\";\n\n private INVALID_PAGE_ERROR = \"Please enter a valid page\";\n\n private resizeObserver: ResizeObserver | null = null;\n private pageDropdownEl: HTMLIcSelectElement;\n private pageInputEl: HTMLIcTextFieldElement;\n private pageInputTooltipEl: HTMLIcTooltipElement;\n private paginationBarEl?: HTMLElement;\n private paginationEl: HTMLIcPaginationElement;\n private userSetItemsPerPage: number;\n\n @Element() el: HTMLIcPaginationBarElement;\n\n @State() capitalizedItemLabel: string;\n\n @State() capitalizedPageLabel: string;\n\n @State() activePage: number = 1;\n\n @State() displayedItemsPerPageOptions?: {\n label: string;\n value: string;\n }[];\n\n @State() inputError: string = \"Please enter a valid page\";\n\n @State() itemsPerPage: number = 10;\n\n @State() itemsPerPageString: string = \"10\";\n\n @State() lowerBound: number = 1;\n\n @State() lowerCaseItemLabel: string;\n\n @State() lowerCasePageLabel: string;\n\n @State() paginationWidth: number;\n\n @State() paginationWrapped: boolean = false;\n\n @State() totalPages: number;\n\n @State() upperBound: number;\n\n /**\n * Sets the alignment of the items in the pagination bar.\n */\n @Prop() alignment?: IcPaginationAlignmentOptions = \"right\";\n\n /**\n * The current page number to be displayed on the pagination bar.\n */\n @Prop() currentPage?: number = 1;\n\n @Watch(\"currentPage\")\n watchPageNumberHandler(): void {\n this.setPaginationBarContent();\n\n if (typeof this.currentPage === \"number\" && this.currentPage) {\n if (\n this.currentPage < 1 ||\n (this.totalPages && this.currentPage > this.totalPages)\n ) {\n console.error(\n `The current page (${this.currentPage}) must be a number greater than zero but less than or equal to the total number of pages (${this.totalPages})`\n );\n } else {\n this.activePage = this.currentPage;\n }\n }\n }\n\n /**\n * The items per page option to be selected.\n */\n @Prop() selectedItemsPerPage?: number;\n\n @Watch(\"selectedItemsPerPage\")\n watchSelectedItemsPerPageHandler(): void {\n if (\n this.selectedItemsPerPage !== null &&\n this.selectedItemsPerPage !== undefined\n ) {\n if (\n this.displayedItemsPerPageOptions?.filter(\n (option) => option.value === `${this.selectedItemsPerPage}`\n ).length\n ) {\n this.setItemsPerPage(this.selectedItemsPerPage);\n } else {\n console.error(\n `The selected items per page option \"${this.selectedItemsPerPage}\" does not exist`\n );\n }\n }\n }\n\n /**\n * If `true`, the 'All' option will be hidden from the 'items per page' select input.\n */\n @Prop() hideAllFromItemsPerPage?: boolean = false;\n\n /**\n * The text which will be used in place of 'Item' on the pagination bar.\n */\n @Prop() itemLabel?: string = \"Item\";\n\n @Watch(\"itemLabel\")\n watchItemLabelHandler(): void {\n this.capitalizedItemLabel = capitalize(this.itemLabel!);\n this.lowerCaseItemLabel = this.itemLabel!.toLowerCase();\n }\n\n /**\n * The options which will be displayed for 'items per page' select input.\n */\n @Prop() itemsPerPageOptions?: {\n label: string;\n value: string;\n }[];\n\n @Watch(\"itemsPerPageOptions\")\n watchItemsPerPageOptionsHandler(\n newVal: {\n label: string;\n value: string;\n }[],\n oldVal: {\n label: string;\n value: string;\n }[]\n ): void {\n if (JSON.stringify(newVal) === JSON.stringify(oldVal)) return;\n this.setPaginationBarContent();\n }\n\n /**\n * If `true`, the pagination bar will display as black in the light theme, and white in dark theme.\n */\n @Prop() monochrome?: boolean = false;\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 /**\n * Whether the displayed pagination is simple or complex.\n */\n @Prop() type?: IcPaginationTypes = \"simple\";\n\n /**\n * Whether total number of items and current item range or total number of pages and current page is displayed.\n */\n @Prop() rangeLabelType?: IcPaginationLabelTypes = \"page\";\n\n /**\n * The text which will be used in place of 'Page' on the pagination bar.\n */\n @Prop() pageLabel?: string = \"Page\";\n\n @Watch(\"pageLabel\")\n watchPageLabelHandler(): void {\n this.capitalizedPageLabel = capitalize(this.pageLabel!);\n this.lowerCasePageLabel = this.pageLabel!.toLowerCase();\n }\n\n /**\n * If `true`, the 'go to page' control should be displayed.\n */\n @Prop() showGoToPageControl?: boolean = false;\n\n /**\n * If `true`, the number of total items and current item range or number of total pages and current page will be hidden.\n */\n @Prop() hideRangeLabel?: boolean = false;\n\n /**\n * If `false`, the value in the items per page control will be set immediately on ArrowUp and ArrowDown instead of when Enter is pressed.\n */\n @Prop() selectItemsPerPageOnEnter: boolean = true;\n\n /**\n * If `true`, the select input to control 'items per page' should be displayed.\n */\n @Prop() showItemsPerPageControl?: boolean = false;\n\n /**\n * Total number of items to be displayed across all pages.\n */\n @Prop() totalItems!: number;\n\n @Watch(\"totalItems\")\n watchTotalItemsHandler(): void {\n this.setPaginationBarContent();\n }\n\n /**\n If `true`, the pagination bar is set to the first page when the 'items per page' changes\n */\n @Prop() setToFirstPageOnPaginationChange?: boolean = false;\n\n @Watch(\"setToFirstPageOnPaginationChange\")\n watchSetToFirstPageOnPaginationChange(): void {\n this.setPaginationBarContent();\n }\n\n /**\n * Emitted when a page is navigated to via the 'go to' input.\n * The `detail` property contains `value` (i.e. the page number) and a `fromItemsPerPage` flag to indicate if the event was triggered by the `icItemsPerPageChange` event also occurring.\n */\n @Event() icPageChange: EventEmitter<IcPageChangeEventDetail>;\n\n /**\n * Emitted when the items per page option is changed.\n */\n @Event() icItemsPerPageChange: EventEmitter<{ value: number }>;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.watchPageNumberHandler();\n this.watchPageLabelHandler();\n this.watchItemLabelHandler();\n this.setPaginationBarContent();\n this.watchSelectedItemsPerPageHandler();\n }\n\n componentDidLoad(): void {\n this.paginationWidth = this.paginationBarEl?.clientWidth || 0;\n checkResizeObserver(this.runResizeObserver);\n const textField = this.el.shadowRoot?.querySelector(\n `.${this.PAGE_INPUT_FIELD_ID}`\n );\n if (textField) {\n const input = textField?.shadowRoot?.querySelector(\"input\");\n if (input) {\n input.style.textAlign = \"center\";\n input.style.padding = \"0\";\n }\n }\n this.paginationShouldWrap();\n }\n\n @Listen(\"icPageChange\")\n pageChangeHandler(ev: CustomEvent): void {\n const page = ev.detail.value;\n this.changePage(page);\n }\n\n private changeItemsPerPage = () => {\n this.setItemsPerPage(Number(this.pageDropdownEl.value));\n\n this.userSetItemsPerPage = Number(this.pageDropdownEl.value);\n };\n\n private changePage = (page: number) => {\n this.activePage = page;\n this.lowerBound = page !== 1 ? (page - 1) * this.itemsPerPage + 1 : page;\n this.setUpperBound();\n };\n\n private focusElFromLabel = (el: \"ic-select\" | \"ic-text-field\") => {\n this.paginationBarEl?.querySelector(el)?.setFocus();\n };\n\n private goToPage = () => {\n const input = this.pageInputEl;\n const page = Number(input.value);\n if (page <= this.totalPages && page > 0) {\n this.changePage(page);\n this.paginationEl?.setCurrentPage(page);\n this.activePage = page;\n input.value = \"\";\n this.icPageChange.emit({ value: page });\n this.pageInputTooltipEl.displayTooltip(false, false);\n input.validationStatus = \"\";\n } else {\n this.setInputError(input, this.INVALID_PAGE_ERROR);\n }\n };\n\n private goToPageLabelClickHandler = () => {\n this.focusElFromLabel(\"ic-text-field\");\n };\n\n private handleBlur = () => {\n const textField = this.pageInputEl;\n if (\n (Number(textField.value) <= this.totalPages &&\n Number(textField.value) > 0) ||\n textField.value === \"\"\n ) {\n textField.validationStatus = \"\";\n }\n this.pageInputTooltipEl.displayTooltip(false, false);\n };\n\n private handleFocus = () => {\n if (this.pageInputEl.validationStatus === \"error\") {\n this.pageInputTooltipEl.displayTooltip(true, true);\n }\n };\n\n private handleInputChange = () => {\n const inputValue = parseInt(this.pageInputEl.value);\n\n if (inputValue > this.totalPages || inputValue <= 0) {\n this.setInputError(this.pageInputEl, this.INVALID_PAGE_ERROR);\n this.pageInputTooltipEl.displayTooltip(true, true);\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \"Enter\") {\n if (this.pageInputEl.validationStatus === \"error\") {\n this.pageInputTooltipEl.displayTooltip(true, true);\n } else {\n this.goToPage();\n }\n } else {\n this.pageInputTooltipEl.displayTooltip(false, false);\n this.pageInputEl.validationStatus = \"\";\n }\n };\n\n private handleKeyUp = (ev: KeyboardEvent) => {\n if (\n Number.isNaN(parseInt(this.pageInputEl.value)) &&\n ev.key !== \"Backspace\" &&\n ev.key !== \"Enter\" &&\n ev.key !== \"Tab\" &&\n ev.key !== \"Shift\"\n ) {\n this.setInputError(this.pageInputEl, \"Please enter a number\", false);\n this.pageInputTooltipEl.displayTooltip(true, false);\n }\n };\n\n private itemsPerPageLabelClickHandler = () => {\n this.focusElFromLabel(\"ic-select\");\n };\n\n private paginationShouldWrap = () => {\n if (this.type === \"simple\") {\n this.paginationWrapped = this.paginationEl.clientHeight > 63;\n }\n };\n\n private runResizeObserver = () => {\n if (this.paginationBarEl) {\n this.resizeObserver = new ResizeObserver(() => {\n const { clientWidth } = this.paginationBarEl!;\n if (\n clientWidth - this.paginationWidth > 50 ||\n clientWidth - this.paginationWidth < -50\n ) {\n this.paginationWidth = clientWidth;\n this.paginationShouldWrap();\n }\n });\n\n this.resizeObserver.observe(this.paginationBarEl);\n }\n };\n\n private setInputError = (\n el: HTMLIcTextFieldElement,\n error: string,\n focus = true\n ) => {\n this.inputError = error;\n el.validationStatus = \"error\";\n if (focus) el.setFocus();\n };\n\n private setToFirstPage = () => {\n const firstPage = 1;\n this.changePage(firstPage);\n this.paginationEl?.setCurrentPage(firstPage);\n this.activePage = firstPage;\n this.icPageChange.emit({ value: firstPage });\n };\n\n private setItemsPerPage = (newValue: number) => {\n if (this.itemsPerPage !== newValue) {\n this.itemsPerPage = newValue;\n this.itemsPerPageString = newValue.toString();\n this.icItemsPerPageChange.emit({ value: this.itemsPerPage });\n\n if (this.setToFirstPageOnPaginationChange) {\n this.setToFirstPage();\n }\n }\n\n this.totalPages =\n this.totalItems > this.itemsPerPage\n ? Math.ceil(this.totalItems / this.itemsPerPage)\n : 1;\n\n this.setUpperBound();\n if (this.activePage > this.totalPages) {\n this.paginationEl?.setCurrentPage(this.totalPages);\n this.activePage = this.totalPages;\n }\n this.icPageChange.emit({ value: this.activePage, fromItemsPerPage: true });\n };\n\n private setPaginationBarContent = (): void => {\n const clonedItemsPerPageOptions: {\n label: string;\n value: string;\n }[] = this.itemsPerPageOptions\n ? JSON.parse(JSON.stringify(this.itemsPerPageOptions))\n : null;\n\n const displayedItemsPerPageOptions =\n clonedItemsPerPageOptions ||\n (this.totalItems <= 100\n ? [\n { label: \"10\", value: \"10\" },\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n ]\n : [\n { label: \"25\", value: \"25\" },\n { label: \"100\", value: \"100\" },\n { label: \"1000\", value: \"1000\" },\n ]);\n !this.hideAllFromItemsPerPage &&\n displayedItemsPerPageOptions.push({\n label: \"All\",\n value: String(this.totalItems),\n });\n\n this.displayedItemsPerPageOptions = displayedItemsPerPageOptions.filter(\n ({ value }) => this.totalItems >= Number(value)\n );\n\n let lastOptionValue = 0;\n\n if (this.userSetItemsPerPage) {\n this.displayedItemsPerPageOptions.some(({ value }) => {\n lastOptionValue = Number(value);\n return this.userSetItemsPerPage <= lastOptionValue;\n });\n this.setItemsPerPage(lastOptionValue);\n } else {\n const updated = this.displayedItemsPerPageOptions.some(({ value }) => {\n lastOptionValue = Number(value);\n return this.itemsPerPage <= lastOptionValue;\n });\n\n this.setItemsPerPage(\n updated || (!updated && this.itemsPerPage > lastOptionValue)\n ? lastOptionValue\n : this.itemsPerPage\n );\n }\n };\n\n private setUpperBound = () => {\n this.upperBound = Math.min(\n this.lowerBound + this.itemsPerPage - 1,\n this.totalItems\n );\n };\n\n render() {\n const {\n alignment,\n displayedItemsPerPageOptions,\n PAGE_INPUT_FIELD_ID,\n type,\n rangeLabelType,\n hideRangeLabel,\n showItemsPerPageControl,\n showGoToPageControl,\n pageLabel,\n capitalizedPageLabel,\n lowerCasePageLabel,\n capitalizedItemLabel,\n lowerCaseItemLabel,\n totalPages,\n activePage,\n itemsPerPageString,\n theme,\n monochrome,\n selectItemsPerPageOnEnter,\n } = this;\n\n return (\n <Host class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}>\n <div\n class={{\n [\"pagination-bar\"]: true,\n [`pagination-bar-${alignment}`]: true,\n }}\n ref={(el) => (this.paginationBarEl = el)}\n >\n {(!hideRangeLabel || showItemsPerPageControl) && (\n <div class=\"item-controls\">\n {showItemsPerPageControl && (\n <div class=\"items-per-page-holder\">\n <ic-typography\n class={{\n [\"items-per-page-control-label\"]: true,\n }}\n variant=\"label\"\n onClick={this.itemsPerPageLabelClickHandler}\n >\n {capitalizedItemLabel}s per {lowerCasePageLabel}\n </ic-typography>\n <ic-select\n theme={theme}\n size=\"small\"\n label=\"items-per-page-input\"\n class=\"items-per-page-input\"\n hideLabel\n options={displayedItemsPerPageOptions}\n selectOnEnter={selectItemsPerPageOnEnter}\n value={itemsPerPageString}\n onIcChange={this.changeItemsPerPage}\n ref={(el: HTMLIcSelectElement) =>\n (this.pageDropdownEl = el)\n }\n ></ic-select>\n </div>\n )}\n {!hideRangeLabel &&\n (rangeLabelType === \"data\" ? (\n <ic-typography\n class={{\n [\"item-pagination-label\"]: true,\n }}\n variant=\"label\"\n aria-live=\"polite\"\n >\n {this.upperBound === 0 && `0 ${lowerCaseItemLabel}s`}\n {this.upperBound > 0 &&\n `${this.lowerBound} - ${this.upperBound} of ${\n this.totalItems\n } ${lowerCaseItemLabel}${this.totalItems > 1 ? \"s\" : \"\"}`}\n </ic-typography>\n ) : (\n <ic-typography\n class={{\n [\"page-pagination-label\"]: true,\n }}\n variant=\"label\"\n aria-live=\"polite\"\n >\n {capitalizedPageLabel} {activePage} of {totalPages}\n </ic-typography>\n ))}\n </div>\n )}\n <div\n class={{\n [\"pagination-controls\"]: true,\n [\"pagination-controls-wrap\"]: this.paginationWrapped,\n }}\n >\n <div class=\"pagination-holder\">\n <ic-pagination\n type={type}\n pages={totalPages}\n label={pageLabel}\n ref={(el: HTMLIcPaginationElement) => (this.paginationEl = el)}\n currentPage={activePage}\n theme={theme}\n monochrome={monochrome}\n ></ic-pagination>\n </div>\n {showGoToPageControl && (\n <div class=\"go-to-page-holder\">\n <ic-typography\n variant=\"label\"\n onClick={this.goToPageLabelClickHandler}\n >\n Go to {lowerCasePageLabel}\n </ic-typography>\n <ic-tooltip\n label={this.inputError}\n target={`#${PAGE_INPUT_FIELD_ID}`}\n disableHover\n disableClick\n ref={(el: HTMLIcTooltipElement) =>\n (this.pageInputTooltipEl = el)\n }\n >\n <ic-text-field\n theme={theme}\n type=\"number\"\n size=\"small\"\n label={PAGE_INPUT_FIELD_ID}\n class={PAGE_INPUT_FIELD_ID}\n id={PAGE_INPUT_FIELD_ID}\n hideLabel\n onKeyDown={this.handleKeydown}\n onKeyUp={this.handleKeyUp}\n onInput={this.handleInputChange}\n max={totalPages}\n min=\"1\"\n validationInlineInternal\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n ref={(el: HTMLIcTextFieldElement) =>\n (this.pageInputEl = el)\n }\n ></ic-text-field>\n </ic-tooltip>\n <ic-button\n variant=\"secondary\"\n onClick={this.goToPage}\n size=\"small\"\n class=\"go-to-page-button\"\n >\n Go\n </ic-button>\n </div>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icDateInputCss","IcDateInputStyle0","inputIds","DateInput","constructor","hostRef","this","DEFAULT_DATE_FORMAT","ARIA_INVALID","ARIA_LABEL","ARIA_LABELLED_BY","EVENT_OBJECT_STRING","FIT_TO_VALUE","initialValue","value","INPUT_EVENT_OBJECT_STRING","inputsInOrder","isAfterMax","isBeforeMin","preventInputsUpdating","isDisabledDate","isValidDay","isValidMonth","isValidDate","isZuluTime","KEYBOARD_EVENT_OBJECT_STRING","MAX_DAY","MAX_MONTH","previousSelectedDate","selectedDate","externalSetDate","clearInput","calendarIsOpen","calendarFocused","clearButtonFocused","removeLabelledBy","day","month","year","dateFormat","emitDatePartChange","disabled","disableDays","disableDaysMessage","disableFuture","disableFutureMessage","disablePast","disablePastMessage","hideHelperText","hideLabel","inputId","invalidDateMessage","max","min","name","required","showCalendarButton","showClearButton","size","theme","validationStatus","validationText","setInputPasteValue","input","pastedValue","inputEl","classList","add","checkSingleCopiedValueIsValid","isValid","Number","dayInputEl","monthInputEl","yearInputEl","isKeyboardOrEvent","event","Object","prototype","toString","call","setDateValidity","isEmptyString","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","moveToPreviousInput","preventInput","handleFocus","select","handleBlur","autocompleteInput","notifyScreenReaderSelectedDate","selectedDateInfoEl","dayNames","stringEnumToArray","IcDayNames","months","IcDateInputMonths","textContent","getDay","getDate","getMonth","getFullYear","minValue","maxValue","Date","handleDateChange","force","dateMatches","forEach","invalidDateText","setValueAndEmitChange","updateInputValues","slicePastedDate","valueLength","datePart","slice","isPastedStringDateValid","handlePaste","clipboardData","getData","setPastedValueAndValidation","setDate","date","undefined","remove","isDateOrEpoch","newDate","convertToDoubleDigits","defaultDateArray","splitStringDate","formatMinMax","formattedDate","clear","newValue","convertToDate","isSelectedDateDisabled","setAttribute","removeAttribute","minDate","maxDate","setInputsInOrder","el","shadowRoot","querySelectorAll","push","setAriaLabelledBy","inputCompContainerEl","getAttribute","removeAriaLabelledBy","labelEl","_b","querySelector","labelId","id","hasValidation","labelledBy","_c","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","IcInformationStatus","Error","selectedString","selectionStart","selectionEnd","currentDate","isNotToday","toDateString","includes","currentInput","findIndex","focus","inputValue","yearNumbers","autocompletedInput","number","index","handleHostBlur","icBlur","emit","handleHostFocus","activeElement","match","icFocus","handleFormReset","getAriaLabel","notifyScreenReaderArrowKeys","liveRegion","ariaLabel","announcement","notifyScreenReaderInput","monthValue","setAriaInvalid","validDay","validMonth","validDate","disabledDate","handleClear","handleCalendarOpen","ev","stopImmediatePropagation","calendarButtonEl","displayTooltip","calendarButtonClicked","_f","_e","_d","emitIcChange","handleCalendarFocus","handleCalendarBlur","handleClearFocus","handleClearBlur","relatedTarget","d","UTCDate","UTC","icChange","dateObject","utcValue","watchInputHandler","watchDisabledHandler","removeDisabledFalse","watchDisableFutureHandler","watchMaxHandler","watchDisablePastHandler","watchMinHandler","createDate","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","hasCustomValidation","assistiveHint","renderHiddenInput","Host","onBlur","onFocus","for","slot","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 \"../../global/normalize.css\";\n\n:host {\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\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-color-background-primary) inset;\n -webkit-text-fill-color: var(--ic-date-input-text-filled) !important;\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-atoms-input-clear-button-focus);\n}\n\n.clear-button svg {\n color: var(--ic-date-input-clear-icon);\n}\n\n.clear-button:focus svg {\n color: var(--ic-atoms-input-clear-button-focus);\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","/* eslint-disable react/jsx-no-bind */\nimport {\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 removeDisabledFalse,\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/**\n * @slot helper-text - Content is set as the helper text for the date input.\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 DEFAULT_DATE_FORMAT: IcDateFormat = \"DD/MM/YYYY\";\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 preventInputsUpdating: 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 previousSelectedDate: Date | null = null;\n\n private selectedDate: Date | null = null;\n private selectedDateInfoEl?: HTMLSpanElement;\n private screenReaderInfoId: string;\n private selectedDateInfoId: string;\n\n private yearInputEl?: HTMLInputElement;\n\n private externalSetDate: boolean = false;\n private clearInput: boolean = false;\n\n private calendarIsOpen: boolean = false;\n\n @Element() el: HTMLIcDateInputElement;\n\n @State() invalidDateText: string;\n @State() maxDate: Date;\n @State() minDate: Date;\n @State() calendarFocused: boolean = false;\n @State() clearButtonFocused: boolean = false;\n @State() removeLabelledBy: boolean = false;\n\n @State() day: string = \"\";\n @State() month: string = \"\";\n @State() year: string = \"\";\n\n @Watch(\"day\")\n @Watch(\"month\")\n @Watch(\"year\")\n watchInputHandler(): void {\n if (\n this.emitDatePartChange &&\n !this.externalSetDate &&\n !this.clearInput &&\n !(this.day && this.month && this.year) &&\n this.selectedDate === null\n ) {\n this.emitIcChange(this.selectedDate);\n }\n }\n\n /**\n * The format in which the date will be displayed.\n */\n @Prop() dateFormat: IcDateFormat = this.DEFAULT_DATE_FORMAT;\n /**\n * If `true`, every individual input field completed will emit an icChange event.\n */\n @Prop() emitDatePartChange?: boolean = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\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 | null;\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 | null }>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() icBlur: EventEmitter<{ value: Date | null }>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{\n value: Date | null;\n dateObject: {\n day: string | null;\n month: string | null;\n year: string | null;\n };\n utcValue: Date | null;\n }>;\n\n /**\n * Emitted when the input gains focus.\n */\n @Event() icFocus: EventEmitter<{ value: Date | null }>;\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.externalSetDate = true;\n this.setDate(this.value);\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 removeDisabledFalse(this.disabled, this.el);\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.preventInputsUpdating) 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.preventInputsUpdating = 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 | null> {\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 | null): Promise<void> {\n this.externalSetDate = true;\n this.setDate(d);\n this.emitIcChange(d);\n this.externalSetDate = false;\n }\n\n private setInputPasteValue = (\n input: EventTarget | null,\n pastedValue: string\n ) => {\n if (input) {\n const inputEl = input as HTMLInputElement;\n\n inputEl.value = pastedValue;\n inputEl.classList.add(this.FIT_TO_VALUE);\n }\n };\n\n private checkSingleCopiedValueIsValid = (\n input: EventTarget | null,\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 }\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.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 case \"backspace\":\n if (input.value.length === 0) {\n event.preventDefault();\n this.moveToPreviousInput(input);\n }\n break;\n default:\n break;\n }\n\n this.preventInput(event, isInputPrevented);\n this.preventInputsUpdating = 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;\n if (input) {\n this.setPasteInvalidText();\n this.autocompleteInput(input as HTMLInputElement);\n }\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 if (this.selectedDate && this.selectedDateInfoEl) {\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\n private handleUpDownArrowKeyPress = (\n input: HTMLInputElement,\n event: KeyboardEvent\n ) => {\n const minValue = input === this.yearInputEl ? 0 : 1;\n\n let maxValue = 9999;\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 input.value =\n input === this.yearInputEl\n ? new Date().getFullYear().toString()\n : maxValue.toString();\n this.notifyScreenReader(input, event);\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n input.value =\n input === this.yearInputEl\n ? new Date().getFullYear().toString()\n : `0${minValue}`;\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 this.selectedDateInfoEl\n ) {\n this.setValueAndEmitChange(null);\n this.selectedDateInfoEl.textContent = \"\";\n }\n this.previousSelectedDate = this.selectedDate;\n\n if (!this.preventInputsUpdating) {\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 | null) => {\n if (date === null || date === \"\" || date === undefined) {\n if (this.day) this.day = \"\";\n if (this.month) this.month = \"\";\n if (this.year) this.year = \"\";\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.selectedDate = new Date(\n Number(defaultDateArray[0]),\n Number(defaultDateArray[1]) - 1,\n Number(defaultDateArray[2])\n );\n this.year = defaultDateArray[0];\n this.month = defaultDateArray[1];\n this.day = defaultDateArray[2];\n this.setValueAndEmitChange(this.selectedDate);\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 this.DEFAULT_DATE_FORMAT:\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 if (this.dayInputEl && this.monthInputEl && this.yearInputEl) {\n this.dayInputEl.value = day;\n this.monthInputEl.value = month;\n this.yearInputEl.value = year;\n }\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 && 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 this.el.shadowRoot\n ?.querySelectorAll(\"input\")\n .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.invalidDateText);\n\n const labelledBy = `${labelEl?.id ?? \"\"} ${\n this.screenReaderInfoId\n } ${getInputDescribedByText(\n this.el,\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 this.DEFAULT_DATE_FORMAT:\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 || 0,\n input.selectionEnd || undefined\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 /**\n * Get whether date has been disabled using disableFuture or disablePast prop, but always allow current day\n * Consider using dateClamp and inDateRange\n * @returns `boolean`\n */\n private isSelectedDateDisabled = () => {\n if (!this.selectedDate) return false;\n\n const currentDate = new Date();\n const isNotToday =\n this.selectedDate.toDateString() !== currentDate.toDateString();\n\n this.isAfterMax =\n this.maxDate && this.selectedDate > this.maxDate && isNotToday;\n this.isBeforeMin =\n this.minDate && this.selectedDate < this.minDate && isNotToday;\n\n return (\n this.isAfterMax ||\n this.isBeforeMin ||\n this.disableDays.includes(this.selectedDate.getDay()) ||\n (((!!this.disablePast && this.selectedDate < currentDate) ||\n (!!this.disableFuture && this.selectedDate > currentDate)) &&\n isNotToday)\n );\n };\n\n private moveToNextInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n\n this.inputsInOrder[\n this.inputsInOrder.findIndex((input) => input === currentInput) + 1\n ]?.focus();\n };\n\n private moveToPreviousInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n\n this.inputsInOrder[\n this.inputsInOrder.findIndex((input) => input === currentInput) - 1\n ]?.focus();\n };\n\n private autocompleteInput = (input: HTMLInputElement) => {\n const inputValue = input.value;\n if (this.yearInputEl && input === this.yearInputEl) {\n // Autocomplete year as current millennium when fewer than 4 characters entered\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 } else if (inputValue.length === 1) {\n // Autocomplete input as 2 characters (leading zero) when only 1 character entered (for day and month)\n input.value = +inputValue === 0 ? \"01\" : `0${inputValue}`;\n }\n\n if (input.value) {\n this.setInputValue(input);\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 (\n this.el.shadowRoot?.activeElement?.id.match(/(day|month|year)-input$/)\n ) {\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) =>\n input.getAttribute(this.ARIA_LABEL);\n\n private notifyScreenReaderArrowKeys = (input: HTMLInputElement) => {\n const liveRegion = this.el.shadowRoot?.querySelector(\"#live-region\");\n const ariaLabel = this.getAriaLabel(input);\n\n if (liveRegion && input.value && ariaLabel) {\n let announcement = \"\";\n\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 && this.yearInputEl) {\n const dateValue = this.slicePastedDate(4, dateParts[index]);\n this.yearInputEl.value = dateValue;\n this.setInputValue(this.yearInputEl);\n } else if (index === 1 && this.monthInputEl) {\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 if (this.dayInputEl) {\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.preventInputsUpdating = 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 const ariaLabel = this.getAriaLabel(input);\n const value = input.value;\n\n if (ariaLabel && value) {\n let announcement = \"\";\n\n const monthValue = IcDateInputMonths[+value - 1];\n if (\n input === this.monthInputEl &&\n !!monthValue &&\n this.isValidMonth &&\n value.length === 2\n ) {\n announcement = `${value} - ${monthValue}`;\n } else if (\n (input === this.dayInputEl && this.isValidDay && value.length === 2) ||\n (input === this.yearInputEl && value.length === 4)\n ) {\n announcement = value;\n }\n\n liveRegion.textContent = `${announcement}, ${ariaLabel}`;\n }\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.clearInput = true;\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.clearInput = false;\n this.preventInputsUpdating = 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.preventInputsUpdating = false;\n this.calendarIsOpen = true;\n };\n\n private setValueAndEmitChange = (value: Date | null) => {\n if (!dateMatches(this.value ? new Date(this.value) : null, value)) {\n this.emitIcChange(value);\n this.value = value;\n }\n };\n\n private handleCalendarFocus = () => {\n this.calendarFocused = true;\n if (this.calendarIsOpen) {\n // focus event triggered by closing calendar dialog so inputs should update\n this.preventInputsUpdating = false;\n this.calendarIsOpen = false;\n } else {\n this.preventInputsUpdating = true;\n }\n };\n\n private handleCalendarBlur = () => {\n this.calendarFocused = false;\n this.preventInputsUpdating = true;\n };\n\n private handleClearFocus = () => {\n this.removeLabelledBy = true;\n this.preventInputsUpdating = true;\n this.clearButtonFocused = true;\n };\n\n private handleClearBlur = (ev: FocusEvent) => {\n this.clearButtonFocused = false;\n this.preventInputsUpdating = true;\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 | null) => {\n this.selectedDate = d;\n if (\n !dateMatches(this.selectedDate, d) ||\n this.day !== null ||\n this.month !== null ||\n this.year !== null\n ) {\n let UTCDate = null;\n if (d !== null) {\n UTCDate = new Date(\n Date.UTC(d.getFullYear(), d.getMonth(), d.getDate())\n );\n }\n this.icChange.emit({\n value: d,\n dateObject: {\n day: this.day === \"\" ? null : this.day,\n month: this.month === \"\" ? null : this.month,\n year: this.year === \"\" ? null : this.year,\n },\n utcValue: UTCDate,\n });\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 = !isEmptyString(this.validationStatus);\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 : \"\"}\n disabled={disabled}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\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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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,h as i,H as e,g as s}from"./p-8e4e97b4.js";import{U as o,m as r,h as a,I as l}from"./p-efa95979.js";const n=`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">\n <path d="M13.0875 6.175L11.9125 5L6.91251 10L11.9125 15L13.0875 13.825L9.27084 10L13.0875 6.175Z"/>\n</svg>`;const c=`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">\n <path d="M8.08748 5L6.91248 6.175L10.7291 10L6.91248 13.825L8.08748 15L13.0875 10L8.08748 5Z"/>\n</svg>`;const h='/*! 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{--border-bottom-color:var(--ic-architectural-300);--splitter-color:var(--ic-architectural-100);display:flex;max-width:100%}:host(.ic-horizontal-scroll-light){--splitter-color:var(--ic-color-keyline-lighten)}:host(.ic-horizontal-scroll-dark){--splitter-color:var(--ic-color-keyline-darken)}::slotted(*){overflow-x:scroll;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;margin:calc(var(--ic-space-xs) * -1) !important;padding:var(--ic-space-xs) !important}:host(.ic-horizontal-scroll-visible) ::slotted(*){margin:calc(var(--ic-space-xs) * -1) 0 !important;padding:var(--ic-space-xs) !important}.tabs-container::-webkit-scrollbar{display:none}.scroll-container-left,.scroll-container-right{display:flex}.scroll-container-left{margin-left:var(--ic-space-xxs)}.scroll-container-right{margin-right:var(--ic-space-xxs)}.hidden{display:none}.scroll-arrow{margin:var(--ic-space-xxs) 0}.disabled .ic-tooltip-container{display:none !important}.scroll-splitter-left,.scroll-splitter-right{display:flex;height:var(--ic-space-lg);width:var(--ic-space-1px);margin-top:var(--ic-space-xs);border-radius:var(--ic-space-1px);background-color:var(--splitter-color)}.scroll-splitter-left{margin-left:calc(var(--ic-space-xxs) - var(--ic-space-1px))}.scroll-splitter-right{margin-right:calc(var(--ic-space-xxs) - var(--ic-space-1px))}.disabled .scroll-splitter-left,.disabled .scroll-splitter-right{background-color:transparent}:host(.ic-horizontal-scroll-dark) .disabled ic-button>svg,:host(.ic-horizontal-scroll-light) .disabled ic-button>svg{color:var(--splitter-color) !important}';const d=h;const p=200;const b=class{constructor(i){t(this,i);this.buttonStateSet=false;this.firstItemVisible=true;this.itemOverflow=false;this.lastItemVisible=false;this.appearance="default";this.monochrome=false;this.theme="inherit";this.focusTrigger="focus";this.focusHandler=t=>{this.itemFocusHandler(Array.from(this.items).indexOf(t.target))};this.resizeObserverCallback=()=>{if(this.el.clientWidth>=this.itemsContainerEl.scrollWidth){this.itemOverflow=false}else{this.itemOverflow=o(this.itemsContainerEl)}if(this.itemOverflow){this.lastItemVisible=this.itemsContainerEl.offsetWidth+this.itemsContainerEl.scrollLeft>=this.itemsContainerEl.scrollWidth}};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{this.resizeObserverCallback()}));this.resizeObserver.observe(this.itemsContainerEl)};this.scrollLeft=()=>{this.scrollItemIntoView(this.getCurrentLeftItem()-1)};this.scrollRight=()=>{this.scrollItemIntoView(this.getCurrentLeftItem()+1)};this.longScrollRight=()=>{this.scrollRight();this.scrollDelay=window.setTimeout(this.longScrollRight,p)};this.longScrollLeft=()=>{this.scrollLeft();this.scrollDelay=window.setTimeout(this.longScrollLeft,p)};this.leftArrowMouseDownHandler=t=>{t.preventDefault();this.scrollDelay=window.setTimeout(this.longScrollLeft,p)};this.rightArrowMouseDownHandler=t=>{t.preventDefault();this.scrollDelay=window.setTimeout(this.longScrollRight,p)};this.arrowMouseUpHandler=()=>{window.clearTimeout(this.scrollDelay)};this.getCurrentLeftItem=()=>{const t=this.itemOffsets.findIndex((t=>t>Math.round(this.itemsContainerEl.scrollLeft)));return t<0?0:t};this.scrollHandler=()=>{window.clearTimeout(this.isScrolling);this.isScrolling=window.setTimeout(this.scrollStopped,50)};this.scrollStopped=()=>{const t=Math.round(this.itemsContainerEl.scrollLeft);if(this.buttonStateSet===false){this.firstItemVisible=t===0;this.lastItemVisible=this.itemsContainerEl.offsetWidth+t>=this.itemsContainerEl.scrollWidth}this.buttonStateSet=false}}componentWillLoad(){this.itemsContainerEl=this.el.children[0];this.itemsContainerEl.addEventListener("scroll",this.scrollHandler);this.items=r(this.itemsContainerEl);this.items.forEach((t=>{if(t.addEventListener){t.addEventListener(this.focusTrigger,this.focusHandler)}}))}componentDidLoad(){var t;let i=0;this.itemOffsets=this.items.map((t=>{i+=t.offsetWidth;return i}));a(this.runResizeObserver);const e=Array.from(((t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelectorAll("div"))||[]);["mouseup","mouseleave"].forEach((t=>{e.forEach((i=>i.addEventListener(t,this.arrowMouseUpHandler)))}))}disconnectedCallback(){var t,i,e;if(this.resizeObserver!==undefined){this.resizeObserver.disconnect()}const s=Array.from(((t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelectorAll("div"))||[]);["mouseup","mouseleave"].forEach((t=>{s.forEach((i=>i.removeEventListener(t,this.arrowMouseUpHandler)))}));(i=this.items)===null||i===void 0?void 0:i.forEach((t=>{if(t.removeEventListener){t.removeEventListener(this.focusTrigger,this.focusHandler)}}));(e=this.itemsContainerEl)===null||e===void 0?void 0:e.removeEventListener("scroll",this.scrollHandler)}async scrollItemIntoView(t){this.firstItemVisible=t<=0;const i=t<=0?0:this.itemOffsets[t-1];this.lastItemVisible=this.itemsContainerEl.offsetWidth+i>=this.itemsContainerEl.scrollWidth;this.buttonStateSet=true;this.itemsContainerEl.scrollLeft=i}itemFocusHandler(t){if(this.itemOverflow){this.scrollItemIntoView(t)}}render(){const{firstItemVisible:t,lastItemVisible:s,itemOverflow:o}=this;return i(e,{key:"5c313665e71e0abc91a19f204ccf08d7b017f46b",class:{["ic-horizontal-scroll-visible"]:o,["ic-horizontal-scroll-dark"]:this.appearance===l.Dark,["ic-horizontal-scroll-light"]:this.appearance===l.Light,[`ic-theme-${this.theme}`]:this.theme!=="inherit"}},i("div",{key:"7a65d56af26a6bfe660c3e923beaf7b512f77de8","aria-hidden":"true",class:{["scroll-container-left"]:true,["hidden"]:!o,["disabled"]:t},role:"tab"},i("ic-button",{key:"0203d6acdde7444d03038b3ec86f3e318615030d",class:"scroll-arrow",variant:"icon-tertiary","aria-label":"Scroll left",theme:this.theme==="light"||this.theme==="inherit"?"dark":"light",monochrome:this.monochrome,innerHTML:n,disabled:t,tabindex:"-1",onClick:this.scrollLeft,onMouseDown:this.leftArrowMouseDownHandler}),i("span",{key:"dffb5fee1c17005205216d0901141317e2dc4aa6",class:"scroll-splitter-left"})),i("slot",{key:"f637c15f3020e1572a61179c2132dece11d0699a"}),i("div",{key:"c563d5ca6d07a66f2111bea5aebe7d36ae481770","aria-hidden":"true",class:{["scroll-container-right"]:true,["hidden"]:!o,["disabled"]:s},role:"tab"},i("span",{key:"d8afe9aaf2304d13909815aeb8e60ac4f8952f7f",class:"scroll-splitter-right"}),i("ic-button",{key:"4f3be747e736a50705793742b0a1e9fab44d56db",class:"scroll-arrow",variant:"icon-tertiary","aria-label":"Scroll right",theme:this.theme==="light"||this.theme==="inherit"?"dark":"light",monochrome:this.monochrome,innerHTML:c,disabled:s,tabindex:"-1",onClick:this.scrollRight,onMouseDown:this.rightArrowMouseDownHandler})))}get el(){return s(this)}};b.style=d;export{b as ic_horizontal_scroll};
2
- //# sourceMappingURL=p-e7f22a19.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icHorizontalScrollCss","IcHorizontalScrollStyle0","SCROLL_DELAY_MS","HorizontalScroll","constructor","hostRef","this","buttonStateSet","firstItemVisible","itemOverflow","lastItemVisible","appearance","monochrome","theme","focusTrigger","focusHandler","event","itemFocusHandler","Array","from","items","indexOf","target","resizeObserverCallback","el","clientWidth","itemsContainerEl","scrollWidth","elementOverflowsX","offsetWidth","scrollLeft","runResizeObserver","resizeObserver","ResizeObserver","observe","scrollItemIntoView","getCurrentLeftItem","scrollRight","longScrollRight","scrollDelay","window","setTimeout","longScrollLeft","leftArrowMouseDownHandler","e","preventDefault","rightArrowMouseDownHandler","arrowMouseUpHandler","clearTimeout","index","itemOffsets","findIndex","Math","round","scrollHandler","isScrolling","scrollStopped","componentWillLoad","children","addEventListener","getSlotElements","forEach","item","componentDidLoad","_a","runningTotal","map","checkResizeObserver","scrollArrows","shadowRoot","querySelectorAll","arrow","disconnectedCallback","_b","_c","undefined","disconnect","removeEventListener","itemPosition","newScrollPos","render","h","Host","key","class","IcBrandForegroundEnum","Dark","Light","role","variant","innerHTML","LeftArrow","disabled","tabindex","onClick","onMouseDown","RightArrow"],"sources":["../web-components/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css?tag=ic-horizontal-scroll&encapsulation=shadow","../web-components/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.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:host {\n --border-bottom-color: var(--ic-architectural-300);\n --splitter-color: var(--ic-architectural-100);\n\n display: flex;\n max-width: 100%;\n}\n\n:host(.ic-horizontal-scroll-light) {\n --splitter-color: var(--ic-color-keyline-lighten);\n}\n\n:host(.ic-horizontal-scroll-dark) {\n --splitter-color: var(--ic-color-keyline-darken);\n}\n\n/* Slotted items container element */\n::slotted(*) {\n overflow-x: scroll;\n overflow-y: hidden;\n scroll-behavior: smooth;\n scrollbar-width: none;\n -ms-overflow-style: none;\n margin: calc(var(--ic-space-xs) * -1) !important;\n padding: var(--ic-space-xs) !important;\n}\n\n:host(.ic-horizontal-scroll-visible) ::slotted(*) {\n margin: calc(var(--ic-space-xs) * -1) 0 !important;\n padding: var(--ic-space-xs) !important;\n}\n\n.tabs-container::-webkit-scrollbar {\n display: none;\n}\n\n.scroll-container-left,\n.scroll-container-right {\n display: flex;\n}\n\n.scroll-container-left {\n margin-left: var(--ic-space-xxs);\n}\n\n.scroll-container-right {\n margin-right: var(--ic-space-xxs);\n}\n\n.hidden {\n display: none;\n}\n\n.scroll-arrow {\n margin: var(--ic-space-xxs) 0;\n}\n\n.disabled .ic-tooltip-container {\n display: none !important;\n}\n\n.scroll-splitter-left,\n.scroll-splitter-right {\n display: flex;\n height: var(--ic-space-lg);\n width: var(--ic-space-1px);\n margin-top: var(--ic-space-xs);\n border-radius: var(--ic-space-1px);\n background-color: var(--splitter-color);\n}\n\n.scroll-splitter-left {\n margin-left: calc(var(--ic-space-xxs) - var(--ic-space-1px));\n}\n\n.scroll-splitter-right {\n margin-right: calc(var(--ic-space-xxs) - var(--ic-space-1px));\n}\n\n.disabled .scroll-splitter-left,\n.disabled .scroll-splitter-right {\n background-color: transparent;\n}\n\n:host(.ic-horizontal-scroll-dark) .disabled ic-button > svg,\n:host(.ic-horizontal-scroll-light) .disabled ic-button > svg {\n color: var(--splitter-color) !important;\n}\n","import { h, Host, } from \"@stencil/core\";\nimport LeftArrow from \"./assets/left-arrow.svg\";\nimport RightArrow from \"./assets/right-arrow.svg\";\nimport { getSlotElements } from \"../../utils/helpers\";\nimport { checkResizeObserver, elementOverflowsX } from \"../../utils/helpers\";\nimport { IcBrandForegroundEnum, } from \"../../utils/types\";\nconst SCROLL_DELAY_MS = 200;\nexport class HorizontalScroll {\n constructor() {\n this.buttonStateSet = false;\n this.firstItemVisible = true;\n this.itemOverflow = false;\n this.lastItemVisible = false;\n /**\n * The appearance of the horizontal scroll, e.g. dark, light or the default.\n */\n this.appearance = \"default\";\n /** @internal Determines whether black variant of the tabs should be displayed. */\n this.monochrome = false;\n /**\n * @internal 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 this.theme = \"inherit\";\n /**\n * @internal The name of the event that triggers focus handler logic.\n */\n this.focusTrigger = \"focus\";\n this.focusHandler = (event) => {\n this.itemFocusHandler(Array.from(this.items).indexOf(event.target));\n };\n this.resizeObserverCallback = () => {\n if (this.el.clientWidth >= this.itemsContainerEl.scrollWidth) {\n this.itemOverflow = false;\n }\n else {\n this.itemOverflow = elementOverflowsX(this.itemsContainerEl);\n }\n if (this.itemOverflow) {\n this.lastItemVisible =\n this.itemsContainerEl.offsetWidth + this.itemsContainerEl.scrollLeft >=\n this.itemsContainerEl.scrollWidth;\n }\n };\n this.runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeObserverCallback();\n });\n this.resizeObserver.observe(this.itemsContainerEl);\n };\n this.scrollLeft = () => {\n this.scrollItemIntoView(this.getCurrentLeftItem() - 1);\n };\n this.scrollRight = () => {\n this.scrollItemIntoView(this.getCurrentLeftItem() + 1);\n };\n this.longScrollRight = () => {\n this.scrollRight();\n this.scrollDelay = window.setTimeout(this.longScrollRight, SCROLL_DELAY_MS);\n };\n this.longScrollLeft = () => {\n this.scrollLeft();\n this.scrollDelay = window.setTimeout(this.longScrollLeft, SCROLL_DELAY_MS);\n };\n this.leftArrowMouseDownHandler = (e) => {\n e.preventDefault();\n this.scrollDelay = window.setTimeout(this.longScrollLeft, SCROLL_DELAY_MS);\n };\n this.rightArrowMouseDownHandler = (e) => {\n e.preventDefault();\n this.scrollDelay = window.setTimeout(this.longScrollRight, SCROLL_DELAY_MS);\n };\n this.arrowMouseUpHandler = () => {\n window.clearTimeout(this.scrollDelay);\n };\n this.getCurrentLeftItem = () => {\n const index = this.itemOffsets.findIndex((el) => el > Math.round(this.itemsContainerEl.scrollLeft));\n return index < 0 ? 0 : index;\n };\n this.scrollHandler = () => {\n window.clearTimeout(this.isScrolling);\n // Set a timeout to run after scrolling ends\n this.isScrolling = window.setTimeout(this.scrollStopped, 50);\n };\n this.scrollStopped = () => {\n // If scrollItemIntoView has been called, the button states will already be set\n // Can't just handle it here as it causes strange jumping behaviour in positioning\n const scrollLeft = Math.round(this.itemsContainerEl.scrollLeft);\n if (this.buttonStateSet === false) {\n this.firstItemVisible = scrollLeft === 0;\n this.lastItemVisible =\n this.itemsContainerEl.offsetWidth + scrollLeft >=\n this.itemsContainerEl.scrollWidth;\n }\n this.buttonStateSet = false;\n };\n }\n componentWillLoad() {\n this.itemsContainerEl = this.el.children[0];\n this.itemsContainerEl.addEventListener(\"scroll\", this.scrollHandler);\n this.items = getSlotElements(this.itemsContainerEl);\n this.items.forEach((item) => {\n if (item.addEventListener) {\n item.addEventListener(this.focusTrigger, this.focusHandler);\n }\n });\n }\n componentDidLoad() {\n var _a;\n let runningTotal = 0;\n this.itemOffsets = this.items.map((item) => {\n runningTotal += item.offsetWidth;\n return runningTotal;\n });\n checkResizeObserver(this.runResizeObserver);\n // Add event listener to scroll containers as mouse events are not fired on disabled elements (ic-button's <button>)\n // 'mouseleave' needed in case the user moves their mouse while holding the arrow buttons\n // - 'mouseup' otherwise not detected and scrolling not stopped\n const scrollArrows = Array.from(((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(\"div\")) || []);\n [\"mouseup\", \"mouseleave\"].forEach((event) => {\n scrollArrows.forEach((arrow) => arrow.addEventListener(event, this.arrowMouseUpHandler));\n });\n }\n disconnectedCallback() {\n var _a, _b, _c;\n if (this.resizeObserver !== undefined) {\n this.resizeObserver.disconnect();\n }\n const scrollArrows = Array.from(((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(\"div\")) || []);\n [\"mouseup\", \"mouseleave\"].forEach((event) => {\n scrollArrows.forEach((arrow) => arrow.removeEventListener(event, this.arrowMouseUpHandler));\n });\n (_b = this.items) === null || _b === void 0 ? void 0 : _b.forEach((item) => {\n if (item.removeEventListener) {\n item.removeEventListener(this.focusTrigger, this.focusHandler);\n }\n });\n (_c = this.itemsContainerEl) === null || _c === void 0 ? void 0 : _c.removeEventListener(\"scroll\", this.scrollHandler);\n }\n /**\n * @internal if side scrolling enabled, scrolls the specified item into view.\n */\n async scrollItemIntoView(itemPosition) {\n this.firstItemVisible = itemPosition <= 0;\n const newScrollPos = itemPosition <= 0 ? 0 : this.itemOffsets[itemPosition - 1];\n this.lastItemVisible =\n this.itemsContainerEl.offsetWidth + newScrollPos >=\n this.itemsContainerEl.scrollWidth;\n this.buttonStateSet = true;\n this.itemsContainerEl.scrollLeft = newScrollPos;\n }\n itemFocusHandler(itemPosition) {\n if (this.itemOverflow) {\n this.scrollItemIntoView(itemPosition);\n }\n }\n render() {\n const { firstItemVisible, lastItemVisible, itemOverflow } = this;\n return (h(Host, { key: '5c313665e71e0abc91a19f204ccf08d7b017f46b', class: {\n [\"ic-horizontal-scroll-visible\"]: itemOverflow,\n [\"ic-horizontal-scroll-dark\"]: this.appearance === IcBrandForegroundEnum.Dark,\n [\"ic-horizontal-scroll-light\"]: this.appearance === IcBrandForegroundEnum.Light,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n } }, h(\"div\", { key: '7a65d56af26a6bfe660c3e923beaf7b512f77de8', \"aria-hidden\": \"true\", class: {\n [\"scroll-container-left\"]: true,\n [\"hidden\"]: !itemOverflow,\n [\"disabled\"]: firstItemVisible,\n }, role: \"tab\" }, h(\"ic-button\", { key: '0203d6acdde7444d03038b3ec86f3e318615030d', class: \"scroll-arrow\", variant: \"icon-tertiary\", \"aria-label\": \"Scroll left\", theme: this.theme === \"light\" || this.theme === \"inherit\"\n ? \"dark\"\n : \"light\", monochrome: this.monochrome, innerHTML: LeftArrow, disabled: firstItemVisible, tabindex: \"-1\", onClick: this.scrollLeft, onMouseDown: this.leftArrowMouseDownHandler }), h(\"span\", { key: 'dffb5fee1c17005205216d0901141317e2dc4aa6', class: \"scroll-splitter-left\" })), h(\"slot\", { key: 'f637c15f3020e1572a61179c2132dece11d0699a' }), h(\"div\", { key: 'c563d5ca6d07a66f2111bea5aebe7d36ae481770', \"aria-hidden\": \"true\", class: {\n [\"scroll-container-right\"]: true,\n [\"hidden\"]: !itemOverflow,\n [\"disabled\"]: lastItemVisible,\n }, role: \"tab\" }, h(\"span\", { key: 'd8afe9aaf2304d13909815aeb8e60ac4f8952f7f', class: \"scroll-splitter-right\" }), h(\"ic-button\", { key: '4f3be747e736a50705793742b0a1e9fab44d56db', class: \"scroll-arrow\", variant: \"icon-tertiary\", \"aria-label\": \"Scroll right\", theme: this.theme === \"light\" || this.theme === \"inherit\"\n ? \"dark\"\n : \"light\", monochrome: this.monochrome, innerHTML: RightArrow, disabled: lastItemVisible, tabindex: \"-1\", onClick: this.scrollRight, onMouseDown: this.rightArrowMouseDownHandler }))));\n }\n static get is() { return \"ic-horizontal-scroll\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"./ic-horizontal-scroll.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-horizontal-scroll.css\"]\n };\n }\n static get properties() {\n return {\n \"appearance\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcBrandForeground\",\n \"resolved\": \"\\\"dark\\\" | \\\"default\\\" | \\\"light\\\" | undefined\",\n \"references\": {\n \"IcBrandForeground\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcBrandForeground\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The appearance of the horizontal scroll, e.g. dark, light or the default.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"appearance\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"monochrome\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Determines whether black variant of the tabs should be displayed.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"monochrome\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\" | undefined\",\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 \"name\": \"internal\",\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 \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n },\n \"focusTrigger\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"The name of the event that triggers focus handler logic.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"focus-trigger\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"focus\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"firstItemVisible\": {},\n \"itemOverflow\": {},\n \"lastItemVisible\": {}\n };\n }\n static get methods() {\n return {\n \"scrollItemIntoView\": {\n \"complexType\": {\n \"signature\": \"(itemPosition: number) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"itemPosition\",\n \"type\": \"number\",\n \"docs\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"if side scrolling enabled, scrolls the specified item into view.\"\n }]\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=ic-horizontal-scroll.js.map\n"],"mappings":"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","ignoreList":[]}