@iamproperty/components 7.0.0 → 7.1.0--beta2

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 (411) hide show
  1. package/assets/css/components/actionbar.css.map +1 -1
  2. package/assets/css/components/actionbar.global.css.map +1 -1
  3. package/assets/css/components/address-lookup.css.map +1 -1
  4. package/assets/css/components/applied-filters.css.map +1 -1
  5. package/assets/css/components/barchart.component.css +1 -1
  6. package/assets/css/components/barchart.component.css.map +1 -1
  7. package/assets/css/components/card.component.css +1 -1
  8. package/assets/css/components/card.component.css.map +1 -1
  9. package/assets/css/components/card.module.css.map +1 -1
  10. package/assets/css/components/carousel.component.css +1 -1
  11. package/assets/css/components/carousel.component.css.map +1 -1
  12. package/assets/css/components/carousel.config.css.map +1 -1
  13. package/assets/css/components/charts.config.css.map +1 -1
  14. package/assets/css/components/charts.css +1 -1
  15. package/assets/css/components/charts.css.map +1 -1
  16. package/assets/css/components/charts.module.css +1 -1
  17. package/assets/css/components/charts.module.css.map +1 -1
  18. package/assets/css/components/collapsible-side.css.map +1 -1
  19. package/assets/css/components/fileupload.css.map +1 -1
  20. package/assets/css/components/filter-card.component.css.map +1 -1
  21. package/assets/css/components/header.css.map +1 -1
  22. package/assets/css/components/inline-edit.css.map +1 -1
  23. package/assets/css/components/inline-edit.preload.css.map +1 -1
  24. package/assets/css/components/marketing.css.map +1 -1
  25. package/assets/css/components/multi-step.component.css.map +1 -1
  26. package/assets/css/components/multiselect.css +1 -1
  27. package/assets/css/components/multiselect.css.map +1 -1
  28. package/assets/css/components/multiselect.preload.css.map +1 -1
  29. package/assets/css/components/nav.css +1 -1
  30. package/assets/css/components/nav.css.map +1 -1
  31. package/assets/css/components/nav.docs.css.map +1 -1
  32. package/assets/css/components/nav.global.css +1 -1
  33. package/assets/css/components/nav.global.css.map +1 -1
  34. package/assets/css/components/nav.old.css +1 -1
  35. package/assets/css/components/nav.old.css.map +1 -1
  36. package/assets/css/components/nav.preload.css.map +1 -1
  37. package/assets/css/components/notification.css.map +1 -1
  38. package/assets/css/components/notification.global.css.map +1 -1
  39. package/assets/css/components/pagination.css.map +1 -1
  40. package/assets/css/components/property-searchbar.css +1 -1
  41. package/assets/css/components/property-searchbar.css.map +1 -1
  42. package/assets/css/components/record-card.component.css.map +1 -1
  43. package/assets/css/components/slider.css.map +1 -1
  44. package/assets/css/components/snapshot.css.map +1 -1
  45. package/assets/css/components/stepper.css.map +1 -1
  46. package/assets/css/components/table.css +1 -1
  47. package/assets/css/components/table.css.map +1 -1
  48. package/assets/css/components/table.global.css +1 -1
  49. package/assets/css/components/table.global.css.map +1 -1
  50. package/assets/css/components/tabs.css.map +1 -1
  51. package/assets/css/components/testimonial.css.map +1 -1
  52. package/assets/css/components/timeline.css +1 -1
  53. package/assets/css/components/timeline.css.map +1 -1
  54. package/assets/css/components/video-card.component.css.map +1 -1
  55. package/assets/css/core.min.css +1 -1
  56. package/assets/css/core.min.css.map +1 -1
  57. package/assets/css/style.min.css +1 -1
  58. package/assets/css/style.min.css.map +1 -1
  59. package/assets/js/components/_global.js +8 -8
  60. package/assets/js/components/accordion/accordion.component.js +13 -10
  61. package/assets/js/components/accordion/accordion.component.min.js +4 -4
  62. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  63. package/assets/js/components/actionbar/actionbar.component.js +97 -83
  64. package/assets/js/components/actionbar/actionbar.component.min.js +5 -5
  65. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  66. package/assets/js/components/address-lookup/address-lookup.component.js +30 -26
  67. package/assets/js/components/address-lookup/address-lookup.component.min.js +4 -4
  68. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  69. package/assets/js/components/applied-filters/applied-filters.component.js +10 -6
  70. package/assets/js/components/applied-filters/applied-filters.component.min.js +3 -3
  71. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  72. package/assets/js/components/barchart/barchart.component.js +8 -7
  73. package/assets/js/components/barchart/barchart.component.min.js +4 -4
  74. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  75. package/assets/js/components/card/card.component.js +27 -12
  76. package/assets/js/components/card/card.component.min.js +3 -3
  77. package/assets/js/components/card/card.component.min.js.map +1 -1
  78. package/assets/js/components/carousel/carousel.component.js +18 -12
  79. package/assets/js/components/carousel/carousel.component.min.js +4 -4
  80. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  81. package/assets/js/components/chart/chart.component.js +9 -8
  82. package/assets/js/components/collapsible-side/collapsible-side.component.js +20 -8
  83. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  84. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  85. package/assets/js/components/fileupload/fileupload.component.js +11 -7
  86. package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
  87. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  88. package/assets/js/components/filter-card/filter-card.component.js +19 -9
  89. package/assets/js/components/filter-card/filter-card.component.min.js +2 -2
  90. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  91. package/assets/js/components/filterlist/filterlist.component.js +10 -6
  92. package/assets/js/components/filterlist/filterlist.component.min.js +3 -3
  93. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  94. package/assets/js/components/header/header.component.js +8 -4
  95. package/assets/js/components/header/header.component.min.js +1 -1
  96. package/assets/js/components/header/header.component.min.js.map +1 -1
  97. package/assets/js/components/inline-edit/inline-edit.component.js +43 -23
  98. package/assets/js/components/inline-edit/inline-edit.component.min.js +4 -4
  99. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  100. package/assets/js/components/marketing/marketing.component.js +11 -5
  101. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  102. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  103. package/assets/js/components/multi-step/multi-step.component.js +22 -19
  104. package/assets/js/components/multiselect/multiselect.component.js +62 -45
  105. package/assets/js/components/multiselect/multiselect.component.min.js +5 -5
  106. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  107. package/assets/js/components/nav/nav.component.js +57 -38
  108. package/assets/js/components/nav/nav.component.min.js +5 -5
  109. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  110. package/assets/js/components/notification/notification.component.js +9 -5
  111. package/assets/js/components/notification/notification.component.min.js +5 -5
  112. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  113. package/assets/js/components/pagination/pagination.component.js +18 -14
  114. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  115. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  116. package/assets/js/components/record-card/record-card.component.js +10 -8
  117. package/assets/js/components/record-card/record-card.component.min.js +2 -2
  118. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  119. package/assets/js/components/search/search.component.js +22 -17
  120. package/assets/js/components/search/search.component.min.js +4 -4
  121. package/assets/js/components/search/search.component.min.js.map +1 -1
  122. package/assets/js/components/slider/slider.component.js +25 -21
  123. package/assets/js/components/slider/slider.component.min.js +3 -3
  124. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  125. package/assets/js/components/table/table.component.js +30 -24
  126. package/assets/js/components/table/table.component.min.js +7 -7
  127. package/assets/js/components/table/table.component.min.js.map +1 -1
  128. package/assets/js/components/tabs/tabs.component.js +10 -6
  129. package/assets/js/components/tabs/tabs.component.min.js +3 -3
  130. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  131. package/assets/js/components/video-card/video-card.component.js +45 -33
  132. package/assets/js/components/video-card/video-card.component.min.js +3 -3
  133. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  134. package/assets/js/components.bundle.js +1 -1
  135. package/assets/js/components.bundle.js.map +1 -1
  136. package/assets/js/components.js +35 -8
  137. package/assets/js/modules/applied-filters.js +20 -20
  138. package/assets/js/modules/carousel.js +65 -60
  139. package/assets/js/modules/chart.js +184 -134
  140. package/assets/js/modules/chart.module.js +74 -63
  141. package/assets/js/modules/data-layer.js +17 -17
  142. package/assets/js/modules/dialogs.js +47 -38
  143. package/assets/js/modules/drawer.js +1 -1
  144. package/assets/js/modules/dynamicEvents.js +24 -24
  145. package/assets/js/modules/file-upload.js +8 -9
  146. package/assets/js/modules/fileupload.js +5 -5
  147. package/assets/js/modules/filterlist.js +4 -4
  148. package/assets/js/modules/form.js +22 -18
  149. package/assets/js/modules/helpers.js +54 -44
  150. package/assets/js/modules/inputs.js +25 -21
  151. package/assets/js/modules/nav.js +3 -1
  152. package/assets/js/modules/notification.js +6 -6
  153. package/assets/js/modules/orderablelist.js +12 -12
  154. package/assets/js/modules/pagination.js +5 -5
  155. package/assets/js/modules/table.js +242 -181
  156. package/assets/js/modules/tabs.js +71 -60
  157. package/assets/js/modules/testimonial.js +11 -12
  158. package/assets/js/scripts.bundle.js +1 -1
  159. package/assets/js/scripts.bundle.js.map +1 -1
  160. package/assets/js/scripts.bundle.min.js +1 -1
  161. package/assets/js/scripts.bundle.min.js.map +1 -1
  162. package/assets/js/scripts.js +1 -1
  163. package/assets/js/tests/chart.spec.js +5 -5
  164. package/assets/js/tests/filterlist.spec.js +2 -2
  165. package/assets/js/tests/slider.spec.js +2 -2
  166. package/assets/js/tests/table.spec.js +2 -2
  167. package/assets/js/vendor/hibp.js +4 -4
  168. package/assets/sass/_components.scss +28 -40
  169. package/assets/sass/_corefiles.scss +22 -29
  170. package/assets/sass/_elements.scss +19 -19
  171. package/assets/sass/_fonts.scss +10 -7
  172. package/assets/sass/_func.scss +14 -14
  173. package/assets/sass/_functions/functions.scss +115 -90
  174. package/assets/sass/_functions/mixins.scss +72 -112
  175. package/assets/sass/_functions/utilities.scss +447 -393
  176. package/assets/sass/_functions/variables.scss +1357 -1371
  177. package/assets/sass/_print.scss +18 -16
  178. package/assets/sass/_tests/colours.spec.scss +15 -14
  179. package/assets/sass/_tests/func.spec.scss +1 -2
  180. package/assets/sass/_tests/mixins.spec.scss +9 -14
  181. package/assets/sass/_tests/typography.spec.scss +1 -2
  182. package/assets/sass/_utilities.scss +8 -12
  183. package/assets/sass/components/actionbar.global.scss +45 -64
  184. package/assets/sass/components/actionbar.scss +58 -84
  185. package/assets/sass/components/address-lookup.scss +9 -11
  186. package/assets/sass/components/applied-filters.scss +3 -7
  187. package/assets/sass/components/barchart.component.scss +68 -99
  188. package/assets/sass/components/card.component.scss +35 -50
  189. package/assets/sass/components/card.module.scss +34 -37
  190. package/assets/sass/components/carousel.component.scss +198 -177
  191. package/assets/sass/components/carousel.config.scss +13 -19
  192. package/assets/sass/components/charts.config.scss +16 -23
  193. package/assets/sass/components/charts.module.scss +139 -178
  194. package/assets/sass/components/charts.scss +173 -232
  195. package/assets/sass/components/collapsible-side.scss +65 -98
  196. package/assets/sass/components/fileupload.scss +17 -23
  197. package/assets/sass/components/filter-card.component.scss +21 -28
  198. package/assets/sass/components/header.scss +24 -37
  199. package/assets/sass/components/inline-edit.preload.scss +24 -45
  200. package/assets/sass/components/inline-edit.scss +4 -5
  201. package/assets/sass/components/marketing.scss +19 -14
  202. package/assets/sass/components/multi-step.component.scss +36 -42
  203. package/assets/sass/components/multiselect.preload.scss +9 -12
  204. package/assets/sass/components/multiselect.scss +20 -24
  205. package/assets/sass/components/nav.docs.scss +7 -15
  206. package/assets/sass/components/nav.global.scss +123 -177
  207. package/assets/sass/components/nav.old.scss +64 -135
  208. package/assets/sass/components/nav.preload.scss +11 -12
  209. package/assets/sass/components/nav.scss +126 -173
  210. package/assets/sass/components/notification.global.scss +2 -3
  211. package/assets/sass/components/notification.scss +17 -32
  212. package/assets/sass/components/pagination.scss +32 -44
  213. package/assets/sass/components/property-searchbar.scss +2 -6
  214. package/assets/sass/components/record-card.component.scss +42 -55
  215. package/assets/sass/components/slider.scss +38 -35
  216. package/assets/sass/components/snapshot.scss +4 -10
  217. package/assets/sass/components/stepper.scss +14 -22
  218. package/assets/sass/components/table.global.scss +130 -171
  219. package/assets/sass/components/table.scss +17 -27
  220. package/assets/sass/components/tabs.scss +23 -32
  221. package/assets/sass/components/testimonial.scss +6 -14
  222. package/assets/sass/components/timeline.scss +8 -12
  223. package/assets/sass/components/video-card.component.scss +9 -14
  224. package/assets/sass/components.reset.scss +5 -5
  225. package/assets/sass/core.scss +3 -3
  226. package/assets/sass/elements/admin-panel.scss +41 -45
  227. package/assets/sass/elements/badge-tag.scss +16 -26
  228. package/assets/sass/elements/brand.scss +13 -16
  229. package/assets/sass/elements/buttons.scss +80 -106
  230. package/assets/sass/elements/container.scss +24 -133
  231. package/assets/sass/elements/details.scss +30 -50
  232. package/assets/sass/elements/dialog.scss +4 -6
  233. package/assets/sass/elements/forms.scss +421 -437
  234. package/assets/sass/elements/icons.scss +3 -4
  235. package/assets/sass/elements/links.scss +17 -25
  236. package/assets/sass/elements/lists.scss +30 -47
  237. package/assets/sass/elements/media.scss +1 -4
  238. package/assets/sass/elements/modal.scss +54 -80
  239. package/assets/sass/elements/popover.scss +28 -45
  240. package/assets/sass/elements/progress.scss +30 -40
  241. package/assets/sass/elements/table.element.scss +10 -15
  242. package/assets/sass/elements/tooltips.scss +27 -49
  243. package/assets/sass/elements/type.scss +47 -53
  244. package/assets/sass/email.scss +7 -9
  245. package/assets/sass/error.scss +23 -20
  246. package/assets/sass/foundations/bs_grid.scss +0 -1
  247. package/assets/sass/foundations/grid.scss +120 -122
  248. package/assets/sass/foundations/reboot.scss +27 -35
  249. package/assets/sass/foundations/root.scss +21 -31
  250. package/assets/sass/helpers/dynamic.scss +5 -5
  251. package/assets/sass/helpers/line-clamp.scss +1 -2
  252. package/assets/sass/helpers/max-height.scss +28 -36
  253. package/assets/sass/helpers/wider-colours.scss +2 -5
  254. package/assets/sass/main.scss +4 -4
  255. package/assets/sass/templates/auth.scss +11 -18
  256. package/assets/sass/templates/form.scss +16 -29
  257. package/assets/ts/components/_global.ts +14 -17
  258. package/assets/ts/components/accordion/accordion.component.ts +23 -19
  259. package/assets/ts/components/actionbar/README.md +8 -7
  260. package/assets/ts/components/actionbar/actionbar.component.ts +170 -220
  261. package/assets/ts/components/address-lookup/address-lookup.component.ts +94 -130
  262. package/assets/ts/components/applied-filters/README.md +1 -1
  263. package/assets/ts/components/applied-filters/applied-filters.component.ts +16 -15
  264. package/assets/ts/components/barchart/barchart.component.ts +29 -26
  265. package/assets/ts/components/card/card.component.ts +56 -57
  266. package/assets/ts/components/carousel/README.md +8 -9
  267. package/assets/ts/components/carousel/carousel.component.ts +30 -33
  268. package/assets/ts/components/chart/README.md +1 -3
  269. package/assets/ts/components/chart/chart.component.ts +24 -36
  270. package/assets/ts/components/collapsible-side/README.md +1 -1
  271. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +44 -57
  272. package/assets/ts/components/fileupload/README.md +3 -3
  273. package/assets/ts/components/fileupload/fileupload.component.ts +23 -28
  274. package/assets/ts/components/filter-card/filter-card.component.ts +32 -33
  275. package/assets/ts/components/filterlist/README.md +3 -3
  276. package/assets/ts/components/filterlist/filterlist.component.ts +18 -16
  277. package/assets/ts/components/header/README.md +8 -9
  278. package/assets/ts/components/header/header.component.ts +15 -16
  279. package/assets/ts/components/inline-edit/README.md +1 -0
  280. package/assets/ts/components/inline-edit/inline-edit.component.ts +71 -71
  281. package/assets/ts/components/marketing/marketing.component.ts +17 -16
  282. package/assets/ts/components/multi-step/multi-step.component.ts +114 -156
  283. package/assets/ts/components/multiselect/README.md +5 -5
  284. package/assets/ts/components/multiselect/multiselect.component.ts +116 -133
  285. package/assets/ts/components/nav/README.md +13 -13
  286. package/assets/ts/components/nav/nav.component.ts +171 -167
  287. package/assets/ts/components/notification/README.md +9 -9
  288. package/assets/ts/components/notification/notification.component.ts +33 -32
  289. package/assets/ts/components/pagination/README.md +12 -12
  290. package/assets/ts/components/pagination/pagination.component.ts +51 -69
  291. package/assets/ts/components/record-card/record-card.component.ts +24 -34
  292. package/assets/ts/components/search/README.md +6 -7
  293. package/assets/ts/components/search/search.component.ts +75 -91
  294. package/assets/ts/components/slider/slider.component.ts +62 -77
  295. package/assets/ts/components/table/README.md +8 -8
  296. package/assets/ts/components/table/table.component.ts +97 -134
  297. package/assets/ts/components/tabs/README.md +4 -4
  298. package/assets/ts/components/tabs/tabs.component.ts +16 -14
  299. package/assets/ts/components/video-card/video-card.component.ts +89 -93
  300. package/assets/ts/components.ts +44 -20
  301. package/assets/ts/html.d.ts +1 -7
  302. package/assets/ts/modules/applied-filters.ts +104 -135
  303. package/assets/ts/modules/card.module.ts +13 -18
  304. package/assets/ts/modules/carousel.ts +194 -195
  305. package/assets/ts/modules/chart.module.ts +201 -246
  306. package/assets/ts/modules/chart.ts +454 -472
  307. package/assets/ts/modules/data-layer.md +35 -31
  308. package/assets/ts/modules/data-layer.ts +18 -18
  309. package/assets/ts/modules/dialogs.ts +113 -117
  310. package/assets/ts/modules/drawer.ts +7 -9
  311. package/assets/ts/modules/dynamicEvents.ts +67 -100
  312. package/assets/ts/modules/file-upload.ts +43 -40
  313. package/assets/ts/modules/fileupload.ts +38 -60
  314. package/assets/ts/modules/filterlist.ts +14 -20
  315. package/assets/ts/modules/form.ts +126 -128
  316. package/assets/ts/modules/helpers.ts +114 -120
  317. package/assets/ts/modules/inputs.ts +88 -120
  318. package/assets/ts/modules/nav.ts +19 -18
  319. package/assets/ts/modules/notification.ts +28 -32
  320. package/assets/ts/modules/orderablelist.ts +90 -82
  321. package/assets/ts/modules/pagination.ts +14 -19
  322. package/assets/ts/modules/table.ts +516 -599
  323. package/assets/ts/modules/tabs.ts +120 -145
  324. package/assets/ts/modules/testimonial.ts +59 -64
  325. package/assets/ts/scripts.ts +7 -9
  326. package/assets/ts/tests/chart.spec.ts +11 -20
  327. package/assets/ts/tests/data-layer.spec.js +3 -4
  328. package/assets/ts/tests/filterlist.spec.ts +3 -6
  329. package/assets/ts/tests/slider.spec.ts +9 -15
  330. package/assets/ts/tests/table.spec.ts +7 -24
  331. package/assets/ts/vendor/hibp.ts +43 -43
  332. package/dist/components.es.js +280 -270
  333. package/dist/components.umd.js +67 -67
  334. package/dist/style.css +1 -1
  335. package/package.json +14 -4
  336. package/src/components/Accordion/Accordion.spec.js +25 -31
  337. package/src/components/Accordion/Accordion.vue +16 -19
  338. package/src/components/Accordion/AccordionItem.vue +39 -37
  339. package/src/components/Accordion/README.md +10 -12
  340. package/src/components/Actionbar/Actionbar.vue +15 -18
  341. package/src/components/Actionbar/README.md +8 -7
  342. package/src/components/AddressLookup/AddressLookup.vue +14 -16
  343. package/src/components/AppliedFilters/AppliedFilters.vue +14 -16
  344. package/src/components/Banner/Banner.spec.js +13 -15
  345. package/src/components/Banner/Banner.vue +19 -19
  346. package/src/components/Banner/README.md +8 -10
  347. package/src/components/BarChart/BarChart.vue +14 -16
  348. package/src/components/Card/Card.vue +13 -16
  349. package/src/components/Card/README.md +8 -8
  350. package/src/components/Carousel/Carousel.vue +15 -18
  351. package/src/components/Carousel/README.md +7 -7
  352. package/src/components/Chart/Chart.spec.js +64 -87
  353. package/src/components/Chart/Chart.vue +41 -40
  354. package/src/components/Chart/README.md +8 -9
  355. package/src/components/CollapsibleSideMenu/CollapsibleSideMenu.vue +8 -10
  356. package/src/components/CollapsibleSideMenu/README.md +1 -1
  357. package/src/components/FileUpload/FileUpload.vue +35 -40
  358. package/src/components/FileUpload/README.md +3 -3
  359. package/src/components/FilterCard/FilterCard.vue +14 -16
  360. package/src/components/Filterlist/Filterlist.vue +7 -9
  361. package/src/components/Filterlist/README.md +3 -3
  362. package/src/components/Header/Header.vue +23 -26
  363. package/src/components/Header/README.md +8 -9
  364. package/src/components/InlineEdit/InlineEdit.vue +26 -32
  365. package/src/components/Input/Input.vue +323 -233
  366. package/src/components/Input/README.md +11 -11
  367. package/src/components/Marketing/Marketing.vue +24 -27
  368. package/src/components/Marketing/README.md +7 -7
  369. package/src/components/MultiStep/MultiStep.vue +13 -15
  370. package/src/components/Multiselect/Multiselect.vue +14 -17
  371. package/src/components/Nav/Nav.vue +15 -29
  372. package/src/components/Nav/README.md +12 -12
  373. package/src/components/Nav-old/Nav.vue +88 -93
  374. package/src/components/Nav-old/README.md +11 -12
  375. package/src/components/NoteFeed/NoteFeed.vue +59 -56
  376. package/src/components/NoteFeed/README.md +6 -6
  377. package/src/components/Notification/Notification.vue +11 -15
  378. package/src/components/Notification/README.md +9 -9
  379. package/src/components/Pagination/Pagination.vue +14 -24
  380. package/src/components/Pagination/README.md +12 -12
  381. package/src/components/PropertySearchbar/PropertySearchbar.vue +191 -160
  382. package/src/components/PropertySearchbar/README.md +14 -15
  383. package/src/components/RecordCard/RecordCard.vue +14 -16
  384. package/src/components/Search/README.md +1 -1
  385. package/src/components/Search/Search.vue +13 -16
  386. package/src/components/Slider/Slider.vue +13 -16
  387. package/src/components/Snapshot/README.md +9 -10
  388. package/src/components/Snapshot/Snapshot.vue +15 -17
  389. package/src/components/Stepper/README.md +12 -13
  390. package/src/components/Stepper/Step.vue +22 -18
  391. package/src/components/Stepper/Stepper.spec.js +41 -46
  392. package/src/components/Stepper/Stepper.vue +17 -18
  393. package/src/components/Table/README.md +12 -11
  394. package/src/components/Table/Table.spec.js +17 -28
  395. package/src/components/Table/Table.vue +49 -48
  396. package/src/components/Tabs/README.md +8 -8
  397. package/src/components/Tabs/Tab.vue +21 -21
  398. package/src/components/Tabs/Tabs.vue +14 -17
  399. package/src/components/Testimonial/README.md +11 -12
  400. package/src/components/Testimonial/Testimonial.spec.js +22 -26
  401. package/src/components/Testimonial/Testimonial.vue +31 -25
  402. package/src/components/Timeline/README.md +3 -3
  403. package/src/components/Timeline/Timeline.spec.js +9 -11
  404. package/src/components/Timeline/Timeline.vue +10 -10
  405. package/src/components/VideoCard/VideoCard.vue +14 -16
  406. package/src/foundations/Logo/Logo.spec.js +30 -30
  407. package/src/foundations/Logo/Logo.vue +28 -28
  408. package/src/foundations/Logo/README.md +5 -4
  409. package/src/helpers/strings.js +11 -8
  410. package/src/index.js +27 -28
  411. package/src/vue-shim.d.ts +4 -4
@@ -3,18 +3,21 @@
3
3
  // Data layer Web component created
4
4
  window.dataLayer = window.dataLayer || [];
5
5
  window.dataLayer.push({
6
- "event": "customElementRegistered",
7
- "element": "nav"
6
+ event: 'customElementRegistered',
7
+ element: 'nav',
8
8
  });
9
9
 
10
10
  class iamNav extends HTMLElement {
11
-
12
- constructor(){
11
+ constructor() {
13
12
  super();
14
- const shadowRoot = this.attachShadow({ mode: 'open'});
15
-
16
- const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
17
- const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
13
+ const shadowRoot = this.attachShadow({ mode: 'open' });
14
+
15
+ const assetLocation = document.body.hasAttribute('data-assets-location')
16
+ ? document.body.getAttribute('data-assets-location')
17
+ : '/assets';
18
+ const coreCSS = document.body.hasAttribute('data-core-css')
19
+ ? document.body.getAttribute('data-core-css')
20
+ : `${assetLocation}/css/core.min.css`;
18
21
  const loadCSS = `@import "${assetLocation}/css/components/nav.css";`;
19
22
  const loadExtraCSS = `@import "${assetLocation}/css/components/nav.global.css";`;
20
23
 
@@ -54,184 +57,193 @@ class iamNav extends HTMLElement {
54
57
  `;
55
58
 
56
59
  shadowRoot.appendChild(template.content.cloneNode(true));
57
-
60
+
58
61
  // insert extra CSS
59
- if(!document.getElementById('navGlobal'))
60
- document.head.insertAdjacentHTML('beforeend',`<style id="navGlobal">${loadExtraCSS}</style>`);
62
+ if (!document.getElementById('navGlobal'))
63
+ document.head.insertAdjacentHTML('beforeend', `<style id="navGlobal">${loadExtraCSS}</style>`);
61
64
  }
62
65
 
63
- connectedCallback() {
64
-
66
+ connectedCallback() {
65
67
  // Load external CSS if needed
66
- if(this.hasAttribute('data-css'))
67
- this.shadowRoot.querySelector('.doc-styles').insertAdjacentHTML('beforeend', `@import "${this.getAttribute('data-css')}";`);
68
-
68
+ if (this.hasAttribute('data-css'))
69
+ this.shadowRoot
70
+ .querySelector('.doc-styles')
71
+ .insertAdjacentHTML('beforeend', `@import "${this.getAttribute('data-css')}";`);
72
+
69
73
  const menuButton = this.shadowRoot.querySelector('.btn-menu');
70
74
  const menu = this.shadowRoot.querySelector('.menu');
71
75
  const iamNav = this;
72
76
  const backdrop = this.shadowRoot.querySelector('.backdrop');
73
77
  const buttonsHolder = this.shadowRoot.querySelector('.buttons-holder');
74
78
 
75
- // Check the content
76
- this.querySelectorAll(':scope > *').forEach(function(element){
77
- let tagname = element.tagName;
79
+ // Check the content
80
+ this.querySelectorAll(':scope > *').forEach(function (element) {
81
+ const tagname = element.tagName;
78
82
 
79
- switch(tagname){
80
- case "BUTTON":
81
- if(!element.hasAttribute('slot')){
82
- element.setAttribute('slot','actions');
83
- menu.classList.add('has-actions')
83
+ switch (tagname) {
84
+ case 'BUTTON':
85
+ if (!element.hasAttribute('slot')) {
86
+ element.setAttribute('slot', 'actions');
87
+ menu.classList.add('has-actions');
84
88
  }
85
89
  break;
86
90
  }
87
91
 
88
92
  // Create menu button
89
- if(element.classList.contains('nav--menu') && element.hasAttribute('data-title') && element.hasAttribute('data-icon')){
90
-
93
+ if (
94
+ element.classList.contains('nav--menu') &&
95
+ element.hasAttribute('data-title') &&
96
+ element.hasAttribute('data-icon')
97
+ ) {
91
98
  const title = element.getAttribute('data-title');
92
99
  const iconClass = element.getAttribute('data-icon');
93
100
 
94
101
  // Create the menu button that sits seperately to the menu
95
102
  const button = document.createElement('button');
96
- button.setAttribute('slot',title);
103
+ button.setAttribute('slot', title);
97
104
  button.classList.add('btn-menu');
98
- button.setAttribute('part','btn-menu');
105
+ button.setAttribute('part', 'btn-menu');
99
106
  button.innerHTML = `<span class="btn btn-primary"><span>${title}</span><i class="${iconClass}"></i><i class="fa-regular fa-xmark-large"></i></span>`;
100
- buttonsHolder.insertAdjacentElement('beforeend',button);
107
+ buttonsHolder.insertAdjacentElement('beforeend', button);
101
108
 
102
109
  const mdButton = button.querySelector('.btn-primary');
103
110
 
104
111
  // Make sure the menu is added to the right part of the component
105
- element.setAttribute('slot','menus');
112
+ element.setAttribute('slot', 'menus');
106
113
 
107
114
  // 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
108
- if(element.classList.contains('open')){
115
+ if (element.classList.contains('open')) {
109
116
  button.setAttribute('aria-expanded', true);
110
117
  mdButton.classList.toggle('active');
111
118
  iamNav.classList.add('open');
112
119
  backdrop.classList.add('show');
113
- }
114
- else {
120
+ } else {
115
121
  element.classList.add('closed'); // closed class is added to prevent the elements being tabbed into, this causes visual issues
116
122
  }
117
123
 
118
124
  // Click event
119
- button.addEventListener('click', function(e){
120
-
121
- e.preventDefault();
122
- button.toggleAttribute('aria-expanded');
123
- element.classList.toggle('open');
124
- mdButton.classList.toggle('active');
125
-
126
- // Close desktop menus
127
- let openMenu = iamNav.querySelector(':scope > details[open]');
128
-
129
- if(openMenu)
130
- openMenu.removeAttribute('open')
131
-
132
- // Close the main menu and fix states on the button, iamNav component and backdrop
133
- if(element.classList.contains('open')){
134
-
135
- menu.classList.remove('open');
136
- menuButton.removeAttribute('aria-expanded');
137
- setTimeout(function(){ menu.classList.add('closed') }, 1000); // Delay until its close so the animation is broken
138
- iamNav.classList.add('open');
139
- backdrop.classList.add('show');
140
- element.classList.remove('closed');
141
- }
142
- else{
143
- iamNav.classList.remove('open');
144
- backdrop.classList.remove('show');
145
- setTimeout(function(){ element.classList.add('closed') }, 1000);
146
- }
147
-
148
- // Close any open menus
149
- iamNav.querySelectorAll('.nav--menu.open').forEach(function(openmenu){
150
- if(openmenu != element) {
151
- openmenu.classList.remove('open');
125
+ button.addEventListener(
126
+ 'click',
127
+ function (e) {
128
+ e.preventDefault();
129
+ button.toggleAttribute('aria-expanded');
130
+ element.classList.toggle('open');
131
+ mdButton.classList.toggle('active');
132
+
133
+ // Close desktop menus
134
+ const openMenu = iamNav.querySelector(':scope > details[open]');
135
+
136
+ if (openMenu) openMenu.removeAttribute('open');
137
+
138
+ // Close the main menu and fix states on the button, iamNav component and backdrop
139
+ if (element.classList.contains('open')) {
140
+ menu.classList.remove('open');
141
+ menuButton.removeAttribute('aria-expanded');
142
+ setTimeout(function () {
143
+ menu.classList.add('closed');
144
+ }, 1000); // Delay until its close so the animation is broken
145
+ iamNav.classList.add('open');
146
+ backdrop.classList.add('show');
147
+ element.classList.remove('closed');
148
+ } else {
149
+ iamNav.classList.remove('open');
150
+ backdrop.classList.remove('show');
151
+ setTimeout(function () {
152
+ element.classList.add('closed');
153
+ }, 1000);
152
154
  }
153
- });
154
-
155
- iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function(selectedButton){
156
-
157
- if(selectedButton != button){
158
-
159
- selectedButton.removeAttribute('aria-expanded');
160
- let innerBtn = selectedButton.querySelector('.btn-primary');
161
- innerBtn.classList.remove('active');
162
- }
163
- });
164
155
 
165
- }, false);
156
+ // Close any open menus
157
+ iamNav.querySelectorAll('.nav--menu.open').forEach(function (openmenu) {
158
+ if (openmenu != element) {
159
+ openmenu.classList.remove('open');
160
+ }
161
+ });
162
+
163
+ iamNav.shadowRoot
164
+ .querySelectorAll('.buttons-holder .btn-menu[aria-expanded]')
165
+ .forEach(function (selectedButton) {
166
+ if (selectedButton != button) {
167
+ selectedButton.removeAttribute('aria-expanded');
168
+ const innerBtn = selectedButton.querySelector('.btn-primary');
169
+ innerBtn.classList.remove('active');
170
+ }
171
+ });
172
+ },
173
+ false
174
+ );
166
175
  }
167
176
  });
168
-
169
177
 
170
- this.querySelectorAll('details').forEach(function(element){
171
-
178
+ this.querySelectorAll('details').forEach(function (element) {
172
179
  element.classList.add('details--revert');
173
180
  });
174
181
 
175
182
  // Has secondary link
176
- if(this.querySelector('a[slot="secondary"]')){
183
+ if (this.querySelector('a[slot="secondary"]')) {
177
184
  menu.classList.add('has-secondary');
178
185
  }
179
186
 
180
187
  // Create a scroll width variable to help with the sizing of the menu with in the CSS
181
- document.documentElement.style.setProperty('--scrollbar-width', (window.innerWidth - document.documentElement.offsetWidth) + 'px');
188
+ document.documentElement.style.setProperty(
189
+ '--scrollbar-width',
190
+ window.innerWidth - document.documentElement.offsetWidth + 'px'
191
+ );
182
192
 
183
193
  // Open and close the menu
184
- menuButton.addEventListener('click', function(e){
185
-
186
- e.preventDefault();
187
- menuButton.toggleAttribute('aria-expanded');
188
- menu.classList.toggle('open');
189
-
190
- // Close any other menus
191
- iamNav.querySelectorAll('.nav--menu.open').forEach(function(element){
192
- element.classList.remove('open');
193
- setTimeout(function(){ element.classList.add('closed') }, 1000);
194
- });
195
- iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function(element){
196
- element.removeAttribute('aria-expanded');
197
- let innerBtn = element.querySelector('.btn-primary');
198
- innerBtn.classList.remove('active');
199
- });
200
-
201
- if(menu.classList.contains('open')){
202
- iamNav.classList.add('open');
203
- menu.classList.remove('closed');
204
- }
205
- else {
206
- iamNav.classList.remove('open');
207
- setTimeout(function(){ menu.classList.add('closed') }, 1000);
208
- }
209
-
210
- }, false);
194
+ menuButton.addEventListener(
195
+ 'click',
196
+ function (e) {
197
+ e.preventDefault();
198
+ menuButton.toggleAttribute('aria-expanded');
199
+ menu.classList.toggle('open');
200
+
201
+ // Close any other menus
202
+ iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {
203
+ element.classList.remove('open');
204
+ setTimeout(function () {
205
+ element.classList.add('closed');
206
+ }, 1000);
207
+ });
208
+ iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {
209
+ element.removeAttribute('aria-expanded');
210
+ const innerBtn = element.querySelector('.btn-primary');
211
+ innerBtn.classList.remove('active');
212
+ });
213
+
214
+ if (menu.classList.contains('open')) {
215
+ iamNav.classList.add('open');
216
+ menu.classList.remove('closed');
217
+ } else {
218
+ iamNav.classList.remove('open');
219
+ setTimeout(function () {
220
+ menu.classList.add('closed');
221
+ }, 1000);
222
+ }
223
+ },
224
+ false
225
+ );
211
226
 
212
227
  // Allow outside JS to close the menu
213
- this.addEventListener("request-close", (event) => {
214
-
228
+ this.addEventListener('request-close', (event) => {
215
229
  menuButton.removeAttribute('aria-expanded');
216
230
  menu.classList.remove('open');
217
231
  iamNav.classList.remove('open');
218
232
  });
219
233
 
220
234
  // Close the menu on the click of the backdrop on desktop
221
- backdrop.addEventListener("click", (event) => {
222
-
223
- let openMenu = this.querySelector('details[open] summary');
235
+ backdrop.addEventListener('click', (event) => {
236
+ const openMenu = this.querySelector('details[open] summary');
224
237
 
225
- if(openMenu)
226
- openMenu.click();
238
+ if (openMenu) openMenu.click();
227
239
 
228
240
  iamNav.classList.toggle('open');
229
- iamNav.querySelectorAll('.nav--menu.open').forEach(function(element){
241
+ iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {
230
242
  element.classList.remove('open');
231
243
  });
232
- iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function(element){
244
+ iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {
233
245
  element.removeAttribute('aria-expanded');
234
- let innerBtn = element.querySelector('.btn-primary');
246
+ const innerBtn = element.querySelector('.btn-primary');
235
247
  innerBtn.classList.remove('active');
236
248
  });
237
249
 
@@ -239,69 +251,64 @@ class iamNav extends HTMLElement {
239
251
  });
240
252
 
241
253
  // On desktop close other menu's (details) when one is clicked
242
- this.addEventListener("click", (event) => {
254
+ this.addEventListener('click', (event) => {
255
+ if (event && event.target instanceof HTMLElement && event.target.closest('summary')) {
256
+ if (window.innerWidth > 992 && !event.target.closest('.nav--menu')) {
257
+ const summary = event.target.closest('summary');
258
+ const details = summary.closest('details');
259
+ const wrapper = details.parentNode;
243
260
 
244
- if (event && event.target instanceof HTMLElement && event.target.closest('summary')){
245
-
246
- if(window.innerWidth > 992 && !event.target.closest('.nav--menu')){
247
-
248
- let summary = event.target.closest('summary');
249
- let details = summary.closest('details');
250
- let wrapper = details.parentNode;
251
-
252
- if(details.hasAttribute('open'))
253
- details.removeAttribute('open');
254
- else
255
- details.setAttribute('open','true');
261
+ if (details.hasAttribute('open')) details.removeAttribute('open');
262
+ else details.setAttribute('open', 'true');
256
263
 
257
264
  // Close any bespoke menus
258
- iamNav.querySelectorAll('.nav--menu.open').forEach(function(element){
265
+ iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {
259
266
  element.classList.remove('open');
260
- setTimeout(function(){ menu.classList.add('closed') }, 1000);
267
+ setTimeout(function () {
268
+ menu.classList.add('closed');
269
+ }, 1000);
261
270
  });
262
- iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function(element){
271
+ iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {
263
272
  element.removeAttribute('aria-expanded');
264
- let innerBtn = element.querySelector('.btn-primary');
273
+ const innerBtn = element.querySelector('.btn-primary');
265
274
  innerBtn.classList.remove('active');
266
275
  });
267
276
 
268
277
  // Close any other dropdowns on the same level
269
278
  Array.from(wrapper.querySelectorAll(':scope > details')).forEach((detailsArrayElement, index) => {
270
-
271
- if(detailsArrayElement != details)
272
- detailsArrayElement.removeAttribute('open')
279
+ if (detailsArrayElement != details) detailsArrayElement.removeAttribute('open');
273
280
  });
274
281
 
275
- if(this.querySelectorAll(':scope > details[open]').length){
282
+ if (this.querySelectorAll(':scope > details[open]').length) {
276
283
  backdrop.classList.add('show');
277
284
  iamNav.classList.add('open');
278
- }
279
- else {
285
+ } else {
280
286
  backdrop.classList.remove('show');
281
287
  iamNav.classList.remove('open');
282
288
  }
283
289
 
284
290
  event.preventDefault();
285
291
  }
286
- };
292
+ }
287
293
  });
288
294
 
289
295
  // Mega menu title
290
296
  this.querySelectorAll('details').forEach((detailsElement) => {
291
-
292
- let summary = detailsElement.querySelector('summary');
293
- let containerDiv = detailsElement.querySelector(':Scope > div');
297
+ const summary = detailsElement.querySelector('summary');
298
+ const containerDiv = detailsElement.querySelector(':Scope > div');
294
299
 
295
300
  containerDiv.setAttribute('data-title', summary.textContent);
296
301
  });
297
302
 
298
- // Search
299
- if(this.querySelector('[slot="search"]')){
303
+ // Search
304
+ if (this.querySelector('[slot="search"]')) {
300
305
  menu.classList.add('has-search');
301
- let searchWrapper = this.shadowRoot.querySelector('#search-wrapper');
306
+ const searchWrapper = this.shadowRoot.querySelector('#search-wrapper');
302
307
 
303
308
  searchWrapper.classList.remove('d-none');
304
- 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>
309
+ searchWrapper.insertAdjacentHTML(
310
+ 'afterbegin',
311
+ `<button class="btn btn-secondary btn-compact fa-search me-0 mb-0" id="search-button" aria-controls="search-dialog">Open Search field</button>
305
312
  <dialog id="search-dialog">
306
313
  <div class="container">
307
314
  <div class="row">
@@ -313,38 +320,35 @@ class iamNav extends HTMLElement {
313
320
  </div>
314
321
  </div>
315
322
  </div>
316
- </dialog>`);
317
-
318
- let searchButton = this.shadowRoot.querySelector('#search-button');
319
- let searchClose = this.shadowRoot.querySelector('#search-close');
320
- let searchDialog = this.shadowRoot.querySelector('#search-dialog');
321
-
322
- if(this.hasAttribute('data-search-open')){
323
-
324
- searchDialog.setAttribute('open','open');
323
+ </dialog>`
324
+ );
325
+
326
+ const searchButton = this.shadowRoot.querySelector('#search-button');
327
+ const searchClose = this.shadowRoot.querySelector('#search-close');
328
+ const searchDialog = this.shadowRoot.querySelector('#search-dialog');
329
+
330
+ if (this.hasAttribute('data-search-open')) {
331
+ searchDialog.setAttribute('open', 'open');
325
332
  this.classList.add('search-open');
326
333
 
327
334
  searchButton.setAttribute('aria-expanded', true);
328
335
  }
329
336
 
330
- searchButton.addEventListener("click", (event) => {
331
-
332
- searchDialog.setAttribute('open','open');
337
+ searchButton.addEventListener('click', (event) => {
338
+ searchDialog.setAttribute('open', 'open');
333
339
  this.classList.add('search-open');
334
340
 
335
341
  searchButton.setAttribute('aria-expanded', true);
336
342
  });
337
343
 
338
- searchClose.addEventListener("click", (event) => {
339
-
344
+ searchClose.addEventListener('click', (event) => {
340
345
  searchDialog.removeAttribute('open');
341
346
  this.classList.remove('search-open');
342
347
 
343
348
  searchButton.removeAttribute('aria-expanded');
344
349
  });
345
-
346
350
  }
347
351
  }
348
352
  }
349
353
 
350
- export default iamNav;
354
+ export default iamNav;
@@ -33,15 +33,15 @@ import('../node_modules/@iamproperty/components/assets/js/components/notificatio
33
33
 
34
34
  **Properties**
35
35
 
36
- | Option | Type | Default Value | Description |
37
- | ------ | ---- | ------------- | ----------- |
38
- | data-status | String | info | Choose from danger,succes and warning. This will change the colour of the notification box and which icon is shown. |
39
- | data-type | String | inline | Choose from alert and toast. This will change the behavour of the component. |
40
- | data-dismiss | Boolean | - | Adds a close button which will remove the alert box after clicking it. |
41
- | data-timeout | Boolean | - | Adds a timer for how long the notification will appear. |
36
+ | Option | Type | Default Value | Description |
37
+ | ------------ | ------- | ------------- | ------------------------------------------------------------------------------------------------------------------- |
38
+ | data-status | String | info | Choose from danger,succes and warning. This will change the colour of the notification box and which icon is shown. |
39
+ | data-type | String | inline | Choose from alert and toast. This will change the behavour of the component. |
40
+ | data-dismiss | Boolean | - | Adds a close button which will remove the alert box after clicking it. |
41
+ | data-timeout | Boolean | - | Adds a timer for how long the notification will appear. |
42
42
 
43
43
  **Slots**
44
44
 
45
- | Option | Default Value | Description |
46
- | ------ | ------------- | ----------- |
47
- | default | - | This is the content of the notification box |
45
+ | Option | Default Value | Description |
46
+ | ------- | ------------- | ------------------------------------------- |
47
+ | default | - | This is the content of the notification box |
@@ -1,34 +1,34 @@
1
1
  // @ts-nocheck
2
- import setupNotification, { closeNotification } from "../../modules/notification";
2
+ import setupNotification, { closeNotification } from '../../modules/notification';
3
3
 
4
4
  // Data layer Web component created
5
5
  window.dataLayer = window.dataLayer || [];
6
6
  window.dataLayer.push({
7
- "event": "customElementRegistered",
8
- "element": "Notification"
7
+ event: 'customElementRegistered',
8
+ element: 'Notification',
9
9
  });
10
10
 
11
-
12
11
  class iamNotification extends HTMLElement {
13
-
14
- constructor(){
12
+ constructor() {
15
13
  super();
16
- this.attachShadow({ mode: 'open'});
17
- const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
18
- const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
14
+ this.attachShadow({ mode: 'open' });
15
+ const assetLocation = document.body.hasAttribute('data-assets-location')
16
+ ? document.body.getAttribute('data-assets-location')
17
+ : '/assets';
18
+ const coreCSS = document.body.hasAttribute('data-core-css')
19
+ ? document.body.getAttribute('data-core-css')
20
+ : `${assetLocation}/css/core.min.css`;
19
21
  const loadCSS = `@import "${assetLocation}/css/components/notification.css";`;
20
22
  const loadExtraCSS = `@import "${assetLocation}/css/components/notification.global.css";`;
21
23
 
22
24
  const buttons = this.querySelectorAll('a,button');
23
25
 
24
26
  Array.from(buttons).forEach((button, index) => {
25
-
26
- button.setAttribute('slot','btns');
27
+ button.setAttribute('slot', 'btns');
27
28
  button.classList.add('link');
28
29
  });
29
30
 
30
- if(buttons.length || this.hasAttribute('data-dismiss'))
31
- this.classList.add('notification--dismissable');
31
+ if (buttons.length || this.hasAttribute('data-dismiss')) this.classList.add('notification--dismissable');
32
32
 
33
33
  const template = document.createElement('template');
34
34
  template.innerHTML = `
@@ -40,33 +40,30 @@ class iamNotification extends HTMLElement {
40
40
 
41
41
  <div class="notification">
42
42
  <div class="notification__icon"><slot name="icon"></slot></div>
43
- <div class="notification__inner"><div class="notification__text"><slot></slot></div>${ buttons.length ? `<div class="notification__btns"><slot name="btns"></slot></div>` : '' }</div>
44
- ${ this.hasAttribute('data-dismiss') ? `<div class="notification__dismiss"><button data-dismiss-button part="dismiss-btn">Dismiss</button></div>` : ''}
43
+ <div class="notification__inner"><div class="notification__text"><slot></slot></div>${buttons.length ? `<div class="notification__btns"><slot name="btns"></slot></div>` : ''}</div>
44
+ ${this.hasAttribute('data-dismiss') ? `<div class="notification__dismiss"><button data-dismiss-button part="dismiss-btn">Dismiss</button></div>` : ''}
45
45
  </div>
46
46
  `;
47
47
  this.shadowRoot.appendChild(template.content.cloneNode(true));
48
48
 
49
49
  // insert extra CSS
50
- if(!document.getElementById('notificationHolder'))
51
- document.head.insertAdjacentHTML('beforeend',`<style id="notificationHolder">${loadExtraCSS}</style>`);
50
+ if (!document.getElementById('notificationHolder'))
51
+ document.head.insertAdjacentHTML('beforeend', `<style id="notificationHolder">${loadExtraCSS}</style>`);
52
52
  }
53
53
 
54
- connectedCallback() {
55
-
54
+ connectedCallback() {
56
55
  const dismissBtn = this.shadowRoot.querySelector('[data-dismiss-button]');
57
- const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : 'white'
58
-
59
- if(this.hasAttribute('data-type'))
60
- this.classList.add(`bg-${statusBG}`);
56
+ const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : 'white';
57
+
58
+ if (this.hasAttribute('data-type')) this.classList.add(`bg-${statusBG}`);
61
59
  else {
62
60
  this.classList.add(`colour-${statusBG}`);
63
61
  }
64
-
62
+
65
63
  const wrapper = this;
66
64
 
67
- if(!this.querySelector('i')){
68
-
69
- switch(statusBG) {
65
+ if (!this.querySelector('i')) {
66
+ switch (statusBG) {
70
67
  case 'danger':
71
68
  this.innerHTML += '<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>';
72
69
  break;
@@ -83,12 +80,16 @@ class iamNotification extends HTMLElement {
83
80
 
84
81
  setupNotification(wrapper);
85
82
 
86
- if(dismissBtn){
87
- dismissBtn.addEventListener('click', function(e){
88
- closeNotification(wrapper);
89
- }, false);
83
+ if (dismissBtn) {
84
+ dismissBtn.addEventListener(
85
+ 'click',
86
+ function (e) {
87
+ closeNotification(wrapper);
88
+ },
89
+ false
90
+ );
90
91
  }
91
92
  }
92
93
  }
93
94
 
94
- export default iamNotification;
95
+ export default iamNotification;