@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,14 +3,14 @@ import { getSwipeDirection } from './helpers.js';
3
3
  export const createTabsLinks = function (tabsElement) {
4
4
  const details = tabsElement.querySelectorAll(':scope > details');
5
5
  const detailsORLinks = tabsElement.querySelectorAll(':scope > details, :scope > a');
6
- let summaries = tabsElement.querySelectorAll(':scope > details > summary');
6
+ const summaries = tabsElement.querySelectorAll(':scope > details > summary');
7
7
  let tabLinks = tabsElement.querySelector(':scope > .tabs__links');
8
8
  if (tabsElement.shadowRoot && tabsElement.shadowRoot.querySelector('.tabs__links'))
9
9
  tabLinks = tabsElement.shadowRoot.querySelector('.tabs__links');
10
10
  if (!tabLinks) {
11
11
  tabLinks = document.createElement('div');
12
12
  tabLinks.classList.add('tabs__links');
13
- let tabLinksWrapper = document.createElement('div');
13
+ const tabLinksWrapper = document.createElement('div');
14
14
  tabLinksWrapper.classList.add('tabs__links__wrapper');
15
15
  tabLinksWrapper.prepend(tabLinks);
16
16
  tabsElement.prepend(tabLinksWrapper);
@@ -20,8 +20,8 @@ export const createTabsLinks = function (tabsElement) {
20
20
  detailsORLinks.forEach((element, index) => {
21
21
  let button = document.createElement('button');
22
22
  if (element.matches('details')) {
23
- let summary = element.querySelector(':scope > summary');
24
- let isDisabled = summary.classList.contains('disabled');
23
+ const summary = element.querySelector(':scope > summary');
24
+ const isDisabled = summary.classList.contains('disabled');
25
25
  summary.classList.add('visually-hidden');
26
26
  if (element.hasAttribute('id'))
27
27
  button.setAttribute('data-id', `${element.getAttribute('id')}`);
@@ -45,60 +45,40 @@ export const createTabsLinks = function (tabsElement) {
45
45
  });
46
46
  };
47
47
  export const setTabsEventHandlers = function (tabsElement) {
48
- let details = tabsElement.querySelectorAll(':scope > details');
49
- let summaries = tabsElement.querySelectorAll(':scope > details > summary');
48
+ const details = tabsElement.querySelectorAll(':scope > details');
49
+ const summaries = tabsElement.querySelectorAll(':scope > details > summary');
50
50
  let buttonWrapper = tabsElement.querySelector(':scope .tabs__links');
51
51
  let buttons = tabsElement.querySelectorAll(':scope .tabs__links > button');
52
52
  let nextButton = tabsElement.querySelector(':scope .tabs__next');
53
53
  var scrollTimeout;
54
- let isScrolled = false;
55
- let isClicked = false;
54
+ window.isClicked = false;
55
+ window.isScrolling = false;
56
56
  if (tabsElement.shadowRoot) {
57
57
  buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');
58
58
  buttonWrapper = tabsElement.shadowRoot.querySelector('.tabs__links');
59
59
  nextButton = tabsElement.shadowRoot.querySelector(':scope .tabs__next');
60
60
  }
61
- buttonWrapper.addEventListener('scroll', function (e) {
62
- if (isClicked) {
63
- isClicked = false;
64
- return false;
65
- }
66
- clearTimeout(scrollTimeout);
67
- let buttonToClick = buttons[0];
68
- scrollTimeout = setTimeout(function () {
69
- let closestOffset = Math.abs(buttonToClick.getBoundingClientRect().left);
70
- buttons.forEach((button) => {
71
- if (Math.abs(button.getBoundingClientRect().left) < closestOffset) {
72
- closestOffset = Math.abs(button.getBoundingClientRect().left);
73
- buttonToClick = button;
74
- }
75
- });
76
- isScrolled = true;
77
- buttonToClick.click();
78
- buttonToClick.focus();
79
- }, 100);
80
- }, false);
81
61
  // Set the on click for the tab buttons, these will open the details box it matches too
82
62
  buttons.forEach((button) => {
83
- button.addEventListener("click", (e) => {
63
+ button.addEventListener('click', (e) => {
84
64
  e.preventDefault();
85
- isClicked = true;
65
+ if (window.isScrolling)
66
+ return;
67
+ if (!window.triggered)
68
+ window.isClicked = true;
86
69
  if (button.classList.contains('disabled'))
87
70
  return false;
88
71
  buttons.forEach((buttonLoopItem) => {
89
- let buttonPressed = buttonLoopItem == button ? true : false;
72
+ const buttonPressed = buttonLoopItem == button ? true : false;
90
73
  buttonLoopItem.setAttribute('aria-pressed', buttonPressed);
91
74
  });
92
- if (!isScrolled) {
93
- buttonWrapper.scroll({
94
- top: 0,
95
- left: button.offsetLeft,
96
- behavior: 'smooth'
97
- });
98
- }
99
- isScrolled = false;
75
+ buttonWrapper.scroll({
76
+ top: 0,
77
+ left: button.offsetLeft,
78
+ behavior: 'smooth',
79
+ });
100
80
  details.forEach((detail, detailsIndex) => {
101
- let detailsOpen = button.getAttribute('data-index') == detailsIndex ? true : false;
81
+ const detailsOpen = button.getAttribute('data-index') == detailsIndex ? true : false;
102
82
  if (detailsOpen)
103
83
  detail.setAttribute('open', detailsOpen);
104
84
  else
@@ -113,50 +93,78 @@ export const setTabsEventHandlers = function (tabsElement) {
113
93
  // Data layer Open Event
114
94
  window.dataLayer = window.dataLayer || [];
115
95
  window.dataLayer.push({
116
- "event": "openTab",
117
- "tabTitle": button.textContent
96
+ event: 'openTab',
97
+ tabTitle: button.textContent,
118
98
  });
119
99
  });
120
100
  });
101
+ buttonWrapper.addEventListener('scroll', (event) => {
102
+ if (window.isScrolling)
103
+ return;
104
+ clearTimeout(scrollTimeout);
105
+ window.isScrolling = true;
106
+ });
107
+ buttonWrapper.addEventListener('scrollend', (event) => {
108
+ window.isScrolling = false;
109
+ clearTimeout(scrollTimeout);
110
+ scrollTimeout = setTimeout(function () {
111
+ if (window.isClicked) {
112
+ window.isClicked = false;
113
+ return false;
114
+ }
115
+ let buttonToClick = buttons[0];
116
+ let closestOffset = Math.abs(buttonToClick.getBoundingClientRect().left);
117
+ buttons.forEach((button) => {
118
+ if (Math.abs(button.getBoundingClientRect().left) < closestOffset) {
119
+ closestOffset = Math.abs(button.getBoundingClientRect().left);
120
+ buttonToClick = button;
121
+ }
122
+ });
123
+ window.triggered = true;
124
+ buttonToClick.focus();
125
+ buttonToClick.click();
126
+ window.triggered = false;
127
+ }, 200);
128
+ });
121
129
  // Make sure we dont loose existing summary functionality
122
130
  summaries.forEach((summary, index) => {
123
- summary.addEventListener("click", (e) => {
131
+ summary.addEventListener('click', (e) => {
124
132
  e.preventDefault();
125
133
  buttons[index].click();
126
134
  });
127
135
  });
128
- nextButton.addEventListener("click", (e) => {
136
+ nextButton.addEventListener('click', (e) => {
129
137
  e.preventDefault();
130
- let currentTab = buttonWrapper.querySelector('[aria-pressed="true"]');
131
- let nextTab = currentTab.nextSibling;
138
+ const currentTab = buttonWrapper.querySelector('[aria-pressed="true"]');
139
+ const nextTab = currentTab.nextSibling;
132
140
  if (nextTab)
133
141
  nextTab.click();
134
142
  });
135
143
  if (tabsElement.classList.contains('tabs--guided')) {
136
- var touchstartX = 0;
137
- var touchstartY = 0;
138
- var touchendX = 0;
139
- var touchendY = 0;
144
+ let touchstartX = 0;
145
+ let touchstartY = 0;
146
+ let touchendX = 0;
147
+ let touchendY = 0;
140
148
  details.forEach((detail) => {
141
- detail.addEventListener("touchstart", (event) => {
149
+ detail.addEventListener('touchstart', (event) => {
142
150
  event.stopPropagation();
143
151
  touchstartX = event.changedTouches[0].screenX;
144
152
  touchstartY = event.changedTouches[0].screenY;
145
153
  });
146
- detail.addEventListener("touchend", (event) => {
154
+ detail.addEventListener('touchend', (event) => {
147
155
  event.stopPropagation();
148
156
  touchendX = event.changedTouches[0].screenX;
149
157
  touchendY = event.changedTouches[0].screenY;
150
- let direction = getSwipeDirection(touchstartX, touchstartY, touchendX, touchendY);
151
- let currentTab = buttonWrapper.querySelector('[aria-pressed="true"]');
158
+ const direction = getSwipeDirection(touchstartX, touchstartY, touchendX, touchendY);
159
+ const currentTab = buttonWrapper.querySelector('[aria-pressed="true"]');
160
+ const nextTab = currentTab.nextSibling;
161
+ const prevTab = currentTab.previousSibling;
152
162
  switch (direction) {
153
163
  case 'left':
154
- let nextTab = currentTab.nextSibling;
155
164
  if (nextTab)
156
165
  nextTab.click();
157
166
  break;
158
167
  case 'right':
159
- let prevTab = currentTab.previousSibling;
160
168
  if (prevTab)
161
169
  prevTab.click();
162
170
  break;
@@ -168,10 +176,13 @@ export const setTabsEventHandlers = function (tabsElement) {
168
176
  export const openFirstTab = function (tabsElement) {
169
177
  if (!tabsElement.querySelector(':scope > details'))
170
178
  return false;
171
- let details = tabsElement.querySelectorAll(':scope > details');
172
- let buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');
173
- if (location.hash && tabsElement.shadowRoot.querySelector(`.tabs__links [data-id="${location.hash.replace('#', '')}"]`)) {
174
- tabsElement.shadowRoot.querySelector(`[data-id="${location.hash.replace('#', '')}"]`).setAttribute('aria-pressed', true);
179
+ const details = tabsElement.querySelectorAll(':scope > details');
180
+ const buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');
181
+ if (location.hash &&
182
+ tabsElement.shadowRoot.querySelector(`.tabs__links [data-id="${location.hash.replace('#', '')}"]`)) {
183
+ tabsElement.shadowRoot
184
+ .querySelector(`[data-id="${location.hash.replace('#', '')}"]`)
185
+ .setAttribute('aria-pressed', true);
175
186
  tabsElement.querySelector(`details[id="${location.hash.replace('#', '')}"]`).setAttribute('open', true);
176
187
  }
177
188
  else if (!tabsElement.querySelector(`details[open]`)) {
@@ -1,6 +1,5 @@
1
- // @ts-nocheck
2
1
  function testimonial(testimonialElement) {
3
- var scrollTimeout;
2
+ let scrollTimeout;
4
3
  const imagesCarousel = testimonialElement.querySelector('.testimonial__images');
5
4
  const itemCount = imagesCarousel.querySelectorAll('img').length;
6
5
  // If we only have 1 item lets not bother doing anything else
@@ -22,13 +21,13 @@ function testimonial(testimonialElement) {
22
21
  nextButton.setAttribute('disabled', true);
23
22
  };
24
23
  // On scroll we need to make sure the buttons get corrected and the next testimonial is shown
25
- imagesCarousel.addEventListener('scroll', function (e) {
24
+ imagesCarousel.addEventListener('scroll', function () {
26
25
  clearTimeout(scrollTimeout);
27
26
  scrollTimeout = setTimeout(function () {
28
- let scrollWidth = imagesCarousel.scrollWidth;
29
- let scrollHeight = imagesCarousel.scrollHeight;
30
- let scrollLeft = imagesCarousel.scrollLeft;
31
- let scrollDown = imagesCarousel.scrollTop;
27
+ const scrollWidth = imagesCarousel.scrollWidth;
28
+ const scrollHeight = imagesCarousel.scrollHeight;
29
+ const scrollLeft = imagesCarousel.scrollLeft;
30
+ const scrollDown = imagesCarousel.scrollTop;
32
31
  let scrollTo = Math.round((scrollLeft / scrollWidth) * itemCount) + 1;
33
32
  // Change in scroll direction
34
33
  if (scrollLeft == 0 && scrollDown != 0)
@@ -39,13 +38,13 @@ function testimonial(testimonialElement) {
39
38
  }, false);
40
39
  // when the buttons are used we need to make sure the carousel scrolls to the correct place
41
40
  testimonialElement.addEventListener('click', function (e) {
42
- for (var target = e.target; target && target != this; target = target.parentNode) {
41
+ for (let target = e.target; target && target != this; target = target.parentNode) {
43
42
  if (target.matches('[data-go]')) {
44
- let scrollTo = parseInt(target.getAttribute('data-go'));
43
+ const scrollTo = parseInt(target.getAttribute('data-go'));
45
44
  let scrollDown = 0;
46
45
  let scrollLeft = 0;
47
- let scrollWidth = imagesCarousel.scrollWidth;
48
- let scrollHeight = imagesCarousel.scrollHeight;
46
+ const scrollWidth = imagesCarousel.scrollWidth;
47
+ const scrollHeight = imagesCarousel.scrollHeight;
49
48
  if (scrollWidth > scrollHeight)
50
49
  scrollLeft = Math.floor(scrollWidth * ((scrollTo - 1) / itemCount));
51
50
  else
@@ -54,7 +53,7 @@ function testimonial(testimonialElement) {
54
53
  imagesCarousel.scroll({
55
54
  top: scrollDown,
56
55
  left: scrollLeft,
57
- behavior: 'smooth'
56
+ behavior: 'smooth',
58
57
  });
59
58
  break;
60
59
  }
@@ -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
  */(function(h){typeof define=="function"&&define.amd?define(h):h()})(function(){"use strict";var h=r=>(r.classList.add("js-enabled"),(navigator.userAgent.indexOf("MSIE")!==-1||navigator.appVersion.indexOf("Trident/")>0)&&r.classList.add("ie"),null),T=r=>{var e=function(t){var o=document.querySelector('label[for="'.concat(t.replace("#",""),'"]')),c=document.querySelector(t+" summary"),s=document.querySelector("dialog".concat(t)),n=document.querySelector("detail".concat(t));o instanceof HTMLElement?o.click():c instanceof HTMLElement?c.click():s instanceof HTMLElement?s.showModal():n instanceof HTMLElement&&n.addAttribute("open")};return location.hash&&e(location.hash),window.addEventListener("hashchange",function(){e(location.hash)},!1),addEventListener("popstate",a=>{if(a&&a.state&&a.state.type&&a.state.type=="pagination"){var t=document.querySelector("#".concat(a.state.form)),o=document.querySelector("#".concat(a.state.form," [data-pagination]"));o?o.value=a.state.page:t.innerHTML+='<input name="page" type="hidden" data-pagination="true" value="'.concat(a.state.page,'" />'),t.dispatchEvent(new Event("submit"))}}),document.addEventListener("submit",a=>{if(a&&a.target instanceof HTMLElement&&a.target.matches("form")){var t=a.target;Array.from(t.querySelectorAll("[data-password-type]")).forEach((o,c)=>{o.setAttribute("type","password")}),(t.querySelector(":invalid")||t.querySelector('.pwd-checker[data-strength="1"]')||t.querySelector('.pwd-checker[data-strength="2"]'))&&(t.classList.add("was-validated"),a.preventDefault()),t.querySelector("iam-multiselect[data-is-required][data-error]")&&(t.classList.add("was-validated"),a.preventDefault())}}),document.addEventListener("keydown",a=>{a.key==="Escape"&&document.querySelector(".dialog--transactional[open], .dialog--acknowledgement[open]")&&(a.preventDefault(),a.stopPropagation())}),Array.from(document.querySelectorAll("label progress")).forEach((a,t)=>{var o=a.closest("label");o.setAttribute("data-percent",a.getAttribute("value"))}),null},C=r=>(Array.from(r.querySelectorAll("dialog[open]")).forEach((e,a)=>{var t=e.closest(".dialog__wrapper");t||(e.removeAttribute("open"),e.showModal(),e.focus(),v(e))}),r.addEventListener("click",e=>{if(e.target.tagName=="IAM-ACTIONBAR")return!1;if(e&&e.target instanceof HTMLElement&&e.target.closest("[data-modal]")){var a=e.target.closest("[data-modal]"),t=a.hasAttribute("data-modal")?a.getAttribute("data-modal"):a.getAttribute("data-filter"),o=document.querySelector("dialog#".concat(t));if(v(o),o.showModal(),o.focus(),!o.querySelector("iam-multi-step")){var c=o.offsetWidth;o.setAttribute("style","max-width: ".concat(c,"px;"))}Array.from(o.querySelectorAll("[data-duplicate]")).forEach((u,p)=>{var W=u.getAttribute("data-duplicate"),M=document.getElementById(W);if(u.checked!=M.checked){u.checked=M.checked;var J=new Event("change");u.dispatchEvent(J)}}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openModal",id:t})}if(e&&e.target instanceof HTMLElement&&e.target.closest("button.dialog__close")){var s=e.target.closest("dialog[open]");e.preventDefault(),s.close(),Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach((u,p)=>{u.classList.remove("active")});var n=new CustomEvent("dialog-closed",{bubbles:!0,cancelable:!0,detail:{modalId:s.id}});e.target.dispatchEvent(n),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:s.getAttribute("id")})}if(e&&e.target instanceof HTMLElement&&e.target.closest('button[formmethod="dialog"]')){var i=e.target.closest("dialog[open]");Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach((u,p)=>{u.classList.remove("active")}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:i.getAttribute("id")})}if(e&&e.target instanceof HTMLElement&&e.target.closest("dialog[open]")){var l=e.target.closest("dialog[open]"),y=window.getComputedStyle(l);if(y.display==="contents"&&(l=l.parentNode.closest("dialog[open]")),!l.classList.contains("dialog--transactional")&&!l.classList.contains("dialog--acknowledgement")){var g=l.getBoundingClientRect();(e.clientX<g.left||e.clientX>g.right||e.clientY<g.top||e.clientY>g.bottom)&&(e.target.closest("dialog *")||l.close(),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"closeModal",id:l.getAttribute("id")}))}}if(e&&e.target instanceof HTMLElement&&e.target.closest(".dialog__wrapper > button")){e.stopPropagation();var f=e.target.closest(".dialog__wrapper > button"),V=f.parentNode,E="openPopover",d=V.querySelector(":scope > dialog");if(document.querySelector("*:not([data-keep-open]) > dialog[open]")&&document.querySelector("*:not([data-keep-open]) > dialog[open]")!=d&&f.closest("dialog[open]")!=document.querySelector("*:not([data-keep-open]) > dialog[open]")&&document.querySelector("*:not([data-keep-open]) > dialog[open]").close(),Array.from(document.querySelectorAll(".dialog__wrapper > button")).forEach((u,p)=>{u.removeAttribute("aria-expanded")}),d.hasAttribute("open"))d.close(),E="closePopover",d.removeAttribute("style"),f.removeAttribute("aria-expanded");else{d.show(),f.setAttribute("aria-expanded",!0);var L=f.getBoundingClientRect(),q=L.top,x=L.left;if(f.closest("iam-table")){var k=f.closest("iam-table").parentNode.getBoundingClientRect();q-=k.top,x-=k.left}d.classList.contains("dialog--fix")&&d.setAttribute("style","position:fixed;top: ".concat(q,"px; left: ").concat(x,"px; margin: 3rem 0 0 0;"))}var w=d.getBoundingClientRect(),O=w.bottom-window.scrollY,Y=window.innerHeight-window.scrollY;if(O>Y){var R=d.hasAttribute("style")?d.getAttribute("style")+" ":"";d.setAttribute("style",R+"transform: translate(0, calc(-100% - 4rem))"),w=d.getBoundingClientRect();var F=w.top-window.scrollY;F<100&&d.removeAttribute("style")}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:E,id:f.textContent})}e&&e.target instanceof HTMLElement&&!e.target.closest("dialog[open]")&&!e.target.closest(".dialog__wrapper > button")&&(document.querySelector(".dialog__wrapper:not([data-keep-open]) > dialog[open]")&&document.querySelector(".dialog__wrapper:not([data-keep-open]) > dialog[open]").close(),Array.from(document.querySelectorAll(".dialog__wrapper:not([data-keep-open]) > button")).forEach((u,p)=>{u.removeAttribute("aria-expanded")}))}),null),v=r=>{if(!r.querySelector(":scope .mh-lg")&&!r.querySelector("iam-multi-step")){r.innerHTML='<div class="mh-lg">'.concat(r.innerHTML,"</div>");var e=r.querySelector(".mh-lg"),a=r.querySelector(".mh-lg :is(.h1,.h2,.h3,.h4,.h5,.h6)");if(a){var t=a.previousSibling;e.before(a),t&&a.before(t)}}r.querySelector(":scope > button:first-child")||r.insertAdjacentHTML("afterbegin",'<button class="dialog__close">Close</button>')};function H(){window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Pageview",pageTitle:document.title}),document.addEventListener("click",r=>{var e=r.target.closest("[open] summary");if(e)window.dataLayer.push({event:"closeDetails",detailsTitle:e.textContent||""});else{var a=r.target.closest("summary"),t=r.target.closest("a"),o=r.target.closest("button");a&&window.dataLayer.push({event:"openDetails",detailsTitle:a.textContent||""}),t&&window.dataLayer.push({event:"linkClicked",linkText:t.hasAttribute("title")?t.getAttribute("title")||"":t.textContent||"",class:t.hasAttribute("class")&&t.getAttribute("class")||"",href:t.getAttribute("href")||""}),o&&window.dataLayer.push({event:"buttonClicked",buttonText:o.textContent||"",class:o.hasAttribute("class")&&o.getAttribute("class")||""})}})}function D(r){var e=new TextEncoder("utf-8").encode(r);return crypto.subtle.digest("SHA-1",e).then(function(a){for(var t=[],o=new DataView(a),c=0;c<o.byteLength;c+=4){var s=o.getUint32(c),n=s.toString(16),i="00000000",l=(i+n).slice(-i.length);t.push(l)}return t.join("")})}var _=(r,e)=>{D(r).then(function(a){var t=new XMLHttpRequest;t.addEventListener("load",function(){var o=this.responseText.split(`
5
5
  `),c=a.slice(5).toUpperCase(),s=!1;for(var n in o)if(o[n].substring(0,35)==c){s=!0;break}var i=new CustomEvent("hibpCheck",{detail:s});e.dispatchEvent(i)}),t.open("GET","https://api.pwnedpasswords.com/range/"+a.substr(0,5)),t.send()})},B=r=>{function e(){if(Array.from(document.querySelectorAll("input[maxlength],textarea[maxlength]")).forEach((t,o)=>{t.parentElement,I(t)}),Array.from(document.querySelectorAll("label input")).forEach((t,o)=>{!t.closest("label").querySelector(".optional-text")&&!t.hasAttribute("required")&&(t.parentNode.tagName.toLowerCase()=="span"?t.parentElement.insertAdjacentHTML("beforebegin",'<span class="optional-text"></span>'):t.insertAdjacentHTML("beforebegin",'<span class="optional-text"></span>'))}),document.querySelector('input[type="date"]')){let t=function(o){var c=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),n=String(o.getDate()).padStart(2,"0");return"".concat(c,"-").concat(s,"-").concat(n)};var a=new Date;Array.from(document.querySelectorAll('input[type="date"]')).forEach((o,c)=>{var s=a;if(o.hasAttribute("data-start")&&(s.setDate(s.getDate()+parseInt(o.getAttribute("data-start"))),o.setAttribute("min",t(s))),o.hasAttribute("data-period")){var n=parseInt(o.getAttribute("data-period")),i=new Date;i.setDate(s.getDate()+n),o.setAttribute("max",t(i))}if(o.hasAttribute("data-allowed-days")){var l=JSON.parse("[".concat(o.getAttribute("data-allowed-days"),"]"));o.addEventListener("input",function(y){var g=new Date(this.value).getUTCDay();l.includes(g)?o.setCustomValidity(""):o.setCustomValidity("That day of the week is not allowed")})}})}}document.readyState==="complete"&&e(),document.onreadystatechange=()=>{document.readyState==="complete"&&e()},r.addEventListener("input",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("input,textarea,select")){var t=a.target.closest("input,textarea,select");t.parentElement,t.hasAttribute("type")&&t.getAttribute("type")=="color"&&(t.nextElementSibling.value=t.value),t.hasAttribute("maxlength")&&t.nextElementSibling&&t.nextElementSibling.setAttribute("data-count",t.value.length),t.hasAttribute("data-strength-checker")&&b(t)}}),r.addEventListener("change",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("select")){var t=a.target.closest("select");if(t.hasAttribute("data-change-type")&&t.hasAttribute("data-input")){var o=document.getElementById(t.getAttribute("data-input")),c=t.value;S(o,c)}}if(a&&a.target instanceof HTMLElement&&a.target.closest('dialog [type="radio"]')){var s=a.target.closest("dialog");a.target.closest('dialog [type="radio"]'),Array.from(s.querySelectorAll('[type="radio"][autofocus]')).forEach((n,i)=>{n.removeAttribute("autofocus")}),Array.from(s.querySelectorAll('[type="radio"]:checked')).forEach((n,i)=>{n.setAttribute("autofocus",!0)})}}),r.addEventListener("click",a=>{if(a&&a.target instanceof HTMLElement&&a.target.closest("[data-change-type][data-input]:not(select)")){var t=a.target.closest("[data-change-type]"),o=document.getElementById(t.getAttribute("data-input")),c=t.getAttribute("data-change-type");if(t.setAttribute("data-change-type",o.getAttribute("type")),S(o,c),t.hasAttribute("data-alt-class")){var s=t.getAttribute("data-alt-class");t.setAttribute("data-alt-class",t.getAttribute("class")),t.setAttribute("class",s)}}})},I=r=>{var e=r.parentElement,a=r.getAttribute("maxlength");e.style.setProperty("--maxlength",a);var t=r.nextElementSibling;(!t||t&&t.classList.contains("invalid-feedback"))&&(t=document.createElement("span"),e.insertBefore(t,r.nextSibling)),t.setAttribute("data-count",r.value.length)},S=(r,e)=>{r.hasAttribute("type")&&r.getAttribute("type")=="password"&&r.setAttribute("data-password-type",!0),r.setAttribute("type",e)},b=function(e){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"no",t=document.getElementById(e.getAttribute("data-strength-checker")),o=e.value,c=e.hasAttribute("minlength")?e.getAttribute("minlength"):12,s=1,n=["Very weak","Weak","Average","Strong","Very strong"],i="";if(o.match(/(?=.*[0-9])/)&&(s+=1),o.match(/(?=.*[!,%,&,#,$,^,*,?,_,~,<,>,])/)&&(s+=1),o.match(/(?=.*[a-z])/)&&(s+=1),o.match(/(?=.*[A-Z])/)&&(s+=1),o.length<c&&(s=1,i="(must be at least ".concat(c," characters.)")),s>=3&&a=="no"){let l=function(y,g){y.detail?b(g,"danger"):b(g,"success"),g.removeEventListener("hibpCheck",l)};_(o,e),e.addEventListener("hibpCheck",function(y){l(y,e)})}else s>=3&&a=="danger"&&(s=3,i="(this password is very common)");t&&(s<=3?t.classList.add("invalid-feedback"):t.classList.remove("invalid-feedback"),t.setAttribute("data-strength",s),t.innerHTML="Password strength: ".concat(n[s-1]," ").concat(i))},N=()=>{document.addEventListener("change",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-change-events]")&&A(r.target,r.target.closest("[data-change-events]").getAttribute("data-change-events"))}),document.addEventListener("keyup",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-change-events]")&&A(r.target,r.target.closest("[data-change-events]").getAttribute("data-change-events"))}),document.addEventListener("click",r=>{r&&r.target instanceof HTMLElement&&r.target.closest("[data-click-events]")&&A(r.target,r.target.closest("[data-click-events]").getAttribute("data-click-events"))})},A=(r,e)=>{if(e||(e=r.parentNode.getAttribute("data-change-events")),!e)return!1;Array.from(JSON.parse(e)).forEach((a,t)=>{P(r,a)})},P=(r,e)=>{if("matches"in e)return e.matches=="any"||r.value==e.matches?m(r,e,"if"):m(r,e,"else"),!1;if("in-list"in e){var a=document.querySelector("".concat(e["in-list"],' option[value="').concat(r.value,'"]'));return document.querySelector("".concat(e["in-list"],' option[value="').concat(r.value,'"]'))?m(a,e,"if"):m(a,e,"else"),!1}else"event"in e&&m(r,e,"event")},m=(r,e,a)=>{if(!(a in e))return!1;switch(e[a]){case"hide":if(document.querySelector(e.target)){var t=document.querySelector(e.target);t.classList.add("js-hide"),Array.from(t.querySelectorAll("[data-required]")).forEach((n,i)=>{n.removeAttribute("required")})}break;case"show":if(document.querySelector(e.target)){var o=document.querySelector(e.target);o.classList.remove("js-hide"),Array.from(o.querySelectorAll("[data-required]")).forEach((n,i)=>{n.closest(".js-hide")||n.setAttribute("required","true")})}break;case"populate-form":j(r,e);break;case"dispatchEvent":var c=new Event(e.value);document.querySelector("".concat(e.target)).dispatchEvent(c);break;case"setAttribute":Array.from(document.querySelectorAll("".concat(e.target))).forEach(function(n,i){n.setAttribute(e.attribute,e.value)});break;case"focus":document.querySelector("".concat(e.target)).focus();break;case"removeAttribute":Array.from(document.querySelectorAll("".concat(e.target))).forEach(function(n,i){n.removeAttribute(e.attribute)});break;case"updateValue":document.querySelector("".concat(e.target)).value=e.value?e.value:"";var s=new Event("change");document.querySelector("".concat(e.target)).dispatchEvent(s);break;case"submitForm":document.querySelector("".concat(e.target)).submit();break;case"openLink":document.querySelector("".concat(e.target)).value&&(window.location.href=document.querySelector("".concat(e.target)).value);break}},j=function(e,a){var t=JSON.parse(e.getAttribute("data-values")),o=document.querySelector(a.target);if(!t)return!1;Object.keys(t).forEach((c,s)=>{document.getElementById(c)&&document.getElementById(c).tagName=="SPAN"&&(document.getElementById(c).innerHTML=t[c]),o.querySelector('select[name="'.concat(c,'"] [value="').concat(t[c],'"]'))?(o.querySelector('select[name="'.concat(c,'"]')).value=t[c],e.hasAttribute("data-lock-fields")&&(o.querySelector('select[name="'.concat(c,'"]')).disabled=!0)):o.querySelector('input[name="'.concat(c,'"][type="radio"][value="').concat(t[c],'"]'))?(Array.from(o.querySelectorAll('input[name="'.concat(c,'"][type="radio"]'))).forEach(function(n,i){n.disabled=!0}),o.querySelector('input[name="'.concat(c,'"][type="radio"][value="').concat(t[c],'"]')).checked=!0,o.querySelector('input[name="'.concat(c,'"][type="radio"][value="').concat(t[c],'"]')).disabled=!1):o.querySelector('input[name="'.concat(c,'"]'))&&(o.querySelector('input[name="'.concat(c,'"]')).value=t[c],e.hasAttribute("data-lock-fields")&&o.querySelector('input[name="'.concat(c,'"]')).setAttribute("readonly","true"))})};document.addEventListener("DOMContentLoaded",function(){H(),N(),h(document.body),T(),C(document.body),B(document.body)})});