@ukic/web-components 3.2.0 → 3.3.0

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 (485) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-789082d4.js → helpers-fc4016d2.js} +21 -37
  3. package/dist/cjs/helpers-fc4016d2.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-badge.cjs.entry.js +4 -4
  9. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +56 -76
  11. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-breadcrumb.cjs.entry.js +32 -51
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-button_3.cjs.entry.js +110 -131
  15. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-card-vertical.cjs.entry.js +5 -5
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js +9 -10
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox.cjs.entry.js +34 -33
  20. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-chip.cjs.entry.js +26 -38
  22. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  24. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  25. package/dist/cjs/ic-dialog.cjs.entry.js +2 -2
  26. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
  28. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  30. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-hero.cjs.entry.js +5 -5
  32. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  33. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +9 -9
  34. package/dist/cjs/ic-input-label_2.cjs.entry.js +8 -8
  35. package/dist/cjs/ic-link.cjs.entry.js +21 -3
  36. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-menu-item.cjs.entry.js +5 -5
  39. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  41. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -3
  43. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  44. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  45. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  46. package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
  47. package/dist/cjs/ic-popover-menu.cjs.entry.js +8 -7
  48. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-radio-group.cjs.entry.js +5 -5
  50. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
  51. package/dist/cjs/ic-search-bar.cjs.entry.js +112 -135
  52. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  54. package/dist/cjs/ic-select.cjs.entry.js +7 -7
  55. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-side-navigation.cjs.entry.js +6 -6
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  60. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  61. package/dist/cjs/ic-step.cjs.entry.js +14 -14
  62. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  63. package/dist/cjs/ic-switch.cjs.entry.js +6 -6
  64. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  67. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  68. package/dist/cjs/ic-tab.cjs.entry.js +3 -3
  69. package/dist/cjs/ic-text-field.cjs.entry.js +32 -29
  70. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  72. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  73. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  74. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  75. package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
  76. package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -5
  77. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-typography.cjs.entry.js +3 -3
  79. package/dist/cjs/loader.cjs.js +1 -1
  80. package/dist/collection/components/ic-badge/ic-badge.css +1 -1
  81. package/dist/collection/components/ic-badge/ic-badge.js +2 -2
  82. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +40 -59
  83. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  84. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +65 -86
  85. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  86. package/dist/collection/components/ic-button/ic-button.css +105 -54
  87. package/dist/collection/components/ic-button/ic-button.js +141 -162
  88. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  89. package/dist/collection/components/ic-button/ic-button.stories.js +10 -2
  90. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +4 -4
  91. package/dist/collection/components/ic-checkbox/ic-checkbox.js +71 -73
  92. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  93. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +24 -25
  94. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  95. package/dist/collection/components/ic-chip/ic-chip.css +9 -0
  96. package/dist/collection/components/ic-chip/ic-chip.js +66 -72
  97. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  98. package/dist/collection/components/ic-chip/ic-chip.stories.js +2 -1
  99. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  100. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  101. package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
  102. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  103. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  104. package/dist/collection/components/ic-hero/ic-hero.js +4 -4
  105. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  106. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  107. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  108. package/dist/collection/components/ic-input-label/ic-input-label.js +4 -4
  109. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  110. package/dist/collection/components/ic-link/ic-link.js +23 -2
  111. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  112. package/dist/collection/components/ic-link/ic-link.stories.js +28 -5
  113. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +3 -3
  114. package/dist/collection/components/ic-menu/ic-menu.js +3 -3
  115. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  116. package/dist/collection/components/ic-menu-item/ic-menu-item.css +0 -5
  117. package/dist/collection/components/ic-menu-item/ic-menu-item.js +3 -3
  118. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  119. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +2 -2
  120. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
  121. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +2 -2
  122. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  123. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  124. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  125. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  126. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +0 -5
  127. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +6 -5
  128. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  129. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  130. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  131. package/dist/collection/components/ic-search-bar/ic-search-bar.js +169 -192
  132. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  133. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  134. package/dist/collection/components/ic-select/ic-select.js +6 -6
  135. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  136. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +1 -1
  137. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
  138. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  139. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  140. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  141. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  142. package/dist/collection/components/ic-step/ic-step.js +13 -13
  143. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  144. package/dist/collection/components/ic-switch/ic-switch.js +5 -5
  145. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  146. package/dist/collection/components/ic-tab/ic-tab.js +2 -2
  147. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  148. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  149. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  150. package/dist/collection/components/ic-text-field/ic-text-field.js +112 -95
  151. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  152. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  153. package/dist/collection/components/ic-toast/ic-toast.js +3 -3
  154. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  155. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  156. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  157. package/dist/collection/components/ic-tooltip/ic-tooltip.js +2 -2
  158. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  159. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  160. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  161. package/dist/collection/utils/helpers.js +20 -36
  162. package/dist/collection/utils/helpers.js.map +1 -1
  163. package/dist/components/helpers.js +21 -37
  164. package/dist/components/helpers.js.map +1 -1
  165. package/dist/components/ic-badge.js +3 -3
  166. package/dist/components/ic-badge.js.map +1 -1
  167. package/dist/components/ic-breadcrumb-group.js +57 -78
  168. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  169. package/dist/components/ic-breadcrumb2.js +32 -51
  170. package/dist/components/ic-breadcrumb2.js.map +1 -1
  171. package/dist/components/ic-button2.js +105 -126
  172. package/dist/components/ic-button2.js.map +1 -1
  173. package/dist/components/ic-card-vertical.js +4 -4
  174. package/dist/components/ic-checkbox-group.js +8 -9
  175. package/dist/components/ic-checkbox-group.js.map +1 -1
  176. package/dist/components/ic-checkbox.js +36 -35
  177. package/dist/components/ic-checkbox.js.map +1 -1
  178. package/dist/components/ic-chip.js +28 -40
  179. package/dist/components/ic-chip.js.map +1 -1
  180. package/dist/components/ic-data-list.js +2 -2
  181. package/dist/components/ic-data-row.js +2 -2
  182. package/dist/components/ic-dialog.js +1 -1
  183. package/dist/components/ic-empty-state.js +2 -2
  184. package/dist/components/ic-footer-link.js +2 -2
  185. package/dist/components/ic-hero.js +4 -4
  186. package/dist/components/ic-horizontal-scroll2.js +5 -5
  187. package/dist/components/ic-input-component-container2.js +3 -3
  188. package/dist/components/ic-input-container2.js +2 -2
  189. package/dist/components/ic-input-label2.js +4 -4
  190. package/dist/components/ic-input-validation2.js +3 -3
  191. package/dist/components/ic-link2.js +23 -3
  192. package/dist/components/ic-link2.js.map +1 -1
  193. package/dist/components/ic-loading-indicator2.js +3 -3
  194. package/dist/components/ic-menu-group.js +1 -1
  195. package/dist/components/ic-menu-item2.js +4 -4
  196. package/dist/components/ic-menu-item2.js.map +1 -1
  197. package/dist/components/ic-menu2.js +3 -3
  198. package/dist/components/ic-navigation-button.js +2 -2
  199. package/dist/components/ic-navigation-group.js +1 -1
  200. package/dist/components/ic-navigation-item.js +2 -2
  201. package/dist/components/ic-navigation-menu2.js +4 -4
  202. package/dist/components/ic-page-header.js +6 -6
  203. package/dist/components/ic-pagination-item2.js +1 -1
  204. package/dist/components/ic-pagination.js +4 -4
  205. package/dist/components/ic-popover-menu.js +7 -6
  206. package/dist/components/ic-popover-menu.js.map +1 -1
  207. package/dist/components/ic-radio-group.js +4 -4
  208. package/dist/components/ic-radio-option.js +4 -4
  209. package/dist/components/ic-search-bar.js +112 -135
  210. package/dist/components/ic-search-bar.js.map +1 -1
  211. package/dist/components/ic-section-container2.js +2 -2
  212. package/dist/components/ic-select.js +7 -7
  213. package/dist/components/ic-select.js.map +1 -1
  214. package/dist/components/ic-side-navigation.js +5 -5
  215. package/dist/components/ic-side-navigation.js.map +1 -1
  216. package/dist/components/ic-skeleton.js +2 -2
  217. package/dist/components/ic-skip-link.js +2 -2
  218. package/dist/components/ic-status-tag.js +2 -2
  219. package/dist/components/ic-step.js +13 -13
  220. package/dist/components/ic-stepper.js +2 -2
  221. package/dist/components/ic-switch.js +5 -5
  222. package/dist/components/ic-switch.js.map +1 -1
  223. package/dist/components/ic-tab-context.js +1 -1
  224. package/dist/components/ic-tab-group.js +2 -2
  225. package/dist/components/ic-tab-panel.js +2 -2
  226. package/dist/components/ic-tab-panel.js.map +1 -1
  227. package/dist/components/ic-tab.js +2 -2
  228. package/dist/components/ic-text-field.js +32 -29
  229. package/dist/components/ic-text-field.js.map +1 -1
  230. package/dist/components/ic-theme.js +1 -1
  231. package/dist/components/ic-toast-region.js +1 -1
  232. package/dist/components/ic-toast.js +3 -3
  233. package/dist/components/ic-toggle-button-group.js +2 -2
  234. package/dist/components/ic-toggle-button.js +2 -2
  235. package/dist/components/ic-tooltip2.js +2 -2
  236. package/dist/components/ic-top-navigation.js +4 -4
  237. package/dist/components/ic-top-navigation.js.map +1 -1
  238. package/dist/components/ic-typography2.js +2 -2
  239. package/dist/core/core.css +159 -109
  240. package/dist/core/core.esm.js +1 -1
  241. package/dist/core/core.esm.js.map +1 -1
  242. package/dist/core/{p-4245a976.entry.js → p-00bc353b.entry.js} +2 -2
  243. package/dist/core/{p-ef09b450.entry.js → p-0a436c47.entry.js} +2 -2
  244. package/dist/core/{p-fbde763c.entry.js → p-10e1e227.entry.js} +2 -2
  245. package/dist/core/{p-88924aef.entry.js → p-1440847f.entry.js} +2 -2
  246. package/dist/core/{p-bbe5596b.entry.js → p-15b7adaf.entry.js} +2 -2
  247. package/dist/core/p-16f55230.entry.js +2 -0
  248. package/dist/core/p-16f55230.entry.js.map +1 -0
  249. package/dist/core/{p-45432bf5.entry.js → p-1838d1e9.entry.js} +2 -2
  250. package/dist/core/{p-3eb7ef1d.entry.js → p-18714198.entry.js} +2 -2
  251. package/dist/core/{p-3b5d3e24.entry.js → p-1b2690b4.entry.js} +2 -2
  252. package/dist/core/p-1b2690b4.entry.js.map +1 -0
  253. package/dist/core/{p-b3ac38c5.entry.js → p-1be17f22.entry.js} +2 -2
  254. package/dist/core/p-206c2a26.entry.js +2 -0
  255. package/dist/core/p-206c2a26.entry.js.map +1 -0
  256. package/dist/core/{p-b3d6d5be.entry.js → p-267a19d4.entry.js} +2 -2
  257. package/dist/core/{p-81a12e36.entry.js → p-26dfc4db.entry.js} +2 -2
  258. package/dist/core/{p-81a12e36.entry.js.map → p-26dfc4db.entry.js.map} +1 -1
  259. package/dist/core/p-2c17cc67.entry.js +2 -0
  260. package/dist/core/p-2c17cc67.entry.js.map +1 -0
  261. package/dist/core/{p-f3c72ffb.entry.js → p-2c371198.entry.js} +2 -2
  262. package/dist/core/{p-63fe83ad.entry.js → p-2e44cf53.entry.js} +2 -2
  263. package/dist/core/{p-63fe83ad.entry.js.map → p-2e44cf53.entry.js.map} +1 -1
  264. package/dist/core/{p-70700c7a.entry.js → p-42a7d0b6.entry.js} +2 -2
  265. package/dist/core/p-513628ef.entry.js +2 -0
  266. package/dist/core/p-513628ef.entry.js.map +1 -0
  267. package/dist/core/{p-33c86ba6.entry.js → p-628c32b8.entry.js} +2 -2
  268. package/dist/core/{p-0631c3ab.entry.js → p-70a6cff1.entry.js} +2 -2
  269. package/dist/core/{p-f815f8c9.entry.js → p-72c117b6.entry.js} +2 -2
  270. package/dist/core/p-730d2f6e.entry.js +2 -0
  271. package/dist/core/p-730d2f6e.entry.js.map +1 -0
  272. package/dist/core/{p-7dfe0284.entry.js → p-788c96ac.entry.js} +2 -2
  273. package/dist/core/{p-fe833509.entry.js → p-7fb79e87.entry.js} +2 -2
  274. package/dist/core/p-8242c24f.js +2 -0
  275. package/dist/core/p-8242c24f.js.map +1 -0
  276. package/dist/core/{p-6de6b6b7.entry.js → p-83764268.entry.js} +2 -2
  277. package/dist/core/{p-4b601e06.entry.js → p-8b5022bc.entry.js} +2 -2
  278. package/dist/core/{p-1e4cdd2d.entry.js → p-8c4f7c63.entry.js} +2 -2
  279. package/dist/core/{p-5e18b899.entry.js → p-910f5f14.entry.js} +2 -2
  280. package/dist/core/{p-7afc71d0.entry.js → p-9479f272.entry.js} +2 -2
  281. package/dist/core/{p-acebb05c.entry.js → p-9c47521d.entry.js} +2 -2
  282. package/dist/core/{p-40f2f58e.entry.js → p-9ca147f3.entry.js} +2 -2
  283. package/dist/core/{p-e56d0db2.entry.js → p-9cfc2bac.entry.js} +2 -2
  284. package/dist/core/{p-abaea607.entry.js → p-a0161990.entry.js} +2 -2
  285. package/dist/core/p-a17499ff.entry.js +2 -0
  286. package/dist/core/p-a17499ff.entry.js.map +1 -0
  287. package/dist/core/{p-c2ca6274.entry.js → p-a4f9b5bf.entry.js} +2 -2
  288. package/dist/core/{p-005cd8a8.entry.js → p-aad10013.entry.js} +2 -2
  289. package/dist/core/{p-959a9cdf.entry.js → p-b371a498.entry.js} +2 -2
  290. package/dist/core/{p-959a9cdf.entry.js.map → p-b371a498.entry.js.map} +1 -1
  291. package/dist/core/p-b7568944.entry.js +2 -0
  292. package/dist/core/p-b7568944.entry.js.map +1 -0
  293. package/dist/core/{p-3675c4b4.entry.js → p-b8da5c07.entry.js} +2 -2
  294. package/dist/core/{p-de43d375.entry.js → p-b9459ba2.entry.js} +2 -2
  295. package/dist/core/p-ba600947.entry.js +2 -0
  296. package/dist/core/p-ba600947.entry.js.map +1 -0
  297. package/dist/core/{p-f34eee68.entry.js → p-bc2ca778.entry.js} +2 -2
  298. package/dist/core/{p-7c0914e7.entry.js → p-bdc72446.entry.js} +2 -2
  299. package/dist/core/{p-a9c96e3e.entry.js → p-c45023b7.entry.js} +2 -2
  300. package/dist/core/p-c4663e1a.entry.js +2 -0
  301. package/dist/core/p-c4663e1a.entry.js.map +1 -0
  302. package/dist/core/{p-5206a978.entry.js → p-c8cf1ad5.entry.js} +2 -2
  303. package/dist/core/p-c9a4fe37.entry.js +2 -0
  304. package/dist/core/p-c9a4fe37.entry.js.map +1 -0
  305. package/dist/core/p-cdf56a5d.entry.js +2 -0
  306. package/dist/core/p-cdf56a5d.entry.js.map +1 -0
  307. package/dist/core/{p-23d059ff.entry.js → p-d45d66c0.entry.js} +2 -2
  308. package/dist/core/{p-9ea9a4ce.entry.js → p-d6c50565.entry.js} +2 -2
  309. package/dist/core/{p-950db960.entry.js → p-d975bf2f.entry.js} +2 -2
  310. package/dist/core/{p-950db960.entry.js.map → p-d975bf2f.entry.js.map} +1 -1
  311. package/dist/core/{p-3132270d.entry.js → p-dede4974.entry.js} +2 -2
  312. package/dist/core/{p-23ed8b99.entry.js → p-df88ff5b.entry.js} +2 -2
  313. package/dist/core/{p-c04f36c5.entry.js → p-e86a6d2d.entry.js} +2 -2
  314. package/dist/core/{p-7a0d238b.entry.js → p-ebab7a9e.entry.js} +2 -2
  315. package/dist/core/{p-517d7afb.entry.js → p-eeab3a2e.entry.js} +2 -2
  316. package/dist/core/{p-44e4e8c1.entry.js → p-ef36181d.entry.js} +2 -2
  317. package/dist/core/{p-fc50d582.entry.js → p-f0388d68.entry.js} +2 -2
  318. package/dist/core/{p-e2f893f0.entry.js → p-fbf57f0a.entry.js} +2 -2
  319. package/dist/esm/core.js +1 -1
  320. package/dist/esm/{helpers-46a2d1fd.js → helpers-f2ffaa7c.js} +22 -38
  321. package/dist/esm/helpers-f2ffaa7c.js.map +1 -0
  322. package/dist/esm/ic-accordion-group.entry.js +1 -1
  323. package/dist/esm/ic-accordion.entry.js +1 -1
  324. package/dist/esm/ic-alert.entry.js +1 -1
  325. package/dist/esm/ic-back-to-top.entry.js +1 -1
  326. package/dist/esm/ic-badge.entry.js +4 -4
  327. package/dist/esm/ic-badge.entry.js.map +1 -1
  328. package/dist/esm/ic-breadcrumb-group.entry.js +56 -76
  329. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  330. package/dist/esm/ic-breadcrumb.entry.js +32 -51
  331. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  332. package/dist/esm/ic-button_3.entry.js +111 -132
  333. package/dist/esm/ic-button_3.entry.js.map +1 -1
  334. package/dist/esm/ic-card-vertical.entry.js +5 -5
  335. package/dist/esm/ic-checkbox-group.entry.js +9 -10
  336. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  337. package/dist/esm/ic-checkbox.entry.js +34 -33
  338. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  339. package/dist/esm/ic-chip.entry.js +26 -38
  340. package/dist/esm/ic-chip.entry.js.map +1 -1
  341. package/dist/esm/ic-data-list.entry.js +2 -2
  342. package/dist/esm/ic-data-row.entry.js +3 -3
  343. package/dist/esm/ic-dialog.entry.js +2 -2
  344. package/dist/esm/ic-divider.entry.js +1 -1
  345. package/dist/esm/ic-empty-state.entry.js +3 -3
  346. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  347. package/dist/esm/ic-footer-link.entry.js +3 -3
  348. package/dist/esm/ic-footer.entry.js +1 -1
  349. package/dist/esm/ic-hero.entry.js +5 -5
  350. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  351. package/dist/esm/ic-input-component-container_3.entry.js +9 -9
  352. package/dist/esm/ic-input-label_2.entry.js +8 -8
  353. package/dist/esm/ic-link.entry.js +21 -3
  354. package/dist/esm/ic-link.entry.js.map +1 -1
  355. package/dist/esm/ic-menu-group.entry.js +2 -2
  356. package/dist/esm/ic-menu-item.entry.js +5 -5
  357. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  358. package/dist/esm/ic-navigation-button.entry.js +3 -3
  359. package/dist/esm/ic-navigation-group.entry.js +2 -2
  360. package/dist/esm/ic-navigation-item.entry.js +3 -3
  361. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  362. package/dist/esm/ic-page-header.entry.js +7 -7
  363. package/dist/esm/ic-pagination-item.entry.js +2 -2
  364. package/dist/esm/ic-pagination.entry.js +5 -5
  365. package/dist/esm/ic-popover-menu.entry.js +8 -7
  366. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  367. package/dist/esm/ic-radio-group.entry.js +5 -5
  368. package/dist/esm/ic-radio-option.entry.js +5 -5
  369. package/dist/esm/ic-search-bar.entry.js +112 -135
  370. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  371. package/dist/esm/ic-section-container.entry.js +2 -2
  372. package/dist/esm/ic-select.entry.js +7 -7
  373. package/dist/esm/ic-select.entry.js.map +1 -1
  374. package/dist/esm/ic-side-navigation.entry.js +6 -6
  375. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  376. package/dist/esm/ic-skeleton.entry.js +2 -2
  377. package/dist/esm/ic-skip-link.entry.js +2 -2
  378. package/dist/esm/ic-status-tag.entry.js +3 -3
  379. package/dist/esm/ic-step.entry.js +14 -14
  380. package/dist/esm/ic-stepper.entry.js +3 -3
  381. package/dist/esm/ic-switch.entry.js +6 -6
  382. package/dist/esm/ic-switch.entry.js.map +1 -1
  383. package/dist/esm/ic-tab-context.entry.js +1 -1
  384. package/dist/esm/ic-tab-group.entry.js +3 -3
  385. package/dist/esm/ic-tab-panel.entry.js +2 -2
  386. package/dist/esm/ic-tab.entry.js +3 -3
  387. package/dist/esm/ic-text-field.entry.js +32 -29
  388. package/dist/esm/ic-text-field.entry.js.map +1 -1
  389. package/dist/esm/ic-theme.entry.js +2 -2
  390. package/dist/esm/ic-toast-region.entry.js +1 -1
  391. package/dist/esm/ic-toast.entry.js +4 -4
  392. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  393. package/dist/esm/ic-toggle-button.entry.js +3 -3
  394. package/dist/esm/ic-top-navigation.entry.js +5 -5
  395. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  396. package/dist/esm/ic-typography.entry.js +3 -3
  397. package/dist/esm/loader.js +1 -1
  398. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.d.ts +4 -6
  399. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +9 -15
  400. package/dist/types/components/ic-button/ic-button.d.ts +29 -22
  401. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +14 -13
  402. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +8 -9
  403. package/dist/types/components/ic-chip/ic-chip.d.ts +13 -15
  404. package/dist/types/components/ic-link/ic-link.d.ts +2 -0
  405. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +38 -40
  406. package/dist/types/components/ic-text-field/ic-text-field.d.ts +37 -32
  407. package/dist/types/components.d.ts +127 -122
  408. package/dist/types/utils/helpers.d.ts +8 -8
  409. package/hydrate/index.js +590 -680
  410. package/hydrate/index.mjs +590 -680
  411. package/package.json +2 -2
  412. package/vscode-data.json +167 -3
  413. package/dist/cjs/helpers-789082d4.js.map +0 -1
  414. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.types.js +0 -2
  415. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.types.js.map +0 -1
  416. package/dist/core/p-0a8b3967.entry.js +0 -2
  417. package/dist/core/p-0a8b3967.entry.js.map +0 -1
  418. package/dist/core/p-0b4350df.entry.js +0 -2
  419. package/dist/core/p-0b4350df.entry.js.map +0 -1
  420. package/dist/core/p-0e618fc5.entry.js +0 -2
  421. package/dist/core/p-0e618fc5.entry.js.map +0 -1
  422. package/dist/core/p-18ecba80.entry.js +0 -2
  423. package/dist/core/p-18ecba80.entry.js.map +0 -1
  424. package/dist/core/p-281ce313.js +0 -2
  425. package/dist/core/p-281ce313.js.map +0 -1
  426. package/dist/core/p-30abe545.entry.js +0 -2
  427. package/dist/core/p-30abe545.entry.js.map +0 -1
  428. package/dist/core/p-3b5d3e24.entry.js.map +0 -1
  429. package/dist/core/p-5d4b0480.entry.js +0 -2
  430. package/dist/core/p-5d4b0480.entry.js.map +0 -1
  431. package/dist/core/p-6337fe1f.entry.js +0 -2
  432. package/dist/core/p-6337fe1f.entry.js.map +0 -1
  433. package/dist/core/p-8ba129fc.entry.js +0 -2
  434. package/dist/core/p-8ba129fc.entry.js.map +0 -1
  435. package/dist/core/p-ac7db165.entry.js +0 -2
  436. package/dist/core/p-ac7db165.entry.js.map +0 -1
  437. package/dist/core/p-c62318a8.entry.js +0 -2
  438. package/dist/core/p-c62318a8.entry.js.map +0 -1
  439. package/dist/core/p-e586ae7b.entry.js +0 -2
  440. package/dist/core/p-e586ae7b.entry.js.map +0 -1
  441. package/dist/esm/helpers-46a2d1fd.js.map +0 -1
  442. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.types.d.ts +0 -1
  443. /package/dist/core/{p-4245a976.entry.js.map → p-00bc353b.entry.js.map} +0 -0
  444. /package/dist/core/{p-ef09b450.entry.js.map → p-0a436c47.entry.js.map} +0 -0
  445. /package/dist/core/{p-fbde763c.entry.js.map → p-10e1e227.entry.js.map} +0 -0
  446. /package/dist/core/{p-88924aef.entry.js.map → p-1440847f.entry.js.map} +0 -0
  447. /package/dist/core/{p-bbe5596b.entry.js.map → p-15b7adaf.entry.js.map} +0 -0
  448. /package/dist/core/{p-45432bf5.entry.js.map → p-1838d1e9.entry.js.map} +0 -0
  449. /package/dist/core/{p-3eb7ef1d.entry.js.map → p-18714198.entry.js.map} +0 -0
  450. /package/dist/core/{p-b3ac38c5.entry.js.map → p-1be17f22.entry.js.map} +0 -0
  451. /package/dist/core/{p-b3d6d5be.entry.js.map → p-267a19d4.entry.js.map} +0 -0
  452. /package/dist/core/{p-f3c72ffb.entry.js.map → p-2c371198.entry.js.map} +0 -0
  453. /package/dist/core/{p-70700c7a.entry.js.map → p-42a7d0b6.entry.js.map} +0 -0
  454. /package/dist/core/{p-33c86ba6.entry.js.map → p-628c32b8.entry.js.map} +0 -0
  455. /package/dist/core/{p-0631c3ab.entry.js.map → p-70a6cff1.entry.js.map} +0 -0
  456. /package/dist/core/{p-f815f8c9.entry.js.map → p-72c117b6.entry.js.map} +0 -0
  457. /package/dist/core/{p-7dfe0284.entry.js.map → p-788c96ac.entry.js.map} +0 -0
  458. /package/dist/core/{p-fe833509.entry.js.map → p-7fb79e87.entry.js.map} +0 -0
  459. /package/dist/core/{p-6de6b6b7.entry.js.map → p-83764268.entry.js.map} +0 -0
  460. /package/dist/core/{p-4b601e06.entry.js.map → p-8b5022bc.entry.js.map} +0 -0
  461. /package/dist/core/{p-1e4cdd2d.entry.js.map → p-8c4f7c63.entry.js.map} +0 -0
  462. /package/dist/core/{p-5e18b899.entry.js.map → p-910f5f14.entry.js.map} +0 -0
  463. /package/dist/core/{p-7afc71d0.entry.js.map → p-9479f272.entry.js.map} +0 -0
  464. /package/dist/core/{p-acebb05c.entry.js.map → p-9c47521d.entry.js.map} +0 -0
  465. /package/dist/core/{p-40f2f58e.entry.js.map → p-9ca147f3.entry.js.map} +0 -0
  466. /package/dist/core/{p-e56d0db2.entry.js.map → p-9cfc2bac.entry.js.map} +0 -0
  467. /package/dist/core/{p-abaea607.entry.js.map → p-a0161990.entry.js.map} +0 -0
  468. /package/dist/core/{p-c2ca6274.entry.js.map → p-a4f9b5bf.entry.js.map} +0 -0
  469. /package/dist/core/{p-005cd8a8.entry.js.map → p-aad10013.entry.js.map} +0 -0
  470. /package/dist/core/{p-3675c4b4.entry.js.map → p-b8da5c07.entry.js.map} +0 -0
  471. /package/dist/core/{p-de43d375.entry.js.map → p-b9459ba2.entry.js.map} +0 -0
  472. /package/dist/core/{p-f34eee68.entry.js.map → p-bc2ca778.entry.js.map} +0 -0
  473. /package/dist/core/{p-7c0914e7.entry.js.map → p-bdc72446.entry.js.map} +0 -0
  474. /package/dist/core/{p-a9c96e3e.entry.js.map → p-c45023b7.entry.js.map} +0 -0
  475. /package/dist/core/{p-5206a978.entry.js.map → p-c8cf1ad5.entry.js.map} +0 -0
  476. /package/dist/core/{p-23d059ff.entry.js.map → p-d45d66c0.entry.js.map} +0 -0
  477. /package/dist/core/{p-9ea9a4ce.entry.js.map → p-d6c50565.entry.js.map} +0 -0
  478. /package/dist/core/{p-3132270d.entry.js.map → p-dede4974.entry.js.map} +0 -0
  479. /package/dist/core/{p-23ed8b99.entry.js.map → p-df88ff5b.entry.js.map} +0 -0
  480. /package/dist/core/{p-c04f36c5.entry.js.map → p-e86a6d2d.entry.js.map} +0 -0
  481. /package/dist/core/{p-7a0d238b.entry.js.map → p-ebab7a9e.entry.js.map} +0 -0
  482. /package/dist/core/{p-517d7afb.entry.js.map → p-eeab3a2e.entry.js.map} +0 -0
  483. /package/dist/core/{p-44e4e8c1.entry.js.map → p-ef36181d.entry.js.map} +0 -0
  484. /package/dist/core/{p-fc50d582.entry.js.map → p-f0388d68.entry.js.map} +0 -0
  485. /package/dist/core/{p-e2f893f0.entry.js.map → p-fbf57f0a.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["icSelectCss","IcSelectStyle0","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","Select","constructor","hostRef","this","hasSetDefaultValue","inheritedAttributes","initialOptionsEmpty","inputId","menuId","searchableMenuItemSelected","ungroupedOptions","hostMutationObserver","clearButtonFocused","noOptions","open","pressedCharacters","searchableSelectInputValue","disabled","disableAutoFiltering","emptyOptionListText","fullWidth","helperText","hideLabel","includeDescriptionsInSearch","includeGroupTitlesInSearch","loadingErrorLabel","loadingLabel","multiple","name","placeholder","readonly","required","searchable","searchMatchPosition","selectOnEnter","showClearButton","size","theme","validationStatus","validationText","loading","options","filteredOptions","uniqueOptions","debounce","currDebounce","initialValue","value","inputValueToFilter","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","type","addedNodes","removedNodes","attribute","el","getAttribute","includes","checkSlotInChildMutations","forceUpdate","handleRetry","ev","detail","keyPressed","_a","searchableSelectElement","focus","blurredBecauseButtonPressed","retryButtonClick","icRetryLoad","emit","hiddenInputValue","emitIcChange","Array","isArray","handleMultipleSelectChange","String","valueToEmit","icChange","emitIcInput","clearTimeout","debounceIcInput","window","setTimeout","icInput","setOptions","hasTimedOut","timeoutTimer","length","setOptionsValuesFromLabels","deduplicateOptions","label","isExternalFiltering","updateSearchableSelectResultAriaLive","setDefaultValue","uniqueValues","dedupedOptions","dedupedChildren","option","children","child","console","warn","push","modifiedParent","Object","assign","map","setUngroupedOptions","event","setTextColor","nativeSelectElement","selectedIndex","className","setMenuChange","getLabelFromValue","getMultipleOptionsString","selectedValues","selectedLabels","filter","join","getFilteredChildMenuOptions","getFilteredMenuOptions","newOption","getValueSortedByOptions","valueArray","valuesFromAllOptions","sort","a","b","indexOf","handleNativeSelectChange","icOptionSelect","handleCustomSelectChange","currValue","getValueFromLabel","_b","icOptionDeselect","ariaActiveDescendant","optionId","slice","valueIndex","splice","handleSelectAllChange","selectAllOptions","select","allEnabledOptions","allValues","newValue","unselectedValues","handleMenuChange","handleFocusIndicatorDisplay","handleMenuKeyPress","cancelBubble","handleCharacterKeyDown","key","focusIndicator","shadowRoot","querySelector","classList","add","remove","handleMouseDown","preventDefault","handleClick","menu","handleClickOpen","handleExpandIconMouseDown","handleClear","stopPropagation","clearInput","icClear","customSelectElement","characterKeyPressTimer","handleFilter","handleNativeSelectKeyDown","handleKeyDown","isArrowKey","handleKeyboardOpen","handleClearButtonFocus","handleClearButtonBlur","retryButton","relatedTarget","isGrouped","newFilteredOptions","menuOptionsFiltered","noChildOptionsWhenFiltered","triggerLoading","timeout","timedOut","find","handleSearchableSelectInput","target","debounceAriaLiveUpdate","searchableSelectResultsStatusEl","innerText","updateMultiSelectedCountAriaLive","multiSelectSelectedCountEl","selectedCount","getOptionsWithoutGroupTitlesCount","getDefaultValue","onFocus","icFocus","onBlur","tagName","isSearchableAndNoFocusedInternalElements","from","querySelectorAll","clearButton","icBlur","onTimeoutBlur","handleFormReset","setAttribute","watchDisabledHandler","removeDisabledFalse","loadingHandler","watchOptionsHandler","debounceChangedHandler","updateOnChangeDebounce","valueChangedHandler","openChangedHandler","icOpen","icClose","disconnectedCallback","removeFormResetListener","disconnect","componentWillLoad","valueInOptions","inheritAttributes","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","MutationObserver","observe","attributes","childList","componentDidRender","setFocus","debounceAria","render","renderHiddenInput","invalid","IcInformationStatus","Error","describedBy","getInputDescribedByText","hasValidationStatus","trim","showLeftIcon","optionsSelectedCount","valueLabelString","isClearable","h","Host","class","for","ref","anchorEl","slot","isMobileOrTablet","onChange","id","onKeyDown","form","selected","role","autocomplete","undefined","onInput","onClick","innerHTML","Clear","variant","onMouseDown","Expand","inputEl","inputLabel","onMenuStateChange","onMenuOptionSelect","onMenuOptionSelectAll","onMenuKeyPress","onUngroupedOptionsSet","onRetryButtonClicked","parentEl","activationType","closeOnSelect","ariaLiveMode","status","message"],"sources":["src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","src/components/ic-select/ic-select.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --input-width: Width of the input field\n * @prop --menu-width: Width of the dropdown menu\n * @prop --ic-z-index-menu: z-index of select menu\n */\n\n:host {\n display: block;\n position: relative;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xxs);\n --menu-max-height: 100px;\n --border-color: var(--ic-select-field-border);\n --border-color-hover: var(--ic-select-field-border-hover);\n --border-color-pressed: var(--ic-select-field-border-pressed);\n --border-color-disabled: var(--ic-select-field-border-disabled);\n --border-color-error: var(--ic-select-field-border-error);\n --border-color-error-hover: var(--ic-select-field-border-error-hover);\n --border-color-error-pressed: var(--ic-select-field-border-error-pressed);\n --border-color-success: var(--ic-select-field-border-success);\n --border-color-success-hover: var(--ic-select-field-border-success-hover);\n --border-color-success-pressed: var(--ic-select-field-border-success-pressed);\n --border-color-warning: var(--ic-select-field-border-warning);\n --border-color-warning-hover: var(--ic-select-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-select-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-select-field-labe);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle\n );\n --ic-input-validation-status-text-color: var(--ic-select-state-text);\n --ic-input-validation-error: var(--ic-select-state-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-select-state-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-select-state-icon-success);\n --menu-item-text-color: var(--ic-select-list-option-text);\n --menu-bg-color: var(--ic-select-list-option-background);\n --menu-border-color: var(--ic-select-dropdown-list-border);\n}\n\n:host(.ic-select-disabled) {\n --ic-input-label-text-color: var(--ic-select-field-label-disabled);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle-disabled\n );\n}\n\n:host(.ic-select-full-width) {\n width: 100%;\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-select-field-border-pressed);\n}\n\nic-input-validation .status-icon,\nic-input-validation .statustext {\n visibility: visible;\n}\n\nic-input-validation.menu-open .status-icon,\nic-input-validation.menu-open .statustext {\n visibility: hidden;\n transition: visibility 0s;\n}\n\nic-input-label {\n margin-bottom: var(--ic-space-xs) !important;\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n height: 100%;\n padding-left: 0.375rem;\n appearance: none;\n background-repeat: no-repeat;\n background-position: right 0.375rem center;\n background-image: var(--ic-select-mobile-dropdown-icon);\n caret-color: var(--ic-select-input-field-text-cursor);\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-select-list-option-text);\n}\n\nselect:disabled {\n color: var(--ic-select-content-text-disabled);\n background-image: var(--ic-select-mobile-dropdown-icon-disabled);\n}\n\nselect:focus {\n border: 0;\n outline: 0;\n}\n\nselect:not([disabled]) {\n cursor: pointer;\n}\n\n.select-container {\n width: 100%;\n display: flex;\n align-items: center;\n position: relative;\n}\n\n.select-input {\n width: 100%;\n height: 100%;\n padding: 0 0.375rem;\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: space-between;\n background: none;\n border: none;\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n}\n\n.select-input:focus {\n outline: none;\n}\n\n.select-input[disabled] {\n pointer-events: none;\n}\n\n:host(.ic-select-searchable) .select-input {\n cursor: auto;\n}\n\n.select-input.with-clear-button {\n padding-right: 0;\n}\n\n.value-text {\n max-width: calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));\n box-sizing: border-box;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin-bottom: 0 !important;\n}\n\n.value-text.with-clear-button {\n padding-right: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n.searchable-select-container {\n align-items: center;\n display: flex;\n width: 100%;\n position: relative;\n}\n\n.expand-icon {\n height: var(--ic-space-lg);\n padding-left: var(--ic-space-xxs);\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon > svg {\n display: inline-block;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-disabled) .expand-icon,\n:host(.ic-select-disabled) .expand-icon > svg > path {\n color: var(--ic-select-disabled-expand-icon-color);\n}\n\n:host(.ic-select-searchable) .expand-icon {\n padding-left: 0;\n height: 2.25rem;\n}\n\n:host(.ic-select-searchable) .expand-icon > svg {\n height: 2.25rem;\n padding: 0 calc(var(--ic-space-xxxs) + var(--ic-space-xxs)) 0\n var(--ic-space-xxs);\n}\n\n:host(.ic-select-searchable:not(.ic-select-disabled)) .expand-icon > svg {\n cursor: pointer;\n}\n\n.expand-icon-open {\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon-open,\n:host(.ic-select-searchable) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n.placeholder {\n color: var(--ic-select-content-placeholder-text);\n}\n\n:host(.ic-select-disabled) .value-text,\n:host(.ic-select-disabled) .select-input,\n:host(.ic-select-disabled) .placeholder,\n:host(.ic-select-disabled.ic-select-searchable) .select-input::placeholder {\n color: var(--ic-select-content-text-disabled);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n align-items: center;\n}\n\n.divider {\n width: var(--ic-space-1px);\n background-color: var(--ic-select-content-divider);\n margin: var(--ic-space-xxs) 0;\n border-radius: var(--ic-space-1px);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-small) .divider {\n height: var(--ic-space-md);\n}\n\n:host(.ic-select-large) .divider {\n height: var(--ic-space-xl);\n}\n\n.clear-button {\n color: var(--ic-select-clear-button);\n position: absolute;\n right: calc(var(--ic-space-xl) + var(--ic-space-xxs) - var(--ic-space-1px));\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n}\n\n.clear-button:focus,\n.clear-button:active {\n background-color: var(--ic-color-focus-inner);\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer);\n border-radius: 0.25rem;\n}\n\n.clear-button:focus,\n.clear-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button.searchable {\n position: static;\n}\n\n.searchable-select-results-status,\n.multi-select-selected-count {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: var(--ic-space-1px);\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: var(--ic-space-1px);\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-placeholder-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-text);\n}\n\n.readonly ::slotted([slot=\"icon\"]) {\n padding: 0.375rem;\n margin-bottom: 0.75rem;\n}\n\n@media (forced-colors: active) {\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n h,\n State,\n Watch,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport {\n getInputDescribedByText,\n getLabelFromValue,\n hasValidationStatus,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n isMobileOrTablet,\n getFilteredMenuOptions,\n getOptionsWithoutGroupTitlesCount,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcMenuOption,\n IcSearchMatchPositions,\n IcMultiValueEventDetail,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport { IcOptionSelectEventDetail } from \"../ic-menu/ic-menu.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"tabindex\", \"title\"];\n\n/**\n * @slot icon - Content will be placed to the left of the select text input.\n */\n@Component({\n tag: \"ic-select\",\n styleUrl: \"ic-select.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Select {\n private anchorEl?: HTMLElement;\n private blurredBecauseButtonPressed: boolean;\n private characterKeyPressTimer: number;\n private clearButton?: HTMLIcButtonElement;\n private customSelectElement?: HTMLButtonElement;\n private debounceAria: number;\n private hasSetDefaultValue = false;\n private hasTimedOut: boolean;\n private inheritedAttributes: { [k: string]: string } = {};\n private initialOptionsEmpty = false;\n private inputId = `ic-select-input-${inputIds++}`;\n private menu?: HTMLIcMenuElement;\n private menuId = `${this.inputId}-menu`;\n private nativeSelectElement?: HTMLSelectElement;\n private retryButtonClick: boolean;\n private searchableMenuItemSelected: boolean = false;\n private searchableSelectElement?: HTMLInputElement;\n private timeoutTimer: number;\n private ungroupedOptions: IcMenuOption[] = [];\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el!: HTMLIcSelectElement;\n\n @State() ariaActiveDescendant: string;\n @State() clearButtonFocused: boolean = false;\n @State() debounceIcInput: number;\n @State() hiddenInputValue: string | null;\n @State() noOptions: IcMenuOption[] | null = null;\n @State() open: boolean = false;\n @State() pressedCharacters: string = \"\";\n @State() searchableSelectInputValue: string | null = null;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the built in filtering will be disabled for a searchable variant. For example, if options will already be filtered from external source.\n */\n @Prop() disableAutoFiltering?: boolean = false;\n\n /**\n * The text displayed when there are no options in the option list.\n */\n @Prop() emptyOptionListText?: string = \"No results found\";\n\n /**\n * The <form> element to associate the select with.\n */\n @Prop() form?: string;\n\n /**\n * If `true`, the select will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * If `true`, descriptions of options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeDescriptionsInSearch?: boolean = false;\n\n /**\n * If `true`, group titles of grouped options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeGroupTitlesInSearch?: boolean = false;\n\n /**\n * The label for the select.\n */\n @Prop() label!: string;\n\n /**\n * The message displayed when external loading times out.\n */\n @Prop() loadingErrorLabel?: string = \"Loading Error\";\n\n /**\n * The message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel?: string = \"Loading...\";\n\n /**\n * If `true`, multiple options can be selected.\n */\n @Prop() multiple?: boolean = false;\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 * The placeholder value to be displayed.\n */\n @Prop() placeholder?: string = \"Select an option\";\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * If `true`, the select will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * If `true`, a searchable variant of the select will be displayed which can be typed in to filter options. This functionality is only available on the single-select variant of the select component.\n */\n @Prop() searchable?: boolean = false;\n\n /**\n * Whether the search string of the searchable select should match the start of or anywhere in the options. Only applies to built in filtering.\n */\n @Prop() searchMatchPosition?: IcSearchMatchPositions = \"anywhere\";\n\n /**\n * If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown on the single select.\n */\n @Prop() selectOnEnter?: boolean = false;\n\n /**\n * If `true`, a button which clears the select input when clicked will be displayed. The button will always appear on the searchable select.\n */\n @Prop() showClearButton?: boolean = false;\n\n /**\n * The size of the select.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * If using external filtering, set a timeout for when loading takes too long.\n */\n @Prop() timeout?: number;\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 * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * If `true`, the loading state will be triggered when fetching options asynchronously.\n */\n @Prop({ mutable: true }) loading?: boolean = false;\n\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n newValue ? this.triggerLoading() : this.setOptions();\n }\n\n /**\n * The possible selection options.\n */\n @Prop() options?: IcMenuOption[] = [];\n @State() filteredOptions: IcMenuOption[] = this.options!;\n @State() uniqueOptions: IcMenuOption[] = this.options!;\n\n @Watch(\"options\")\n watchOptionsHandler(): void {\n this.setOptions();\n }\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icInput` event after each keystroke.\n */\n @Prop() debounce?: number = 0;\n @State() currDebounce = this.debounce;\n\n @Watch(\"debounce\")\n debounceChangedHandler(newValue: number): void {\n this.updateOnChangeDebounce(newValue);\n }\n\n /**\n * The value of the select, reflected by the value of the currently selected option.\n * For the searchable variant, the value is also reflected by the user input.\n * For the multi-select variant, the value must be an array of option values.\n */\n @Prop({ mutable: true }) value?: string | string[] | null;\n @State() initialValue = this.value;\n @State() inputValueToFilter: string | null = this.value as string;\n @State() currValue?: string | string[] | null;\n\n @Watch(\"value\")\n valueChangedHandler(): void {\n if (this.value !== this.currValue) {\n if (this.value && this.multiple) {\n this.currValue = this.getMultipleOptionsString(this.value as string[])\n ? this.getValueSortedByOptions(this.value as string[])\n : null;\n this.updateMultiSelectedCountAriaLive();\n } else {\n this.currValue = this.getLabelFromValue(this.value as string)\n ? this.value\n : null;\n }\n }\n\n if (this.searchable && this.value) {\n // Only set if value not null - prevents whole input value being cleared when edited\n this.searchableSelectInputValue =\n this.getLabelFromValue(String(this.currValue)) || null;\n }\n }\n\n @Watch(\"open\")\n openChangedHandler(): void {\n this.open ? this.icOpen.emit() : this.icClose.emit();\n }\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() icBlur: EventEmitter<void>;\n\n /**\n * Emitted when the value changes.\n */\n @Event() icChange: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the clear or clear all button is clicked.\n */\n @Event() icClear: EventEmitter<void>;\n\n /**\n * Emitted when the select options menu is closed.\n */\n @Event() icClose: EventEmitter<void>;\n\n /**\n * Emitted when the select gains focus.\n */\n @Event() icFocus: EventEmitter<void>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the select options menu is opened.\n */\n @Event() icOpen: EventEmitter<void>;\n\n /**\n * Emitted when an option is selected.\n * Selecting an option will also trigger an `icChange/onIcChange` due to the value being updated.\n */\n @Event() icOptionSelect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when `multiple` is `true` and an option is deselected.\n */\n @Event() icOptionDeselect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when the 'retry loading' button is clicked for a searchable variant.\n */\n @Event() icRetryLoad: EventEmitter<IcMultiValueEventDetail>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n const valueInOptions = this.multiple\n ? this.getMultipleOptionsString(this.value as string[])\n : this.getLabelFromValue(this.value as string);\n this.currValue = valueInOptions ? this.value : null;\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.setOptionsValuesFromLabels();\n\n addFormResetListener(this.el, this.handleFormReset);\n\n if (!this.options!.length) {\n this.initialOptionsEmpty = true;\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n } else {\n this.setDefaultValue();\n this.uniqueOptions = this.deduplicateOptions(this.options!);\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Select\"\n );\n\n if (this.loading) {\n this.triggerLoading();\n }\n\n if (this.searchable) {\n this.hiddenInputValue = this.currValue as string;\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n }\n\n /**\n * Sets focus on the input box.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.customSelectElement) {\n this.customSelectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private handleRetry = (ev: CustomEvent<IcMultiValueEventDetail>) => {\n if (ev.detail.keyPressed) this.searchableSelectElement?.focus();\n this.blurredBecauseButtonPressed = true;\n this.retryButtonClick = true;\n this.hasSetDefaultValue = true;\n this.icRetryLoad.emit({\n value: this.searchable\n ? this.searchableSelectInputValue\n : this.hiddenInputValue,\n });\n };\n\n private updateOnChangeDebounce(newValue: number) {\n if (this.currDebounce !== newValue) {\n this.currDebounce = newValue;\n }\n }\n\n private emitIcChange = (value: string | string[] | null) => {\n // If \"Select all\" button clicked, replace value with new value (array of all option values)\n if (this.multiple && !Array.isArray(value) && value !== null) {\n this.handleMultipleSelectChange(String(value));\n } else {\n this.value = value;\n }\n\n const valueToEmit = this.multiple ? this.value : value;\n this.icChange.emit({ value: valueToEmit || null });\n };\n\n private emitIcInput = (value: string) => {\n clearTimeout(this.debounceIcInput);\n this.debounceIcInput = window.setTimeout(\n () => this.icInput.emit({ value }),\n this.currDebounce\n );\n };\n\n private setOptions = () => {\n if (!this.hasTimedOut && this.options !== this.noOptions) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n if (this.options!.length > 0) {\n this.setOptionsValuesFromLabels();\n this.uniqueOptions = this.deduplicateOptions(this.options!);\n this.filteredOptions = this.uniqueOptions;\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n }\n if (this.isExternalFiltering()) {\n // When searchable select\n this.noOptions = null;\n this.updateSearchableSelectResultAriaLive();\n this.setDefaultValue();\n } else {\n if (this.initialOptionsEmpty) {\n this.setDefaultValue();\n this.initialOptionsEmpty = false;\n }\n }\n } else {\n if (!this.searchable) {\n this.options = this.noOptions || [];\n }\n }\n };\n\n /**\n * Processes the provided array of IcMenuOptions, removing duplicates and reporting them with a console.warn\n * @param options array of IcMenuOptions\n * @returns a new options object, with all entries possessing a duplicate 'value' field removed\n */\n private deduplicateOptions = (options: IcMenuOption[]): IcMenuOption[] => {\n const uniqueValues: string[] = [];\n const dedupedOptions: IcMenuOption[] = [];\n let dedupedChildren: IcMenuOption[];\n\n options.forEach((option: IcMenuOption) => {\n if (option.children) {\n //If an option has children, we will loop through them\n dedupedChildren = [];\n option.children.forEach((child) => {\n if (uniqueValues.includes(child.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${child.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(child.value);\n dedupedChildren.push(child);\n }\n });\n // construct a modified option, inserting the deduplicated children alongside the original information\n const modifiedParent: IcMenuOption = {\n ...option,\n children: dedupedChildren,\n };\n dedupedOptions.push(modifiedParent);\n } else {\n // If an option does not have children, assess to see if it's value has been included already\n if (uniqueValues.includes(option.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${option.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(option.value);\n dedupedOptions.push(option);\n }\n }\n });\n return dedupedOptions;\n };\n\n /**\n * Loop through options array and for all options with no value, infer it from the label\n */\n private setOptionsValuesFromLabels = (): void => {\n if (this.options!.length > 0) {\n this.options!.map((option) => {\n if (!option.value) {\n option.value = option.label;\n }\n });\n }\n };\n\n private setUngroupedOptions = (event: CustomEvent): void => {\n this.ungroupedOptions = event.detail.options;\n };\n\n private setTextColor = (): void => {\n if (this.nativeSelectElement) {\n if (this.nativeSelectElement.selectedIndex === 0) {\n this.nativeSelectElement.className = \"placeholder\";\n } else {\n this.nativeSelectElement.className = \"select-option-selected\";\n }\n }\n };\n\n private setMenuChange = (open: boolean) => {\n if (this.open !== open) {\n this.open = open;\n }\n };\n\n private getLabelFromValue = (value: string): string | undefined => {\n return getLabelFromValue(value, this.uniqueOptions);\n };\n\n private getMultipleOptionsString = (selectedValues: string[]) => {\n const selectedLabels = selectedValues\n ?.map((value) => this.getLabelFromValue(value))\n .filter((label) => !!label);\n return selectedLabels?.join(\", \");\n };\n\n private getFilteredChildMenuOptions = (option: IcMenuOption) => {\n let children = option.children;\n\n if (option.children) {\n if (this.searchable) {\n children = getFilteredMenuOptions(\n option.children,\n !!this.includeDescriptionsInSearch,\n this.searchableSelectInputValue || \"\",\n this.searchMatchPosition\n );\n } else {\n children = getFilteredMenuOptions(\n option.children,\n false,\n this.pressedCharacters,\n \"start\"\n );\n }\n }\n\n const newOption = { ...option };\n newOption.children = children;\n return newOption;\n };\n\n // (For multi-select) get value array, i.e. selected option values, in order they appear in option list\n private getValueSortedByOptions = (value: string[]) => {\n const valueArray = value;\n const valuesFromAllOptions = this.ungroupedOptions.map(\n (option) => option.value\n );\n\n valueArray.sort(\n (a, b) =>\n valuesFromAllOptions.indexOf(a) - valuesFromAllOptions.indexOf(b)\n );\n\n return valueArray;\n };\n\n private handleNativeSelectChange = (): void => {\n if (this.nativeSelectElement) {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.emitIcChange(this.nativeSelectElement.value);\n }\n this.setTextColor();\n };\n\n // Handle option select for when a custom input box and menu is rendered\n // (rather than native <select> - rendered when viewed on a mobile / tablet screen)\n private handleCustomSelectChange = (event: CustomEvent): void => {\n const value = event.detail.value;\n\n if (event.detail.label === this.emptyOptionListText) {\n this.searchableSelectElement?.focus();\n return;\n }\n\n if (this.searchable) {\n this.value = value;\n this.searchableMenuItemSelected = true;\n\n // After editing the input, if selecting the same option as before, set the input value to label again\n if (this.value === this.currValue) {\n this.searchableSelectInputValue =\n this.getLabelFromValue(this.value as string) || null;\n }\n\n this.inputValueToFilter = null;\n this.hiddenInputValue =\n this.getValueFromLabel(this.searchableSelectInputValue) || null;\n }\n\n if (this.multiple && this.value?.includes(value)) {\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n }\n\n this.ariaActiveDescendant = event.detail.optionId;\n this.emitIcChange(value);\n };\n\n // Update selected options - adds / removes them, in order of option list\n // Create new array if value prop is undefined\n private handleMultipleSelectChange = (value: string) => {\n if (this.value) {\n let valueArray = (this.value as string[]).slice();\n\n if (this.value.includes(value)) {\n const valueIndex = valueArray.indexOf(value);\n valueArray.splice(valueIndex, 1);\n } else {\n valueArray.push(value);\n valueArray = this.getValueSortedByOptions(valueArray);\n }\n\n this.value = valueArray.length === 0 ? null : valueArray;\n } else {\n const valueArray = [];\n valueArray.push(value);\n this.value = valueArray;\n }\n };\n\n private handleSelectAllChange = (event: CustomEvent) => {\n const selectAllOptions = event.detail.select;\n const allEnabledOptions = this.ungroupedOptions.filter(\n (option) => !option.disabled\n );\n const allValues = allEnabledOptions.map((option) => option.value);\n let newValue: string[] | null;\n\n if (selectAllOptions) {\n let unselectedValues;\n\n // Only emit icOptionSelect for all values that are newly selected\n if (this.value) {\n unselectedValues = allValues.filter(\n (value) => this.value && !(this.value as string[]).includes(value)\n );\n } else {\n unselectedValues = allValues;\n }\n\n unselectedValues.forEach((value) => this.icOptionSelect.emit({ value }));\n newValue = allValues;\n } else {\n // Only emit icOptionDeselect for values that were selected\n (this.value as string[]).forEach((value) =>\n this.icOptionDeselect.emit({ value })\n );\n newValue = null;\n }\n\n this.emitIcChange(newValue);\n };\n\n private handleMenuChange = (event: CustomEvent): void => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n\n this.searchable && this.handleFocusIndicatorDisplay();\n };\n\n // clears the debounce delay when navigating the menu with arrow keys etc\n // to prevent delay in change event, which should only occur when typing in input\n private handleMenuKeyPress = (ev: CustomEvent): void => {\n ev.cancelBubble = true;\n if (!this.multiple) {\n this.handleCharacterKeyDown(ev.detail.key);\n }\n };\n\n private handleFocusIndicatorDisplay = () => {\n const focusIndicator =\n this.el.shadowRoot?.querySelector(\".focus-indicator\");\n\n if (focusIndicator) {\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n } else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n }\n };\n\n private handleMouseDown = (event: Event): void => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n\n private isExternalFiltering = (): boolean =>\n this.searchable! && !!this.disableAutoFiltering;\n\n private handleClick = (event: MouseEvent): void => {\n if (!this.open && this.menu) {\n if (this.isExternalFiltering()) {\n this.menu.options = this.filteredOptions;\n } else if (\n !this.hasTimedOut &&\n !this.loading &&\n !this.noOptions?.length &&\n (!this.searchable || this.searchableMenuItemSelected)\n ) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n\n if (event.detail !== 0) {\n this.menu?.handleClickOpen();\n }\n };\n\n private handleExpandIconMouseDown = (event: MouseEvent) => {\n if (!this.disabled) {\n event.preventDefault();\n this.searchableSelectElement?.focus();\n this.handleClick(event);\n }\n };\n\n private handleClear = (event: Event): void => {\n event.stopPropagation();\n this.hasTimedOut = false;\n clearTimeout(this.timeoutTimer);\n this.clearInput();\n this.emitIcChange(null);\n this.icClear.emit();\n\n if (this.searchable) {\n this.hiddenInputValue = null;\n this.searchableSelectElement?.focus();\n } else {\n this.customSelectElement?.focus();\n }\n };\n\n private handleCharacterKeyDown = (key: string) => {\n // Only close menu when space is pressed if not being used alongside character keys to quickly select options\n if (this.open && key === \" \" && this.pressedCharacters.length === 0) {\n this.setMenuChange(false);\n }\n\n if (key.length === 1 && !this.searchable) {\n window.clearTimeout(this.characterKeyPressTimer);\n this.characterKeyPressTimer = window.setTimeout(\n () => (this.pressedCharacters = \"\"),\n 1000\n );\n\n if (!(key === \" \" && !this.pressedCharacters)) {\n this.pressedCharacters += key;\n this.handleFilter();\n\n if (!this.noOptions) {\n this.emitIcChange(this.filteredOptions[0].value);\n }\n }\n } else {\n this.pressedCharacters = \"\";\n }\n };\n\n private handleNativeSelectKeyDown = (event: KeyboardEvent) => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n this.handleCharacterKeyDown(event.key);\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n const isArrowKey = event.key === \"ArrowDown\" || event.key === \"ArrowUp\";\n\n if (this.menu && !this.open) {\n if (this.isExternalFiltering() && (event.key === \"Enter\" || isArrowKey)) {\n this.menu.options = this.filteredOptions;\n } else {\n if (!this.hasTimedOut) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n }\n\n if (this.open && event.key === \"Enter\") {\n this.setMenuChange(false);\n } else {\n if (!(isArrowKey && this.noOptions !== null)) {\n if (!(event.key === \" \" && this.pressedCharacters.length > 0)) {\n // Keyboard events get passed onto ic-menu\n this.menu?.handleKeyboardOpen(event);\n }\n if (!this.multiple) {\n this.handleCharacterKeyDown(event.key);\n }\n }\n }\n };\n\n private handleClearButtonFocus = (): void => {\n this.clearButtonFocused = true;\n };\n\n private handleClearButtonBlur = (ev: FocusEvent): void => {\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n if (\n !(\n this.searchableSelectElement &&\n ev.relatedTarget === this.searchableSelectElement\n ) &&\n !(retryButton && ev.relatedTarget === retryButton)\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n }\n this.clearButtonFocused = false;\n };\n\n private handleFilter = (): void => {\n const options = this.deduplicateOptions(\n this.searchable ? [...this.uniqueOptions] : this.ungroupedOptions\n );\n\n let isGrouped = false;\n let newFilteredOptions: IcMenuOption[] = [];\n\n options.map((option) => {\n if (option.children) isGrouped = true;\n });\n\n let menuOptionsFiltered: IcMenuOption[];\n\n if (this.searchable) {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n !!this.includeDescriptionsInSearch,\n this.inputValueToFilter || \"\",\n this.searchMatchPosition\n );\n this.searchableMenuItemSelected = false;\n } else {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n false,\n this.pressedCharacters,\n \"start\"\n );\n }\n\n if (\n !isGrouped &&\n menuOptionsFiltered[0]?.label !== this.emptyOptionListText\n ) {\n newFilteredOptions = menuOptionsFiltered;\n } else if (isGrouped) {\n options.map((option) => {\n if (this.includeGroupTitlesInSearch) {\n if (menuOptionsFiltered.indexOf(option) !== -1) {\n newFilteredOptions.push(option);\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n });\n }\n\n let noChildOptionsWhenFiltered = false;\n\n if (isGrouped) {\n noChildOptionsWhenFiltered = true;\n newFilteredOptions.map((option) => {\n if (option.children && option.children.length > 0) {\n noChildOptionsWhenFiltered = false;\n }\n });\n }\n\n if (newFilteredOptions.length > 0 && !noChildOptionsWhenFiltered) {\n this.noOptions = null;\n this.filteredOptions = newFilteredOptions;\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.filteredOptions = this.noOptions;\n }\n };\n\n /**\n * Put the select component into loading state.\n * Replace options with the loading message. If timeout is enabled, set the timeout and once passed, replace options with the loading error message\n */\n private triggerLoading = () => {\n this.hasTimedOut = false;\n this.noOptions = [{ label: this.loadingLabel, value: \"\", loading: true }];\n if (this.filteredOptions !== this.noOptions && this.searchable) {\n this.filteredOptions = this.noOptions;\n } else if (this.uniqueOptions !== this.noOptions && !this.searchable) {\n this.uniqueOptions = this.noOptions;\n }\n if (this.timeout) {\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n this.noOptions = [\n { label: this.loadingErrorLabel, value: \"\", timedOut: true },\n ];\n this.filteredOptions = this.noOptions;\n if (!this.searchable) this.uniqueOptions = this.noOptions;\n }, this.timeout);\n }\n };\n\n private getValueFromLabel = (label: string | null): string | undefined => {\n return (\n label &&\n this.uniqueOptions.find((option) => option.label === label)?.value\n );\n };\n\n private handleSearchableSelectInput = (event: Event): void => {\n this.searchableSelectInputValue = (event.target as HTMLInputElement).value;\n this.emitIcInput(this.searchableSelectInputValue);\n\n // De-select previous selection when input is edited\n // Only emit icChange once when editing input\n if (this.value != null) {\n this.emitIcChange(null);\n }\n\n this.hiddenInputValue = null;\n this.inputValueToFilter = this.searchableSelectInputValue;\n this.setMenuChange(true);\n\n if (!this.disableAutoFiltering) {\n this.handleFilter();\n this.debounceAriaLiveUpdate();\n }\n };\n\n private updateSearchableSelectResultAriaLive = (): void => {\n const searchableSelectResultsStatusEl = this.el.shadowRoot?.querySelector(\n \".searchable-select-results-status\"\n ) as HTMLDivElement;\n\n if (searchableSelectResultsStatusEl) {\n if (this.noOptions !== null) {\n searchableSelectResultsStatusEl.innerText = this.emptyOptionListText!;\n } else {\n searchableSelectResultsStatusEl.innerText = \"\";\n }\n }\n };\n\n private debounceAriaLiveUpdate() {\n clearTimeout(this.debounceAria);\n\n window.setTimeout(() => {\n this.updateSearchableSelectResultAriaLive();\n }, 800);\n }\n\n private updateMultiSelectedCountAriaLive = (): void => {\n const multiSelectSelectedCountEl = this.el.shadowRoot?.querySelector(\n \".multi-select-selected-count\"\n ) as HTMLDivElement;\n\n const selectedCount = `${\n this.currValue?.length\n } of ${getOptionsWithoutGroupTitlesCount(this.options!)} selected`;\n\n if (\n multiSelectSelectedCountEl &&\n multiSelectSelectedCountEl.innerText !== selectedCount\n ) {\n multiSelectSelectedCountEl.innerText = selectedCount;\n }\n };\n\n private getDefaultValue = (value: string): string | null =>\n this.getLabelFromValue(value) || null;\n\n private setDefaultValue = (): void => {\n if (!this.hasSetDefaultValue && this.currValue) {\n this.searchableSelectInputValue = this.searchable\n ? this.getDefaultValue(this.currValue as string)\n : null;\n\n this.initialValue = this.currValue;\n this.hasSetDefaultValue = true;\n }\n };\n\n private onFocus = (): void => {\n this.icFocus.emit();\n };\n\n private onBlur = ({ relatedTarget }: FocusEvent): void => {\n const target = relatedTarget as HTMLElement;\n if (\n target !== null &&\n ((target.tagName === \"UL\" && target.className.includes(\"menu\")) ||\n (target.tagName === \"LI\" && target.className.includes(\"option\")))\n ) {\n return;\n }\n\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n const isSearchableAndNoFocusedInternalElements =\n this.searchable &&\n !!this.menu &&\n target !== this.menu &&\n !Array.from(this.menu.querySelectorAll(\"[role='option']\")).includes(\n target\n ) &&\n !(this.clearButton && target === this.clearButton) &&\n !(retryButton && target === retryButton);\n\n if (isSearchableAndNoFocusedInternalElements) {\n if (!this.retryButtonClick) {\n this.setMenuChange(false);\n // Clear input field on blur when searchable if no option is selected\n if (!this.value) {\n this.clearInput();\n }\n }\n this.handleFocusIndicatorDisplay();\n }\n\n this.retryButtonClick = false;\n this.icBlur.emit();\n };\n\n private onTimeoutBlur = (ev: CustomEvent) => {\n if (\n (ev.detail.ev as FocusEvent).relatedTarget !==\n this.searchableSelectElement &&\n !this.blurredBecauseButtonPressed\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n this.icBlur.emit();\n }\n this.blurredBecauseButtonPressed = false;\n };\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n if (this.searchable) {\n this.searchableSelectInputValue = this.getDefaultValue(\n this.value as string\n );\n this.hiddenInputValue = this.value as string;\n }\n };\n\n private clearInput = (): void => {\n this.noOptions = null;\n\n if (this.searchable) {\n this.searchableSelectElement?.setAttribute(\"value\", \"\");\n this.searchableSelectInputValue = null;\n this.filteredOptions = this.uniqueOptions;\n }\n };\n\n render() {\n const {\n size,\n disabled,\n fullWidth,\n helperText,\n hideLabel,\n label,\n menuId,\n multiple,\n name,\n options,\n placeholder,\n readonly,\n required,\n searchable,\n showClearButton,\n validationStatus,\n validationText,\n currValue,\n theme,\n } = this;\n\n // HTML inputs only accept 'string' for their value\n // Does not cause errors when it is a multi-select - sets value correctly, to a comma-separated string\n renderHiddenInput(\n true,\n this.el,\n name || this.inputId,\n this.searchable ? this.hiddenInputValue : (currValue as string),\n disabled\n );\n\n const invalid = `${validationStatus === IcInformationStatus.Error}`;\n\n const describedBy = getInputDescribedByText(\n this.inputId,\n helperText !== \"\",\n hasValidationStatus(this.validationStatus, !!this.disabled)\n ).trim();\n\n let showLeftIcon = !!this.el.querySelector(`[slot=\"icon\"]`);\n if (showLeftIcon && (disabled || (readonly && !this.value))) {\n showLeftIcon = false;\n }\n\n const optionsSelectedCount = `${\n currValue?.length\n } of ${getOptionsWithoutGroupTitlesCount(this.options!)} selected`;\n\n const valueLabelString = multiple\n ? this.getMultipleOptionsString(currValue as string[])\n : this.getLabelFromValue(currValue as string);\n\n const isClearable =\n !disabled &&\n (searchable\n ? this.searchableSelectInputValue\n : currValue && !this.loading && showClearButton);\n\n return (\n <Host\n class={{\n \"ic-select-disabled\": !!disabled,\n \"ic-select-searchable\": !!searchable,\n [`ic-select-${size}`]: size !== \"medium\",\n \"ic-select-full-width\": !!fullWidth,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onBlur={this.onBlur}\n >\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={this.inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n ></ic-input-label>\n )}\n <ic-input-component-container\n ref={(el) => (this.anchorEl = el)}\n class={{ \"menu-open\": this.open }}\n size={size}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {showLeftIcon && (\n <span\n slot=\"left-icon\"\n class={{\n [\"readonly\"]: !!readonly,\n [\"has-value\"]: !!this.value,\n }}\n >\n <slot name=\"icon\" />\n </span>\n )}\n {readonly ? (\n <ic-typography>\n <p>{valueLabelString}</p>\n </ic-typography>\n ) : isMobileOrTablet() && !multiple ? (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={this.inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onKeyDown={this.handleNativeSelectKeyDown}\n form={this.form}\n {...this.inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options!.map((option) => {\n if (option.children) {\n return (\n <optgroup label={option.label}>\n {option.children.map((option) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === currValue}\n >\n {option.label}\n </option>\n ))}\n </optgroup>\n );\n } else {\n return (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === currValue}\n >\n {option.label}\n </option>\n );\n }\n })}\n </select>\n ) : searchable ? (\n <div class=\"searchable-select-container\">\n <input\n class={{\n \"select-input\": true,\n \"with-clear-button\": !!this.searchableSelectInputValue,\n }}\n role=\"combobox\"\n autocomplete=\"off\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={this.ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={`${this.open}`}\n aria-invalid={invalid}\n aria-required={`${required}`}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={this.inputId}\n value={this.searchableSelectInputValue || undefined}\n placeholder={placeholder}\n disabled={disabled}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n form={this.form}\n ></input>\n {isClearable && (\n <div class=\"clear-button-container\">\n <ic-button\n id=\"clear-button\"\n ref={(el) => (this.clearButton = el)}\n aria-label={\n this.searchableSelectInputValue &&\n (currValue === null || this.loading)\n ? \"Clear input\"\n : \"Clear selection\"\n }\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n onMouseDown={this.handleExpandIconMouseDown}\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"searchable-select-results-status\"\n ></div>\n </div>\n ) : (\n <div class=\"select-container\">\n <button\n class=\"select-input\"\n ref={(el) => (this.customSelectElement = el)}\n id={this.inputId}\n aria-label={`${label}, ${\n (multiple && currValue\n ? `${optionsSelectedCount}, ${valueLabelString}`\n : valueLabelString) || placeholder\n }${required ? \", required\" : \"\"}`}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-haspopup=\"listbox\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-owns={menuId}\n aria-controls={menuId}\n disabled={disabled}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.handleClick}\n onMouseDown={this.handleMouseDown}\n onKeyDown={this.handleKeyDown}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n \"with-clear-button\": !!isClearable,\n placeholder:\n !this.loading && multiple\n ? !this.value || this.value.length < 1\n : !this.getLabelFromValue(currValue as string),\n }}\n >\n {valueLabelString || placeholder}\n </ic-typography>\n <div class=\"select-input-end\">\n {isClearable && <div class=\"divider\"></div>}\n <span\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {isClearable && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear selection\"\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n )}\n </div>\n )}\n </ic-input-component-container>\n {(!isMobileOrTablet() || multiple) && (\n <ic-menu\n class={{\n \"no-results\":\n this.loading ||\n this.hasTimedOut ||\n (this.noOptions !== null &&\n this.noOptions[0] &&\n this.noOptions[0].label === this.emptyOptionListText),\n }}\n ref={(el) => (this.menu = el)}\n inputEl={\n (searchable\n ? this.searchableSelectElement\n : this.customSelectElement)!\n }\n inputLabel={label}\n anchorEl={this.anchorEl!}\n size={size}\n menuId={menuId}\n open={this.open}\n options={searchable ? this.filteredOptions : this.uniqueOptions}\n value={multiple ? (currValue as string[]) : (currValue as string)}\n fullWidth={fullWidth}\n selectOnEnter={this.selectOnEnter}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionSelect={this.handleCustomSelectChange}\n onMenuOptionSelectAll={this.handleSelectAllChange}\n onMenuKeyPress={this.handleMenuKeyPress}\n onUngroupedOptionsSet={this.setUngroupedOptions}\n onRetryButtonClicked={this.handleRetry}\n parentEl={this.el}\n onTimeoutBlur={this.onTimeoutBlur}\n activationType={\n this.searchable || multiple || this.selectOnEnter\n ? \"manual\"\n : \"automatic\"\n }\n closeOnSelect={!multiple}\n ></ic-menu>\n )}\n {this.multiple && (\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"multi-select-selected-count\"\n ></div>\n )}\n {hasValidationStatus(this.validationStatus, !!this.disabled) && (\n <ic-input-validation\n class={{ \"menu-open\": this.open }}\n ariaLiveMode=\"polite\"\n status={validationStatus}\n message={validationText || \"\"}\n for={this.inputId}\n ></ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["icSelectCss","IcSelectStyle0","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","Select","constructor","hostRef","this","hasSetDefaultValue","inheritedAttributes","initialOptionsEmpty","inputId","menuId","searchableMenuItemSelected","ungroupedOptions","hostMutationObserver","clearButtonFocused","noOptions","open","pressedCharacters","searchableSelectInputValue","disabled","disableAutoFiltering","emptyOptionListText","fullWidth","helperText","hideLabel","includeDescriptionsInSearch","includeGroupTitlesInSearch","loadingErrorLabel","loadingLabel","multiple","name","placeholder","readonly","required","searchable","searchMatchPosition","selectOnEnter","showClearButton","size","theme","validationStatus","validationText","loading","options","filteredOptions","uniqueOptions","debounce","currDebounce","initialValue","value","inputValueToFilter","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","type","addedNodes","removedNodes","attribute","el","getAttribute","includes","checkSlotInChildMutations","forceUpdate","handleRetry","ev","detail","keyPressed","_a","searchableSelectElement","focus","blurredBecauseButtonPressed","retryButtonClick","icRetryLoad","emit","hiddenInputValue","emitIcChange","Array","isArray","handleMultipleSelectChange","String","valueToEmit","icChange","emitIcInput","clearTimeout","debounceIcInput","window","setTimeout","icInput","setOptions","hasTimedOut","timeoutTimer","length","setOptionsValuesFromLabels","deduplicateOptions","label","isExternalFiltering","updateSearchableSelectResultAriaLive","setDefaultValue","uniqueValues","dedupedOptions","dedupedChildren","option","children","child","console","warn","push","modifiedParent","Object","assign","map","setUngroupedOptions","event","setTextColor","nativeSelectElement","selectedIndex","className","setMenuChange","getLabelFromValue","getMultipleOptionsString","selectedValues","selectedLabels","filter","join","getFilteredChildMenuOptions","getFilteredMenuOptions","newOption","getValueSortedByOptions","valueArray","valuesFromAllOptions","sort","a","b","indexOf","handleNativeSelectChange","icOptionSelect","handleCustomSelectChange","currValue","getValueFromLabel","_b","icOptionDeselect","ariaActiveDescendant","optionId","slice","valueIndex","splice","handleSelectAllChange","selectAllOptions","select","allEnabledOptions","allValues","newValue","unselectedValues","handleMenuChange","handleFocusIndicatorDisplay","handleMenuKeyPress","cancelBubble","handleCharacterKeyDown","key","focusIndicator","shadowRoot","querySelector","classList","add","remove","handleMouseDown","preventDefault","handleClick","menu","handleClickOpen","handleExpandIconMouseDown","handleClear","stopPropagation","clearInput","icClear","customSelectElement","characterKeyPressTimer","handleFilter","handleNativeSelectKeyDown","handleKeyDown","isArrowKey","handleKeyboardOpen","handleClearButtonFocus","handleClearButtonBlur","retryButton","relatedTarget","isGrouped","newFilteredOptions","menuOptionsFiltered","noChildOptionsWhenFiltered","triggerLoading","timeout","timedOut","find","handleSearchableSelectInput","target","debounceAriaLiveUpdate","searchableSelectResultsStatusEl","innerText","updateMultiSelectedCountAriaLive","multiSelectSelectedCountEl","selectedCount","getOptionsWithoutGroupTitlesCount","getDefaultValue","onFocus","icFocus","onBlur","tagName","isSearchableAndNoFocusedInternalElements","from","querySelectorAll","clearButton","icBlur","onTimeoutBlur","handleFormReset","setAttribute","watchDisabledHandler","removeDisabledFalse","loadingHandler","watchOptionsHandler","debounceChangedHandler","updateOnChangeDebounce","valueChangedHandler","openChangedHandler","icOpen","icClose","disconnectedCallback","removeFormResetListener","disconnect","componentWillLoad","valueInOptions","inheritAttributes","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","MutationObserver","observe","attributes","childList","componentDidRender","setFocus","debounceAria","render","renderHiddenInput","invalid","IcInformationStatus","Error","describedBy","getInputDescribedByText","hasValidationStatus","trim","showLeftIcon","optionsSelectedCount","valueLabelString","isClearable","h","Host","class","for","ref","anchorEl","slot","isMobileOrTablet","onChange","id","onKeyDown","form","selected","role","autocomplete","undefined","onInput","onClick","innerHTML","Clear","variant","onMouseDown","Expand","inputEl","inputLabel","onMenuStateChange","onMenuOptionSelect","onMenuOptionSelectAll","onMenuKeyPress","onUngroupedOptionsSet","onRetryButtonClicked","parentEl","activationType","closeOnSelect","ariaLiveMode","status","message"],"sources":["src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","src/components/ic-select/ic-select.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --input-width: Width of the input field\n * @prop --menu-width: Width of the dropdown menu\n * @prop --ic-z-index-menu: z-index of select menu\n */\n\n:host {\n display: block;\n position: relative;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xxs);\n --menu-max-height: 100px;\n --border-color: var(--ic-select-field-border);\n --border-color-hover: var(--ic-select-field-border-hover);\n --border-color-pressed: var(--ic-select-field-border-pressed);\n --border-color-disabled: var(--ic-select-field-border-disabled);\n --border-color-error: var(--ic-select-field-border-error);\n --border-color-error-hover: var(--ic-select-field-border-error-hover);\n --border-color-error-pressed: var(--ic-select-field-border-error-pressed);\n --border-color-success: var(--ic-select-field-border-success);\n --border-color-success-hover: var(--ic-select-field-border-success-hover);\n --border-color-success-pressed: var(--ic-select-field-border-success-pressed);\n --border-color-warning: var(--ic-select-field-border-warning);\n --border-color-warning-hover: var(--ic-select-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-select-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-select-field-labe);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle\n );\n --ic-input-validation-status-text-color: var(--ic-select-state-text);\n --ic-input-validation-error: var(--ic-select-state-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-select-state-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-select-state-icon-success);\n --menu-item-text-color: var(--ic-select-list-option-text);\n --menu-bg-color: var(--ic-select-list-option-background);\n --menu-border-color: var(--ic-select-dropdown-list-border);\n}\n\n:host(.ic-select-disabled) {\n --ic-input-label-text-color: var(--ic-select-field-label-disabled);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle-disabled\n );\n}\n\n:host(.ic-select-full-width) {\n width: 100%;\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-select-field-border-pressed);\n}\n\nic-input-validation .status-icon,\nic-input-validation .statustext {\n visibility: visible;\n}\n\nic-input-validation.menu-open .status-icon,\nic-input-validation.menu-open .statustext {\n visibility: hidden;\n transition: visibility 0s;\n}\n\nic-input-label {\n margin-bottom: var(--ic-space-xs) !important;\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n height: 100%;\n padding-left: 0.375rem;\n appearance: none;\n background-repeat: no-repeat;\n background-position: right 0.375rem center;\n background-image: var(--ic-select-mobile-dropdown-icon);\n caret-color: var(--ic-select-input-field-text-cursor);\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-select-list-option-text);\n}\n\nselect:disabled {\n color: var(--ic-select-content-text-disabled);\n background-image: var(--ic-select-mobile-dropdown-icon-disabled);\n}\n\nselect:focus {\n border: 0;\n outline: 0;\n}\n\nselect:not([disabled]) {\n cursor: pointer;\n}\n\n.select-container {\n width: 100%;\n display: flex;\n align-items: center;\n position: relative;\n}\n\n.select-input {\n width: 100%;\n height: 100%;\n padding: 0 0.375rem;\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: space-between;\n background: none;\n border: none;\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n}\n\n.select-input:focus {\n outline: none;\n}\n\n.select-input[disabled] {\n pointer-events: none;\n}\n\n:host(.ic-select-searchable) .select-input {\n cursor: auto;\n}\n\n.select-input.with-clear-button {\n padding-right: 0;\n}\n\n.value-text {\n max-width: calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));\n box-sizing: border-box;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin-bottom: 0 !important;\n}\n\n.value-text.with-clear-button {\n padding-right: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n.searchable-select-container {\n align-items: center;\n display: flex;\n width: 100%;\n position: relative;\n}\n\n.expand-icon {\n height: var(--ic-space-lg);\n padding-left: var(--ic-space-xxs);\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon > svg {\n display: inline-block;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-disabled) .expand-icon,\n:host(.ic-select-disabled) .expand-icon > svg > path {\n color: var(--ic-select-disabled-expand-icon-color);\n}\n\n:host(.ic-select-searchable) .expand-icon {\n padding-left: 0;\n height: 2.25rem;\n}\n\n:host(.ic-select-searchable) .expand-icon > svg {\n height: 2.25rem;\n padding: 0 calc(var(--ic-space-xxxs) + var(--ic-space-xxs)) 0\n var(--ic-space-xxs);\n}\n\n:host(.ic-select-searchable:not(.ic-select-disabled)) .expand-icon > svg {\n cursor: pointer;\n}\n\n.expand-icon-open {\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon-open,\n:host(.ic-select-searchable) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n.placeholder {\n color: var(--ic-select-content-placeholder-text);\n}\n\n:host(.ic-select-disabled) .value-text,\n:host(.ic-select-disabled) .select-input,\n:host(.ic-select-disabled) .placeholder,\n:host(.ic-select-disabled.ic-select-searchable) .select-input::placeholder {\n color: var(--ic-select-content-text-disabled);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n align-items: center;\n}\n\n.divider {\n width: var(--ic-space-1px);\n background-color: var(--ic-select-content-divider);\n margin: var(--ic-space-xxs) 0;\n border-radius: var(--ic-space-1px);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-small) .divider {\n height: var(--ic-space-md);\n}\n\n:host(.ic-select-large) .divider {\n height: var(--ic-space-xl);\n}\n\n.clear-button {\n color: var(--ic-select-clear-button);\n position: absolute;\n right: calc(var(--ic-space-xl) + var(--ic-space-xxs) - var(--ic-space-1px));\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n}\n\n.clear-button:focus,\n.clear-button:active {\n background-color: var(--ic-color-focus-inner);\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer);\n border-radius: 0.25rem;\n}\n\n.clear-button:focus,\n.clear-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button.searchable {\n position: static;\n}\n\n.searchable-select-results-status,\n.multi-select-selected-count {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: var(--ic-space-1px);\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: var(--ic-space-1px);\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-placeholder-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-text);\n}\n\n.readonly ::slotted([slot=\"icon\"]) {\n padding: 0.375rem;\n margin-bottom: 0.75rem;\n}\n\n@media (forced-colors: active) {\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n h,\n State,\n Watch,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport {\n getInputDescribedByText,\n getLabelFromValue,\n hasValidationStatus,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n isMobileOrTablet,\n getFilteredMenuOptions,\n getOptionsWithoutGroupTitlesCount,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcMenuOption,\n IcSearchMatchPositions,\n IcMultiValueEventDetail,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport { IcOptionSelectEventDetail } from \"../ic-menu/ic-menu.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"tabindex\", \"title\"];\n\n/**\n * @slot icon - Content will be placed to the left of the select text input.\n */\n@Component({\n tag: \"ic-select\",\n styleUrl: \"ic-select.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Select {\n private anchorEl?: HTMLElement;\n private blurredBecauseButtonPressed: boolean;\n private characterKeyPressTimer: number;\n private clearButton?: HTMLIcButtonElement;\n private customSelectElement?: HTMLButtonElement;\n private debounceAria: number;\n private hasSetDefaultValue = false;\n private hasTimedOut: boolean;\n private inheritedAttributes: { [k: string]: string } = {};\n private initialOptionsEmpty = false;\n private inputId = `ic-select-input-${inputIds++}`;\n private menu?: HTMLIcMenuElement;\n private menuId = `${this.inputId}-menu`;\n private nativeSelectElement?: HTMLSelectElement;\n private retryButtonClick: boolean;\n private searchableMenuItemSelected: boolean = false;\n private searchableSelectElement?: HTMLInputElement;\n private timeoutTimer: number;\n private ungroupedOptions: IcMenuOption[] = [];\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el!: HTMLIcSelectElement;\n\n @State() ariaActiveDescendant: string;\n @State() clearButtonFocused: boolean = false;\n @State() debounceIcInput: number;\n @State() hiddenInputValue: string | null;\n @State() noOptions: IcMenuOption[] | null = null;\n @State() open: boolean = false;\n @State() pressedCharacters: string = \"\";\n @State() searchableSelectInputValue: string | null = null;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the built in filtering will be disabled for a searchable variant. For example, if options will already be filtered from external source.\n */\n @Prop() disableAutoFiltering?: boolean = false;\n\n /**\n * The text displayed when there are no options in the option list.\n */\n @Prop() emptyOptionListText?: string = \"No results found\";\n\n /**\n * The <form> element to associate the select with.\n */\n @Prop() form?: string;\n\n /**\n * If `true`, the select will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * If `true`, descriptions of options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeDescriptionsInSearch?: boolean = false;\n\n /**\n * If `true`, group titles of grouped options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeGroupTitlesInSearch?: boolean = false;\n\n /**\n * The label for the select.\n */\n @Prop() label!: string;\n\n /**\n * The message displayed when external loading times out.\n */\n @Prop() loadingErrorLabel?: string = \"Loading Error\";\n\n /**\n * The message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel?: string = \"Loading...\";\n\n /**\n * If `true`, multiple options can be selected.\n */\n @Prop() multiple?: boolean = false;\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 * The placeholder value to be displayed.\n */\n @Prop() placeholder?: string = \"Select an option\";\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * If `true`, the select will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * If `true`, a searchable variant of the select will be displayed which can be typed in to filter options. This functionality is only available on the single-select variant of the select component.\n */\n @Prop() searchable?: boolean = false;\n\n /**\n * Whether the search string of the searchable select should match the start of or anywhere in the options. Only applies to built in filtering.\n */\n @Prop() searchMatchPosition?: IcSearchMatchPositions = \"anywhere\";\n\n /**\n * If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown on the single select.\n */\n @Prop() selectOnEnter?: boolean = false;\n\n /**\n * If `true`, a button which clears the select input when clicked will be displayed. The button will always appear on the searchable select.\n */\n @Prop() showClearButton?: boolean = false;\n\n /**\n * The size of the select.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * If using external filtering, set a timeout for when loading takes too long.\n */\n @Prop() timeout?: number;\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 * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * If `true`, the loading state will be triggered when fetching options asynchronously.\n */\n @Prop({ mutable: true }) loading?: boolean = false;\n\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n newValue ? this.triggerLoading() : this.setOptions();\n }\n\n /**\n * The possible selection options.\n */\n @Prop() options?: IcMenuOption[] = [];\n @State() filteredOptions: IcMenuOption[] = this.options!;\n @State() uniqueOptions: IcMenuOption[] = this.options!;\n\n @Watch(\"options\")\n watchOptionsHandler(): void {\n this.setOptions();\n }\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icInput` event after each keystroke.\n */\n @Prop() debounce?: number = 0;\n @State() currDebounce = this.debounce;\n\n @Watch(\"debounce\")\n debounceChangedHandler(newValue: number): void {\n this.updateOnChangeDebounce(newValue);\n }\n\n /**\n * The value of the select, reflected by the value of the currently selected option.\n * For the searchable variant, the value is also reflected by the user input.\n * For the multi-select variant, the value must be an array of option values.\n */\n @Prop({ mutable: true }) value?: string | string[] | null;\n @State() initialValue = this.value;\n @State() inputValueToFilter: string | null = this.value as string;\n @State() currValue?: string | string[] | null;\n\n @Watch(\"value\")\n valueChangedHandler(): void {\n if (this.value !== this.currValue) {\n if (this.value && this.multiple) {\n this.currValue = this.getMultipleOptionsString(this.value as string[])\n ? this.getValueSortedByOptions(this.value as string[])\n : null;\n this.updateMultiSelectedCountAriaLive();\n } else {\n this.currValue = this.getLabelFromValue(this.value as string)\n ? this.value\n : null;\n }\n }\n\n if (this.searchable && this.value) {\n // Only set if value not null - prevents whole input value being cleared when edited\n this.searchableSelectInputValue =\n this.getLabelFromValue(String(this.currValue)) || null;\n }\n }\n\n @Watch(\"open\")\n openChangedHandler(): void {\n this.open ? this.icOpen.emit() : this.icClose.emit();\n }\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() icBlur: EventEmitter<void>;\n\n /**\n * Emitted when the value changes.\n */\n @Event() icChange: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the clear or clear all button is clicked.\n */\n @Event() icClear: EventEmitter<void>;\n\n /**\n * Emitted when the select options menu is closed.\n */\n @Event() icClose: EventEmitter<void>;\n\n /**\n * Emitted when the select gains focus.\n */\n @Event() icFocus: EventEmitter<void>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the select options menu is opened.\n */\n @Event() icOpen: EventEmitter<void>;\n\n /**\n * Emitted when an option is selected.\n * Selecting an option will also trigger an `icChange/onIcChange` due to the value being updated.\n */\n @Event() icOptionSelect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when `multiple` is `true` and an option is deselected.\n */\n @Event() icOptionDeselect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when the 'retry loading' button is clicked for a searchable variant.\n */\n @Event() icRetryLoad: EventEmitter<IcMultiValueEventDetail>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n const valueInOptions = this.multiple\n ? this.getMultipleOptionsString(this.value as string[])\n : this.getLabelFromValue(this.value as string);\n this.currValue = valueInOptions ? this.value : null;\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.setOptionsValuesFromLabels();\n\n addFormResetListener(this.el, this.handleFormReset);\n\n if (!this.options!.length) {\n this.initialOptionsEmpty = true;\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n } else {\n this.setDefaultValue();\n this.uniqueOptions = this.deduplicateOptions(this.options!);\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Select\"\n );\n\n if (this.loading) {\n this.triggerLoading();\n }\n\n if (this.searchable) {\n this.hiddenInputValue = this.currValue as string;\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n }\n\n /**\n * Sets focus on the input box.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.customSelectElement) {\n this.customSelectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private handleRetry = (ev: CustomEvent<IcMultiValueEventDetail>) => {\n if (ev.detail.keyPressed) this.searchableSelectElement?.focus();\n this.blurredBecauseButtonPressed = true;\n this.retryButtonClick = true;\n this.hasSetDefaultValue = true;\n this.icRetryLoad.emit({\n value: this.searchable\n ? this.searchableSelectInputValue\n : this.hiddenInputValue,\n });\n };\n\n private updateOnChangeDebounce(newValue: number) {\n if (this.currDebounce !== newValue) {\n this.currDebounce = newValue;\n }\n }\n\n private emitIcChange = (value: string | string[] | null) => {\n // If \"Select all\" button clicked, replace value with new value (array of all option values)\n if (this.multiple && !Array.isArray(value) && value !== null) {\n this.handleMultipleSelectChange(String(value));\n } else {\n this.value = value;\n }\n\n const valueToEmit = this.multiple ? this.value : value;\n this.icChange.emit({ value: valueToEmit || null });\n };\n\n private emitIcInput = (value: string) => {\n clearTimeout(this.debounceIcInput);\n this.debounceIcInput = window.setTimeout(\n () => this.icInput.emit({ value }),\n this.currDebounce\n );\n };\n\n private setOptions = () => {\n if (!this.hasTimedOut && this.options !== this.noOptions) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n if (this.options!.length > 0) {\n this.setOptionsValuesFromLabels();\n this.uniqueOptions = this.deduplicateOptions(this.options!);\n this.filteredOptions = this.uniqueOptions;\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n }\n if (this.isExternalFiltering()) {\n // When searchable select\n this.noOptions = null;\n this.updateSearchableSelectResultAriaLive();\n this.setDefaultValue();\n } else {\n if (this.initialOptionsEmpty) {\n this.setDefaultValue();\n this.initialOptionsEmpty = false;\n }\n }\n } else {\n if (!this.searchable) {\n this.options = this.noOptions || [];\n }\n }\n };\n\n /**\n * Processes the provided array of IcMenuOptions, removing duplicates and reporting them with a console.warn\n * @param options array of IcMenuOptions\n * @returns a new options object, with all entries possessing a duplicate 'value' field removed\n */\n private deduplicateOptions = (options: IcMenuOption[]): IcMenuOption[] => {\n const uniqueValues: string[] = [];\n const dedupedOptions: IcMenuOption[] = [];\n let dedupedChildren: IcMenuOption[];\n\n options.forEach((option: IcMenuOption) => {\n if (option.children) {\n //If an option has children, we will loop through them\n dedupedChildren = [];\n option.children.forEach((child) => {\n if (uniqueValues.includes(child.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${child.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(child.value);\n dedupedChildren.push(child);\n }\n });\n // construct a modified option, inserting the deduplicated children alongside the original information\n const modifiedParent: IcMenuOption = {\n ...option,\n children: dedupedChildren,\n };\n dedupedOptions.push(modifiedParent);\n } else {\n // If an option does not have children, assess to see if it's value has been included already\n if (uniqueValues.includes(option.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${option.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(option.value);\n dedupedOptions.push(option);\n }\n }\n });\n return dedupedOptions;\n };\n\n /**\n * Loop through options array and for all options with no value, infer it from the label\n */\n private setOptionsValuesFromLabels = (): void => {\n if (this.options!.length > 0) {\n this.options!.map((option) => {\n if (!option.value) {\n option.value = option.label;\n }\n });\n }\n };\n\n private setUngroupedOptions = (event: CustomEvent): void => {\n this.ungroupedOptions = event.detail.options;\n };\n\n private setTextColor = (): void => {\n if (this.nativeSelectElement) {\n if (this.nativeSelectElement.selectedIndex === 0) {\n this.nativeSelectElement.className = \"placeholder\";\n } else {\n this.nativeSelectElement.className = \"select-option-selected\";\n }\n }\n };\n\n private setMenuChange = (open: boolean) => {\n if (this.open !== open) {\n this.open = open;\n }\n };\n\n private getLabelFromValue = (value: string): string | undefined => {\n return getLabelFromValue(value, this.uniqueOptions);\n };\n\n private getMultipleOptionsString = (selectedValues: string[]) => {\n const selectedLabels = selectedValues\n ?.map((value) => this.getLabelFromValue(value))\n .filter((label) => !!label);\n return selectedLabels?.join(\", \");\n };\n\n private getFilteredChildMenuOptions = (option: IcMenuOption) => {\n let children = option.children;\n\n if (option.children) {\n if (this.searchable) {\n children = getFilteredMenuOptions(\n option.children,\n !!this.includeDescriptionsInSearch,\n this.searchableSelectInputValue || \"\",\n this.searchMatchPosition\n );\n } else {\n children = getFilteredMenuOptions(\n option.children,\n false,\n this.pressedCharacters,\n \"start\"\n );\n }\n }\n\n const newOption = { ...option };\n newOption.children = children;\n return newOption;\n };\n\n // (For multi-select) get value array, i.e. selected option values, in order they appear in option list\n private getValueSortedByOptions = (value: string[]) => {\n const valueArray = value;\n const valuesFromAllOptions = this.ungroupedOptions.map(\n (option) => option.value\n );\n\n valueArray.sort(\n (a, b) =>\n valuesFromAllOptions.indexOf(a) - valuesFromAllOptions.indexOf(b)\n );\n\n return valueArray;\n };\n\n private handleNativeSelectChange = (): void => {\n if (this.nativeSelectElement) {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.emitIcChange(this.nativeSelectElement.value);\n }\n this.setTextColor();\n };\n\n // Handle option select for when a custom input box and menu is rendered\n // (rather than native <select> - rendered when viewed on a mobile / tablet screen)\n private handleCustomSelectChange = (event: CustomEvent): void => {\n const value = event.detail.value;\n\n if (event.detail.label === this.emptyOptionListText) {\n this.searchableSelectElement?.focus();\n return;\n }\n\n if (this.searchable) {\n this.value = value;\n this.searchableMenuItemSelected = true;\n\n // After editing the input, if selecting the same option as before, set the input value to label again\n if (this.value === this.currValue) {\n this.searchableSelectInputValue =\n this.getLabelFromValue(this.value as string) || null;\n }\n\n this.inputValueToFilter = null;\n this.hiddenInputValue =\n this.getValueFromLabel(this.searchableSelectInputValue) || null;\n }\n\n if (this.multiple && this.value?.includes(value)) {\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n }\n\n this.ariaActiveDescendant = event.detail.optionId;\n this.emitIcChange(value);\n };\n\n // Update selected options - adds / removes them, in order of option list\n // Create new array if value prop is undefined\n private handleMultipleSelectChange = (value: string) => {\n if (this.value) {\n let valueArray = (this.value as string[]).slice();\n\n if (this.value.includes(value)) {\n const valueIndex = valueArray.indexOf(value);\n valueArray.splice(valueIndex, 1);\n } else {\n valueArray.push(value);\n valueArray = this.getValueSortedByOptions(valueArray);\n }\n\n this.value = valueArray.length === 0 ? null : valueArray;\n } else {\n const valueArray = [];\n valueArray.push(value);\n this.value = valueArray;\n }\n };\n\n private handleSelectAllChange = (event: CustomEvent) => {\n const selectAllOptions = event.detail.select;\n const allEnabledOptions = this.ungroupedOptions.filter(\n (option) => !option.disabled\n );\n const allValues = allEnabledOptions.map((option) => option.value);\n let newValue: string[] | null;\n\n if (selectAllOptions) {\n let unselectedValues;\n\n // Only emit icOptionSelect for all values that are newly selected\n if (this.value) {\n unselectedValues = allValues.filter(\n (value) => this.value && !(this.value as string[]).includes(value)\n );\n } else {\n unselectedValues = allValues;\n }\n\n unselectedValues.forEach((value) => this.icOptionSelect.emit({ value }));\n newValue = allValues;\n } else {\n // Only emit icOptionDeselect for values that were selected\n (this.value as string[]).forEach((value) =>\n this.icOptionDeselect.emit({ value })\n );\n newValue = null;\n }\n\n this.emitIcChange(newValue);\n };\n\n private handleMenuChange = (event: CustomEvent): void => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n\n this.searchable && this.handleFocusIndicatorDisplay();\n };\n\n // clears the debounce delay when navigating the menu with arrow keys etc\n // to prevent delay in change event, which should only occur when typing in input\n private handleMenuKeyPress = (ev: CustomEvent): void => {\n ev.cancelBubble = true;\n if (!this.multiple) {\n this.handleCharacterKeyDown(ev.detail.key);\n }\n };\n\n private handleFocusIndicatorDisplay = () => {\n const focusIndicator =\n this.el.shadowRoot?.querySelector(\".focus-indicator\");\n\n if (focusIndicator) {\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n } else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n }\n };\n\n private handleMouseDown = (event: Event): void => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n\n private isExternalFiltering = (): boolean =>\n this.searchable! && !!this.disableAutoFiltering;\n\n private handleClick = (event: MouseEvent): void => {\n if (!this.open && this.menu) {\n if (this.isExternalFiltering()) {\n this.menu.options = this.filteredOptions;\n } else if (\n !this.hasTimedOut &&\n !this.loading &&\n !this.noOptions?.length &&\n (!this.searchable || this.searchableMenuItemSelected)\n ) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n\n if (event.detail !== 0) {\n this.menu?.handleClickOpen();\n }\n };\n\n private handleExpandIconMouseDown = (event: MouseEvent) => {\n if (!this.disabled) {\n event.preventDefault();\n this.searchableSelectElement?.focus();\n this.handleClick(event);\n }\n };\n\n private handleClear = (event: Event): void => {\n event.stopPropagation();\n this.hasTimedOut = false;\n clearTimeout(this.timeoutTimer);\n this.clearInput();\n this.emitIcChange(null);\n this.icClear.emit();\n\n if (this.searchable) {\n this.hiddenInputValue = null;\n this.searchableSelectElement?.focus();\n } else {\n this.customSelectElement?.focus();\n }\n };\n\n private handleCharacterKeyDown = (key: string) => {\n // Only close menu when space is pressed if not being used alongside character keys to quickly select options\n if (this.open && key === \" \" && this.pressedCharacters.length === 0) {\n this.setMenuChange(false);\n }\n\n if (key.length === 1 && !this.searchable) {\n window.clearTimeout(this.characterKeyPressTimer);\n this.characterKeyPressTimer = window.setTimeout(\n () => (this.pressedCharacters = \"\"),\n 1000\n );\n\n if (!(key === \" \" && !this.pressedCharacters)) {\n this.pressedCharacters += key;\n this.handleFilter();\n\n if (!this.noOptions) {\n this.emitIcChange(this.filteredOptions[0].value);\n }\n }\n } else {\n this.pressedCharacters = \"\";\n }\n };\n\n private handleNativeSelectKeyDown = (event: KeyboardEvent) => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n this.handleCharacterKeyDown(event.key);\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n const isArrowKey = event.key === \"ArrowDown\" || event.key === \"ArrowUp\";\n\n if (this.menu && !this.open) {\n if (this.isExternalFiltering() && (event.key === \"Enter\" || isArrowKey)) {\n this.menu.options = this.filteredOptions;\n } else {\n if (!this.hasTimedOut) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n }\n\n if (this.open && event.key === \"Enter\") {\n this.setMenuChange(false);\n } else {\n if (!(isArrowKey && this.noOptions !== null)) {\n if (!(event.key === \" \" && this.pressedCharacters.length > 0)) {\n // Keyboard events get passed onto ic-menu\n this.menu?.handleKeyboardOpen(event);\n }\n if (!this.multiple) {\n this.handleCharacterKeyDown(event.key);\n }\n }\n }\n };\n\n private handleClearButtonFocus = (): void => {\n this.clearButtonFocused = true;\n };\n\n private handleClearButtonBlur = (ev: FocusEvent): void => {\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n if (\n !(\n this.searchableSelectElement &&\n ev.relatedTarget === this.searchableSelectElement\n ) &&\n !(retryButton && ev.relatedTarget === retryButton)\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n }\n this.clearButtonFocused = false;\n };\n\n private handleFilter = (): void => {\n const options = this.deduplicateOptions(\n this.searchable ? [...this.uniqueOptions] : this.ungroupedOptions\n );\n\n let isGrouped = false;\n let newFilteredOptions: IcMenuOption[] = [];\n\n options.map((option) => {\n if (option.children) isGrouped = true;\n });\n\n let menuOptionsFiltered: IcMenuOption[];\n\n if (this.searchable) {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n !!this.includeDescriptionsInSearch,\n this.inputValueToFilter || \"\",\n this.searchMatchPosition\n );\n this.searchableMenuItemSelected = false;\n } else {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n false,\n this.pressedCharacters,\n \"start\"\n );\n }\n\n if (\n !isGrouped &&\n menuOptionsFiltered[0]?.label !== this.emptyOptionListText\n ) {\n newFilteredOptions = menuOptionsFiltered;\n } else if (isGrouped) {\n options.map((option) => {\n if (this.includeGroupTitlesInSearch) {\n if (menuOptionsFiltered.indexOf(option) !== -1) {\n newFilteredOptions.push(option);\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n });\n }\n\n let noChildOptionsWhenFiltered = false;\n\n if (isGrouped) {\n noChildOptionsWhenFiltered = true;\n newFilteredOptions.map((option) => {\n if (option.children && option.children.length > 0) {\n noChildOptionsWhenFiltered = false;\n }\n });\n }\n\n if (newFilteredOptions.length > 0 && !noChildOptionsWhenFiltered) {\n this.noOptions = null;\n this.filteredOptions = newFilteredOptions;\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.filteredOptions = this.noOptions;\n }\n };\n\n /**\n * Put the select component into loading state.\n * Replace options with the loading message. If timeout is enabled, set the timeout and once passed, replace options with the loading error message\n */\n private triggerLoading = () => {\n this.hasTimedOut = false;\n this.noOptions = [{ label: this.loadingLabel, value: \"\", loading: true }];\n if (this.filteredOptions !== this.noOptions && this.searchable) {\n this.filteredOptions = this.noOptions;\n } else if (this.uniqueOptions !== this.noOptions && !this.searchable) {\n this.uniqueOptions = this.noOptions;\n }\n if (this.timeout) {\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n this.noOptions = [\n { label: this.loadingErrorLabel, value: \"\", timedOut: true },\n ];\n this.filteredOptions = this.noOptions;\n if (!this.searchable) this.uniqueOptions = this.noOptions;\n }, this.timeout);\n }\n };\n\n private getValueFromLabel = (label: string | null): string | undefined => {\n return (\n label &&\n this.uniqueOptions.find((option) => option.label === label)?.value\n );\n };\n\n private handleSearchableSelectInput = (event: Event): void => {\n this.searchableSelectInputValue = (event.target as HTMLInputElement).value;\n this.emitIcInput(this.searchableSelectInputValue);\n\n // De-select previous selection when input is edited\n // Only emit icChange once when editing input\n if (this.value != null) {\n this.emitIcChange(null);\n }\n\n this.hiddenInputValue = null;\n this.inputValueToFilter = this.searchableSelectInputValue;\n this.setMenuChange(true);\n\n if (!this.disableAutoFiltering) {\n this.handleFilter();\n this.debounceAriaLiveUpdate();\n }\n };\n\n private updateSearchableSelectResultAriaLive = (): void => {\n const searchableSelectResultsStatusEl = this.el.shadowRoot?.querySelector(\n \".searchable-select-results-status\"\n ) as HTMLDivElement;\n\n if (searchableSelectResultsStatusEl) {\n if (this.noOptions !== null) {\n searchableSelectResultsStatusEl.innerText = this.emptyOptionListText!;\n } else {\n searchableSelectResultsStatusEl.innerText = \"\";\n }\n }\n };\n\n private debounceAriaLiveUpdate() {\n clearTimeout(this.debounceAria);\n\n window.setTimeout(() => {\n this.updateSearchableSelectResultAriaLive();\n }, 800);\n }\n\n private updateMultiSelectedCountAriaLive = (): void => {\n const multiSelectSelectedCountEl = this.el.shadowRoot?.querySelector(\n \".multi-select-selected-count\"\n ) as HTMLDivElement;\n\n const selectedCount = `${\n this.currValue?.length\n } of ${getOptionsWithoutGroupTitlesCount(this.options!)} selected`;\n\n if (\n multiSelectSelectedCountEl &&\n multiSelectSelectedCountEl.innerText !== selectedCount\n ) {\n multiSelectSelectedCountEl.innerText = selectedCount;\n }\n };\n\n private getDefaultValue = (value: string): string | null =>\n this.getLabelFromValue(value) || null;\n\n private setDefaultValue = (): void => {\n if (!this.hasSetDefaultValue && this.currValue) {\n this.searchableSelectInputValue = this.searchable\n ? this.getDefaultValue(this.currValue as string)\n : null;\n\n this.initialValue = this.currValue;\n this.hasSetDefaultValue = true;\n }\n };\n\n private onFocus = (): void => {\n this.icFocus.emit();\n };\n\n private onBlur = ({ relatedTarget }: FocusEvent): void => {\n const target = relatedTarget as HTMLElement;\n if (\n target !== null &&\n ((target.tagName === \"UL\" && target.className.includes(\"menu\")) ||\n (target.tagName === \"LI\" && target.className.includes(\"option\")))\n ) {\n return;\n }\n\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n const isSearchableAndNoFocusedInternalElements =\n this.searchable &&\n !!this.menu &&\n target !== this.menu &&\n !Array.from(this.menu.querySelectorAll(\"[role='option']\")).includes(\n target\n ) &&\n !(this.clearButton && target === this.clearButton) &&\n !(retryButton && target === retryButton);\n\n if (isSearchableAndNoFocusedInternalElements) {\n if (!this.retryButtonClick) {\n this.setMenuChange(false);\n // Clear input field on blur when searchable if no option is selected\n if (!this.value) {\n this.clearInput();\n }\n }\n this.handleFocusIndicatorDisplay();\n }\n\n this.retryButtonClick = false;\n this.icBlur.emit();\n };\n\n private onTimeoutBlur = (ev: CustomEvent) => {\n if (\n (ev.detail.ev as FocusEvent).relatedTarget !==\n this.searchableSelectElement &&\n !this.blurredBecauseButtonPressed\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n this.icBlur.emit();\n }\n this.blurredBecauseButtonPressed = false;\n };\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n if (this.searchable) {\n this.searchableSelectInputValue = this.getDefaultValue(\n this.value as string\n );\n this.hiddenInputValue = this.value as string;\n }\n };\n\n private clearInput = (): void => {\n this.noOptions = null;\n\n if (this.searchable) {\n this.searchableSelectElement?.setAttribute(\"value\", \"\");\n this.searchableSelectInputValue = null;\n this.filteredOptions = this.uniqueOptions;\n }\n };\n\n render() {\n const {\n size,\n disabled,\n fullWidth,\n helperText,\n hideLabel,\n label,\n menuId,\n multiple,\n name,\n options,\n placeholder,\n readonly,\n required,\n searchable,\n showClearButton,\n validationStatus,\n validationText,\n currValue,\n theme,\n } = this;\n\n // HTML inputs only accept 'string' for their value\n // Does not cause errors when it is a multi-select - sets value correctly, to a comma-separated string\n renderHiddenInput(\n this.el,\n this.searchable ? this.hiddenInputValue : (currValue as string),\n name || this.inputId,\n disabled\n );\n\n const invalid = `${validationStatus === IcInformationStatus.Error}`;\n\n const describedBy = getInputDescribedByText(\n this.inputId,\n helperText !== \"\",\n hasValidationStatus(this.validationStatus, !!this.disabled)\n ).trim();\n\n let showLeftIcon = !!this.el.querySelector(`[slot=\"icon\"]`);\n if (showLeftIcon && (disabled || (readonly && !this.value))) {\n showLeftIcon = false;\n }\n\n const optionsSelectedCount = `${\n currValue?.length\n } of ${getOptionsWithoutGroupTitlesCount(this.options!)} selected`;\n\n const valueLabelString = multiple\n ? this.getMultipleOptionsString(currValue as string[])\n : this.getLabelFromValue(currValue as string);\n\n const isClearable =\n !disabled &&\n (searchable\n ? this.searchableSelectInputValue\n : currValue && !this.loading && showClearButton);\n\n return (\n <Host\n class={{\n \"ic-select-disabled\": !!disabled,\n \"ic-select-searchable\": !!searchable,\n [`ic-select-${size}`]: size !== \"medium\",\n \"ic-select-full-width\": !!fullWidth,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onBlur={this.onBlur}\n >\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={this.inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n ></ic-input-label>\n )}\n <ic-input-component-container\n ref={(el) => (this.anchorEl = el)}\n class={{ \"menu-open\": this.open }}\n size={size}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {showLeftIcon && (\n <span\n slot=\"left-icon\"\n class={{\n [\"readonly\"]: !!readonly,\n [\"has-value\"]: !!this.value,\n }}\n >\n <slot name=\"icon\" />\n </span>\n )}\n {readonly ? (\n <ic-typography>\n <p>{valueLabelString}</p>\n </ic-typography>\n ) : isMobileOrTablet() && !multiple ? (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={this.inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onKeyDown={this.handleNativeSelectKeyDown}\n form={this.form}\n {...this.inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options!.map((option) => {\n if (option.children) {\n return (\n <optgroup label={option.label}>\n {option.children.map((option) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === currValue}\n >\n {option.label}\n </option>\n ))}\n </optgroup>\n );\n } else {\n return (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === currValue}\n >\n {option.label}\n </option>\n );\n }\n })}\n </select>\n ) : searchable ? (\n <div class=\"searchable-select-container\">\n <input\n class={{\n \"select-input\": true,\n \"with-clear-button\": !!this.searchableSelectInputValue,\n }}\n role=\"combobox\"\n autocomplete=\"off\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={this.ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={`${this.open}`}\n aria-invalid={invalid}\n aria-required={`${required}`}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={this.inputId}\n value={this.searchableSelectInputValue || undefined}\n placeholder={placeholder}\n disabled={disabled}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n form={this.form}\n ></input>\n {isClearable && (\n <div class=\"clear-button-container\">\n <ic-button\n id=\"clear-button\"\n ref={(el) => (this.clearButton = el)}\n aria-label={\n this.searchableSelectInputValue &&\n (currValue === null || this.loading)\n ? \"Clear input\"\n : \"Clear selection\"\n }\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n onMouseDown={this.handleExpandIconMouseDown}\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"searchable-select-results-status\"\n ></div>\n </div>\n ) : (\n <div class=\"select-container\">\n <button\n class=\"select-input\"\n ref={(el) => (this.customSelectElement = el)}\n id={this.inputId}\n aria-label={`${label}, ${\n (multiple && currValue\n ? `${optionsSelectedCount}, ${valueLabelString}`\n : valueLabelString) || placeholder\n }${required ? \", required\" : \"\"}`}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-haspopup=\"listbox\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-owns={menuId}\n aria-controls={menuId}\n disabled={disabled}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.handleClick}\n onMouseDown={this.handleMouseDown}\n onKeyDown={this.handleKeyDown}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n \"with-clear-button\": !!isClearable,\n placeholder:\n !this.loading && multiple\n ? !this.value || this.value.length < 1\n : !this.getLabelFromValue(currValue as string),\n }}\n >\n {valueLabelString || placeholder}\n </ic-typography>\n <div class=\"select-input-end\">\n {isClearable && <div class=\"divider\"></div>}\n <span\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {isClearable && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear selection\"\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n )}\n </div>\n )}\n </ic-input-component-container>\n {(!isMobileOrTablet() || multiple) && (\n <ic-menu\n class={{\n \"no-results\":\n this.loading ||\n this.hasTimedOut ||\n (this.noOptions !== null &&\n this.noOptions[0] &&\n this.noOptions[0].label === this.emptyOptionListText),\n }}\n ref={(el) => (this.menu = el)}\n inputEl={\n (searchable\n ? this.searchableSelectElement\n : this.customSelectElement)!\n }\n inputLabel={label}\n anchorEl={this.anchorEl!}\n size={size}\n menuId={menuId}\n open={this.open}\n options={searchable ? this.filteredOptions : this.uniqueOptions}\n value={multiple ? (currValue as string[]) : (currValue as string)}\n fullWidth={fullWidth}\n selectOnEnter={this.selectOnEnter}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionSelect={this.handleCustomSelectChange}\n onMenuOptionSelectAll={this.handleSelectAllChange}\n onMenuKeyPress={this.handleMenuKeyPress}\n onUngroupedOptionsSet={this.setUngroupedOptions}\n onRetryButtonClicked={this.handleRetry}\n parentEl={this.el}\n onTimeoutBlur={this.onTimeoutBlur}\n activationType={\n this.searchable || multiple || this.selectOnEnter\n ? \"manual\"\n : \"automatic\"\n }\n closeOnSelect={!multiple}\n ></ic-menu>\n )}\n {this.multiple && (\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"multi-select-selected-count\"\n ></div>\n )}\n {hasValidationStatus(this.validationStatus, !!this.disabled) && (\n <ic-input-validation\n class={{ \"menu-open\": this.open }}\n ariaLiveMode=\"polite\"\n status={validationStatus}\n message={validationText || \"\"}\n for={this.inputId}\n ></ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as t,h as e,H as a,g as i}from"./p-8e4e97b4.js";import{i as s,b as c,a as o}from"./p-281ce313.js";const d=':host{gap:var(--ic-space-xs);padding:var(--ic-space-xs)}:host,.action-area{display:flex;flex-direction:column}.action-area{gap:var(--ic-space-md)}:host ::slotted(svg),:host ::slotted(img){border-radius:var(--ic-space-xxs)}:host(.ic-empty-state-right),:host(.ic-empty-state-right) .action-area{align-items:flex-end;text-align:right}:host(.ic-empty-state-center),:host(.ic-empty-state-center) .action-area{align-items:center;text-align:center}:host(.image-medium) ::slotted(svg),:host(.image-medium) ::slotted(img){height:calc(3 * var(--ic-space-lg)) !important;width:calc(3 * var(--ic-space-lg)) !important}:host(.image-small) ::slotted(svg),:host(.image-small) ::slotted(img){height:var(--ic-space-xxl) !important;width:var(--ic-space-xxl) !important}:host(.image-large) ::slotted(svg),:host(.image-large) ::slotted(img){height:calc(4 * var(--ic-space-xl)) !important;width:calc(4 * var(--ic-space-xl)) !important}::slotted([slot="heading"]),.empty-state-heading{--ic-typography-color:var(--ic-empty-state-title)}::slotted([slot="subheading"]),.empty-state-subheading{--ic-typography-color:var(--ic-empty-state-subtitle)}::slotted([slot="body"]),.empty-state-body{--ic-typography-color:var(--ic-empty-state-body)}';const r=d;const l=class{constructor(e){t(this,e);this.hostMutationObserver=null;this.aligned="left";this.imageSize="medium";this.theme="inherit"}disconnectedCallback(){var t;(t=this.hostMutationObserver)===null||t===void 0?void 0:t.disconnect()}componentDidLoad(){!s(this.el,"heading")&&c([{prop:this.heading,propName:"heading"}],"Empty State");this.hostMutationObserver=new MutationObserver((t=>o(t,["image","actions"],this)));this.hostMutationObserver.observe(this.el,{childList:true})}render(){const{aligned:t,body:i,maxLines:c,heading:o,imageSize:d,subheading:r,theme:l}=this;return e(a,{key:"4bb35d1c3476b88cc58e952b1b8785e4425d5339",class:{[`ic-empty-state-${t}`]:true,[`image-${d}`]:s(this.el,"image"),[`ic-theme-${l}`]:l!=="inherit"}},s(this.el,"image")&&e("slot",{key:"9e87ed9f746d37f57505a75c62b10279b31ef54e",name:"image"}),e("div",{key:"4f94dc11d843660d3fecd976fa71f9c57644c89b"},e("slot",{key:"be23c55a8dc832904fbae342890d2a3d2d74ae85",name:"heading"},e("ic-typography",{key:"52bf3dca695fecff3e5d650bd81db23d09665258",variant:"h4",class:"empty-state-heading"},o)),e("slot",{key:"7ed10d78475ac8b9c3f5a084a1294ad1be180f15",name:"subheading"},e("ic-typography",{key:"5772d056578a64a951178c3c3026b36d4b316496",variant:"subtitle-small",class:"empty-state-subheading"},r)),e("slot",{key:"14a8815b51a06521642921f09fa8346483522e84",name:"body"},e("ic-typography",{key:"bca780cc2275e81d4e25bae45f5065f6fab3bcd5",maxLines:c,class:"empty-state-body"},i))),s(this.el,"actions")&&e("div",{key:"d6c0f61a358c1d0c86c4da922ed0504ffdc8228f",class:"action-area"},e("slot",{key:"ac150a34e883376bfee43a6edbeb8992c3bc3f96",name:"actions"})))}get el(){return i(this)}};l.style=r;export{l as ic_empty_state};
2
- //# sourceMappingURL=p-70700c7a.entry.js.map
1
+ import{r as t,h as e,H as a,g as i}from"./p-8e4e97b4.js";import{i as s,b as c,a as o}from"./p-8242c24f.js";const d=':host{gap:var(--ic-space-xs);padding:var(--ic-space-xs)}:host,.action-area{display:flex;flex-direction:column}.action-area{gap:var(--ic-space-md)}:host ::slotted(svg),:host ::slotted(img){border-radius:var(--ic-space-xxs)}:host(.ic-empty-state-right),:host(.ic-empty-state-right) .action-area{align-items:flex-end;text-align:right}:host(.ic-empty-state-center),:host(.ic-empty-state-center) .action-area{align-items:center;text-align:center}:host(.image-medium) ::slotted(svg),:host(.image-medium) ::slotted(img){height:calc(3 * var(--ic-space-lg)) !important;width:calc(3 * var(--ic-space-lg)) !important}:host(.image-small) ::slotted(svg),:host(.image-small) ::slotted(img){height:var(--ic-space-xxl) !important;width:var(--ic-space-xxl) !important}:host(.image-large) ::slotted(svg),:host(.image-large) ::slotted(img){height:calc(4 * var(--ic-space-xl)) !important;width:calc(4 * var(--ic-space-xl)) !important}::slotted([slot="heading"]),.empty-state-heading{--ic-typography-color:var(--ic-empty-state-title)}::slotted([slot="subheading"]),.empty-state-subheading{--ic-typography-color:var(--ic-empty-state-subtitle)}::slotted([slot="body"]),.empty-state-body{--ic-typography-color:var(--ic-empty-state-body)}';const r=d;const l=class{constructor(e){t(this,e);this.hostMutationObserver=null;this.aligned="left";this.imageSize="medium";this.theme="inherit"}disconnectedCallback(){var t;(t=this.hostMutationObserver)===null||t===void 0?void 0:t.disconnect()}componentDidLoad(){!s(this.el,"heading")&&c([{prop:this.heading,propName:"heading"}],"Empty State");this.hostMutationObserver=new MutationObserver((t=>o(t,["image","actions"],this)));this.hostMutationObserver.observe(this.el,{childList:true})}render(){const{aligned:t,body:i,maxLines:c,heading:o,imageSize:d,subheading:r,theme:l}=this;return e(a,{key:"16659f35d2b14d9a5e32fe6c61619fbafdf58f53",class:{[`ic-empty-state-${t}`]:true,[`image-${d}`]:s(this.el,"image"),[`ic-theme-${l}`]:l!=="inherit"}},s(this.el,"image")&&e("slot",{key:"ccc8a2daf0041d9dd5e611d3b60c96820271745b",name:"image"}),e("div",{key:"ab68dff198b63394d890399ec53b9befbb70f222"},e("slot",{key:"fe99ebbfe6b9c899d4b1fb5737df268e0bc38bb4",name:"heading"},e("ic-typography",{key:"eea6eb657e09159b27935e16864961b95387a3d6",variant:"h4",class:"empty-state-heading"},o)),e("slot",{key:"ca04ac75d72fc5864ed7821bf9d16c8999eac3aa",name:"subheading"},e("ic-typography",{key:"257a4f73c4fb3577e4c1653607a492b4f4d18470",variant:"subtitle-small",class:"empty-state-subheading"},r)),e("slot",{key:"f0efda6128d1b5a5f2b280faf23940b0832e3121",name:"body"},e("ic-typography",{key:"128849e7a458b1ff7b51079eeb9f6967df88cef1",maxLines:c,class:"empty-state-body"},i))),s(this.el,"actions")&&e("div",{key:"22cf30fd1f3636fb3344689c4435b59d4148bb5f",class:"action-area"},e("slot",{key:"c4e187603beb9b2291c9e038202ff651d4decfff",name:"actions"})))}get el(){return i(this)}};l.style=r;export{l as ic_empty_state};
2
+ //# sourceMappingURL=p-42a7d0b6.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as t,c as e,h as i,H as o,g as r}from"./p-8e4e97b4.js";import{d as s,r as n,b as a,i as c}from"./p-8242c24f.js";import{C as u}from"./p-c2e091d7.js";import{C as l}from"./p-3b185c32.js";const p='/*! 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 ::part(button){color:var(--ic-popover-menu-item-check);--ic-typography-color:var(--ic-popover-menu-item-check);padding:calc(var(--ic-space-xxxs) / 2);display:flex;align-items:flex-start;gap:var(--ic-space-xs);border-radius:0;min-height:2.5rem;height:auto}.focus-border{display:flex;align-items:flex-start;gap:var(--ic-space-xs);border-radius:var(--ic-border-radius);margin:calc(var(--ic-space-xxxs) / 2);padding:var(--ic-space-xxs);border:var(--ic-space-xxxs) dashed transparent;--icon-height:auto}:host(.ic-menu-item-disabled) ::part(button){color:var(--ic-popover-menu-item-check-disabled) !important;--ic-typography-color:var(--ic-popover-menu-item-check-disabled) !important;pointer-events:none}:host(.ic-menu-item-disabled) .menu-item-label,:host(.ic-menu-item-disabled) .shortcut,:host(.ic-menu-item-disabled) .menu-item-description{--ic-typography-color:var(--ic-popover-menu-item-label-disabled) !important}:host([variant="destructive"]) ::part(button){color:var(--ic-popover-menu-destructive-item-icon);--ic-typography-color:var(--ic-popover-menu-destructive-item-label)}:host ::part(button):hover{background-color:var(--ic-popover-background-hover)}:host ::part(button):focus-visible,:host ::part(button):focus{color:var(--ic-popover-menu-item-icon-focused);--ic-typography-color:purple;background-color:var(--ic-popover-background-focus);box-shadow:none}:host(.ic-menu-item-disabled) ::part(button):focus-visible,:host(.ic-menu-item-disabled) ::part(button):focus{color:var(--ic-popover-menu-item-icon-disabled) !important;--ic-typography-color:orange !important}:host([variant="destructive"]) ::part(button):focus-visible,:host([variant="destructive"]) ::part(button):focus{background-color:var(--ic-popover-destructive-background-focus)}ic-button:focus-within .menu-item-label,ic-button:focus-within .shortcut,ic-button:focus-within .menu-item-description{--ic-typography-color:var(--ic-popover-menu-item-label-focused)}:host(.ic-menu-item-disabled) ic-button:focus-within .focus-border{border-color:var(--ic-popover-menu-border)}:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-label,:host(.ic-menu-item-disabled) ic-button:focus-within .shortcut,:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-description{--ic-typography-color:var(--ic-popover-menu-item-label-disabled) !important}:host ::part(button):active{background-color:var(--ic-popover-background-pressed);color:var(--ic-popover-menu-item-label) !important;--ic-typography-color:var(--ic-popover-menu-item-label) !important}:host([variant="destructive"]) ::part(button):active{background-color:var(--ic-popover-background-pressed);color:var(--ic-popover-menu-destructive-item-label) !important;--ic-typography-color:var(\n --ic-popover-menu-destructive-item-label\n ) !important}.menu-item-info{display:flex;flex-direction:column;flex:1;align-items:baseline;white-space:pre-line;text-align:left}.menu-labels{display:flex;align-items:baseline;gap:var(--ic-space-xs)}.menu-item-description{--ic-typography-color:var(--ic-popover-menu-item-description)}.shortcut{--ic-typography-color:var(--ic-popover-menu-item-shortcut);display:flex;flex:min-content}:host([variant="destructive"]) .menu-item-label{text-transform:uppercase;font-weight:600;letter-spacing:0.025em}ic-button:active .menu-item-label{--ic-typography-color:var(--ic-popover-menu-item-label)}ic-button:active .menu-item-description{--ic-typography-color:var(--ic-popover-menu-item-description)}ic-button:active .shortcut{--ic-typography-color:var(--ic-popover-menu-item-shortcut)}:host([variant="destructive"]) ic-button:active .menu-item-label{--ic-typography-color:var(\n --ic-popover-menu-destructive-item-label\n ) !important}.icon,.check-icon,.submenu-icon,.icon ::slotted(svg),.check-icon svg,.submenu-icon svg{width:var(--ic-space-lg);height:var(--ic-space-lg)}.check-icon.hide{visibility:hidden}@media (forced-colors: active){:host ::part(button){border:canvas}:host ::part(button):focus-visible{outline:var(--ic-space-xxxs) solid transparent}.focus-border{border-color:canvas}:host(.ic-menu-item-disabled) ic-button:focus-within .focus-border{border-color:GrayText}:host(.ic-menu-item-disabled) .menu-item-info,:host(.ic-menu-item-disabled) .menu-item-label,:host(.ic-menu-item-disabled) .shortcut,:host(.ic-menu-item-disabled) .menu-item-description,:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-info,:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-label,:host(.ic-menu-item-disabled) ic-button:focus-within .shortcut,:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-description{--ic-typography-color:GrayText !important}:host(.ic-menu-item-disabled) ::part(button):focus-visible,:host(.ic-menu-item-disabled) ::part(button):focus{outline-color:GrayText !important}}';const m=p;const d=class{constructor(i){t(this,i);this.childBlur=e(this,"childBlur",7);this.handleMenuItemClick=e(this,"handleMenuItemClick",7);this.icToggleChecked=e(this,"icToggleChecked",7);this.triggerPopoverMenuInstance=e(this,"triggerPopoverMenuInstance",7);this.checked=false;this.disabled=false;this.variant="default";this.handleClick=t=>{if(s(this.submenuTriggerFor)){this.triggerPopoverMenuInstance.emit()}else if(this.variant==="toggle"){t.preventDefault();this.checked=!this.checked;this.icToggleChecked.emit({checked:this.checked})}this.handleMenuItemClick.emit(this.el)};this.getMenuItemAriaLabel=()=>{let t=this.label;if(s(this.description)){t=`${t}, ${this.description}`}if(s(this.keyboardShortcutLabel)){t=`${t}, ${this.keyboardShortcutLabel}`}if(this.variant==="destructive"){t=`${t}, destructive`}if(s(this.submenuTriggerFor)){t=`${t}, triggers submenu`}if(this.el.classList.contains("ic-popover-submenu-back-button")){t="Go back to parent menu"}const e=this.el.parentElement;if(e&&e.tagName==="IC-MENU-GROUP"&&e.label){return`${t}, ${e.label} menu group`}else{return t}}}watchDisabledHandler(){n(this.disabled,this.el)}componentWillLoad(){if(s(this.submenuTriggerFor)&&this.variant!=="default"){this.variant="default"}n(this.disabled,this.el)}componentDidLoad(){a([{prop:this.label,propName:"label"}],"Menu Item")}handleHostClick(t){if(this.disabled){t.stopImmediatePropagation()}}render(){const t=()=>i("div",{class:"menu-item-info"},i("div",{class:"menu-labels"},i("ic-typography",{class:"menu-item-label"},this.label),this.keyboardShortcutLabel&&i("ic-typography",{variant:"caption",class:"shortcut"},this.keyboardShortcutLabel)),this.description&&i("ic-typography",{class:"menu-item-description",variant:"caption"},this.description));return i(o,{class:{["ic-menu-item-disabled"]:!!this.disabled}},i("ic-button",{fullWidth:true,variant:"tertiary",onClick:this.handleClick,href:s(this.href),hreflang:s(this.hreflang),target:s(this.target),rel:s(this.rel),referrerpolicy:this.referrerpolicy,role:this.variant==="toggle"?"menuitemcheckbox":"menuitem","aria-disabled":`${this.disabled}`,"aria-checked":this.variant==="toggle"?this.checked?"true":"false":undefined,"aria-label":this.getMenuItemAriaLabel(),"aria-haspopup":s(this.submenuTriggerFor)||this.el.classList.contains("ic-popover-submenu-back-button")?"menu":false},i("div",{class:"focus-border"},c(this.el,"icon")&&i("span",{class:"icon"},i("slot",{name:"icon"})),i(t,null),this.variant==="toggle"&&i("span",{class:{["check-icon"]:true,["hide"]:!this.checked},"aria-hidden":"true",innerHTML:u}),s(this.submenuTriggerFor)&&i("span",{class:{["submenu-icon"]:true},"aria-hidden":"true",innerHTML:l}))))}static get delegatesFocus(){return true}get el(){return r(this)}static get watchers(){return{disabled:["watchDisabledHandler"]}}};d.style=m;export{d as ic_menu_item};
2
+ //# sourceMappingURL=p-513628ef.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["icMenuItemCss","IcMenuItemStyle0","MenuItem","constructor","hostRef","this","checked","disabled","variant","handleClick","e","isPropDefined","submenuTriggerFor","triggerPopoverMenuInstance","emit","preventDefault","icToggleChecked","handleMenuItemClick","el","getMenuItemAriaLabel","ariaLabel","label","description","keyboardShortcutLabel","classList","contains","parentEl","parentElement","tagName","watchDisabledHandler","removeDisabledFalse","componentWillLoad","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","handleHostClick","stopImmediatePropagation","render","MenuItemInformation","h","class","Host","fullWidth","onClick","href","hreflang","target","rel","referrerpolicy","role","undefined","isSlotUsed","name","innerHTML","Check","Chevron"],"sources":["src/components/ic-menu-item/ic-menu-item.css?tag=ic-menu-item&encapsulation=shadow","src/components/ic-menu-item/ic-menu-item.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host ::part(button) {\n color: var(--ic-popover-menu-item-check);\n\n --ic-typography-color: var(--ic-popover-menu-item-check);\n\n padding: calc(var(--ic-space-xxxs) / 2);\n display: flex;\n align-items: flex-start;\n gap: var(--ic-space-xs);\n border-radius: 0;\n min-height: 2.5rem;\n height: auto;\n}\n\n.focus-border {\n display: flex;\n align-items: flex-start;\n gap: var(--ic-space-xs);\n border-radius: var(--ic-border-radius);\n margin: calc(var(--ic-space-xxxs) / 2);\n padding: var(--ic-space-xxs);\n border: var(--ic-space-xxxs) dashed transparent;\n\n --icon-height: auto;\n}\n\n:host(.ic-menu-item-disabled) ::part(button) {\n color: var(--ic-popover-menu-item-check-disabled) !important;\n\n --ic-typography-color: var(--ic-popover-menu-item-check-disabled) !important;\n\n pointer-events: none;\n}\n\n:host(.ic-menu-item-disabled) .menu-item-label,\n:host(.ic-menu-item-disabled) .shortcut,\n:host(.ic-menu-item-disabled) .menu-item-description {\n --ic-typography-color: var(--ic-popover-menu-item-label-disabled) !important;\n}\n\n:host([variant=\"destructive\"]) ::part(button) {\n color: var(--ic-popover-menu-destructive-item-icon);\n\n --ic-typography-color: var(--ic-popover-menu-destructive-item-label);\n}\n\n:host ::part(button):hover {\n background-color: var(--ic-popover-background-hover);\n}\n\n:host ::part(button):focus-visible,\n:host ::part(button):focus {\n color: var(--ic-popover-menu-item-icon-focused);\n\n --ic-typography-color: purple;\n\n background-color: var(--ic-popover-background-focus);\n box-shadow: none;\n}\n\n:host(.ic-menu-item-disabled) ::part(button):focus-visible,\n:host(.ic-menu-item-disabled) ::part(button):focus {\n color: var(--ic-popover-menu-item-icon-disabled) !important;\n\n --ic-typography-color: orange !important;\n}\n\n:host([variant=\"destructive\"]) ::part(button):focus-visible,\n:host([variant=\"destructive\"]) ::part(button):focus {\n background-color: var(--ic-popover-destructive-background-focus);\n}\n\nic-button:focus-within .menu-item-label,\nic-button:focus-within .shortcut,\nic-button:focus-within .menu-item-description {\n --ic-typography-color: var(--ic-popover-menu-item-label-focused);\n}\n\n:host(.ic-menu-item-disabled) ic-button:focus-within .focus-border {\n border-color: var(--ic-popover-menu-border);\n}\n\n:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-label,\n:host(.ic-menu-item-disabled) ic-button:focus-within .shortcut,\n:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-description {\n --ic-typography-color: var(--ic-popover-menu-item-label-disabled) !important;\n}\n\n:host ::part(button):active {\n background-color: var(--ic-popover-background-pressed);\n color: var(--ic-popover-menu-item-label) !important;\n\n --ic-typography-color: var(--ic-popover-menu-item-label) !important;\n}\n\n:host([variant=\"destructive\"]) ::part(button):active {\n background-color: var(--ic-popover-background-pressed);\n color: var(--ic-popover-menu-destructive-item-label) !important;\n\n --ic-typography-color: var(\n --ic-popover-menu-destructive-item-label\n ) !important;\n}\n\n.menu-item-info {\n display: flex;\n flex-direction: column;\n flex: 1;\n align-items: baseline;\n white-space: pre-line;\n text-align: left;\n}\n\n.menu-labels {\n display: flex;\n align-items: baseline;\n gap: var(--ic-space-xs);\n}\n\n.menu-item-description {\n --ic-typography-color: var(--ic-popover-menu-item-description);\n}\n\n.shortcut {\n --ic-typography-color: var(--ic-popover-menu-item-shortcut);\n\n display: flex;\n flex: min-content;\n}\n\n:host([variant=\"destructive\"]) .menu-item-label {\n text-transform: uppercase;\n font-weight: 600;\n letter-spacing: 0.025em;\n}\n\nic-button:active .menu-item-label {\n --ic-typography-color: var(--ic-popover-menu-item-label);\n}\n\nic-button:active .menu-item-description {\n --ic-typography-color: var(--ic-popover-menu-item-description);\n}\n\nic-button:active .shortcut {\n --ic-typography-color: var(--ic-popover-menu-item-shortcut);\n}\n\n:host([variant=\"destructive\"]) ic-button:active .menu-item-label {\n --ic-typography-color: var(\n --ic-popover-menu-destructive-item-label\n ) !important;\n}\n\n.icon,\n.check-icon,\n.submenu-icon,\n.icon ::slotted(svg),\n.check-icon svg,\n.submenu-icon svg {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n.check-icon.hide {\n visibility: hidden;\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n :host ::part(button) {\n border: canvas;\n }\n\n :host ::part(button):focus-visible {\n outline: var(--ic-space-xxxs) solid transparent;\n }\n\n .focus-border {\n border-color: canvas;\n }\n\n :host(.ic-menu-item-disabled) ic-button:focus-within .focus-border {\n border-color: GrayText;\n }\n\n :host(.ic-menu-item-disabled) .menu-item-info,\n :host(.ic-menu-item-disabled) .menu-item-label,\n :host(.ic-menu-item-disabled) .shortcut,\n :host(.ic-menu-item-disabled) .menu-item-description,\n :host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-info,\n :host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-label,\n :host(.ic-menu-item-disabled) ic-button:focus-within .shortcut,\n :host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-description {\n --ic-typography-color: GrayText !important;\n }\n\n :host(.ic-menu-item-disabled) ::part(button):focus-visible,\n :host(.ic-menu-item-disabled) ::part(button):focus {\n outline-color: GrayText !important;\n }\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Event,\n EventEmitter,\n Listen,\n Watch,\n} from \"@stencil/core\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n isPropDefined,\n} from \"../../utils/helpers\";\nimport { IcMenuItemVariants } from \"./ic-menu-item.types\";\nimport Check from \"../../assets/check-icon.svg\";\nimport Chevron from \"../../assets/chevron-icon.svg\";\n\n/**\n * @slot icon - Content will be placed to the left of the menu item label.\n */\n\n@Component({\n tag: \"ic-menu-item\",\n styleUrl: \"ic-menu-item.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class MenuItem {\n @Element() el: HTMLIcMenuItemElement;\n\n /**\n * If `true`, the menu item will be in a checked state. This is only applicable when variant is set to `toggle`.\n */\n @Prop({ mutable: true, reflect: true }) checked?: boolean = false;\n\n /**\n * The description displayed in the menu item, below the label.\n */\n @Prop() description?: string;\n\n /**\n * If `true`, the menu item will be in disabled state.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The URL that the link points to. This will render the menu item as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label describing the keyboard shortcut for a menu item's action.\n */\n @Prop() keyboardShortcutLabel?: string;\n\n /**\n * The label to display in the menu item.\n */\n @Prop() label!: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * This references the popover menu instance that the menu item is a trigger for. If this prop is set, then the variant will always be default.\n */\n @Prop() submenuTriggerFor?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * The variant of the menu item.\n */\n @Prop({ mutable: true, reflect: true }) variant?: IcMenuItemVariants =\n \"default\";\n\n /**\n * @internal Emitted when item loses focus.\n */\n @Event() childBlur: EventEmitter<void>;\n\n /**\n * @internal Emitted when the user clicks a menu item.\n */\n @Event() handleMenuItemClick: EventEmitter<HTMLIcMenuItemElement>;\n\n /**\n * Emitted when the user clicks a menu item that is set to the toggle variant.\n */\n @Event() icToggleChecked: EventEmitter<{\n checked: boolean;\n }>;\n\n /**\n * @internal Emitted when the user clicks a menu item that triggers a popover menu instance.\n */\n @Event() triggerPopoverMenuInstance: EventEmitter<void>;\n\n componentWillLoad(): void {\n // This ensures that trigger menu items are always set to the default variant\n if (isPropDefined(this.submenuTriggerFor) && this.variant !== \"default\") {\n this.variant = \"default\";\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Menu Item\"\n );\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(e: Event): void {\n if (this.disabled) {\n e.stopImmediatePropagation();\n }\n }\n\n private handleClick = (e: Event): void => {\n if (isPropDefined(this.submenuTriggerFor)) {\n this.triggerPopoverMenuInstance.emit();\n } else if (this.variant === \"toggle\") {\n e.preventDefault();\n this.checked = !this.checked;\n this.icToggleChecked.emit({\n checked: this.checked,\n });\n }\n this.handleMenuItemClick.emit(this.el);\n };\n\n private getMenuItemAriaLabel = (): string => {\n let ariaLabel = this.label;\n\n if (isPropDefined(this.description)) {\n ariaLabel = `${ariaLabel}, ${this.description}`;\n }\n\n if (isPropDefined(this.keyboardShortcutLabel)) {\n ariaLabel = `${ariaLabel}, ${this.keyboardShortcutLabel}`;\n }\n\n if (this.variant === \"destructive\") {\n ariaLabel = `${ariaLabel}, destructive`;\n }\n\n if (isPropDefined(this.submenuTriggerFor)) {\n ariaLabel = `${ariaLabel}, triggers submenu`;\n }\n\n if (this.el.classList.contains(\"ic-popover-submenu-back-button\")) {\n ariaLabel = \"Go back to parent menu\";\n }\n const parentEl = this.el.parentElement;\n\n if (\n parentEl &&\n parentEl.tagName === \"IC-MENU-GROUP\" &&\n (parentEl as HTMLIcMenuGroupElement).label\n ) {\n return `${ariaLabel}, ${\n (parentEl as HTMLIcMenuGroupElement).label\n } menu group`;\n } else {\n return ariaLabel;\n }\n };\n\n render() {\n // A sub-component to layout the menu information correctly in ic-button\n const MenuItemInformation = () => {\n return (\n <div class=\"menu-item-info\">\n <div class=\"menu-labels\">\n <ic-typography class=\"menu-item-label\">{this.label}</ic-typography>\n {this.keyboardShortcutLabel && (\n <ic-typography variant=\"caption\" class=\"shortcut\">\n {this.keyboardShortcutLabel}\n </ic-typography>\n )}\n </div>\n {this.description && (\n <ic-typography class=\"menu-item-description\" variant=\"caption\">\n {this.description}\n </ic-typography>\n )}\n </div>\n );\n };\n\n return (\n <Host\n class={{\n [\"ic-menu-item-disabled\"]: !!this.disabled,\n }}\n >\n <ic-button\n fullWidth\n variant=\"tertiary\"\n onClick={this.handleClick}\n href={isPropDefined(this.href)}\n hreflang={isPropDefined(this.hreflang)}\n target={isPropDefined(this.target)}\n rel={isPropDefined(this.rel)}\n referrerpolicy={this.referrerpolicy}\n role={this.variant === \"toggle\" ? \"menuitemcheckbox\" : \"menuitem\"}\n aria-disabled={`${this.disabled}`}\n aria-checked={\n this.variant === \"toggle\"\n ? this.checked\n ? \"true\"\n : \"false\"\n : undefined\n }\n aria-label={this.getMenuItemAriaLabel()}\n aria-haspopup={\n isPropDefined(this.submenuTriggerFor) ||\n this.el.classList.contains(\"ic-popover-submenu-back-button\")\n ? \"menu\"\n : false\n }\n >\n <div class=\"focus-border\">\n {isSlotUsed(this.el, \"icon\") && (\n <span class=\"icon\">\n <slot name=\"icon\"></slot>\n </span>\n )}\n <MenuItemInformation />\n {this.variant === \"toggle\" && (\n <span\n class={{\n [\"check-icon\"]: true,\n [\"hide\"]: !this.checked,\n }}\n aria-hidden=\"true\"\n innerHTML={Check}\n />\n )}\n {isPropDefined(this.submenuTriggerFor) && (\n <span\n class={{ [\"submenu-icon\"]: true }}\n aria-hidden=\"true\"\n innerHTML={Chevron}\n />\n )}\n </div>\n </ic-button>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as t,h as e,H as i,g as o}from"./p-8e4e97b4.js";import{o as n,b as s}from"./p-281ce313.js";const a=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" aria-hidden="true">\n <path d="M0 8L1.41 9.41L7 3.83V16H9V3.83L14.58 9.42L16 8L8 0L0 8Z"/>\n</svg>\n`;const r='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:flex;flex:row;height:0.1px}:host(.ic-back-to-top-right){justify-content:flex-end}:host(.ic-back-to-top-right) ic-button{margin-right:var(--margin-right, 1rem)}:host(.ic-back-to-top-right) .ic-back-to-top-icon{padding-top:var(--ic-space-xxs);padding-right:var(--ic-space-xs)}:host(.ic-back-to-top-left){justify-content:flex-start}:host(.ic-back-to-top-left) ic-button{margin-left:var(--margin-left, 1rem)}:host(.ic-back-to-top-left) .ic-back-to-top-icon{padding-top:var(--ic-space-xxs);padding-right:var(--ic-space-xs)}:host(.ic-back-to-top-center){justify-content:center}:host(.ic-back-to-top-center) .ic-back-to-top-icon{padding-top:var(--ic-space-xxs);padding-right:var(--ic-space-xs)}ic-button{height:2.5rem;align-items:center;background-color:var(--ic-color-background-primary);border-radius:5rem;box-shadow:var(--ic-elevation-overlay);visibility:hidden;position:fixed;bottom:var(--ic-space-md);opacity:0;transition:visibility 0s linear var(--ic-transition-duration-slow),\n opacity var(--ic-transition-duration-slow);z-index:var(--ic-z-index-back-to-top)}:host([variant="icon"]) ic-button::part(button){margin:0}ic-button::part(button){border-radius:5rem}ic-button.show{visibility:visible;opacity:1;transition:visibility 0s linear 0s,\n opacity var(--ic-transition-duration-slow),\n box-shadow var(--ic-easing-transition-fast)}ic-button.offset-banner:not(.by-footer){margin-bottom:var(--footer-offset, var(--ic-space-lg))}.ic-back-to-top-icon>svg{height:var(--ic-space-md);width:var(--ic-space-md)}.icon-only{width:2.5rem}.icon-only .ic-back-to-top-icon>svg{padding-left:calc(var(--ic-space-xs) - var(--ic-space-1px))}ic-button.by-footer{position:relative;bottom:var(--footer-offset, 3.5rem)}@media (forced-colors: active){.icon-only .ic-back-to-top-icon>svg{padding-left:calc(var(--ic-space-xs) - var(--ic-space-xxxs))}}';const c=r;const l="Back to top";const d=class{constructor(e){t(this,e);this.topObserver=null;this.bannerOffset=false;this.footerVisible=false;this.targetElVisible=true;this.position="right";this.theme="inherit";this.variant="default";this.getObservedEl=()=>document.querySelector("#ic-back-to-top-target");this.setTargetElVisible=t=>{this.targetElVisible=t};this.setFooterVisible=t=>{this.checkForClassificationBanner();this.footerVisible=typeof window!=="undefined"&&window.scrollY===0?false:t};this.targetElObserverCallback=t=>{this.setTargetElVisible(t[0].isIntersecting)};this.footerObserverCallback=t=>{this.setFooterVisible(t[0].isIntersecting)};this.findTargetEl=t=>{let e=null;if(t===null||t===undefined){console.log("Error: No target ID specified for back to top component - defaulting to top of page")}else{e=document.querySelector(`${t.startsWith("#")?"":"#"}${t}`);if(e===null){console.log(`Error: Back to top target element '${t}' not found - defaulting to top of page`)}}return e};this.createTopObserver=t=>{this.targetEl=this.findTargetEl(t);let e;if(this.topObserver!==null){const t=this.getObservedEl();if(t!==null){this.topObserver.unobserve(t);t.remove()}}if(this.targetEl===null){e=document.body;this.targetEl=e.firstElementChild;this.isTargetElNull=true}else{e=this.targetEl.parentNode;this.isTargetElNull=false}const i=document.createElement("div");i.setAttribute("id","ic-back-to-top-target");i.setAttribute("tabindex","-1");e.insertBefore(i,this.targetEl);const o=this.targetEl?getComputedStyle(this.targetEl).marginTop:0;this.topObserver=new IntersectionObserver(this.targetElObserverCallback,{threshold:[0],rootMargin:`${o} 0px 0px 0px`});this.topObserver.observe(i)};this.handleClick=()=>{var t;if(this.isTargetElNull){window.scrollTo(0,0)}else{(t=this.targetEl)===null||t===void 0?void 0:t.scrollIntoView()}this.getObservedEl().focus()};this.checkForClassificationBanner=()=>{const t=document.querySelectorAll("ic-classification-banner:not([inline='true'])");this.bannerOffset=t.length>0}}watchPropHandler(t,e){n(e,t,(()=>{this.createTopObserver(t)}))}componentWillLoad(){this.createTopObserver(this.target);this.checkForClassificationBanner();let t=document.querySelectorAll("ic-footer");if(t.length===0){t=document.querySelectorAll("footer")}if(t.length){const e=t[t.length-1];const i=this.bannerOffset?.15:0;const o=new IntersectionObserver(this.footerObserverCallback,{threshold:[i]});o.observe(e)}}componentDidLoad(){s([{prop:this.target,propName:"target"}],"Back to Top")}render(){const{variant:t,bannerOffset:o,targetElVisible:n,footerVisible:s}=this;const r=t==="icon"?"icon-secondary":"secondary";const c=t==="icon"?"large":"medium";const d=t==="icon"?"":l;return e(i,{key:"81025a66bc45c55d0caa94c0cd649ce2dfb7eb7c",class:{[`ic-theme-${this.theme}`]:this.theme!=="inherit",[`ic-back-to-top-${this.position}`]:true}},e("ic-button",{key:"9855a53f4ea50219ba19022a5873b004704bf3a0","aria-label":l,variant:r,size:c,onClick:this.handleClick,class:{["offset-banner"]:o,["show"]:!n,["by-footer"]:s,["icon-only"]:t==="icon"},theme:this.theme},e("span",{key:"726b1b15f1e9168e9bb7826451357f6f559efa02",class:"ic-back-to-top-icon",innerHTML:a}),d))}static get delegatesFocus(){return true}get el(){return o(this)}static get watchers(){return{target:["watchPropHandler"]}}};d.style=c;export{d as ic_back_to_top};
2
- //# sourceMappingURL=p-33c86ba6.entry.js.map
1
+ import{r as t,h as e,H as i,g as o}from"./p-8e4e97b4.js";import{o as n,b as s}from"./p-8242c24f.js";const a=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" aria-hidden="true">\n <path d="M0 8L1.41 9.41L7 3.83V16H9V3.83L14.58 9.42L16 8L8 0L0 8Z"/>\n</svg>\n`;const r='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:flex;flex:row;height:0.1px}:host(.ic-back-to-top-right){justify-content:flex-end}:host(.ic-back-to-top-right) ic-button{margin-right:var(--margin-right, 1rem)}:host(.ic-back-to-top-right) .ic-back-to-top-icon{padding-top:var(--ic-space-xxs);padding-right:var(--ic-space-xs)}:host(.ic-back-to-top-left){justify-content:flex-start}:host(.ic-back-to-top-left) ic-button{margin-left:var(--margin-left, 1rem)}:host(.ic-back-to-top-left) .ic-back-to-top-icon{padding-top:var(--ic-space-xxs);padding-right:var(--ic-space-xs)}:host(.ic-back-to-top-center){justify-content:center}:host(.ic-back-to-top-center) .ic-back-to-top-icon{padding-top:var(--ic-space-xxs);padding-right:var(--ic-space-xs)}ic-button{height:2.5rem;align-items:center;background-color:var(--ic-color-background-primary);border-radius:5rem;box-shadow:var(--ic-elevation-overlay);visibility:hidden;position:fixed;bottom:var(--ic-space-md);opacity:0;transition:visibility 0s linear var(--ic-transition-duration-slow),\n opacity var(--ic-transition-duration-slow);z-index:var(--ic-z-index-back-to-top)}:host([variant="icon"]) ic-button::part(button){margin:0}ic-button::part(button){border-radius:5rem}ic-button.show{visibility:visible;opacity:1;transition:visibility 0s linear 0s,\n opacity var(--ic-transition-duration-slow),\n box-shadow var(--ic-easing-transition-fast)}ic-button.offset-banner:not(.by-footer){margin-bottom:var(--footer-offset, var(--ic-space-lg))}.ic-back-to-top-icon>svg{height:var(--ic-space-md);width:var(--ic-space-md)}.icon-only{width:2.5rem}.icon-only .ic-back-to-top-icon>svg{padding-left:calc(var(--ic-space-xs) - var(--ic-space-1px))}ic-button.by-footer{position:relative;bottom:var(--footer-offset, 3.5rem)}@media (forced-colors: active){.icon-only .ic-back-to-top-icon>svg{padding-left:calc(var(--ic-space-xs) - var(--ic-space-xxxs))}}';const c=r;const l="Back to top";const d=class{constructor(e){t(this,e);this.topObserver=null;this.bannerOffset=false;this.footerVisible=false;this.targetElVisible=true;this.position="right";this.theme="inherit";this.variant="default";this.getObservedEl=()=>document.querySelector("#ic-back-to-top-target");this.setTargetElVisible=t=>{this.targetElVisible=t};this.setFooterVisible=t=>{this.checkForClassificationBanner();this.footerVisible=typeof window!=="undefined"&&window.scrollY===0?false:t};this.targetElObserverCallback=t=>{this.setTargetElVisible(t[0].isIntersecting)};this.footerObserverCallback=t=>{this.setFooterVisible(t[0].isIntersecting)};this.findTargetEl=t=>{let e=null;if(t===null||t===undefined){console.log("Error: No target ID specified for back to top component - defaulting to top of page")}else{e=document.querySelector(`${t.startsWith("#")?"":"#"}${t}`);if(e===null){console.log(`Error: Back to top target element '${t}' not found - defaulting to top of page`)}}return e};this.createTopObserver=t=>{this.targetEl=this.findTargetEl(t);let e;if(this.topObserver!==null){const t=this.getObservedEl();if(t!==null){this.topObserver.unobserve(t);t.remove()}}if(this.targetEl===null){e=document.body;this.targetEl=e.firstElementChild;this.isTargetElNull=true}else{e=this.targetEl.parentNode;this.isTargetElNull=false}const i=document.createElement("div");i.setAttribute("id","ic-back-to-top-target");i.setAttribute("tabindex","-1");e.insertBefore(i,this.targetEl);const o=this.targetEl?getComputedStyle(this.targetEl).marginTop:0;this.topObserver=new IntersectionObserver(this.targetElObserverCallback,{threshold:[0],rootMargin:`${o} 0px 0px 0px`});this.topObserver.observe(i)};this.handleClick=()=>{var t;if(this.isTargetElNull){window.scrollTo(0,0)}else{(t=this.targetEl)===null||t===void 0?void 0:t.scrollIntoView()}this.getObservedEl().focus()};this.checkForClassificationBanner=()=>{const t=document.querySelectorAll("ic-classification-banner:not([inline='true'])");this.bannerOffset=t.length>0}}watchPropHandler(t,e){n(e,t,(()=>{this.createTopObserver(t)}))}componentWillLoad(){this.createTopObserver(this.target);this.checkForClassificationBanner();let t=document.querySelectorAll("ic-footer");if(t.length===0){t=document.querySelectorAll("footer")}if(t.length){const e=t[t.length-1];const i=this.bannerOffset?.15:0;const o=new IntersectionObserver(this.footerObserverCallback,{threshold:[i]});o.observe(e)}}componentDidLoad(){s([{prop:this.target,propName:"target"}],"Back to Top")}render(){const{variant:t,bannerOffset:o,targetElVisible:n,footerVisible:s}=this;const r=t==="icon"?"icon-secondary":"secondary";const c=t==="icon"?"large":"medium";const d=t==="icon"?"":l;return e(i,{key:"81025a66bc45c55d0caa94c0cd649ce2dfb7eb7c",class:{[`ic-theme-${this.theme}`]:this.theme!=="inherit",[`ic-back-to-top-${this.position}`]:true}},e("ic-button",{key:"9855a53f4ea50219ba19022a5873b004704bf3a0","aria-label":l,variant:r,size:c,onClick:this.handleClick,class:{["offset-banner"]:o,["show"]:!n,["by-footer"]:s,["icon-only"]:t==="icon"},theme:this.theme},e("span",{key:"726b1b15f1e9168e9bb7826451357f6f559efa02",class:"ic-back-to-top-icon",innerHTML:a}),d))}static get delegatesFocus(){return true}get el(){return o(this)}static get watchers(){return{target:["watchPropHandler"]}}};d.style=c;export{d as ic_back_to_top};
2
+ //# sourceMappingURL=p-628c32b8.entry.js.map