@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
@@ -1,5 +1,5 @@
1
1
  // @ts-nocheck
2
- // Create the event listeners
2
+ // Create the event listeners
3
3
  const createDynamicEvents = () => {
4
4
  // Change event
5
5
  document.addEventListener('change', (event) => {
@@ -18,7 +18,7 @@ const createDynamicEvents = () => {
18
18
  };
19
19
  // Parse the JSON and trigger the events, this may be singular or multiple set of events
20
20
  const splitEvents = (element, events) => {
21
- // an empty events will trigger looking up the dom chain for
21
+ // an empty events will trigger looking up the dom chain for
22
22
  if (!events) {
23
23
  events = element.parentNode.getAttribute('data-change-events');
24
24
  }
@@ -31,7 +31,7 @@ const splitEvents = (element, events) => {
31
31
  });
32
32
  };
33
33
  const checkConditions = (element, event) => {
34
- if ("matches" in event) {
34
+ if ('matches' in event) {
35
35
  if (event['matches'] == 'any')
36
36
  runEvent(element, event, 'if');
37
37
  else if (element.value == event.matches)
@@ -40,9 +40,9 @@ const checkConditions = (element, event) => {
40
40
  runEvent(element, event, 'else');
41
41
  return false;
42
42
  }
43
- else if ("in-list" in event) {
43
+ else if ('in-list' in event) {
44
44
  // Pass the matched datalist element instead of the triggered element
45
- let match = document.querySelector(`${event['in-list']} option[value="${element.value}"]`);
45
+ const match = document.querySelector(`${event['in-list']} option[value="${element.value}"]`);
46
46
  if (document.querySelector(`${event['in-list']} option[value="${element.value}"]`)) {
47
47
  runEvent(match, event, 'if');
48
48
  }
@@ -50,7 +50,7 @@ const checkConditions = (element, event) => {
50
50
  runEvent(match, event, 'else');
51
51
  return false;
52
52
  }
53
- else if ("event" in event) {
53
+ else if ('event' in event) {
54
54
  runEvent(element, event, 'event');
55
55
  }
56
56
  };
@@ -58,18 +58,18 @@ const runEvent = (element, event, eventType) => {
58
58
  if (eventType in event == false)
59
59
  return false;
60
60
  switch (event[eventType]) {
61
- case "hide":
61
+ case 'hide':
62
62
  if (document.querySelector(event['target'])) {
63
- let hideElement = document.querySelector(event['target']);
63
+ const hideElement = document.querySelector(event['target']);
64
64
  hideElement.classList.add('js-hide');
65
65
  Array.from(hideElement.querySelectorAll('[data-required]')).forEach((input, index) => {
66
66
  input.removeAttribute('required');
67
67
  });
68
68
  }
69
69
  break;
70
- case "show":
70
+ case 'show':
71
71
  if (document.querySelector(event['target'])) {
72
- let showElement = document.querySelector(event['target']);
72
+ const showElement = document.querySelector(event['target']);
73
73
  showElement.classList.remove('js-hide');
74
74
  Array.from(showElement.querySelectorAll('[data-required]')).forEach((input, index) => {
75
75
  if (!input.closest('.js-hide'))
@@ -77,35 +77,35 @@ const runEvent = (element, event, eventType) => {
77
77
  });
78
78
  }
79
79
  break;
80
- case "populate-form":
80
+ case 'populate-form':
81
81
  populateForm(element, event);
82
82
  break;
83
- case "dispatchEvent":
84
- let theEvent = new Event(event['value']);
83
+ case 'dispatchEvent':
84
+ const theEvent = new Event(event['value']);
85
85
  document.querySelector(`${event['target']}`).dispatchEvent(theEvent);
86
86
  break;
87
- case "setAttribute":
87
+ case 'setAttribute':
88
88
  Array.from(document.querySelectorAll(`${event['target']}`)).forEach(function (element, index) {
89
89
  element.setAttribute(event['attribute'], event['value']);
90
90
  });
91
91
  break;
92
- case "focus":
92
+ case 'focus':
93
93
  document.querySelector(`${event['target']}`).focus();
94
94
  break;
95
- case "removeAttribute":
95
+ case 'removeAttribute':
96
96
  Array.from(document.querySelectorAll(`${event['target']}`)).forEach(function (element, index) {
97
97
  element.removeAttribute(event['attribute']);
98
98
  });
99
99
  break;
100
- case "updateValue":
101
- document.querySelector(`${event['target']}`).value = event['value'] ? event['value'] : "";
102
- let changeEvent = new Event('change');
100
+ case 'updateValue':
101
+ document.querySelector(`${event['target']}`).value = event['value'] ? event['value'] : '';
102
+ const changeEvent = new Event('change');
103
103
  document.querySelector(`${event['target']}`).dispatchEvent(changeEvent);
104
104
  break;
105
- case "submitForm":
105
+ case 'submitForm':
106
106
  document.querySelector(`${event['target']}`).submit();
107
107
  break;
108
- case "openLink":
108
+ case 'openLink':
109
109
  if (document.querySelector(`${event['target']}`).value)
110
110
  window.location.href = document.querySelector(`${event['target']}`).value;
111
111
  break;
@@ -114,12 +114,12 @@ const runEvent = (element, event, eventType) => {
114
114
  }
115
115
  };
116
116
  const populateForm = function (element, event) {
117
- let values = JSON.parse(element.getAttribute('data-values'));
118
- let form = document.querySelector(event['target']);
117
+ const values = JSON.parse(element.getAttribute('data-values'));
118
+ const form = document.querySelector(event['target']);
119
119
  if (!values)
120
120
  return false;
121
121
  Object.keys(values).forEach((field, index) => {
122
- if (document.getElementById(field) && document.getElementById(field).tagName == "SPAN")
122
+ if (document.getElementById(field) && document.getElementById(field).tagName == 'SPAN')
123
123
  document.getElementById(field).innerHTML = values[field];
124
124
  if (form.querySelector(`select[name="${field}"] [value="${values[field]}"]`)) {
125
125
  form.querySelector(`select[name="${field}"]`).value = values[field];
@@ -4,27 +4,26 @@ function fileupload(form, callback) {
4
4
  const label = form.querySelector(`[for="${input.getAttribute('id')}"]`);
5
5
  const add = form.querySelector('.file-upload__add');
6
6
  form.querySelector('button').remove();
7
- input.addEventListener("change", function (e) {
7
+ input.addEventListener('change', function (e) {
8
8
  // prevent default to allow drop
9
- let url = form.getAttribute('action');
10
- let formData = new FormData(form);
9
+ const url = form.getAttribute('action');
10
+ const formData = new FormData(form);
11
11
  input.setAttribute('disabled', 'disabled');
12
12
  fetch(url, {
13
13
  method: 'POST',
14
- body: formData
15
- })
16
- .then(() => {
14
+ body: formData,
15
+ }).then(() => {
17
16
  form.classList.add('file-uploaded');
18
17
  label.innerHTML = 'File uploaded';
19
- if (typeof callback == "function")
18
+ if (typeof callback == 'function')
20
19
  callback();
21
20
  });
22
21
  }, false);
23
- form.addEventListener("submit", function (e) {
22
+ form.addEventListener('submit', function (e) {
24
23
  // prevent default to allow drop
25
24
  e.preventDefault();
26
25
  }, false);
27
- add.addEventListener("click", function (e) {
26
+ add.addEventListener('click', function (e) {
28
27
  form.classList.remove('file-uploaded');
29
28
  label.innerHTML = 'Select a file to upload';
30
29
  input.removeAttribute('disabled');
@@ -9,7 +9,7 @@ function fileupload(fileupload, wrapper) {
9
9
  // We clone the input field to work as a buffer input field, this allows us to add new files without losing the old ones
10
10
  const cloneInput = input.cloneNode();
11
11
  dropArea.append(cloneInput);
12
- let checkFileExt = function (filename) {
12
+ const checkFileExt = function (filename) {
13
13
  if (!input.hasAttribute('accept'))
14
14
  return true;
15
15
  const nameExtension = filename.split('.').pop();
@@ -47,7 +47,7 @@ function fileupload(fileupload, wrapper) {
47
47
  cloneInput.addEventListener('change', (event) => {
48
48
  if (input.hasAttribute('multiple')) {
49
49
  const filesArray = [...input.files, ...cloneInput.files];
50
- let fileNames = [];
50
+ const fileNames = [];
51
51
  const dt = new DataTransfer();
52
52
  for (let i = 0; i < filesArray.length; i++) {
53
53
  const file = filesArray[i];
@@ -81,7 +81,7 @@ function fileupload(fileupload, wrapper) {
81
81
  });
82
82
  input.addEventListener('change', (event) => {
83
83
  if (input.files.length == 1) {
84
- let file = input.files[0];
84
+ const file = input.files[0];
85
85
  const size = file.size / 1000;
86
86
  if (!checkFileExt(file.name)) {
87
87
  errorMsgExt.classList.add('d-block');
@@ -99,7 +99,7 @@ function fileupload(fileupload, wrapper) {
99
99
  for (const file of input.files) {
100
100
  filesWrapper.innerHTML += `<span class="file" part="file">${file.name} <button data-file="${file.name}">Remove</button></span>`;
101
101
  }
102
- const elementChangeEvent = new CustomEvent('elementchange', { detail: { "files": input.files } });
102
+ const elementChangeEvent = new CustomEvent('elementchange', { detail: { files: input.files } });
103
103
  fileupload.dispatchEvent(elementChangeEvent);
104
104
  if (input.files.length == 0) {
105
105
  const emptyEvent = new CustomEvent('empty');
@@ -107,7 +107,7 @@ function fileupload(fileupload, wrapper) {
107
107
  }
108
108
  });
109
109
  if (fileupload.hasAttribute('data-filename')) {
110
- let filename = fileupload.getAttribute('data-filename');
110
+ const filename = fileupload.getAttribute('data-filename');
111
111
  if (filename)
112
112
  filesWrapper.innerHTML = `<span class="file">${filename} <button data-file="${filename}">Remove</button></span>`;
113
113
  }
@@ -3,7 +3,7 @@ function filterlist(list, input) {
3
3
  addFilterlistEventListeners(list, input);
4
4
  }
5
5
  function addFilterlistEventListeners(list, input) {
6
- var timer;
6
+ let timer;
7
7
  input.addEventListener('keyup', (event) => {
8
8
  clearTimeout(timer);
9
9
  timer = setTimeout(function () {
@@ -17,7 +17,7 @@ function addFilterlistEventListeners(list, input) {
17
17
  }
18
18
  export const filterTheList = function (list, searchTerm) {
19
19
  Array.from(list.querySelectorAll(':scope > li')).forEach((item, index) => {
20
- let content = item.textContent.toLowerCase();
20
+ const content = item.textContent.toLowerCase();
21
21
  item.classList.add('d-none');
22
22
  if (content.includes(searchTerm.toLowerCase()))
23
23
  item.classList.remove('d-none');
@@ -25,8 +25,8 @@ export const filterTheList = function (list, searchTerm) {
25
25
  // Data layer Web component created
26
26
  window.dataLayer = window.dataLayer || [];
27
27
  window.dataLayer.push({
28
- "event": "Filtered list",
29
- "value": searchTerm
28
+ event: 'Filtered list',
29
+ value: searchTerm,
30
30
  });
31
31
  };
32
32
  export default filterlist;
@@ -3,8 +3,8 @@
3
3
  // The link between the two will prevent the max input field form setting a lower value than the min and vice versa
4
4
  function inputRange(inputWrapper) {
5
5
  inputWrapper.addEventListener('change', function (e) {
6
- var min = parseInt(inputWrapper.querySelector('[data-min] select,[data-min] input').value);
7
- var max = parseInt(inputWrapper.querySelector('[data-max] select,[data-max] input').value);
6
+ const min = parseInt(inputWrapper.querySelector('[data-min] select,[data-min] input').value);
7
+ const max = parseInt(inputWrapper.querySelector('[data-max] select,[data-max] input').value);
8
8
  // Set attributes for input fields
9
9
  Array.from(inputWrapper.querySelectorAll('[data-min] input')).forEach((input, index) => {
10
10
  input.setAttribute('max', max);
@@ -36,7 +36,7 @@ function inputRedirect(inputWrapper) {
36
36
  document.location.href = url;
37
37
  }
38
38
  else {
39
- if (typeof inputWrapper.value != "undefined")
39
+ if (typeof inputWrapper.value != 'undefined')
40
40
  document.location.href = inputWrapper.value;
41
41
  }
42
42
  }, false);
@@ -47,18 +47,22 @@ function multipleFileUploads(wrapper) {
47
47
  const clone = fileTenplate.cloneNode(true);
48
48
  const addButton = wrapper.querySelector('[data-add]');
49
49
  wrapper.addEventListener('click', function (e) {
50
- for (var target = e.target; target && target != this; target = target.parentNode) {
51
- if (target.matches('[data-add]')) { // Add a new row upload file input fields
50
+ for (let target = e.target; target && target != this; target = target.parentNode) {
51
+ if (target.matches('[data-add]')) {
52
+ // Add a new row upload file input fields
52
53
  const tempClone = clone.cloneNode(true);
53
54
  wrapper.insertBefore(tempClone, target);
54
- if (addButton.matches('[data-maxfiles]') && Array.from(wrapper.querySelectorAll(':scope > .row')).length >= addButton.dataset.maxfiles)
55
+ if (addButton.matches('[data-maxfiles]') &&
56
+ Array.from(wrapper.querySelectorAll(':scope > .row')).length >= addButton.dataset.maxfiles)
55
57
  addButton.setAttribute('disabled', 'disabled');
56
58
  break;
57
59
  }
58
- if (target.matches('[data-delete]')) { // Delete the current row
59
- let row = target.closest('.row');
60
+ if (target.matches('[data-delete]')) {
61
+ // Delete the current row
62
+ const row = target.closest('.row');
60
63
  row.remove();
61
- if (addButton.matches('[data-maxfiles]') && Array.from(wrapper.querySelectorAll(':scope > .row')).length < addButton.dataset.maxfiles)
64
+ if (addButton.matches('[data-maxfiles]') &&
65
+ Array.from(wrapper.querySelectorAll(':scope > .row')).length < addButton.dataset.maxfiles)
62
66
  addButton.removeAttribute('disabled');
63
67
  break;
64
68
  }
@@ -79,7 +83,7 @@ function form(formElement) {
79
83
  });
80
84
  // Check the file size of a file when uploaded in case it exceeds the max file size set
81
85
  formElement.addEventListener('change', function (e) {
82
- for (var target = e.target; target && target != this; target = target.parentNode) {
86
+ for (let target = e.target; target && target != this; target = target.parentNode) {
83
87
  if (target.matches('[type="file"][data-filesize]') && target.files && target.files[0]) {
84
88
  const maxAllowedSize = target.dataset.filesize;
85
89
  if (target.files[0].size > maxAllowedSize) {
@@ -94,10 +98,10 @@ function form(formElement) {
94
98
  formElement.addEventListener('change', function (e) {
95
99
  // Remove disabled attribute when a pre-selected input field equals a certain value
96
100
  Array.from(formElement.querySelectorAll('select[data-activeif][data-equals],input[data-activeif][data-equals]')).forEach((arrayElement, index) => {
97
- let group = arrayElement.closest('[data-group]') ? arrayElement.closest('[data-group]') : formElement;
98
- let selector = arrayElement.dataset.activeif;
99
- let value = arrayElement.dataset.equals;
100
- let testElement = group.querySelector(`select[data-id="${selector}"],input[data-id="${selector}"]`);
101
+ const group = arrayElement.closest('[data-group]') ? arrayElement.closest('[data-group]') : formElement;
102
+ const selector = arrayElement.dataset.activeif;
103
+ const value = arrayElement.dataset.equals;
104
+ const testElement = group.querySelector(`select[data-id="${selector}"],input[data-id="${selector}"]`);
101
105
  if (testElement.value == value) {
102
106
  arrayElement.removeAttribute('disabled');
103
107
  }
@@ -108,10 +112,10 @@ function form(formElement) {
108
112
  });
109
113
  // Show this input wrapper when a pre-selected input field equals a certain value
110
114
  Array.from(formElement.querySelectorAll('.form-control__wrapper[data-displayif][data-equals]')).forEach((arrayElement, index) => {
111
- let group = arrayElement.closest('[data-group]') ? arrayElement.closest('[data-group]') : formElement;
112
- let selector = arrayElement.dataset.activeif;
113
- let value = arrayElement.dataset.equals;
114
- let testElement = group.querySelector(`select[data-id="${selector}"],input[data-id="${selector}"]`);
115
+ const group = arrayElement.closest('[data-group]') ? arrayElement.closest('[data-group]') : formElement;
116
+ const selector = arrayElement.dataset.activeif;
117
+ const value = arrayElement.dataset.equals;
118
+ const testElement = group.querySelector(`select[data-id="${selector}"],input[data-id="${selector}"]`);
115
119
  if (testElement.value == value)
116
120
  arrayElement.classList.remove('d-none');
117
121
  else
@@ -8,9 +8,9 @@
8
8
  * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.
9
9
  */
10
10
  export const addBodyClasses = (body) => {
11
- body.classList.add("js-enabled");
11
+ body.classList.add('js-enabled');
12
12
  if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
13
- body.classList.add("ie");
13
+ body.classList.add('ie');
14
14
  }
15
15
  return null;
16
16
  };
@@ -35,26 +35,30 @@ export const addGlobalEvents = (body) => {
35
35
  };
36
36
  if (location.hash)
37
37
  checkElements(location.hash);
38
- window.addEventListener('hashchange', function () { checkElements(location.hash); }, false);
39
- addEventListener("popstate", (event) => {
40
- if (event && event.state && event.state.type && event.state.type == "pagination") {
41
- let form = document.querySelector(`#${event.state.form}`);
42
- let pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);
38
+ window.addEventListener('hashchange', function () {
39
+ checkElements(location.hash);
40
+ }, false);
41
+ addEventListener('popstate', (event) => {
42
+ if (event && event.state && event.state.type && event.state.type == 'pagination') {
43
+ const form = document.querySelector(`#${event.state.form}`);
44
+ const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);
43
45
  if (pageInput)
44
46
  pageInput.value = event.state.page;
45
47
  else
46
48
  form.innerHTML += `<input name="page" type="hidden" data-pagination="true" value="${event.state.page}" />`;
47
- form.dispatchEvent(new Event("submit"));
49
+ form.dispatchEvent(new Event('submit'));
48
50
  }
49
51
  });
50
- document.addEventListener("submit", (event) => {
52
+ document.addEventListener('submit', (event) => {
51
53
  if (event && event.target instanceof HTMLElement && event.target.matches('form')) {
52
- let form = event.target;
54
+ const form = event.target;
53
55
  // Reset password types
54
56
  Array.from(form.querySelectorAll('[data-password-type]')).forEach((input, index) => {
55
57
  input.setAttribute('type', 'password');
56
58
  });
57
- if (form.querySelector(':invalid') || form.querySelector('.pwd-checker[data-strength="1"]') || form.querySelector('.pwd-checker[data-strength="2"]')) {
59
+ if (form.querySelector(':invalid') ||
60
+ form.querySelector('.pwd-checker[data-strength="1"]') ||
61
+ form.querySelector('.pwd-checker[data-strength="2"]')) {
58
62
  form.classList.add('was-validated');
59
63
  event.preventDefault();
60
64
  }
@@ -64,8 +68,8 @@ export const addGlobalEvents = (body) => {
64
68
  }
65
69
  }
66
70
  });
67
- document.addEventListener("keydown", (e) => {
68
- if (e.key === "Escape") {
71
+ document.addEventListener('keydown', (e) => {
72
+ if (e.key === 'Escape') {
69
73
  if (document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')) {
70
74
  e.preventDefault();
71
75
  e.stopPropagation();
@@ -73,20 +77,23 @@ export const addGlobalEvents = (body) => {
73
77
  }
74
78
  });
75
79
  Array.from(document.querySelectorAll('label progress')).forEach((progress, index) => {
76
- let label = progress.closest('label');
80
+ const label = progress.closest('label');
77
81
  label.setAttribute('data-percent', progress.getAttribute('value'));
78
82
  });
79
83
  return null;
80
84
  };
81
85
  export const isNumeric = function (str) {
82
- if (typeof str != "string")
83
- return false; // we only process strings!
84
- return !isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...
85
- !isNaN(parseFloat(str)); // ...and ensure strings of whitespace fail
86
+ if (typeof str != 'string')
87
+ return false; // we only process strings!
88
+ return (!isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...
89
+ !isNaN(parseFloat(str))); // ...and ensure strings of whitespace fail
86
90
  };
87
91
  export const zeroPad = (num, places) => String(num).padStart(places, '0');
88
92
  export const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);
89
- export const ucwords = (str) => str.split(' ').map(s => ucfirst(s)).join(' ');
93
+ export const ucwords = (str) => str
94
+ .split(' ')
95
+ .map((s) => ucfirst(s))
96
+ .join(' ');
90
97
  export const unsnake = (str) => str.replace(/_/g, ' ');
91
98
  export const snake = (str) => str.replace(/ /g, '_');
92
99
  export const safeID = function (str) {
@@ -96,51 +103,54 @@ export const safeID = function (str) {
96
103
  return str;
97
104
  };
98
105
  export const numberOfDays = function (startDateString, endDateString) {
99
- let convertStart = startDateString.split('/');
100
- let convertEnd = endDateString.split('/');
101
- let dateStart = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);
102
- let dateEnd = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);
103
- if (dateStart == "Invalid Date")
104
- throw "Start date is not a valid date";
105
- if (dateEnd == "Invalid Date")
106
- throw "End date is not a valid date";
106
+ const convertStart = startDateString.split('/');
107
+ const convertEnd = endDateString.split('/');
108
+ const dateStart = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);
109
+ const dateEnd = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);
110
+ if (dateStart == 'Invalid Date')
111
+ throw 'Start date is not a valid date';
112
+ if (dateEnd == 'Invalid Date')
113
+ throw 'End date is not a valid date';
107
114
  // To calculate the time difference of two dates
108
- let diffTime = dateEnd.getTime() - dateStart.getTime();
109
- let numberOfDays = (diffTime / (1000 * 3600 * 24) + 1);
115
+ const diffTime = dateEnd.getTime() - dateStart.getTime();
116
+ const numberOfDays = diffTime / (1000 * 3600 * 24) + 1;
110
117
  if (numberOfDays < 0)
111
- throw "The start date should be before the end date";
118
+ throw 'The start date should be before the end date';
112
119
  return numberOfDays;
113
120
  };
114
121
  // Used to get values from nested json objects
115
- export const resolvePath = (object, path, defaultValue) => path.split(/[\.\[\]\'\"]/).filter(p => p).reduce((o, p) => o ? o[p] : defaultValue, object);
116
- export const isTraversable = o => Array.isArray(o) || o !== null && ['function', 'object'].includes(typeof o);
122
+ export const resolvePath = (object, path, defaultValue) => path
123
+ .split(/[\.\[\]\'\"]/)
124
+ .filter((p) => p)
125
+ .reduce((o, p) => (o ? o[p] : defaultValue), object);
126
+ export const isTraversable = (o) => Array.isArray(o) || (o !== null && ['function', 'object'].includes(typeof o));
117
127
  export const getSwipeDirection = (touchstartX, touchstartY, touchendX, touchendY) => {
118
- const limit = Math.tan(45 * 1.5 / 180 * Math.PI);
119
- let pageWidth = window.innerWidth || document.body.clientWidth;
120
- let treshold = Math.max(1, Math.floor(0.01 * (pageWidth)));
121
- let x = touchendX - touchstartX;
122
- let y = touchendY - touchstartY;
123
- let xy = Math.abs(x / y);
124
- let yx = Math.abs(y / x);
128
+ const limit = Math.tan(((45 * 1.5) / 180) * Math.PI);
129
+ const pageWidth = window.innerWidth || document.body.clientWidth;
130
+ const treshold = Math.max(1, Math.floor(0.01 * pageWidth));
131
+ const x = touchendX - touchstartX;
132
+ const y = touchendY - touchstartY;
133
+ const xy = Math.abs(x / y);
134
+ const yx = Math.abs(y / x);
125
135
  if (Math.abs(x) > treshold || Math.abs(y) > treshold) {
126
136
  if (yx <= limit) {
127
137
  if (x < 0) {
128
- return "left";
138
+ return 'left';
129
139
  }
130
140
  else {
131
- return "right";
141
+ return 'right';
132
142
  }
133
143
  }
134
144
  if (xy <= limit) {
135
145
  if (y < 0) {
136
- return "top";
146
+ return 'top';
137
147
  }
138
148
  else {
139
- return "bottom";
149
+ return 'bottom';
140
150
  }
141
151
  }
142
152
  }
143
153
  else {
144
- return "tap";
154
+ return 'tap';
145
155
  }
146
156
  };
@@ -4,18 +4,18 @@ const extendInputs = (body) => {
4
4
  function loadInput() {
5
5
  // maxlength counter init
6
6
  Array.from(document.querySelectorAll('input[maxlength],textarea[maxlength]')).forEach((input, index) => {
7
- let wrapper = input.parentElement;
7
+ const wrapper = input.parentElement;
8
8
  setMaxlengthVars(input, wrapper);
9
9
  });
10
10
  Array.from(document.querySelectorAll('label input')).forEach((input, index) => {
11
11
  if (!input.closest('label').querySelector('.optional-text') && !input.hasAttribute('required')) {
12
12
  if (input.parentNode.tagName.toLowerCase() == 'span')
13
- input.parentElement.insertAdjacentHTML("beforebegin", `<span class="optional-text"></span>`);
13
+ input.parentElement.insertAdjacentHTML('beforebegin', `<span class="optional-text"></span>`);
14
14
  else
15
- input.insertAdjacentHTML("beforebegin", `<span class="optional-text"></span>`);
15
+ input.insertAdjacentHTML('beforebegin', `<span class="optional-text"></span>`);
16
16
  }
17
17
  });
18
- // Date restrictions
18
+ // Date restrictions
19
19
  if (document.querySelector('input[type="date"]')) {
20
20
  const today = new Date();
21
21
  function formatDate(date) {
@@ -25,25 +25,25 @@ const extendInputs = (body) => {
25
25
  return `${year}-${month}-${day}`;
26
26
  }
27
27
  Array.from(document.querySelectorAll('input[type="date"]')).forEach((input, index) => {
28
- let startDate = today;
28
+ const startDate = today;
29
29
  if (input.hasAttribute('data-start')) {
30
30
  startDate.setDate(startDate.getDate() + parseInt(input.getAttribute('data-start')));
31
31
  input.setAttribute('min', formatDate(startDate));
32
32
  }
33
33
  if (input.hasAttribute('data-period')) {
34
- let timePeriod = parseInt(input.getAttribute('data-period'));
35
- let endDate = new Date();
34
+ const timePeriod = parseInt(input.getAttribute('data-period'));
35
+ const endDate = new Date();
36
36
  endDate.setDate(startDate.getDate() + timePeriod);
37
37
  input.setAttribute('max', formatDate(endDate));
38
38
  }
39
39
  if (input.hasAttribute('data-allowed-days')) {
40
- let allowedDays = JSON.parse(`[${input.getAttribute('data-allowed-days')}]`);
40
+ const allowedDays = JSON.parse(`[${input.getAttribute('data-allowed-days')}]`);
41
41
  input.addEventListener('input', function (e) {
42
- var day = new Date(this.value).getUTCDay();
42
+ const day = new Date(this.value).getUTCDay();
43
43
  if (allowedDays.includes(day))
44
- input.setCustomValidity("");
44
+ input.setCustomValidity('');
45
45
  else
46
- input.setCustomValidity("That day of the week is not allowed");
46
+ input.setCustomValidity('That day of the week is not allowed');
47
47
  });
48
48
  }
49
49
  });
@@ -53,7 +53,7 @@ const extendInputs = (body) => {
53
53
  loadInput();
54
54
  }
55
55
  document.onreadystatechange = () => {
56
- if (document.readyState === "complete") {
56
+ if (document.readyState === 'complete') {
57
57
  loadInput();
58
58
  }
59
59
  };
@@ -65,7 +65,7 @@ const extendInputs = (body) => {
65
65
  if (input.hasAttribute('type') && input.getAttribute('type') == 'color')
66
66
  input.nextElementSibling.value = input.value;
67
67
  if (input.hasAttribute('maxlength') && input.nextElementSibling)
68
- input.nextElementSibling.setAttribute("data-count", input.value.length);
68
+ input.nextElementSibling.setAttribute('data-count', input.value.length);
69
69
  if (input.hasAttribute('data-strength-checker'))
70
70
  checkPWDStrength(input);
71
71
  }
@@ -91,7 +91,9 @@ const extendInputs = (body) => {
91
91
  }
92
92
  });
93
93
  body.addEventListener('click', (event) => {
94
- if (event && event.target instanceof HTMLElement && event.target.closest('[data-change-type][data-input]:not(select)')) {
94
+ if (event &&
95
+ event.target instanceof HTMLElement &&
96
+ event.target.closest('[data-change-type][data-input]:not(select)')) {
95
97
  const button = event.target.closest('[data-change-type]');
96
98
  const input = document.getElementById(button.getAttribute('data-input'));
97
99
  const newType = button.getAttribute('data-change-type');
@@ -106,9 +108,9 @@ const extendInputs = (body) => {
106
108
  });
107
109
  };
108
110
  export const setMaxlengthVars = (input) => {
109
- let wrapper = input.parentElement;
110
- let maxlength = input.getAttribute('maxlength');
111
- wrapper.style.setProperty("--maxlength", maxlength);
111
+ const wrapper = input.parentElement;
112
+ const maxlength = input.getAttribute('maxlength');
113
+ wrapper.style.setProperty('--maxlength', maxlength);
112
114
  let span = input.nextElementSibling;
113
115
  if (!span || (span && span.classList.contains('invalid-feedback'))) {
114
116
  span = document.createElement('span');
@@ -126,7 +128,7 @@ export const checkPWDStrength = (input, check = 'no') => {
126
128
  const password = input.value;
127
129
  const minChars = input.hasAttribute('minlength') ? input.getAttribute('minlength') : 12;
128
130
  let strength = 1;
129
- let strengthName = ['Very weak', 'Weak', 'Average', 'Strong', 'Very strong'];
131
+ const strengthName = ['Very weak', 'Weak', 'Average', 'Strong', 'Very strong'];
130
132
  let extraMsg = '';
131
133
  //has number
132
134
  if (password.match(/(?=.*[0-9])/))
@@ -151,13 +153,15 @@ export const checkPWDStrength = (input, check = 'no') => {
151
153
  checkhibpCheck(event, input);
152
154
  });
153
155
  function checkhibpCheck(event, input) {
154
- if (event.detail) { // found
156
+ if (event.detail) {
157
+ // found
155
158
  checkPWDStrength(input, 'danger');
156
159
  }
157
- else { // not found
160
+ else {
161
+ // not found
158
162
  checkPWDStrength(input, 'success');
159
163
  }
160
- input.removeEventListener("hibpCheck", checkhibpCheck); // Succeeds
164
+ input.removeEventListener('hibpCheck', checkhibpCheck); // Succeeds
161
165
  }
162
166
  }
163
167
  else if (strength >= 3 && check == 'danger') {
@@ -11,7 +11,9 @@ const navbar = (element) => {
11
11
  }, false);
12
12
  });
13
13
  if ('IntersectionObserver' in window) {
14
- const observer = new IntersectionObserver(([e]) => e.target.classList.toggle("is-stuck", e.intersectionRatio < 1), { threshold: [1] });
14
+ const observer = new IntersectionObserver(([e]) => e.target.classList.toggle('is-stuck', e.intersectionRatio < 1), {
15
+ threshold: [1],
16
+ });
15
17
  observer.observe(element);
16
18
  }
17
19
  };