@ukic/canary-web-components 3.0.0-canary.20 → 3.0.0-canary.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-274ac318.js → helpers-74cf2649.js} +14 -2
  3. package/dist/cjs/helpers-74cf2649.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-alert.cjs.entry.js +8 -8
  7. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-badge.cjs.entry.js +13 -4
  10. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-button_3.cjs.entry.js +31 -29
  14. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-checkbox_3.cjs.entry.js +9 -8
  19. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-data-table.cjs.entry.js +19 -10
  23. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-date-input.cjs.entry.js +5 -7
  25. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-dialog.cjs.entry.js +3 -3
  27. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  31. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  34. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-input-label_2.cjs.entry.js +2 -2
  37. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  39. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-navigation-button.cjs.entry.js +16 -8
  43. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-navigation-item.cjs.entry.js +5 -8
  46. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  48. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  49. package/dist/cjs/ic-pagination_4.cjs.entry.js +3 -3
  50. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-popover-menu.cjs.entry.js +16 -11
  52. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-search-bar.cjs.entry.js +2 -2
  56. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-switch.cjs.entry.js +2 -2
  62. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  71. package/dist/cjs/loader.cjs.js +1 -1
  72. package/dist/collection/components/ic-data-table/ic-data-table.js +19 -10
  73. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  74. package/dist/collection/components/ic-date-input/ic-date-input.css +1 -1
  75. package/dist/collection/components/ic-date-input/ic-date-input.js +4 -6
  76. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  77. package/dist/components/helpers.js +13 -1
  78. package/dist/components/helpers.js.map +1 -1
  79. package/dist/components/ic-alert.js +7 -7
  80. package/dist/components/ic-alert.js.map +1 -1
  81. package/dist/components/ic-badge.js +12 -3
  82. package/dist/components/ic-badge.js.map +1 -1
  83. package/dist/components/ic-button2.js +1 -1
  84. package/dist/components/ic-button2.js.map +1 -1
  85. package/dist/components/ic-checkbox-group.js +1 -1
  86. package/dist/components/ic-checkbox-group.js.map +1 -1
  87. package/dist/components/ic-checkbox2.js +8 -7
  88. package/dist/components/ic-checkbox2.js.map +1 -1
  89. package/dist/components/ic-data-table.js +19 -10
  90. package/dist/components/ic-data-table.js.map +1 -1
  91. package/dist/components/ic-date-input2.js +5 -7
  92. package/dist/components/ic-date-input2.js.map +1 -1
  93. package/dist/components/ic-dialog.js +2 -2
  94. package/dist/components/ic-dialog.js.map +1 -1
  95. package/dist/components/ic-footer-link.js +1 -1
  96. package/dist/components/ic-footer-link.js.map +1 -1
  97. package/dist/components/ic-input-label2.js +1 -1
  98. package/dist/components/ic-input-label2.js.map +1 -1
  99. package/dist/components/ic-link2.js +1 -1
  100. package/dist/components/ic-link2.js.map +1 -1
  101. package/dist/components/ic-loading-indicator2.js +22 -27
  102. package/dist/components/ic-loading-indicator2.js.map +1 -1
  103. package/dist/components/ic-navigation-button.js +18 -9
  104. package/dist/components/ic-navigation-button.js.map +1 -1
  105. package/dist/components/ic-navigation-item.js +4 -7
  106. package/dist/components/ic-navigation-item.js.map +1 -1
  107. package/dist/components/ic-popover-menu.js +18 -11
  108. package/dist/components/ic-popover-menu.js.map +1 -1
  109. package/dist/components/ic-search-bar.js +1 -1
  110. package/dist/components/ic-search-bar.js.map +1 -1
  111. package/dist/components/ic-select2.js +1 -1
  112. package/dist/components/ic-select2.js.map +1 -1
  113. package/dist/components/ic-switch.js +1 -1
  114. package/dist/components/ic-switch.js.map +1 -1
  115. package/dist/components/ic-text-field2.js +1 -1
  116. package/dist/components/ic-text-field2.js.map +1 -1
  117. package/dist/components/ic-tooltip2.js +12 -4
  118. package/dist/components/ic-tooltip2.js.map +1 -1
  119. package/dist/core/core.css +38 -24
  120. package/dist/core/core.esm.js +1 -1
  121. package/dist/core/core.esm.js.map +1 -1
  122. package/dist/core/{p-826a4e46.entry.js → p-032113b9.entry.js} +2 -2
  123. package/dist/core/{p-acc884bc.entry.js → p-0dc0d839.entry.js} +2 -2
  124. package/dist/core/{p-13f52d7b.js → p-0fe08a58.js} +2 -2
  125. package/dist/core/p-0fe08a58.js.map +1 -0
  126. package/dist/core/{p-972f21fa.entry.js → p-137dd76e.entry.js} +2 -2
  127. package/dist/core/p-145238fe.entry.js +2 -0
  128. package/dist/core/p-145238fe.entry.js.map +1 -0
  129. package/dist/core/{p-57e881b4.entry.js → p-1b20ab19.entry.js} +2 -2
  130. package/dist/core/p-1bcf49fa.entry.js +2 -0
  131. package/dist/core/p-1bcf49fa.entry.js.map +1 -0
  132. package/dist/core/{p-4271e7f4.entry.js → p-1e256460.entry.js} +2 -2
  133. package/dist/core/p-224b2e14.entry.js +2 -0
  134. package/dist/core/p-224b2e14.entry.js.map +1 -0
  135. package/dist/core/{p-09acf70a.entry.js → p-2c4bf16f.entry.js} +2 -2
  136. package/dist/core/{p-0bc8652d.entry.js → p-2d8900bf.entry.js} +2 -2
  137. package/dist/core/{p-a6b573c0.entry.js → p-2de3287c.entry.js} +2 -2
  138. package/dist/core/{p-28b10396.entry.js → p-33404c14.entry.js} +2 -2
  139. package/dist/core/{p-29601c16.entry.js → p-3cf99186.entry.js} +2 -2
  140. package/dist/core/{p-3f45c7ce.entry.js → p-42913c5b.entry.js} +2 -2
  141. package/dist/core/p-497918fd.entry.js +2 -0
  142. package/dist/core/p-497918fd.entry.js.map +1 -0
  143. package/dist/core/{p-6938e1d9.entry.js → p-5237f3ac.entry.js} +2 -2
  144. package/dist/core/{p-f35563a0.entry.js → p-5d987f8f.entry.js} +2 -2
  145. package/dist/core/p-64372a57.entry.js +2 -0
  146. package/dist/core/p-64372a57.entry.js.map +1 -0
  147. package/dist/core/{p-3b994e61.entry.js → p-6f72e6ac.entry.js} +2 -2
  148. package/dist/core/{p-afff5652.entry.js → p-75901d06.entry.js} +2 -2
  149. package/dist/core/p-826a6c25.entry.js +2 -0
  150. package/dist/core/p-826a6c25.entry.js.map +1 -0
  151. package/dist/core/{p-7436d8de.entry.js → p-832c7042.entry.js} +2 -2
  152. package/dist/core/{p-ef444b18.entry.js → p-8397766e.entry.js} +2 -2
  153. package/dist/core/p-8397766e.entry.js.map +1 -0
  154. package/dist/core/p-88c5ec78.entry.js +2 -0
  155. package/dist/core/p-88c5ec78.entry.js.map +1 -0
  156. package/dist/core/{p-e3059589.entry.js → p-8cb5deba.entry.js} +2 -2
  157. package/dist/core/{p-301131d6.entry.js → p-8d908a57.entry.js} +2 -2
  158. package/dist/core/{p-2c27c85b.entry.js → p-90364cef.entry.js} +2 -2
  159. package/dist/core/{p-6f7e8b3e.entry.js → p-9097a16a.entry.js} +2 -2
  160. package/dist/core/p-9097a16a.entry.js.map +1 -0
  161. package/dist/core/{p-b522ce0a.entry.js → p-94065f7a.entry.js} +2 -2
  162. package/dist/core/p-95881758.entry.js +2 -0
  163. package/dist/core/p-95881758.entry.js.map +1 -0
  164. package/dist/core/{p-b093cecd.entry.js → p-97abdbf7.entry.js} +2 -2
  165. package/dist/core/{p-856e0cda.entry.js → p-9fafa5fa.entry.js} +2 -2
  166. package/dist/core/{p-91eacea5.entry.js → p-a26a60ff.entry.js} +2 -2
  167. package/dist/core/{p-b401ff42.entry.js → p-a54eb1d1.entry.js} +2 -2
  168. package/dist/core/p-a54eb1d1.entry.js.map +1 -0
  169. package/dist/core/{p-da82bbef.entry.js → p-b27bc1a1.entry.js} +2 -2
  170. package/dist/core/p-b6b7c15c.entry.js +2 -0
  171. package/dist/core/p-b6b7c15c.entry.js.map +1 -0
  172. package/dist/core/p-b6c3cc1c.entry.js +2 -0
  173. package/dist/core/p-b6c3cc1c.entry.js.map +1 -0
  174. package/dist/core/{p-c6bd71e5.entry.js → p-b6d1988d.entry.js} +2 -2
  175. package/dist/core/{p-9e19560f.entry.js → p-bbf39a76.entry.js} +2 -2
  176. package/dist/core/{p-9e19560f.entry.js.map → p-bbf39a76.entry.js.map} +1 -1
  177. package/dist/core/{p-a34c894b.entry.js → p-bf93baea.entry.js} +2 -2
  178. package/dist/core/{p-6c97db37.entry.js → p-c77d6efc.entry.js} +2 -2
  179. package/dist/core/{p-c21317e5.entry.js → p-c94e7b0b.entry.js} +2 -2
  180. package/dist/core/p-c94e7b0b.entry.js.map +1 -0
  181. package/dist/core/p-cbbba154.entry.js +2 -0
  182. package/dist/core/p-cbbba154.entry.js.map +1 -0
  183. package/dist/core/{p-4d5dfb71.entry.js → p-cc36abaa.entry.js} +2 -2
  184. package/dist/core/{p-4e2ef907.entry.js → p-cd8178a9.entry.js} +2 -2
  185. package/dist/core/{p-693a568b.entry.js → p-cdd6d5e8.entry.js} +2 -2
  186. package/dist/core/{p-c73418dc.entry.js → p-dc3aba7c.entry.js} +2 -2
  187. package/dist/core/{p-704c5fee.entry.js → p-e18ba5d6.entry.js} +2 -2
  188. package/dist/core/{p-95d3ff68.entry.js → p-f569a91f.entry.js} +2 -2
  189. package/dist/core/p-fb7f4e2e.entry.js +2 -0
  190. package/dist/core/p-fb7f4e2e.entry.js.map +1 -0
  191. package/dist/esm/core.js +1 -1
  192. package/dist/esm/{helpers-f094ef64.js → helpers-574534c9.js} +14 -2
  193. package/dist/esm/helpers-574534c9.js.map +1 -0
  194. package/dist/esm/ic-accordion-group.entry.js +1 -1
  195. package/dist/esm/ic-accordion.entry.js +1 -1
  196. package/dist/esm/ic-alert.entry.js +8 -8
  197. package/dist/esm/ic-alert.entry.js.map +1 -1
  198. package/dist/esm/ic-back-to-top.entry.js +1 -1
  199. package/dist/esm/ic-badge.entry.js +13 -4
  200. package/dist/esm/ic-badge.entry.js.map +1 -1
  201. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  202. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  203. package/dist/esm/ic-button_3.entry.js +31 -29
  204. package/dist/esm/ic-button_3.entry.js.map +1 -1
  205. package/dist/esm/ic-card-vertical.entry.js +1 -1
  206. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  207. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  208. package/dist/esm/ic-checkbox_3.entry.js +9 -8
  209. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  210. package/dist/esm/ic-chip.entry.js +1 -1
  211. package/dist/esm/ic-data-row.entry.js +1 -1
  212. package/dist/esm/ic-data-table.entry.js +19 -10
  213. package/dist/esm/ic-data-table.entry.js.map +1 -1
  214. package/dist/esm/ic-date-input.entry.js +5 -7
  215. package/dist/esm/ic-date-input.entry.js.map +1 -1
  216. package/dist/esm/ic-dialog.entry.js +3 -3
  217. package/dist/esm/ic-dialog.entry.js.map +1 -1
  218. package/dist/esm/ic-divider.entry.js +1 -1
  219. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  220. package/dist/esm/ic-footer-link.entry.js +2 -2
  221. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  222. package/dist/esm/ic-footer.entry.js +1 -1
  223. package/dist/esm/ic-hero.entry.js +1 -1
  224. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  225. package/dist/esm/ic-input-component-container_3.entry.js +1 -1
  226. package/dist/esm/ic-input-label_2.entry.js +2 -2
  227. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  228. package/dist/esm/ic-link.entry.js +2 -2
  229. package/dist/esm/ic-link.entry.js.map +1 -1
  230. package/dist/esm/ic-menu-group.entry.js +1 -1
  231. package/dist/esm/ic-menu-item.entry.js +1 -1
  232. package/dist/esm/ic-navigation-button.entry.js +16 -8
  233. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  234. package/dist/esm/ic-navigation-group.entry.js +1 -1
  235. package/dist/esm/ic-navigation-item.entry.js +5 -8
  236. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  237. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  238. package/dist/esm/ic-page-header.entry.js +1 -1
  239. package/dist/esm/ic-pagination_4.entry.js +3 -3
  240. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  241. package/dist/esm/ic-popover-menu.entry.js +16 -11
  242. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  243. package/dist/esm/ic-radio-group.entry.js +1 -1
  244. package/dist/esm/ic-radio-option.entry.js +1 -1
  245. package/dist/esm/ic-search-bar.entry.js +2 -2
  246. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  247. package/dist/esm/ic-side-navigation.entry.js +1 -1
  248. package/dist/esm/ic-status-tag.entry.js +1 -1
  249. package/dist/esm/ic-step.entry.js +1 -1
  250. package/dist/esm/ic-stepper.entry.js +1 -1
  251. package/dist/esm/ic-switch.entry.js +2 -2
  252. package/dist/esm/ic-switch.entry.js.map +1 -1
  253. package/dist/esm/ic-tab-group.entry.js +1 -1
  254. package/dist/esm/ic-tab.entry.js +1 -1
  255. package/dist/esm/ic-theme.entry.js +1 -1
  256. package/dist/esm/ic-toast.entry.js +1 -1
  257. package/dist/esm/ic-toggle-button-group.entry.js +1 -1
  258. package/dist/esm/ic-toggle-button.entry.js +1 -1
  259. package/dist/esm/ic-top-navigation.entry.js +1 -1
  260. package/dist/esm/ic-typography.entry.js +1 -1
  261. package/dist/esm/loader.js +1 -1
  262. package/dist/types/components/ic-data-table/ic-data-table.d.ts +1 -1
  263. package/hydrate/index.js +142 -98
  264. package/hydrate/index.mjs +142 -98
  265. package/package.json +3 -3
  266. package/dist/cjs/helpers-274ac318.js.map +0 -1
  267. package/dist/core/p-13f52d7b.js.map +0 -1
  268. package/dist/core/p-304c6a01.entry.js +0 -2
  269. package/dist/core/p-304c6a01.entry.js.map +0 -1
  270. package/dist/core/p-3352cb6c.entry.js +0 -2
  271. package/dist/core/p-3352cb6c.entry.js.map +0 -1
  272. package/dist/core/p-4150f333.entry.js +0 -2
  273. package/dist/core/p-4150f333.entry.js.map +0 -1
  274. package/dist/core/p-4f941e4c.entry.js +0 -2
  275. package/dist/core/p-4f941e4c.entry.js.map +0 -1
  276. package/dist/core/p-6f7e8b3e.entry.js.map +0 -1
  277. package/dist/core/p-795afeb2.entry.js +0 -2
  278. package/dist/core/p-795afeb2.entry.js.map +0 -1
  279. package/dist/core/p-7dcdb89b.entry.js +0 -2
  280. package/dist/core/p-7dcdb89b.entry.js.map +0 -1
  281. package/dist/core/p-82941d0a.entry.js +0 -2
  282. package/dist/core/p-82941d0a.entry.js.map +0 -1
  283. package/dist/core/p-8e70b907.entry.js +0 -2
  284. package/dist/core/p-8e70b907.entry.js.map +0 -1
  285. package/dist/core/p-961d7718.entry.js +0 -2
  286. package/dist/core/p-961d7718.entry.js.map +0 -1
  287. package/dist/core/p-b401ff42.entry.js.map +0 -1
  288. package/dist/core/p-c21317e5.entry.js.map +0 -1
  289. package/dist/core/p-cd21aee7.entry.js +0 -2
  290. package/dist/core/p-cd21aee7.entry.js.map +0 -1
  291. package/dist/core/p-e04d2e51.entry.js +0 -2
  292. package/dist/core/p-e04d2e51.entry.js.map +0 -1
  293. package/dist/core/p-e4bff243.entry.js +0 -2
  294. package/dist/core/p-e4bff243.entry.js.map +0 -1
  295. package/dist/core/p-ef444b18.entry.js.map +0 -1
  296. package/dist/esm/helpers-f094ef64.js.map +0 -1
  297. /package/dist/core/{p-826a4e46.entry.js.map → p-032113b9.entry.js.map} +0 -0
  298. /package/dist/core/{p-acc884bc.entry.js.map → p-0dc0d839.entry.js.map} +0 -0
  299. /package/dist/core/{p-972f21fa.entry.js.map → p-137dd76e.entry.js.map} +0 -0
  300. /package/dist/core/{p-57e881b4.entry.js.map → p-1b20ab19.entry.js.map} +0 -0
  301. /package/dist/core/{p-4271e7f4.entry.js.map → p-1e256460.entry.js.map} +0 -0
  302. /package/dist/core/{p-09acf70a.entry.js.map → p-2c4bf16f.entry.js.map} +0 -0
  303. /package/dist/core/{p-0bc8652d.entry.js.map → p-2d8900bf.entry.js.map} +0 -0
  304. /package/dist/core/{p-a6b573c0.entry.js.map → p-2de3287c.entry.js.map} +0 -0
  305. /package/dist/core/{p-28b10396.entry.js.map → p-33404c14.entry.js.map} +0 -0
  306. /package/dist/core/{p-29601c16.entry.js.map → p-3cf99186.entry.js.map} +0 -0
  307. /package/dist/core/{p-3f45c7ce.entry.js.map → p-42913c5b.entry.js.map} +0 -0
  308. /package/dist/core/{p-6938e1d9.entry.js.map → p-5237f3ac.entry.js.map} +0 -0
  309. /package/dist/core/{p-f35563a0.entry.js.map → p-5d987f8f.entry.js.map} +0 -0
  310. /package/dist/core/{p-3b994e61.entry.js.map → p-6f72e6ac.entry.js.map} +0 -0
  311. /package/dist/core/{p-afff5652.entry.js.map → p-75901d06.entry.js.map} +0 -0
  312. /package/dist/core/{p-7436d8de.entry.js.map → p-832c7042.entry.js.map} +0 -0
  313. /package/dist/core/{p-e3059589.entry.js.map → p-8cb5deba.entry.js.map} +0 -0
  314. /package/dist/core/{p-301131d6.entry.js.map → p-8d908a57.entry.js.map} +0 -0
  315. /package/dist/core/{p-2c27c85b.entry.js.map → p-90364cef.entry.js.map} +0 -0
  316. /package/dist/core/{p-b522ce0a.entry.js.map → p-94065f7a.entry.js.map} +0 -0
  317. /package/dist/core/{p-b093cecd.entry.js.map → p-97abdbf7.entry.js.map} +0 -0
  318. /package/dist/core/{p-856e0cda.entry.js.map → p-9fafa5fa.entry.js.map} +0 -0
  319. /package/dist/core/{p-91eacea5.entry.js.map → p-a26a60ff.entry.js.map} +0 -0
  320. /package/dist/core/{p-da82bbef.entry.js.map → p-b27bc1a1.entry.js.map} +0 -0
  321. /package/dist/core/{p-c6bd71e5.entry.js.map → p-b6d1988d.entry.js.map} +0 -0
  322. /package/dist/core/{p-a34c894b.entry.js.map → p-bf93baea.entry.js.map} +0 -0
  323. /package/dist/core/{p-6c97db37.entry.js.map → p-c77d6efc.entry.js.map} +0 -0
  324. /package/dist/core/{p-4d5dfb71.entry.js.map → p-cc36abaa.entry.js.map} +0 -0
  325. /package/dist/core/{p-4e2ef907.entry.js.map → p-cd8178a9.entry.js.map} +0 -0
  326. /package/dist/core/{p-693a568b.entry.js.map → p-cdd6d5e8.entry.js.map} +0 -0
  327. /package/dist/core/{p-c73418dc.entry.js.map → p-dc3aba7c.entry.js.map} +0 -0
  328. /package/dist/core/{p-704c5fee.entry.js.map → p-e18ba5d6.entry.js.map} +0 -0
  329. /package/dist/core/{p-95d3ff68.entry.js.map → p-f569a91f.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["icDataTableCss","IcDataTableStyle0","DataTable","constructor","hostRef","this","DENSITY_HEIGHT_MULTIPLIER","dense","default","spacious","DENSITY_PADDING_HEIGHT_DIFF","SORT_ICONS","unsorted","unsortedIcon","ascending","ascendingIcon","descending","descendingIcon","hasLoadedForOneSecond","resizeObserver","SHOW_HIDE_STRING","SHOW_HIDE_CSS_CLASS","TOOLTIP_STRING","TOOLTIP","TEXT_WRAP_STRING","TEXT_WRAP_CLASS","dataUpdated","columnsUpdated","rowHeightSet","initialLoad","icPageChangeEvent","itemsPerPageChange","DATA_ROW_HEIGHT_STRING","ROW_HEIGHT_CSS_VARIABLE","LINE_CLAMP_CSS_VARIABLE","DEFAULT_LINE_HEIGHT","densityUpdate","truncationPatternUpdated","isNewDebounceDelaySet","headerResizeObserver","IC_TOOLTIP_STRING","SHOW_TRUNC_TOOLTIP_STRING","CELL_DESCRIPTION_STRING","CELL_CONTAINER_WITH_DESCRIPTION_STRING","CELL_TEXT_WRAPPER_STRING","IC_TYPOGRAPHY_STRING","fromRow","scrollable","scrollOffset","selectedRows","debounceDelay","columnHeaderTruncation","disableAutoSort","density","embedded","globalRowHeight","hideColumnHeaders","loading","minimumLoadingDisplayDuration","paginationBarOptions","alignment","hideAllFromItemsPerPage","hideRangeLabel","itemLabel","itemsPerPageOptions","label","value","monochrome","pageLabel","rangeLabelType","selectedItemsPerPage","selectItemsPerPageOnEnter","setToFirstPageOnPaginationChange","showGoToPageControl","showItemsPerPageControl","type","rowSelection","showPagination","sortable","sortOptions","sortOrders","defaultColumn","stickyColumnHeaders","stickyRowHeaders","tableLayout","theme","updating","runHeaderResizeObserver","ResizeObserver","headerResizeCallback","observe","el","tableContainerWidth","_b","_a","shadowRoot","querySelector","clientWidth","prevTableContainerWidth","_c","querySelectorAll","forEach","header","tooltip","typographyEls","length","classList","remove","add","handleResize","updateCellHeightsWithDescriptions","fixCellSelect","getRowHeight","cellContainer","parseInt","getComputedStyle","document","documentElement","fontSize","parseFloat","getAttribute","truncateUpdatedData","truncationPattern","getTypographyElements","typographyEl","getCellContainer","truncWrapper","getTruncWrapper","clientHeight","scrollHeight","resetSingleShowHideTruncation","setTimeout","addShowHideTruncationIfNeeded","updateTruncationTooltip","truncateTableSorted","contains","createShowHideTruncation","resetTruncation","then","removeAttribute","tableSorted","truncateRowHeightSet","tooltipEl","getTooltip","style","height","setProperty","removeTooltip","setAttribute","getShowHideButton","truncate","updateSetRowHeight","truncateItemsPerPageChange","allRows","rowsPerPage","previousItemsPerPage","newRows","Array","from","slice","row","truncatePageChange","typographyScrollHeightExceedsContainerHeight","addShowHideTruncation","truncateDensityUpdate","cellContainerMinusLineHeightIsGreaterThanTruncWrapperScrollHeight","truncatePatternUpdated","addTooltipTruncation","removeRowHeightVariable","element","removeProperty","getLines","Math","floor","closest","prepend","isEmptyString","dataTruncation","Number","removeTextWrap","tableCell","deleteTextWrapDataKey","array","isArray","val","textWrap","checkMaxLines","setShowHideExpanded","resetAllShowHideTruncation","startLoadingTimer","timerStarted","Date","now","isObject","undefined","notDefaultDensity","getCellContent","cell","dataType","toLocaleDateString","getCellAlignment","Object","keys","includes","getObjectValue","getCellOptions","key","createUpdatingIndicator","description","max","min","progress","updatingOptions","visibleColumnCount","columns","filter","col","hidden","h","colSpan","data","class","fullWidth","size","setRowHeight","pxToRem","setTruncationClass","getColumnWidth","columnWidth","columnWidthStyling","assign","minWidth","maxWidth","getCalculatedRowHeight","columnProps","rowTextWrap","currentRowHeight","adjustWidthForActionElement","elements","width","firstChild","getBoundingClientRect","gridWrapper","gridTemplateColumns","createCellContent","cellSlotName","rowOptions","hasIcon","cellValue","rowEmphasis","innerHTML","isSlotUsed","columnAlignment","horizontal","rowAlignment","_d","_e","icon","emphasis","name","Fragment","_f","onAllCells","_g","_h","variant","href","target","rel","_j","_l","_k","createCells","rowIndex","rowKeys","rowHeader","variableRowHeightVal","variableRowHeight","call","index","map","column","scope","CellContent","vertical","onClick","actionOnClick","event","handleClick","createColumnHeaders","cellAlignment","colspan","title","excludeColumnFromSort","hideOnHeader","id","getSortButtonLabel","sortRows","sortedColumn","sortedColumnOrder","onRowClick","notCurrentlySelected","selectedRow","icSelectedRowChange","emit","selectAllRows","organisedData","icSelectAllRows","createRows","toRow","paginationOffset","slottedColumns","prototype","hasOwnProperty","addDataToPosition","sort","find","getSortFunction","isRowSelected","cellIndex","checked","disabled","hideLabel","onIcCheck","values","indexOf","getNextSortOption","option","sortOption","getComparison","targetRow","comparisonRow","targetRowValue","comparisonRowValue","valueOf","String","localeCompare","numeric","sensitivity","a","b","nextSortOrderIndex","icSortChange","columnName","sorted","removeTooltipOnly","regenerateTooltip","updateScrollOffset","tableRowContainer","scrollTop","updateRowHeightForDescriptions","rowHeight","toString","getDescriptionHeight","descriptionMarginTop","window","getPropertyValue","isXSDevice","deviceSizeMatches","IC_DEVICE_SIZES","XS","typography","descriptionHeight","descriptionHeightPlusLineHeight","textContent","cellIcon","addLineClampCSS","setTableDimensions","tableHostDimensions","fixCellTooltip","tooltipChildElement","tagName","children","setExternalPopperProps","strategy","menu","fixCellTooltips","slotElements","getSlotElements","slottedEl","actionElementSpan","callback","renderTableBody","overlay","renderLoadingIndicator","isLoading","loadingOptions","ref","loadingOverlay","labelDuration","loadingIndicator","renderAriaLiveLoading","renderEmptyState","emptyStateEl","aligned","heading","headerTruncationChangeHandler","columnsChangeHandler","disconnectedCallback","disconnect","removeEventListener","componentWillLoad","previousRowsPerPage","componentDidLoad","tableElement","tableContainer","checkResizeObserver","showLoadingIndicator","dynamicDebounce","addEventListener","icColumnsLoaded","icDataLoaded","componentDidUpdate","componentDidRender","createTruncationTooltip","handleTypographyTruncationExpandToggle","detail","expanded","handlePageChange","parentElement","tableRowsContainer","previousPaginationPage","handleItemsPerPageChange","handleDensityChange","ev","loadingHandler","truncationPatternHandler","dataHandler","densityHandler","rowHeightChangeHandler","newValue","oldValue","icRowHeightChange","resetRowHeights","cssText","descriptionCellHeight","cellContainerHeight","totalHeight","iconHeight","createElement","render","caption","rowsSelected","allRowsSelected","headerCheckboxLabelState","Host","tabIndex","onScroll","indeterminate","nativeIndeterminateBehaviour","totalItems"],"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: inline-flex;\n max-height: 100%;\n width: var(--table-width, 100%);\n height: 100%;\n min-width: var(--table-min-width);\n max-width: var(--table-max-width);\n}\n\ntbody {\n vertical-align: top;\n}\n\n.table-container {\n position: relative;\n height: calc(100% - var(--ic-space-xxxs));\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.cell-container {\n display: flex;\n min-height: 1.5rem;\n overflow-y: hidden;\n height: var(--row-height);\n\n --ic-typography-color: var(--ic-data-table-text-default-emphasis);\n}\n\n.truncation-show-hide {\n display: block;\n}\n\n.cell-icon.truncation-show-hide {\n display: flex;\n}\n\n.cell-container:not(.data-type-element, .truncation-show-hide) {\n overflow-x: hidden;\n}\n\nic-loading-indicator {\n position: sticky;\n top: 20px;\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: var(--table-layout, \"fixed\");\n border-spacing: 0;\n width: 100%;\n height: var(--table-height, auto);\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-row-container {\n border: var(--ic-space-1px) solid var(--ic-data-table-border);\n}\n\n.column-header-inner-container {\n padding: var(--ic-space-xs);\n box-sizing: border-box;\n}\n\n.column-header-inner-container ic-tooltip {\n pointer-events: none;\n}\n\n.column-header-inner-container ic-tooltip.show-trunc-tooltip {\n pointer-events: auto;\n}\n\n.column-header-inner-container ic-tooltip .column-header-text {\n --ic-line-clamp: 1;\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-image: linear-gradient(\n var(--ic-data-table-cell-background-selected) 0 0\n );\n background-color: var(--ic-data-table-cell-background) !important;\n}\n\n.table-row:hover {\n background-image: linear-gradient(\n var(--ic-data-table-cell-background-hover) 0 0\n );\n background-color: var(--ic-data-table-cell-background) !important;\n}\n\n.table-row-selected:hover {\n background-image: linear-gradient(\n var(--ic-data-table-cell-background-selected-hover) 0 0\n );\n}\n\n.sort-button {\n margin-left: auto;\n}\n\n.sort-button:hover {\n background-color: var(--ic-data-table-icon-button-background-hover);\n}\n\n.sort-button:active {\n background-color: var(--ic-data-table-icon-button-background-pressed);\n}\n\n.sort-button svg {\n color: var(--ic-data-table-sort-toggle-icon);\n}\n\n.sort-button-unsorted svg {\n color: var(--ic-data-table-sort-toggle-icon-default);\n}\n\n.table-density-dense .column-header-inner-container,\ntd.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 .column-header-inner-container,\ntd.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.dummy-column-header-text {\n white-space: nowrap;\n overflow: hidden;\n height: 0;\n width: fit-content;\n}\n\n.row-header,\n.column-header {\n text-align: left;\n padding: var(--ic-space-xs);\n background-color: var(--ic-data-table-header-background);\n border-right: var(--ic-space-1px) solid var(--ic-data-table-header-keyline);\n border-bottom: var(--ic-space-1px) solid var(--ic-data-table-header-keyline);\n color: var(--ic-data-table-header-text);\n}\n\n.column-header {\n padding: 0;\n width: var(--column-width);\n min-width: var(--column-min-width, 4rem);\n max-width: var(--column-max-width);\n}\n\n.column-header:last-child {\n border-right: none;\n}\n\n.scrollable .column-header:last-child {\n border-right: var(--ic-space-1px) solid var(--ic-data-table-header-keyline) !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 justify-content: start !important;\n}\n\n.column-header-alignment-right,\n.row-header-alignment-right,\n.cell-alignment-right {\n text-align: right !important;\n justify-content: end !important;\n}\n\n.cell-alignment-right.truncation-tooltip ic-tooltip ic-typography {\n padding-right: calc(var(--ic-space-xxs) + var(--ic-space-xs));\n}\n\n.cell-alignment-right.truncation-show-hide ic-typography {\n --ellipsis-padding-right: calc(var(--ic-space-xxs) + var(--ic-space-xs));\n}\n\n.column-header-alignment-center,\n.row-header-alignment-center,\n.cell-alignment-center {\n text-align: center !important;\n justify-content: center !important;\n}\n\n.table-row {\n background-color: var(--ic-data-table-cell-background);\n}\n\n.table-row:nth-child(even) {\n background-color: var(--ic-data-table-cell-background-stripe);\n}\n\n.table-cell {\n padding: var(--ic-space-xs);\n border-bottom: solid var(--ic-data-table-cell-keyline) var(--ic-space-1px);\n overflow: hidden;\n box-sizing: border-box;\n max-width: var(--column-max-width);\n min-width: var(--column-min-width);\n}\n\n.table-cell.with-overflow {\n overflow: visible;\n}\n\n.data-type-string,\n.data-type-address {\n text-align: left;\n}\n\n.data-type-number,\n.data-type-date {\n text-align: right;\n justify-content: end;\n}\n\n.cell-vertical-align-top {\n vertical-align: top;\n align-items: flex-start;\n}\n\n.cell-vertical-align-middle {\n vertical-align: middle;\n align-items: center;\n}\n\n.cell-vertical-align-bottom {\n vertical-align: bottom;\n align-items: flex-end;\n}\n\n.cell-emphasis-low ic-typography {\n --ic-typography-color: var(--ic-data-table-text-low-emphasis);\n}\n\n.cell-emphasis-high ic-typography {\n --ic-typography-color: var(--ic-data-table-text-high-emphasis);\n\n font-weight: var(--ic-font-weight-bold);\n}\n\n.pagination-container {\n background-color: var(--ic-data-table-pagination-bar-background-color);\n border-top: var(--ic-space-1px) solid\n var(--ic-data-table-pagination-bar-keyline);\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.loading-empty {\n padding: var(--ic-space-xl) var(--ic-space-xxl);\n margin-top: var(--ic-space-xl);\n}\n\n.updating-state {\n padding: 0;\n border-bottom: var(--ic-space-1px) solid var(--ic-data-table-header-keyline);\n}\n\n.updating-state-headers {\n border-bottom: none;\n}\n\n.loading {\n position: absolute;\n left: calc(50% - 5.9741rem);\n opacity: 0;\n transition: opacity var(--ic-transition-duration-slow);\n z-index: calc(var(--ic-z-index-dialog) - 1);\n background-color: var(--ic-data-table-overlay-background);\n border: var(--ic-space-1px) solid var(--ic-data-table-overlay-border);\n}\n\n.loading.show {\n opacity: 1;\n}\n\n.icon,\n::slotted(svg) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-right: var(--ic-space-xxs);\n}\n\n.column-header .icon > svg,\n.column-header ::slotted(svg) {\n fill: var(--ic-data-table-icon);\n}\n\n.table-cell .icon > svg,\n.table-cell ::slotted(svg),\n.cell-description-icon > svg {\n fill: var(--ic-data-table-icon-default-emphasis);\n}\n\n.cell-emphasis-high .icon > svg,\n.cell-emphasis-high ::slotted(svg) {\n fill: var(--ic-data-table-icon-high-emphasis);\n}\n\n.cell-emphasis-low .icon > svg,\n.cell-emphasis-low ::slotted(svg) {\n fill: var(--ic-data-table-icon-low-emphasis);\n}\n\n.column-header-alignment-right > .icon,\n.row-header-alignment-right > .icon,\n.cell-alignment-right > .icon,\n.column-header-alignment-right > ::slotted(svg),\n.row-header-alignment-right > ::slotted(svg),\n.cell-alignment-right > ::slotted(svg) {\n margin-right: auto;\n}\n\n.column-header-alignment-center > ic-typography,\n.column-header-alignment-center > .cell-text-wrapper,\n.row-header-alignment-right > ic-typography,\n.row-header-alignment-right > .cell-text-wrapper,\n.cell-alignment-center > ic-typography,\n.cell-alignment-center > .cell-text-wrapper {\n flex: 1;\n}\n\n.checkbox-cell {\n --column-width: var(--ic-space-xxl);\n\n align-content: center;\n border-right: none;\n}\n\n.table-density-dense.checkbox-cell {\n --column-width: 2.5rem;\n}\n\n.checkbox-wrapper {\n display: flex;\n justify-content: center;\n}\n\n.icon > svg {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n display: inline-block;\n}\n\n.truncation-tooltip ic-typography {\n display: -webkit-box;\n -webkit-line-clamp: var(--ic-line-clamp, 0);\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.truncation-tooltip ic-typography,\n.truncation-show-hide ic-typography {\n white-space: normal;\n}\n\n.ic-tooltip-overflow {\n overflow: hidden;\n width: 100%;\n}\n\n.action-element {\n display: flex;\n justify-content: right;\n}\n\n.cell-grid-wrapper {\n display: grid;\n grid-template-columns: auto auto;\n}\n\n.loading-overlay {\n visibility: hidden;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--ic-data-table-loading-indicator-overlay-background);\n z-index: calc(var(--ic-z-index-dialog) - 2);\n opacity: 0;\n transition: opacity var(--ic-transition-duration-slow);\n}\n\n.loading-overlay.show {\n visibility: visible;\n opacity: 0.6;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .loading-overlay {\n transition: none;\n }\n}\n\n.cell-text-wrapper {\n overflow: hidden;\n}\n\n.cell-text-wrapper > ic-typography {\n margin-left: 2px;\n}\n\n.cell-text-no-wrap {\n word-wrap: initial;\n}\n\n.cell-container-with-description {\n display: flex;\n flex-direction: row;\n}\n\n.cell-description {\n display: flex;\n flex-direction: row;\n margin-top: var(--ic-space-xxs);\n word-break: break-all;\n}\n\n.cell-description-text {\n color: var(--ic-data-table-cell-data-description);\n}\n\n.cell-description-icon {\n padding-right: var(--ic-space-xs);\n}\n\n.cell-description-icon > svg {\n height: calc(var(--ic-space-lg) - var(--ic-space-xxs));\n width: calc(var(--ic-space-lg) - var(--ic-space-xxs));\n display: flex;\n}\n\n@media (min-width: 577px) {\n .column-header-inner-container {\n display: flex;\n align-items: center;\n }\n}\n\n@media (max-width: 577px) {\n .cell-icon {\n flex-wrap: wrap;\n }\n\n .cell-description-icon {\n padding-right: 0;\n }\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .icon,\n ::slotted(svg),\n .cell-description-icon > svg {\n fill: currentcolor;\n }\n\n .sort-button svg {\n color: currentcolor;\n }\n\n .table-row-selected {\n background-color: Highlight !important;\n }\n}\n","/* eslint-disable react/jsx-no-bind */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n Component,\n Element,\n h,\n Prop,\n State,\n Listen,\n Watch,\n Fragment,\n Method,\n Event,\n EventEmitter,\n Host,\n} 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 IcDataTableDataType,\n IcDataTableColumnDataTypes,\n IcDataTableColumnObject,\n IcDataTableColumnWidthTypes,\n IcDataTableDensityOptions,\n IcDataTableRowHeights,\n IcDataTableSortOrderOptions,\n IcDataTableTruncationTypes,\n IcDensityUpdateEventDetail,\n IcSortEventDetail,\n IcLoadingOptions,\n} from \"./ic-data-table.types\";\nimport { IcPaginationBarOptions, IcThemeMode } from \"../../utils/types\";\n// Unable to import helper functions via @ukic/web-components\nimport {\n isEmptyString,\n isSlotUsed,\n pxToRem,\n addDataToPosition,\n dynamicDebounce,\n getSlotElements,\n checkResizeObserver,\n deviceSizeMatches,\n} from \"../../utils/helpers\";\nimport { IC_DEVICE_SIZES } from \"../../utils/constants\";\n\n/**\n * @slot empty-state - Content is slotted below the table header when there is no data and the table is not loading.\n * @slot {COLUMN_KEY}-{ROW_INDEX}[-icon] - Each cell should have its own slot, named using the column tag and the row index, allowing for custom elements to be displayed. Include `-icon` at the end for that cell's icon slot.\n * @slot {COLUMN_KEY}-column-icon - The icon slot for a column header.\n * @slot title-bar - A custom ic-data-table-title-bar can be slotted above the column headers to display additional information about the table.\n * @slot pagination-bar - A custom ic-pagination-bar can be slotted below the data to provide enhanced control over how the data is interacted with when being fetched externally.\n */\n@Component({\n tag: \"ic-data-table\",\n styleUrl: \"ic-data-table.css\",\n shadow: true,\n})\nexport class DataTable {\n private DENSITY_HEIGHT_MULTIPLIER = {\n dense: 0.8,\n default: 1,\n spacious: 1.2,\n };\n\n private DENSITY_PADDING_HEIGHT_DIFF = {\n dense: 8,\n default: 16,\n spacious: 20,\n };\n\n private SORT_ICONS = {\n unsorted: unsortedIcon,\n ascending: ascendingIcon,\n descending: descendingIcon,\n };\n\n private hasLoadedForOneSecond = true;\n private loadingIndicator?: HTMLIcLoadingIndicatorElement;\n private loadingOverlay?: HTMLDivElement;\n private timerStarted: number;\n private resizeObserver: ResizeObserver | null = null;\n private SHOW_HIDE_STRING = \"show-hide\";\n private SHOW_HIDE_CSS_CLASS = `${this.SHOW_HIDE_STRING}-wrap`;\n private TOOLTIP_STRING = \"tooltip\";\n private TOOLTIP = `ic-${this.TOOLTIP_STRING}`;\n private TEXT_WRAP_STRING = \"text-wrap\";\n private TEXT_WRAP_CLASS = `.${this.TEXT_WRAP_STRING}`;\n private dataUpdated = false;\n private columnsUpdated = false;\n private tableSorted: boolean;\n private rowHeightSet = false;\n private initialLoad = false;\n private icPageChangeEvent = false;\n private itemsPerPageChange = false;\n private DATA_ROW_HEIGHT_STRING = \"data-row-height\";\n private ROW_HEIGHT_CSS_VARIABLE = \"--row-height\";\n private LINE_CLAMP_CSS_VARIABLE = \"--ic-line-clamp\";\n private previousItemsPerPage: number;\n private DEFAULT_LINE_HEIGHT = 24;\n private densityUpdate = false;\n private previousPaginationPage: number;\n private truncationPatternUpdated: boolean = false;\n private isNewDebounceDelaySet = false;\n private headerResizeObserver: ResizeObserver | null = null;\n private prevTableContainerWidth: number;\n private IC_TOOLTIP_STRING = \"ic-tooltip\";\n private SHOW_TRUNC_TOOLTIP_STRING = \"show-trunc-tooltip\";\n private CELL_DESCRIPTION_STRING = \".cell-description\";\n private CELL_CONTAINER_WITH_DESCRIPTION_STRING =\n \"cell-container-with-description\";\n private CELL_TEXT_WRAPPER_STRING = \".cell-text-wrapper\";\n private IC_TYPOGRAPHY_STRING = \"ic-typography\";\n private organisedData?: IcDataTableDataType[];\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() selectedRows: IcDataTableDataType[] = [];\n\n @State() sortedColumn: string;\n\n @State() sortedColumnOrder: IcDataTableSortOrderOptions;\n\n @State() toRow: number;\n\n @State() currentRowHeight: number;\n\n @State() debounceDelay = 0;\n\n /**\n * The title for the table only visible to screen readers.\n */\n @Prop() caption!: string;\n\n /**\n * Determines whether the column header should be truncated and display a tooltip. Default is `false`.\n */\n @Prop() columnHeaderTruncation: boolean = false;\n\n @Watch(\"columnHeaderTruncation\")\n headerTruncationChangeHandler(): void {\n if (this.columnHeaderTruncation) {\n this.prevTableContainerWidth = 0;\n } else {\n this.el.shadowRoot\n ?.querySelectorAll(\"th.column-header\")\n ?.forEach((header) => {\n header\n .querySelector(this.IC_TOOLTIP_STRING)\n ?.classList.remove(this.SHOW_TRUNC_TOOLTIP_STRING);\n });\n }\n }\n\n /**\n * The column headers for the table.\n */\n @Prop() columns!: IcDataTableColumnObject[];\n @Watch(\"columns\")\n columnsChangeHandler(): void {\n this.columnsUpdated = true;\n }\n\n /**\n * The row content for the table.\n */\n @Prop() data?: IcDataTableDataType[];\n\n /**\n * If `true`, the built in sort functionality will be disabled. For example, if rows will already be sorted from an external source.\n */\n @Prop() disableAutoSort?: boolean = false;\n\n /**\n * Set the density of the table including font and padding.\n */\n @Prop({ mutable: true }) density: IcDataTableDensityOptions = \"default\";\n\n /**\n * Applies a border to the table container.\n */\n @Prop() embedded: boolean = false;\n\n /**\n * Sets the row height on all rows in the table that aren't set using the `variableRowHeight` method.\n */\n @Prop({ mutable: true }) globalRowHeight: IcDataTableRowHeights = \"auto\";\n\n /**\n * Sets the table height. Can be set to `auto` or a specific value in `px`, `rem`, or `%`.\n */\n @Prop() height?: string;\n\n /**\n * If `true`, column headers will not be visible.\n */\n @Prop() hideColumnHeaders?: boolean = false;\n\n /**\n * When set to `true`, the full table will show a loading state, featuring a radial indicator.\n */\n @Prop({ mutable: true }) loading: boolean = false;\n\n /**\n * Sets the props for the circular loading indicator used in the loading state.\n */\n @Prop() loadingOptions?: {\n description?: string;\n label?: string;\n labelDuration?: number;\n max?: number;\n min?: number;\n progress?: number;\n monochrome?: boolean;\n overlay?: boolean;\n };\n\n /**\n * Sets the maximum width of the data table. Can be set in `px`, `rem`, or `%`.\n */\n @Prop() maxWidth?: string;\n\n /**\n * Sets the minimum width of the data table. Can be set in `px`, `rem`, or `%`.\n */\n @Prop() minWidth?: string;\n\n /**\n * The minimum amount of time the `loading` state displays for before showing the data. Used to prevent flashing in the component.\n */\n @Prop() minimumLoadingDisplayDuration: number = 1000;\n\n /**\n * Sets the props for the built-in pagination bar. If the `pagination-bar` slot is used then this prop is ignored.\n */\n @Prop() paginationBarOptions: IcPaginationBarOptions = {\n alignment: \"right\",\n hideAllFromItemsPerPage: false,\n hideRangeLabel: false,\n itemLabel: \"Item\",\n itemsPerPageOptions: [\n { label: \"10\", value: \"10\" },\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n ],\n monochrome: false,\n pageLabel: \"Page\",\n rangeLabelType: \"page\",\n selectedItemsPerPage: 10,\n selectItemsPerPageOnEnter: true,\n setToFirstPageOnPaginationChange: false,\n showGoToPageControl: true,\n showItemsPerPageControl: true,\n type: \"simple\",\n };\n\n /**\n * If `true`, a checkbox column will be displayed to the left of the table which allows multiple rows to be selected.\n */\n @Prop() rowSelection: boolean = false;\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 /**\n * Sets the layout of the table\n */\n @Prop() tableLayout?: \"fixed\" | \"auto\" = \"fixed\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * Sets the method used to truncate long text in cells where textWrap is `false`. The `tooltip` truncation pattern allows the overflowing text to be seen in a tooltip. The `show-hide` truncation pattern allows the overflowing text to be shown and hidden using the ic-typography \"See more\"/\"See less\" buttons.\n */\n @Prop() truncationPattern?: IcDataTableTruncationTypes;\n\n /**\n * If `true`, the table displays a linear loading indicator below the header row to indicate an updating state.\n */\n @Prop() updating: boolean = false;\n\n /**\n * Sets the props for the linear loading indicator used in the updating state.\n */\n @Prop() updatingOptions?: {\n description?: string;\n max?: number;\n min?: number;\n progress?: number;\n monochrome?: boolean;\n };\n\n /**\n * Allows for custom setting of row heights on individual rows based on an individual value from the `data` prop and the row index.\n * If the function returns `null`, that row's height will be set to the `globalRowHeight` property.\n */\n @Prop({ mutable: true }) variableRowHeight?: (params: {\n [key: string]: any;\n index: number;\n }) => IcDataTableRowHeights | null;\n\n /**\n * Sets the table width. Can be set to `auto` or a specific value in `px`, `rem`, or `%`.\n */\n @Prop() width?: string;\n\n /**\n * Emitted when the `globalRowHeight` or `variableRowHeight` properties change in the data table.\n */\n @Event() icRowHeightChange: EventEmitter<void>;\n\n /**\n * Emitted when all rows are selected or deselected in the data table via the \"select all\" checkbox.\n */\n @Event() icSelectAllRows: EventEmitter<IcDataTableDataType[]>;\n\n /**\n * Emitted when the selected row changes in the data table.\n */\n @Event() icSelectedRowChange: EventEmitter<{\n row: IcDataTableDataType | null;\n selectedRows: IcDataTableDataType[];\n }>;\n\n /**\n * Emitted when the columns have finished loading after being updated or initially rendered.\n */\n @Event() icColumnsLoaded: EventEmitter<void>;\n\n /**\n * Emitted when the data has finished loading after being updated or initially rendered.\n */\n @Event() icDataLoaded: EventEmitter<void>;\n\n /**\n * Emitted when a column sort button is clicked.\n */\n @Event() icSortChange: EventEmitter<IcSortEventDetail>;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n this.headerResizeObserver?.disconnect();\n window.removeEventListener(\"resize\", this.handleResize);\n }\n\n componentWillLoad(): void {\n this.rowsPerPage = Number(\n this.paginationBarOptions.itemsPerPageOptions![0].value\n );\n this.previousRowsPerPage = this.rowsPerPage;\n this.toRow = this.rowsPerPage;\n this.sortedColumn = this.sortOptions.defaultColumn!;\n this.sortedColumnOrder = this.sortOptions.sortOrders[0];\n this.loadingOptions = {\n ...this.loadingOptions,\n };\n this.initialLoad = true;\n this.previousItemsPerPage = this.rowsPerPage;\n }\n\n componentDidLoad(): void {\n const tableElement = this.el.shadowRoot?.querySelector(\"table\");\n const tableContainer =\n this.el.shadowRoot?.querySelector(\".table-container\");\n\n checkResizeObserver(this.runHeaderResizeObserver);\n\n if (this.dataUpdated) {\n this.dataUpdated = false;\n }\n\n if (\n tableElement &&\n tableContainer &&\n (tableElement.clientHeight > tableContainer.clientHeight ||\n tableElement.clientWidth > tableContainer.clientWidth)\n ) {\n this.scrollable = true;\n }\n if (this.loading) {\n this.startLoadingTimer();\n this.showLoadingIndicator();\n }\n\n if (this.truncationPattern) {\n this.getTypographyElements().forEach(\n (typographyEl: HTMLIcTypographyElement) => {\n const cellContainer = this.getCellContainer(typographyEl);\n if (\n cellContainer &&\n !cellContainer.classList.contains(this.TEXT_WRAP_STRING)\n ) {\n this.dataTruncation(typographyEl, cellContainer);\n this.resizeObserver = new ResizeObserver(\n // This gets triggered twice due to updated data and see more/see less button\n dynamicDebounce(\n () => {\n this.dataTruncation(typographyEl, cellContainer);\n\n if (!this.isNewDebounceDelaySet) {\n this.debounceDelay = 200;\n this.isNewDebounceDelaySet = true;\n }\n },\n () => this.debounceDelay\n ) as ResizeObserverCallback\n );\n\n this.resizeObserver.observe(typographyEl);\n }\n }\n );\n }\n\n if (this.globalRowHeight !== \"auto\") {\n this.updateSetRowHeight();\n }\n window.addEventListener(\"resize\", this.handleResize);\n\n this.icColumnsLoaded.emit();\n if (this.data && !this.loading && !this.updating) this.icDataLoaded.emit();\n }\n\n componentDidUpdate(): void {\n // truncation updates invoked here once new/updated data has\n // rendered to take into account updated .cell-container/ic-typography box model updates.\n if (\n this.truncationPattern === this.SHOW_HIDE_STRING ||\n this.truncationPattern === this.TOOLTIP_STRING\n ) {\n if (this.dataUpdated) {\n this.truncateUpdatedData();\n }\n if (this.tableSorted) {\n this.truncateTableSorted();\n }\n if (this.rowHeightSet) {\n this.truncateRowHeightSet();\n }\n if (this.itemsPerPageChange) {\n this.truncateItemsPerPageChange();\n }\n if (!this.initialLoad && this.icPageChangeEvent) {\n this.truncatePageChange();\n }\n if (this.densityUpdate) {\n this.truncateDensityUpdate();\n }\n if (this.truncationPatternUpdated) {\n this.truncatePatternUpdated();\n }\n }\n\n if (this.columnsUpdated) {\n this.icColumnsLoaded.emit();\n this.columnsUpdated = false;\n }\n\n if (this.dataUpdated && !this.loading && !this.updating) {\n this.icDataLoaded.emit();\n this.dataUpdated = false;\n }\n }\n\n componentDidRender(): void {\n this.fixCellTooltips();\n this.fixCellSelect();\n this.updateCellHeightsWithDescriptions();\n this.adjustWidthForActionElement();\n }\n\n private runHeaderResizeObserver = () => {\n this.headerResizeObserver = new ResizeObserver(() => {\n this.headerResizeCallback();\n });\n this.headerResizeObserver.observe(this.el);\n };\n\n private headerResizeCallback = () => {\n if (!this.hideColumnHeaders && this.columnHeaderTruncation) {\n const tableContainerWidth =\n this.el.shadowRoot?.querySelector(\".table-container\")?.clientWidth;\n if (\n tableContainerWidth &&\n tableContainerWidth !== this.prevTableContainerWidth\n ) {\n this.el.shadowRoot\n ?.querySelectorAll(\"th.column-header\")\n .forEach((header) => {\n const tooltip = header.querySelector(this.IC_TOOLTIP_STRING);\n const typographyEls = header.querySelectorAll(\n this.IC_TYPOGRAPHY_STRING\n );\n if (tooltip && typographyEls && typographyEls.length === 2) {\n tooltip.classList.remove(this.SHOW_TRUNC_TOOLTIP_STRING);\n if (typographyEls[1].clientWidth > typographyEls[0].clientWidth) {\n tooltip.classList.add(this.SHOW_TRUNC_TOOLTIP_STRING);\n }\n }\n });\n this.prevTableContainerWidth = tableContainerWidth;\n }\n }\n };\n\n private handleResize = () => {\n this.updateCellHeightsWithDescriptions();\n this.fixCellSelect();\n };\n\n private getRowHeight = (cellContainer: HTMLElement) =>\n parseInt(getComputedStyle(document.documentElement).fontSize) *\n parseFloat(cellContainer.getAttribute(this.DATA_ROW_HEIGHT_STRING) || \"\");\n\n private truncateUpdatedData = () => {\n if (this.truncationPattern === this.SHOW_HIDE_STRING) {\n this.getTypographyElements().forEach((typographyEl) => {\n const cellContainer = this.getCellContainer(typographyEl);\n if (cellContainer) {\n const truncWrapper = this.getTruncWrapper(typographyEl);\n if (\n truncWrapper &&\n cellContainer.clientHeight - this.DEFAULT_LINE_HEIGHT >=\n truncWrapper.scrollHeight\n ) {\n this.resetSingleShowHideTruncation(typographyEl, cellContainer);\n return;\n }\n setTimeout(() => {\n // slight delay due to data rendering\n this.addShowHideTruncationIfNeeded(typographyEl, cellContainer);\n }, 150);\n }\n });\n }\n\n if (this.truncationPattern === this.TOOLTIP_STRING) {\n this.updateTruncationTooltip();\n }\n\n this.dataUpdated = false;\n };\n\n private truncateTableSorted = () => {\n if (this.truncationPattern === this.TOOLTIP_STRING) {\n this.updateTruncationTooltip();\n }\n\n if (this.truncationPattern === this.SHOW_HIDE_STRING) {\n this.getTypographyElements().forEach((typographyEl) => {\n const cellContainer = this.getCellContainer(typographyEl);\n\n if (cellContainer) {\n if (!cellContainer.classList.contains(this.TEXT_WRAP_STRING)) {\n this.createShowHideTruncation(typographyEl, cellContainer);\n } else {\n typographyEl.resetTruncation().then(() => {\n cellContainer.removeAttribute(\"style\");\n });\n }\n }\n });\n }\n\n this.tableSorted = false;\n };\n\n private truncateRowHeightSet = () => {\n // This function recalculates the tooltip truncation when the rowHeight has been set.\n // This is in componentDidUpdate so a setTimeout is not used to wait for the render to be complete\n\n this.getTypographyElements().forEach((typographyEl) => {\n const cellContainer = this.getCellContainer(typographyEl);\n const tooltipEl = this.getTooltip(typographyEl);\n\n if (cellContainer) {\n if (this.globalRowHeight === \"auto\") {\n cellContainer.style.height = \"\";\n cellContainer.style.setProperty(this.ROW_HEIGHT_CSS_VARIABLE, null);\n cellContainer.removeAttribute(this.DATA_ROW_HEIGHT_STRING);\n\n if (this.truncationPattern === this.TOOLTIP_STRING) {\n this.removeTooltip(cellContainer, typographyEl, tooltipEl);\n typographyEl.setAttribute(\n \"style\",\n `${this.LINE_CLAMP_CSS_VARIABLE}: 0`\n );\n } else if (this.truncationPattern === this.SHOW_HIDE_STRING) {\n this.resetSingleShowHideTruncation(typographyEl, cellContainer);\n }\n\n return;\n }\n\n // If the set row height is bigger than the cell container even\n // with textWrap, set the row height\n if (\n !cellContainer.classList.contains(\n this.CELL_CONTAINER_WITH_DESCRIPTION_STRING\n ) &&\n !cellContainer.style.height &&\n this.getRowHeight(cellContainer) > cellContainer.clientHeight &&\n !cellContainer.classList.contains(this.TEXT_WRAP_STRING)\n ) {\n cellContainer.style.setProperty(\n this.ROW_HEIGHT_CSS_VARIABLE,\n cellContainer.getAttribute(this.DATA_ROW_HEIGHT_STRING)\n );\n }\n\n if (this.truncationPattern) {\n // If the set row height is bigger than the typography truncation wrapper\n // scroll height, remove see more / see less button\n if (this.truncationPattern === this.SHOW_HIDE_STRING) {\n const truncWrapper = this.getTruncWrapper(typographyEl);\n\n if (\n this.getShowHideButton(typographyEl) &&\n truncWrapper &&\n truncWrapper.scrollHeight <= cellContainer.clientHeight\n ) {\n this.resetSingleShowHideTruncation(typographyEl, cellContainer);\n return;\n }\n }\n this.truncate(typographyEl, cellContainer, tooltipEl);\n } else {\n this.updateSetRowHeight(typographyEl);\n }\n }\n });\n\n this.rowHeightSet = false;\n };\n\n private truncateItemsPerPageChange = () => {\n // Only run truncation on the new rows\n // when the number of items per page has increased\n const allRows = this.el.shadowRoot?.querySelectorAll(\".table-row\");\n\n if (allRows && this.rowsPerPage > this.previousItemsPerPage) {\n const newRows = Array.from(allRows).slice(this.previousItemsPerPage);\n\n newRows.forEach((row) => {\n row.querySelectorAll(\"ic-typography\").forEach((typographyEl) => {\n const cellContainer = this.getCellContainer(typographyEl);\n const tooltipEl = this.getTooltip(typographyEl);\n\n if (cellContainer)\n this.truncate(typographyEl, cellContainer, tooltipEl);\n });\n });\n }\n\n this.previousItemsPerPage = this.rowsPerPage;\n this.itemsPerPageChange = false;\n };\n\n private truncatePageChange = () => {\n if (this.truncationPattern === this.TOOLTIP_STRING) {\n this.updateTruncationTooltip();\n }\n\n if (this.truncationPattern === this.SHOW_HIDE_STRING) {\n // set truncation to see more if opened and next/previous page is pressed\n this.getTypographyElements().forEach((typographyEl) => {\n const cellContainer = this.getCellContainer(typographyEl);\n\n if (\n cellContainer &&\n this.typographyScrollHeightExceedsContainerHeight(\n typographyEl,\n cellContainer\n ) &&\n !this.getShowHideButton(typographyEl)\n ) {\n this.addShowHideTruncation(cellContainer, typographyEl);\n }\n });\n }\n\n this.icPageChangeEvent = false;\n };\n\n private truncateDensityUpdate = () => {\n this.getTypographyElements().forEach((typographyEl) => {\n const cellContainer = this.getCellContainer(typographyEl);\n const tooltipEl = this.getTooltip(typographyEl);\n\n if (cellContainer) this.truncate(typographyEl, cellContainer, tooltipEl);\n });\n\n this.densityUpdate = false;\n };\n\n private typographyScrollHeightExceedsContainerHeight = (\n typographyEl: HTMLIcTypographyElement,\n cellContainer: HTMLElement\n ) => cellContainer && typographyEl.scrollHeight > cellContainer.clientHeight;\n\n private cellContainerMinusLineHeightIsGreaterThanTruncWrapperScrollHeight = (\n typographyEl: HTMLIcTypographyElement,\n cellContainer: HTMLElement\n ) => {\n const truncWrapper = this.getTruncWrapper(typographyEl);\n return (\n truncWrapper &&\n cellContainer.clientHeight - this.DEFAULT_LINE_HEIGHT >\n truncWrapper.scrollHeight\n );\n };\n\n private truncatePatternUpdated = () => {\n if (this.truncationPattern === this.TOOLTIP_STRING) {\n this.getTypographyElements().forEach((typographyEl) => {\n const cellContainer = this.getCellContainer(typographyEl);\n const tooltipEl = this.getTooltip(typographyEl);\n\n if (\n cellContainer &&\n this.typographyScrollHeightExceedsContainerHeight(\n typographyEl,\n cellContainer\n )\n ) {\n this.addTooltipTruncation(typographyEl, cellContainer, tooltipEl);\n }\n });\n } else if (this.truncationPattern === this.SHOW_HIDE_STRING) {\n this.getTypographyElements().forEach((typographyEl) => {\n const cellContainer = this.getCellContainer(typographyEl);\n\n if (cellContainer) {\n if (\n this.cellContainerMinusLineHeightIsGreaterThanTruncWrapperScrollHeight(\n typographyEl,\n cellContainer\n )\n ) {\n this.resetSingleShowHideTruncation(typographyEl, cellContainer);\n return;\n }\n this.addShowHideTruncationIfNeeded(typographyEl, cellContainer);\n }\n });\n }\n };\n\n private updateSetRowHeight = (typographyEl?: HTMLIcTypographyElement) => {\n const removeRowHeightVariable = (element: HTMLIcTypographyElement) => {\n const cellContainer = this.getCellContainer(element);\n\n if (\n cellContainer &&\n element.scrollHeight > this.getRowHeight(cellContainer)\n ) {\n cellContainer.style.removeProperty(this.ROW_HEIGHT_CSS_VARIABLE);\n }\n };\n\n if (typographyEl) {\n removeRowHeightVariable(typographyEl);\n } else {\n this.getTypographyElements().forEach((typographyEl) => {\n removeRowHeightVariable(typographyEl);\n });\n }\n };\n\n private createShowHideTruncation(\n typographyEl: HTMLIcTypographyElement,\n cellContainer: HTMLElement,\n descriptionHeight = 0\n ) {\n typographyEl.checkMaxLines(typographyEl.scrollHeight);\n typographyEl.setAttribute(\n \"max-lines\",\n `${this.getLines(cellContainer.clientHeight - descriptionHeight)}`\n );\n typographyEl.setShowHideExpanded(false);\n\n cellContainer.style.setProperty(this.ROW_HEIGHT_CSS_VARIABLE, null);\n }\n\n private getLines = (height: number): number =>\n Math.floor(height / this.DEFAULT_LINE_HEIGHT);\n\n private truncate = (\n typographyEl: HTMLIcTypographyElement,\n cellContainer: HTMLElement,\n tooltip: HTMLIcTooltipElement | null\n ) => {\n if (\n this.typographyScrollHeightExceedsContainerHeight(\n typographyEl,\n cellContainer\n )\n ) {\n //24 is the height of a single line\n if (!typographyEl.closest(this.TEXT_WRAP_CLASS)) {\n if (this.truncationPattern === this.TOOLTIP_STRING) {\n this.addTooltipTruncation(typographyEl, cellContainer, tooltip);\n }\n if (this.truncationPattern === this.SHOW_HIDE_STRING) {\n this.addShowHideTruncation(cellContainer, typographyEl);\n }\n }\n } else {\n if (this.truncationPattern === this.TOOLTIP_STRING && tooltip) {\n typographyEl.setAttribute(\n \"style\",\n `${this.LINE_CLAMP_CSS_VARIABLE}: 0`\n );\n\n cellContainer\n .querySelector(this.CELL_TEXT_WRAPPER_STRING)\n ?.prepend(typographyEl);\n tooltip.remove();\n }\n\n if (\n this.truncationPattern === this.SHOW_HIDE_STRING &&\n !isEmptyString(typographyEl?.getAttribute(\"max-lines\"))\n ) {\n this.resetSingleShowHideTruncation(typographyEl, cellContainer);\n }\n }\n };\n\n private addTooltipTruncation(\n typographyEl: HTMLIcTypographyElement,\n cellContainer: HTMLElement,\n tooltip: HTMLIcTooltipElement | null\n ) {\n this.addLineClampCSS(typographyEl, cellContainer);\n\n if (!tooltip) {\n this.createTruncationTooltip(typographyEl, cellContainer);\n }\n }\n\n private addShowHideTruncationIfNeeded = (\n typographyEl: HTMLIcTypographyElement,\n cellContainer: HTMLElement\n ): boolean => {\n if (\n this.typographyScrollHeightExceedsContainerHeight(\n typographyEl,\n cellContainer\n )\n ) {\n this.addShowHideTruncation(cellContainer, typographyEl);\n return true;\n }\n return false;\n };\n\n private addShowHideTruncation(\n cellContainer: HTMLElement,\n typographyEl: HTMLIcTypographyElement\n ) {\n cellContainer.classList.add(this.SHOW_HIDE_CSS_CLASS);\n this.createShowHideTruncation(typographyEl, cellContainer);\n }\n\n private dataTruncation = (\n typographyEl: HTMLIcTypographyElement,\n cellContainer: HTMLElement\n ) => {\n // Tooltip truncation mentioned in AC. Will need revisiting\n const tooltip = this.getTooltip(typographyEl);\n if (\n cellContainer.classList.contains(\"data-type-element\") ||\n this.dataUpdated\n ) {\n return;\n }\n\n if (\n this.truncationPattern === this.SHOW_HIDE_STRING &&\n this.getShowHideButton(typographyEl)\n ) {\n // If the see more/see less is present and the max lines is equal to the cell container\n // remove the see more/see less button\n const truncWrapper = this.getTruncWrapper(typographyEl);\n if (\n truncWrapper &&\n this.getLines(truncWrapper.scrollHeight) ===\n Number(typographyEl.getAttribute(\"max-lines\"))\n ) {\n this.resetSingleShowHideTruncation(typographyEl, cellContainer);\n }\n }\n\n // Deals with setting and resetting row height and re-truncating data\n if (this.rowHeightSet && this.truncationPattern === this.SHOW_HIDE_STRING) {\n // cellContainer.clientHeight - 24 removes the extra line by see more/see less\n if (\n this.cellContainerMinusLineHeightIsGreaterThanTruncWrapperScrollHeight(\n typographyEl,\n cellContainer\n )\n ) {\n this.resetSingleShowHideTruncation(typographyEl, cellContainer);\n return;\n }\n\n if (this.addShowHideTruncationIfNeeded(typographyEl, cellContainer)) {\n return;\n }\n }\n\n if (\n typographyEl.scrollHeight > 0 &&\n cellContainer.clientHeight > 0 &&\n typographyEl.scrollHeight === cellContainer.clientHeight\n ) {\n if (tooltip) {\n this.removeTooltip(cellContainer, typographyEl, tooltip);\n }\n return;\n }\n\n this.truncate(typographyEl, cellContainer, tooltip);\n };\n\n private getTruncWrapper = (typographyEl: HTMLIcTypographyElement) =>\n typographyEl.shadowRoot?.querySelector(\".trunc-wrapper\");\n\n private getShowHideButton = (typographyEl: HTMLIcTypographyElement) =>\n typographyEl.shadowRoot?.querySelector(\"button\");\n\n // Set the height to initial if row height is set and the show / hide truncation\n // is clicked\n @Listen(\"typographyTruncationExpandToggle\")\n handleTypographyTruncationExpandToggle({\n detail,\n }: CustomEvent<{\n expanded: boolean;\n typographyEl: HTMLIcTypographyElement;\n }>): void {\n const { expanded, typographyEl } = detail;\n const cellContainer = this.getCellContainer(typographyEl);\n\n if (\n cellContainer?.style.getPropertyValue(this.ROW_HEIGHT_CSS_VARIABLE) &&\n expanded\n ) {\n cellContainer.style.setProperty(this.ROW_HEIGHT_CSS_VARIABLE, \"inherit\");\n }\n }\n\n @Listen(\"icPageChange\")\n handlePageChange({ detail, target }: CustomEvent<{ value: number }>): void {\n if ((target as HTMLIcPaginationBarElement).parentElement !== this.el) {\n this.fromRow = (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 (tableRowsContainer) {\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 this.selectedRows = [];\n }\n\n if (!this.initialLoad && this.previousPaginationPage !== detail.value) {\n // This is to prevent icPageChange from triggering truncation on first load\n this.icPageChangeEvent = true;\n }\n\n this.previousPaginationPage = detail.value;\n this.initialLoad = false;\n }\n\n @Listen(\"icItemsPerPageChange\")\n handleItemsPerPageChange({\n detail,\n target,\n }: CustomEvent<{ value: number }>): void {\n if ((target as HTMLIcPaginationBarElement).parentElement !== this.el) {\n this.previousRowsPerPage = this.rowsPerPage;\n this.rowsPerPage = detail.value;\n }\n\n this.itemsPerPageChange = true;\n }\n\n @Listen(\"icTableDensityUpdate\")\n handleDensityChange(ev: CustomEvent<IcDensityUpdateEventDetail>): void {\n this.density = ev.detail.value;\n }\n\n @Watch(\"loading\")\n loadingHandler(): void {\n if (this.loading) {\n this.startLoadingTimer();\n setTimeout(() => {\n this.showLoadingIndicator();\n }, 500);\n }\n }\n\n @Watch(\"truncationPattern\")\n truncationPatternHandler(): void {\n if (this.truncationPattern === this.TOOLTIP_STRING) {\n this.resetAllShowHideTruncation();\n this.updateTruncationTooltip(true);\n\n // Not using debounceDataTruncation here due to resizeObserver not being triggered\n this.getTypographyElements().forEach((typographyEl) => {\n const cellContainer = this.getCellContainer(typographyEl);\n const tooltip = this.getTooltip(typographyEl);\n\n if (cellContainer) this.truncate(typographyEl, cellContainer, tooltip);\n });\n } else if (this.truncationPattern === this.SHOW_HIDE_STRING) {\n // ResizeObserver is trigger here due to the see more/see less links being removed.\n // The resizeObserver will also apply the tooltip where relevant\n this.updateTruncationTooltip(true);\n this.getTypographyElements().forEach((typographyEl) => {\n const cellContainer = this.getCellContainer(typographyEl);\n\n if (cellContainer) {\n if (\n this.cellContainerMinusLineHeightIsGreaterThanTruncWrapperScrollHeight(\n typographyEl,\n cellContainer\n )\n ) {\n this.resetSingleShowHideTruncation(typographyEl, cellContainer);\n return;\n }\n setTimeout(() => {\n // slight delay due to data rendering\n this.addShowHideTruncationIfNeeded(typographyEl, cellContainer);\n }, 150);\n }\n });\n }\n\n this.truncationPatternUpdated = true;\n }\n\n @Watch(\"data\")\n async dataHandler(): Promise<void> {\n this.loadingOptions = {\n ...this.loadingOptions,\n };\n if (this.loading) {\n !this.hasLoadedForOneSecond\n ? setTimeout(\n () => (this.loading = false),\n this.minimumLoadingDisplayDuration -\n (Date.now() - this.timerStarted)\n )\n : (this.loading = false);\n }\n if (this.updating) this.updating = false;\n\n this.dataUpdated = true;\n }\n\n @Watch(\"density\")\n async densityHandler(): Promise<void> {\n this.densityUpdate = true;\n }\n\n private removeTextWrap = (): void => {\n this.getTypographyElements().forEach((typographyEl) => {\n const tableCell = typographyEl.closest(\"td\");\n if (tableCell?.classList.contains(this.TEXT_WRAP_STRING)) {\n tableCell.classList.remove(this.TEXT_WRAP_STRING);\n }\n });\n };\n\n private getCellContainer = (\n typographyEl: HTMLIcTypographyElement\n ): HTMLElement | null => typographyEl.closest(\".cell-container\");\n\n private deleteTextWrapDataKey = (\n array?: IcDataTableColumnObject[] | IcDataTableDataType[]\n ) =>\n Array.isArray(array) &&\n array.forEach((val) => val.textWrap && delete val.textWrap);\n\n private resetSingleShowHideTruncation = (\n typographyEl: HTMLIcTypographyElement,\n cellContainer: HTMLElement\n ) => {\n const truncWrapper = this.getTruncWrapper(typographyEl);\n\n if (!(cellContainer && truncWrapper)) return;\n\n if (\n truncWrapper.scrollHeight > cellContainer.clientHeight &&\n !isEmptyString(typographyEl.getAttribute(\"max-lines\")) &&\n Math.floor(cellContainer?.clientHeight / this.DEFAULT_LINE_HEIGHT) !==\n Number(typographyEl.getAttribute(\"max-lines\"))\n ) {\n typographyEl.checkMaxLines(truncWrapper.scrollHeight);\n typographyEl.setAttribute(\n \"max-lines\",\n `${Math.floor(cellContainer?.clientHeight / this.DEFAULT_LINE_HEIGHT)}`\n );\n typographyEl.setShowHideExpanded(false);\n\n cellContainer.style.setProperty(this.ROW_HEIGHT_CSS_VARIABLE, null);\n } else if (\n !cellContainer.classList.contains(\n this.CELL_CONTAINER_WITH_DESCRIPTION_STRING\n )\n ) {\n typographyEl.resetTruncation().then(() => {\n if (!typographyEl.closest(this.TEXT_WRAP_CLASS)) {\n cellContainer.style.setProperty(\n this.ROW_HEIGHT_CSS_VARIABLE,\n cellContainer.getAttribute(this.DATA_ROW_HEIGHT_STRING)\n );\n }\n });\n }\n };\n\n private resetAllShowHideTruncation = () => {\n this.getTypographyElements().forEach((typographyEl) => {\n const cellContainer = this.getCellContainer(typographyEl);\n\n typographyEl.resetTruncation().then(() => {\n if (cellContainer && !typographyEl.closest(this.TEXT_WRAP_CLASS)) {\n cellContainer.style.setProperty(\n this.ROW_HEIGHT_CSS_VARIABLE,\n cellContainer.getAttribute(this.DATA_ROW_HEIGHT_STRING)\n );\n }\n });\n });\n };\n\n @Watch(\"globalRowHeight\")\n @Watch(\"variableRowHeight\")\n rowHeightChangeHandler(newValue: number, oldValue: number): void {\n if (+newValue !== +oldValue) {\n this.deleteTextWrapDataKey(this.data);\n this.deleteTextWrapDataKey(this.columns);\n this.removeTextWrap();\n\n this.icRowHeightChange.emit();\n\n this.rowHeightSet = true;\n }\n }\n\n /**\n * Resets the `globalRowHeight` prop to number or auto and sets the `variableRowHeight` prop to `null`.\n */\n @Method()\n async resetRowHeights(rowHeight?: number | \"auto\"): Promise<void> {\n this.globalRowHeight = rowHeight || \"auto\";\n this.variableRowHeight = undefined;\n }\n\n private showLoadingIndicator() {\n if (this.loadingOptions?.overlay) {\n this.loadingOverlay?.classList.add(\"show\");\n }\n this.loadingIndicator?.classList.add(\"show\");\n }\n\n private startLoadingTimer = (): void => {\n this.hasLoadedForOneSecond = false;\n this.timerStarted = Date.now();\n setTimeout(() => {\n this.hasLoadedForOneSecond = true;\n this.timerStarted = 0;\n }, this.minimumLoadingDisplayDuration);\n };\n\n private isObject = (value: any) =>\n value !== undefined && value !== null && 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 getCellOptions = (cell: any, key: string) => {\n if (!(this.isObject(cell) && Object.keys(cell).includes(key))) return;\n\n return this.getObjectValue(cell, key);\n };\n\n private createUpdatingIndicator = () => {\n const { description, max, min, progress, monochrome } =\n this.updatingOptions || {};\n const visibleColumnCount = this.columns.filter(\n (col) => col.hidden !== true\n ).length;\n return (\n <th\n colSpan={visibleColumnCount + (this.rowSelection && this.data ? 1 : 0)}\n class=\"updating-state\"\n >\n <ic-loading-indicator\n theme={this.theme}\n monochrome={monochrome}\n description={description || \"Updating table data\"}\n fullWidth={true}\n max={max}\n min={min}\n progress={progress}\n type=\"linear\"\n size=\"small\"\n ></ic-loading-indicator>\n </th>\n );\n };\n\n private setRowHeight = (height: number) =>\n pxToRem(\n `${\n height * this.DENSITY_HEIGHT_MULTIPLIER[this.density] -\n this.DENSITY_PADDING_HEIGHT_DIFF[this.density]\n }px`\n );\n\n private setTruncationClass = () =>\n this.truncationPattern\n ? { [`truncation-${this.truncationPattern}`]: true }\n : {};\n\n private getColumnWidth = (\n columnWidth?: string | IcDataTableColumnWidthTypes\n ) => {\n // TODO: Setting max width on columns\n let columnWidthStyling = {};\n\n if (typeof columnWidth === \"string\") {\n columnWidthStyling = {\n ...columnWidthStyling,\n [\"--column-width\"]: columnWidth,\n };\n } else if (columnWidth && Object.keys(columnWidth).length > 0) {\n if (columnWidth.minWidth) {\n columnWidthStyling = {\n ...columnWidthStyling,\n [\"--column-min-width\"]: columnWidth.minWidth,\n };\n }\n\n if (columnWidth.maxWidth) {\n columnWidthStyling = {\n ...columnWidthStyling,\n [\"--column-max-width\"]: columnWidth.maxWidth,\n };\n }\n }\n\n return columnWidthStyling;\n };\n\n private getCalculatedRowHeight = (\n columnProps: IcDataTableColumnObject,\n rowTextWrap: boolean,\n cell: any,\n currentRowHeight?: number\n ) => {\n if (\n (this.truncationPattern || currentRowHeight) &&\n !columnProps?.textWrap &&\n !rowTextWrap &&\n !this.getCellOptions(cell, \"textWrap\") &&\n columnProps?.dataType !== \"element\"\n ) {\n return {\n [this.ROW_HEIGHT_CSS_VARIABLE]: this.setRowHeight(currentRowHeight!),\n };\n }\n\n return {};\n };\n\n private adjustWidthForActionElement = () => {\n const elements = this.el.shadowRoot?.querySelectorAll(\".action-element\");\n elements?.forEach((element) => {\n const width = (element.firstChild as HTMLElement).getBoundingClientRect()\n .width;\n const gridWrapper = element.closest<HTMLElement>(\".cell-grid-wrapper\");\n if (gridWrapper)\n gridWrapper.style.gridTemplateColumns = `auto calc(${width}px + var(--ic-space-xs))`;\n });\n };\n\n private createCellContent = (\n columnProps: IcDataTableColumnObject,\n cell: any,\n cellSlotName: string,\n rowOptions: any,\n hasIcon: boolean,\n cellValue: (key: string) => any,\n rowEmphasis: string,\n currentRowHeight?: number\n ): HTMLElement => (\n <div\n innerHTML={\n columnProps?.dataType === \"element\" &&\n !isSlotUsed(this.el, cellSlotName)\n ? (cell as string)\n : undefined\n }\n class={{\n \"cell-container\": columnProps?.dataType !== \"element\",\n [`cell-alignment-${\n columnProps?.columnAlignment?.horizontal ||\n rowOptions?.rowAlignment?.horizontal ||\n this.getCellAlignment(cell, \"horizontal\")\n }`]:\n !!columnProps?.columnAlignment?.horizontal ||\n !!rowOptions?.rowAlignment?.horizontal ||\n !!this.getCellAlignment(cell, \"horizontal\"),\n [`data-type-${columnProps?.dataType}`]: true,\n [this.TEXT_WRAP_STRING]:\n columnProps?.textWrap ||\n rowOptions?.textWrap ||\n !!this.getCellOptions(cell, \"textWrap\"),\n [\"cell-icon\"]: hasIcon || !!columnProps?.icon?.icon,\n [`cell-emphasis-${\n (this.isObject(cell) && cellValue(\"emphasis\")) ||\n columnProps?.emphasis ||\n rowEmphasis\n }`]:\n (this.isObject(cell) && !!cellValue(\"emphasis\")) ||\n !!columnProps?.emphasis ||\n !!rowEmphasis,\n ...this.setTruncationClass(),\n [this.CELL_CONTAINER_WITH_DESCRIPTION_STRING]:\n this.isObject(cell) && Object.keys(cell).includes(\"description\"),\n }}\n style={{\n ...this.getCalculatedRowHeight(\n columnProps,\n rowOptions?.textWrap,\n cell,\n currentRowHeight\n ),\n ...this.getColumnWidth(columnProps?.columnWidth),\n }}\n data-row-height={\n this.truncationPattern || currentRowHeight\n ? this.setRowHeight(currentRowHeight!)\n : null\n }\n >\n {isSlotUsed(this.el, cellSlotName) ? (\n <slot name={cellSlotName} />\n ) : (\n <Fragment>\n {isSlotUsed(this.el, `${cellSlotName}-icon`) ? (\n <slot name={`${cellSlotName}-icon`} />\n ) : (\n (hasIcon || columnProps?.icon?.onAllCells) &&\n (cellValue(\"icon\") || columnProps?.icon?.icon) && (\n <span\n class=\"icon\"\n innerHTML={cellValue(\"icon\") || columnProps?.icon?.icon}\n ></span>\n )\n )}\n {columnProps?.dataType !== \"element\" &&\n !isSlotUsed(this.el, cellSlotName) && (\n <div\n class={{\n \"cell-text-wrapper\": true,\n \"cell-text-no-wrap\": !this.truncationPattern,\n }}\n >\n <ic-typography\n variant=\"body\"\n class={{\n [`cell-emphasis-${\n (this.isObject(cell) && cellValue(\"emphasis\")) ||\n columnProps?.emphasis ||\n rowEmphasis\n }`]:\n (this.isObject(cell) && !!cellValue(\"emphasis\")) ||\n !!columnProps?.emphasis ||\n !!rowEmphasis,\n [`text-${this.density}`]: this.notDefaultDensity(),\n }}\n >\n {this.isObject(cell) && columnProps?.dataType !== \"date\" ? (\n Object.keys(cell).includes(\"href\") ? (\n <ic-link\n href={cellValue(\"href\")}\n theme={this.theme}\n target={cellValue(\"target\") || undefined}\n rel={cellValue(\"rel\") || undefined}\n >\n {cellValue(\"data\")}\n </ic-link>\n ) : (\n cellValue(\"data\")\n )\n ) : (\n this.getCellContent(cell, columnProps?.dataType)\n )}\n </ic-typography>\n {this.isObject(cell) &&\n Object.keys(cell).includes(\"description\") && (\n <div\n class={{\n [\"cell-description\"]: true,\n [`data-type-${columnProps?.dataType}`]: true,\n }}\n >\n {cellValue(\"description\")?.icon && (\n <span\n class=\"cell-description-icon\"\n innerHTML={cellValue(\"description\").icon}\n ></span>\n )}\n <ic-typography\n variant=\"caption\"\n class=\"cell-description-text\"\n >\n {cellValue(\"description\")?.data ??\n cellValue(\"description\")}\n </ic-typography>\n </div>\n )}\n </div>\n )}\n </Fragment>\n )}\n </div>\n );\n\n private createCells = (row: IcDataTableDataType, rowIndex: number) => {\n const rowKeys = Object.keys(row);\n const rowOptions = this.getObjectValue(row, \"rowOptions\");\n let rowAlignment: string;\n let rowEmphasis: string;\n\n const rowHeader = this.getObjectValue(row, \"header\");\n if (rowHeader) {\n rowAlignment = this.getObjectValue(rowHeader, \"rowAlignment\");\n rowEmphasis = this.getObjectValue(rowHeader, \"emphasis\");\n }\n\n const variableRowHeightVal = this.variableRowHeight?.({\n ...row,\n index: rowIndex,\n });\n\n const currentRowHeight = variableRowHeightVal\n ? variableRowHeightVal !== \"auto\" && variableRowHeightVal\n : this.globalRowHeight !== \"auto\" && this.globalRowHeight;\n\n return this.columns.map((column, index) => {\n if (column.hidden !== true) {\n const cell = this.getObjectValue(row, column[\"key\"]);\n const cellValue = (key: string) => this.getObjectValue(cell, key);\n\n if (rowKeys[index] === \"header\") {\n return (\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 }\n\n const CellContent = this.createCellContent(\n column,\n cell,\n `${column?.key}-${rowIndex}`,\n rowOptions,\n this.isObject(cell) && Object.keys(cell).includes(\"icon\"),\n cellValue,\n rowEmphasis,\n currentRowHeight || undefined\n );\n\n if (rowKeys[index] !== \"rowOptions\") {\n return (\n <td\n class={{\n [\"table-cell\"]: true,\n [`table-density-${this.density}`]: this.notDefaultDensity(),\n [\"with-overflow\"]: column?.dataType === \"element\",\n [`cell-vertical-align-${\n column?.columnAlignment?.vertical ||\n rowOptions?.rowAlignment?.vertical ||\n rowAlignment ||\n this.getCellAlignment(cell, \"vertical\")\n }`]:\n !!column?.columnAlignment?.vertical ||\n !!rowOptions?.rowAlignment?.vertical ||\n !!rowAlignment ||\n !!this.getCellAlignment(cell, \"vertical\"),\n }}\n style={{ ...this.getColumnWidth(column.columnWidth) }}\n >\n {this.isObject(cell) &&\n Object.keys(cell).includes(\"actionElement\") ? (\n <div class=\"cell-grid-wrapper\">\n {CellContent}\n <span\n class=\"action-element\"\n innerHTML={cellValue(\"actionElement\")}\n // eslint-disable-next-line react/jsx-no-bind\n onClick={\n cell.actionOnClick\n ? (event) => this.handleClick(event, cell.actionOnClick)\n : undefined\n }\n ></span>\n </div>\n ) : (\n CellContent\n )}\n </td>\n );\n }\n }\n });\n };\n\n private createColumnHeaders = () =>\n (this.columns || []).map(\n (\n {\n cellAlignment,\n colspan,\n icon,\n key,\n title,\n columnWidth,\n excludeColumnFromSort,\n hidden,\n },\n index\n ) =>\n hidden !== true && (\n <th\n scope=\"col\"\n class={{\n [\"column-header\"]: true,\n [`table-density-${this.density}`]: this.notDefaultDensity(),\n [\"updating-state-headers\"]: this.updating && !this.loading,\n }}\n style={{ ...this.getColumnWidth(columnWidth) }}\n colSpan={colspan}\n >\n <div\n class={{\n \"column-header-inner-container\": true,\n \"truncation-tooltip\": this.columnHeaderTruncation,\n [`column-header-alignment-${cellAlignment}`]: !!cellAlignment,\n }}\n >\n {isSlotUsed(this.el, `${key}-column-icon`) ? (\n <slot name={`${key}-column-icon`} />\n ) : (\n icon &&\n !icon.hideOnHeader && (\n <span class=\"icon\" innerHTML={icon.icon}></span>\n )\n )}\n {this.columnHeaderTruncation ? (\n <ic-tooltip label={title} target={`column-header-${index}`}>\n <ic-typography\n id={`column-header-${index}`}\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-tooltip>\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 {this.sortable && !excludeColumnFromSort && (\n <ic-button\n variant=\"icon-tertiary\"\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 )}\n </div>\n {this.columnHeaderTruncation && (\n <ic-typography\n variant=\"body\"\n aria-hidden=\"true\"\n class={{\n [\"column-header-text\"]: true,\n [\"dummy-column-header-text\"]: this.columnHeaderTruncation,\n [`text-${this.density}`]: this.notDefaultDensity(),\n }}\n >\n {title}\n </ic-typography>\n )}\n </th>\n )\n );\n\n private onRowClick = (row: IcDataTableDataType) => {\n const notCurrentlySelected = !this.selectedRows.includes(row);\n\n this.selectedRows = notCurrentlySelected\n ? [...this.selectedRows, row]\n : this.selectedRows.filter((selectedRow) => selectedRow !== row);\n\n this.icSelectedRowChange.emit({\n row: notCurrentlySelected ? row : null,\n selectedRows: this.selectedRows,\n });\n };\n\n private selectAllRows = () => {\n this.selectedRows =\n this.organisedData &&\n this.selectedRows.length !== this.organisedData.length\n ? [...this.organisedData]\n : [];\n this.icSelectAllRows.emit(this.selectedRows);\n };\n\n private createRows = () => {\n const data = this.showPagination\n ? this.data?.slice(this.fromRow, this.toRow)\n : this.data?.slice();\n\n const paginationOffset = this.showPagination ? this.fromRow : 0;\n\n /**\n * Ensures that createCells has a value in data to map over to actually render the slot.\n * Removes the need for the user to add it multiple times.\n * `addDataToPosition` used to add the element in the correct column order.\n * Adding empty string value in to give `createCells` something to loop over.\n */\n this.organisedData = data?.map((row, rowIndex) => {\n const slottedColumns = this.columns\n .map(\n ({ key }, index) =>\n isSlotUsed(this.el, `${key}-${rowIndex + paginationOffset}`) && {\n key,\n index,\n }\n )\n .filter(\n (col) =>\n !!col &&\n // skip the column if its already in the row\n !Object.prototype.hasOwnProperty.call(row, col.key)\n ) as { key: string; index: number }[];\n return slottedColumns.length > 0\n ? addDataToPosition(row, slottedColumns, \"\")\n : row;\n });\n\n return this.organisedData\n ?.sort(\n this.sortable &&\n !this.disableAutoSort &&\n this.sortedColumn &&\n !this.columns.find((col) => col.key === this.sortedColumn)\n ?.disableAutoSort\n ? this.getSortFunction()\n : undefined\n )\n .map((row, index) => {\n const isRowSelected =\n this.rowSelection && this.selectedRows.includes(row);\n const cellIndex = index + paginationOffset;\n\n return (\n <tr\n class={{\n \"table-row\": true,\n \"table-row-selected\": isRowSelected,\n }}\n >\n {this.rowSelection && (\n <td\n class={{\n \"table-cell\": true,\n \"checkbox-cell\": true,\n [`table-density-${this.density}`]: this.notDefaultDensity(),\n }}\n >\n <div class=\"checkbox-wrapper\">\n <ic-checkbox\n class=\"ic-data-table-checkbox\"\n checked={isRowSelected}\n disabled={this.updating || this.loading}\n hideLabel\n label={`${\n isRowSelected ? \"Deselect\" : \"Select\"\n } row ${cellIndex}`}\n onIcCheck={() => this.onRowClick(row)}\n size={this.density === \"dense\" ? \"small\" : \"medium\"}\n value={cellIndex}\n ></ic-checkbox>\n </div>\n </td>\n )}\n {this.createCells(row, cellIndex)}\n </tr>\n );\n });\n };\n\n private getObjectValue = (cell: object, key: string) =>\n Object.values(cell)[Object.keys(cell).indexOf(key)];\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 sortOrders = this.sortOptions.sortOrders;\n\n if (column !== this.sortedColumn) {\n if (this.sortedColumn) {\n this.el.shadowRoot\n ?.querySelector(`#sort-button-${this.sortedColumn}`)\n ?.setAttribute(\"aria-label\", this.getSortButtonLabel(column)); // 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 this.el.shadowRoot\n ?.querySelector(`#sort-button-${column}`)\n ?.setAttribute(\"aria-label\", this.getSortButtonLabel(column));\n\n this.tableSorted = true;\n\n this.icSortChange.emit({\n columnName: column,\n sorted: this.sortedColumnOrder,\n });\n };\n\n /** Gets all `ic-typography`elements within the data table, excluding column headers and cell descriptions */\n private getTypographyElements = (): HTMLIcTypographyElement[] =>\n Array.from(\n this.el.shadowRoot?.querySelectorAll(\n \"ic-typography:not(.column-header-text,.cell-description-text)\"\n ) || []\n );\n\n private getTooltip = (typographyEl: HTMLIcTypographyElement) =>\n typographyEl.closest<HTMLIcTooltipElement>(this.TOOLTIP);\n\n private updateTruncationTooltip = (removeTooltipOnly = false) => {\n this.getTypographyElements().forEach((typographyEl) => {\n const tooltip = this.getTooltip(typographyEl);\n const cellContainer = this.getCellContainer(typographyEl);\n\n if (cellContainer) {\n if (typographyEl.closest(this.TEXT_WRAP_CLASS)) {\n this.removeTooltip(cellContainer, typographyEl, tooltip);\n typographyEl.setAttribute(\n \"style\",\n `${this.LINE_CLAMP_CSS_VARIABLE}: 0`\n );\n return;\n }\n\n this.regenerateTooltip(\n cellContainer,\n typographyEl,\n tooltip,\n removeTooltipOnly\n );\n }\n });\n };\n\n private updateScrollOffset = () => {\n const tableRowContainer = this.el.shadowRoot?.querySelector(\n \".table-row-container\"\n );\n if (tableRowContainer) this.scrollOffset = tableRowContainer.scrollTop;\n };\n\n private updateRowHeightForDescriptions = (\n rowHeight: number,\n cellContainer: Element\n ) => {\n cellContainer.setAttribute(\n this.DATA_ROW_HEIGHT_STRING,\n rowHeight.toString()\n );\n cellContainer.setAttribute(\n \"style\",\n `${this.ROW_HEIGHT_CSS_VARIABLE}: ${rowHeight}px`\n );\n };\n\n private getDescriptionHeight = (description: Element) => {\n const descriptionMarginTop = window\n .getComputedStyle(description)\n .getPropertyValue(\"margin-top\");\n return description.clientHeight + parseInt(descriptionMarginTop, 10);\n };\n\n /** Method to update the row heights on cells with descriptions and tooltip truncation */\n private updateCellHeightsWithDescriptions = () => {\n const isXSDevice = deviceSizeMatches(IC_DEVICE_SIZES.XS);\n this.el.shadowRoot\n ?.querySelectorAll(this.CELL_DESCRIPTION_STRING)\n ?.forEach((description) => {\n const cellContainer = description.closest<HTMLElement>(\n `.${this.CELL_CONTAINER_WITH_DESCRIPTION_STRING}`\n );\n const typography =\n cellContainer?.querySelector<HTMLIcTypographyElement>(\n this.IC_TYPOGRAPHY_STRING\n );\n\n if (\n typography &&\n cellContainer &&\n this.globalRowHeight &&\n this.globalRowHeight !== \"auto\"\n ) {\n const descriptionHeight = this.getDescriptionHeight(description);\n const descriptionHeightPlusLineHeight =\n descriptionHeight + this.DEFAULT_LINE_HEIGHT;\n if (\n !typography.textContent &&\n descriptionHeightPlusLineHeight > this.globalRowHeight\n ) {\n this.updateRowHeightForDescriptions(\n descriptionHeight,\n cellContainer\n );\n } else if (this.truncationPattern === this.TOOLTIP_STRING) {\n if (descriptionHeightPlusLineHeight > this.globalRowHeight) {\n const cellIcon = cellContainer.querySelector(\".icon\");\n let rowHeight = descriptionHeightPlusLineHeight;\n if (cellIcon && isXSDevice) {\n // recalculate descriptionHeight as when a word break occurs this value changes\n // Additional spacing given for 300-400% zoom\n rowHeight += cellIcon.clientHeight;\n }\n this.updateRowHeightForDescriptions(rowHeight, cellContainer);\n }\n this.addLineClampCSS(typography, cellContainer);\n // Additional case for show/hide truncation for when a description is present, but the text\n // isn't overflowing the cell to trigger the show more button to appear.\n } else if (\n this.truncationPattern === this.SHOW_HIDE_STRING &&\n descriptionHeightPlusLineHeight > this.globalRowHeight &&\n typography.style.getPropertyValue(\"--truncation-max-lines\") !==\n \"initial\"\n ) {\n this.updateRowHeightForDescriptions(\n descriptionHeightPlusLineHeight,\n cellContainer\n );\n this.createShowHideTruncation(\n typography,\n cellContainer,\n descriptionHeight\n );\n }\n }\n });\n };\n\n private regenerateTooltip(\n cellContainer: HTMLElement,\n typographyEl: HTMLIcTypographyElement,\n tooltip: HTMLIcTooltipElement | null,\n removeTooltipOnly?: boolean\n ) {\n // When sorting the table, instead of regenerating the tooltip,\n // the tooltip details are updated\n\n if (tooltip) {\n if (this.tableSorted) {\n tooltip.setAttribute(\"target\", typographyEl.id);\n tooltip.setAttribute(\"label\", typographyEl.textContent!);\n } else {\n this.removeTooltip(cellContainer, typographyEl, tooltip);\n }\n if (removeTooltipOnly) {\n return;\n }\n }\n\n // This add line clamp to data only when\n // the data object has been updated\n if (!typographyEl.getAttribute(\"style\") && this.dataUpdated) {\n this.addLineClampCSS(typographyEl, cellContainer);\n }\n\n if (\n typographyEl?.scrollHeight > cellContainer?.clientHeight &&\n this.truncationPattern === this.TOOLTIP_STRING\n ) {\n if (\n !typographyEl.getAttribute(\"style\") ||\n typographyEl.style.cssText.includes(\n `${this.LINE_CLAMP_CSS_VARIABLE}: 0;`\n )\n ) {\n this.addLineClampCSS(typographyEl, cellContainer);\n }\n if (!cellContainer.querySelector(this.IC_TOOLTIP_STRING))\n this.createTruncationTooltip(typographyEl, cellContainer);\n }\n }\n private setTableDimensions = () => {\n let tableHostDimensions = {};\n\n if (this.width) {\n tableHostDimensions = {\n ...tableHostDimensions,\n [\"--table-width\"]: this.width,\n };\n }\n\n if (this.height) {\n tableHostDimensions = {\n ...tableHostDimensions,\n [\"--table-height\"]: this.height,\n };\n }\n\n if (this.maxWidth) {\n tableHostDimensions = {\n ...tableHostDimensions,\n [\"--table-max-width\"]: this.maxWidth,\n };\n }\n\n if (this.minWidth) {\n tableHostDimensions = {\n ...tableHostDimensions,\n [\"--table-min-width\"]: this.minWidth,\n };\n }\n\n return tableHostDimensions;\n };\n\n private removeTooltip(\n cellContainer: HTMLElement,\n typographyEl: HTMLIcTypographyElement,\n tooltip: HTMLIcTooltipElement | null\n ) {\n cellContainer\n .querySelector(this.CELL_TEXT_WRAPPER_STRING)\n ?.prepend(typographyEl);\n tooltip?.remove();\n }\n\n private addLineClampCSS(\n typographyEl: HTMLIcTypographyElement,\n cellContainer: HTMLElement\n ) {\n const descriptionCellHeight = cellContainer.querySelector(\n this.CELL_DESCRIPTION_STRING\n )?.clientHeight;\n const cellContainerHeight = cellContainer.clientHeight;\n\n let totalHeight = cellContainerHeight;\n if (\n cellContainer.classList.contains(\n this.CELL_CONTAINER_WITH_DESCRIPTION_STRING\n ) &&\n descriptionCellHeight &&\n cellContainerHeight > descriptionCellHeight\n ) {\n const iconHeight =\n (deviceSizeMatches(IC_DEVICE_SIZES.XS) &&\n cellContainer?.querySelector(\".icon\")?.clientHeight) ||\n 0;\n totalHeight = totalHeight - descriptionCellHeight - iconHeight;\n }\n\n typographyEl.setAttribute(\n \"style\",\n `${this.LINE_CLAMP_CSS_VARIABLE}: ${this.getLines(totalHeight || 0)}`\n );\n }\n\n private createTruncationTooltip(\n typographyEl: HTMLIcTypographyElement,\n cellContainer: HTMLElement\n ) {\n const tooltipEl = document.createElement(\n this.IC_TOOLTIP_STRING\n ) as HTMLIcTooltipElement;\n tooltipEl.setAttribute(\"target\", typographyEl.id);\n tooltipEl.setAttribute(\"label\", typographyEl.textContent!);\n tooltipEl.classList.add(\"ic-tooltip-overflow\");\n tooltipEl.setExternalPopperProps({\n // This might need reverting back to absolute if the tooltip doesn't dynamically position itself correctly\n strategy: \"fixed\",\n });\n cellContainer\n .querySelector(this.CELL_TEXT_WRAPPER_STRING)\n ?.prepend(tooltipEl);\n tooltipEl.prepend(typographyEl);\n }\n\n private fixCellTooltip = (element: Element) => {\n let tooltip: HTMLIcTooltipElement | null = null;\n const tooltipChildElement =\n element.shadowRoot?.querySelector<HTMLIcTooltipElement>(\n this.IC_TOOLTIP_STRING\n );\n\n if (element.tagName === \"IC-TOOLTIP\") {\n tooltip = element as HTMLIcTooltipElement;\n } else if (tooltipChildElement) {\n tooltip = tooltipChildElement;\n } else if (element.children?.length > 0) {\n Array.from(element.children).forEach((el) => {\n this.fixCellTooltip(el);\n });\n } else {\n return;\n }\n\n tooltip?.setExternalPopperProps({\n strategy: \"fixed\",\n });\n };\n\n private fixCellSelect = () => {\n this.el.shadowRoot\n ?.querySelectorAll(\".data-type-element\")\n ?.forEach((element) => {\n const children = Array.from(element.children);\n children?.forEach((el) => {\n if (el.tagName === \"IC-SELECT\") {\n const menu = el.shadowRoot?.querySelector(\"ic-menu\");\n menu?.setExternalPopperProps({\n strategy: \"fixed\",\n });\n (el as HTMLIcSelectElement).style.setProperty(\n \"--input-width\",\n `${element.clientWidth}px`\n );\n }\n });\n });\n };\n\n private fixCellTooltips = () => {\n this.el.shadowRoot\n ?.querySelectorAll(\".data-type-element\")\n ?.forEach((element) => {\n const slotElements = getSlotElements(element);\n slotElements?.forEach((slottedEl) => {\n this.fixCellTooltip(slottedEl as Element);\n });\n });\n\n this.el.shadowRoot\n ?.querySelectorAll(\".action-element\")\n ?.forEach((actionElementSpan) => this.fixCellTooltip(actionElementSpan));\n };\n\n private handleClick = (event: Event, callback: (event: Event) => void) =>\n callback(event);\n\n private renderTableBody = (\n loading: boolean,\n data?: IcDataTableDataType[],\n overlay?: boolean\n ) => {\n if (!data?.length) return;\n\n if (overlay && loading) {\n return <tbody>{this.createRows()}</tbody>;\n } else if (loading && !overlay) {\n return null;\n } else {\n return <tbody>{this.createRows()}</tbody>;\n }\n };\n\n private renderLoadingIndicator = (\n isLoading: boolean,\n loadingOptions?: IcLoadingOptions\n ) => {\n if (!isLoading) return null;\n\n return (\n <Fragment>\n <div\n class=\"loading-overlay\"\n ref={(el) => (this.loadingOverlay = el)}\n ></div>\n <ic-loading-indicator\n theme={this.theme}\n monochrome={loadingOptions?.monochrome}\n class={{\n \"loading-empty\": isLoading,\n loading: true,\n }}\n description={loadingOptions?.description || \"Loading table data\"}\n label={loadingOptions?.label || \"Loading...\"}\n labelDuration={loadingOptions?.labelDuration}\n max={loadingOptions?.max}\n min={loadingOptions?.min}\n progress={loadingOptions?.progress}\n ref={(el: HTMLIcLoadingIndicatorElement) =>\n (this.loadingIndicator = el)\n }\n ></ic-loading-indicator>\n </Fragment>\n );\n };\n\n private renderAriaLiveLoading = () => {\n if (this.loading) {\n return this.loadingOptions?.label || \"Loading...\";\n } else if (this.updating) {\n return this.updatingOptions?.description || \"Updating table data\";\n } else {\n return \"\";\n }\n };\n\n private renderEmptyState = (\n loading: boolean,\n data?: IcDataTableDataType[],\n overlay?: boolean\n ) => {\n const emptyStateEl = isSlotUsed(this.el, \"empty-state\") ? (\n <slot name=\"empty-state\" />\n ) : (\n <ic-empty-state\n aligned=\"center\"\n heading=\"No Data\"\n class=\"loading-empty\"\n ></ic-empty-state>\n );\n\n if (loading && !data?.length && overlay) {\n return emptyStateEl;\n } else if (!loading && !data?.length) {\n return emptyStateEl;\n } else {\n return null;\n }\n };\n\n render() {\n const {\n caption,\n columns,\n createColumnHeaders,\n createUpdatingIndicator,\n data,\n density,\n hideColumnHeaders,\n rowSelection,\n loading,\n loadingOptions,\n paginationBarOptions,\n rowsPerPage,\n scrollable,\n scrollOffset,\n selectAllRows,\n selectedRows,\n showPagination,\n sortable,\n sortedColumn,\n sortedColumnOrder,\n stickyColumnHeaders,\n updateScrollOffset,\n updating,\n tableLayout,\n theme,\n } = this;\n\n const rowsSelected = selectedRows.length > 0;\n const allRowsSelected =\n selectedRows.length === (showPagination ? rowsPerPage : data?.length);\n\n const headerCheckboxLabelState = rowsSelected\n ? allRowsSelected\n ? \"deselect all\"\n : \"select all remaining\"\n : \"select all\";\n\n return (\n <Host\n style={{ ...this.setTableDimensions() }}\n class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}\n >\n <div class=\"table-container\">\n {isSlotUsed(this.el, \"title-bar\") && <slot name=\"title-bar\" />}\n <div\n class={{\n [\"table-row-container\"]: true,\n scrollable,\n }}\n tabIndex={scrollable ? 0 : undefined}\n onScroll={updateScrollOffset}\n >\n <table\n style={{\n \"--table-layout\": tableLayout,\n }}\n >\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>\n {rowSelection && data && (\n <th\n class={{\n \"column-header\": true,\n \"checkbox-cell\": true,\n \"updating-state-headers\": updating && !loading,\n [`table-density-${density}`]:\n this.notDefaultDensity(),\n }}\n >\n <div class=\"checkbox-wrapper\">\n <ic-checkbox\n class=\"ic-data-table-checkbox\"\n checked={rowsSelected && allRowsSelected}\n disabled={updating || loading}\n hideLabel\n indeterminate={rowsSelected && !allRowsSelected}\n label={`${caption} ${headerCheckboxLabelState} rows`}\n nativeIndeterminateBehaviour\n onIcCheck={() => selectAllRows()}\n size={density === \"dense\" ? \"small\" : \"medium\"}\n value={caption}\n ></ic-checkbox>\n </div>\n </th>\n )}\n {createColumnHeaders()}\n </tr>\n </thead>\n )}\n {updating &&\n !loading &&\n (hideColumnHeaders ? (\n <thead>{createUpdatingIndicator()}</thead>\n ) : (\n createUpdatingIndicator()\n ))}\n {this.renderTableBody(loading, data, loadingOptions?.overlay)}\n </table>\n {this.renderEmptyState(loading, data, loadingOptions?.overlay)}\n </div>\n <div aria-live=\"assertive\" class=\"sr-only\">\n {this.renderAriaLiveLoading()}\n </div>\n {this.renderLoadingIndicator(loading, loadingOptions)}\n {(showPagination || isSlotUsed(this.el, \"pagination-bar\")) && (\n <div class=\"pagination-container\">\n {isSlotUsed(this.el, \"pagination-bar\") ? (\n <slot name=\"pagination-bar\" />\n ) : (\n <ic-pagination-bar\n alignment={paginationBarOptions.alignment}\n hideAllFromItemsPerPage={\n paginationBarOptions.hideAllFromItemsPerPage\n }\n hideRangeLabel={paginationBarOptions.hideRangeLabel}\n itemLabel={paginationBarOptions.itemLabel}\n itemsPerPageOptions={paginationBarOptions.itemsPerPageOptions}\n monochrome={paginationBarOptions.monochrome}\n pageLabel={paginationBarOptions.pageLabel}\n rangeLabelType={paginationBarOptions.rangeLabelType}\n selectedItemsPerPage={\n paginationBarOptions.selectedItemsPerPage\n }\n selectItemsPerPageOnEnter={\n paginationBarOptions.selectItemsPerPageOnEnter\n }\n setToFirstPageOnPaginationChange={\n paginationBarOptions.setToFirstPageOnPaginationChange\n }\n showGoToPageControl={paginationBarOptions.showGoToPageControl}\n showItemsPerPageControl={\n paginationBarOptions.showItemsPerPageControl\n }\n theme={theme}\n totalItems={data?.length ?? 0}\n type={paginationBarOptions.type}\n ></ic-pagination-bar>\n )}\n </div>\n )}\n {sortable && (\n <div class=\"screen-reader-sort-text\" aria-live=\"polite\">\n {sortedColumnOrder !== \"unsorted\" && sortedColumn\n ? `${\n columns.find((col) => col.key === sortedColumn)?.title ||\n sortedColumn\n } sorted ${sortedColumnOrder}`\n : \"table unsorted\"}\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,f as t,h as i,H as o,g as n}from"./p-8e4e97b4.js";import{t as a,b as s,g as r,u as l,I as d,i as c,v as b}from"./p-13f52d7b.js";const u='/*! 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;margin-right:var(--ic-space-xs);list-style:none}:host(.in-side-menu){margin-right:0}:host::part(button){height:100%;min-height:2.5rem}:host(.in-side-menu) ::part(button){color:var(--ic-top-navigation-icon-active)}:host(.in-side-menu) ::part(button):hover{color:var(--ic-top-navigation-icon-hover);background-color:var(--ic-top-navigation-icon-hover-background)}:host(.in-side-menu) ::part(button):active{color:var(--ic-top-navigation-icon-pressed);background-color:var(--ic-top-navigation-icon-pressed-background)}:host(.in-side-menu) ::slotted(ic-badge){margin-left:var(--ic-space-xs)}';const p=u;const m=[...b,"title"];const h=class{constructor(i){e(this,i);this.inheritedAttributes={};this.hostMutationObserver=null;this.mode="navbar";this.download=false;this.theme="inherit";this.hostMutationCallback=e=>{let i=false;e.forEach((({attributeName:e})=>{if(e){const t=this.el.getAttribute(e);if(t&&m.includes(e)){this.inheritedAttributes[e]=t;i=true}}}));if(i){t(this)}}}componentWillLoad(){this.inheritedAttributes=a(this.el,m)}componentDidLoad(){this.updateTheme();s([{prop:this.label,propName:"label"}],"Navigation Button");this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true})}componentWillRender(){var e;(e=this.el.querySelector(`[slot="icon"]`))===null||e===void 0?void 0:e.setAttribute("viewBox","0 0 24 24")}disconnectedCallback(){var e;(e=this.hostMutationObserver)===null||e===void 0?void 0:e.disconnect()}navBarMenuOpenHandler(){this.mode="menu"}navBarMenuCloseHandler(){this.mode="navbar"}brandChangeHandler({detail:{mode:e}}){this.updateTheme(e)}async setFocus(){var e;(e=this.buttonEl)===null||e===void 0?void 0:e.setFocus()}updateTheme(e=r()){var t;if((t=this.el.parentElement)===null||t===void 0?void 0:t.closest(l))return;this.theme=e===d.Light?d.Dark:d.Light}render(){const{download:e,href:t,inheritedAttributes:n,label:a,mode:s,referrerpolicy:r,rel:l,target:d,theme:b}=this;const u=s==="menu";const p={download:e,href:t,referrerpolicy:r,rel:l,target:d,theme:b};return i(o,{key:"341c602f37816c5bd021d7d2457a60cc48ec0a4d",class:{"in-side-menu":u,[`ic-theme-${b}`]:b!=="inherit"}},i("ic-button",Object.assign({key:"7f122b31c8584bc6ccea93220a60f1a7754f7985",ref:e=>this.buttonEl=e,class:{"popout-menu-button":u},"aria-label":!u?a:null,disableTooltip:u,fullWidth:u,monochrome:!u,size:u?"medium":"large",variant:u?"tertiary":"icon"},p,n),u?a:"",i("slot",{key:"68d45cf8961f30491f610d5c009da84350611c1b",slot:"left-icon",name:"icon"}),c(this.el,"badge")&&i("slot",{key:"43740c1e00ca73197b6d121b6ccf6df550d3b5c7",name:"badge"})))}static get delegatesFocus(){return true}get el(){return n(this)}};h.style=p;export{h as ic_navigation_button};
2
- //# sourceMappingURL=p-7dcdb89b.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icNavigationButtonCss","IcNavigationButtonStyle0","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","NavigationButton","constructor","hostRef","this","inheritedAttributes","hostMutationObserver","mode","download","theme","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","attribute","el","getAttribute","includes","forceUpdate","componentWillLoad","inheritAttributes","componentDidLoad","updateTheme","onComponentRequiredPropUndefined","prop","label","propName","MutationObserver","observe","attributes","componentWillRender","_a","querySelector","setAttribute","disconnectedCallback","disconnect","navBarMenuOpenHandler","navBarMenuCloseHandler","brandChangeHandler","detail","setFocus","buttonEl","getBrandForegroundAppearance","parentElement","closest","IC_BLOCK_COLOR_COMPONENTS","IcBrandForegroundEnum","Light","Dark","render","href","referrerpolicy","rel","target","isMenuMode","buttonProps","h","Host","key","class","Object","assign","ref","disableTooltip","fullWidth","monochrome","size","variant","slot","name","isSlotUsed","delegatesFocus"],"sources":["../web-components/dist/collection/components/ic-navigation-button/ic-navigation-button.css?tag=ic-navigation-button&encapsulation=shadow","../web-components/dist/collection/components/ic-navigation-button/ic-navigation-button.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 margin-right: var(--ic-space-xs);\n list-style: none;\n}\n\n:host(.in-side-menu) {\n margin-right: 0;\n}\n\n:host::part(button) {\n height: 100%;\n min-height: 2.5rem;\n}\n\n:host(.in-side-menu) ::part(button) {\n color: var(--ic-top-navigation-icon-active);\n}\n\n:host(.in-side-menu) ::part(button):hover {\n color: var(--ic-top-navigation-icon-hover);\n background-color: var(--ic-top-navigation-icon-hover-background);\n}\n\n:host(.in-side-menu) ::part(button):active {\n color: var(--ic-top-navigation-icon-pressed);\n background-color: var(--ic-top-navigation-icon-pressed-background);\n}\n\n:host(.in-side-menu) ::slotted(ic-badge) {\n margin-left: var(--ic-space-xs);\n}\n","import { Host, forceUpdate, h, } from \"@stencil/core\";\nimport { IC_BLOCK_COLOR_COMPONENTS, IC_INHERITED_ARIA, } from \"../../utils/constants\";\nimport { getBrandForegroundAppearance, inheritAttributes, isSlotUsed, onComponentRequiredPropUndefined, } from \"../../utils/helpers\";\nimport { IcBrandForegroundEnum, } from \"../../utils/types\";\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n/**\n * @slot icon - Content will be placed to the left of the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n */\nexport class NavigationButton {\n constructor() {\n this.inheritedAttributes = {};\n this.hostMutationObserver = null;\n /**\n * The display mode.\n */\n this.mode = \"navbar\";\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n this.download = false;\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n this.theme = \"inherit\";\n /**\n * Triggered when attributes of host element change\n */\n this.hostMutationCallback = (mutationList) => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n }\n componentDidLoad() {\n this.updateTheme();\n onComponentRequiredPropUndefined([{ prop: this.label, propName: \"label\" }], \"Navigation Button\");\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n componentWillRender() {\n var _a;\n (_a = this.el\n .querySelector(`[slot=\"icon\"]`)) === null || _a === void 0 ? void 0 : _a.setAttribute(\"viewBox\", \"0 0 24 24\");\n }\n disconnectedCallback() {\n var _a;\n (_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n navBarMenuOpenHandler() {\n this.mode = \"menu\";\n }\n navBarMenuCloseHandler() {\n this.mode = \"navbar\";\n }\n brandChangeHandler({ detail: { mode } }) {\n this.updateTheme(mode);\n }\n /**\n * Sets focus on the native `button`.\n */\n async setFocus() {\n var _a;\n (_a = this.buttonEl) === null || _a === void 0 ? void 0 : _a.setFocus();\n }\n updateTheme(mode = getBrandForegroundAppearance()) {\n var _a;\n if ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.closest(IC_BLOCK_COLOR_COMPONENTS))\n return;\n this.theme =\n mode === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n }\n render() {\n const { download, href, inheritedAttributes, label, mode, referrerpolicy, rel, target, theme, } = this;\n const isMenuMode = mode === \"menu\";\n const buttonProps = {\n download,\n href,\n referrerpolicy,\n rel,\n target,\n theme,\n };\n return (h(Host, { key: '341c602f37816c5bd021d7d2457a60cc48ec0a4d', class: {\n \"in-side-menu\": isMenuMode,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n } }, h(\"ic-button\", Object.assign({ key: '7f122b31c8584bc6ccea93220a60f1a7754f7985', ref: (el) => (this.buttonEl = el), class: { \"popout-menu-button\": isMenuMode }, \"aria-label\": !isMenuMode ? label : null, disableTooltip: isMenuMode, fullWidth: isMenuMode, monochrome: !isMenuMode, size: isMenuMode ? \"medium\" : \"large\", variant: isMenuMode ? \"tertiary\" : \"icon\" }, buttonProps, inheritedAttributes), isMenuMode ? label : \"\", h(\"slot\", { key: '68d45cf8961f30491f610d5c009da84350611c1b', slot: \"left-icon\", name: \"icon\" }), isSlotUsed(this.el, \"badge\") && h(\"slot\", { key: '43740c1e00ca73197b6d121b6ccf6df550d3b5c7', name: \"badge\" }))));\n }\n static get is() { return \"ic-navigation-button\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-navigation-button.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-navigation-button.css\"]\n };\n }\n static get properties() {\n return {\n \"download\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | boolean\",\n \"resolved\": \"boolean | string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the user can save the linked URL instead of navigating to it.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"download\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"href\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The URL that the link points to. This will render the button as an \\\"a\\\" tag.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"href\",\n \"reflect\": false\n },\n \"hreflang\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The human language of the linked URL.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hreflang\",\n \"reflect\": false\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label info to display.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"referrerpolicy\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"ReferrerPolicy\",\n \"resolved\": \"\\\"\\\" | \\\"no-referrer\\\" | \\\"no-referrer-when-downgrade\\\" | \\\"origin\\\" | \\\"origin-when-cross-origin\\\" | \\\"same-origin\\\" | \\\"strict-origin\\\" | \\\"strict-origin-when-cross-origin\\\" | \\\"unsafe-url\\\" | undefined\",\n \"references\": {\n \"ReferrerPolicy\": {\n \"location\": \"global\",\n \"id\": \"global::ReferrerPolicy\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"How much of the referrer to send when following the link.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"referrerpolicy\",\n \"reflect\": false\n },\n \"rel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The relationship of the linked URL as space-separated link types.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"rel\",\n \"reflect\": false\n },\n \"target\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"target\",\n \"reflect\": false\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"mode\": {}\n };\n }\n static get methods() {\n return {\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets focus on the native `button`.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"icNavigationMenuOpened\",\n \"method\": \"navBarMenuOpenHandler\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"icNavigationMenuClosed\",\n \"method\": \"navBarMenuCloseHandler\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"brandChange\",\n \"method\": \"brandChangeHandler\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-navigation-button.js.map\n"],"mappings":"8IAAA,MAAMA,EAAwB,k8FAC9B,MAAAC,EAAeD,ECGf,MAAME,EAAqB,IAAIC,EAAmB,S,MAKrCC,EAAgB,MACzB,WAAAC,CAAAC,G,UACIC,KAAKC,oBAAsB,GAC3BD,KAAKE,qBAAuB,KAI5BF,KAAKG,KAAO,SAIZH,KAAKI,SAAW,MAIhBJ,KAAKK,MAAQ,UAIbL,KAAKM,qBAAwBC,IACzB,IAAIC,EAAuB,MAC3BD,EAAaE,SAAQ,EAAGC,oBACpB,GAAIA,EAAe,CACf,MAAMC,EAAYX,KAAKY,GAAGC,aAAaH,GACvC,GAAIC,GAAahB,EAAmBmB,SAASJ,GAAgB,CACzDV,KAAKC,oBAAoBS,GAAiBC,EAC1CH,EAAuB,I,MAInC,GAAIA,EAAsB,CACtBO,EAAYf,K,GAIxB,iBAAAgB,GACIhB,KAAKC,oBAAsBgB,EAAkBjB,KAAKY,GAAIjB,E,CAE1D,gBAAAuB,GACIlB,KAAKmB,cACLC,EAAiC,CAAC,CAAEC,KAAMrB,KAAKsB,MAAOC,SAAU,UAAY,qBAC5EvB,KAAKE,qBAAuB,IAAIsB,iBAAiBxB,KAAKM,sBACtDN,KAAKE,qBAAqBuB,QAAQzB,KAAKY,GAAI,CACvCc,WAAY,M,CAGpB,mBAAAC,GACI,IAAIC,GACHA,EAAK5B,KAAKY,GACNiB,cAAc,oBAAsB,MAAQD,SAAY,OAAS,EAAIA,EAAGE,aAAa,UAAW,Y,CAEzG,oBAAAC,GACI,IAAIH,GACHA,EAAK5B,KAAKE,wBAA0B,MAAQ0B,SAAY,OAAS,EAAIA,EAAGI,Y,CAE7E,qBAAAC,GACIjC,KAAKG,KAAO,M,CAEhB,sBAAA+B,GACIlC,KAAKG,KAAO,Q,CAEhB,kBAAAgC,EAAqBC,QAAQjC,KAAEA,KAC3BH,KAAKmB,YAAYhB,E,CAKrB,cAAMkC,GACF,IAAIT,GACHA,EAAK5B,KAAKsC,YAAc,MAAQV,SAAY,OAAS,EAAIA,EAAGS,U,CAEjE,WAAAlB,CAAYhB,EAAOoC,KACf,IAAIX,EACJ,IAAKA,EAAK5B,KAAKY,GAAG4B,iBAAmB,MAAQZ,SAAY,OAAS,EAAIA,EAAGa,QAAQC,GAC7E,OACJ1C,KAAKK,MACDF,IAASwC,EAAsBC,MACzBD,EAAsBE,KACtBF,EAAsBC,K,CAEpC,MAAAE,GACI,MAAM1C,SAAEA,EAAQ2C,KAAEA,EAAI9C,oBAAEA,EAAmBqB,MAAEA,EAAKnB,KAAEA,EAAI6C,eAAEA,EAAcC,IAAEA,EAAGC,OAAEA,EAAM7C,MAAEA,GAAWL,KAClG,MAAMmD,EAAahD,IAAS,OAC5B,MAAMiD,EAAc,CAChBhD,WACA2C,OACAC,iBACAC,MACAC,SACA7C,SAEJ,OAAQgD,EAAEC,EAAM,CAAEC,IAAK,2CAA4CC,MAAO,CAClE,eAAgBL,EAChB,CAAC,YAAY9C,KAAUA,IAAU,YAChCgD,EAAE,YAAaI,OAAOC,OAAO,CAAEH,IAAK,2CAA4CI,IAAM/C,GAAQZ,KAAKsC,SAAW1B,EAAK4C,MAAO,CAAE,qBAAsBL,GAAc,cAAeA,EAAa7B,EAAQ,KAAMsC,eAAgBT,EAAYU,UAAWV,EAAYW,YAAaX,EAAYY,KAAMZ,EAAa,SAAW,QAASa,QAASb,EAAa,WAAa,QAAUC,EAAanD,GAAsBkD,EAAa7B,EAAQ,GAAI+B,EAAE,OAAQ,CAAEE,IAAK,2CAA4CU,KAAM,YAAaC,KAAM,SAAWC,EAAWnE,KAAKY,GAAI,UAAYyC,EAAE,OAAQ,CAAEE,IAAK,2CAA4CW,KAAM,W,CAIvnB,yBAAWE,GAAmB,OAAO,IAAK,C","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as i,H as o,g as s}from"./p-8e4e97b4.js";import{m as n,d as a}from"./p-13f52d7b.js";import{c as r}from"./p-aae38bee.js";const l='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@media (prefers-reduced-motion: no-preference){:host .opening-from-parent{animation:slide-in var(--ic-transition-duration-slow) ease-in-out}:host .opening-from-child{animation:slide-out var(--ic-transition-duration-slow) ease-in-out}}:host{border-radius:var(--ic-border-radius);color:var(--ic-popover-nav-text);--ic-typography-color:var(--ic-popover-nav-text);position:relative;z-index:var(--ic-z-index-popover);box-sizing:border-box;box-shadow:var(--ic-elevation-overlay);display:none;overflow-x:clip}:host(.on-dialog){inset:auto !important}:host(.on-dialog-fix-translate){transform:translate(0, var(--ic-space-xs)) !important}:host(.on-dialog-translate-y){transform:translate(0, calc(-1 * var(--translate-y))) !important}.menu{border:var(--ic-border-default);border-color:var(--ic-popover-border);border-radius:var(--ic-border-radius);background-color:var(--ic-popover-background);visibility:hidden;height:0;display:flex;flex-direction:column}:host(:focus-within){box-shadow:var(--ic-border-focus)}.menu:focus-visible{outline:none}:host(.ic-popover-menu-open){display:block;min-width:calc(20rem - var(--ic-space-xl));width:var(--popover-width, 20rem);max-width:calc(100vw - var(--ic-space-xl))}:host(.ic-popover-menu-open) .menu{visibility:visible;height:-moz-fit-content;height:fit-content;max-height:var(--max-height, -moz-fit-content);max-height:var(--max-height, fit-content);overflow-y:auto;overflow-x:hidden}.parent-label{--ic-typography-color:var(--ic-popover-parent-label);margin:var(--ic-space-xs) var(--ic-space-xs) 0}@keyframes slide-in{from{opacity:0;transform:translateX(10rem)}to{opacity:1;transform:translateX(0)}}@keyframes slide-out{from{opacity:0;transform:translateX(-10rem)}to{opacity:1;transform:translateX(0)}}';const c=l;const d="div.menu-body";const h=class{constructor(i){e(this,i);this.icPopoverClosed=t(this,"icPopoverClosed",7);this.ARIA_LABEL="aria-label";this.popoverMenuEls=[];this.openingFromChild=false;this.openingFromParent=false;this.submenuLevel=1;this.theme="inherit";this.open=undefined;this.setButtonFocus=()=>{var e;(e=this.popoverMenuEls[this.currentFocus])===null||e===void 0?void 0:e.focus()};this.findAnchorEl=e=>{let t=null;if(!e){this.submenuId===undefined&&console.error("No anchor specified for popover component")}else{t=document.querySelector(e.indexOf("#")===0?e:"#"+e);if(t===null){console.error(`Popover anchor element '${e}' not found`)}}return t};this.isNotPopoverMenuEl=e=>{const{id:t,tagName:i}=e.target;return t!==this.anchor&&i!=="IC-MENU-ITEM"&&i!=="IC-MENU-GROUP"&&i!=="IC-POPOVER-MENU"};this.getNextItemToSelect=(e,t)=>{const i=this.popoverMenuEls.length-1;if(e<1){e=0}let o=t?e+1:e-1;if(o<0){o=i}else if(o>i){o=0}return o};this.addMenuItems=e=>{var t;for(let i=0;i<e.length;i++){const o=e[i];if(o.tagName==="IC-MENU-ITEM"){this.popoverMenuEls.push(o)}else if(o.tagName==="IC-MENU-GROUP"){const e=(t=o.shadowRoot)===null||t===void 0?void 0:t.querySelector(".menu-items-wrapper");if(e){const t=n(e);t&&this.addMenuItems(t)}}}};this.getMenuAriaLabel=()=>{const e=this.el.getAttribute(this.ARIA_LABEL);if(a(this.submenuId)){return`${e}, within nested level ${this.submenuLevel} ${this.parentLabel} submenu,`}else{return e}};this.handleBackButtonClick=()=>{var e;(e=this.parentPopover)===null||e===void 0?void 0:e.openFromChild();this.open=false};this.initPopperJS=()=>{if(this.anchorEl){this.popperInstance=r(this.anchorEl,this.el,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,4]}},{name:"flip",options:{fallbackPlacements:["top-start","top-end","bottom-end"],rootBoundary:"viewport"}}]})}}}watchOpenHandler(){var e;const t=(e=this.el.parentElement)===null||e===void 0?void 0:e.querySelectorAll(`ic-popover-menu`);if(this.open){if(t.length>0){t.forEach((e=>{if(e!==this.el){e.open=false}}))}if(this.parentPopover!==undefined&&!this.popoverMenuEls.some((e=>e.id))){this.backButton&&this.popoverMenuEls.unshift(this.backButton)}this.currentFocus=0;setTimeout(this.setButtonFocus,50)}else if(this.popperInstance){if(t.length>0){t.forEach((e=>{if(e!==this.el){e.open=false}}))}this.popperInstance.destroy();this.popperInstance=null}}disconnectedCallback(){if(this.popperInstance){this.popperInstance.destroy();this.popperInstance=null}}componentDidLoad(){var e;const t=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(d);if(t){const e=n(t);if(e!==null){this.addMenuItems(e)}}if(this.submenuId===undefined&&this.el.getAttribute(this.ARIA_LABEL)===null){console.error(`No aria-label specified for popover menu component - aria-label required`)}this.watchOpenHandler()}componentWillRender(){this.anchorEl=this.findAnchorEl(this.anchor)}componentDidRender(){if(this.open&&!this.popperInstance){this.initPopperJS()}}handleMenuItemClick(e){if(!e.detail.submenuTriggerFor&&e.detail.label!=="Back"){this.closeMenu(false,e.detail)}}handleSubmenuChange(e){const t=e.target;this.open=false;const i=document.querySelector(`ic-popover-menu[submenu-id=${t.submenuTriggerFor}]`);i.parentPopover=this.el;i.anchor=this.anchor;i.ariaLabel=this.el.getAttribute(this.ARIA_LABEL);i.openFromParent();i.submenuLevel=this.submenuLevel+1;i.parentLabel=t.label}handleClick(e){if(this.open&&this.isNotPopoverMenuEl(e)){this.closeMenu()}}handleKeyDown(e){switch(e.key){case"ArrowDown":case"ArrowUp":e.preventDefault();this.currentFocus=this.getNextItemToSelect(this.currentFocus,e.key==="ArrowDown");this.setButtonFocus();break;case"Home":this.currentFocus=0;this.setButtonFocus();break;case"End":this.currentFocus=this.popoverMenuEls.length-1;this.setButtonFocus();break;case"Escape":case"Tab":e.preventDefault();if(this.open){this.closeMenu(true);this.el.blur()}break}}async openFromChild(){this.open=true;this.openingFromChild=true;setTimeout((()=>this.openingFromChild=false),1e3)}async openFromParent(){this.open=true;this.openingFromParent=true;setTimeout((()=>this.openingFromParent=false),1e3)}async closeMenu(e=false,t){var i;this.open=false;if(this.parentPopover){this.parentPopover.closeMenu(e,t)}else{if(e){(i=this.anchorEl)===null||i===void 0?void 0:i.focus()}this.icPopoverClosed.emit(t)}}render(){return i(o,{key:"2cf6304cab334813b297e8bf91d25c57ab6b9b91",class:{["ic-popover-menu-open"]:!!this.open,[`ic-theme-${this.theme}`]:this.theme!=="inherit"}},i("div",{key:"b7f520998946555e6e5d8ca43d194ec142cf4102",id:this.parentPopover===undefined?`ic-popover-submenu-${this.submenuId}`:"",class:{menu:true}},i("span",{key:"5c43e11463a6fe04356d73c2522eca4c1cb39d68",class:{"opening-from-parent":this.openingFromParent,"opening-from-child":this.openingFromChild}},a(this.submenuId)&&i("span",{key:"7bb226ae2aa077cff93ea367f136f171020c0718"},i("span",{key:"0cc54f3ef474f2cbe92c3c04437d83cf35e92de1",role:"menu"},i("ic-menu-item",{key:"ae3f4d6162e643ac6245821e392b2b9491215287",class:"ic-popover-submenu-back-button",ref:e=>this.backButton=e,label:"Back",onClick:this.handleBackButtonClick,id:`ic-popover-submenu-back-button-${this.submenuLevel}`},i("svg",{key:"c3e1211479d31e062b13aba36a025fec0814cfee",slot:"icon",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"submenu-back-icon"},i("path",{key:"dc399eef7ee50dc37dc57aa1f241292d0827a743",d:"M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z",fill:"currentColor"})))),i("ic-typography",{key:"b1ce83e9b01277953f21fe9c58763915c4a8515a",variant:"subtitle-small",class:"parent-label"},this.parentLabel)),i("div",{key:"fab42dde1d195b5d47dd1c669a7bce81f79f42c6",class:"menu-body","aria-label":this.getMenuAriaLabel(),role:"menu"},i("slot",{key:"fe4f5006cefd63260217c969c06d214f47e0b9bb"})))))}static get delegatesFocus(){return true}get el(){return s(this)}static get watchers(){return{open:["watchOpenHandler"]}}};h.style=c;export{h as ic_popover_menu};
2
- //# sourceMappingURL=p-82941d0a.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icPopoverMenuCss","IcPopoverMenuStyle0","MENU_SELECTOR","PopoverMenu","constructor","hostRef","this","ARIA_LABEL","popoverMenuEls","openingFromChild","openingFromParent","submenuLevel","theme","open","undefined","setButtonFocus","_a","currentFocus","focus","findAnchorEl","anchor","anchorElement","submenuId","console","error","document","querySelector","indexOf","isNotPopoverMenuEl","ev","id","tagName","target","getNextItemToSelect","currentItem","movingDown","numButtons","length","nextItem","addMenuItems","elements","i","el","push","groupSlotWrapper","shadowRoot","menuGroupElements","getSlotElements","getMenuAriaLabel","ariaLabel","getAttribute","isPropDefined","parentLabel","handleBackButtonClick","parentPopover","openFromChild","initPopperJS","anchorEl","popperInstance","createPopper","placement","modifiers","name","options","offset","fallbackPlacements","rootBoundary","watchOpenHandler","popoverArr","parentElement","querySelectorAll","forEach","popover","some","menuItem","backButton","unshift","setTimeout","destroy","disconnectedCallback","componentDidLoad","slotWrapper","popoverMenuElements","componentWillRender","componentDidRender","handleMenuItemClick","detail","submenuTriggerFor","label","closeMenu","handleSubmenuChange","childEl","openFromParent","handleClick","handleKeyDown","key","preventDefault","blur","setFocusToAnchor","menuElement","icPopoverClosed","emit","render","h","Host","class","menu","role","ref","onClick","slot","viewBox","fill","xmlns","d","variant","delegatesFocus"],"sources":["../web-components/dist/collection/components/ic-popover-menu/ic-popover-menu.css?tag=ic-popover-menu&encapsulation=shadow","../web-components/dist/collection/components/ic-popover-menu/ic-popover-menu.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/**\n* @prop --ic-z-index-popover: z-index of popover menu. \n* @prop --max-height: Maximum height of the popover menu.\n* @prop --popover-width: Default width of the popover menu.\n*/\n\n@media (prefers-reduced-motion: no-preference) {\n :host .opening-from-parent {\n animation: slide-in var(--ic-transition-duration-slow) ease-in-out;\n }\n\n :host .opening-from-child {\n animation: slide-out var(--ic-transition-duration-slow) ease-in-out;\n }\n}\n\n:host {\n border-radius: var(--ic-border-radius);\n color: var(--ic-popover-nav-text);\n\n --ic-typography-color: var(--ic-popover-nav-text);\n\n position: relative;\n z-index: var(--ic-z-index-popover);\n box-sizing: border-box;\n box-shadow: var(--ic-elevation-overlay);\n display: none;\n overflow-x: clip;\n}\n\n:host(.on-dialog) {\n inset: auto !important;\n}\n\n:host(.on-dialog-fix-translate) {\n transform: translate(0, var(--ic-space-xs)) !important;\n}\n\n:host(.on-dialog-translate-y) {\n transform: translate(0, calc(-1 * var(--translate-y))) !important;\n}\n\n.menu {\n border: var(--ic-border-default);\n border-color: var(--ic-popover-border);\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-popover-background);\n visibility: hidden;\n height: 0;\n display: flex;\n flex-direction: column;\n}\n\n:host(:focus-within) {\n box-shadow: var(--ic-border-focus);\n}\n\n.menu:focus-visible {\n outline: none;\n}\n\n:host(.ic-popover-menu-open) {\n display: block;\n min-width: calc(20rem - var(--ic-space-xl));\n width: var(--popover-width, 20rem);\n max-width: calc(100vw - var(--ic-space-xl));\n}\n\n:host(.ic-popover-menu-open) .menu {\n visibility: visible;\n height: -moz-fit-content;\n height: fit-content;\n max-height: var(--max-height, -moz-fit-content);\n max-height: var(--max-height, fit-content);\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.parent-label {\n --ic-typography-color: var(--ic-popover-parent-label);\n\n margin: var(--ic-space-xs) var(--ic-space-xs) 0;\n}\n\n@keyframes slide-in {\n from {\n opacity: 0;\n transform: translateX(10rem);\n }\n\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes slide-out {\n from {\n opacity: 0;\n transform: translateX(-10rem);\n }\n\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n","import { Host, h, } from \"@stencil/core\";\nimport { getSlotElements, isPropDefined } from \"../../utils/helpers\";\nimport { createPopper } from \"@popperjs/core\";\nconst MENU_SELECTOR = \"div.menu-body\";\nexport class PopoverMenu {\n constructor() {\n this.ARIA_LABEL = \"aria-label\";\n this.popoverMenuEls = [];\n this.openingFromChild = false;\n this.openingFromParent = false;\n /**\n * @internal The level of menu being displayed.\n */\n this.submenuLevel = 1;\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n this.theme = \"inherit\";\n /**\n * If `true`, the popover menu will be displayed.\n */\n this.open = undefined;\n this.setButtonFocus = () => {\n var _a;\n (_a = this.popoverMenuEls[this.currentFocus]) === null || _a === void 0 ? void 0 : _a.focus();\n };\n // Checks that the popover menu has an anchor\n this.findAnchorEl = (anchor) => {\n let anchorElement = null;\n if (!anchor) {\n this.submenuId === undefined &&\n console.error(\"No anchor specified for popover component\");\n }\n else {\n anchorElement = document.querySelector(anchor.indexOf(\"#\") === 0 ? anchor : \"#\" + anchor);\n if (anchorElement === null) {\n console.error(`Popover anchor element '${anchor}' not found`);\n }\n }\n return anchorElement;\n };\n this.isNotPopoverMenuEl = (ev) => {\n const { id, tagName } = ev.target;\n return (id !== this.anchor &&\n tagName !== \"IC-MENU-ITEM\" &&\n tagName !== \"IC-MENU-GROUP\" &&\n tagName !== \"IC-POPOVER-MENU\");\n };\n this.getNextItemToSelect = (currentItem, movingDown) => {\n const numButtons = this.popoverMenuEls.length - 1;\n if (currentItem < 1) {\n currentItem = 0;\n }\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n // Check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numButtons;\n }\n else if (nextItem > numButtons) {\n nextItem = 0;\n }\n return nextItem;\n };\n this.addMenuItems = (elements) => {\n var _a;\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i];\n if (el.tagName === \"IC-MENU-ITEM\") {\n this.popoverMenuEls.push(el);\n }\n else if (el.tagName === \"IC-MENU-GROUP\") {\n const groupSlotWrapper = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\".menu-items-wrapper\");\n if (groupSlotWrapper) {\n const menuGroupElements = getSlotElements(groupSlotWrapper);\n menuGroupElements && this.addMenuItems(menuGroupElements);\n }\n }\n }\n };\n this.getMenuAriaLabel = () => {\n const ariaLabel = this.el.getAttribute(this.ARIA_LABEL);\n if (isPropDefined(this.submenuId)) {\n return `${ariaLabel}, within nested level ${this.submenuLevel} ${this.parentLabel} submenu,`;\n }\n else {\n return ariaLabel;\n }\n };\n this.handleBackButtonClick = () => {\n var _a;\n (_a = this.parentPopover) === null || _a === void 0 ? void 0 : _a.openFromChild();\n this.open = false;\n };\n this.initPopperJS = () => {\n if (this.anchorEl) {\n this.popperInstance = createPopper(this.anchorEl, this.el, {\n placement: \"bottom-start\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 4],\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"top-start\", \"top-end\", \"bottom-end\"],\n rootBoundary: \"viewport\",\n },\n },\n ],\n });\n }\n };\n }\n watchOpenHandler() {\n var _a;\n const popoverArr = (_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.querySelectorAll(`ic-popover-menu`);\n if (this.open) {\n if (popoverArr.length > 0) {\n popoverArr.forEach((popover) => {\n if (popover !== this.el) {\n popover.open = false;\n }\n });\n }\n if (this.parentPopover !== undefined &&\n !this.popoverMenuEls.some((menuItem) => menuItem.id)) {\n this.backButton && this.popoverMenuEls.unshift(this.backButton);\n }\n this.currentFocus = 0;\n // Needed so that anchorEl isn't always focused\n setTimeout(this.setButtonFocus, 50);\n }\n else if (this.popperInstance) {\n if (popoverArr.length > 0) {\n popoverArr.forEach((popover) => {\n if (popover !== this.el) {\n popover.open = false;\n }\n });\n }\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n disconnectedCallback() {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n componentDidLoad() {\n var _a;\n const slotWrapper = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(MENU_SELECTOR);\n if (slotWrapper) {\n const popoverMenuElements = getSlotElements(slotWrapper);\n if (popoverMenuElements !== null) {\n this.addMenuItems(popoverMenuElements);\n }\n }\n if (this.submenuId === undefined &&\n this.el.getAttribute(this.ARIA_LABEL) === null) {\n console.error(`No aria-label specified for popover menu component - aria-label required`);\n }\n this.watchOpenHandler();\n }\n componentWillRender() {\n this.anchorEl = this.findAnchorEl(this.anchor);\n }\n componentDidRender() {\n if (this.open && !this.popperInstance) {\n this.initPopperJS();\n }\n }\n handleMenuItemClick(ev) {\n if (!ev.detail.submenuTriggerFor && ev.detail.label !== \"Back\") {\n this.closeMenu(false, ev.detail);\n }\n }\n // This is listening for the event emitted when a menu item is acting as a trigger button\n handleSubmenuChange(ev) {\n // Finds the trigger menu item that has emitted the event\n const target = ev.target;\n this.open = false;\n // Find the popover menu that the menu item triggers (i.e. submenu-trigger-for === submenu-id).\n const childEl = document.querySelector(`ic-popover-menu[submenu-id=${target.submenuTriggerFor}]`);\n // Set the parent popover menu of the submenu and open the submenu\n childEl.parentPopover = this.el;\n childEl.anchor = this.anchor;\n childEl.ariaLabel = this.el.getAttribute(this.ARIA_LABEL);\n childEl.openFromParent();\n childEl.submenuLevel = this.submenuLevel + 1;\n // Set the label in the submenu using the label of the menu item that has emitted the event\n childEl.parentLabel = target.label;\n }\n handleClick(ev) {\n if (this.open && this.isNotPopoverMenuEl(ev)) {\n // If menu is open and the next click on the document is not a popover El, close the popover\n this.closeMenu();\n }\n }\n // Manages the keyboard navigation in the popover menu\n handleKeyDown(ev) {\n switch (ev.key) {\n case \"ArrowDown\":\n case \"ArrowUp\":\n ev.preventDefault();\n this.currentFocus = this.getNextItemToSelect(this.currentFocus, ev.key === \"ArrowDown\");\n this.setButtonFocus();\n break;\n case \"Home\":\n //Sets home focus as first element, or back button\n this.currentFocus = 0;\n this.setButtonFocus();\n break;\n case \"End\":\n //Sets end focus as last element\n this.currentFocus = this.popoverMenuEls.length - 1;\n this.setButtonFocus();\n break;\n case \"Escape\":\n case \"Tab\":\n ev.preventDefault();\n if (this.open) {\n this.closeMenu(true);\n this.el.blur();\n }\n break;\n }\n }\n /**\n * @internal Opens the menu from the child menu.\n */\n async openFromChild() {\n this.open = true;\n this.openingFromChild = true;\n setTimeout(() => (this.openingFromChild = false), 1000);\n }\n /**\n * @internal Opens the menu from the parent menu.\n */\n async openFromParent() {\n this.open = true;\n this.openingFromParent = true;\n setTimeout(() => (this.openingFromParent = false), 1000);\n }\n /**\n * @internal Close the menu, emit icPopoverClosed of the root popover\n * @param setFocusToAnchor when true return focus to anchor element when menu is closed\n */\n async closeMenu(setFocusToAnchor = false, menuElement) {\n var _a;\n this.open = false;\n if (this.parentPopover) {\n this.parentPopover.closeMenu(setFocusToAnchor, menuElement);\n }\n else {\n if (setFocusToAnchor) {\n (_a = this.anchorEl) === null || _a === void 0 ? void 0 : _a.focus();\n }\n this.icPopoverClosed.emit(menuElement);\n }\n }\n render() {\n return (h(Host, { key: '2cf6304cab334813b297e8bf91d25c57ab6b9b91', class: {\n [\"ic-popover-menu-open\"]: !!this.open,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n } }, h(\"div\", { key: 'b7f520998946555e6e5d8ca43d194ec142cf4102', id: this.parentPopover === undefined\n ? `ic-popover-submenu-${this.submenuId}`\n : \"\", class: {\n menu: true,\n } }, h(\"span\", { key: '5c43e11463a6fe04356d73c2522eca4c1cb39d68', class: {\n \"opening-from-parent\": this.openingFromParent,\n \"opening-from-child\": this.openingFromChild,\n } }, isPropDefined(this.submenuId) && (h(\"span\", { key: '7bb226ae2aa077cff93ea367f136f171020c0718' }, h(\"span\", { key: '0cc54f3ef474f2cbe92c3c04437d83cf35e92de1', role: \"menu\" }, h(\"ic-menu-item\", { key: 'ae3f4d6162e643ac6245821e392b2b9491215287', class: \"ic-popover-submenu-back-button\", ref: (el) => (this.backButton = el), label: \"Back\", onClick: this.handleBackButtonClick, id: `ic-popover-submenu-back-button-${this.submenuLevel}` }, h(\"svg\", { key: 'c3e1211479d31e062b13aba36a025fec0814cfee', slot: \"icon\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", class: \"submenu-back-icon\" }, h(\"path\", { key: 'dc399eef7ee50dc37dc57aa1f241292d0827a743', d: \"M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z\", fill: \"currentColor\" })))), h(\"ic-typography\", { key: 'b1ce83e9b01277953f21fe9c58763915c4a8515a', variant: \"subtitle-small\", class: \"parent-label\" }, this.parentLabel))), h(\"div\", { key: 'fab42dde1d195b5d47dd1c669a7bce81f79f42c6', class: \"menu-body\", \"aria-label\": this.getMenuAriaLabel(), role: \"menu\" }, h(\"slot\", { key: 'fe4f5006cefd63260217c969c06d214f47e0b9bb' }))))));\n }\n static get is() { return \"ic-popover-menu\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-popover-menu.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-popover-menu.css\"]\n };\n }\n static get properties() {\n return {\n \"anchor\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ID of the element the popover menu will anchor itself to. This is required unless the popover is a submenu.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"anchor\",\n \"reflect\": false\n },\n \"parentLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"The parent popover menu of a child popover menu.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"parent-label\",\n \"reflect\": false\n },\n \"parentPopover\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLIcPopoverMenuElement\",\n \"resolved\": \"HTMLIcPopoverMenuElement | undefined\",\n \"references\": {\n \"HTMLIcPopoverMenuElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLIcPopoverMenuElement\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"The parent popover menu of a child popover menu.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false\n },\n \"submenuId\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The unique identifier for a popover submenu.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"submenu-id\",\n \"reflect\": false\n },\n \"submenuLevel\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"The level of menu being displayed.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"submenu-level\",\n \"reflect\": false,\n \"defaultValue\": \"1\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\" | undefined\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n },\n \"open\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean | undefined\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the popover menu will be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"open\",\n \"reflect\": true,\n \"defaultValue\": \"undefined\"\n }\n };\n }\n static get states() {\n return {\n \"openingFromChild\": {},\n \"openingFromParent\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icPopoverClosed\",\n \"name\": \"icPopoverClosed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the popover menu is closed.\"\n },\n \"complexType\": {\n \"original\": \"HTMLIcMenuItemElement\",\n \"resolved\": \"HTMLIcMenuItemElement\",\n \"references\": {\n \"HTMLIcMenuItemElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLIcMenuItemElement\"\n }\n }\n }\n }];\n }\n static get methods() {\n return {\n \"openFromChild\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Opens the menu from the child menu.\"\n }]\n }\n },\n \"openFromParent\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Opens the menu from the parent menu.\"\n }]\n }\n },\n \"closeMenu\": {\n \"complexType\": {\n \"signature\": \"(setFocusToAnchor?: boolean, menuElement?: HTMLIcMenuItemElement) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"setFocusToAnchor\",\n \"type\": \"boolean\",\n \"docs\": \"when true return focus to anchor element when menu is closed\"\n }, {\n \"name\": \"menuElement\",\n \"type\": \"HTMLIcMenuItemElement | undefined\",\n \"docs\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n },\n \"HTMLIcMenuItemElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLIcMenuItemElement\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Close the menu, emit icPopoverClosed of the root popover\"\n }, {\n \"name\": \"param\",\n \"text\": \"setFocusToAnchor when true return focus to anchor element when menu is closed\"\n }]\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"open\",\n \"methodName\": \"watchOpenHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"handleMenuItemClick\",\n \"method\": \"handleMenuItemClick\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"triggerPopoverMenuInstance\",\n \"method\": \"handleSubmenuChange\",\n \"target\": undefined,\n \"capture\": true,\n \"passive\": false\n }, {\n \"name\": \"click\",\n \"method\": \"handleClick\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"keydown\",\n \"method\": \"handleKeyDown\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-popover-menu.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as i,H as a,g as o}from"./p-8e4e97b4.js";import{r,b as l,j as c,k as n}from"./p-13f52d7b.js";const s='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;--ic-input-label-text-color:var(--ic-checkbox-group-label);--ic-input-label-helper-text-color:var(--ic-checkbox-group-subtitle);--ic-input-validation-error:var(--ic-checkbox-state-icon-error);--ic-input-validation-status-text-color:var(--ic-checkbox-state-text)}:host(.ic-checkbox-group-disabled){--ic-input-label-text-color:var(--ic-checkbox-group-label-disabled);--ic-input-label-helper-text-color:var(\n --ic-checkbox-group-subtitle-disabled\n )}ic-input-label.error{color:var(--ic-checkbox-group-label-error);--ic-typography-color:var(--ic-checkbox-group-label-error);--ic-input-label-helper-text-color:var(--ic-checkbox-group-subtitle-error)}ic-input-label:not(.with-helper) .ic-typography-label,ic-input-label .helpertext{margin-bottom:var(--ic-space-sm)}:host(.ic-checkbox-group-small) ic-input-label:not(.with-helper) .ic-typography-label,:host(.ic-checkbox-group-small) ic-input-label .helpertext{margin-bottom:calc(var(--ic-space-sm) / 2)}ic-input-label .helpertext{display:block}ic-input-validation{margin-top:var(--ic-space-sm)}:host(.ic-checkbox-group-small) ic-input-validation{margin-top:calc(var(--ic-space-sm) / 2)}.checkboxes-container{margin-bottom:calc(-1 * var(--ic-space-xxs))}:host(.ic-checkbox-group-small) .checkboxes-container{margin-bottom:calc(-1 * var(--ic-space-xxxs))}.screen-reader-only-text{position:absolute;left:-9999px;background-color:#fff;color:#000;text-transform:none}.screen-reader-only-text:dir(rtl){right:-9999px}';const b=s;const d="ic-checkbox";const p=class{constructor(i){e(this,i);this.icChange=t(this,"icChange",7);this.disabled=false;this.helperText="";this.hideLabel=false;this.required=false;this.size="medium";this.theme="inherit";this.validationStatus="";this.validationText=""}watchDisabledHandler(){r(this.disabled,this.el)}labelNameHandler(e,t,i){Array.from(this.el.querySelectorAll(d)).forEach((a=>{if(i==="label")a.groupLabel=e;else if(a.name===t){a.name=e}}))}watchThemeHandler(e){Array.from(this.el.querySelectorAll(d)).forEach((t=>{t.theme=e}))}handleChange(e){if(e.target.tagName==="IC-TEXT-FIELD"){e.stopImmediatePropagation()}}componentWillLoad(){r(this.disabled,this.el);this.watchThemeHandler(this.theme)}componentDidLoad(){l([{prop:this.label,propName:"label"},{prop:this.name,propName:"name"}],"Checkbox Group")}selectHandler({target:e}){const t=Array.from(this.el.querySelectorAll(d)).filter((({checked:e,disabled:t})=>e&&!t));this.icChange.emit({value:t.map((({value:e})=>e)),checkedOptions:t.map((e=>{var t;return{checkbox:e,textFieldValue:(t=e.querySelector("ic-text-field"))===null||t===void 0?void 0:t.value}})),selectedOption:e})}render(){const{disabled:e,helperText:t,hideLabel:o,label:r,name:l,required:s,size:b,theme:d,validationStatus:p,validationText:h}=this;const u=c(this.el,l,t!=="",p!=="");const m=p==="error"||s||o;return i(a,{key:"3eab3a8d0cc27b77ac7daf1f6d3068533ab675bb",class:{"ic-checkbox-group-disabled":!!e,[`ic-checkbox-group-${b}`]:true,[`ic-theme-${d}`]:d!=="inherit"}},m&&i("span",{key:"3cbf05ef6c6df9737d8f40ecbe6db5944f8a2406",id:"screenReaderOnlyText",class:"screen-reader-only-text","aria-hidden":"true"},r," ",p==="error"?"invalid data ":null," ",s?"required":null),i("fieldset",{key:"ce2d74b5e4f88c2cdfc6b730db2b3763c48df206",id:l,"aria-labelledby":`${m?"screenReaderOnlyText":""} ${u}`.trim(),disabled:e},!o&&i("legend",{key:"70a1b515ccd08e731837ee10f248163f342536b2"},i("ic-input-label",{key:"67be3445bb1dee8a2e1ccee88f16ae58fc81c77e",class:{[`${p}`]:true},label:r,helperText:t,required:s,disabled:e,useLabelTag:false},i("slot",{key:"be393bdcf6138057e1e0c65082817f590dbcadf7",name:"helper-text",slot:"helper-text"}))),i("div",{key:"d43399d04efc5501f5a8b118aedbba213410593b",class:"checkboxes-container"},i("slot",{key:"96c715128256965fb3acbe3ff5eca7bb5be9897b"}))),n(p,e)&&i("ic-input-validation",{key:"6b4b02fd8819946472c6a0c60c050ef885168312",for:l,ariaLiveMode:"polite",status:p,message:h}))}get el(){return o(this)}static get watchers(){return{disabled:["watchDisabledHandler"],label:["labelNameHandler"],name:["labelNameHandler"],theme:["watchThemeHandler"]}}};p.style=b;export{p as ic_checkbox_group};
2
- //# sourceMappingURL=p-8e70b907.entry.js.map