@ukic/web-components 3.22.0 → 3.24.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 (305) hide show
  1. package/dist/cjs/{helpers-81cd6930.js → helpers-51bab4b5.js} +9 -68
  2. package/dist/cjs/helpers-51bab4b5.js.map +1 -0
  3. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  4. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-action-chip.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-button_3.cjs.entry.js +5 -3
  12. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-dialog.cjs.entry.js +41 -29
  20. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +27 -26
  29. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  34. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-pagination-bar.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-pagination_3.cjs.entry.js +19 -17
  42. package/dist/cjs/ic-pagination_3.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-radio-group.cjs.entry.js +7 -7
  45. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-radio-option.cjs.entry.js +9 -7
  47. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  49. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  51. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  57. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  62. package/dist/collection/components/ic-dialog/ic-dialog.js +41 -29
  63. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  64. package/dist/collection/components/ic-radio-group/ic-radio-group.css +15 -0
  65. package/dist/collection/components/ic-radio-group/ic-radio-group.js +9 -9
  66. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  67. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +48 -4
  68. package/dist/collection/components/ic-radio-option/ic-radio-option.css +29 -444
  69. package/dist/collection/components/ic-radio-option/ic-radio-option.js +7 -5
  70. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  71. package/dist/collection/components/ic-select/ic-select.js +18 -16
  72. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  73. package/dist/collection/components/ic-select/ic-select.types.js.map +1 -1
  74. package/dist/collection/components/ic-tooltip/ic-tooltip.js +21 -2
  75. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  76. package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +32 -0
  77. package/dist/collection/utils/helpers.js +8 -66
  78. package/dist/collection/utils/helpers.js.map +1 -1
  79. package/dist/components/helpers.js +9 -67
  80. package/dist/components/helpers.js.map +1 -1
  81. package/dist/components/ic-dialog.js +41 -29
  82. package/dist/components/ic-dialog.js.map +1 -1
  83. package/dist/components/ic-divider2.js +1 -1
  84. package/dist/components/ic-footer.js +1 -1
  85. package/dist/components/ic-horizontal-scroll2.js +1 -1
  86. package/dist/components/ic-menu2.js +27 -26
  87. package/dist/components/ic-menu2.js.map +1 -1
  88. package/dist/components/ic-navigation-button.js +1 -1
  89. package/dist/components/ic-navigation-group.js +1 -1
  90. package/dist/components/ic-navigation-item.js +1 -1
  91. package/dist/components/ic-navigation-menu2.js +1 -1
  92. package/dist/components/ic-pagination-bar.js +1 -1
  93. package/dist/components/ic-pagination-item2.js +1 -1
  94. package/dist/components/ic-popover-menu.js.map +1 -1
  95. package/dist/components/ic-radio-group.js +6 -6
  96. package/dist/components/ic-radio-group.js.map +1 -1
  97. package/dist/components/ic-radio-option.js +8 -6
  98. package/dist/components/ic-radio-option.js.map +1 -1
  99. package/dist/components/ic-search-bar.js +1 -1
  100. package/dist/components/ic-select2.js +19 -17
  101. package/dist/components/ic-select2.js.map +1 -1
  102. package/dist/components/ic-side-navigation.js +1 -1
  103. package/dist/components/ic-step.js.map +1 -1
  104. package/dist/components/ic-tab-panel.js.map +1 -1
  105. package/dist/components/ic-text-field2.js +1 -1
  106. package/dist/components/ic-theme.js +1 -1
  107. package/dist/components/ic-toast.js +1 -1
  108. package/dist/components/ic-toggle-button.js +1 -1
  109. package/dist/components/ic-tooltip2.js +5 -3
  110. package/dist/components/ic-tooltip2.js.map +1 -1
  111. package/dist/components/ic-top-navigation.js +1 -1
  112. package/dist/core/core.esm.js +1 -1
  113. package/dist/core/{p-fb9376f0.entry.js → p-043a5677.entry.js} +2 -2
  114. package/dist/core/{p-0fb7f915.entry.js → p-111abe0f.entry.js} +2 -2
  115. package/dist/core/{p-e7767c0d.entry.js → p-174a70c4.entry.js} +2 -2
  116. package/dist/core/{p-347cc084.entry.js → p-19056c16.entry.js} +2 -2
  117. package/dist/core/{p-659d048d.entry.js → p-1bacfc3c.entry.js} +2 -2
  118. package/dist/core/p-27540e3e.entry.js +2 -0
  119. package/dist/core/p-27540e3e.entry.js.map +1 -0
  120. package/dist/core/{p-f661ba76.entry.js → p-2a1faef2.entry.js} +2 -2
  121. package/dist/core/{p-67de1290.entry.js → p-2b1ce5b7.entry.js} +2 -2
  122. package/dist/core/p-2e15136e.entry.js +2 -0
  123. package/dist/core/p-2e15136e.entry.js.map +1 -0
  124. package/dist/core/{p-ea7a3d30.entry.js → p-3f001e75.entry.js} +2 -2
  125. package/dist/core/{p-9cb83a2e.entry.js → p-44d043f7.entry.js} +2 -2
  126. package/dist/core/{p-e938eb31.entry.js → p-4613f697.entry.js} +2 -2
  127. package/dist/core/{p-4f56acff.entry.js → p-46e5a58b.entry.js} +2 -2
  128. package/dist/core/{p-cfbacca1.entry.js → p-4dbc72f4.entry.js} +2 -2
  129. package/dist/core/{p-99433296.entry.js → p-4e59d889.entry.js} +2 -2
  130. package/dist/core/p-52be32d7.entry.js +3 -0
  131. package/dist/core/p-52be32d7.entry.js.map +1 -0
  132. package/dist/core/{p-daec7e69.entry.js → p-570d763b.entry.js} +2 -2
  133. package/dist/core/{p-8a833e82.entry.js → p-571404d0.entry.js} +2 -2
  134. package/dist/core/{p-61d79fc6.entry.js → p-574ef8c9.entry.js} +2 -2
  135. package/dist/core/{p-a780a34b.entry.js → p-59c5265c.entry.js} +2 -2
  136. package/dist/core/{p-2691cc80.entry.js → p-5d01fefb.entry.js} +2 -2
  137. package/dist/core/{p-2b87c592.entry.js → p-6183ad85.entry.js} +2 -2
  138. package/dist/core/{p-46fd555f.entry.js → p-66bfff48.entry.js} +2 -2
  139. package/dist/core/{p-90678e67.entry.js → p-7410fde3.entry.js} +2 -2
  140. package/dist/core/{p-cbca04bb.entry.js → p-75bf2d00.entry.js} +2 -2
  141. package/dist/core/{p-09505807.entry.js → p-884af70c.entry.js} +2 -2
  142. package/dist/core/{p-aaf4e367.entry.js → p-9ae157de.entry.js} +2 -2
  143. package/dist/core/{p-80d85403.entry.js → p-9b48971f.entry.js} +2 -2
  144. package/dist/core/{p-73043f57.entry.js → p-9ced00a7.entry.js} +2 -2
  145. package/dist/core/{p-b777f0a1.entry.js → p-9da03270.entry.js} +2 -2
  146. package/dist/core/{p-bb7652cd.entry.js → p-a0c54a50.entry.js} +2 -2
  147. package/dist/core/{p-880f7548.entry.js → p-a5fcb9c1.entry.js} +2 -2
  148. package/dist/core/{p-2a124daf.entry.js → p-a6ebe253.entry.js} +2 -2
  149. package/dist/core/{p-ef70ea50.entry.js → p-b27e147d.entry.js} +2 -2
  150. package/dist/core/{p-f64996f1.entry.js → p-b2aef77d.entry.js} +2 -2
  151. package/dist/core/{p-393af2bc.entry.js → p-b431dd8a.entry.js} +2 -2
  152. package/dist/core/{p-1b81ec88.entry.js → p-b4e8e438.entry.js} +2 -2
  153. package/dist/core/{p-b997ad5e.entry.js → p-b5e683d0.entry.js} +2 -2
  154. package/dist/core/{p-7b538fd1.entry.js → p-ba80d403.entry.js} +2 -2
  155. package/dist/core/{p-3aed13ba.entry.js → p-be0010c0.entry.js} +2 -2
  156. package/dist/core/p-c14ec3e2.entry.js +2 -0
  157. package/dist/core/p-c14ec3e2.entry.js.map +1 -0
  158. package/dist/core/{p-5900cb65.entry.js → p-c9fbad60.entry.js} +2 -2
  159. package/dist/core/{p-0b728f50.entry.js → p-cc3cda99.entry.js} +2 -2
  160. package/dist/core/p-cc3cda99.entry.js.map +1 -0
  161. package/dist/core/{p-735d3096.entry.js → p-cf669574.entry.js} +2 -2
  162. package/dist/core/{p-50dca790.entry.js → p-d5fcd4f9.entry.js} +2 -2
  163. package/dist/core/{p-506d428a.entry.js → p-d8de5b88.entry.js} +2 -2
  164. package/dist/core/{p-05fd2707.entry.js → p-dbb1370f.entry.js} +2 -2
  165. package/dist/core/{p-53ab3c0f.entry.js → p-e35f15ec.entry.js} +2 -2
  166. package/dist/core/{p-09caf7ed.entry.js → p-e8e45d88.entry.js} +2 -2
  167. package/dist/core/p-ee63aaf8.entry.js +2 -0
  168. package/dist/core/p-ee63aaf8.entry.js.map +1 -0
  169. package/dist/core/{p-b77b1e1f.js → p-eeb8d98a.js} +2 -2
  170. package/dist/core/p-eeb8d98a.js.map +1 -0
  171. package/dist/core/{p-9c2b2cb9.entry.js → p-f82baa04.entry.js} +2 -2
  172. package/dist/core/{p-2bd80913.entry.js → p-fc4b7d2b.entry.js} +2 -2
  173. package/dist/core/{p-48a628f0.entry.js → p-fe9c3f6e.entry.js} +2 -2
  174. package/dist/esm/{helpers-66681c73.js → helpers-33039856.js} +10 -68
  175. package/dist/esm/helpers-33039856.js.map +1 -0
  176. package/dist/esm/ic-accordion-group.entry.js +1 -1
  177. package/dist/esm/ic-accordion.entry.js +1 -1
  178. package/dist/esm/ic-action-chip.entry.js +1 -1
  179. package/dist/esm/ic-alert.entry.js +1 -1
  180. package/dist/esm/ic-back-to-top.entry.js +1 -1
  181. package/dist/esm/ic-badge.entry.js +1 -1
  182. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  183. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  184. package/dist/esm/ic-button_3.entry.js +5 -3
  185. package/dist/esm/ic-button_3.entry.js.map +1 -1
  186. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  187. package/dist/esm/ic-card-vertical.entry.js +1 -1
  188. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  189. package/dist/esm/ic-checkbox.entry.js +1 -1
  190. package/dist/esm/ic-chip.entry.js +1 -1
  191. package/dist/esm/ic-data-row.entry.js +1 -1
  192. package/dist/esm/ic-dialog.entry.js +41 -29
  193. package/dist/esm/ic-dialog.entry.js.map +1 -1
  194. package/dist/esm/ic-divider.entry.js +1 -1
  195. package/dist/esm/ic-empty-state.entry.js +1 -1
  196. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  197. package/dist/esm/ic-footer-link.entry.js +1 -1
  198. package/dist/esm/ic-footer.entry.js +1 -1
  199. package/dist/esm/ic-hero.entry.js +1 -1
  200. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  201. package/dist/esm/ic-input-component-container_3.entry.js +27 -26
  202. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  203. package/dist/esm/ic-input-label_2.entry.js +1 -1
  204. package/dist/esm/ic-link.entry.js +1 -1
  205. package/dist/esm/ic-menu-group.entry.js +1 -1
  206. package/dist/esm/ic-menu-item.entry.js +1 -1
  207. package/dist/esm/ic-navigation-button.entry.js +1 -1
  208. package/dist/esm/ic-navigation-group.entry.js +1 -1
  209. package/dist/esm/ic-navigation-item.entry.js +1 -1
  210. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  211. package/dist/esm/ic-page-header.entry.js +1 -1
  212. package/dist/esm/ic-pagination-bar.entry.js +1 -1
  213. package/dist/esm/ic-pagination-item.entry.js +1 -1
  214. package/dist/esm/ic-pagination_3.entry.js +19 -17
  215. package/dist/esm/ic-pagination_3.entry.js.map +1 -1
  216. package/dist/esm/ic-popover-menu.entry.js +1 -1
  217. package/dist/esm/ic-radio-group.entry.js +7 -7
  218. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  219. package/dist/esm/ic-radio-option.entry.js +9 -7
  220. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  221. package/dist/esm/ic-search-bar.entry.js +1 -1
  222. package/dist/esm/ic-side-navigation.entry.js +1 -1
  223. package/dist/esm/ic-status-tag.entry.js +1 -1
  224. package/dist/esm/ic-step.entry.js +1 -1
  225. package/dist/esm/ic-stepper.entry.js +1 -1
  226. package/dist/esm/ic-switch.entry.js +1 -1
  227. package/dist/esm/ic-tab-group.entry.js +1 -1
  228. package/dist/esm/ic-tab.entry.js +1 -1
  229. package/dist/esm/ic-theme.entry.js +1 -1
  230. package/dist/esm/ic-toast.entry.js +1 -1
  231. package/dist/esm/ic-toggle-button-group.entry.js +1 -1
  232. package/dist/esm/ic-toggle-button.entry.js +1 -1
  233. package/dist/esm/ic-top-navigation.entry.js +1 -1
  234. package/dist/esm/ic-typography.entry.js +1 -1
  235. package/dist/types/components/ic-dialog/ic-dialog.d.ts +2 -1
  236. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +2 -2
  237. package/dist/types/components/ic-select/ic-select.types.d.ts +2 -1
  238. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +5 -0
  239. package/dist/types/components.d.ts +21 -2
  240. package/dist/types/utils/helpers.d.ts +0 -31
  241. package/hydrate/index.js +110 -149
  242. package/hydrate/index.mjs +110 -149
  243. package/package.json +3 -3
  244. package/vscode-data.json +3 -0
  245. package/dist/cjs/helpers-81cd6930.js.map +0 -1
  246. package/dist/core/p-0b728f50.entry.js.map +0 -1
  247. package/dist/core/p-6b4ec95f.entry.js +0 -3
  248. package/dist/core/p-6b4ec95f.entry.js.map +0 -1
  249. package/dist/core/p-a08d6b46.entry.js +0 -2
  250. package/dist/core/p-a08d6b46.entry.js.map +0 -1
  251. package/dist/core/p-a321feee.entry.js +0 -2
  252. package/dist/core/p-a321feee.entry.js.map +0 -1
  253. package/dist/core/p-b77b1e1f.js.map +0 -1
  254. package/dist/core/p-cc64e5ef.entry.js +0 -2
  255. package/dist/core/p-cc64e5ef.entry.js.map +0 -1
  256. package/dist/core/p-f84ac9c6.entry.js +0 -2
  257. package/dist/core/p-f84ac9c6.entry.js.map +0 -1
  258. package/dist/esm/helpers-66681c73.js.map +0 -1
  259. /package/dist/core/{p-fb9376f0.entry.js.map → p-043a5677.entry.js.map} +0 -0
  260. /package/dist/core/{p-0fb7f915.entry.js.map → p-111abe0f.entry.js.map} +0 -0
  261. /package/dist/core/{p-e7767c0d.entry.js.map → p-174a70c4.entry.js.map} +0 -0
  262. /package/dist/core/{p-347cc084.entry.js.map → p-19056c16.entry.js.map} +0 -0
  263. /package/dist/core/{p-659d048d.entry.js.map → p-1bacfc3c.entry.js.map} +0 -0
  264. /package/dist/core/{p-f661ba76.entry.js.map → p-2a1faef2.entry.js.map} +0 -0
  265. /package/dist/core/{p-67de1290.entry.js.map → p-2b1ce5b7.entry.js.map} +0 -0
  266. /package/dist/core/{p-ea7a3d30.entry.js.map → p-3f001e75.entry.js.map} +0 -0
  267. /package/dist/core/{p-9cb83a2e.entry.js.map → p-44d043f7.entry.js.map} +0 -0
  268. /package/dist/core/{p-e938eb31.entry.js.map → p-4613f697.entry.js.map} +0 -0
  269. /package/dist/core/{p-4f56acff.entry.js.map → p-46e5a58b.entry.js.map} +0 -0
  270. /package/dist/core/{p-cfbacca1.entry.js.map → p-4dbc72f4.entry.js.map} +0 -0
  271. /package/dist/core/{p-99433296.entry.js.map → p-4e59d889.entry.js.map} +0 -0
  272. /package/dist/core/{p-daec7e69.entry.js.map → p-570d763b.entry.js.map} +0 -0
  273. /package/dist/core/{p-8a833e82.entry.js.map → p-571404d0.entry.js.map} +0 -0
  274. /package/dist/core/{p-61d79fc6.entry.js.map → p-574ef8c9.entry.js.map} +0 -0
  275. /package/dist/core/{p-a780a34b.entry.js.map → p-59c5265c.entry.js.map} +0 -0
  276. /package/dist/core/{p-2691cc80.entry.js.map → p-5d01fefb.entry.js.map} +0 -0
  277. /package/dist/core/{p-2b87c592.entry.js.map → p-6183ad85.entry.js.map} +0 -0
  278. /package/dist/core/{p-46fd555f.entry.js.map → p-66bfff48.entry.js.map} +0 -0
  279. /package/dist/core/{p-90678e67.entry.js.map → p-7410fde3.entry.js.map} +0 -0
  280. /package/dist/core/{p-cbca04bb.entry.js.map → p-75bf2d00.entry.js.map} +0 -0
  281. /package/dist/core/{p-09505807.entry.js.map → p-884af70c.entry.js.map} +0 -0
  282. /package/dist/core/{p-aaf4e367.entry.js.map → p-9ae157de.entry.js.map} +0 -0
  283. /package/dist/core/{p-80d85403.entry.js.map → p-9b48971f.entry.js.map} +0 -0
  284. /package/dist/core/{p-73043f57.entry.js.map → p-9ced00a7.entry.js.map} +0 -0
  285. /package/dist/core/{p-b777f0a1.entry.js.map → p-9da03270.entry.js.map} +0 -0
  286. /package/dist/core/{p-bb7652cd.entry.js.map → p-a0c54a50.entry.js.map} +0 -0
  287. /package/dist/core/{p-880f7548.entry.js.map → p-a5fcb9c1.entry.js.map} +0 -0
  288. /package/dist/core/{p-2a124daf.entry.js.map → p-a6ebe253.entry.js.map} +0 -0
  289. /package/dist/core/{p-ef70ea50.entry.js.map → p-b27e147d.entry.js.map} +0 -0
  290. /package/dist/core/{p-f64996f1.entry.js.map → p-b2aef77d.entry.js.map} +0 -0
  291. /package/dist/core/{p-393af2bc.entry.js.map → p-b431dd8a.entry.js.map} +0 -0
  292. /package/dist/core/{p-1b81ec88.entry.js.map → p-b4e8e438.entry.js.map} +0 -0
  293. /package/dist/core/{p-b997ad5e.entry.js.map → p-b5e683d0.entry.js.map} +0 -0
  294. /package/dist/core/{p-7b538fd1.entry.js.map → p-ba80d403.entry.js.map} +0 -0
  295. /package/dist/core/{p-3aed13ba.entry.js.map → p-be0010c0.entry.js.map} +0 -0
  296. /package/dist/core/{p-5900cb65.entry.js.map → p-c9fbad60.entry.js.map} +0 -0
  297. /package/dist/core/{p-735d3096.entry.js.map → p-cf669574.entry.js.map} +0 -0
  298. /package/dist/core/{p-50dca790.entry.js.map → p-d5fcd4f9.entry.js.map} +0 -0
  299. /package/dist/core/{p-506d428a.entry.js.map → p-d8de5b88.entry.js.map} +0 -0
  300. /package/dist/core/{p-05fd2707.entry.js.map → p-dbb1370f.entry.js.map} +0 -0
  301. /package/dist/core/{p-53ab3c0f.entry.js.map → p-e35f15ec.entry.js.map} +0 -0
  302. /package/dist/core/{p-09caf7ed.entry.js.map → p-e8e45d88.entry.js.map} +0 -0
  303. /package/dist/core/{p-9c2b2cb9.entry.js.map → p-f82baa04.entry.js.map} +0 -0
  304. /package/dist/core/{p-2bd80913.entry.js.map → p-fc4b7d2b.entry.js.map} +0 -0
  305. /package/dist/core/{p-48a628f0.entry.js.map → p-fe9c3f6e.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"ic-pagination.ic-select.ic-text-field.entry.cjs.js","mappings":"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","names":["h","removeDisabledFalse","onComponentRequiredPropUndefined","Host","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","checkSlotInChildMutations","forceUpdate","removeFormResetListener","addFormResetListener","IcInformationStatus","getInputDescribedByText","renderHiddenInput","isSlotUsed","isMobileOrTablet","isEmptyString","debounceEvent","inheritAttributes","IGNORED_KEYBOARD_CHARACTERS","removeHiddenInput"],"sources":["src/components/ic-pagination/ic-pagination.css?tag=ic-pagination&encapsulation=shadow","src/components/ic-pagination/ic-pagination.tsx","src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","src/components/ic-select/ic-select.tsx","src/components/ic-text-field/ic-text-field.css?tag=ic-text-field&encapsulation=shadow","src/components/ic-text-field/ic-text-field.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\nnav {\n width: 100%;\n display: flex;\n flex-flow: row wrap;\n justify-content: flex-start;\n align-items: center;\n}\n\nic-button {\n cursor: pointer;\n}\n\nic-button.next-previous {\n --icon-width: var(--ic-space-xs);\n --icon-height: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n\n padding: 0 var(--ic-space-xxs) 0 var(--ic-space-xxxs);\n}\n\nic-button.first-last {\n --icon-width: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n --icon-height: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n}\n\nic-button.first-last::part(button),\nic-button.next-previous::part(button) {\n color: var(--ic-pagination-chevron);\n}\n\n:host(.ic-pagination-monochrome) ic-button.first-last::part(button),\n:host(.ic-pagination-monochrome) ic-button.next-previous::part(button) {\n color: var(--ic-pagination-chevron-monochrome);\n}\n\nic-button.ic-button-disabled.first-last::part(button),\nic-button.ic-button-disabled.next-previous::part(button),\n:host(.ic-pagination-monochrome)\n ic-button.ic-button-disabled.first-last::part(button),\n:host(.ic-pagination-monochrome)\n ic-button.ic-button-disabled.next-previous::part(button) {\n color: var(--ic-pagination-chevron-disabled);\n}\n\n.disabled {\n color: var(--ic-color-text-disabled-mid);\n pointer-events: none;\n cursor: none;\n user-select: none;\n}\n\n.hide-current-page {\n display: none;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n.sr-only:dir(rtl) {\n right: -9999px;\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Listen,\n State,\n Watch,\n Event,\n EventEmitter,\n Method,\n} from \"@stencil/core\";\nimport paginationNextPrevious from \"../../assets/pagination-next-previous.svg\";\nimport paginationFirstLast from \"../../assets/pagination-first-last.svg\";\nimport { IcThemeMode } from \"../../utils/types\";\nimport { IcPaginationTypes, IcChangeEventDetail } from \"./ic-pagination.types\";\nimport {\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-pagination\",\n styleUrl: \"ic-pagination.css\",\n shadow: true,\n})\nexport class Pagination {\n @Element() el: HTMLIcPaginationElement;\n\n @State() endEllipsis: boolean = false;\n @State() endItems: number[] = [];\n @State() midItems: number[] = [];\n @State() startEllipsis: boolean = false;\n @State() startItems: number[] = [];\n\n /**\n * The accessible label of the pagination component to provide context for screen reader users.\n */\n @Prop() accessibleLabel?: string = \"Pagination Navigation\";\n\n /**\n * The number of pages displayed adjacent to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.\n */\n @Prop({ mutable: true }) adjacentPageCount?: number = 1;\n\n @Watch(\"adjacentPageCount\")\n watchAdjacentPageCountHandler(): void {\n if (this.adjacentPageCount! > 2) {\n this.adjacentPageCount = 2;\n }\n }\n\n /**\n * The number of pages displayed as boundary items to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.\n */\n @Prop({ mutable: true }) boundaryPageCount?: number = 1;\n\n @Watch(\"boundaryPageCount\")\n watchBoundaryPageCountHandler(): void {\n if (this.boundaryPageCount! > 2) {\n this.boundaryPageCount = 2;\n }\n }\n\n /**\n * The default page to display.\n */\n @Prop() defaultPage?: number = 1;\n\n /**\n * If `true`, the pagination will not allow interaction.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the current page of the simple pagination will not be displayed.\n */\n @Prop() hideCurrentPage?: boolean = false;\n\n /**\n * If `true`, the first and last page buttons will not be displayed.\n */\n @Prop() hideFirstAndLastPageButton?: boolean = false;\n\n /**\n * The label for the pagination item (applicable when simple pagination is being used).\n */\n @Prop() label?: string = \"Page\";\n\n /**\n * If `true`, the pagination will display as black in the light theme, and white in dark theme.\n */\n @Prop() monochrome?: boolean = false;\n\n /**\n * The total number of pages.\n */\n @Prop() pages!: number;\n\n @Watch(\"pages\")\n watchNumberPagesHandler(): void {\n this.watchPageChangeHandler();\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\n /**\n * The type of pagination to be used.\n */\n @Prop() type?: IcPaginationTypes = \"simple\";\n\n @Watch(\"type\")\n watchTypeHandler(): void {\n this.watchPageChangeHandler();\n }\n\n /**\n * The current page displayed by the pagination.\n */\n @Prop({ mutable: true }) currentPage?: number = this.defaultPage;\n\n @Watch(\"currentPage\")\n watchPageChangeHandler(): void {\n if (this.type === \"simple\") {\n return;\n }\n\n this.startEllipsis = false;\n this.endEllipsis = false;\n this.startItems = [];\n this.endItems = [];\n this.midItems = [];\n\n const startItems = [];\n let startItemCount = 0;\n const endItems = [];\n let endStart = this.pages;\n const midItems = [];\n let midStart;\n let midEnd;\n let startEllipsis = false;\n let endEllipsis = false;\n\n if (\n this.pages <=\n this.boundaryPageCount! * 2 + this.adjacentPageCount! * 2 + 3\n ) {\n this.startEllipsis = false;\n this.endEllipsis = false;\n for (let i = 1; i <= this.pages; i++) {\n startItems.push(i);\n }\n this.startItems = startItems;\n return;\n }\n\n startItemCount = this.boundaryPageCount === 0 ? 1 : this.boundaryPageCount!;\n endStart =\n this.boundaryPageCount === 0\n ? this.pages\n : this.pages - this.boundaryPageCount! + 1;\n\n if (\n this.currentPage! <=\n this.adjacentPageCount! + this.boundaryPageCount! + 2\n ) {\n startEllipsis = false;\n endEllipsis = true;\n\n let numItems = 2 * this.adjacentPageCount! + 1;\n if (this.boundaryPageCount === 0) {\n numItems--;\n }\n midStart = startItemCount + 1;\n midEnd = midStart + numItems;\n } else {\n startEllipsis = true;\n if (\n this.currentPage! >\n this.pages - (this.adjacentPageCount! + this.boundaryPageCount! + 2)\n ) {\n let numItems = 2 * this.adjacentPageCount! + 1;\n if (this.boundaryPageCount === 0) {\n numItems--;\n }\n midEnd =\n this.boundaryPageCount === 0\n ? this.pages - 1\n : this.pages - this.boundaryPageCount!;\n midStart = midEnd - numItems;\n } else {\n endEllipsis = true;\n midStart = this.currentPage! - this.adjacentPageCount!;\n midEnd = this.currentPage! + this.adjacentPageCount!;\n }\n }\n\n //create array of start items\n if (\n this.boundaryPageCount! > 0 ||\n (this.boundaryPageCount === 0 && startEllipsis === false)\n ) {\n for (let i = 1; i <= startItemCount; i++) {\n startItems.push(i);\n }\n }\n\n //create array of end items\n if (\n this.boundaryPageCount! > 0 ||\n (this.boundaryPageCount === 0 && endEllipsis === false)\n ) {\n for (let i = endStart; i <= this.pages; i++) {\n endItems.push(i);\n }\n }\n\n //create array of mid items\n for (let i = midStart; i <= midEnd; i++) {\n midItems.push(i);\n }\n\n this.startEllipsis = startEllipsis;\n this.endEllipsis = endEllipsis;\n this.startItems = startItems;\n this.endItems = endItems;\n this.midItems = midItems;\n }\n\n /**\n * Emitted when a page is selected.\n */\n @Event() icPageChange: EventEmitter<IcChangeEventDetail>;\n\n componentWillLoad(): void {\n this.watchPageChangeHandler();\n this.watchBoundaryPageCountHandler();\n this.watchAdjacentPageCountHandler();\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.pages, propName: \"pages\" }],\n \"Pagination\"\n );\n }\n\n /**\n * Prevents focus lingering on a disabled element. If the currently\n * focused element is one of the back buttons (and we reach the first page),\n * move focus to \"next\" button, and vice versa.\n * @param ev\n */\n @Listen(\"icPageChange\")\n icPageChangeHandler(ev: CustomEvent<IcChangeEventDetail>) {\n const shadow = document.activeElement?.shadowRoot;\n\n const activeEl = shadow ? shadow.activeElement : document.activeElement;\n if (!shadow || !activeEl) {\n return;\n }\n\n if (\n ev.detail.value === 1 &&\n [\"first-page-button\", \"previous-page-button\"].some(\n (id) => id === activeEl?.id\n )\n ) {\n const btn = (\n shadow.querySelector(\"#next-page-button\") as HTMLElement\n ).shadowRoot?.querySelector(\"button\");\n // When navigating from firstPage->lastPage or vice versa, the to-be-selected element will be disabled. wait a tick so that it can receive focus.\n setTimeout(() => btn?.focus(), 10);\n } else if (\n ev.detail.value === this.pages &&\n [\"last-page-button\", \"next-page-button\"].some((id) => id === activeEl?.id)\n ) {\n const btn = (\n shadow!.querySelector(\"#previous-page-button\") as HTMLElement\n ).shadowRoot?.querySelector(\"button\");\n setTimeout(() => btn?.focus(), 10);\n }\n }\n\n @Listen(\"paginationItemClick\")\n paginationItemClickHandler(ev: CustomEvent): void {\n const page = ev.detail.page;\n this.currentPage = page;\n this.icPageChange.emit({ value: this.currentPage! });\n }\n\n /**\n * Sets the currently displayed page.\n * @param {number} page The page number to set as the current page\n */\n @Method()\n async setCurrentPage(page: number): Promise<void> {\n if (typeof page === \"number\" && page > 0 && page <= this.pages) {\n this.currentPage = page;\n } else {\n console.error(\n \"Current page must be a number greater than zero but less than or equal to the total number of pages\"\n );\n }\n }\n\n private handleClickFirst = () => {\n this.currentPage = 1;\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n private handleClickPrevious = (): void => {\n this.currentPage!--;\n this.icPageChange.emit({ value: this.currentPage! });\n };\n\n private handleClickNext = (): void => {\n this.currentPage!++;\n this.icPageChange.emit({ value: this.currentPage! });\n };\n\n private handleClickLast = (): void => {\n this.currentPage = this.pages;\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n // button rendering abstracted from component render methods for clarity\n private firstButton = () => {\n return (\n <ic-button\n id=\"first-page-button\"\n aria-label=\"Go to first page\"\n theme={this.theme}\n onClick={this.handleClickFirst}\n class=\"page-button first-last\"\n disabled={this.currentPage === 1 || this.disabled}\n variant=\"icon-tertiary\"\n monochrome={this.theme == \"light\" || this.theme == \"dark\"}\n innerHTML={paginationFirstLast}\n />\n );\n };\n\n private previousButton = () => {\n return (\n <ic-button\n id=\"previous-page-button\"\n aria-label=\"Go to previous page\"\n theme={this.theme}\n onClick={this.handleClickPrevious}\n class=\"page-button next-previous flip\"\n disabled={this.currentPage === 1 || this.disabled}\n variant=\"icon-tertiary\"\n monochrome={this.theme == \"light\" || this.theme == \"dark\"}\n innerHTML={paginationNextPrevious}\n />\n );\n };\n\n private nextButton = () => {\n return (\n <ic-button\n id=\"next-page-button\"\n aria-label=\"Go to next page\"\n theme={this.theme}\n onClick={this.handleClickNext}\n class=\"page-button next-previous\"\n disabled={this.currentPage === this.pages || this.disabled}\n variant=\"icon-tertiary\"\n monochrome={this.theme == \"light\" || this.theme == \"dark\"}\n innerHTML={paginationNextPrevious}\n />\n );\n };\n\n private lastButton = () => {\n return (\n <ic-button\n id=\"last-page-button\"\n aria-label=\"Go to last page\"\n theme={this.theme}\n onClick={this.handleClickLast}\n class=\"page-button first-last flip\"\n disabled={this.currentPage === this.pages || this.disabled}\n variant=\"icon-tertiary\"\n monochrome={this.theme == \"light\" || this.theme == \"dark\"}\n innerHTML={paginationFirstLast}\n />\n );\n };\n\n private renderStartEllipsis = () => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n type=\"ellipsis\"\n id=\"start-ellipsis\"\n disabled={this.disabled}\n />\n );\n };\n\n private renderEndEllipsis = () => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n type=\"ellipsis\"\n id=\"end-ellipsis\"\n disabled={this.disabled}\n />\n );\n };\n\n private renderStartItems = () => {\n return this.startItems.map((page: number) => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n selected={page === this.currentPage}\n id={`pagination-item-${page}`}\n type=\"page\"\n page={page}\n disabled={this.disabled}\n />\n );\n });\n };\n\n private renderEndItems = () => {\n return this.endItems.map((page: number) => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n selected={page === this.currentPage}\n id={`pagination-item-${page}`}\n type=\"page\"\n page={page}\n disabled={this.disabled}\n />\n );\n });\n };\n\n private renderMiddleItems = () => {\n return this.midItems.map((page: number) => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n selected={page === this.currentPage}\n id={`pagination-item-${page}`}\n type=\"page\"\n page={page}\n disabled={this.disabled}\n />\n );\n });\n };\n\n render() {\n const {\n type,\n currentPage,\n hideCurrentPage,\n disabled,\n hideFirstAndLastPageButton,\n label,\n theme,\n monochrome,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-pagination-monochrome\"]: !!monochrome,\n }}\n >\n {type === \"simple\" && (\n <nav\n class={{\n [\"disabled\"]: !!disabled,\n }}\n role=\"navigation\"\n aria-label={this.accessibleLabel}\n >\n {hideFirstAndLastPageButton ? null : this.firstButton()}\n {this.previousButton()}\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n type=\"simple-current\"\n page={currentPage}\n label={label}\n class={{ [\"hide-current-page\"]: !!hideCurrentPage }}\n disabled={disabled}\n />\n {this.nextButton()}\n {hideFirstAndLastPageButton ? null : this.lastButton()}\n </nav>\n )}\n {type === \"complex\" && (\n <nav\n class={{\n [\"disabled\"]: !!disabled,\n }}\n role=\"navigation\"\n aria-label={this.accessibleLabel}\n >\n {hideFirstAndLastPageButton ? null : this.firstButton()}\n {this.previousButton()}\n {this.renderStartItems()}\n {this.startEllipsis && this.renderStartEllipsis()}\n {this.renderMiddleItems()}\n {this.endEllipsis && this.renderEndEllipsis()}\n {this.renderEndItems()}\n {this.nextButton()}\n {hideFirstAndLastPageButton ? null : this.lastButton()}\n </nav>\n )}\n {type === \"complex\" && (\n <span class=\"sr-only\" aria-live=\"polite\">\n Page {this.currentPage}\n </span>\n )}\n </Host>\n );\n }\n}\n","@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-xs);\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-label);\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);\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.aria-live-hidden-text {\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\n@media (prefers-reduced-motion: reduce) {\n .clear-button,\n ic-input-validation.menu-open .status-icon,\n ic-input-validation.menu-open .statustext {\n transition: none;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n State,\n Watch,\n forceUpdate,\n Method,\n} from \"@stencil/core\";\nimport {\n addFormResetListener,\n checkSlotInChildMutations,\n getInputDescribedByText,\n isMobileOrTablet,\n isSlotUsed,\n removeDisabledFalse,\n removeFormResetListener,\n renderHiddenInput,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaLive,\n IcInformationStatusOrEmpty,\n IcSearchMatchPositions,\n IcMultiValueEventDetail,\n IcSizes,\n IcThemeMode,\n IcInformationStatus,\n} from \"../../utils/types\";\nimport {\n IcSelectOption,\n IcSelectOptionBase,\n IcSelectOptionFlat,\n IcSelectOptionGroup,\n} from \"./ic-select.types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport {\n IcMenuChangeEventDetail,\n IcMenuOptionIdEventDetail,\n IcOptionSelectEventDetail,\n} from \"../ic-menu/ic-menu.types\";\nimport { IcMenuCustomEvent } from \"../../components\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"tabindex\", \"title\"];\n\n/**\n * @slot helper-text - Content is set as the helper text for the select.\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 inputId = `ic-select-input-${inputIds++}`;\n private menu?: HTMLIcMenuElement;\n private menuId = `${this.inputId}-menu`;\n private inheritedAttributes: { [k: string]: string } = {};\n private anchorEl?: HTMLElement;\n private nativeSelectElement?: HTMLSelectElement;\n private hostMutationObserver: MutationObserver | null = null;\n private clearButton?: HTMLIcButtonElement;\n private searchableSelectElement?: HTMLInputElement;\n private timeoutTimer: number | null = null;\n private hasTimedOut: boolean = false;\n private selectElement?: HTMLButtonElement;\n private initialRender: boolean = true;\n private characterKeyPressTimer?: number;\n private pressedCharacters = \"\";\n\n @Element() el!: HTMLIcSelectElement;\n\n @State() ariaActiveDescendant?: string;\n @State() debounceIcInput?: number;\n @State() hiddenInputValue: string | null;\n @State() hasError: boolean = false;\n @State() searchableSelectInputValue: string = \"\";\n @State() selectButtonAriaLiveText: string = \"\";\n @State() selectInputAriaLiveText: string = \"\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled = false;\n\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 = false;\n\n /**\n * The text displayed when there are no options in the option list.\n */\n @Prop() emptyOptionListText = \"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 = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\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 = 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 = 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 = 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 = \"Loading Error\";\n\n /**\n * The message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel = \"Loading...\";\n\n /**\n * If `true`, multiple options can be selected.\n */\n @Prop() multiple = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"Select an option\";\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly = false;\n\n /**\n * If `true`, the select will require a value.\n */\n @Prop() required = 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 = 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 = 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 = 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 value of the `aria-live` attribute on the validation message.\n */\n @Prop() validationAriaLive: IcAriaLive = \"polite\";\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 = \"\";\n\n /**\n * If `true` and on a mobile or tablet device, the native select element will be used instead of the custom select component for better usability.\n */\n @Prop() useNativeSelectOnMobile = true;\n\n /**\n * If `true`, the loading state will be triggered when fetching options asynchronously.\n */\n @Prop({ mutable: true }) loading = false;\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n this.hasTimedOut = false;\n\n if (newValue) {\n this.hasError = false;\n if (this.timeout) {\n if (this.timeoutTimer) {\n this.clearTimer();\n }\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n forceUpdate(this);\n }, this.timeout);\n }\n } else {\n if (this.timeoutTimer) {\n this.clearTimer();\n }\n }\n }\n\n private clearTimer() {\n if (this.timeoutTimer) {\n clearTimeout(this.timeoutTimer);\n this.timeoutTimer = null;\n }\n }\n\n /**\n * The possible selection options.\n */\n @Prop() options: IcSelectOption[] = [];\n @State() flatOptions: IcSelectOptionFlat[] = [];\n @Watch(\"options\")\n optionsChangedHandler(): void {\n const flat = this.getFlatOptions(this.options)\n .filter((option) => option.value != null || option.label != null) // filter out options missing both value and label\n .map((option) => ({\n ...option,\n value: option.value ?? option.label, // if an option is missing a value, use the label as the value\n label: option.label ?? option.value, // vice versa\n }));\n this.flatOptions = this.getDeduplicatedOptions(flat);\n\n if (!this.initialRender) this.loading = false;\n this.clearTimer();\n this.updateSelectButtonAriaLive();\n }\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icInput` event after each keystroke.\n */\n @Prop() debounce = 0;\n @State() currDebounce = this.debounce;\n @Watch(\"debounce\")\n debounceChangedHandler(newValue: number): void {\n if (this.currDebounce !== newValue) {\n this.currDebounce = newValue;\n }\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 = null;\n @State() initialValue = this.value;\n @Watch(\"value\")\n valueChangedHandler(newValue: string | string[] | null): void {\n const validated = this.getValidatedValue(newValue);\n\n const isEqual =\n Array.isArray(validated) && Array.isArray(this.value)\n ? validated.length === this.value.length &&\n validated.every((v, i) => v === (this.value as string[])[i])\n : validated === this.value;\n\n if (!isEqual) {\n this.value = validated;\n return;\n }\n\n this.updateSelectButtonAriaLive();\n this.icChange.emit({ value: this.value });\n }\n\n @State() open = false;\n @Watch(\"open\")\n openChangedHandler(): void {\n this.open ? this.icOpen.emit() : this.icClose.emit();\n if (!this.open) {\n this.ariaActiveDescendant = undefined;\n }\n this.handleFocusIndicatorDisplay();\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 /**\n * Sets focus on the select component.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.selectElement) {\n this.selectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n this.initialRender = false;\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n this.clearTimer();\n }\n\n componentDidLoad(): void {\n forceUpdate(this);\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n private getValidatedValue = (\n value: string | string[] | null\n ): string | string[] | null => {\n const validValues = this.flatOptions.map((opt) => opt.value);\n\n if (validValues.length === 0) return value;\n\n if (this.multiple) {\n if (!value) return null;\n const arr = Array.isArray(value) ? value : [value]; // Ensure value is an array\n const filtered = validValues.filter((v) => arr.includes(v)); // Keep only valid values\n return filtered.length > 0 ? filtered : null;\n } else {\n return validValues.includes(value as string) ? value : null;\n }\n };\n\n componentWillLoad(): void {\n this.optionsChangedHandler();\n this.value = this.getValidatedValue(this.value);\n this.initialValue = this.value;\n\n if (this.loading) this.loadingHandler(true);\n\n addFormResetListener(this.el, this.handleFormReset);\n }\n\n private getFilteredOptions = (\n searchString: string,\n searchMatchPosition: \"anywhere\" | \"start\",\n includeDescriptionsInSearch: boolean,\n includeGroupTitlesInSearch: boolean\n ): IcSelectOption[] => {\n const search = searchString.toLowerCase();\n const match = (text: string, method: \"anywhere\" | \"start\") =>\n method === \"anywhere\" ? text.includes(search) : text.startsWith(search);\n\n return this.unflattenOptions(\n this.flatOptions.filter((option) => {\n const label = option.label.toLowerCase();\n const group = option.group?.toLowerCase() ?? \"\";\n const description = option.description?.toLowerCase() ?? \"\";\n return (\n match(label, searchMatchPosition) ||\n (includeDescriptionsInSearch &&\n match(description, searchMatchPosition)) ||\n (includeGroupTitlesInSearch && match(group, searchMatchPosition))\n );\n })\n );\n };\n\n private getOptions = (): IcSelectOption[] => {\n const options =\n this.searchable &&\n !this.disableAutoFiltering &&\n this.searchableSelectInputValue\n ? this.getFilteredOptions(\n this.searchableSelectInputValue,\n this.searchMatchPosition,\n this.includeDescriptionsInSearch,\n this.includeGroupTitlesInSearch\n )\n : this.unflattenOptions(this.flatOptions);\n\n if (this.hasTimedOut)\n return [{ label: this.loadingErrorLabel, value: \"\", timedOut: true }];\n\n if (this.loading)\n return [{ label: this.loadingLabel, value: \"\", loading: true }];\n\n if (options.length > 0) return options;\n\n return [{ label: this.emptyOptionListText, value: \"\" }];\n };\n\n private getFlatOptions = (options: IcSelectOption[]): IcSelectOptionFlat[] =>\n options.flatMap(\n (item) =>\n (\"children\" in item && item.children\n ? [...item.children.map((child) => ({ group: item.label, ...child }))]\n : [item]) as IcSelectOptionFlat[]\n );\n\n private unflattenOptions = (\n flatOptions: IcSelectOptionFlat[]\n ): IcSelectOption[] => {\n const groupMap = new Map<string, IcSelectOptionGroup>();\n const result: IcSelectOption[] = [];\n\n for (const option of flatOptions) {\n if (option.group) {\n let group = groupMap.get(option.group);\n if (!group) {\n group = { label: option.group, children: [] };\n groupMap.set(option.group, group);\n result.push(group);\n }\n const { group: _, ...rest } = option;\n group.children.push(rest as IcSelectOptionBase);\n } else {\n result.push(option);\n }\n }\n return result;\n };\n\n private getLabelFromValue = (value: string | null): string =>\n this.flatOptions.find((option) => option.value === value)?.label ?? \"\";\n\n // Construct the string that will be shown in the select input or button\n private getLabelString = (): string => {\n if (Array.isArray(this.value)) {\n return this.value.map(this.getLabelFromValue).filter(Boolean).join(\", \");\n }\n return (\n this.getLabelFromValue(this.value) ||\n (this.searchable ? \"\" : this.placeholder)\n );\n };\n\n private handleClick = (event: MouseEvent) => {\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 handleBlur = ({ relatedTarget }: FocusEvent) => {\n const target = relatedTarget as HTMLElement;\n if (\n this.el.contains(target) ||\n this.el.shadowRoot?.contains(target) ||\n this.menu?.contains(target) ||\n target === this.clearButton\n ) {\n return;\n }\n\n this.open = false;\n this.handleFocusIndicatorDisplay();\n\n if (this.searchable) {\n this.searchableSelectInputValue = \"\";\n }\n this.icBlur.emit();\n };\n\n private handleTimeoutBlur = (event: CustomEvent<{ ev: FocusEvent }>) => {\n this.handleBlur(event.detail.ev);\n };\n\n private handleFocus = () => {\n this.icFocus.emit();\n };\n\n private handleClear = () => {\n this.clearTimer();\n this.loading = false;\n this.value = null;\n this.searchableSelectInputValue = \"\";\n\n this.icClear.emit();\n\n this.setFocus();\n };\n\n private setTextColor = () => {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.className =\n this.nativeSelectElement.selectedIndex === 0\n ? \"placeholder\"\n : \"select-option-selected\";\n }\n };\n\n private handleNativeSelectChange = () => {\n if (this.nativeSelectElement) {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.icChange.emit({ value: this.nativeSelectElement.value });\n }\n this.setTextColor();\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 handleKeyDown = (event: KeyboardEvent) => {\n if (!(event.key === \" \" && this.pressedCharacters.length > 0)) {\n if (this.open) {\n this.menu?.handleMenuKeyDown(event);\n } else {\n this.menu?.handleKeyboardOpen(event);\n }\n }\n\n if (\n !this.multiple &&\n !this.searchable &&\n !this.selectOnEnter &&\n /^[a-zA-Z0-9 ]$/.test(event.key)\n ) {\n this.handleCharacterKeyDown(event.key);\n }\n };\n\n private handleCharacterKeyDown = (key: string) => {\n // Only close menu when space is pressed if not being used alongside character keys to quickly select options\n if (this.open && key === \" \" && this.pressedCharacters.length === 0) {\n this.open = false;\n }\n\n if (key.length !== 1 || this.searchable) {\n this.pressedCharacters = \"\";\n return;\n }\n\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 const filteredOptions = this.getFilteredOptions(\n this.pressedCharacters,\n \"start\",\n false,\n false\n );\n\n if (filteredOptions.length > 0) {\n const firstOption = filteredOptions[0];\n if (\"children\" in firstOption) {\n this.value = firstOption.children[0].value;\n } else {\n this.value = firstOption.value;\n }\n }\n }\n };\n\n private handleNativeSelectKeyDown = (event: KeyboardEvent) => {\n this.handleKeyDown(event);\n };\n\n private handleSelectChange = (\n event: CustomEvent<IcOptionSelectEventDetail>\n ) => {\n const { value } = event.detail;\n if (!value || this.getLabelFromValue(value) === this.emptyOptionListText) {\n this.value = null;\n return;\n }\n\n if (this.multiple) {\n let valueArray = Array.isArray(this.value) ? [...this.value] : [];\n const index = valueArray.indexOf(value);\n\n if (index > -1) {\n valueArray.splice(index, 1);\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n valueArray.push(value);\n valueArray = this.getValidatedValue(valueArray) as string[];\n }\n this.value = valueArray.length ? valueArray : null;\n } else {\n this.icOptionSelect.emit({ value });\n this.value = value;\n if (this.searchable) this.searchableSelectInputValue = \"\";\n }\n };\n\n private handleSelectAllChange = ({\n detail,\n }: CustomEvent<{ select: boolean }>) => {\n const allSelectableValues = this.flatOptions\n .filter((option) => !option.disabled)\n .map((option) => option.value);\n if (detail.select) {\n allSelectableValues\n .filter((value) => !((this.value ?? []) as string[]).includes(value))\n .forEach((value) => {\n this.icOptionSelect.emit({ value });\n });\n\n this.value = allSelectableValues;\n } else {\n (this.value as string[]).forEach((value) =>\n this.icOptionDeselect.emit({ value })\n );\n this.value = null;\n }\n };\n\n private handleFormReset = () => {\n this.value = this.initialValue;\n this.searchableSelectInputValue = \"\";\n if (this.searchable) {\n this.hiddenInputValue = this.initialValue as string;\n }\n };\n\n private handleRetry = () => {\n this.clearTimer();\n this.hasTimedOut = false;\n this.hasError = false;\n this.loading = true;\n this.icRetryLoad.emit({\n value: this.searchable\n ? this.searchableSelectInputValue\n : this.hiddenInputValue,\n });\n this.setFocus();\n };\n\n private handleSearchableSelectInput = (event: Event) => {\n this.updateSearchableSelectResultAriaLive();\n if (!this.multiple) {\n this.value = null;\n }\n\n this.searchableSelectInputValue =\n (event.target as HTMLInputElement).value ?? \"\";\n this.open = true;\n\n clearTimeout(this.debounceIcInput);\n this.debounceIcInput = window.setTimeout(\n () => this.icInput.emit({ value: this.searchableSelectInputValue }),\n this.currDebounce\n );\n };\n\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\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 updateSelectButtonAriaLive = () => {\n const value_label = this.getLabelFromValue(this.value as string);\n this.selectButtonAriaLiveText = this.multiple\n ? `${this.value ? this.value.length : 0} of ${\n this.flatOptions.length\n } selected`\n : this.value\n ? value_label ?? `${value_label} selected`\n : \"\";\n };\n\n private updateSearchableSelectResultAriaLive = () => {\n this.selectInputAriaLiveText =\n this.getOptions()?.[0]?.label == this.emptyOptionListText\n ? this.emptyOptionListText\n : \"\";\n };\n\n private updateAriaActiveDescendant = (\n event: IcMenuCustomEvent<IcMenuOptionIdEventDetail>\n ) => {\n this.ariaActiveDescendant = event.detail.optionId;\n };\n\n private handleMenuChange = (event: CustomEvent<IcMenuChangeEventDetail>) => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n };\n\n private getDeduplicatedOptions = (\n flatOptions: IcSelectOptionFlat[]\n ): IcSelectOptionFlat[] => {\n const seen = new Set();\n return flatOptions.filter((option) => {\n if (option.value && seen.has(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 return false;\n }\n if (option.value) seen.add(option.value);\n return true;\n });\n };\n\n private renderNativeOption = (option: IcSelectOptionBase) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === this.value}\n >\n {option.label}\n </option>\n );\n\n render() {\n const {\n disabled,\n searchable,\n size,\n fullWidth,\n theme,\n readonly,\n hideLabel,\n inputId,\n label,\n helperText,\n required,\n value,\n options,\n menuId,\n multiple,\n validationStatus,\n open,\n showClearButton,\n selectOnEnter,\n loading,\n searchableSelectInputValue,\n validationText,\n validationAriaLive,\n form,\n ariaActiveDescendant,\n placeholder,\n name,\n inheritedAttributes,\n selectInputAriaLiveText,\n selectButtonAriaLiveText,\n } = this;\n\n const hasValue = !!value;\n const hasInput = !!searchableSelectInputValue;\n const isClearable =\n !disabled &&\n ((searchable && (hasInput || hasValue)) ||\n (!searchable && hasValue && !loading && showClearButton));\n\n const showValidation = !!validationStatus && !disabled;\n\n const invalid = validationStatus === IcInformationStatus.Error;\n\n const describedBy = getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showValidation\n ).trim();\n\n const menuOptions = this.getOptions();\n const noOptions =\n disabled ||\n (menuOptions.length === 1 &&\n (menuOptions[0].label === this.emptyOptionListText ||\n \"loading\" in menuOptions[0] ||\n \"timedOut\" in menuOptions[0]));\n\n renderHiddenInput(this.el, value as string, name || inputId, disabled);\n\n const ClearButton = () => (\n <ic-button\n ref={(el) => (this.clearButton = el)}\n id=\"clear-button\"\n aria-label={this.searchable ? \"Clear input\" : \"Clear selection\"}\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onBlur={this.handleBlur}\n size={size}\n variant=\"icon-tertiary\"\n ></ic-button>\n );\n\n const NativeSelect = () => (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid ? \"true\" : \"false\"}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleNativeSelectKeyDown}\n form={form}\n {...inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options.map((option) =>\n \"children\" in option ? (\n <optgroup label={option.label}>\n {option.children.map((child) =>\n this.renderNativeOption(child as IcSelectOptionBase)\n )}\n </optgroup>\n ) : (\n this.renderNativeOption(option as IcSelectOptionBase)\n )\n )}\n </select>\n );\n\n const SelectButton = () => (\n <div class=\"select-container\">\n <button\n class=\"select-input\"\n role=\"combobox\"\n ref={(el) => (this.selectElement = el)}\n id={inputId}\n aria-label={`${label}, ${\n (multiple && value\n ? `${value.length} of ${\n this.flatOptions.length\n } selected, ${this.getLabelString()}`\n : this.getLabelString()) || placeholder\n }`}\n onClick={this.handleClick}\n aria-describedby={describedBy}\n aria-invalid={invalid ? \"true\" : \"false\"}\n aria-haspopup=\"listbox\"\n aria-expanded={`${open}`}\n aria-controls={menuId}\n aria-required={`${required}`}\n disabled={disabled}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n aria-activedescendant={ariaActiveDescendant}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n \"with-clear-button\": !!isClearable,\n placeholder: !value,\n }}\n >\n {this.getLabelString()}\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\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {isClearable && <ClearButton></ClearButton>}\n <div\n aria-live=\"polite\"\n aria-atomic=\"true\"\n class=\"aria-live-hidden-text\"\n >\n {selectButtonAriaLiveText}\n </div>\n </div>\n );\n\n const SelectInput = () => (\n <div class=\"searchable-select-container\">\n <input\n class={{\n \"value-text\": true,\n \"select-input\": true,\n \"with-clear-button\": !!searchableSelectInputValue,\n }}\n role=\"combobox\"\n autocomplete=\"off\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={`${open}`}\n aria-invalid={invalid ? \"true\" : \"false\"}\n aria-required={`${required}`}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={inputId}\n value={\n multiple\n ? \"\"\n : value\n ? this.getLabelString()\n : searchableSelectInputValue || undefined\n }\n disabled={disabled}\n placeholder={placeholder}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n form={form}\n ></input>\n {isClearable && (\n <div class=\"clear-button-container\">\n <ClearButton></ClearButton>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n onMouseDown={this.handleExpandIconMouseDown}\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n <div aria-live=\"polite\" role=\"status\" class=\"aria-live-hidden-text\">\n {selectInputAriaLiveText}\n </div>\n </div>\n );\n\n const ReadOnly = () => (\n <ic-typography>\n <p>\n {this.getLabelString() === placeholder ? \"\" : this.getLabelString()}\n </p>\n </ic-typography>\n );\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 >\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n <ic-input-component-container\n ref={(el) => (this.anchorEl = el)}\n class={{ \"menu-open\": open }}\n size={size}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {isSlotUsed(this.el, \"icon\") &&\n !disabled &&\n (!readonly || !!value) && (\n <span\n slot=\"left-icon\"\n class={{\n readonly,\n \"has-value\": !!value,\n }}\n >\n <slot name=\"icon\" />\n </span>\n )}\n {isMobileOrTablet() && this.useNativeSelectOnMobile && !multiple ? (\n <NativeSelect />\n ) : readonly ? (\n <ReadOnly />\n ) : !searchable ? (\n <SelectButton />\n ) : (\n <SelectInput />\n )}\n </ic-input-component-container>\n {!(\n isMobileOrTablet() &&\n this.useNativeSelectOnMobile &&\n !multiple\n ) && (\n <ic-menu\n ref={(el) => (this.menu = el)}\n class={{ \"no-results\": noOptions }}\n inputEl={\n searchable ? this.searchableSelectElement : this.selectElement\n }\n allowMenuFocus={false}\n inputLabel={label}\n anchorEl={this.anchorEl}\n size={size}\n menuId={menuId}\n open={open}\n options={this.getOptions()}\n value={multiple ? (value as string[]) : (value as string)}\n fullWidth={fullWidth}\n selectOnEnter={selectOnEnter}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionSelect={this.handleSelectChange}\n onMenuOptionSelectAll={this.handleSelectAllChange}\n onTimeoutBlur={this.handleTimeoutBlur}\n onMenuOptionId={this.updateAriaActiveDescendant}\n onClick={this.setFocus}\n parentEl={this.el}\n activationType={\n searchable || multiple || selectOnEnter ? \"manual\" : \"automatic\"\n }\n onRetryButtonClicked={this.handleRetry}\n closeOnSelect={!multiple}\n multiSelect={multiple}\n searchableSelect={searchable}\n ></ic-menu>\n )}\n <ic-input-validation\n class={{\n \"menu-open\": open,\n }}\n ariaLiveMode={validationAriaLive}\n status={showValidation ? validationStatus : \"\"}\n message={showValidation ? validationText : \"\"}\n for={inputId}\n ></ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n","@import \"../../global/normalize.css\";\n\n:host {\n /**\n * @prop --input-width: Width of the input field\n */\n display: block;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --border-color: var(--ic-text-field-border-neutral);\n --border-color-hover: var(--ic-text-field-border-neutral-hover);\n --border-color-pressed: var(--ic-text-field-border-neutral-pressed);\n --border-color-disabled: var(--ic-text-field-border-disabled);\n --border-color-error: var(--ic-text-field-border-error);\n --border-color-error-hover: var(--ic-text-field-border-error-hover);\n --border-color-error-pressed: var(--ic-text-field-border-error-pressed);\n --border-color-success: var(--ic-text-field-border-success);\n --border-color-success-hover: var(--ic-text-field-border-success-hover);\n --border-color-success-pressed: var(--ic-text-field-border-success-pressed);\n --border-color-warning: var(--ic-text-field-border-warning);\n --border-color-warning-hover: var(--ic-text-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-text-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-text-field-label);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle);\n --ic-input-validation-status-text-color: var(--ic-text-field-state-text);\n --ic-input-validation-error: var(--ic-text-field-state-icon-error);\n --ic-input-validation-warning-icon-color: var(\n --ic-text-field-state-icon-warning\n );\n --ic-input-validation-success-icon-color: var(\n --ic-text-field-state-icon-success\n );\n --ic-input-component-container-success-icon-inline-color: var(\n --ic-text-field-state-icon-success\n );\n}\n\n:host(.ic-text-field-disabled) {\n --ic-input-label-text-color: var(--ic-text-field-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle-disabled);\n --text-field-placeholder-color: var(\n --ic-text-field-text-area-placeholder-text-disabled\n );\n}\n\n:host(.ic-text-field-full-width) {\n width: 100%;\n}\n\n::placeholder {\n color: var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );\n opacity: 1;\n}\n\ninput,\ntextarea {\n border: 0;\n border-radius: var(--ic-border-radius);\n color: var(--text-field-text-color, var(--ic-text-field-text));\n background-color: var(--input-bg-color, var(--ic-text-field-background));\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(\n --text-field-typing-cursor,\n var(--ic-text-field-typing-cursor)\n );\n}\n\ntextarea {\n min-height: var(--ic-space-lg);\n resize: vertical;\n padding-top: 0.375rem;\n}\n\ninput:focus,\ntextarea:focus {\n border: 0;\n outline: 0;\n}\n\ninput:disabled,\ntextarea:disabled {\n color: var(\n --text-field-disabled-text-color,\n var(--ic-text-field-text-disabled)\n );\n}\n\ninput.readonly,\ntextarea.readonly {\n color: var(--ic-text-field-read-only-input-text-internal);\n background: transparent;\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/* Firefox */\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\ntextarea.no-resize {\n resize: none;\n}\n\n.char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit);\n\n padding-right: var(--ic-space-xxxs);\n}\n\n:host(.ic-text-field-disabled) .char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit-disabled);\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-text-disabled);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-input-internal-icon);\n}\n\n.char-count {\n margin-right: calc(-1 * var(--ic-space-xxxs));\n}\n\n.remaining-char-count-desc {\n position: absolute;\n left: -9999px;\n}\n\n.show-validation {\n margin-top: var(--ic-space-xs);\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@media (forced-colors: active) {\n input.readonly,\n textarea.readonly {\n color: canvastext;\n }\n\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\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 forceUpdate,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n IcThemeMode,\n IcValidationAriaLive,\n} from \"../../utils/types\";\nimport {\n inheritAttributes,\n debounceEvent,\n getInputDescribedByText,\n renderHiddenInput,\n isEmptyString,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n isSlotUsed,\n removeDisabledFalse,\n checkSlotInChildMutations,\n removeHiddenInput,\n} from \"../../utils/helpers\";\nimport {\n IC_INHERITED_ARIA,\n IGNORED_KEYBOARD_CHARACTERS,\n} from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldKeydownEventDetail,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot helper-text - Content is set as the helper text for the text field.\n * @slot validation-text - Content is set as validation text for the text field.\n * @slot icon - Content will be placed to the left of the text input.\n */\n@Component({\n tag: \"ic-text-field\",\n styleUrl: \"ic-text-field.css\",\n shadow: true,\n})\nexport class TextField {\n private inheritedAttributes: { [k: string]: string } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private hostMutationObserver: MutationObserver | null = null;\n private interval: ReturnType<typeof setInterval>;\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxCharactersReached: boolean = false;\n @State() maxCharactersWarning: boolean = false;\n @State() minCharactersUnattained: boolean = false;\n @State() maxValueExceeded: boolean = false;\n @State() minValueUnattained: boolean = false;\n @State() isFocussed: boolean = false;\n\n /**\n * @slot clear-button - an ic-button clear component will render as an end adornment to the input.\n * @slot search-submit-button - an ic-button search submit component will render as an end adornment to the input.\n * @slot menu - an ic-menu component will appear below the input.\n */\n\n /**\n * @internal The active element when focus is on the ic-menu items.\n */\n @Prop() ariaActiveDescendant?: string;\n\n /**\n * @internal Used to identify whether inputting any text triggers more predictions\n */\n @Prop() ariaAutocomplete?: IcAriaAutocompleteTypes;\n\n /**\n * @internal Used to identify if the slotted menu is rendered\n */\n @Prop() ariaExpanded: string | null;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwns?: string;\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 = \"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 = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n /**\n * Specify whether the text field fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n @Prop() fullWidth = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\n\n /**\n * If `true`, the character count which is displayed when `maxCharacters` is set will be visually hidden.\n */\n @Prop() hideCharCount = false;\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 = false;\n\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n @Prop() hiddenInput = true;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId = `ic-text-field-input-${inputIds++}`;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode: IcTextFieldInputModes = \"text\";\n\n /**\n * The label for the input.\n */\n @Prop() label!: string;\n\n /**\n * The maximum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of max value in `helperText` or `label`)\n */\n @Prop() max?: string | number;\n\n /**\n * The count of characters in the field. Will display a warning if the bound is reached. (NOTE: If the value of the text field has been set using the `value` prop, it will be truncated to this number of characters)\n */\n @Prop() maxCharacters = 0;\n\n /**\n * The text to display as the warning message when the maximum number of characters (the `maxCharacters` prop value) is reached.\n */\n // prettier-ignore\n @Prop() maxCharactersMessage = `Maximum input is ${this.maxCharacters} characters`;\n\n /**\n * The text to display as the error message when the maximum value (the `max` prop value) has been exceeded.\n */\n @Prop() maxMessage = `Maximum value of ${this.max} exceeded`;\n\n /**\n * The minimum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of min value in `helperText` or `label`)\n */\n @Prop() min?: string | number;\n\n /**\n * The minimum number of characters that can be entered in the field.\n */\n @Prop() minCharacters = 0;\n\n /**\n * The text to display as the error message when the minimum number of characters (the `minCharacters` prop value) has not been met.\n */\n // prettier-ignore\n @Prop() minCharactersMessage = `Minimum input is ${this.minCharacters} characters`;\n\n /**\n * The text to display as the error message when the minimum value (the `min` prop value) has not been met.\n */\n @Prop() minMessage = `Minimum value of ${this.min} not met`;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"\";\n\n /**\n * If `true`, the read only state will be set.\n */\n @Prop({ reflect: true }) readonly = false;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n @Prop() resize = false;\n\n /**\n * @internal Used to set the role if not default textbox;\n */\n @Prop() role: string | null;\n\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n @Prop() rows = 1;\n\n /**\n * The size of the text field component.\n */\n @Prop() size: IcSizesNoLarge = \"medium\";\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck = 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 * @internal If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.\n */\n @Prop() truncateValue = false;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: IcTextFieldTypes = \"text\";\n\n /**\n * The value of the `aria-live` attribute on the validation message. When set to \"default\", the `aria-live` value will be handled automatically, e.g. \"assertive\" for `validation-status=\"error\"`.\n */\n @Prop() validationAriaLive: IcValidationAriaLive = \"default\";\n\n /**\n * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\n */\n @Prop() validationInline = false;\n\n /**\n * @internal If `true`, the validation will display inline.\n */\n @Prop() validationInlineInternal = false;\n\n /**\n * The validation state - 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 * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n\n /**\n * The value of the text field.\n */\n @Prop({ reflect: true, mutable: true }) value = \"\";\n @State() initialValue = this.value;\n @Watch(\"value\")\n private watchValueHandler(newValue: string): void {\n let value;\n\n if (this.maxCharacters > 0) {\n value = newValue.substring(0, this.maxCharacters);\n if (value.length < newValue.length) {\n this.maxCharactersWarning = true;\n }\n this.value = value;\n } else {\n value = newValue;\n }\n\n if (this.inputEl && this.inputEl.value !== value) {\n this.inputEl.value = value;\n }\n\n this.getMaxValueExceeded(value);\n\n this.getMaxCharactersReached(value);\n\n this.icChange.emit({ value });\n }\n\n /**\n * @internal Emitted when the validationInlineInternal is `true`\n */\n @Event() getValidationText: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input loses focus.\n */\n @Event() icBlur: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input gains focus.\n */\n @Event() icFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<IcTextFieldKeydownEventDetail>;\n\n /**\n * Emitted when the textarea variant is scrolled.\n */\n @Event() icScroll: EventEmitter;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el as HTMLElement, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n } else if (this.maxCharacters > 0) {\n this.value = this.value.substring(0, this.maxCharacters);\n }\n\n this.getMaxValueExceeded(this.value);\n this.getMaxCharactersReached(this.value);\n\n this.inheritedAttributes = inheritAttributes(\n this.el as HTMLElement,\n MUTABLE_ATTRIBUTES\n );\n\n if (this.readonly) {\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el as HTMLElement, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getValidationText.emit({ value: this.validationText });\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n\n if (this.autofocus && !this.disabled && !this.readonly) {\n this.interval = setInterval(this.checkChildHydration, 50);\n }\n }\n\n private checkChildHydration = () => {\n if (\n this.hideLabel ||\n this.el.shadowRoot\n ?.querySelector(\"ic-typography\")\n ?.classList.contains(\"hydrated\")\n ) {\n this.setFocus();\n clearInterval(this.interval);\n }\n };\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({\n event: ev,\n cursorPosition: this.inputEl.selectionStart ?? 0,\n selectionEnd: this.inputEl.selectionEnd ?? 0,\n });\n\n if (!ev.ctrlKey && !IGNORED_KEYBOARD_CHARACTERS.includes(ev.key)) {\n this.maxCharactersWarning = this.maxCharactersReached;\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private getNumberOfCharacters = (value: string) =>\n value !== null && value !== undefined ? value.length : 0;\n\n private getMaxValueExceeded = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n if (this.type === \"number\") {\n this.minValueUnattained = !!value && Number(value) < Number(this.min);\n this.maxValueExceeded = Number(value) > Number(this.max);\n }\n };\n\n private getMaxCharactersReached = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n this.maxCharactersReached =\n this.maxCharacters > 0 && this.numChars >= this.maxCharacters;\n\n if (this.maxCharactersWarning && !this.maxCharactersReached) {\n this.maxCharactersWarning = false;\n }\n };\n\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n };\n\n private onBlur = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.removeEventListener(\"wheel\", this.onWheel);\n const { value } = target;\n this.numChars = value.length;\n this.minCharactersUnattained =\n this.minCharacters > 0 && this.numChars < this.minCharacters;\n this.icBlur.emit({ value });\n this.isFocussed = false;\n };\n\n private onFocus = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.addEventListener(\"wheel\", this.onWheel);\n this.icFocus.emit({ value: target.value });\n this.isFocussed = true;\n };\n\n private onTextAreaScroll = () => {\n this.icScroll.emit();\n };\n\n private onWheel = (ev: WheelEvent) => {\n const target = ev.target as HTMLInputElement;\n if (target.type === \"number\") {\n target.blur();\n setTimeout(() => {\n target.focus();\n }, 0);\n }\n };\n\n private hasStatus = (status: IcInformationStatusOrEmpty) =>\n status !== \"\" && !this.disabled;\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n private showValidationMargin = (): boolean => {\n const maxNumChars = this.readonly ? 0 : this.maxCharacters;\n const emptyString =\n isEmptyString(this.validationStatus) ||\n isEmptyString(this.validationText);\n const valueOutsideRange = this.minValueUnattained || this.maxValueExceeded;\n const charsOutsideRange = maxNumChars > 0 || this.minCharactersUnattained;\n return (\n (!emptyString || valueOutsideRange || charsOutsideRange) &&\n !this.validationInlineInternal\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 && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n this.inheritedAttributes[attributeName] = attribute;\n }\n forceComponentUpdate = true;\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 render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n placeholder,\n helperText,\n hideCharCount,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n numChars,\n readonly,\n maxCharacters,\n maxCharactersMessage,\n maxCharactersWarning,\n maxCharactersReached,\n maxMessage,\n minCharacters,\n minCharactersMessage,\n minCharactersUnattained,\n minMessage,\n minValueUnattained,\n maxValueExceeded,\n validationAriaLive,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n theme,\n hideLabel,\n type,\n autocapitalize,\n ariaActiveDescendant,\n inheritedAttributes,\n ariaExpanded,\n ariaOwns,\n autocomplete,\n role,\n isFocussed,\n } = this;\n\n const el = this.el as HTMLElement;\n\n const disabledMode = readonly || disabled;\n\n const currentStatus =\n maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersWarning\n ? maxCharactersWarning\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxCharactersWarning\n ? maxCharactersMessage\n : maxValueExceeded\n ? maxMessage\n : minValueUnattained\n ? minMessage\n : minCharactersUnattained\n ? minCharactersMessage\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxCharacters;\n const messageAriaLive =\n validationAriaLive === \"default\"\n ? maxCharactersWarning ||\n maxValueExceeded ||\n minValueUnattained ||\n currentStatus === IcInformationStatus.Error\n ? \"assertive\"\n : \"polite\"\n : validationAriaLive;\n\n const showStatusText =\n this.hasStatus(currentStatus) &&\n !(currentStatus == IcInformationStatus.Success && validationInline) &&\n !validationInlineInternal;\n\n const multiline = rows > 1;\n\n const hiddenCharCountDescId =\n maxCharacters > 0 ? `${inputId}-char-count-desc` : \"\";\n\n const charsRemaining = maxNumChars - numChars;\n const remainingCharCountDescId =\n maxCharacters > 0 ? `${inputId}-remaining-char-count-desc` : \"\";\n const remainingCharCountDesc = `${charsRemaining} character${\n charsRemaining === 1 ? \"\" : \"s\"\n } remaining.`;\n\n const describedBy = `${getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showStatusText\n )} ${hiddenCharCountDescId} ${\n numChars > 0 ? remainingCharCountDescId : \"\"\n }`.trim();\n\n const disabledText = disabledMode && !readonly;\n const showLeftIcon =\n !!this.el.querySelector(`[slot=\"icon\"]`) && !disabledText;\n\n const invalid = `${currentStatus === IcInformationStatus.Error}`;\n\n hiddenInput\n ? renderHiddenInput(this.el as HTMLElement, value, name, disabledMode)\n : removeHiddenInput(this.el as HTMLElement);\n\n return (\n <Host\n class={{\n \"ic-text-field-full-width\": fullWidth,\n \"ic-text-field-disabled\": disabledMode,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\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={disabledText}\n readonly={readonly}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n\n <ic-input-component-container\n size={size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {showLeftIcon && (\n <span\n class={{\n readonly,\n \"has-value\": this.getNumberOfCharacters(value) > 0,\n }}\n slot=\"left-icon\"\n >\n <slot name=\"icon\" />\n </span>\n )}\n\n {!multiline ? (\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n type={type}\n min={min}\n max={max}\n value={value}\n class={{\n \"no-left-pad\": !showLeftIcon && readonly,\n readonly,\n \"truncate-value\": truncateValue,\n }}\n placeholder={placeholder ? placeholder : \"\"}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-activedescendant={ariaActiveDescendant}\n aria-expanded={ariaExpanded}\n aria-owns={ariaOwns}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n role={role || undefined}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></input>\n ) : (\n <textarea\n id={inputId}\n class={{\n \"no-resize\": resize === false || !!readonly,\n \"no-left-pad\": !showLeftIcon && !!readonly,\n readonly: !!readonly,\n }}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLTextAreaElement)}\n value={value}\n rows={rows}\n required={required}\n disabled={disabledMode}\n placeholder={placeholder}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onScroll={this.onTextAreaScroll}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(el, \"menu\") && <slot name=\"menu\"></slot>}\n <ic-input-validation\n class={{ \"show-validation\": this.showValidationMargin() }}\n status={\n this.hasStatus(currentStatus) === false ||\n (currentStatus === IcInformationStatus.Success &&\n validationInline) ||\n validationInlineInternal\n ? \"\"\n : currentStatus\n }\n message={showStatusText ? currentValidationText : \"\"}\n ariaLiveMode={messageAriaLive}\n for={inputId}\n fullWidth={fullWidth}\n >\n {isSlotUsed(el, \"validation-text\") && (\n <slot name=\"validation-text\" slot=\"validation-message\"></slot>\n )}\n {!readonly && maxNumChars > 0 && (\n <div slot=\"validation-message-adornment\">\n {!hideCharCount && (\n <ic-typography variant=\"caption\" class=\"char-count-text\">\n <span class=\"char-count\">\n {numChars}/{maxNumChars}\n </span>\n </ic-typography>\n )}\n <span\n class=\"remaining-char-count-desc\"\n aria-live=\"polite\"\n hidden={!isFocussed}\n id={remainingCharCountDescId}\n >\n {remainingCharCountDesc}\n </span>\n <span hidden={true} id={hiddenCharCountDescId}>\n Field can contain a maximum of {maxNumChars} characters.\n </span>\n </div>\n )}\n </ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"ic-pagination.ic-select.ic-text-field.entry.cjs.js","mappings":"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","names":["h","removeDisabledFalse","onComponentRequiredPropUndefined","Host","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","checkSlotInChildMutations","forceUpdate","removeFormResetListener","addFormResetListener","IcInformationStatus","getInputDescribedByText","renderHiddenInput","isSlotUsed","isMobileOrTablet","isEmptyString","debounceEvent","inheritAttributes","IGNORED_KEYBOARD_CHARACTERS","removeHiddenInput"],"sources":["src/components/ic-pagination/ic-pagination.css?tag=ic-pagination&encapsulation=shadow","src/components/ic-pagination/ic-pagination.tsx","src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","src/components/ic-select/ic-select.tsx","src/components/ic-text-field/ic-text-field.css?tag=ic-text-field&encapsulation=shadow","src/components/ic-text-field/ic-text-field.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\nnav {\n width: 100%;\n display: flex;\n flex-flow: row wrap;\n justify-content: flex-start;\n align-items: center;\n}\n\nic-button {\n cursor: pointer;\n}\n\nic-button.next-previous {\n --icon-width: var(--ic-space-xs);\n --icon-height: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n\n padding: 0 var(--ic-space-xxs) 0 var(--ic-space-xxxs);\n}\n\nic-button.first-last {\n --icon-width: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n --icon-height: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n}\n\nic-button.first-last::part(button),\nic-button.next-previous::part(button) {\n color: var(--ic-pagination-chevron);\n}\n\n:host(.ic-pagination-monochrome) ic-button.first-last::part(button),\n:host(.ic-pagination-monochrome) ic-button.next-previous::part(button) {\n color: var(--ic-pagination-chevron-monochrome);\n}\n\nic-button.ic-button-disabled.first-last::part(button),\nic-button.ic-button-disabled.next-previous::part(button),\n:host(.ic-pagination-monochrome)\n ic-button.ic-button-disabled.first-last::part(button),\n:host(.ic-pagination-monochrome)\n ic-button.ic-button-disabled.next-previous::part(button) {\n color: var(--ic-pagination-chevron-disabled);\n}\n\n.disabled {\n color: var(--ic-color-text-disabled-mid);\n pointer-events: none;\n cursor: none;\n user-select: none;\n}\n\n.hide-current-page {\n display: none;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n.sr-only:dir(rtl) {\n right: -9999px;\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Listen,\n State,\n Watch,\n Event,\n EventEmitter,\n Method,\n} from \"@stencil/core\";\nimport paginationNextPrevious from \"../../assets/pagination-next-previous.svg\";\nimport paginationFirstLast from \"../../assets/pagination-first-last.svg\";\nimport { IcThemeMode } from \"../../utils/types\";\nimport { IcPaginationTypes, IcChangeEventDetail } from \"./ic-pagination.types\";\nimport {\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-pagination\",\n styleUrl: \"ic-pagination.css\",\n shadow: true,\n})\nexport class Pagination {\n @Element() el: HTMLIcPaginationElement;\n\n @State() endEllipsis: boolean = false;\n @State() endItems: number[] = [];\n @State() midItems: number[] = [];\n @State() startEllipsis: boolean = false;\n @State() startItems: number[] = [];\n\n /**\n * The accessible label of the pagination component to provide context for screen reader users.\n */\n @Prop() accessibleLabel?: string = \"Pagination Navigation\";\n\n /**\n * The number of pages displayed adjacent to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.\n */\n @Prop({ mutable: true }) adjacentPageCount?: number = 1;\n\n @Watch(\"adjacentPageCount\")\n watchAdjacentPageCountHandler(): void {\n if (this.adjacentPageCount! > 2) {\n this.adjacentPageCount = 2;\n }\n }\n\n /**\n * The number of pages displayed as boundary items to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.\n */\n @Prop({ mutable: true }) boundaryPageCount?: number = 1;\n\n @Watch(\"boundaryPageCount\")\n watchBoundaryPageCountHandler(): void {\n if (this.boundaryPageCount! > 2) {\n this.boundaryPageCount = 2;\n }\n }\n\n /**\n * The default page to display.\n */\n @Prop() defaultPage?: number = 1;\n\n /**\n * If `true`, the pagination will not allow interaction.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the current page of the simple pagination will not be displayed.\n */\n @Prop() hideCurrentPage?: boolean = false;\n\n /**\n * If `true`, the first and last page buttons will not be displayed.\n */\n @Prop() hideFirstAndLastPageButton?: boolean = false;\n\n /**\n * The label for the pagination item (applicable when simple pagination is being used).\n */\n @Prop() label?: string = \"Page\";\n\n /**\n * If `true`, the pagination will display as black in the light theme, and white in dark theme.\n */\n @Prop() monochrome?: boolean = false;\n\n /**\n * The total number of pages.\n */\n @Prop() pages!: number;\n\n @Watch(\"pages\")\n watchNumberPagesHandler(): void {\n this.watchPageChangeHandler();\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\n /**\n * The type of pagination to be used.\n */\n @Prop() type?: IcPaginationTypes = \"simple\";\n\n @Watch(\"type\")\n watchTypeHandler(): void {\n this.watchPageChangeHandler();\n }\n\n /**\n * The current page displayed by the pagination.\n */\n @Prop({ mutable: true }) currentPage?: number = this.defaultPage;\n\n @Watch(\"currentPage\")\n watchPageChangeHandler(): void {\n if (this.type === \"simple\") {\n return;\n }\n\n this.startEllipsis = false;\n this.endEllipsis = false;\n this.startItems = [];\n this.endItems = [];\n this.midItems = [];\n\n const startItems = [];\n let startItemCount = 0;\n const endItems = [];\n let endStart = this.pages;\n const midItems = [];\n let midStart;\n let midEnd;\n let startEllipsis = false;\n let endEllipsis = false;\n\n if (\n this.pages <=\n this.boundaryPageCount! * 2 + this.adjacentPageCount! * 2 + 3\n ) {\n this.startEllipsis = false;\n this.endEllipsis = false;\n for (let i = 1; i <= this.pages; i++) {\n startItems.push(i);\n }\n this.startItems = startItems;\n return;\n }\n\n startItemCount = this.boundaryPageCount === 0 ? 1 : this.boundaryPageCount!;\n endStart =\n this.boundaryPageCount === 0\n ? this.pages\n : this.pages - this.boundaryPageCount! + 1;\n\n if (\n this.currentPage! <=\n this.adjacentPageCount! + this.boundaryPageCount! + 2\n ) {\n startEllipsis = false;\n endEllipsis = true;\n\n let numItems = 2 * this.adjacentPageCount! + 1;\n if (this.boundaryPageCount === 0) {\n numItems--;\n }\n midStart = startItemCount + 1;\n midEnd = midStart + numItems;\n } else {\n startEllipsis = true;\n if (\n this.currentPage! >\n this.pages - (this.adjacentPageCount! + this.boundaryPageCount! + 2)\n ) {\n let numItems = 2 * this.adjacentPageCount! + 1;\n if (this.boundaryPageCount === 0) {\n numItems--;\n }\n midEnd =\n this.boundaryPageCount === 0\n ? this.pages - 1\n : this.pages - this.boundaryPageCount!;\n midStart = midEnd - numItems;\n } else {\n endEllipsis = true;\n midStart = this.currentPage! - this.adjacentPageCount!;\n midEnd = this.currentPage! + this.adjacentPageCount!;\n }\n }\n\n //create array of start items\n if (\n this.boundaryPageCount! > 0 ||\n (this.boundaryPageCount === 0 && startEllipsis === false)\n ) {\n for (let i = 1; i <= startItemCount; i++) {\n startItems.push(i);\n }\n }\n\n //create array of end items\n if (\n this.boundaryPageCount! > 0 ||\n (this.boundaryPageCount === 0 && endEllipsis === false)\n ) {\n for (let i = endStart; i <= this.pages; i++) {\n endItems.push(i);\n }\n }\n\n //create array of mid items\n for (let i = midStart; i <= midEnd; i++) {\n midItems.push(i);\n }\n\n this.startEllipsis = startEllipsis;\n this.endEllipsis = endEllipsis;\n this.startItems = startItems;\n this.endItems = endItems;\n this.midItems = midItems;\n }\n\n /**\n * Emitted when a page is selected.\n */\n @Event() icPageChange: EventEmitter<IcChangeEventDetail>;\n\n componentWillLoad(): void {\n this.watchPageChangeHandler();\n this.watchBoundaryPageCountHandler();\n this.watchAdjacentPageCountHandler();\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.pages, propName: \"pages\" }],\n \"Pagination\"\n );\n }\n\n /**\n * Prevents focus lingering on a disabled element. If the currently\n * focused element is one of the back buttons (and we reach the first page),\n * move focus to \"next\" button, and vice versa.\n * @param ev\n */\n @Listen(\"icPageChange\")\n icPageChangeHandler(ev: CustomEvent<IcChangeEventDetail>) {\n const shadow = document.activeElement?.shadowRoot;\n\n const activeEl = shadow ? shadow.activeElement : document.activeElement;\n if (!shadow || !activeEl) {\n return;\n }\n\n if (\n ev.detail.value === 1 &&\n [\"first-page-button\", \"previous-page-button\"].some(\n (id) => id === activeEl?.id\n )\n ) {\n const btn = (\n shadow.querySelector(\"#next-page-button\") as HTMLElement\n ).shadowRoot?.querySelector(\"button\");\n // When navigating from firstPage->lastPage or vice versa, the to-be-selected element will be disabled. wait a tick so that it can receive focus.\n setTimeout(() => btn?.focus(), 10);\n } else if (\n ev.detail.value === this.pages &&\n [\"last-page-button\", \"next-page-button\"].some((id) => id === activeEl?.id)\n ) {\n const btn = (\n shadow!.querySelector(\"#previous-page-button\") as HTMLElement\n ).shadowRoot?.querySelector(\"button\");\n setTimeout(() => btn?.focus(), 10);\n }\n }\n\n @Listen(\"paginationItemClick\")\n paginationItemClickHandler(ev: CustomEvent): void {\n const page = ev.detail.page;\n this.currentPage = page;\n this.icPageChange.emit({ value: this.currentPage! });\n }\n\n /**\n * Sets the currently displayed page.\n * @param {number} page The page number to set as the current page\n */\n @Method()\n async setCurrentPage(page: number): Promise<void> {\n if (typeof page === \"number\" && page > 0 && page <= this.pages) {\n this.currentPage = page;\n } else {\n console.error(\n \"Current page must be a number greater than zero but less than or equal to the total number of pages\"\n );\n }\n }\n\n private handleClickFirst = () => {\n this.currentPage = 1;\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n private handleClickPrevious = (): void => {\n this.currentPage!--;\n this.icPageChange.emit({ value: this.currentPage! });\n };\n\n private handleClickNext = (): void => {\n this.currentPage!++;\n this.icPageChange.emit({ value: this.currentPage! });\n };\n\n private handleClickLast = (): void => {\n this.currentPage = this.pages;\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n // button rendering abstracted from component render methods for clarity\n private firstButton = () => {\n return (\n <ic-button\n id=\"first-page-button\"\n aria-label=\"Go to first page\"\n theme={this.theme}\n onClick={this.handleClickFirst}\n class=\"page-button first-last\"\n disabled={this.currentPage === 1 || this.disabled}\n variant=\"icon-tertiary\"\n monochrome={this.theme == \"light\" || this.theme == \"dark\"}\n innerHTML={paginationFirstLast}\n />\n );\n };\n\n private previousButton = () => {\n return (\n <ic-button\n id=\"previous-page-button\"\n aria-label=\"Go to previous page\"\n theme={this.theme}\n onClick={this.handleClickPrevious}\n class=\"page-button next-previous flip\"\n disabled={this.currentPage === 1 || this.disabled}\n variant=\"icon-tertiary\"\n monochrome={this.theme == \"light\" || this.theme == \"dark\"}\n innerHTML={paginationNextPrevious}\n />\n );\n };\n\n private nextButton = () => {\n return (\n <ic-button\n id=\"next-page-button\"\n aria-label=\"Go to next page\"\n theme={this.theme}\n onClick={this.handleClickNext}\n class=\"page-button next-previous\"\n disabled={this.currentPage === this.pages || this.disabled}\n variant=\"icon-tertiary\"\n monochrome={this.theme == \"light\" || this.theme == \"dark\"}\n innerHTML={paginationNextPrevious}\n />\n );\n };\n\n private lastButton = () => {\n return (\n <ic-button\n id=\"last-page-button\"\n aria-label=\"Go to last page\"\n theme={this.theme}\n onClick={this.handleClickLast}\n class=\"page-button first-last flip\"\n disabled={this.currentPage === this.pages || this.disabled}\n variant=\"icon-tertiary\"\n monochrome={this.theme == \"light\" || this.theme == \"dark\"}\n innerHTML={paginationFirstLast}\n />\n );\n };\n\n private renderStartEllipsis = () => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n type=\"ellipsis\"\n id=\"start-ellipsis\"\n disabled={this.disabled}\n />\n );\n };\n\n private renderEndEllipsis = () => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n type=\"ellipsis\"\n id=\"end-ellipsis\"\n disabled={this.disabled}\n />\n );\n };\n\n private renderStartItems = () => {\n return this.startItems.map((page: number) => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n selected={page === this.currentPage}\n id={`pagination-item-${page}`}\n type=\"page\"\n page={page}\n disabled={this.disabled}\n />\n );\n });\n };\n\n private renderEndItems = () => {\n return this.endItems.map((page: number) => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n selected={page === this.currentPage}\n id={`pagination-item-${page}`}\n type=\"page\"\n page={page}\n disabled={this.disabled}\n />\n );\n });\n };\n\n private renderMiddleItems = () => {\n return this.midItems.map((page: number) => {\n return (\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n selected={page === this.currentPage}\n id={`pagination-item-${page}`}\n type=\"page\"\n page={page}\n disabled={this.disabled}\n />\n );\n });\n };\n\n render() {\n const {\n type,\n currentPage,\n hideCurrentPage,\n disabled,\n hideFirstAndLastPageButton,\n label,\n theme,\n monochrome,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-pagination-monochrome\"]: !!monochrome,\n }}\n >\n {type === \"simple\" && (\n <nav\n class={{\n [\"disabled\"]: !!disabled,\n }}\n role=\"navigation\"\n aria-label={this.accessibleLabel}\n >\n {hideFirstAndLastPageButton ? null : this.firstButton()}\n {this.previousButton()}\n <ic-pagination-item\n theme={this.theme}\n monochrome={this.monochrome}\n type=\"simple-current\"\n page={currentPage}\n label={label}\n class={{ [\"hide-current-page\"]: !!hideCurrentPage }}\n disabled={disabled}\n />\n {this.nextButton()}\n {hideFirstAndLastPageButton ? null : this.lastButton()}\n </nav>\n )}\n {type === \"complex\" && (\n <nav\n class={{\n [\"disabled\"]: !!disabled,\n }}\n role=\"navigation\"\n aria-label={this.accessibleLabel}\n >\n {hideFirstAndLastPageButton ? null : this.firstButton()}\n {this.previousButton()}\n {this.renderStartItems()}\n {this.startEllipsis && this.renderStartEllipsis()}\n {this.renderMiddleItems()}\n {this.endEllipsis && this.renderEndEllipsis()}\n {this.renderEndItems()}\n {this.nextButton()}\n {hideFirstAndLastPageButton ? null : this.lastButton()}\n </nav>\n )}\n {type === \"complex\" && (\n <span class=\"sr-only\" aria-live=\"polite\">\n Page {this.currentPage}\n </span>\n )}\n </Host>\n );\n }\n}\n","@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-xs);\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-label);\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);\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.aria-live-hidden-text {\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\n@media (prefers-reduced-motion: reduce) {\n .clear-button,\n ic-input-validation.menu-open .status-icon,\n ic-input-validation.menu-open .statustext {\n transition: none;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n State,\n Watch,\n forceUpdate,\n Method,\n} from \"@stencil/core\";\nimport {\n addFormResetListener,\n checkSlotInChildMutations,\n getInputDescribedByText,\n isMobileOrTablet,\n isSlotUsed,\n removeDisabledFalse,\n removeFormResetListener,\n renderHiddenInput,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaLive,\n IcInformationStatusOrEmpty,\n IcSearchMatchPositions,\n IcMultiValueEventDetail,\n IcSizes,\n IcThemeMode,\n IcInformationStatus,\n} from \"../../utils/types\";\nimport {\n IcSelectOption,\n IcSelectOptionBase,\n IcSelectOptionFlat,\n IcSelectOptionGroup,\n} from \"./ic-select.types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport {\n IcMenuChangeEventDetail,\n IcMenuOptionIdEventDetail,\n IcOptionSelectEventDetail,\n} from \"../ic-menu/ic-menu.types\";\nimport { IcMenuCustomEvent } from \"../../components\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"tabindex\", \"title\"];\n\n/**\n * @slot helper-text - Content is set as the helper text for the select.\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 inputId = `ic-select-input-${inputIds++}`;\n private menu?: HTMLIcMenuElement;\n private menuId = `${this.inputId}-menu`;\n private inheritedAttributes: { [k: string]: string } = {};\n private anchorEl?: HTMLElement;\n private nativeSelectElement?: HTMLSelectElement;\n private hostMutationObserver: MutationObserver | null = null;\n private clearButton?: HTMLIcButtonElement;\n private searchableSelectElement?: HTMLInputElement;\n private timeoutTimer: number | null = null;\n private hasTimedOut: boolean = false;\n private selectElement?: HTMLButtonElement;\n private initialRender: boolean = true;\n private characterKeyPressTimer?: number;\n private pressedCharacters = \"\";\n\n @Element() el!: HTMLIcSelectElement;\n\n @State() ariaActiveDescendant?: string;\n @State() debounceIcInput?: number;\n @State() hiddenInputValue: string | null;\n @State() hasError: boolean = false;\n @State() searchableSelectInputValue: string = \"\";\n @State() selectButtonAriaLiveText: string = \"\";\n @State() selectInputAriaLiveText: string = \"\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled = false;\n\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 = false;\n\n /**\n * The text displayed when there are no options in the option list.\n */\n @Prop() emptyOptionListText = \"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 = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\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 = 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 = 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 = 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 = \"Loading Error\";\n\n /**\n * The message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel = \"Loading...\";\n\n /**\n * If `true`, multiple options can be selected.\n */\n @Prop() multiple = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"Select an option\";\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly = false;\n\n /**\n * If `true`, the select will require a value.\n */\n @Prop() required = 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 = 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 = 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 = 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 value of the `aria-live` attribute on the validation message.\n */\n @Prop() validationAriaLive: IcAriaLive = \"polite\";\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 = \"\";\n\n /**\n * If `true` and on a mobile or tablet device, the native select element will be used instead of the custom select component for better usability.\n */\n @Prop() useNativeSelectOnMobile = true;\n\n /**\n * If `true`, the loading state will be triggered when fetching options asynchronously.\n */\n @Prop({ mutable: true }) loading = false;\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n this.hasTimedOut = false;\n\n if (newValue) {\n this.hasError = false;\n if (this.timeout) {\n if (this.timeoutTimer) {\n this.clearTimer();\n }\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n forceUpdate(this);\n }, this.timeout);\n }\n } else {\n if (this.timeoutTimer) {\n this.clearTimer();\n }\n }\n }\n\n private clearTimer() {\n if (this.timeoutTimer) {\n clearTimeout(this.timeoutTimer);\n this.timeoutTimer = null;\n }\n }\n\n /**\n * The possible selection options.\n */\n @Prop() options: IcSelectOption[] = [];\n @State() flatOptions: IcSelectOptionFlat[] = [];\n @Watch(\"options\")\n optionsChangedHandler(): void {\n const flat = this.getFlatOptions(this.options)\n .filter((option) => option.value != null || option.label != null) // filter out options missing both value and label\n .map((option) => ({\n ...option,\n value: option.value ?? option.label, // if an option is missing a value, use the label as the value\n label: option.label ?? option.value, // vice versa\n }));\n this.flatOptions = this.getDeduplicatedOptions(flat);\n\n if (!this.initialRender) this.loading = false;\n this.clearTimer();\n this.updateSelectButtonAriaLive();\n }\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icInput` event after each keystroke.\n */\n @Prop() debounce = 0;\n @State() currDebounce = this.debounce;\n @Watch(\"debounce\")\n debounceChangedHandler(newValue: number): void {\n if (this.currDebounce !== newValue) {\n this.currDebounce = newValue;\n }\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 = null;\n @State() initialValue = this.value;\n @Watch(\"value\")\n valueChangedHandler(newValue: string | string[] | null): void {\n const validated = this.getValidatedValue(newValue);\n\n const isEqual =\n Array.isArray(validated) && Array.isArray(this.value)\n ? validated.length === this.value.length &&\n validated.every((v, i) => v === (this.value as string[])[i])\n : validated === this.value;\n\n if (!isEqual) {\n this.value = validated;\n return;\n }\n\n this.updateSelectButtonAriaLive();\n this.icChange.emit({ value: this.value });\n }\n\n @State() open = false;\n @Watch(\"open\")\n openChangedHandler(): void {\n this.open ? this.icOpen.emit() : this.icClose.emit();\n if (!this.open) {\n this.ariaActiveDescendant = undefined;\n }\n this.handleFocusIndicatorDisplay();\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 /**\n * Sets focus on the select component.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.selectElement) {\n this.selectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n this.initialRender = false;\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n this.clearTimer();\n }\n\n componentDidLoad(): void {\n forceUpdate(this);\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n private getValidatedValue = (\n value: string | string[] | null\n ): string | string[] | null => {\n const validValues = this.flatOptions.map((opt) => opt.value);\n\n if (validValues.length === 0) return value;\n\n if (this.multiple) {\n if (!value) return null;\n const arr = Array.isArray(value) ? value : [value]; // Ensure value is an array\n const filtered = validValues.filter((v) => arr.includes(v)); // Keep only valid values\n return filtered.length > 0 ? filtered : null;\n } else {\n return validValues.includes(value as string) ? value : null;\n }\n };\n\n componentWillLoad(): void {\n this.optionsChangedHandler();\n this.value = this.getValidatedValue(this.value);\n this.initialValue = this.value;\n\n if (this.loading) this.loadingHandler(true);\n\n addFormResetListener(this.el, this.handleFormReset);\n }\n\n private getFilteredOptions = (\n searchString: string,\n searchMatchPosition: \"anywhere\" | \"start\",\n includeDescriptionsInSearch: boolean,\n includeGroupTitlesInSearch: boolean\n ): IcSelectOption[] => {\n const search = searchString.toLowerCase();\n const match = (text: string, method: \"anywhere\" | \"start\") =>\n method === \"anywhere\" ? text.includes(search) : text.startsWith(search);\n\n return this.unflattenOptions(\n this.flatOptions.filter((option) => {\n const label = option.label.toLowerCase();\n const group = option.group?.toLowerCase() ?? \"\";\n const description = option.description?.toLowerCase() ?? \"\";\n return (\n match(label, searchMatchPosition) ||\n (includeDescriptionsInSearch &&\n match(description, searchMatchPosition)) ||\n (includeGroupTitlesInSearch && match(group, searchMatchPosition))\n );\n })\n );\n };\n\n private getOptions = (): IcSelectOption[] => {\n const options =\n this.searchable &&\n !this.disableAutoFiltering &&\n this.searchableSelectInputValue\n ? this.getFilteredOptions(\n this.searchableSelectInputValue,\n this.searchMatchPosition,\n this.includeDescriptionsInSearch,\n this.includeGroupTitlesInSearch\n )\n : this.unflattenOptions(this.flatOptions);\n\n if (this.hasTimedOut)\n return [{ label: this.loadingErrorLabel, value: \"\", timedOut: true }];\n\n if (this.loading)\n return [{ label: this.loadingLabel, value: \"\", loading: true }];\n\n if (options.length > 0) return options;\n\n return [{ label: this.emptyOptionListText, value: \"\" }];\n };\n\n private getFlatOptions = (options: IcSelectOption[]): IcSelectOptionFlat[] =>\n options.flatMap(\n (item) =>\n (\"children\" in item && item.children\n ? [...item.children.map((child) => ({ group: item.label, ...child }))]\n : [item]) as IcSelectOptionFlat[]\n );\n\n private unflattenOptions = (\n flatOptions: IcSelectOptionFlat[]\n ): IcSelectOption[] => {\n const groupMap = new Map<string, IcSelectOptionGroup>();\n const result: IcSelectOption[] = [];\n\n for (const option of flatOptions) {\n if (option.group) {\n let group = groupMap.get(option.group);\n if (!group) {\n group = { label: option.group, children: [] };\n groupMap.set(option.group, group);\n result.push(group);\n }\n const { group: _, ...rest } = option;\n group.children.push(rest as IcSelectOptionBase);\n } else {\n result.push(option);\n }\n }\n return result;\n };\n\n private getLabelFromValue = (value: string | null): string =>\n this.flatOptions.find((option) => option.value === value)?.label ?? \"\";\n\n // Construct the string that will be shown in the select input or button\n private getLabelString = (): string => {\n if (Array.isArray(this.value)) {\n return this.value.map(this.getLabelFromValue).filter(Boolean).join(\", \");\n }\n return (\n this.getLabelFromValue(this.value) ||\n (this.searchable ? \"\" : this.placeholder)\n );\n };\n\n private handleClick = (event: MouseEvent) => {\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 handleBlur = ({ relatedTarget }: FocusEvent) => {\n const target = relatedTarget as HTMLElement;\n if (\n this.el.contains(target) ||\n this.el.shadowRoot?.contains(target) ||\n this.menu?.contains(target) ||\n target === this.clearButton\n ) {\n return;\n }\n\n this.open = false;\n this.handleFocusIndicatorDisplay();\n\n if (this.searchable) {\n this.searchableSelectInputValue = \"\";\n }\n this.icBlur.emit();\n };\n\n private handleTimeoutBlur = (event: CustomEvent<{ ev: FocusEvent }>) => {\n this.handleBlur(event.detail.ev);\n };\n\n private handleFocus = () => {\n this.icFocus.emit();\n };\n\n private handleClear = () => {\n this.clearTimer();\n this.loading = false;\n this.value = null;\n this.searchableSelectInputValue = \"\";\n\n this.icClear.emit();\n\n this.setFocus();\n };\n\n private setTextColor = () => {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.className =\n this.nativeSelectElement.selectedIndex === 0\n ? \"placeholder\"\n : \"select-option-selected\";\n }\n };\n\n private handleNativeSelectChange = () => {\n if (this.nativeSelectElement) {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.icChange.emit({ value: this.nativeSelectElement.value });\n }\n this.setTextColor();\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 handleKeyDown = (event: KeyboardEvent) => {\n if (!(event.key === \" \" && this.pressedCharacters.length > 0)) {\n if (this.open) {\n this.menu?.handleMenuKeyDown(event);\n } else {\n this.menu?.handleKeyboardOpen(event);\n }\n }\n\n if (\n !this.multiple &&\n !this.searchable &&\n !this.selectOnEnter &&\n /^[a-zA-Z0-9 ]$/.test(event.key)\n ) {\n this.handleCharacterKeyDown(event.key);\n }\n };\n\n private handleCharacterKeyDown = (key: string) => {\n // Only close menu when space is pressed if not being used alongside character keys to quickly select options\n if (this.open && key === \" \" && this.pressedCharacters.length === 0) {\n this.open = false;\n }\n\n if (key.length !== 1 || this.searchable) {\n this.pressedCharacters = \"\";\n return;\n }\n\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 const filteredOptions = this.getFilteredOptions(\n this.pressedCharacters,\n \"start\",\n false,\n false\n );\n\n if (filteredOptions.length > 0) {\n const firstOption = filteredOptions[0];\n if (\"children\" in firstOption) {\n if (firstOption.children) {\n this.value = firstOption.children[0].value;\n }\n } else {\n this.value = firstOption.value;\n }\n }\n }\n };\n\n private handleNativeSelectKeyDown = (event: KeyboardEvent) => {\n this.handleKeyDown(event);\n };\n\n private handleSelectChange = (\n event: CustomEvent<IcOptionSelectEventDetail>\n ) => {\n const { value } = event.detail;\n if (!value || this.getLabelFromValue(value) === this.emptyOptionListText) {\n this.value = null;\n return;\n }\n\n if (this.multiple) {\n let valueArray = Array.isArray(this.value) ? [...this.value] : [];\n const index = valueArray.indexOf(value);\n\n if (index > -1) {\n valueArray.splice(index, 1);\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n valueArray.push(value);\n valueArray = this.getValidatedValue(valueArray) as string[];\n }\n this.value = valueArray.length ? valueArray : null;\n } else {\n this.icOptionSelect.emit({ value });\n this.value = value;\n if (this.searchable) this.searchableSelectInputValue = \"\";\n }\n };\n\n private handleSelectAllChange = ({\n detail,\n }: CustomEvent<{ select: boolean }>) => {\n const allSelectableValues = this.flatOptions\n .filter((option) => !option.disabled)\n .map((option) => option.value);\n if (detail.select) {\n allSelectableValues\n .filter((value) => !((this.value ?? []) as string[]).includes(value))\n .forEach((value) => {\n this.icOptionSelect.emit({ value });\n });\n\n this.value = allSelectableValues;\n } else {\n (this.value as string[]).forEach((value) =>\n this.icOptionDeselect.emit({ value })\n );\n this.value = null;\n }\n };\n\n private handleFormReset = () => {\n this.value = this.initialValue;\n this.searchableSelectInputValue = \"\";\n if (this.searchable) {\n this.hiddenInputValue = this.initialValue as string;\n }\n };\n\n private handleRetry = () => {\n this.clearTimer();\n this.hasTimedOut = false;\n this.hasError = false;\n this.loading = true;\n this.icRetryLoad.emit({\n value: this.searchable\n ? this.searchableSelectInputValue\n : this.hiddenInputValue,\n });\n this.setFocus();\n };\n\n private handleSearchableSelectInput = (event: Event) => {\n this.updateSearchableSelectResultAriaLive();\n if (!this.multiple) {\n this.value = null;\n }\n\n this.searchableSelectInputValue =\n (event.target as HTMLInputElement).value ?? \"\";\n this.open = true;\n\n clearTimeout(this.debounceIcInput);\n this.debounceIcInput = window.setTimeout(\n () => this.icInput.emit({ value: this.searchableSelectInputValue }),\n this.currDebounce\n );\n };\n\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\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 updateSelectButtonAriaLive = () => {\n const value_label = this.getLabelFromValue(this.value as string);\n this.selectButtonAriaLiveText = this.multiple\n ? `${this.value ? this.value.length : 0} of ${\n this.flatOptions.length\n } selected`\n : this.value\n ? value_label ?? `${value_label} selected`\n : \"\";\n };\n\n private updateSearchableSelectResultAriaLive = () => {\n this.selectInputAriaLiveText =\n this.getOptions()?.[0]?.label == this.emptyOptionListText\n ? this.emptyOptionListText\n : \"\";\n };\n\n private updateAriaActiveDescendant = (\n event: IcMenuCustomEvent<IcMenuOptionIdEventDetail>\n ) => {\n this.ariaActiveDescendant = event.detail.optionId;\n };\n\n private handleMenuChange = (event: CustomEvent<IcMenuChangeEventDetail>) => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n };\n\n private getDeduplicatedOptions = (\n flatOptions: IcSelectOptionFlat[]\n ): IcSelectOptionFlat[] => {\n const seen = new Set();\n return flatOptions.filter((option) => {\n if (option.value && seen.has(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 return false;\n }\n if (option.value) seen.add(option.value);\n return true;\n });\n };\n\n private renderNativeOption = (option: IcSelectOptionBase) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === this.value}\n >\n {option.label}\n </option>\n );\n\n render() {\n const {\n disabled,\n searchable,\n size,\n fullWidth,\n theme,\n readonly,\n hideLabel,\n inputId,\n label,\n helperText,\n required,\n value,\n options,\n menuId,\n multiple,\n validationStatus,\n open,\n showClearButton,\n selectOnEnter,\n loading,\n searchableSelectInputValue,\n validationText,\n validationAriaLive,\n form,\n ariaActiveDescendant,\n placeholder,\n name,\n inheritedAttributes,\n selectInputAriaLiveText,\n selectButtonAriaLiveText,\n } = this;\n\n const hasValue = !!value;\n const hasInput = !!searchableSelectInputValue;\n const isClearable =\n !disabled &&\n ((searchable && (hasInput || hasValue)) ||\n (!searchable && hasValue && !loading && showClearButton));\n\n const showValidation = !!validationStatus && !disabled;\n\n const invalid = validationStatus === IcInformationStatus.Error;\n\n const describedBy = getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showValidation\n ).trim();\n\n const menuOptions = this.getOptions();\n const noOptions =\n disabled ||\n (menuOptions.length === 1 &&\n (menuOptions[0].label === this.emptyOptionListText ||\n \"loading\" in menuOptions[0] ||\n \"timedOut\" in menuOptions[0]));\n\n renderHiddenInput(this.el, value as string, name || inputId, disabled);\n\n const ClearButton = () => (\n <ic-button\n ref={(el) => (this.clearButton = el)}\n id=\"clear-button\"\n aria-label={this.searchable ? \"Clear input\" : \"Clear selection\"}\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onBlur={this.handleBlur}\n size={size}\n variant=\"icon-tertiary\"\n ></ic-button>\n );\n\n const NativeSelect = () => (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid ? \"true\" : \"false\"}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleNativeSelectKeyDown}\n form={form}\n {...inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options.map((option) =>\n \"children\" in option && option.children ? (\n <optgroup label={option.label}>\n {option.children.map((child) =>\n this.renderNativeOption(child as IcSelectOptionBase)\n )}\n </optgroup>\n ) : (\n this.renderNativeOption(option as IcSelectOptionBase)\n )\n )}\n </select>\n );\n\n const SelectButton = () => (\n <div class=\"select-container\">\n <button\n class=\"select-input\"\n role=\"combobox\"\n ref={(el) => (this.selectElement = el)}\n id={inputId}\n aria-label={`${label}, ${\n (multiple && value\n ? `${value.length} of ${\n this.flatOptions.length\n } selected, ${this.getLabelString()}`\n : this.getLabelString()) || placeholder\n }`}\n onClick={this.handleClick}\n aria-describedby={describedBy}\n aria-invalid={invalid ? \"true\" : \"false\"}\n aria-haspopup=\"listbox\"\n aria-expanded={`${open}`}\n aria-controls={menuId}\n aria-required={`${required}`}\n disabled={disabled}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n aria-activedescendant={ariaActiveDescendant}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n \"with-clear-button\": !!isClearable,\n placeholder: !value,\n }}\n >\n {this.getLabelString()}\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\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {isClearable && <ClearButton></ClearButton>}\n <div\n aria-live=\"polite\"\n aria-atomic=\"true\"\n class=\"aria-live-hidden-text\"\n >\n {selectButtonAriaLiveText}\n </div>\n </div>\n );\n\n const SelectInput = () => (\n <div class=\"searchable-select-container\">\n <input\n class={{\n \"value-text\": true,\n \"select-input\": true,\n \"with-clear-button\": !!searchableSelectInputValue,\n }}\n role=\"combobox\"\n autocomplete=\"off\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={`${open}`}\n aria-invalid={invalid ? \"true\" : \"false\"}\n aria-required={`${required}`}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={inputId}\n value={\n multiple\n ? \"\"\n : value\n ? this.getLabelString()\n : searchableSelectInputValue || undefined\n }\n disabled={disabled}\n placeholder={placeholder}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n form={form}\n ></input>\n {isClearable && (\n <div class=\"clear-button-container\">\n <ClearButton></ClearButton>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n onMouseDown={this.handleExpandIconMouseDown}\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n <div aria-live=\"polite\" role=\"status\" class=\"aria-live-hidden-text\">\n {selectInputAriaLiveText}\n </div>\n </div>\n );\n\n const ReadOnly = () => (\n <ic-typography>\n <p>\n {this.getLabelString() === placeholder ? \"\" : this.getLabelString()}\n </p>\n </ic-typography>\n );\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 >\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n <ic-input-component-container\n ref={(el) => (this.anchorEl = el)}\n class={{ \"menu-open\": open }}\n size={size}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {isSlotUsed(this.el, \"icon\") &&\n !disabled &&\n (!readonly || !!value) && (\n <span\n slot=\"left-icon\"\n class={{\n readonly,\n \"has-value\": !!value,\n }}\n >\n <slot name=\"icon\" />\n </span>\n )}\n {isMobileOrTablet() && this.useNativeSelectOnMobile && !multiple ? (\n <NativeSelect />\n ) : readonly ? (\n <ReadOnly />\n ) : !searchable ? (\n <SelectButton />\n ) : (\n <SelectInput />\n )}\n </ic-input-component-container>\n {!(\n isMobileOrTablet() &&\n this.useNativeSelectOnMobile &&\n !multiple\n ) && (\n <ic-menu\n ref={(el) => (this.menu = el)}\n class={{ \"no-results\": noOptions }}\n inputEl={\n searchable ? this.searchableSelectElement : this.selectElement\n }\n allowMenuFocus={false}\n inputLabel={label}\n anchorEl={this.anchorEl}\n size={size}\n menuId={menuId}\n open={open}\n options={this.getOptions()}\n value={multiple ? (value as string[]) : (value as string)}\n fullWidth={fullWidth}\n selectOnEnter={selectOnEnter}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionSelect={this.handleSelectChange}\n onMenuOptionSelectAll={this.handleSelectAllChange}\n onTimeoutBlur={this.handleTimeoutBlur}\n onMenuOptionId={this.updateAriaActiveDescendant}\n onClick={this.setFocus}\n parentEl={this.el}\n activationType={\n searchable || multiple || selectOnEnter ? \"manual\" : \"automatic\"\n }\n onRetryButtonClicked={this.handleRetry}\n closeOnSelect={!multiple}\n multiSelect={multiple}\n searchableSelect={searchable}\n ></ic-menu>\n )}\n <ic-input-validation\n class={{\n \"menu-open\": open,\n }}\n ariaLiveMode={validationAriaLive}\n status={showValidation ? validationStatus : \"\"}\n message={showValidation ? validationText : \"\"}\n for={inputId}\n ></ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n","@import \"../../global/normalize.css\";\n\n:host {\n /**\n * @prop --input-width: Width of the input field\n */\n display: block;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --border-color: var(--ic-text-field-border-neutral);\n --border-color-hover: var(--ic-text-field-border-neutral-hover);\n --border-color-pressed: var(--ic-text-field-border-neutral-pressed);\n --border-color-disabled: var(--ic-text-field-border-disabled);\n --border-color-error: var(--ic-text-field-border-error);\n --border-color-error-hover: var(--ic-text-field-border-error-hover);\n --border-color-error-pressed: var(--ic-text-field-border-error-pressed);\n --border-color-success: var(--ic-text-field-border-success);\n --border-color-success-hover: var(--ic-text-field-border-success-hover);\n --border-color-success-pressed: var(--ic-text-field-border-success-pressed);\n --border-color-warning: var(--ic-text-field-border-warning);\n --border-color-warning-hover: var(--ic-text-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-text-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-text-field-label);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle);\n --ic-input-validation-status-text-color: var(--ic-text-field-state-text);\n --ic-input-validation-error: var(--ic-text-field-state-icon-error);\n --ic-input-validation-warning-icon-color: var(\n --ic-text-field-state-icon-warning\n );\n --ic-input-validation-success-icon-color: var(\n --ic-text-field-state-icon-success\n );\n --ic-input-component-container-success-icon-inline-color: var(\n --ic-text-field-state-icon-success\n );\n}\n\n:host(.ic-text-field-disabled) {\n --ic-input-label-text-color: var(--ic-text-field-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle-disabled);\n --text-field-placeholder-color: var(\n --ic-text-field-text-area-placeholder-text-disabled\n );\n}\n\n:host(.ic-text-field-full-width) {\n width: 100%;\n}\n\n::placeholder {\n color: var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );\n opacity: 1;\n}\n\ninput,\ntextarea {\n border: 0;\n border-radius: var(--ic-border-radius);\n color: var(--text-field-text-color, var(--ic-text-field-text));\n background-color: var(--input-bg-color, var(--ic-text-field-background));\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(\n --text-field-typing-cursor,\n var(--ic-text-field-typing-cursor)\n );\n}\n\ntextarea {\n min-height: var(--ic-space-lg);\n resize: vertical;\n padding-top: 0.375rem;\n}\n\ninput:focus,\ntextarea:focus {\n border: 0;\n outline: 0;\n}\n\ninput:disabled,\ntextarea:disabled {\n color: var(\n --text-field-disabled-text-color,\n var(--ic-text-field-text-disabled)\n );\n}\n\ninput.readonly,\ntextarea.readonly {\n color: var(--ic-text-field-read-only-input-text-internal);\n background: transparent;\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/* Firefox */\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\ntextarea.no-resize {\n resize: none;\n}\n\n.char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit);\n\n padding-right: var(--ic-space-xxxs);\n}\n\n:host(.ic-text-field-disabled) .char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit-disabled);\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-text-disabled);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-input-internal-icon);\n}\n\n.char-count {\n margin-right: calc(-1 * var(--ic-space-xxxs));\n}\n\n.remaining-char-count-desc {\n position: absolute;\n left: -9999px;\n}\n\n.show-validation {\n margin-top: var(--ic-space-xs);\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@media (forced-colors: active) {\n input.readonly,\n textarea.readonly {\n color: canvastext;\n }\n\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\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 forceUpdate,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n IcThemeMode,\n IcValidationAriaLive,\n} from \"../../utils/types\";\nimport {\n inheritAttributes,\n debounceEvent,\n getInputDescribedByText,\n renderHiddenInput,\n isEmptyString,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n isSlotUsed,\n removeDisabledFalse,\n checkSlotInChildMutations,\n removeHiddenInput,\n} from \"../../utils/helpers\";\nimport {\n IC_INHERITED_ARIA,\n IGNORED_KEYBOARD_CHARACTERS,\n} from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldKeydownEventDetail,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot helper-text - Content is set as the helper text for the text field.\n * @slot validation-text - Content is set as validation text for the text field.\n * @slot icon - Content will be placed to the left of the text input.\n */\n@Component({\n tag: \"ic-text-field\",\n styleUrl: \"ic-text-field.css\",\n shadow: true,\n})\nexport class TextField {\n private inheritedAttributes: { [k: string]: string } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private hostMutationObserver: MutationObserver | null = null;\n private interval: ReturnType<typeof setInterval>;\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxCharactersReached: boolean = false;\n @State() maxCharactersWarning: boolean = false;\n @State() minCharactersUnattained: boolean = false;\n @State() maxValueExceeded: boolean = false;\n @State() minValueUnattained: boolean = false;\n @State() isFocussed: boolean = false;\n\n /**\n * @slot clear-button - an ic-button clear component will render as an end adornment to the input.\n * @slot search-submit-button - an ic-button search submit component will render as an end adornment to the input.\n * @slot menu - an ic-menu component will appear below the input.\n */\n\n /**\n * @internal The active element when focus is on the ic-menu items.\n */\n @Prop() ariaActiveDescendant?: string;\n\n /**\n * @internal Used to identify whether inputting any text triggers more predictions\n */\n @Prop() ariaAutocomplete?: IcAriaAutocompleteTypes;\n\n /**\n * @internal Used to identify if the slotted menu is rendered\n */\n @Prop() ariaExpanded: string | null;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwns?: string;\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 = \"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 = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n /**\n * Specify whether the text field fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n @Prop() fullWidth = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\n\n /**\n * If `true`, the character count which is displayed when `maxCharacters` is set will be visually hidden.\n */\n @Prop() hideCharCount = false;\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 = false;\n\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n @Prop() hiddenInput = true;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId = `ic-text-field-input-${inputIds++}`;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode: IcTextFieldInputModes = \"text\";\n\n /**\n * The label for the input.\n */\n @Prop() label!: string;\n\n /**\n * The maximum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of max value in `helperText` or `label`)\n */\n @Prop() max?: string | number;\n\n /**\n * The count of characters in the field. Will display a warning if the bound is reached. (NOTE: If the value of the text field has been set using the `value` prop, it will be truncated to this number of characters)\n */\n @Prop() maxCharacters = 0;\n\n /**\n * The text to display as the warning message when the maximum number of characters (the `maxCharacters` prop value) is reached.\n */\n // prettier-ignore\n @Prop() maxCharactersMessage = `Maximum input is ${this.maxCharacters} characters`;\n\n /**\n * The text to display as the error message when the maximum value (the `max` prop value) has been exceeded.\n */\n @Prop() maxMessage = `Maximum value of ${this.max} exceeded`;\n\n /**\n * The minimum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of min value in `helperText` or `label`)\n */\n @Prop() min?: string | number;\n\n /**\n * The minimum number of characters that can be entered in the field.\n */\n @Prop() minCharacters = 0;\n\n /**\n * The text to display as the error message when the minimum number of characters (the `minCharacters` prop value) has not been met.\n */\n // prettier-ignore\n @Prop() minCharactersMessage = `Minimum input is ${this.minCharacters} characters`;\n\n /**\n * The text to display as the error message when the minimum value (the `min` prop value) has not been met.\n */\n @Prop() minMessage = `Minimum value of ${this.min} not met`;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"\";\n\n /**\n * If `true`, the read only state will be set.\n */\n @Prop({ reflect: true }) readonly = false;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required = false;\n\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n @Prop() resize = false;\n\n /**\n * @internal Used to set the role if not default textbox;\n */\n @Prop() role: string | null;\n\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n @Prop() rows = 1;\n\n /**\n * The size of the text field component.\n */\n @Prop() size: IcSizesNoLarge = \"medium\";\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck = 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 * @internal If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.\n */\n @Prop() truncateValue = false;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: IcTextFieldTypes = \"text\";\n\n /**\n * The value of the `aria-live` attribute on the validation message. When set to \"default\", the `aria-live` value will be handled automatically, e.g. \"assertive\" for `validation-status=\"error\"`.\n */\n @Prop() validationAriaLive: IcValidationAriaLive = \"default\";\n\n /**\n * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\n */\n @Prop() validationInline = false;\n\n /**\n * @internal If `true`, the validation will display inline.\n */\n @Prop() validationInlineInternal = false;\n\n /**\n * The validation state - 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 * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n\n /**\n * The value of the text field.\n */\n @Prop({ reflect: true, mutable: true }) value = \"\";\n @State() initialValue = this.value;\n @Watch(\"value\")\n private watchValueHandler(newValue: string): void {\n let value;\n\n if (this.maxCharacters > 0) {\n value = newValue.substring(0, this.maxCharacters);\n if (value.length < newValue.length) {\n this.maxCharactersWarning = true;\n }\n this.value = value;\n } else {\n value = newValue;\n }\n\n if (this.inputEl && this.inputEl.value !== value) {\n this.inputEl.value = value;\n }\n\n this.getMaxValueExceeded(value);\n\n this.getMaxCharactersReached(value);\n\n this.icChange.emit({ value });\n }\n\n /**\n * @internal Emitted when the validationInlineInternal is `true`\n */\n @Event() getValidationText: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input loses focus.\n */\n @Event() icBlur: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input gains focus.\n */\n @Event() icFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<IcTextFieldKeydownEventDetail>;\n\n /**\n * Emitted when the textarea variant is scrolled.\n */\n @Event() icScroll: EventEmitter;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el as HTMLElement, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n } else if (this.maxCharacters > 0) {\n this.value = this.value.substring(0, this.maxCharacters);\n }\n\n this.getMaxValueExceeded(this.value);\n this.getMaxCharactersReached(this.value);\n\n this.inheritedAttributes = inheritAttributes(\n this.el as HTMLElement,\n MUTABLE_ATTRIBUTES\n );\n\n if (this.readonly) {\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el as HTMLElement, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getValidationText.emit({ value: this.validationText });\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n\n if (this.autofocus && !this.disabled && !this.readonly) {\n this.interval = setInterval(this.checkChildHydration, 50);\n }\n }\n\n private checkChildHydration = () => {\n if (\n this.hideLabel ||\n this.el.shadowRoot\n ?.querySelector(\"ic-typography\")\n ?.classList.contains(\"hydrated\")\n ) {\n this.setFocus();\n clearInterval(this.interval);\n }\n };\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({\n event: ev,\n cursorPosition: this.inputEl.selectionStart ?? 0,\n selectionEnd: this.inputEl.selectionEnd ?? 0,\n });\n\n if (!ev.ctrlKey && !IGNORED_KEYBOARD_CHARACTERS.includes(ev.key)) {\n this.maxCharactersWarning = this.maxCharactersReached;\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus(): Promise<void> {\n this.inputEl?.focus();\n }\n\n private getNumberOfCharacters = (value: string) =>\n value !== null && value !== undefined ? value.length : 0;\n\n private getMaxValueExceeded = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n if (this.type === \"number\") {\n this.minValueUnattained = !!value && Number(value) < Number(this.min);\n this.maxValueExceeded = Number(value) > Number(this.max);\n }\n };\n\n private getMaxCharactersReached = (value: string) => {\n this.numChars = this.getNumberOfCharacters(value);\n\n this.maxCharactersReached =\n this.maxCharacters > 0 && this.numChars >= this.maxCharacters;\n\n if (this.maxCharactersWarning && !this.maxCharactersReached) {\n this.maxCharactersWarning = false;\n }\n };\n\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n };\n\n private onBlur = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.removeEventListener(\"wheel\", this.onWheel);\n const { value } = target;\n this.numChars = value.length;\n this.minCharactersUnattained =\n this.minCharacters > 0 && this.numChars < this.minCharacters;\n this.icBlur.emit({ value });\n this.isFocussed = false;\n };\n\n private onFocus = (ev: Event) => {\n const target = ev.target as HTMLInputElement;\n target.addEventListener(\"wheel\", this.onWheel);\n this.icFocus.emit({ value: target.value });\n this.isFocussed = true;\n };\n\n private onTextAreaScroll = () => {\n this.icScroll.emit();\n };\n\n private onWheel = (ev: WheelEvent) => {\n const target = ev.target as HTMLInputElement;\n if (target.type === \"number\") {\n target.blur();\n setTimeout(() => {\n target.focus();\n }, 0);\n }\n };\n\n private hasStatus = (status: IcInformationStatusOrEmpty) =>\n status !== \"\" && !this.disabled;\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n private showValidationMargin = (): boolean => {\n const maxNumChars = this.readonly ? 0 : this.maxCharacters;\n const emptyString =\n isEmptyString(this.validationStatus) ||\n isEmptyString(this.validationText);\n const valueOutsideRange = this.minValueUnattained || this.maxValueExceeded;\n const charsOutsideRange = maxNumChars > 0 || this.minCharactersUnattained;\n return (\n (!emptyString || valueOutsideRange || charsOutsideRange) &&\n !this.validationInlineInternal\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 && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n this.inheritedAttributes[attributeName] = attribute;\n }\n forceComponentUpdate = true;\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 render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n placeholder,\n helperText,\n hideCharCount,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n numChars,\n readonly,\n maxCharacters,\n maxCharactersMessage,\n maxCharactersWarning,\n maxCharactersReached,\n maxMessage,\n minCharacters,\n minCharactersMessage,\n minCharactersUnattained,\n minMessage,\n minValueUnattained,\n maxValueExceeded,\n validationAriaLive,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n theme,\n hideLabel,\n type,\n autocapitalize,\n ariaActiveDescendant,\n inheritedAttributes,\n ariaExpanded,\n ariaOwns,\n autocomplete,\n role,\n isFocussed,\n } = this;\n\n const el = this.el as HTMLElement;\n\n const disabledMode = readonly || disabled;\n\n const currentStatus =\n maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersWarning\n ? maxCharactersWarning\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxCharactersWarning\n ? maxCharactersMessage\n : maxValueExceeded\n ? maxMessage\n : minValueUnattained\n ? minMessage\n : minCharactersUnattained\n ? minCharactersMessage\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxCharacters;\n const messageAriaLive =\n validationAriaLive === \"default\"\n ? maxCharactersWarning ||\n maxValueExceeded ||\n minValueUnattained ||\n currentStatus === IcInformationStatus.Error\n ? \"assertive\"\n : \"polite\"\n : validationAriaLive;\n\n const showStatusText =\n this.hasStatus(currentStatus) &&\n !(currentStatus == IcInformationStatus.Success && validationInline) &&\n !validationInlineInternal;\n\n const multiline = rows > 1;\n\n const hiddenCharCountDescId =\n maxCharacters > 0 ? `${inputId}-char-count-desc` : \"\";\n\n const charsRemaining = maxNumChars - numChars;\n const remainingCharCountDescId =\n maxCharacters > 0 ? `${inputId}-remaining-char-count-desc` : \"\";\n const remainingCharCountDesc = `${charsRemaining} character${\n charsRemaining === 1 ? \"\" : \"s\"\n } remaining.`;\n\n const describedBy = `${getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showStatusText\n )} ${hiddenCharCountDescId} ${\n numChars > 0 ? remainingCharCountDescId : \"\"\n }`.trim();\n\n const disabledText = disabledMode && !readonly;\n const showLeftIcon =\n !!this.el.querySelector(`[slot=\"icon\"]`) && !disabledText;\n\n const invalid = `${currentStatus === IcInformationStatus.Error}`;\n\n hiddenInput\n ? renderHiddenInput(this.el as HTMLElement, value, name, disabledMode)\n : removeHiddenInput(this.el as HTMLElement);\n\n return (\n <Host\n class={{\n \"ic-text-field-full-width\": fullWidth,\n \"ic-text-field-disabled\": disabledMode,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\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={disabledText}\n readonly={readonly}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n\n <ic-input-component-container\n size={size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {showLeftIcon && (\n <span\n class={{\n readonly,\n \"has-value\": this.getNumberOfCharacters(value) > 0,\n }}\n slot=\"left-icon\"\n >\n <slot name=\"icon\" />\n </span>\n )}\n\n {!multiline ? (\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n type={type}\n min={min}\n max={max}\n value={value}\n class={{\n \"no-left-pad\": !showLeftIcon && readonly,\n readonly,\n \"truncate-value\": truncateValue,\n }}\n placeholder={placeholder ? placeholder : \"\"}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-activedescendant={ariaActiveDescendant}\n aria-expanded={ariaExpanded}\n aria-owns={ariaOwns}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n role={role || undefined}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></input>\n ) : (\n <textarea\n id={inputId}\n class={{\n \"no-resize\": resize === false || !!readonly,\n \"no-left-pad\": !showLeftIcon && !!readonly,\n readonly: !!readonly,\n }}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLTextAreaElement)}\n value={value}\n rows={rows}\n required={required}\n disabled={disabledMode}\n placeholder={placeholder}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onScroll={this.onTextAreaScroll}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n spellcheck={spellcheck}\n inputmode={inputmode}\n maxlength={maxCharactersReached ? maxCharacters : undefined}\n minlength={minCharactersUnattained ? minCharacters : undefined}\n {...inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(el, \"menu\") && <slot name=\"menu\"></slot>}\n <ic-input-validation\n class={{ \"show-validation\": this.showValidationMargin() }}\n status={\n this.hasStatus(currentStatus) === false ||\n (currentStatus === IcInformationStatus.Success &&\n validationInline) ||\n validationInlineInternal\n ? \"\"\n : currentStatus\n }\n message={showStatusText ? currentValidationText : \"\"}\n ariaLiveMode={messageAriaLive}\n for={inputId}\n fullWidth={fullWidth}\n >\n {isSlotUsed(el, \"validation-text\") && (\n <slot name=\"validation-text\" slot=\"validation-message\"></slot>\n )}\n {!readonly && maxNumChars > 0 && (\n <div slot=\"validation-message-adornment\">\n {!hideCharCount && (\n <ic-typography variant=\"caption\" class=\"char-count-text\">\n <span class=\"char-count\">\n {numChars}/{maxNumChars}\n </span>\n </ic-typography>\n )}\n <span\n class=\"remaining-char-count-desc\"\n aria-live=\"polite\"\n hidden={!isFocussed}\n id={remainingCharCountDescId}\n >\n {remainingCharCountDesc}\n </span>\n <span hidden={true} id={hiddenCharCountDescId}>\n Field can contain a maximum of {maxNumChars} characters.\n </span>\n </div>\n )}\n </ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"version":3}