@iamproperty/components 7.1.0--beta7 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/assets/css/components/actionbar.component.css +1 -0
  2. package/assets/css/components/actionbar.component.css.map +1 -0
  3. package/assets/css/components/actionbar.global.css +1 -1
  4. package/assets/css/components/actionbar.global.css.map +1 -1
  5. package/assets/css/components/address-lookup.css +1 -1
  6. package/assets/css/components/address-lookup.css.map +1 -1
  7. package/assets/css/components/barchart.component.css +1 -1
  8. package/assets/css/components/barchart.component.css.map +1 -1
  9. package/assets/css/components/bento-grid.component.css +1 -0
  10. package/assets/css/components/bento-grid.component.css.map +1 -0
  11. package/assets/css/components/card.component.css +1 -1
  12. package/assets/css/components/card.component.css.map +1 -1
  13. package/assets/css/components/carousel.component.css +1 -1
  14. package/assets/css/components/carousel.component.css.map +1 -1
  15. package/assets/css/components/carousel.config.css +1 -1
  16. package/assets/css/components/carousel.config.css.map +1 -1
  17. package/assets/css/components/charts.config.css +1 -1
  18. package/assets/css/components/charts.config.css.map +1 -1
  19. package/assets/css/components/charts.css +1 -1
  20. package/assets/css/components/charts.css.map +1 -1
  21. package/assets/css/components/charts.module.css +1 -1
  22. package/assets/css/components/charts.module.css.map +1 -1
  23. package/assets/css/components/collapsible-side.css +1 -1
  24. package/assets/css/components/collapsible-side.css.map +1 -1
  25. package/assets/css/components/doughnutchart.component.css +1 -0
  26. package/assets/css/components/doughnutchart.component.css.map +1 -0
  27. package/assets/css/components/fileupload.css.map +1 -1
  28. package/assets/css/components/header.css.map +1 -1
  29. package/assets/css/components/inline-edit.preload.css +1 -1
  30. package/assets/css/components/inline-edit.preload.css.map +1 -1
  31. package/assets/css/components/marketing.css.map +1 -1
  32. package/assets/css/components/menu.component.css +1 -0
  33. package/assets/css/components/menu.component.css.map +1 -0
  34. package/assets/css/components/menu.css +1 -0
  35. package/assets/css/components/menu.css.map +1 -0
  36. package/assets/css/components/multi-step.component.css.map +1 -1
  37. package/assets/css/components/multiselect.preload.css +1 -1
  38. package/assets/css/components/multiselect.preload.css.map +1 -1
  39. package/assets/css/components/nav.component.css +1 -0
  40. package/assets/css/components/nav.component.css.map +1 -0
  41. package/assets/css/components/nav.docs.css.map +1 -1
  42. package/assets/css/components/nav.global.css.map +1 -1
  43. package/assets/css/components/nav.old.css +1 -1
  44. package/assets/css/components/nav.old.css.map +1 -1
  45. package/assets/css/components/nav.preload.css +1 -1
  46. package/assets/css/components/nav.preload.css.map +1 -1
  47. package/assets/css/components/notification.css +1 -1
  48. package/assets/css/components/notification.css.map +1 -1
  49. package/assets/css/components/pagination.css +1 -1
  50. package/assets/css/components/pagination.css.map +1 -1
  51. package/assets/css/components/property-searchbar.css.map +1 -1
  52. package/assets/css/components/slider.css +1 -1
  53. package/assets/css/components/slider.css.map +1 -1
  54. package/assets/css/components/snapshot.css.map +1 -1
  55. package/assets/css/components/stepper.css.map +1 -1
  56. package/assets/css/components/{table.css → table.component.css} +1 -1
  57. package/assets/css/components/table.component.css.map +1 -0
  58. package/assets/css/components/table.global.css +1 -1
  59. package/assets/css/components/table.global.css.map +1 -1
  60. package/assets/css/components/tabs.component.css +1 -0
  61. package/assets/css/components/tabs.component.css.map +1 -0
  62. package/assets/css/components/tabs.css.map +1 -1
  63. package/assets/css/components/testimonial.css.map +1 -1
  64. package/assets/css/components/timeline.css.map +1 -1
  65. package/assets/css/core.min.css +1 -1
  66. package/assets/css/core.min.css.map +1 -1
  67. package/assets/css/mobile-core.min.css +1 -0
  68. package/assets/css/mobile-core.min.css.map +1 -0
  69. package/assets/css/mobile.min.css +1 -0
  70. package/assets/css/mobile.min.css.map +1 -0
  71. package/assets/css/style.min.css +1 -1
  72. package/assets/css/style.min.css.map +1 -1
  73. package/assets/js/components/_global.js +0 -1
  74. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  75. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  76. package/assets/js/components/actionbar/actionbar.component.js +86 -8
  77. package/assets/js/components/actionbar/actionbar.component.min.js +19 -6
  78. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  79. package/assets/js/components/address-lookup/address-lookup.component.js +17 -18
  80. package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
  81. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  82. package/assets/js/components/applied-filters/applied-filters.component.js +0 -1
  83. package/assets/js/components/applied-filters/applied-filters.component.min.js +4 -4
  84. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  85. package/assets/js/components/barchart/barchart.component.js +2 -3
  86. package/assets/js/components/barchart/barchart.component.min.js +8 -4
  87. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  88. package/assets/js/components/bento-grid/bento-grid.component.js +50 -0
  89. package/assets/js/components/bento-grid/bento-grid.component.min.js +15 -0
  90. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -0
  91. package/assets/js/components/card/card.component.js +10 -13
  92. package/assets/js/components/card/card.component.min.js +7 -7
  93. package/assets/js/components/card/card.component.min.js.map +1 -1
  94. package/assets/js/components/carousel/carousel.component.js +4 -5
  95. package/assets/js/components/carousel/carousel.component.min.js +4 -4
  96. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  97. package/assets/js/components/chart/chart.component.js +1 -5
  98. package/assets/js/components/collapsible-side/collapsible-side.component.js +4 -5
  99. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -4
  100. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  101. package/assets/js/components/doughnutchart/doughnutchart.component.js +70 -0
  102. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +25 -0
  103. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -0
  104. package/assets/js/components/fileupload/fileupload.component.js +2 -3
  105. package/assets/js/components/fileupload/fileupload.component.min.js +6 -6
  106. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  107. package/assets/js/components/filter-card/filter-card.component.js +3 -4
  108. package/assets/js/components/filter-card/filter-card.component.min.js +4 -4
  109. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  110. package/assets/js/components/filterlist/filterlist.component.js +0 -1
  111. package/assets/js/components/filterlist/filterlist.component.min.js +3 -3
  112. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  113. package/assets/js/components/header/header.component.js +0 -1
  114. package/assets/js/components/header/header.component.min.js +1 -1
  115. package/assets/js/components/header/header.component.min.js.map +1 -1
  116. package/assets/js/components/inline-edit/inline-edit.component.js +7 -8
  117. package/assets/js/components/inline-edit/inline-edit.component.min.js +4 -4
  118. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  119. package/assets/js/components/marketing/marketing.component.js +0 -1
  120. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  121. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  122. package/assets/js/components/menu/menu.component.js +200 -0
  123. package/assets/js/components/menu/menu.component.min.js +77 -0
  124. package/assets/js/components/menu/menu.component.min.js.map +1 -0
  125. package/assets/js/components/multi-step/multi-step.component.js +10 -10
  126. package/assets/js/components/multi-step/multi-step.component.min.js +13 -0
  127. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -0
  128. package/assets/js/components/multiselect/multiselect.component.js +10 -10
  129. package/assets/js/components/multiselect/multiselect.component.min.js +3 -3
  130. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  131. package/assets/js/components/nav/nav.component.js +7 -7
  132. package/assets/js/components/nav/nav.component.min.js +7 -7
  133. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  134. package/assets/js/components/notification/notification.component.js +3 -3
  135. package/assets/js/components/notification/notification.component.min.js +4 -4
  136. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  137. package/assets/js/components/pagination/pagination.component.js +3 -4
  138. package/assets/js/components/pagination/pagination.component.min.js +4 -4
  139. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  140. package/assets/js/components/record-card/record-card.component.js +6 -8
  141. package/assets/js/components/record-card/record-card.component.min.js +4 -4
  142. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  143. package/assets/js/components/search/search.component.js +9 -6
  144. package/assets/js/components/search/search.component.min.js +8 -5
  145. package/assets/js/components/search/search.component.min.js.map +1 -1
  146. package/assets/js/components/slider/slider.component.js +8 -8
  147. package/assets/js/components/slider/slider.component.min.js +5 -5
  148. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  149. package/assets/js/components/table/table.component.js +8 -9
  150. package/assets/js/components/table/table.component.min.js +7 -7
  151. package/assets/js/components/table/table.component.min.js.map +1 -1
  152. package/assets/js/components/tabs/tabs.component.js +1 -2
  153. package/assets/js/components/tabs/tabs.component.min.js +3 -3
  154. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  155. package/assets/js/components/video-card/video-card.component.js +4 -3
  156. package/assets/js/components/video-card/video-card.component.min.js +3 -3
  157. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  158. package/assets/js/modules/applied-filters.js +8 -9
  159. package/assets/js/modules/carousel.js +9 -10
  160. package/assets/js/modules/chart.js +5 -3
  161. package/assets/js/modules/chart.module.js +108 -1
  162. package/assets/js/modules/dialogs.js +6 -7
  163. package/assets/js/modules/drawer.js +1 -2
  164. package/assets/js/modules/dynamicEvents.js +7 -8
  165. package/assets/js/modules/fileupload.js +7 -7
  166. package/assets/js/modules/filterlist.js +3 -4
  167. package/assets/js/modules/form.js +12 -13
  168. package/assets/js/modules/helpers.js +3 -5
  169. package/assets/js/modules/inputs.js +6 -9
  170. package/assets/js/modules/nav.js +3 -4
  171. package/assets/js/modules/notification.js +2 -3
  172. package/assets/js/modules/orderablelist.js +0 -1
  173. package/assets/js/modules/table.js +80 -42
  174. package/assets/js/modules/tabs.js +3 -6
  175. package/assets/js/scripts.bundle.js +3 -3
  176. package/assets/js/scripts.bundle.js.map +1 -1
  177. package/assets/js/scripts.bundle.min.js +2 -2
  178. package/assets/js/scripts.bundle.min.js.map +1 -1
  179. package/assets/js/scripts.js +64 -6
  180. package/assets/js/tests/card.spec.js +14 -0
  181. package/assets/js/tests/carousel.spec.js +60 -0
  182. package/assets/js/tests/chart.spec.js +7 -5
  183. package/assets/js/tests/fileupload.spec.js +22 -0
  184. package/assets/js/tests/multistep.spec.js +68 -0
  185. package/assets/sass/_bs_grid.scss +4 -1
  186. package/assets/sass/_components.scss +323 -100
  187. package/assets/sass/_corefiles.scss +42 -18
  188. package/assets/sass/_elements.scss +98 -18
  189. package/assets/sass/_example.scss +61 -0
  190. package/assets/sass/_func.scss +5 -13
  191. package/assets/sass/_functions/bs_utilities.scss +43 -39
  192. package/assets/sass/_functions/functions.scss +66 -52
  193. package/assets/sass/_functions/mixins.scss +84 -100
  194. package/assets/sass/_functions/utility-mixins.scss +56 -44
  195. package/assets/sass/_functions/variables.scss +90 -1659
  196. package/assets/sass/_functions/variables_old.scss +1701 -0
  197. package/assets/sass/_grid.scss +19 -5
  198. package/assets/sass/_tests/func.spec.scss +1 -37
  199. package/assets/sass/_tests/mixins.spec.scss +1 -77
  200. package/assets/sass/_tests/typography.spec.scss +1 -1
  201. package/assets/sass/_utilities.scss +15 -5
  202. package/assets/sass/_utility-mixins.scss +6 -1
  203. package/assets/sass/components/{actionbar.scss → actionbar.component.scss} +82 -16
  204. package/assets/sass/components/actionbar.global.scss +28 -14
  205. package/assets/sass/components/address-lookup.scss +6 -0
  206. package/assets/sass/components/barchart.component.scss +7 -20
  207. package/assets/sass/components/bento-grid.component.scss +91 -0
  208. package/assets/sass/components/carousel.config.scss +64 -58
  209. package/assets/sass/components/charts.config.scss +73 -67
  210. package/assets/sass/components/charts.module.scss +128 -97
  211. package/assets/sass/components/charts.scss +43 -42
  212. package/assets/sass/components/collapsible-side.scss +29 -27
  213. package/assets/sass/components/doughnutchart.component.scss +205 -0
  214. package/assets/sass/components/fileupload.scss +4 -3
  215. package/assets/sass/components/header.scss +5 -5
  216. package/assets/sass/components/inline-edit.preload.scss +108 -102
  217. package/assets/sass/components/menu.component.scss +101 -0
  218. package/assets/sass/components/menu.scss +21 -0
  219. package/assets/sass/components/multi-step.component.scss +5 -3
  220. package/assets/sass/components/multiselect.preload.scss +36 -30
  221. package/assets/sass/components/{nav.scss → nav.component.scss} +41 -21
  222. package/assets/sass/components/nav.docs.scss +1 -1
  223. package/assets/sass/components/nav.global.scss +13 -11
  224. package/assets/sass/components/nav.old.scss +21 -24
  225. package/assets/sass/components/nav.preload.scss +40 -34
  226. package/assets/sass/components/notification.scss +9 -5
  227. package/assets/sass/components/pagination.scss +6 -0
  228. package/assets/sass/components/property-searchbar.scss +7 -7
  229. package/assets/sass/components/slider.scss +2 -0
  230. package/assets/sass/components/snapshot.scss +2 -2
  231. package/assets/sass/components/stepper.scss +7 -7
  232. package/assets/sass/components/table.global.scss +57 -1
  233. package/assets/sass/components/tabs.component.scss +5 -0
  234. package/assets/sass/components/tabs.scss +7 -3
  235. package/assets/sass/components/testimonial.scss +7 -7
  236. package/assets/sass/components/timeline.scss +1 -1
  237. package/assets/sass/core.scss +13 -4
  238. package/assets/sass/elements/admin-panel.scss +199 -185
  239. package/assets/sass/elements/badge-tag.scss +87 -81
  240. package/assets/sass/elements/brand.scss +67 -61
  241. package/assets/sass/elements/buttons--action.scss +55 -0
  242. package/assets/sass/elements/buttons--compact.scss +135 -0
  243. package/assets/sass/elements/buttons--global.scss +322 -0
  244. package/assets/sass/elements/buttons--secondary.scss +24 -0
  245. package/assets/sass/elements/buttons--tertiary.scss +57 -0
  246. package/assets/sass/elements/buttons.scss +29 -503
  247. package/assets/sass/elements/container.scss +157 -151
  248. package/assets/sass/elements/details.scss +147 -138
  249. package/assets/sass/elements/dialog.scss +36 -30
  250. package/assets/sass/elements/forms.scss +1061 -1047
  251. package/assets/sass/elements/icons.scss +23 -17
  252. package/assets/sass/elements/links.scss +131 -116
  253. package/assets/sass/elements/lists.scss +270 -264
  254. package/assets/sass/elements/media.scss +19 -13
  255. package/assets/sass/elements/modal.scss +336 -330
  256. package/assets/sass/elements/popover.scss +163 -152
  257. package/assets/sass/elements/progress.scss +173 -162
  258. package/assets/sass/elements/table.element.scss +115 -109
  259. package/assets/sass/elements/tooltips.scss +87 -80
  260. package/assets/sass/elements/type.scss +172 -160
  261. package/assets/sass/email.scss +0 -1
  262. package/assets/sass/error.scss +15 -13
  263. package/assets/sass/foundations/reboot.scss +176 -170
  264. package/assets/sass/foundations/root.scss +136 -125
  265. package/assets/sass/helpers/max-height.scss +2 -2
  266. package/assets/sass/main.scss +14 -6
  267. package/assets/sass/mobile-core.scss +14 -0
  268. package/assets/sass/mobile.scss +16 -0
  269. package/assets/sass/templates/auth.scss +88 -83
  270. package/assets/sass/templates/form.scss +68 -59
  271. package/assets/ts/components/_global.ts +2 -3
  272. package/assets/ts/components/actionbar/actionbar.component.ts +94 -2
  273. package/assets/ts/components/address-lookup/address-lookup.component.ts +21 -22
  274. package/assets/ts/components/applied-filters/applied-filters.component.ts +1 -2
  275. package/assets/ts/components/barchart/barchart.component.ts +3 -5
  276. package/assets/ts/components/bento-grid/README.md +31 -0
  277. package/assets/ts/components/bento-grid/bento-grid.component.ts +67 -0
  278. package/assets/ts/components/card/card.component.ts +13 -16
  279. package/assets/ts/components/carousel/carousel.component.ts +5 -7
  280. package/assets/ts/components/chart/chart.component.ts +4 -9
  281. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +5 -6
  282. package/assets/ts/components/doughnutchart/doughnutchart.component.ts +85 -0
  283. package/assets/ts/components/fileupload/fileupload.component.ts +5 -6
  284. package/assets/ts/components/filter-card/filter-card.component.ts +4 -5
  285. package/assets/ts/components/filterlist/filterlist.component.ts +1 -2
  286. package/assets/ts/components/header/header.component.ts +1 -3
  287. package/assets/ts/components/inline-edit/inline-edit.component.ts +8 -11
  288. package/assets/ts/components/marketing/marketing.component.ts +1 -3
  289. package/assets/ts/components/menu/menu.component.ts +222 -0
  290. package/assets/ts/components/multi-step/multi-step.component.ts +19 -23
  291. package/assets/ts/components/multiselect/multiselect.component.ts +13 -14
  292. package/assets/ts/components/nav/nav.component.ts +8 -9
  293. package/assets/ts/components/notification/notification.component.ts +3 -3
  294. package/assets/ts/components/pagination/pagination.component.ts +7 -8
  295. package/assets/ts/components/record-card/record-card.component.ts +9 -11
  296. package/assets/ts/components/search/search.component.ts +12 -9
  297. package/assets/ts/components/slider/slider.component.ts +9 -10
  298. package/assets/ts/components/table/table.component.ts +14 -16
  299. package/assets/ts/components/tabs/tabs.component.ts +2 -3
  300. package/assets/ts/components/video-card/video-card.component.ts +13 -12
  301. package/assets/ts/modules/applied-filters.ts +10 -11
  302. package/assets/ts/modules/card.module.ts +1 -1
  303. package/assets/ts/modules/carousel.ts +13 -15
  304. package/assets/ts/modules/chart.module.ts +152 -19
  305. package/assets/ts/modules/chart.ts +26 -24
  306. package/assets/ts/modules/dialogs.ts +10 -13
  307. package/assets/ts/modules/drawer.ts +1 -2
  308. package/assets/ts/modules/dynamicEvents.ts +12 -14
  309. package/assets/ts/modules/fileupload.ts +10 -10
  310. package/assets/ts/modules/filterlist.ts +6 -7
  311. package/assets/ts/modules/form.ts +16 -17
  312. package/assets/ts/modules/helpers.ts +18 -21
  313. package/assets/ts/modules/inputs.ts +15 -18
  314. package/assets/ts/modules/nav.ts +4 -5
  315. package/assets/ts/modules/notification.ts +7 -8
  316. package/assets/ts/modules/orderablelist.ts +3 -4
  317. package/assets/ts/modules/pagination.ts +1 -1
  318. package/assets/ts/modules/table.ts +103 -60
  319. package/assets/ts/modules/tabs.ts +5 -8
  320. package/assets/ts/scripts.ts +70 -6
  321. package/assets/ts/tests/card.spec.ts +19 -0
  322. package/assets/ts/tests/carousel.spec.ts +66 -0
  323. package/assets/ts/tests/chart.spec.ts +9 -6
  324. package/assets/ts/tests/fileupload.spec.ts +30 -0
  325. package/assets/ts/tests/multistep.spec.ts +78 -0
  326. package/dist/components.es.js +1258 -1063
  327. package/dist/components.umd.js +473 -195
  328. package/package.json +44 -49
  329. package/src/components/BentoGrid/BentoGrid.vue +20 -0
  330. package/src/components/DoughnutChart/DoughnutChart.vue +23 -0
  331. package/src/components/FileUpload/FileUpload.vue +4 -1
  332. package/src/components/Menu/Menu.vue +22 -0
  333. package/src/components/Tabs/Tabs.vue +0 -4
  334. package/src/index.js +25 -19
  335. package/assets/css/components/actionbar.css +0 -1
  336. package/assets/css/components/actionbar.css.map +0 -1
  337. package/assets/css/components/nav.css +0 -1
  338. package/assets/css/components/nav.css.map +0 -1
  339. package/assets/css/components/table.css.map +0 -1
  340. package/assets/js/components.bundle.js +0 -5
  341. package/assets/js/components.bundle.js.map +0 -1
  342. package/assets/js/components.js +0 -57
  343. package/assets/js/modules/file-upload.js +0 -32
  344. package/assets/ts/components.ts +0 -62
  345. package/assets/ts/modules/file-upload.ts +0 -52
  346. package/dist/style.css +0 -1
  347. /package/assets/sass/components/{table.scss → table.component.scss} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"barchart.component.min.js","sources":["../../modules/chart.module.js","../_global.js","barchart.component.js"],"sourcesContent":["// #region Functions that setup and trigger other functions\nexport const addClasses = (chartElement, chartOuter) => {\n // add colour classes\n for (let i = 1; i <= 10; i++) {\n if (chartElement.hasAttribute(`data-colour-${i}`)) {\n const colour = chartElement.getAttribute(`data-colour-${i}`);\n chartElement.style.setProperty(`--chart-colour-${i}`, `var(--chart-colour-${colour})`);\n chartElement.style.setProperty(`--chart-colour-${i}-hover`, `var(--chart-colour-${colour}-hover)`);\n }\n Array.from(chartOuter.querySelectorAll(`[data-colour-${i}]`)).forEach((element) => {\n const colour = element.getAttribute(`data-colour-${i}`);\n element.style.setProperty(`--chart-colour-${i}-set`, `var(--chart-colour-${colour})`);\n element.style.setProperty(`--chart-colour-${i}-hover`, `var(--chart-colour-${colour}-hover)`);\n });\n }\n return true;\n};\nexport const setupChart = (chartElement, chartOuter, tableElement) => {\n // #region Reset the chart\n // empty divs to re-populate\n const chartKey = chartOuter.querySelector('.chart__key');\n chartKey.innerHTML = '';\n const chartGuidelines = chartOuter.querySelector('.chart__guidelines');\n chartGuidelines.innerHTML = ``;\n const chartYaxis = chartOuter.querySelector('.chart__yaxis');\n chartYaxis.innerHTML = ``;\n // Remove old input fields\n Array.from(chartOuter.querySelectorAll(':scope > input[type=\"checkbox\"],:scope > input[type=\"radio\"]')).map((element) => {\n element.remove();\n });\n // #endregion\n const { xaxis } = getChartData(chartElement);\n setCellData(chartElement, tableElement);\n createChartKey(chartOuter, tableElement, chartKey);\n createChartGuidelines(chartElement, chartGuidelines);\n createChartYaxis(chartElement, chartYaxis);\n if (xaxis) {\n createXaxis(chartOuter);\n }\n return true;\n};\n// #endregion\n// #region Event handlers and observers\nexport const setEventListener = function (chartElement, chartOuter) {\n const chart = chartOuter.querySelector('.chart');\n chart.addEventListener('mousemove', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('td:not(:first-child')) {\n const column = event.target.closest('td:not(:first-child');\n const rect = column.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n chart.setAttribute('style', `--cursor-x: ${x}px; --cursor-y: ${y}px;`);\n }\n });\n // Use the part for the chart items to pass through states to the pages CSS\n const labels = chartOuter.querySelectorAll('label');\n Array.from(labels).forEach((label) => {\n if (chartOuter.querySelector(`input#${label.getAttribute('for')}`).checked)\n label.setAttribute('part', 'key-checked');\n else\n label.setAttribute('part', 'key-unchecked');\n });\n const table = chartElement.querySelector('table');\n const shadowTable = chartOuter.querySelector('table');\n chartOuter.addEventListener('change', function (event) {\n const eventTarget = event.target;\n const customEvent = new CustomEvent('view-change', {\n detail: {\n 'data-dataset': eventTarget.getAttribute('data-dataset'),\n label: eventTarget.getAttribute('data-label'),\n checked: eventTarget.checked,\n },\n });\n chartElement.dispatchEvent(customEvent);\n Array.from(labels).forEach((label) => {\n var _a;\n if ((_a = chartOuter.querySelector(`input#${label.getAttribute('for')}`)) === null || _a === void 0 ? void 0 : _a.checked)\n label.setAttribute('part', 'key-checked');\n else\n label.setAttribute('part', 'key-unchecked');\n });\n shadowTable.innerHTML = table.innerHTML;\n setCellData(chartElement, shadowTable);\n });\n};\nexport const setEventObservers = function (chartElement, chartOuter) {\n const table = chartElement.querySelector('table');\n const shadowTable = chartOuter.querySelector('table');\n const attributesUpdated = (mutationList, observer) => {\n observer.disconnect();\n observer2.disconnect();\n for (const mutation of mutationList) {\n if (mutation.attributeName == 'class' || mutation.type === 'attributes' || mutation.type === 'attributes') {\n shadowTable.innerHTML = table.innerHTML;\n setupChart(chartElement, chartOuter, shadowTable);\n }\n }\n observer.observe(table, { characterData: true, subtree: true });\n observer2.observe(chartElement, { attributes: true });\n };\n const tableUpdated = (mutationList, observer) => {\n observer.disconnect();\n observer2.disconnect();\n for (const mutation of mutationList) {\n if (mutation.type == 'characterData' || (mutation.type == 'childList' && mutation.addedNodes.length)) {\n shadowTable.innerHTML = table.innerHTML;\n setupChart(chartElement, chartOuter, shadowTable);\n }\n }\n observer.observe(table, { characterData: true, subtree: true });\n observer2.observe(chartElement, { attributes: true });\n };\n const observer = new MutationObserver(tableUpdated);\n const observer2 = new MutationObserver(attributesUpdated);\n observer.observe(table, { characterData: true, subtree: true });\n observer2.observe(chartElement, { attributes: true });\n return true;\n};\n// #endregion\n// #region GET functions\nexport const getChartData = function (chartElement) {\n const table = chartElement.shadowRoot.querySelector('.chart__wrapper table');\n const min = chartElement.hasAttribute('data-min') ? chartElement.getAttribute('data-min') : 0;\n const max = chartElement.hasAttribute('data-max')\n ? chartElement.getAttribute('data-max')\n : getLargestValue(chartElement, table);\n //let type:string = chartElement.hasAttribute('data-type') ? chartElement.getAttribute('data-type') : 'column';\n const yaxis = chartElement.hasAttribute('data-yaxis') ? chartElement.getAttribute('data-yaxis').split(',') : [];\n const guidelines = chartElement.hasAttribute('data-guidelines')\n ? chartElement.getAttribute('data-guidelines').split(',')\n : [];\n //let targets:any = chartElement.hasAttribute('data-targets') ? JSON.parse(chartElement.getAttribute('data-targets')) : null;\n //let events:any = chartElement.hasAttribute('data-events') ? JSON.parse(chartElement.getAttribute('data-events')) : null;\n const xaxis = chartElement.hasAttribute('data-xaxis')\n ? chartElement.getAttribute('data-xaxis').split(',')\n : null;\n //let increment = chartElement.hasAttribute('data-increment') ? chartElement.getAttribute('data-increment'): null;\n //let start:any = chartElement.hasAttribute('data-start') ? chartElement.getAttribute('data-start') : 0;\n //let end:any = chartElement.hasAttribute('data-end') ? chartElement.getAttribute('data-end') : getLargestValue(chartElement,table); // TODO - get largest value from the data-xaxis\n //let slope:any = chartElement.hasAttribute('data-slope') ? chartElement.getAttribute('data-slope') : null;\n //let yInt:any = chartElement.hasAttribute('data-yint') ? chartElement.getAttribute('data-yint') : null;\n return { min, max, yaxis, xaxis, guidelines };\n};\nfunction getLargestValue(chartElement, table) {\n const selector = chartElement.classList.contains('chart--stacked') ? 'tbody tr' : 'tbody td:not(:first-child)';\n const values = Array.from(table.querySelectorAll(selector)).map((element) => {\n const currentValue = element.getAttribute('data-numeric');\n return currentValue;\n });\n const largestValue = Math.max(...values);\n // TO DO round to the nearest 10, 100, 1000 and so on\n return Math.ceil(largestValue);\n}\nconst getValues = function (value, min, max, start) {\n let cleanValue = String(value);\n cleanValue = cleanValue.replace('£', '');\n cleanValue = cleanValue.replace('%', '');\n cleanValue = cleanValue.replace(',', '');\n cleanValue = Number.parseFloat(cleanValue);\n let percent = ((cleanValue - min) / (max - min)) * 100;\n let axis = percent;\n let bottom = 0;\n if (start && start != 0) {\n bottom = ((start - min) / (max - min)) * 100;\n }\n // If the value is negative the position below the 0 line\n if (min < 0) {\n bottom = Math.abs((min / (max - min)) * 100);\n if (cleanValue < 0) {\n percent = bottom - percent;\n bottom = bottom - percent;\n axis = bottom;\n }\n else {\n percent = percent - bottom;\n axis = percent + bottom;\n }\n }\n return { percent, axis, bottom };\n};\n// #endregion\n// #region SET functions - set data attributes and classes\nexport const setCellData = function (chartElement, table) {\n Array.from(table.querySelectorAll('tbody tr')).forEach((tr) => {\n let rowValue = 0;\n // Set the data numeric value if not set\n Array.from(tr.querySelectorAll('td:not(:first-child)')).forEach((td) => {\n // Ignore the buttons and links inside\n const copyTD = td.cloneNode(true);\n Array.from(copyTD.querySelectorAll('*')).forEach((element) => {\n element.remove();\n });\n const value = parseFloat(copyTD.textContent.replace('£', '').replace('%', '').replace(',', ''));\n td.setAttribute('data-numeric', value);\n td.setAttribute('data-value', copyTD.textContent);\n const display = getComputedStyle(td).display;\n if (display != 'none')\n rowValue += value;\n Array.from(td.querySelectorAll('a, button')).forEach((element, index) => {\n if (index == 0) {\n element.insertAdjacentHTML('beforeBegin', '<hr/>');\n }\n element.classList.add('btn');\n element.classList.add('btn-tertiary');\n });\n });\n tr.setAttribute('data-numeric', rowValue);\n });\n const { min, max } = getChartData(chartElement);\n Array.from(table.querySelectorAll('tbody tr')).forEach((tr, index) => {\n const group = tr.querySelector('td:first-child, th:first-child')\n ? tr.querySelector('td:first-child, th:first-child').textContent\n : '';\n tr.setAttribute('part', 'group');\n const percent = ((tr.getAttribute('data-numeric') - min) / (max - min)) * 100;\n tr.style.setProperty('--percent', `${percent}%`);\n // Set the data label value if not set\n Array.from(tr.querySelectorAll('td:not([data-label])')).forEach((td, index) => {\n if (index == 0)\n td.setAttribute('part', 'xaxis-label'); // PART\n else\n td.setAttribute('part', 'value');\n if (tr.querySelectorAll('td').length > 2)\n td.setAttribute('data-label', table.querySelectorAll('thead th')[index].textContent);\n });\n const rowMin = tr.hasAttribute('data-min') ? tr.getAttribute('data-min') : min;\n const rowMax = tr.hasAttribute('data-max') ? tr.getAttribute('data-max') : max;\n if (rowMin < 0) {\n const minBottom = Math.abs((rowMin / (rowMax - rowMin)) * 100);\n chartElement.setAttribute('style', `--min-bottom: ${minBottom}%;`);\n }\n // Add a useful index css var for the use of animatons.\n tr.style.setProperty('--row-index', index + 1);\n // Add css vars to cells\n Array.from(tr.querySelectorAll('td[data-numeric]:not([data-label=\"Min\"]):not([data-label=\"Max\"]):not(:first-child)')).forEach((td) => {\n const display = getComputedStyle(td).display;\n if (display == 'none')\n return;\n const content = td.innerHTML;\n const value = Number.parseFloat(td.getAttribute('data-numeric'));\n const start = Number.parseFloat(td.getAttribute('data-start'));\n if (!td.querySelector('span[data-group]'))\n td.innerHTML = `<span data-group=\"${group}\" ${td.hasAttribute('data-label') ? `data-label=\"${td.getAttribute('data-label')}\"` : ''} part=\"popover\">${content}</span>`;\n if (!td.hasAttribute('style')) {\n const { percent, bottom, axis } = getValues(value, rowMin, rowMax, start);\n td.setAttribute('data-percent', percent);\n td.setAttribute('style', `--bottom:${bottom}%;--percent:${percent}%;--axis:${axis}%;`);\n }\n });\n });\n};\nexport const setLongestLabel = function (chartOuter) {\n const chartWrapper = chartOuter.querySelector('.chart__wrapper');\n const chartSpacer = chartOuter.querySelector('.chart__spacer span');\n const table = chartOuter.querySelector('.chart table');\n // set the longest label attr so that the bar chart knows what margin to set on the left\n let longestLabel = '';\n Array.from(table.querySelectorAll('tbody tr td:first-child')).forEach((td) => {\n if (typeof td.textContent != 'undefined' && td.textContent.length > longestLabel.length) {\n longestLabel = td.textContent;\n }\n });\n chartWrapper.setAttribute('data-longest-label', longestLabel);\n chartSpacer.innerHTML = longestLabel;\n};\nexport const setLongestValue = function (chartOuter) {\n const chartWrapper = chartOuter.querySelector('.chart__wrapper');\n const table = chartOuter.querySelector('.chart table');\n let longestValue = '';\n Array.from(table.querySelectorAll('tbody tr td:not(:first-child)')).forEach((td) => {\n if (typeof td.getAttribute('data-value') != 'undefined' &&\n td.getAttribute('data-value').length > longestValue.length) {\n longestValue = td.getAttribute('data-value');\n }\n });\n chartWrapper.setAttribute('data-longest-value', longestValue);\n};\n// #endregion\n// #region CREATE function\nexport const createChartKey = function (chartOuter, tableElement, chartKey) {\n const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;\n //const chartOuter = chartElement.querySelector('.chart__outer');\n let previousInput;\n const headings = Array.from(tableElement.querySelectorAll('thead th'));\n headings.forEach((arrayElement, index) => {\n if (index != 0) {\n previousInput = createChartKeyItem(chartID, index, arrayElement.textContent, chartKey, chartOuter, previousInput);\n }\n if (index == 50) {\n headings.length = index + 1;\n }\n });\n return true;\n};\nfunction createChartKeyItem(chartID, index, text, chartKey, chartOuter, previousInput) {\n const input = document.createElement('input');\n input.setAttribute('name', `${chartID}-dataset-${index}`);\n input.setAttribute('id', `${chartID}-dataset-${index}`);\n input.setAttribute('data-dataset', `${index}`);\n input.setAttribute('data-label', `${text}`);\n input.checked = true;\n input.setAttribute('type', `checkbox`);\n if (index == 1)\n chartOuter.prepend(input);\n else\n chartOuter.insertBefore(input, previousInput.nextSibling);\n previousInput = input;\n const label = document.createElement('label');\n label.setAttribute('class', `key btn btn-action`);\n label.setAttribute('for', `${chartID}-dataset-${index}`);\n label.setAttribute('data-label', `${text}`);\n label.setAttribute('part', `key`);\n label.innerHTML = `${text}`;\n chartKey.append(label);\n return previousInput;\n}\nexport const createChartGuidelines = function (chartElement, chartGuidelines) {\n let { min, max, yaxis, guidelines } = getChartData(chartElement);\n if (!guidelines.length)\n guidelines = yaxis;\n chartGuidelines.innerHTML = '';\n for (let i = 0; i < guidelines.length; i++) {\n const value = parseFloat(guidelines[i].replace('£', '').replace('%', '').replace(',', ''));\n const { axis } = getValues(value, min, max);\n chartGuidelines.innerHTML += `<div class=\"guideline\" style=\"--percent:${axis}%;\">${yaxis.indexOf(guidelines[i]) != -1 ? `<span>${guidelines[i]}</span>` : ''}</div>`;\n }\n};\nexport const createChartYaxis = function (chartElement, chartYaxis) {\n const { min, max, yaxis } = getChartData(chartElement);\n chartYaxis.innerHTML = '';\n for (let i = 0; i < yaxis.length; i++) {\n const value = parseFloat(yaxis[i].replace('£', '').replace('%', ''));\n const { axis } = getValues(value, min, max);\n chartYaxis.innerHTML += `<div class=\"axis__point\" style=\"--percent:${axis}%;\"><span>${yaxis[i]}</span></div>`;\n }\n};\nexport const createXaxis = function (chartOuter) {\n const chart = chartOuter.querySelector('.chart');\n let chartXaxis = chartOuter.querySelector('.chart__xaxis');\n if (!chartXaxis) {\n chartXaxis = document.createElement('div');\n chartXaxis.setAttribute('class', 'chart__xaxis');\n }\n chart.prepend(chartXaxis);\n};\nexport const createTooltips = function (chartOuter) {\n const titles = chartOuter.querySelectorAll('thead th[title], tbody th[title]:first-child, tbody td[title]:first-child');\n Array.from(titles).forEach((title) => {\n const tooltipId = `tooltip-${Date.now()}-${Math.floor(Math.random() * 100)}`;\n title.innerHTML = `<button class=\"tooltip\" popovertarget=\"${tooltipId}\" part=\"tooltip\" style=\"anchor-name: --${tooltipId};\">${title.textContent}</button><span id=\"${tooltipId}\" style=\"position-anchor: --${tooltipId};\" popover part=\"tooltip__content\" class=\"tooltip__content\">${title.getAttribute('title')}</span>`;\n //title.removeAttribute('title'); // TODO add a supports query for anchor positioning\n });\n};\n// #endregion\nexport default setupChart;\n","// @ts-nocheck\nexport const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","// @ts-nocheck\nimport { addClasses, setupChart, setEventListener, setEventObservers, setLongestLabel, setLongestValue, createTooltips, } from '../../modules/chart.module.js';\nimport { trackComponent, trackComponentRegistered } from '../_global.js';\ntrackComponentRegistered('iam-barchart');\nclass iamBarChart extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/barchart.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n <div class=\"chart__outer\" part=\"outer\">\n <div class=\"chart__key\" part=\"chart-key\"></div>\n <div class=\"chart__wrapper\" part=\"wrapper\">\n <div class=\"chart__yaxis\" part=\"yaxis\"></div>\n <div class=\"chart\" part=\"chart\">\n <div class=\"chart__guidelines\" part=\"guidelines\"></div>\n </div>\n </div>\n <div class=\"chart__spacer\"><span part=\"spacer\"></span</div>\n </div>`;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const chartComponent = this;\n const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;\n const orginalTable = this.querySelector('table');\n const clonedTable = orginalTable.cloneNode(true);\n const chart = this.shadowRoot.querySelector('.chart');\n const chartOuter = this.shadowRoot.querySelector('.chart__outer');\n const barCount = chart.querySelectorAll('td:not(:first-child)').length;\n chart.appendChild(clonedTable);\n addClasses(chartComponent, chartOuter);\n if (barCount <= 10) {\n chartComponent.classList.add('chart--fit-content');\n }\n if (barCount <= 5) {\n chartComponent.classList.add('chart--no-scale');\n }\n setupChart(chartComponent, chartOuter, clonedTable);\n setEventObservers(chartComponent, chartOuter);\n setEventListener(chartComponent, chartOuter);\n setLongestLabel(chartOuter);\n setLongestValue(chartOuter);\n createTooltips(chartOuter);\n trackComponent(chartComponent, 'iam-barchart', ['view-change']);\n }\n attributeChangedCallback(attrName, oldVal, newVal) { }\n}\nexport default iamBarChart;\n"],"names":["addClasses","chartElement","chartOuter","i","colour","element","setupChart","tableElement","chartKey","chartGuidelines","chartYaxis","xaxis","getChartData","setCellData","createChartKey","createChartGuidelines","createChartYaxis","createXaxis","setEventListener","chart","event","rect","x","y","labels","label","table","shadowTable","eventTarget","customEvent","_a","setEventObservers","attributesUpdated","mutationList","observer","observer2","mutation","tableUpdated","min","max","getLargestValue","yaxis","guidelines","selector","values","largestValue","getValues","value","start","cleanValue","percent","axis","bottom","tr","rowValue","td","copyTD","index","group","rowMin","rowMax","minBottom","content","setLongestLabel","chartWrapper","chartSpacer","longestLabel","setLongestValue","longestValue","chartID","previousInput","headings","arrayElement","createChartKeyItem","text","input","chartXaxis","createTooltips","titles","title","tooltipId","trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","eventDetails","eventKey","eventDetail","iamBarChart","template","chartComponent","clonedTable","barCount","attrName","oldVal","newVal"],"mappings":"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"}
1
+ {"version":3,"file":"barchart.component.min.js","sources":["../../modules/helpers.js","../../modules/chart.module.js","../_global.js","barchart.component.js"],"sourcesContent":["/**\n * Global helper functions to help maintain and enhance framework elements.\n * @module Helpers\n */\n/**\n * Add global classes used by the CSS and later JavaScript.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addBodyClasses = (body) => {\n body.classList.add('js-enabled');\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {\n body.classList.add('ie');\n }\n};\n/**\n * Add global events.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addGlobalEvents = (body) => {\n const checkElements = function (hash) {\n const label = document.querySelector(`label[for=\"${hash.replace('#', '')}\"]`);\n const summary = document.querySelector(hash + ' summary');\n const dialog = document.querySelector(`dialog${hash}`);\n const detail = document.querySelector(`detail${hash}`);\n if (label instanceof HTMLElement)\n label.click();\n else if (summary instanceof HTMLElement)\n summary.click();\n else if (dialog instanceof HTMLElement)\n dialog.showModal();\n else if (detail instanceof HTMLElement)\n detail.addAttribute('open');\n };\n if (location.hash)\n checkElements(location.hash);\n window.addEventListener('hashchange', function () {\n checkElements(location.hash);\n }, false);\n addEventListener('popstate', (event) => {\n if (event && event.state && event.state.type && event.state.type == 'pagination') {\n const form = document.querySelector(`#${event.state.form}`);\n const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);\n if (pageInput)\n pageInput.value = event.state.page;\n else\n form.innerHTML += `<input name=\"page\" type=\"hidden\" data-pagination=\"true\" value=\"${event.state.page}\" />`;\n form.dispatchEvent(new Event('submit'));\n }\n });\n document.addEventListener('submit', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.matches('form')) {\n const form = event.target;\n // Reset password types\n Array.from(form.querySelectorAll('[data-password-type]')).forEach((input) => {\n input.setAttribute('type', 'password');\n });\n if (form.querySelector(':invalid') ||\n form.querySelector('.pwd-checker[data-strength=\"1\"]') ||\n form.querySelector('.pwd-checker[data-strength=\"2\"]')) {\n form.classList.add('was-validated');\n event.preventDefault();\n }\n if (form.querySelector('iam-multiselect[data-is-required][data-error]')) {\n form.classList.add('was-validated');\n event.preventDefault();\n }\n }\n });\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n if (document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n });\n Array.from(document.querySelectorAll('label progress')).forEach((progress) => {\n const label = progress.closest('label');\n label.setAttribute('data-percent', progress.getAttribute('value'));\n });\n};\nexport const isNumeric = function (str) {\n if (typeof str != 'string')\n return false; // we only process strings!\n return (!isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\n !isNaN(parseFloat(str))); // ...and ensure strings of whitespace fail\n};\nexport const zeroPad = (num, places) => String(num).padStart(places, '0');\nexport const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nexport const ucwords = (str) => str\n .split(' ')\n .map((s) => ucfirst(s))\n .join(' ');\nexport const unsnake = (str) => str.replace(/_/g, ' ');\nexport const snake = (str) => str.replace(/ /g, '_');\nexport const safeID = function (str) {\n str = str.toLowerCase();\n str = snake(str);\n str = str.replace(/\\W/g, '');\n return str;\n};\nexport const numberOfDays = function (startDateString, endDateString) {\n const convertStart = startDateString.split('/');\n const convertEnd = endDateString.split('/');\n const dateStart = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);\n const dateEnd = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);\n if (dateStart == 'Invalid Date')\n throw 'Start date is not a valid date';\n if (dateEnd == 'Invalid Date')\n throw 'End date is not a valid date';\n // To calculate the time difference of two dates\n const diffTime = dateEnd.getTime() - dateStart.getTime();\n const numberOfDays = diffTime / (1000 * 3600 * 24) + 1;\n if (numberOfDays < 0)\n throw 'The start date should be before the end date';\n return numberOfDays;\n};\n// Used to get values from nested json objects\nexport const resolvePath = (object, path, defaultValue) => path\n // eslint-disable-next-line no-useless-escape\n .split(/[\\.\\[\\]\\'\\\"]/)\n .filter((p) => p)\n .reduce((o, p) => (o ? o[p] : defaultValue), object);\nexport const isTraversable = (o) => Array.isArray(o) || (o !== null && ['function', 'object'].includes(typeof o));\nexport const getSwipeDirection = (touchstartX, touchstartY, touchendX, touchendY) => {\n const limit = Math.tan(((45 * 1.5) / 180) * Math.PI);\n const pageWidth = window.innerWidth || document.body.clientWidth;\n const treshold = Math.max(1, Math.floor(0.01 * pageWidth));\n const x = touchendX - touchstartX;\n const y = touchendY - touchstartY;\n const xy = Math.abs(x / y);\n const yx = Math.abs(y / x);\n if (Math.abs(x) > treshold || Math.abs(y) > treshold) {\n if (yx <= limit) {\n if (x < 0) {\n return 'left';\n }\n else {\n return 'right';\n }\n }\n if (xy <= limit) {\n if (y < 0) {\n return 'top';\n }\n else {\n return 'bottom';\n }\n }\n }\n else {\n return 'tap';\n }\n};\n","import { ucfirst, unsnake } from './helpers.js';\n// #region Functions that setup and trigger other functions\nexport const addClasses = (chartElement, chartOuter) => {\n // add colour classes\n for (let i = 1; i <= 10; i++) {\n if (chartElement.hasAttribute(`data-colour-${i}`)) {\n const colour = chartElement.getAttribute(`data-colour-${i}`);\n chartElement.style.setProperty(`--chart-colour-${i}`, `var(--chart-colour-${colour})`);\n chartElement.style.setProperty(`--chart-colour-${i}-hover`, `var(--chart-colour-${colour}-hover)`);\n }\n Array.from(chartOuter.querySelectorAll(`[data-colour-${i}]`)).forEach((element) => {\n const colour = element.getAttribute(`data-colour-${i}`);\n element.style.setProperty(`--chart-colour-${i}-set`, `var(--chart-colour-${colour})`);\n element.style.setProperty(`--chart-colour-${i}-hover`, `var(--chart-colour-${colour}-hover)`);\n });\n }\n return true;\n};\nexport const setupChart = (chartElement, chartOuter, tableElement) => {\n if (chartElement.tagName == 'IAM-DOUGHNUTCHART') {\n setupDoughnutChart(chartElement, chartOuter, tableElement);\n return true;\n }\n // #region Reset the chart\n // empty divs to re-populate\n const chartKey = chartOuter.querySelector('.chart__key');\n chartKey.innerHTML = '';\n const chartGuidelines = chartOuter.querySelector('.chart__guidelines');\n chartGuidelines.innerHTML = ``;\n const chartYaxis = chartOuter.querySelector('.chart__yaxis');\n chartYaxis.innerHTML = ``;\n // Remove old input fields\n Array.from(chartOuter.querySelectorAll(':scope > input[type=\"checkbox\"],:scope > input[type=\"radio\"]')).map((element) => {\n element.remove();\n });\n // #endregion\n const { xaxis } = getChartData(chartElement);\n setCellData(chartElement, tableElement);\n createChartKey(chartOuter, tableElement, chartKey);\n createChartGuidelines(chartElement, chartGuidelines);\n createChartYaxis(chartElement, chartYaxis);\n if (xaxis) {\n createXaxis(chartOuter);\n }\n return true;\n};\nexport const setupDoughnutChart = (chartElement, chartOuter, tableElement) => {\n // #region Reset the chart\n // empty divs to re-populate\n const chartKey = chartOuter.querySelector('.chart__key');\n chartKey.innerHTML = '';\n // Remove old input fields\n Array.from(chartOuter.querySelectorAll(':scope > input[type=\"checkbox\"],:scope > input[type=\"radio\"]')).map((element) => {\n element.remove();\n });\n // #endregion\n setCellData(chartElement, tableElement);\n createChartKey(chartOuter, tableElement, chartKey);\n createdoughnuts(chartOuter);\n return true;\n};\n// #endregion\n// #region Event handlers and observers\nexport const setEventListener = function (chartElement, chartOuter) {\n const chart = chartOuter.querySelector('.chart');\n chart.addEventListener('mousemove', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('td:not(:first-child')) {\n const column = event.target.closest('td:not(:first-child');\n const rect = column.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n chart.setAttribute('style', `--cursor-x: ${x}px; --cursor-y: ${y}px;`);\n }\n });\n // Use the part for the chart items to pass through states to the pages CSS\n const labels = chartOuter.querySelectorAll('label');\n Array.from(labels).forEach((label) => {\n if (chartOuter.querySelector(`input#${label.getAttribute('for')}`).checked)\n label.setAttribute('part', 'key-checked');\n else\n label.setAttribute('part', 'key-unchecked');\n });\n const table = chartElement.querySelector('table');\n const shadowTable = chartOuter.querySelector('table');\n chartOuter.addEventListener('change', function (event) {\n const eventTarget = event.target;\n const customEvent = new CustomEvent('view-change', {\n detail: {\n 'data-dataset': eventTarget.getAttribute('data-dataset'),\n label: eventTarget.getAttribute('data-label'),\n checked: eventTarget.checked,\n },\n });\n chartElement.dispatchEvent(customEvent);\n Array.from(labels).forEach((label) => {\n var _a;\n if ((_a = chartOuter.querySelector(`input#${label.getAttribute('for')}`)) === null || _a === void 0 ? void 0 : _a.checked)\n label.setAttribute('part', 'key-checked');\n else\n label.setAttribute('part', 'key-unchecked');\n });\n shadowTable.innerHTML = table.innerHTML;\n setCellData(chartElement, shadowTable);\n if (chartElement.tagName == 'IAM-DOUGHNUTCHART') {\n createdoughnuts(chartOuter);\n }\n });\n};\nexport const setEventObservers = function (chartElement, chartOuter) {\n const table = chartElement.querySelector('table');\n const shadowTable = chartOuter.querySelector('table');\n const attributesUpdated = (mutationList, observer) => {\n observer.disconnect();\n observer2.disconnect();\n for (const mutation of mutationList) {\n if (mutation.attributeName == 'class' || mutation.type === 'attributes' || mutation.type === 'attributes') {\n shadowTable.innerHTML = table.innerHTML;\n setupChart(chartElement, chartOuter, shadowTable);\n }\n }\n observer.observe(table, { characterData: true, subtree: true });\n observer2.observe(chartElement, { attributes: true });\n };\n const tableUpdated = (mutationList, observer) => {\n observer.disconnect();\n observer2.disconnect();\n for (const mutation of mutationList) {\n if (mutation.type == 'characterData' || (mutation.type == 'childList' && mutation.addedNodes.length)) {\n shadowTable.innerHTML = table.innerHTML;\n setupChart(chartElement, chartOuter, shadowTable);\n }\n }\n observer.observe(table, { characterData: true, subtree: true });\n observer2.observe(chartElement, { attributes: true });\n };\n const observer = new MutationObserver(tableUpdated);\n const observer2 = new MutationObserver(attributesUpdated);\n observer.observe(table, { characterData: true, subtree: true });\n observer2.observe(chartElement, { attributes: true });\n return true;\n};\nfunction getCoordinatesForPercent(percent, doughnutCount) {\n // This moves the start point to the top middle point like a clock\n if (doughnutCount > 1)\n percent = percent - 0.25;\n const x = Math.cos(2 * Math.PI * percent);\n const y = Math.sin(2 * Math.PI * percent);\n return [x * 100, y * 100];\n}\n// #endregion\n// #region GET functions\nexport const getChartData = function (chartElement) {\n const table = chartElement.shadowRoot.querySelector('.chart__wrapper table');\n const min = chartElement.hasAttribute('data-min') ? chartElement.getAttribute('data-min') : 0;\n const max = chartElement.hasAttribute('data-max')\n ? chartElement.getAttribute('data-max')\n : getLargestValue(chartElement, table);\n //let type:string = chartElement.hasAttribute('data-type') ? chartElement.getAttribute('data-type') : 'column';\n const yaxis = chartElement.hasAttribute('data-yaxis') ? chartElement.getAttribute('data-yaxis').split(',') : [];\n const guidelines = chartElement.hasAttribute('data-guidelines')\n ? chartElement.getAttribute('data-guidelines').split(',')\n : [];\n //let targets:any = chartElement.hasAttribute('data-targets') ? JSON.parse(chartElement.getAttribute('data-targets')) : null;\n //let events:any = chartElement.hasAttribute('data-events') ? JSON.parse(chartElement.getAttribute('data-events')) : null;\n const xaxis = chartElement.hasAttribute('data-xaxis')\n ? chartElement.getAttribute('data-xaxis').split(',')\n : null;\n //let increment = chartElement.hasAttribute('data-increment') ? chartElement.getAttribute('data-increment'): null;\n //let start:any = chartElement.hasAttribute('data-start') ? chartElement.getAttribute('data-start') : 0;\n //let end:any = chartElement.hasAttribute('data-end') ? chartElement.getAttribute('data-end') : getLargestValue(chartElement,table); // TODO - get largest value from the data-xaxis\n //let slope:any = chartElement.hasAttribute('data-slope') ? chartElement.getAttribute('data-slope') : null;\n //let yInt:any = chartElement.hasAttribute('data-yint') ? chartElement.getAttribute('data-yint') : null;\n return { min, max, yaxis, xaxis, guidelines };\n};\nfunction getLargestValue(chartElement, table) {\n const selector = chartElement.classList.contains('chart--stacked') ? 'tbody tr' : 'tbody td:not(:first-child)';\n const values = Array.from(table.querySelectorAll(selector)).map((element) => {\n const currentValue = element.getAttribute('data-numeric');\n return currentValue;\n });\n const largestValue = Math.max(...values);\n // TO DO round to the nearest 10, 100, 1000 and so on\n return Math.ceil(largestValue);\n}\nconst getValues = function (value, min, max, start) {\n let cleanValue = String(value);\n cleanValue = cleanValue.replace('£', '');\n cleanValue = cleanValue.replace('%', '');\n cleanValue = cleanValue.replace(',', '');\n cleanValue = Number.parseFloat(cleanValue);\n let percent = ((cleanValue - min) / (max - min)) * 100;\n let axis = percent;\n let bottom = 0;\n if (start && start != 0) {\n bottom = ((start - min) / (max - min)) * 100;\n }\n // If the value is negative the position below the 0 line\n if (min < 0) {\n bottom = Math.abs((min / (max - min)) * 100);\n if (cleanValue < 0) {\n percent = bottom - percent;\n bottom = bottom - percent;\n axis = bottom;\n }\n else {\n percent = percent - bottom;\n axis = percent + bottom;\n }\n }\n return { percent, axis, bottom };\n};\n// #endregion\n// #region SET functions - set data attributes and classes\nexport const setCellData = function (chartElement, table) {\n Array.from(table.querySelectorAll('tbody tr')).forEach((tr) => {\n let rowValue = 0;\n // Set the data numeric value if not set\n Array.from(tr.querySelectorAll('td:not(:first-child)')).forEach((td) => {\n // Ignore the buttons and links inside\n const copyTD = td.cloneNode(true);\n Array.from(copyTD.querySelectorAll('*')).forEach((element) => {\n element.remove();\n });\n const value = parseFloat(copyTD.textContent.replace('£', '').replace('%', '').replace(',', ''));\n td.setAttribute('data-numeric', value);\n td.setAttribute('data-value', copyTD.textContent);\n const display = getComputedStyle(td).display;\n if (display != 'none')\n rowValue += value;\n Array.from(td.querySelectorAll('a, button')).forEach((element, index) => {\n if (index == 0) {\n element.insertAdjacentHTML('beforeBegin', '<hr/>');\n }\n element.classList.add('btn');\n element.classList.add('btn-tertiary');\n });\n });\n tr.setAttribute('data-numeric', rowValue);\n });\n const { min, max } = getChartData(chartElement);\n Array.from(table.querySelectorAll('tbody tr')).forEach((tr, index) => {\n const group = tr.querySelector('td:first-child, th:first-child')\n ? tr.querySelector('td:first-child, th:first-child').textContent\n : '';\n tr.setAttribute('part', 'group');\n const percent = ((tr.getAttribute('data-numeric') - min) / (max - min)) * 100;\n tr.style.setProperty('--percent', `${percent}%`);\n // Set the data label value if not set\n Array.from(tr.querySelectorAll('td:not([data-label])')).forEach((td, index) => {\n if (index == 0)\n td.setAttribute('part', 'xaxis-label'); // PART\n else\n td.setAttribute('part', 'value');\n if (tr.querySelectorAll('td').length > 2)\n td.setAttribute('data-label', table.querySelectorAll('thead th')[index].textContent);\n });\n const rowMin = tr.hasAttribute('data-min') ? tr.getAttribute('data-min') : min;\n const rowMax = tr.hasAttribute('data-max') ? tr.getAttribute('data-max') : max;\n if (rowMin < 0) {\n const minBottom = Math.abs((rowMin / (rowMax - rowMin)) * 100);\n chartElement.setAttribute('style', `--min-bottom: ${minBottom}%;`);\n }\n // Add a useful index css var for the use of animatons.\n tr.style.setProperty('--row-index', index + 1);\n // Add css vars to cells\n Array.from(tr.querySelectorAll('td[data-numeric]:not([data-label=\"Min\"]):not([data-label=\"Max\"]):not(:first-child)')).forEach((td) => {\n const display = getComputedStyle(td).display;\n if (display == 'none')\n return;\n const content = td.innerHTML;\n const value = Number.parseFloat(td.getAttribute('data-numeric'));\n const start = Number.parseFloat(td.getAttribute('data-start'));\n if (!td.querySelector('span[data-group]'))\n td.innerHTML = `<span data-group=\"${group}\" ${td.hasAttribute('data-label') ? `data-label=\"${td.getAttribute('data-label')}\"` : ''} part=\"popover\">${content}</span>`;\n if (!td.hasAttribute('style')) {\n const { percent, bottom, axis } = getValues(value, rowMin, rowMax, start);\n td.setAttribute('data-percent', percent);\n td.setAttribute('style', `--bottom:${bottom}%;--percent:${percent}%;--axis:${axis}%;`);\n }\n });\n });\n};\nexport const setLongestLabel = function (chartOuter) {\n const chartWrapper = chartOuter.querySelector('.chart__wrapper');\n const chartSpacer = chartOuter.querySelector('.chart__spacer span');\n const table = chartOuter.querySelector('.chart table');\n // set the longest label attr so that the bar chart knows what margin to set on the left\n let longestLabel = '';\n Array.from(table.querySelectorAll('tbody tr td:first-child')).forEach((td) => {\n if (typeof td.textContent != 'undefined' && td.textContent.length > longestLabel.length) {\n longestLabel = td.textContent;\n }\n });\n chartWrapper.setAttribute('data-longest-label', longestLabel);\n chartSpacer.innerHTML = longestLabel;\n};\nexport const setLongestValue = function (chartOuter) {\n const chartWrapper = chartOuter.querySelector('.chart__wrapper');\n const table = chartOuter.querySelector('.chart table');\n let longestValue = '';\n Array.from(table.querySelectorAll('tbody tr td:not(:first-child)')).forEach((td) => {\n if (typeof td.getAttribute('data-value') != 'undefined' &&\n td.getAttribute('data-value').length > longestValue.length) {\n longestValue = td.getAttribute('data-value');\n }\n });\n chartWrapper.setAttribute('data-longest-value', longestValue);\n};\n// #endregion\n// #region CREATE function\nexport const createChartKey = function (chartOuter, tableElement, chartKey) {\n const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;\n //const chartOuter = chartElement.querySelector('.chart__outer');\n let previousInput;\n const headings = Array.from(tableElement.querySelectorAll('thead th'));\n headings.forEach((arrayElement, index) => {\n if (index != 0) {\n previousInput = createChartKeyItem(chartID, index, arrayElement.textContent, chartKey, chartOuter, previousInput);\n }\n if (index == 50) {\n headings.length = index + 1;\n }\n });\n return true;\n};\nfunction createChartKeyItem(chartID, index, text, chartKey, chartOuter, previousInput) {\n var _a;\n const input = document.createElement('input');\n input.setAttribute('name', `${chartID}-dataset-${index}`);\n input.setAttribute('id', `${chartID}-dataset-${index}`);\n input.setAttribute('data-dataset', `${index}`);\n input.setAttribute('data-label', `${text}`);\n input.checked = true;\n input.setAttribute('type', `checkbox`);\n if (index == 1)\n chartOuter.prepend(input);\n else\n chartOuter.insertBefore(input, previousInput.nextSibling);\n previousInput = input;\n const label = document.createElement('label');\n label.setAttribute('class', `key btn btn-action`);\n label.setAttribute('for', `${chartID}-dataset-${index}`);\n label.setAttribute('data-label', `${text}`);\n label.setAttribute('part', `key`);\n const total = (_a = chartOuter.querySelector(`tbody tr td:nth-child(${index + 1})`)) === null || _a === void 0 ? void 0 : _a.getAttribute('data-numeric');\n label.setAttribute('data-numeric', total);\n label.innerHTML = `${text}`;\n chartKey.append(label);\n return previousInput;\n}\nexport const createChartGuidelines = function (chartElement, chartGuidelines) {\n const { min, max, yaxis } = getChartData(chartElement);\n let { guidelines } = getChartData(chartElement);\n if (!guidelines.length)\n guidelines = yaxis;\n chartGuidelines.innerHTML = '';\n for (let i = 0; i < guidelines.length; i++) {\n const value = parseFloat(guidelines[i].replace('£', '').replace('%', '').replace(',', ''));\n const { axis } = getValues(value, min, max);\n chartGuidelines.innerHTML += `<div class=\"guideline\" style=\"--percent:${axis}%;\">${yaxis.indexOf(guidelines[i]) != -1 ? `<span>${guidelines[i]}</span>` : ''}</div>`;\n }\n};\nexport const createChartYaxis = function (chartElement, chartYaxis) {\n const { min, max, yaxis } = getChartData(chartElement);\n chartYaxis.innerHTML = '';\n for (let i = 0; i < yaxis.length; i++) {\n const value = parseFloat(yaxis[i].replace('£', '').replace('%', ''));\n const { axis } = getValues(value, min, max);\n chartYaxis.innerHTML += `<div class=\"axis__point\" style=\"--percent:${axis}%;\"><span>${yaxis[i]}</span></div>`;\n }\n};\nexport const createXaxis = function (chartOuter) {\n const chart = chartOuter.querySelector('.chart');\n let chartXaxis = chartOuter.querySelector('.chart__xaxis');\n if (!chartXaxis) {\n chartXaxis = document.createElement('div');\n chartXaxis.setAttribute('class', 'chart__xaxis');\n }\n chart.prepend(chartXaxis);\n};\nexport const createTooltips = function (chartOuter) {\n const titles = chartOuter.querySelectorAll('thead th[title], tbody th[title]:first-child, tbody td[title]:first-child');\n Array.from(titles).forEach((title) => {\n const tooltipId = `tooltip-${Date.now()}-${Math.floor(Math.random() * 100)}`;\n title.innerHTML = `<button class=\"tooltip\" popovertarget=\"${tooltipId}\" part=\"tooltip\" style=\"anchor-name: --${tooltipId};\">${title.textContent}</button><span id=\"${tooltipId}\" style=\"position-anchor: --${tooltipId};\" popover part=\"tooltip__content\" class=\"tooltip__content\">${title.getAttribute('title')}</span>`;\n //title.removeAttribute('title'); // TODO add a supports query for anchor positioning\n });\n};\nexport const createdoughnuts = function (chartOuter) {\n let returnString = '';\n const chartInner = chartOuter.querySelector('.chart');\n let doughnutWrapper = chartOuter.querySelector('.doughnuts');\n if (!doughnutWrapper) {\n doughnutWrapper = document.createElement('div');\n doughnutWrapper.setAttribute('class', 'doughnuts');\n chartInner.append(doughnutWrapper);\n }\n Array.from(chartInner.querySelectorAll('tbody tr')).forEach((item, index) => {\n let paths = '';\n let tooltips = '';\n let cumulativePercent = 0;\n let total = 0;\n const titleKey = item.querySelectorAll('td')[0];\n const title = titleKey.innerHTML;\n let doughnutCount = 0;\n const rowTotal = item.getAttribute('data-numeric');\n // Work out the total amount\n Array.from(item.querySelectorAll('td')).forEach((td, subindex) => {\n const display = getComputedStyle(td).display;\n if (subindex != 0 && display != 'none') {\n let value = td.getAttribute('data-numeric');\n value = value.replace('£', '');\n value = value.replace('%', '');\n value = value.replace(',', '');\n value = Number.parseInt(value);\n total += value;\n doughnutCount++;\n }\n });\n // Create the paths\n Array.from(item.querySelectorAll('td')).forEach((td, subindex) => {\n var _a, _b;\n const display = getComputedStyle(td).display;\n if (subindex != 0 && doughnutCount == 1 && display != 'none') {\n const pathData = `M 0 0 L 100 0 A 100 100 0 1 1 100 -0.01 L 0 0`;\n paths += `<path d=\"${pathData}\" style=\"${td.getAttribute('style')} --path-index: ${subindex};\"></path>`;\n tooltips += `<span class=\"h5 mb-0\" part=\"popover\">${ucfirst(unsnake(td.getAttribute('data-label'))).trim()}<br/>${td.hasAttribute('data-second') ? `${td.getAttribute('data-second-label')}: ${td.getAttribute('data-second')}<br/>` : ''}${(_a = td.querySelector('[part=\"popover\"]')) === null || _a === void 0 ? void 0 : _a.innerHTML}</span>`;\n }\n else if (subindex != 0) {\n let value = td.getAttribute('data-numeric');\n const hide = display == 'none' ? 'display: none;' : '';\n value = value.replace('£', '');\n value = value.replace('%', '');\n value = value.replace(',', '');\n value = Number.parseInt(value);\n const percent = value / total;\n const [startX, startY] = getCoordinatesForPercent(cumulativePercent, doughnutCount);\n const [endX, endY] = getCoordinatesForPercent(cumulativePercent + percent, doughnutCount);\n const largeArcFlag = percent > 0.5 ? 1 : 0; // if the slice is more than 50%, take the large arc (the long way around)\n const pathData = [\n `M 0 0`,\n `L ${startX ? startX.toFixed(0) : 0} ${startY ? startY.toFixed(0) : 0}`, // Move\n `A 100 100 0 ${largeArcFlag} 1 ${endX ? endX.toFixed(0) : 0} ${endY ? endY.toFixed(0) : 0}`, // Arc\n `L 0 0`, // Line\n ].join(' ');\n paths += `<path d=\"${pathData}\" style=\"${td.getAttribute('style')} --path-index: ${subindex};${hide}\"></path>`;\n tooltips += `<span class=\"h5 mb-0\" part=\"popover\">${ucfirst(unsnake(td.getAttribute('data-label'))).trim()}<br/>${td.hasAttribute('data-second') ? `${td.getAttribute('data-second-label')}: ${td.getAttribute('data-second')}<br/>` : ''}${(_b = td.querySelector('[part=\"popover\"]')) === null || _b === void 0 ? void 0 : _b.innerHTML}</span>`;\n // each slice starts where the last slice ended, so keep a cumulative percent\n if (display != 'none')\n cumulativePercent += percent;\n }\n });\n returnString += `<div class=\"doughnut\">\n <svg viewBox=\"-105 -105 210 210\" preserveAspectRatio=\"none\" style=\"--row-index: ${index + 1};\">${paths}</svg>\n <div class=\"doughnut__title\" data-numeric=\"${rowTotal}\"><span class=\"h5 mb-0\">${title}</span></div>\n <div class=\"tooltips\">${tooltips}</div>\n</div>`;\n });\n doughnutWrapper.innerHTML = returnString;\n};\n// #endregion\nexport default setupChart;\n","export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import { addClasses, setupChart, setEventListener, setEventObservers, setLongestLabel, setLongestValue, createTooltips, } from '../../modules/chart.module.js';\nimport { trackComponent, trackComponentRegistered } from '../_global.js';\ntrackComponentRegistered('iam-barchart');\nclass iamBarChart extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/barchart.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n <div class=\"chart__outer\" part=\"outer\">\n <div class=\"chart__key\" part=\"chart-key\"></div>\n <div class=\"chart__wrapper\" part=\"wrapper\">\n <div class=\"chart__yaxis\" part=\"yaxis\"></div>\n <div class=\"chart\" part=\"chart\">\n <div class=\"chart__guidelines\" part=\"guidelines\"></div>\n </div>\n </div>\n <div class=\"chart__spacer\"><span part=\"spacer\"></span</div>\n </div>`;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const chartComponent = this;\n //const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;\n const orginalTable = this.querySelector('table');\n const clonedTable = orginalTable.cloneNode(true);\n const chart = this.shadowRoot.querySelector('.chart');\n const chartOuter = this.shadowRoot.querySelector('.chart__outer');\n const barCount = chart.querySelectorAll('td:not(:first-child)').length;\n chart.appendChild(clonedTable);\n addClasses(chartComponent, chartOuter);\n if (barCount <= 10) {\n chartComponent.classList.add('chart--fit-content');\n }\n if (barCount <= 5) {\n chartComponent.classList.add('chart--no-scale');\n }\n setupChart(chartComponent, chartOuter, clonedTable);\n setEventObservers(chartComponent, chartOuter);\n setEventListener(chartComponent, chartOuter);\n setLongestLabel(chartOuter);\n setLongestValue(chartOuter);\n createTooltips(chartOuter);\n trackComponent(chartComponent, 'iam-barchart', ['view-change']);\n }\n}\nexport default iamBarChart;\n"],"names":["ucfirst","str","unsnake","addClasses","chartElement","chartOuter","i","colour","element","setupChart","tableElement","setupDoughnutChart","chartKey","chartGuidelines","chartYaxis","xaxis","getChartData","setCellData","createChartKey","createChartGuidelines","createChartYaxis","createXaxis","createdoughnuts","setEventListener","chart","event","rect","x","y","labels","label","table","shadowTable","eventTarget","customEvent","_a","setEventObservers","attributesUpdated","mutationList","observer","observer2","mutation","tableUpdated","getCoordinatesForPercent","percent","doughnutCount","min","max","getLargestValue","yaxis","guidelines","selector","values","largestValue","getValues","value","start","cleanValue","axis","bottom","tr","rowValue","td","copyTD","index","group","rowMin","rowMax","minBottom","content","setLongestLabel","chartWrapper","chartSpacer","longestLabel","setLongestValue","longestValue","chartID","previousInput","headings","arrayElement","createChartKeyItem","text","input","total","chartXaxis","createTooltips","titles","title","tooltipId","returnString","chartInner","doughnutWrapper","item","paths","tooltips","cumulativePercent","rowTotal","subindex","display","_b","hide","startX","startY","endX","endY","largeArcFlag","pathData","trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","eventDetails","eventKey","eventDetail","iamBarChart","template","chartComponent","clonedTable","barCount"],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ window.dataLayer = window.dataLayer || [];
2
+ window.dataLayer.push({
3
+ event: 'customElementRegistered',
4
+ element: 'accordion',
5
+ });
6
+ class iamAccordion extends HTMLElement {
7
+ constructor() {
8
+ var _a;
9
+ super();
10
+ this.attachShadow({ mode: 'open' });
11
+ const assetLocation = document.body.hasAttribute('data-assets-location')
12
+ ? document.body.getAttribute('data-assets-location')
13
+ : '/assets';
14
+ const loadCSS = `@import "${assetLocation}/css/components/bento-grid.component.css";`;
15
+ const template = document.createElement('template');
16
+ template.innerHTML = `
17
+ <style>
18
+ ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
19
+
20
+ ${loadCSS}
21
+ </style>
22
+ <div class="wrapper">
23
+ <slot></slot>
24
+ </div>
25
+ `;
26
+ (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.appendChild(template.content.cloneNode(true));
27
+ }
28
+ connectedCallback() {
29
+ this.classList.add('loaded');
30
+ const arrDetails = this.querySelectorAll('details');
31
+ Array.from(arrDetails).forEach((details) => {
32
+ details.classList.add('bg-primary');
33
+ const summary = details.querySelector('summary');
34
+ summary === null || summary === void 0 ? void 0 : summary.classList.add('h3');
35
+ if (!(summary === null || summary === void 0 ? void 0 : summary.querySelector('[role="presentation"]')))
36
+ summary === null || summary === void 0 ? void 0 : summary.insertAdjacentHTML('beforeend', ` <span role="presentation">Find out more</span>`);
37
+ });
38
+ this.addEventListener('click', (event) => {
39
+ if (event && event.target instanceof HTMLElement && event.target.closest('details summary')) {
40
+ const summary = event.target.closest('details summary');
41
+ const details = summary === null || summary === void 0 ? void 0 : summary.closest('details');
42
+ details === null || details === void 0 ? void 0 : details.classList.add('animating');
43
+ setTimeout(() => {
44
+ details === null || details === void 0 ? void 0 : details.classList.remove('animating');
45
+ }, 1100);
46
+ }
47
+ });
48
+ }
49
+ }
50
+ export default iamAccordion;
@@ -0,0 +1,15 @@
1
+ /*!
2
+ * iamKey v7.2.0
3
+ * Copyright 2022-2025 iamproperty
4
+ */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"accordion"});class a extends HTMLElement{constructor(){var i;super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
5
+ <style>
6
+ ${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
7
+
8
+ *,*::before,*::after{box-sizing:border-box}:host{container-type:inline-size;display:block}::slotted(details){margin-bottom:1rem;border-radius:1rem;padding:0 !important;position:relative;overflow:hidden}@container (width > 40em){.wrapper{aspect-ratio:1.75/1;position:relative;display:block;overflow:hidden;border-radius:1rem;--content-max-width: 28rem}::slotted(details){position:absolute;top:0;left:0;width:calc(60% - .5rem) !important;height:calc(50% - .5rem);z-index:1;border-radius:1rem;margin:0}::slotted(details.animating){transition:1s !important;z-index:10 !important}::slotted(details:nth-child(2)){top:0;left:calc(60% + .5rem);width:calc(40% - .5rem) !important;height:calc(50% - .5rem)}::slotted(details:nth-child(3)){top:calc(50% + .5rem);left:0;width:calc(50% - .5rem) !important;height:calc(50% - .5rem)}::slotted(details:nth-child(4)){top:calc(50% + .5rem);left:calc(50% + .5rem);width:calc(50% - .5rem) !important;height:calc(50% - .5rem)}::slotted(details[open]){top:0;left:0;width:100% !important;height:100%;z-index:9}::slotted(details[open]:after){content:"";display:block;top:50%;left:50%;height:100%;width:100%;background:red}::slotted(details[open]:not(.animating)){overflow:auto;overflow-x:clip;overscroll-behavior:contain}}/*# sourceMappingURL=assets/css/components/bento-grid.component.css.map */
9
+
10
+ </style>
11
+ <div class="wrapper">
12
+ <slot></slot>
13
+ </div>
14
+ `,(i=this.shadowRoot)===null||i===void 0||i.appendChild(e.content.cloneNode(!0))}connectedCallback(){this.classList.add("loaded");const i=this.querySelectorAll("details");Array.from(i).forEach(e=>{e.classList.add("bg-primary");const t=e.querySelector("summary");t?.classList.add("h3"),t?.querySelector('[role="presentation"]')||t?.insertAdjacentHTML("beforeend",' <span role="presentation">Find out more</span>')}),this.addEventListener("click",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest("details summary")){const t=e.target.closest("details summary"),o=t?.closest("details");o?.classList.add("animating"),setTimeout(()=>{o?.classList.remove("animating")},1100)}})}}export{a as default};
15
+ //# sourceMappingURL=bento-grid.component.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bento-grid.component.min.js","sources":["bento-grid.component.js"],"sourcesContent":["window.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'accordion',\n});\nclass iamAccordion extends HTMLElement {\n constructor() {\n var _a;\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/bento-grid.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n <div class=\"wrapper\">\n <slot></slot>\n </div>\n `;\n (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n this.classList.add('loaded');\n const arrDetails = this.querySelectorAll('details');\n Array.from(arrDetails).forEach((details) => {\n details.classList.add('bg-primary');\n const summary = details.querySelector('summary');\n summary === null || summary === void 0 ? void 0 : summary.classList.add('h3');\n if (!(summary === null || summary === void 0 ? void 0 : summary.querySelector('[role=\"presentation\"]')))\n summary === null || summary === void 0 ? void 0 : summary.insertAdjacentHTML('beforeend', ` <span role=\"presentation\">Find out more</span>`);\n });\n this.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('details summary')) {\n const summary = event.target.closest('details summary');\n const details = summary === null || summary === void 0 ? void 0 : summary.closest('details');\n details === null || details === void 0 ? void 0 : details.classList.add('animating');\n setTimeout(() => {\n details === null || details === void 0 ? void 0 : details.classList.remove('animating');\n }, 1100);\n }\n });\n }\n}\nexport default iamAccordion;\n"],"names":["iamAccordion","_a","template","arrDetails","details","summary","event"],"mappings":";;;IAAA,OAAO,UAAY,OAAO,WAAa,CAAE,EACzC,OAAO,UAAU,KAAK,CAClB,MAAO,0BACP,QAAS,WACb,CAAC,EACD,MAAMA,UAAqB,WAAY,CACnC,aAAc,CACV,IAAIC,EACJ,MAAO,EACP,KAAK,aAAa,CAAE,KAAM,MAAM,CAAE,EACZ,SAAS,KAAK,aAAa,sBAAsB,GACjE,SAAS,KAAK,aAAa,sBAAsB,EAGvD,MAAMC,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA,MAEvB,KAAK,aAAa,KAAK,EAAI,YAAY,KAAK,aAAa,KAAK,CAAC,KAAO,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAQrED,EAAK,KAAK,cAAgB,MAAQA,IAAO,QAAkBA,EAAG,YAAYC,EAAS,QAAQ,UAAU,EAAI,CAAC,CACnH,CACI,mBAAoB,CAChB,KAAK,UAAU,IAAI,QAAQ,EAC3B,MAAMC,EAAa,KAAK,iBAAiB,SAAS,EAClD,MAAM,KAAKA,CAAU,EAAE,QAASC,GAAY,CACxCA,EAAQ,UAAU,IAAI,YAAY,EAClC,MAAMC,EAAUD,EAAQ,cAAc,SAAS,EACGC,GAAQ,UAAU,IAAI,IAAI,EACpBA,GAAQ,cAAc,uBAAuB,GAC/CA,GAAQ,mBAAmB,YAAa,iDAAiD,CAC3J,CAAS,EACD,KAAK,iBAAiB,QAAUC,GAAU,CACtC,GAAIA,GAASA,EAAM,kBAAkB,aAAeA,EAAM,OAAO,QAAQ,iBAAiB,EAAG,CACzF,MAAMD,EAAUC,EAAM,OAAO,QAAQ,iBAAiB,EAChDF,EAA4DC,GAAQ,QAAQ,SAAS,EACzCD,GAAQ,UAAU,IAAI,WAAW,EACnF,WAAW,IAAM,CACqCA,GAAQ,UAAU,OAAO,WAAW,CACzF,EAAE,IAAI,CACvB,CACA,CAAS,CACT,CACA"}
@@ -7,7 +7,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- // @ts-nocheck
11
10
  import { trackComponent, trackComponentRegistered } from '../_global.js';
12
11
  import { cardHTML, setupCard } from '../../modules/card.module.js';
13
12
  trackComponentRegistered('iam-card');
@@ -33,11 +32,9 @@ class iamCard extends HTMLElement {
33
32
  }
34
33
  connectedCallback() {
35
34
  return __awaiter(this, void 0, void 0, function* () {
35
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
36
36
  const cardComponent = this;
37
- const cardHead = cardComponent.shadowRoot.querySelector('.card__head');
38
37
  const cardBody = cardComponent.shadowRoot.querySelector('.card__body');
39
- const cardMenu = cardComponent.shadowRoot.querySelector('.dialog__wrapper');
40
- const btn = cardComponent.shadowRoot.querySelector('.dialog__wrapper button');
41
38
  setupCard(cardComponent);
42
39
  // Add Illustration HTML
43
40
  if (cardComponent.hasAttribute('data-illustration')) {
@@ -58,33 +55,33 @@ class iamCard extends HTMLElement {
58
55
  </div>`;
59
56
  }
60
57
  // Make sure slotted buttons and links have correct button classes
61
- Array.from(cardComponent.querySelectorAll('[slot="btns"]')).forEach((button, index) => {
58
+ Array.from(cardComponent.querySelectorAll('[slot="btns"]')).forEach((button) => {
62
59
  button.classList.add('btn');
63
60
  button.classList.add('btn-action');
64
61
  });
65
62
  // Hide the default hover and focus states when interacting with the checkbox, dialog wrapper or secondary button
66
63
  if (cardComponent.querySelector('[slot="checkbox"],[slot="secondary"]')) {
67
64
  const element = cardComponent.querySelector('[slot="checkbox"],[slot="secondary"]');
68
- element.addEventListener('mouseenter', (event) => {
65
+ element.addEventListener('mouseenter', () => {
69
66
  cardComponent.classList.add('prevent-hover');
70
67
  });
71
- element.addEventListener('mouseleave', (event) => {
68
+ element.addEventListener('mouseleave', () => {
72
69
  cardComponent.classList.remove('prevent-hover');
73
70
  });
74
71
  }
75
72
  if (cardComponent.shadowRoot.querySelector('.dialog__wrapper')) {
76
73
  const element = cardComponent.shadowRoot.querySelector('.dialog__wrapper');
77
- element.addEventListener('mouseenter', (event) => {
74
+ element.addEventListener('mouseenter', () => {
78
75
  cardComponent.classList.add('prevent-hover');
79
76
  });
80
- element.addEventListener('mouseleave', (event) => {
77
+ element.addEventListener('mouseleave', () => {
81
78
  cardComponent.classList.remove('prevent-hover');
82
79
  });
83
80
  }
84
81
  // Dispatch events of selecting checkboxes
85
82
  const checkbox = cardComponent.querySelector('input[type="checkbox"]');
86
83
  if (checkbox) {
87
- checkbox.addEventListener('change', (event) => {
84
+ checkbox.addEventListener('change', () => {
88
85
  if (checkbox.checked) {
89
86
  const customEvent = new CustomEvent('select-card', {
90
87
  detail: { 'Card value': checkbox.value, 'input name': checkbox.getAttribute('name') },
@@ -102,7 +99,7 @@ class iamCard extends HTMLElement {
102
99
  // Dispatch events of click onto secondary buttons
103
100
  const secondaryBtn = cardComponent.querySelector('[slot="secondary"]');
104
101
  if (secondaryBtn) {
105
- secondaryBtn.addEventListener('click', (event) => {
102
+ secondaryBtn.addEventListener('click', () => {
106
103
  const customEvent = new CustomEvent('secondary-button-clicked', {
107
104
  detail: { Title: secondaryBtn.getAttribute('title') },
108
105
  });
@@ -111,8 +108,8 @@ class iamCard extends HTMLElement {
111
108
  }
112
109
  // Dispatch events of click onto action buttons
113
110
  const actionBtns = cardComponent.querySelectorAll('[slot="btns"]');
114
- Array.from(actionBtns).forEach((button, index) => {
115
- button.addEventListener('click', (event) => {
111
+ Array.from(actionBtns).forEach((button) => {
112
+ button.addEventListener('click', () => {
116
113
  const customEvent = new CustomEvent('action-button-clicked', {
117
114
  detail: { Title: button.getAttribute('title') },
118
115
  });
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * iamKey v7.1.0--beta7
2
+ * iamKey v7.2.0
3
3
  * Copyright 2022-2025 iamproperty
4
- */const m=r=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:r})},g=(r,t,i)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),i.forEach(e=>{r.addEventListener(e,function(n){const d={event:e,element:t,target:n.target};Object.keys(n.detail).forEach(o=>{const a=n.detail[o];d[o]=a}),window.dataLayer.push(d)})}),!0),b=`<div class="card__head" part="head">
4
+ */const m=r=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:r})},b=(r,t,a)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),a.forEach(e=>{r.addEventListener(e,function(i){const n={event:e,element:t,target:i.target};Object.keys(i.detail).forEach(o=>{const s=i.detail[o];n[o]=s}),window.dataLayer.push(n)})}),!0),g=`<div class="card__head" part="head">
5
5
  <slot name="head"></slot>
6
6
  </div>
7
7
  <div class="card__badges"><slot name="badges"></slot></div>
@@ -15,19 +15,19 @@
15
15
  </div>
16
16
  <div class="card__footer" part="footer">
17
17
  <slot name="footer"></slot>
18
- </div>`,h=r=>{r.classList.add("card");const t=r.shadowRoot.querySelector(".card__head"),i=r.shadowRoot.querySelector(".card__body");r.hasAttribute("data-image")&&(t.innerHTML+=`<img src="${r.getAttribute("data-image")}" alt="" loading="lazy" part="image" />`),r.hasAttribute("data-total")?i.insertAdjacentHTML("beforeend",`<div class="card__total">${r.getAttribute("data-total")}</div>`):r.querySelector('[slot="total-icon"]')&&i.insertAdjacentHTML("beforeend",'<div class="card__total"><slot name="total-icon"></slot></div>'),r.querySelector('[slot="badges"]')?r.shadowRoot.querySelector(".card__badges").classList.remove("empty"):r.shadowRoot.querySelector(".card__badges").classList.add("empty")};var v=function(r,t,i,e){function n(d){return d instanceof i?d:new i(function(o){o(d)})}return new(i||(i=Promise))(function(d,o){function a(l){try{c(e.next(l))}catch(s){o(s)}}function p(l){try{c(e.throw(l))}catch(s){o(s)}}function c(l){l.done?d(l.value):n(l.value).then(a,p)}c((e=e.apply(r,t||[])).next())})};m("iam-card");class u extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
18
+ </div>`,h=r=>{r.classList.add("card");const t=r.shadowRoot.querySelector(".card__head"),a=r.shadowRoot.querySelector(".card__body");r.hasAttribute("data-image")&&(t.innerHTML+=`<img src="${r.getAttribute("data-image")}" alt="" loading="lazy" part="image" />`),r.hasAttribute("data-total")?a.insertAdjacentHTML("beforeend",`<div class="card__total">${r.getAttribute("data-total")}</div>`):r.querySelector('[slot="total-icon"]')&&a.insertAdjacentHTML("beforeend",'<div class="card__total"><slot name="total-icon"></slot></div>'),r.querySelector('[slot="badges"]')?r.shadowRoot.querySelector(".card__badges").classList.remove("empty"):r.shadowRoot.querySelector(".card__badges").classList.add("empty")};var v=function(r,t,a,e){function i(n){return n instanceof a?n:new a(function(o){o(n)})}return new(a||(a=Promise))(function(n,o){function s(d){try{c(e.next(d))}catch(l){o(l)}}function p(d){try{c(e.throw(d))}catch(l){o(l)}}function c(d){d.done?n(d.value):i(d.value).then(s,p)}c((e=e.apply(r,t||[])).next())})};m("iam-card");class u extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
19
19
  <style>
20
20
  ${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
21
21
 
22
- :host{--card-icon-right: 1rem;--card-head-top-padding: 2rem;--card-head-bottom-padding: 2rem;--card-footer-bottom-padding: 1.5rem;--card-head-height: 6rem;box-shadow:var(--card-box-shadow);border-radius:var(--card-border-radius);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);width:100%;text-align:left;display:flex;flex-direction:column;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:2px solid var(--outline-colour, --colour-canvas-2);outline-offset:-2px;margin-bottom:2rem}:host>*{width:100%;box-sizing:border-box}:host-context(:is(a,label,button)){margin-bottom:0 !important}:host(.border-0){box-shadow:none;--card-left-padding: 0rem;outline-offset:1px !important}.card__head:has(img){min-height:var(--card-head-height);position:relative;overflow:hidden;background:rgba(0,0,0,.1);z-index:-1}.card__head:has(img)>img{position:absolute;top:0;left:0;margin:-2px;width:calc(100% + 4px);height:calc(100% + 4px);object-fit:cover}.card__body{padding:var(--card-head-top-padding) var(--card-right-padding) var(--card-head-bottom-padding) var(--card-left-padding)}.card__footer{margin-top:0;padding:0 var(--card-right-padding) 0 var(--card-left-padding)}::slotted(i){font-size:1.5rem !important;margin:-3px var(--card-icon-right) 0 0 !important;vertical-align:middle !important}::slotted(i:not(.fa-light):not(.fa-bold)){font-weight:400 !important}::slotted(.badge){margin-bottom:.375rem !important}::slotted(span:not(.badge)){display:block !important;font-weight:normal !important;font-size:1rem !important}::slotted(small){padding-top:1rem !important;display:block !important;font-weight:normal !important;padding-bottom:0 !important;color:var(--colour-body)}::slotted(span:not(.badge):not([class*=pt-])){padding-top:1.5rem !important}::slotted(:is(a,button)[slot=footer]){margin-bottom:var(--card-footer-bottom-padding) !important}.card__body:has(.card__total){--card-head-top-padding: 1rem;--card-head-bottom-padding: 1.5rem}.card__total{font-size:3rem;line-height:3rem;padding-right:1rem;margin-top:.5rem}.card__total i{font-family:var(--fa-style-family, "Font Awesome 6 Pro");font-weight:var(--fa-style, 900);display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important}::slotted([slot=total-icon]){display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important;line-height:2.5rem}.card__head:has(img)~.card__badges{position:absolute;top:0;text-align:left;left:0;z-index:9}.card__badges:not(.empty){padding:var(--card-badges-top-padding, 1rem) var(--card-right-padding) 0 var(--card-left-padding);margin-bottom:-1.5rem}body:not(.js-enabled) dialog:not([open]):target{display:block}[popover],dialog{--dialog-padding: 1.5rem;--mh-padding-inline: var(--dialog-padding);color:inherit;width:fit-content;height:fit-content;border:none;overscroll-behavior:contain;background:var(--colour-canvas-2);box-shadow:0px 2px 9px rgba(0,0,0,.11);border-radius:0.625rem;padding:var(--dialog-padding);outline:var(--contrast-outline-width, 0px) solid var(--colour-primary)}[popover]:popover-open,dialog[open]{display:flex;flex-direction:column}[popover]:popover-open>*:last-child,dialog[open]>*:last-child{margin-bottom:0}[popover]:popover-open>:is(p):last-child,dialog[open]>:is(p):last-child{padding-bottom:0}.dialog__wrapper{position:relative;display:inline-block;margin-bottom:calc(var(--btn-margin) - .25rem)}.dialog__wrapper:has(dialog[open],dialog:popover-open)>button{background:var(--colour-btn-secondary-bg-hover);color:var(--colour-btn-secondary-hover);filter:brightness(85%);transition:background .1s,color .1s;border-radius:1.5rem}.dialog__wrapper>.btn:first-child{margin-bottom:.25rem}.dialog__wrapper>.btn:first-child:not(.btn-compact):not([class*=fa-]):after{content:"";display:inline-block;margin-left:1em;margin-bottom:-0.15em;height:1em;width:1em;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;transform:rotate(90deg)}.dialog__wrapper>.btn:first-child[aria-expanded]:not([data-number]):after{transform:rotate(270deg)}.dialog__wrapper>:is(dialog[open],dialog:popover-open){left:0;top:100%;z-index:var(--index-floating);min-width:20rem;border-radius:1rem;width:20rem;padding:1.5rem}@media screen and (min-width: 36em){.dialog__wrapper>:is(dialog[open],dialog:popover-open){width:20.9375rem}}@media screen and (min-width: 62em){.dialog__wrapper>:is(dialog[open],dialog:popover-open){width:22.5rem}}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list{width:fit-content !important;min-width:8.75rem !important;max-width:17.5rem !important;padding:1rem;margin:0}@media screen and (min-width: 36em){.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list{width:max-content !important}}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list hr{height:2px;background:var(--colour-border);margin-left:-1rem;margin-right:-1rem;margin-block:.25rem}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .radio--tick{margin-right:0;padding-left:1.5rem;margin-bottom:0}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .radio--tick:before{left:0;font-size:1em;top:.75rem}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a{padding:0.375rem;margin:0}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a:not(:hover,:focus,:active){border-color:rgba(0,0,0,0)}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a:after{display:none}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .btn-action{margin:0}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .btn-action:not(:hover,:focus,:active){border-color:rgba(0,0,0,0)}.dialog__wrapper>:is(dialog[open],dialog:popover-open) :is(dialog[open],dialog:popover-open){display:contents}.dialog__wrapper.dialog__wrapper--right>:is(dialog[open],dialog:popover-open){right:0;left:auto}.dialog__wrapper.dialog__wrapper--sm>:is(dialog[open],dialog:popover-open){width:14.9375rem}.dialog__wrapper.dialog__wrapper--lg>:is(dialog[open],dialog:popover-open){width:19.9375rem}@media screen and (min-width: 36em){.dialog__wrapper.dialog__wrapper--sm-left>dialog[open]{left:0;right:auto}.dialog__wrapper.dialog__wrapper--sm-right>dialog[open]{right:0;left:auto}.dialog__wrapper.dialog__wrapper--sm>dialog[open]{width:16.5625rem}.dialog__wrapper.dialog__wrapper--lg>dialog[open]{width:28.25rem}}@media screen and (min-width: 62em){.dialog__wrapper.dialog__wrapper--md-left>dialog[open]{left:0;right:auto}.dialog__wrapper.dialog__wrapper--md-right>dialog[open]{right:0;left:auto}.dialog__wrapper.dialog__wrapper--sm>dialog[open]{width:16.625rem}.dialog__wrapper.dialog__wrapper--lg>dialog[open]{width:28.375rem}}.dialog__wrapper :is(.empty,.individual){display:none}@supports selector(:has(*)){.dialog__wrapper :is(.empty,.individual){display:inline}}.dialog__wrapper:has(input:checked) .empty,.dialog__wrapper:not(:has(input:checked)) .individual,.dialog__wrapper:has(input:checked~input:checked) .individual,.dialog__wrapper:not(:has(input:checked~input:checked)) .multiple{display:none}button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[role=button]{cursor:pointer}button:focus:not(:focus-visible){outline:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 2px;display:inline-block;font-weight:bold;text-align:left;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border);color:var(--colour-btn);font-size:1.125rem;line-height:1.5rem;padding:calc(var(--btn-padding-block) - var(--btn-border-width)) calc(var(--btn-padding-inline) - var(--btn-border-width));border-radius:1.5rem;margin-bottom:var(--btn-margin);transition:background .5s,color .5s;height:auto;max-width:fit-content;appearance:none;white-space:nowrap}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}.btn:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}.btn:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}.btn:not(:last-child){margin-right:var(--btn-margin)}a:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn,.btn:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){outline:0;text-decoration:none;background:var(--colour-btn-bg-hover);color:var(--colour-btn-hover);border-radius:1.5rem}a:is(:active,.active):not([disabled]) .btn,.btn:is(:active,.active):not([disabled]){filter:brightness(85%);transition:background .1s,color .1s;color:var(--colour-btn);border-radius:1.5rem}a:disabled .btn,.btn:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--colour-btn-secondary-bg);border:2px solid var(--colour-btn-secondary-border);color:var(--colour-btn-secondary)}a:is(:hover,:focus,.hover,:active,.active):not([disabled]) .btn-secondary,.btn-secondary:is(:hover,:focus,.hover,:focus-within,:active,.active):not([disabled]){background:var(--colour-btn-secondary-bg-hover);color:var(--colour-btn-secondary-hover)}.btn-action{--btn-border-width: 1px;--btn-padding-block: 0.375rem;--btn-padding-inline: 0.375rem;background-color:var(--colour-canvas-2);border:var(--btn-border-width) solid var(--colour-muted);border-radius:0.25rem !important;font-weight:400 !important;font-size:1rem;line-height:1.25rem;color:var(--colour-heading)}.btn-action.btn[class*=fa-]:before{content:var(--fa);margin-right:0.375rem}a:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn-action,.btn-action:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){background:var(--colour-btn-action-hover-bg)}a:is(:active,.active):not([disabled]) .btn-action,.btn-action:is(:active,.active):not([disabled]){filter:brightness(85%);transition:all .1s;color:var(--colour-heading)}.btn[class*=fa-]:before{content:var(--fa);font-family:"Font Awesome 6 Pro";line-height:1em}.btn.btn[class*=fa-after]{padding-right:4rem}.btn.btn[class*=fa-after]:before{margin-right:0;margin-right:0.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}.btn:not(.btn-compact):before{margin-right:1rem}.btn i[class*=fa-]{font-family:"Font Awesome 6 Pro";margin-right:1rem;line-height:1em;font-style:inherit}.btn i[class*=fa-]:not(:first-child){margin-left:1rem;margin-right:0}.btn.btn--prompt:after{content:"";height:1.5rem;width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn--prompt:after,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active):after{margin-left:1.5rem;margin-right:-0.5rem}.btn.btn-sm{--btn-padding-block: 0.5rem;--btn-padding-inline: 2rem}.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:0.5rem;text-align:center;width:calc(var(--compact-size));min-width:calc(var(--compact-size));max-width:calc(var(--compact-size));height:calc(var(--compact-size)) !important;min-height:calc(var(--compact-size)) !important;max-height:calc(var(--compact-size)) !important;line-height:calc(var(--compact-size) - var(--btn-border-width) - var(--btn-border-width)) !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1.25rem}.btn-compact:not(:last-child){margin-right:0.5rem}.btn-compact:before{content:var(--fa);position:absolute;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - var(--btn-border-width) - var(--btn-border-width));font-weight:900}.btn-compact[class*=fa-]:before{line-height:calc(var(--compact-size) - var(--btn-border-width) - var(--btn-border-width)) !important}.btn-compact.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}.btn-compact.btn-action{--compact-size: 2rem;font-size:1rem}.btn-compact.btn-action:before{font-size:1em;font-weight:400}.btn-compact.btn-secondary{--colour-btn-border: transparent;border-color:rgba(0,0,0,0)}.btn-compact.btn-secondary:not([class*=colour-]){--colour: var(--colour-light)}.btn-compact.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse){background-color:var(--colour);color:var(--colour-primary-theme);border-color:rgba(0,0,0,0) !important}.btn-compact.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse):is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}.btn-compact[data-number]{position:relative}.btn-compact[data-number]:after{content:attr(data-number);position:absolute;top:.5em;z-index:99;background:var(--colour-danger);height:1.5em;width:1.5em;border-radius:50%;text-indent:0;left:50%;font-size:.5em;line-height:1.5em;text-align:center;color:#fff;letter-spacing:-0.1em;font-family:arial,sans-serif}.btn.colour-success{--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success:before,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active):before{content:"\uF00C";font-family:"Font Awesome 6 Pro";margin-right:1rem;font-style:inherit;width:1rem;display:inline-block;height:1.5rem;vertical-align:bottom}.btn:has(select){position:relative;padding-right:3.5rem}.btn:has(select):not(.mw-100){max-width:13rem}.btn:has(select) select{all:unset !important;padding:calc(0.75rem - 2px) calc(2.5rem - 2px) !important;margin:calc(-0.75rem) calc(-2.5rem) !important;padding-right:3.5rem !important;margin-right:-3.5rem !important;border-radius:1.5rem !important;appearance:none !important;background:none !important;border:none !important;color:currentColor !important;display:block;max-width:100% !important;outline:none;font-weight:bold;font-size:1.125rem !important;line-height:1.5rem !important}.btn:has(select) select option{padding:0;text-align:left;color:var(--colour-primary)}.btn:has(select):after{position:absolute;top:0.625rem;right:2rem;content:"";height:1.5rem;width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem;transform:rotate(90deg);pointer-events:none}.btn:has(select).active:after{transform:rotate(-90deg)}.btn:has(select:focus):after{transform:rotate(-90deg)}.btn-filter:after{content:"\uF1DE";display:inline-block;margin-left:1em;margin-bottom:-0.15em;height:1em;width:1em;z-index:var(--index-focus);color:currentColor;font-weight:300;font-family:"Font Awesome 6 Pro"}.btn.btn-tertiary{background-color:rgba(0,0,0,0);border:none;color:var(--colour-link);margin:0 var(--btn-margin) var(--btn-margin) 0;padding:0;font-size:1.125rem;font-weight:normal;line-height:1.5rem;min-height:1.5rem;position:relative}.btn.btn-tertiary:after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}.btn.btn-tertiary.text-decoration-none:after{width:0%}.btn.btn-tertiary [class*=fa-]{margin-left:0;margin-right:.5rem}.btn.btn-tertiary [class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}.btn.btn-tertiary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active):after{width:60% !important}.btn.btn-tertiary:is(:active,.active):not([disabled]){color:var(--colour-active)}:host{--card-right-padding: 1rem;--card-icon-right: 1rem}:host(:is(:hover,:focus,.hover):not(.prevent-hover)){--hover-outline-colour-default: var(--colour, var(--colour-primary));outline:2px solid var(--hover-outline-colour, var(--hover-outline-colour-default));outline-offset:-2px}:host(:is(:active,.active):not(.prevent-hover)){--card-icon-right: var(--card-icon-right-overide, 0.5rem);outline:none}:host(.prevent-hover){pointer-events:none}:host(.prevent-hover) *{pointer-events:all}:host(.show-icon) .card__body{--card-right-padding: 3.5rem}:host(.show-icon) .card__body:before,:host(.show-icon) .card__body:after{content:"";position:absolute;right:var(--card-icon-right);bottom:var(--card-bottom-padding);height:1.5rem;width:1.5rem;background:var(--colour-warning);border-radius:50%}:host(.show-icon) .card__body:after{background:var(--colour-primary-theme);mask-image:var(--icon, var(--icon-arrow));mask-size:50%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon, var(--icon-arrow));-webkit-mask-size:50%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;z-index:2}:host(:is(:hover,:focus,.hover):not(.prevent-hover):not([class*=colour-])) .card__body:before{background:var(--hover-icon-bg, var(--colour-primary-theme))}:host(:is(:hover,:focus,.hover):not(.prevent-hover):not([class*=colour-])) .card__body:after{background:var(--hover-icon-colour, #ffffff)}:host(:is(:active,.active):not(.prevent-hover):not([class*=colour-])) .card__body:before{background:var(--hover-icon-bg, var(--colour-primary-theme))}:host(:is(:active,.active):not(.prevent-hover):not([class*=colour-])) .card__body:after{background:var(--hover-icon-colour, #ffffff)}.card__body:has(.card__illustration){align-items:center;display:flex}.card__body:has(.card__illustration) .card__illustration{height:4rem;width:4rem;margin-right:1.5rem;margin-top:-1.25rem;margin-bottom:-1.25rem;position:relative}.card__body:has(.card__illustration) .card__illustration img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}:host([class*=colour-]){border-left:0.75rem solid var(--colour, var(--colour-primary))}slot[name=secondary]{display:block;position:absolute;top:.5rem;right:0;margin:.5rem .5rem 0 0;z-index:999}::slotted([slot=secondary]:not(:hover,:focus,:active,.hover)){background:none !important;color:var(--colour-btn) !important}::slotted([slot=checkbox]){position:absolute !important;top:.5rem;right:.5rem;width:2rem;height:2rem;height:2.5rem;overflow:hidden}.dialog__wrapper{position:absolute;right:1rem;bottom:2rem;width:3rem !important;left:auto;z-index:999}.dialog__wrapper>.btn:before{content:"\uF142";font-family:"Font Awesome 6 Pro"}.dialog__wrapper>[popover]{display:var(--menu-display, none);position:fixed;top:anchor(top);position-anchor:--anchor-el;left:anchor(right);right:auto;margin:0 0 0 0.25rem;padding:1rem}.dialog__wrapper>[popover]::backdrop{display:none}.dialog__wrapper>[popover]:popover-open{display:block !important}.dialog__wrapper:has([popover]:popover-open)>button{background-color:var(--colour)}.dialog__wrapper>button[popovertarget]{margin:0;anchor-name:--anchor-el}.dialog__wrapper>button[popovertarget]:not(:hover,:focus,:focus-within,:active){background:var(--ellipsis-bg)}::slotted([slot=btns]){border:none !important;margin:0 !important;display:block !important;width:fit-content}::slotted([slot=primary-action]){overflow:hidden;background-color:rgba(0,0,0,0);text-indent:-300%;position:absolute !important;inset:0;margin:0 !important;z-index:99;border:none}:host(:not(.prevent-hover)) ::slotted([slot=primary-action]:is(:hover,:focus,.hover)){--hover-outline-colour-default: var(--colour, var(--colour-primary));outline:2px solid var(--hover-outline-colour, var(--hover-outline-colour-default));outline-offset:-2px;border-radius:var(--card-border-radius) !important}/*# sourceMappingURL=assets/css/components/card.component.css.map */
22
+ :host{--card-icon-right: 1rem;--card-head-top-padding: 2rem;--card-head-bottom-padding: 2rem;--card-footer-bottom-padding: 1.5rem;--card-head-height: 6rem;box-shadow:var(--card-box-shadow);border-radius:var(--card-border-radius);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);width:100%;text-align:left;display:flex;flex-direction:column;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:2px solid var(--outline-colour, --colour-canvas-2);outline-offset:-2px;margin-bottom:2rem}:host>*{width:100%;box-sizing:border-box}:host-context(:is(a,label,button)){margin-bottom:0 !important}:host(.border-0){box-shadow:none;--card-left-padding: 0rem;outline-offset:1px !important}.card__head:has(img){min-height:var(--card-head-height);position:relative;overflow:hidden;background:rgba(0,0,0,.1);z-index:-1}.card__head:has(img)>img{position:absolute;top:0;left:0;margin:-2px;width:calc(100% + 4px);height:calc(100% + 4px);object-fit:cover}.card__body{padding:var(--card-head-top-padding) var(--card-right-padding) var(--card-head-bottom-padding) var(--card-left-padding)}.card__footer{margin-top:0;padding:0 var(--card-right-padding) 0 var(--card-left-padding)}::slotted(i){font-size:1.5rem !important;margin:-3px var(--card-icon-right) 0 0 !important;vertical-align:middle !important}::slotted(i:not(.fa-light):not(.fa-bold)){font-weight:400 !important}::slotted(.badge){margin-bottom:.375rem !important}::slotted(span:not(.badge)){display:block !important;font-weight:normal !important;font-size:1rem !important}::slotted(small){padding-top:1rem !important;display:block !important;font-weight:normal !important;padding-bottom:0 !important;color:var(--colour-body)}::slotted(span:not(.badge):not([class*=pt-])){padding-top:1.5rem !important}::slotted(:is(a,button)[slot=footer]){margin-bottom:var(--card-footer-bottom-padding) !important}.card__body:has(.card__total){--card-head-top-padding: 1rem;--card-head-bottom-padding: 1.5rem}.card__total{font-size:3rem;line-height:3rem;padding-right:1rem;margin-top:.5rem}.card__total i{font-family:var(--fa-style-family, "Font Awesome 6 Pro");font-weight:var(--fa-style, 900);display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important}::slotted([slot=total-icon]){display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important;line-height:2.5rem}.card__head:has(img)~.card__badges{position:absolute;top:0;text-align:left;left:0;z-index:9}.card__badges:not(.empty){padding:var(--card-badges-top-padding, 1rem) var(--card-right-padding) 0 var(--card-left-padding);margin-bottom:-1.5rem}@layer elements{body:not(.js-enabled) dialog:not([open]):target{display:block}[popover],dialog{--dialog-padding: 1.5rem;--mh-padding-inline: var(--dialog-padding);color:inherit;width:fit-content;height:fit-content;border:none;overscroll-behavior:contain;background:var(--colour-canvas-2);box-shadow:0px 2px 9px rgba(0,0,0,.11);border-radius:0.625rem;padding:var(--dialog-padding);outline:var(--contrast-outline-width, 0px) solid var(--colour-primary)}[popover]:popover-open,dialog[open]{display:flex;flex-direction:column}[popover]:popover-open>*:last-child,dialog[open]>*:last-child{margin-bottom:0}[popover]:popover-open>:is(p):last-child,dialog[open]>:is(p):last-child{padding-bottom:0}}@layer elements{.dialog__wrapper{position:relative;display:inline-block;margin-bottom:calc(var(--btn-margin) - .25rem)}.dialog__wrapper:has(dialog[open],dialog:popover-open)>button{background:var(--colour-btn-secondary-bg-hover);color:var(--colour-btn-secondary-hover);filter:brightness(85%);transition:background .1s,color .1s;border-radius:1.5rem}.dialog__wrapper>.btn:first-child:not(.btn-compact):not([class*=fa-]):after{content:"";display:inline-block;margin-left:1em;height:1em;width:1em;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;transform:rotate(90deg)}.dialog__wrapper>.btn:first-child[aria-expanded]:not([data-number]):after{transform:rotate(270deg)}.dialog__wrapper>.btn:first-child:has(+dialog[open]):not([data-number]):after{transform:rotate(270deg)}.dialog__wrapper>:is(dialog[open],dialog:popover-open){left:0;margin-top:-1rem;top:100%;z-index:var(--index-floating);min-width:20rem;border-radius:1rem;width:20rem;padding:1.5rem}@media screen and (min-width: 36em){.dialog__wrapper>:is(dialog[open],dialog:popover-open){width:20.9375rem}}@media screen and (min-width: 62em){.dialog__wrapper>:is(dialog[open],dialog:popover-open){width:22.5rem}}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list{width:fit-content !important;min-width:8.75rem !important;max-width:17.5rem !important;padding:1rem;margin:0}@media screen and (min-width: 36em){.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list{width:max-content !important}}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list hr{height:2px;background:var(--colour-border);margin-left:-1rem;margin-right:-1rem;margin-block:.25rem}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .radio--tick{margin-right:0;padding-left:1.5rem;margin-bottom:0}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .radio--tick:before{left:0;font-size:1em;top:.75rem}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a{padding:0.375rem;margin:0}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a:not(:hover,:focus,:active){border-color:rgba(0,0,0,0)}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a:after{display:none}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .btn-action{margin:0}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .btn-action:not(:hover,:focus,:active){border-color:rgba(0,0,0,0)}.dialog__wrapper>:is(dialog[open],dialog:popover-open) :is(dialog[open],dialog:popover-open){display:contents}.dialog__wrapper.dialog__wrapper--right>:is(dialog[open],dialog:popover-open){right:0;left:auto}.dialog__wrapper.dialog__wrapper--sm>:is(dialog[open],dialog:popover-open){width:14.9375rem}.dialog__wrapper.dialog__wrapper--lg>:is(dialog[open],dialog:popover-open){width:19.9375rem}@media screen and (min-width: 36em){.dialog__wrapper.dialog__wrapper--sm-left>dialog[open]{left:0;right:auto}.dialog__wrapper.dialog__wrapper--sm-right>dialog[open]{right:0;left:auto}.dialog__wrapper.dialog__wrapper--sm>dialog[open]{width:16.5625rem}.dialog__wrapper.dialog__wrapper--lg>dialog[open]{width:28.25rem}}@media screen and (min-width: 62em){.dialog__wrapper.dialog__wrapper--md-left>dialog[open]{left:0;right:auto}.dialog__wrapper.dialog__wrapper--md-right>dialog[open]{right:0;left:auto}.dialog__wrapper.dialog__wrapper--sm>dialog[open]{width:16.625rem}.dialog__wrapper.dialog__wrapper--lg>dialog[open]{width:28.375rem}}.dialog__wrapper :is(.empty,.individual){display:none}@supports selector(:has(*)){.dialog__wrapper :is(.empty,.individual){display:inline}}.dialog__wrapper:has(input:checked) .empty,.dialog__wrapper:not(:has(input:checked)) .individual,.dialog__wrapper:has(input:checked~input:checked) .individual,.dialog__wrapper:not(:has(input:checked~input:checked)) .multiple{display:none}}@layer elements{*,*::before,*::after{box-sizing:border-box}button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[role=button]{cursor:pointer}button:focus:not(:focus-visible){outline:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 0.125rem;--btn-font-size: 1.125rem;--btn-line-height: 1.25rem;display:inline-block;font-weight:bold;text-align:left;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;color:var(--colour-btn);font-size:var(--btn-font-size);line-height:var(--btn-line-height);padding:var(--btn-padding-block) var(--btn-padding-inline);border-radius:1.5rem;margin-bottom:var(--btn-margin);transition:background .5s,color .5s;height:auto;max-width:fit-content;appearance:none;white-space:nowrap}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}.btn:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}.btn:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}.btn:not(.border-0){background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border)}.btn:not(:last-child){margin-right:var(--btn-margin)}a:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn,.btn:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){outline:0;text-decoration:none;background:var(--colour-btn-bg-hover);color:var(--colour-btn-hover);border-radius:1.5rem}a:is(:active,.active):not([disabled]) .btn,.btn:is(:active,.active):not([disabled]){filter:brightness(85%);transition:background .1s,color .1s;color:var(--colour-btn);border-radius:1.5rem}a:disabled .btn,.btn:disabled,[disabled] .btn,.btn[disabled]{opacity:.4;cursor:not-allowed}.btn.colour-success{--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success:before,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active):before{content:"\uF00C";font-family:"Font Awesome 6 Pro";margin-right:1rem;font-style:inherit;width:1rem;display:inline-block;height:var(--btn-line-height);vertical-align:bottom}.btn.btn-sm{--btn-padding-block: 0.5rem;--btn-padding-inline: 2rem;--btn-margin: 0.5rem;--btn-font-size: 1rem}.btn[class*=fa-]:before{content:var(--fa);font-family:"Font Awesome 6 Pro";line-height:1em}.btn.btn[class*=fa-after]{padding-right:4rem}.btn.btn[class*=fa-after]:before{margin-right:0;margin-right:0.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}.btn:not(.btn-compact):before{margin-right:1rem}.btn i[class*=fa-]{font-family:"Font Awesome 6 Pro";margin-right:1rem;line-height:1em;font-style:inherit}.btn i[class*=fa-]:not(:first-child){margin-left:1rem;margin-right:0}.btn.btn--prompt:after{content:"";height:var(--btn-line-height);width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn--prompt:after,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active):after{margin-left:1.5rem;margin-right:-0.5rem}.btn:has(select){position:relative;padding-right:3.5rem}.btn:has(select):not(.mw-100){max-width:13rem}.btn:has(select) select{all:unset !important;margin:calc(-0.75rem) calc(-2.5rem) !important;padding:var(--btn-padding-block) var(--btn-padding-inline) !important;padding-right:3.5rem !important;margin-right:-3.5rem !important;border-radius:1.5rem !important;appearance:none !important;background:none !important;border:none !important;color:currentColor !important;display:block;max-width:100% !important;outline:none;font-weight:bold;font-size:var(--btn-font-size) !important;line-height:var(--btn-line-height) !important}.btn:has(select) select option{padding:0;text-align:left;color:var(--colour-primary)}.btn:has(select):after{position:absolute;top:0.625rem;right:2rem;content:"";height:1.5rem;width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem;transform:rotate(90deg);pointer-events:none}.btn:has(select).active:after{transform:rotate(-90deg)}.btn:has(select:focus):after{transform:rotate(-90deg)}.btn-filter:after{content:"\uF1DE";display:inline-block;margin-left:1em;margin-bottom:-0.15em;height:1em;width:1em;z-index:var(--index-focus);color:currentColor;font-weight:300;font-family:"Font Awesome 6 Pro"}}@layer elements{.btn-secondary{color:var(--colour-btn-secondary)}.btn-secondary:not(.border-0){background:var(--colour-btn-secondary-bg);border:2px solid var(--colour-btn-secondary-border)}a:is(:hover,:focus,.hover,:active,.active):not([disabled]) .btn-secondary,.btn-secondary:is(:hover,:focus,.hover,:focus-within,:active,.active):not([disabled]){background:var(--colour-btn-secondary-bg-hover);color:var(--colour-btn-secondary-hover)}}@layer elements{.btn.btn-tertiary{background-color:rgba(0,0,0,0);border:none;color:var(--colour-link);margin:0 var(--btn-margin) var(--btn-margin) 0;padding:0;font-size:1.125rem;font-weight:normal;line-height:1.5rem;min-height:1.5rem;position:relative}.btn.btn-tertiary:after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}.btn.btn-tertiary.text-decoration-none:after{width:0%}.btn.btn-tertiary [class*=fa-]{margin-left:0;margin-right:.5rem}.btn.btn-tertiary [class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}.btn.btn-tertiary:is(:hover,:focus,.hover,:focus-within):not([disabled],:disabled,:active,.active):after{width:60% !important}.btn.btn-tertiary:is(:active,.active):not([disabled],:disabled){color:var(--colour-active)}}@layer elements{.btn-action{--btn-border-width: 0.0625rem;--btn-padding-block: 0.3125rem;--btn-padding-inline: 0.3125rem;--btn-margin: 0.5rem;border-radius:0.25rem !important;font-weight:400 !important;font-size:1rem;line-height:1.25rem}.btn-action:not(.btn-primary){color:var(--colour-heading)}.btn-action:not(.btn-primary):not(.border-0){background-color:var(--colour-canvas-2);border:var(--btn-border-width) solid var(--colour-muted)}.btn-action.btn[class*=fa-]:before{content:var(--fa);margin-right:0.375rem}a:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn-action,.btn-action:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){background:var(--colour-btn-action-hover-bg)}.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn-action,.btn-action.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){filter:brightness(90%);background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border);color:var(--colour-btn)}a:is(:active,.active):not([disabled]):not(.btn-primary) .btn-action,.btn-action:is(:active,.active):not([disabled]):not(.btn-primary){filter:brightness(85%);transition:all .1s;color:var(--colour-heading)}}@layer elements{.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:0.5rem;text-align:center;width:var(--compact-size);min-width:var(--compact-size);max-width:var(--compact-size);height:var(--compact-size) !important;min-height:var(--compact-size) !important;max-height:var(--compact-size) !important;line-height:var(--compact-size) !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1rem}.btn-compact:not(:last-child){margin-right:0.5rem}.btn-compact:before{content:var(--fa);position:absolute;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - 0.25rem);font-weight:900}.btn-compact[class*=fa-]:before{line-height:calc(var(--compact-size) - 0.25rem)}.btn-compact.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}.btn-compact.btn-action{--compact-size: 2rem;font-size:1rem}.btn-compact.btn-action:before{font-size:1em;font-weight:400}.btn-compact.btn-secondary{--colour-btn-bg: transparent;--colour-btn-border: transparent;border-color:rgba(0,0,0,0)}.btn-compact.btn-secondary:not([class*=colour-]){--colour: var(--colour-light)}.btn-compact.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse){background-color:var(--colour);color:var(--colour-primary-theme);border-color:var(--colour)}.btn-compact.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse):is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}.btn-compact[data-number]{position:relative}.btn-compact[data-number]:after{content:attr(data-number);position:absolute;top:.5em;z-index:99;background:var(--colour-danger);height:1.5em;width:1.5em;border-radius:50%;text-indent:0;left:50%;font-size:.5em;line-height:1.5em;text-align:center;color:#fff;letter-spacing:-0.1em;font-family:arial,sans-serif}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary:not(:hover,:focus,.hover,:focus-within):not(.btn-collapse),.invert-colours .btn-compact.btn-secondary:not(:hover,:focus,.hover,:focus-within):not(.btn-collapse){background-color:var(--colour-inverted) !important;border-color:var(--colour-inverted) !important;color:var(--colour-primary-theme)}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary:is(:hover,:focus,.hover,:focus-within):not([disabled]):not(.btn-collapse),.invert-colours .btn-compact.btn-secondary:is(:hover,:focus,.hover,:focus-within):not([disabled]):not(.btn-collapse){background-color:rgba(0,0,0,0);border-color:var(--colour-inverted) !important;color:var(--colour-inverted)}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary[disabled],.invert-colours .btn-compact.btn-secondary[disabled]{background-color:var(--colour-inverted) !important;border-color:var(--colour-inverted) !important;color:var(--colour-primary-theme) !important}}:host{--card-right-padding: 1rem;--card-icon-right: 1rem}:host(:is(:hover,:focus,.hover):not(.prevent-hover)){--hover-outline-colour-default: var(--colour, var(--colour-primary));outline:2px solid var(--hover-outline-colour, var(--hover-outline-colour-default));outline-offset:-2px}:host(:is(:active,.active):not(.prevent-hover)){--card-icon-right: var(--card-icon-right-overide, 0.5rem);outline:none}:host(.prevent-hover){pointer-events:none}:host(.prevent-hover) *{pointer-events:all}:host(.show-icon) .card__body{--card-right-padding: 3.5rem}:host(.show-icon) .card__body:before,:host(.show-icon) .card__body:after{content:"";position:absolute;right:var(--card-icon-right);bottom:var(--card-bottom-padding);height:1.5rem;width:1.5rem;background:var(--colour-warning);border-radius:50%}:host(.show-icon) .card__body:after{background:var(--colour-primary-theme);mask-image:var(--icon, var(--icon-arrow));mask-size:50%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon, var(--icon-arrow));-webkit-mask-size:50%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;z-index:2}:host(:is(:hover,:focus,.hover):not(.prevent-hover):not([class*=colour-])) .card__body:before{background:var(--hover-icon-bg, var(--colour-primary-theme))}:host(:is(:hover,:focus,.hover):not(.prevent-hover):not([class*=colour-])) .card__body:after{background:var(--hover-icon-colour, #ffffff)}:host(:is(:active,.active):not(.prevent-hover):not([class*=colour-])) .card__body:before{background:var(--hover-icon-bg, var(--colour-primary-theme))}:host(:is(:active,.active):not(.prevent-hover):not([class*=colour-])) .card__body:after{background:var(--hover-icon-colour, #ffffff)}.card__body:has(.card__illustration){align-items:center;display:flex}.card__body:has(.card__illustration) .card__illustration{height:4rem;width:4rem;margin-right:1.5rem;margin-top:-1.25rem;margin-bottom:-1.25rem;position:relative}.card__body:has(.card__illustration) .card__illustration img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}:host([class*=colour-]){border-left:0.75rem solid var(--colour, var(--colour-primary))}slot[name=secondary]{display:block;position:absolute;top:.5rem;right:0;margin:.5rem .5rem 0 0;z-index:999}::slotted([slot=secondary]:not(:hover,:focus,:active,.hover)){background:none !important;color:var(--colour-btn) !important}::slotted([slot=checkbox]){position:absolute !important;top:.5rem;right:.5rem;width:2rem;height:2rem;height:2.5rem;overflow:hidden}.dialog__wrapper{position:absolute;right:1rem;bottom:2rem;width:3rem !important;left:auto;z-index:999}.dialog__wrapper>.btn:before{content:"\uF142";font-family:"Font Awesome 6 Pro"}.dialog__wrapper>[popover]{display:var(--menu-display, none);position:fixed;top:anchor(top);position-anchor:--anchor-el;left:anchor(right);right:auto;margin:0 0 0 0.25rem;padding:1rem}.dialog__wrapper>[popover]::backdrop{display:none}.dialog__wrapper>[popover]:popover-open{display:block !important}.dialog__wrapper:has([popover]:popover-open)>button{background-color:var(--colour)}.dialog__wrapper>button[popovertarget]{margin:0;anchor-name:--anchor-el}.dialog__wrapper>button[popovertarget]:not(:hover,:focus,:focus-within,:active){background:var(--ellipsis-bg)}::slotted([slot=btns]){border:none !important;margin:0 !important;display:block !important;width:fit-content}::slotted([slot=primary-action]){overflow:hidden;background-color:rgba(0,0,0,0);text-indent:-300%;position:absolute !important;inset:0;margin:0 !important;z-index:99;border:none}:host(:not(.prevent-hover)) ::slotted([slot=primary-action]:is(:hover,:focus,.hover)){--hover-outline-colour-default: var(--colour, var(--colour-primary));outline:2px solid var(--hover-outline-colour, var(--hover-outline-colour-default));outline-offset:-2px;border-radius:var(--card-border-radius) !important}/*# sourceMappingURL=assets/css/components/card.component.css.map */
23
23
 
24
24
  </style>
25
- ${b}
25
+ ${g}
26
26
  <slot name="primary-action"></slot>
27
- `,this.shadowRoot.appendChild(t.content.cloneNode(!0))}connectedCallback(){return v(this,void 0,void 0,function*(){const t=this;t.shadowRoot.querySelector(".card__head");const i=t.shadowRoot.querySelector(".card__body");if(t.shadowRoot.querySelector(".dialog__wrapper"),t.shadowRoot.querySelector(".dialog__wrapper button"),h(t),t.hasAttribute("data-illustration")&&i.insertAdjacentHTML("afterbegin",`<div class="card__illustration"><img src="${this.getAttribute("data-illustration")}" alt="" loading="lazy" /></div>`),!t.querySelector('[slot="btns"]')&&!t.querySelector('[slot="secondary"]')&&t.classList.add("show-icon"),t.querySelector('[slot="btns"]')&&(t.shadowRoot.innerHTML+=`<div class="dialog__wrapper">
27
+ `,this.shadowRoot.appendChild(t.content.cloneNode(!0))}connectedCallback(){return v(this,void 0,void 0,function*(){const t=this,a=t.shadowRoot.querySelector(".card__body");if(h(t),t.hasAttribute("data-illustration")&&a.insertAdjacentHTML("afterbegin",`<div class="card__illustration"><img src="${this.getAttribute("data-illustration")}" alt="" loading="lazy" /></div>`),!t.querySelector('[slot="btns"]')&&!t.querySelector('[slot="secondary"]')&&t.classList.add("show-icon"),t.querySelector('[slot="btns"]')&&(t.shadowRoot.innerHTML+=`<div class="dialog__wrapper">
28
28
  <button class="btn btn-secondary btn-compact fa-ellipsis-vertical" popovertarget="actions" title="Further actions" type="button">Open further actions</button>
29
29
  <div class="dialog--fix dialog--list" id="actions" popover>
30
30
  <slot name="btns"></slot>
31
31
  </div>
32
- </div>`),Array.from(t.querySelectorAll('[slot="btns"]')).forEach((o,a)=>{o.classList.add("btn"),o.classList.add("btn-action")}),t.querySelector('[slot="checkbox"],[slot="secondary"]')){const o=t.querySelector('[slot="checkbox"],[slot="secondary"]');o.addEventListener("mouseenter",a=>{t.classList.add("prevent-hover")}),o.addEventListener("mouseleave",a=>{t.classList.remove("prevent-hover")})}if(t.shadowRoot.querySelector(".dialog__wrapper")){const o=t.shadowRoot.querySelector(".dialog__wrapper");o.addEventListener("mouseenter",a=>{t.classList.add("prevent-hover")}),o.addEventListener("mouseleave",a=>{t.classList.remove("prevent-hover")})}const e=t.querySelector('input[type="checkbox"]');e&&e.addEventListener("change",o=>{if(e.checked){const a=new CustomEvent("select-card",{detail:{"Card value":e.value,"input name":e.getAttribute("name")}});t.dispatchEvent(a)}else{const a=new CustomEvent("unselect-card",{detail:{"Card value":e.value,"input name":e.getAttribute("name")}});t.dispatchEvent(a)}});const n=t.querySelector('[slot="secondary"]');n&&n.addEventListener("click",o=>{const a=new CustomEvent("secondary-button-clicked",{detail:{Title:n.getAttribute("title")}});t.dispatchEvent(a)});const d=t.querySelectorAll('[slot="btns"]');Array.from(d).forEach((o,a)=>{o.addEventListener("click",p=>{const c=new CustomEvent("action-button-clicked",{detail:{Title:o.getAttribute("title")}});t.dispatchEvent(c)})}),g(t,"iam-card",["select-card","unselect-card","secondary-button-clicked","action-button-clicked"])})}static get observedAttributes(){return["data-image"]}attributeChangedCallback(t,i,e){switch(t){case"data-total":{this.shadowRoot.querySelector(".card__total")&&(this.shadowRoot.querySelector(".card__total").innerHTML=e);break}case"data-image":{if(i!=e){const n=this.shadowRoot.querySelector(".card__head img");n&&n.setAttribute("src",e)}break}}}}export{u as default};
32
+ </div>`),Array.from(t.querySelectorAll('[slot="btns"]')).forEach(o=>{o.classList.add("btn"),o.classList.add("btn-action")}),t.querySelector('[slot="checkbox"],[slot="secondary"]')){const o=t.querySelector('[slot="checkbox"],[slot="secondary"]');o.addEventListener("mouseenter",()=>{t.classList.add("prevent-hover")}),o.addEventListener("mouseleave",()=>{t.classList.remove("prevent-hover")})}if(t.shadowRoot.querySelector(".dialog__wrapper")){const o=t.shadowRoot.querySelector(".dialog__wrapper");o.addEventListener("mouseenter",()=>{t.classList.add("prevent-hover")}),o.addEventListener("mouseleave",()=>{t.classList.remove("prevent-hover")})}const e=t.querySelector('input[type="checkbox"]');e&&e.addEventListener("change",()=>{if(e.checked){const o=new CustomEvent("select-card",{detail:{"Card value":e.value,"input name":e.getAttribute("name")}});t.dispatchEvent(o)}else{const o=new CustomEvent("unselect-card",{detail:{"Card value":e.value,"input name":e.getAttribute("name")}});t.dispatchEvent(o)}});const i=t.querySelector('[slot="secondary"]');i&&i.addEventListener("click",()=>{const o=new CustomEvent("secondary-button-clicked",{detail:{Title:i.getAttribute("title")}});t.dispatchEvent(o)});const n=t.querySelectorAll('[slot="btns"]');Array.from(n).forEach(o=>{o.addEventListener("click",()=>{const s=new CustomEvent("action-button-clicked",{detail:{Title:o.getAttribute("title")}});t.dispatchEvent(s)})}),b(t,"iam-card",["select-card","unselect-card","secondary-button-clicked","action-button-clicked"])})}static get observedAttributes(){return["data-image"]}attributeChangedCallback(t,a,e){switch(t){case"data-total":{this.shadowRoot.querySelector(".card__total")&&(this.shadowRoot.querySelector(".card__total").innerHTML=e);break}case"data-image":{if(a!=e){const i=this.shadowRoot.querySelector(".card__head img");i&&i.setAttribute("src",e)}break}}}}export{u as default};
33
33
  //# sourceMappingURL=card.component.min.js.map