@iamproperty/components 7.7.1--beta15 → 7.7.1--beta17

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 (501) hide show
  1. package/README.md +25 -2
  2. package/assets/css/components/actionbar.component.css +1 -1
  3. package/assets/css/components/actionbar.component.css.map +1 -1
  4. package/assets/css/components/address-lookup.component.css +1 -1
  5. package/assets/css/components/address-lookup.component.css.map +1 -1
  6. package/assets/css/components/advanced-select.component.css +1 -0
  7. package/assets/css/components/advanced-select.component.css.map +1 -0
  8. package/assets/css/components/applied-filters.css +1 -1
  9. package/assets/css/components/applied-filters.css.map +1 -1
  10. package/assets/css/components/barchart.component.css +1 -1
  11. package/assets/css/components/barchart.component.css.map +1 -1
  12. package/assets/css/components/bento-grid.global.css +1 -1
  13. package/assets/css/components/bento-grid.global.css.map +1 -1
  14. package/assets/css/components/calendar.component.css +1 -1
  15. package/assets/css/components/calendar.component.css.map +1 -1
  16. package/assets/css/components/calendar.config.css +1 -1
  17. package/assets/css/components/calendar.config.css.map +1 -1
  18. package/assets/css/components/card.component.css +1 -1
  19. package/assets/css/components/card.component.css.map +1 -1
  20. package/assets/css/components/card.module.css +1 -1
  21. package/assets/css/components/card.module.css.map +1 -1
  22. package/assets/css/components/carousel.component.css +1 -1
  23. package/assets/css/components/carousel.component.css.map +1 -1
  24. package/assets/css/components/carousel.config.css +1 -1
  25. package/assets/css/components/carousel.config.css.map +1 -1
  26. package/assets/css/components/charts.config.css +1 -1
  27. package/assets/css/components/charts.config.css.map +1 -1
  28. package/assets/css/components/collapsible-side.css +1 -1
  29. package/assets/css/components/collapsible-side.css.map +1 -1
  30. package/assets/css/components/config.component.css +1 -1
  31. package/assets/css/components/config.component.css.map +1 -1
  32. package/assets/css/components/content.component.css +1 -1
  33. package/assets/css/components/content.component.css.map +1 -1
  34. package/assets/css/components/doughnutchart.component.css +1 -1
  35. package/assets/css/components/doughnutchart.component.css.map +1 -1
  36. package/assets/css/components/fileupload.css +1 -1
  37. package/assets/css/components/fileupload.css.map +1 -1
  38. package/assets/css/components/filter-card.component.css +1 -1
  39. package/assets/css/components/filter-card.component.css.map +1 -1
  40. package/assets/css/components/header.component.css +1 -1
  41. package/assets/css/components/header.component.css.map +1 -1
  42. package/assets/css/components/input.component.css +1 -1
  43. package/assets/css/components/input.component.css.map +1 -1
  44. package/assets/css/components/menu.component.css +1 -1
  45. package/assets/css/components/menu.component.css.map +1 -1
  46. package/assets/css/components/menu.global.css +1 -1
  47. package/assets/css/components/menu.global.css.map +1 -1
  48. package/assets/css/components/milestone.css +1 -1
  49. package/assets/css/components/milestone.css.map +1 -1
  50. package/assets/css/components/modal.component.css +1 -1
  51. package/assets/css/components/modal.component.css.map +1 -1
  52. package/assets/css/components/multi-step-modal.component.css +1 -1
  53. package/assets/css/components/multi-step-modal.component.css.map +1 -1
  54. package/assets/css/components/multiselect.css +1 -1
  55. package/assets/css/components/multiselect.css.map +1 -1
  56. package/assets/css/components/nav.component.css +1 -1
  57. package/assets/css/components/nav.component.css.map +1 -1
  58. package/assets/css/components/nav.docs.css +1 -1
  59. package/assets/css/components/nav.docs.css.map +1 -1
  60. package/assets/css/components/nav.global.css +1 -1
  61. package/assets/css/components/nav.global.css.map +1 -1
  62. package/assets/css/components/notification.css +1 -1
  63. package/assets/css/components/notification.css.map +1 -1
  64. package/assets/css/components/pagination.css +1 -1
  65. package/assets/css/components/pagination.css.map +1 -1
  66. package/assets/css/components/password.component.css +1 -1
  67. package/assets/css/components/password.component.css.map +1 -1
  68. package/assets/css/components/popover.component.css +1 -1
  69. package/assets/css/components/popover.component.css.map +1 -1
  70. package/assets/css/components/rank.component.css +1 -1
  71. package/assets/css/components/rank.component.css.map +1 -1
  72. package/assets/css/components/rankings.component.css +1 -1
  73. package/assets/css/components/rankings.component.css.map +1 -1
  74. package/assets/css/components/rankings.global.css +1 -1
  75. package/assets/css/components/rankings.global.css.map +1 -1
  76. package/assets/css/components/record-card.component.css +1 -1
  77. package/assets/css/components/record-card.component.css.map +1 -1
  78. package/assets/css/components/search.component.css +1 -0
  79. package/assets/css/components/search.component.css.map +1 -0
  80. package/assets/css/components/slider.css +1 -1
  81. package/assets/css/components/slider.css.map +1 -1
  82. package/assets/css/components/split-button.component.css +1 -1
  83. package/assets/css/components/split-button.component.css.map +1 -1
  84. package/assets/css/components/std-nav-standalone.component.css +1 -0
  85. package/assets/css/components/std-nav-standalone.component.css.map +1 -0
  86. package/assets/css/components/table-basic.global.css +1 -1
  87. package/assets/css/components/table-basic.global.css.map +1 -1
  88. package/assets/css/components/table.global.css +1 -1
  89. package/assets/css/components/table.global.css.map +1 -1
  90. package/assets/css/components/tabs.component.css +1 -1
  91. package/assets/css/components/tabs.component.css.map +1 -1
  92. package/assets/css/components/tag.component.css +1 -1
  93. package/assets/css/components/tag.component.css.map +1 -1
  94. package/assets/css/components/video-card.component.css +1 -1
  95. package/assets/css/components/video-card.component.css.map +1 -1
  96. package/assets/css/components/video-modal.component.css +1 -1
  97. package/assets/css/components/video-modal.component.css.map +1 -1
  98. package/assets/css/components/video.component.css +1 -1
  99. package/assets/css/components/video.component.css.map +1 -1
  100. package/assets/css/core.min.css +1 -1
  101. package/assets/css/core.min.css.map +1 -1
  102. package/assets/css/elements/badge-tag.css +1 -1
  103. package/assets/css/elements/badge-tag.css.map +1 -1
  104. package/assets/css/elements/buttons--global.css +1 -1
  105. package/assets/css/elements/buttons--global.css.map +1 -1
  106. package/assets/css/elements/buttons--special.css +1 -1
  107. package/assets/css/elements/buttons--special.css.map +1 -1
  108. package/assets/css/elements/buttons.css +1 -1
  109. package/assets/css/elements/buttons.css.map +1 -1
  110. package/assets/css/elements/container.css +1 -1
  111. package/assets/css/elements/container.css.map +1 -1
  112. package/assets/css/elements/details.css +1 -1
  113. package/assets/css/elements/details.css.map +1 -1
  114. package/assets/css/elements/dialog.css +1 -1
  115. package/assets/css/elements/dialog.css.map +1 -1
  116. package/assets/css/elements/dropdown.css +1 -1
  117. package/assets/css/elements/dropdown.css.map +1 -1
  118. package/assets/css/elements/forms.css +1 -1
  119. package/assets/css/elements/forms.css.map +1 -1
  120. package/assets/css/elements/input.css +1 -1
  121. package/assets/css/elements/input.css.map +1 -1
  122. package/assets/css/elements/links--collapsible-side.css +1 -1
  123. package/assets/css/elements/links--collapsible-side.css.map +1 -1
  124. package/assets/css/elements/links--global.css +1 -1
  125. package/assets/css/elements/links--global.css.map +1 -1
  126. package/assets/css/elements/links.css +1 -1
  127. package/assets/css/elements/links.css.map +1 -1
  128. package/assets/css/elements/lists--tick-list.css +1 -1
  129. package/assets/css/elements/lists--tick-list.css.map +1 -1
  130. package/assets/css/elements/modal.css +1 -1
  131. package/assets/css/elements/modal.css.map +1 -1
  132. package/assets/css/elements/popover.css +1 -1
  133. package/assets/css/elements/popover.css.map +1 -1
  134. package/assets/css/elements/prefix.css +1 -1
  135. package/assets/css/elements/prefix.css.map +1 -1
  136. package/assets/css/elements/select.css +1 -0
  137. package/assets/css/elements/select.css.map +1 -0
  138. package/assets/css/elements/tooltips.css +1 -1
  139. package/assets/css/elements/tooltips.css.map +1 -1
  140. package/assets/css/elements/type.css +1 -1
  141. package/assets/css/elements/type.css.map +1 -1
  142. package/assets/css/style.min.css +1 -1
  143. package/assets/css/style.min.css.map +1 -1
  144. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  145. package/assets/js/components/actionbar/actionbar.component.js +5 -3
  146. package/assets/js/components/actionbar/actionbar.component.min.js +10 -8
  147. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  148. package/assets/js/components/address-lookup/address-lookup.component.js +12 -6
  149. package/assets/js/components/address-lookup/address-lookup.component.min.js +9 -7
  150. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  151. package/assets/js/components/advanced-select/advanced-select.component.js +8 -17
  152. package/assets/js/components/advanced-select/advanced-select.component.min.js +7 -17
  153. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  154. package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
  155. package/assets/js/components/barchart/barchart.component.min.js +5 -5
  156. package/assets/js/components/bento-grid/bento-grid.component.min.js +2 -2
  157. package/assets/js/components/button/button.component.min.js +1 -1
  158. package/assets/js/components/calendar/calendar.component.min.js +5 -5
  159. package/assets/js/components/card/card.component.js +1 -0
  160. package/assets/js/components/card/card.component.min.js +21 -18
  161. package/assets/js/components/card/card.component.min.js.map +1 -1
  162. package/assets/js/components/carousel/carousel.component.js +144 -52
  163. package/assets/js/components/carousel/carousel.component.min.js +15 -21
  164. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  165. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +3 -3
  166. package/assets/js/components/config/config.component.min.js +8 -8
  167. package/assets/js/components/content/content.component.js +40 -3
  168. package/assets/js/components/content/content.component.min.js +4 -4
  169. package/assets/js/components/content/content.component.min.js.map +1 -1
  170. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  171. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +7 -7
  172. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  173. package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
  174. package/assets/js/components/filter-card/filter-card.component.min.js +20 -18
  175. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  176. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  177. package/assets/js/components/form/form.component.min.js +1 -1
  178. package/assets/js/components/header/header.component.min.js +2 -2
  179. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  180. package/assets/js/components/input/input.component.min.js +2 -2
  181. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  182. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  183. package/assets/js/components/menu/menu.component.js +1 -0
  184. package/assets/js/components/menu/menu.component.min.js +4 -4
  185. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  186. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  187. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  188. package/assets/js/components/modal/modal.component.js +3 -3
  189. package/assets/js/components/modal/modal.component.min.js +4 -4
  190. package/assets/js/components/modal/modal.component.min.js.map +1 -1
  191. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  192. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +4 -4
  193. package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
  194. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  195. package/assets/js/components/nav/nav.component.js +3 -3
  196. package/assets/js/components/nav/nav.component.min.js +6 -7
  197. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  198. package/assets/js/components/notification/notification.component.min.js +2 -2
  199. package/assets/js/components/pagination/pagination.component.min.js +4 -4
  200. package/assets/js/components/password/password.component.min.js +5 -5
  201. package/assets/js/components/popover/popover.component.min.js +4 -4
  202. package/assets/js/components/rank/rank.component.min.js +1 -1
  203. package/assets/js/components/rankings/rankings.component.min.js +6 -6
  204. package/assets/js/components/rating/rating.component.min.js +1 -1
  205. package/assets/js/components/record-card/record-card.component.min.js +18 -16
  206. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  207. package/assets/js/components/search/search.component.js +8 -13
  208. package/assets/js/components/search/search.component.min.js +9 -18
  209. package/assets/js/components/search/search.component.min.js.map +1 -1
  210. package/assets/js/components/slider/slider.component.min.js +3 -3
  211. package/assets/js/components/split-button/split-button.component.js +1 -1
  212. package/assets/js/components/split-button/split-button.component.min.js +6 -6
  213. package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
  214. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +11 -9
  215. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  216. package/assets/js/components/std-nav/std-nav.component.js +36 -88
  217. package/assets/js/components/std-nav/std-nav.component.min.js +15 -18
  218. package/assets/js/components/std-nav/std-nav.component.min.js.map +1 -1
  219. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.js +65 -0
  220. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +20 -0
  221. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js.map +1 -0
  222. package/assets/js/components/table/table.component.min.js +6 -6
  223. package/assets/js/components/table/table.component.min.js.map +1 -1
  224. package/assets/js/components/table-ajax/table-ajax.component.min.js +7 -7
  225. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  226. package/assets/js/components/table-basic/table-basic.component.min.js +2 -2
  227. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +4 -4
  228. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  229. package/assets/js/components/table-submit/table-submit.component.min.js +6 -6
  230. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  231. package/assets/js/components/tabs/tabs.component.min.js +4 -4
  232. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  233. package/assets/js/components/tag/tag.component.min.js +3 -3
  234. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  235. package/assets/js/components/video/video.component.min.js +5 -5
  236. package/assets/js/components/video-card/video-card.component.min.js +18 -16
  237. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  238. package/assets/js/components/video-modal/video-modal.component.min.js +5 -5
  239. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  240. package/assets/js/modules/advanced-select.js +30 -4
  241. package/assets/js/modules/card.module.js +16 -14
  242. package/assets/js/modules/carousel.js +11 -11
  243. package/assets/js/modules/nav.js +113 -0
  244. package/assets/js/modules/tabs.js +2 -1
  245. package/assets/js/scripts.bundle.js +1 -1
  246. package/assets/js/scripts.bundle.min.js +1 -1
  247. package/assets/sass/_corefiles.scss +1 -0
  248. package/assets/sass/_utilities.scss +1 -0
  249. package/assets/sass/components/actionbar.component.scss +15 -1
  250. package/assets/sass/components/address-lookup.component.scss +134 -2
  251. package/assets/sass/components/advanced-select.component.scss +59 -0
  252. package/assets/sass/components/bento-grid.global.scss +2 -2
  253. package/assets/sass/components/calendar.component.scss +1 -1
  254. package/assets/sass/components/calendar.config.scss +1 -1
  255. package/assets/sass/components/card.component.scss +29 -2
  256. package/assets/sass/components/card.module.scss +11 -5
  257. package/assets/sass/components/carousel.component.scss +535 -518
  258. package/assets/sass/components/carousel.config.scss +5 -45
  259. package/assets/sass/components/charts.config.scss +1 -1
  260. package/assets/sass/components/config.component.scss +1 -1
  261. package/assets/sass/components/filter-card.component.scss +5 -5
  262. package/assets/sass/components/header.component.scss +1 -1
  263. package/assets/sass/components/menu.component.scss +16 -11
  264. package/assets/sass/components/menu.global.scss +0 -11
  265. package/assets/sass/components/milestone.scss +2 -2
  266. package/assets/sass/components/modal.component.scss +1 -0
  267. package/assets/sass/components/multiselect.scss +8 -0
  268. package/assets/sass/components/nav.component.scss +22 -11
  269. package/assets/sass/components/nav.docs.scss +1 -2
  270. package/assets/sass/components/nav.global.scss +223 -47
  271. package/assets/sass/components/pagination.scss +2 -2
  272. package/assets/sass/components/popover.component.scss +37 -2
  273. package/assets/sass/components/search.component.scss +2 -0
  274. package/assets/sass/components/split-button.component.scss +3 -1
  275. package/assets/sass/components/std-nav-standalone.component.scss +228 -0
  276. package/assets/sass/components/table-basic.global.scss +3 -3
  277. package/assets/sass/components/table.global.scss +1 -1
  278. package/assets/sass/components/video.component.scss +1 -1
  279. package/assets/sass/elements/badge-tag.css +2 -2
  280. package/assets/sass/elements/buttons--global.css +4 -4
  281. package/assets/sass/elements/buttons--special.css +1 -52
  282. package/assets/sass/elements/container.scss +1 -1
  283. package/assets/sass/elements/details.css +3 -3
  284. package/assets/sass/elements/dialog.scss +9 -5
  285. package/assets/sass/elements/dropdown.css +188 -44
  286. package/assets/sass/elements/forms.scss +36 -522
  287. package/assets/sass/elements/input.scss +0 -7
  288. package/assets/sass/elements/links--collapsible-side.scss +1 -1
  289. package/assets/sass/elements/links--global.scss +5 -1
  290. package/assets/sass/elements/lists--tick-list.scss +2 -2
  291. package/assets/sass/elements/modal.scss +1 -1
  292. package/assets/sass/elements/popover.scss +1 -1
  293. package/assets/sass/elements/prefix.scss +1 -1
  294. package/assets/sass/elements/select.scss +238 -0
  295. package/assets/sass/elements/tooltips.scss +1 -1
  296. package/assets/sass/elements/type.css +31 -1
  297. package/assets/sass/email.scss +1 -1
  298. package/assets/sass/error.scss +0 -1
  299. package/assets/sass/foundations/debug.scss +6 -0
  300. package/assets/sass/foundations/reboot.scss +81 -1
  301. package/assets/sass/foundations/root.scss +19 -1
  302. package/assets/sass/main.scss +0 -1
  303. package/assets/sass/utilities/colours.scss +4 -1
  304. package/assets/sass/{_grid.scss → utilities/grid.scss} +120 -80
  305. package/assets/ts/components/actionbar/actionbar.component.ts +5 -3
  306. package/assets/ts/components/address-lookup/address-lookup.component.ts +18 -6
  307. package/assets/ts/components/advanced-select/advanced-select.component.ts +12 -17
  308. package/assets/ts/components/card/card.component.ts +1 -0
  309. package/assets/ts/components/carousel/carousel.component.ts +189 -58
  310. package/assets/ts/components/content/content.component.ts +62 -5
  311. package/assets/ts/components/menu/menu.component.ts +4 -0
  312. package/assets/ts/components/modal/modal.component.ts +3 -3
  313. package/assets/ts/components/nav/nav.component.ts +4 -7
  314. package/assets/ts/components/search/search.component.ts +13 -13
  315. package/assets/ts/components/split-button/split-button.component.ts +1 -1
  316. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +0 -1
  317. package/assets/ts/components/std-nav/std-nav.component.ts +44 -104
  318. package/assets/ts/components/std-nav-standalone/std-nav-standalone.component.ts +85 -0
  319. package/assets/ts/modules/advanced-select.ts +47 -7
  320. package/assets/ts/modules/card.module.ts +16 -14
  321. package/assets/ts/modules/carousel.ts +11 -11
  322. package/assets/ts/modules/nav.ts +135 -0
  323. package/assets/ts/modules/tabs.ts +1 -1
  324. package/dist/components.es.js +27 -27
  325. package/dist/components.umd.js +291 -290
  326. package/package.json +11 -10
  327. package/src/components/STDNavStandalone/STDNavStandalone.vue +22 -0
  328. package/assets/bootstrap/LICENSE +0 -22
  329. package/assets/bootstrap/README.md +0 -247
  330. package/assets/bootstrap/js/index.esm.js +0 -19
  331. package/assets/bootstrap/js/index.umd.js +0 -34
  332. package/assets/bootstrap/js/src/alert.js +0 -87
  333. package/assets/bootstrap/js/src/base-component.js +0 -85
  334. package/assets/bootstrap/js/src/button.js +0 -72
  335. package/assets/bootstrap/js/src/carousel.js +0 -475
  336. package/assets/bootstrap/js/src/collapse.js +0 -302
  337. package/assets/bootstrap/js/src/dom/data.js +0 -55
  338. package/assets/bootstrap/js/src/dom/event-handler.js +0 -320
  339. package/assets/bootstrap/js/src/dom/manipulator.js +0 -71
  340. package/assets/bootstrap/js/src/dom/selector-engine.js +0 -83
  341. package/assets/bootstrap/js/src/dropdown.js +0 -445
  342. package/assets/bootstrap/js/src/modal.js +0 -373
  343. package/assets/bootstrap/js/src/offcanvas.js +0 -283
  344. package/assets/bootstrap/js/src/popover.js +0 -97
  345. package/assets/bootstrap/js/src/scrollspy.js +0 -290
  346. package/assets/bootstrap/js/src/tab.js +0 -307
  347. package/assets/bootstrap/js/src/toast.js +0 -220
  348. package/assets/bootstrap/js/src/tooltip.js +0 -651
  349. package/assets/bootstrap/js/src/util/backdrop.js +0 -149
  350. package/assets/bootstrap/js/src/util/component-functions.js +0 -34
  351. package/assets/bootstrap/js/src/util/config.js +0 -66
  352. package/assets/bootstrap/js/src/util/focustrap.js +0 -115
  353. package/assets/bootstrap/js/src/util/index.js +0 -336
  354. package/assets/bootstrap/js/src/util/sanitizer.js +0 -118
  355. package/assets/bootstrap/js/src/util/scrollbar.js +0 -114
  356. package/assets/bootstrap/js/src/util/swipe.js +0 -146
  357. package/assets/bootstrap/js/src/util/template-factory.js +0 -160
  358. package/assets/bootstrap/package.json +0 -180
  359. package/assets/bootstrap/scss/_accordion.scss +0 -146
  360. package/assets/bootstrap/scss/_alert.scss +0 -71
  361. package/assets/bootstrap/scss/_badge.scss +0 -38
  362. package/assets/bootstrap/scss/_breadcrumb.scss +0 -40
  363. package/assets/bootstrap/scss/_button-group.scss +0 -142
  364. package/assets/bootstrap/scss/_buttons.scss +0 -186
  365. package/assets/bootstrap/scss/_card.scss +0 -234
  366. package/assets/bootstrap/scss/_carousel.scss +0 -229
  367. package/assets/bootstrap/scss/_close.scss +0 -40
  368. package/assets/bootstrap/scss/_containers.scss +0 -41
  369. package/assets/bootstrap/scss/_dropdown.scss +0 -248
  370. package/assets/bootstrap/scss/_forms.scss +0 -9
  371. package/assets/bootstrap/scss/_functions.scss +0 -302
  372. package/assets/bootstrap/scss/_grid.scss +0 -33
  373. package/assets/bootstrap/scss/_helpers.scss +0 -10
  374. package/assets/bootstrap/scss/_images.scss +0 -42
  375. package/assets/bootstrap/scss/_list-group.scss +0 -191
  376. package/assets/bootstrap/scss/_maps.scss +0 -54
  377. package/assets/bootstrap/scss/_mixins.scss +0 -43
  378. package/assets/bootstrap/scss/_modal.scss +0 -237
  379. package/assets/bootstrap/scss/_nav.scss +0 -172
  380. package/assets/bootstrap/scss/_navbar.scss +0 -276
  381. package/assets/bootstrap/scss/_offcanvas.scss +0 -143
  382. package/assets/bootstrap/scss/_pagination.scss +0 -109
  383. package/assets/bootstrap/scss/_placeholders.scss +0 -51
  384. package/assets/bootstrap/scss/_popover.scss +0 -196
  385. package/assets/bootstrap/scss/_progress.scss +0 -59
  386. package/assets/bootstrap/scss/_reboot.scss +0 -610
  387. package/assets/bootstrap/scss/_root.scss +0 -73
  388. package/assets/bootstrap/scss/_spinners.scss +0 -85
  389. package/assets/bootstrap/scss/_tables.scss +0 -164
  390. package/assets/bootstrap/scss/_toasts.scss +0 -70
  391. package/assets/bootstrap/scss/_tooltip.scss +0 -120
  392. package/assets/bootstrap/scss/_transitions.scss +0 -27
  393. package/assets/bootstrap/scss/_type.scss +0 -106
  394. package/assets/bootstrap/scss/_utilities.scss +0 -647
  395. package/assets/bootstrap/scss/_variables-dark.scss +0 -87
  396. package/assets/bootstrap/scss/_variables.scss +0 -1633
  397. package/assets/bootstrap/scss/bootstrap-grid.scss +0 -64
  398. package/assets/bootstrap/scss/bootstrap-reboot.scss +0 -9
  399. package/assets/bootstrap/scss/bootstrap-utilities.scss +0 -15
  400. package/assets/bootstrap/scss/bootstrap.scss +0 -51
  401. package/assets/bootstrap/scss/forms/_floating-labels.scss +0 -74
  402. package/assets/bootstrap/scss/forms/_form-check.scss +0 -175
  403. package/assets/bootstrap/scss/forms/_form-control.scss +0 -194
  404. package/assets/bootstrap/scss/forms/_form-range.scss +0 -91
  405. package/assets/bootstrap/scss/forms/_form-select.scss +0 -71
  406. package/assets/bootstrap/scss/forms/_form-text.scss +0 -11
  407. package/assets/bootstrap/scss/forms/_input-group.scss +0 -129
  408. package/assets/bootstrap/scss/forms/_labels.scss +0 -36
  409. package/assets/bootstrap/scss/forms/_validation.scss +0 -12
  410. package/assets/bootstrap/scss/helpers/_clearfix.scss +0 -3
  411. package/assets/bootstrap/scss/helpers/_color-bg.scss +0 -10
  412. package/assets/bootstrap/scss/helpers/_colored-links.scss +0 -12
  413. package/assets/bootstrap/scss/helpers/_focus-ring.scss +0 -5
  414. package/assets/bootstrap/scss/helpers/_icon-link.scss +0 -25
  415. package/assets/bootstrap/scss/helpers/_position.scss +0 -36
  416. package/assets/bootstrap/scss/helpers/_ratio.scss +0 -26
  417. package/assets/bootstrap/scss/helpers/_stacks.scss +0 -15
  418. package/assets/bootstrap/scss/helpers/_stretched-link.scss +0 -15
  419. package/assets/bootstrap/scss/helpers/_text-truncation.scss +0 -7
  420. package/assets/bootstrap/scss/helpers/_visually-hidden.scss +0 -8
  421. package/assets/bootstrap/scss/helpers/_vr.scss +0 -8
  422. package/assets/bootstrap/scss/mixins/_alert.scss +0 -15
  423. package/assets/bootstrap/scss/mixins/_backdrop.scss +0 -14
  424. package/assets/bootstrap/scss/mixins/_banner.scss +0 -9
  425. package/assets/bootstrap/scss/mixins/_border-radius.scss +0 -78
  426. package/assets/bootstrap/scss/mixins/_box-shadow.scss +0 -18
  427. package/assets/bootstrap/scss/mixins/_breakpoints.scss +0 -127
  428. package/assets/bootstrap/scss/mixins/_buttons.scss +0 -70
  429. package/assets/bootstrap/scss/mixins/_caret.scss +0 -64
  430. package/assets/bootstrap/scss/mixins/_clearfix.scss +0 -9
  431. package/assets/bootstrap/scss/mixins/_color-mode.scss +0 -21
  432. package/assets/bootstrap/scss/mixins/_color-scheme.scss +0 -7
  433. package/assets/bootstrap/scss/mixins/_container.scss +0 -11
  434. package/assets/bootstrap/scss/mixins/_deprecate.scss +0 -10
  435. package/assets/bootstrap/scss/mixins/_forms.scss +0 -152
  436. package/assets/bootstrap/scss/mixins/_gradients.scss +0 -47
  437. package/assets/bootstrap/scss/mixins/_grid.scss +0 -151
  438. package/assets/bootstrap/scss/mixins/_image.scss +0 -16
  439. package/assets/bootstrap/scss/mixins/_list-group.scss +0 -24
  440. package/assets/bootstrap/scss/mixins/_lists.scss +0 -7
  441. package/assets/bootstrap/scss/mixins/_pagination.scss +0 -10
  442. package/assets/bootstrap/scss/mixins/_reset-text.scss +0 -17
  443. package/assets/bootstrap/scss/mixins/_resize.scss +0 -6
  444. package/assets/bootstrap/scss/mixins/_table-variants.scss +0 -24
  445. package/assets/bootstrap/scss/mixins/_text-truncate.scss +0 -8
  446. package/assets/bootstrap/scss/mixins/_transition.scss +0 -26
  447. package/assets/bootstrap/scss/mixins/_utilities.scss +0 -97
  448. package/assets/bootstrap/scss/mixins/_visually-hidden.scss +0 -29
  449. package/assets/bootstrap/scss/utilities/_api.scss +0 -47
  450. package/assets/bootstrap/scss/vendor/_rfs.scss +0 -354
  451. package/assets/favicons/README.md +0 -21
  452. package/assets/ts/README.md +0 -12
  453. package/assets/ts/components/actionbar/README.md +0 -56
  454. package/assets/ts/components/applied-filters/README.md +0 -20
  455. package/assets/ts/components/bento-grid/README.md +0 -31
  456. package/assets/ts/components/carousel/README.md +0 -38
  457. package/assets/ts/components/chart/README.md +0 -35
  458. package/assets/ts/components/collapsible-side/README.md +0 -38
  459. package/assets/ts/components/filterlist/README.md +0 -32
  460. package/assets/ts/components/header/README.md +0 -38
  461. package/assets/ts/components/inline-edit/README.md +0 -31
  462. package/assets/ts/components/multiselect/README.md +0 -35
  463. package/assets/ts/components/nav/README.md +0 -57
  464. package/assets/ts/components/notification/README.md +0 -47
  465. package/assets/ts/components/pagination/README.md +0 -37
  466. package/assets/ts/components/search/README.md +0 -35
  467. package/assets/ts/components/slider/README.md +0 -26
  468. package/assets/ts/components/table/README.md +0 -40
  469. package/assets/ts/components/table-basic/README.md +0 -40
  470. package/assets/ts/components/tabs/README.md +0 -34
  471. package/src/components/Accordion/README.md +0 -31
  472. package/src/components/Actionbar/README.md +0 -41
  473. package/src/components/AppliedFilters/README.md +0 -5
  474. package/src/components/Banner/README.md +0 -22
  475. package/src/components/Card/README.md +0 -24
  476. package/src/components/Carousel/README.md +0 -20
  477. package/src/components/Chart/README.md +0 -17
  478. package/src/components/CollapsibleSideMenu/README.md +0 -23
  479. package/src/components/FileUpload/README.md +0 -13
  480. package/src/components/Filterlist/README.md +0 -17
  481. package/src/components/Header/README.md +0 -27
  482. package/src/components/InlineEdit/README.md +0 -7
  483. package/src/components/Input/README.md +0 -17
  484. package/src/components/Marketing/README.md +0 -20
  485. package/src/components/Multiselect/README.md +0 -12
  486. package/src/components/Nav/README.md +0 -42
  487. package/src/components/Nav-old/README.md +0 -22
  488. package/src/components/NoteFeed/README.md +0 -16
  489. package/src/components/Notification/README.md +0 -32
  490. package/src/components/Pagination/README.md +0 -22
  491. package/src/components/PropertySearchbar/README.md +0 -25
  492. package/src/components/Search/README.md +0 -11
  493. package/src/components/Slider/README.md +0 -11
  494. package/src/components/Snapshot/README.md +0 -20
  495. package/src/components/SplitButton/README.md +0 -19
  496. package/src/components/Stepper/README.md +0 -32
  497. package/src/components/Table/README.md +0 -49
  498. package/src/components/Tabs/README.md +0 -29
  499. package/src/components/Testimonial/README.md +0 -25
  500. package/src/components/Timeline/README.md +0 -18
  501. package/src/foundations/Logo/README.md +0 -21
@@ -1,6 +1,11 @@
1
1
  @use 'sass:math';
2
2
  @use 'sass:map';
3
- @use '_func' as *;
3
+
4
+ @use 'sass:meta';
5
+ @use 'sass:list';
6
+ @use 'sass:string';
7
+
8
+
4
9
 
5
10
  $columns: 12;
6
11
  $rows-per-page: 20;
@@ -123,83 +128,7 @@ $breakpoints: (
123
128
  }
124
129
  /* #endregion */
125
130
 
126
- @layer reset {
127
- /* #region Main grid setup */
128
- body {
129
- --excess-space: calc((100% - var(--max-width)) / 2);
130
- --col-size: calc(
131
- (
132
- 100% - max(0%, var(--excess-space)) - max(0%, var(--excess-space)) - var(--gutter) - var(--gutter) - (var(--gap) * (#{$columns - 1}))
133
- ) / #{$columns}
134
- );
135
- column-gap: var(--gap);
136
- display: grid;
137
- margin-inline: 0;
138
- width: 100%;
139
- grid-template-rows: auto;
140
- align-content: start;
141
- justify-content: center;
142
-
143
- $templateColumns: '';
144
-
145
- @for $i from 1 to $columns {
146
- $templateColumns: $templateColumns + 'var(--col-size) [col-' + $i + '-end col-'+ ($i + 1)+'-start] ';
147
- }
148
- grid-template-columns:
149
- [full-width-start container-start] calc(var(--gutter) - var(--gap))
150
- [content-start col-1-start]
151
- #{$templateColumns}
152
- var(--col-size) [col-#{$columns}-end content-end] calc(var(--gutter) - var(--gap))
153
- [container-end full-width-end];
154
-
155
- @media screen and (min-width: #{em(1280 * 1.125)}) {
156
- grid-template-columns:
157
- [full-width-start] calc(var(--excess-space) - var(--gap))
158
- [container-start] calc(var(--gutter) - var(--gap))
159
- [content-start col-1-start]
160
- #{$templateColumns}
161
- var(--col-size) [col-#{$columns}-end content-end] calc(var(--gutter) - var(--gap))
162
- [container-end] calc(var(--excess-space) - var(--gap)) [full-width-end];
163
- }
164
-
165
- & * {
166
- grid-column: content;
167
-
168
- &:where(button):not(:has(.card)) {
169
- max-width: fit-content;
170
- place-self: start;
171
- }
172
-
173
- &:is(div) {
174
- align-content: start;
175
- }
176
- }
177
- }
178
-
179
- div:has(main) {
180
- display: contents !important;
181
- }
182
-
183
- :is(nav, main, footer) {
184
- display: grid;
185
- grid-column: full-width !important;
186
- grid-template-columns: subgrid;
187
- }
188
-
189
- *:not(.row) > main:not(:has(.container:last-child)):not(:has(iam-collapsible-side:last-child)) {
190
- padding-bottom: 1rem;
191
- }
192
-
193
- main > :is(.full-width, [class*='bg-']:has(.container), iam-header, iam-collapsible-side, iam-notification) {
194
- grid-column: full-width;
195
- }
196
-
197
- [class*='bg-']:not([class*='col-']):has(.container) {
198
- display: grid;
199
- grid-column: full-width;
200
- grid-template-columns: subgrid;
201
- }
202
- /* #endregion */
131
+ @layer utilities {
203
132
 
204
133
  /* #region Grid utility classes */
205
134
  .grid {
@@ -242,7 +171,7 @@ $breakpoints: (
242
171
  }
243
172
 
244
173
  *:not(:where(html, body)):has(
245
- :is([class*='cols-'], [class*='col-start-'], [class*='col-end-'], [class*='col-span-'])
174
+ :is([class*='cols-'], [class*='col-start-'], [class*='col-end-'], [class*='col-span-']):not([class*='row-cols-'])
246
175
  ) {
247
176
  display: grid;
248
177
  grid-template-columns: subgrid;
@@ -293,7 +222,7 @@ $breakpoints: (
293
222
  $count: math.div($columns, $i);
294
223
 
295
224
  .cols-#{$i} > * {
296
- grid-column: auto / span #{math.floor($count)};
225
+ grid-column: auto / span #{math.floor($count)}!important;
297
226
  }
298
227
  }
299
228
 
@@ -318,8 +247,10 @@ $breakpoints: (
318
247
 
319
248
  /* #endregion */
320
249
 
250
+ /* #region auto grid */
321
251
  .auto-grid {
322
252
  display: flex;
253
+ flex-wrap: nowrap;
323
254
  column-gap: var(--gap);
324
255
 
325
256
  > * {
@@ -350,4 +281,113 @@ $breakpoints: (
350
281
  }
351
282
  }
352
283
  }
284
+ /* #endregion */
285
+
286
+ /* #region Bootstrap grid */
287
+ .row {
288
+
289
+ display: flex;
290
+ flex-wrap: wrap;
291
+ margin-right: calc(-0.5 * var(--gap)); /* stylelint-disable-line function-disallowed-list */
292
+ margin-left: calc(-0.5 * var(--gap)); /* stylelint-disable-line function-disallowed-list */
293
+
294
+ > * {
295
+
296
+ flex-shrink: 0;
297
+ width: 100%;
298
+ max-width: 100%;
299
+ padding-right: calc(var(--gap) * 0.5);
300
+ padding-left: calc(var(--gap) * 0.5);
301
+ }
302
+ }
303
+
304
+ .col {
305
+ flex: 1 0 0%;
306
+ }
307
+
308
+ @for $i from 1 through 12 {
309
+ .col-#{$i} {
310
+ flex: 0 0 auto;
311
+ $width: math.div($i, 12);
312
+ width: math.percentage($width);
313
+ }
314
+ }
315
+
316
+ .row-cols-auto {
317
+
318
+ display: flex;
319
+ flex: 0 0 auto;
320
+ width: auto;
321
+
322
+ > * {
323
+ display: block!important;
324
+ width: 100%;
325
+ }
326
+ }
327
+
328
+ @for $i from 1 through 4 {
329
+ .row-cols-#{$i} {
330
+
331
+ display: flex;
332
+
333
+ > * {
334
+ display: block!important;
335
+ flex: 0 0 auto;
336
+ width: math.div(100%, $i);
337
+ }
338
+ }
339
+ }
340
+
341
+
342
+ @media screen and (min-width: 36em) {
343
+
344
+ @for $i from 1 through 4 {
345
+ .row-cols-sm-#{$i} {
346
+ > * {
347
+ flex: 0 0 auto;
348
+ width: calc(100% / #{$i});
349
+ }
350
+ }
351
+ }
352
+
353
+ .col-sm-auto {
354
+ flex: 0 0 auto;
355
+ width: auto;
356
+ }
357
+
358
+ @for $i from 1 through 12 {
359
+ .col-sm-#{$i} {
360
+ flex: 0 0 auto;
361
+ $width: math.div($i, 12);
362
+ width: math.percentage($width);
363
+ }
364
+ }
365
+ }
366
+
367
+ @media screen and (min-width: 62em) {
368
+
369
+ @for $i from 1 through 4 {
370
+ .row-cols-md-#{$i} {
371
+ > * {
372
+ flex: 0 0 auto;
373
+ width: calc(100% / #{$i});
374
+ }
375
+ }
376
+ }
377
+
378
+ .col-md-auto {
379
+ flex: 0 0 auto;
380
+ width: auto;
381
+ }
382
+
383
+ @for $i from 1 through 12 {
384
+ .col-md-#{$i} {
385
+ flex: 0 0 auto;
386
+ $width: math.div($i, 12);
387
+ width: math.percentage($width);
388
+ }
389
+ }
390
+ }
391
+
392
+ /* #endregion */
353
393
  }
@@ -106,8 +106,10 @@ class iamActionbar extends HTMLElement {
106
106
  <div class="search-wrapper" part="search">
107
107
  <label for="search" class="visually-hidden">Input field label</label>
108
108
  <button class="suffix" part="search-btn"><i class="fa-regular fa-search"></i></button>
109
- <input type="text" id="search" name="search" required="" part="search-input">
110
- <button class="empty btn btn-action"><i class="fa-light fa-times me-0" aria-hidden="true"></i></button>
109
+ <span class="input__wrapper mt-0">
110
+ <input type="text" id="search" name="search" required="" part="search-input">
111
+ <button class="clear-search btn btn-action"><i class="fa-light fa-times me-0" aria-hidden="true"></i></button>
112
+ </span>
111
113
  </div>
112
114
 
113
115
  </div>
@@ -282,7 +284,7 @@ class iamActionbar extends HTMLElement {
282
284
  }
283
285
  });
284
286
 
285
- const clearBtn = searchBar.querySelector('.empty');
287
+ const clearBtn = searchBar.querySelector('.clear-search');
286
288
  const searchInput = searchBar.querySelector('#search');
287
289
 
288
290
  clearBtn.addEventListener('click', function (e) {
@@ -46,15 +46,17 @@ class iamAddressLookup extends HTMLElement {
46
46
  <div>
47
47
  <label class="mb-1"><span class="title text-lowercase"></span>
48
48
  <span>
49
- <input type="text" name="postcode" class="${this.hasAttribute('data-input-class') ? this.getAttribute('data-input-class') : ''}" list="address-lookup__addressess" autocomplete="one-time-code" aria-autocomplete="none" placeholder="${this?.hasAttribute('data-placeholder') ? this?.getAttribute('data-placeholder') : 'Postcode'}" value="${this.hasAttribute('data-postcode-value') ? this.getAttribute('data-postcode-value') : ''}" part="input" />
49
+ <span class="input__wrapper">
50
+ <input type="text" name="postcode" class="${this.hasAttribute('data-input-class') ? this.getAttribute('data-input-class') : ''}" list="address-lookup__addressess" autocomplete="one-time-code" aria-autocomplete="none" placeholder="${this?.hasAttribute('data-placeholder') ? this?.getAttribute('data-placeholder') : 'Postcode'}" value="${this.hasAttribute('data-postcode-value') ? this.getAttribute('data-postcode-value') : ''}" part="input" />
51
+ </span>
50
52
  <button id="postcode__submit" class="suffix fa-regular fa-search" part="suffix"></button>
51
53
  </span>
52
54
  </label>
53
55
  <span class="invalid-feedback mb-2" id="invalid-feedback-address-lookup">${this.hasAttribute('data-error-msg') ? this.getAttribute('data-error-msg') : 'Required address fields'}</span>
54
56
 
55
- <div class="datalist__wrapper ${this.hasAttribute('data-list-class') ? this.getAttribute('data-list-class') : ''}" tabindex="0" part="list-wrapper">
57
+ <div class="datalist__wrapper dropdown ${this.hasAttribute('data-list-class') ? this.getAttribute('data-list-class') : ''}" tabindex="0" part="list-wrapper">
56
58
  <slot name="beforeList"></slot>
57
- <slot name="preloadedList"></slot>
59
+
58
60
  <datalist id="address-lookup__addressess" class=""></datalist>
59
61
  <div id="paginationWrapper"></div>
60
62
  <slot name="afterList"></slot>
@@ -89,13 +91,15 @@ class iamAddressLookup extends HTMLElement {
89
91
  }
90
92
 
91
93
  async connectedCallback(): void {
94
+
95
+ // Make the datalist a dropdown
96
+ this.classList.add('dropdown__wrapper');
97
+
92
98
  const lookup = this.shadowRoot.querySelector('[name="postcode"]');
93
99
  const lookupWrapper = this.shadowRoot.querySelector('.postcode-lookup');
94
100
  const manualWrapper = this.shadowRoot.querySelector('.manual-address');
95
101
  const preFilledWrapper = this.shadowRoot.querySelector('.pre-filled');
96
- const list = this.querySelector('datalist[slot="preloadedList"]')
97
- ? this.querySelector('datalist[slot="preloadedList"]')
98
- : this.shadowRoot.querySelector('.datalist__wrapper datalist');
102
+ const list = this.shadowRoot.querySelector('datalist');
99
103
  const listWrapper = this.shadowRoot.querySelector('.datalist__wrapper');
100
104
  const switchManualBtn = this.shadowRoot.querySelector('.switch-to-manual-btn');
101
105
  const switchLookupBtn = this.shadowRoot.querySelector('.switch-to-lookup-btn');
@@ -121,6 +125,14 @@ class iamAddressLookup extends HTMLElement {
121
125
  titleElement.innerHTML = title;
122
126
  });
123
127
 
128
+
129
+ // preload datalis
130
+
131
+ if(this.querySelector('datalist')){
132
+ list.innerHTML = this.querySelector('datalist').innerHTML;
133
+ }
134
+
135
+
124
136
  // #region functions
125
137
  function checkFilled(component): void {
126
138
  const preFilledAddress = component.shadowRoot.querySelector('.pre-filled-address');
@@ -16,34 +16,26 @@ class iamAdvancedSelect extends HTMLElement {
16
16
  const assetLocation = document.body.hasAttribute('data-assets-location')
17
17
  ? document.body.getAttribute('data-assets-location')
18
18
  : '/assets';
19
- const coreCSS = document.body.hasAttribute('data-core-css')
20
- ? document.body.getAttribute('data-core-css')
21
- : `${assetLocation}/css/core.min.css`;
19
+
20
+ const loadCSS = `@import "${assetLocation}/css/components/advanced-select.component.css";`;
22
21
 
23
22
  const template = document.createElement('template');
24
23
  template.innerHTML = `
25
24
  <style>
26
- @import "${coreCSS}";
27
- input {
28
- background: red;
29
- }
30
- input:not(.is-invalid):not(:invalid) {
31
- background: none!important;
32
- }
33
- .optional-text {
34
- display: none;
35
- }
36
- .js-hide {
37
- display: none !important;
38
- }
25
+ ${loadCSS}
39
26
  </style>
40
27
  <link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous" />
41
- <slot></slot>
28
+ <span class="wrapper"><span class="input__wrapper"><slot></slot></span><span class="suffix fa-regular fa-chevron-down"></span></span>
29
+ <slot name="datalist"></slot>
42
30
  `;
43
31
  this.shadowRoot.appendChild(template.content.cloneNode(true));
44
32
  }
45
33
 
46
34
  connectedCallback(): void {
35
+
36
+ // Make the datalist a dropdown
37
+ this.classList.add('dropdown__wrapper');
38
+
47
39
  // Clone original input field, re-name and use for display purposes
48
40
  const inputField = this.querySelector('input') as HTMLInputElement | null;
49
41
  if (!inputField) return;
@@ -55,6 +47,9 @@ class iamAdvancedSelect extends HTMLElement {
55
47
  inputField.removeAttribute('data-change-events');
56
48
  displayInputField.removeAttribute('id');
57
49
 
50
+ if(this.querySelector('label'))
51
+ this.classList.add('has-label');
52
+
58
53
  let datalist = this.querySelector('datalist') as HTMLDataListElement | null;
59
54
 
60
55
  inputField.after(displayInputField);
@@ -22,6 +22,7 @@ class iamCard extends HTMLElement {
22
22
  ${loadCSS}
23
23
  </style>
24
24
  ${cardHTML}
25
+ <slot name="link"></slot>
25
26
  <slot name="primary-action"></slot>
26
27
  `;
27
28
 
@@ -1,4 +1,3 @@
1
- import { generateThumbnailList, generatePipsHTML, carousel, updateCarousel } from '../../modules/carousel';
2
1
  import { trackComponent, trackComponentRegistered } from '../_global';
3
2
 
4
3
  trackComponentRegistered('iam-carousel');
@@ -20,86 +19,218 @@ class iamCarousel extends HTMLElement {
20
19
  ${loadCSS}
21
20
  ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
22
21
  </style>
23
- <div class="carousel" part="carousel">
24
- <div class="carousel__wrapper">
25
- <div class="carousel__inner">
26
- <div class="carousel__content" part="content">
27
- <slot></slot>
28
- </div>
29
- </div>
22
+ <div class="carousel-wrapper">
23
+ <div class="carousel" part="carousel">
24
+ <slot></slot>
30
25
  </div>
31
- <div class="carousel__btns" part="btns">
32
- <button class="btn btn-secondary btn-compact fa-plus-large btn-prev" data-go="0" disabled part="prev">
33
- Prev
34
- </button>
35
- <button class="btn btn-secondary btn-compact fa-plus-large btn-next" data-go="2" part="next">Next</button>
26
+ <div class="carousel__controls"></div>
27
+ <div id="carousel__progress" class="carousel__progress">
28
+ <input type="range" min="0" max="100" value="0" step="1" />
36
29
  </div>
37
-
38
- <div class="carousel__controls" part="controls"></div>
39
-
40
- <div class="carousel__progress" part="progress">
41
- <input type="range" min="0" max="100" value="1" step="1" />
30
+ <div id="carousel__progress-sm" class="carousel__progress">
31
+ <input type="range" min="0" max="100" value="0" step="1" />
32
+ </div>
33
+ <div id="carousel__progress-md" class="carousel__progress">
34
+ <input type="range" min="0" max="100" value="0" step="1" />
42
35
  </div>
43
36
  </div>
44
37
  `;
45
38
  this.shadowRoot.appendChild(template.content.cloneNode(true));
46
39
  }
47
40
 
48
- connectedCallback(): void {
49
- // eslint-disable-next-line @typescript-eslint/no-this-alias
50
- const carouselComponent = this;
51
- //const carouselElement = this.shadowRoot.querySelector('.carousel');
52
- //const row = this.shadowRoot.querySelector('.row');
41
+ generateThumbnailList = (carouselComponent): any => {
42
+ const thumbnailImages = [];
53
43
 
54
- let thumbnailImages = [];
44
+ Array.from(carouselComponent.querySelectorAll(':scope > :is(div,iam-card)')).forEach((slide, index) => {
45
+ if (slide.hasAttribute('data-thumbnail')) {
46
+ thumbnailImages[index] = slide.getAttribute('data-thumbnail');
47
+ }
48
+ });
55
49
 
56
- const carouselControls = this.shadowRoot.querySelector('.carousel__controls');
50
+ return thumbnailImages;
51
+ };
52
+
53
+ generatePipsHTML = (carouselComponent, thumbnailImages): string => {
54
+ const itemCount = carouselComponent.querySelectorAll(':scope > :is(div,iam-card)').length;
55
+
56
+ let pips = '';
57
+ for (let i = 1; i <= itemCount; i++) {
58
+ let pipContent = null;
59
+ let pipClass = '';
60
+
61
+ if (thumbnailImages.length && thumbnailImages[i - 1]) {
62
+ pipClass = 'has-thumbnail';
63
+ pipContent = `<img src="${thumbnailImages[i - 1]}" alt="Slide ${i}" height="148"/>`;
64
+ } else {
65
+ pipContent = `Slide ${i}`;
66
+ }
67
+
68
+ pips += `<button class="control-${i} ${pipClass}" data-slide="${i}" ${i == 1 ? 'aria-current' : ''}>${pipContent}</button>`;
69
+ }
70
+
71
+ return pips;
72
+ };
73
+
74
+ progressPercent = (value, total):string => {
75
+
76
+ return ((value) / (total)) * 100 + '%'
77
+ }
57
78
 
58
- if (carouselComponent.querySelector('[data-thumbnail]')) {
59
- thumbnailImages = generateThumbnailList(carouselComponent);
60
- carouselComponent.classList.add('thumbnails');
79
+ connectedCallback(): void {
80
+
81
+ const carouselElement = this.shadowRoot?.querySelector('.carousel');
82
+ const carouselProgress = this.shadowRoot.querySelector('#carousel__progress [type="range"]');
83
+ const carouselProgressSM = this.shadowRoot.querySelector('#carousel__progress-sm [type="range"]');
84
+ const carouselProgressMD = this.shadowRoot.querySelector('#carousel__progress-md [type="range"]');
85
+ const itemCount = this.querySelectorAll(':scope > *').length;
86
+
87
+ const progressPercent = this.progressPercent;
88
+
89
+ let stepperInterval,
90
+ stepperEvent = 'mouseup',
91
+ stepperStart = 'mousedown';
92
+
93
+ if ('ontouchstart' in document.documentElement) {
94
+ stepperEvent = 'touchend';
95
+ stepperStart = 'touchstart';
61
96
  }
62
97
 
63
- // populate the pips
64
- carouselControls.innerHTML = generatePipsHTML(carouselComponent, thumbnailImages);
65
-
66
- Array.from(
67
- carouselComponent.querySelectorAll(
68
- ':scope > div > img:first-child:last-child, :scope > div > picture:first-child:last-child img'
69
- )
70
- ).forEach((image) => {
71
- image.style.inset = '0 0.5rem 0 0.5rem';
72
- image.style.position = 'absolute';
73
- image.style.width = 'calc(100% - 1rem)';
74
- image.style.height = '100%';
75
- image.style['object-fit'] = 'cover';
76
-
77
- image.closest('div').classList.add('image__wrapper');
98
+ carouselElement?.innerHTML = this.innerHTML;
99
+ carouselElement?.setAttribute('data-smcols',this.getAttribute('data-smcols'));
100
+ carouselElement?.setAttribute('data-mdcols',this.getAttribute('data-mdcols'));
101
+
102
+ carouselProgress.setAttribute('max', itemCount);
103
+ carouselProgress.style.setProperty('--percent', progressPercent(carouselProgress.value, itemCount));
104
+
105
+ carouselProgress.addEventListener(stepperStart, () => {
106
+ clearInterval(stepperInterval);
107
+ stepperInterval = setInterval(function () {
108
+
109
+ carouselProgress.style.setProperty('--percent', progressPercent(carouselProgress.value, itemCount));
110
+ }, 10);
111
+ });
112
+
113
+ carouselProgress.addEventListener(stepperEvent, function () {
114
+ clearInterval(stepperInterval);
78
115
  });
79
116
 
80
- carousel(carouselComponent);
117
+ carouselProgress.addEventListener('change', () => {
81
118
 
82
- const observer = new MutationObserver(function (mutations) {
83
- mutations.forEach(function (mutationRecord) {
84
- const targetElement = mutationRecord.target as HTMLElement;
119
+ clearInterval(stepperInterval);
120
+ carouselProgress.style.setProperty('--percent', progressPercent(carouselProgress.value, itemCount));
121
+ const scrollTo = Math.floor((carouselElement.scrollWidth / itemCount) * (carouselProgress.value-1));
85
122
 
86
- updateCarousel(targetElement);
123
+ carouselElement.scrollTo({
124
+ top: 0,
125
+ left: scrollTo,
126
+ behavior: 'smooth',
87
127
  });
88
128
  });
89
129
 
90
- observer.observe(carouselComponent, {
91
- attributes: false,
92
- childList: true,
93
- subtree: true,
130
+
131
+ // SM Progress bar
132
+
133
+ const smStep = this.getAttribute('data-smcols') ? this.getAttribute('data-smcols') : 1;
134
+ const smItemCount = Math.floor(itemCount / smStep) * smStep;
135
+
136
+ carouselProgressSM.setAttribute('max', smItemCount);
137
+ carouselProgressSM.setAttribute('step', smStep);
138
+
139
+ carouselProgressSM.style.setProperty('--percent', progressPercent(carouselProgressSM.value, smItemCount));
140
+
141
+ carouselProgressSM.addEventListener(stepperStart, () => {
142
+ clearInterval(stepperInterval);
143
+ stepperInterval = setInterval(function () {
144
+ carouselProgressSM.style.setProperty('--percent', progressPercent(carouselProgressSM.value, smItemCount));
145
+ });
94
146
  });
95
147
 
148
+ carouselProgressSM.addEventListener(stepperEvent, function () {
149
+ clearInterval(stepperInterval);
150
+ });
151
+
152
+ carouselProgressSM.addEventListener('change', () => {
153
+
154
+ clearInterval(stepperInterval);
155
+
156
+ carouselProgressSM.style.setProperty('--percent', progressPercent(carouselProgressSM.value, smItemCount));
157
+ const scrollTo = Math.floor((carouselElement.scrollWidth / smItemCount) * carouselProgressSM.value);
158
+
159
+ console.log(carouselProgressSM.value);
160
+
161
+ carouselElement.scrollTo({
162
+ top: 0,
163
+ left: scrollTo,
164
+ behavior: 'smooth',
165
+ });
166
+ });
167
+
168
+ // MD Progress bar
169
+
170
+ const mdStep = this.getAttribute('data-smcols') ? this.getAttribute('data-smcols') : 1;
171
+ const mdItemCount = Math.floor(itemCount / mdStep) * mdStep;
172
+
173
+ carouselProgressMD.setAttribute('max', mdItemCount);
174
+ carouselProgressMD.setAttribute('step', mdStep);
175
+
176
+ carouselProgressMD.style.setProperty('--percent', progressPercent(carouselProgressMD.value, mdItemCount));
177
+
178
+ carouselProgressMD.addEventListener(stepperStart, () => {
179
+ clearInterval(stepperInterval);
180
+ stepperInterval = setInterval(function () {
181
+ carouselProgressMD.style.setProperty('--percent', progressPercent(carouselProgressMD.value, mdItemCount));
182
+ });
183
+ });
184
+
185
+ carouselProgressMD.addEventListener(stepperEvent, function () {
186
+ clearInterval(stepperInterval);
187
+ });
188
+
189
+ carouselProgressMD.addEventListener('change', () => {
190
+
191
+ clearInterval(stepperInterval);
192
+
193
+ carouselProgressMD.style.setProperty('--percent', progressPercent(carouselProgressMD.value, mdItemCount));
194
+ const scrollTo = Math.floor((carouselElement.scrollWidth / mdItemCount) * carouselProgressMD.value);
195
+
196
+ console.log(carouselProgressMD.value);
197
+
198
+ carouselElement.scrollTo({
199
+ top: 0,
200
+ left: scrollTo,
201
+ behavior: 'smooth',
202
+ });
203
+ });
204
+
205
+
206
+ // Thumbnails
207
+ const carouselControls = this.shadowRoot.querySelector('.carousel__controls');
208
+
209
+ if (carouselElement.querySelector('[data-thumbnail]')) {
210
+ const thumbnailImages = this.generateThumbnailList(carouselElement);
211
+ carouselElement.classList.add('thumbnails');
212
+ carouselControls.innerHTML = this.generatePipsHTML(carouselElement, thumbnailImages);
213
+ }
214
+
215
+ carouselControls.addEventListener('click', (event) => {
216
+
217
+ carouselControls?.querySelector('[aria-current]')?.removeAttribute('aria-current');
218
+ if(event.target.closest('button[data-slide]')){
219
+
220
+
221
+ event.target.closest('button[data-slide]').setAttribute('aria-current','true');
222
+
223
+ const scrollTo = Math.floor((carouselElement.scrollWidth / itemCount) * event.target.closest('button[data-slide]').getAttribute('data-slide'));
224
+
225
+ carouselElement.scrollTo({
226
+ top: 0,
227
+ left: scrollTo,
228
+ behavior: 'smooth',
229
+ });
230
+ }
231
+
232
+ });
96
233
 
97
- trackComponent(carouselComponent, 'iam-carousel', [
98
- 'pip-clicked',
99
- 'next-clicked',
100
- 'prev-clicked',
101
- 'slider-changed',
102
- ]);
103
234
  }
104
235
  }
105
236