@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,103 +1,100 @@
1
1
  // @ts-nocheck
2
2
  // Create a link between two input/selects with one acting as setting a minimum value and the second a maximum
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
- function inputRange(inputWrapper){
5
-
6
- inputWrapper.addEventListener('change', function(e){
7
-
8
- var min = parseInt(inputWrapper.querySelector('[data-min] select,[data-min] input').value);
9
- var max = parseInt(inputWrapper.querySelector('[data-max] select,[data-max] input').value);
10
-
11
- // Set attributes for input fields
12
- Array.from(inputWrapper.querySelectorAll('[data-min] input')).forEach((input, index) => {
13
-
14
- input.setAttribute('max',max);
15
- });
16
-
17
- Array.from(inputWrapper.querySelectorAll('[data-max] input')).forEach((input, index) => {
18
-
19
- input.setAttribute('min',min);
20
- });
21
-
22
- // Hide select options if they are higher or lower than the min and max values
23
- Array.from(inputWrapper.querySelectorAll('[data-min] select option')).forEach((option, index) => {
24
-
25
- if(parseInt(option.getAttribute('value')) > max)
26
- option.classList.add('d-none');
27
- else
28
- option.classList.remove('d-none');
29
- });
30
-
31
- Array.from(inputWrapper.querySelectorAll('[data-max] select option')).forEach((option, index) => {
32
-
33
- if(parseInt(option.getAttribute('value')) < min)
34
- option.classList.add('d-none');
35
- else
36
- option.classList.remove('d-none');
37
- });
38
-
39
- }, false);
4
+ function inputRange(inputWrapper) {
5
+ inputWrapper.addEventListener(
6
+ 'change',
7
+ function (e) {
8
+ const min = parseInt(inputWrapper.querySelector('[data-min] select,[data-min] input').value);
9
+ const max = parseInt(inputWrapper.querySelector('[data-max] select,[data-max] input').value);
10
+
11
+ // Set attributes for input fields
12
+ Array.from(inputWrapper.querySelectorAll('[data-min] input')).forEach((input, index) => {
13
+ input.setAttribute('max', max);
14
+ });
15
+
16
+ Array.from(inputWrapper.querySelectorAll('[data-max] input')).forEach((input, index) => {
17
+ input.setAttribute('min', min);
18
+ });
19
+
20
+ // Hide select options if they are higher or lower than the min and max values
21
+ Array.from(inputWrapper.querySelectorAll('[data-min] select option')).forEach((option, index) => {
22
+ if (parseInt(option.getAttribute('value')) > max) option.classList.add('d-none');
23
+ else option.classList.remove('d-none');
24
+ });
25
+
26
+ Array.from(inputWrapper.querySelectorAll('[data-max] select option')).forEach((option, index) => {
27
+ if (parseInt(option.getAttribute('value')) < min) option.classList.add('d-none');
28
+ else option.classList.remove('d-none');
29
+ });
30
+ },
31
+ false
32
+ );
40
33
  }
41
34
 
42
- function inputRedirect(inputWrapper){
43
-
44
-
45
- inputWrapper.addEventListener('change', function(e){
46
-
47
- if(inputWrapper.matches('[data-value-if]')) {
48
-
49
- const url = inputWrapper.getAttribute('data-redirect');
50
- const desiredValue = inputWrapper.getAttribute('data-value-if');
51
-
52
- if(inputWrapper.value == desiredValue)
53
- document.location.href = url;
54
- }
55
- else {
56
-
57
- if(typeof inputWrapper.value != "undefined")
58
- document.location.href = inputWrapper.value;
59
- }
60
-
61
- }, false);
35
+ function inputRedirect(inputWrapper) {
36
+ inputWrapper.addEventListener(
37
+ 'change',
38
+ function (e) {
39
+ if (inputWrapper.matches('[data-value-if]')) {
40
+ const url = inputWrapper.getAttribute('data-redirect');
41
+ const desiredValue = inputWrapper.getAttribute('data-value-if');
42
+
43
+ if (inputWrapper.value == desiredValue) document.location.href = url;
44
+ } else {
45
+ if (typeof inputWrapper.value != 'undefined') document.location.href = inputWrapper.value;
46
+ }
47
+ },
48
+ false
49
+ );
62
50
  }
63
51
 
64
52
  //
65
- function multipleFileUploads(wrapper){
66
-
53
+ function multipleFileUploads(wrapper) {
67
54
  const fileTenplate = wrapper.querySelector('.row');
68
55
  const clone = fileTenplate.cloneNode(true);
69
56
  const addButton = wrapper.querySelector('[data-add]');
70
57
 
71
- wrapper.addEventListener('click', function(e){
72
- for (var target = e.target; target && target != this; target = target.parentNode) {
73
- if (target.matches('[data-add]')) { // Add a new row upload file input fields
74
-
75
- const tempClone = clone.cloneNode(true);
76
- wrapper.insertBefore(tempClone,target);
77
-
78
- if(addButton.matches('[data-maxfiles]') && Array.from(wrapper.querySelectorAll(':scope > .row')).length >= addButton.dataset.maxfiles)
79
- addButton.setAttribute('disabled','disabled');
80
-
81
- break;
82
- }
83
- if (target.matches('[data-delete]')) { // Delete the current row
84
-
85
- let row = target.closest('.row');
86
- row.remove();
87
-
88
- if(addButton.matches('[data-maxfiles]') && Array.from(wrapper.querySelectorAll(':scope > .row')).length < addButton.dataset.maxfiles)
89
- addButton.removeAttribute('disabled');
90
-
91
- break;
58
+ wrapper.addEventListener(
59
+ 'click',
60
+ function (e) {
61
+ for (let target = e.target; target && target != this; target = target.parentNode) {
62
+ if (target.matches('[data-add]')) {
63
+ // Add a new row upload file input fields
64
+
65
+ const tempClone = clone.cloneNode(true);
66
+ wrapper.insertBefore(tempClone, target);
67
+
68
+ if (
69
+ addButton.matches('[data-maxfiles]') &&
70
+ Array.from(wrapper.querySelectorAll(':scope > .row')).length >= addButton.dataset.maxfiles
71
+ )
72
+ addButton.setAttribute('disabled', 'disabled');
73
+
74
+ break;
75
+ }
76
+ if (target.matches('[data-delete]')) {
77
+ // Delete the current row
78
+
79
+ const row = target.closest('.row');
80
+ row.remove();
81
+
82
+ if (
83
+ addButton.matches('[data-maxfiles]') &&
84
+ Array.from(wrapper.querySelectorAll(':scope > .row')).length < addButton.dataset.maxfiles
85
+ )
86
+ addButton.removeAttribute('disabled');
87
+
88
+ break;
89
+ }
92
90
  }
93
- }
94
-
95
- }, false);
91
+ },
92
+ false
93
+ );
96
94
  }
97
95
 
98
96
  // Acts as an overall initialise function to trigger other functions.
99
97
  function form(formElement) {
100
-
101
98
  // Check for input range groups
102
99
  Array.from(formElement.querySelectorAll('[data-input-range]')).forEach((arrayElement, index) => {
103
100
  inputRange(arrayElement);
@@ -111,59 +108,60 @@ function form(formElement) {
111
108
  multipleFileUploads(arrayElement);
112
109
  });
113
110
 
114
-
115
111
  // Check the file size of a file when uploaded in case it exceeds the max file size set
116
- formElement.addEventListener('change', function(e){
117
- for (var target = e.target; target && target != this; target = target.parentNode) {
118
- if (target.matches('[type="file"][data-filesize]') && target.files && target.files[0]) {
119
-
112
+ formElement.addEventListener(
113
+ 'change',
114
+ function (e) {
115
+ for (let target = e.target; target && target != this; target = target.parentNode) {
116
+ if (target.matches('[type="file"][data-filesize]') && target.files && target.files[0]) {
120
117
  const maxAllowedSize = target.dataset.filesize;
121
118
  if (target.files[0].size > maxAllowedSize) {
122
-
123
119
  target.value = '';
124
120
  alert('File too large');
125
121
  }
126
- break;
122
+ break;
123
+ }
127
124
  }
128
- }
129
- }, false);
130
-
125
+ },
126
+ false
127
+ );
131
128
 
132
129
  // When a form is updated we may want to update some of the existing input fields; setting active fields when some data is selected.
133
- formElement.addEventListener('change', function(e){
134
-
135
- // Remove disabled attribute when a pre-selected input field equals a certain value
136
- Array.from(formElement.querySelectorAll('select[data-activeif][data-equals],input[data-activeif][data-equals]')).forEach((arrayElement, index) => {
137
-
138
- let group = arrayElement.closest('[data-group]') ? arrayElement.closest('[data-group]') : formElement;
139
- let selector = arrayElement.dataset.activeif;
140
- let value = arrayElement.dataset.equals;
141
- let testElement = group.querySelector(`select[data-id="${selector}"],input[data-id="${selector}"]`);
142
-
143
- if(testElement.value == value){
144
- arrayElement.removeAttribute('disabled');
145
- }
146
- else {
147
- arrayElement.setAttribute('disabled','disabled');
148
- arrayElement.value = '';
149
- }
150
- });
151
-
152
- // Show this input wrapper when a pre-selected input field equals a certain value
153
- Array.from(formElement.querySelectorAll('.form-control__wrapper[data-displayif][data-equals]')).forEach((arrayElement, index) => {
154
-
155
- let group = arrayElement.closest('[data-group]') ? arrayElement.closest('[data-group]') : formElement;
156
- let selector = arrayElement.dataset.activeif;
157
- let value = arrayElement.dataset.equals;
158
- let testElement = group.querySelector(`select[data-id="${selector}"],input[data-id="${selector}"]`);
159
-
160
- if(testElement.value == value)
161
- arrayElement.classList.remove('d-none');
162
- else
163
- arrayElement.classList.add('d-none');
164
- });
165
-
166
- }, false);
130
+ formElement.addEventListener(
131
+ 'change',
132
+ function (e) {
133
+ // Remove disabled attribute when a pre-selected input field equals a certain value
134
+ Array.from(
135
+ formElement.querySelectorAll('select[data-activeif][data-equals],input[data-activeif][data-equals]')
136
+ ).forEach((arrayElement, index) => {
137
+ const group = arrayElement.closest('[data-group]') ? arrayElement.closest('[data-group]') : formElement;
138
+ const selector = arrayElement.dataset.activeif;
139
+ const value = arrayElement.dataset.equals;
140
+ const testElement = group.querySelector(`select[data-id="${selector}"],input[data-id="${selector}"]`);
141
+
142
+ if (testElement.value == value) {
143
+ arrayElement.removeAttribute('disabled');
144
+ } else {
145
+ arrayElement.setAttribute('disabled', 'disabled');
146
+ arrayElement.value = '';
147
+ }
148
+ });
149
+
150
+ // Show this input wrapper when a pre-selected input field equals a certain value
151
+ Array.from(formElement.querySelectorAll('.form-control__wrapper[data-displayif][data-equals]')).forEach(
152
+ (arrayElement, index) => {
153
+ const group = arrayElement.closest('[data-group]') ? arrayElement.closest('[data-group]') : formElement;
154
+ const selector = arrayElement.dataset.activeif;
155
+ const value = arrayElement.dataset.equals;
156
+ const testElement = group.querySelector(`select[data-id="${selector}"],input[data-id="${selector}"]`);
157
+
158
+ if (testElement.value == value) arrayElement.classList.remove('d-none');
159
+ else arrayElement.classList.add('d-none');
160
+ }
161
+ );
162
+ },
163
+ false
164
+ );
167
165
  }
168
166
 
169
- export default form
167
+ export default form;
@@ -1,7 +1,7 @@
1
1
  // @ts-nocheck
2
- /**
2
+ /**
3
3
  * Global helper functions to help maintain and enhance framework elements.
4
- * @module Helpers
4
+ * @module Helpers
5
5
  */
6
6
 
7
7
  /**
@@ -9,180 +9,174 @@
9
9
  * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.
10
10
  */
11
11
  export const addBodyClasses = (body) => {
12
-
13
- body.classList.add("js-enabled");
12
+ body.classList.add('js-enabled');
14
13
 
15
- if(navigator.userAgent.indexOf('MSIE')!==-1 || navigator.appVersion.indexOf('Trident/') > 0){
16
-
17
- body.classList.add("ie");
14
+ if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
15
+ body.classList.add('ie');
18
16
  }
19
17
 
20
- return null
21
- }
18
+ return null;
19
+ };
22
20
 
23
21
  /**
24
22
  * Add global events.
25
23
  * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.
26
24
  */
27
25
  export const addGlobalEvents = (body) => {
28
-
29
- const checkElements = function(hash){
30
-
31
- const label = document.querySelector(`label[for="${hash.replace('#','')}"]`);
32
- const summary = document.querySelector(hash+' summary');
26
+ const checkElements = function (hash) {
27
+ const label = document.querySelector(`label[for="${hash.replace('#', '')}"]`);
28
+ const summary = document.querySelector(hash + ' summary');
33
29
  const dialog = document.querySelector(`dialog${hash}`);
34
30
  const detail = document.querySelector(`detail${hash}`);
35
31
 
36
- if(label instanceof HTMLElement)
37
- label.click();
38
- else if(summary instanceof HTMLElement)
39
- summary.click();
40
- else if(dialog instanceof HTMLElement)
41
- dialog.showModal();
42
- else if(detail instanceof HTMLElement)
43
- detail.addAttribute('open');
44
- }
32
+ if (label instanceof HTMLElement) label.click();
33
+ else if (summary instanceof HTMLElement) summary.click();
34
+ else if (dialog instanceof HTMLElement) dialog.showModal();
35
+ else if (detail instanceof HTMLElement) detail.addAttribute('open');
36
+ };
37
+
38
+ if (location.hash) checkElements(location.hash);
45
39
 
46
- if(location.hash)
47
- checkElements(location.hash);
40
+ window.addEventListener(
41
+ 'hashchange',
42
+ function () {
43
+ checkElements(location.hash);
44
+ },
45
+ false
46
+ );
48
47
 
49
- window.addEventListener('hashchange', function() { checkElements(location.hash); }, false);
48
+ addEventListener('popstate', (event) => {
49
+ if (event && event.state && event.state.type && event.state.type == 'pagination') {
50
+ const form = document.querySelector(`#${event.state.form}`);
51
+ const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);
50
52
 
51
- addEventListener("popstate", (event) => {
53
+ if (pageInput) pageInput.value = event.state.page;
54
+ else form.innerHTML += `<input name="page" type="hidden" data-pagination="true" value="${event.state.page}" />`;
52
55
 
53
- if(event && event.state && event.state.type && event.state.type == "pagination"){
54
- let form = document.querySelector(`#${event.state.form}`);
55
- let pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);
56
-
57
- if(pageInput)
58
- pageInput.value = event.state.page;
59
- else
60
- form.innerHTML += `<input name="page" type="hidden" data-pagination="true" value="${event.state.page}" />`
61
-
62
- form.dispatchEvent(new Event("submit"));
56
+ form.dispatchEvent(new Event('submit'));
63
57
  }
64
58
  });
65
59
 
66
- document.addEventListener("submit", (event) => {
67
-
68
- if (event && event.target instanceof HTMLElement && event.target.matches('form')){
69
-
70
- let form = event.target;
60
+ document.addEventListener('submit', (event) => {
61
+ if (event && event.target instanceof HTMLElement && event.target.matches('form')) {
62
+ const form = event.target;
71
63
 
72
64
  // Reset password types
73
- Array.from(form.querySelectorAll('[data-password-type]')).forEach((input,index) => {
74
- input.setAttribute('type','password');
65
+ Array.from(form.querySelectorAll('[data-password-type]')).forEach((input, index) => {
66
+ input.setAttribute('type', 'password');
75
67
  });
76
68
 
77
- if(form.querySelector(':invalid') || form.querySelector('.pwd-checker[data-strength="1"]') || form.querySelector('.pwd-checker[data-strength="2"]')){
78
-
69
+ if (
70
+ form.querySelector(':invalid') ||
71
+ form.querySelector('.pwd-checker[data-strength="1"]') ||
72
+ form.querySelector('.pwd-checker[data-strength="2"]')
73
+ ) {
79
74
  form.classList.add('was-validated');
80
75
  event.preventDefault();
81
76
  }
82
77
 
83
- if(form.querySelector('iam-multiselect[data-is-required][data-error]')){
84
-
78
+ if (form.querySelector('iam-multiselect[data-is-required][data-error]')) {
85
79
  form.classList.add('was-validated');
86
80
  event.preventDefault();
87
81
  }
88
82
  }
89
-
90
83
  });
91
84
 
92
- document.addEventListener("keydown", (e) => {
93
-
94
- if(e.key === "Escape") {
95
-
96
- if(document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')){
85
+ document.addEventListener('keydown', (e) => {
86
+ if (e.key === 'Escape') {
87
+ if (document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')) {
97
88
  e.preventDefault();
98
89
  e.stopPropagation();
99
90
  }
100
91
  }
101
92
  });
102
93
 
103
- Array.from(document.querySelectorAll('label progress')).forEach((progress,index) => {
104
- let label = progress.closest('label');
94
+ Array.from(document.querySelectorAll('label progress')).forEach((progress, index) => {
95
+ const label = progress.closest('label');
105
96
 
106
- label.setAttribute('data-percent',progress.getAttribute('value'));
97
+ label.setAttribute('data-percent', progress.getAttribute('value'));
107
98
  });
108
99
 
109
- return null
110
- }
111
-
112
- export const isNumeric = function(str) {
113
- if (typeof str != "string") return false // we only process strings!
114
- return !isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...
115
- !isNaN(parseFloat(str)) // ...and ensure strings of whitespace fail
116
- }
117
-
118
- export const zeroPad = (num, places) => String(num).padStart(places, '0')
119
-
120
- export const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1)
121
- export const ucwords = (str) => str.split(' ').map(s => ucfirst(s)).join(' ')
122
- export const unsnake = (str) => str.replace(/_/g, ' ')
123
- export const snake = (str) => str.replace(/ /g, '_')
124
- export const safeID = function(str){
125
-
100
+ return null;
101
+ };
102
+
103
+ export const isNumeric = function (str) {
104
+ if (typeof str != 'string') return false; // we only process strings!
105
+ return (
106
+ !isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...
107
+ !isNaN(parseFloat(str))
108
+ ); // ...and ensure strings of whitespace fail
109
+ };
110
+
111
+ export const zeroPad = (num, places) => String(num).padStart(places, '0');
112
+
113
+ export const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);
114
+ export const ucwords = (str) =>
115
+ str
116
+ .split(' ')
117
+ .map((s) => ucfirst(s))
118
+ .join(' ');
119
+ export const unsnake = (str) => str.replace(/_/g, ' ');
120
+ export const snake = (str) => str.replace(/ /g, '_');
121
+ export const safeID = function (str) {
126
122
  str = str.toLowerCase();
127
123
  str = snake(str);
128
- str = str.replace(/\W/g,'');
124
+ str = str.replace(/\W/g, '');
129
125
 
130
126
  return str;
131
- }
127
+ };
132
128
 
133
- export const numberOfDays = function(startDateString:string,endDateString:string){
129
+ export const numberOfDays = function (startDateString: string, endDateString: string) {
130
+ const convertStart = startDateString.split('/');
131
+ const convertEnd = endDateString.split('/');
132
+ const dateStart: any = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);
133
+ const dateEnd: any = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);
134
134
 
135
- let convertStart = startDateString.split('/');
136
- let convertEnd = endDateString.split('/');
137
- let dateStart:any = new Date(convertStart[1]+'/'+convertStart[0]+'/'+convertStart[2]);
138
- let dateEnd:any = new Date(convertEnd[1]+'/'+convertEnd[0]+'/'+convertEnd[2]);
135
+ if (dateStart == 'Invalid Date') throw 'Start date is not a valid date';
139
136
 
140
- if(dateStart == "Invalid Date")
141
- throw "Start date is not a valid date"
142
-
143
- if(dateEnd == "Invalid Date")
144
- throw "End date is not a valid date"
137
+ if (dateEnd == 'Invalid Date') throw 'End date is not a valid date';
145
138
 
146
139
  // To calculate the time difference of two dates
147
- let diffTime = dateEnd.getTime() - dateStart.getTime();
148
- let numberOfDays = (diffTime / (1000 * 3600 * 24) + 1);
140
+ const diffTime = dateEnd.getTime() - dateStart.getTime();
141
+ const numberOfDays = diffTime / (1000 * 3600 * 24) + 1;
142
+
143
+ if (numberOfDays < 0) throw 'The start date should be before the end date';
149
144
 
150
- if(numberOfDays < 0)
151
- throw "The start date should be before the end date";
152
-
153
145
  return numberOfDays;
154
- }
146
+ };
155
147
  // Used to get values from nested json objects
156
- export const resolvePath = (object, path, defaultValue) => path.split(/[\.\[\]\'\"]/).filter(p => p).reduce((o, p) => o ? o[p] : defaultValue, object);
157
-
158
-
159
- export const isTraversable = o => Array.isArray(o) || o !== null && ['function', 'object'].includes(typeof o);
160
-
161
- export const getSwipeDirection = (touchstartX,touchstartY,touchendX,touchendY) => {
162
-
163
- const limit = Math.tan(45 * 1.5 / 180 * Math.PI);
164
- let pageWidth = window.innerWidth || document.body.clientWidth;
165
- let treshold = Math.max(1,Math.floor(0.01 * (pageWidth)));
166
- let x = touchendX - touchstartX;
167
- let y = touchendY - touchstartY;
168
- let xy = Math.abs(x / y);
169
- let yx = Math.abs(y / x);
148
+ export const resolvePath = (object, path, defaultValue) =>
149
+ path
150
+ .split(/[\.\[\]\'\"]/)
151
+ .filter((p) => p)
152
+ .reduce((o, p) => (o ? o[p] : defaultValue), object);
153
+
154
+ export const isTraversable = (o) => Array.isArray(o) || (o !== null && ['function', 'object'].includes(typeof o));
155
+
156
+ export const getSwipeDirection = (touchstartX, touchstartY, touchendX, touchendY) => {
157
+ const limit = Math.tan(((45 * 1.5) / 180) * Math.PI);
158
+ const pageWidth = window.innerWidth || document.body.clientWidth;
159
+ const treshold = Math.max(1, Math.floor(0.01 * pageWidth));
160
+ const x = touchendX - touchstartX;
161
+ const y = touchendY - touchstartY;
162
+ const xy = Math.abs(x / y);
163
+ const yx = Math.abs(y / x);
170
164
  if (Math.abs(x) > treshold || Math.abs(y) > treshold) {
171
- if (yx <= limit) {
172
- if (x < 0) {
173
- return "left";
174
- } else {
175
- return "right";
176
- }
165
+ if (yx <= limit) {
166
+ if (x < 0) {
167
+ return 'left';
168
+ } else {
169
+ return 'right';
177
170
  }
178
- if (xy <= limit) {
179
- if (y < 0) {
180
- return "top";
181
- } else {
182
- return "bottom";
183
- }
171
+ }
172
+ if (xy <= limit) {
173
+ if (y < 0) {
174
+ return 'top';
175
+ } else {
176
+ return 'bottom';
184
177
  }
178
+ }
185
179
  } else {
186
- return "tap";
180
+ return 'tap';
187
181
  }
188
- }
182
+ };