@ukic/web-components 3.1.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 (610) hide show
  1. package/README.md +28 -0
  2. package/dist/cjs/core.cjs.js +1 -1
  3. package/dist/cjs/{helpers-a0a128bd.js → helpers-fc4016d2.js} +36 -73
  4. package/dist/cjs/helpers-fc4016d2.js.map +1 -0
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-alert.cjs.entry.js +63 -36
  10. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js +4 -4
  12. package/dist/cjs/ic-badge.cjs.entry.js +41 -17
  13. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +56 -76
  15. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js +32 -51
  17. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-button_3.cjs.entry.js +135 -131
  19. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-card-vertical.cjs.entry.js +6 -6
  21. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-checkbox-group.cjs.entry.js +9 -10
  23. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-checkbox.cjs.entry.js +35 -34
  25. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-chip.cjs.entry.js +26 -38
  27. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-classification-banner.cjs.entry.js +2 -2
  29. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  30. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  31. package/dist/cjs/ic-dialog.cjs.entry.js +3 -3
  32. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
  36. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  37. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  39. package/dist/cjs/ic-footer.cjs.entry.js +4 -4
  40. package/dist/cjs/ic-hero.cjs.entry.js +5 -5
  41. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  42. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +9 -9
  43. package/dist/cjs/ic-input-label_2.cjs.entry.js +8 -8
  44. package/dist/cjs/ic-link.cjs.entry.js +21 -3
  45. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  47. package/dist/cjs/ic-menu-item.cjs.entry.js +5 -5
  48. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  50. package/dist/cjs/ic-navigation-group.cjs.entry.js +3 -3
  51. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-navigation-item.cjs.entry.js +12 -7
  53. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  55. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  56. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
  58. package/dist/cjs/ic-popover-menu.cjs.entry.js +8 -7
  59. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-radio-group.cjs.entry.js +5 -5
  61. package/dist/cjs/ic-radio-option.cjs.entry.js +6 -6
  62. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-search-bar.cjs.entry.js +112 -135
  64. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  66. package/dist/cjs/ic-select.cjs.entry.js +47 -50
  67. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-side-navigation.cjs.entry.js +6 -6
  69. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  71. package/dist/cjs/ic-skip-link.cjs.entry.js +10 -3
  72. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  74. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-step.cjs.entry.js +15 -15
  76. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  78. package/dist/cjs/ic-switch.cjs.entry.js +6 -6
  79. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  81. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  82. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  83. package/dist/cjs/ic-tab.cjs.entry.js +3 -3
  84. package/dist/cjs/ic-text-field.cjs.entry.js +32 -29
  85. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-theme.cjs.entry.js +4 -2
  87. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  89. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  90. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  91. package/dist/cjs/ic-toggle-button.cjs.entry.js +4 -4
  92. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -5
  94. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ic-typography.cjs.entry.js +4 -4
  96. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  97. package/dist/cjs/loader.cjs.js +1 -1
  98. package/dist/collection/components/ic-accordion/ic-accordion.css +3 -0
  99. package/dist/collection/components/ic-accordion-group/ic-accordion-group.css +1 -0
  100. package/dist/collection/components/ic-alert/ic-alert.css +3 -1
  101. package/dist/collection/components/ic-alert/ic-alert.js +85 -50
  102. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  103. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +3 -3
  104. package/dist/collection/components/ic-badge/ic-badge.css +1 -1
  105. package/dist/collection/components/ic-badge/ic-badge.js +39 -15
  106. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  107. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +40 -59
  108. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  109. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +65 -86
  110. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  111. package/dist/collection/components/ic-button/ic-button.css +123 -59
  112. package/dist/collection/components/ic-button/ic-button.js +141 -162
  113. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  114. package/dist/collection/components/ic-button/ic-button.stories.js +39 -54
  115. package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +20 -4
  116. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +4 -4
  117. package/dist/collection/components/ic-checkbox/ic-checkbox.css +3 -1
  118. package/dist/collection/components/ic-checkbox/ic-checkbox.js +71 -73
  119. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  120. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +24 -25
  121. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  122. package/dist/collection/components/ic-chip/ic-chip.css +9 -0
  123. package/dist/collection/components/ic-chip/ic-chip.js +66 -72
  124. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  125. package/dist/collection/components/ic-chip/ic-chip.stories.js +2 -1
  126. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +2 -2
  127. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  128. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  129. package/dist/collection/components/ic-dialog/ic-dialog.css +2 -1
  130. package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
  131. package/dist/collection/components/ic-divider/ic-divider.css +7 -4
  132. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  133. package/dist/collection/components/ic-footer/ic-footer.js +3 -3
  134. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  135. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.css +0 -3
  136. package/dist/collection/components/ic-hero/ic-hero.js +4 -4
  137. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  138. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  139. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  140. package/dist/collection/components/ic-input-label/ic-input-label.js +4 -4
  141. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  142. package/dist/collection/components/ic-link/ic-link.js +23 -2
  143. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  144. package/dist/collection/components/ic-link/ic-link.stories.js +28 -5
  145. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +3 -3
  146. package/dist/collection/components/ic-menu/ic-menu.js +3 -3
  147. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  148. package/dist/collection/components/ic-menu-item/ic-menu-item.css +2 -5
  149. package/dist/collection/components/ic-menu-item/ic-menu-item.js +3 -3
  150. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  151. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +2 -2
  152. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +0 -4
  153. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
  154. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +20 -1
  155. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +11 -6
  156. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  157. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  158. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  159. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  160. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  161. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +0 -5
  162. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +6 -5
  163. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  164. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  165. package/dist/collection/components/ic-radio-option/ic-radio-option.css +2 -1
  166. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  167. package/dist/collection/components/ic-search-bar/ic-search-bar.js +169 -192
  168. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  169. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  170. package/dist/collection/components/ic-select/ic-select.js +46 -49
  171. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  172. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +3 -2
  173. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
  174. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  175. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  176. package/dist/collection/components/ic-skip-link/ic-skip-link.js +31 -3
  177. package/dist/collection/components/ic-skip-link/ic-skip-link.js.map +1 -1
  178. package/dist/collection/components/ic-status-tag/ic-status-tag.css +6 -0
  179. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  180. package/dist/collection/components/ic-step/ic-step.css +0 -3
  181. package/dist/collection/components/ic-step/ic-step.js +13 -13
  182. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  183. package/dist/collection/components/ic-switch/ic-switch.js +5 -5
  184. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  185. package/dist/collection/components/ic-tab/ic-tab.js +2 -2
  186. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  187. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  188. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  189. package/dist/collection/components/ic-text-field/ic-text-field.js +112 -95
  190. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  191. package/dist/collection/components/ic-theme/ic-theme.js +31 -3
  192. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  193. package/dist/collection/components/ic-toast/ic-toast.js +3 -3
  194. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  195. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +6 -8
  196. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  197. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  198. package/dist/collection/components/ic-tooltip/ic-tooltip.js +32 -2
  199. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  200. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +3 -1
  201. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  202. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  203. package/dist/collection/components/ic-typography/ic-typography.css +2 -2
  204. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  205. package/dist/collection/utils/helpers.js +35 -72
  206. package/dist/collection/utils/helpers.js.map +1 -1
  207. package/dist/collection/utils/types.js.map +1 -1
  208. package/dist/components/helpers.js +36 -73
  209. package/dist/components/helpers.js.map +1 -1
  210. package/dist/components/ic-accordion-group.js.map +1 -1
  211. package/dist/components/ic-accordion.js.map +1 -1
  212. package/dist/components/ic-alert.js +66 -37
  213. package/dist/components/ic-alert.js.map +1 -1
  214. package/dist/components/ic-back-to-top.js +3 -3
  215. package/dist/components/ic-badge.js +40 -16
  216. package/dist/components/ic-badge.js.map +1 -1
  217. package/dist/components/ic-breadcrumb-group.js +57 -78
  218. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  219. package/dist/components/ic-breadcrumb2.js +32 -51
  220. package/dist/components/ic-breadcrumb2.js.map +1 -1
  221. package/dist/components/ic-button2.js +105 -126
  222. package/dist/components/ic-button2.js.map +1 -1
  223. package/dist/components/ic-card-vertical.js +5 -5
  224. package/dist/components/ic-card-vertical.js.map +1 -1
  225. package/dist/components/ic-checkbox-group.js +9 -10
  226. package/dist/components/ic-checkbox-group.js.map +1 -1
  227. package/dist/components/ic-checkbox.js +37 -36
  228. package/dist/components/ic-checkbox.js.map +1 -1
  229. package/dist/components/ic-chip.js +28 -40
  230. package/dist/components/ic-chip.js.map +1 -1
  231. package/dist/components/ic-classification-banner.js +2 -2
  232. package/dist/components/ic-data-list.js +2 -2
  233. package/dist/components/ic-data-row.js +3 -3
  234. package/dist/components/ic-dialog.js +2 -2
  235. package/dist/components/ic-dialog.js.map +1 -1
  236. package/dist/components/ic-divider2.js +2 -2
  237. package/dist/components/ic-divider2.js.map +1 -1
  238. package/dist/components/ic-empty-state.js +2 -2
  239. package/dist/components/ic-footer-link-group.js +1 -1
  240. package/dist/components/ic-footer-link-group.js.map +1 -1
  241. package/dist/components/ic-footer-link.js +2 -2
  242. package/dist/components/ic-footer.js +4 -4
  243. package/dist/components/ic-hero.js +5 -5
  244. package/dist/components/ic-horizontal-scroll2.js +6 -6
  245. package/dist/components/ic-input-component-container2.js +4 -4
  246. package/dist/components/ic-input-container2.js +2 -2
  247. package/dist/components/ic-input-label2.js +5 -5
  248. package/dist/components/ic-input-validation2.js +4 -4
  249. package/dist/components/ic-link2.js +23 -3
  250. package/dist/components/ic-link2.js.map +1 -1
  251. package/dist/components/ic-loading-indicator2.js +3 -3
  252. package/dist/components/ic-menu-group.js +1 -1
  253. package/dist/components/ic-menu-item2.js +4 -4
  254. package/dist/components/ic-menu-item2.js.map +1 -1
  255. package/dist/components/ic-menu2.js +4 -4
  256. package/dist/components/ic-navigation-button.js +2 -2
  257. package/dist/components/ic-navigation-group.js +3 -3
  258. package/dist/components/ic-navigation-group.js.map +1 -1
  259. package/dist/components/ic-navigation-item.js +12 -7
  260. package/dist/components/ic-navigation-item.js.map +1 -1
  261. package/dist/components/ic-navigation-menu2.js +5 -5
  262. package/dist/components/ic-page-header.js +6 -6
  263. package/dist/components/ic-pagination-item2.js +2 -2
  264. package/dist/components/ic-pagination.js +4 -4
  265. package/dist/components/ic-popover-menu.js +7 -6
  266. package/dist/components/ic-popover-menu.js.map +1 -1
  267. package/dist/components/ic-radio-group.js +5 -5
  268. package/dist/components/ic-radio-option.js +6 -6
  269. package/dist/components/ic-radio-option.js.map +1 -1
  270. package/dist/components/ic-search-bar.js +112 -135
  271. package/dist/components/ic-search-bar.js.map +1 -1
  272. package/dist/components/ic-section-container2.js +2 -2
  273. package/dist/components/ic-select.js +47 -50
  274. package/dist/components/ic-select.js.map +1 -1
  275. package/dist/components/ic-side-navigation.js +6 -6
  276. package/dist/components/ic-side-navigation.js.map +1 -1
  277. package/dist/components/ic-skeleton.js +2 -2
  278. package/dist/components/ic-skip-link.js +12 -4
  279. package/dist/components/ic-skip-link.js.map +1 -1
  280. package/dist/components/ic-status-tag.js +2 -2
  281. package/dist/components/ic-status-tag.js.map +1 -1
  282. package/dist/components/ic-step.js +14 -14
  283. package/dist/components/ic-step.js.map +1 -1
  284. package/dist/components/ic-stepper.js +3 -3
  285. package/dist/components/ic-switch.js +6 -6
  286. package/dist/components/ic-switch.js.map +1 -1
  287. package/dist/components/ic-tab-context.js +1 -1
  288. package/dist/components/ic-tab-group.js +2 -2
  289. package/dist/components/ic-tab-panel.js +2 -2
  290. package/dist/components/ic-tab.js +2 -2
  291. package/dist/components/ic-text-field.js +32 -29
  292. package/dist/components/ic-text-field.js.map +1 -1
  293. package/dist/components/ic-theme.js +3 -1
  294. package/dist/components/ic-theme.js.map +1 -1
  295. package/dist/components/ic-toast-region.js +1 -1
  296. package/dist/components/ic-toast.js +4 -4
  297. package/dist/components/ic-toggle-button-group.js +2 -2
  298. package/dist/components/ic-toggle-button.js +3 -3
  299. package/dist/components/ic-toggle-button.js.map +1 -1
  300. package/dist/components/ic-tooltip2.js +30 -2
  301. package/dist/components/ic-tooltip2.js.map +1 -1
  302. package/dist/components/ic-top-navigation.js +5 -5
  303. package/dist/components/ic-top-navigation.js.map +1 -1
  304. package/dist/components/ic-typography2.js +3 -3
  305. package/dist/components/ic-typography2.js.map +1 -1
  306. package/dist/core/core.css +160 -110
  307. package/dist/core/core.esm.js +1 -1
  308. package/dist/core/core.esm.js.map +1 -1
  309. package/dist/core/p-00bc353b.entry.js +2 -0
  310. package/dist/core/p-00bc353b.entry.js.map +1 -0
  311. package/dist/core/{p-45595f98.entry.js → p-0a436c47.entry.js} +2 -2
  312. package/dist/core/p-0a436c47.entry.js.map +1 -0
  313. package/dist/core/{p-a55e7988.entry.js → p-10e1e227.entry.js} +2 -2
  314. package/dist/core/p-1440847f.entry.js +2 -0
  315. package/dist/core/p-1440847f.entry.js.map +1 -0
  316. package/dist/core/{p-729745d3.entry.js → p-15b7adaf.entry.js} +2 -2
  317. package/dist/core/p-16f55230.entry.js +2 -0
  318. package/dist/core/p-16f55230.entry.js.map +1 -0
  319. package/dist/core/{p-5c349c9d.entry.js → p-1838d1e9.entry.js} +2 -2
  320. package/dist/core/p-1838d1e9.entry.js.map +1 -0
  321. package/dist/core/{p-972671ea.entry.js → p-18714198.entry.js} +2 -2
  322. package/dist/core/{p-a20a7cd3.entry.js → p-1b2690b4.entry.js} +2 -2
  323. package/dist/core/p-1b2690b4.entry.js.map +1 -0
  324. package/dist/core/{p-37df68fe.entry.js → p-1be17f22.entry.js} +2 -2
  325. package/dist/core/p-206c2a26.entry.js +2 -0
  326. package/dist/core/p-206c2a26.entry.js.map +1 -0
  327. package/dist/core/{p-17cf7b50.entry.js → p-267a19d4.entry.js} +2 -2
  328. package/dist/core/p-26dfc4db.entry.js +2 -0
  329. package/dist/core/p-26dfc4db.entry.js.map +1 -0
  330. package/dist/core/p-2c17cc67.entry.js +2 -0
  331. package/dist/core/p-2c17cc67.entry.js.map +1 -0
  332. package/dist/core/{p-8b268274.entry.js → p-2c371198.entry.js} +2 -2
  333. package/dist/core/p-2e44cf53.entry.js +2 -0
  334. package/dist/core/p-2e44cf53.entry.js.map +1 -0
  335. package/dist/core/p-42a7d0b6.entry.js +2 -0
  336. package/dist/core/{p-fa02a267.entry.js → p-4b6818d9.entry.js} +2 -2
  337. package/dist/core/p-513628ef.entry.js +2 -0
  338. package/dist/core/p-513628ef.entry.js.map +1 -0
  339. package/dist/core/{p-1ac08e6d.entry.js → p-628c32b8.entry.js} +2 -2
  340. package/dist/core/p-70a6cff1.entry.js +2 -0
  341. package/dist/core/p-70a6cff1.entry.js.map +1 -0
  342. package/dist/core/{p-8856dff4.entry.js → p-72c117b6.entry.js} +2 -2
  343. package/dist/core/p-730d2f6e.entry.js +2 -0
  344. package/dist/core/p-730d2f6e.entry.js.map +1 -0
  345. package/dist/core/{p-0d016565.entry.js → p-788c96ac.entry.js} +2 -2
  346. package/dist/core/{p-78e7a859.entry.js → p-7fb79e87.entry.js} +2 -2
  347. package/dist/core/p-8242c24f.js +2 -0
  348. package/dist/core/p-8242c24f.js.map +1 -0
  349. package/dist/core/{p-7e79bd0e.entry.js → p-83764268.entry.js} +2 -2
  350. package/dist/core/p-8b5022bc.entry.js +2 -0
  351. package/dist/core/p-8b5022bc.entry.js.map +1 -0
  352. package/dist/core/{p-f34efc17.entry.js → p-8c4f7c63.entry.js} +2 -2
  353. package/dist/core/{p-1f455336.entry.js → p-910f5f14.entry.js} +2 -2
  354. package/dist/core/{p-10cd26dc.entry.js → p-9479f272.entry.js} +2 -2
  355. package/dist/core/{p-10cd26dc.entry.js.map → p-9479f272.entry.js.map} +1 -1
  356. package/dist/core/p-9c47521d.entry.js +2 -0
  357. package/dist/core/p-9c47521d.entry.js.map +1 -0
  358. package/dist/core/{p-110486f0.entry.js → p-9ca147f3.entry.js} +2 -2
  359. package/dist/core/{p-d9aec0dd.entry.js → p-9cfc2bac.entry.js} +2 -2
  360. package/dist/core/{p-74600ed8.entry.js → p-a0161990.entry.js} +2 -2
  361. package/dist/core/p-a17499ff.entry.js +2 -0
  362. package/dist/core/p-a17499ff.entry.js.map +1 -0
  363. package/dist/core/{p-4f2a1950.entry.js → p-a4f9b5bf.entry.js} +2 -2
  364. package/dist/core/{p-c9726fbd.entry.js → p-aad10013.entry.js} +2 -2
  365. package/dist/core/p-aad10013.entry.js.map +1 -0
  366. package/dist/core/{p-44e32417.entry.js → p-b371a498.entry.js} +2 -2
  367. package/dist/core/{p-44e32417.entry.js.map → p-b371a498.entry.js.map} +1 -1
  368. package/dist/core/p-b7568944.entry.js +2 -0
  369. package/dist/core/p-b7568944.entry.js.map +1 -0
  370. package/dist/core/p-b8da5c07.entry.js +2 -0
  371. package/dist/core/p-b8da5c07.entry.js.map +1 -0
  372. package/dist/core/{p-701696aa.entry.js → p-b9459ba2.entry.js} +2 -2
  373. package/dist/core/{p-2537f33e.entry.js → p-ba600947.entry.js} +2 -2
  374. package/dist/core/p-ba600947.entry.js.map +1 -0
  375. package/dist/core/{p-50f4d151.entry.js → p-bc2ca778.entry.js} +2 -2
  376. package/dist/core/{p-69e4daec.entry.js → p-bdc72446.entry.js} +2 -2
  377. package/dist/core/p-c45023b7.entry.js +2 -0
  378. package/dist/core/p-c45023b7.entry.js.map +1 -0
  379. package/dist/core/p-c4663e1a.entry.js +2 -0
  380. package/dist/core/p-c4663e1a.entry.js.map +1 -0
  381. package/dist/core/{p-a103068b.entry.js → p-c8cf1ad5.entry.js} +2 -2
  382. package/dist/core/p-c9a4fe37.entry.js +2 -0
  383. package/dist/core/p-c9a4fe37.entry.js.map +1 -0
  384. package/dist/core/p-cdf56a5d.entry.js +2 -0
  385. package/dist/core/p-cdf56a5d.entry.js.map +1 -0
  386. package/dist/core/{p-a71055c9.entry.js → p-d45d66c0.entry.js} +2 -2
  387. package/dist/core/p-d6c50565.entry.js +2 -0
  388. package/dist/core/p-d6c50565.entry.js.map +1 -0
  389. package/dist/core/{p-85734ebf.entry.js → p-d975bf2f.entry.js} +2 -2
  390. package/dist/core/p-d975bf2f.entry.js.map +1 -0
  391. package/dist/core/p-dede4974.entry.js +2 -0
  392. package/dist/core/p-dede4974.entry.js.map +1 -0
  393. package/dist/core/{p-071f4748.entry.js → p-df88ff5b.entry.js} +2 -2
  394. package/dist/core/p-e86a6d2d.entry.js +2 -0
  395. package/dist/core/{p-20c4d90b.entry.js → p-ebab7a9e.entry.js} +2 -2
  396. package/dist/core/p-eeab3a2e.entry.js +2 -0
  397. package/dist/core/p-eeab3a2e.entry.js.map +1 -0
  398. package/dist/core/{p-264ce7a0.entry.js → p-ef36181d.entry.js} +2 -2
  399. package/dist/core/p-ef36181d.entry.js.map +1 -0
  400. package/dist/core/p-f0388d68.entry.js +2 -0
  401. package/dist/core/p-f0388d68.entry.js.map +1 -0
  402. package/dist/core/{p-2b1a331b.entry.js → p-fbf57f0a.entry.js} +2 -2
  403. package/dist/esm/core.js +1 -1
  404. package/dist/esm/{helpers-dd035d0d.js → helpers-f2ffaa7c.js} +37 -74
  405. package/dist/esm/helpers-f2ffaa7c.js.map +1 -0
  406. package/dist/esm/ic-accordion-group.entry.js +1 -1
  407. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  408. package/dist/esm/ic-accordion.entry.js +1 -1
  409. package/dist/esm/ic-accordion.entry.js.map +1 -1
  410. package/dist/esm/ic-alert.entry.js +63 -36
  411. package/dist/esm/ic-alert.entry.js.map +1 -1
  412. package/dist/esm/ic-back-to-top.entry.js +4 -4
  413. package/dist/esm/ic-badge.entry.js +41 -17
  414. package/dist/esm/ic-badge.entry.js.map +1 -1
  415. package/dist/esm/ic-breadcrumb-group.entry.js +56 -76
  416. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  417. package/dist/esm/ic-breadcrumb.entry.js +32 -51
  418. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  419. package/dist/esm/ic-button_3.entry.js +136 -132
  420. package/dist/esm/ic-button_3.entry.js.map +1 -1
  421. package/dist/esm/ic-card-vertical.entry.js +6 -6
  422. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  423. package/dist/esm/ic-checkbox-group.entry.js +9 -10
  424. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  425. package/dist/esm/ic-checkbox.entry.js +35 -34
  426. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  427. package/dist/esm/ic-chip.entry.js +26 -38
  428. package/dist/esm/ic-chip.entry.js.map +1 -1
  429. package/dist/esm/ic-classification-banner.entry.js +2 -2
  430. package/dist/esm/ic-data-list.entry.js +2 -2
  431. package/dist/esm/ic-data-row.entry.js +3 -3
  432. package/dist/esm/ic-dialog.entry.js +3 -3
  433. package/dist/esm/ic-dialog.entry.js.map +1 -1
  434. package/dist/esm/ic-divider.entry.js +2 -2
  435. package/dist/esm/ic-divider.entry.js.map +1 -1
  436. package/dist/esm/ic-empty-state.entry.js +3 -3
  437. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  438. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  439. package/dist/esm/ic-footer-link.entry.js +3 -3
  440. package/dist/esm/ic-footer.entry.js +4 -4
  441. package/dist/esm/ic-hero.entry.js +5 -5
  442. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  443. package/dist/esm/ic-input-component-container_3.entry.js +9 -9
  444. package/dist/esm/ic-input-label_2.entry.js +8 -8
  445. package/dist/esm/ic-link.entry.js +21 -3
  446. package/dist/esm/ic-link.entry.js.map +1 -1
  447. package/dist/esm/ic-menu-group.entry.js +2 -2
  448. package/dist/esm/ic-menu-item.entry.js +5 -5
  449. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  450. package/dist/esm/ic-navigation-button.entry.js +3 -3
  451. package/dist/esm/ic-navigation-group.entry.js +3 -3
  452. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  453. package/dist/esm/ic-navigation-item.entry.js +12 -7
  454. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  455. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  456. package/dist/esm/ic-page-header.entry.js +7 -7
  457. package/dist/esm/ic-pagination-item.entry.js +2 -2
  458. package/dist/esm/ic-pagination.entry.js +5 -5
  459. package/dist/esm/ic-popover-menu.entry.js +8 -7
  460. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  461. package/dist/esm/ic-radio-group.entry.js +5 -5
  462. package/dist/esm/ic-radio-option.entry.js +6 -6
  463. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  464. package/dist/esm/ic-search-bar.entry.js +112 -135
  465. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  466. package/dist/esm/ic-section-container.entry.js +2 -2
  467. package/dist/esm/ic-select.entry.js +47 -50
  468. package/dist/esm/ic-select.entry.js.map +1 -1
  469. package/dist/esm/ic-side-navigation.entry.js +6 -6
  470. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  471. package/dist/esm/ic-skeleton.entry.js +2 -2
  472. package/dist/esm/ic-skip-link.entry.js +10 -3
  473. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  474. package/dist/esm/ic-status-tag.entry.js +3 -3
  475. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  476. package/dist/esm/ic-step.entry.js +15 -15
  477. package/dist/esm/ic-step.entry.js.map +1 -1
  478. package/dist/esm/ic-stepper.entry.js +3 -3
  479. package/dist/esm/ic-switch.entry.js +6 -6
  480. package/dist/esm/ic-switch.entry.js.map +1 -1
  481. package/dist/esm/ic-tab-context.entry.js +1 -1
  482. package/dist/esm/ic-tab-group.entry.js +3 -3
  483. package/dist/esm/ic-tab-panel.entry.js +2 -2
  484. package/dist/esm/ic-tab.entry.js +3 -3
  485. package/dist/esm/ic-text-field.entry.js +32 -29
  486. package/dist/esm/ic-text-field.entry.js.map +1 -1
  487. package/dist/esm/ic-theme.entry.js +4 -2
  488. package/dist/esm/ic-theme.entry.js.map +1 -1
  489. package/dist/esm/ic-toast-region.entry.js +1 -1
  490. package/dist/esm/ic-toast.entry.js +4 -4
  491. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  492. package/dist/esm/ic-toggle-button.entry.js +4 -4
  493. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  494. package/dist/esm/ic-top-navigation.entry.js +5 -5
  495. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  496. package/dist/esm/ic-typography.entry.js +4 -4
  497. package/dist/esm/ic-typography.entry.js.map +1 -1
  498. package/dist/esm/loader.js +1 -1
  499. package/dist/types/components/ic-alert/ic-alert.d.ts +17 -9
  500. package/dist/types/components/ic-badge/ic-badge.d.ts +4 -0
  501. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.d.ts +4 -6
  502. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +9 -15
  503. package/dist/types/components/ic-button/ic-button.d.ts +29 -22
  504. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +14 -13
  505. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +8 -9
  506. package/dist/types/components/ic-chip/ic-chip.d.ts +13 -15
  507. package/dist/types/components/ic-link/ic-link.d.ts +2 -0
  508. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +38 -40
  509. package/dist/types/components/ic-select/ic-select.d.ts +1 -0
  510. package/dist/types/components/ic-skip-link/ic-skip-link.d.ts +5 -0
  511. package/dist/types/components/ic-text-field/ic-text-field.d.ts +37 -32
  512. package/dist/types/components/ic-theme/ic-theme.d.ts +6 -2
  513. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +3 -0
  514. package/dist/types/components.d.ts +147 -133
  515. package/dist/types/utils/helpers.d.ts +13 -9
  516. package/dist/types/utils/types.d.ts +1 -0
  517. package/hydrate/index.js +809 -832
  518. package/hydrate/index.mjs +809 -832
  519. package/package.json +3 -3
  520. package/vscode-data.json +167 -3
  521. package/dist/cjs/helpers-a0a128bd.js.map +0 -1
  522. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.types.js +0 -2
  523. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.types.js.map +0 -1
  524. package/dist/core/p-06d97789.entry.js +0 -2
  525. package/dist/core/p-06d97789.entry.js.map +0 -1
  526. package/dist/core/p-09070f61.entry.js +0 -2
  527. package/dist/core/p-0c0ac69d.entry.js +0 -2
  528. package/dist/core/p-0c0ac69d.entry.js.map +0 -1
  529. package/dist/core/p-0e96d4d8.entry.js +0 -2
  530. package/dist/core/p-0e96d4d8.entry.js.map +0 -1
  531. package/dist/core/p-116ad73d.entry.js +0 -2
  532. package/dist/core/p-116ad73d.entry.js.map +0 -1
  533. package/dist/core/p-1171a945.entry.js +0 -2
  534. package/dist/core/p-1171a945.entry.js.map +0 -1
  535. package/dist/core/p-2537f33e.entry.js.map +0 -1
  536. package/dist/core/p-264ce7a0.entry.js.map +0 -1
  537. package/dist/core/p-28656111.entry.js +0 -2
  538. package/dist/core/p-28656111.entry.js.map +0 -1
  539. package/dist/core/p-33243fff.entry.js +0 -2
  540. package/dist/core/p-33243fff.entry.js.map +0 -1
  541. package/dist/core/p-45595f98.entry.js.map +0 -1
  542. package/dist/core/p-49768069.entry.js +0 -2
  543. package/dist/core/p-49768069.entry.js.map +0 -1
  544. package/dist/core/p-4c68494c.entry.js +0 -2
  545. package/dist/core/p-4c68494c.entry.js.map +0 -1
  546. package/dist/core/p-55a37101.entry.js +0 -2
  547. package/dist/core/p-55a37101.entry.js.map +0 -1
  548. package/dist/core/p-5c349c9d.entry.js.map +0 -1
  549. package/dist/core/p-5e1fd097.entry.js +0 -2
  550. package/dist/core/p-5e1fd097.entry.js.map +0 -1
  551. package/dist/core/p-73fc198f.entry.js +0 -2
  552. package/dist/core/p-73fc198f.entry.js.map +0 -1
  553. package/dist/core/p-7eaf8da8.entry.js +0 -2
  554. package/dist/core/p-811d447b.entry.js +0 -2
  555. package/dist/core/p-811d447b.entry.js.map +0 -1
  556. package/dist/core/p-85734ebf.entry.js.map +0 -1
  557. package/dist/core/p-85b7d931.entry.js +0 -2
  558. package/dist/core/p-85b7d931.entry.js.map +0 -1
  559. package/dist/core/p-98328cb9.entry.js +0 -2
  560. package/dist/core/p-98328cb9.entry.js.map +0 -1
  561. package/dist/core/p-a20a7cd3.entry.js.map +0 -1
  562. package/dist/core/p-a22658fb.entry.js +0 -2
  563. package/dist/core/p-a22658fb.entry.js.map +0 -1
  564. package/dist/core/p-a794b724.entry.js +0 -2
  565. package/dist/core/p-a794b724.entry.js.map +0 -1
  566. package/dist/core/p-b21b4fea.entry.js +0 -2
  567. package/dist/core/p-b21b4fea.entry.js.map +0 -1
  568. package/dist/core/p-b953b22f.entry.js +0 -2
  569. package/dist/core/p-b953b22f.entry.js.map +0 -1
  570. package/dist/core/p-c9726fbd.entry.js.map +0 -1
  571. package/dist/core/p-d981598e.entry.js +0 -2
  572. package/dist/core/p-d981598e.entry.js.map +0 -1
  573. package/dist/core/p-ed8957da.js +0 -2
  574. package/dist/core/p-ed8957da.js.map +0 -1
  575. package/dist/core/p-f3315216.entry.js +0 -2
  576. package/dist/core/p-f3315216.entry.js.map +0 -1
  577. package/dist/core/p-f43f411a.entry.js +0 -2
  578. package/dist/core/p-f43f411a.entry.js.map +0 -1
  579. package/dist/core/p-ff995eb8.entry.js +0 -2
  580. package/dist/core/p-ff995eb8.entry.js.map +0 -1
  581. package/dist/esm/helpers-dd035d0d.js.map +0 -1
  582. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.types.d.ts +0 -1
  583. /package/dist/core/{p-a55e7988.entry.js.map → p-10e1e227.entry.js.map} +0 -0
  584. /package/dist/core/{p-729745d3.entry.js.map → p-15b7adaf.entry.js.map} +0 -0
  585. /package/dist/core/{p-972671ea.entry.js.map → p-18714198.entry.js.map} +0 -0
  586. /package/dist/core/{p-37df68fe.entry.js.map → p-1be17f22.entry.js.map} +0 -0
  587. /package/dist/core/{p-17cf7b50.entry.js.map → p-267a19d4.entry.js.map} +0 -0
  588. /package/dist/core/{p-8b268274.entry.js.map → p-2c371198.entry.js.map} +0 -0
  589. /package/dist/core/{p-09070f61.entry.js.map → p-42a7d0b6.entry.js.map} +0 -0
  590. /package/dist/core/{p-fa02a267.entry.js.map → p-4b6818d9.entry.js.map} +0 -0
  591. /package/dist/core/{p-1ac08e6d.entry.js.map → p-628c32b8.entry.js.map} +0 -0
  592. /package/dist/core/{p-8856dff4.entry.js.map → p-72c117b6.entry.js.map} +0 -0
  593. /package/dist/core/{p-0d016565.entry.js.map → p-788c96ac.entry.js.map} +0 -0
  594. /package/dist/core/{p-78e7a859.entry.js.map → p-7fb79e87.entry.js.map} +0 -0
  595. /package/dist/core/{p-7e79bd0e.entry.js.map → p-83764268.entry.js.map} +0 -0
  596. /package/dist/core/{p-f34efc17.entry.js.map → p-8c4f7c63.entry.js.map} +0 -0
  597. /package/dist/core/{p-1f455336.entry.js.map → p-910f5f14.entry.js.map} +0 -0
  598. /package/dist/core/{p-110486f0.entry.js.map → p-9ca147f3.entry.js.map} +0 -0
  599. /package/dist/core/{p-d9aec0dd.entry.js.map → p-9cfc2bac.entry.js.map} +0 -0
  600. /package/dist/core/{p-74600ed8.entry.js.map → p-a0161990.entry.js.map} +0 -0
  601. /package/dist/core/{p-4f2a1950.entry.js.map → p-a4f9b5bf.entry.js.map} +0 -0
  602. /package/dist/core/{p-701696aa.entry.js.map → p-b9459ba2.entry.js.map} +0 -0
  603. /package/dist/core/{p-50f4d151.entry.js.map → p-bc2ca778.entry.js.map} +0 -0
  604. /package/dist/core/{p-69e4daec.entry.js.map → p-bdc72446.entry.js.map} +0 -0
  605. /package/dist/core/{p-a103068b.entry.js.map → p-c8cf1ad5.entry.js.map} +0 -0
  606. /package/dist/core/{p-a71055c9.entry.js.map → p-d45d66c0.entry.js.map} +0 -0
  607. /package/dist/core/{p-071f4748.entry.js.map → p-df88ff5b.entry.js.map} +0 -0
  608. /package/dist/core/{p-7eaf8da8.entry.js.map → p-e86a6d2d.entry.js.map} +0 -0
  609. /package/dist/core/{p-20c4d90b.entry.js.map → p-ebab7a9e.entry.js.map} +0 -0
  610. /package/dist/core/{p-2b1a331b.entry.js.map → p-fbf57f0a.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["icSearchBarCss","IcSearchBarStyle0","inputIds","SearchBar","constructor","hostRef","this","assistiveHintEl","hasTimedOut","inputId","menuCloseFromMenuChangeEvent","menuId","preLoad","preventSubmit","prevNoOption","retryButtonClick","truncateValue","clearButtonFocused","open","searchSubmitFocused","showClearButton","autocapitalize","autocomplete","autocorrect","autofocus","charactersUntilSuggestion","disabled","disableAutoFiltering","debounce","emptyOptionListText","focusOnLoad","fullWidth","helperText","hideLabel","assistiveHintText","labelField","loading","loadingErrorLabel","loadingLabel","name","placeholder","readonly","required","searchMode","size","spellcheck","theme","valueField","filteredOptions","options","value","handleClear","ev","keyboardEvent","mouseEvent","type","code","_a","inputEl","setAttribute","clearTimeout","timeoutTimer","el","setFocus","icClear","emit","preventDefault","onInput","target","icInput","noOptions","length","setMenuChange","rawFilteredOptions","getFilteredMenuOptions","handleShowClearButton","debounceAriaLiveUpdate","onInputBlur","nextFocus","relatedTarget","icSearchBarBlur","onInputFocus","icSearchBarFocus","handleClearBlur","icClearBlur","handleSubmitSearchBlur","icSubmitSearchBlur","handleMouseDown","handleSubmitSearchFocus","handleSubmitSearch","highlightedValue","undefined","icSubmitSearch","form","closest","searchSubmitButton","handleHiddenFormButtonClick","handleSubmitSearchKeyDown","key","handleRetry","retryViaKeyPress","detail","keyPressed","icRetryLoad","triggerLoading","loadingOption","timeout","window","setTimeout","timedOut","handleOptionSelect","label","icOptionSelect","handleMenuOptionHighlight","optionValue","optionId","replace","ariaActiveDescendant","handleMenuChange","icMenuChange","handleHostFocus","handleTruncateValue","handleHostBlur","menu","focus","visible","handleFocusClearButton","truncate","renderAssistiveHintEl","input","shadowRoot","querySelector","Object","keys","hasOptionsOrFilterDisabled","document","createElement","innerText","id","style","display","after","updateSearchResultAriaLive","searchResultsStatusEl","hadNoOptions","isSubmitDisabled","valueNotSet","valueLengthLess","highlightFirstOptionAfterNoResults","handleSetFirstOption","prevNoOptionsList","find","filteredOption","watchDisabledHandler","removeDisabledFalse","debounceChanged","icChange","debounceEvent","loadingHandler","newValue","filteredOptionsHandler","newOptions","some","opt","watchOptionsHandler","watchValueHandler","getLabelFromValue","connectedCallback","disconnectedCallback","remove","componentWillLoad","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentWillRender","handleKeyDown","event","icKeydown","handleKeyboardOpen","handleKeyUp","debounceAriaLive","render","disabledMode","describedBy","getInputDescribedByText","trim","describedById","hasSuggestedSearch","menuOpen","menuRendered","labelValue","renderHiddenInput","h","Host","class","onFocus","onBlur","for","ref","anchorEl","role","autoFocus","inputmode","innerHTML","clearIcon","onClick","onMouseDown","onKeyDown","variant","searchIcon","fullwidth","activationType","autofocusOnSelected","inputLabel","onMenuOptionSelect","onMenuStateChange","onMenuOptionId","onRetryButtonClicked","parentEl"],"sources":["src/components/ic-search-bar/ic-search-bar.css?tag=ic-search-bar&encapsulation=shadow","src/components/ic-search-bar/ic-search-bar.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-menu: z-index of search bar menu\n */\n\n:host(.ic-search-bar-search) {\n display: block;\n\n --divider-height: 1.5rem;\n --ic-input-label-helpertext-padding: var(--ic-space-xxs);\n --border-color: var(--ic-search-bar-outline);\n --input-bg-color: var(--ic-search-bar-background);\n --border-color-disabled: var(--ic-search-bar-outline-disabled);\n --menu-item-text-color: var(--ic-search-bar-dropdown-option-text);\n --menu-item-desc-text-color: var(--ic-search-bar-dropdown-option-description);\n --menu-bg-color: var(--ic-search-bar-dropdown-background);\n --menu-border-color: var(--ic-search-bar-dropdown-outline);\n}\n\n:host(.ic-search-bar-disabled) {\n --ic-input-label-text-color: var(--ic-search-bar-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-search-bar-subtitle-disabled);\n}\n\n:host(.ic-search-bar-search:hover) {\n --border-color: var(--ic-search-bar-outline-hover);\n}\n\n:host(.ic-search-bar-search:active) {\n --border-color: var(--ic-search-bar-outline-pressed);\n}\n\n:host(.ic-search-bar-search.ic-search-bar-small) {\n --divider-height: 1rem;\n}\n\n:host(.ic-search-bar-full-width) {\n width: 100%;\n}\n\n/* Custom Input */\n\n::placeholder {\n color: var(--ic-search-bar-placeholder-text);\n opacity: 1;\n}\n\ninput {\n border: 0;\n border-radius: var(--ic-border-radius);\n color: var(--ic-search-bar-filled-text);\n background-color: var(--input-bg-color);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n padding-right: var(--ic-space-xs);\n padding-left: var(--ic-space-xs);\n caret-color: var(--ic-search-bar-filled-text-cursor);\n}\n\ninput:focus {\n border: 0;\n outline: 0;\n}\n\ninput:disabled,\ninput:disabled::placeholder {\n color: var(--ic-search-bar-disabled-text);\n}\n\n/* Chrome, Safari, Edge */\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n display: none;\n}\n\ninput[type=\"search\"].truncate-value {\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n/* CLEAR */\n\n.clear-button-container {\n align-items: center;\n margin-right: var(--ic-space-1px);\n display: none;\n visibility: hidden;\n}\n\n.clear-button {\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-unfocused * {\n fill: var(--ic-search-bar-clear-button);\n}\n\n.clear-button:focus,\n.clear-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button-visible {\n visibility: visible;\n display: flex;\n}\n\n.search-submit-button-container {\n display: flex;\n align-items: center;\n}\n\n.search-submit-button-unfocused * {\n fill: var(--ic-search-bar-filled-icon);\n}\n\n.search-submit-button-disabled * {\n fill: var(--ic-search-bar-icon-disabled);\n}\n\n.search-submit-button-disabled .ic-tooltip-container {\n display: none !important;\n}\n\n.search-submit-button:focus,\n.search-submit-button:active {\n background-color: var(--ic-color-focus-inner) !important;\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;\n border-radius: var(--ic-space-xxs);\n}\n\n.search-submit-button:focus,\n.search-submit-button:active * {\n fill: white;\n}\n\n.divider {\n width: var(--ic-border-width);\n background-color: var(--ic-search-bar-dropdown-divider);\n height: var(--divider-height);\n}\n\n.menu-container {\n width: var(--input-width, 20rem);\n position: relative;\n top: var(--ic-space-xxxs);\n}\n\n.menu-container.fullwidth {\n width: 100%;\n}\n\n.no-results {\n cursor: not-allowed;\n}\n\n.search-results-status {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: var(--ic-space-1px);\n margin-bottom: calc(-1 * var(--ic-space-1px));\n margin-right: calc(-1 * 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@media (forced-colors: active) {\n .search-submit-button-unfocused * {\n fill: canvastext;\n }\n\n .search-submit-button-disabled * {\n fill: GrayText;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n} from \"@stencil/core\";\n\nimport {\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcMenuOption,\n IcMultiValueEventDetail,\n IcSizesNoLarge,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n getInputDescribedByText,\n renderHiddenInput,\n handleHiddenFormButtonClick,\n getLabelFromValue,\n onComponentRequiredPropUndefined,\n getFilteredMenuOptions,\n removeDisabledFalse,\n debounceEvent,\n} from \"../../utils/helpers\";\nimport {\n IcSearchBarBlurEventDetail,\n IcSearchBarSearchModes,\n} from \"./ic-search-bar.types\";\nimport { IcValueEventDetail, IcBlurEventDetail } from \"../../utils/types\";\nimport {\n IcMenuChangeEventDetail,\n IcOptionSelectEventDetail,\n} from \"../ic-menu/ic-menu.types\";\n\nimport clearIcon from \"../../assets/clear-icon.svg\";\nimport searchIcon from \"../../assets/search-icon.svg\";\n\nlet inputIds = 0;\n\n@Component({\n tag: \"ic-search-bar\",\n styleUrl: \"ic-search-bar.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class SearchBar {\n private anchorEl: HTMLElement;\n private assistiveHintEl: HTMLSpanElement | null = null;\n private debounceAriaLive: number;\n private hasTimedOut = false;\n private inputEl: HTMLInputElement;\n private inputId = `ic-search-bar-input-${inputIds++}`;\n private menu?: HTMLIcMenuElement;\n private menuCloseFromMenuChangeEvent: boolean = false;\n private menuId = `${this.inputId}-menu`;\n private preLoad = true;\n private preventSubmit: boolean = false;\n private prevNoOption: boolean = false;\n private retryButtonClick: boolean = false;\n private retryViaKeyPress: boolean;\n private timeoutTimer: number;\n private truncateValue = false;\n private searchSubmitButton?: HTMLIcButtonElement;\n\n @Element() el: HTMLIcSearchBarElement;\n\n @State() ariaActiveDescendant: string;\n @State() clearButtonFocused: boolean = false;\n @State() highlightedValue: string | undefined;\n @State() open: boolean = false;\n @State() searchSubmitFocused: boolean = false;\n @State() showClearButton: boolean = false;\n\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n @Prop() autocapitalize: string | undefined = \"off\";\n\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n @Prop() autocomplete?: IcAutocompleteTypes = \"off\";\n\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n @Prop() autocorrect?: IcAutocorrectStates = \"off\";\n\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n @Prop() autofocus: boolean | undefined = false;\n\n /**\n * The number of characters until suggestions appear. The submit button will be disabled until the inputted value is equal to or greater than this number.\n */\n @Prop() charactersUntilSuggestion?: number = 2;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n /**\n * Specify whether to disable the built in filtering. For example, if options will already be filtered from external source.\n * If `true`, all options provided will be displayed.\n */\n @Prop() disableAutoFiltering?: boolean = false;\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce?: number = 0;\n\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce!);\n }\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 * If `true`, the search bar will be focused when component loaded.\n */\n @Prop() focusOnLoad?: boolean = false;\n\n /**\n * Specify whether the search bar fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\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 * The hint text for the hidden assistive description element.\n */\n @Prop() assistiveHintText?: string =\n \"When autocomplete results are available use the up and down arrows to choose and press enter to select\";\n\n /**\n * The label for the search bar.\n */\n @Prop() label!: string;\n\n /**\n * The custom name for the label field to correspond with the IcMenuOption type.\n */\n @Prop() labelField?: string = \"label\";\n\n /**\n * Trigger loading state when fetching options asynchronously\n */\n @Prop({ mutable: true }) loading?: boolean = false;\n\n /**\n * Change the message displayed when external loading times out.\n */\n @Prop() loadingErrorLabel?: string = \"Loading Error\";\n\n /**\n * Change the message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel?: string = \"Loading...\";\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 display.\n */\n @Prop() placeholder?: string = \"Search\";\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * If `true`, the search bar will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * Specify the mode search bar uses to search. `navigation` allows for quick lookups of a set of values, `query` allows for more general searches.\n */\n @Prop() searchMode?: IcSearchBarSearchModes = \"navigation\";\n\n /**\n * The size of the search bar component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * If `true`, the value of the search will have its spelling and grammar checked.\n */\n @Prop() spellcheck: boolean | undefined = false;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * If using external filtering, set a timeout for when loading takes too long.\n */\n @Prop() timeout?: number;\n\n /**\n * The custom name for the value field to correspond with the IcMenuOption type.\n */\n @Prop() valueField?: string = \"value\";\n\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n if (newValue && !this.hasTimedOut) {\n this.preLoad = false;\n this.triggerLoading();\n }\n }\n\n @State() filteredOptions: IcMenuOption[] = [];\n\n @Watch(\"filteredOptions\")\n filteredOptionsHandler(newOptions: IcMenuOption[]): void {\n this.hasTimedOut = newOptions.some((opt) => opt.timedOut);\n }\n\n /**\n * The suggested search options.\n */\n @Prop() options?: IcMenuOption[] = [];\n\n @Watch(\"options\")\n watchOptionsHandler(newOptions: IcMenuOption[]): void {\n if (this.disableAutoFiltering && !this.hasTimedOut) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n if (newOptions.length > 0) {\n this.filteredOptions = newOptions;\n } else {\n if (this.hadNoOptions()) {\n return;\n }\n this.setMenuChange(true);\n !this.preLoad &&\n (this.filteredOptions = [\n {\n [this.labelField!]: this.emptyOptionListText,\n [this.valueField!]: \"\",\n },\n ]);\n this.preLoad = true;\n }\n }\n this.debounceAriaLiveUpdate();\n }\n\n /**\n * The value of the search input.\n */\n @Prop({ reflect: true, mutable: true }) value?: string = \"\";\n\n @Watch(\"value\")\n watchValueHandler(newValue: string): void {\n if (\n this.inputEl &&\n this.options &&\n !!getLabelFromValue(\n newValue,\n this.options,\n this.valueField,\n this.labelField\n )\n ) {\n this.inputEl.value =\n getLabelFromValue(\n newValue,\n this.options,\n this.valueField,\n this.labelField\n ) || \"\";\n } else if (this.inputEl && this.inputEl.value !== newValue) {\n this.inputEl.value = newValue;\n }\n this.icChange.emit({ value: newValue });\n }\n\n // The icChange event is defined here so that it appears as an event for search bar\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when value is cleared with clear button\n */\n @Event() icClear: EventEmitter<void>;\n private handleClear = (ev: Event) => {\n const keyboardEvent = ev as KeyboardEvent;\n const mouseEvent = ev as MouseEvent;\n\n if (\n mouseEvent.type === \"click\" ||\n keyboardEvent.code === \"Enter\" ||\n keyboardEvent.code === \"Space\"\n ) {\n this.value = \"\";\n this.inputEl?.setAttribute(\"value\", \"\");\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n this.filteredOptions = this.options!;\n this.el.setFocus();\n\n this.icClear.emit();\n ev.preventDefault();\n\n this.preventSubmit = true;\n }\n };\n\n // The icInput event is defined here so that it appears as an event for search bar\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n\n const noOptions = [\n { [this.labelField!]: this.emptyOptionListText, [this.valueField!]: \"\" },\n ];\n\n if (this.options!.length > 0) {\n this.setMenuChange(true);\n\n this.preLoad = false;\n\n if (this.disableAutoFiltering === false) {\n const rawFilteredOptions = getFilteredMenuOptions(\n this.options!,\n false,\n this.value,\n \"anywhere\",\n this.labelField\n );\n\n this.filteredOptions =\n rawFilteredOptions.length > 0 ? rawFilteredOptions : noOptions;\n }\n }\n\n if (!this.showClearButton) {\n this.handleShowClearButton(true);\n }\n\n this.debounceAriaLiveUpdate();\n };\n\n private onInputBlur = (ev: Event) => {\n const value = (ev.target as HTMLInputElement).value;\n const nextFocus = (ev as FocusEvent).relatedTarget;\n\n this.icSearchBarBlur.emit({ value: value, relatedTarget: nextFocus });\n };\n\n private onInputFocus = (ev: Event) => {\n const value = (ev.target as HTMLInputElement).value;\n this.icSearchBarFocus.emit({ value: value });\n\n this.handleShowClearButton(true);\n };\n\n /**\n * Emitted when option is highlighted within the menu\n */\n @Event() icOptionSelect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when the state of the menu changes (i.e. open or close)\n */\n @Event() icMenuChange: EventEmitter<IcMenuChangeEventDetail>;\n /**\n * @internal - Emitted when blur is invoked from clear button\n */\n @Event() icClearBlur: EventEmitter<IcBlurEventDetail>;\n private handleClearBlur = (ev: Event) => {\n const nextFocus = (ev as FocusEvent).relatedTarget;\n\n this.icClearBlur.emit({ relatedTarget: nextFocus });\n\n this.clearButtonFocused = false;\n };\n\n /**\n * Emitted when the 'retry loading' button is clicked\n */\n @Event() icRetryLoad: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the search value has been submitted\n */\n @Event() icSubmitSearch: EventEmitter<IcValueEventDetail>;\n\n /**\n * @internal - Emitted when blur is invoked from search submit button\n */\n @Event() icSubmitSearchBlur: EventEmitter<IcBlurEventDetail>;\n private handleSubmitSearchBlur = (ev: Event) => {\n const nextFocus = (ev as FocusEvent).relatedTarget;\n\n this.icSubmitSearchBlur.emit({ relatedTarget: nextFocus });\n\n this.searchSubmitFocused = false;\n };\n\n /**\n * Emitted when blur is invoked from ic-search-bar\n */\n @Event() icSearchBarBlur: EventEmitter<IcSearchBarBlurEventDetail>;\n\n /**\n * Emitted when focus is invoked from ic-search-bar\n */\n @Event() icSearchBarFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<{ event: KeyboardEvent }>;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n if (this.assistiveHintEl) {\n this.assistiveHintEl.remove();\n }\n }\n\n componentWillLoad(): void {\n this.watchValueHandler(this.value!);\n\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n componentDidLoad(): void {\n if (this.focusOnLoad) {\n this.el.setFocus();\n }\n\n if (this.hasOptionsOrFilterDisabled()) {\n this.renderAssistiveHintEl();\n if (this.disableAutoFiltering) {\n this.filteredOptions = this.options!;\n }\n }\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Search Bar\"\n );\n }\n\n componentWillRender(): void {\n this.highlightFirstOptionAfterNoResults();\n }\n\n @Listen(\"keydown\", {})\n handleKeyDown(event: KeyboardEvent): void {\n this.icKeydown.emit({ event });\n if (this.menu && this.open) {\n this.menu.handleKeyboardOpen(event);\n }\n }\n\n @Listen(\"keyup\", {})\n handleKeyUp(ev: KeyboardEvent): void {\n if (ev.key === \"Enter\") {\n if (this.preventSubmit || this.isSubmitDisabled()) {\n return;\n }\n\n this.handleSubmitSearch();\n this.setMenuChange(false);\n }\n\n if (ev.key === \"Escape\") {\n this.setMenuChange(false);\n }\n\n if (this.preventSubmit) {\n this.preventSubmit = false;\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.retryViaKeyPress = false;\n this.retryButtonClick = false;\n this.inputEl?.focus();\n }\n\n private handleMouseDown = (ev: Event) => {\n ev.preventDefault();\n };\n\n private handleSubmitSearchFocus = () => {\n this.searchSubmitFocused = true;\n };\n\n private handleSubmitSearch = () => {\n this.highlightedValue && (this.value = this.highlightedValue);\n this.highlightedValue = undefined;\n this.icSubmitSearch.emit({ value: this.value! });\n\n const form: HTMLFormElement | null = this.el.closest(\"FORM\");\n\n if (this.searchSubmitButton && !!form && !this.preventSubmit) {\n handleHiddenFormButtonClick(form, this.searchSubmitButton);\n }\n };\n\n private debounceAriaLiveUpdate() {\n clearTimeout(this.debounceAriaLive);\n\n this.debounceAriaLive = window.setTimeout(() => {\n this.updateSearchResultAriaLive();\n }, 500);\n }\n\n private handleSubmitSearchKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === \" \") {\n ev.preventDefault();\n this.handleSubmitSearch();\n }\n };\n\n private handleRetry = (ev: CustomEvent<IcMultiValueEventDetail>) => {\n this.retryViaKeyPress = ev.detail.keyPressed === \"Enter\";\n this.icRetryLoad.emit({ value: ev.detail.value });\n this.triggerLoading();\n this.retryButtonClick = true;\n };\n\n private triggerLoading = () => {\n const loadingOption: IcMenuOption[] = [\n {\n [this.labelField!]: this.loadingLabel,\n [this.valueField!]: \"\",\n loading: true,\n },\n ];\n if (this.filteredOptions !== loadingOption)\n this.filteredOptions = loadingOption;\n if (this.timeout) {\n this.timeoutTimer = window.setTimeout(() => {\n this.filteredOptions = [\n {\n [this.labelField!]: this.loadingErrorLabel,\n [this.valueField!]: \"\",\n timedOut: true,\n },\n ];\n }, this.timeout);\n }\n };\n\n private handleOptionSelect = (ev: CustomEvent) => {\n if (ev.detail.label === this.emptyOptionListText) {\n this.el.setFocus();\n return;\n }\n\n this.value = ev.detail.value;\n this.icOptionSelect.emit({ value: this.value });\n };\n\n private handleMenuOptionHighlight = (ev: CustomEvent) => {\n const optionValue = ev.detail.optionId?.replace(`${this.menuId}-`, \"\");\n optionValue && (this.highlightedValue = optionValue);\n if (ev.detail.optionId) {\n this.ariaActiveDescendant = ev.detail.optionId;\n } else {\n this.ariaActiveDescendant = \"\";\n }\n };\n\n private handleMenuChange = (ev: CustomEvent<IcMenuChangeEventDetail>) => {\n this.setMenuChange(ev.detail.open);\n if (!ev.detail.open) {\n this.menuCloseFromMenuChangeEvent = true;\n }\n };\n\n private setMenuChange = (open: boolean) => {\n if (this.open !== open) {\n this.open = open;\n this.icMenuChange.emit({ open });\n }\n };\n\n private handleHostFocus = () => {\n if (this.options && this.value && !this.menuCloseFromMenuChangeEvent) {\n this.setMenuChange(true);\n }\n this.handleTruncateValue(false);\n\n this.icSearchBarFocus.emit();\n };\n\n private handleHostBlur = (ev: Event) => {\n const nextFocus = (ev as FocusEvent).relatedTarget;\n if (\n this.open &&\n this.options &&\n nextFocus !== this.menu &&\n !this.retryViaKeyPress &&\n !this.retryButtonClick\n ) {\n this.setMenuChange(false);\n }\n\n if (this.retryButtonClick || this.retryViaKeyPress) {\n this.inputEl?.focus();\n }\n\n this.handleShowClearButton(false);\n this.menuCloseFromMenuChangeEvent = false;\n this.handleTruncateValue(true);\n this.icSearchBarBlur.emit({ relatedTarget: nextFocus, value: this.value! });\n this.retryViaKeyPress = false;\n this.retryButtonClick = false;\n };\n\n private handleShowClearButton = (visible: boolean): void => {\n this.showClearButton = visible;\n };\n\n private handleFocusClearButton = (): void => {\n this.clearButtonFocused = true;\n };\n\n private handleTruncateValue = (truncate: boolean): void => {\n this.truncateValue = truncate;\n };\n\n private renderAssistiveHintEl = (): void => {\n const input = this.el.shadowRoot?.querySelector(`#${this.inputId}`);\n\n if (\n input &&\n Object.keys(input).length > 0 &&\n this.hasOptionsOrFilterDisabled()\n ) {\n this.assistiveHintEl = document.createElement(\"span\");\n this.assistiveHintEl.innerText = this.assistiveHintText || \"\";\n this.assistiveHintEl.id = `${this.inputId}-assistive-hint`;\n this.assistiveHintEl.style.display = \"none\";\n if (input.after !== undefined) {\n input.after(this.assistiveHintEl);\n }\n }\n };\n\n private updateSearchResultAriaLive = (): void => {\n const searchResultsStatusEl = this.el.shadowRoot?.querySelector(\n \".search-results-status\"\n ) as HTMLParagraphElement;\n\n if (searchResultsStatusEl) {\n if (\n !this.open ||\n this.value === \"\" ||\n this.value!.length < this.charactersUntilSuggestion!\n ) {\n searchResultsStatusEl.innerText = \"\";\n } else if (\n this.hasOptionsOrFilterDisabled() &&\n this.filteredOptions.length > 0 &&\n this.open &&\n !this.filteredOptions[0].loading\n ) {\n if (this.hadNoOptions()) {\n searchResultsStatusEl.innerText = this.emptyOptionListText!;\n } else {\n searchResultsStatusEl.innerText = `${\n this.filteredOptions.length\n } result${this.filteredOptions.length > 1 ? \"s\" : \"\"} available`;\n }\n }\n }\n };\n\n private hasOptionsOrFilterDisabled = (): boolean =>\n this.options!.length > 0 || !!this.disableAutoFiltering;\n\n private hadNoOptions = (): boolean =>\n this.filteredOptions.length === 1 &&\n this.filteredOptions[0][this.labelField!] === this.emptyOptionListText &&\n this.searchMode === \"navigation\";\n\n private isSubmitDisabled = (): boolean => {\n const valueNotSet =\n this.value === undefined || this.value === null || this.value === \"\";\n const valueLengthLess =\n this.value!.length < this.charactersUntilSuggestion!;\n return (\n valueNotSet ||\n valueLengthLess ||\n this.disabled ||\n this.hadNoOptions() ||\n this.hasTimedOut ||\n !!this.loading\n );\n };\n\n private highlightFirstOptionAfterNoResults = () => {\n if (this.prevNoOption && this.menu && !this.hasTimedOut) {\n this.menu.handleSetFirstOption();\n this.prevNoOption = false;\n }\n const prevNoOptionsList = this.filteredOptions.find(\n (filteredOption) =>\n filteredOption[this.labelField!] === this.emptyOptionListText ||\n filteredOption[this.labelField!] === this.loadingErrorLabel ||\n filteredOption[this.labelField!] === this.loadingLabel\n );\n if (prevNoOptionsList) {\n this.prevNoOption = true;\n }\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n placeholder,\n helperText,\n disabled,\n value,\n readonly,\n spellcheck,\n fullWidth,\n options,\n open,\n hideLabel,\n menuId,\n ariaActiveDescendant,\n truncateValue,\n autofocus,\n autocapitalize,\n autocomplete,\n filteredOptions,\n theme,\n } = this;\n\n const disabledMode = readonly || disabled;\n\n const describedBy = getInputDescribedByText(\n inputId,\n helperText !== \"\",\n false\n ).trim();\n\n let describedById;\n\n if (describedBy !== \"\" && this.hasOptionsOrFilterDisabled()) {\n describedById = `${describedBy} ${this.inputId}-assistive-hint`;\n } else if (this.hasOptionsOrFilterDisabled()) {\n describedById = `${this.inputId}-assistive-hint`;\n } else if (describedBy !== \"\") {\n describedById = describedBy;\n } else {\n describedById = undefined;\n }\n\n const hasSuggestedSearch = !!value && this.hasOptionsOrFilterDisabled();\n const menuOpen = hasSuggestedSearch && open && filteredOptions.length > 0;\n const menuRendered =\n menuOpen && value.length >= this.charactersUntilSuggestion!;\n\n const labelValue = getLabelFromValue(\n value!,\n options!,\n this.valueField,\n this.labelField\n );\n\n renderHiddenInput(true, this.el as HTMLElement, name!, value, disabledMode);\n\n return (\n <Host\n class={{\n [\"ic-search-bar-search\"]: true,\n [\"ic-search-bar-full-width\"]: !!fullWidth,\n [\"ic-search-bar-disabled\"]: !!disabled,\n [\"ic-search-bar-small\"]: size === \"small\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onFocus={this.handleHostFocus}\n onBlur={this.handleHostBlur}\n >\n <ic-input-container readonly={readonly} disabled={disabledMode}>\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabledMode && !readonly}\n readonly={readonly}\n ></ic-input-label>\n )}\n <ic-input-component-container\n ref={(el) => (this.anchorEl = el!)}\n size={size}\n disabled={disabledMode}\n readonly={readonly}\n fullWidth={fullWidth}\n >\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el!)}\n value={options && !!labelValue ? labelValue : value}\n class={{\n \"no-left-pad\": !!readonly,\n readonly: !!readonly,\n \"truncate-value\": truncateValue,\n }}\n placeholder={placeholder}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onInputBlur}\n onFocus={this.onInputFocus}\n aria-label={label}\n aria-activedescendant={ariaActiveDescendant}\n aria-expanded={\n options!.length > 0 && menuRendered ? `${menuOpen}` : undefined\n }\n aria-owns={menuRendered ? menuId : undefined}\n aria-describedby={describedById}\n aria-controls={menuRendered ? menuId : undefined}\n aria-haspopup={options!.length > 0 ? \"listbox\" : undefined}\n aria-autocomplete={hasSuggestedSearch ? \"list\" : undefined}\n role={\n options!.length > 0 && menuRendered ? \"combobox\" : undefined\n }\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n autoFocus={autofocus}\n spellcheck={spellcheck}\n inputmode=\"search\"\n ></input>\n <div\n class={{\n \"clear-button-container\": true,\n \"clear-button-visible\":\n !!value && !disabledMode && this.showClearButton,\n }}\n >\n <ic-button\n id=\"clear-button\"\n class={{\n \"clear-button\": true,\n \"clear-button-unfocused\": !this.clearButtonFocused,\n }}\n aria-label=\"Clear\"\n innerHTML={clearIcon}\n onClick={this.handleClear}\n onMouseDown={this.handleMouseDown}\n size={size}\n onFocus={this.handleFocusClearButton}\n onBlur={this.handleClearBlur}\n onKeyDown={this.handleClear}\n type=\"submit\"\n variant=\"icon\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n <div class=\"divider\"></div>\n </div>\n <div\n class={{\n \"search-submit-button-container\": true,\n \"search-submit-button-disabled\": this.isSubmitDisabled(),\n }}\n >\n <ic-button\n id=\"search-submit-button\"\n aria-label=\"Search\"\n ref={(el) => (this.searchSubmitButton = el)}\n class={{\n [\"search-submit-button\"]: true,\n [\"search-submit-button-small\"]: size === \"small\",\n [\"search-submit-button-unfocused\"]: !this.searchSubmitFocused,\n [\"search-submit-button-disabled\"]: this.isSubmitDisabled(),\n }}\n disabled={this.isSubmitDisabled()}\n innerHTML={searchIcon}\n size={size}\n onClick={this.handleSubmitSearch}\n onMouseDown={this.handleMouseDown}\n onBlur={this.handleSubmitSearchBlur}\n onFocus={this.handleSubmitSearchFocus}\n onKeyDown={this.handleSubmitSearchKeyDown}\n type=\"submit\"\n variant=\"icon\"\n theme={this.searchSubmitFocused ? \"light\" : \"dark\"}\n ></ic-button>\n </div>\n </ic-input-component-container>\n <div\n class={{\n \"menu-container\": true,\n fullwidth: !!fullWidth,\n }}\n >\n {menuRendered && (\n <ic-menu\n class={{\n \"no-results\":\n this.hadNoOptions() ||\n (filteredOptions.length === 1 &&\n (filteredOptions[0][this.labelField!] ===\n this.loadingLabel ||\n filteredOptions[0][this.labelField!] ===\n this.loadingErrorLabel)),\n }}\n activationType=\"manual\"\n anchorEl={this.anchorEl}\n autofocusOnSelected={false}\n searchMode={this.searchMode}\n inputEl={this.inputEl}\n inputLabel={label}\n ref={(el) => (this.menu = el)}\n fullWidth={fullWidth}\n menuId={menuId}\n open={!!menuRendered}\n options={filteredOptions}\n onMenuOptionSelect={this.handleOptionSelect}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionId={this.handleMenuOptionHighlight}\n onRetryButtonClicked={this.handleRetry}\n parentEl={this.el as HTMLElement}\n value={value}\n labelField={this.labelField}\n valueField={this.valueField}\n ></ic-menu>\n )}\n </div>\n </ic-input-container>\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"search-results-status\"\n ></div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as i,h as t,H as a,g as r}from"./p-8e4e97b4.js";import{c as o}from"./p-f074ef5b.js";import{a as n,i as s,V as c,I as l}from"./p-ed8957da.js";const d='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block}:host ::slotted(ic-typography){--ic-typography-color:var(--ic-alert-description)}.container{min-height:var(--ic-alert-height);border-radius:var(--ic-space-xxs) var(--ic-space-xxxs) var(--ic-space-xxxs)\n var(--ic-space-xxs);position:relative;display:flex;align-items:center}.container-neutral{background-color:var(--ic-alert-background-neutral);border:var(--ic-space-xxxs) solid var(--ic-alert-border-neutral)}.container-info{background-color:var(--ic-alert-background-info);border:var(--ic-space-xxxs) solid var(--ic-alert-border-info)}.container-warning{background-color:var(--ic-alert-background-warning);border:var(--ic-space-xxxs) solid var(--ic-alert-border-warning)}.container-error{background-color:var(--ic-alert-background-error);border:var(--ic-space-xxxs) solid var(--ic-alert-border-error)}.container-success{background-color:var(--ic-alert-background-success);border:var(--ic-space-xxxs) solid var(--ic-alert-border-success)}.alert-icon-container{height:100%;display:flex;align-items:center}.divider{height:100%;width:var(--ic-space-xs);border-radius:var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs);position:absolute}.divider-neutral{background-color:var(--ic-alert-status-type-neutral)}.divider-info{background-color:var(--ic-alert-status-type-info)}.divider-warning{background-color:var(--ic-alert-status-type-warning)}.divider-error{background-color:var(--ic-alert-status-type-error)}.divider-success{background-color:var(--ic-alert-status-type-success)}.alert-icon{height:var(--ic-space-lg);width:1.375rem;margin-left:1.125rem}.icon-placeholder{margin-left:var(--ic-space-xs)}.alert-icon>svg{height:var(--ic-space-lg);width:var(--ic-space-lg);display:inline-block}:host([showdefaulticon="false"]) .icon-neutral{visibility:hidden;width:0;margin-left:0.625rem}.icon-neutral>svg,::slotted(svg){height:var(--ic-space-lg);width:var(--ic-space-lg);display:inline-block;fill:var(--ic-alert-icon-neutral)}:host([variant="info"]) .alert-icon svg{fill:var(--ic-alert-icon-info)}:host([variant="warning"]) .alert-icon svg{fill:var(--ic-alert-icon-warning)}:host([variant="error"]) .alert-icon svg{fill:var(--ic-alert-icon-error)}:host([variant="success"]) .alert-icon svg{fill:var(--ic-alert-icon-success)}.alert-content{display:flex;align-items:center;margin-left:0.625rem;width:100%}.alert-message{display:flex;align-items:center;padding:var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0;flex:1;--ic-typography-color:var(--ic-alert-description)}.alert-message-title-above{display:inline}.alert-title{margin-right:var(--ic-space-xs);--ic-typography-color:var(--ic-alert-title)}.alert-title-above{white-space:normal}.alert-action-container{margin-right:var(--ic-space-xs);display:flex;align-items:center}.dismiss-icon{margin-right:var(--ic-space-xxxs);margin-left:-0.375rem;padding:0.375rem;border:none;border-radius:50%;background-color:inherit;display:flex;align-items:center;justify-content:center}.dismiss-icon>svg{color:var(--ic-alert-icon-dismissible)}.dismiss-icon:hover{cursor:pointer}@media (max-width: 628px){.alert-content{display:flex;flex-direction:column;align-items:flex-start}.alert-message{display:flex;flex-direction:column;align-items:flex-start}.alert-title{white-space:normal}.alert-action-container{margin-bottom:var(--ic-space-xs)}}@media (forced-colors: active){.container{border:var(--ic-border-hc)}}';const b=d;const p=class{constructor(t){e(this,t);this.icDismiss=i(this,"icDismiss",7);this.hostMutationObserver=null;this.alertTitleWrap=false;this.visible=true;this.announced=true;this.dismissible=false;this.heading="";this.showDefaultIcon=true;this.theme="inherit";this.titleAbove=false;this.variant="neutral";this.dismissAction=()=>{this.icDismiss.emit()}}disconnectedCallback(){var e;(e=this.hostMutationObserver)===null||e===void 0?void 0:e.disconnect()}componentDidLoad(){this.alertTitleShouldWrap();this.hostMutationObserver=new MutationObserver((e=>n(e,"action",this)));this.hostMutationObserver.observe(this.el,{childList:true})}handleClick(){this.visible=!this.visible}alertTitleShouldWrap(){var e,i;const t=(i=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(".alert-title"))===null||i===void 0?void 0:i.clientHeight;if(t&&t>24)this.alertTitleWrap=true}render(){const{variant:e,heading:i,message:r,titleAbove:n,dismissible:d,announced:b,visible:p,showDefaultIcon:u,theme:g}=this;return p&&t(a,{key:"335bc190a85988d6dd90dee36bc452a249159889",role:b?"alert":null,class:{[l.Dark]:true,[`ic-theme-${g}`]:g!=="inherit"}},t("div",{key:"e856d3193d274c465ff36bcbda07d7d32f005672",class:{["container"]:true,[`container-${e}`]:true}},t("div",{key:"2ce18b9ad21036175efac411f6f975c042d1b262",class:"alert-icon-container"},t("div",{key:"d472ee06999d1f7ac81e4f17b7d951ad0d014c5f",class:{["divider"]:true,[`divider-${e}`]:true}}),e==="neutral"?s(this.el,"neutral-icon")?t("div",{class:"alert-icon svg-container icon-neutral"},t("slot",{name:"neutral-icon"})):u?t("span",{class:{["alert-icon"]:true,["svg-container"]:true,[`icon-${e}`]:true},innerHTML:c[e].icon}):t("div",{class:"icon-placeholder"}):t("span",{class:{["alert-icon"]:true,["svg-container"]:true,[`icon-${e}`]:true},innerHTML:c[e].icon})),t("div",{key:"d83902cf13b0e0de71ac43e725bab061e55dc7a4",class:"alert-content"},t("div",{key:"8d85d750bee6bc70c6d8e8d6de15ab1244f61d67",class:{["alert-message"]:true,["alert-message-title-above"]:n||this.alertTitleWrap}},i&&t("ic-typography",{key:"597ee8eedb36fa6b5fd311d939fbf6f2ce6efd35",class:{["alert-title"]:true,["alert-title-above"]:n||this.alertTitleWrap},variant:"subtitle-large"},t("p",{key:"b5a69877cd2d3d4d94c47084a2b7cb739c080b2e"},i)),t("slot",{key:"f6b20259578c375633dff1a24d115500308766d6",name:"message"},t("ic-typography",{key:"895813c7be5ddc2150f3fda932b69c5da684d460",variant:"body"},r))),s(this.el,"action")&&t("div",{key:"b18a1d6e25cc46771f33a09ca956fdcd64d407af",class:"alert-action-container"},t("slot",{key:"05841b13b776380a6f52cd5cc1a8328df8de7407",name:"action"}))),t("div",{key:"d58ecb605da9c1fe4b9931abc2bc95ce7aeb8074",class:"dismiss-icon-container"},d&&t("ic-button",{key:"d9268c63861f40c897da738994cc35cae1244546",class:{["svg-container"]:true,["dismiss-icon"]:true},innerHTML:o,onClick:this.dismissAction,variant:"icon",theme:"dark",title:"Dismiss"}))))}get el(){return r(this)}};p.style=b;export{p as ic_alert};
2
- //# sourceMappingURL=p-4c68494c.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icAlertCss","IcAlertStyle0","Alert","constructor","hostRef","this","hostMutationObserver","alertTitleWrap","visible","announced","dismissible","heading","showDefaultIcon","theme","titleAbove","variant","dismissAction","icDismiss","emit","disconnectedCallback","_a","disconnect","componentDidLoad","alertTitleShouldWrap","MutationObserver","mutationList","renderDynamicChildSlots","observe","el","childList","handleClick","titleHeight","_b","shadowRoot","querySelector","clientHeight","render","message","h","Host","key","role","class","IcBrandForegroundEnum","Dark","isSlotUsed","name","innerHTML","VARIANT_ICONS","icon","closeIcon","onClick","title"],"sources":["src/components/ic-alert/ic-alert.css?tag=ic-alert&encapsulation=shadow","src/components/ic-alert/ic-alert.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n}\n\n:host ::slotted(ic-typography) {\n --ic-typography-color: var(--ic-alert-description);\n}\n\n.container {\n min-height: var(--ic-alert-height);\n border-radius: var(--ic-space-xxs) var(--ic-space-xxxs) var(--ic-space-xxxs)\n var(--ic-space-xxs);\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.container-neutral {\n background-color: var(--ic-alert-background-neutral);\n border: var(--ic-space-xxxs) solid var(--ic-alert-border-neutral);\n}\n\n.container-info {\n background-color: var(--ic-alert-background-info);\n border: var(--ic-space-xxxs) solid var(--ic-alert-border-info);\n}\n\n.container-warning {\n background-color: var(--ic-alert-background-warning);\n border: var(--ic-space-xxxs) solid var(--ic-alert-border-warning);\n}\n\n.container-error {\n background-color: var(--ic-alert-background-error);\n border: var(--ic-space-xxxs) solid var(--ic-alert-border-error);\n}\n\n.container-success {\n background-color: var(--ic-alert-background-success);\n border: var(--ic-space-xxxs) solid var(--ic-alert-border-success);\n}\n\n.alert-icon-container {\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.divider {\n height: 100%;\n width: var(--ic-space-xs);\n border-radius: var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs);\n position: absolute;\n}\n\n.divider-neutral {\n background-color: var(--ic-alert-status-type-neutral);\n}\n\n.divider-info {\n background-color: var(--ic-alert-status-type-info);\n}\n\n.divider-warning {\n background-color: var(--ic-alert-status-type-warning);\n}\n\n.divider-error {\n background-color: var(--ic-alert-status-type-error);\n}\n\n.divider-success {\n background-color: var(--ic-alert-status-type-success);\n}\n\n.alert-icon {\n height: var(--ic-space-lg);\n width: 1.375rem;\n margin-left: 1.125rem;\n}\n\n.icon-placeholder {\n margin-left: var(--ic-space-xs);\n}\n\n.alert-icon > svg {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n display: inline-block;\n}\n\n/* required for Gatsby as prop does not seem to work when set to false */\n:host([showdefaulticon=\"false\"]) .icon-neutral {\n visibility: hidden;\n width: 0;\n margin-left: 0.625rem;\n}\n\n.icon-neutral > svg,\n::slotted(svg) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n display: inline-block;\n fill: var(--ic-alert-icon-neutral);\n}\n\n:host([variant=\"info\"]) .alert-icon svg {\n fill: var(--ic-alert-icon-info);\n}\n\n:host([variant=\"warning\"]) .alert-icon svg {\n fill: var(--ic-alert-icon-warning);\n}\n\n:host([variant=\"error\"]) .alert-icon svg {\n fill: var(--ic-alert-icon-error);\n}\n\n:host([variant=\"success\"]) .alert-icon svg {\n fill: var(--ic-alert-icon-success);\n}\n\n.alert-content {\n display: flex;\n align-items: center;\n margin-left: 0.625rem;\n width: 100%;\n}\n\n.alert-message {\n display: flex;\n align-items: center;\n padding: var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0;\n flex: 1;\n --ic-typography-color: var(--ic-alert-description);\n}\n\n.alert-message-title-above {\n display: inline;\n}\n\n.alert-title {\n margin-right: var(--ic-space-xs);\n --ic-typography-color: var(--ic-alert-title);\n}\n\n.alert-title-above {\n white-space: normal;\n}\n\n.alert-action-container {\n margin-right: var(--ic-space-xs);\n display: flex;\n align-items: center;\n}\n\n.dismiss-icon {\n margin-right: var(--ic-space-xxxs);\n margin-left: -0.375rem;\n padding: 0.375rem;\n border: none;\n border-radius: 50%;\n background-color: inherit;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.dismiss-icon > svg {\n color: var(--ic-alert-icon-dismissible);\n}\n\n.dismiss-icon:hover {\n cursor: pointer;\n}\n\n@media (max-width: 628px) {\n .alert-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n\n .alert-message {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n\n .alert-title {\n white-space: normal;\n }\n\n .alert-action-container {\n margin-bottom: var(--ic-space-xs);\n }\n}\n\n@media (forced-colors: active) {\n .container {\n border: var(--ic-border-hc);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n State,\n Listen,\n Prop,\n h,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { isSlotUsed, renderDynamicChildSlots } from \"../../utils/helpers\";\nimport {\n IcBrandForegroundEnum,\n IcStatusVariants,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\n\n/**\n * @slot message - Content is placed to the right of the title.\n * @slot action - Content is placed to the right of the message.\n * @slot neutral-icon - A custom neutral icon is placed to the left of the title. This will override the default icon if used.\n */\n@Component({\n tag: \"ic-alert\",\n styleUrl: \"ic-alert.css\",\n shadow: true,\n})\nexport class Alert {\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el: HTMLIcAlertElement;\n\n @State() alertTitleWrap: boolean = false;\n @State() visible: boolean = true;\n\n /**\n * If `true`, the alert will have the 'alert' ARIA role and will be announced to screen readers.\n */\n @Prop() announced?: boolean = true;\n\n /**\n * If `true`, the alert will have a close icon at the end to dismiss it.\n */\n @Prop() dismissible?: boolean = false;\n\n /**\n * The optional title to display at the start of the alert.\n */\n @Prop() heading?: string = \"\";\n\n /**\n * The main body message of the alert.\n */\n @Prop() message?: string;\n\n /**\n * If `true`, the default icon for the neutral variant will appear on the left of the alert.\n */\n @Prop() showDefaultIcon?: boolean = true;\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 * If `true`, the title and message will appear above and below instead of inline.\n */\n @Prop() titleAbove?: boolean = false;\n\n /**\n * The variant of the alert which will be rendered.\n */\n @Prop() variant?: IcStatusVariants = \"neutral\";\n\n /**\n * Is emitted when the user dismisses the alert.\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n componentDidLoad(): void {\n this.alertTitleShouldWrap();\n\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, \"action\", this)\n );\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleClick(): void {\n this.visible = !this.visible;\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private alertTitleShouldWrap() {\n const titleHeight =\n this.el.shadowRoot?.querySelector(\".alert-title\")?.clientHeight;\n if (titleHeight && titleHeight > 24) this.alertTitleWrap = true;\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n titleAbove,\n dismissible,\n announced,\n visible,\n showDefaultIcon,\n theme,\n } = this;\n\n return (\n visible && (\n <Host\n role={announced ? \"alert\" : null}\n class={{\n [IcBrandForegroundEnum.Dark]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div\n class={{\n [\"container\"]: true,\n [`container-${variant}`]: true,\n }}\n >\n <div class=\"alert-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n {variant === \"neutral\" ? (\n isSlotUsed(this.el, \"neutral-icon\") ? (\n <div class=\"alert-icon svg-container icon-neutral\">\n <slot name=\"neutral-icon\"></slot>\n </div>\n ) : showDefaultIcon ? (\n <span\n class={{\n [\"alert-icon\"]: true,\n [\"svg-container\"]: true,\n [`icon-${variant}`]: true,\n }}\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n ) : (\n <div class=\"icon-placeholder\"></div>\n )\n ) : (\n <span\n class={{\n [\"alert-icon\"]: true,\n [\"svg-container\"]: true,\n [`icon-${variant}`]: true,\n }}\n innerHTML={VARIANT_ICONS[variant!].icon}\n ></span>\n )}\n </div>\n <div class=\"alert-content\">\n <div\n class={{\n [\"alert-message\"]: true,\n [\"alert-message-title-above\"]:\n titleAbove || this.alertTitleWrap,\n }}\n >\n {heading && (\n <ic-typography\n class={{\n [\"alert-title\"]: true,\n [\"alert-title-above\"]: titleAbove || this.alertTitleWrap,\n }}\n variant=\"subtitle-large\"\n >\n <p>{heading}</p>\n </ic-typography>\n )}\n <slot name=\"message\">\n <ic-typography variant=\"body\">{message}</ic-typography>\n </slot>\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"alert-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n <div class=\"dismiss-icon-container\">\n {dismissible && (\n <ic-button\n class={{\n [\"svg-container\"]: true,\n [\"dismiss-icon\"]: true,\n }}\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n theme=\"dark\"\n title=\"Dismiss\"\n ></ic-button>\n )}\n </div>\n </div>\n </Host>\n )\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as i,c as t,f as e,h as s,H as l,g as o}from"./p-8e4e97b4.js";import{F as a,E as h,A as n,G as r,r as c,k as d,w as u,j as p,b,l as f,n as v,p as m,H as g,x,J as w}from"./p-ed8957da.js";const y=`<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n<path d="M7 9.5L12 14.5L17 9.5H7Z" fill="currentColor" />\n</svg>\n`;const k=`<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">\n<path d="M12.6666 4.27334L11.7266 3.33334L7.99998 7.06001L4.27331 3.33334L3.33331 4.27334L7.05998 8.00001L3.33331 11.7267L4.27331 12.6667L7.99998 8.94001L11.7266 12.6667L12.6666 11.7267L8.93998 8.00001L12.6666 4.27334Z" fill="currentColor" />\n</svg>\n`;const L='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;position:relative;--ic-input-label-helpertext-padding:var(--ic-space-xxs);--menu-max-height:100px;--border-color:var(--ic-select-field-border);--border-color-hover:var(--ic-select-field-border-hover);--border-color-pressed:var(--ic-select-field-border-pressed);--border-color-disabled:var(--ic-select-field-border-disabled);--border-color-error:var(--ic-select-field-border-error);--border-color-error-hover:var(--ic-select-field-border-error-hover);--border-color-error-pressed:var(--ic-select-field-border-error-pressed);--border-color-success:var(--ic-select-field-border-success);--border-color-success-hover:var(--ic-select-field-border-success-hover);--border-color-success-pressed:var(--ic-select-field-border-success-pressed);--border-color-warning:var(--ic-select-field-border-warning);--border-color-warning-hover:var(--ic-select-field-border-warning-hover);--border-color-warning-pressed:var(--ic-select-field-border-warning-pressed);--ic-input-label-text-color:var(--ic-select-field-labe);--ic-input-label-helper-text-color:var(\n --ic-select-input-field-label-subtitle\n );--ic-input-validation-status-text-color:var(--ic-select-state-text);--ic-input-validation-error:var(--ic-select-state-icon-error);--ic-input-validation-warning-icon-color:var(--ic-select-state-icon-warning);--ic-input-validation-success-icon-color:var(--ic-select-state-icon-success);--menu-item-text-color:var(--ic-select-list-option-text);--menu-bg-color:var(--ic-select-list-option-background);--menu-border-color:var(--ic-select-dropdown-list-border)}:host(.ic-select-disabled){--ic-input-label-text-color:var(--ic-select-field-label-disabled);--ic-input-label-helper-text-color:var(\n --ic-select-input-field-label-subtitle-disabled\n )}:host(.ic-select-full-width){width:100%}ic-input-component-container.menu-open{--border-color:var(--ic-select-field-border-pressed)}ic-input-validation .status-icon,ic-input-validation .statustext{visibility:visible}ic-input-validation.menu-open .status-icon,ic-input-validation.menu-open .statustext{visibility:hidden;transition:visibility 0s}ic-input-label{margin-bottom:var(--ic-space-xs) !important}select{border:0;border-radius:var(--ic-border-radius);background-color:var(--ic-select-field-background);color:var(--ic-select-content-text);line-height:1.5rem;letter-spacing:0.005rem;width:100%;height:100%;padding-left:0.375rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;background-position:right 0.375rem center;background-image:var(--ic-select-mobile-dropdown-icon);caret-color:var(--ic-select-input-field-text-cursor)}select option,.select-option-selected{color:var(--ic-select-list-option-text)}select:disabled{color:var(--ic-select-content-text-disabled);background-image:var(--ic-select-mobile-dropdown-icon-disabled)}select:focus{border:0;outline:0}select:not([disabled]){cursor:pointer}.select-container{width:100%;display:flex;align-items:center;position:relative}.select-input{width:100%;height:100%;padding:0 0.375rem;display:flex;cursor:pointer;align-items:center;justify-content:space-between;background:none;border:none;background-color:var(--ic-select-field-background);color:var(--ic-select-content-text)}.select-input:focus{outline:none}.select-input[disabled]{pointer-events:none}:host(.ic-select-searchable) .select-input{cursor:auto}.select-input.with-clear-button{padding-right:0}.value-text{max-width:calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-bottom:0 !important}.value-text.with-clear-button{padding-right:calc(var(--ic-space-xl) + var(--ic-space-xs))}.searchable-select-container{align-items:center;display:flex;width:100%;position:relative}.expand-icon{height:var(--ic-space-lg);padding-left:var(--ic-space-xxs);color:var(--ic-select-expand-icon-color)}.expand-icon>svg{display:inline-block;width:var(--ic-space-lg);height:var(--ic-space-lg)}:host(.ic-select-disabled) .expand-icon,:host(.ic-select-disabled) .expand-icon>svg>path{color:var(--ic-select-disabled-expand-icon-color)}:host(.ic-select-searchable) .expand-icon{padding-left:0;height:2.25rem}:host(.ic-select-searchable) .expand-icon>svg{height:2.25rem;padding:0 calc(var(--ic-space-xxxs) + var(--ic-space-xxs)) 0\n var(--ic-space-xxs)}:host(.ic-select-searchable:not(.ic-select-disabled)) .expand-icon>svg{cursor:pointer}.expand-icon-open{color:var(--ic-select-expand-icon-color)}.expand-icon-open,:host(.ic-select-searchable) .expand-icon-open{transform:rotateX(180deg)}.placeholder{color:var(--ic-select-content-placeholder-text)}:host(.ic-select-disabled.ic-select-searchable) .select-input::-moz-placeholder{color:var(--ic-select-content-text-disabled)}:host(.ic-select-disabled) .value-text,:host(.ic-select-disabled) .select-input,:host(.ic-select-disabled) .placeholder,:host(.ic-select-disabled.ic-select-searchable) .select-input::placeholder{color:var(--ic-select-content-text-disabled)}.select-input-end{display:flex;align-items:center}.clear-button-container{display:flex;align-items:center}.divider{width:var(--ic-space-1px);background-color:var(--ic-select-content-divider);margin:var(--ic-space-xxs) 0;border-radius:var(--ic-space-1px);height:var(--ic-space-lg)}:host(.ic-select-small) .divider{height:var(--ic-space-md)}:host(.ic-select-large) .divider{height:var(--ic-space-xl)}.clear-button{color:var(--ic-select-clear-button);position:absolute;right:calc(var(--ic-space-xl) + var(--ic-space-xxs) - var(--ic-space-1px));border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition)}.clear-button:focus,.clear-button:active{background-color:var(--ic-color-focus-inner);box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer);border-radius:0.25rem}.clear-button:focus,.clear-button:active *{fill:var(--ic-atoms-input-clear-button-focus)}.clear-button.searchable{position:static}.searchable-select-results-status,.multi-select-selected-count{border:0;clip:rect(0, 0, 0, 0, 0);height:var(--ic-space-1px);overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:var(--ic-space-1px)}::slotted([slot="icon"]){fill:var(--ic-select-content-placeholder-text)}.has-value ::slotted([slot="icon"]){fill:var(--ic-select-content-text)}.readonly ::slotted([slot="icon"]){padding:0.375rem;margin-bottom:0.75rem}@media (forced-colors: active){.has-value ::slotted([slot="icon"]){fill:currentcolor}}';const z=L;let C=0;const $=[...x,"tabindex","title"];const H=class{constructor(s){i(this,s);this.icBlur=t(this,"icBlur",7);this.icChange=t(this,"icChange",7);this.icClear=t(this,"icClear",7);this.icClose=t(this,"icClose",7);this.icFocus=t(this,"icFocus",7);this.icInput=t(this,"icInput",7);this.icOpen=t(this,"icOpen",7);this.icOptionSelect=t(this,"icOptionSelect",7);this.icOptionDeselect=t(this,"icOptionDeselect",7);this.icRetryLoad=t(this,"icRetryLoad",7);this.hasSetDefaultValue=false;this.inheritedAttributes={};this.initialOptionsEmpty=false;this.inputId=`ic-select-input-${C++}`;this.menuId=`${this.inputId}-menu`;this.searchableMenuItemSelected=false;this.ungroupedOptions=[];this.hostMutationObserver=null;this.clearButtonFocused=false;this.noOptions=null;this.open=false;this.pressedCharacters="";this.searchableSelectInputValue=null;this.disabled=false;this.disableAutoFiltering=false;this.emptyOptionListText="No results found";this.fullWidth=false;this.helperText="";this.hideLabel=false;this.includeDescriptionsInSearch=false;this.includeGroupTitlesInSearch=false;this.loadingErrorLabel="Loading Error";this.loadingLabel="Loading...";this.multiple=false;this.name=this.inputId;this.placeholder="Select an option";this.readonly=false;this.required=false;this.searchable=false;this.searchMatchPosition="anywhere";this.selectOnEnter=false;this.showClearButton=false;this.size="medium";this.theme="inherit";this.validationStatus="";this.validationText="";this.loading=false;this.options=[];this.filteredOptions=this.options;this.uniqueOptions=this.options;this.debounce=0;this.currDebounce=this.debounce;this.initialValue=this.value;this.inputValueToFilter=this.value;this.hostMutationCallback=i=>{let t=false;i.forEach((({attributeName:i,type:e,addedNodes:s,removedNodes:l})=>{if(i){const e=this.el.getAttribute(i);if(e&&$.includes(i)){this.inheritedAttributes[i]=e;t=true}}else if(e==="childList"){t=a(s,l,"icon")}}));if(t){e(this)}};this.handleRetry=i=>{var t;if(i.detail.keyPressed)(t=this.searchableSelectElement)===null||t===void 0?void 0:t.focus();this.blurredBecauseButtonPressed=true;this.retryButtonClick=true;this.hasSetDefaultValue=true;this.icRetryLoad.emit({value:this.searchable?this.searchableSelectInputValue:this.hiddenInputValue})};this.emitIcChange=i=>{if(this.multiple&&!Array.isArray(i)&&i!==null){this.handleMultipleSelectChange(String(i))}else{this.value=i}const t=this.multiple?this.value:i;this.icChange.emit({value:t||null})};this.emitIcInput=i=>{clearTimeout(this.debounceIcInput);this.debounceIcInput=window.setTimeout((()=>this.icInput.emit({value:i})),this.currDebounce)};this.deduplicateOptions=i=>{const t=[];const e=[];let s;i.forEach((i=>{if(i.children){s=[];i.children.forEach((i=>{if(t.includes(i.value)){console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${i.value}) which has been removed.`)}else{t.push(i.value);s.push(i)}}));const l=Object.assign(Object.assign({},i),{children:s});e.push(l)}else{if(t.includes(i.value)){console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${i.value}) which has been removed.`)}else{t.push(i.value);e.push(i)}}}));return e};this.setOptionsValuesFromLabels=()=>{if(this.options.length>0){this.options.map((i=>{if(!i.value){i.value=i.label}}))}};this.setUngroupedOptions=i=>{this.ungroupedOptions=i.detail.options};this.setTextColor=()=>{if(this.nativeSelectElement){if(this.nativeSelectElement.selectedIndex===0){this.nativeSelectElement.className="placeholder"}else{this.nativeSelectElement.className="select-option-selected"}}};this.setMenuChange=i=>{if(this.open!==i){this.open=i}};this.getLabelFromValue=i=>h(i,this.uniqueOptions);this.getMultipleOptionsString=i=>{const t=i===null||i===void 0?void 0:i.map((i=>this.getLabelFromValue(i))).filter((i=>!!i));return t===null||t===void 0?void 0:t.join(", ")};this.getFilteredChildMenuOptions=i=>{let t=i.children;if(i.children){if(this.searchable){t=n(i.children,!!this.includeDescriptionsInSearch,this.searchableSelectInputValue||"",this.searchMatchPosition)}else{t=n(i.children,false,this.pressedCharacters,"start")}}const e=Object.assign({},i);e.children=t;return e};this.getValueSortedByOptions=i=>{const t=i;const e=this.ungroupedOptions.map((i=>i.value));t.sort(((i,t)=>e.indexOf(i)-e.indexOf(t)));return t};this.handleNativeSelectChange=()=>{if(this.nativeSelectElement){this.icOptionSelect.emit({value:this.nativeSelectElement.value});this.emitIcChange(this.nativeSelectElement.value)}this.setTextColor()};this.handleCustomSelectChange=i=>{var t,e;const s=i.detail.value;if(i.detail.label===this.emptyOptionListText){(t=this.searchableSelectElement)===null||t===void 0?void 0:t.focus();return}if(this.searchable){this.value=s;this.searchableMenuItemSelected=true;if(this.value===this.currValue){this.searchableSelectInputValue=this.getLabelFromValue(this.value)||null}this.inputValueToFilter=null;this.hiddenInputValue=this.getValueFromLabel(this.searchableSelectInputValue)||null}if(this.multiple&&((e=this.value)===null||e===void 0?void 0:e.includes(s))){this.icOptionDeselect.emit({value:s})}else{this.icOptionSelect.emit({value:s})}this.ariaActiveDescendant=i.detail.optionId;this.emitIcChange(s)};this.handleMultipleSelectChange=i=>{if(this.value){let t=this.value.slice();if(this.value.includes(i)){const e=t.indexOf(i);t.splice(e,1)}else{t.push(i);t=this.getValueSortedByOptions(t)}this.value=t.length===0?null:t}else{const t=[];t.push(i);this.value=t}};this.handleSelectAllChange=i=>{const t=i.detail.select;const e=this.ungroupedOptions.filter((i=>!i.disabled));const s=e.map((i=>i.value));let l;if(t){let i;if(this.value){i=s.filter((i=>this.value&&!this.value.includes(i)))}else{i=s}i.forEach((i=>this.icOptionSelect.emit({value:i})));l=s}else{this.value.forEach((i=>this.icOptionDeselect.emit({value:i})));l=null}this.emitIcChange(l)};this.handleMenuChange=i=>{this.open=i.detail.open;this.pressedCharacters="";this.searchable&&this.handleFocusIndicatorDisplay()};this.handleMenuKeyPress=i=>{i.cancelBubble=true;if(!this.multiple){this.handleCharacterKeyDown(i.detail.key)}};this.handleFocusIndicatorDisplay=()=>{var i;const t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".focus-indicator");if(t){if(this.open){t.classList.add("focus-indicator-enabled")}else{t.classList.remove("focus-indicator-enabled")}}};this.handleMouseDown=i=>{if(!this.open){i.preventDefault()}};this.isExternalFiltering=()=>this.searchable&&!!this.disableAutoFiltering;this.handleClick=i=>{var t,e;if(!this.open&&this.menu){if(this.isExternalFiltering()){this.menu.options=this.filteredOptions}else if(!this.hasTimedOut&&!this.loading&&!((t=this.noOptions)===null||t===void 0?void 0:t.length)&&(!this.searchable||this.searchableMenuItemSelected)){this.noOptions=null;this.menu.options=this.uniqueOptions}}if(i.detail!==0){(e=this.menu)===null||e===void 0?void 0:e.handleClickOpen()}};this.handleExpandIconMouseDown=i=>{var t;if(!this.disabled){i.preventDefault();(t=this.searchableSelectElement)===null||t===void 0?void 0:t.focus();this.handleClick(i)}};this.handleClear=i=>{var t,e;i.stopPropagation();this.hasTimedOut=false;clearTimeout(this.timeoutTimer);this.clearInput();this.emitIcChange(null);this.icClear.emit();if(this.searchable){this.hiddenInputValue=null;(t=this.searchableSelectElement)===null||t===void 0?void 0:t.focus()}else{(e=this.customSelectElement)===null||e===void 0?void 0:e.focus()}};this.handleCharacterKeyDown=i=>{if(this.open&&i===" "&&this.pressedCharacters.length===0&&!this.hasTimedOut&&!this.loading){this.setMenuChange(false)}if(i.length===1&&!this.searchable){window.clearTimeout(this.characterKeyPressTimer);this.characterKeyPressTimer=window.setTimeout((()=>this.pressedCharacters=""),1e3);if(!(i===" "&&!this.pressedCharacters)){this.pressedCharacters+=i;this.handleFilter();if(!this.noOptions){this.emitIcChange(this.filteredOptions[0].value)}}}else{this.pressedCharacters=""}};this.handleNativeSelectKeyDown=i=>{if(i.key!=="Escape"&&i.key!=="Tab"||this.open){i.cancelBubble=true}this.handleCharacterKeyDown(i.key)};this.handleKeyDown=i=>{var t;if(i.key!=="Escape"&&i.key!=="Tab"||this.open){i.cancelBubble=true}const e=i.key==="ArrowDown"||i.key==="ArrowUp";if(this.menu&&!this.open){if(this.isExternalFiltering()&&(i.key==="Enter"||e)){this.menu.options=this.filteredOptions}else{if(!this.hasTimedOut){this.noOptions=null;this.menu.options=this.uniqueOptions}}}if(this.open&&i.key==="Enter"){this.setMenuChange(false)}else{if(!(e&&this.noOptions!==null)){if(!(i.key===" "&&this.pressedCharacters.length>0)){(t=this.menu)===null||t===void 0?void 0:t.handleKeyboardOpen(i)}if(!this.multiple){this.handleCharacterKeyDown(i.key)}}}};this.handleClearButtonFocus=()=>{this.clearButtonFocused=true};this.handleClearButtonBlur=i=>{var t;const e=(t=this.menu)===null||t===void 0?void 0:t.querySelector("#retry-button");if(!(this.searchableSelectElement&&i.relatedTarget===this.searchableSelectElement)&&!(e&&i.relatedTarget===e)){this.setMenuChange(false);this.handleFocusIndicatorDisplay()}this.clearButtonFocused=false};this.handleFilter=()=>{var i;const t=this.deduplicateOptions(this.searchable?[...this.uniqueOptions]:this.ungroupedOptions);let e=false;let s=[];t.map((i=>{if(i.children)e=true}));let l;if(this.searchable){l=n(t,!!this.includeDescriptionsInSearch,this.inputValueToFilter||"",this.searchMatchPosition);this.searchableMenuItemSelected=false}else{l=n(t,false,this.pressedCharacters,"start")}if(!e&&((i=l[0])===null||i===void 0?void 0:i.label)!==this.emptyOptionListText){s=l}else if(e){t.map((i=>{if(this.includeGroupTitlesInSearch){if(l.indexOf(i)!==-1){s.push(i)}else{s.push(this.getFilteredChildMenuOptions(i))}}else{s.push(this.getFilteredChildMenuOptions(i))}}))}let o=false;if(e){o=true;s.map((i=>{if(i.children&&i.children.length>0){o=false}}))}if(s.length>0&&!o){this.noOptions=null;this.filteredOptions=s}else{this.noOptions=[{label:this.emptyOptionListText,value:""}];this.filteredOptions=this.noOptions}};this.triggerLoading=()=>{this.hasTimedOut=false;this.noOptions=[{label:this.loadingLabel,value:"",loading:true}];if(this.filteredOptions!==this.noOptions&&this.searchable){this.filteredOptions=this.noOptions}else if(this.uniqueOptions!==this.noOptions&&!this.searchable){this.uniqueOptions=this.noOptions}if(this.timeout){this.timeoutTimer=window.setTimeout((()=>{this.loading=false;this.hasTimedOut=true;this.noOptions=[{label:this.loadingErrorLabel,value:"",timedOut:true}];this.filteredOptions=this.noOptions;if(!this.searchable)this.uniqueOptions=this.noOptions}),this.timeout)}};this.getValueFromLabel=i=>{var t;return i&&((t=this.uniqueOptions.find((t=>t.label===i)))===null||t===void 0?void 0:t.value)};this.handleSearchableSelectInput=i=>{this.searchableSelectInputValue=i.target.value;this.emitIcInput(this.searchableSelectInputValue);if(this.value!=null){this.emitIcChange(null)}this.hiddenInputValue=null;this.inputValueToFilter=this.searchableSelectInputValue;this.setMenuChange(true);if(!this.disableAutoFiltering){this.handleFilter();this.debounceAriaLiveUpdate()}};this.updateSearchableSelectResultAriaLive=()=>{var i;const t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".searchable-select-results-status");if(t){if(this.noOptions!==null){t.innerText=this.emptyOptionListText}else{t.innerText=""}}};this.updateMultiSelectedCountAriaLive=()=>{var i,t;const e=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".multi-select-selected-count");const s=`${(t=this.currValue)===null||t===void 0?void 0:t.length} of ${r(this.options)} selected`;if(e&&e.innerText!==s){e.innerText=s}};this.getDefaultValue=i=>this.getLabelFromValue(i)||null;this.setDefaultValue=()=>{if(!this.hasSetDefaultValue&&this.currValue){this.searchableSelectInputValue=this.searchable?this.getDefaultValue(this.currValue):null;this.initialValue=this.currValue;this.hasSetDefaultValue=true}};this.onFocus=()=>{this.icFocus.emit()};this.onBlur=({relatedTarget:i})=>{var t;const e=i;if(e!==null&&(e.tagName==="UL"&&e.className.includes("menu")||e.tagName==="LI"&&e.className.includes("option"))){return}const s=(t=this.menu)===null||t===void 0?void 0:t.querySelector("#retry-button");const l=this.searchable&&!!this.menu&&e!==this.menu&&!Array.from(this.menu.querySelectorAll("[role='option']")).includes(e)&&!(this.clearButton&&e===this.clearButton)&&!(s&&e===s);if(l){if(!this.retryButtonClick){this.setMenuChange(false);if(!this.value){this.clearInput()}}this.handleFocusIndicatorDisplay()}this.retryButtonClick=false;this.icBlur.emit()};this.onTimeoutBlur=i=>{if(i.detail.ev.relatedTarget!==this.searchableSelectElement&&!this.blurredBecauseButtonPressed){this.setMenuChange(false);this.handleFocusIndicatorDisplay();this.icBlur.emit()}this.blurredBecauseButtonPressed=false};this.handleFormReset=()=>{this.value=this.initialValue;if(this.searchable){this.searchableSelectInputValue=this.getDefaultValue(this.value);this.hiddenInputValue=this.value}};this.clearInput=()=>{var i;this.noOptions=null;if(this.searchable){(i=this.searchableSelectElement)===null||i===void 0?void 0:i.setAttribute("value","");this.searchableSelectInputValue=null;this.filteredOptions=this.uniqueOptions}}}watchDisabledHandler(){c(this.disabled,this.el)}loadingHandler(i){i&&this.triggerLoading()}watchOptionsHandler(){if(!this.hasTimedOut&&this.options!==this.noOptions){this.loading=false;clearTimeout(this.timeoutTimer);if(this.isExternalFiltering()){if(this.options.length>0){this.setOptionsValuesFromLabels();this.noOptions=null;this.uniqueOptions=this.deduplicateOptions(this.options);this.filteredOptions=this.uniqueOptions}else{this.noOptions=[{label:this.emptyOptionListText,value:""}];this.uniqueOptions=this.noOptions;this.filteredOptions=this.noOptions}this.updateSearchableSelectResultAriaLive();this.setDefaultValue()}else{this.setOptionsValuesFromLabels();this.uniqueOptions=this.deduplicateOptions(this.options);this.filteredOptions=this.uniqueOptions;if(this.initialOptionsEmpty){this.setDefaultValue();this.initialOptionsEmpty=false}}}else{if(!this.searchable){this.options=this.noOptions||[]}}}debounceChangedHandler(i){this.updateOnChangeDebounce(i)}valueChangedHandler(){if(this.value!==this.currValue){if(this.value&&this.multiple){this.currValue=this.getMultipleOptionsString(this.value)?this.getValueSortedByOptions(this.value):null;this.updateMultiSelectedCountAriaLive()}else{this.currValue=this.getLabelFromValue(this.value)?this.value:null}}if(this.searchable&&this.value){this.searchableSelectInputValue=this.getLabelFromValue(String(this.currValue))||null}}openChangedHandler(){this.open?this.icOpen.emit():this.icClose.emit()}disconnectedCallback(){var i;d(this.el,this.handleFormReset);(i=this.hostMutationObserver)===null||i===void 0?void 0:i.disconnect()}componentWillLoad(){const i=this.multiple?this.getMultipleOptionsString(this.value):this.getLabelFromValue(this.value);this.currValue=i?this.value:null;this.inheritedAttributes=u(this.el,$);c(this.disabled,this.el);this.setOptionsValuesFromLabels();p(this.el,this.handleFormReset);if(!this.options.length){this.initialOptionsEmpty=true;this.noOptions=[{label:this.emptyOptionListText,value:""}];this.uniqueOptions=this.noOptions;this.filteredOptions=this.noOptions}else{this.setDefaultValue();this.uniqueOptions=this.deduplicateOptions(this.options)}}componentDidLoad(){b([{prop:this.label,propName:"label"}],"Select");if(this.loading){this.triggerLoading()}if(this.searchable){this.hiddenInputValue=this.currValue}this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true,childList:true})}componentDidRender(){if(this.nativeSelectElement&&!this.disabled){this.setTextColor()}}async setFocus(){if(this.nativeSelectElement){this.nativeSelectElement.focus()}else if(this.customSelectElement){this.customSelectElement.focus()}else if(this.searchableSelectElement){this.searchableSelectElement.focus()}}updateOnChangeDebounce(i){if(this.currDebounce!==i){this.currDebounce=i}}debounceAriaLiveUpdate(){clearTimeout(this.debounceAria);window.setTimeout((()=>{this.updateSearchableSelectResultAriaLive()}),800)}render(){const{size:i,disabled:t,fullWidth:e,helperText:o,hideLabel:a,label:h,menuId:n,multiple:c,name:d,options:u,placeholder:p,readonly:b,required:x,searchable:L,showClearButton:z,validationStatus:C,validationText:$,currValue:H,theme:T}=this;f(true,this.el,d||this.inputId,this.searchable?this.hiddenInputValue:H,t);const O=`${C===w.Error}`;const M=v(this.inputId,o!=="",m(this.validationStatus,!!this.disabled)).trim();let B=!!this.el.querySelector(`[slot="icon"]`);if(B&&(t||b&&!this.value)){B=false}const D=`${H===null||H===void 0?void 0:H.length} of ${r(this.options)} selected`;const S=c?this.getMultipleOptionsString(H):this.getLabelFromValue(H);const j=!t&&(L?this.searchableSelectInputValue:H&&z);return s(l,{key:"0c1e3c9c3f0f02e6c90f477a92227645bbb383be",class:{"ic-select-disabled":!!t,"ic-select-searchable":!!L,[`ic-select-${i}`]:i!=="medium","ic-select-full-width":!!e,[`ic-theme-${T}`]:T!=="inherit"},onBlur:this.onBlur},s("ic-input-container",{key:"d5717cb6d0f74236066e5d21979d19a52d39afcd",readonly:b},!a&&s("ic-input-label",{key:"1bcbd58fcdad81bc02911dc405b554aa03552b6b",for:this.inputId,label:h,helperText:o,required:x,disabled:t,readonly:b}),s("ic-input-component-container",{key:"72401753a0b711ba9ff7f5b574085fd5fc3e2215",ref:i=>this.anchorEl=i,class:{"menu-open":this.open},size:i,fullWidth:e,disabled:t,readonly:b,validationStatus:C},B&&s("span",{key:"b1d8d94dddea38195ca54d546e894aef314698ee",slot:"left-icon",class:{["readonly"]:!!b,["has-value"]:!!this.value}},s("slot",{key:"47c722f6b782b628a33c05bad04613ba0ffa17e9",name:"icon"})),b?s("ic-typography",null,s("p",null,S)):g()&&!c?s("select",Object.assign({ref:i=>this.nativeSelectElement=i,disabled:t,onChange:this.handleNativeSelectChange,required:x,id:this.inputId,"aria-label":h,"aria-describedby":M,"aria-invalid":O,onBlur:this.onBlur,onFocus:this.onFocus,onKeyDown:this.handleNativeSelectKeyDown,form:this.form},this.inheritedAttributes),s("option",{value:"",selected:true,disabled:!z},p),u.map((i=>{if(i.children){return s("optgroup",{label:i.label},i.children.map((i=>s("option",{value:i.value,disabled:i.disabled,selected:i.value===H},i.label))))}else{return s("option",{value:i.value,disabled:i.disabled,selected:i.value===H},i.label)}}))):L?s("div",{class:"searchable-select-container"},s("input",{class:{"select-input":true,"with-clear-button":!!this.searchableSelectInputValue},role:"combobox",autocomplete:"off","aria-label":h,"aria-describedby":M,"aria-activedescendant":this.ariaActiveDescendant,"aria-autocomplete":"list","aria-expanded":`${this.open}`,"aria-invalid":O,"aria-required":`${x}`,"aria-controls":n,ref:i=>this.searchableSelectElement=i,id:this.inputId,value:this.searchableSelectInputValue||undefined,placeholder:p,disabled:t,onInput:this.handleSearchableSelectInput,onClick:this.handleClick,onKeyDown:this.handleKeyDown,onFocus:this.onFocus,onBlur:this.onBlur,form:this.form}),j&&s("div",{class:"clear-button-container"},s("ic-button",{id:"clear-button",ref:i=>this.clearButton=i,"aria-label":this.searchableSelectInputValue&&H===null?"Clear input":"Clear selection",class:"clear-button",innerHTML:k,onClick:this.handleClear,onFocus:this.handleClearButtonFocus,onBlur:this.handleClearButtonBlur,size:i,variant:"icon",theme:this.clearButtonFocused?"light":"dark"}),s("div",{class:"divider"})),s("span",{onMouseDown:this.handleExpandIconMouseDown,class:{"expand-icon":true,"expand-icon-open":this.open},innerHTML:y,"aria-hidden":"true"}),s("div",{"aria-live":"polite",role:"status",class:"searchable-select-results-status"})):s("div",{class:"select-container"},s("button",{class:"select-input",ref:i=>this.customSelectElement=i,id:this.inputId,"aria-label":`${h}, ${(c&&H?`${D}, ${S}`:S)||p}${x?", required":""}`,"aria-describedby":M,"aria-invalid":O,"aria-haspopup":"listbox","aria-expanded":this.open?"true":"false","aria-owns":n,"aria-controls":n,disabled:t,onBlur:this.onBlur,onFocus:this.onFocus,onClick:this.handleClick,onMouseDown:this.handleMouseDown,onKeyDown:this.handleKeyDown},s("ic-typography",{variant:"body",class:{"value-text":true,"with-clear-button":!!j,placeholder:c?!this.value||this.value.length<1:!this.getLabelFromValue(H)}},S||p),s("div",{class:"select-input-end"},j&&s("div",{class:"divider"}),s("span",{class:{"expand-icon":true,"expand-icon-open":this.open},innerHTML:y,"aria-hidden":"true"}))),j&&s("ic-button",{id:"clear-button","aria-label":"Clear selection",class:"clear-button",innerHTML:k,onClick:this.handleClear,onFocus:this.handleClearButtonFocus,onBlur:this.handleClearButtonBlur,size:i,variant:"icon",theme:this.clearButtonFocused?"light":"dark"}))),(!g()||c)&&s("ic-menu",{key:"f34f8aeca465e1f2cf7b721c06f58e4a0bab4ac3",class:{"no-results":this.loading||this.hasTimedOut||this.noOptions!==null&&this.noOptions[0]&&this.noOptions[0].label===this.emptyOptionListText},ref:i=>this.menu=i,inputEl:L?this.searchableSelectElement:this.customSelectElement,inputLabel:h,anchorEl:this.anchorEl,size:i,menuId:n,open:this.open,options:L?this.filteredOptions:this.uniqueOptions,value:c?H:H,fullWidth:e,selectOnEnter:this.selectOnEnter,onMenuStateChange:this.handleMenuChange,onMenuOptionSelect:this.handleCustomSelectChange,onMenuOptionSelectAll:this.handleSelectAllChange,onMenuKeyPress:this.handleMenuKeyPress,onUngroupedOptionsSet:this.setUngroupedOptions,onRetryButtonClicked:this.handleRetry,parentEl:this.el,onTimeoutBlur:this.onTimeoutBlur,activationType:this.searchable||c||this.selectOnEnter?"manual":"automatic",closeOnSelect:!c}),this.multiple&&s("div",{key:"4f7d83b5ce52b334acf98de594c02ad34a58f2f6","aria-live":"polite",role:"status",class:"multi-select-selected-count"}),m(this.validationStatus,!!this.disabled)&&s("ic-input-validation",{key:"3405974e038368a51105ba901a499e4234df5944",class:{"menu-open":this.open},ariaLiveMode:"polite",status:C,message:$||"",for:this.inputId})))}static get delegatesFocus(){return true}get el(){return o(this)}static get watchers(){return{disabled:["watchDisabledHandler"],loading:["loadingHandler"],options:["watchOptionsHandler"],debounce:["debounceChangedHandler"],value:["valueChangedHandler"],open:["openChangedHandler"]}}};H.style=z;export{H as ic_select};
2
- //# sourceMappingURL=p-55a37101.entry.js.map
@@ -1 +0,0 @@
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","deduplicateOptions","uniqueValues","dedupedOptions","dedupedChildren","option","children","child","console","warn","label","push","modifiedParent","Object","assign","setOptionsValuesFromLabels","length","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","isExternalFiltering","handleClick","menu","hasTimedOut","handleClickOpen","handleExpandIconMouseDown","handleClear","stopPropagation","timeoutTimer","clearInput","icClear","customSelectElement","characterKeyPressTimer","handleFilter","handleNativeSelectKeyDown","handleKeyDown","isArrowKey","handleKeyboardOpen","handleClearButtonFocus","handleClearButtonBlur","retryButton","relatedTarget","isGrouped","newFilteredOptions","menuOptionsFiltered","noChildOptionsWhenFiltered","triggerLoading","timeout","timedOut","find","handleSearchableSelectInput","target","debounceAriaLiveUpdate","updateSearchableSelectResultAriaLive","searchableSelectResultsStatusEl","innerText","updateMultiSelectedCountAriaLive","multiSelectSelectedCountEl","selectedCount","getOptionsWithoutGroupTitlesCount","getDefaultValue","setDefaultValue","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();\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 if (!this.hasTimedOut && this.options !== this.noOptions) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n if (this.isExternalFiltering()) {\n // When searchable select\n if (this.options!.length > 0) {\n this.setOptionsValuesFromLabels();\n this.noOptions = null;\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 this.updateSearchableSelectResultAriaLive();\n this.setDefaultValue();\n } else {\n this.setOptionsValuesFromLabels();\n this.uniqueOptions = this.deduplicateOptions(this.options!);\n this.filteredOptions = this.uniqueOptions;\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 * 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 /**\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 (\n this.open &&\n key === \" \" &&\n this.pressedCharacters.length === 0 &&\n !this.hasTimedOut &&\n !this.loading\n ) {\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 && 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 && currValue === null\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: 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 +0,0 @@
1
- {"version":3,"names":["icStatusTagCss","IcStatusTagStyle0","StatusTag","constructor","hostRef","this","announced","size","status","theme","uppercase","variant","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","render","h","Host","key","class","role"],"sources":["src/components/ic-status-tag/ic-status-tag.css?tag=ic-status-tag&encapsulation=shadow","src/components/ic-status-tag/ic-status-tag.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n.tag {\n padding: var(--ic-space-xxs) var(--ic-space-sm);\n font-size: 0.875rem;\n border-radius: var(--ic-space-md);\n display: inline-block;\n min-width: 2.5rem;\n text-align: center;\n\n --ic-typography-color: var(--ic-status-tag-text);\n}\n\n.small {\n padding: var(--ic-space-xxxs) var(--ic-space-sm);\n border-radius: calc(var(--ic-space-md) - var(--ic-space-xxxs));\n}\n\n.large {\n padding: var(--ic-space-xs) var(--ic-space-sm);\n border-radius: calc(var(--ic-space-md) + var(--ic-space-xxs));\n}\n\n.filled-neutral {\n background-color: var(--ic-status-tag-neutral);\n}\n\n.filled-success {\n background-color: var(--ic-status-tag-success);\n}\n\n.filled-warning {\n background-color: var(--ic-status-tag-warning);\n --ic-typography-color: var(--ic-status-tag-filled-warning-text);\n}\n\n.filled-danger {\n background-color: var(--ic-status-tag-error);\n}\n\n.outlined {\n padding: calc(var(--ic-space-xxxs) + var(--ic-space-1px))\n calc(var(--ic-space-sm) - var(--ic-space-1px));\n}\n\n.outlined.small {\n padding: var(--ic-space-1px) calc(var(--ic-space-sm) - var(--ic-space-1px));\n}\n\n.outlined.large {\n padding: calc(var(--ic-space-xs) - var(--ic-space-1px))\n calc(var(--ic-space-sm) - var(--ic-space-1px));\n}\n\n.outlined-neutral {\n background-color: var(--ic-status-tag-outlined-background-neutral);\n border: var(--ic-border-width) solid var(--ic-status-tag-outlined-neutral);\n --ic-typography-color: var(--ic-status-tag-text-inverted);\n}\n\n.outlined-success {\n background-color: var(--ic-status-tag-outlined-background-success);\n border: var(--ic-border-width) solid var(--ic-status-tag-outlined-success);\n --ic-typography-color: var(--ic-status-tag-text-inverted);\n}\n\n.outlined-warning {\n background-color: var(--ic-status-tag-outlined-background-warning);\n border: var(--ic-border-width) solid var(--ic-status-tag-outlined-warning);\n --ic-typography-color: var(--ic-status-tag-text-inverted);\n}\n\n.outlined-danger {\n background-color: var(--ic-status-tag-outlined-background-error);\n border: var(--ic-border-width) solid var(--ic-status-tag-outlined-error);\n --ic-typography-color: var(--ic-status-tag-text-inverted);\n}\n\n@media (forced-colors: active) {\n .tag {\n border: var(--ic-border-hc);\n -ms-high-contrast-adjust: none;\n forced-color-adjust: none;\n --ic-typography-color: var(--ic-status-tag-text);\n }\n}\n","import { Component, Host, h, Prop } from \"@stencil/core\";\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\nimport { IcStatusTagStatuses } from \"./ic-status-tag.types\";\nimport { IcEmphasisType, IcSizes } from \"../../utils/types\";\n\n@Component({\n tag: \"ic-status-tag\",\n styleUrl: \"ic-status-tag.css\",\n shadow: true,\n})\nexport class StatusTag {\n /**\n * If `true`, role='status' is added to the component and it will act as an 'aria-live' region.\n * Screen readers will announce changes to the `label`, but not the initial value.\n */\n @Prop() announced?: boolean = false;\n\n /**\n * The content rendered within the status tag.\n */\n @Prop() label!: string;\n\n /**\n * The size of the status tag component.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * The colour of the status tag.\n */\n @Prop() status?: IcStatusTagStatuses = \"neutral\";\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?: \"dark\" | \"light\" | \"inherit\" = \"inherit\";\n\n /**\n * The letter case of the status tag's label.\n */\n @Prop() uppercase?: boolean = true;\n\n /**\n * The emphasis of the status tag.\n */\n @Prop() variant?: IcEmphasisType = \"filled\";\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Status Tag\"\n );\n }\n\n render() {\n const { label, status, variant, size, announced, theme, uppercase } = this;\n return (\n <Host\n class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}\n role={announced ? \"status\" : null}\n aria-label=\"Status\"\n >\n <strong\n class={{\n [\"tag\"]: true,\n [`${variant}-${status}`]: true,\n [\"outlined\"]: variant === \"outlined\",\n [`${size}`]: true,\n }}\n >\n <ic-typography\n variant={uppercase ? \"label-uppercase\" : \"label\"}\n apply-vertical-margins={false}\n >\n <span>{label}</span>\n </ic-typography>\n </strong>\n </Host>\n );\n }\n}\n"],"mappings":"sFAAA,MAAMA,EAAiB,05IACvB,MAAAC,EAAeD,E,MCSFE,EAAS,MALtB,WAAAC,CAAAC,G,UAUUC,KAAAC,UAAsB,MAUtBD,KAAAE,KAAiB,SAKjBF,KAAAG,OAA+B,UAK/BH,KAAAI,MAAuC,UAKvCJ,KAAAK,UAAsB,KAKtBL,KAAAM,QAA2B,Q,CAEnC,gBAAAC,GACEC,EACE,CAAC,CAAEC,KAAMT,KAAKU,MAAOC,SAAU,UAC/B,a,CAIJ,MAAAC,GACE,MAAMF,MAAEA,EAAKP,OAAEA,EAAMG,QAAEA,EAAOJ,KAAEA,EAAID,UAAEA,EAASG,MAAEA,EAAKC,UAAEA,GAAcL,KACtE,OACEa,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CAAE,CAAC,YAAYZ,KAAUA,IAAU,WAC1Ca,KAAMhB,EAAY,SAAW,KAAI,aACtB,UAEXY,EAAA,UAAAE,IAAA,2CACEC,MAAO,CACL,CAAC,OAAQ,KACT,CAAC,GAAGV,KAAWH,KAAW,KAC1B,CAAC,YAAaG,IAAY,WAC1B,CAAC,GAAGJ,KAAS,OAGfW,EAAA,iBAAAE,IAAA,2CACET,QAASD,EAAY,kBAAoB,QAAO,yBACxB,OAExBQ,EAAA,QAAAE,IAAA,4CAAOL,K","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as s,h as i,H as t,g as e}from"./p-8e4e97b4.js";import{D as h,e as a,f as c}from"./p-ed8957da.js";const r=":host{display:block}:host ol{display:flex;list-style-type:none;align-items:center;flex-wrap:wrap;padding:0;margin:0}:host(.ic-breadcrumb-group-back) ol ::slotted(ic-breadcrumb){display:none}:host(.ic-breadcrumb-group-back) ol ::slotted(ic-breadcrumb.show){display:flex}:host(.ic-breadcrumb-group-collapsed) ol ::slotted(ic-breadcrumb.hide){display:none;opacity:0;visibility:hidden}:host(.ic-breadcrumb-group-collapsed) ol ::slotted(ic-breadcrumb.visuallyhidden){display:block;opacity:0;transition:all var(--ic-easing-transition-slow)}:host(.ic-breadcrumb-group-collapsed) ol ::slotted(ic-breadcrumb.fade){opacity:1}";const l=r;const d=class{constructor(i){s(this,i);this.ADD_CLASS_DELAY=50;this.IC_BREADCRUMB="ic-breadcrumb";this.resizeObserver=null;this.SHOW_BACK_ICON="show-back-icon";this.deviceSize=h.XL;this.expandedBreadcrumbs=false;this.backBreadcrumbOnly=false;this.collapsed=false;this.monochrome=false;this.theme="inherit";this.setBreadcrumbTheme=()=>{const s=Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB));s.forEach((s=>{s.theme=this.theme}))};this.setBreadcrumbMonochrome=()=>{const s=Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB));s.forEach((s=>{s.monochrome=this.monochrome}))};this.setBackBreadcrumb=()=>{if(this.backBreadcrumbOnly){this.setLastParentCollapsedBackBreadcrumb()}else{this.revertLastParentCollapsedBreadcrumb()}};this.setBackBreadcrumbAttr=()=>{if(this.lastParentBreadcrumb){this.lastParentBreadcrumb.classList.add("show");this.lastParentBreadcrumb.setAttribute(this.SHOW_BACK_ICON,"true")}};this.getLastParentBreadcrumb=()=>{const s=Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB));if(s.length===1){return null}this.breadcrumbs=s;this.breadcrumb=this.breadcrumbs[this.breadcrumbs.length-2];return this.breadcrumb};this.lastParentBreadcrumb=this.getLastParentBreadcrumb();this.setDefaultBreadcrumbs=()=>{const s=Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB));s.forEach((s=>{s.setAttribute(this.SHOW_BACK_ICON,"false")}))};this.setCollapsed=()=>{const s=Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB));const i=s[0];if(this.collapsedBreadcrumbs){this.collapsedBreadcrumbs.forEach((s=>{s.classList.remove("visuallyhidden");s.classList.remove("fade")}))}if(this.collapsed){this.renderCollapsedBreadcrumb();this.collapsedBreadcrumbs=s.splice(1,s.length-2).filter((s=>!s.classList.contains("collapsed-breadcrumb-wrapper")));if(!this.backBreadcrumbOnly){this.collapsedBreadcrumbs.forEach((s=>s.classList.add("hide")))}if(i){i.insertAdjacentElement("afterend",this.collapsedBreadcrumbWrapper)}}else{this.collapsedBreadcrumbWrapper.remove()}};this.clickHandler=()=>{this.handleHiddenCollapsedBreadcrumbs()};this.renderCollapsedBreadcrumb=()=>{if(this.collapsedBreadcrumbEl===undefined){this.collapsedBreadcrumbWrapper=document.createElement("ic-breadcrumb");this.collapsedBreadcrumbWrapper.classList.add("collapsed-breadcrumb-wrapper");this.collapsedBreadcrumbEl=document.createElement("button");const s=document.createElement("span");s.id="collapsed-button-label";s.innerText="Collapsed breadcrumbs";s.className="hide";this.collapsedBreadcrumbEl.setAttribute("aria-labelledby","collapsed-button-label");const i=document.createElement("span");i.id="collapsed-button-described";i.innerText="Select to view collapsed breadcrumbs";i.className="hide";this.collapsedBreadcrumbEl.setAttribute("aria-describedby","collapsed-button-described");this.collapsedBreadcrumbEl.id="collapsed-ellipsis";this.collapsedBreadcrumbEl.innerText="...";this.collapsedBreadcrumbEl.classList.add("collapsed-breadcrumb");this.collapsedBreadcrumbEl.addEventListener("click",this.clickHandler);this.collapsedBreadcrumbWrapper.append(i);this.collapsedBreadcrumbWrapper.append(s);this.collapsedBreadcrumbWrapper.append(this.collapsedBreadcrumbEl)}};this.handleHiddenCollapsedBreadcrumbs=()=>{this.collapsedBreadcrumbWrapper.remove();this.collapsedBreadcrumbs.forEach((s=>{s.classList.add("visuallyhidden");s.classList.remove("hide");setTimeout((()=>{s.classList.add("fade")}),this.ADD_CLASS_DELAY);this.removeVisuallyHiddenClass(s)}));this.expandedBreadcrumbs=true;this.collapsedBreadcrumbs[0].setFocus()};this.transitionendHandler=s=>{if(s.propertyName==="opacity"){s.target.classList.remove("visuallyhidden")}};this.removeVisuallyHiddenClass=s=>{s.addEventListener("transitionend",this.transitionendHandler)};this.setLastParentCollapsedBackBreadcrumb=()=>{this.lastParentBreadcrumb=this.getLastParentBreadcrumb();this.setBackBreadcrumbAttr();if(this.lastParentBreadcrumb){this.lastParentBreadcrumb.classList.remove("hide");this.lastParentBreadcrumb.classList.add("show")}};this.revertLastParentCollapsedBreadcrumb=()=>{if(this.lastParentBreadcrumb){this.lastParentBreadcrumb.setAttribute(this.SHOW_BACK_ICON,"false");if(this.collapsed){this.lastParentBreadcrumb.classList.add("hide")}}};this.resizeObserverCallback=s=>{if(s!==this.deviceSize){this.deviceSize=s;if(this.deviceSize<=h.S){this.el.setAttribute("back-breadcrumb-only","true");if(this.collapsed){this.setLastParentCollapsedBackBreadcrumb()}else{this.setBackBreadcrumb()}}else{this.el.setAttribute("back-breadcrumb-only","false");if(this.collapsed&&this.breadcrumbs&&this.breadcrumbs.length>2){this.revertLastParentCollapsedBreadcrumb();if(this.expandedBreadcrumbs){this.setDefaultBreadcrumbs()}else{this.setCollapsed()}}else{this.setDefaultBreadcrumbs()}}}};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{const s=a();this.resizeObserverCallback(s)}));this.resizeObserver.observe(this.el)}}watchBackBreadcrumbHandler(){this.setBackBreadcrumb()}watchCollapsedHandler(){this.setCollapsed()}watchMonochromeHandler(){this.setBreadcrumbMonochrome()}watchThemeHandler(){this.setBreadcrumbTheme()}componentWillLoad(){const s=Array.from(this.el.querySelectorAll(this.IC_BREADCRUMB));this.setBreadcrumbTheme();this.setBreadcrumbMonochrome();if(this.backBreadcrumbOnly){this.setBackBreadcrumb()}else{c(this.runResizeObserver)}if(this.collapsed&&s.length>2){if(a()===h.S){this.setLastParentCollapsedBackBreadcrumb()}else{this.setCollapsed()}}}disconnectedCallback(){this.breadcrumb&&this.breadcrumb.removeEventListener("transitionend",this.transitionendHandler);this.collapsedBreadcrumbEl&&this.collapsedBreadcrumbEl.removeEventListener("click",this.clickHandler)}render(){return i(t,{key:"aeb0ffb06d519727c806ff53ca569fb3f5e89f45",class:{"ic-breadcrumb-group-back":!!this.backBreadcrumbOnly,"ic-breadcrumb-group-collapsed":!!this.collapsed,[`ic-theme-${this.theme}`]:this.theme!=="inherit"}},i("nav",{key:"c5b6ceb2ecbcd99f331981ed7d41d8f65929484b","aria-label":"breadcrumbs"},i("ol",{key:"6204a3fc1a832524efd7f18e7b3ddcc7e26c0fa4"},i("slot",{key:"d43502ff8a825c31983b661d4221b610aaad5d94"}))))}get el(){return e(this)}static get watchers(){return{backBreadcrumbOnly:["watchBackBreadcrumbHandler"],collapsed:["watchCollapsedHandler"],monochrome:["watchMonochromeHandler"],theme:["watchThemeHandler"]}}};d.style=l;export{d as ic_breadcrumb_group};
2
- //# sourceMappingURL=p-5e1fd097.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icBreadcrumbGroupCss","IcBreadcrumbGroupStyle0","BreadcrumbGroup","constructor","hostRef","this","ADD_CLASS_DELAY","IC_BREADCRUMB","resizeObserver","SHOW_BACK_ICON","deviceSize","DEVICE_SIZES","XL","expandedBreadcrumbs","backBreadcrumbOnly","collapsed","monochrome","theme","setBreadcrumbTheme","allBreadcrumbs","Array","from","el","querySelectorAll","forEach","breadcrumb","setBreadcrumbMonochrome","setBackBreadcrumb","setLastParentCollapsedBackBreadcrumb","revertLastParentCollapsedBreadcrumb","setBackBreadcrumbAttr","lastParentBreadcrumb","classList","add","setAttribute","getLastParentBreadcrumb","length","breadcrumbs","setDefaultBreadcrumbs","setCollapsed","firstBreadcrumb","collapsedBreadcrumbs","remove","renderCollapsedBreadcrumb","splice","filter","contains","insertAdjacentElement","collapsedBreadcrumbWrapper","clickHandler","handleHiddenCollapsedBreadcrumbs","collapsedBreadcrumbEl","undefined","document","createElement","ariaLabel","id","innerText","className","ariaDescribed","addEventListener","append","setTimeout","removeVisuallyHiddenClass","setFocus","transitionendHandler","event","propertyName","target","resizeObserverCallback","currSize","S","runResizeObserver","ResizeObserver","getCurrentDeviceSize","observe","watchBackBreadcrumbHandler","watchCollapsedHandler","watchMonochromeHandler","watchThemeHandler","componentWillLoad","checkResizeObserver","disconnectedCallback","removeEventListener","render","h","Host","key","class"],"sources":["src/components/ic-breadcrumb-group/ic-breadcrumb-group.css?tag=ic-breadcrumb-group&encapsulation=shadow","src/components/ic-breadcrumb-group/ic-breadcrumb-group.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n:host ol {\n display: flex;\n list-style-type: none;\n align-items: center;\n flex-wrap: wrap;\n padding: 0;\n margin: 0;\n}\n\n:host(.ic-breadcrumb-group-back) ol ::slotted(ic-breadcrumb) {\n display: none;\n}\n\n:host(.ic-breadcrumb-group-back) ol ::slotted(ic-breadcrumb.show) {\n display: flex;\n}\n\n:host(.ic-breadcrumb-group-collapsed) ol ::slotted(ic-breadcrumb.hide) {\n display: none;\n opacity: 0;\n visibility: hidden;\n}\n\n:host(.ic-breadcrumb-group-collapsed)\n ol\n ::slotted(ic-breadcrumb.visuallyhidden) {\n display: block;\n opacity: 0;\n transition: all var(--ic-easing-transition-slow);\n}\n\n:host(.ic-breadcrumb-group-collapsed) ol ::slotted(ic-breadcrumb.fade) {\n opacity: 1;\n}\n","import { Component, Host, h, Element, Prop, State, Watch } from \"@stencil/core\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n} from \"../../utils/helpers\";\nimport { IcThemeMode } from \"../../utils/types\";\n\n@Component({\n tag: \"ic-breadcrumb-group\",\n styleUrl: \"ic-breadcrumb-group.css\",\n shadow: true,\n})\n\n// Added ResizeObserver to find out width of breadcrumbs and parents. Use side navigation long title for ref.\nexport class BreadcrumbGroup {\n private ADD_CLASS_DELAY = 50;\n private breadcrumb: HTMLIcBreadcrumbElement;\n private breadcrumbs: HTMLIcBreadcrumbElement[];\n private collapsedBreadcrumbEl: HTMLButtonElement;\n private collapsedBreadcrumbs: HTMLIcBreadcrumbElement[];\n private collapsedBreadcrumbWrapper: HTMLIcBreadcrumbElement;\n private IC_BREADCRUMB: string = \"ic-breadcrumb\";\n private resizeObserver: ResizeObserver | null = null;\n private SHOW_BACK_ICON: string = \"show-back-icon\";\n\n @Element() el: HTMLIcBreadcrumbGroupElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() expandedBreadcrumbs: boolean = false;\n\n /**\n * If `true`, display only a single breadcrumb for the parent page with a back icon.\n */\n @Prop() backBreadcrumbOnly?: boolean = false;\n @Watch(\"backBreadcrumbOnly\")\n watchBackBreadcrumbHandler(): void {\n this.setBackBreadcrumb();\n }\n\n /**\n * If `true`, all breadcrumbs between the first and last breadcrumb will be collapsed.\n */\n @Prop() collapsed?: boolean = false;\n @Watch(\"collapsed\")\n watchCollapsedHandler(): void {\n this.setCollapsed();\n }\n\n /**\n * If `true`, the breadcrumb group will display as black in the light theme, and white in the dark theme.\n */\n @Prop() monochrome?: boolean = false;\n @Watch(\"monochrome\")\n watchMonochromeHandler(): void {\n this.setBreadcrumbMonochrome();\n }\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 @Watch(\"theme\")\n watchThemeHandler(): void {\n this.setBreadcrumbTheme();\n }\n\n componentWillLoad(): void {\n const allBreadcrumbs = Array.from(\n this.el.querySelectorAll(this.IC_BREADCRUMB)\n );\n\n this.setBreadcrumbTheme();\n this.setBreadcrumbMonochrome();\n\n if (this.backBreadcrumbOnly) {\n this.setBackBreadcrumb();\n } else {\n checkResizeObserver(this.runResizeObserver);\n }\n\n if (this.collapsed && allBreadcrumbs.length > 2) {\n if (getCurrentDeviceSize() === DEVICE_SIZES.S) {\n this.setLastParentCollapsedBackBreadcrumb();\n } else {\n this.setCollapsed();\n }\n }\n }\n\n disconnectedCallback(): void {\n this.breadcrumb &&\n this.breadcrumb.removeEventListener(\n \"transitionend\",\n this.transitionendHandler\n );\n\n this.collapsedBreadcrumbEl &&\n this.collapsedBreadcrumbEl.removeEventListener(\n \"click\",\n this.clickHandler\n );\n }\n\n private setBreadcrumbTheme = () => {\n const allBreadcrumbs = Array.from(\n this.el.querySelectorAll(this.IC_BREADCRUMB)\n ) as HTMLIcBreadcrumbElement[];\n\n allBreadcrumbs.forEach((breadcrumb) => {\n breadcrumb.theme = this.theme;\n });\n };\n\n private setBreadcrumbMonochrome = () => {\n const allBreadcrumbs = Array.from(\n this.el.querySelectorAll(this.IC_BREADCRUMB)\n ) as HTMLIcBreadcrumbElement[];\n\n allBreadcrumbs.forEach((breadcrumb) => {\n breadcrumb.monochrome = this.monochrome;\n });\n };\n\n private setBackBreadcrumb = () => {\n if (this.backBreadcrumbOnly) {\n this.setLastParentCollapsedBackBreadcrumb();\n } else {\n this.revertLastParentCollapsedBreadcrumb();\n }\n };\n\n private setBackBreadcrumbAttr = () => {\n if (this.lastParentBreadcrumb) {\n this.lastParentBreadcrumb.classList.add(\"show\");\n this.lastParentBreadcrumb.setAttribute(this.SHOW_BACK_ICON, \"true\");\n }\n };\n\n private getLastParentBreadcrumb = (): HTMLIcBreadcrumbElement | null => {\n const allBreadcrumbs: HTMLIcBreadcrumbElement[] = Array.from(\n this.el.querySelectorAll(this.IC_BREADCRUMB)\n );\n\n if (allBreadcrumbs.length === 1) {\n return null;\n }\n\n this.breadcrumbs = allBreadcrumbs;\n this.breadcrumb = this.breadcrumbs[this.breadcrumbs.length - 2];\n\n return this.breadcrumb;\n };\n\n private lastParentBreadcrumb = this.getLastParentBreadcrumb();\n\n private setDefaultBreadcrumbs = () => {\n const allBreadcrumbs = Array.from(\n this.el.querySelectorAll(this.IC_BREADCRUMB)\n );\n allBreadcrumbs.forEach((breadcrumb) => {\n breadcrumb.setAttribute(this.SHOW_BACK_ICON, \"false\");\n });\n };\n\n private setCollapsed = () => {\n const allBreadcrumbs: HTMLIcBreadcrumbElement[] = Array.from(\n this.el.querySelectorAll(this.IC_BREADCRUMB)\n );\n const firstBreadcrumb = allBreadcrumbs[0];\n if (this.collapsedBreadcrumbs) {\n this.collapsedBreadcrumbs.forEach((breadcrumb) => {\n breadcrumb.classList.remove(\"visuallyhidden\");\n breadcrumb.classList.remove(\"fade\");\n });\n }\n\n if (this.collapsed) {\n this.renderCollapsedBreadcrumb();\n\n this.collapsedBreadcrumbs = allBreadcrumbs\n .splice(1, allBreadcrumbs.length - 2)\n .filter(\n (breadcrumb) =>\n !breadcrumb.classList.contains(\"collapsed-breadcrumb-wrapper\")\n );\n if (!this.backBreadcrumbOnly) {\n this.collapsedBreadcrumbs.forEach((breadcrumb) =>\n breadcrumb.classList.add(\"hide\")\n );\n }\n\n if (firstBreadcrumb) {\n firstBreadcrumb.insertAdjacentElement(\n \"afterend\",\n this.collapsedBreadcrumbWrapper\n );\n }\n } else {\n this.collapsedBreadcrumbWrapper.remove();\n }\n };\n\n private clickHandler = () => {\n this.handleHiddenCollapsedBreadcrumbs();\n };\n\n private renderCollapsedBreadcrumb = () => {\n if (this.collapsedBreadcrumbEl === undefined) {\n this.collapsedBreadcrumbWrapper = document.createElement(\"ic-breadcrumb\");\n this.collapsedBreadcrumbWrapper.classList.add(\n \"collapsed-breadcrumb-wrapper\"\n );\n this.collapsedBreadcrumbEl = document.createElement(\"button\");\n\n const ariaLabel = document.createElement(\"span\");\n ariaLabel.id = \"collapsed-button-label\";\n ariaLabel.innerText = \"Collapsed breadcrumbs\";\n ariaLabel.className = \"hide\";\n this.collapsedBreadcrumbEl.setAttribute(\n \"aria-labelledby\",\n \"collapsed-button-label\"\n );\n\n const ariaDescribed = document.createElement(\"span\");\n ariaDescribed.id = \"collapsed-button-described\";\n ariaDescribed.innerText = \"Select to view collapsed breadcrumbs\";\n ariaDescribed.className = \"hide\";\n this.collapsedBreadcrumbEl.setAttribute(\n \"aria-describedby\",\n \"collapsed-button-described\"\n );\n\n this.collapsedBreadcrumbEl.id = \"collapsed-ellipsis\";\n this.collapsedBreadcrumbEl.innerText = \"...\";\n this.collapsedBreadcrumbEl.classList.add(\"collapsed-breadcrumb\");\n this.collapsedBreadcrumbEl.addEventListener(\"click\", this.clickHandler);\n\n this.collapsedBreadcrumbWrapper.append(ariaDescribed);\n this.collapsedBreadcrumbWrapper.append(ariaLabel);\n this.collapsedBreadcrumbWrapper.append(this.collapsedBreadcrumbEl);\n }\n };\n\n private handleHiddenCollapsedBreadcrumbs = () => {\n this.collapsedBreadcrumbWrapper.remove();\n this.collapsedBreadcrumbs.forEach((breadcrumb) => {\n breadcrumb.classList.add(\"visuallyhidden\");\n breadcrumb.classList.remove(\"hide\");\n setTimeout(() => {\n breadcrumb.classList.add(\"fade\");\n }, this.ADD_CLASS_DELAY);\n\n this.removeVisuallyHiddenClass(breadcrumb);\n });\n this.expandedBreadcrumbs = true;\n // Set focus to first unhidden breadcrumb\n this.collapsedBreadcrumbs[0].setFocus();\n };\n\n private transitionendHandler = (event: TransitionEvent) => {\n if (event.propertyName === \"opacity\") {\n (event.target as HTMLElement).classList.remove(\"visuallyhidden\");\n }\n };\n\n private removeVisuallyHiddenClass = (breadcrumb: HTMLIcBreadcrumbElement) => {\n breadcrumb.addEventListener(\"transitionend\", this.transitionendHandler);\n };\n\n private setLastParentCollapsedBackBreadcrumb = () => {\n this.lastParentBreadcrumb = this.getLastParentBreadcrumb();\n this.setBackBreadcrumbAttr();\n if (this.lastParentBreadcrumb) {\n this.lastParentBreadcrumb.classList.remove(\"hide\");\n this.lastParentBreadcrumb.classList.add(\"show\");\n }\n };\n\n private revertLastParentCollapsedBreadcrumb = () => {\n if (this.lastParentBreadcrumb) {\n this.lastParentBreadcrumb.setAttribute(this.SHOW_BACK_ICON, \"false\");\n if (this.collapsed) {\n this.lastParentBreadcrumb.classList.add(\"hide\");\n }\n }\n };\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n\n if (this.deviceSize <= DEVICE_SIZES.S) {\n this.el.setAttribute(\"back-breadcrumb-only\", \"true\");\n if (this.collapsed) {\n this.setLastParentCollapsedBackBreadcrumb();\n } else {\n this.setBackBreadcrumb();\n }\n } else {\n this.el.setAttribute(\"back-breadcrumb-only\", \"false\");\n if (this.collapsed && this.breadcrumbs && this.breadcrumbs.length > 2) {\n this.revertLastParentCollapsedBreadcrumb();\n if (this.expandedBreadcrumbs) {\n this.setDefaultBreadcrumbs();\n } else {\n this.setCollapsed();\n }\n } else {\n this.setDefaultBreadcrumbs();\n }\n }\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n render() {\n return (\n <Host\n class={{\n \"ic-breadcrumb-group-back\": !!this.backBreadcrumbOnly,\n \"ic-breadcrumb-group-collapsed\": !!this.collapsed,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n >\n <nav aria-label=\"breadcrumbs\">\n <ol>\n <slot />\n </ol>\n </nav>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,h as o,H as t,g as i}from"./p-8e4e97b4.js";import{D as r,g as n,b as l}from"./p-ed8957da.js";const s='/*! 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(.footer-link-group-sparse){--footer-link-group-margin-right:5.938rem;--footer-link-group-border-bottom:0 solid transparent;--footer-link-label-margin-top:0;--footer-link-label-margin-bottom:var(--ic-space-md)}:host(.footer-link-group-small){--footer-link-group-margin-right:0;--footer-link-label-margin-top:var(--ic-space-md);--footer-link-label-margin-bottom:var(--ic-space-md);--footer-link-group-links-padding-left:var(--ic-space-md);--footer-link-group-links-padding-bottom:var(--ic-space-md)}:host(.footer-link-group-small){--footer-link-group-border-bottom:var(--ic-space-1px) solid\n var(--ic-footer-keyline)}:host(.footer-link-group){margin-right:var(--footer-link-group-margin-right);border-bottom:var(--footer-link-group-border-bottom)}:host(.footer-link-group-small:hover){background-color:var(--ic-footer-hover);cursor:pointer}:host(.footer-link-group-sparse:focus){box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);outline:var(--ic-hc-focus-outline);z-index:1}:host(.footer-link-group-small:focus){box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);outline:var(--ic-hc-focus-outline);z-index:1}:host(.footer-link-group-small:active){background-color:var(--ic-footer-pressed)}:host ic-section-container{outline:none}.footer-link-label{margin-top:var(--footer-link-label-margin-top);margin-bottom:var(--footer-link-label-margin-bottom);flex-grow:1}.footer-link-group-toggle{fill:var(--ic-footer-chevron-icon) !important}.footer-link-group-links{display:flex;flex-direction:column}.footer-link-group-header{display:flex;align-items:center}ic-typography{--ic-typography-color:var(--ic-footer-link)}';const a=s;const p=class{constructor(o){e(this,o);this.expanded=false;this.deviceSize=r.XL;this.dropdownIconStyle=n();this.small=false;this.handleKeydown=e=>{if(e.key===" "||e.key==="Enter"){this.toggleExpanded()}};this.toggleExpanded=()=>{this.expanded=!this.expanded}}componentWillLoad(){this.small=this.isSmall(this.el)}componentDidLoad(){l([{prop:this.label,propName:"label"}],"Footer Link Group")}footerResizeHandler(){this.small=this.isSmall(this.el)}footerBrandChangeHandler(e){this.dropdownIconStyle=e.detail.mode}isSmall(e){if(e.parentElement!==null){if(e.parentElement.classList.contains("ic-footer")){return e.parentElement.classList.contains("ic-footer-small")}else{return this.isSmall(e.parentElement)}}else{return false}}render(){const{small:e,label:i}=this;return!e?o(t,{class:{["footer-link-group footer-link-group-sparse"]:true,[`footer-link-group-${this.dropdownIconStyle}`]:true},role:"listitem"},o("div",{class:"footer-link-label"},o("ic-typography",{variant:"subtitle-small"},i)),o("div",{class:"footer-link-group-links",role:"list"},o("slot",null))):o(t,{class:{["footer-link-group footer-link-group-small"]:true,[`footer-link-group-${this.dropdownIconStyle}`]:true},onClick:this.toggleExpanded,onKeydown:this.handleKeydown,"aria-expanded":this.expanded,role:"listitem"},o("ic-section-container",{tabindex:"0",fullHeight:true},o("div",{class:"footer-link-group-header"},o("div",{class:"footer-link-label"},o("ic-typography",{variant:"label"},i)),this.expanded?o("svg",{class:"footer-link-group-toggle",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",width:"1em",height:"1em",preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 1200 1200"},o("path",{fill:"currentColor",d:"M600.002 210.605L421.285 389.336L0 810.559l178.721 178.836l421.281-421.341l421.281 421.341L1200 810.559L778.733 389.336L600.002 210.605z"})):o("svg",{class:"footer-link-group-toggle",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",width:"1em",height:"1em",preserveAspectRatio:"xMidYMid meet",viewBox:"0 0 1200 1200"},o("g",{transform:"translate(0 1200) scale(1 -1)"},o("path",{fill:"currentColor",d:"M600.002 210.605L421.285 389.336L0 810.559l178.721 178.836l421.281-421.341l421.281 421.341L1200 810.559L778.733 389.336L600.002 210.605z"})))),this.expanded&&o("div",{class:"footer-link-group-links",role:"list"},o("slot",null))))}static get delegatesFocus(){return true}get el(){return i(this)}};p.style=a;export{p as ic_footer_link_group};
2
- //# sourceMappingURL=p-73fc198f.entry.js.map