@iamproperty/components 7.1.0--beta6 → 7.2.0

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 (351) hide show
  1. package/assets/css/components/actionbar.component.css +1 -0
  2. package/assets/css/components/actionbar.component.css.map +1 -0
  3. package/assets/css/components/actionbar.global.css +1 -1
  4. package/assets/css/components/actionbar.global.css.map +1 -1
  5. package/assets/css/components/address-lookup.css +1 -1
  6. package/assets/css/components/address-lookup.css.map +1 -1
  7. package/assets/css/components/barchart.component.css +1 -1
  8. package/assets/css/components/barchart.component.css.map +1 -1
  9. package/assets/css/components/bento-grid.component.css +1 -0
  10. package/assets/css/components/bento-grid.component.css.map +1 -0
  11. package/assets/css/components/card.component.css +1 -1
  12. package/assets/css/components/card.component.css.map +1 -1
  13. package/assets/css/components/carousel.component.css +1 -1
  14. package/assets/css/components/carousel.component.css.map +1 -1
  15. package/assets/css/components/carousel.config.css +1 -1
  16. package/assets/css/components/carousel.config.css.map +1 -1
  17. package/assets/css/components/charts.config.css +1 -1
  18. package/assets/css/components/charts.config.css.map +1 -1
  19. package/assets/css/components/charts.css +1 -1
  20. package/assets/css/components/charts.css.map +1 -1
  21. package/assets/css/components/charts.module.css +1 -1
  22. package/assets/css/components/charts.module.css.map +1 -1
  23. package/assets/css/components/collapsible-side.css +1 -1
  24. package/assets/css/components/collapsible-side.css.map +1 -1
  25. package/assets/css/components/doughnutchart.component.css +1 -0
  26. package/assets/css/components/doughnutchart.component.css.map +1 -0
  27. package/assets/css/components/fileupload.css.map +1 -1
  28. package/assets/css/components/header.css.map +1 -1
  29. package/assets/css/components/inline-edit.preload.css +1 -1
  30. package/assets/css/components/inline-edit.preload.css.map +1 -1
  31. package/assets/css/components/marketing.css.map +1 -1
  32. package/assets/css/components/menu.component.css +1 -0
  33. package/assets/css/components/menu.component.css.map +1 -0
  34. package/assets/css/components/menu.css +1 -0
  35. package/assets/css/components/menu.css.map +1 -0
  36. package/assets/css/components/multi-step.component.css.map +1 -1
  37. package/assets/css/components/multiselect.preload.css +1 -1
  38. package/assets/css/components/multiselect.preload.css.map +1 -1
  39. package/assets/css/components/nav.component.css +1 -0
  40. package/assets/css/components/nav.component.css.map +1 -0
  41. package/assets/css/components/nav.docs.css.map +1 -1
  42. package/assets/css/components/nav.global.css.map +1 -1
  43. package/assets/css/components/nav.old.css +1 -1
  44. package/assets/css/components/nav.old.css.map +1 -1
  45. package/assets/css/components/nav.preload.css +1 -1
  46. package/assets/css/components/nav.preload.css.map +1 -1
  47. package/assets/css/components/notification.css +1 -1
  48. package/assets/css/components/notification.css.map +1 -1
  49. package/assets/css/components/pagination.css +1 -1
  50. package/assets/css/components/pagination.css.map +1 -1
  51. package/assets/css/components/property-searchbar.css.map +1 -1
  52. package/assets/css/components/slider.css +1 -1
  53. package/assets/css/components/slider.css.map +1 -1
  54. package/assets/css/components/snapshot.css.map +1 -1
  55. package/assets/css/components/stepper.css.map +1 -1
  56. package/assets/css/components/{table.css → table.component.css} +1 -1
  57. package/assets/css/components/table.component.css.map +1 -0
  58. package/assets/css/components/table.global.css +1 -1
  59. package/assets/css/components/table.global.css.map +1 -1
  60. package/assets/css/components/tabs.component.css +1 -0
  61. package/assets/css/components/tabs.component.css.map +1 -0
  62. package/assets/css/components/tabs.css +1 -1
  63. package/assets/css/components/tabs.css.map +1 -1
  64. package/assets/css/components/testimonial.css.map +1 -1
  65. package/assets/css/components/timeline.css.map +1 -1
  66. package/assets/css/core.min.css +1 -1
  67. package/assets/css/core.min.css.map +1 -1
  68. package/assets/css/mobile-core.min.css +1 -0
  69. package/assets/css/mobile-core.min.css.map +1 -0
  70. package/assets/css/mobile.min.css +1 -0
  71. package/assets/css/mobile.min.css.map +1 -0
  72. package/assets/css/style.min.css +1 -1
  73. package/assets/css/style.min.css.map +1 -1
  74. package/assets/js/components/_global.js +0 -1
  75. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  76. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  77. package/assets/js/components/actionbar/actionbar.component.js +86 -8
  78. package/assets/js/components/actionbar/actionbar.component.min.js +19 -6
  79. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  80. package/assets/js/components/address-lookup/address-lookup.component.js +17 -18
  81. package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
  82. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  83. package/assets/js/components/applied-filters/applied-filters.component.js +0 -1
  84. package/assets/js/components/applied-filters/applied-filters.component.min.js +4 -4
  85. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  86. package/assets/js/components/barchart/barchart.component.js +2 -3
  87. package/assets/js/components/barchart/barchart.component.min.js +8 -4
  88. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  89. package/assets/js/components/bento-grid/bento-grid.component.js +50 -0
  90. package/assets/js/components/bento-grid/bento-grid.component.min.js +15 -0
  91. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -0
  92. package/assets/js/components/card/card.component.js +10 -13
  93. package/assets/js/components/card/card.component.min.js +7 -7
  94. package/assets/js/components/card/card.component.min.js.map +1 -1
  95. package/assets/js/components/carousel/carousel.component.js +4 -5
  96. package/assets/js/components/carousel/carousel.component.min.js +4 -4
  97. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  98. package/assets/js/components/chart/chart.component.js +1 -5
  99. package/assets/js/components/collapsible-side/collapsible-side.component.js +4 -5
  100. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -4
  101. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  102. package/assets/js/components/doughnutchart/doughnutchart.component.js +70 -0
  103. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +25 -0
  104. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -0
  105. package/assets/js/components/fileupload/fileupload.component.js +2 -3
  106. package/assets/js/components/fileupload/fileupload.component.min.js +6 -6
  107. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  108. package/assets/js/components/filter-card/filter-card.component.js +3 -4
  109. package/assets/js/components/filter-card/filter-card.component.min.js +4 -4
  110. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  111. package/assets/js/components/filterlist/filterlist.component.js +0 -1
  112. package/assets/js/components/filterlist/filterlist.component.min.js +3 -3
  113. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  114. package/assets/js/components/header/header.component.js +0 -1
  115. package/assets/js/components/header/header.component.min.js +1 -1
  116. package/assets/js/components/header/header.component.min.js.map +1 -1
  117. package/assets/js/components/inline-edit/inline-edit.component.js +7 -8
  118. package/assets/js/components/inline-edit/inline-edit.component.min.js +4 -4
  119. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  120. package/assets/js/components/marketing/marketing.component.js +0 -1
  121. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  122. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  123. package/assets/js/components/menu/menu.component.js +200 -0
  124. package/assets/js/components/menu/menu.component.min.js +77 -0
  125. package/assets/js/components/menu/menu.component.min.js.map +1 -0
  126. package/assets/js/components/multi-step/multi-step.component.js +10 -10
  127. package/assets/js/components/multi-step/multi-step.component.min.js +13 -0
  128. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -0
  129. package/assets/js/components/multiselect/multiselect.component.js +10 -10
  130. package/assets/js/components/multiselect/multiselect.component.min.js +3 -3
  131. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  132. package/assets/js/components/nav/nav.component.js +7 -7
  133. package/assets/js/components/nav/nav.component.min.js +7 -7
  134. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  135. package/assets/js/components/notification/notification.component.js +3 -3
  136. package/assets/js/components/notification/notification.component.min.js +4 -4
  137. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  138. package/assets/js/components/pagination/pagination.component.js +3 -4
  139. package/assets/js/components/pagination/pagination.component.min.js +4 -4
  140. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  141. package/assets/js/components/record-card/record-card.component.js +6 -8
  142. package/assets/js/components/record-card/record-card.component.min.js +4 -4
  143. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  144. package/assets/js/components/search/search.component.js +9 -6
  145. package/assets/js/components/search/search.component.min.js +8 -5
  146. package/assets/js/components/search/search.component.min.js.map +1 -1
  147. package/assets/js/components/slider/slider.component.js +8 -8
  148. package/assets/js/components/slider/slider.component.min.js +5 -5
  149. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  150. package/assets/js/components/table/table.component.js +12 -11
  151. package/assets/js/components/table/table.component.min.js +7 -7
  152. package/assets/js/components/table/table.component.min.js.map +1 -1
  153. package/assets/js/components/tabs/tabs.component.js +1 -2
  154. package/assets/js/components/tabs/tabs.component.min.js +4 -4
  155. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  156. package/assets/js/components/video-card/video-card.component.js +4 -3
  157. package/assets/js/components/video-card/video-card.component.min.js +3 -3
  158. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  159. package/assets/js/modules/applied-filters.js +8 -9
  160. package/assets/js/modules/carousel.js +9 -10
  161. package/assets/js/modules/chart.js +5 -3
  162. package/assets/js/modules/chart.module.js +127 -6
  163. package/assets/js/modules/dialogs.js +6 -7
  164. package/assets/js/modules/drawer.js +1 -2
  165. package/assets/js/modules/dynamicEvents.js +7 -8
  166. package/assets/js/modules/fileupload.js +7 -7
  167. package/assets/js/modules/filterlist.js +3 -4
  168. package/assets/js/modules/form.js +12 -13
  169. package/assets/js/modules/helpers.js +3 -5
  170. package/assets/js/modules/inputs.js +6 -9
  171. package/assets/js/modules/nav.js +3 -4
  172. package/assets/js/modules/notification.js +2 -3
  173. package/assets/js/modules/orderablelist.js +0 -1
  174. package/assets/js/modules/table.js +80 -42
  175. package/assets/js/modules/tabs.js +3 -6
  176. package/assets/js/scripts.bundle.js +3 -3
  177. package/assets/js/scripts.bundle.js.map +1 -1
  178. package/assets/js/scripts.bundle.min.js +2 -2
  179. package/assets/js/scripts.bundle.min.js.map +1 -1
  180. package/assets/js/scripts.js +64 -6
  181. package/assets/js/tests/card.spec.js +14 -0
  182. package/assets/js/tests/carousel.spec.js +60 -0
  183. package/assets/js/tests/chart.spec.js +7 -5
  184. package/assets/js/tests/fileupload.spec.js +22 -0
  185. package/assets/js/tests/multistep.spec.js +68 -0
  186. package/assets/sass/_bs_grid.scss +39 -0
  187. package/assets/sass/_components.scss +323 -100
  188. package/assets/sass/_corefiles.scss +46 -39
  189. package/assets/sass/_elements.scss +98 -18
  190. package/assets/sass/_example.scss +61 -0
  191. package/assets/sass/_func.scss +4 -14
  192. package/assets/sass/_functions/{utilities.scss → bs_utilities.scss} +43 -39
  193. package/assets/sass/_functions/functions.scss +66 -52
  194. package/assets/sass/_functions/mixins.scss +82 -137
  195. package/assets/sass/_functions/utility-mixins.scss +1445 -0
  196. package/assets/sass/_functions/variables.scss +90 -1659
  197. package/assets/sass/_functions/variables_old.scss +1701 -0
  198. package/assets/sass/{foundations/grid.scss → _grid.scss} +96 -82
  199. package/assets/sass/_tests/func.spec.scss +1 -37
  200. package/assets/sass/_tests/mixins.spec.scss +1 -77
  201. package/assets/sass/_tests/typography.spec.scss +1 -1
  202. package/assets/sass/_utilities.scss +35 -117
  203. package/assets/sass/_utility-mixins.scss +37 -0
  204. package/assets/sass/components/{actionbar.scss → actionbar.component.scss} +82 -16
  205. package/assets/sass/components/actionbar.global.scss +28 -14
  206. package/assets/sass/components/address-lookup.scss +6 -0
  207. package/assets/sass/components/barchart.component.scss +8 -19
  208. package/assets/sass/components/bento-grid.component.scss +91 -0
  209. package/assets/sass/components/carousel.config.scss +64 -58
  210. package/assets/sass/components/charts.config.scss +73 -67
  211. package/assets/sass/components/charts.module.scss +131 -73
  212. package/assets/sass/components/charts.scss +43 -42
  213. package/assets/sass/components/collapsible-side.scss +29 -27
  214. package/assets/sass/components/doughnutchart.component.scss +205 -0
  215. package/assets/sass/components/fileupload.scss +4 -3
  216. package/assets/sass/components/header.scss +5 -5
  217. package/assets/sass/components/inline-edit.preload.scss +108 -102
  218. package/assets/sass/components/menu.component.scss +101 -0
  219. package/assets/sass/components/menu.scss +21 -0
  220. package/assets/sass/components/multi-step.component.scss +5 -3
  221. package/assets/sass/components/multiselect.preload.scss +36 -30
  222. package/assets/sass/components/{nav.scss → nav.component.scss} +41 -21
  223. package/assets/sass/components/nav.docs.scss +1 -1
  224. package/assets/sass/components/nav.global.scss +13 -11
  225. package/assets/sass/components/nav.old.scss +21 -24
  226. package/assets/sass/components/nav.preload.scss +40 -34
  227. package/assets/sass/components/notification.scss +9 -5
  228. package/assets/sass/components/pagination.scss +6 -0
  229. package/assets/sass/components/property-searchbar.scss +7 -7
  230. package/assets/sass/components/slider.scss +2 -0
  231. package/assets/sass/components/snapshot.scss +2 -2
  232. package/assets/sass/components/stepper.scss +7 -7
  233. package/assets/sass/components/table.global.scss +57 -1
  234. package/assets/sass/components/tabs.component.scss +5 -0
  235. package/assets/sass/components/tabs.scss +9 -6
  236. package/assets/sass/components/testimonial.scss +7 -7
  237. package/assets/sass/components/timeline.scss +1 -1
  238. package/assets/sass/core.scss +13 -2
  239. package/assets/sass/elements/admin-panel.scss +201 -134
  240. package/assets/sass/elements/badge-tag.scss +87 -81
  241. package/assets/sass/elements/brand.scss +67 -61
  242. package/assets/sass/elements/buttons--action.scss +55 -0
  243. package/assets/sass/elements/buttons--compact.scss +135 -0
  244. package/assets/sass/elements/buttons--global.scss +322 -0
  245. package/assets/sass/elements/buttons--secondary.scss +24 -0
  246. package/assets/sass/elements/buttons--tertiary.scss +57 -0
  247. package/assets/sass/elements/buttons.scss +29 -503
  248. package/assets/sass/elements/container.scss +160 -121
  249. package/assets/sass/elements/details.scss +147 -138
  250. package/assets/sass/elements/dialog.scss +36 -30
  251. package/assets/sass/elements/forms.scss +1061 -1047
  252. package/assets/sass/elements/icons.scss +23 -17
  253. package/assets/sass/elements/links.scss +131 -116
  254. package/assets/sass/elements/lists.scss +270 -264
  255. package/assets/sass/elements/media.scss +19 -13
  256. package/assets/sass/elements/modal.scss +336 -330
  257. package/assets/sass/elements/popover.scss +163 -152
  258. package/assets/sass/elements/progress.scss +173 -162
  259. package/assets/sass/elements/table.element.scss +115 -109
  260. package/assets/sass/elements/tooltips.scss +87 -80
  261. package/assets/sass/elements/type.scss +172 -160
  262. package/assets/sass/email.scss +4 -1
  263. package/assets/sass/error.scss +15 -9
  264. package/assets/sass/foundations/reboot.scss +176 -170
  265. package/assets/sass/foundations/root.scss +136 -125
  266. package/assets/sass/helpers/line-clamp.scss +0 -23
  267. package/assets/sass/helpers/max-height.scss +2 -2
  268. package/assets/sass/main.scss +14 -3
  269. package/assets/sass/mobile-core.scss +14 -0
  270. package/assets/sass/mobile.scss +16 -0
  271. package/assets/sass/templates/auth.scss +88 -83
  272. package/assets/sass/templates/form.scss +68 -59
  273. package/assets/ts/components/_global.ts +2 -3
  274. package/assets/ts/components/actionbar/actionbar.component.ts +94 -2
  275. package/assets/ts/components/address-lookup/address-lookup.component.ts +21 -22
  276. package/assets/ts/components/applied-filters/applied-filters.component.ts +1 -2
  277. package/assets/ts/components/barchart/barchart.component.ts +3 -5
  278. package/assets/ts/components/bento-grid/README.md +31 -0
  279. package/assets/ts/components/bento-grid/bento-grid.component.ts +67 -0
  280. package/assets/ts/components/card/card.component.ts +13 -16
  281. package/assets/ts/components/carousel/carousel.component.ts +5 -7
  282. package/assets/ts/components/chart/chart.component.ts +4 -9
  283. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +5 -6
  284. package/assets/ts/components/doughnutchart/doughnutchart.component.ts +85 -0
  285. package/assets/ts/components/fileupload/fileupload.component.ts +5 -6
  286. package/assets/ts/components/filter-card/filter-card.component.ts +4 -5
  287. package/assets/ts/components/filterlist/filterlist.component.ts +1 -2
  288. package/assets/ts/components/header/header.component.ts +1 -3
  289. package/assets/ts/components/inline-edit/inline-edit.component.ts +8 -11
  290. package/assets/ts/components/marketing/marketing.component.ts +1 -3
  291. package/assets/ts/components/menu/menu.component.ts +222 -0
  292. package/assets/ts/components/multi-step/multi-step.component.ts +19 -23
  293. package/assets/ts/components/multiselect/multiselect.component.ts +13 -14
  294. package/assets/ts/components/nav/nav.component.ts +8 -9
  295. package/assets/ts/components/notification/notification.component.ts +3 -3
  296. package/assets/ts/components/pagination/pagination.component.ts +7 -8
  297. package/assets/ts/components/record-card/record-card.component.ts +9 -11
  298. package/assets/ts/components/search/search.component.ts +12 -9
  299. package/assets/ts/components/slider/slider.component.ts +9 -10
  300. package/assets/ts/components/table/table.component.ts +19 -18
  301. package/assets/ts/components/tabs/tabs.component.ts +2 -3
  302. package/assets/ts/components/video-card/video-card.component.ts +13 -12
  303. package/assets/ts/modules/applied-filters.ts +10 -11
  304. package/assets/ts/modules/card.module.ts +1 -1
  305. package/assets/ts/modules/carousel.ts +13 -15
  306. package/assets/ts/modules/chart.module.ts +176 -24
  307. package/assets/ts/modules/chart.ts +26 -24
  308. package/assets/ts/modules/dialogs.ts +10 -13
  309. package/assets/ts/modules/drawer.ts +1 -2
  310. package/assets/ts/modules/dynamicEvents.ts +12 -14
  311. package/assets/ts/modules/fileupload.ts +10 -10
  312. package/assets/ts/modules/filterlist.ts +6 -7
  313. package/assets/ts/modules/form.ts +16 -17
  314. package/assets/ts/modules/helpers.ts +18 -21
  315. package/assets/ts/modules/inputs.ts +15 -18
  316. package/assets/ts/modules/nav.ts +4 -5
  317. package/assets/ts/modules/notification.ts +7 -8
  318. package/assets/ts/modules/orderablelist.ts +3 -4
  319. package/assets/ts/modules/pagination.ts +1 -1
  320. package/assets/ts/modules/table.ts +103 -60
  321. package/assets/ts/modules/tabs.ts +6 -14
  322. package/assets/ts/scripts.ts +70 -6
  323. package/assets/ts/tests/card.spec.ts +19 -0
  324. package/assets/ts/tests/carousel.spec.ts +66 -0
  325. package/assets/ts/tests/chart.spec.ts +9 -6
  326. package/assets/ts/tests/fileupload.spec.ts +30 -0
  327. package/assets/ts/tests/multistep.spec.ts +78 -0
  328. package/dist/components.es.js +1258 -1063
  329. package/dist/components.umd.js +473 -195
  330. package/package.json +44 -49
  331. package/src/components/BentoGrid/BentoGrid.vue +20 -0
  332. package/src/components/DoughnutChart/DoughnutChart.vue +23 -0
  333. package/src/components/FileUpload/FileUpload.vue +4 -1
  334. package/src/components/Menu/Menu.vue +22 -0
  335. package/src/components/Tabs/Tabs.vue +0 -4
  336. package/src/index.js +25 -19
  337. package/assets/css/components/actionbar.css +0 -1
  338. package/assets/css/components/actionbar.css.map +0 -1
  339. package/assets/css/components/nav.css +0 -1
  340. package/assets/css/components/nav.css.map +0 -1
  341. package/assets/css/components/table.css.map +0 -1
  342. package/assets/js/components.bundle.js +0 -5
  343. package/assets/js/components.bundle.js.map +0 -1
  344. package/assets/js/components.js +0 -57
  345. package/assets/js/modules/file-upload.js +0 -32
  346. package/assets/sass/components.reset.scss +0 -8
  347. package/assets/sass/foundations/bs_grid.scss +0 -32
  348. package/assets/ts/components.ts +0 -62
  349. package/assets/ts/modules/file-upload.ts +0 -52
  350. package/dist/style.css +0 -1
  351. /package/assets/sass/components/{table.scss → table.component.scss} +0 -0
@@ -1,79 +1,88 @@
1
- @use '../_func' as *;
1
+ @use 'sass:map';
2
+ @use 'sass:math';
2
3
 
3
- body:has(.template--form) {
4
- @include light-mode() {
5
- background-color: #e9f9fd;
6
- }
7
- }
4
+ @use '../_func' as *;
8
5
 
9
- .template--form {
10
- --input-max-width: #{rem(450)};
11
- --select-max-width: #{rem(500)};
6
+ $layers: 'true' !default;
7
+ $mobileOnly: 'false' !default;
8
+ $darkMode: 'true' !default;
12
9
 
13
- @supports selector(:has(*)) {
14
- label:has(> :is(.suffix, .prefix)) {
15
- --input-max-width: #{rem(500)};
16
- max-width: var(--input-max-width);
17
- }
18
- div:has(> :is(.suffix, .prefix)) {
19
- --input-max-width: #{rem(500)};
20
- max-width: var(--input-max-width);
10
+ @include layer('templates', $layers) {
11
+ body:has(.template--form) {
12
+ @include light-mode($darkMode) {
13
+ background-color: #e9f9fd;
21
14
  }
22
15
  }
23
16
 
24
- // Make H2's look like H3's
25
- :is(h2, .h2) {
26
- font-size: rem(map-get($heading-sizes, 'h3_fs'));
27
- line-height: rem(map-get($heading-sizes, 'h3_lh'));
28
- padding-bottom: rem(map-get($heading-sizes, 'h3_pb'));
29
- max-width: var(--content-max-width);
17
+ .template--form {
18
+ --input-max-width: #{rem(450)};
19
+ --select-max-width: #{rem(500)};
30
20
 
31
- @include media-breakpoint-up(sm) {
32
- font-size: rem(map-get($heading-sizes, 'h3_fs_sm'));
33
- line-height: rem(map-get($heading-sizes, 'h3_lh_sm'));
34
- padding-bottom: rem(map-get($heading-sizes, 'h3_pb_sm'));
21
+ @supports selector(:has(*)) {
22
+ label:has(> :is(.suffix, .prefix)) {
23
+ --input-max-width: #{rem(500)};
24
+ max-width: var(--input-max-width);
25
+ }
26
+ div:has(> :is(.suffix, .prefix)) {
27
+ --input-max-width: #{rem(500)};
28
+ max-width: var(--input-max-width);
29
+ }
35
30
  }
36
- }
37
-
38
- @include light-mode() {
39
- background-color: #e9f9fd;
40
- }
41
31
 
42
- .form-panel {
43
- display: block;
44
- padding: 2rem;
45
- box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
46
- background-color: var(--colour-canvas-2);
47
- margin-bottom: 1.5rem;
48
- outline: var(--contrast-outline-width, 0px) solid var(--colour-primary);
49
- width: 100%;
32
+ // Make H2's look like H3's
33
+ :is(h2, .h2) {
34
+ font-size: rem(map.get($heading-sizes, 'h3_fs'));
35
+ line-height: rem(map.get($heading-sizes, 'h3_lh'));
36
+ padding-bottom: rem(map.get($heading-sizes, 'h3_pb'));
37
+ max-width: var(--content-max-width);
50
38
 
51
- @include media-breakpoint-up(sm) {
52
- max-width: calc(100% - 5rem); // Guess
53
- margin-inline: auto;
39
+ @include media-breakpoint-up(sm, $mobileOnly) {
40
+ font-size: rem(map.get($heading-sizes, 'h3_fs_sm'));
41
+ line-height: rem(map.get($heading-sizes, 'h3_lh_sm'));
42
+ padding-bottom: rem(map.get($heading-sizes, 'h3_pb_sm'));
43
+ }
54
44
  }
55
45
 
56
- @include media-breakpoint-up(md) {
57
- max-width: rem(924); // Guess
58
- border-radius: 0.5rem;
59
- padding-inline: rem(94);
60
- padding-block: rem(40);
61
- margin-bottom: rem(32);
46
+ @include light-mode($darkMode) {
47
+ background-color: #e9f9fd;
62
48
  }
63
49
 
64
- > *:last-child {
65
- margin-bottom: 0 !important;
50
+ .form-panel {
51
+ display: block;
52
+ padding: 2rem;
53
+ box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.11);
54
+ background-color: var(--colour-canvas-2);
55
+ margin-bottom: 1.5rem;
56
+ outline: var(--contrast-outline-width, 0px) solid var(--colour-primary);
57
+ width: 100%;
58
+
59
+ @include media-breakpoint-up(sm, $mobileOnly) {
60
+ max-width: calc(100% - 5rem); // Guess
61
+ margin-inline: auto;
62
+ }
63
+
64
+ @include media-breakpoint-up(md, $mobileOnly) {
65
+ max-width: rem(924); // Guess
66
+ border-radius: 0.5rem;
67
+ padding-inline: rem(94);
68
+ padding-block: rem(40);
69
+ margin-bottom: rem(32);
70
+ }
71
+
72
+ > *:last-child {
73
+ margin-bottom: 0 !important;
74
+ }
66
75
  }
67
- }
68
76
 
69
- @include media-breakpoint-up(md) {
70
- .container--form {
71
- padding-inline: 0;
72
- max-width: rem(924) !important;
77
+ @include media-breakpoint-up(md, $mobileOnly) {
78
+ .container--form {
79
+ padding-inline: 0;
80
+ max-width: rem(924) !important;
81
+ }
73
82
  }
74
- }
75
83
 
76
- [data-loading] {
77
- opacity: 0.5;
84
+ [data-loading] {
85
+ opacity: 0.5;
86
+ }
78
87
  }
79
88
  }
@@ -1,5 +1,4 @@
1
- // @ts-nocheck
2
- export const trackComponentRegistered = (componentName: string) => {
1
+ export const trackComponentRegistered = (componentName: string): void => {
3
2
  // Data layer Web component created
4
3
  window.dataLayer = window.dataLayer || [];
5
4
  window.dataLayer.push({
@@ -8,7 +7,7 @@ export const trackComponentRegistered = (componentName: string) => {
8
7
  });
9
8
  };
10
9
 
11
- export const trackComponent = (component: any, componentName: string, trackEvents: any) => {
10
+ export const trackComponent = (component: any, componentName: string, trackEvents: any): boolean => {
12
11
  // Data layer Web component created
13
12
  window.dataLayer = window.dataLayer || [];
14
13
  window.dataLayer.push({
@@ -43,7 +43,7 @@ class iamActionbar extends HTMLElement {
43
43
  const coreCSS = document.body.hasAttribute('data-core-css')
44
44
  ? document.body.getAttribute('data-core-css')
45
45
  : `${assetLocation}/css/core.min.css`;
46
- const loadCSS = `@import "${assetLocation}/css/components/actionbar.css";`;
46
+ const loadCSS = `@import "${assetLocation}/css/components/actionbar.component.css";`;
47
47
  const loadExtraCSS = `@import "${assetLocation}/css/components/actionbar.global.css";`;
48
48
 
49
49
  const template = document.createElement('template');
@@ -68,6 +68,18 @@ class iamActionbar extends HTMLElement {
68
68
  <slot name="menu"></slot>
69
69
  </dialog>
70
70
  </div>
71
+
72
+
73
+ <div class="dialog__wrapper dialog__wrapper--right filter-columns">
74
+ <button class="btn btn-secondary btn-compact btn-sm mb-0 me-0 fa-regular fa-table-columns" title="Select colums">Filter</button>
75
+ <dialog class="dialog--list">
76
+ <div class="pb-0 mb-0 checklists">
77
+
78
+ </div>
79
+ <div class="text-right checklist-btns"><button id="cancelColumns" class="btn btn-action">Cancel</button><button id="saveColumns" class="btn btn-action btn-secondary">Save</button></div>
80
+ </dialog>
81
+ </div>
82
+
71
83
  <button class="btn btn-secondary btn-compact btn-sm fa-search" data-search="" part="search-btn">Search</button>
72
84
  </div>
73
85
  </div>
@@ -85,6 +97,7 @@ class iamActionbar extends HTMLElement {
85
97
  </div>
86
98
  </div>
87
99
  </div>
100
+
88
101
  <div class="actionbar--search">
89
102
  <button data-search class="btn btn-compact fa-xmark-large btn-secondary m-0" >Close</button>
90
103
 
@@ -106,6 +119,7 @@ class iamActionbar extends HTMLElement {
106
119
 
107
120
  connectedCallback(): void {
108
121
  const actionbarWrapper = this.shadowRoot?.querySelector('.actionbar__wrapper');
122
+ const checklistHolder = this.shadowRoot?.querySelector('.checklists');
109
123
 
110
124
  // #region select all
111
125
  if (this.hasAttribute('data-selectall')) {
@@ -235,7 +249,7 @@ class iamActionbar extends HTMLElement {
235
249
  // #endregion
236
250
 
237
251
  // Make sure dialogs created in the shadow dom work
238
- Array.from(this.shadowRoot.querySelectorAll('.body')).forEach((element, index) => {
252
+ Array.from(this.shadowRoot.querySelectorAll('.body')).forEach((element) => {
239
253
  extendDialogs(element);
240
254
  });
241
255
 
@@ -387,6 +401,84 @@ class iamActionbar extends HTMLElement {
387
401
  hideButtons();
388
402
  new ResizeObserver(hideButtons).observe(actionbarWrapper);
389
403
  // #endregion
404
+
405
+ // #region cloumn filters
406
+
407
+ const setColumnFilters = (): void => {
408
+ let columnsHidden = '';
409
+ Array.from(checklistHolder?.querySelectorAll('label input')).forEach((element, index) => {
410
+ columnsHidden += this.hasAttribute(`data-hide-col${index + 1}`) ? `${index + 1},` : '';
411
+ });
412
+
413
+ const dispatchedEvent = new CustomEvent('columm-filters-set', {
414
+ detail: {
415
+ columnsHidden: columnsHidden.slice(0, -1),
416
+ },
417
+ });
418
+
419
+ this.dispatchEvent(dispatchedEvent);
420
+ };
421
+
422
+ if (this.hasAttribute('data-filter-columns') || this.hasAttribute('data-filter-columns-save')) {
423
+ const columns = this.closest('iam-table').querySelectorAll('thead th');
424
+
425
+ Array.from(columns).forEach((element, index) => {
426
+ if (element.textContent) {
427
+ checklistHolder?.insertAdjacentHTML(
428
+ 'beforeend',
429
+ `<label class="m-0" title="Change the display of "><input name="hideCol${index + 1}" value="${index + 1}" type="checkbox" ${this.hasAttribute('data-hide-col' + (index + 1)) ? '' : 'checked'} /> ${element.textContent}</label>`
430
+ );
431
+ }
432
+ });
433
+ }
434
+
435
+ if (this.hasAttribute('data-filter-columns') && !this.hasAttribute('data-filter-columns-save')) {
436
+ checklistHolder?.addEventListener('change', (event) => {
437
+ if (event && event.target instanceof HTMLElement && event.target.closest('input')) {
438
+ const checkbox = event.target.closest('input');
439
+
440
+ if (checkbox?.checked == false) {
441
+ this.setAttribute('data-hide-col' + checkbox?.value, 'true');
442
+ } else {
443
+ this.removeAttribute('data-hide-col' + checkbox?.value);
444
+ }
445
+
446
+ setColumnFilters();
447
+ }
448
+ });
449
+ }
450
+
451
+ if (this.hasAttribute('data-filter-columns-save')) {
452
+ const checklistHolder = this.shadowRoot?.querySelector('.checklists');
453
+ const checklistSave = this.shadowRoot?.querySelector('#saveColumns');
454
+ const checklistCancel = this.shadowRoot?.querySelector('#cancelColumns');
455
+
456
+ checklistSave?.addEventListener('click', (event) => {
457
+ Array.from(checklistHolder?.querySelectorAll('label input')).forEach((checkbox) => {
458
+ if (checkbox?.checked == false) {
459
+ this.setAttribute('data-hide-col' + checkbox?.value, 'true');
460
+ } else {
461
+ this.removeAttribute('data-hide-col' + checkbox?.value);
462
+ }
463
+ });
464
+
465
+ setColumnFilters();
466
+ checklistSave.closest('dialog')?.close();
467
+ });
468
+
469
+ // Revert back to what was previously saved
470
+ checklistCancel?.addEventListener('click', (event) => {
471
+ const checklistHolder = this.shadowRoot?.querySelector('.checklists');
472
+
473
+ Array.from(checklistHolder?.querySelectorAll('label input')).forEach((element, index) => {
474
+ element.checked = this.hasAttribute(`data-hide-col${index + 1}`) ? false : true;
475
+ });
476
+
477
+ setColumnFilters();
478
+ checklistSave.closest('dialog')?.close();
479
+ });
480
+ }
481
+ // #endregion
390
482
  }
391
483
 
392
484
  static get observedAttributes(): Array<string> {
@@ -65,9 +65,7 @@ class iamAddressLookup extends HTMLElement {
65
65
  this.shadowRoot?.appendChild(template.content.cloneNode(true));
66
66
  }
67
67
 
68
- async connectedCallback() {
69
- const component = this;
70
- const wrapper = this.shadowRoot.querySelector('.wrapper');
68
+ async connectedCallback(): void {
71
69
  const lookup = this.shadowRoot.querySelector('[name="postcode"]');
72
70
  const lookupWrapper = this.shadowRoot.querySelector('.postcode-lookup');
73
71
  const manualWrapper = this.shadowRoot.querySelector('.manual-address');
@@ -77,19 +75,20 @@ class iamAddressLookup extends HTMLElement {
77
75
  const switchLookupBtn = this.shadowRoot.querySelector('.switch-to-lookup-btn');
78
76
  const title = this.hasAttribute('data-title') ? this.getAttribute('data-title') : 'Property address';
79
77
  const preFilledAddressBtn = this.shadowRoot.querySelector('.pre-filled-address + button');
78
+ const dataDisplayText = this.hasAttribute('data-display-text');
80
79
 
81
- Array.from(this.shadowRoot.querySelectorAll('.title')).forEach((titleElement, index) => {
80
+ Array.from(this.shadowRoot.querySelectorAll('.title')).forEach((titleElement) => {
82
81
  titleElement.innerHTML = title;
83
82
  });
84
83
 
85
- function checkFilled(component) {
84
+ function checkFilled(component): void {
86
85
  const preFilledAddress = component.shadowRoot.querySelector('.pre-filled-address');
87
86
  let preFilled = true;
88
87
  preFilledAddress.innerHTML = '';
89
88
 
90
89
  Array.from(
91
90
  component.querySelectorAll('input[required],input[data-required],select[required],select[data-required]')
92
- ).forEach((input, index) => {
91
+ ).forEach((input) => {
93
92
  const value = input.value;
94
93
 
95
94
  if (!value) preFilled = false;
@@ -106,7 +105,7 @@ class iamAddressLookup extends HTMLElement {
106
105
  }
107
106
  checkFilled(this);
108
107
 
109
- this.addEventListener('filled', (event) => {
108
+ this.addEventListener('filled', () => {
110
109
  checkFilled(this);
111
110
  });
112
111
 
@@ -126,7 +125,7 @@ class iamAddressLookup extends HTMLElement {
126
125
 
127
126
  const values = JSON.parse(this.getAttribute('data-use'));
128
127
 
129
- Object.keys(values).forEach((key, index) => {
128
+ Object.keys(values).forEach((key) => {
130
129
  const value = values[key];
131
130
  if (this.querySelector(`[data-name="${key}"]`)) this.querySelector(`[data-name="${key}"]`).value = value;
132
131
  else if (this.querySelector(`[name="${key}"]`)) this.querySelector(`[name="${key}"]`).value = value;
@@ -140,41 +139,41 @@ class iamAddressLookup extends HTMLElement {
140
139
  lookupWrapper.classList.add('js-hide');
141
140
  manualWrapper.classList.remove('js-hide');
142
141
 
143
- Array.from(manualWrapper.querySelectorAll('[data-required]')).forEach((input, index) => {
142
+ Array.from(manualWrapper.querySelectorAll('[data-required]')).forEach((input) => {
144
143
  input.setAttribute('required', 'true');
145
144
  });
146
145
  }
147
146
 
148
- function openManualWrapper() {
147
+ function openManualWrapper(): void {
149
148
  lookupWrapper.classList.add('js-hide');
150
149
  manualWrapper.classList.remove('js-hide');
151
150
 
152
- Array.from(manualWrapper.querySelectorAll('[data-required]')).forEach((input, index) => {
151
+ Array.from(manualWrapper.querySelectorAll('[data-required]')).forEach((input) => {
153
152
  input.setAttribute('required', 'true');
154
153
  });
155
154
 
156
155
  manualWrapper.scrollIntoView();
157
156
  }
158
157
 
159
- preFilledAddressBtn.addEventListener('click', (event) => {
158
+ preFilledAddressBtn.addEventListener('click', () => {
160
159
  preFilledWrapper.classList.add('js-hide');
161
160
  openManualWrapper();
162
161
  });
163
- switchManualBtn.addEventListener('click', (event) => {
162
+ switchManualBtn.addEventListener('click', () => {
164
163
  openManualWrapper();
165
164
  });
166
- switchLookupBtn.addEventListener('click', (event) => {
165
+ switchLookupBtn.addEventListener('click', () => {
167
166
  lookupWrapper.classList.remove('js-hide');
168
167
  manualWrapper.classList.add('js-hide');
169
168
 
170
169
  lookupWrapper.scrollIntoView();
171
170
  });
172
171
 
173
- lookup.addEventListener('keyup', (event) => {
172
+ lookup.addEventListener('keyup', () => {
174
173
  if (lookup.value.length >= 3) search(lookup.value);
175
174
  });
176
175
 
177
- lookup.addEventListener('change', (event) => {
176
+ lookup.addEventListener('change', () => {
178
177
  if (lookup.value.length >= 3) {
179
178
  search(lookup.value);
180
179
 
@@ -184,7 +183,7 @@ class iamAddressLookup extends HTMLElement {
184
183
 
185
184
  const values = JSON.parse(list.querySelector(`[value="${lookup.value}"]`).getAttribute('data-values'));
186
185
 
187
- Object.keys(values).forEach((key, index) => {
186
+ Object.keys(values).forEach((key) => {
188
187
  const value = values[key];
189
188
  if (this.querySelector(`[data-name="${key}"]`) && value != '')
190
189
  this.querySelector(`[data-name="${key}"]`).value = value;
@@ -200,7 +199,7 @@ class iamAddressLookup extends HTMLElement {
200
199
  // Focus on first input
201
200
  this.querySelector('[name]').focus();
202
201
 
203
- Array.from(this.querySelectorAll('[data-required]')).forEach((input, index) => {
202
+ Array.from(this.querySelectorAll('[data-required]')).forEach((input) => {
204
203
  input.setAttribute('required', 'true');
205
204
  });
206
205
  lookup.removeAttribute('required');
@@ -211,7 +210,7 @@ class iamAddressLookup extends HTMLElement {
211
210
  }
212
211
  });
213
212
 
214
- const search = async (postcode) => {
213
+ const search = async (postcode): any => {
215
214
  let ajaxURL = this.getAttribute('data-url');
216
215
  ajaxURL += `${encodeURI(postcode)}`;
217
216
 
@@ -241,7 +240,7 @@ class iamAddressLookup extends HTMLElement {
241
240
  .then((response) => {
242
241
  // populate datalist
243
242
  let listString = '';
244
- response.forEach((address, index) => {
243
+ response.forEach((address) => {
245
244
  // Deal with agent platform response
246
245
  if (typeof address.value == 'object') {
247
246
  const values = JSON.stringify(address.value);
@@ -249,8 +248,8 @@ class iamAddressLookup extends HTMLElement {
249
248
  } else {
250
249
  const values = JSON.stringify(address);
251
250
 
252
- if (component.hasAttribute('data-display-text')) {
253
- listString += `<option value="${address[component.getAttribute('data-display-text')]}, ${postcode}" data-values='${values}'></option>`;
251
+ if (dataDisplayText) {
252
+ listString += `<option value="${address[dataDisplayText]}, ${postcode}" data-values='${values}'></option>`;
254
253
  } else {
255
254
  let itemString = '';
256
255
  for (const [key, value] of Object.entries(address)) {
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  import createAppliedFilters from '../../modules/applied-filters';
3
2
 
4
3
  // Data layer Web component created
@@ -35,7 +34,7 @@ class iamAppliedFilters extends HTMLElement {
35
34
  this.shadowRoot.appendChild(template.content.cloneNode(true));
36
35
  }
37
36
 
38
- connectedCallback() {
37
+ connectedCallback(): void {
39
38
  createAppliedFilters(this, this.shadowRoot.querySelector('.applied-filters'));
40
39
  }
41
40
  }
@@ -1,4 +1,3 @@
1
- // @ts-nocheck
2
1
  import {
3
2
  addClasses,
4
3
  setupChart,
@@ -43,9 +42,10 @@ class iamBarChart extends HTMLElement {
43
42
  this.shadowRoot.appendChild(template.content.cloneNode(true));
44
43
  }
45
44
 
46
- connectedCallback() {
45
+ connectedCallback(): void {
46
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
47
47
  const chartComponent = this;
48
- const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;
48
+ //const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;
49
49
  const orginalTable = this.querySelector('table');
50
50
  const clonedTable = orginalTable.cloneNode(true);
51
51
  const chart = this.shadowRoot.querySelector('.chart');
@@ -72,8 +72,6 @@ class iamBarChart extends HTMLElement {
72
72
 
73
73
  trackComponent(chartComponent, 'iam-barchart', ['view-change']);
74
74
  }
75
-
76
- attributeChangedCallback(attrName, oldVal, newVal) {}
77
75
  }
78
76
 
79
77
  export default iamBarChart;
@@ -0,0 +1,31 @@
1
+ **Add the below to your initialise script**
2
+
3
+ ```
4
+ import('../node_modules/@iamproperty/components/assets/js/components/accordion/accordion.component.min').then(module => { // Might need to update the path
5
+
6
+ if (!window.customElements.get(`iam-accordion`))
7
+ window.customElements.define(`iam-accordion`, module.default);
8
+
9
+ }).catch((err) => {
10
+ console.log(err.message);
11
+ });
12
+ ```
13
+
14
+ **Add the below HTML code to where you want the component to live.**
15
+
16
+ ```
17
+ <iam-accordion class="container">
18
+ <details id="question1" class="accordion-item">
19
+ <summary class="accordion-header accordion-button h4">Question 1</summary>
20
+ <p>Answer </p>
21
+ </details>
22
+ <details class="accordion-item">
23
+ <summary class="accordion-header accordion-button h4">Question 2</summary>
24
+ <p>Answer </p>
25
+ </details>
26
+ </iam-accordion>
27
+ ```
28
+
29
+ ### Class modifiers
30
+
31
+ - Adding a class of **.accordion--keep-open** to the accordion will stop the items from closing when another one is opened.
@@ -0,0 +1,67 @@
1
+ // Data layer Web component created
2
+ declare global {
3
+ interface Window {
4
+ dataLayer: Array<object>;
5
+ }
6
+ }
7
+ window.dataLayer = window.dataLayer || [];
8
+ window.dataLayer.push({
9
+ event: 'customElementRegistered',
10
+ element: 'accordion',
11
+ });
12
+
13
+ class iamAccordion extends HTMLElement {
14
+ constructor() {
15
+ super();
16
+ this.attachShadow({ mode: 'open' });
17
+
18
+ const assetLocation = document.body.hasAttribute('data-assets-location')
19
+ ? document.body.getAttribute('data-assets-location')
20
+ : '/assets';
21
+ const loadCSS = `@import "${assetLocation}/css/components/bento-grid.component.css";`;
22
+
23
+ const template = document.createElement('template');
24
+ template.innerHTML = `
25
+ <style>
26
+ ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
27
+
28
+ ${loadCSS}
29
+ </style>
30
+ <div class="wrapper">
31
+ <slot></slot>
32
+ </div>
33
+ `;
34
+ this.shadowRoot?.appendChild(template.content.cloneNode(true));
35
+ }
36
+
37
+ connectedCallback(): void {
38
+ this.classList.add('loaded');
39
+
40
+ const arrDetails = this.querySelectorAll('details');
41
+
42
+ Array.from(arrDetails).forEach((details: HTMLDetailsElement) => {
43
+ details.classList.add('bg-primary');
44
+ const summary = details.querySelector('summary');
45
+
46
+ summary?.classList.add('h3');
47
+
48
+ if (!summary?.querySelector('[role="presentation"]'))
49
+ summary?.insertAdjacentHTML('beforeend', ` <span role="presentation">Find out more</span>`);
50
+ });
51
+
52
+ this.addEventListener('click', (event) => {
53
+ if (event && event.target instanceof HTMLElement && event.target.closest('details summary')) {
54
+ const summary = event.target.closest('details summary');
55
+ const details = summary?.closest('details');
56
+
57
+ details?.classList.add('animating');
58
+
59
+ setTimeout(() => {
60
+ details?.classList.remove('animating');
61
+ }, 1100);
62
+ }
63
+ });
64
+ }
65
+ }
66
+
67
+ export default iamAccordion;