@ukic/canary-web-components 2.0.0-canary.8 → 3.0.0-canary.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (853) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/date-helpers-c9551119.js +150 -0
  3. package/dist/cjs/date-helpers-c9551119.js.map +1 -0
  4. package/dist/cjs/{helpers-b525d45a.js → helpers-33b42cd6.js} +101 -102
  5. package/dist/cjs/helpers-33b42cd6.js.map +1 -0
  6. package/dist/cjs/{helpers-93c5fc92.js → helpers-6817cfbb.js} +209 -12
  7. package/dist/cjs/helpers-6817cfbb.js.map +1 -0
  8. package/dist/cjs/ic-accordion-group.cjs.entry.js +31 -9
  9. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-accordion.cjs.entry.js +7 -8
  11. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-alert.cjs.entry.js +28 -10
  13. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-back-to-top.cjs.entry.js +17 -8
  15. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-badge.cjs.entry.js +67 -117
  17. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +37 -11
  19. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-breadcrumb.cjs.entry.js +8 -7
  21. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-button_3.cjs.entry.js +121 -128
  23. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-card-horizontal.cjs.entry.js +131 -0
  25. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -0
  26. package/dist/cjs/ic-card-vertical.cjs.entry.js +149 -0
  27. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -0
  28. package/dist/cjs/ic-checkbox-group.cjs.entry.js +27 -20
  29. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-checkbox.cjs.entry.js +45 -40
  31. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-chip.cjs.entry.js +40 -29
  33. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-classification-banner.cjs.entry.js +14 -5
  35. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-data-list.cjs.entry.js +32 -0
  37. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -0
  38. package/dist/cjs/ic-data-row.cjs.entry.js +12 -12
  39. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +57 -0
  41. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -0
  42. package/dist/cjs/ic-data-table.cjs.entry.js +805 -65
  43. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-date-input.cjs.entry.js +1110 -0
  45. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -0
  46. package/dist/cjs/ic-date-picker.cjs.entry.js +1069 -0
  47. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -0
  48. package/dist/cjs/ic-dialog.cjs.entry.js +27 -101
  49. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-divider.cjs.entry.js +2 -3
  51. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-empty-state_2.cjs.entry.js +317 -0
  53. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -0
  54. package/dist/cjs/ic-footer-link-group.cjs.entry.js +9 -10
  55. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-footer-link.cjs.entry.js +6 -8
  57. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-footer.cjs.entry.js +9 -10
  59. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-hero.cjs.entry.js +27 -12
  61. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -8
  63. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +156 -0
  65. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -0
  66. package/dist/cjs/ic-link.cjs.entry.js +51 -24
  67. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -3
  69. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-menu-item.cjs.entry.js +6 -13
  71. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +186 -47
  73. package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +1 -1
  74. package/dist/cjs/{ic-input-component-container_3.cjs.entry.js → ic-menu.cjs.entry.js} +17 -86
  75. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -0
  76. package/dist/cjs/ic-navigation-button.cjs.entry.js +28 -8
  77. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-navigation-group.cjs.entry.js +23 -21
  79. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-navigation-item.cjs.entry.js +33 -38
  81. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-navigation-menu.cjs.entry.js +3 -4
  83. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-page-header.cjs.entry.js +10 -12
  85. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-pagination_4.cjs.entry.js +226 -185
  87. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-popover-menu.cjs.entry.js +15 -21
  89. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-radio-group.cjs.entry.js +75 -51
  91. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-radio-option.cjs.entry.js +44 -53
  93. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-search-bar.cjs.entry.js +23 -30
  95. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  97. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-select-with-multi.cjs.entry.js +20 -69
  99. package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-side-navigation.cjs.entry.js +8 -9
  101. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ic-skeleton.cjs.entry.js +17 -37
  103. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  104. package/dist/cjs/ic-status-tag.cjs.entry.js +7 -15
  105. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  106. package/dist/cjs/ic-step.cjs.entry.js +42 -43
  107. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  108. package/dist/cjs/ic-stepper.cjs.entry.js +45 -24
  109. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  110. package/dist/cjs/ic-switch.cjs.entry.js +7 -9
  111. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  112. package/dist/cjs/ic-tab-context.cjs.entry.js +35 -18
  113. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  114. package/dist/cjs/ic-tab-group.cjs.entry.js +25 -11
  115. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  116. package/dist/cjs/ic-tab-panel.cjs.entry.js +6 -13
  117. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  118. package/dist/cjs/ic-tab.cjs.entry.js +10 -9
  119. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  120. package/dist/cjs/ic-theme.cjs.entry.js +39 -25
  121. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  122. package/dist/cjs/ic-toast-region.cjs.entry.js +6 -7
  123. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  124. package/dist/cjs/ic-toast.cjs.entry.js +88 -35
  125. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  126. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +17 -17
  127. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  128. package/dist/cjs/ic-toggle-button.cjs.entry.js +15 -14
  129. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  130. package/dist/cjs/ic-top-navigation.cjs.entry.js +62 -86
  131. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  132. package/dist/cjs/ic-tree-item.cjs.entry.js +241 -0
  133. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -0
  134. package/dist/cjs/ic-tree-view.cjs.entry.js +203 -0
  135. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -0
  136. package/dist/cjs/ic-typography.cjs.entry.js +55 -19
  137. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  138. package/dist/cjs/index-4cf27b16.js +38 -18
  139. package/dist/cjs/loader.cjs.js +1 -1
  140. package/dist/collection/assets/arrow-dropdown.svg +3 -0
  141. package/dist/collection/assets/calendar.svg +3 -0
  142. package/dist/collection/collection-manifest.json +9 -3
  143. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +661 -0
  144. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +373 -0
  145. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -0
  146. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.types.js +2 -0
  147. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.types.js.map +1 -0
  148. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js +130 -0
  149. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js.map +1 -0
  150. package/dist/collection/components/ic-data-table/ic-data-table.css +155 -10
  151. package/dist/collection/components/ic-data-table/ic-data-table.js +1174 -90
  152. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  153. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  154. package/dist/collection/components/ic-data-table/story-data.js +758 -40
  155. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  156. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +339 -3
  157. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  158. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +93 -0
  159. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +160 -0
  160. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +1 -0
  161. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js +11 -0
  162. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js.map +1 -0
  163. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js +70 -0
  164. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js.map +1 -0
  165. package/dist/collection/components/ic-date-input/ic-date-input.css +560 -0
  166. package/dist/collection/components/ic-date-input/ic-date-input.js +1775 -0
  167. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -0
  168. package/dist/collection/components/ic-date-input/story-data.js +28 -0
  169. package/dist/collection/components/ic-date-input/story-data.js.map +1 -0
  170. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js +1158 -0
  171. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js.map +1 -0
  172. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js +42 -0
  173. package/dist/collection/components/ic-date-input/test/helpers/ic-date-input.js.map +1 -0
  174. package/dist/collection/components/ic-date-picker/ic-date-picker.css +880 -0
  175. package/dist/collection/components/ic-date-picker/ic-date-picker.js +1566 -0
  176. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -0
  177. package/dist/collection/components/ic-date-picker/ic-day-button.js +36 -0
  178. package/dist/collection/components/ic-date-picker/ic-day-button.js.map +1 -0
  179. package/dist/collection/components/ic-date-picker/ic-month-picker.js +29 -0
  180. package/dist/collection/components/ic-date-picker/ic-month-picker.js.map +1 -0
  181. package/dist/collection/components/ic-date-picker/ic-year-picker.js +39 -0
  182. package/dist/collection/components/ic-date-picker/ic-year-picker.js.map +1 -0
  183. package/dist/collection/components/ic-date-picker/story-data.js +148 -0
  184. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -0
  185. package/dist/collection/components/ic-date-picker/test/a11y/ic-date-picker.test.a11y.js +13 -0
  186. package/dist/collection/components/ic-date-picker/test/a11y/ic-date-picker.test.a11y.js.map +1 -0
  187. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker-utils.spec.js +207 -0
  188. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker-utils.spec.js.map +1 -0
  189. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js +1030 -0
  190. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js.map +1 -0
  191. package/dist/collection/components/ic-menu-with-multi/ic-menu.css +25 -14
  192. package/dist/collection/components/ic-menu-with-multi/ic-menu.js +189 -71
  193. package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +1 -1
  194. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +229 -52
  195. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +1 -1
  196. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.css +1 -1
  197. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +173 -158
  198. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  199. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js +56 -11
  200. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js.map +1 -1
  201. package/dist/collection/components/ic-select-with-multi/ic-select.css +14 -12
  202. package/dist/collection/components/ic-select-with-multi/ic-select.js +18 -147
  203. package/dist/collection/components/ic-select-with-multi/ic-select.js.map +1 -1
  204. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js +7 -7
  205. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js.map +1 -1
  206. package/dist/collection/components/ic-tree-item/ic-tree-item.css +172 -0
  207. package/dist/collection/components/ic-tree-item/ic-tree-item.js +592 -0
  208. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -0
  209. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js +114 -0
  210. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js.map +1 -0
  211. package/dist/collection/components/ic-tree-view/ic-tree-view.css +59 -0
  212. package/dist/collection/components/ic-tree-view/ic-tree-view.js +296 -0
  213. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -0
  214. package/dist/collection/components/ic-tree-view/test/basic/ic-tree-view.spec.js +85 -0
  215. package/dist/collection/components/ic-tree-view/test/basic/ic-tree-view.spec.js.map +1 -0
  216. package/dist/collection/utils/constants.js +55 -0
  217. package/dist/collection/utils/constants.js.map +1 -1
  218. package/dist/collection/utils/date-helpers.js +133 -0
  219. package/dist/collection/utils/date-helpers.js.map +1 -0
  220. package/dist/collection/utils/helpers.js +302 -10
  221. package/dist/collection/utils/helpers.js.map +1 -1
  222. package/dist/collection/utils/types.js +45 -0
  223. package/dist/collection/utils/types.js.map +1 -1
  224. package/dist/components/helpers.js +90 -91
  225. package/dist/components/helpers.js.map +1 -1
  226. package/dist/components/helpers2.js +197 -12
  227. package/dist/components/helpers2.js.map +1 -1
  228. package/dist/components/ic-accordion-group.js +39 -13
  229. package/dist/components/ic-accordion-group.js.map +1 -1
  230. package/dist/components/ic-accordion.js +6 -6
  231. package/dist/components/ic-accordion.js.map +1 -1
  232. package/dist/components/ic-alert.js +132 -1
  233. package/dist/components/ic-alert.js.map +1 -1
  234. package/dist/components/ic-back-to-top.js +37 -8
  235. package/dist/components/ic-back-to-top.js.map +1 -1
  236. package/dist/components/ic-badge.js +75 -121
  237. package/dist/components/ic-badge.js.map +1 -1
  238. package/dist/components/ic-breadcrumb-group.js +42 -10
  239. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  240. package/dist/components/ic-breadcrumb2.js +10 -7
  241. package/dist/components/ic-breadcrumb2.js.map +1 -1
  242. package/dist/components/ic-button2.js +74 -102
  243. package/dist/components/ic-button2.js.map +1 -1
  244. package/dist/components/ic-card-horizontal.d.ts +11 -0
  245. package/dist/components/ic-card-horizontal.js +167 -0
  246. package/dist/components/ic-card-horizontal.js.map +1 -0
  247. package/dist/components/ic-card-vertical.js +194 -0
  248. package/dist/components/ic-card-vertical.js.map +1 -0
  249. package/dist/components/ic-checkbox-group.js +31 -21
  250. package/dist/components/ic-checkbox-group.js.map +1 -1
  251. package/dist/components/ic-checkbox.js +52 -47
  252. package/dist/components/ic-checkbox.js.map +1 -1
  253. package/dist/components/ic-chip.js +45 -31
  254. package/dist/components/ic-chip.js.map +1 -1
  255. package/dist/components/ic-classification-banner.js +14 -5
  256. package/dist/components/ic-classification-banner.js.map +1 -1
  257. package/dist/components/ic-data-list.js +56 -0
  258. package/dist/components/ic-data-list.js.map +1 -0
  259. package/dist/components/ic-data-row.js +14 -13
  260. package/dist/components/ic-data-row.js.map +1 -1
  261. package/dist/components/ic-data-table-title-bar.d.ts +11 -0
  262. package/dist/components/ic-data-table-title-bar.js +136 -0
  263. package/dist/components/ic-data-table-title-bar.js.map +1 -0
  264. package/dist/components/ic-data-table.js +841 -72
  265. package/dist/components/ic-data-table.js.map +1 -1
  266. package/dist/components/ic-date-input.d.ts +11 -0
  267. package/dist/components/ic-date-input.js +8 -0
  268. package/dist/components/ic-date-input.js.map +1 -0
  269. package/dist/components/ic-date-input2.js +1344 -0
  270. package/dist/components/ic-date-input2.js.map +1 -0
  271. package/dist/components/ic-date-picker.d.ts +11 -0
  272. package/dist/components/ic-date-picker.js +1194 -0
  273. package/dist/components/ic-date-picker.js.map +1 -0
  274. package/dist/components/ic-dialog.js +29 -115
  275. package/dist/components/ic-dialog.js.map +1 -1
  276. package/dist/components/ic-divider2.js +1 -2
  277. package/dist/components/ic-divider2.js.map +1 -1
  278. package/dist/components/ic-empty-state.js +1 -57
  279. package/dist/components/ic-empty-state.js.map +1 -1
  280. package/dist/components/ic-empty-state2.js +80 -0
  281. package/dist/components/ic-empty-state2.js.map +1 -0
  282. package/dist/components/ic-footer-link-group.js +10 -10
  283. package/dist/components/ic-footer-link-group.js.map +1 -1
  284. package/dist/components/ic-footer-link.js +13 -8
  285. package/dist/components/ic-footer-link.js.map +1 -1
  286. package/dist/components/ic-footer.js +9 -10
  287. package/dist/components/ic-footer.js.map +1 -1
  288. package/dist/components/ic-hero.js +28 -14
  289. package/dist/components/ic-hero.js.map +1 -1
  290. package/dist/components/ic-horizontal-scroll2.js +6 -8
  291. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  292. package/dist/components/ic-input-component-container2.js +26 -21
  293. package/dist/components/ic-input-component-container2.js.map +1 -1
  294. package/dist/components/ic-input-label2.js +9 -11
  295. package/dist/components/ic-input-label2.js.map +1 -1
  296. package/dist/components/ic-input-validation2.js +4 -5
  297. package/dist/components/ic-input-validation2.js.map +1 -1
  298. package/dist/components/ic-link2.js +54 -27
  299. package/dist/components/ic-link2.js.map +1 -1
  300. package/dist/components/ic-loading-indicator2.js +23 -19
  301. package/dist/components/ic-loading-indicator2.js.map +1 -1
  302. package/dist/components/ic-menu-group.js +2 -2
  303. package/dist/components/ic-menu-group.js.map +1 -1
  304. package/dist/components/ic-menu-item2.js +6 -12
  305. package/dist/components/ic-menu-item2.js.map +1 -1
  306. package/dist/components/ic-menu2.js +15 -20
  307. package/dist/components/ic-menu2.js.map +1 -1
  308. package/dist/components/ic-menu3.js +187 -49
  309. package/dist/components/ic-menu3.js.map +1 -1
  310. package/dist/components/ic-navigation-button.js +28 -8
  311. package/dist/components/ic-navigation-button.js.map +1 -1
  312. package/dist/components/ic-navigation-group.js +23 -20
  313. package/dist/components/ic-navigation-group.js.map +1 -1
  314. package/dist/components/ic-navigation-item.js +33 -37
  315. package/dist/components/ic-navigation-item.js.map +1 -1
  316. package/dist/components/ic-navigation-menu2.js +3 -3
  317. package/dist/components/ic-navigation-menu2.js.map +1 -1
  318. package/dist/components/ic-page-header.js +9 -11
  319. package/dist/components/ic-page-header.js.map +1 -1
  320. package/dist/components/ic-pagination-bar2.js +154 -143
  321. package/dist/components/ic-pagination-bar2.js.map +1 -1
  322. package/dist/components/ic-pagination-item2.js +22 -12
  323. package/dist/components/ic-pagination-item2.js.map +1 -1
  324. package/dist/components/ic-pagination2.js +50 -33
  325. package/dist/components/ic-pagination2.js.map +1 -1
  326. package/dist/components/ic-popover-menu.js +15 -20
  327. package/dist/components/ic-popover-menu.js.map +1 -1
  328. package/dist/components/ic-radio-group.js +76 -51
  329. package/dist/components/ic-radio-group.js.map +1 -1
  330. package/dist/components/ic-radio-option.js +47 -60
  331. package/dist/components/ic-radio-option.js.map +1 -1
  332. package/dist/components/ic-search-bar.js +21 -29
  333. package/dist/components/ic-search-bar.js.map +1 -1
  334. package/dist/components/ic-section-container2.js +1 -1
  335. package/dist/components/ic-section-container2.js.map +1 -1
  336. package/dist/components/ic-select-with-multi.js +15 -71
  337. package/dist/components/ic-select-with-multi.js.map +1 -1
  338. package/dist/components/ic-select2.js +59 -42
  339. package/dist/components/ic-select2.js.map +1 -1
  340. package/dist/components/ic-side-navigation.js +8 -9
  341. package/dist/components/ic-side-navigation.js.map +1 -1
  342. package/dist/components/ic-skeleton.js +18 -43
  343. package/dist/components/ic-skeleton.js.map +1 -1
  344. package/dist/components/ic-status-tag.js +7 -15
  345. package/dist/components/ic-status-tag.js.map +1 -1
  346. package/dist/components/ic-step.js +48 -48
  347. package/dist/components/ic-step.js.map +1 -1
  348. package/dist/components/ic-stepper.js +49 -23
  349. package/dist/components/ic-stepper.js.map +1 -1
  350. package/dist/components/ic-switch.js +7 -9
  351. package/dist/components/ic-switch.js.map +1 -1
  352. package/dist/components/ic-tab-context.js +40 -20
  353. package/dist/components/ic-tab-context.js.map +1 -1
  354. package/dist/components/ic-tab-group.js +27 -13
  355. package/dist/components/ic-tab-group.js.map +1 -1
  356. package/dist/components/ic-tab-panel.js +9 -16
  357. package/dist/components/ic-tab-panel.js.map +1 -1
  358. package/dist/components/ic-tab.js +12 -10
  359. package/dist/components/ic-tab.js.map +1 -1
  360. package/dist/components/ic-text-field2.js +104 -113
  361. package/dist/components/ic-text-field2.js.map +1 -1
  362. package/dist/components/ic-theme.js +45 -28
  363. package/dist/components/ic-theme.js.map +1 -1
  364. package/dist/components/ic-toast-region.js +7 -9
  365. package/dist/components/ic-toast-region.js.map +1 -1
  366. package/dist/components/ic-toast.js +93 -36
  367. package/dist/components/ic-toast.js.map +1 -1
  368. package/dist/components/ic-toggle-button-group.js +17 -17
  369. package/dist/components/ic-toggle-button-group.js.map +1 -1
  370. package/dist/components/ic-toggle-button.js +16 -14
  371. package/dist/components/ic-toggle-button.js.map +1 -1
  372. package/dist/components/ic-tooltip2.js +31 -9
  373. package/dist/components/ic-tooltip2.js.map +1 -1
  374. package/dist/components/ic-top-navigation.js +63 -87
  375. package/dist/components/ic-top-navigation.js.map +1 -1
  376. package/dist/components/ic-tree-item.d.ts +11 -0
  377. package/dist/components/ic-tree-item.js +286 -0
  378. package/dist/components/ic-tree-item.js.map +1 -0
  379. package/dist/components/ic-tree-view.d.ts +11 -0
  380. package/dist/components/ic-tree-view.js +237 -0
  381. package/dist/components/ic-tree-view.js.map +1 -0
  382. package/dist/components/ic-typography2.js +62 -21
  383. package/dist/components/ic-typography2.js.map +1 -1
  384. package/dist/core/core.css +38 -20
  385. package/dist/core/core.esm.js +1 -1
  386. package/dist/core/core.esm.js.map +1 -1
  387. package/dist/core/p-06eeb7f2.entry.js +2 -0
  388. package/dist/core/p-06eeb7f2.entry.js.map +1 -0
  389. package/dist/core/p-0922c552.entry.js +2 -0
  390. package/dist/core/p-0922c552.entry.js.map +1 -0
  391. package/dist/core/p-0bc0e852.entry.js +2 -0
  392. package/dist/core/p-0bc0e852.entry.js.map +1 -0
  393. package/dist/core/p-108a9029.entry.js +2 -0
  394. package/dist/core/p-108a9029.entry.js.map +1 -0
  395. package/dist/core/p-13100d3c.entry.js +2 -0
  396. package/dist/core/p-13100d3c.entry.js.map +1 -0
  397. package/dist/core/p-1769df1d.entry.js +2 -0
  398. package/dist/core/p-1769df1d.entry.js.map +1 -0
  399. package/dist/core/p-202bc922.entry.js +2 -0
  400. package/dist/core/p-202bc922.entry.js.map +1 -0
  401. package/dist/core/p-266341f5.entry.js +2 -0
  402. package/dist/core/p-266341f5.entry.js.map +1 -0
  403. package/dist/core/p-297e99cf.js +2 -0
  404. package/dist/core/p-297e99cf.js.map +1 -0
  405. package/dist/core/p-306def43.entry.js +2 -0
  406. package/dist/core/p-306def43.entry.js.map +1 -0
  407. package/dist/core/p-30b046b2.entry.js +2 -0
  408. package/dist/core/p-30b046b2.entry.js.map +1 -0
  409. package/dist/core/p-33dd24eb.js +2 -0
  410. package/dist/core/p-33dd24eb.js.map +1 -0
  411. package/dist/core/p-3778cc5e.entry.js +2 -0
  412. package/dist/core/p-3778cc5e.entry.js.map +1 -0
  413. package/dist/core/p-383a5a76.entry.js +2 -0
  414. package/dist/core/p-383a5a76.entry.js.map +1 -0
  415. package/dist/core/p-3a0510e2.entry.js +2 -0
  416. package/dist/core/p-3a0510e2.entry.js.map +1 -0
  417. package/dist/core/p-3ace51f5.entry.js +2 -0
  418. package/dist/core/p-3ace51f5.entry.js.map +1 -0
  419. package/dist/core/p-3ef28704.entry.js +2 -0
  420. package/dist/core/p-3ef28704.entry.js.map +1 -0
  421. package/dist/core/p-3f0391c1.entry.js +2 -0
  422. package/dist/core/p-3f0391c1.entry.js.map +1 -0
  423. package/dist/core/p-41fecc61.entry.js +2 -0
  424. package/dist/core/p-41fecc61.entry.js.map +1 -0
  425. package/dist/core/p-46cb94a2.entry.js +2 -0
  426. package/dist/core/p-46cb94a2.entry.js.map +1 -0
  427. package/dist/core/p-4e67f127.entry.js +2 -0
  428. package/dist/core/p-4e67f127.entry.js.map +1 -0
  429. package/dist/core/p-505250cf.entry.js +2 -0
  430. package/dist/core/p-505250cf.entry.js.map +1 -0
  431. package/dist/core/p-50e48f4d.entry.js +2 -0
  432. package/dist/core/p-50e48f4d.entry.js.map +1 -0
  433. package/dist/core/p-56e7459a.entry.js +2 -0
  434. package/dist/core/p-56e7459a.entry.js.map +1 -0
  435. package/dist/core/p-59028160.entry.js +2 -0
  436. package/dist/core/p-59028160.entry.js.map +1 -0
  437. package/dist/core/p-5cfb5821.entry.js +2 -0
  438. package/dist/core/p-5cfb5821.entry.js.map +1 -0
  439. package/dist/core/p-5e6fd734.entry.js +2 -0
  440. package/dist/core/p-5e6fd734.entry.js.map +1 -0
  441. package/dist/core/p-5f313e1a.entry.js +2 -0
  442. package/dist/core/p-5f313e1a.entry.js.map +1 -0
  443. package/dist/core/{p-c2b5e7b1.entry.js → p-5f5403e2.entry.js} +2 -2
  444. package/dist/core/{p-c2b5e7b1.entry.js.map → p-5f5403e2.entry.js.map} +1 -1
  445. package/dist/core/p-710c6a42.entry.js +2 -0
  446. package/dist/core/p-710c6a42.entry.js.map +1 -0
  447. package/dist/core/p-73b40c79.entry.js +2 -0
  448. package/dist/core/p-73b40c79.entry.js.map +1 -0
  449. package/dist/core/p-77a32de5.entry.js +2 -0
  450. package/dist/core/p-77a32de5.entry.js.map +1 -0
  451. package/dist/core/p-7a9de008.entry.js +2 -0
  452. package/dist/core/p-7a9de008.entry.js.map +1 -0
  453. package/dist/core/p-801414e2.entry.js +2 -0
  454. package/dist/core/p-801414e2.entry.js.map +1 -0
  455. package/dist/core/p-82ba744d.entry.js +2 -0
  456. package/dist/core/p-82ba744d.entry.js.map +1 -0
  457. package/dist/core/p-897b8d16.entry.js +2 -0
  458. package/dist/core/p-897b8d16.entry.js.map +1 -0
  459. package/dist/core/p-9397b15b.js +2 -0
  460. package/dist/core/p-9397b15b.js.map +1 -0
  461. package/dist/core/p-9af6adb1.entry.js +2 -0
  462. package/dist/core/p-9af6adb1.entry.js.map +1 -0
  463. package/dist/core/p-9b54feca.entry.js +2 -0
  464. package/dist/core/p-9b54feca.entry.js.map +1 -0
  465. package/dist/core/{p-356b8a4c.entry.js → p-9f3cf053.entry.js} +2 -2
  466. package/dist/core/{p-356b8a4c.entry.js.map → p-9f3cf053.entry.js.map} +1 -1
  467. package/dist/core/p-a57cd616.entry.js +2 -0
  468. package/dist/core/p-a57cd616.entry.js.map +1 -0
  469. package/dist/core/p-a5eaed1a.entry.js +2 -0
  470. package/dist/core/p-a5eaed1a.entry.js.map +1 -0
  471. package/dist/core/p-a78cf2cb.entry.js +2 -0
  472. package/dist/core/p-a78cf2cb.entry.js.map +1 -0
  473. package/dist/core/p-a91340b4.entry.js +2 -0
  474. package/dist/core/p-a91340b4.entry.js.map +1 -0
  475. package/dist/core/p-aee8d45b.entry.js +2 -0
  476. package/dist/core/p-aee8d45b.entry.js.map +1 -0
  477. package/dist/core/{p-452985d9.entry.js → p-b40ecaef.entry.js} +2 -2
  478. package/dist/core/p-b40ecaef.entry.js.map +1 -0
  479. package/dist/core/p-badd4c8d.entry.js +2 -0
  480. package/dist/core/p-badd4c8d.entry.js.map +1 -0
  481. package/dist/core/p-bf670360.entry.js +2 -0
  482. package/dist/core/{p-a434c3d4.entry.js.map → p-bf670360.entry.js.map} +1 -1
  483. package/dist/core/p-c033e7d6.entry.js +2 -0
  484. package/dist/core/p-c033e7d6.entry.js.map +1 -0
  485. package/dist/core/p-c07af2d8.entry.js +2 -0
  486. package/dist/core/p-c07af2d8.entry.js.map +1 -0
  487. package/dist/core/p-c21d0db8.entry.js +2 -0
  488. package/dist/core/p-c21d0db8.entry.js.map +1 -0
  489. package/dist/core/p-c678f73d.entry.js +2 -0
  490. package/dist/core/p-c678f73d.entry.js.map +1 -0
  491. package/dist/core/p-c6ae9bad.entry.js +2 -0
  492. package/dist/core/p-c6ae9bad.entry.js.map +1 -0
  493. package/dist/core/p-c6c1e08e.entry.js +2 -0
  494. package/dist/core/p-c6c1e08e.entry.js.map +1 -0
  495. package/dist/core/p-cb6cebdd.entry.js +2 -0
  496. package/dist/core/p-cb6cebdd.entry.js.map +1 -0
  497. package/dist/core/p-d03374fc.entry.js +2 -0
  498. package/dist/core/p-d03374fc.entry.js.map +1 -0
  499. package/dist/core/p-d16f364a.entry.js +2 -0
  500. package/dist/core/p-d16f364a.entry.js.map +1 -0
  501. package/dist/core/p-d239c33b.entry.js +2 -0
  502. package/dist/core/p-d239c33b.entry.js.map +1 -0
  503. package/dist/core/p-d8563643.entry.js +2 -0
  504. package/dist/core/p-d8563643.entry.js.map +1 -0
  505. package/dist/core/p-da40757f.entry.js +2 -0
  506. package/dist/core/p-da40757f.entry.js.map +1 -0
  507. package/dist/core/p-de052137.entry.js +2 -0
  508. package/dist/core/p-de052137.entry.js.map +1 -0
  509. package/dist/core/p-e5d99316.entry.js +2 -0
  510. package/dist/core/p-e5d99316.entry.js.map +1 -0
  511. package/dist/core/p-e89bb650.entry.js +2 -0
  512. package/dist/core/p-e89bb650.entry.js.map +1 -0
  513. package/dist/core/{p-baf81f30.entry.js → p-f1072c28.entry.js} +2 -2
  514. package/dist/core/{p-452985d9.entry.js.map → p-f1072c28.entry.js.map} +1 -1
  515. package/dist/core/p-f37df214.entry.js +2 -0
  516. package/dist/core/{p-c34848da.entry.js.map → p-f37df214.entry.js.map} +1 -1
  517. package/dist/core/p-f743b0eb.entry.js +2 -0
  518. package/dist/core/p-f743b0eb.entry.js.map +1 -0
  519. package/dist/core/p-f98b1afc.entry.js +2 -0
  520. package/dist/core/p-f98b1afc.entry.js.map +1 -0
  521. package/dist/core/p-fe13f1ba.entry.js +2 -0
  522. package/dist/core/p-fe13f1ba.entry.js.map +1 -0
  523. package/dist/esm/core.js +1 -1
  524. package/dist/esm/date-helpers-0e5e32a7.js +136 -0
  525. package/dist/esm/date-helpers-0e5e32a7.js.map +1 -0
  526. package/dist/esm/helpers-5bd2012a.js +368 -0
  527. package/dist/esm/helpers-5bd2012a.js.map +1 -0
  528. package/dist/esm/{helpers-12b4266a.js → helpers-dab8ddfe.js} +91 -92
  529. package/dist/esm/helpers-dab8ddfe.js.map +1 -0
  530. package/dist/esm/ic-accordion-group.entry.js +31 -9
  531. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  532. package/dist/esm/ic-accordion.entry.js +7 -8
  533. package/dist/esm/ic-accordion.entry.js.map +1 -1
  534. package/dist/esm/ic-alert.entry.js +27 -9
  535. package/dist/esm/ic-alert.entry.js.map +1 -1
  536. package/dist/esm/ic-back-to-top.entry.js +17 -8
  537. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  538. package/dist/esm/ic-badge.entry.js +67 -117
  539. package/dist/esm/ic-badge.entry.js.map +1 -1
  540. package/dist/esm/ic-breadcrumb-group.entry.js +37 -11
  541. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  542. package/dist/esm/ic-breadcrumb.entry.js +8 -7
  543. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  544. package/dist/esm/ic-button_3.entry.js +118 -125
  545. package/dist/esm/ic-button_3.entry.js.map +1 -1
  546. package/dist/esm/ic-card-horizontal.entry.js +127 -0
  547. package/dist/esm/ic-card-horizontal.entry.js.map +1 -0
  548. package/dist/esm/ic-card-vertical.entry.js +145 -0
  549. package/dist/esm/ic-card-vertical.entry.js.map +1 -0
  550. package/dist/esm/ic-checkbox-group.entry.js +27 -20
  551. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  552. package/dist/esm/ic-checkbox.entry.js +45 -40
  553. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  554. package/dist/esm/ic-chip.entry.js +40 -29
  555. package/dist/esm/ic-chip.entry.js.map +1 -1
  556. package/dist/esm/ic-classification-banner.entry.js +14 -5
  557. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  558. package/dist/esm/ic-data-list.entry.js +28 -0
  559. package/dist/esm/ic-data-list.entry.js.map +1 -0
  560. package/dist/esm/ic-data-row.entry.js +12 -12
  561. package/dist/esm/ic-data-row.entry.js.map +1 -1
  562. package/dist/esm/ic-data-table-title-bar.entry.js +53 -0
  563. package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -0
  564. package/dist/esm/ic-data-table.entry.js +806 -66
  565. package/dist/esm/ic-data-table.entry.js.map +1 -1
  566. package/dist/esm/ic-date-input.entry.js +1106 -0
  567. package/dist/esm/ic-date-input.entry.js.map +1 -0
  568. package/dist/esm/ic-date-picker.entry.js +1065 -0
  569. package/dist/esm/ic-date-picker.entry.js.map +1 -0
  570. package/dist/esm/ic-dialog.entry.js +27 -101
  571. package/dist/esm/ic-dialog.entry.js.map +1 -1
  572. package/dist/esm/ic-divider.entry.js +1 -2
  573. package/dist/esm/ic-divider.entry.js.map +1 -1
  574. package/dist/esm/ic-empty-state_2.entry.js +312 -0
  575. package/dist/esm/ic-empty-state_2.entry.js.map +1 -0
  576. package/dist/esm/ic-footer-link-group.entry.js +9 -10
  577. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  578. package/dist/esm/ic-footer-link.entry.js +6 -8
  579. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  580. package/dist/esm/ic-footer.entry.js +9 -10
  581. package/dist/esm/ic-footer.entry.js.map +1 -1
  582. package/dist/esm/ic-hero.entry.js +28 -13
  583. package/dist/esm/ic-hero.entry.js.map +1 -1
  584. package/dist/esm/ic-horizontal-scroll.entry.js +6 -8
  585. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  586. package/dist/esm/ic-input-component-container_4.entry.js +149 -0
  587. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -0
  588. package/dist/esm/ic-link.entry.js +52 -25
  589. package/dist/esm/ic-link.entry.js.map +1 -1
  590. package/dist/esm/ic-menu-group.entry.js +2 -3
  591. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  592. package/dist/esm/ic-menu-item.entry.js +6 -13
  593. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  594. package/dist/esm/ic-menu-with-multi.entry.js +186 -47
  595. package/dist/esm/ic-menu-with-multi.entry.js.map +1 -1
  596. package/dist/esm/{ic-input-component-container_3.entry.js → ic-menu.entry.js} +19 -86
  597. package/dist/esm/ic-menu.entry.js.map +1 -0
  598. package/dist/esm/ic-navigation-button.entry.js +28 -8
  599. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  600. package/dist/esm/ic-navigation-group.entry.js +23 -21
  601. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  602. package/dist/esm/ic-navigation-item.entry.js +33 -38
  603. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  604. package/dist/esm/ic-navigation-menu.entry.js +3 -4
  605. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  606. package/dist/esm/ic-page-header.entry.js +10 -12
  607. package/dist/esm/ic-page-header.entry.js.map +1 -1
  608. package/dist/esm/ic-pagination_4.entry.js +219 -178
  609. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  610. package/dist/esm/ic-popover-menu.entry.js +15 -21
  611. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  612. package/dist/esm/ic-radio-group.entry.js +75 -51
  613. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  614. package/dist/esm/ic-radio-option.entry.js +44 -53
  615. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  616. package/dist/esm/ic-search-bar.entry.js +19 -26
  617. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  618. package/dist/esm/ic-section-container.entry.js +1 -1
  619. package/dist/esm/ic-section-container.entry.js.map +1 -1
  620. package/dist/esm/ic-select-with-multi.entry.js +14 -63
  621. package/dist/esm/ic-select-with-multi.entry.js.map +1 -1
  622. package/dist/esm/ic-side-navigation.entry.js +8 -9
  623. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  624. package/dist/esm/ic-skeleton.entry.js +17 -37
  625. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  626. package/dist/esm/ic-status-tag.entry.js +7 -15
  627. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  628. package/dist/esm/ic-step.entry.js +42 -43
  629. package/dist/esm/ic-step.entry.js.map +1 -1
  630. package/dist/esm/ic-stepper.entry.js +45 -24
  631. package/dist/esm/ic-stepper.entry.js.map +1 -1
  632. package/dist/esm/ic-switch.entry.js +7 -9
  633. package/dist/esm/ic-switch.entry.js.map +1 -1
  634. package/dist/esm/ic-tab-context.entry.js +35 -18
  635. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  636. package/dist/esm/ic-tab-group.entry.js +25 -11
  637. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  638. package/dist/esm/ic-tab-panel.entry.js +6 -13
  639. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  640. package/dist/esm/ic-tab.entry.js +10 -9
  641. package/dist/esm/ic-tab.entry.js.map +1 -1
  642. package/dist/esm/ic-theme.entry.js +39 -25
  643. package/dist/esm/ic-theme.entry.js.map +1 -1
  644. package/dist/esm/ic-toast-region.entry.js +6 -7
  645. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  646. package/dist/esm/ic-toast.entry.js +88 -35
  647. package/dist/esm/ic-toast.entry.js.map +1 -1
  648. package/dist/esm/ic-toggle-button-group.entry.js +17 -17
  649. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  650. package/dist/esm/ic-toggle-button.entry.js +15 -14
  651. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  652. package/dist/esm/ic-top-navigation.entry.js +62 -86
  653. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  654. package/dist/esm/ic-tree-item.entry.js +237 -0
  655. package/dist/esm/ic-tree-item.entry.js.map +1 -0
  656. package/dist/esm/ic-tree-view.entry.js +199 -0
  657. package/dist/esm/ic-tree-view.entry.js.map +1 -0
  658. package/dist/esm/ic-typography.entry.js +56 -20
  659. package/dist/esm/ic-typography.entry.js.map +1 -1
  660. package/dist/esm/index-93509377.js +38 -18
  661. package/dist/esm/loader.js +1 -1
  662. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +71 -0
  663. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.types.d.ts +1 -0
  664. package/dist/types/components/ic-data-table/ic-data-table.d.ts +176 -19
  665. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +30 -0
  666. package/dist/types/components/ic-data-table/story-data.d.ts +236 -3
  667. package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.d.ts +36 -0
  668. package/dist/types/components/ic-date-input/ic-date-input.d.ts +259 -0
  669. package/dist/types/components/ic-date-input/story-data.d.ts +1 -0
  670. package/dist/types/components/ic-date-input/test/helpers/ic-date-input.d.ts +23 -0
  671. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +240 -0
  672. package/dist/types/components/ic-date-picker/ic-day-button.d.ts +16 -0
  673. package/dist/types/components/ic-date-picker/ic-month-picker.d.ts +14 -0
  674. package/dist/types/components/ic-date-picker/ic-year-picker.d.ts +16 -0
  675. package/dist/types/components/ic-date-picker/story-data.d.ts +22 -0
  676. package/dist/types/components/ic-date-picker/test/a11y/ic-date-picker.test.a11y.d.ts +1 -0
  677. package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +12 -6
  678. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +37 -18
  679. package/dist/types/components/ic-select-with-multi/ic-select.d.ts +3 -33
  680. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +95 -0
  681. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +40 -0
  682. package/dist/types/components.d.ts +978 -114
  683. package/dist/types/interface.d.ts +1 -0
  684. package/dist/types/utils/constants.d.ts +37 -0
  685. package/dist/types/utils/date-helpers.d.ts +22 -0
  686. package/dist/types/utils/helpers.d.ts +92 -11
  687. package/dist/types/utils/types.d.ts +108 -1
  688. package/hydrate/index.js +6683 -2381
  689. package/package.json +6 -6
  690. package/dist/cjs/helpers-93c5fc92.js.map +0 -1
  691. package/dist/cjs/helpers-b525d45a.js.map +0 -1
  692. package/dist/cjs/ic-card.cjs.entry.js +0 -126
  693. package/dist/cjs/ic-card.cjs.entry.js.map +0 -1
  694. package/dist/cjs/ic-data-entity.cjs.entry.js +0 -29
  695. package/dist/cjs/ic-data-entity.cjs.entry.js.map +0 -1
  696. package/dist/cjs/ic-empty-state.cjs.entry.js +0 -38
  697. package/dist/cjs/ic-empty-state.cjs.entry.js.map +0 -1
  698. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +0 -1
  699. package/dist/cjs/ic-input-label_2.cjs.entry.js +0 -86
  700. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +0 -1
  701. package/dist/cjs/ic-pagination-bar.cjs.entry.js +0 -269
  702. package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +0 -1
  703. package/dist/cjs/types-17dba796.js +0 -16
  704. package/dist/cjs/types-17dba796.js.map +0 -1
  705. package/dist/collection/components/ic-pagination/ic-pagination.types.js +0 -2
  706. package/dist/collection/components/ic-pagination/ic-pagination.types.js.map +0 -1
  707. package/dist/collection/components/ic-select-with-multi/test/a11y/ic-select.test.a11y.js +0 -146
  708. package/dist/collection/components/ic-select-with-multi/test/a11y/ic-select.test.a11y.js.map +0 -1
  709. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.e2e.js +0 -2040
  710. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.e2e.js.map +0 -1
  711. package/dist/components/ic-alert2.js +0 -117
  712. package/dist/components/ic-alert2.js.map +0 -1
  713. package/dist/components/ic-card.js +0 -171
  714. package/dist/components/ic-card.js.map +0 -1
  715. package/dist/components/ic-data-entity.js +0 -53
  716. package/dist/components/ic-data-entity.js.map +0 -1
  717. package/dist/components/types.js +0 -16
  718. package/dist/components/types.js.map +0 -1
  719. package/dist/core/p-045359e1.entry.js +0 -2
  720. package/dist/core/p-045359e1.entry.js.map +0 -1
  721. package/dist/core/p-10fb4c46.entry.js +0 -2
  722. package/dist/core/p-10fb4c46.entry.js.map +0 -1
  723. package/dist/core/p-169bfa51.entry.js +0 -2
  724. package/dist/core/p-169bfa51.entry.js.map +0 -1
  725. package/dist/core/p-1ca332ca.entry.js +0 -2
  726. package/dist/core/p-1ca332ca.entry.js.map +0 -1
  727. package/dist/core/p-204ace96.entry.js +0 -2
  728. package/dist/core/p-204ace96.entry.js.map +0 -1
  729. package/dist/core/p-21150122.entry.js +0 -2
  730. package/dist/core/p-21150122.entry.js.map +0 -1
  731. package/dist/core/p-2eac7dcc.entry.js +0 -2
  732. package/dist/core/p-2eac7dcc.entry.js.map +0 -1
  733. package/dist/core/p-3803a5b5.entry.js +0 -2
  734. package/dist/core/p-3803a5b5.entry.js.map +0 -1
  735. package/dist/core/p-4753bac8.entry.js +0 -2
  736. package/dist/core/p-4753bac8.entry.js.map +0 -1
  737. package/dist/core/p-4baa0916.entry.js +0 -2
  738. package/dist/core/p-4baa0916.entry.js.map +0 -1
  739. package/dist/core/p-4f413fc0.entry.js +0 -2
  740. package/dist/core/p-4f413fc0.entry.js.map +0 -1
  741. package/dist/core/p-595be57d.entry.js +0 -2
  742. package/dist/core/p-595be57d.entry.js.map +0 -1
  743. package/dist/core/p-5ae93c16.entry.js +0 -2
  744. package/dist/core/p-5ae93c16.entry.js.map +0 -1
  745. package/dist/core/p-5e0c830b.entry.js +0 -2
  746. package/dist/core/p-5e0c830b.entry.js.map +0 -1
  747. package/dist/core/p-624d4f5f.entry.js +0 -2
  748. package/dist/core/p-624d4f5f.entry.js.map +0 -1
  749. package/dist/core/p-6933f8e9.entry.js +0 -2
  750. package/dist/core/p-6933f8e9.entry.js.map +0 -1
  751. package/dist/core/p-6c3044b6.entry.js +0 -2
  752. package/dist/core/p-6c3044b6.entry.js.map +0 -1
  753. package/dist/core/p-73be1251.entry.js +0 -2
  754. package/dist/core/p-73be1251.entry.js.map +0 -1
  755. package/dist/core/p-75dac3d1.entry.js +0 -2
  756. package/dist/core/p-75dac3d1.entry.js.map +0 -1
  757. package/dist/core/p-76915584.entry.js +0 -2
  758. package/dist/core/p-76915584.entry.js.map +0 -1
  759. package/dist/core/p-7ef8d616.entry.js +0 -2
  760. package/dist/core/p-7ef8d616.entry.js.map +0 -1
  761. package/dist/core/p-81ddc39d.entry.js +0 -2
  762. package/dist/core/p-81ddc39d.entry.js.map +0 -1
  763. package/dist/core/p-869954a2.entry.js +0 -2
  764. package/dist/core/p-869954a2.entry.js.map +0 -1
  765. package/dist/core/p-88d54b72.entry.js +0 -2
  766. package/dist/core/p-88d54b72.entry.js.map +0 -1
  767. package/dist/core/p-8b08d8fe.entry.js +0 -2
  768. package/dist/core/p-8b08d8fe.entry.js.map +0 -1
  769. package/dist/core/p-917c5721.entry.js +0 -2
  770. package/dist/core/p-917c5721.entry.js.map +0 -1
  771. package/dist/core/p-942282cd.entry.js +0 -2
  772. package/dist/core/p-942282cd.entry.js.map +0 -1
  773. package/dist/core/p-9777ebb1.entry.js +0 -2
  774. package/dist/core/p-9777ebb1.entry.js.map +0 -1
  775. package/dist/core/p-99cad6c2.js +0 -2
  776. package/dist/core/p-99cad6c2.js.map +0 -1
  777. package/dist/core/p-9caf19eb.js +0 -2
  778. package/dist/core/p-9caf19eb.js.map +0 -1
  779. package/dist/core/p-a0f8efb2.entry.js +0 -2
  780. package/dist/core/p-a0f8efb2.entry.js.map +0 -1
  781. package/dist/core/p-a31031a5.entry.js +0 -2
  782. package/dist/core/p-a31031a5.entry.js.map +0 -1
  783. package/dist/core/p-a434c3d4.entry.js +0 -2
  784. package/dist/core/p-a43c12cd.entry.js +0 -2
  785. package/dist/core/p-a43c12cd.entry.js.map +0 -1
  786. package/dist/core/p-a50c3b9e.entry.js +0 -2
  787. package/dist/core/p-a50c3b9e.entry.js.map +0 -1
  788. package/dist/core/p-ab09986c.entry.js +0 -2
  789. package/dist/core/p-ab09986c.entry.js.map +0 -1
  790. package/dist/core/p-ac4e40a7.entry.js +0 -2
  791. package/dist/core/p-ac4e40a7.entry.js.map +0 -1
  792. package/dist/core/p-b2aa3d7c.entry.js +0 -2
  793. package/dist/core/p-b2aa3d7c.entry.js.map +0 -1
  794. package/dist/core/p-b82dcc29.entry.js +0 -2
  795. package/dist/core/p-b82dcc29.entry.js.map +0 -1
  796. package/dist/core/p-ba86928c.entry.js +0 -2
  797. package/dist/core/p-ba86928c.entry.js.map +0 -1
  798. package/dist/core/p-baf81f30.entry.js.map +0 -1
  799. package/dist/core/p-c125b65a.entry.js +0 -2
  800. package/dist/core/p-c125b65a.entry.js.map +0 -1
  801. package/dist/core/p-c34848da.entry.js +0 -2
  802. package/dist/core/p-d8469ac0.entry.js +0 -2
  803. package/dist/core/p-d8469ac0.entry.js.map +0 -1
  804. package/dist/core/p-db9c03c0.entry.js +0 -2
  805. package/dist/core/p-db9c03c0.entry.js.map +0 -1
  806. package/dist/core/p-e0462b23.entry.js +0 -2
  807. package/dist/core/p-e0462b23.entry.js.map +0 -1
  808. package/dist/core/p-e0a94f2d.entry.js +0 -2
  809. package/dist/core/p-e0a94f2d.entry.js.map +0 -1
  810. package/dist/core/p-e189f1d0.entry.js +0 -2
  811. package/dist/core/p-e189f1d0.entry.js.map +0 -1
  812. package/dist/core/p-e3997d60.entry.js +0 -2
  813. package/dist/core/p-e3997d60.entry.js.map +0 -1
  814. package/dist/core/p-e79e0292.entry.js +0 -2
  815. package/dist/core/p-e79e0292.entry.js.map +0 -1
  816. package/dist/core/p-e834344e.entry.js +0 -2
  817. package/dist/core/p-e834344e.entry.js.map +0 -1
  818. package/dist/core/p-f14454b1.entry.js +0 -2
  819. package/dist/core/p-f14454b1.entry.js.map +0 -1
  820. package/dist/core/p-f3c840cd.entry.js +0 -2
  821. package/dist/core/p-f3c840cd.entry.js.map +0 -1
  822. package/dist/core/p-f6888309.entry.js +0 -2
  823. package/dist/core/p-f6888309.entry.js.map +0 -1
  824. package/dist/core/p-f74a8752.entry.js +0 -2
  825. package/dist/core/p-f74a8752.entry.js.map +0 -1
  826. package/dist/core/p-f7a14c01.entry.js +0 -2
  827. package/dist/core/p-f7a14c01.entry.js.map +0 -1
  828. package/dist/core/p-f843da01.entry.js +0 -2
  829. package/dist/core/p-f843da01.entry.js.map +0 -1
  830. package/dist/core/p-fc5611e2.entry.js +0 -2
  831. package/dist/core/p-fc5611e2.entry.js.map +0 -1
  832. package/dist/core/p-fd186591.js +0 -2
  833. package/dist/core/p-fd186591.js.map +0 -1
  834. package/dist/core/p-fde45b29.entry.js +0 -2
  835. package/dist/core/p-fde45b29.entry.js.map +0 -1
  836. package/dist/esm/helpers-12b4266a.js.map +0 -1
  837. package/dist/esm/helpers-5271897c.js +0 -183
  838. package/dist/esm/helpers-5271897c.js.map +0 -1
  839. package/dist/esm/ic-card.entry.js +0 -122
  840. package/dist/esm/ic-card.entry.js.map +0 -1
  841. package/dist/esm/ic-data-entity.entry.js +0 -25
  842. package/dist/esm/ic-data-entity.entry.js.map +0 -1
  843. package/dist/esm/ic-empty-state.entry.js +0 -34
  844. package/dist/esm/ic-empty-state.entry.js.map +0 -1
  845. package/dist/esm/ic-input-component-container_3.entry.js.map +0 -1
  846. package/dist/esm/ic-input-label_2.entry.js +0 -81
  847. package/dist/esm/ic-input-label_2.entry.js.map +0 -1
  848. package/dist/esm/ic-pagination-bar.entry.js +0 -265
  849. package/dist/esm/ic-pagination-bar.entry.js.map +0 -1
  850. package/dist/esm/types-f605c21c.js +0 -16
  851. package/dist/esm/types-f605c21c.js.map +0 -1
  852. package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +0 -6
  853. /package/dist/types/components/{ic-select-with-multi/test/a11y/ic-select.test.a11y.d.ts → ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.d.ts} +0 -0
@@ -1,2 +0,0 @@
1
- import{r as i,c as t,h as s,H as e,g as a}from"./p-8455d1bb.js";import{g as h,a as n,b as o,r as l,i as r,c,d,o as u,e as p,f,h as b,j as v}from"./p-99cad6c2.js";const m=["aria-atomic","aria-autocomplete","aria-busy","aria-controls","aria-current","aria-describedby","aria-description","aria-details","aria-disabled","aria-dropeffect","aria-errormessage","aria-expanded","aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-live","aria-owns","aria-relevant","aria-roledescription"];var g;(function(i){i["Warning"]="warning";i["Error"]="error";i["Success"]="success"})(g||(g={}));var w;(function(i){i["Default"]="default";i["Dark"]="dark";i["Light"]="light"})(w||(w={}));const x=`<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n<path d="M7 9.5L12 14.5L17 9.5H7Z" fill="currentColor" />\n</svg>\n`;const y=`<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">\n<path d="M12.6666 4.27334L11.7266 3.33334L7.99998 7.06001L4.27331 3.33334L3.33331 4.27334L7.05998 8.00001L3.33331 11.7267L4.27331 12.6667L7.99998 8.94001L11.7266 12.6667L12.6666 11.7267L8.93998 8.00001L12.6666 4.27334Z" fill="currentColor" />\n</svg>\n`;const k='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;position:relative;--menu-max-height:100px}:host(.full-width){width:100%}ic-input-component-container:hover{--border-color:var(--ic-action-dark-hover)}ic-input-component-container:active{--border-color:var(--ic-action-dark-active);color:var(--ic-action-dark-active)}ic-input-component-container.menu-open{--border-color:var(--ic-architectural-400);color:var(--ic-action-dark)}ic-input-validation .status-icon,ic-input-validation .statustext{visibility:visible}ic-input-validation.menu-open .status-icon,ic-input-validation.menu-open .statustext{visibility:hidden;transition:visibility 0s}ic-input-label{margin-bottom:var(--ic-space-xs) !important}select{border:0;border-radius:var(--ic-border-radius);background-color:var(--ic-architectural-white);color:var(--ic-color-primary-text);line-height:1.5rem;letter-spacing:0.005rem;width:100%;height:100%;padding-left:0.375rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;background-position:right 0.375rem center;background-image:url("data:image/svg+xml;utf8,<svg fill=\'black\' height=\'24\' viewBox=\'0 0 24 24\' width=\'24\' xmlns=\'http://www.w3.org/2000/svg\'><path d=\'M7 10l5 5 5-5z\'/><path d=\'M0 0h24v24H0z\' fill=\'none\'/></svg>")}select option,.select-option-selected{color:var(--ic-color-primary-text)}select:disabled{color:var(--ic-architectural-200);background-image:url("data:image/svg+xml;utf8,<svg fill=\'grey\' height=\'24\' viewBox=\'0 0 24 24\' width=\'24\' xmlns=\'http://www.w3.org/2000/svg\'><path d=\'M7 10l5 5 5-5z\'/><path d=\'M0 0h24v24H0z\' fill=\'none\'/></svg>")}select:focus{border:0;outline:0}select:not([disabled]){cursor:pointer}.select-container{width:100%;display:flex;align-items:center;position:relative}.select-input{width:100%;height:100%;padding:0 0.375rem;display:flex;cursor:pointer;align-items:center;justify-content:space-between;background:none;border:none}.select-input:focus{outline:var(--ic-hc-focus-outline)}:host(:not(.disabled)) ic-input-component-container:hover .select-input{background-color:var(--ic-architectural-white)}.select-input[disabled]{pointer-events:none}:host(.searchable) .select-input{cursor:auto}.select-input.with-clear-button{padding-right:0}.value-text{max-width:calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));box-sizing:border-box}.value-text.with-clear-button{padding-right:calc(var(--ic-space-xl) + var(--ic-space-xs))}.value-text p{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-bottom:0 !important}.searchable-select-container{align-items:center;display:flex;width:100%;position:relative}.expand-icon{height:var(--ic-space-lg);padding-left:var(--ic-space-xxs);color:var(--ic-action-dark)}.expand-icon>svg{display:inline-block;width:var(--ic-space-lg);height:var(--ic-space-lg)}:host(.disabled) .expand-icon,:host(.disabled) .expand-icon>svg>path{color:var(--ic-architectural-200)}:host(.searchable) .expand-icon{padding-left:0;height:2.25rem}:host(.searchable) .expand-icon>svg{height:2.25rem;padding:0 0.375rem}:host(.searchable:not(.disabled)) .expand-icon>svg{cursor:pointer}.expand-icon-open{color:var(--ic-action-dark)}.expand-icon-open,:host(.searchable) .expand-icon-open{transform:rotateX(180deg)}:host(.disabled) .value-text,.placeholder{color:var(--ic-color-tertiary-text)}.select-input-end{display:flex;align-items:center}.clear-button-container{display:flex}.divider{width:var(--ic-space-1px);background-color:var(--ic-architectural-400);margin:var(--ic-space-xxs) 0;border-radius:var(--ic-space-1px);height:var(--ic-space-lg)}:host(.small) .divider{height:var(--ic-space-md)}:host(.large) .divider{height:var(--ic-space-xl)}.clear-button{position:absolute;right:calc(var(--ic-space-xl) + var(--ic-space-xxs));border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition)}.clear-button:focus{background-color:var(--ic-focus-blue);box-shadow:inset 0 0 0 0.125rem var(--ic-focus-glow);border-radius:0.25rem}.clear-button:focus *{fill:white}.clear-button.searchable{position:static}.searchable-select-results-status,.multi-select-selected-count{border:0;clip:rect(0, 0, 0, 0, 0);height:var(--ic-space-1px);overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:var(--ic-space-1px)}';let z=0;const L=class{constructor(s){i(this,s);this.icBlur=t(this,"icBlur",7);this.icChange=t(this,"icChange",7);this.icClear=t(this,"icClear",7);this.icFocus=t(this,"icFocus",7);this.icInput=t(this,"icInput",7);this.icOptionSelect=t(this,"icOptionSelect",7);this.icOptionDeselect=t(this,"icOptionDeselect",7);this.icRetryLoad=t(this,"icRetryLoad",7);this.hasSetDefaultValue=false;this.inheritedAttributes={};this.initialOptionsEmpty=false;this.inputId=`ic-select-input-${z++}`;this.menuId=`${this.inputId}-menu`;this.searchableMenuItemSelected=false;this.ungroupedOptions=[];this.handleRetry=i=>{var t;if(i.detail.keyPressed)(t=this.searchableSelectElement)===null||t===void 0?void 0:t.focus();this.blurredBecauseButtonPressed=true;this.retryButtonClick=true;this.hasSetDefaultValue=true;this.icRetryLoad.emit({value:this.hiddenInputValue})};this.emitIcChange=i=>{if(!this.searchable){if(this.multiple&&!Array.isArray(i)&&i!==null){this.handleMultipleSelectChange(i)}else{this.value=i}}clearTimeout(this.debounceIcChange);this.debounceIcChange=window.setTimeout((()=>{const t=this.multiple?this.value:i;this.icChange.emit({value:t})}),this.currDebounce)};this.emitImmediateIcChange=i=>{this.value=i;clearTimeout(this.debounceIcChange);this.icChange.emit({value:i})};this.deduplicateOptions=i=>{const t=[];const s=[];let e;i.forEach((i=>{if(i.children){e=[];i.children.forEach((i=>{if(t.includes(i.value)){console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${i.value}) which has been removed.`)}else{t.push(i.value);e.push(i)}}));const a=Object.assign(Object.assign({},i),{children:e});s.push(a)}else{if(t.includes(i.value)){console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${i.value}) which has been removed.`)}else{t.push(i.value);s.push(i)}}}));return s};this.setOptionsValuesFromLabels=()=>{if(this.options.length>0&&this.options.map){this.options.map((i=>{if(!i.value){i.value=i.label}}))}};this.setUngroupedOptions=i=>{this.ungroupedOptions=i.detail.options};this.setTextColor=()=>{if(this.nativeSelectElement.selectedIndex===0){this.nativeSelectElement.className="placeholder"}else{this.nativeSelectElement.className="select-option-selected"}};this.setMenuChange=i=>{if(this.open!==i){this.open=i}};this.getLabelFromValue=i=>h(i,this.uniqueOptions);this.getMultipleOptionsString=i=>{const t=i===null||i===void 0?void 0:i.map((i=>this.getLabelFromValue(i)));return t===null||t===void 0?void 0:t.join(", ")};this.getFilteredChildMenuOptions=i=>{let t=i.children;if(this.searchable){t=n(i.children,this.includeDescriptionsInSearch,this.searchableSelectInputValue,this.searchMatchPosition)}else{t=n(i.children,false,this.pressedCharacters,"start")}const s=Object.assign({},i);s.children=t;return s};this.getValueSortedByOptions=i=>{const t=i;const s=this.ungroupedOptions.map((i=>i.value));t.sort(((i,t)=>s.indexOf(i)-s.indexOf(t)));return t};this.handleNativeSelectChange=()=>{this.icOptionSelect.emit({value:this.nativeSelectElement.value});this.emitImmediateIcChange(this.nativeSelectElement.value);this.setTextColor()};this.handleCustomSelectChange=i=>{var t;const s=i.detail.value;if(this.searchable&&i.detail.label===this.emptyOptionListText){this.searchableSelectElement.focus();return}if(this.searchable){this.value=s;this.searchableMenuItemSelected=true;if(this.value===this.currValue){this.searchableSelectInputValue=this.getLabelFromValue(this.value)}this.inputValueToFilter=null;this.hiddenInputValue=this.getValueFromLabel(this.searchableSelectInputValue)}if(this.multiple&&((t=this.value)===null||t===void 0?void 0:t.includes(s))){this.icOptionDeselect.emit({value:s})}else{this.icOptionSelect.emit({value:s})}this.ariaActiveDescendant=i.detail.optionId;this.emitIcChange(s)};this.handleMultipleSelectChange=i=>{if(this.value){let t=this.value.slice();if(this.value.includes(i)){const s=t.indexOf(i);t.splice(s,1)}else{t.push(i);t=this.getValueSortedByOptions(t)}this.value=t.length===0?null:t}else{const t=[];t.push(i);this.value=t}};this.handleSelectAllChange=i=>{const t=i.detail.select;const s=this.ungroupedOptions.filter((i=>!i.disabled));const e=s.map((i=>i.value));let a;if(t){let i;if(this.value){i=e.filter((i=>this.value&&!this.value.includes(i)))}else{i=e}i.forEach((i=>this.icOptionSelect.emit({value:i})));a=e}else{this.value.forEach((i=>this.icOptionDeselect.emit({value:i})));a=null}this.emitIcChange(a)};this.handleMenuChange=i=>{this.open=i.detail.open;this.pressedCharacters="";this.searchable&&this.handleFocusIndicatorDisplay()};this.handleMenuKeyPress=i=>{i.cancelBubble=true;if(!this.multiple){this.handleCharacterKeyDown(i.detail.key)}};this.handleFocusIndicatorDisplay=()=>{const i=this.el.shadowRoot.querySelector(".focus-indicator");if(this.open){i.classList.add("focus-indicator-enabled")}else{i.classList.remove("focus-indicator-enabled")}};this.handleMouseDown=i=>{if(!this.open){i.preventDefault()}};this.isExternalFiltering=()=>this.searchable&&this.disableFilter;this.handleClick=i=>{var t;if(!this.open){if(this.isExternalFiltering()){this.menu.options=this.filteredOptions}else if(!this.hasTimedOut&&!this.loading&&!((t=this.noOptions)===null||t===void 0?void 0:t.length)&&(!this.searchable||this.searchableMenuItemSelected)){this.noOptions=null;this.menu.options=this.uniqueOptions}}if(i.detail!==0){this.menu.handleClickOpen()}};this.handleExpandIconMouseDown=i=>{if(!this.disabled){i.preventDefault();this.searchableSelectElement.focus();this.handleClick(i)}};this.handleClear=i=>{i.stopPropagation();this.hasTimedOut=false;clearTimeout(this.timeoutTimer);this.noOptions=null;this.emitImmediateIcChange(null);this.icClear.emit();if(this.searchable){this.searchableSelectElement.value=null;this.searchableSelectInputValue=null;this.filteredOptions=this.uniqueOptions;this.hiddenInputValue=null;this.searchableSelectElement.focus()}else{this.customSelectElement.focus()}};this.handleCharacterKeyDown=i=>{if(this.open&&i===" "&&this.pressedCharacters.length===0&&!this.hasTimedOut&&!this.loading){this.setMenuChange(false)}if(i.length===1&&!this.searchable){window.clearTimeout(this.characterKeyPressTimer);this.characterKeyPressTimer=window.setTimeout((()=>this.pressedCharacters=""),1e3);if(!(i===" "&&!this.pressedCharacters)){this.pressedCharacters+=i;this.handleFilter();if(!this.noOptions){this.emitImmediateIcChange(this.filteredOptions[0].value)}}}else{this.pressedCharacters=""}};this.handleNativeSelectKeyDown=i=>{if(i.key!=="Escape"&&i.key!=="Tab"||this.open){i.cancelBubble=true}this.handleCharacterKeyDown(i.key)};this.handleKeyDown=i=>{if(i.key!=="Escape"&&i.key!=="Tab"||this.open){i.cancelBubble=true}const t=i.key==="ArrowDown"||i.key==="ArrowUp";if(!this.open){if(this.isExternalFiltering()&&(i.key==="Enter"||t)){this.menu.options=this.filteredOptions}else{if(!this.hasTimedOut){this.noOptions=null;this.menu.options=this.uniqueOptions}}}if(this.open&&i.key==="Enter"){this.setMenuChange(false)}else{if(!(t&&this.noOptions!==null)){if(!(i.key===" "&&this.pressedCharacters.length>0)){this.menu.handleKeyboardOpen(i)}if(!this.multiple){this.handleCharacterKeyDown(i.key)}}}};this.handleClearButtonFocus=()=>{this.clearButtonFocused=true};this.handleClearButtonBlur=i=>{var t;const s=(t=this.menu)===null||t===void 0?void 0:t.querySelector("#retry-button");if(!(this.searchableSelectElement&&i.relatedTarget===this.searchableSelectElement)&&!(s&&i.relatedTarget===s)){this.setMenuChange(false);this.handleFocusIndicatorDisplay()}this.clearButtonFocused=false};this.handleFilter=()=>{var i;const t=this.deduplicateOptions(this.searchable?[...this.uniqueOptions]:this.ungroupedOptions);let s=false;let e=[];t.map((i=>{if(i.children)s=true}));let a;if(this.searchable){a=n(t,this.includeDescriptionsInSearch,this.inputValueToFilter,this.searchMatchPosition);this.searchableMenuItemSelected=false}else{a=n(t,false,this.pressedCharacters,"start")}if(!s&&((i=a[0])===null||i===void 0?void 0:i.label)!==this.emptyOptionListText){e=a}else if(s){t.map((i=>{if(this.includeGroupTitlesInSearch){if(a.indexOf(i)!==-1){e.push(i)}else{e.push(this.getFilteredChildMenuOptions(i))}}else{e.push(this.getFilteredChildMenuOptions(i))}}))}let h=false;if(s){h=true;e.map((i=>{if(i.children.length>0){h=false}}))}if(e.length>0&&!h){this.noOptions=null;this.filteredOptions=e}else{this.noOptions=[{label:this.emptyOptionListText,value:""}];this.filteredOptions=this.noOptions}};this.triggerLoading=()=>{this.hasTimedOut=false;this.noOptions=[{label:this.loadingLabel,value:"",loading:true}];if(this.filteredOptions!==this.noOptions&&this.searchable){this.filteredOptions=this.noOptions}else if(this.uniqueOptions!==this.noOptions&&!this.searchable){this.uniqueOptions=this.noOptions}if(this.timeout){this.timeoutTimer=window.setTimeout((()=>{this.loading=false;this.hasTimedOut=true;this.noOptions=[{label:this.loadingErrorLabel,value:"",timedOut:true}];this.filteredOptions=this.noOptions;if(!this.searchable)this.uniqueOptions=this.noOptions}),this.timeout)}};this.getValueFromLabel=i=>{var t;return(t=this.uniqueOptions.find((t=>t.label===i)))===null||t===void 0?void 0:t.value};this.handleSearchableSelectInput=i=>{this.searchableSelectInputValue=i.target.value;this.icInput.emit({value:this.searchableSelectInputValue});this.emitIcChange(this.searchableSelectInputValue);this.hiddenInputValue=this.searchableSelectInputValue;this.inputValueToFilter=this.searchableSelectInputValue;this.setMenuChange(true);if(!this.disableFilter){this.handleFilter();this.debounceAriaLiveUpdate()}};this.updateSearchableSelectResultAriaLive=()=>{const i=this.el.shadowRoot.querySelector(".searchable-select-results-status");if(i){if(this.noOptions!==null){i.innerText=this.emptyOptionListText}else{i.innerText=""}}};this.updateMultiSelectedCountAriaLive=()=>{var i;const t=this.el.shadowRoot.querySelector(".multi-select-selected-count");const s=`${(i=this.currValue)===null||i===void 0?void 0:i.length} of ${o(this.options)} selected`;if(t&&t.innerText!==s){t.innerText=s}};this.getDefaultValue=i=>this.getLabelFromValue(i)||i||null;this.setDefaultValue=()=>{if(!this.hasSetDefaultValue&&this.currValue){this.searchableSelectInputValue=this.searchable&&this.getDefaultValue(this.currValue);this.initialValue=this.currValue;this.hasSetDefaultValue=true}};this.onFocus=()=>{this.icFocus.emit()};this.onBlur=i=>{var t;const s=i.relatedTarget;if(s!==null&&s.tagName==="UL"&&s.className.includes("menu")){return}const e=(t=this.menu)===null||t===void 0?void 0:t.querySelector("#retry-button");const a=this.searchable&&i.relatedTarget!==this.menu&&!Array.from(this.menu.querySelectorAll("[role='option']")).includes(i.relatedTarget)&&!(this.clearButton&&i.relatedTarget===this.clearButton)&&!(e&&i.relatedTarget===e);if(a){if(!this.retryButtonClick){this.setMenuChange(false)}this.handleFocusIndicatorDisplay()}this.retryButtonClick=false;this.icBlur.emit()};this.onTimeoutBlur=i=>{if(i.detail.ev.relatedTarget!==this.searchableSelectElement&&!this.blurredBecauseButtonPressed){this.setMenuChange(false);this.handleFocusIndicatorDisplay();this.icBlur.emit()}this.blurredBecauseButtonPressed=false};this.handleFormReset=()=>{this.value=this.initialValue;if(this.searchable){this.searchableSelectInputValue=this.getDefaultValue(this.value);this.hiddenInputValue=this.value}};this.ariaActiveDescendant=undefined;this.clearButtonFocused=false;this.debounceIcChange=undefined;this.hiddenInputValue=undefined;this.noOptions=null;this.open=false;this.pressedCharacters="";this.searchableSelectInputValue=null;this.charactersUntilSuggestions=0;this.disabled=false;this.disableFilter=false;this.emptyOptionListText="No results found";this.form=undefined;this.formaction=undefined;this.formenctype=undefined;this.formmethod=undefined;this.formnovalidate=undefined;this.formtarget=undefined;this.fullWidth=false;this.helperText="";this.hideLabel=false;this.includeDescriptionsInSearch=false;this.includeGroupTitlesInSearch=false;this.label=undefined;this.loadingErrorLabel="Loading Error";this.loadingLabel="Loading...";this.multiple=false;this.name=this.inputId;this.placeholder="Select an option";this.readonly=false;this.required=false;this.searchable=false;this.searchMatchPosition="anywhere";this.selectOnEnter=false;this.showClearButton=false;this.size="default";this.small=false;this.timeout=undefined;this.validationStatus="";this.validationText="";this.loading=false;this.options=[];this.filteredOptions=this.options;this.uniqueOptions=this.options;this.debounce=0;this.currDebounce=this.debounce;this.value=undefined;this.initialValue=this.value;this.inputValueToFilter=this.value;this.currValue=this.value}loadingHandler(i){i&&this.triggerLoading()}watchOptionsHandler(){if(!this.hasTimedOut&&this.options!==this.noOptions){this.loading=false;clearTimeout(this.timeoutTimer);if(this.isExternalFiltering()){if(this.options.length>0){this.setOptionsValuesFromLabels();this.noOptions=null;this.uniqueOptions=this.deduplicateOptions(this.options);this.filteredOptions=this.uniqueOptions}else{this.noOptions=[{label:this.emptyOptionListText,value:""}];this.uniqueOptions=this.noOptions;this.filteredOptions=this.noOptions}this.updateSearchableSelectResultAriaLive();this.setDefaultValue()}else{this.setOptionsValuesFromLabels();this.uniqueOptions=this.deduplicateOptions(this.options);this.filteredOptions=this.uniqueOptions;if(this.initialOptionsEmpty){this.setDefaultValue();this.initialOptionsEmpty=false}}}else{if(!this.searchable)this.options=this.noOptions}}debounceChangedHandler(i){this.updateOnChangeDebounce(i)}valueChangedHandler(){if(this.value!==this.currValue){if(this.value&&this.multiple){this.currValue=this.getValueSortedByOptions(this.value);this.updateMultiSelectedCountAriaLive()}else{this.currValue=this.value}}if(this.searchable){this.searchableSelectInputValue=this.getLabelFromValue(this.currValue)||this.currValue}}disconnectedCallback(){l(this.el,this.handleFormReset)}componentWillLoad(){this.inheritedAttributes=r(this.el,[...m,"tabindex","title"]);c(this.disabled,this.el);this.setOptionsValuesFromLabels();d(this.el,this.handleFormReset);if(!this.options.length){this.initialOptionsEmpty=true;this.noOptions=[{label:this.emptyOptionListText,value:""}];this.uniqueOptions=this.noOptions;this.filteredOptions=this.noOptions}else{this.setDefaultValue();this.uniqueOptions=this.deduplicateOptions(this.options)}}componentDidLoad(){u([{prop:this.label,propName:"label"}],"Select");if(this.loading){this.triggerLoading()}this.hiddenInputValue=this.searchable&&this.currValue}componentDidRender(){if(this.nativeSelectElement&&!this.disabled){this.setTextColor()}}async setFocus(){if(this.nativeSelectElement){this.nativeSelectElement.focus()}else if(this.customSelectElement){this.customSelectElement.focus()}else if(this.searchableSelectElement){this.searchableSelectElement.focus()}}updateOnChangeDebounce(i){if(this.currDebounce!==i){this.currDebounce=i}}debounceAriaLiveUpdate(){clearTimeout(this.debounceAria);window.setTimeout((()=>{this.updateSearchableSelectResultAriaLive()}),800)}render(){const{size:i,small:t,disabled:a,fullWidth:h,helperText:n,hideLabel:l,label:r,menuId:c,multiple:d,name:u,options:m,placeholder:k,readonly:z,required:L,searchable:C,showClearButton:M,validationStatus:T,validationText:H,currValue:B}=this;p(true,this.el,u,this.searchable?this.hiddenInputValue:B,a);const O=T===g.Error?"true":"false";const $=f(this.inputId,n!=="",v(this.validationStatus,this.disabled)).trim();const j=`${B===null||B===void 0?void 0:B.length} of ${o(this.options)} selected`;return s(e,{class:{disabled:a,searchable:C,small:t,[i]:i!=="default","full-width":h},onBlur:this.onBlur},s("ic-input-container",{readonly:z},!l&&s("ic-input-label",{for:this.inputId,label:r,helperText:n,required:L,disabled:a,readonly:z}),s("ic-input-component-container",{ref:i=>this.anchorEl=i,class:{"menu-open":this.open},small:t,size:i,fullWidth:h,disabled:a,readonly:z,validationStatus:T},z?s("ic-typography",null,s("p",null,d?this.getMultipleOptionsString(B):this.getLabelFromValue(B))):b()&&!d?s("select",Object.assign({ref:i=>this.nativeSelectElement=i,disabled:a,onChange:this.handleNativeSelectChange,required:L,id:this.inputId,"aria-label":r,"aria-describedby":$,"aria-invalid":O,onBlur:this.onBlur,onFocus:this.onFocus,onKeyDown:this.handleNativeSelectKeyDown,form:this.form},this.inheritedAttributes),s("option",{value:"",selected:true,disabled:!M},k),m.map((i=>{if(i.children){return s("optgroup",{label:i.label},i.children.map((i=>s("option",{value:i.value,disabled:i.disabled,selected:i.value===B},i.label))))}else{return s("option",{value:i.value,disabled:i.disabled,selected:i.value===B},i.label)}}))):C?s("div",{class:"searchable-select-container"},s("input",{class:{"select-input":true,"with-clear-button":!!this.searchableSelectInputValue},role:"combobox",autocomplete:"off","aria-label":r,"aria-describedby":$,"aria-activedescendant":this.ariaActiveDescendant,"aria-autocomplete":"list","aria-expanded":this.open?"true":"false","aria-invalid":O,"aria-required":L?"true":"false","aria-controls":c,ref:i=>this.searchableSelectElement=i,id:this.inputId,value:this.searchableSelectInputValue,placeholder:k,disabled:a,onInput:this.handleSearchableSelectInput,onClick:this.handleClick,onKeyDown:this.handleKeyDown,onFocus:this.onFocus,onBlur:this.onBlur,form:this.form,formaction:this.formaction,formenctype:this.formenctype,formmethod:this.formmethod,formnovalidate:this.formnovalidate,formtarget:this.formtarget}),this.searchableSelectInputValue&&(M||C)&&s("div",{class:"clear-button-container"},s("ic-button",{id:"clear-button",ref:i=>this.clearButton=i,"aria-label":this.searchableSelectInputValue&&B===null?"Clear input":"Clear selection",class:"clear-button",innerHTML:y,onClick:this.handleClear,onFocus:this.handleClearButtonFocus,onBlur:this.handleClearButtonBlur,size:i,variant:"icon",appearance:this.clearButtonFocused?w.Light:w.Dark}),s("div",{class:"divider"})),s("span",{onMouseDown:this.handleExpandIconMouseDown,class:{"expand-icon":true,"expand-icon-open":this.open},innerHTML:x,"aria-hidden":"true"}),s("div",{"aria-live":"polite",role:"status",class:"searchable-select-results-status"})):s("div",{class:"select-container"},s("button",{class:"select-input",ref:i=>this.customSelectElement=i,id:this.inputId,"aria-label":`${r}, ${(d&&B?`${j}, ${this.getMultipleOptionsString(B)}`:this.getLabelFromValue(B))||k}${L?", required":""}`,"aria-describedby":$,"aria-invalid":O,"aria-haspopup":"listbox","aria-expanded":this.open?"true":"false","aria-owns":c,"aria-controls":c,disabled:a,onBlur:this.onBlur,onFocus:this.onFocus,onClick:this.handleClick,onMouseDown:this.handleMouseDown,onKeyDown:this.handleKeyDown},s("ic-typography",{variant:"body",class:{"value-text":true,"with-clear-button":B&&M,placeholder:!this.value||d&&this.value.length<1}},s("p",null,(d?this.getMultipleOptionsString(B):this.getLabelFromValue(B))||k)),s("div",{class:"select-input-end"},B&&M&&s("div",{class:"divider"}),s("span",{class:{"expand-icon":true,"expand-icon-open":this.open},innerHTML:x,"aria-hidden":"true"}))),B&&M&&s("ic-button",{id:"clear-button","aria-label":"Clear selection",class:"clear-button",innerHTML:y,onClick:this.handleClear,onFocus:this.handleClearButtonFocus,onBlur:this.handleClearButtonBlur,size:i,variant:"icon",appearance:this.clearButtonFocused?w.Light:w.Dark}))),(!b()||d)&&s("ic-menu-with-multi",{class:{"no-results":this.loading||this.hasTimedOut||this.noOptions!==null&&this.noOptions[0]&&this.noOptions[0].label===this.emptyOptionListText},ref:i=>this.menu=i,inputEl:C?this.searchableSelectElement:this.customSelectElement,inputLabel:r,anchorEl:this.anchorEl,small:t,size:i,menuId:c,open:this.open,options:C?this.filteredOptions:this.uniqueOptions,value:d?B:B,fullWidth:h,selectOnEnter:this.selectOnEnter,onMenuStateChange:this.handleMenuChange,onMenuOptionSelect:this.handleCustomSelectChange,onMenuOptionSelectAll:this.handleSelectAllChange,onMenuKeyPress:this.handleMenuKeyPress,onUngroupedOptionsSet:this.setUngroupedOptions,onRetryButtonClicked:this.handleRetry,parentEl:this.el,onTimeoutBlur:this.onTimeoutBlur,activationType:this.searchable||d||this.selectOnEnter?"manual":"automatic",closeOnSelect:!d}),this.multiple&&s("div",{"aria-live":"polite",role:"status",class:"multi-select-selected-count"}),v(this.validationStatus,this.disabled)&&s("ic-input-validation",{class:{"menu-open":this.open},ariaLiveMode:"polite",status:T,message:H,for:this.inputId})))}static get delegatesFocus(){return true}get el(){return a(this)}static get watchers(){return{loading:["loadingHandler"],options:["watchOptionsHandler"],debounce:["debounceChangedHandler"],value:["valueChangedHandler"]}}};L.style=k;export{L as ic_select_with_multi};
2
- //# sourceMappingURL=p-e0a94f2d.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["IC_INHERITED_ARIA","IcInformationStatus","IcThemeForegroundEnum","icSelectCss","inputIds","Select","this","hasSetDefaultValue","inheritedAttributes","initialOptionsEmpty","inputId","menuId","searchableMenuItemSelected","ungroupedOptions","handleRetry","ev","detail","keyPressed","_a","searchableSelectElement","focus","blurredBecauseButtonPressed","retryButtonClick","icRetryLoad","emit","value","hiddenInputValue","emitIcChange","searchable","multiple","Array","isArray","handleMultipleSelectChange","clearTimeout","debounceIcChange","window","setTimeout","valueToEmit","icChange","currDebounce","emitImmediateIcChange","deduplicateOptions","options","uniqueValues","dedupedOptions","dedupedChildren","forEach","option","children","child","includes","console","warn","label","push","modifiedParent","Object","assign","setOptionsValuesFromLabels","length","map","setUngroupedOptions","event","setTextColor","nativeSelectElement","selectedIndex","className","setMenuChange","open","getLabelFromValue","uniqueOptions","getMultipleOptionsString","selectedValues","selectedLabels","join","getFilteredChildMenuOptions","getFilteredMenuOptions","includeDescriptionsInSearch","searchableSelectInputValue","searchMatchPosition","pressedCharacters","newOption","getValueSortedByOptions","valueArray","valuesFromAllOptions","sort","a","b","indexOf","handleNativeSelectChange","icOptionSelect","handleCustomSelectChange","emptyOptionListText","currValue","inputValueToFilter","getValueFromLabel","icOptionDeselect","ariaActiveDescendant","optionId","slice","valueIndex","splice","handleSelectAllChange","selectAllOptions","select","allEnabledOptions","filter","disabled","allValues","newValue","unselectedValues","handleMenuChange","handleFocusIndicatorDisplay","handleMenuKeyPress","cancelBubble","handleCharacterKeyDown","key","focusIndicator","el","shadowRoot","querySelector","classList","add","remove","handleMouseDown","preventDefault","isExternalFiltering","disableFilter","handleClick","menu","filteredOptions","hasTimedOut","loading","noOptions","handleClickOpen","handleExpandIconMouseDown","handleClear","stopPropagation","timeoutTimer","icClear","customSelectElement","characterKeyPressTimer","handleFilter","handleNativeSelectKeyDown","handleKeyDown","isArrowKey","handleKeyboardOpen","handleClearButtonFocus","clearButtonFocused","handleClearButtonBlur","retryButton","relatedTarget","isGrouped","newFilteredOptions","menuOptionsFiltered","includeGroupTitlesInSearch","noChildOptionsWhenFiltered","triggerLoading","loadingLabel","timeout","loadingErrorLabel","timedOut","find","handleSearchableSelectInput","target","icInput","debounceAriaLiveUpdate","updateSearchableSelectResultAriaLive","searchableSelectResultsStatusEl","innerText","updateMultiSelectedCountAriaLive","multiSelectSelectedCountEl","selectedCount","getOptionsWithoutGroupTitlesCount","getDefaultValue","setDefaultValue","initialValue","onFocus","icFocus","onBlur","tagName","isSearchableAndNoFocusedInternalElements","from","querySelectorAll","clearButton","icBlur","onTimeoutBlur","handleFormReset","debounce","loadingHandler","watchOptionsHandler","debounceChangedHandler","updateOnChangeDebounce","valueChangedHandler","disconnectedCallback","removeFormResetListener","componentWillLoad","inheritAttributes","removeDisabledFalse","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentDidRender","setFocus","debounceAria","render","size","small","fullWidth","helperText","hideLabel","name","placeholder","readonly","required","showClearButton","validationStatus","validationText","renderHiddenInput","invalid","Error","describedBy","getInputDescribedByText","hasValidationStatus","trim","optionsSelectedCount","h","Host","class","for","ref","anchorEl","isMobileOrTablet","onChange","id","onKeyDown","form","selected","role","autocomplete","onInput","onClick","formaction","formenctype","formmethod","formnovalidate","formtarget","innerHTML","Clear","variant","appearance","Light","Dark","onMouseDown","Expand","inputEl","inputLabel","selectOnEnter","onMenuStateChange","onMenuOptionSelect","onMenuOptionSelectAll","onMenuKeyPress","onUngroupedOptionsSet","onRetryButtonClicked","parentEl","activationType","closeOnSelect","ariaLiveMode","status","message"],"sources":["src/utils/constants.ts","src/utils/types.ts","src/components/ic-select-with-multi/ic-select.css?tag=ic-select-with-multi&encapsulation=shadow","src/components/ic-select-with-multi/ic-select.tsx"],"sourcesContent":["// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\n \"aria-autocomplete\",\n \"aria-busy\",\n \"aria-controls\",\n \"aria-current\",\n \"aria-describedby\",\n \"aria-description\",\n \"aria-details\",\n \"aria-disabled\",\n \"aria-dropeffect\",\n \"aria-errormessage\",\n \"aria-expanded\",\n \"aria-flowto\",\n \"aria-grabbed\",\n \"aria-haspopup\",\n \"aria-hidden\",\n \"aria-invalid\",\n \"aria-keyshortcuts\",\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-live\",\n \"aria-owns\",\n \"aria-relevant\",\n \"aria-roledescription\",\n];\n","export enum IcInformationStatus {\n Warning = \"warning\",\n Error = \"error\",\n Success = \"success\",\n}\n\nexport type IcInformationStatusOrEmpty = \"warning\" | \"error\" | \"success\" | \"\";\n\nexport type IcSearchMatchPositions = \"start\" | \"anywhere\";\n\nexport enum IcThemeForegroundEnum {\n Default = \"default\",\n Dark = \"dark\",\n Light = \"light\",\n}\n\nexport interface IcValueEventDetail {\n value: string | string[];\n keyPressed?: string;\n}\n","@import \"../../../dist/core/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 --menu-max-height: 100px;\n}\n\n:host(.full-width) {\n width: 100%;\n}\n\nic-input-component-container:hover {\n --border-color: var(--ic-action-dark-hover);\n}\n\nic-input-component-container:active {\n --border-color: var(--ic-action-dark-active);\n\n color: var(--ic-action-dark-active);\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-architectural-400);\n\n color: var(--ic-action-dark);\n}\n\nic-input-validation .status-icon,\nic-input-validation .statustext {\n visibility: visible;\n}\n\nic-input-validation.menu-open .status-icon,\nic-input-validation.menu-open .statustext {\n visibility: hidden;\n transition: visibility 0s;\n}\n\nic-input-label {\n margin-bottom: var(--ic-space-xs) !important;\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-architectural-white);\n color: var(--ic-color-primary-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: url(\"data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\");\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-color-primary-text);\n}\n\nselect:disabled {\n color: var(--ic-architectural-200);\n background-image: url(\"data:image/svg+xml;utf8,<svg fill='grey' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\");\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}\n\n.select-input:focus {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(:not(.disabled)) ic-input-component-container:hover .select-input {\n background-color: var(--ic-architectural-white);\n}\n\n.select-input[disabled] {\n pointer-events: none;\n}\n\n:host(.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}\n\n.value-text.with-clear-button {\n padding-right: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n.value-text p {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin-bottom: 0 !important;\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-action-dark);\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(.disabled) .expand-icon,\n:host(.disabled) .expand-icon > svg > path {\n color: var(--ic-architectural-200);\n}\n\n:host(.searchable) .expand-icon {\n padding-left: 0;\n height: 2.25rem;\n}\n\n:host(.searchable) .expand-icon > svg {\n height: 2.25rem;\n padding: 0 0.375rem;\n}\n\n:host(.searchable:not(.disabled)) .expand-icon > svg {\n cursor: pointer;\n}\n\n.expand-icon-open {\n color: var(--ic-action-dark);\n}\n\n.expand-icon-open,\n:host(.searchable) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n:host(.disabled) .value-text,\n.placeholder {\n color: var(--ic-color-tertiary-text);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n}\n\n.divider {\n width: var(--ic-space-1px);\n background-color: var(--ic-architectural-400);\n margin: var(--ic-space-xxs) 0;\n border-radius: var(--ic-space-1px);\n height: var(--ic-space-lg);\n}\n\n:host(.small) .divider {\n height: var(--ic-space-md);\n}\n\n:host(.large) .divider {\n height: var(--ic-space-xl);\n}\n\n.clear-button {\n position: absolute;\n right: calc(var(--ic-space-xl) + var(--ic-space-xxs));\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 background-color: var(--ic-focus-blue);\n box-shadow: inset 0 0 0 0.125rem var(--ic-focus-glow);\n border-radius: 0.25rem;\n}\n\n.clear-button:focus * {\n fill: white;\n}\n\n.clear-button.searchable {\n position: static;\n}\n\n.searchable-select-results-status,\n.multi-select-selected-count {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: var(--ic-space-1px);\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: var(--ic-space-1px);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n h,\n State,\n Watch,\n} from \"@stencil/core\";\nimport { IcOptionSelectEventDetail } from \"@ukic/web-components/dist/types/components\";\nimport {\n IcMenuOption,\n IcSizes,\n} from \"@ukic/web-components/dist/types/utils/types\";\n\nimport {\n getInputDescribedByText,\n getLabelFromValue,\n hasValidationStatus,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n isMobileOrTablet,\n getFilteredMenuOptions,\n getOptionsWithoutGroupTitlesCount,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSearchMatchPositions,\n IcThemeForegroundEnum,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\n\nlet inputIds = 0;\n\n@Component({\n tag: \"ic-select-with-multi\",\n styleUrl: \"ic-select.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Select {\n private anchorEl: HTMLElement;\n private blurredBecauseButtonPressed: boolean;\n private characterKeyPressTimer: number;\n private clearButton: HTMLIcButtonElement;\n private customSelectElement: HTMLButtonElement;\n private debounceAria: number;\n private hasSetDefaultValue = false;\n private hasTimedOut: boolean;\n private inheritedAttributes: { [k: string]: unknown } = {};\n private initialOptionsEmpty = false;\n private inputId = `ic-select-input-${inputIds++}`;\n private menu: HTMLIcMenuWithMultiElement;\n private menuId = `${this.inputId}-menu`;\n private nativeSelectElement: HTMLSelectElement;\n private retryButtonClick: boolean;\n private searchableMenuItemSelected: boolean = false;\n private searchableSelectElement: HTMLInputElement;\n private timeoutTimer: number;\n private ungroupedOptions: IcMenuOption[] = [];\n\n @Element() el!: HTMLIcSelectWithMultiElement;\n\n @State() ariaActiveDescendant: string;\n @State() clearButtonFocused: boolean = false;\n @State() debounceIcChange: number;\n @State() hiddenInputValue: string;\n @State() noOptions: IcMenuOption[] = null;\n @State() open: boolean = false;\n @State() pressedCharacters: string = \"\";\n @State() searchableSelectInputValue: string = null;\n\n /**\n * **[DEPRECATED]** This prop should not be used anymore.\n */\n @Prop() charactersUntilSuggestions?: number = 0;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled?: boolean = false;\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() disableFilter?: boolean = 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 * The URL that processes the information submitted by the select. It overrides the action attribute of the select's form owner. Does nothing if there is no form owner.\n * This prop should only be used with searchable select and will only be applied if searchable is true.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded. This prop should only be used with searchable select and will only be applied if searchable is true.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form. This prop should only be used with searchable select and will only be applied if searchable is true.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted. This prop should only be used with searchable select and will only be applied if searchable is true.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the select's form owner.\n * This prop should only be used with searchable select and will only be applied if searchable is true.\n */\n @Prop() formtarget?: string;\n\n /**\n * If `true`, the select element will fill the width of the container. This prop should only be used with searchable select and will only be applied if searchable is true.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * If `true`, descriptions of options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeDescriptionsInSearch?: boolean = false;\n\n /**\n * If `true`, group titles of grouped options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeGroupTitlesInSearch?: boolean = false;\n\n /**\n * The label for the select.\n */\n @Prop() label!: string;\n\n /**\n * The message displayed when external loading times out.\n */\n @Prop() loadingErrorLabel?: string = \"Loading Error\";\n\n /**\n * The message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel?: string = \"Loading...\";\n\n /**\n * If `true`, multiple options can be selected.\n */\n @Prop() multiple?: boolean = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder?: string = \"Select an option\";\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * If `true`, the select will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * If `true`, a searchable variant of the select will be displayed which can be typed in to filter options.\n */\n @Prop() searchable?: boolean = false;\n\n /**\n * Whether the search string of the searchable select should match the start of or anywhere in the options. Only applies to built in filtering.\n */\n @Prop() searchMatchPosition?: IcSearchMatchPositions = \"anywhere\";\n\n /**\n * If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown.\n */\n @Prop() selectOnEnter?: boolean = false;\n\n /**\n * If `true`, a button which clears the select input when clicked will be displayed. The button will always appear on the searchable select.\n */\n @Prop() showClearButton?: boolean = false;\n\n /**\n * The size of the select.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * **[DEPRECATED]** This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * If using external filtering, set a timeout for when loading takes too long.\n */\n @Prop() timeout?: number;\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * If `true`, the loading state will be triggered when fetching options asynchronously.\n */\n @Prop({ mutable: true }) loading?: boolean = false;\n\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n newValue && this.triggerLoading();\n }\n\n /**\n * The possible selection options.\n */\n @Prop() options?: IcMenuOption[] = [];\n @State() filteredOptions: IcMenuOption[] = this.options;\n @State() uniqueOptions: IcMenuOption[] = this.options;\n\n @Watch(\"options\")\n watchOptionsHandler(): void {\n if (!this.hasTimedOut && this.options !== this.noOptions) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n if (this.isExternalFiltering()) {\n // When searchable select\n if (this.options.length > 0) {\n this.setOptionsValuesFromLabels();\n this.noOptions = null;\n this.uniqueOptions = this.deduplicateOptions(this.options);\n this.filteredOptions = this.uniqueOptions;\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n }\n this.updateSearchableSelectResultAriaLive();\n this.setDefaultValue();\n } else {\n this.setOptionsValuesFromLabels();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n this.filteredOptions = this.uniqueOptions;\n if (this.initialOptionsEmpty) {\n this.setDefaultValue();\n this.initialOptionsEmpty = false;\n }\n }\n } else {\n if (!this.searchable) this.options = this.noOptions;\n }\n }\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce?: number = 0;\n @State() currDebounce = this.debounce;\n\n @Watch(\"debounce\")\n debounceChangedHandler(newValue: number): void {\n this.updateOnChangeDebounce(newValue);\n }\n\n /**\n * The value of the select, reflected by the value of the currently selected option.\n * For the searchable variant, the value is also reflected by the user input.\n * For the multi-select variant, the value must be an array of option values.\n */\n @Prop({ mutable: true }) value?: string | string[];\n @State() initialValue = this.value;\n @State() inputValueToFilter = this.value as string;\n @State() currValue = this.value;\n\n @Watch(\"value\")\n valueChangedHandler(): void {\n if (this.value !== this.currValue) {\n if (this.value && this.multiple) {\n this.currValue = this.getValueSortedByOptions(this.value as string[]);\n this.updateMultiSelectedCountAriaLive();\n } else {\n this.currValue = this.value;\n }\n }\n\n if (this.searchable) {\n this.searchableSelectInputValue =\n this.getLabelFromValue(this.currValue as string) ||\n (this.currValue as string);\n }\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<IcValueEventDetail>;\n\n /**\n * Emitted when the clear button is clicked.\n */\n @Event() icClear!: 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<IcValueEventDetail>;\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<IcValueEventDetail>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, [\n ...IC_INHERITED_ARIA,\n \"tabindex\",\n \"title\",\n ]);\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.setOptionsValuesFromLabels();\n\n addFormResetListener(this.el, this.handleFormReset);\n\n if (!this.options.length) {\n this.initialOptionsEmpty = true;\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n } else {\n this.setDefaultValue();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Select\"\n );\n\n if (this.loading) {\n this.triggerLoading();\n }\n\n this.hiddenInputValue = this.searchable && (this.currValue as string);\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n }\n\n /**\n * Sets focus on the input box.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.customSelectElement) {\n this.customSelectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n private handleRetry = (ev: CustomEvent<IcValueEventDetail>) => {\n if (ev.detail.keyPressed) this.searchableSelectElement?.focus();\n this.blurredBecauseButtonPressed = true;\n this.retryButtonClick = true;\n this.hasSetDefaultValue = true;\n this.icRetryLoad.emit({ value: this.hiddenInputValue });\n };\n\n private updateOnChangeDebounce(newValue: number) {\n if (this.currDebounce !== newValue) {\n this.currDebounce = newValue;\n }\n }\n\n private emitIcChange = (value: string | string[] | null) => {\n if (!this.searchable) {\n // If \"Select all\" button clicked, replace value with new value (array of all option values)\n if (this.multiple && !Array.isArray(value) && value !== null) {\n this.handleMultipleSelectChange(value as string);\n } else {\n this.value = value;\n }\n }\n\n clearTimeout(this.debounceIcChange);\n this.debounceIcChange = window.setTimeout(() => {\n const valueToEmit = this.multiple ? this.value : value;\n this.icChange.emit({ value: valueToEmit });\n }, this.currDebounce);\n };\n\n private emitImmediateIcChange = (value: string) => {\n this.value = value;\n clearTimeout(this.debounceIcChange);\n this.icChange.emit({ value });\n };\n\n /**\n * Processes the provided array of IcMenuOptions, removing duplicates and reporting them with a console.warn\n * @param options array of IcMenuOptions\n * @returns a new options object, with all entries possessing a duplicate 'value' field removed\n */\n private deduplicateOptions = (options: IcMenuOption[]): IcMenuOption[] => {\n const uniqueValues: string[] = [];\n const dedupedOptions: IcMenuOption[] = [];\n let dedupedChildren: IcMenuOption[];\n\n options.forEach((option: IcMenuOption) => {\n if (option.children) {\n //If an option has children, we will loop through them\n dedupedChildren = [];\n option.children.forEach((child) => {\n if (uniqueValues.includes(child.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${child.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(child.value);\n dedupedChildren.push(child);\n }\n });\n // construct a modified option, inserting the deduplicated children alongside the original information\n const modifiedParent: IcMenuOption = {\n ...option,\n children: dedupedChildren,\n };\n dedupedOptions.push(modifiedParent);\n } else {\n // If an option does not have children, assess to see if it's value has been included already\n if (uniqueValues.includes(option.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${option.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(option.value);\n dedupedOptions.push(option);\n }\n }\n });\n return dedupedOptions;\n };\n\n /**\n * Loop through options array and for all options with no value, infer it from the label\n */\n private setOptionsValuesFromLabels = (): void => {\n if (this.options.length > 0 && this.options.map) {\n this.options.map((option) => {\n if (!option.value) {\n option.value = option.label;\n }\n });\n }\n };\n\n private setUngroupedOptions = (event: CustomEvent): void => {\n this.ungroupedOptions = event.detail.options;\n };\n\n private setTextColor = (): void => {\n if (this.nativeSelectElement.selectedIndex === 0) {\n this.nativeSelectElement.className = \"placeholder\";\n } else {\n this.nativeSelectElement.className = \"select-option-selected\";\n }\n };\n\n private setMenuChange = (open: boolean) => {\n if (this.open !== open) {\n this.open = open;\n }\n };\n\n private getLabelFromValue = (value: string): string | undefined => {\n return getLabelFromValue(value, this.uniqueOptions);\n };\n\n private getMultipleOptionsString = (selectedValues: string[]) => {\n const selectedLabels = selectedValues?.map((value) =>\n this.getLabelFromValue(value)\n );\n return selectedLabels?.join(\", \");\n };\n\n private getFilteredChildMenuOptions = (option: IcMenuOption) => {\n let children = option.children;\n\n if (this.searchable) {\n children = getFilteredMenuOptions(\n option.children,\n this.includeDescriptionsInSearch,\n this.searchableSelectInputValue,\n this.searchMatchPosition\n );\n } else {\n children = getFilteredMenuOptions(\n option.children,\n false,\n this.pressedCharacters,\n \"start\"\n );\n }\n\n const newOption = { ...option };\n newOption.children = children;\n return newOption;\n };\n\n // (For multi-select) get value array, i.e. selected option values, in order they appear in option list\n private getValueSortedByOptions = (value: string[]) => {\n const valueArray = value;\n const valuesFromAllOptions = this.ungroupedOptions.map(\n (option) => option.value\n );\n\n valueArray.sort(\n (a, b) =>\n valuesFromAllOptions.indexOf(a) - valuesFromAllOptions.indexOf(b)\n );\n\n return valueArray;\n };\n\n private handleNativeSelectChange = (): void => {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.emitImmediateIcChange(this.nativeSelectElement.value);\n this.setTextColor();\n };\n\n // Handle option select for when a custom input box and menu is rendered\n // (rather than native <select> - rendered when viewed on a mobile / tablet screen)\n private handleCustomSelectChange = (event: CustomEvent): void => {\n const value = event.detail.value;\n\n if (this.searchable && event.detail.label === this.emptyOptionListText) {\n this.searchableSelectElement.focus();\n return;\n }\n\n if (this.searchable) {\n this.value = value;\n this.searchableMenuItemSelected = true;\n\n // After editing the input, if selecting the same option as before, set the input value to label again\n if (this.value === this.currValue) {\n this.searchableSelectInputValue = this.getLabelFromValue(\n this.value as string\n );\n }\n\n this.inputValueToFilter = null;\n this.hiddenInputValue = this.getValueFromLabel(\n this.searchableSelectInputValue\n );\n }\n\n if (this.multiple && this.value?.includes(value)) {\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n }\n\n this.ariaActiveDescendant = event.detail.optionId;\n this.emitIcChange(value);\n };\n\n // Update selected options - adds / removes them, in order of option list\n // Create new array if value prop is undefined\n private handleMultipleSelectChange = (value: string) => {\n if (this.value) {\n let valueArray = (this.value as string[]).slice();\n\n if (this.value.includes(value)) {\n const valueIndex = valueArray.indexOf(value);\n valueArray.splice(valueIndex, 1);\n } else {\n valueArray.push(value);\n valueArray = this.getValueSortedByOptions(valueArray);\n }\n\n this.value = valueArray.length === 0 ? null : valueArray;\n } else {\n const valueArray = [];\n valueArray.push(value);\n this.value = valueArray;\n }\n };\n\n private handleSelectAllChange = (event: CustomEvent) => {\n const selectAllOptions = event.detail.select;\n const allEnabledOptions = this.ungroupedOptions.filter(\n (option) => !option.disabled\n );\n const allValues = allEnabledOptions.map((option) => option.value);\n let newValue: string[];\n\n if (selectAllOptions) {\n let unselectedValues;\n\n // Only emit icOptionSelect for all values that are newly selected\n if (this.value) {\n unselectedValues = allValues.filter(\n (value) => this.value && !(this.value as string[]).includes(value)\n );\n } else {\n unselectedValues = allValues;\n }\n\n unselectedValues.forEach((value) => this.icOptionSelect.emit({ value }));\n newValue = allValues;\n } else {\n // Only emit icOptionDeselect for values that were selected\n (this.value as string[]).forEach((value) =>\n this.icOptionDeselect.emit({ value })\n );\n newValue = null;\n }\n\n this.emitIcChange(newValue);\n };\n\n private handleMenuChange = (event: CustomEvent): void => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n\n this.searchable && this.handleFocusIndicatorDisplay();\n };\n\n // clears the debounce delay when navigating the menu with arrow keys etc\n // to prevent delay in change event, which should only occur when typing in input\n private handleMenuKeyPress = (ev: CustomEvent): void => {\n ev.cancelBubble = true;\n if (!this.multiple) {\n this.handleCharacterKeyDown(ev.detail.key);\n }\n };\n\n private handleFocusIndicatorDisplay = () => {\n const focusIndicator = this.el.shadowRoot.querySelector(\".focus-indicator\");\n\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n } else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n };\n\n private handleMouseDown = (event: Event): void => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n\n private isExternalFiltering = (): boolean =>\n this.searchable && this.disableFilter;\n\n private handleClick = (event: MouseEvent): void => {\n if (!this.open) {\n if (this.isExternalFiltering()) {\n this.menu.options = this.filteredOptions;\n } else if (\n !this.hasTimedOut &&\n !this.loading &&\n !this.noOptions?.length &&\n (!this.searchable || this.searchableMenuItemSelected)\n ) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n\n if (event.detail !== 0) {\n this.menu.handleClickOpen();\n }\n };\n\n private handleExpandIconMouseDown = (event: MouseEvent) => {\n if (!this.disabled) {\n event.preventDefault();\n this.searchableSelectElement.focus();\n this.handleClick(event);\n }\n };\n\n private handleClear = (event: Event): void => {\n event.stopPropagation();\n this.hasTimedOut = false;\n clearTimeout(this.timeoutTimer);\n this.noOptions = null;\n this.emitImmediateIcChange(null);\n this.icClear.emit();\n\n if (this.searchable) {\n this.searchableSelectElement.value = null;\n this.searchableSelectInputValue = null;\n this.filteredOptions = this.uniqueOptions;\n this.hiddenInputValue = null;\n this.searchableSelectElement.focus();\n } else {\n this.customSelectElement.focus();\n }\n };\n\n private handleCharacterKeyDown = (key: string) => {\n // Only close menu when space is pressed if not being used alongside character keys to quickly select options\n if (\n this.open &&\n key === \" \" &&\n this.pressedCharacters.length === 0 &&\n !this.hasTimedOut &&\n !this.loading\n ) {\n this.setMenuChange(false);\n }\n\n if (key.length === 1 && !this.searchable) {\n window.clearTimeout(this.characterKeyPressTimer);\n this.characterKeyPressTimer = window.setTimeout(\n () => (this.pressedCharacters = \"\"),\n 1000\n );\n\n if (!(key === \" \" && !this.pressedCharacters)) {\n this.pressedCharacters += key;\n this.handleFilter();\n\n if (!this.noOptions) {\n this.emitImmediateIcChange(this.filteredOptions[0].value);\n }\n }\n } else {\n this.pressedCharacters = \"\";\n }\n };\n\n private handleNativeSelectKeyDown = (event: KeyboardEvent) => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n this.handleCharacterKeyDown(event.key);\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n const isArrowKey = event.key === \"ArrowDown\" || event.key === \"ArrowUp\";\n\n if (!this.open) {\n if (this.isExternalFiltering() && (event.key === \"Enter\" || isArrowKey)) {\n this.menu.options = this.filteredOptions;\n } else {\n if (!this.hasTimedOut) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n }\n\n if (this.open && event.key === \"Enter\") {\n this.setMenuChange(false);\n } else {\n if (!(isArrowKey && this.noOptions !== null)) {\n if (!(event.key === \" \" && this.pressedCharacters.length > 0)) {\n // Keyboard events get passed onto ic-menu\n this.menu.handleKeyboardOpen(event);\n }\n if (!this.multiple) {\n this.handleCharacterKeyDown(event.key);\n }\n }\n }\n };\n\n private handleClearButtonFocus = (): void => {\n this.clearButtonFocused = true;\n };\n\n private handleClearButtonBlur = (ev: FocusEvent): void => {\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n if (\n !(\n this.searchableSelectElement &&\n ev.relatedTarget === this.searchableSelectElement\n ) &&\n !(retryButton && ev.relatedTarget === retryButton)\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n }\n this.clearButtonFocused = false;\n };\n\n private handleFilter = (): void => {\n const options = this.deduplicateOptions(\n this.searchable ? [...this.uniqueOptions] : this.ungroupedOptions\n );\n\n let isGrouped = false;\n let newFilteredOptions: IcMenuOption[] = [];\n\n options.map((option) => {\n if (option.children) isGrouped = true;\n });\n\n let menuOptionsFiltered: IcMenuOption[];\n\n if (this.searchable) {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n this.includeDescriptionsInSearch,\n this.inputValueToFilter,\n this.searchMatchPosition\n );\n this.searchableMenuItemSelected = false;\n } else {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n false,\n this.pressedCharacters,\n \"start\"\n );\n }\n\n if (\n !isGrouped &&\n menuOptionsFiltered[0]?.label !== this.emptyOptionListText\n ) {\n newFilteredOptions = menuOptionsFiltered;\n } else if (isGrouped) {\n options.map((option) => {\n if (this.includeGroupTitlesInSearch) {\n if (menuOptionsFiltered.indexOf(option) !== -1) {\n newFilteredOptions.push(option);\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n });\n }\n\n let noChildOptionsWhenFiltered = false;\n\n if (isGrouped) {\n noChildOptionsWhenFiltered = true;\n newFilteredOptions.map((option) => {\n if (option.children.length > 0) {\n noChildOptionsWhenFiltered = false;\n }\n });\n }\n\n if (newFilteredOptions.length > 0 && !noChildOptionsWhenFiltered) {\n this.noOptions = null;\n this.filteredOptions = newFilteredOptions;\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.filteredOptions = this.noOptions;\n }\n };\n\n /**\n * Put the select component into loading state.\n * Replace options with the loading message. If timeout is enabled, set the timeout and once passed, replace options with the loading error message\n */\n private triggerLoading = () => {\n this.hasTimedOut = false;\n this.noOptions = [{ label: this.loadingLabel, value: \"\", loading: true }];\n if (this.filteredOptions !== this.noOptions && this.searchable) {\n this.filteredOptions = this.noOptions;\n } else if (this.uniqueOptions !== this.noOptions && !this.searchable) {\n this.uniqueOptions = this.noOptions;\n }\n if (this.timeout) {\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n this.noOptions = [\n { label: this.loadingErrorLabel, value: \"\", timedOut: true },\n ];\n this.filteredOptions = this.noOptions;\n if (!this.searchable) this.uniqueOptions = this.noOptions;\n }, this.timeout);\n }\n };\n\n private getValueFromLabel = (label: string): string | undefined => {\n return this.uniqueOptions.find((option) => option.label === label)?.value;\n };\n\n private handleSearchableSelectInput = (event: Event): void => {\n this.searchableSelectInputValue = (event.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.searchableSelectInputValue });\n this.emitIcChange(this.searchableSelectInputValue);\n\n this.hiddenInputValue = this.searchableSelectInputValue;\n this.inputValueToFilter = this.searchableSelectInputValue;\n this.setMenuChange(true);\n\n if (!this.disableFilter) {\n this.handleFilter();\n this.debounceAriaLiveUpdate();\n }\n };\n\n private updateSearchableSelectResultAriaLive = (): void => {\n const searchableSelectResultsStatusEl = this.el.shadowRoot.querySelector(\n \".searchable-select-results-status\"\n ) as HTMLDivElement;\n\n if (searchableSelectResultsStatusEl) {\n if (this.noOptions !== null) {\n searchableSelectResultsStatusEl.innerText = this.emptyOptionListText;\n } else {\n searchableSelectResultsStatusEl.innerText = \"\";\n }\n }\n };\n\n private debounceAriaLiveUpdate() {\n clearTimeout(this.debounceAria);\n\n window.setTimeout(() => {\n this.updateSearchableSelectResultAriaLive();\n }, 800);\n }\n\n private updateMultiSelectedCountAriaLive = (): void => {\n const multiSelectSelectedCountEl = this.el.shadowRoot.querySelector(\n \".multi-select-selected-count\"\n ) as HTMLDivElement;\n\n const selectedCount = `${\n this.currValue?.length\n } of ${getOptionsWithoutGroupTitlesCount(this.options)} selected`;\n\n if (\n multiSelectSelectedCountEl &&\n multiSelectSelectedCountEl.innerText !== selectedCount\n ) {\n multiSelectSelectedCountEl.innerText = selectedCount;\n }\n };\n\n private getDefaultValue = (value: string): string | null =>\n this.getLabelFromValue(value) || value || null;\n\n private setDefaultValue = (): void => {\n if (!this.hasSetDefaultValue && this.currValue) {\n this.searchableSelectInputValue =\n this.searchable && this.getDefaultValue(this.currValue as string);\n\n this.initialValue = this.currValue;\n this.hasSetDefaultValue = true;\n }\n };\n\n private onFocus = (): void => {\n this.icFocus.emit();\n };\n\n private onBlur = (event: FocusEvent): void => {\n const target = event.relatedTarget as HTMLElement;\n if (\n target !== null &&\n target.tagName === \"UL\" &&\n target.className.includes(\"menu\")\n ) {\n return;\n }\n\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n const isSearchableAndNoFocusedInternalElements =\n this.searchable &&\n event.relatedTarget !== this.menu &&\n !Array.from(this.menu.querySelectorAll(\"[role='option']\")).includes(\n event.relatedTarget as Element\n ) &&\n !(this.clearButton && event.relatedTarget === this.clearButton) &&\n !(retryButton && event.relatedTarget === retryButton);\n\n if (isSearchableAndNoFocusedInternalElements) {\n if (!this.retryButtonClick) {\n this.setMenuChange(false);\n }\n this.handleFocusIndicatorDisplay();\n }\n\n this.retryButtonClick = false;\n this.icBlur.emit();\n };\n\n private onTimeoutBlur = (ev: CustomEvent) => {\n if (\n (ev.detail.ev as FocusEvent).relatedTarget !==\n this.searchableSelectElement &&\n !this.blurredBecauseButtonPressed\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n this.icBlur.emit();\n }\n this.blurredBecauseButtonPressed = false;\n };\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n if (this.searchable) {\n this.searchableSelectInputValue = this.getDefaultValue(\n this.value as string\n );\n this.hiddenInputValue = this.value as string;\n }\n };\n\n render() {\n const {\n size,\n small,\n disabled,\n fullWidth,\n helperText,\n hideLabel,\n label,\n menuId,\n multiple,\n name,\n options,\n placeholder,\n readonly,\n required,\n searchable,\n showClearButton,\n validationStatus,\n validationText,\n currValue,\n } = this;\n\n // HTML inputs only accept 'string' for their value\n // Does not cause errors when it is a multi-select - sets value correctly, to a comma-separated string\n renderHiddenInput(\n true,\n this.el,\n name,\n this.searchable ? this.hiddenInputValue : (currValue as string),\n disabled\n );\n\n const invalid =\n validationStatus === IcInformationStatus.Error ? \"true\" : \"false\";\n\n const describedBy = getInputDescribedByText(\n this.inputId,\n helperText !== \"\",\n hasValidationStatus(this.validationStatus, this.disabled)\n ).trim();\n\n const optionsSelectedCount = `${\n currValue?.length\n } of ${getOptionsWithoutGroupTitlesCount(this.options)} selected`;\n\n return (\n <Host\n class={{\n disabled: disabled,\n searchable: searchable,\n small: small,\n [size]: size !== \"default\",\n \"full-width\": fullWidth,\n }}\n onBlur={this.onBlur}\n >\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={this.inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n ></ic-input-label>\n )}\n <ic-input-component-container\n ref={(el: HTMLElement) => (this.anchorEl = el)}\n class={{ \"menu-open\": this.open }}\n small={small}\n size={size}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {readonly ? (\n <ic-typography>\n <p>\n {multiple\n ? this.getMultipleOptionsString(currValue as string[])\n : this.getLabelFromValue(currValue as string)}\n </p>\n </ic-typography>\n ) : isMobileOrTablet() && !multiple ? (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={this.inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onKeyDown={this.handleNativeSelectKeyDown}\n form={this.form}\n {...this.inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options.map((option) => {\n if (option.children) {\n return (\n <optgroup label={option.label}>\n {option.children.map((option) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === currValue}\n >\n {option.label}\n </option>\n ))}\n </optgroup>\n );\n } else {\n return (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === currValue}\n >\n {option.label}\n </option>\n );\n }\n })}\n </select>\n ) : searchable ? (\n <div class=\"searchable-select-container\">\n <input\n class={{\n \"select-input\": true,\n \"with-clear-button\": !!this.searchableSelectInputValue,\n }}\n role=\"combobox\"\n autocomplete=\"off\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={this.ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-invalid={invalid}\n aria-required={required ? \"true\" : \"false\"}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={this.inputId}\n value={this.searchableSelectInputValue}\n placeholder={placeholder}\n disabled={disabled}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n form={this.form}\n formaction={this.formaction}\n formenctype={this.formenctype}\n formmethod={this.formmethod}\n formnovalidate={this.formnovalidate}\n formtarget={this.formtarget}\n ></input>\n {this.searchableSelectInputValue &&\n (showClearButton || searchable) && (\n <div class=\"clear-button-container\">\n <ic-button\n id=\"clear-button\"\n ref={(el: HTMLIcButtonElement) =>\n (this.clearButton = el)\n }\n aria-label={\n this.searchableSelectInputValue && currValue === null\n ? \"Clear input\"\n : \"Clear selection\"\n }\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon\"\n appearance={\n this.clearButtonFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Dark\n }\n ></ic-button>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n onMouseDown={this.handleExpandIconMouseDown}\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"searchable-select-results-status\"\n ></div>\n </div>\n ) : (\n <div class=\"select-container\">\n <button\n class=\"select-input\"\n ref={(el) => (this.customSelectElement = el)}\n id={this.inputId}\n aria-label={`${label}, ${\n (multiple && currValue\n ? `${optionsSelectedCount}, ${this.getMultipleOptionsString(\n currValue as string[]\n )}`\n : this.getLabelFromValue(currValue as string)) ||\n placeholder\n }${required ? \", required\" : \"\"}`}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-haspopup=\"listbox\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-owns={menuId}\n aria-controls={menuId}\n disabled={disabled}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.handleClick}\n onMouseDown={this.handleMouseDown}\n onKeyDown={this.handleKeyDown}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n \"with-clear-button\": currValue && showClearButton,\n placeholder:\n !this.value || (multiple && this.value.length < 1),\n }}\n >\n <p>\n {(multiple\n ? this.getMultipleOptionsString(currValue as string[])\n : this.getLabelFromValue(currValue as string)) ||\n placeholder}\n </p>\n </ic-typography>\n <div class=\"select-input-end\">\n {currValue && showClearButton && (\n <div class=\"divider\"></div>\n )}\n <span\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {currValue && showClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear selection\"\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon\"\n appearance={\n this.clearButtonFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Dark\n }\n ></ic-button>\n )}\n </div>\n )}\n </ic-input-component-container>\n {(!isMobileOrTablet() || multiple) && (\n <ic-menu-with-multi\n class={{\n \"no-results\":\n this.loading ||\n this.hasTimedOut ||\n (this.noOptions !== null &&\n this.noOptions[0] &&\n this.noOptions[0].label === this.emptyOptionListText),\n }}\n ref={(el: HTMLIcMenuWithMultiElement) => (this.menu = el)}\n inputEl={\n searchable\n ? this.searchableSelectElement\n : this.customSelectElement\n }\n inputLabel={label}\n anchorEl={this.anchorEl}\n small={small}\n size={size}\n menuId={menuId}\n open={this.open}\n options={searchable ? this.filteredOptions : this.uniqueOptions}\n value={multiple ? (currValue as string[]) : (currValue as string)}\n fullWidth={fullWidth}\n selectOnEnter={this.selectOnEnter}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionSelect={this.handleCustomSelectChange}\n onMenuOptionSelectAll={this.handleSelectAllChange}\n onMenuKeyPress={this.handleMenuKeyPress}\n onUngroupedOptionsSet={this.setUngroupedOptions}\n onRetryButtonClicked={this.handleRetry}\n parentEl={this.el}\n onTimeoutBlur={this.onTimeoutBlur}\n activationType={\n this.searchable || multiple || this.selectOnEnter\n ? \"manual\"\n : \"automatic\"\n }\n closeOnSelect={!multiple}\n ></ic-menu-with-multi>\n )}\n {this.multiple && (\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"multi-select-selected-count\"\n ></div>\n )}\n {hasValidationStatus(this.validationStatus, this.disabled) && (\n <ic-input-validation\n class={{ \"menu-open\": this.open }}\n ariaLiveMode=\"polite\"\n status={validationStatus}\n message={validationText}\n for={this.inputId}\n ></ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as e,g as i}from"./p-8455d1bb.js";const a=`<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24">\n <path d="M9 3 5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"></path>\n</svg>`;const s=`<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" style="transform: rotate(-90deg);">\n <path d="M16.01 11H4v2h12.01v3L20 12l-3.99-4z"></path>\n</svg>`;const n=`<svg focusable="false" aria-hidden="true" viewBox="0 0 24 24" style="transform: rotate(90deg)">\n <path d="M16.01 11H4v2h12.01v3L20 12l-3.99-4z"></path>\n</svg>`;const r=':host{position:relative;display:block;height:100%;max-height:100%}.table-container{position:relative;height:calc(100% - var(--ic-space-xxxs))}.table-row-container{position:relative;height:100%;overflow:auto;transition:var(--ic-easing-transition-fast);overflow-anchor:none}:host([show-pagination="true"]) .table-row-container{height:calc(100% - 3.5625rem)}table{table-layout:fixed;border-spacing:0;width:100%}.table-row-container:focus{outline:none;box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-fast);z-index:1}:host([embedded="true"]) .table-container{border:var(--ic-border-light)}.column-header-sticky{position:sticky;top:0;z-index:1}.column-header-overlay{position:sticky;top:0;z-index:1;box-shadow:0 0.375rem var(--ic-space-xs) calc(var(--ic-space-xxs * -1))\n rgb(0 0 0 / 20%)}.row-header-sticky{position:sticky;left:0}.column-header,.table-row{box-sizing:border-box}.table-row-selected{background-color:var(--ic-table-row-selected) !important}.sort-button{margin-left:auto}.sort-button:hover{background-color:var(--ic-action-dark-bg-hover)}.sort-button:active{background-color:var(--ic-action-dark-bg-active)}.sort-button svg{color:var(--ic-architectural-black)}.sort-button-unsorted svg{color:var(--ic-color-tertiary-text)}.table-density-dense{padding:var(--ic-space-xxs) var(--ic-space-xs) !important}.text-dense{font-size:var(--ic-font-size-label)}.table-density-spacious{padding:0.625rem var(--ic-space-xs) !important}.text-spacious{font-size:1.125rem}.column-header-text{font-weight:var(--ic-font-weight-bold)}.column-header,.row-header{text-align:left;padding:var(--ic-space-xs);background-color:var(--ic-architectural-40);border-right:var(--ic-border-light);border-bottom:var(--ic-border-light)}.column-header:last-child{border-right:none}.scrollable .column-header:last-child{border-right:var(--ic-border-light) !important}:host([embedded="true"]) tr:last-child .table-cell,:host([embedded="true"]) tr:last-child .row-header{border-bottom:none}.column-header-alignment-left,.row-header-alignment-left,.cell-alignment-left{text-align:left !important}.column-header-alignment-right,.row-header-alignment-right,.cell-alignment-right{text-align:right !important}.column-header-alignment-center,.row-header-alignment-center,.cell-alignment-center{text-align:center !important}.table-row:nth-child(even){background-color:var(--ic-architectural-20)}.table-cell{padding:var(--ic-space-xs);border-bottom:solid var(--ic-architectural-100) var(--ic-space-1px)}.data-type-string{text-align:left;vertical-align:top}.data-type-number,.data-type-date{text-align:right;vertical-align:top}.cell-alignment-top{vertical-align:top}.cell-alignment-middle{vertical-align:middle}.cell-alignment-bottom{vertical-align:bottom}.cell-emphasis-low{color:var(--ic-color-secondary-text)}.cell-emphasis-high{font-weight:var(--ic-font-weight-bold)}.pagination-container{background-color:var(--ic-architectural-40);border-top:var(--ic-border-light)}.screen-reader-sort-text,.table-caption{position:absolute;left:-100rem}.table-cell,.column-header,.row-header{word-wrap:break-word;white-space:pre-wrap}@media screen and (min-width: 576px){.column-header-inner-container{display:flex;align-items:center}}';const o=class{constructor(i){t(this,i);this.SORT_ICONS={unsorted:a,ascending:s,descending:n};this.isObject=t=>typeof t==="object";this.notDefaultDensity=()=>this.density!=="default";this.getCellContent=(t,e)=>{switch(e){case"element":return undefined;case"date":return(t instanceof Date?t:new Date(t)).toLocaleDateString();default:return t}};this.getCellAlignment=(t,e)=>{if(this.isObject(t)&&Object.keys(t).includes("cellAlignment")){return this.getObjectValue(this.getObjectValue(t,"cellAlignment"),e)}};this.createCells=t=>{const i=Object.values(t);const a=Object.keys(t);let s;let n;const r=a.indexOf("header");if(r>-1){s=this.getObjectValue(i[r],"rowAlignment");n=this.getObjectValue(i[r],"emphasis")}return i.map(((t,i)=>{const{columnAlignment:r,dataType:o,emphasis:l}=this.columns[i];const h=e=>this.getObjectValue(t,e);return a[i]==="header"?e("th",{scope:"row",colSpan:h("colspan"),class:{["row-header"]:true,[`row-header-alignment-${h("cellAlignment")}`]:!!h("cellAlignment"),["row-header-sticky"]:this.stickyRowHeaders}},h("title")):e("td",{innerHTML:o==="element"?t:null,class:{["table-cell"]:true,[`table-density-${this.density}`]:this.notDefaultDensity(),[`data-type-${o}`]:true,[`cell-alignment-${(r===null||r===void 0?void 0:r.horizontal)||this.getCellAlignment(t,"horizontal")}`]:!!(r===null||r===void 0?void 0:r.horizontal)||!!this.getCellAlignment(t,"horizontal"),[`cell-alignment-${(r===null||r===void 0?void 0:r.vertical)||s||this.getCellAlignment(t,"vertical")}`]:!!(r===null||r===void 0?void 0:r.vertical)||!!s||!!this.getCellAlignment(t,"vertical")}},e("ic-typography",{variant:"body",class:{[`cell-emphasis-${this.isObject(t)&&h("emphasis")||l||n}`]:this.isObject(t)&&!!h("emphasis")||!!l||!!n,[`text-${this.density}`]:this.notDefaultDensity()}},this.isObject(t)&&o!=="date"?Object.keys(t).includes("href")?e("ic-link",{href:h("href")},h("data")):h("data"):this.getCellContent(t,o)))}))};this.createColumnHeaders=()=>this.columns.map((({cellAlignment:t,colspan:i,key:a,title:s})=>e("th",{scope:"col",class:{["column-header"]:true,[`column-header-alignment-${t}`]:!!t,[`table-density-${this.density}`]:this.notDefaultDensity()},colSpan:i},this.sortable?e("div",{class:"column-header-inner-container"},e("ic-typography",{variant:"body",class:{["column-header-text"]:true,[`text-${this.density}`]:this.notDefaultDensity()}},s),e("ic-button",{variant:"icon",id:`sort-button-${a}`,"aria-label":this.getSortButtonLabel(a),onClick:()=>this.sortRows(a),innerHTML:this.SORT_ICONS[this.sortedColumn===a?this.sortedColumnOrder:"unsorted"],class:{["sort-button"]:true,["sort-button-unsorted"]:this.sortedColumn!==a||this.sortedColumnOrder==="unsorted"}})):e("ic-typography",{variant:"body",class:{["column-header-text"]:true,[`text-${this.density}`]:this.notDefaultDensity()}},s))));this.createRows=()=>{const t=this.showPagination?this.data.slice(this.fromRow,this.toRow):this.data.slice();return t.sort(!this.sortable?undefined:this.getSortFunction()).map((t=>e("tr",{onClick:()=>this.selectedRow=this.selectedRow!==t&&t,class:{["table-row"]:true,["table-row-selected"]:this.selectedRow===t}},this.createCells(t))))};this.getObjectValue=(t,e)=>Object.values(t)[Object.keys(t).indexOf(e)];this.getSortButtonLabel=t=>{let e="";const i=t=>{const e=this.sortOptions.sortOrders;return e[(e.indexOf(t)+1)%e.length]};if(this.sortedColumn===t){const t=i(this.sortedColumnOrder);e=t!=="unsorted"?`Sort ${t}`:"Remove sort"}else{e=`Sort ${i("unsorted")}`}return e};this.getComparison=(t,e)=>{const i=t[this.sortedColumn];const a=e[this.sortedColumn];return this.columns.find((t=>t.key===this.sortedColumn)).dataType==="date"?new Date(i).valueOf()-new Date(a).valueOf():String(this.isObject(i)?Object.values(i)[0]:i).localeCompare(String(this.isObject(a)?Object.values(a)[0]:a),undefined,{numeric:true,sensitivity:"base"})};this.getSortFunction=()=>{switch(this.sortedColumnOrder){case"ascending":return(t,e)=>this.getComparison(t,e);case"descending":return(t,e)=>this.getComparison(e,t);default:return undefined}};this.sortRows=t=>{const e=this.el.shadowRoot.querySelector(`#sort-button-${t}`);const i=this.sortOptions.sortOrders;if(t!==this.sortedColumn){if(this.sortedColumn){const e=this.el.shadowRoot.querySelector(`#sort-button-${this.sortedColumn}`);e.setAttribute("aria-label",this.getSortButtonLabel(t))}this.sortedColumn=t;this.sortedColumnOrder="unsorted"}let a=i.indexOf(this.sortedColumnOrder)+1;if(a>i.length-1){a=0}this.sortedColumnOrder=i[a];e.setAttribute("aria-label",this.getSortButtonLabel(t))};this.updateScrollOffset=()=>{this.scrollOffset=this.el.shadowRoot.querySelector(".table-row-container").scrollTop};this.fromRow=0;this.previousRowsPerPage=undefined;this.rowsPerPage=undefined;this.scrollable=false;this.scrollOffset=0;this.selectedRow=undefined;this.sortedColumn=undefined;this.sortedColumnOrder=undefined;this.toRow=undefined;this.caption=undefined;this.columns=undefined;this.data=undefined;this.density="default";this.embedded=false;this.hideColumnHeaders=false;this.paginationOptions={itemsPerPage:[{label:"10",value:"10"},{label:"25",value:"25"},{label:"50",value:"50"}],type:"page",control:"simple",itemsPerPageControl:true,goToPageControl:true,alignment:"right"};this.showPagination=false;this.sortable=false;this.sortOptions={sortOrders:["unsorted","ascending","descending"],defaultColumn:""};this.stickyColumnHeaders=false;this.stickyRowHeaders=false}componentWillLoad(){this.rowsPerPage=Number(this.paginationOptions.itemsPerPage[0].value);this.previousRowsPerPage=this.rowsPerPage;this.toRow=this.rowsPerPage;this.sortedColumn=this.sortOptions.defaultColumn;this.sortedColumnOrder=this.sortOptions.sortOrders[0]}componentDidLoad(){const t=this.el.shadowRoot.querySelector("table");const e=this.el.shadowRoot.querySelector(".table-container");if((t===null||t===void 0?void 0:t.clientHeight)>(e===null||e===void 0?void 0:e.clientHeight)||(t===null||t===void 0?void 0:t.clientWidth)>(e===null||e===void 0?void 0:e.clientWidth)){this.scrollable=true}}handleItemsPerPageChange(t){this.previousRowsPerPage=this.rowsPerPage;this.rowsPerPage=t.detail.value}handlePageChange(t){this.fromRow=(t.detail.value-1)*this.rowsPerPage;this.toRow=this.fromRow+this.rowsPerPage;const e=this.el.shadowRoot.querySelector(".table-row-container");if(this.previousRowsPerPage===this.rowsPerPage){e.scrollTop=0}else if(this.previousRowsPerPage<this.rowsPerPage){e.scrollTop=this.scrollOffset;this.previousRowsPerPage=this.rowsPerPage}else{this.previousRowsPerPage=this.rowsPerPage}}clickListener(t){if(t.target!==this.el)this.selectedRow=undefined}render(){const{caption:t,createColumnHeaders:i,createRows:a,data:s,hideColumnHeaders:n,paginationOptions:r,scrollable:o,scrollOffset:l,showPagination:h,sortable:c,sortedColumnOrder:d,sortedColumn:u,stickyColumnHeaders:g,updateScrollOffset:b}=this;return e("div",{class:"table-container"},e("div",{class:{["table-row-container"]:true,scrollable:o},tabIndex:o?0:null,onScroll:b},e("table",null,e("caption",{class:"table-caption"},t),!n&&e("thead",{class:{["column-header-sticky"]:g,["column-header-overlay"]:g&&l!==0}},e("tr",null,i())),(s===null||s===void 0?void 0:s.length)>0&&e("tbody",null,a()))),h&&e("div",{class:"pagination-container"},e("ic-pagination-bar",{totalItems:s.length,paginationType:r.type,paginationControl:r.control,showItemsPerPageControl:r.itemsPerPageControl,showGoToPageControl:r.goToPageControl,itemsPerPageOptions:r.itemsPerPage,alignment:r.alignment})),c&&e("div",{class:"screen-reader-sort-text","aria-live":"polite"},d!=="unsorted"&&u?`${u} sorted ${d}`:"table unsorted"))}get el(){return i(this)}};o.style=r;export{o as ic_data_table};
2
- //# sourceMappingURL=p-e189f1d0.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icDataTableCss","DataTable","this","SORT_ICONS","unsorted","unsortedIcon","ascending","ascendingIcon","descending","descendingIcon","isObject","value","notDefaultDensity","density","getCellContent","cell","dataType","undefined","Date","toLocaleDateString","getCellAlignment","alignment","Object","keys","includes","getObjectValue","createCells","row","rowValues","values","rowKeys","rowAlignment","rowEmphasis","headerIndex","indexOf","map","index","columnAlignment","emphasis","columns","cellValue","key","h","scope","colSpan","class","stickyRowHeaders","innerHTML","horizontal","vertical","variant","href","createColumnHeaders","cellAlignment","colspan","title","sortable","id","getSortButtonLabel","onClick","sortRows","sortedColumn","sortedColumnOrder","createRows","data","showPagination","slice","fromRow","toRow","sort","getSortFunction","selectedRow","label","getNextSortOption","option","sortOrders","sortOptions","length","sortOption","getComparison","targetRow","comparisonRow","targetRowValue","comparisonRowValue","find","col","valueOf","String","localeCompare","numeric","sensitivity","a","b","column","sortButton","el","shadowRoot","querySelector","previousSortedButton","setAttribute","nextSortOrderIndex","updateScrollOffset","scrollOffset","scrollTop","itemsPerPage","type","control","itemsPerPageControl","goToPageControl","defaultColumn","componentWillLoad","rowsPerPage","Number","paginationOptions","previousRowsPerPage","componentDidLoad","tableElement","tableContainer","clientHeight","clientWidth","scrollable","handleItemsPerPageChange","ev","detail","handlePageChange","tableRowsContainer","clickListener","target","render","caption","hideColumnHeaders","stickyColumnHeaders","tabIndex","onScroll","totalItems","paginationType","paginationControl","showItemsPerPageControl","showGoToPageControl","itemsPerPageOptions"],"sources":["src/components/ic-data-table/ic-data-table.css?tag=ic-data-table&encapsulation=shadow","src/components/ic-data-table/ic-data-table.tsx"],"sourcesContent":[":host {\n position: relative;\n display: block;\n height: 100%;\n max-height: 100%;\n}\n\n.table-container {\n position: relative;\n height: calc(100% - var(--ic-space-xxxs));\n}\n\n.table-row-container {\n position: relative;\n height: 100%;\n overflow: auto;\n transition: var(--ic-easing-transition-fast);\n overflow-anchor: none;\n}\n\n:host([show-pagination=\"true\"]) .table-row-container {\n height: calc(100% - 3.5625rem);\n}\n\ntable {\n table-layout: fixed;\n border-spacing: 0;\n width: 100%;\n}\n\n.table-row-container:focus {\n outline: none;\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-fast);\n z-index: 1;\n}\n\n:host([embedded=\"true\"]) .table-container {\n border: var(--ic-border-light);\n}\n\n.column-header-sticky {\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.column-header-overlay {\n position: sticky;\n top: 0;\n z-index: 1;\n box-shadow: 0 0.375rem var(--ic-space-xs) calc(var(--ic-space-xxs * -1))\n rgb(0 0 0 / 20%);\n}\n\n.row-header-sticky {\n position: sticky;\n left: 0;\n}\n\n.column-header,\n.table-row {\n box-sizing: border-box;\n}\n\n.table-row-selected {\n background-color: var(--ic-table-row-selected) !important;\n}\n\n.sort-button {\n margin-left: auto;\n}\n\n.sort-button:hover {\n background-color: var(--ic-action-dark-bg-hover);\n}\n\n.sort-button:active {\n background-color: var(--ic-action-dark-bg-active);\n}\n\n.sort-button svg {\n color: var(--ic-architectural-black);\n}\n\n.sort-button-unsorted svg {\n color: var(--ic-color-tertiary-text);\n}\n\n.table-density-dense {\n padding: var(--ic-space-xxs) var(--ic-space-xs) !important;\n}\n\n.text-dense {\n font-size: var(--ic-font-size-label);\n}\n\n.table-density-spacious {\n padding: 0.625rem var(--ic-space-xs) !important;\n}\n\n.text-spacious {\n font-size: 1.125rem;\n}\n\n.column-header-text {\n font-weight: var(--ic-font-weight-bold);\n}\n\n.column-header,\n.row-header {\n text-align: left;\n padding: var(--ic-space-xs);\n background-color: var(--ic-architectural-40);\n border-right: var(--ic-border-light);\n border-bottom: var(--ic-border-light);\n}\n\n.column-header:last-child {\n border-right: none;\n}\n\n.scrollable .column-header:last-child {\n border-right: var(--ic-border-light) !important;\n}\n\n:host([embedded=\"true\"]) tr:last-child .table-cell,\n:host([embedded=\"true\"]) tr:last-child .row-header {\n border-bottom: none;\n}\n\n.column-header-alignment-left,\n.row-header-alignment-left,\n.cell-alignment-left {\n text-align: left !important;\n}\n\n.column-header-alignment-right,\n.row-header-alignment-right,\n.cell-alignment-right {\n text-align: right !important;\n}\n\n.column-header-alignment-center,\n.row-header-alignment-center,\n.cell-alignment-center {\n text-align: center !important;\n}\n\n.table-row:nth-child(even) {\n background-color: var(--ic-architectural-20);\n}\n\n.table-cell {\n padding: var(--ic-space-xs);\n border-bottom: solid var(--ic-architectural-100) var(--ic-space-1px);\n}\n\n.data-type-string {\n text-align: left;\n vertical-align: top;\n}\n\n.data-type-number,\n.data-type-date {\n text-align: right;\n vertical-align: top;\n}\n\n.cell-alignment-top {\n vertical-align: top;\n}\n\n.cell-alignment-middle {\n vertical-align: middle;\n}\n\n.cell-alignment-bottom {\n vertical-align: bottom;\n}\n\n.cell-emphasis-low {\n color: var(--ic-color-secondary-text);\n}\n\n.cell-emphasis-high {\n font-weight: var(--ic-font-weight-bold);\n}\n\n.pagination-container {\n background-color: var(--ic-architectural-40);\n border-top: var(--ic-border-light);\n}\n\n.screen-reader-sort-text,\n.table-caption {\n position: absolute;\n left: -100rem;\n}\n\n.table-cell,\n.column-header,\n.row-header {\n word-wrap: break-word;\n white-space: pre-wrap;\n}\n\n@media screen and (min-width: 576px) {\n .column-header-inner-container {\n display: flex;\n align-items: center;\n }\n}\n","import { Component, Element, h, Prop, State, Listen } from \"@stencil/core\";\nimport unsortedIcon from \"./assets/unsorted-icon.svg\";\nimport ascendingIcon from \"./assets/ascending-icon.svg\";\nimport descendingIcon from \"./assets/descending-icon.svg\";\nimport {\n IcDataTableColumnDataTypes,\n IcDataTableColumnObject,\n IcDataTableDensityOptions,\n IcDataTableSortOrderOptions,\n} from \"./ic-data-table.types\";\nimport {\n IcPaginationAlignmentOptions,\n IcPaginationControlTypes,\n IcPaginationTypes,\n} from \"../ic-pagination/ic-pagination.types\";\n\n@Component({\n tag: \"ic-data-table\",\n styleUrl: \"ic-data-table.css\",\n shadow: true,\n})\nexport class DataTable {\n private SORT_ICONS = {\n unsorted: unsortedIcon,\n ascending: ascendingIcon,\n descending: descendingIcon,\n };\n\n @Element() el: HTMLIcDataTableElement;\n\n @State() fromRow: number = 0;\n\n @State() previousRowsPerPage: number;\n\n @State() rowsPerPage: number;\n\n @State() scrollable: boolean = false;\n\n @State() scrollOffset: number = 0;\n\n @State() selectedRow: object;\n\n @State() sortedColumn: string;\n\n @State() sortedColumnOrder: IcDataTableSortOrderOptions;\n\n @State() toRow: number;\n\n /**\n * The title for the table only visible to screen readers.\n */\n @Prop() caption!: string;\n\n /**\n * The column headers for the table.\n */\n @Prop() columns!: IcDataTableColumnObject[];\n\n /**\n * The row content for the table.\n */\n @Prop() data: { [key: string]: any }[];\n\n /**\n * Set the density of the table including font and padding.\n */\n @Prop() density?: IcDataTableDensityOptions = \"default\";\n\n /**\n * Applies a border to the table container.\n */\n @Prop() embedded?: boolean = false;\n\n /**\n * If `true`, column headers will not be visible.\n */\n @Prop() hideColumnHeaders?: boolean = false;\n\n /**\n * Sets the props for the pagination bar.\n */\n @Prop() paginationOptions?: {\n itemsPerPage?: { label: string; value: string }[];\n type?: IcPaginationTypes;\n control?: IcPaginationControlTypes;\n itemsPerPageControl?: boolean;\n goToPageControl?: boolean;\n alignment?: IcPaginationAlignmentOptions;\n } = {\n itemsPerPage: [\n { label: \"10\", value: \"10\" },\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n ],\n type: \"page\",\n control: \"simple\",\n itemsPerPageControl: true,\n goToPageControl: true,\n alignment: \"right\",\n };\n\n /**\n * If `true`, adds a pagination bar to the bottom of the table.\n */\n @Prop() showPagination?: boolean = false;\n\n /**\n * If `true`, allows table columns to be sorted using applied sort buttons.\n */\n @Prop() sortable?: boolean = false;\n\n /**\n * Sets the order columns will be sorted in and allows for 'default' sorts to be added.\n */\n @Prop() sortOptions?: {\n sortOrders: IcDataTableSortOrderOptions[];\n defaultColumn?: string;\n } = {\n sortOrders: [\"unsorted\", \"ascending\", \"descending\"],\n defaultColumn: \"\",\n };\n\n /**\n * If `true`, column headers will remain at the top of the table when scrolling vertically.\n */\n @Prop() stickyColumnHeaders?: boolean = false;\n\n /**\n * If `true`, row headers will remain to the left when scrolling horizontally.\n */\n @Prop() stickyRowHeaders?: boolean = false;\n\n componentWillLoad(): void {\n this.rowsPerPage = Number(this.paginationOptions.itemsPerPage[0].value);\n this.previousRowsPerPage = this.rowsPerPage;\n this.toRow = this.rowsPerPage;\n this.sortedColumn = this.sortOptions.defaultColumn;\n this.sortedColumnOrder = this.sortOptions.sortOrders[0];\n }\n\n componentDidLoad(): void {\n const tableElement = this.el.shadowRoot.querySelector(\"table\");\n const tableContainer = this.el.shadowRoot.querySelector(\".table-container\");\n if (\n tableElement?.clientHeight > tableContainer?.clientHeight ||\n tableElement?.clientWidth > tableContainer?.clientWidth\n ) {\n this.scrollable = true;\n }\n }\n\n @Listen(\"icItemsPerPageChange\")\n handleItemsPerPageChange(ev: CustomEvent): void {\n this.previousRowsPerPage = this.rowsPerPage;\n this.rowsPerPage = ev.detail.value;\n }\n\n @Listen(\"icPageChange\")\n handlePageChange(ev: CustomEvent): void {\n this.fromRow = (ev.detail.value - 1) * this.rowsPerPage;\n this.toRow = this.fromRow + this.rowsPerPage;\n const tableRowsContainer = this.el.shadowRoot.querySelector(\n \".table-row-container\"\n );\n if (this.previousRowsPerPage === this.rowsPerPage) {\n tableRowsContainer.scrollTop = 0;\n } else if (this.previousRowsPerPage < this.rowsPerPage) {\n tableRowsContainer.scrollTop = this.scrollOffset;\n this.previousRowsPerPage = this.rowsPerPage;\n } else {\n this.previousRowsPerPage = this.rowsPerPage;\n }\n }\n\n @Listen(\"click\", { target: \"window\" })\n clickListener(ev: MouseEvent): void {\n if (ev.target !== this.el) this.selectedRow = undefined;\n }\n\n private isObject = (value: any) => typeof value === \"object\";\n\n private notDefaultDensity = () => this.density !== \"default\";\n\n private getCellContent = (\n cell: any,\n dataType: IcDataTableColumnDataTypes\n ): any => {\n switch (dataType) {\n case \"element\":\n return undefined;\n case \"date\":\n return (\n cell instanceof Date ? cell : new Date(cell)\n ).toLocaleDateString();\n default:\n return cell;\n }\n };\n\n private getCellAlignment = (\n cell: any,\n alignment: \"horizontal\" | \"vertical\"\n ) => {\n if (this.isObject(cell) && Object.keys(cell).includes(\"cellAlignment\")) {\n return this.getObjectValue(\n this.getObjectValue(cell, \"cellAlignment\"),\n alignment\n );\n }\n };\n\n private createCells = (row: object) => {\n const rowValues = Object.values(row);\n const rowKeys = Object.keys(row);\n let rowAlignment: string;\n let rowEmphasis: string;\n const headerIndex = rowKeys.indexOf(\"header\");\n if (headerIndex > -1) {\n rowAlignment = this.getObjectValue(\n rowValues[headerIndex],\n \"rowAlignment\"\n );\n rowEmphasis = this.getObjectValue(rowValues[headerIndex], \"emphasis\");\n }\n return rowValues.map((cell, index) => {\n const { columnAlignment, dataType, emphasis } = this.columns[index];\n const cellValue = (key: string) => this.getObjectValue(cell, key);\n\n return rowKeys[index] === \"header\" ? (\n <th\n scope=\"row\"\n colSpan={cellValue(\"colspan\")}\n class={{\n [\"row-header\"]: true,\n [`row-header-alignment-${cellValue(\"cellAlignment\")}`]:\n !!cellValue(\"cellAlignment\"),\n [\"row-header-sticky\"]: this.stickyRowHeaders,\n }}\n >\n {cellValue(\"title\")}\n </th>\n ) : (\n <td\n innerHTML={dataType === \"element\" ? (cell as string) : null}\n class={{\n [\"table-cell\"]: true,\n [`table-density-${this.density}`]: this.notDefaultDensity(),\n [`data-type-${dataType}`]: true,\n [`cell-alignment-${\n columnAlignment?.horizontal ||\n this.getCellAlignment(cell, \"horizontal\")\n }`]:\n !!columnAlignment?.horizontal ||\n !!this.getCellAlignment(cell, \"horizontal\"),\n [`cell-alignment-${\n columnAlignment?.vertical ||\n rowAlignment ||\n this.getCellAlignment(cell, \"vertical\")\n }`]:\n !!columnAlignment?.vertical ||\n !!rowAlignment ||\n !!this.getCellAlignment(cell, \"vertical\"),\n }}\n >\n <ic-typography\n variant=\"body\"\n class={{\n [`cell-emphasis-${\n (this.isObject(cell) && cellValue(\"emphasis\")) ||\n emphasis ||\n rowEmphasis\n }`]:\n (this.isObject(cell) && !!cellValue(\"emphasis\")) ||\n !!emphasis ||\n !!rowEmphasis,\n [`text-${this.density}`]: this.notDefaultDensity(),\n }}\n >\n {this.isObject(cell) && dataType !== \"date\" ? (\n Object.keys(cell).includes(\"href\") ? (\n <ic-link href={cellValue(\"href\")}>{cellValue(\"data\")}</ic-link>\n ) : (\n cellValue(\"data\")\n )\n ) : (\n this.getCellContent(cell, dataType)\n )}\n </ic-typography>\n </td>\n );\n });\n };\n\n private createColumnHeaders = () => {\n return this.columns.map(({ cellAlignment, colspan, key, title }) => (\n <th\n scope=\"col\"\n class={{\n [\"column-header\"]: true,\n [`column-header-alignment-${cellAlignment}`]: !!cellAlignment,\n [`table-density-${this.density}`]: this.notDefaultDensity(),\n }}\n colSpan={colspan}\n >\n {this.sortable ? (\n <div class=\"column-header-inner-container\">\n <ic-typography\n variant=\"body\"\n class={{\n [\"column-header-text\"]: true,\n [`text-${this.density}`]: this.notDefaultDensity(),\n }}\n >\n {title}\n </ic-typography>\n <ic-button\n variant=\"icon\"\n id={`sort-button-${key}`}\n aria-label={this.getSortButtonLabel(key)}\n // eslint-disable-next-line react/jsx-no-bind\n onClick={() => this.sortRows(key)}\n innerHTML={\n this.SORT_ICONS[\n this.sortedColumn === key\n ? this.sortedColumnOrder\n : \"unsorted\"\n ]\n }\n class={{\n [\"sort-button\"]: true,\n [\"sort-button-unsorted\"]:\n this.sortedColumn !== key ||\n this.sortedColumnOrder === \"unsorted\",\n }}\n ></ic-button>\n </div>\n ) : (\n <ic-typography\n variant=\"body\"\n class={{\n [\"column-header-text\"]: true,\n [`text-${this.density}`]: this.notDefaultDensity(),\n }}\n >\n {title}\n </ic-typography>\n )}\n </th>\n ));\n };\n\n private createRows = () => {\n const data = this.showPagination\n ? this.data.slice(this.fromRow, this.toRow)\n : this.data.slice();\n return data\n .sort(!this.sortable ? undefined : this.getSortFunction())\n .map((row) => (\n <tr\n onClick={() => (this.selectedRow = this.selectedRow !== row && row)}\n class={{\n [\"table-row\"]: true,\n [\"table-row-selected\"]: this.selectedRow === row,\n }}\n >\n {this.createCells(row)}\n </tr>\n ));\n };\n\n private getObjectValue = (cell: object, key: string) => {\n return Object.values(cell)[Object.keys(cell).indexOf(key)];\n };\n\n private getSortButtonLabel = (key: string) => {\n let label = \"\";\n const getNextSortOption = (option: IcDataTableSortOrderOptions) => {\n const sortOrders = this.sortOptions.sortOrders;\n return sortOrders[(sortOrders.indexOf(option) + 1) % sortOrders.length];\n };\n\n if (this.sortedColumn === key) {\n const sortOption = getNextSortOption(this.sortedColumnOrder);\n label = sortOption !== \"unsorted\" ? `Sort ${sortOption}` : \"Remove sort\";\n } else {\n label = `Sort ${getNextSortOption(\"unsorted\")}`;\n }\n\n return label;\n };\n\n private getComparison = (targetRow: any, comparisonRow: any): number => {\n const targetRowValue = targetRow[this.sortedColumn];\n const comparisonRowValue = comparisonRow[this.sortedColumn];\n return this.columns.find((col) => col.key === this.sortedColumn)\n .dataType === \"date\"\n ? new Date(targetRowValue).valueOf() -\n new Date(comparisonRowValue).valueOf()\n : String(\n this.isObject(targetRowValue)\n ? Object.values(targetRowValue)[0]\n : targetRowValue\n ).localeCompare(\n String(\n this.isObject(comparisonRowValue)\n ? Object.values(comparisonRowValue)[0]\n : comparisonRowValue\n ),\n undefined,\n { numeric: true, sensitivity: \"base\" }\n );\n };\n\n private getSortFunction = () => {\n switch (this.sortedColumnOrder) {\n case \"ascending\":\n return (a: any, b: any) => this.getComparison(a, b);\n case \"descending\":\n return (a: any, b: any) => this.getComparison(b, a);\n default:\n return undefined;\n }\n };\n\n private sortRows = (column: string) => {\n const sortButton = this.el.shadowRoot.querySelector(\n `#sort-button-${column}`\n ) as HTMLIcButtonElement;\n\n const sortOrders = this.sortOptions.sortOrders;\n\n if (column !== this.sortedColumn) {\n if (this.sortedColumn) {\n const previousSortedButton = this.el.shadowRoot.querySelector(\n `#sort-button-${this.sortedColumn}`\n ) as HTMLIcButtonElement;\n previousSortedButton.setAttribute(\n \"aria-label\",\n this.getSortButtonLabel(column)\n ); // Passing through unsorted column returns correct label for newly unsorted column\n }\n this.sortedColumn = column;\n this.sortedColumnOrder = \"unsorted\";\n }\n\n let nextSortOrderIndex = sortOrders.indexOf(this.sortedColumnOrder) + 1;\n\n if (nextSortOrderIndex > sortOrders.length - 1) {\n nextSortOrderIndex = 0;\n }\n\n this.sortedColumnOrder = sortOrders[nextSortOrderIndex];\n\n sortButton.setAttribute(\"aria-label\", this.getSortButtonLabel(column));\n };\n\n private updateScrollOffset = () => {\n this.scrollOffset = this.el.shadowRoot.querySelector(\n \".table-row-container\"\n ).scrollTop;\n };\n\n render() {\n const {\n caption,\n createColumnHeaders,\n createRows,\n data,\n hideColumnHeaders,\n paginationOptions,\n scrollable,\n scrollOffset,\n showPagination,\n sortable,\n sortedColumnOrder,\n sortedColumn,\n stickyColumnHeaders,\n updateScrollOffset,\n } = this;\n\n return (\n <div class=\"table-container\">\n <div\n class={{\n [\"table-row-container\"]: true,\n scrollable,\n }}\n tabIndex={scrollable ? 0 : null}\n onScroll={updateScrollOffset}\n >\n <table>\n <caption class=\"table-caption\">{caption}</caption>\n {!hideColumnHeaders && (\n <thead\n class={{\n [\"column-header-sticky\"]: stickyColumnHeaders,\n [\"column-header-overlay\"]:\n stickyColumnHeaders && scrollOffset !== 0,\n }}\n >\n <tr>{createColumnHeaders()}</tr>\n </thead>\n )}\n {data?.length > 0 && <tbody>{createRows()}</tbody>}\n </table>\n </div>\n {showPagination && (\n <div class=\"pagination-container\">\n <ic-pagination-bar\n totalItems={data.length}\n paginationType={paginationOptions.type}\n paginationControl={paginationOptions.control}\n showItemsPerPageControl={paginationOptions.itemsPerPageControl}\n showGoToPageControl={paginationOptions.goToPageControl}\n itemsPerPageOptions={paginationOptions.itemsPerPage}\n alignment={paginationOptions.alignment}\n ></ic-pagination-bar>\n </div>\n )}\n {sortable && (\n <div class=\"screen-reader-sort-text\" aria-live=\"polite\">\n {sortedColumnOrder !== \"unsorted\" && sortedColumn\n ? `${sortedColumn} sorted ${sortedColumnOrder}`\n : \"table unsorted\"}\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as o,H as i,g as r}from"./p-8455d1bb.js";import{e as n,I as a,u as s,f as l,i as c,v as d}from"./p-9caf19eb.js";import{I as p}from"./p-fd186591.js";const m='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;--footer-compliance-padding:1rem 0}:host(.footer-sparse){--footer-links-padding:1.5rem 0;--footer-logo-margin-bottom:var(--ic-space-lg);--footer-link-inner-flex-direction:row}:host(.footer-small){--footer-links-padding:0 0;--footer-logo-margin-bottom:var(--ic-space-md);--footer-link-inner-flex-direction:column}:host(.footer-light){--footer-theme-secondary:var(--ic-theme-secondary);--footer-theme-tertiary:var(--ic-theme-tertiary);--footer-keyline:var(--ic-keyline-lighten)}:host(.footer-dark){--footer-theme-secondary:var(--ic-theme-secondary-light);--footer-theme-tertiary:var(--ic-theme-tertiary-light);--footer-keyline:var(--ic-keyline-darken)}:host(.footer-small.footer-ungrouped){--footer-links-padding:var(--ic-space-md) 0 0 0}footer{display:flex;flex-direction:column;width:100%}.footer-description{background-color:var(--footer-theme-secondary);color:var(--ic-theme-text);border-bottom:var(--footer-keyline)}.footer-description-inner{padding:1rem 0}.footer-links{padding:var(--footer-links-padding);background-color:var(--footer-theme-secondary);color:var(--ic-theme-text)}.footer-links-inner{display:flex;flex-direction:var(--footer-link-inner-flex-direction)}.footer-compliance{background-color:var(--footer-theme-tertiary);color:var(--ic-theme-text)}.footer-compliance-inner{padding:var(--footer-compliance-padding)}.footer-logo{margin-bottom:var(--footer-logo-margin-bottom);display:flex;gap:var(--ic-space-xxl)}.footer-logo>::slotted(){margin-right:var(--ic-space-md)}.footer-caption{margin-bottom:var(--ic-space-md)}.classification-spacing{margin-bottom:var(--ic-space-lg)}@media (forced-colors: active){footer{border-top:var(--ic-hc-border)}}';const f=class{constructor(o){e(this,o);this.footerResized=t(this,"footerResized",7);this.resizeObserver=null;this.resizeObserverCallback=e=>{if(e!==this.deviceSize){this.deviceSize=e}this.footerResized.emit()};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{const e=n();this.resizeObserverCallback(e)}));this.resizeObserver.observe(this.footerEl)};this.deviceSize=a.XL;this.foregroundColor=s();this.aligned="left";this.breakpoint="medium";this.caption=undefined;this.copyright=true;this.description=undefined;this.groupLinks=false}disconnectedCallback(){if(this.resizeObserver!==null){this.resizeObserver.disconnect()}}componentWillLoad(){this.deviceSize=n()}componentDidLoad(){l(this.runResizeObserver)}themeChangeHandler(e){const t=e.detail;this.foregroundColor=t.mode}isSmall(){const e=this.breakpoint;return e==="extra small"?this.deviceSize<a.XS:e==="small"?this.deviceSize<a.S:e==="medium"?this.deviceSize<a.M:e==="large"?this.deviceSize<a.L:e==="extra large"?this.deviceSize<a.XL:false}render(){const{aligned:e,caption:t,copyright:r,description:n,groupLinks:s,foregroundColor:l}=this;const m=this.isSmall();return o(i,{class:{footer:true,[`footer-${m?"small":"sparse"}`]:true,[`footer-${s?"grouped":"ungrouped"}`]:true,[`footer-${l}`]:true,[p.Dark]:l===p.Dark,[p.Light]:l===p.Light}},o("footer",{ref:e=>this.footerEl=e},n&&o("div",{class:"footer-description"},o("ic-section-container",{aligned:e,fullHeight:true},o("div",{class:"footer-description-inner"},o("ic-typography",{variant:"body"},o("slot",{name:"description"},n))))),c(this.el,"link")&&o("div",{class:"footer-links"},s&&m?o("div",{class:"footer-links-inner"},o("slot",{name:"link"})):o("ic-section-container",{fullHeight:true,aligned:e},o("div",{class:"footer-links-inner"},o("slot",{name:"link"})))),o("div",{class:"footer-compliance"},o("ic-section-container",{aligned:e,fullHeight:true},o("div",{class:"footer-compliance-inner"},c(this.el,"logo")&&o("div",{class:"footer-logo"},o("slot",{name:"logo"})),(c(this.el,"caption")||t)&&o("div",{class:"footer-caption"},o("ic-typography",{variant:this.deviceSize<=a.M?"caption":"body"},o("slot",{name:"caption"},t))),r&&o("div",{class:{["footer-copyright"]:true,["classification-spacing"]:d()}},o("ic-typography",{variant:this.deviceSize<=a.M?"caption-uppercase":"label-uppercase"},"© Crown Copyright")))))))}get el(){return r(this)}};f.style=m;export{f as ic_footer};
2
- //# sourceMappingURL=p-e3997d60.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icFooterCss","Footer","constructor","hostRef","this","resizeObserver","resizeObserverCallback","currSize","deviceSize","footerResized","emit","runResizeObserver","ResizeObserver","getCurrentDeviceSize","observe","footerEl","IC_DEVICE_SIZES","XL","foregroundColor","getThemeForegroundColor","aligned","breakpoint","caption","undefined","copyright","description","groupLinks","disconnectedCallback","disconnect","componentWillLoad","componentDidLoad","checkResizeObserver","themeChangeHandler","ev","theme","detail","mode","isSmall","bp","XS","S","M","L","render","small","h","Host","class","footer","IcThemeForegroundEnum","Dark","Light","ref","fullHeight","variant","name","isSlotUsed","el","hasClassificationBanner"],"sources":["../web-components/dist/collection/components/ic-footer/ic-footer.css?tag=ic-footer&encapsulation=shadow","../web-components/dist/collection/components/ic-footer/ic-footer.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n:host {\n display: block;\n\n --footer-compliance-padding: 1rem 0;\n}\n\n:host(.footer-sparse) {\n --footer-links-padding: 1.5rem 0;\n --footer-logo-margin-bottom: var(--ic-space-lg);\n --footer-link-inner-flex-direction: row;\n}\n\n:host(.footer-small) {\n --footer-links-padding: 0 0;\n --footer-logo-margin-bottom: var(--ic-space-md);\n --footer-link-inner-flex-direction: column;\n}\n\n:host(.footer-light) {\n --footer-theme-secondary: var(--ic-theme-secondary);\n --footer-theme-tertiary: var(--ic-theme-tertiary);\n --footer-keyline: var(--ic-keyline-lighten);\n}\n\n:host(.footer-dark) {\n --footer-theme-secondary: var(--ic-theme-secondary-light);\n --footer-theme-tertiary: var(--ic-theme-tertiary-light);\n --footer-keyline: var(--ic-keyline-darken);\n}\n\n:host(.footer-small.footer-ungrouped) {\n --footer-links-padding: var(--ic-space-md) 0 0 0;\n}\n\n/* Main inner footer element */\nfooter {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n/* Description */\n\n.footer-description {\n background-color: var(--footer-theme-secondary);\n color: var(--ic-theme-text);\n border-bottom: var(--footer-keyline);\n}\n\n.footer-description-inner {\n padding: 1rem 0;\n}\n\n/* Links */\n\n.footer-links {\n padding: var(--footer-links-padding);\n background-color: var(--footer-theme-secondary);\n color: var(--ic-theme-text);\n}\n\n.footer-links-inner {\n display: flex;\n flex-direction: var(--footer-link-inner-flex-direction);\n}\n\n/* Compliance */\n\n.footer-compliance {\n background-color: var(--footer-theme-tertiary);\n color: var(--ic-theme-text);\n}\n\n.footer-compliance-inner {\n padding: var(--footer-compliance-padding);\n}\n\n.footer-logo {\n margin-bottom: var(--footer-logo-margin-bottom);\n display: flex;\n gap: var(--ic-space-xxl);\n}\n\n.footer-logo > ::slotted() {\n margin-right: var(--ic-space-md);\n}\n\n.footer-caption {\n margin-bottom: var(--ic-space-md);\n}\n\n.classification-spacing {\n margin-bottom: var(--ic-space-lg);\n}\n\n@media (forced-colors: active) {\n footer {\n border-top: var(--ic-hc-border);\n }\n}\n","import { h, Host, } from \"@stencil/core\";\nimport { IC_DEVICE_SIZES } from \"../../utils/constants\";\nimport { getCurrentDeviceSize, getThemeForegroundColor, checkResizeObserver, hasClassificationBanner, isSlotUsed, } from \"../../utils/helpers\";\nimport { IcThemeForegroundEnum, } from \"../../utils/types\";\n/**\n * @slot description - Content will be rendered at the top of the footer.\n * @slot link - Content will be rendered between description and logos.\n * @slot logo - Content will be rendered underneath footer links.\n * @slot caption - Content will be rendered above Crown Copyright.\n */\nexport class Footer {\n constructor() {\n this.resizeObserver = null;\n this.resizeObserverCallback = (currSize) => {\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n }\n this.footerResized.emit();\n };\n this.runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.resizeObserverCallback(currSize);\n });\n this.resizeObserver.observe(this.footerEl);\n };\n this.deviceSize = IC_DEVICE_SIZES.XL;\n this.foregroundColor = getThemeForegroundColor();\n this.aligned = \"left\";\n this.breakpoint = \"medium\";\n this.caption = undefined;\n this.copyright = true;\n this.description = undefined;\n this.groupLinks = false;\n }\n disconnectedCallback() {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n componentWillLoad() {\n this.deviceSize = getCurrentDeviceSize();\n }\n componentDidLoad() {\n checkResizeObserver(this.runResizeObserver);\n }\n themeChangeHandler(ev) {\n const theme = ev.detail;\n this.foregroundColor = theme.mode;\n }\n isSmall() {\n const bp = this.breakpoint;\n return bp === \"extra small\"\n ? this.deviceSize < IC_DEVICE_SIZES.XS\n : bp === \"small\"\n ? this.deviceSize < IC_DEVICE_SIZES.S\n : bp === \"medium\"\n ? this.deviceSize < IC_DEVICE_SIZES.M\n : bp === \"large\"\n ? this.deviceSize < IC_DEVICE_SIZES.L\n : bp === \"extra large\"\n ? this.deviceSize < IC_DEVICE_SIZES.XL\n : false;\n }\n render() {\n const { aligned, caption, copyright, description, groupLinks, foregroundColor, } = this;\n const small = this.isSmall();\n return (h(Host, { class: {\n footer: true,\n [`footer-${small ? \"small\" : \"sparse\"}`]: true,\n [`footer-${groupLinks ? \"grouped\" : \"ungrouped\"}`]: true,\n [`footer-${foregroundColor}`]: true,\n // Slots will be able to infer their own color\n [IcThemeForegroundEnum.Dark]: foregroundColor === IcThemeForegroundEnum.Dark,\n [IcThemeForegroundEnum.Light]: foregroundColor === IcThemeForegroundEnum.Light,\n } }, h(\"footer\", { ref: (footerEl) => (this.footerEl = footerEl) }, description && (h(\"div\", { class: \"footer-description\" }, h(\"ic-section-container\", { aligned: aligned, fullHeight: true }, h(\"div\", { class: \"footer-description-inner\" }, h(\"ic-typography\", { variant: \"body\" }, h(\"slot\", { name: \"description\" }, description)))))), isSlotUsed(this.el, \"link\") && (h(\"div\", { class: \"footer-links\" }, groupLinks && small ? (h(\"div\", { class: \"footer-links-inner\" }, h(\"slot\", { name: \"link\" }))) : (h(\"ic-section-container\", { fullHeight: true, aligned: aligned }, h(\"div\", { class: \"footer-links-inner\" }, h(\"slot\", { name: \"link\" })))))), h(\"div\", { class: \"footer-compliance\" }, h(\"ic-section-container\", { aligned: aligned, fullHeight: true }, h(\"div\", { class: \"footer-compliance-inner\" }, isSlotUsed(this.el, \"logo\") && (h(\"div\", { class: \"footer-logo\" }, h(\"slot\", { name: \"logo\" }))), (isSlotUsed(this.el, \"caption\") || caption) && (h(\"div\", { class: \"footer-caption\" }, h(\"ic-typography\", { variant: this.deviceSize <= IC_DEVICE_SIZES.M\n ? \"caption\"\n : \"body\" }, h(\"slot\", { name: \"caption\" }, caption)))), copyright && (h(\"div\", { class: {\n [\"footer-copyright\"]: true,\n [\"classification-spacing\"]: hasClassificationBanner(),\n } }, h(\"ic-typography\", { variant: this.deviceSize <= IC_DEVICE_SIZES.M\n ? \"caption-uppercase\"\n : \"label-uppercase\" }, \"\\u00A9 Crown Copyright\")))))))));\n }\n static get is() { return \"ic-footer\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-footer.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-footer.css\"]\n };\n }\n static get properties() {\n return {\n \"aligned\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcAlignment\",\n \"resolved\": \"\\\"center\\\" | \\\"full-width\\\" | \\\"left\\\"\",\n \"references\": {\n \"IcAlignment\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcAlignment\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The alignment of the section containers used within the footer.\"\n },\n \"attribute\": \"aligned\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"left\\\"\"\n },\n \"breakpoint\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcFooterBreakpoints\",\n \"resolved\": \"\\\"extra large\\\" | \\\"extra small\\\" | \\\"large\\\" | \\\"medium\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcFooterBreakpoints\": {\n \"location\": \"import\",\n \"path\": \"./ic-footer.types\",\n \"id\": \"src/components/ic-footer/ic-footer.types.tsx::IcFooterBreakpoints\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The screen size breakpoint at which to switch to the small layout.\"\n },\n \"attribute\": \"breakpoint\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"medium\\\"\"\n },\n \"caption\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The caption displayed at the bottom of the footer.\"\n },\n \"attribute\": \"caption\",\n \"reflect\": false\n },\n \"copyright\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the footer will display the crown copyright at the bottom.\"\n },\n \"attribute\": \"copyright\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"description\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The description displayed at the top of the footer.\"\n },\n \"attribute\": \"description\",\n \"reflect\": false\n },\n \"groupLinks\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the footer will be set up to handle link groups instead of standalone links.\"\n },\n \"attribute\": \"group-links\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get states() {\n return {\n \"deviceSize\": {},\n \"foregroundColor\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"footerResized\",\n \"name\": \"footerResized\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Triggers on page resize and triggers style changes in footer links and link groups\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"themeChange\",\n \"method\": \"themeChangeHandler\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-footer.js.map\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as i,H as o,g as s}from"./p-8455d1bb.js";const n='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:root{display:block}:host{display:flex;flex-direction:row;width:-moz-fit-content;width:fit-content;min-width:-moz-min-content;min-width:min-content;border:var(--ic-border-width) solid var(--ic-action-default);border-radius:var(--ic-border-radius)}:host(.full-width){width:100%;max-width:100%}:host(.loading){min-width:-moz-max-content;min-width:max-content}:host(:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-transition-duration-fast);outline:none}::slotted(ic-toggle-button){flex-grow:1;--toggle-button-border:none;width:-moz-min-content;width:min-content}::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid var(--ic-action-default)}:host(.disabled){border:var(--ic-border-disabled);pointer-events:none}:host(.disabled) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-disabled)}:host(.dark){border:var(--ic-border-width) solid var(--ic-action-dark)}:host(.dark) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid var(--ic-action-dark)}:host(.light) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid var(--ic-action-light)}:host(.light){border:var(--ic-border-width) solid var(--ic-action-light)}';const r="IC-TOGGLE-BUTTON-GROUP";const a=class{constructor(i){t(this,i);this.icChange=e(this,"icChange",7);this.keyListener=t=>{this.lastKeyPressed={key:t.key,shift:t.shiftKey}};this.setSlottedAria=t=>{const e=t.shadowRoot.querySelector("ic-button").shadowRoot.querySelector("button");let i=e.getAttribute("aria-label");i+=", ";i+=this.accessibleLabel;e.setAttribute("aria-label",i)};this.handleHostFocus=t=>{if(this.loading||this.disabled){return null}const e=t.target;const i=t.relatedTarget;const o=Array.from(e.querySelectorAll("ic-toggle-button"));if((o.every((t=>!t.toggleChecked))||this.selectType!=="single")&&this.lastKeyPressed.shift===false||o.every((t=>!t.toggleChecked))&&this.lastKeyPressed.shift===true&&i.tagName==r){o[0].focus()}else if(this.lastKeyPressed.shift===false||this.lastKeyPressed.shift===true&&i.tagName==r){const t=o.filter((t=>t.toggleChecked));t[0].focus()}};this.handleKeyDown=t=>{const e=this.getAllToggleButtons();const i=e.indexOf(e.filter((t=>t===document.activeElement))[0]);switch(t.key){case"ArrowDown":case"ArrowRight":this.selectMethod==="auto"?this.proxySelectHandler(e[this.getNextItemToSelect(i,true)]):e[this.getNextItemToSelect(i,true)].focus();break;case"ArrowUp":case"ArrowLeft":this.selectMethod==="auto"?this.proxySelectHandler(e[this.getNextItemToSelect(i,false)]):e[this.getNextItemToSelect(i,false)].focus();break}};this.getNextItemToSelect=(t,e)=>{const i=this.getAllToggleButtons();const o=i.length-1;if(t<1){t=0}let s=e?t+1:t-1;if(s<0){s=o}else if(s>o){s=0}if(i[s].disabled){s=this.getNextItemToSelect(s,e)}return s};this.lastKeyPressed={key:null,shift:false};this.accessibleLabel="Toggle button group";this.appearance="default";this.disabled=false;this.fullWidth=false;this.iconPlacement=undefined;this.loading=false;this.selectMethod="manual";this.selectType="single";this.size="default";this.variant="default"}selectHandler(t,e){const i=this.getAllToggleButtons();let o=t.target;e&&e.focus();if(this.selectType==="single"){if(!o){o=e}i.forEach((t=>{if(t.id!==o.id&&t.toggleChecked){t.toggleChecked=false}}));this.icChange.emit({toggleChecked:t.detail.toggleChecked,selectedOption:o})}else{const t=this.getAllToggleButtons().filter((t=>t.toggleChecked&&!t.disabled));this.icChange.emit({toggleChecked:t.map((t=>t.toggleChecked)),toggledOptions:t.map((t=>({toggleButton:t}))),selectedOption:o})}}componentWillLoad(){this.selectType==="multi"&&(this.selectMethod="manual");document.addEventListener("keydown",this.keyListener)}componentDidLoad(){this.getAllToggleButtons().forEach(((t,e)=>{this.setSlottedAria(t);t.size=this.size;t.loading=this.loading;t.iconPlacement=this.iconPlacement;t.disabled?null:t.disabled=this.disabled;t.appearance=this.appearance;t.variant=this.variant;t.fullWidth=this.fullWidth;t.id=e.toString();t.tabIndex=-1;t.addEventListener("keydown",(t=>{this.handleKeyDown(t)}));t.classList.add("expand-toggle-group-child")}))}disconnectedCallback(){document.removeEventListener("keydown",this.keyListener)}proxySelectHandler(t){t.toggleChecked=true;const e=new CustomEvent("icToggleChecked",{detail:{toggleChecked:t.toggleChecked}});this.selectHandler(e,t)}getAllToggleButtons(){return Array.from(this.el.querySelectorAll("ic-toggle-button"))}render(){return i(o,{role:"group","aria-label":this.accessibleLabel,"aria-disabled":this.disabled?"true":"false",tabindex:0,class:{["full-width"]:this.fullWidth,["loading"]:this.loading,["disabled"]:this.disabled,[`${this.appearance}`]:true},onFocus:this.handleHostFocus},i("slot",null))}get el(){return s(this)}};a.style=n;export{a as ic_toggle_button_group};
2
- //# sourceMappingURL=p-e79e0292.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icToggleButtonGroupCss","TOGGLE_GROUP","ToggleButtonGroup","constructor","hostRef","this","keyListener","ev","lastKeyPressed","key","shift","shiftKey","setSlottedAria","el","btn","shadowRoot","querySelector","aria","getAttribute","accessibleLabel","setAttribute","handleHostFocus","loading","disabled","target","relEl","relatedTarget","toggleButtons","Array","from","querySelectorAll","every","toggleChecked","selectType","tagName","focus","toggledButton","filter","handleKeyDown","event","toggleButtonOptions","getAllToggleButtons","focussedChild","indexOf","document","activeElement","selectMethod","proxySelectHandler","getNextItemToSelect","currentItem","movingDown","numToggles","length","nextItem","appearance","fullWidth","iconPlacement","undefined","size","variant","selectHandler","tabTarget","allToggles","clickedToggle","forEach","id","icChange","emit","detail","selectedOption","toggledOptions","map","opt","toggleButton","componentWillLoad","addEventListener","componentDidLoad","i","toString","tabIndex","classList","add","disconnectedCallback","removeEventListener","toggle","customEv","CustomEvent","render","h","Host","role","tabindex","class","onFocus"],"sources":["../web-components/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css?tag=ic-toggle-button-group&encapsulation=shadow","../web-components/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/* PARENT HOST */\n\n:root {\n display: block;\n}\n\n:host {\n display: flex;\n flex-direction: row;\n width: -moz-fit-content;\n width: fit-content;\n min-width: -moz-min-content;\n min-width: min-content;\n border: var(--ic-border-width) solid var(--ic-action-default);\n border-radius: var(--ic-border-radius);\n}\n\n:host(.full-width) {\n width: 100%;\n max-width: 100%;\n}\n\n:host(.loading) {\n min-width: -moz-max-content;\n min-width: max-content;\n}\n\n:host(:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-transition-duration-fast);\n outline: none;\n}\n\n/* CHILDREN SLOTTED */\n\n::slotted(ic-toggle-button) {\n flex-grow: 1;\n --toggle-button-border: none;\n width: -moz-min-content;\n width: min-content;\n}\n\n::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid var(--ic-action-default);\n}\n\n/* DISABLED */\n:host(.disabled) {\n border: var(--ic-border-disabled);\n pointer-events: none;\n}\n:host(.disabled) ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-disabled);\n}\n\n/* DARK */\n:host(.dark) {\n border: var(--ic-border-width) solid var(--ic-action-dark);\n}\n\n:host(.dark) ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid var(--ic-action-dark);\n}\n\n/* LIGHT */\n:host(.light) ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid var(--ic-action-light);\n}\n\n:host(.light) {\n border: var(--ic-border-width) solid var(--ic-action-light);\n}\n","import { Host, h, } from \"@stencil/core\";\nconst TOGGLE_GROUP = \"IC-TOGGLE-BUTTON-GROUP\";\nexport class ToggleButtonGroup {\n constructor() {\n this.keyListener = (ev) => {\n this.lastKeyPressed = {\n key: ev.key,\n shift: ev.shiftKey,\n };\n };\n this.setSlottedAria = (el) => {\n const btn = el.shadowRoot\n .querySelector(\"ic-button\")\n .shadowRoot.querySelector(\"button\");\n let aria = btn.getAttribute(\"aria-label\");\n aria += \", \";\n aria += this.accessibleLabel;\n btn.setAttribute(\"aria-label\", aria);\n };\n this.handleHostFocus = (ev) => {\n if (this.loading || this.disabled) {\n return null;\n }\n const el = ev.target;\n const relEl = ev.relatedTarget;\n const toggleButtons = Array.from(el.querySelectorAll(\"ic-toggle-button\"));\n if (((toggleButtons.every((el) => !el.toggleChecked) ||\n this.selectType !== \"single\") &&\n this.lastKeyPressed.shift === false) ||\n (toggleButtons.every((el) => !el.toggleChecked) &&\n this.lastKeyPressed.shift === true &&\n relEl.tagName == TOGGLE_GROUP)) {\n toggleButtons[0].focus();\n }\n else if (this.lastKeyPressed.shift === false ||\n (this.lastKeyPressed.shift === true && relEl.tagName == TOGGLE_GROUP)) {\n // if toggleChecked is true and selectMethod is \"single\", focus that toggle\n const toggledButton = toggleButtons.filter((el) => el.toggleChecked);\n toggledButton[0].focus();\n }\n };\n this.handleKeyDown = (event) => {\n const toggleButtonOptions = this.getAllToggleButtons();\n const focussedChild = toggleButtonOptions.indexOf(toggleButtonOptions.filter((el) => el === document.activeElement)[0]);\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.selectMethod === \"auto\"\n ? this.proxySelectHandler(toggleButtonOptions[this.getNextItemToSelect(focussedChild, true)])\n : toggleButtonOptions[this.getNextItemToSelect(focussedChild, true)].focus();\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.selectMethod === \"auto\"\n ? this.proxySelectHandler(toggleButtonOptions[this.getNextItemToSelect(focussedChild, false)])\n : toggleButtonOptions[this.getNextItemToSelect(focussedChild, false)].focus();\n break;\n case \"Tab\":\n break;\n }\n };\n this.getNextItemToSelect = (currentItem, movingDown) => {\n const toggleButtonOptions = this.getAllToggleButtons();\n const numToggles = toggleButtonOptions.length - 1;\n if (currentItem < 1) {\n currentItem = 0;\n }\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n if (nextItem < 0) {\n nextItem = numToggles;\n }\n else if (nextItem > numToggles) {\n nextItem = 0;\n }\n if (toggleButtonOptions[nextItem].disabled) {\n nextItem = this.getNextItemToSelect(nextItem, movingDown);\n }\n return nextItem;\n };\n this.lastKeyPressed = {\n key: null,\n shift: false,\n };\n this.accessibleLabel = \"Toggle button group\";\n this.appearance = \"default\";\n this.disabled = false;\n this.fullWidth = false;\n this.iconPlacement = undefined;\n this.loading = false;\n this.selectMethod = \"manual\";\n this.selectType = \"single\";\n this.size = \"default\";\n this.variant = \"default\";\n }\n selectHandler(ev, tabTarget) {\n const allToggles = this.getAllToggleButtons();\n let clickedToggle = ev.target;\n // tabTarget used in proxySelectHandler\n tabTarget && tabTarget.focus();\n if (this.selectType === \"single\") {\n if (!clickedToggle) {\n clickedToggle = tabTarget;\n }\n allToggles.forEach((el) => {\n if (el.id !== clickedToggle.id && el.toggleChecked) {\n el.toggleChecked = false;\n }\n });\n this.icChange.emit({\n toggleChecked: ev.detail.toggleChecked,\n selectedOption: clickedToggle,\n });\n }\n else {\n const toggledOptions = this.getAllToggleButtons().filter((el) => el.toggleChecked && !el.disabled);\n this.icChange.emit({\n toggleChecked: toggledOptions.map((opt) => opt.toggleChecked),\n toggledOptions: toggledOptions.map((opt) => ({\n toggleButton: opt,\n })),\n selectedOption: clickedToggle,\n });\n }\n }\n componentWillLoad() {\n this.selectType === \"multi\" && (this.selectMethod = \"manual\");\n this.selectMethod === \"auto\" && this.selectType === \"single\";\n document.addEventListener(\"keydown\", this.keyListener);\n }\n componentDidLoad() {\n this.getAllToggleButtons().forEach((el, i) => {\n this.setSlottedAria(el);\n el.size = this.size;\n el.loading = this.loading;\n el.iconPlacement = this.iconPlacement;\n el.disabled ? null : (el.disabled = this.disabled);\n el.appearance = this.appearance;\n el.variant = this.variant;\n el.fullWidth = this.fullWidth;\n el.id = i.toString();\n el.tabIndex = -1;\n el.addEventListener(\"keydown\", (ev) => {\n this.handleKeyDown(ev);\n });\n el.classList.add(\"expand-toggle-group-child\");\n });\n }\n disconnectedCallback() {\n document.removeEventListener(\"keydown\", this.keyListener);\n }\n // trigger selectHandler when unable to add 'target'\n proxySelectHandler(toggle) {\n toggle.toggleChecked = true;\n const customEv = new CustomEvent(\"icToggleChecked\", {\n detail: {\n toggleChecked: toggle.toggleChecked,\n },\n });\n this.selectHandler(customEv, toggle);\n }\n getAllToggleButtons() {\n return Array.from(this.el.querySelectorAll(\"ic-toggle-button\"));\n }\n render() {\n return (h(Host, { role: \"group\", \"aria-label\": this.accessibleLabel, \"aria-disabled\": this.disabled ? \"true\" : \"false\", tabindex: 0, class: {\n [\"full-width\"]: this.fullWidth,\n [\"loading\"]: this.loading,\n [\"disabled\"]: this.disabled,\n [`${this.appearance}`]: true,\n }, onFocus: this.handleHostFocus }, h(\"slot\", null)));\n }\n static get is() { return \"ic-toggle-button-group\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-toggle-button-group.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-toggle-button-group.css\"]\n };\n }\n static get properties() {\n return {\n \"accessibleLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The accessible label of the toggle button group component to provide context for screen reader users.\"\n },\n \"attribute\": \"accessible-label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Toggle button group\\\"\"\n },\n \"appearance\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeForeground\",\n \"resolved\": \"\\\"dark\\\" | \\\"default\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeForeground\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeForeground\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The appearance of the toggle button group, e.g dark, or light.\"\n },\n \"attribute\": \"appearance\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the toggle button group will be set to the disabled state.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the toggle button group will fill the width of the container.\"\n },\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"iconPlacement\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"left\\\" | \\\"right\\\" | \\\"top\\\"\",\n \"resolved\": \"\\\"left\\\" | \\\"right\\\" | \\\"top\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The placement of the icons in relation to the toggle button labels.\"\n },\n \"attribute\": \"icon-placement\",\n \"reflect\": false\n },\n \"loading\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the toggle button group will be in loading state.\"\n },\n \"attribute\": \"loading\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"selectMethod\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"IcSelectMethodTypes\",\n \"resolved\": \"\\\"auto\\\" | \\\"manual\\\"\",\n \"references\": {\n \"IcSelectMethodTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSelectMethodTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `auto`, controls are toggled automatically when navigated to. If `manual`, the controls must be actioned to change their toggled state. The value of this prop is ignored if `selectType` is set to`multi`.\"\n },\n \"attribute\": \"select-method\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"manual\\\"\"\n },\n \"selectType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSelectTypes\",\n \"resolved\": \"\\\"multi\\\" | \\\"single\\\"\",\n \"references\": {\n \"IcSelectTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSelectTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets whether single or multiple options can be toggled. If `multi`, then the `selectMethod` is always `manual`.\"\n },\n \"attribute\": \"select-type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"single\\\"\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"default\\\" | \\\"large\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the toggle buttons to be displayed. This does not affect the font size of the accessible label.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"variant\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"default\\\" | \\\"icon\\\"\",\n \"resolved\": \"\\\"default\\\" | \\\"icon\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The variant of the toggle button.\"\n },\n \"attribute\": \"variant\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"default\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"lastKeyPressed\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icChange\",\n \"name\": \"icChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a toggle button is selected.\"\n },\n \"complexType\": {\n \"original\": \"IcChangeEventDetail\",\n \"resolved\": \"IcChangeEventDetail\",\n \"references\": {\n \"IcChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-toggle-button-group.types\",\n \"id\": \"src/components/ic-toggle-button-group/ic-toggle-button-group.types.ts::IcChangeEventDetail\"\n }\n }\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"icToggleChecked\",\n \"method\": \"selectHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-toggle-button-group.js.map\n"],"mappings":"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"}