@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
@@ -2,15 +2,19 @@
2
2
  // Data layer Web component created
3
3
  window.dataLayer = window.dataLayer || [];
4
4
  window.dataLayer.push({
5
- "event": "customElementRegistered",
6
- "element": "inline edit"
5
+ event: 'customElementRegistered',
6
+ element: 'inline edit',
7
7
  });
8
8
  class iamInlineEdit extends HTMLElement {
9
9
  constructor() {
10
10
  super();
11
11
  const shadowRoot = this.attachShadow({ mode: 'open' });
12
- const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
13
- const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
12
+ const assetLocation = document.body.hasAttribute('data-assets-location')
13
+ ? document.body.getAttribute('data-assets-location')
14
+ : '/assets';
15
+ const coreCSS = document.body.hasAttribute('data-core-css')
16
+ ? document.body.getAttribute('data-core-css')
17
+ : `${assetLocation}/css/core.min.css`;
14
18
  const loadCSS = `@import "${assetLocation}/css/components/inline-edit.css";`;
15
19
  const template = document.createElement('template');
16
20
  template.innerHTML = `
@@ -33,15 +37,15 @@ class iamInlineEdit extends HTMLElement {
33
37
  shadowRoot.appendChild(template.content.cloneNode(true));
34
38
  }
35
39
  connectedCallback() {
36
- let inlineEdit = this;
37
- let saveButton = this.shadowRoot.querySelector('#save');
38
- let cancelButton = this.shadowRoot.querySelector('#cancel');
39
- let label = this.querySelector('label');
40
- let input = this.querySelector('input, textarea, select');
41
- let preview = this.querySelector('.preview');
42
- let statusSaving = this.shadowRoot.querySelector('#saving');
43
- let statusSaved = this.shadowRoot.querySelector('#saved');
44
- let statusNotSaved = this.shadowRoot.querySelector('#notsaved');
40
+ const inlineEdit = this;
41
+ const saveButton = this.shadowRoot.querySelector('#save');
42
+ const cancelButton = this.shadowRoot.querySelector('#cancel');
43
+ const label = this.querySelector('label');
44
+ const input = this.querySelector('input, textarea, select');
45
+ const preview = this.querySelector('.preview');
46
+ const statusSaving = this.shadowRoot.querySelector('#saving');
47
+ const statusSaved = this.shadowRoot.querySelector('#saved');
48
+ const statusNotSaved = this.shadowRoot.querySelector('#notsaved');
45
49
  // Save the original value for later
46
50
  let originalValue = input.value;
47
51
  // cancel
@@ -51,7 +55,9 @@ class iamInlineEdit extends HTMLElement {
51
55
  inlineEdit.blur();
52
56
  inlineEdit.classList.remove('was-validated');
53
57
  statusNotSaved.classList.add('d-none');
54
- const cancelEvent = new CustomEvent("inline-edit-cancel", { detail: { name: input.getAttribute('name') } });
58
+ const cancelEvent = new CustomEvent('inline-edit-cancel', {
59
+ detail: { name: input.getAttribute('name') },
60
+ });
55
61
  inlineEdit.dispatchEvent(cancelEvent);
56
62
  });
57
63
  // Save
@@ -62,7 +68,9 @@ class iamInlineEdit extends HTMLElement {
62
68
  }
63
69
  originalValue = input.value;
64
70
  // dispatch save event
65
- const saveEvent = new CustomEvent("inline-edit-save", { detail: { name: input.getAttribute('name'), value: input.value } });
71
+ const saveEvent = new CustomEvent('inline-edit-save', {
72
+ detail: { name: input.getAttribute('name'), value: input.value },
73
+ });
66
74
  inlineEdit.dispatchEvent(saveEvent);
67
75
  //inlineEdit.setAttribute('data-saving','true');
68
76
  input.disabled = true;
@@ -77,8 +85,9 @@ class iamInlineEdit extends HTMLElement {
77
85
  // Save
78
86
  if (input.tagName === 'INPUT') {
79
87
  input.addEventListener('keydown', (event) => {
80
- switch (event.key) { // change to event.key to key to use the above variable
81
- case "Enter":
88
+ switch (event.key // change to event.key to key to use the above variable
89
+ ) {
90
+ case 'Enter':
82
91
  event.stopPropagation();
83
92
  event.preventDefault();
84
93
  saveButton.click();
@@ -91,7 +100,9 @@ class iamInlineEdit extends HTMLElement {
91
100
  setTimeout(() => {
92
101
  statusSaving.classList.add('d-none');
93
102
  statusSaved.classList.remove('d-none');
94
- const confirmEvent = new CustomEvent("inline-edit-confirmed", { detail: { name: input.getAttribute('name') } });
103
+ const confirmEvent = new CustomEvent('inline-edit-confirmed', {
104
+ detail: { name: input.getAttribute('name') },
105
+ });
95
106
  inlineEdit.dispatchEvent(confirmEvent);
96
107
  }, 100);
97
108
  // Reset to normal
@@ -107,7 +118,9 @@ class iamInlineEdit extends HTMLElement {
107
118
  if (input.tagName === 'SELECT') {
108
119
  input.addEventListener('change', (event) => {
109
120
  originalValue = input.value;
110
- const saveEvent = new CustomEvent("inline-edit-save", { detail: { name: input.getAttribute('name'), value: input.value } });
121
+ const saveEvent = new CustomEvent('inline-edit-save', {
122
+ detail: { name: input.getAttribute('name'), value: input.value },
123
+ });
111
124
  inlineEdit.dispatchEvent(saveEvent);
112
125
  inlineEdit.setAttribute('data-saving', 'true');
113
126
  input.disabled = true;
@@ -124,7 +137,9 @@ class iamInlineEdit extends HTMLElement {
124
137
  if (input.value != originalValue) {
125
138
  if (inlineEdit.hasAttribute('data-autosave')) {
126
139
  originalValue = input.value;
127
- const saveEvent = new CustomEvent("inline-edit-autosave", { detail: { name: input.getAttribute('name'), value: input.value } });
140
+ const saveEvent = new CustomEvent('inline-edit-autosave', {
141
+ detail: { name: input.getAttribute('name'), value: input.value },
142
+ });
128
143
  inlineEdit.dispatchEvent(saveEvent);
129
144
  statusSaving.classList.remove('d-none');
130
145
  if (preview) {
@@ -139,13 +154,18 @@ class iamInlineEdit extends HTMLElement {
139
154
  // checkboxes
140
155
  inlineEdit.addEventListener('change', (event) => {
141
156
  if (event && event.target instanceof HTMLElement && event.target.closest('input[type="checkbox"]')) {
142
- let saveValue = "";
157
+ let saveValue = '';
143
158
  Array.from(inlineEdit.querySelectorAll(`label input[type="checkbox"]:checked`)).forEach((checkbox, index) => {
144
159
  if (index != 0)
145
- saveValue += ", ";
160
+ saveValue += ', ';
146
161
  saveValue += checkbox.value;
147
162
  });
148
- const saveEvent = new CustomEvent("inline-edit-save", { detail: { name: event.target.closest('input[type="checkbox"]').getAttribute('name'), value: saveValue } });
163
+ const saveEvent = new CustomEvent('inline-edit-save', {
164
+ detail: {
165
+ name: event.target.closest('input[type="checkbox"]').getAttribute('name'),
166
+ value: saveValue,
167
+ },
168
+ });
149
169
  inlineEdit.dispatchEvent(saveEvent);
150
170
  }
151
171
  });
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * iamKey v7.0.0
2
+ * iamKey v7.1.0--beta2
3
3
  * Copyright 2022-2025 iamproperty
4
- */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"inline edit"});class b extends HTMLElement{constructor(){super();const t=this.attachShadow({mode:"open"}),i=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",d=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${i}/css/core.min.css`,e=document.createElement("template");e.innerHTML=`
4
+ */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"inline edit"});class b extends HTMLElement{constructor(){super();const t=this.attachShadow({mode:"open"}),i=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",c=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${i}/css/core.min.css`,e=document.createElement("template");e.innerHTML=`
5
5
  <style class="styles">
6
- @import "${d}";
6
+ @import "${c}";
7
7
  :host{max-width:var(--input-max-width, 50rem);display:block;font-weight:normal;margin-bottom:2rem;position:relative}.btns,.status{justify-content:flex-end;gap:.5rem;position:absolute;top:calc(100% + .5rem);right:0}.btns{display:var(--display-btns, flex);justify-content:flex-end}.status{display:var(--display-status, flex)}.btn-action{margin:0}/*# sourceMappingURL=assets/css/components/inline-edit.css.map */
8
8
 
9
9
  </style>
@@ -18,5 +18,5 @@
18
18
  <span class="btn btn-action border-0 bg-transparent prevent-invert d-none" id="saved"><i class="fa-regular fa-check me-1"></i> Saved</span>
19
19
  <span class="btn btn-action border-0 bg-transparent prevent-invert d-none" id="notsaved"><i class="fa-regular fa-circle-info me-1"></i> Not Saved</span>
20
20
  </div>
21
- `,t.appendChild(e.content.cloneNode(!0))}connectedCallback(){let t=this,i=this.shadowRoot.querySelector("#save"),d=this.shadowRoot.querySelector("#cancel");this.querySelector("label");let e=this.querySelector("input, textarea, select"),o=this.querySelector(".preview"),l=this.shadowRoot.querySelector("#saving"),c=this.shadowRoot.querySelector("#saved"),r=this.shadowRoot.querySelector("#notsaved"),s=e.value;d.addEventListener("click",a=>{e.value=s,e.blur(),t.blur(),t.classList.remove("was-validated"),r.classList.add("d-none");const n=new CustomEvent("inline-edit-cancel",{detail:{name:e.getAttribute("name")}});t.dispatchEvent(n)}),i.addEventListener("click",a=>{if(t.querySelector(":invalid"))return t.classList.add("was-validated"),!1;s=e.value;const n=new CustomEvent("inline-edit-save",{detail:{name:e.getAttribute("name"),value:e.value}});t.dispatchEvent(n),e.disabled=!0,e.blur(),t.blur(),l.classList.remove("d-none"),o&&(console.log(e.value),o.innerHTML=e.value)}),e.tagName==="INPUT"&&e.addEventListener("keydown",a=>{switch(a.key){case"Enter":a.stopPropagation(),a.preventDefault(),i.click();break}}),t.addEventListener("inline-edit-saved",a=>{setTimeout(()=>{l.classList.add("d-none"),c.classList.remove("d-none");const n=new CustomEvent("inline-edit-confirmed",{detail:{name:e.getAttribute("name")}});t.dispatchEvent(n)},100),setTimeout(()=>{e.disabled=!1,t.removeAttribute("data-saving"),l.classList.add("d-none"),c.classList.add("d-none"),r.classList.add("d-none")},1e3)}),e.tagName==="SELECT"&&e.addEventListener("change",a=>{s=e.value;const n=new CustomEvent("inline-edit-save",{detail:{name:e.getAttribute("name"),value:e.value}});t.dispatchEvent(n),t.setAttribute("data-saving","true"),e.disabled=!0,e.blur()}),e.tagName!="SELECT"&&e.addEventListener("focus",a=>{e.select()}),e.addEventListener("blur",a=>{if(e.value!=s)if(t.hasAttribute("data-autosave")){s=e.value;const n=new CustomEvent("inline-edit-autosave",{detail:{name:e.getAttribute("name"),value:e.value}});t.dispatchEvent(n),l.classList.remove("d-none"),o&&(o.innerHTML=e.value)}else t.querySelector(".inline-feedback")||r.classList.remove("d-none")}),t.addEventListener("change",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest('input[type="checkbox"]')){let n="";Array.from(t.querySelectorAll('label input[type="checkbox"]:checked')).forEach((v,m)=>{m!=0&&(n+=", "),n+=v.value});const u=new CustomEvent("inline-edit-save",{detail:{name:a.target.closest('input[type="checkbox"]').getAttribute("name"),value:n}});t.dispatchEvent(u)}})}}export{b as default};
21
+ `,t.appendChild(e.content.cloneNode(!0))}connectedCallback(){const t=this,i=this.shadowRoot.querySelector("#save"),c=this.shadowRoot.querySelector("#cancel");this.querySelector("label");const e=this.querySelector("input, textarea, select"),o=this.querySelector(".preview"),l=this.shadowRoot.querySelector("#saving"),r=this.shadowRoot.querySelector("#saved"),d=this.shadowRoot.querySelector("#notsaved");let s=e.value;c.addEventListener("click",a=>{e.value=s,e.blur(),t.blur(),t.classList.remove("was-validated"),d.classList.add("d-none");const n=new CustomEvent("inline-edit-cancel",{detail:{name:e.getAttribute("name")}});t.dispatchEvent(n)}),i.addEventListener("click",a=>{if(t.querySelector(":invalid"))return t.classList.add("was-validated"),!1;s=e.value;const n=new CustomEvent("inline-edit-save",{detail:{name:e.getAttribute("name"),value:e.value}});t.dispatchEvent(n),e.disabled=!0,e.blur(),t.blur(),l.classList.remove("d-none"),o&&(console.log(e.value),o.innerHTML=e.value)}),e.tagName==="INPUT"&&e.addEventListener("keydown",a=>{switch(a.key){case"Enter":a.stopPropagation(),a.preventDefault(),i.click();break}}),t.addEventListener("inline-edit-saved",a=>{setTimeout(()=>{l.classList.add("d-none"),r.classList.remove("d-none");const n=new CustomEvent("inline-edit-confirmed",{detail:{name:e.getAttribute("name")}});t.dispatchEvent(n)},100),setTimeout(()=>{e.disabled=!1,t.removeAttribute("data-saving"),l.classList.add("d-none"),r.classList.add("d-none"),d.classList.add("d-none")},1e3)}),e.tagName==="SELECT"&&e.addEventListener("change",a=>{s=e.value;const n=new CustomEvent("inline-edit-save",{detail:{name:e.getAttribute("name"),value:e.value}});t.dispatchEvent(n),t.setAttribute("data-saving","true"),e.disabled=!0,e.blur()}),e.tagName!="SELECT"&&e.addEventListener("focus",a=>{e.select()}),e.addEventListener("blur",a=>{if(e.value!=s)if(t.hasAttribute("data-autosave")){s=e.value;const n=new CustomEvent("inline-edit-autosave",{detail:{name:e.getAttribute("name"),value:e.value}});t.dispatchEvent(n),l.classList.remove("d-none"),o&&(o.innerHTML=e.value)}else t.querySelector(".inline-feedback")||d.classList.remove("d-none")}),t.addEventListener("change",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest('input[type="checkbox"]')){let n="";Array.from(t.querySelectorAll('label input[type="checkbox"]:checked')).forEach((v,m)=>{m!=0&&(n+=", "),n+=v.value});const u=new CustomEvent("inline-edit-save",{detail:{name:a.target.closest('input[type="checkbox"]').getAttribute("name"),value:n}});t.dispatchEvent(u)}})}}export{b as default};
22
22
  //# sourceMappingURL=inline-edit.component.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inline-edit.component.min.js","sources":["inline-edit.component.js"],"sourcesContent":["// @ts-nocheck\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"inline edit\"\n});\nclass iamInlineEdit extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/inline-edit.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style class=\"styles\">\n @import \"${coreCSS}\";\n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/26fdbf0179.css\" crossorigin=\"anonymous\">\n \n <slot></slot>\n <div class=\"btns\" part=\"btns\">\n <button class=\"btn btn-action\" id=\"save\" part=\"save-btn\"><i class=\"fa-regular fa-save m-0\"></i> Save</button><button class=\"btn btn-action\" id=\"cancel\" part=\"cancel-btn\">Cancel</button>\n </div>\n <div class=\"status pe-none\" part=\"status\">\n <span class=\"btn btn-action border-0 bg-transparent prevent-invert d-none\" id=\"saving\"><i class=\"fa-regular fa-spinner fa-spin me-1\"></i> Saving...</span>\n <span class=\"btn btn-action border-0 bg-transparent prevent-invert d-none\" id=\"saved\"><i class=\"fa-regular fa-check me-1\"></i> Saved</span>\n <span class=\"btn btn-action border-0 bg-transparent prevent-invert d-none\" id=\"notsaved\"><i class=\"fa-regular fa-circle-info me-1\"></i> Not Saved</span>\n </div>\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n let inlineEdit = this;\n let saveButton = this.shadowRoot.querySelector('#save');\n let cancelButton = this.shadowRoot.querySelector('#cancel');\n let label = this.querySelector('label');\n let input = this.querySelector('input, textarea, select');\n let preview = this.querySelector('.preview');\n let statusSaving = this.shadowRoot.querySelector('#saving');\n let statusSaved = this.shadowRoot.querySelector('#saved');\n let statusNotSaved = this.shadowRoot.querySelector('#notsaved');\n // Save the original value for later\n let originalValue = input.value;\n // cancel\n cancelButton.addEventListener('click', (event) => {\n input.value = originalValue;\n input.blur();\n inlineEdit.blur();\n inlineEdit.classList.remove('was-validated');\n statusNotSaved.classList.add('d-none');\n const cancelEvent = new CustomEvent(\"inline-edit-cancel\", { detail: { name: input.getAttribute('name') } });\n inlineEdit.dispatchEvent(cancelEvent);\n });\n // Save\n saveButton.addEventListener('click', (event) => {\n if (inlineEdit.querySelector(':invalid')) {\n inlineEdit.classList.add('was-validated');\n return false;\n }\n originalValue = input.value;\n // dispatch save event\n const saveEvent = new CustomEvent(\"inline-edit-save\", { detail: { name: input.getAttribute('name'), value: input.value } });\n inlineEdit.dispatchEvent(saveEvent);\n //inlineEdit.setAttribute('data-saving','true');\n input.disabled = true;\n input.blur();\n inlineEdit.blur();\n statusSaving.classList.remove('d-none');\n if (preview) {\n console.log(input.value);\n preview.innerHTML = input.value;\n }\n });\n // Save\n if (input.tagName === 'INPUT') {\n input.addEventListener('keydown', (event) => {\n switch (event.key) { // change to event.key to key to use the above variable\n case \"Enter\":\n event.stopPropagation();\n event.preventDefault();\n saveButton.click();\n break;\n }\n });\n }\n // Saved\n inlineEdit.addEventListener('inline-edit-saved', (event) => {\n setTimeout(() => {\n statusSaving.classList.add('d-none');\n statusSaved.classList.remove('d-none');\n const confirmEvent = new CustomEvent(\"inline-edit-confirmed\", { detail: { name: input.getAttribute('name') } });\n inlineEdit.dispatchEvent(confirmEvent);\n }, 100);\n // Reset to normal\n setTimeout(() => {\n input.disabled = false;\n inlineEdit.removeAttribute('data-saving');\n statusSaving.classList.add('d-none');\n statusSaved.classList.add('d-none');\n statusNotSaved.classList.add('d-none');\n }, 1000);\n });\n // enter key saves\n if (input.tagName === 'SELECT') {\n input.addEventListener('change', (event) => {\n originalValue = input.value;\n const saveEvent = new CustomEvent(\"inline-edit-save\", { detail: { name: input.getAttribute('name'), value: input.value } });\n inlineEdit.dispatchEvent(saveEvent);\n inlineEdit.setAttribute('data-saving', 'true');\n input.disabled = true;\n input.blur();\n });\n }\n if (input.tagName != 'SELECT') {\n input.addEventListener('focus', (event) => {\n input.select();\n });\n }\n //blur it should autosave\n input.addEventListener('blur', (event) => {\n if (input.value != originalValue) {\n if (inlineEdit.hasAttribute('data-autosave')) {\n originalValue = input.value;\n const saveEvent = new CustomEvent(\"inline-edit-autosave\", { detail: { name: input.getAttribute('name'), value: input.value } });\n inlineEdit.dispatchEvent(saveEvent);\n statusSaving.classList.remove('d-none');\n if (preview) {\n preview.innerHTML = input.value;\n }\n }\n else if (!inlineEdit.querySelector('.inline-feedback')) {\n statusNotSaved.classList.remove('d-none');\n }\n }\n });\n // checkboxes\n inlineEdit.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('input[type=\"checkbox\"]')) {\n let saveValue = \"\";\n Array.from(inlineEdit.querySelectorAll(`label input[type=\"checkbox\"]:checked`)).forEach((checkbox, index) => {\n if (index != 0)\n saveValue += \", \";\n saveValue += checkbox.value;\n });\n const saveEvent = new CustomEvent(\"inline-edit-save\", { detail: { name: event.target.closest('input[type=\"checkbox\"]').getAttribute('name'), value: saveValue } });\n inlineEdit.dispatchEvent(saveEvent);\n }\n });\n }\n}\nexport default iamInlineEdit;\n"],"names":["iamInlineEdit","shadowRoot","assetLocation","coreCSS","template","inlineEdit","saveButton","cancelButton","input","preview","statusSaving","statusSaved","statusNotSaved","originalValue","event","cancelEvent","saveEvent","confirmEvent","saveValue","checkbox","index"],"mappings":"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"}
1
+ {"version":3,"file":"inline-edit.component.min.js","sources":["inline-edit.component.js"],"sourcesContent":["// @ts-nocheck\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'inline edit',\n});\nclass iamInlineEdit 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 coreCSS = document.body.hasAttribute('data-core-css')\n ? document.body.getAttribute('data-core-css')\n : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/inline-edit.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style class=\"styles\">\n @import \"${coreCSS}\";\n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/26fdbf0179.css\" crossorigin=\"anonymous\">\n \n <slot></slot>\n <div class=\"btns\" part=\"btns\">\n <button class=\"btn btn-action\" id=\"save\" part=\"save-btn\"><i class=\"fa-regular fa-save m-0\"></i> Save</button><button class=\"btn btn-action\" id=\"cancel\" part=\"cancel-btn\">Cancel</button>\n </div>\n <div class=\"status pe-none\" part=\"status\">\n <span class=\"btn btn-action border-0 bg-transparent prevent-invert d-none\" id=\"saving\"><i class=\"fa-regular fa-spinner fa-spin me-1\"></i> Saving...</span>\n <span class=\"btn btn-action border-0 bg-transparent prevent-invert d-none\" id=\"saved\"><i class=\"fa-regular fa-check me-1\"></i> Saved</span>\n <span class=\"btn btn-action border-0 bg-transparent prevent-invert d-none\" id=\"notsaved\"><i class=\"fa-regular fa-circle-info me-1\"></i> Not Saved</span>\n </div>\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const inlineEdit = this;\n const saveButton = this.shadowRoot.querySelector('#save');\n const cancelButton = this.shadowRoot.querySelector('#cancel');\n const label = this.querySelector('label');\n const input = this.querySelector('input, textarea, select');\n const preview = this.querySelector('.preview');\n const statusSaving = this.shadowRoot.querySelector('#saving');\n const statusSaved = this.shadowRoot.querySelector('#saved');\n const statusNotSaved = this.shadowRoot.querySelector('#notsaved');\n // Save the original value for later\n let originalValue = input.value;\n // cancel\n cancelButton.addEventListener('click', (event) => {\n input.value = originalValue;\n input.blur();\n inlineEdit.blur();\n inlineEdit.classList.remove('was-validated');\n statusNotSaved.classList.add('d-none');\n const cancelEvent = new CustomEvent('inline-edit-cancel', {\n detail: { name: input.getAttribute('name') },\n });\n inlineEdit.dispatchEvent(cancelEvent);\n });\n // Save\n saveButton.addEventListener('click', (event) => {\n if (inlineEdit.querySelector(':invalid')) {\n inlineEdit.classList.add('was-validated');\n return false;\n }\n originalValue = input.value;\n // dispatch save event\n const saveEvent = new CustomEvent('inline-edit-save', {\n detail: { name: input.getAttribute('name'), value: input.value },\n });\n inlineEdit.dispatchEvent(saveEvent);\n //inlineEdit.setAttribute('data-saving','true');\n input.disabled = true;\n input.blur();\n inlineEdit.blur();\n statusSaving.classList.remove('d-none');\n if (preview) {\n console.log(input.value);\n preview.innerHTML = input.value;\n }\n });\n // Save\n if (input.tagName === 'INPUT') {\n input.addEventListener('keydown', (event) => {\n switch (event.key // change to event.key to key to use the above variable\n ) {\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n saveButton.click();\n break;\n }\n });\n }\n // Saved\n inlineEdit.addEventListener('inline-edit-saved', (event) => {\n setTimeout(() => {\n statusSaving.classList.add('d-none');\n statusSaved.classList.remove('d-none');\n const confirmEvent = new CustomEvent('inline-edit-confirmed', {\n detail: { name: input.getAttribute('name') },\n });\n inlineEdit.dispatchEvent(confirmEvent);\n }, 100);\n // Reset to normal\n setTimeout(() => {\n input.disabled = false;\n inlineEdit.removeAttribute('data-saving');\n statusSaving.classList.add('d-none');\n statusSaved.classList.add('d-none');\n statusNotSaved.classList.add('d-none');\n }, 1000);\n });\n // enter key saves\n if (input.tagName === 'SELECT') {\n input.addEventListener('change', (event) => {\n originalValue = input.value;\n const saveEvent = new CustomEvent('inline-edit-save', {\n detail: { name: input.getAttribute('name'), value: input.value },\n });\n inlineEdit.dispatchEvent(saveEvent);\n inlineEdit.setAttribute('data-saving', 'true');\n input.disabled = true;\n input.blur();\n });\n }\n if (input.tagName != 'SELECT') {\n input.addEventListener('focus', (event) => {\n input.select();\n });\n }\n //blur it should autosave\n input.addEventListener('blur', (event) => {\n if (input.value != originalValue) {\n if (inlineEdit.hasAttribute('data-autosave')) {\n originalValue = input.value;\n const saveEvent = new CustomEvent('inline-edit-autosave', {\n detail: { name: input.getAttribute('name'), value: input.value },\n });\n inlineEdit.dispatchEvent(saveEvent);\n statusSaving.classList.remove('d-none');\n if (preview) {\n preview.innerHTML = input.value;\n }\n }\n else if (!inlineEdit.querySelector('.inline-feedback')) {\n statusNotSaved.classList.remove('d-none');\n }\n }\n });\n // checkboxes\n inlineEdit.addEventListener('change', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('input[type=\"checkbox\"]')) {\n let saveValue = '';\n Array.from(inlineEdit.querySelectorAll(`label input[type=\"checkbox\"]:checked`)).forEach((checkbox, index) => {\n if (index != 0)\n saveValue += ', ';\n saveValue += checkbox.value;\n });\n const saveEvent = new CustomEvent('inline-edit-save', {\n detail: {\n name: event.target.closest('input[type=\"checkbox\"]').getAttribute('name'),\n value: saveValue,\n },\n });\n inlineEdit.dispatchEvent(saveEvent);\n }\n });\n }\n}\nexport default iamInlineEdit;\n"],"names":["iamInlineEdit","shadowRoot","assetLocation","coreCSS","template","inlineEdit","saveButton","cancelButton","input","preview","statusSaving","statusSaved","statusNotSaved","originalValue","event","cancelEvent","saveEvent","confirmEvent","saveValue","checkbox","index"],"mappings":";;;IAEA,OAAO,UAAY,OAAO,WAAa,GACvC,OAAO,UAAU,KAAK,CAClB,MAAO,0BACP,QAAS,aACb,CAAC,EACD,MAAMA,UAAsB,WAAY,CACpC,aAAc,CACV,QACA,MAAMC,EAAa,KAAK,aAAa,CAAE,KAAM,MAAM,CAAE,EAC/CC,EAAgB,SAAS,KAAK,aAAa,sBAAsB,EACjE,SAAS,KAAK,aAAa,sBAAsB,EACjD,UACAC,EAAU,SAAS,KAAK,aAAa,eAAe,EACpD,SAAS,KAAK,aAAa,eAAe,EAC1C,GAAGD,qBAEHE,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA,eAEdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAePF,EAAW,YAAYG,EAAS,QAAQ,UAAU,EAAI,CAAC,CAC3D,CACA,mBAAoB,CAChB,MAAMC,EAAa,KACbC,EAAa,KAAK,WAAW,cAAc,OAAO,EAClDC,EAAe,KAAK,WAAW,cAAc,SAAS,EAC9C,KAAK,cAAc,OAAO,EACxC,MAAMC,EAAQ,KAAK,cAAc,yBAAyB,EACpDC,EAAU,KAAK,cAAc,UAAU,EACvCC,EAAe,KAAK,WAAW,cAAc,SAAS,EACtDC,EAAc,KAAK,WAAW,cAAc,QAAQ,EACpDC,EAAiB,KAAK,WAAW,cAAc,WAAW,EAEhE,IAAIC,EAAgBL,EAAM,MAE1BD,EAAa,iBAAiB,QAAUO,GAAU,CAC9CN,EAAM,MAAQK,EACdL,EAAM,KAAI,EACVH,EAAW,KAAI,EACfA,EAAW,UAAU,OAAO,eAAe,EAC3CO,EAAe,UAAU,IAAI,QAAQ,EACrC,MAAMG,EAAc,IAAI,YAAY,qBAAsB,CACtD,OAAQ,CAAE,KAAMP,EAAM,aAAa,MAAM,CAAG,CAC5D,CAAa,EACDH,EAAW,cAAcU,CAAW,CAChD,CAAS,EAEDT,EAAW,iBAAiB,QAAUQ,GAAU,CAC5C,GAAIT,EAAW,cAAc,UAAU,EACnC,OAAAA,EAAW,UAAU,IAAI,eAAe,EACjC,GAEXQ,EAAgBL,EAAM,MAEtB,MAAMQ,EAAY,IAAI,YAAY,mBAAoB,CAClD,OAAQ,CAAE,KAAMR,EAAM,aAAa,MAAM,EAAG,MAAOA,EAAM,KAAO,CAChF,CAAa,EACDH,EAAW,cAAcW,CAAS,EAElCR,EAAM,SAAW,GACjBA,EAAM,KAAI,EACVH,EAAW,KAAI,EACfK,EAAa,UAAU,OAAO,QAAQ,EAClCD,IACA,QAAQ,IAAID,EAAM,KAAK,EACvBC,EAAQ,UAAYD,EAAM,MAE1C,CAAS,EAEGA,EAAM,UAAY,SAClBA,EAAM,iBAAiB,UAAYM,GAAU,CACzC,OAAQA,EAAM,IAC9B,CACoB,IAAK,QACDA,EAAM,gBAAe,EACrBA,EAAM,eAAc,EACpBR,EAAW,MAAK,EAChB,KACR,CAChB,CAAa,EAGLD,EAAW,iBAAiB,oBAAsBS,GAAU,CACxD,WAAW,IAAM,CACbJ,EAAa,UAAU,IAAI,QAAQ,EACnCC,EAAY,UAAU,OAAO,QAAQ,EACrC,MAAMM,EAAe,IAAI,YAAY,wBAAyB,CAC1D,OAAQ,CAAE,KAAMT,EAAM,aAAa,MAAM,CAAG,CAChE,CAAiB,EACDH,EAAW,cAAcY,CAAY,CACxC,EAAE,GAAG,EAEN,WAAW,IAAM,CACbT,EAAM,SAAW,GACjBH,EAAW,gBAAgB,aAAa,EACxCK,EAAa,UAAU,IAAI,QAAQ,EACnCC,EAAY,UAAU,IAAI,QAAQ,EAClCC,EAAe,UAAU,IAAI,QAAQ,CACxC,EAAE,GAAI,CACnB,CAAS,EAEGJ,EAAM,UAAY,UAClBA,EAAM,iBAAiB,SAAWM,GAAU,CACxCD,EAAgBL,EAAM,MACtB,MAAMQ,EAAY,IAAI,YAAY,mBAAoB,CAClD,OAAQ,CAAE,KAAMR,EAAM,aAAa,MAAM,EAAG,MAAOA,EAAM,KAAO,CACpF,CAAiB,EACDH,EAAW,cAAcW,CAAS,EAClCX,EAAW,aAAa,cAAe,MAAM,EAC7CG,EAAM,SAAW,GACjBA,EAAM,KAAI,CAC1B,CAAa,EAEDA,EAAM,SAAW,UACjBA,EAAM,iBAAiB,QAAUM,GAAU,CACvCN,EAAM,OAAM,CAC5B,CAAa,EAGLA,EAAM,iBAAiB,OAASM,GAAU,CACtC,GAAIN,EAAM,OAASK,EACf,GAAIR,EAAW,aAAa,eAAe,EAAG,CAC1CQ,EAAgBL,EAAM,MACtB,MAAMQ,EAAY,IAAI,YAAY,uBAAwB,CACtD,OAAQ,CAAE,KAAMR,EAAM,aAAa,MAAM,EAAG,MAAOA,EAAM,KAAO,CACxF,CAAqB,EACDH,EAAW,cAAcW,CAAS,EAClCN,EAAa,UAAU,OAAO,QAAQ,EAClCD,IACAA,EAAQ,UAAYD,EAAM,YAGxBH,EAAW,cAAc,kBAAkB,GACjDO,EAAe,UAAU,OAAO,QAAQ,CAG5D,CAAS,EAEDP,EAAW,iBAAiB,SAAWS,GAAU,CAC7C,GAAIA,GAASA,EAAM,kBAAkB,aAAeA,EAAM,OAAO,QAAQ,wBAAwB,EAAG,CAChG,IAAII,EAAY,GAChB,MAAM,KAAKb,EAAW,iBAAiB,sCAAsC,CAAC,EAAE,QAAQ,CAACc,EAAUC,IAAU,CACrGA,GAAS,IACTF,GAAa,MACjBA,GAAaC,EAAS,KAC1C,CAAiB,EACD,MAAMH,EAAY,IAAI,YAAY,mBAAoB,CAClD,OAAQ,CACJ,KAAMF,EAAM,OAAO,QAAQ,wBAAwB,EAAE,aAAa,MAAM,EACxE,MAAOI,CACV,CACrB,CAAiB,EACDb,EAAW,cAAcW,CAAS,EAElD,CAAS,CACL,CACJ"}
@@ -2,15 +2,19 @@
2
2
  // Data layer Web component created
3
3
  window.dataLayer = window.dataLayer || [];
4
4
  window.dataLayer.push({
5
- "event": "customElementRegistered",
6
- "element": "Marketing"
5
+ event: 'customElementRegistered',
6
+ element: 'Marketing',
7
7
  });
8
8
  class iamMarketing extends HTMLElement {
9
9
  constructor() {
10
10
  super();
11
11
  this.attachShadow({ mode: 'open' });
12
- const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
13
- const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
12
+ const assetLocation = document.body.hasAttribute('data-assets-location')
13
+ ? document.body.getAttribute('data-assets-location')
14
+ : '/assets';
15
+ const coreCSS = document.body.hasAttribute('data-core-css')
16
+ ? document.body.getAttribute('data-core-css')
17
+ : `${assetLocation}/css/core.min.css`;
14
18
  const loadCSS = `@import "${assetLocation}/css/components/marketing.css";`;
15
19
  const template = document.createElement('template');
16
20
  template.innerHTML = `
@@ -30,7 +34,9 @@ class iamMarketing extends HTMLElement {
30
34
  connectedCallback() {
31
35
  this.classList.add('invert-colours');
32
36
  if (this.hasAttribute('data-img')) {
33
- this.shadowRoot.querySelector('.marketing').insertAdjacentHTML('afterbegin', `<figure><img src="${this.getAttribute('data-img')}" alt="" /></figure>`);
37
+ this.shadowRoot
38
+ .querySelector('.marketing')
39
+ .insertAdjacentHTML('afterbegin', `<figure><img src="${this.getAttribute('data-img')}" alt="" /></figure>`);
34
40
  }
35
41
  }
36
42
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.0.0
2
+ * iamKey v7.1.0--beta2
3
3
  * Copyright 2022-2025 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Marketing"});class o extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const e=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",i=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${e}/css/core.min.css`,t=document.createElement("template");t.innerHTML=`
5
5
  <style>
@@ -1 +1 @@
1
- {"version":3,"file":"marketing.component.min.js","sources":["marketing.component.js"],"sourcesContent":["// @ts-nocheck\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"Marketing\"\n});\nclass iamMarketing extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/marketing.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n \n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/26fdbf0179.css\" crossorigin=\"anonymous\" />\n <div class=\"marketing\">\n \n <slot></slot>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n this.classList.add('invert-colours');\n if (this.hasAttribute('data-img')) {\n this.shadowRoot.querySelector('.marketing').insertAdjacentHTML('afterbegin', `<figure><img src=\"${this.getAttribute('data-img')}\" alt=\"\" /></figure>`);\n }\n }\n}\nexport default iamMarketing;\n"],"names":["iamMarketing","assetLocation","coreCSS","template"],"mappings":";;;IAEA,OAAO,UAAY,OAAO,WAAa,GACvC,OAAO,UAAU,KAAK,CAClB,MAAS,0BACT,QAAW,WACf,CAAC,EACD,MAAMA,UAAqB,WAAY,CACnC,aAAc,CACV,QACA,KAAK,aAAa,CAAE,KAAM,MAAQ,CAAA,EAClC,MAAMC,EAAgB,SAAS,KAAK,aAAa,sBAAsB,EAAI,SAAS,KAAK,aAAa,sBAAsB,EAAI,UAC1HC,EAAU,SAAS,KAAK,aAAa,eAAe,EAAI,SAAS,KAAK,aAAa,eAAe,EAAI,GAAGD,qBAEzGE,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA,eAEdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUP,KAAK,WAAW,YAAYC,EAAS,QAAQ,UAAU,EAAI,CAAC,CAChE,CACA,mBAAoB,CAChB,KAAK,UAAU,IAAI,gBAAgB,EAC/B,KAAK,aAAa,UAAU,GAC5B,KAAK,WAAW,cAAc,YAAY,EAAE,mBAAmB,aAAc,qBAAqB,KAAK,aAAa,UAAU,uBAAuB,CAE7J,CACJ"}
1
+ {"version":3,"file":"marketing.component.min.js","sources":["marketing.component.js"],"sourcesContent":["// @ts-nocheck\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'Marketing',\n});\nclass iamMarketing 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 coreCSS = document.body.hasAttribute('data-core-css')\n ? document.body.getAttribute('data-core-css')\n : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/marketing.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n \n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/26fdbf0179.css\" crossorigin=\"anonymous\" />\n <div class=\"marketing\">\n \n <slot></slot>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n this.classList.add('invert-colours');\n if (this.hasAttribute('data-img')) {\n this.shadowRoot\n .querySelector('.marketing')\n .insertAdjacentHTML('afterbegin', `<figure><img src=\"${this.getAttribute('data-img')}\" alt=\"\" /></figure>`);\n }\n }\n}\nexport default iamMarketing;\n"],"names":["iamMarketing","assetLocation","coreCSS","template"],"mappings":";;;IAEA,OAAO,UAAY,OAAO,WAAa,GACvC,OAAO,UAAU,KAAK,CAClB,MAAO,0BACP,QAAS,WACb,CAAC,EACD,MAAMA,UAAqB,WAAY,CACnC,aAAc,CACV,QACA,KAAK,aAAa,CAAE,KAAM,MAAQ,CAAA,EAClC,MAAMC,EAAgB,SAAS,KAAK,aAAa,sBAAsB,EACjE,SAAS,KAAK,aAAa,sBAAsB,EACjD,UACAC,EAAU,SAAS,KAAK,aAAa,eAAe,EACpD,SAAS,KAAK,aAAa,eAAe,EAC1C,GAAGD,qBAEHE,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA,eAEdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUP,KAAK,WAAW,YAAYC,EAAS,QAAQ,UAAU,EAAI,CAAC,CAChE,CACA,mBAAoB,CAChB,KAAK,UAAU,IAAI,gBAAgB,EAC/B,KAAK,aAAa,UAAU,GAC5B,KAAK,WACA,cAAc,YAAY,EAC1B,mBAAmB,aAAc,qBAAqB,KAAK,aAAa,UAAU,uBAAuB,CAEtH,CACJ"}
@@ -1,11 +1,13 @@
1
1
  // @ts-nocheck
2
- import { trackComponent, trackComponentRegistered } from "../_global.js";
3
- trackComponentRegistered("iam-multi-step");
2
+ import { trackComponent, trackComponentRegistered } from '../_global.js';
3
+ trackComponentRegistered('iam-multi-step');
4
4
  class iamMultiStep extends HTMLElement {
5
5
  constructor() {
6
6
  super();
7
7
  this.attachShadow({ mode: 'open' });
8
- const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
8
+ const assetLocation = document.body.hasAttribute('data-assets-location')
9
+ ? document.body.getAttribute('data-assets-location')
10
+ : '/assets';
9
11
  const loadCSS = `@import "${assetLocation}/css/components/multi-step.component.css";`;
10
12
  const template = document.createElement('template');
11
13
  template.innerHTML = `
@@ -22,12 +24,12 @@ class iamMultiStep extends HTMLElement {
22
24
  const MultiStepComponent = this;
23
25
  const steps = this.shadowRoot.querySelector('.steps');
24
26
  const form = this.querySelector('form');
25
- let fieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset[data-title]'));
27
+ const fieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset[data-title]'));
26
28
  fieldsets.forEach((fieldset, index) => {
27
- steps.insertAdjacentHTML('beforeend', `<button data-title="${fieldset.getAttribute('data-title')}" type="button" class="${index == 0 ? "active" : ""}" tabindex="-1">${fieldset.getAttribute('data-title')}</button>`);
29
+ steps.insertAdjacentHTML('beforeend', `<button data-title="${fieldset.getAttribute('data-title')}" type="button" class="${index == 0 ? 'active' : ''}" tabindex="-1">${fieldset.getAttribute('data-title')}</button>`);
28
30
  if (index === 0)
29
31
  fieldset.classList.add('active');
30
- const btnWrapper = document.createElement("div");
32
+ const btnWrapper = document.createElement('div');
31
33
  btnWrapper.classList.add('btn--wrapper');
32
34
  fieldset.appendChild(btnWrapper);
33
35
  if (index != 0)
@@ -37,7 +39,7 @@ class iamMultiStep extends HTMLElement {
37
39
  // Last fieldset
38
40
  if (index == fieldsets.length - 1) {
39
41
  if (form && form.querySelector(':scope > button[type="submit"]')) {
40
- let existingButton = form.querySelector(':scope > button[type="submit"]');
42
+ const existingButton = form.querySelector(':scope > button[type="submit"]');
41
43
  existingButton.classList.add('mb-0');
42
44
  btnWrapper.insertAdjacentElement('beforeend', existingButton);
43
45
  }
@@ -46,10 +48,10 @@ class iamMultiStep extends HTMLElement {
46
48
  }
47
49
  });
48
50
  // Open the fieldset with an error inside
49
- let validatedFieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset.was-validated'));
51
+ const validatedFieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset.was-validated'));
50
52
  for (let i = 0; i < validatedFieldsets.length; i++) {
51
- let fieldset = validatedFieldsets[i];
52
- let fieldsetID = fieldset.getAttribute('data-title');
53
+ const fieldset = validatedFieldsets[i];
54
+ const fieldsetID = fieldset.getAttribute('data-title');
53
55
  if (fieldset.querySelector('.is-invalid')) {
54
56
  Array.from(MultiStepComponent.querySelectorAll(`[data-title="${fieldsetID}"]`)).forEach((element, index) => {
55
57
  element.classList.add('active');
@@ -69,7 +71,9 @@ class iamMultiStep extends HTMLElement {
69
71
  };
70
72
  })(), true);
71
73
  function validateFieldset(button) {
72
- const currentFieldset = MultiStepComponent.querySelector(`fieldset.active`) ? MultiStepComponent.querySelector(`fieldset.active`) : MultiStepComponent.querySelector(`fieldset[data-title]`);
74
+ const currentFieldset = MultiStepComponent.querySelector(`fieldset.active`)
75
+ ? MultiStepComponent.querySelector(`fieldset.active`)
76
+ : MultiStepComponent.querySelector(`fieldset[data-title]`);
73
77
  const currentFieldsetID = currentFieldset.getAttribute('data-title');
74
78
  let isFieldsetValid = true;
75
79
  currentFieldset.classList.add('was-validated');
@@ -107,16 +111,16 @@ class iamMultiStep extends HTMLElement {
107
111
  step.classList.add('active');
108
112
  fieldset.classList.add('active');
109
113
  }
110
- let fieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset`)).length;
111
- let validFieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset.valid`)).length;
114
+ const fieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset`)).length;
115
+ const validFieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset.valid`)).length;
112
116
  // update the progress bar
113
- MultiStepComponent.style.setProperty('--progress', `${(validFieldsetCount / (fieldsetCount - 1) * 100)}%`);
117
+ MultiStepComponent.style.setProperty('--progress', `${(validFieldsetCount / (fieldsetCount - 1)) * 100}%`);
114
118
  }
115
119
  // remove error messages from server
116
120
  MultiStepComponent.addEventListener('keydown', (event) => {
117
121
  if (event && event.target instanceof HTMLElement && event.target.closest('button')) {
118
122
  const button = event.target.closest('button');
119
- if (event.keyCode == 13 && button.getAttribute('type') != "submit") {
123
+ if (event.keyCode == 13 && button.getAttribute('type') != 'submit') {
120
124
  event.preventDefault();
121
125
  validateFieldset(button);
122
126
  }
@@ -141,17 +145,16 @@ class iamMultiStep extends HTMLElement {
141
145
  const button = event.target.closest('button[data-title]');
142
146
  validateFieldset(button);
143
147
  }
144
- ;
145
148
  return null;
146
149
  });
147
- trackComponent(MultiStepComponent, "iam-multi-step", []);
150
+ trackComponent(MultiStepComponent, 'iam-multi-step', []);
148
151
  }
149
152
  static get observedAttributes() {
150
- return ["data-image"];
153
+ return ['data-image'];
151
154
  }
152
155
  attributeChangedCallback(attrName, oldVal, newVal) {
153
156
  switch (attrName) {
154
- case "data-total": {
157
+ case 'data-total': {
155
158
  if (this.shadowRoot.querySelector('.card__total'))
156
159
  this.shadowRoot.querySelector('.card__total').innerHTML = newVal;
157
160
  break;
@@ -2,15 +2,19 @@
2
2
  // Data layer Web component created
3
3
  window.dataLayer = window.dataLayer || [];
4
4
  window.dataLayer.push({
5
- "event": "customElementRegistered",
6
- "element": "mutliselect"
5
+ event: 'customElementRegistered',
6
+ element: 'mutliselect',
7
7
  });
8
8
  class iamMultiselect extends HTMLElement {
9
9
  constructor() {
10
10
  super();
11
11
  this.attachShadow({ mode: 'open' });
12
- const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
13
- const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
12
+ const assetLocation = document.body.hasAttribute('data-assets-location')
13
+ ? document.body.getAttribute('data-assets-location')
14
+ : '/assets';
15
+ const coreCSS = document.body.hasAttribute('data-core-css')
16
+ ? document.body.getAttribute('data-core-css')
17
+ : `${assetLocation}/css/core.min.css`;
14
18
  const loadCSS = `@import "${assetLocation}/css/components/multiselect.css";`;
15
19
  const template = document.createElement('template');
16
20
  template.innerHTML = `
@@ -36,13 +40,13 @@ class iamMultiselect extends HTMLElement {
36
40
  this.shadowRoot.appendChild(template.content.cloneNode(true));
37
41
  }
38
42
  connectedCallback() {
39
- let multiselect = this;
40
- let form = this.closest('form');
41
- let wrapper = this.shadowRoot.querySelector('.wrapper');
42
- let search = multiselect.shadowRoot.querySelector('#search');
43
- let button = multiselect.shadowRoot.querySelector('#clear');
43
+ const multiselect = this;
44
+ const form = this.closest('form');
45
+ const wrapper = this.shadowRoot.querySelector('.wrapper');
46
+ const search = multiselect.shadowRoot.querySelector('#search');
47
+ const button = multiselect.shadowRoot.querySelector('#clear');
44
48
  let order = 0;
45
- let label = multiselect.shadowRoot.querySelector('label');
49
+ const label = multiselect.shadowRoot.querySelector('label');
46
50
  label.innerHTML = multiselect.getAttribute('data-label');
47
51
  if (multiselect.hasAttribute('placeholder')) {
48
52
  search.setAttribute('placeholder', multiselect.getAttribute('placeholder'));
@@ -50,29 +54,27 @@ class iamMultiselect extends HTMLElement {
50
54
  multiselect.setAttribute('data-error', 'true');
51
55
  // If in form and is required lets watch for the form being submitted
52
56
  if (form && multiselect.hasAttribute('data-is-required')) {
53
- let observer = new MutationObserver(function (mutations) {
57
+ const observer = new MutationObserver(function (mutations) {
54
58
  mutations.forEach(function (mutationRecord) {
55
59
  const targetElement = mutationRecord.target;
56
60
  console.log(targetElement);
57
- if (targetElement.classList.contains("was-validated")) {
61
+ if (targetElement.classList.contains('was-validated')) {
58
62
  wrapper.classList.add('was-validated');
59
63
  }
60
64
  else {
61
65
  wrapper.classList.remove('was-validated');
62
66
  }
63
- ;
64
67
  });
65
68
  });
66
- if (form.classList.contains("was-validated")) {
69
+ if (form.classList.contains('was-validated')) {
67
70
  wrapper.classList.add('was-validated');
68
71
  }
69
72
  else {
70
73
  wrapper.classList.remove('was-validated');
71
74
  }
72
- ;
73
75
  observer.observe(form, {
74
76
  attributes: true,
75
- attributeFilter: ['style', 'class']
77
+ attributeFilter: ['style', 'class'],
76
78
  });
77
79
  }
78
80
  // Set the correct attributes
@@ -109,10 +111,11 @@ class iamMultiselect extends HTMLElement {
109
111
  // Filter list
110
112
  search.addEventListener('input', (event) => {
111
113
  Array.from(multiselect.querySelectorAll(`label:not([slot="checked"])`)).forEach((label, index) => {
112
- let checkbox = label.querySelector('input');
113
- let searchValue = checkbox.value;
114
- let labelText = label.textContent;
115
- if (searchValue.toLowerCase().includes(search.value.toLowerCase()) || labelText.toLowerCase().includes(search.value.toLowerCase())) {
114
+ const checkbox = label.querySelector('input');
115
+ const searchValue = checkbox.value;
116
+ const labelText = label.textContent;
117
+ if (searchValue.toLowerCase().includes(search.value.toLowerCase()) ||
118
+ labelText.toLowerCase().includes(search.value.toLowerCase())) {
116
119
  label.removeAttribute('slot');
117
120
  }
118
121
  else {
@@ -120,16 +123,28 @@ class iamMultiselect extends HTMLElement {
120
123
  }
121
124
  });
122
125
  });
126
+ // Add a delayed hover effect for non hover devices
127
+ let hoverTimeout;
128
+ multiselect.addEventListener('focus', (event) => {
129
+ multiselect.classList.add('hover');
130
+ clearTimeout(hoverTimeout);
131
+ });
132
+ search.addEventListener('blur', (event) => {
133
+ clearTimeout(hoverTimeout);
134
+ hoverTimeout = setTimeout(function () {
135
+ multiselect.classList.remove('hover');
136
+ }, 1000);
137
+ });
123
138
  // Set items
124
139
  multiselect.addEventListener('change', (event) => {
125
140
  if (event && event.target instanceof HTMLElement && event.target.closest('input[type="checkbox"]')) {
126
- let checkbox = event.target.closest('input[type="checkbox"]');
141
+ const checkbox = event.target.closest('input[type="checkbox"]');
127
142
  setItem(checkbox);
128
143
  search.focus();
129
144
  }
130
145
  });
131
146
  // Clear all
132
- button.addEventListener("click", function (event) {
147
+ button.addEventListener('click', function (event) {
133
148
  Array.from(multiselect.querySelectorAll(`label input[type="checkbox"]`)).forEach((checkbox, index) => {
134
149
  checkbox.checked = false;
135
150
  setItem(checkbox);
@@ -137,39 +152,40 @@ class iamMultiselect extends HTMLElement {
137
152
  search.focus();
138
153
  });
139
154
  // Add some keyboard features to keep it accessible
140
- multiselect.addEventListener("keydown", function (event) {
155
+ multiselect.addEventListener('keydown', function (event) {
141
156
  const activeElement = document.activeElement;
142
- switch (event.key) { // change to event.key to key to use the above variable
143
- case "ArrowUp":
157
+ switch (event.key // change to event.key to key to use the above variable
158
+ ) {
159
+ case 'ArrowUp':
144
160
  // Up pressed
145
161
  event.preventDefault();
146
- if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == "checkbox") {
147
- let arrCheckboxes = multiselect.querySelectorAll(`label:not([slot="checked"]):not([slot="checked"])`);
148
- let activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));
149
- let prevCheckbox = Array.from(arrCheckboxes)[activeIndex - 1];
162
+ if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {
163
+ const arrCheckboxes = multiselect.querySelectorAll(`label:not([slot="checked"]):not([slot="checked"])`);
164
+ const activeIndex = Array.from(arrCheckboxes).indexOf(activeElement.closest('label'));
165
+ const prevCheckbox = Array.from(arrCheckboxes)[activeIndex - 1];
150
166
  if (prevCheckbox)
151
167
  prevCheckbox.focus();
152
168
  else
153
169
  search.focus();
154
170
  }
155
171
  break;
156
- case "ArrowDown":
172
+ case 'ArrowDown':
157
173
  // Down pressed
158
174
  event.preventDefault();
159
175
  if (activeElement == multiselect) {
160
176
  multiselect.querySelector('label:not([slot="checked"]):not([slot="checked"])').focus();
161
177
  }
162
- else if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == "checkbox") {
163
- let activeValue = activeElement.value;
164
- let nextCheckbox = multiselect.querySelector(`label:has(input[value="${activeValue}"]) ~ label:not([slot="checked"]):not([slot="checked"])`);
178
+ else if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {
179
+ const activeValue = activeElement.value;
180
+ const nextCheckbox = multiselect.querySelector(`label:has(input[value="${activeValue}"]) ~ label:not([slot="checked"]):not([slot="checked"])`);
165
181
  if (nextCheckbox)
166
182
  nextCheckbox.focus();
167
183
  }
168
184
  break;
169
- case "Enter":
185
+ case 'Enter':
170
186
  event.stopPropagation();
171
187
  event.preventDefault();
172
- if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == "checkbox") {
188
+ if (activeElement.hasAttribute('type') && activeElement.getAttribute('type') == 'checkbox') {
173
189
  if (activeElement.checked == false)
174
190
  activeElement.checked = true;
175
191
  else
@@ -189,19 +205,20 @@ class iamMultiselect extends HTMLElement {
189
205
  }
190
206
  return lastTag;
191
207
  }
192
- search.addEventListener("keydown", function (event) {
193
- switch (event.key) { // change to event.key to key to use the above variable
194
- case "Enter":
195
- let match = multiselect.querySelector(`input[value="${search.value}"]:not(:checked)`);
208
+ search.addEventListener('keydown', function (event) {
209
+ switch (event.key // change to event.key to key to use the above variable
210
+ ) {
211
+ case 'Enter':
212
+ const match = multiselect.querySelector(`input[value="${search.value}"]:not(:checked)`);
196
213
  if (!match)
197
- search.value = "";
214
+ search.value = '';
198
215
  search.focus();
199
216
  break;
200
- case "Backspace":
217
+ case 'Backspace':
201
218
  if (!search.value) {
202
- let lastTag = checkLastTag(order);
219
+ const lastTag = checkLastTag(order);
203
220
  if (lastTag) {
204
- let lastTagInput = lastTag.querySelector('input');
221
+ const lastTagInput = lastTag.querySelector('input');
205
222
  lastTagInput.checked = false;
206
223
  setItem(lastTagInput);
207
224
  }
@@ -211,10 +228,10 @@ class iamMultiselect extends HTMLElement {
211
228
  }
212
229
  });
213
230
  // Fix for the inline edit multiselect
214
- multiselect.addEventListener("mousedown", (event) => {
231
+ multiselect.addEventListener('mousedown', (event) => {
215
232
  wrapper.setAttribute('data-mousedown', 'true');
216
233
  });
217
- multiselect.addEventListener("mouseup", (event) => {
234
+ multiselect.addEventListener('mouseup', (event) => {
218
235
  wrapper.removeAttribute('data-mousedown');
219
236
  });
220
237
  }