@iamproperty/components 7.6.4--beta7 → 7.7.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 (344) hide show
  1. package/assets/css/components/actionbar.component.css +1 -1
  2. package/assets/css/components/actionbar.component.css.map +1 -1
  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.component.css +1 -1
  6. package/assets/css/components/address-lookup.component.css.map +1 -1
  7. package/assets/css/components/applied-filters.css +1 -1
  8. package/assets/css/components/applied-filters.css.map +1 -1
  9. package/assets/css/components/barchart.component.css +1 -1
  10. package/assets/css/components/barchart.component.css.map +1 -1
  11. package/assets/css/components/bento-grid.global.css +1 -1
  12. package/assets/css/components/calendar.component.css +1 -1
  13. package/assets/css/components/calendar.component.css.map +1 -1
  14. package/assets/css/components/calendar.config.css +1 -1
  15. package/assets/css/components/card.component.css +1 -1
  16. package/assets/css/components/card.component.css.map +1 -1
  17. package/assets/css/components/card.module.css +1 -1
  18. package/assets/css/components/carousel.component.css +1 -1
  19. package/assets/css/components/carousel.component.css.map +1 -1
  20. package/assets/css/components/charts.config.css +1 -1
  21. package/assets/css/components/charts.css +1 -1
  22. package/assets/css/components/charts.css.map +1 -1
  23. package/assets/css/components/charts.module.css +1 -1
  24. package/assets/css/components/charts.module.css.map +1 -1
  25. package/assets/css/components/collapsible-side.css +1 -1
  26. package/assets/css/components/collapsible-side.css.map +1 -1
  27. package/assets/css/components/config.component.css +1 -0
  28. package/assets/css/components/config.component.css.map +1 -0
  29. package/assets/css/components/content.component.css +1 -1
  30. package/assets/css/components/content.component.css.map +1 -1
  31. package/assets/css/components/doughnutchart.component.css +1 -1
  32. package/assets/css/components/doughnutchart.component.css.map +1 -1
  33. package/assets/css/components/fileupload.css +1 -1
  34. package/assets/css/components/fileupload.css.map +1 -1
  35. package/assets/css/components/filter-card.component.css +1 -1
  36. package/assets/css/components/header.css +1 -1
  37. package/assets/css/components/header.css.map +1 -1
  38. package/assets/css/components/inline-edit.css +1 -1
  39. package/assets/css/components/inline-edit.css.map +1 -1
  40. package/assets/css/components/input.component.css +1 -1
  41. package/assets/css/components/input.component.css.map +1 -1
  42. package/assets/css/components/menu.component.css +1 -1
  43. package/assets/css/components/menu.component.css.map +1 -1
  44. package/assets/css/components/milestone.css +1 -1
  45. package/assets/css/components/modal.component.css +1 -1
  46. package/assets/css/components/modal.component.css.map +1 -1
  47. package/assets/css/components/multi-step-modal.component.css +1 -1
  48. package/assets/css/components/multi-step-modal.component.css.map +1 -1
  49. package/assets/css/components/multiselect.css +1 -1
  50. package/assets/css/components/multiselect.css.map +1 -1
  51. package/assets/css/components/nav.component.css +1 -1
  52. package/assets/css/components/nav.component.css.map +1 -1
  53. package/assets/css/components/nav.global.css +1 -1
  54. package/assets/css/components/nav.global.css.map +1 -1
  55. package/assets/css/components/notification.css +1 -1
  56. package/assets/css/components/notification.css.map +1 -1
  57. package/assets/css/components/pagination.css +1 -1
  58. package/assets/css/components/pagination.css.map +1 -1
  59. package/assets/css/components/password.component.css +1 -1
  60. package/assets/css/components/password.component.css.map +1 -1
  61. package/assets/css/components/property-searchbar.css +1 -1
  62. package/assets/css/components/property-searchbar.css.map +1 -1
  63. package/assets/css/components/rank.component.css +1 -1
  64. package/assets/css/components/rank.component.css.map +1 -1
  65. package/assets/css/components/record-card.component.css +1 -1
  66. package/assets/css/components/record-card.component.css.map +1 -1
  67. package/assets/css/components/slider.css +1 -1
  68. package/assets/css/components/slider.css.map +1 -1
  69. package/assets/css/components/split-button.component.css +1 -1
  70. package/assets/css/components/split-button.component.css.map +1 -1
  71. package/assets/css/components/table-basic.component.css +1 -1
  72. package/assets/css/components/table-basic.component.css.map +1 -1
  73. package/assets/css/components/table-basic.global.css +1 -1
  74. package/assets/css/components/table-basic.global.css.map +1 -1
  75. package/assets/css/components/table.component.css +1 -1
  76. package/assets/css/components/table.component.css.map +1 -1
  77. package/assets/css/components/table.global.css +1 -1
  78. package/assets/css/components/table.global.css.map +1 -1
  79. package/assets/css/components/tabs.component.css +1 -1
  80. package/assets/css/components/tabs.component.css.map +1 -1
  81. package/assets/css/components/tag.component.css +1 -1
  82. package/assets/css/components/tag.component.css.map +1 -1
  83. package/assets/css/components/tooltip.component.css +1 -1
  84. package/assets/css/components/tooltip.component.css.map +1 -1
  85. package/assets/css/components/video-card.component.css +1 -1
  86. package/assets/css/components/video-modal.component.css +1 -1
  87. package/assets/css/components/video-modal.component.css.map +1 -1
  88. package/assets/css/core.min.css +1 -1
  89. package/assets/css/core.min.css.map +1 -1
  90. package/assets/css/style.min.css +1 -1
  91. package/assets/css/style.min.css.map +1 -1
  92. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  93. package/assets/js/components/actionbar/actionbar.component.js +8 -7
  94. package/assets/js/components/actionbar/actionbar.component.min.js +7 -7
  95. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  96. package/assets/js/components/address-lookup/address-lookup.component.js +12 -2
  97. package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
  98. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  99. package/assets/js/components/advanced-select/advanced-select.component.js +1 -1
  100. package/assets/js/components/advanced-select/advanced-select.component.min.js +2 -2
  101. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  102. package/assets/js/components/applied-filters/applied-filters.component.min.js +4 -4
  103. package/assets/js/components/barchart/barchart.component.min.js +6 -6
  104. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  105. package/assets/js/components/bento-grid/bento-grid.component.min.js +2 -2
  106. package/assets/js/components/calendar/calendar.component.min.js +2 -2
  107. package/assets/js/components/card/card.component.min.js +7 -7
  108. package/assets/js/components/carousel/carousel.component.min.js +4 -4
  109. package/assets/js/components/collapsible-side/collapsible-side.component.js +1 -1
  110. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +5 -5
  111. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  112. package/assets/js/components/config/config.component.js +532 -0
  113. package/assets/js/components/config/config.component.min.js +59 -0
  114. package/assets/js/components/config/config.component.min.js.map +1 -0
  115. package/assets/js/components/content/content.component.min.js +4 -4
  116. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  117. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +7 -7
  118. package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
  119. package/assets/js/components/filter-card/filter-card.component.min.js +2 -2
  120. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  121. package/assets/js/components/form/form.component.min.js +1 -1
  122. package/assets/js/components/header/header.component.js +39 -1
  123. package/assets/js/components/header/header.component.min.js +40 -4
  124. package/assets/js/components/header/header.component.min.js.map +1 -1
  125. package/assets/js/components/inline-edit/inline-edit.component.js +1 -1
  126. package/assets/js/components/inline-edit/inline-edit.component.min.js +4 -4
  127. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  128. package/assets/js/components/input/input.component.js +1 -1
  129. package/assets/js/components/input/input.component.min.js +3 -3
  130. package/assets/js/components/input/input.component.min.js.map +1 -1
  131. package/assets/js/components/input-range/input-range.component.js +1 -1
  132. package/assets/js/components/input-range/input-range.component.min.js +2 -2
  133. package/assets/js/components/input-range/input-range.component.min.js.map +1 -1
  134. package/assets/js/components/marketing/marketing.component.js +1 -1
  135. package/assets/js/components/marketing/marketing.component.min.js +2 -2
  136. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  137. package/assets/js/components/menu/menu.component.min.js +2 -2
  138. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  139. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  140. package/assets/js/components/modal/modal.component.js +1 -1
  141. package/assets/js/components/modal/modal.component.min.js +5 -5
  142. package/assets/js/components/modal/modal.component.min.js.map +1 -1
  143. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  144. package/assets/js/components/multi-step-modal/multi-step-modal.component.js +1 -1
  145. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +5 -5
  146. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js.map +1 -1
  147. package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
  148. package/assets/js/components/nav/nav.component.js +1 -1
  149. package/assets/js/components/nav/nav.component.min.js +6 -6
  150. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  151. package/assets/js/components/notification/notification.component.js +69 -30
  152. package/assets/js/components/notification/notification.component.min.js +5 -5
  153. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  154. package/assets/js/components/pagination/pagination.component.js +1 -1
  155. package/assets/js/components/pagination/pagination.component.min.js +4 -4
  156. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  157. package/assets/js/components/password/password.component.js +1 -1
  158. package/assets/js/components/password/password.component.min.js +5 -5
  159. package/assets/js/components/password/password.component.min.js.map +1 -1
  160. package/assets/js/components/popover/popover.component.min.js +1 -1
  161. package/assets/js/components/rank/rank.component.min.js +1 -1
  162. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  163. package/assets/js/components/rating/rating.component.min.js +1 -1
  164. package/assets/js/components/record-card/record-card.component.min.js +2 -2
  165. package/assets/js/components/search/search.component.js +1 -1
  166. package/assets/js/components/search/search.component.min.js +2 -2
  167. package/assets/js/components/search/search.component.min.js.map +1 -1
  168. package/assets/js/components/slider/slider.component.min.js +2 -2
  169. package/assets/js/components/split-button/split-button.component.js +0 -4
  170. package/assets/js/components/split-button/split-button.component.min.js +6 -7
  171. package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
  172. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +41 -11
  173. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +9 -17
  174. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  175. package/assets/js/components/table/table.component.min.js +4 -4
  176. package/assets/js/components/table-ajax/table-ajax.component.min.js +7 -7
  177. package/assets/js/components/table-basic/table-basic.component.min.js +5 -5
  178. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +4 -4
  179. package/assets/js/components/table-submit/table-submit.component.min.js +7 -7
  180. package/assets/js/components/tabs/tabs.component.js +1 -1
  181. package/assets/js/components/tabs/tabs.component.min.js +5 -5
  182. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  183. package/assets/js/components/tag/tag.component.min.js +4 -4
  184. package/assets/js/components/tag/tag.component.min.js.map +1 -1
  185. package/assets/js/components/tooltip/tooltip.component.min.js +2 -2
  186. package/assets/js/components/video-card/video-card.component.min.js +2 -2
  187. package/assets/js/components/video-modal/video-modal.component.js +1 -1
  188. package/assets/js/components/video-modal/video-modal.component.min.js +4 -4
  189. package/assets/js/components/video-modal/video-modal.component.min.js.map +1 -1
  190. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  191. package/assets/js/modules/helper.test.js +84 -0
  192. package/assets/js/modules/test.js +19 -0
  193. package/assets/js/scripts.bundle.js +1 -1
  194. package/assets/js/scripts.bundle.min.js +1 -1
  195. package/assets/sass/_components.scss +7 -7
  196. package/assets/sass/_corefiles.scss +8 -7
  197. package/assets/sass/_elements.scss +16 -16
  198. package/assets/sass/_functions/bs_mixins.scss +3 -3
  199. package/assets/sass/_utilities.scss +4 -3
  200. package/assets/sass/components/actionbar.component.scss +37 -28
  201. package/assets/sass/components/actionbar.global.scss +12 -4
  202. package/assets/sass/components/address-lookup.component.scss +7 -7
  203. package/assets/sass/components/applied-filters.scss +2 -2
  204. package/assets/sass/components/barchart.component.scss +6 -6
  205. package/assets/sass/components/bento-grid.component.scss +2 -2
  206. package/assets/sass/components/bento-grid.global.scss +3 -3
  207. package/assets/sass/components/calendar.component.scss +14 -14
  208. package/assets/sass/components/calendar.config.scss +4 -4
  209. package/assets/sass/components/card.component.scss +10 -10
  210. package/assets/sass/components/card.module.scss +2 -2
  211. package/assets/sass/components/carousel.component.scss +8 -8
  212. package/assets/sass/components/carousel.config.scss +2 -2
  213. package/assets/sass/components/charts.config.scss +3 -3
  214. package/assets/sass/components/charts.module.scss +4 -18
  215. package/assets/sass/components/charts.scss +3 -3
  216. package/assets/sass/components/collapsible-side.scss +16 -16
  217. package/assets/sass/components/config.component.scss +235 -0
  218. package/assets/sass/components/content.component.scss +1 -1
  219. package/assets/sass/components/darkmode.component.scss +1 -1
  220. package/assets/sass/components/doughnutchart.component.scss +11 -10
  221. package/assets/sass/components/fileupload.scss +9 -9
  222. package/assets/sass/components/filter-card.component.scss +3 -3
  223. package/assets/sass/components/header.scss +121 -23
  224. package/assets/sass/components/inline-edit.preload.scss +1 -1
  225. package/assets/sass/components/inline-edit.scss +1 -1
  226. package/assets/sass/components/input.component.scss +2 -1
  227. package/assets/sass/components/marketing.component.scss +1 -1
  228. package/assets/sass/components/menu.component.scss +10 -10
  229. package/assets/sass/components/milestone.scss +2 -2
  230. package/assets/sass/components/modal.component.scss +22 -22
  231. package/assets/sass/components/multi-step-modal.component.scss +15 -15
  232. package/assets/sass/components/multi-step-modal.global.scss +1 -1
  233. package/assets/sass/components/multi-step.component.scss +3 -3
  234. package/assets/sass/components/multiselect.scss +9 -9
  235. package/assets/sass/components/nav.component.scss +24 -24
  236. package/assets/sass/components/nav.docs.scss +1 -1
  237. package/assets/sass/components/nav.global.scss +120 -119
  238. package/assets/sass/components/nav.preload.scss +1 -1
  239. package/assets/sass/components/notification.scss +36 -19
  240. package/assets/sass/components/pagination.scss +7 -7
  241. package/assets/sass/components/password.component.scss +1 -1
  242. package/assets/sass/components/popover.component.scss +3 -3
  243. package/assets/sass/components/property-searchbar.scss +1 -1
  244. package/assets/sass/components/rank.component.scss +19 -19
  245. package/assets/sass/components/rankings.component.scss +1 -1
  246. package/assets/sass/components/rankings.global.scss +2 -2
  247. package/assets/sass/components/record-card.component.scss +15 -15
  248. package/assets/sass/components/slider.scss +4 -4
  249. package/assets/sass/components/snapshot.scss +1 -1
  250. package/assets/sass/components/split-button.component.scss +2 -2
  251. package/assets/sass/components/table-basic.component.scss +3 -3
  252. package/assets/sass/components/table-basic.global.scss +34 -14
  253. package/assets/sass/components/table.component.scss +27 -16
  254. package/assets/sass/components/table.global.scss +51 -49
  255. package/assets/sass/components/tabs.component.scss +3 -3
  256. package/assets/sass/components/tabs.config.scss +1 -1
  257. package/assets/sass/components/tag.component.scss +2 -2
  258. package/assets/sass/components/testimonial.scss +2 -2
  259. package/assets/sass/components/timeline.scss +3 -3
  260. package/assets/sass/components/tooltip.component.scss +13 -8
  261. package/assets/sass/components/video-card.component.scss +2 -2
  262. package/assets/sass/components/video-modal.component.scss +1 -1
  263. package/assets/sass/components/word-count.component.scss +1 -1
  264. package/assets/sass/core.scss +1 -1
  265. package/assets/sass/elements/{admin-panel.scss → admin-panel.css} +17 -24
  266. package/assets/sass/elements/{badge-tag.scss → badge-tag.css} +11 -19
  267. package/assets/sass/elements/button__group.css +3 -2
  268. package/assets/sass/elements/{buttons--action.scss → buttons--action.css} +11 -19
  269. package/assets/sass/elements/{buttons--compact.scss → buttons--compact.css} +8 -36
  270. package/assets/sass/elements/buttons--global.scss +12 -18
  271. package/assets/sass/elements/buttons--special.scss +1 -1
  272. package/assets/sass/elements/buttons.scss +6 -6
  273. package/assets/sass/elements/container.scss +6 -6
  274. package/assets/sass/elements/details.scss +13 -13
  275. package/assets/sass/elements/dialog.scss +7 -7
  276. package/assets/sass/elements/dropdown.scss +1 -1
  277. package/assets/sass/elements/feature.scss +114 -6
  278. package/assets/sass/elements/forms.scss +24 -25
  279. package/assets/sass/elements/icons.css +1 -1
  280. package/assets/sass/elements/links.scss +5 -5
  281. package/assets/sass/elements/lists--tick-list.scss +18 -6
  282. package/assets/sass/elements/modal.scss +24 -24
  283. package/assets/sass/elements/popover.scss +14 -14
  284. package/assets/sass/elements/prefix.scss +18 -4
  285. package/assets/sass/elements/progress.scss +14 -14
  286. package/assets/sass/elements/table.element.scss +9 -5
  287. package/assets/sass/elements/tooltips.scss +4 -4
  288. package/assets/sass/email.scss +1 -1
  289. package/assets/sass/foundations/animations.scss +2 -0
  290. package/assets/sass/foundations/colours.scss +1 -1
  291. package/assets/sass/foundations/reboot.scss +1 -1
  292. package/assets/sass/foundations/root.scss +29 -96
  293. package/assets/sass/templates/auth.scss +7 -7
  294. package/assets/sass/templates/form.scss +8 -8
  295. package/assets/sass/utilities/border.scss +6 -18
  296. package/assets/sass/utilities/font-awesome-iso-fallbacks.scss +6 -0
  297. package/assets/sass/utilities/shadow.scss +7 -0
  298. package/assets/sass/utilities/wider-colours.scss +0 -2
  299. package/assets/ts/components/actionbar/actionbar.component.ts +8 -7
  300. package/assets/ts/components/address-lookup/address-lookup.component.ts +17 -2
  301. package/assets/ts/components/advanced-select/advanced-select.component.ts +1 -1
  302. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +1 -1
  303. package/assets/ts/components/config/config.component.ts +699 -0
  304. package/assets/ts/components/header/header.component.ts +40 -1
  305. package/assets/ts/components/inline-edit/inline-edit.component.ts +1 -1
  306. package/assets/ts/components/input/input.component.ts +1 -1
  307. package/assets/ts/components/input-range/input-range.component.ts +1 -1
  308. package/assets/ts/components/marketing/marketing.component.ts +1 -1
  309. package/assets/ts/components/modal/modal.component.ts +1 -1
  310. package/assets/ts/components/multi-step-modal/multi-step-modal.component.ts +1 -1
  311. package/assets/ts/components/nav/nav.component.ts +1 -1
  312. package/assets/ts/components/notification/notification.component.ts +98 -47
  313. package/assets/ts/components/pagination/pagination.component.ts +1 -1
  314. package/assets/ts/components/password/password.component.ts +1 -1
  315. package/assets/ts/components/search/search.component.ts +1 -1
  316. package/assets/ts/components/split-button/split-button.component.ts +0 -4
  317. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +47 -12
  318. package/assets/ts/components/tabs/tabs.component.ts +1 -1
  319. package/assets/ts/components/video-modal/video-modal.component.ts +1 -1
  320. package/assets/ts/modules/helper.test.ts +143 -0
  321. package/assets/ts/modules/test.ts +22 -0
  322. package/dist/components.es.js +29 -29
  323. package/dist/components.umd.js +372 -288
  324. package/package.json +9 -21
  325. package/src/components/Config/Config.vue +23 -0
  326. package/assets/js/tests/helpers.spec.js +0 -79
  327. package/assets/js/ui-tests/card.spec.js +0 -14
  328. package/assets/js/ui-tests/carousel.spec.js +0 -60
  329. package/assets/js/ui-tests/chart.spec.js +0 -59
  330. package/assets/js/ui-tests/fileupload.spec.js +0 -22
  331. package/assets/js/ui-tests/filterlist.spec.js +0 -22
  332. package/assets/js/ui-tests/multistep.spec.js +0 -68
  333. package/assets/js/ui-tests/slider.spec.js +0 -20
  334. package/assets/js/ui-tests/table.spec.js +0 -81
  335. package/assets/ts/tests/helpers.spec.ts +0 -137
  336. package/assets/ts/ui-tests/card.spec.ts +0 -19
  337. package/assets/ts/ui-tests/carousel.spec.ts +0 -66
  338. package/assets/ts/ui-tests/chart.spec.ts +0 -71
  339. package/assets/ts/ui-tests/data-layer.spec.js +0 -68
  340. package/assets/ts/ui-tests/fileupload.spec.ts +0 -30
  341. package/assets/ts/ui-tests/filterlist.spec.ts +0 -26
  342. package/assets/ts/ui-tests/multistep.spec.ts +0 -78
  343. package/assets/ts/ui-tests/slider.spec.ts +0 -27
  344. package/assets/ts/ui-tests/table.spec.ts +0 -91
@@ -1 +1 @@
1
- {"version":3,"file":"nav.component.min.js","sources":["nav.component.js"],"sourcesContent":["// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'nav',\n});\nclass iamNav extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = 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/nav.component.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/nav.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style class=\"styles\">\n\n \n ${loadCSS}\n </style>\n <style class=\"doc-styles\">\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/26fdbf0179.css\" crossorigin=\"anonymous\">\n <div class=\"container\">\n <slot name=\"logo\"></slot>\n <div class=\"buttons-holder\"></div>\n <button class=\"btn-menu\" part=\"btn-menu\">Menu<i class=\"fa-regular fa-bars\"></i><i class=\"fa-regular fa-xmark-large\"></i></button>\n\n <div class=\"menu__outer\">\n <div class=\"menu closed\">\n \n <div class=\"menu__primary\">\n <slot></slot>\n <slot name=\"dual\"></slot>\n </div>\n <div class=\"dialog__wrapper d-none\" id=\"search-wrapper\"></div>\n <slot name=\"actions\"></slot>\n <div class=\"menu__secondary bg-light\">\n <div class=\"container\">\n <slot name=\"secondary\"></slot>\n </div>\n </div>\n </div>\n <slot name=\"menus\"></slot>\n </div> \n </div>\n <div class=\"backdrop\" part=\"backdrop\"></div>\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('navGlobal'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"navGlobal\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n // Load external CSS if needed\n if (this.hasAttribute('data-css'))\n this.shadowRoot\n .querySelector('.doc-styles')\n .insertAdjacentHTML('beforeend', `@import \"${this.getAttribute('data-css')}\";`);\n const menuButton = this.shadowRoot.querySelector('.btn-menu');\n const menu = this.shadowRoot.querySelector('.menu');\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const iamNav = this;\n const backdrop = this.shadowRoot.querySelector('.backdrop');\n const buttonsHolder = this.shadowRoot.querySelector('.buttons-holder');\n // Check the content\n this.querySelectorAll(':scope > *').forEach(function (element) {\n const tagname = element.tagName;\n switch (tagname) {\n case 'BUTTON':\n if (!element.hasAttribute('slot')) {\n element.setAttribute('slot', 'actions');\n menu.classList.add('has-actions');\n }\n break;\n }\n // Create menu button\n if (element.classList.contains('nav--menu') &&\n element.hasAttribute('data-title') &&\n element.hasAttribute('data-icon')) {\n const title = element.getAttribute('data-title');\n const iconClass = element.getAttribute('data-icon');\n // Create the menu button that sits seperately to the menu\n const button = document.createElement('button');\n button.setAttribute('slot', title);\n button.classList.add('btn-menu');\n button.setAttribute('part', 'btn-menu');\n button.innerHTML = `<span class=\"btn btn-primary\"><span>${title}</span><i class=\"${iconClass}\"></i><i class=\"fa-regular fa-xmark-large\"></i></span>`;\n buttonsHolder.insertAdjacentElement('beforeend', button);\n const mdButton = button.querySelector('.btn-primary');\n // Make sure the menu is added to the right part of the component\n element.setAttribute('slot', 'menus');\n // If open we need to make sure the main mobile menu is closed, the new button has the right state and the backdrop is shown\n if (element.classList.contains('open')) {\n button.setAttribute('aria-expanded', true);\n mdButton.classList.toggle('active');\n iamNav.classList.add('open');\n backdrop.classList.add('show');\n }\n else {\n element.classList.add('closed'); // closed class is added to prevent the elements being tabbed into, this causes visual issues\n }\n // Click event\n button.addEventListener('click', function (e) {\n e.preventDefault();\n button.toggleAttribute('aria-expanded');\n element.classList.toggle('open');\n mdButton.classList.toggle('active');\n // Close desktop menus\n const openMenu = iamNav.querySelector(':scope > details[open]');\n if (openMenu)\n openMenu.removeAttribute('open');\n // Close the main menu and fix states on the button, iamNav component and backdrop\n if (element.classList.contains('open')) {\n menu.classList.remove('open');\n menuButton.removeAttribute('aria-expanded');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000); // Delay until its close so the animation is broken\n iamNav.classList.add('open');\n backdrop.classList.add('show');\n element.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n backdrop.classList.remove('show');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n }\n // Close any open menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (openmenu) {\n if (openmenu != element) {\n openmenu.classList.remove('open');\n }\n });\n iamNav.shadowRoot\n .querySelectorAll('.buttons-holder .btn-menu[aria-expanded]')\n .forEach(function (selectedButton) {\n if (selectedButton != button) {\n selectedButton.removeAttribute('aria-expanded');\n const innerBtn = selectedButton.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n }\n });\n }, false);\n }\n });\n this.querySelectorAll('details').forEach(function (element) {\n element.classList.add('details--revert');\n });\n // Has secondary link\n if (this.querySelector('a[slot=\"secondary\"]')) {\n menu.classList.add('has-secondary');\n }\n // Create a scroll width variable to help with the sizing of the menu with in the CSS\n document.documentElement.style.setProperty('--scrollbar-width', window.innerWidth - document.documentElement.offsetWidth + 'px');\n // Open and close the menu\n menuButton.addEventListener('click', function (e) {\n e.preventDefault();\n menuButton.toggleAttribute('aria-expanded');\n menu.classList.toggle('open');\n // Close any other menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n if (menu.classList.contains('open')) {\n iamNav.classList.add('open');\n menu.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n }\n }, false);\n // Allow outside JS to close the menu\n this.addEventListener('request-close', () => {\n menuButton.removeAttribute('aria-expanded');\n menu.classList.remove('open');\n iamNav.classList.remove('open');\n });\n // Close the menu on the click of the backdrop on desktop\n backdrop.addEventListener('click', () => {\n const openMenu = this.querySelector('details[open] summary');\n if (openMenu)\n openMenu.click();\n iamNav.classList.toggle('open');\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n backdrop.classList.remove('show');\n });\n // On desktop close other menu's (details) when one is clicked\n this.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('summary')) {\n if (window.innerWidth > 992 && !event.target.closest('.nav--menu')) {\n const summary = event.target.closest('summary');\n const details = summary.closest('details');\n const wrapper = details.parentNode;\n if (details.hasAttribute('open'))\n details.removeAttribute('open');\n else\n details.setAttribute('open', 'true');\n // Close any bespoke menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n // Close any other dropdowns on the same level\n Array.from(wrapper.querySelectorAll(':scope > details')).forEach((detailsArrayElement) => {\n if (detailsArrayElement != details)\n detailsArrayElement.removeAttribute('open');\n });\n if (this.querySelectorAll(':scope > details[open]').length) {\n backdrop.classList.add('show');\n iamNav.classList.add('open');\n }\n else {\n backdrop.classList.remove('show');\n iamNav.classList.remove('open');\n }\n event.preventDefault();\n }\n }\n });\n // Mega menu title\n this.querySelectorAll('details').forEach((detailsElement) => {\n const summary = detailsElement.querySelector('summary');\n const containerDiv = detailsElement.querySelector(':Scope > div');\n containerDiv.setAttribute('data-title', summary.textContent);\n });\n // Search\n if (this.querySelector('[slot=\"search\"]')) {\n menu.classList.add('has-search');\n const searchWrapper = this.shadowRoot.querySelector('#search-wrapper');\n searchWrapper.classList.remove('d-none');\n searchWrapper.insertAdjacentHTML('afterbegin', `<button class=\"btn btn-secondary btn-compact fa-search me-0 mb-0\" id=\"search-button\" aria-controls=\"search-dialog\">Open Search field</button>\n <dialog id=\"search-dialog\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col mb-0 ms-auto col-md-7\">\n <slot name=\"search\"></slot>\n </div>\n <div class=\"col d-none d-md-block mw-fit-content ms-3\">\n <button class=\"btn btn-compact btn-secondary fa-xmark-large m-0 mb-0\" type=\"button\" id=\"search-close\">Close search field</button>\n </div>\n </div>\n </div>\n </dialog>`);\n const searchButton = this.shadowRoot.querySelector('#search-button');\n const searchClose = this.shadowRoot.querySelector('#search-close');\n const searchDialog = this.shadowRoot.querySelector('#search-dialog');\n if (this.hasAttribute('data-search-open')) {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n }\n searchButton.addEventListener('click', () => {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n });\n searchClose.addEventListener('click', () => {\n searchDialog.removeAttribute('open');\n this.classList.remove('search-open');\n searchButton.removeAttribute('aria-expanded');\n });\n }\n if (this.classList.contains('nav--sticky')) {\n let oldScrollY = window.scrollY;\n window.onscroll = function (e) {\n if (oldScrollY < window.scrollY) {\n document.body.setAttribute('data-direction', 'down');\n }\n else {\n document.body.setAttribute('data-direction', 'up');\n }\n if (window.scrollY > 100) {\n document.body.classList.add('past100');\n }\n else {\n document.body.classList.remove('past100');\n }\n oldScrollY = window.scrollY;\n };\n }\n }\n}\nexport default iamNav;\n"],"names":["iamNav","shadowRoot","template","menuButton","menu","backdrop","buttonsHolder","element","title","iconClass","button","mdButton","e","openMenu","openmenu","selectedButton","event","details","wrapper","detailsArrayElement","detailsElement","summary","searchWrapper","searchButton","searchClose","searchDialog","oldScrollY"],"mappings":"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"}
1
+ {"version":3,"file":"nav.component.min.js","sources":["nav.component.js"],"sourcesContent":["// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'nav',\n});\nclass iamNav extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = 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/nav.component.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/nav.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style class=\"styles\">\n\n \n ${loadCSS}\n </style>\n <style class=\"doc-styles\">\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n <div class=\"container\">\n <slot name=\"logo\"></slot>\n <div class=\"buttons-holder\"></div>\n <button class=\"btn-menu\" part=\"btn-menu\">Menu<i class=\"fa-regular fa-bars\"></i><i class=\"fa-regular fa-xmark-large\"></i></button>\n\n <div class=\"menu__outer\">\n <div class=\"menu closed\">\n \n <div class=\"menu__primary\">\n <slot></slot>\n <slot name=\"dual\"></slot>\n </div>\n <div class=\"dialog__wrapper d-none\" id=\"search-wrapper\"></div>\n <slot name=\"actions\"></slot>\n <div class=\"menu__secondary bg-light\">\n <div class=\"container\">\n <slot name=\"secondary\"></slot>\n </div>\n </div>\n </div>\n <slot name=\"menus\"></slot>\n </div> \n </div>\n <div class=\"backdrop\" part=\"backdrop\"></div>\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('navGlobal'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"navGlobal\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n // Load external CSS if needed\n if (this.hasAttribute('data-css'))\n this.shadowRoot\n .querySelector('.doc-styles')\n .insertAdjacentHTML('beforeend', `@import \"${this.getAttribute('data-css')}\";`);\n const menuButton = this.shadowRoot.querySelector('.btn-menu');\n const menu = this.shadowRoot.querySelector('.menu');\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const iamNav = this;\n const backdrop = this.shadowRoot.querySelector('.backdrop');\n const buttonsHolder = this.shadowRoot.querySelector('.buttons-holder');\n // Check the content\n this.querySelectorAll(':scope > *').forEach(function (element) {\n const tagname = element.tagName;\n switch (tagname) {\n case 'BUTTON':\n if (!element.hasAttribute('slot')) {\n element.setAttribute('slot', 'actions');\n menu.classList.add('has-actions');\n }\n break;\n }\n // Create menu button\n if (element.classList.contains('nav--menu') &&\n element.hasAttribute('data-title') &&\n element.hasAttribute('data-icon')) {\n const title = element.getAttribute('data-title');\n const iconClass = element.getAttribute('data-icon');\n // Create the menu button that sits seperately to the menu\n const button = document.createElement('button');\n button.setAttribute('slot', title);\n button.classList.add('btn-menu');\n button.setAttribute('part', 'btn-menu');\n button.innerHTML = `<span class=\"btn btn-primary\"><span>${title}</span><i class=\"${iconClass}\"></i><i class=\"fa-regular fa-xmark-large\"></i></span>`;\n buttonsHolder.insertAdjacentElement('beforeend', button);\n const mdButton = button.querySelector('.btn-primary');\n // Make sure the menu is added to the right part of the component\n element.setAttribute('slot', 'menus');\n // If open we need to make sure the main mobile menu is closed, the new button has the right state and the backdrop is shown\n if (element.classList.contains('open')) {\n button.setAttribute('aria-expanded', true);\n mdButton.classList.toggle('active');\n iamNav.classList.add('open');\n backdrop.classList.add('show');\n }\n else {\n element.classList.add('closed'); // closed class is added to prevent the elements being tabbed into, this causes visual issues\n }\n // Click event\n button.addEventListener('click', function (e) {\n e.preventDefault();\n button.toggleAttribute('aria-expanded');\n element.classList.toggle('open');\n mdButton.classList.toggle('active');\n // Close desktop menus\n const openMenu = iamNav.querySelector(':scope > details[open]');\n if (openMenu)\n openMenu.removeAttribute('open');\n // Close the main menu and fix states on the button, iamNav component and backdrop\n if (element.classList.contains('open')) {\n menu.classList.remove('open');\n menuButton.removeAttribute('aria-expanded');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000); // Delay until its close so the animation is broken\n iamNav.classList.add('open');\n backdrop.classList.add('show');\n element.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n backdrop.classList.remove('show');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n }\n // Close any open menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (openmenu) {\n if (openmenu != element) {\n openmenu.classList.remove('open');\n }\n });\n iamNav.shadowRoot\n .querySelectorAll('.buttons-holder .btn-menu[aria-expanded]')\n .forEach(function (selectedButton) {\n if (selectedButton != button) {\n selectedButton.removeAttribute('aria-expanded');\n const innerBtn = selectedButton.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n }\n });\n }, false);\n }\n });\n this.querySelectorAll('details').forEach(function (element) {\n element.classList.add('details--revert');\n });\n // Has secondary link\n if (this.querySelector('a[slot=\"secondary\"]')) {\n menu.classList.add('has-secondary');\n }\n // Create a scroll width variable to help with the sizing of the menu with in the CSS\n document.documentElement.style.setProperty('--scrollbar-width', window.innerWidth - document.documentElement.offsetWidth + 'px');\n // Open and close the menu\n menuButton.addEventListener('click', function (e) {\n e.preventDefault();\n menuButton.toggleAttribute('aria-expanded');\n menu.classList.toggle('open');\n // Close any other menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n if (menu.classList.contains('open')) {\n iamNav.classList.add('open');\n menu.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n }\n }, false);\n // Allow outside JS to close the menu\n this.addEventListener('request-close', () => {\n menuButton.removeAttribute('aria-expanded');\n menu.classList.remove('open');\n iamNav.classList.remove('open');\n });\n // Close the menu on the click of the backdrop on desktop\n backdrop.addEventListener('click', () => {\n const openMenu = this.querySelector('details[open] summary');\n if (openMenu)\n openMenu.click();\n iamNav.classList.toggle('open');\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n backdrop.classList.remove('show');\n });\n // On desktop close other menu's (details) when one is clicked\n this.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('summary')) {\n if (window.innerWidth > 992 && !event.target.closest('.nav--menu')) {\n const summary = event.target.closest('summary');\n const details = summary.closest('details');\n const wrapper = details.parentNode;\n if (details.hasAttribute('open'))\n details.removeAttribute('open');\n else\n details.setAttribute('open', 'true');\n // Close any bespoke menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n // Close any other dropdowns on the same level\n Array.from(wrapper.querySelectorAll(':scope > details')).forEach((detailsArrayElement) => {\n if (detailsArrayElement != details)\n detailsArrayElement.removeAttribute('open');\n });\n if (this.querySelectorAll(':scope > details[open]').length) {\n backdrop.classList.add('show');\n iamNav.classList.add('open');\n }\n else {\n backdrop.classList.remove('show');\n iamNav.classList.remove('open');\n }\n event.preventDefault();\n }\n }\n });\n // Mega menu title\n this.querySelectorAll('details').forEach((detailsElement) => {\n const summary = detailsElement.querySelector('summary');\n const containerDiv = detailsElement.querySelector(':Scope > div');\n containerDiv.setAttribute('data-title', summary.textContent);\n });\n // Search\n if (this.querySelector('[slot=\"search\"]')) {\n menu.classList.add('has-search');\n const searchWrapper = this.shadowRoot.querySelector('#search-wrapper');\n searchWrapper.classList.remove('d-none');\n searchWrapper.insertAdjacentHTML('afterbegin', `<button class=\"btn btn-secondary btn-compact fa-search me-0 mb-0\" id=\"search-button\" aria-controls=\"search-dialog\">Open Search field</button>\n <dialog id=\"search-dialog\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col mb-0 ms-auto col-md-7\">\n <slot name=\"search\"></slot>\n </div>\n <div class=\"col d-none d-md-block mw-fit-content ms-3\">\n <button class=\"btn btn-compact btn-secondary fa-xmark-large m-0 mb-0\" type=\"button\" id=\"search-close\">Close search field</button>\n </div>\n </div>\n </div>\n </dialog>`);\n const searchButton = this.shadowRoot.querySelector('#search-button');\n const searchClose = this.shadowRoot.querySelector('#search-close');\n const searchDialog = this.shadowRoot.querySelector('#search-dialog');\n if (this.hasAttribute('data-search-open')) {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n }\n searchButton.addEventListener('click', () => {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n });\n searchClose.addEventListener('click', () => {\n searchDialog.removeAttribute('open');\n this.classList.remove('search-open');\n searchButton.removeAttribute('aria-expanded');\n });\n }\n if (this.classList.contains('nav--sticky')) {\n let oldScrollY = window.scrollY;\n window.onscroll = function (e) {\n if (oldScrollY < window.scrollY) {\n document.body.setAttribute('data-direction', 'down');\n }\n else {\n document.body.setAttribute('data-direction', 'up');\n }\n if (window.scrollY > 100) {\n document.body.classList.add('past100');\n }\n else {\n document.body.classList.remove('past100');\n }\n oldScrollY = window.scrollY;\n };\n }\n }\n}\nexport default iamNav;\n"],"names":["iamNav","shadowRoot","template","menuButton","menu","backdrop","buttonsHolder","element","title","iconClass","button","mdButton","e","openMenu","openmenu","selectedButton","event","details","wrapper","detailsArrayElement","detailsElement","summary","searchWrapper","searchButton","searchClose","searchDialog","oldScrollY"],"mappings":"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"}
@@ -4,6 +4,40 @@ trackComponentRegistered('iam-notification');
4
4
  class iamNotification extends HTMLElement {
5
5
  constructor() {
6
6
  super();
7
+ this.addColour = (component, status) => {
8
+ if (component.hasAttribute('data-type'))
9
+ component.classList.add(`bg-${status}`);
10
+ else
11
+ component.classList.add(`colour-${status}`);
12
+ };
13
+ this.addIcon = (component, status) => {
14
+ switch (status) {
15
+ case 'danger':
16
+ component.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>');
17
+ break;
18
+ case 'warning':
19
+ component.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-triangle-exclamation" aria-hidden="true" slot="icon"></i>');
20
+ break;
21
+ case 'success':
22
+ component.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-check-circle" aria-hidden="true" slot="icon"></i>');
23
+ break;
24
+ default:
25
+ component.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>');
26
+ }
27
+ };
28
+ this.addDismissBtn = (component) => {
29
+ var _a;
30
+ (_a = component.shadowRoot.querySelector('.notification__dismiss')) === null || _a === void 0 ? void 0 : _a.innerHTML = `<button data-dismiss-button part="dismiss-btn">Dismiss</button>`;
31
+ component.shadowRoot.querySelector('.notification__dismiss [data-dismiss-button]').addEventListener('click', function () {
32
+ closeNotification(component);
33
+ const customEvent = new CustomEvent('dismiss', {
34
+ detail: {
35
+ class: component.classList,
36
+ },
37
+ });
38
+ component.dispatchEvent(customEvent);
39
+ }, false);
40
+ };
7
41
  this.attachShadow({ mode: 'open' });
8
42
  const assetLocation = document.body.hasAttribute('data-assets-location')
9
43
  ? document.body.getAttribute('data-assets-location')
@@ -30,30 +64,14 @@ class iamNotification extends HTMLElement {
30
64
  document.head.insertAdjacentHTML('beforeend', `<style id="notificationHolder">${loadExtraCSS}</style>`);
31
65
  }
32
66
  connectedCallback() {
33
- var _a, _b, _c, _d, _e;
67
+ var _a, _b, _c, _d;
34
68
  // eslint-disable-next-line @typescript-eslint/no-this-alias
35
69
  const wrapper = this;
36
70
  const defaultStatusBG = this.hasAttribute('data-type') ? 'white' : 'info';
37
71
  const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : defaultStatusBG;
38
- if (this.hasAttribute('data-type'))
39
- this.classList.add(`bg-${statusBG}`);
40
- else {
41
- this.classList.add(`colour-${statusBG}`);
42
- }
72
+ this.addColour(this, statusBG);
43
73
  if (!this.querySelector('i')) {
44
- switch (statusBG) {
45
- case 'danger':
46
- this.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>');
47
- break;
48
- case 'warning':
49
- this.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-triangle-exclamation" aria-hidden="true" slot="icon"></i>');
50
- break;
51
- case 'success':
52
- this.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-check-circle" aria-hidden="true" slot="icon"></i>');
53
- break;
54
- default:
55
- this.insertAdjacentHTML('beforeend', '<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>');
56
- }
74
+ this.addIcon(this, statusBG);
57
75
  }
58
76
  const buttons = this.querySelectorAll('a,button');
59
77
  Array.from(buttons).forEach((button) => {
@@ -70,20 +88,41 @@ class iamNotification extends HTMLElement {
70
88
  (_d = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.notification__btns')) === null || _d === void 0 ? void 0 : _d.classList.remove('empty');
71
89
  }
72
90
  if (this.hasAttribute('data-dismiss')) {
73
- (_e = this.shadowRoot.querySelector('.notification__dismiss')) === null || _e === void 0 ? void 0 : _e.innerHTML =
74
- `<button data-dismiss-button part="dismiss-btn">Dismiss</button>`;
75
- this.shadowRoot.querySelector('.notification__dismiss [data-dismiss-button]').addEventListener('click', function () {
76
- closeNotification(wrapper);
77
- const customEvent = new CustomEvent('dismiss', {
78
- detail: {
79
- class: this.classList,
80
- },
81
- });
82
- this.dispatchEvent(customEvent);
83
- }, false);
91
+ this.addDismissBtn(this);
84
92
  }
85
93
  setupNotification(this);
86
94
  trackComponent(this, 'iam-notification', ['dismiss']);
87
95
  }
96
+ static get observedAttributes() {
97
+ return ['data-status', 'data-dismiss'];
98
+ }
99
+ attributeChangedCallback(attrName, oldVal, newVal) {
100
+ var _a, _b;
101
+ switch (attrName) {
102
+ case 'data-status': {
103
+ if (oldVal != newVal) {
104
+ this.classList.remove('bg-danger');
105
+ this.classList.remove('bg-warning');
106
+ this.classList.remove('bg-success');
107
+ this.classList.remove('bg-white');
108
+ (_a = this.querySelector('i')) === null || _a === void 0 ? void 0 : _a.remove();
109
+ this.addColour(this, newVal);
110
+ this.addIcon(this, newVal);
111
+ }
112
+ break;
113
+ }
114
+ case 'data-dismiss': {
115
+ if (oldVal != newVal) {
116
+ if (this.hasAttribute('data-dismiss')) {
117
+ this.addDismissBtn(this);
118
+ }
119
+ else {
120
+ (_b = this.shadowRoot.querySelector('.notification__dismiss')) === null || _b === void 0 ? void 0 : _b.innerHTML = '';
121
+ }
122
+ }
123
+ break;
124
+ }
125
+ }
126
+ }
88
127
  }
89
128
  export default iamNotification;
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * iamKey v7.6.4--beta7
2
+ * iamKey v7.7.0
3
3
  * Copyright 2022-2026 iamproperty
4
- */function m(i){if(i.hasAttribute("data-type")&&i.getAttribute("data-type")=="toast"){let t=document.querySelector(".notification__holder");t||(t=document.createElement("div"),t.classList.add("notification__holder"),t.classList.add("container"),document.querySelector("body").appendChild(t)),i.closest(".notification__holder")||t.appendChild(i)}if(i.setAttribute("role","alert"),i.addEventListener("click",function(t){event&&event.target instanceof HTMLElement&&(event.target.closest("[data-dismiss-button]")||event.target.matches("[data-dismiss-button]"))&&(t.preventDefault(),f(i))},!1),i.hasAttribute("data-timeout")){const t=i.getAttribute("data-timeout"),o=new u(function(){f(i)},t);i.addEventListener("mouseenter",()=>{o.pause()}),i.addEventListener("mouseleave",()=>{o.resume()})}}function u(i,t){let o,e,n=t;this.pause=function(){window.clearTimeout(o),n-=new Date-e},this.resume=function(){e=new Date,window.clearTimeout(o),o=window.setTimeout(i,n)},this.resume()}const f=function(i){i.classList.add("d-none")},h=i=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:i})},b=(i,t,o)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),o.forEach(e=>{i.addEventListener(e,function(n){const a={event:e,element:t,target:n.target};Object.keys(n.detail).forEach(s=>{const c=n.detail[s];a[s]=c}),window.dataLayer.push(a)})}),!0);h("iam-notification");class p 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=`
4
+ */function l(e){if(e.hasAttribute("data-type")&&e.getAttribute("data-type")=="toast"){let i=document.querySelector(".notification__holder");i||(i=document.createElement("div"),i.classList.add("notification__holder"),i.classList.add("container"),document.querySelector("body").appendChild(i)),e.closest(".notification__holder")||i.appendChild(e)}if(e.setAttribute("role","alert"),e.addEventListener("click",function(i){event&&event.target instanceof HTMLElement&&(event.target.closest("[data-dismiss-button]")||event.target.matches("[data-dismiss-button]"))&&(i.preventDefault(),d(e))},!1),e.hasAttribute("data-timeout")){const i=e.getAttribute("data-timeout"),t=new f(function(){d(e)},i);e.addEventListener("mouseenter",()=>{t.pause()}),e.addEventListener("mouseleave",()=>{t.resume()})}}function f(e,i){let t,o,a=i;this.pause=function(){window.clearTimeout(t),a-=new Date-o},this.resume=function(){o=new Date,window.clearTimeout(t),t=window.setTimeout(e,a)},this.resume()}const d=function(e){e.classList.add("d-none")},m=e=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:e})},u=(e,i,t)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:i}),t.forEach(o=>{e.addEventListener(o,function(a){const n={event:o,element:i,target:a.target};Object.keys(a.detail).forEach(s=>{const r=a.detail[s];n[s]=r}),window.dataLayer.push(n)})}),!0);m("iam-notification");class h extends HTMLElement{constructor(){super(),this.addColour=(t,o)=>{t.hasAttribute("data-type")?t.classList.add(`bg-${o}`):t.classList.add(`colour-${o}`)},this.addIcon=(t,o)=>{switch(o){case"danger":t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>');break;case"warning":t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-triangle-exclamation" aria-hidden="true" slot="icon"></i>');break;case"success":t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-check-circle" aria-hidden="true" slot="icon"></i>');break;default:t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>')}},this.addDismissBtn=t=>{var o;(o=t.shadowRoot.querySelector(".notification__dismiss"))===null||o===void 0||(o.innerHTML='<button data-dismiss-button part="dismiss-btn">Dismiss</button>'),t.shadowRoot.querySelector(".notification__dismiss [data-dismiss-button]").addEventListener("click",function(){d(t);const a=new CustomEvent("dismiss",{detail:{class:t.classList}});t.dispatchEvent(a)},!1)},this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
5
5
  <style>
6
- :host,.iam-notification{display:block;padding:1.375rem 1.5rem 1.375rem 1rem !important;border-radius:.5rem;box-shadow:2px 6px 12px rgba(0,0,0,.2);margin-bottom:1rem;font-size:0.9375rem;border:0.125rem solid var(--colour, var(--colour-info));outline:var(--contrast-outline-width, 0px) solid var(--colour-primary);background:var(--colour-notification-bg)}:host ::slotted(i),:host i,.iam-notification ::slotted(i),.iam-notification i{color:var(--colour, currentColor)}:host(:not(.bg-danger)){color-scheme:light;color:var(--colour-heading)}:host([data-type]),.iam-notification[data-type]{border:0.125rem solid rgba(0,0,0,0)}:host(.colour-warning),.iam-notification.colour-warning{background:var(--colour-notification-warning-bg)}:host(.colour-danger),.iam-notification.colour-danger{background:var(--colour-notification-danger-bg)}:host(.colour-success),.iam-notification.colour-success{background:var(--colour-notification-success-bg)}:host(.bg-white),.iam-notification.bg-white{border:none;border-left:.5rem solid var(--colour-info)}:host(.bg-white) ::slotted(i),:host(.bg-white) i,.iam-notification.bg-white ::slotted(i),.iam-notification.bg-white i{color:var(--colour-info)}:host(.bg-danger) .notification{color:var(--colour-white)}:host([data-type=alert]),.iam-notification[data-type=alert]{border-radius:0;position:fixed;top:var(--nav-height);left:0;right:0;z-index:calc(var(--index-menu) - 1);margin-bottom:0}:host([data-type=toast]),.iam-notification[data-type=toast]{margin:auto;display:block;width:100%;max-width:22.5rem}:host([data-type=toast].notification--dismissable){max-width:28.375rem}.notification{container-type:inline-size;display:flex;flex-wrap:nowrap;color:var(--colour-heading)}.notification .notification__icon{margin-inline-end:1rem;flex-grow:0}.notification .notification__icon ::slotted(i){font-size:1.125rem}.notification .notification__inner{display:flex;flex-wrap:wrap;flex-grow:1}@container (width > 23.4375em){.notification .notification__inner{flex-wrap:nowrap}}.notification .notification__text{flex-grow:1;flex-shrink:1;width:100%}.notification .notification__btns.empty{display:none}.notification .notification__btns{flex-grow:0;flex-shrink:0;--colour-underline: currentColor}.notification .notification__btns ::slotted(a),.notification .notification__btns ::slotted(button),.notification .notification__btns>*{margin:1rem 1rem 0 0 !important}@container (width > 23.4375em){.notification .notification__btns{display:flex;align-items:center;border-left:1px solid currentColor;margin-left:2rem}.notification .notification__btns ::slotted(a),.notification .notification__btns ::slotted(button),.notification .notification__btns>*{margin:0 0 0 2rem !important}}.notification .notification__dismiss:empty{display:none}.notification .notification__dismiss{flex-grow:0;padding-left:1rem}.notification .notification__dismiss button{text-indent:300%;overflow:hidden;border:none;height:1.125rem;width:1.125rem;background:rgba(0,0,0,0);display:inline-block;position:relative;color:inherit}.notification .notification__dismiss button:after{content:"";top:0;left:0;position:absolute;display:block;height:1.125rem;width:1.125rem;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-close);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-close);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%}@container (width > 23.4375em){.notification .notification__dismiss{padding-left:2rem;display:flex;align-items:center}}/*# sourceMappingURL=assets/css/components/notification.css.map */
6
+ :host,.iam-notification{display:block;padding:1.375rem 1.5rem 1.375rem 1rem;border-radius:.5rem;box-shadow:2px 6px 12px rgba(0,0,0,.2);margin-bottom:1rem;font-size:.9375rem;border:2px solid var(--colour, var(--colour-info));outline:var(--contrast-outline-width, 0px) solid var(--colour-primary);background:var(--colour-notification-bg)}:host ::slotted(i),:host i,.iam-notification ::slotted(i),.iam-notification i{color:var(--colour, currentColor)}:host(:not(.bg-danger)){color-scheme:light;color:var(--colour-heading)}:host([data-type]),.iam-notification[data-type]{border:2px solid rgba(0,0,0,0)}:host([class*=colour-]){--bg-colour: color-mix(in oklab, var(--colour), #ffffff 80%) !important;background:var(--bg-colour);--colour-heading: var(--colour-primary-theme);--colour-body: var(--colour-primary-theme)}:host([class*=colour-])>*{color-scheme:light}:host(.bg-white),.iam-notification.bg-white{border:none;border-left:.5rem solid var(--colour-info)}:host(.bg-white) ::slotted(i),:host(.bg-white) i,.iam-notification.bg-white ::slotted(i),.iam-notification.bg-white i{color:var(--colour-info)}:host(.bg-danger) .notification{color:var(--colour-white)}:host([data-type=alert]),.iam-notification[data-type=alert]{border-radius:0;position:fixed;top:var(--nav-height);left:0;right:0;z-index:calc(var(--index-menu) - 1);margin-bottom:0}:host([data-type=toast]),.iam-notification[data-type=toast]{margin:auto;display:block;width:100%;max-width:22.5rem}:host([data-type=toast].notification--dismissable){max-width:28.375rem}.notification{container-type:inline-size;display:flex;flex-wrap:nowrap;color:var(--colour-heading)}.notification .notification__icon{margin-inline-end:1rem;flex-grow:0}.notification .notification__icon ::slotted(i){font-size:1.125rem}.notification .notification__inner{display:flex;flex-wrap:wrap;flex-grow:1}@container (width > 23.4375em){.notification .notification__inner{flex-wrap:nowrap}}.notification .notification__text{flex-grow:1;flex-shrink:1;width:100%}.notification .notification__btns.empty{display:none}.notification .notification__btns{flex-grow:0;flex-shrink:0;--colour-underline: currentColor}.notification .notification__btns ::slotted(a),.notification .notification__btns ::slotted(button),.notification .notification__btns>*{margin:1rem 1rem 0 0 !important}@container (width > 23.4375em){.notification .notification__btns{display:flex;align-items:center;border-left:1px solid currentColor;margin-left:2rem}.notification .notification__btns ::slotted(a),.notification .notification__btns ::slotted(button),.notification .notification__btns>*{margin:0 0 0 2rem !important}}.notification .notification__dismiss:empty{display:none}.notification .notification__dismiss{flex-grow:0;padding-left:1rem}.notification .notification__dismiss button{text-indent:300%;overflow:hidden;border:none;height:1.125rem;width:1.125rem;background:rgba(0,0,0,0);display:inline-block;position:relative;color:inherit}.notification .notification__dismiss button:after{content:"";top:0;left:0;position:absolute;display:block;height:1.125rem;width:1.125rem;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-close);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-close);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%}@container (width > 23.4375em){.notification .notification__dismiss{padding-left:2rem;display:flex;align-items:center}}:host(.notification--no-icon) .notification__icon{display:none}:host(.notification--no-bg){box-shadow:none;background:none !important;padding:0;border:0 !important}/*# sourceMappingURL=assets/css/components/notification.css.map */
7
7
 
8
8
  ${this.hasAttribute("data-css")?`${this.getAttribute("data-css")}`:""}
9
9
  </style>
@@ -14,6 +14,6 @@
14
14
  <div class="notification__dismiss"></div>
15
15
  </div>
16
16
 
17
- `,this.shadowRoot.appendChild(t.content.cloneNode(!0)),document.getElementById("notificationHolder")||document.head.insertAdjacentHTML("beforeend",`<style id="notificationHolder">.container.notification__holder{position:fixed;top:var(--nav-height);left:50%;transform:translate(-50%, 0);bottom:0;z-index:999999;pointer-events:none;padding-top:1rem;padding-bottom:1rem;display:flex;margin:0;width:100%;flex-wrap:wrap;align-content:flex-start;flex-direction:column;align-content:flex-end;align-items:flex-end}.container.notification__holder :is(.iam-notification,iam-notification){pointer-events:all;margin:.5rem 0 .5rem 0}.container.notification__holder.bottom{flex-direction:column-reverse}.container.notification__holder.left{align-content:flex-start;align-items:flex-start}.container.notification__holder.middle{align-content:space-around;align-items:center}/*# sourceMappingURL=assets/css/components/notification.global.css.map */
18
- </style>`)}connectedCallback(){var t,o,e,n,a;const s=this,c=this.hasAttribute("data-type")?"white":"info",d=this.hasAttribute("data-status")?this.getAttribute("data-status"):c;if(this.hasAttribute("data-type")?this.classList.add(`bg-${d}`):this.classList.add(`colour-${d}`),!this.querySelector("i"))switch(d){case"danger":this.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>');break;case"warning":this.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-triangle-exclamation" aria-hidden="true" slot="icon"></i>');break;case"success":this.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-check-circle" aria-hidden="true" slot="icon"></i>');break;default:this.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>')}const l=this.querySelectorAll("a,button");Array.from(l).forEach(r=>{r.setAttribute("slot","btns"),r.classList.add("link")}),(l.length||this.hasAttribute("data-dismiss"))&&this.classList.add("notification--dismissable"),l.length?(n=(e=this.shadowRoot)===null||e===void 0?void 0:e.querySelector(".notification__btns"))===null||n===void 0||n.classList.remove("empty"):(o=(t=this.shadowRoot)===null||t===void 0?void 0:t.querySelector(".notification__btns"))===null||o===void 0||o.classList.add("empty"),this.hasAttribute("data-dismiss")&&((a=this.shadowRoot.querySelector(".notification__dismiss"))===null||a===void 0||(a.innerHTML='<button data-dismiss-button part="dismiss-btn">Dismiss</button>'),this.shadowRoot.querySelector(".notification__dismiss [data-dismiss-button]").addEventListener("click",function(){f(s);const r=new CustomEvent("dismiss",{detail:{class:this.classList}});this.dispatchEvent(r)},!1)),m(this),b(this,"iam-notification",["dismiss"])}}export{p as default};
17
+ `,this.shadowRoot.appendChild(i.content.cloneNode(!0)),document.getElementById("notificationHolder")||document.head.insertAdjacentHTML("beforeend",`<style id="notificationHolder">.container.notification__holder{position:fixed;top:var(--nav-height);left:50%;transform:translate(-50%, 0);bottom:0;z-index:999999;pointer-events:none;padding-top:1rem;padding-bottom:1rem;display:flex;margin:0;width:100%;flex-wrap:wrap;align-content:flex-start;flex-direction:column;align-content:flex-end;align-items:flex-end}.container.notification__holder :is(.iam-notification,iam-notification){pointer-events:all;margin:.5rem 0 .5rem 0}.container.notification__holder.bottom{flex-direction:column-reverse}.container.notification__holder.left{align-content:flex-start;align-items:flex-start}.container.notification__holder.middle{align-content:space-around;align-items:center}/*# sourceMappingURL=assets/css/components/notification.global.css.map */
18
+ </style>`)}connectedCallback(){var i,t,o,a;const n=this.hasAttribute("data-type")?"white":"info",s=this.hasAttribute("data-status")?this.getAttribute("data-status"):n;this.addColour(this,s),this.querySelector("i")||this.addIcon(this,s);const r=this.querySelectorAll("a,button");Array.from(r).forEach(c=>{c.setAttribute("slot","btns"),c.classList.add("link")}),(r.length||this.hasAttribute("data-dismiss"))&&this.classList.add("notification--dismissable"),r.length?(a=(o=this.shadowRoot)===null||o===void 0?void 0:o.querySelector(".notification__btns"))===null||a===void 0||a.classList.remove("empty"):(t=(i=this.shadowRoot)===null||i===void 0?void 0:i.querySelector(".notification__btns"))===null||t===void 0||t.classList.add("empty"),this.hasAttribute("data-dismiss")&&this.addDismissBtn(this),l(this),u(this,"iam-notification",["dismiss"])}static get observedAttributes(){return["data-status","data-dismiss"]}attributeChangedCallback(i,t,o){var a,n;switch(i){case"data-status":{t!=o&&(this.classList.remove("bg-danger"),this.classList.remove("bg-warning"),this.classList.remove("bg-success"),this.classList.remove("bg-white"),(a=this.querySelector("i"))===null||a===void 0||a.remove(),this.addColour(this,o),this.addIcon(this,o));break}case"data-dismiss":{t!=o&&(this.hasAttribute("data-dismiss")?this.addDismissBtn(this):(n=this.shadowRoot.querySelector(".notification__dismiss"))===null||n===void 0||(n.innerHTML=""));break}}}}export{h as default};
19
19
  //# sourceMappingURL=notification.component.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification.component.min.js","sources":["../../modules/notification.js","../_global.js","notification.component.js"],"sourcesContent":["function setupNotification(element) {\n // Add toast to notification holder\n if (element.hasAttribute('data-type') && element.getAttribute('data-type') == 'toast') {\n let holder = document.querySelector('.notification__holder');\n if (!holder) {\n holder = document.createElement('div');\n holder.classList.add('notification__holder');\n holder.classList.add('container');\n document.querySelector('body').appendChild(holder);\n }\n if (!element.closest('.notification__holder'))\n holder.appendChild(element);\n }\n element.setAttribute('role', 'alert');\n // Create a dissmissable button\n element.addEventListener('click', function (e) {\n if (event &&\n event.target instanceof HTMLElement &&\n (event.target.closest('[data-dismiss-button]') || event.target.matches('[data-dismiss-button]'))) {\n e.preventDefault();\n closeNotification(element);\n }\n }, false);\n // Self disappearing alert\n if (element.hasAttribute('data-timeout')) {\n const timeOut = element.getAttribute('data-timeout');\n const timer = new Timer(function () {\n closeNotification(element);\n }, timeOut);\n element.addEventListener('mouseenter', () => {\n timer.pause();\n });\n element.addEventListener('mouseleave', () => {\n timer.resume();\n });\n }\n}\nfunction Timer(callback, delay) {\n let timerId, start, remaining = delay;\n this.pause = function () {\n window.clearTimeout(timerId);\n remaining -= new Date() - start;\n };\n this.resume = function () {\n start = new Date();\n window.clearTimeout(timerId);\n timerId = window.setTimeout(callback, remaining);\n };\n this.resume();\n}\nexport const closeNotification = function (element) {\n element.classList.add('d-none');\n};\nexport default setupNotification;\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 setupNotification, { closeNotification } from '../../modules/notification.js';\nimport { trackComponent, trackComponentRegistered } from '../_global.js';\ntrackComponentRegistered('iam-notification');\nclass iamNotification 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/notification.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/notification.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n ${this.hasAttribute('data-css') ? `${this.getAttribute('data-css')}` : ``}\n </style>\n\n <div class=\"notification\">\n <div class=\"notification__icon\"><slot name=\"icon\"></slot></div>\n <div class=\"notification__inner\"><div class=\"notification__text\"><slot></slot></div><div class=\"notification__btns\"><slot name=\"btns\"></slot></div></div>\n <div class=\"notification__dismiss\"></div>\n </div>\n \n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('notificationHolder'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"notificationHolder\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n var _a, _b, _c, _d, _e;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const wrapper = this;\n const defaultStatusBG = this.hasAttribute('data-type') ? 'white' : 'info';\n const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : defaultStatusBG;\n if (this.hasAttribute('data-type'))\n this.classList.add(`bg-${statusBG}`);\n else {\n this.classList.add(`colour-${statusBG}`);\n }\n if (!this.querySelector('i')) {\n switch (statusBG) {\n case 'danger':\n this.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-circle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n case 'warning':\n this.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-triangle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n case 'success':\n this.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-check-circle\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n default:\n this.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\" slot=\"icon\"></i>');\n }\n }\n const buttons = this.querySelectorAll('a,button');\n Array.from(buttons).forEach((button) => {\n button.setAttribute('slot', 'btns');\n button.classList.add('link');\n });\n if (buttons.length || this.hasAttribute('data-dismiss')) {\n this.classList.add('notification--dismissable');\n }\n if (!buttons.length) {\n (_b = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.notification__btns')) === null || _b === void 0 ? void 0 : _b.classList.add('empty');\n }\n else {\n (_d = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.notification__btns')) === null || _d === void 0 ? void 0 : _d.classList.remove('empty');\n }\n if (this.hasAttribute('data-dismiss')) {\n (_e = this.shadowRoot.querySelector('.notification__dismiss')) === null || _e === void 0 ? void 0 : _e.innerHTML =\n `<button data-dismiss-button part=\"dismiss-btn\">Dismiss</button>`;\n this.shadowRoot.querySelector('.notification__dismiss [data-dismiss-button]').addEventListener('click', function () {\n closeNotification(wrapper);\n const customEvent = new CustomEvent('dismiss', {\n detail: {\n class: this.classList,\n },\n });\n this.dispatchEvent(customEvent);\n }, false);\n }\n setupNotification(this);\n trackComponent(this, 'iam-notification', ['dismiss']);\n }\n}\nexport default iamNotification;\n"],"names":["setupNotification","element","holder","e","closeNotification","timeOut","timer","Timer","callback","delay","timerId","start","remaining","trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","iamNotification","template","_a","_b","_c","_d","_e","wrapper","defaultStatusBG","statusBG","buttons","button","customEvent"],"mappings":"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"}
1
+ {"version":3,"file":"notification.component.min.js","sources":["../../modules/notification.js","../_global.js","notification.component.js"],"sourcesContent":["function setupNotification(element) {\n // Add toast to notification holder\n if (element.hasAttribute('data-type') && element.getAttribute('data-type') == 'toast') {\n let holder = document.querySelector('.notification__holder');\n if (!holder) {\n holder = document.createElement('div');\n holder.classList.add('notification__holder');\n holder.classList.add('container');\n document.querySelector('body').appendChild(holder);\n }\n if (!element.closest('.notification__holder'))\n holder.appendChild(element);\n }\n element.setAttribute('role', 'alert');\n // Create a dissmissable button\n element.addEventListener('click', function (e) {\n if (event &&\n event.target instanceof HTMLElement &&\n (event.target.closest('[data-dismiss-button]') || event.target.matches('[data-dismiss-button]'))) {\n e.preventDefault();\n closeNotification(element);\n }\n }, false);\n // Self disappearing alert\n if (element.hasAttribute('data-timeout')) {\n const timeOut = element.getAttribute('data-timeout');\n const timer = new Timer(function () {\n closeNotification(element);\n }, timeOut);\n element.addEventListener('mouseenter', () => {\n timer.pause();\n });\n element.addEventListener('mouseleave', () => {\n timer.resume();\n });\n }\n}\nfunction Timer(callback, delay) {\n let timerId, start, remaining = delay;\n this.pause = function () {\n window.clearTimeout(timerId);\n remaining -= new Date() - start;\n };\n this.resume = function () {\n start = new Date();\n window.clearTimeout(timerId);\n timerId = window.setTimeout(callback, remaining);\n };\n this.resume();\n}\nexport const closeNotification = function (element) {\n element.classList.add('d-none');\n};\nexport default setupNotification;\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 setupNotification, { closeNotification } from '../../modules/notification.js';\nimport { trackComponent, trackComponentRegistered } from '../_global.js';\ntrackComponentRegistered('iam-notification');\nclass iamNotification extends HTMLElement {\n constructor() {\n super();\n this.addColour = (component, status) => {\n if (component.hasAttribute('data-type'))\n component.classList.add(`bg-${status}`);\n else\n component.classList.add(`colour-${status}`);\n };\n this.addIcon = (component, status) => {\n switch (status) {\n case 'danger':\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-circle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n case 'warning':\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-triangle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n case 'success':\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-check-circle\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n default:\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\" slot=\"icon\"></i>');\n }\n };\n this.addDismissBtn = (component) => {\n var _a;\n (_a = component.shadowRoot.querySelector('.notification__dismiss')) === null || _a === void 0 ? void 0 : _a.innerHTML = `<button data-dismiss-button part=\"dismiss-btn\">Dismiss</button>`;\n component.shadowRoot.querySelector('.notification__dismiss [data-dismiss-button]').addEventListener('click', function () {\n closeNotification(component);\n const customEvent = new CustomEvent('dismiss', {\n detail: {\n class: component.classList,\n },\n });\n component.dispatchEvent(customEvent);\n }, false);\n };\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/notification.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/notification.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n ${this.hasAttribute('data-css') ? `${this.getAttribute('data-css')}` : ``}\n </style>\n\n <div class=\"notification\">\n <div class=\"notification__icon\"><slot name=\"icon\"></slot></div>\n <div class=\"notification__inner\"><div class=\"notification__text\"><slot></slot></div><div class=\"notification__btns\"><slot name=\"btns\"></slot></div></div>\n <div class=\"notification__dismiss\"></div>\n </div>\n \n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('notificationHolder'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"notificationHolder\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n var _a, _b, _c, _d;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const wrapper = this;\n const defaultStatusBG = this.hasAttribute('data-type') ? 'white' : 'info';\n const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : defaultStatusBG;\n this.addColour(this, statusBG);\n if (!this.querySelector('i')) {\n this.addIcon(this, statusBG);\n }\n const buttons = this.querySelectorAll('a,button');\n Array.from(buttons).forEach((button) => {\n button.setAttribute('slot', 'btns');\n button.classList.add('link');\n });\n if (buttons.length || this.hasAttribute('data-dismiss')) {\n this.classList.add('notification--dismissable');\n }\n if (!buttons.length) {\n (_b = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.notification__btns')) === null || _b === void 0 ? void 0 : _b.classList.add('empty');\n }\n else {\n (_d = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.notification__btns')) === null || _d === void 0 ? void 0 : _d.classList.remove('empty');\n }\n if (this.hasAttribute('data-dismiss')) {\n this.addDismissBtn(this);\n }\n setupNotification(this);\n trackComponent(this, 'iam-notification', ['dismiss']);\n }\n static get observedAttributes() {\n return ['data-status', 'data-dismiss'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n var _a, _b;\n switch (attrName) {\n case 'data-status': {\n if (oldVal != newVal) {\n this.classList.remove('bg-danger');\n this.classList.remove('bg-warning');\n this.classList.remove('bg-success');\n this.classList.remove('bg-white');\n (_a = this.querySelector('i')) === null || _a === void 0 ? void 0 : _a.remove();\n this.addColour(this, newVal);\n this.addIcon(this, newVal);\n }\n break;\n }\n case 'data-dismiss': {\n if (oldVal != newVal) {\n if (this.hasAttribute('data-dismiss')) {\n this.addDismissBtn(this);\n }\n else {\n (_b = this.shadowRoot.querySelector('.notification__dismiss')) === null || _b === void 0 ? void 0 : _b.innerHTML = '';\n }\n }\n break;\n }\n }\n }\n}\nexport default iamNotification;\n"],"names":["setupNotification","element","holder","e","closeNotification","timeOut","timer","Timer","callback","delay","timerId","start","remaining","trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","iamNotification","status","_a","customEvent","template","_b","_c","_d","defaultStatusBG","statusBG","buttons","button","attrName","oldVal","newVal"],"mappings":"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"}
@@ -13,7 +13,7 @@ class iamPagination extends HTMLElement {
13
13
 
14
14
  ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
15
15
  </style>
16
- <link rel="stylesheet" href="https://kit.fontawesome.com/26fdbf0179.css" crossorigin="anonymous">
16
+ <link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
17
17
  <div class="pagination d-none">
18
18
 
19
19
  <div class="minimal" part="minimal">