@iamproperty/components 7.7.1--beta5 → 7.7.1--beta6

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 (701) hide show
  1. package/README.md +4 -4
  2. package/assets/bootstrap/README.md +247 -247
  3. package/assets/bootstrap/dist/css/bootstrap-grid.css +4124 -0
  4. package/assets/bootstrap/dist/css/bootstrap-grid.css.map +1 -0
  5. package/assets/bootstrap/dist/css/bootstrap-grid.min.css +7 -0
  6. package/assets/bootstrap/dist/css/bootstrap-grid.min.css.map +1 -0
  7. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.css +4123 -0
  8. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.css.map +1 -0
  9. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.min.css +7 -0
  10. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map +1 -0
  11. package/assets/bootstrap/dist/css/bootstrap-reboot.css +488 -0
  12. package/assets/bootstrap/dist/css/bootstrap-reboot.css.map +1 -0
  13. package/assets/bootstrap/dist/css/bootstrap-reboot.min.css +7 -0
  14. package/assets/bootstrap/dist/css/bootstrap-reboot.min.css.map +1 -0
  15. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.css +485 -0
  16. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.css.map +1 -0
  17. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.min.css +7 -0
  18. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map +1 -0
  19. package/assets/bootstrap/dist/css/bootstrap-utilities.css +4197 -0
  20. package/assets/bootstrap/dist/css/bootstrap-utilities.css.map +1 -0
  21. package/assets/bootstrap/dist/css/bootstrap-utilities.min.css +7 -0
  22. package/assets/bootstrap/dist/css/bootstrap-utilities.min.css.map +1 -0
  23. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.css +4188 -0
  24. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.css.map +1 -0
  25. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.min.css +7 -0
  26. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map +1 -0
  27. package/assets/bootstrap/dist/css/bootstrap.css +10907 -0
  28. package/assets/bootstrap/dist/css/bootstrap.css.map +1 -0
  29. package/assets/bootstrap/dist/css/bootstrap.min.css +7 -0
  30. package/assets/bootstrap/dist/css/bootstrap.min.css.map +1 -0
  31. package/assets/bootstrap/dist/css/bootstrap.rtl.css +10867 -0
  32. package/assets/bootstrap/dist/css/bootstrap.rtl.css.map +1 -0
  33. package/assets/bootstrap/dist/css/bootstrap.rtl.min.css +7 -0
  34. package/assets/bootstrap/dist/css/bootstrap.rtl.min.css.map +1 -0
  35. package/assets/bootstrap/dist/js/bootstrap.bundle.js +7066 -0
  36. package/assets/bootstrap/dist/js/bootstrap.bundle.js.map +1 -0
  37. package/assets/bootstrap/dist/js/bootstrap.bundle.min.js +7 -0
  38. package/assets/bootstrap/dist/js/bootstrap.bundle.min.js.map +1 -0
  39. package/assets/bootstrap/dist/js/bootstrap.esm.js +5204 -0
  40. package/assets/bootstrap/dist/js/bootstrap.esm.js.map +1 -0
  41. package/assets/bootstrap/dist/js/bootstrap.esm.min.js +7 -0
  42. package/assets/bootstrap/dist/js/bootstrap.esm.min.js.map +1 -0
  43. package/assets/bootstrap/dist/js/bootstrap.js +5251 -0
  44. package/assets/bootstrap/dist/js/bootstrap.js.map +1 -0
  45. package/assets/bootstrap/dist/js/bootstrap.min.js +7 -0
  46. package/assets/bootstrap/dist/js/bootstrap.min.js.map +1 -0
  47. package/assets/bootstrap/js/dist/alert.js +100 -0
  48. package/assets/bootstrap/js/dist/alert.js.map +1 -0
  49. package/assets/bootstrap/js/dist/base-component.js +100 -0
  50. package/assets/bootstrap/js/dist/base-component.js.map +1 -0
  51. package/assets/bootstrap/js/dist/button.js +82 -0
  52. package/assets/bootstrap/js/dist/button.js.map +1 -0
  53. package/assets/bootstrap/js/dist/carousel.js +471 -0
  54. package/assets/bootstrap/js/dist/carousel.js.map +1 -0
  55. package/assets/bootstrap/js/dist/collapse.js +311 -0
  56. package/assets/bootstrap/js/dist/collapse.js.map +1 -0
  57. package/assets/bootstrap/js/dist/dom/data.js +67 -0
  58. package/assets/bootstrap/js/dist/dom/data.js.map +1 -0
  59. package/assets/bootstrap/js/dist/dom/event-handler.js +284 -0
  60. package/assets/bootstrap/js/dist/dom/event-handler.js.map +1 -0
  61. package/assets/bootstrap/js/dist/dom/manipulator.js +85 -0
  62. package/assets/bootstrap/js/dist/dom/manipulator.js.map +1 -0
  63. package/assets/bootstrap/js/dist/dom/selector-engine.js +86 -0
  64. package/assets/bootstrap/js/dist/dom/selector-engine.js.map +1 -0
  65. package/assets/bootstrap/js/dist/dropdown.js +471 -0
  66. package/assets/bootstrap/js/dist/dropdown.js.map +1 -0
  67. package/assets/bootstrap/js/dist/modal.js +397 -0
  68. package/assets/bootstrap/js/dist/modal.js.map +1 -0
  69. package/assets/bootstrap/js/dist/offcanvas.js +298 -0
  70. package/assets/bootstrap/js/dist/offcanvas.js.map +1 -0
  71. package/assets/bootstrap/js/dist/popover.js +102 -0
  72. package/assets/bootstrap/js/dist/popover.js.map +1 -0
  73. package/assets/bootstrap/js/dist/scrollspy.js +308 -0
  74. package/assets/bootstrap/js/dist/scrollspy.js.map +1 -0
  75. package/assets/bootstrap/js/dist/tab.js +334 -0
  76. package/assets/bootstrap/js/dist/tab.js.map +1 -0
  77. package/assets/bootstrap/js/dist/toast.js +237 -0
  78. package/assets/bootstrap/js/dist/toast.js.map +1 -0
  79. package/assets/bootstrap/js/dist/tooltip.js +663 -0
  80. package/assets/bootstrap/js/dist/tooltip.js.map +1 -0
  81. package/assets/bootstrap/js/dist/util/backdrop.js +166 -0
  82. package/assets/bootstrap/js/dist/util/backdrop.js.map +1 -0
  83. package/assets/bootstrap/js/dist/util/component-functions.js +47 -0
  84. package/assets/bootstrap/js/dist/util/component-functions.js.map +1 -0
  85. package/assets/bootstrap/js/dist/util/config.js +80 -0
  86. package/assets/bootstrap/js/dist/util/config.js.map +1 -0
  87. package/assets/bootstrap/js/dist/util/focustrap.js +130 -0
  88. package/assets/bootstrap/js/dist/util/focustrap.js.map +1 -0
  89. package/assets/bootstrap/js/dist/util/index.js +351 -0
  90. package/assets/bootstrap/js/dist/util/index.js.map +1 -0
  91. package/assets/bootstrap/js/dist/util/sanitizer.js +123 -0
  92. package/assets/bootstrap/js/dist/util/sanitizer.js.map +1 -0
  93. package/assets/bootstrap/js/dist/util/scrollbar.js +139 -0
  94. package/assets/bootstrap/js/dist/util/scrollbar.js.map +1 -0
  95. package/assets/bootstrap/js/dist/util/swipe.js +156 -0
  96. package/assets/bootstrap/js/dist/util/swipe.js.map +1 -0
  97. package/assets/bootstrap/js/dist/util/template-factory.js +178 -0
  98. package/assets/bootstrap/js/dist/util/template-factory.js.map +1 -0
  99. package/assets/bootstrap/js/index.esm.js +19 -19
  100. package/assets/bootstrap/js/index.umd.js +34 -34
  101. package/assets/bootstrap/js/src/alert.js +87 -87
  102. package/assets/bootstrap/js/src/base-component.js +85 -85
  103. package/assets/bootstrap/js/src/button.js +72 -72
  104. package/assets/bootstrap/js/src/carousel.js +475 -475
  105. package/assets/bootstrap/js/src/collapse.js +302 -302
  106. package/assets/bootstrap/js/src/dom/data.js +55 -55
  107. package/assets/bootstrap/js/src/dom/event-handler.js +320 -320
  108. package/assets/bootstrap/js/src/dom/manipulator.js +71 -71
  109. package/assets/bootstrap/js/src/dom/selector-engine.js +83 -83
  110. package/assets/bootstrap/js/src/dropdown.js +445 -445
  111. package/assets/bootstrap/js/src/modal.js +373 -373
  112. package/assets/bootstrap/js/src/offcanvas.js +283 -283
  113. package/assets/bootstrap/js/src/popover.js +97 -97
  114. package/assets/bootstrap/js/src/scrollspy.js +290 -290
  115. package/assets/bootstrap/js/src/tab.js +307 -307
  116. package/assets/bootstrap/js/src/toast.js +220 -220
  117. package/assets/bootstrap/js/src/tooltip.js +651 -651
  118. package/assets/bootstrap/js/src/util/backdrop.js +149 -149
  119. package/assets/bootstrap/js/src/util/component-functions.js +34 -34
  120. package/assets/bootstrap/js/src/util/config.js +66 -66
  121. package/assets/bootstrap/js/src/util/focustrap.js +115 -115
  122. package/assets/bootstrap/js/src/util/index.js +336 -336
  123. package/assets/bootstrap/js/src/util/sanitizer.js +118 -118
  124. package/assets/bootstrap/js/src/util/scrollbar.js +114 -114
  125. package/assets/bootstrap/js/src/util/swipe.js +146 -146
  126. package/assets/bootstrap/js/src/util/template-factory.js +160 -160
  127. package/assets/bootstrap/package.json +180 -180
  128. package/assets/bootstrap/scss/_accordion.scss +146 -146
  129. package/assets/bootstrap/scss/_button-group.scss +142 -142
  130. package/assets/bootstrap/scss/_buttons.scss +186 -186
  131. package/assets/bootstrap/scss/_carousel.scss +229 -229
  132. package/assets/bootstrap/scss/_dropdown.scss +248 -248
  133. package/assets/bootstrap/scss/_functions.scss +302 -302
  134. package/assets/bootstrap/scss/_list-group.scss +191 -191
  135. package/assets/bootstrap/scss/_modal.scss +237 -237
  136. package/assets/bootstrap/scss/_nav.scss +172 -172
  137. package/assets/bootstrap/scss/_navbar.scss +276 -276
  138. package/assets/bootstrap/scss/_offcanvas.scss +143 -143
  139. package/assets/bootstrap/scss/_pagination.scss +109 -109
  140. package/assets/bootstrap/scss/_popover.scss +196 -196
  141. package/assets/bootstrap/scss/_toasts.scss +70 -70
  142. package/assets/bootstrap/scss/_variables-dark.scss +87 -87
  143. package/assets/bootstrap/scss/_variables.scss +1633 -1633
  144. package/assets/bootstrap/scss/bootstrap-utilities.scss +15 -15
  145. package/assets/bootstrap/scss/forms/_floating-labels.scss +74 -74
  146. package/assets/bootstrap/scss/forms/_input-group.scss +129 -129
  147. package/assets/bootstrap/scss/helpers/_focus-ring.scss +5 -5
  148. package/assets/bootstrap/scss/helpers/_icon-link.scss +25 -25
  149. package/assets/bootstrap/scss/mixins/_banner.scss +9 -9
  150. package/assets/bootstrap/scss/mixins/_color-mode.scss +21 -21
  151. package/assets/bootstrap/scss/mixins/_forms.scss +152 -152
  152. package/assets/bootstrap/scss/mixins/_table-variants.scss +24 -24
  153. package/assets/bootstrap/scss/mixins/_utilities.scss +97 -97
  154. package/assets/css/components/actionbar.component.css +1 -1
  155. package/assets/css/components/actionbar.component.css.map +1 -1
  156. package/assets/css/components/address-lookup.component.css +1 -1
  157. package/assets/css/components/address-lookup.component.css.map +1 -1
  158. package/assets/css/components/barchart.component.css +1 -1
  159. package/assets/css/components/barchart.component.css.map +1 -1
  160. package/assets/css/components/calendar.component.css +1 -1
  161. package/assets/css/components/calendar.component.css.map +1 -1
  162. package/assets/css/components/card.component.css +1 -1
  163. package/assets/css/components/card.component.css.map +1 -1
  164. package/assets/css/components/card.module.css +1 -1
  165. package/assets/css/components/card.module.css.map +1 -1
  166. package/assets/css/components/carousel.component.css +1 -1
  167. package/assets/css/components/carousel.component.css.map +1 -1
  168. package/assets/css/components/charts.css +1 -1
  169. package/assets/css/components/charts.css.map +1 -1
  170. package/assets/css/components/collapsible-side.css +1 -1
  171. package/assets/css/components/collapsible-side.css.map +1 -1
  172. package/assets/css/components/config.component.css +1 -1
  173. package/assets/css/components/config.component.css.map +1 -1
  174. package/assets/css/components/content.component.css +1 -1
  175. package/assets/css/components/content.component.css.map +1 -1
  176. package/assets/css/components/doughnutchart.component.css +1 -1
  177. package/assets/css/components/doughnutchart.component.css.map +1 -1
  178. package/assets/css/components/fileupload.css +1 -1
  179. package/assets/css/components/fileupload.css.map +1 -1
  180. package/assets/css/components/filter-card.component.css +1 -1
  181. package/assets/css/components/filter-card.component.css.map +1 -1
  182. package/assets/css/components/header.css +1 -1
  183. package/assets/css/components/header.css.map +1 -1
  184. package/assets/css/components/input.component.css.map +1 -1
  185. package/assets/css/components/modal.component.css +1 -1
  186. package/assets/css/components/modal.component.css.map +1 -1
  187. package/assets/css/components/multi-step-modal.component.css +1 -1
  188. package/assets/css/components/multi-step-modal.component.css.map +1 -1
  189. package/assets/css/components/multiselect.css +1 -1
  190. package/assets/css/components/multiselect.css.map +1 -1
  191. package/assets/css/components/nav.component.css +1 -1
  192. package/assets/css/components/nav.component.css.map +1 -1
  193. package/assets/css/components/pagination.css +1 -1
  194. package/assets/css/components/pagination.css.map +1 -1
  195. package/assets/css/components/record-card.component.css +1 -1
  196. package/assets/css/components/record-card.component.css.map +1 -1
  197. package/assets/css/components/slider.css +1 -1
  198. package/assets/css/components/slider.css.map +1 -1
  199. package/assets/css/components/split-button.component.css +1 -1
  200. package/assets/css/components/split-button.component.css.map +1 -1
  201. package/assets/css/components/tabs.component.css +1 -1
  202. package/assets/css/components/tabs.component.css.map +1 -1
  203. package/assets/css/components/tag.component.css +1 -1
  204. package/assets/css/components/tag.component.css.map +1 -1
  205. package/assets/css/components/video-card.component.css +1 -1
  206. package/assets/css/components/video-card.component.css.map +1 -1
  207. package/assets/css/components/video-modal.component.css +1 -1
  208. package/assets/css/components/video-modal.component.css.map +1 -1
  209. package/assets/css/components/video.component.css +1 -1
  210. package/assets/css/components/video.component.css.map +1 -1
  211. package/assets/css/core.min.css +1 -1
  212. package/assets/css/core.min.css.map +1 -1
  213. package/assets/css/elements/buttons--global.css +1 -1
  214. package/assets/css/elements/buttons--global.css.map +1 -1
  215. package/assets/css/elements/buttons--secondary.css +1 -1
  216. package/assets/css/elements/buttons--secondary.css.map +1 -1
  217. package/assets/css/elements/buttons--special.css +1 -1
  218. package/assets/css/elements/buttons--special.css.map +1 -1
  219. package/assets/css/elements/buttons--tertiary.css +1 -1
  220. package/assets/css/elements/buttons--tertiary.css.map +1 -1
  221. package/assets/css/elements/buttons.css +1 -1
  222. package/assets/css/elements/buttons.css.map +1 -1
  223. package/assets/css/elements/container.css +1 -1
  224. package/assets/css/elements/container.css.map +1 -1
  225. package/assets/css/elements/details.css +1 -1
  226. package/assets/css/elements/details.css.map +1 -1
  227. package/assets/css/elements/dialog.css.map +1 -1
  228. package/assets/css/elements/dropdown.css +1 -1
  229. package/assets/css/elements/dropdown.css.map +1 -1
  230. package/assets/css/elements/feature.css +1 -1
  231. package/assets/css/elements/feature.css.map +1 -1
  232. package/assets/css/elements/forms.css +1 -1
  233. package/assets/css/elements/forms.css.map +1 -1
  234. package/assets/css/elements/label.css +1 -1
  235. package/assets/css/elements/label.css.map +1 -1
  236. package/assets/css/elements/links--collapsible-side.css +1 -0
  237. package/assets/css/elements/links--collapsible-side.css.map +1 -0
  238. package/assets/css/elements/links--global.css +1 -0
  239. package/assets/css/elements/links--global.css.map +1 -0
  240. package/assets/css/elements/links--video.css +1 -0
  241. package/assets/css/elements/links--video.css.map +1 -0
  242. package/assets/css/elements/links.css +1 -1
  243. package/assets/css/elements/links.css.map +1 -1
  244. package/assets/css/elements/modal.css.map +1 -1
  245. package/assets/css/elements/progress.css.map +1 -1
  246. package/assets/css/elements/textarea.css +1 -1
  247. package/assets/css/elements/textarea.css.map +1 -1
  248. package/assets/css/elements/toggle-button.css +1 -1
  249. package/assets/css/elements/toggle-button.css.map +1 -1
  250. package/assets/css/elements/tooltips.css +1 -1
  251. package/assets/css/elements/tooltips.css.map +1 -1
  252. package/assets/css/style.min.css +1 -1
  253. package/assets/css/style.min.css.map +1 -1
  254. package/assets/favicons/README.md +20 -20
  255. package/assets/favicons/browserconfig.xml +9 -9
  256. package/assets/favicons/manifest.json +31 -31
  257. package/assets/favicons/safari-pinned-tab.svg +35 -35
  258. package/assets/favicons/site.webmanifest +20 -20
  259. package/assets/js/components/accordion/accordion.component.js +15 -15
  260. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  261. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  262. package/assets/js/components/actionbar/actionbar.component.js +68 -68
  263. package/assets/js/components/actionbar/actionbar.component.min.js +2 -2
  264. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  265. package/assets/js/components/address-lookup/address-lookup.component.js +60 -60
  266. package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
  267. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  268. package/assets/js/components/advanced-select/advanced-select.component.js +20 -20
  269. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  270. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  271. package/assets/js/components/applied-filters/applied-filters.component.js +7 -7
  272. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  273. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  274. package/assets/js/components/barchart/barchart.component.js +2 -2
  275. package/assets/js/components/barchart/barchart.component.min.js +6 -6
  276. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  277. package/assets/js/components/bento-grid/bento-grid.component.js +9 -9
  278. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  279. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -1
  280. package/assets/js/components/calendar/calendar.component.js +2 -2
  281. package/assets/js/components/calendar/calendar.component.min.js +2 -2
  282. package/assets/js/components/calendar/calendar.component.min.js.map +1 -1
  283. package/assets/js/components/card/card.component.js +3 -3
  284. package/assets/js/components/card/card.component.min.js +2 -2
  285. package/assets/js/components/card/card.component.min.js.map +1 -1
  286. package/assets/js/components/carousel/carousel.component.js +2 -2
  287. package/assets/js/components/carousel/carousel.component.min.js +4 -4
  288. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  289. package/assets/js/components/chart/chart.component.js +1 -1
  290. package/assets/js/components/collapsible-side/collapsible-side.component.js +20 -20
  291. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -4
  292. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  293. package/assets/js/components/config/config.component.js +54 -54
  294. package/assets/js/components/config/config.component.min.js +2 -2
  295. package/assets/js/components/config/config.component.min.js.map +1 -1
  296. package/assets/js/components/content/content.component.js +9 -9
  297. package/assets/js/components/content/content.component.min.js +4 -4
  298. package/assets/js/components/content/content.component.min.js.map +1 -1
  299. package/assets/js/components/darkmode/darkmode.component.js +4 -4
  300. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  301. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -1
  302. package/assets/js/components/doughnutchart/doughnutchart.component.js +2 -2
  303. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +4 -4
  304. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  305. package/assets/js/components/fileupload/fileupload.component.js +17 -17
  306. package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
  307. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  308. package/assets/js/components/filter-card/filter-card.component.js +9 -9
  309. package/assets/js/components/filter-card/filter-card.component.min.js +5 -5
  310. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  311. package/assets/js/components/filterlist/filterlist.component.js +1 -1
  312. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  313. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  314. package/assets/js/components/form/form.component.js +5 -5
  315. package/assets/js/components/form/form.component.min.js +1 -1
  316. package/assets/js/components/form/form.component.min.js.map +1 -1
  317. package/assets/js/components/header/header.component.js +53 -53
  318. package/assets/js/components/header/header.component.min.js +2 -2
  319. package/assets/js/components/header/header.component.min.js.map +1 -1
  320. package/assets/js/components/inline-edit/inline-edit.component.js +16 -16
  321. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  322. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  323. package/assets/js/components/input/input.component.js +11 -11
  324. package/assets/js/components/input/input.component.min.js +1 -1
  325. package/assets/js/components/input/input.component.min.js.map +1 -1
  326. package/assets/js/components/input-range/input-range.component.js +9 -9
  327. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  328. package/assets/js/components/input-range/input-range.component.min.js.map +1 -1
  329. package/assets/js/components/marketing/marketing.component.js +10 -10
  330. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  331. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  332. package/assets/js/components/menu/menu.component.js +6 -6
  333. package/assets/js/components/menu/menu.component.min.js +1 -1
  334. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  335. package/assets/js/components/milestone/milestone.component.js +2 -2
  336. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  337. package/assets/js/components/milestone/milestone.component.min.js.map +1 -1
  338. package/assets/js/components/milestone-group/milestone-group.component.js +2 -2
  339. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  340. package/assets/js/components/milestone-group/milestone-group.component.min.js.map +1 -1
  341. package/assets/js/components/modal/modal.component.js +23 -23
  342. package/assets/js/components/modal/modal.component.min.js +4 -4
  343. package/assets/js/components/modal/modal.component.min.js.map +1 -1
  344. package/assets/js/components/multi-step/multi-step.component.js +1 -1
  345. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  346. package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -1
  347. package/assets/js/components/multi-step-modal/multi-step-modal.component.js +12 -12
  348. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +4 -4
  349. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js.map +1 -1
  350. package/assets/js/components/multiselect/multiselect.component.js +21 -21
  351. package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
  352. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  353. package/assets/js/components/nav/nav.component.js +45 -45
  354. package/assets/js/components/nav/nav.component.min.js +2 -2
  355. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  356. package/assets/js/components/notification/notification.component.js +14 -14
  357. package/assets/js/components/notification/notification.component.min.js +1 -1
  358. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  359. package/assets/js/components/pagination/pagination.component.js +39 -39
  360. package/assets/js/components/pagination/pagination.component.min.js +3 -3
  361. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  362. package/assets/js/components/password/password.component.js +11 -11
  363. package/assets/js/components/password/password.component.min.js +1 -1
  364. package/assets/js/components/password/password.component.min.js.map +1 -1
  365. package/assets/js/components/popover/popover.component.js +8 -8
  366. package/assets/js/components/popover/popover.component.min.js +1 -1
  367. package/assets/js/components/popover/popover.component.min.js.map +1 -1
  368. package/assets/js/components/rank/rank.component.js +360 -360
  369. package/assets/js/components/rank/rank.component.min.js +1 -1
  370. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  371. package/assets/js/components/rankings/rankings.component.js +18 -18
  372. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  373. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  374. package/assets/js/components/rating/rating.component.js +10 -10
  375. package/assets/js/components/rating/rating.component.min.js +1 -1
  376. package/assets/js/components/rating/rating.component.min.js.map +1 -1
  377. package/assets/js/components/record-card/record-card.component.js +2 -2
  378. package/assets/js/components/record-card/record-card.component.min.js +2 -2
  379. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  380. package/assets/js/components/search/search.component.js +19 -19
  381. package/assets/js/components/search/search.component.min.js +1 -1
  382. package/assets/js/components/search/search.component.min.js.map +1 -1
  383. package/assets/js/components/slider/slider.component.js +12 -12
  384. package/assets/js/components/slider/slider.component.min.js +2 -2
  385. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  386. package/assets/js/components/split-button/split-button.component.js +19 -19
  387. package/assets/js/components/split-button/split-button.component.min.js +3 -3
  388. package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
  389. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +114 -114
  390. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +2 -2
  391. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  392. package/assets/js/components/table/table.component.js +17 -17
  393. package/assets/js/components/table/table.component.min.js +1 -1
  394. package/assets/js/components/table/table.component.min.js.map +1 -1
  395. package/assets/js/components/table-ajax/table-ajax.component.js +17 -17
  396. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  397. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  398. package/assets/js/components/table-basic/table-basic.component.js +16 -16
  399. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  400. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  401. package/assets/js/components/table-no-submit/table-no-submit.component.js +17 -17
  402. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  403. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  404. package/assets/js/components/table-submit/table-submit.component.js +17 -17
  405. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  406. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  407. package/assets/js/components/tabs/tabs.component.js +18 -18
  408. package/assets/js/components/tabs/tabs.component.min.js +2 -2
  409. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  410. package/assets/js/components/tag/tag.component.js +14 -14
  411. package/assets/js/components/tag/tag.component.min.js +4 -4
  412. package/assets/js/components/tag/tag.component.min.js.map +1 -1
  413. package/assets/js/components/tooltip/tooltip.component.js +9 -9
  414. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  415. package/assets/js/components/tooltip/tooltip.component.min.js.map +1 -1
  416. package/assets/js/components/video/video.component.js +11 -11
  417. package/assets/js/components/video/video.component.min.js +4 -4
  418. package/assets/js/components/video/video.component.min.js.map +1 -1
  419. package/assets/js/components/video-card/video-card.component.js +16 -16
  420. package/assets/js/components/video-card/video-card.component.min.js +6 -6
  421. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  422. package/assets/js/components/video-modal/video-modal.component.js +16 -16
  423. package/assets/js/components/video-modal/video-modal.component.min.js +5 -5
  424. package/assets/js/components/video-modal/video-modal.component.min.js.map +1 -1
  425. package/assets/js/components/word-count/word-count.component.js +1 -1
  426. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  427. package/assets/js/components/word-count/word-count.component.min.js.map +1 -1
  428. package/assets/js/modules/card.module.js +14 -14
  429. package/assets/js/modules/chart.js +1 -1
  430. package/assets/js/modules/chart.module.js +5 -5
  431. package/assets/js/modules/helper.test.js +2 -2
  432. package/assets/js/modules/integration-tests.js +3 -3
  433. package/assets/js/modules/table.js +3 -3
  434. package/assets/js/modules/tabs.js +1 -1
  435. package/assets/js/modules/videos.js +6 -6
  436. package/assets/js/scripts.bundle.js +1 -1
  437. package/assets/js/scripts.bundle.js.map +1 -1
  438. package/assets/js/scripts.bundle.min.js +1 -1
  439. package/assets/js/scripts.bundle.min.js.map +1 -1
  440. package/assets/js/scripts.js +4 -4
  441. package/assets/sass/_bs_grid.scss +41 -41
  442. package/assets/sass/_bs_utilities.scss +51 -51
  443. package/assets/sass/_components.scss +162 -162
  444. package/assets/sass/_corefiles.scss +31 -31
  445. package/assets/sass/_elements.scss +30 -30
  446. package/assets/sass/_fonts.scss +28 -28
  447. package/assets/sass/_func.scss +2 -2
  448. package/assets/sass/_functions/bs_functions.scss +487 -487
  449. package/assets/sass/_functions/bs_mixins.scss +2103 -2103
  450. package/assets/sass/_functions/bs_utilities.scss +922 -922
  451. package/assets/sass/_functions/bs_variables.scss +1701 -1703
  452. package/assets/sass/_functions/functions.scss +48 -48
  453. package/assets/sass/_functions/mixins.scss +1 -1
  454. package/assets/sass/_grid.scss +320 -320
  455. package/assets/sass/_print.scss +64 -64
  456. package/assets/sass/_utilities.scss +35 -35
  457. package/assets/sass/components/actionbar.component.scss +421 -421
  458. package/assets/sass/components/actionbar.global.scss +115 -115
  459. package/assets/sass/components/address-lookup.component.scss +161 -161
  460. package/assets/sass/components/address-lookup.preload.scss +90 -90
  461. package/assets/sass/components/applied-filters.scss +19 -19
  462. package/assets/sass/components/barchart.component.scss +347 -347
  463. package/assets/sass/components/bento-grid.component.scss +109 -109
  464. package/assets/sass/components/bento-grid.global.scss +248 -248
  465. package/assets/sass/components/calendar.component.scss +1272 -1272
  466. package/assets/sass/components/calendar.config.scss +423 -423
  467. package/assets/sass/components/card.component.scss +187 -182
  468. package/assets/sass/components/card.module.scss +154 -151
  469. package/assets/sass/components/carousel.component.scss +631 -631
  470. package/assets/sass/components/carousel.config.scss +84 -84
  471. package/assets/sass/components/charts.config.scss +86 -86
  472. package/assets/sass/components/charts.module.scss +588 -588
  473. package/assets/sass/components/charts.scss +1298 -1298
  474. package/assets/sass/components/collapsible-side.scss +307 -307
  475. package/assets/sass/components/config.component.scss +235 -235
  476. package/assets/sass/components/content.component.scss +18 -18
  477. package/assets/sass/components/darkmode.component.scss +20 -20
  478. package/assets/sass/components/doughnutchart.component.scss +206 -206
  479. package/assets/sass/components/fileupload.scss +162 -162
  480. package/assets/sass/components/filter-card.component.scss +99 -99
  481. package/assets/sass/components/header.scss +251 -256
  482. package/assets/sass/components/inline-edit.preload.scss +203 -203
  483. package/assets/sass/components/inline-edit.scss +40 -40
  484. package/assets/sass/components/input-range.component.scss +46 -46
  485. package/assets/sass/components/input.component.scss +101 -101
  486. package/assets/sass/components/marketing.component.scss +65 -65
  487. package/assets/sass/components/menu.component.scss +161 -190
  488. package/assets/sass/components/menu.global.scss +82 -82
  489. package/assets/sass/components/milestone.scss +216 -216
  490. package/assets/sass/components/modal.component.scss +252 -252
  491. package/assets/sass/components/multi-step-modal.component.scss +255 -255
  492. package/assets/sass/components/multi-step-modal.global.scss +92 -92
  493. package/assets/sass/components/multi-step.component.scss +144 -144
  494. package/assets/sass/components/multiselect.preload.scss +8 -8
  495. package/assets/sass/components/multiselect.scss +238 -238
  496. package/assets/sass/components/nav.component.scss +718 -718
  497. package/assets/sass/components/nav.docs.scss +55 -55
  498. package/assets/sass/components/nav.global.scss +870 -870
  499. package/assets/sass/components/nav.preload.scss +54 -54
  500. package/assets/sass/components/notification.scss +218 -218
  501. package/assets/sass/components/pagination.scss +237 -237
  502. package/assets/sass/components/password.component.scss +56 -56
  503. package/assets/sass/components/popover.component.scss +28 -28
  504. package/assets/sass/components/property-searchbar.scss +139 -139
  505. package/assets/sass/components/rank.component.scss +275 -275
  506. package/assets/sass/components/rankings.component.scss +70 -70
  507. package/assets/sass/components/rankings.global.scss +140 -140
  508. package/assets/sass/components/rating.component.css +211 -211
  509. package/assets/sass/components/record-card.component.scss +191 -191
  510. package/assets/sass/components/slider.scss +127 -127
  511. package/assets/sass/components/snapshot.scss +65 -65
  512. package/assets/sass/components/split-button.component.scss +83 -83
  513. package/assets/sass/components/stepper.scss +157 -157
  514. package/assets/sass/components/table-basic.component.scss +136 -136
  515. package/assets/sass/components/table-basic.global.scss +676 -676
  516. package/assets/sass/components/table.component.scss +51 -51
  517. package/assets/sass/components/table.global.scss +398 -398
  518. package/assets/sass/components/tabs.component.scss +34 -34
  519. package/assets/sass/components/tabs.config.scss +258 -258
  520. package/assets/sass/components/tag.component.scss +59 -59
  521. package/assets/sass/components/tag.preload.scss +20 -20
  522. package/assets/sass/components/testimonial.scss +125 -125
  523. package/assets/sass/components/timeline.scss +92 -92
  524. package/assets/sass/components/tooltip.component.scss +148 -148
  525. package/assets/sass/components/video-card.component.scss +49 -49
  526. package/assets/sass/components/video-modal.component.scss +26 -26
  527. package/assets/sass/components/video.component.scss +74 -74
  528. package/assets/sass/components/word-count.component.scss +26 -26
  529. package/assets/sass/core.scss +4 -4
  530. package/assets/sass/elements/admin-panel.css +310 -310
  531. package/assets/sass/elements/badge-tag.css +101 -101
  532. package/assets/sass/elements/brand.css +80 -80
  533. package/assets/sass/elements/button__group.css +135 -135
  534. package/assets/sass/elements/buttons--action.css +71 -71
  535. package/assets/sass/elements/buttons--compact.css +168 -168
  536. package/assets/sass/elements/{buttons--global.scss → buttons--global.css} +239 -250
  537. package/assets/sass/elements/{buttons--secondary.scss → buttons--secondary.css} +18 -24
  538. package/assets/sass/elements/{buttons--special.scss → buttons--special.css} +164 -171
  539. package/assets/sass/elements/{buttons--tertiary.scss → buttons--tertiary.css} +51 -57
  540. package/assets/sass/elements/buttons.scss +9 -14
  541. package/assets/sass/elements/code.css +45 -45
  542. package/assets/sass/elements/container.scss +118 -155
  543. package/assets/sass/elements/{details.scss → details.css} +224 -227
  544. package/assets/sass/elements/dialog.scss +75 -86
  545. package/assets/sass/elements/{dropdown.scss → dropdown.css} +85 -87
  546. package/assets/sass/elements/{feature.scss → feature.css} +174 -180
  547. package/assets/sass/elements/forms.scss +1337 -1338
  548. package/assets/sass/elements/highlight.css +76 -76
  549. package/assets/sass/elements/hr.css +41 -41
  550. package/assets/sass/elements/icons.css +48 -48
  551. package/assets/sass/elements/input.scss +212 -212
  552. package/assets/sass/elements/{label.scss → label.css} +20 -20
  553. package/assets/sass/elements/links--collapsible-side.scss +130 -0
  554. package/assets/sass/elements/links--global.scss +155 -0
  555. package/assets/sass/elements/links--video.scss +73 -0
  556. package/assets/sass/elements/links.scss +5 -370
  557. package/assets/sass/elements/lists--breadcrumbs.scss +26 -26
  558. package/assets/sass/elements/lists--steps.css +171 -171
  559. package/assets/sass/elements/lists--tick-list.scss +112 -112
  560. package/assets/sass/elements/lists.scss +99 -99
  561. package/assets/sass/elements/media.css +20 -20
  562. package/assets/sass/elements/modal.scss +411 -415
  563. package/assets/sass/elements/popover.scss +259 -259
  564. package/assets/sass/elements/prefix.scss +139 -139
  565. package/assets/sass/elements/progress.scss +208 -214
  566. package/assets/sass/elements/table.element.scss +144 -144
  567. package/assets/sass/elements/{textarea.scss → textarea.css} +84 -96
  568. package/assets/sass/elements/{toggle-button.scss → toggle-button.css} +49 -55
  569. package/assets/sass/elements/tooltips.scss +152 -151
  570. package/assets/sass/elements/type.css +166 -166
  571. package/assets/sass/email.scss +68 -68
  572. package/assets/sass/error.scss +31 -33
  573. package/assets/sass/foundations/animations.scss +2 -2
  574. package/assets/sass/foundations/colours.scss +104 -104
  575. package/assets/sass/foundations/reboot.scss +166 -166
  576. package/assets/sass/foundations/root.scss +269 -269
  577. package/assets/sass/main.scss +7 -7
  578. package/assets/sass/templates/auth.scss +106 -106
  579. package/assets/sass/templates/form.scss +95 -95
  580. package/assets/sass/utilities/{align.scss → align.css} +24 -24
  581. package/assets/sass/utilities/{border.scss → border.css} +65 -68
  582. package/assets/sass/utilities/{clearfix.scss → clearfix.css} +8 -8
  583. package/assets/sass/utilities/colours.scss +43 -43
  584. package/assets/sass/utilities/{columns.scss → columns.css} +61 -61
  585. package/assets/sass/utilities/display.scss +89 -89
  586. package/assets/sass/utilities/{fixed.scss → fixed.css} +16 -16
  587. package/assets/sass/utilities/flex.scss +291 -291
  588. package/assets/sass/utilities/{font-awesome-iso-fallbacks.scss → font-awesome-iso-fallbacks.css} +43 -43
  589. package/assets/sass/utilities/gap.css +26 -0
  590. package/assets/sass/utilities/{gradients.scss → gradients.css} +39 -39
  591. package/assets/sass/utilities/{js-display.scss → js-display.css} +12 -12
  592. package/assets/sass/utilities/{line-clamp.scss → line-clamp.css} +24 -24
  593. package/assets/sass/utilities/margins.scss +74 -74
  594. package/assets/sass/utilities/max-height.scss +93 -93
  595. package/assets/sass/utilities/{opacity.scss → opacity.css} +20 -20
  596. package/assets/sass/utilities/order.css +104 -0
  597. package/assets/sass/utilities/{overflow.scss → overflow.css} +16 -16
  598. package/assets/sass/utilities/paddings.scss +33 -33
  599. package/assets/sass/utilities/{pointer-events.scss → pointer-events.css} +8 -8
  600. package/assets/sass/utilities/position.css +68 -0
  601. package/assets/sass/utilities/{ratio.scss → ratio.css} +33 -33
  602. package/assets/sass/utilities/{rounded.scss → rounded.css} +56 -56
  603. package/assets/sass/utilities/{shadow.scss → shadow.css} +7 -7
  604. package/assets/sass/utilities/{sizes.scss → sizes.css} +92 -92
  605. package/assets/sass/utilities/{sticky.scss → sticky.css} +38 -38
  606. package/assets/sass/utilities/{text-truncate.scss → text-truncate.css} +6 -6
  607. package/assets/sass/utilities/{text.scss → text.css} +190 -190
  608. package/assets/sass/utilities/{visible.scss → visible.css} +8 -8
  609. package/assets/sass/utilities/{visually-hidden.scss → visually-hidden.css} +13 -13
  610. package/assets/sass/utilities/wider-colours.scss +8 -8
  611. package/assets/svg/illustrations/table.svg +165 -165
  612. package/assets/svg/logo.svg +56 -56
  613. package/assets/ts/components/accordion/accordion.component.ts +77 -77
  614. package/assets/ts/components/actionbar/actionbar.component.ts +567 -567
  615. package/assets/ts/components/address-lookup/address-lookup.component.ts +672 -672
  616. package/assets/ts/components/advanced-select/advanced-select.component.ts +116 -116
  617. package/assets/ts/components/applied-filters/applied-filters.component.ts +37 -37
  618. package/assets/ts/components/bento-grid/bento-grid.component.ts +88 -88
  619. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +165 -165
  620. package/assets/ts/components/config/config.component.ts +699 -699
  621. package/assets/ts/components/content/content.component.ts +78 -78
  622. package/assets/ts/components/darkmode/darkmode.component.ts +108 -108
  623. package/assets/ts/components/fileupload/fileupload.component.ts +74 -74
  624. package/assets/ts/components/filter-card/filter-card.component.ts +106 -106
  625. package/assets/ts/components/form/form.component.ts +102 -102
  626. package/assets/ts/components/header/header.component.ts +97 -97
  627. package/assets/ts/components/inline-edit/inline-edit.component.ts +212 -212
  628. package/assets/ts/components/input/input.component.ts +278 -278
  629. package/assets/ts/components/input-range/input-range.component.ts +78 -78
  630. package/assets/ts/components/marketing/marketing.component.ts +44 -44
  631. package/assets/ts/components/menu/menu.component.ts +212 -212
  632. package/assets/ts/components/modal/modal.component.ts +184 -184
  633. package/assets/ts/components/multi-step-modal/multi-step-modal.component.ts +304 -304
  634. package/assets/ts/components/multiselect/multiselect.component.ts +349 -349
  635. package/assets/ts/components/nav/nav.component.ts +369 -369
  636. package/assets/ts/components/notification/notification.component.ts +172 -172
  637. package/assets/ts/components/pagination/pagination.component.ts +213 -213
  638. package/assets/ts/components/password/password.component.ts +118 -118
  639. package/assets/ts/components/popover/popover.component.ts +50 -50
  640. package/assets/ts/components/rank/rank.component.ts +394 -394
  641. package/assets/ts/components/rankings/rankings.component.ts +79 -79
  642. package/assets/ts/components/rating/rating.component.ts +86 -86
  643. package/assets/ts/components/search/search.component.ts +244 -244
  644. package/assets/ts/components/slider/slider.component.ts +170 -170
  645. package/assets/ts/components/split-button/split-button.component.ts +63 -63
  646. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +1919 -1919
  647. package/assets/ts/components/table/table.component.ts +94 -94
  648. package/assets/ts/components/table-ajax/table-ajax.component.ts +70 -70
  649. package/assets/ts/components/table-basic/table-basic.component.ts +56 -56
  650. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +130 -130
  651. package/assets/ts/components/table-submit/table-submit.component.ts +71 -71
  652. package/assets/ts/components/tabs/tabs.component.ts +70 -70
  653. package/assets/ts/components/tag/tag.component.ts +104 -104
  654. package/assets/ts/components/tooltip/tooltip.component.ts +98 -98
  655. package/assets/ts/components/video/video.component.ts +74 -74
  656. package/assets/ts/components/video-card/video-card.component.ts +129 -129
  657. package/assets/ts/components/video-modal/video-modal.component.ts +88 -88
  658. package/assets/ts/modules/advanced-select.ts +186 -186
  659. package/assets/ts/modules/applied-filters.ts +238 -238
  660. package/assets/ts/modules/card.module.ts +46 -46
  661. package/assets/ts/modules/chart.module.ts +594 -594
  662. package/assets/ts/modules/data-layer.md +71 -71
  663. package/assets/ts/modules/dialogs.ts +259 -259
  664. package/assets/ts/modules/dropdown.ts +216 -216
  665. package/assets/ts/modules/helper.test.ts +143 -143
  666. package/assets/ts/modules/helpers.ts +212 -212
  667. package/assets/ts/modules/integration-tests.ts +525 -525
  668. package/assets/ts/modules/modal.ts +45 -45
  669. package/assets/ts/modules/password.ts +82 -82
  670. package/assets/ts/modules/table.ts +1500 -1500
  671. package/assets/ts/modules/test.ts +22 -22
  672. package/assets/ts/modules/videos.ts +233 -233
  673. package/assets/ts/scripts.ts +111 -111
  674. package/dist/components.es.js +25 -25
  675. package/dist/components.umd.js +27 -27
  676. package/package.json +115 -116
  677. package/src/components/AdvancedSelect/AdvancedSelect.vue +28 -28
  678. package/src/components/Config/Config.vue +23 -23
  679. package/src/components/DarkMode/DarkMode.vue +19 -19
  680. package/src/components/Filterlist/Filterlist.vue +23 -23
  681. package/src/components/Form/Form.vue +22 -22
  682. package/src/components/Header/Header.vue +36 -36
  683. package/src/components/Input/Input.vue +22 -22
  684. package/src/components/InputRange/InputRange.vue +22 -22
  685. package/src/components/Modal/Modal.vue +22 -22
  686. package/src/components/MultiStepModal/MultiStepModal.vue +23 -23
  687. package/src/components/NoteFeed/NoteFeed.vue +82 -82
  688. package/src/components/Password/Password.vue +23 -23
  689. package/src/components/Popover/Popover.vue +22 -22
  690. package/src/components/PropertySearchbar/PropertySearchbar.vue +235 -235
  691. package/src/components/PropertySearchbar/README.md +25 -25
  692. package/src/components/Rating/Rating.vue +22 -22
  693. package/src/components/STDAddressLookup/STDAddressLookup.vue +22 -22
  694. package/src/components/Snapshot/Snapshot.vue +30 -30
  695. package/src/components/Tag/Tag.vue +22 -22
  696. package/src/components/Tooltip/Tooltip.vue +22 -22
  697. package/src/components/Video/Video.vue +22 -22
  698. package/src/components/VideoModal/VideoModal.vue +22 -22
  699. package/assets/sass/utilities/gap.scss +0 -8
  700. package/assets/sass/utilities/order.scss +0 -43
  701. package/assets/sass/utilities/position.scss +0 -52
@@ -1,567 +1,567 @@
1
- import { uniqueID } from '../../modules/helpers';
2
- import iamMenu from '../menu/menu.component';
3
-
4
- // Data layer Web component created
5
- declare global {
6
- interface Window {
7
- dataLayer: Array<object>;
8
- }
9
- }
10
- window.dataLayer = window.dataLayer || [];
11
- window.dataLayer.push({
12
- event: 'customElementRegistered',
13
- element: 'action bar',
14
- });
15
-
16
- function setSelectAllInput(element, value): void {
17
- if (element && value == 'all') {
18
- element.querySelector('input').indeterminate = false;
19
- element.querySelector('input').checked = true;
20
- element.querySelector('label').textContent = `Select all`;
21
- } else if (element && value == 0) {
22
- element.querySelector('input').indeterminate = false;
23
- element.querySelector('input').checked = false;
24
- element.querySelector('label').textContent = `Select all`;
25
- } else if (element && value) {
26
- element.querySelector('input').indeterminate = true;
27
- element.querySelector('input').checked = false;
28
- element.querySelector('label').textContent = `${value} item${value > 1 ? 's' : ''} selected`;
29
- } else if (element) {
30
- element.querySelector('input').checked = false;
31
- element.querySelector('input').indeterminate = false;
32
- element.querySelector('label').textContent = `Select all`;
33
- }
34
- }
35
-
36
- class iamActionbar extends HTMLElement {
37
- constructor() {
38
- super();
39
- this.attachShadow({ mode: 'open' });
40
-
41
- const assetLocation = document.body.hasAttribute('data-assets-location')
42
- ? document.body.getAttribute('data-assets-location')
43
- : '/assets';
44
-
45
-
46
- if (!window.customElements.get(`iam-menu`)) window.customElements.define(`iam-menu`, iamMenu);
47
-
48
- const loadCSS = `@import "${assetLocation}/css/components/actionbar.component.css";`;
49
- const loadExtraCSS = `@import "${assetLocation}/css/components/actionbar.global.css";`;
50
-
51
- const template = document.createElement('template');
52
- template.innerHTML = `
53
- <style>
54
- ${loadCSS}
55
- ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
56
- </style>
57
- <link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
58
- <div class="actionbar__wrapper">
59
-
60
- <div class="actionbar" part="actionbar">
61
- <slot name="selectall"></slot>
62
- <slot name="filters"></slot>
63
- <div class="safe-area">
64
- <slot></slot>
65
- <div class="body">
66
- <div class="menu__wrapper menu__wrapper --right dialog-overflow d-none show">
67
- <button class="btn btn-secondary btn-compact btn-sm fa-ellipsis-vertical m-0" popovertarget="overflow" style="anchor-name: --anchor-overflow;">More actions</button>
68
- <iam-menu class="dialog--list" part="overflow" id="overflow" style="position-anchor: --anchor-overflow;" popover>
69
- <slot name="overflow"></slot>
70
- <slot name="menu"></slot>
71
- </iam-menu>
72
- </div>
73
-
74
-
75
- <div class="menu__wrapper menu__wrapper --right filter-columns">
76
- <button class="btn btn-secondary btn-compact btn-sm mb-0 me-0 fa-regular fa-table-columns" title="Select colums" popovertarget="filter" style="anchor-name: --anchor-filter;">Filter</button>
77
- <iam-menu class="dialog--list" id="filter" style="position-anchor: --anchor-filter;" popover>
78
- <div class="pb-0 mb-0 checklists">
79
-
80
- </div>
81
- <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>
82
- </iam-menu>
83
- </div>
84
-
85
- <button class="btn btn-secondary btn-compact btn-sm fa-search" data-search="" part="search-btn">Search</button>
86
- </div>
87
- </div>
88
- </div>
89
- <div class="actionbar--selected">
90
- <div class="safe-area">
91
- <slot name="selected"></slot>
92
- <div class="body">
93
- <div class="menu__wrapper menu__wrapper --right dialog-overflow d-none show">
94
- <button class="btn btn-secondary btn-compact btn-sm fa-ellipsis-vertical m-0" popovertarget="selected-overflow" style="anchor-name: --anchor-selected-overflow;">More actions</button>
95
- <iam-menu class="dialog--list" part="selected-overflow" id="selected-overflow" style="position-anchor: --anchor-selected-overflow;" popover>
96
- <slot name="selected-overflow"></slot>
97
- </iam-menu>
98
- </div>
99
- </div>
100
- </div>
101
- </div>
102
-
103
- <div class="actionbar--search">
104
- <button data-search class="btn btn-compact fa-xmark-large btn-secondary mb-0" >Close</button>
105
-
106
- <div class="search-wrapper" part="search">
107
- <label for="search" class="visually-hidden">Input field label</label>
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>
111
- </div>
112
-
113
- </div>
114
- </div>
115
- <div class="no-columns">
116
- <span class="d-block">No columns selected</span>
117
- </div>
118
- `;
119
- this.shadowRoot.appendChild(template.content.cloneNode(true));
120
-
121
- // insert extra CSS
122
- if (!document.getElementById('actionbarGlobal'))
123
- document.head.insertAdjacentHTML('beforeend', `<style id="actionbarGlobal">${loadExtraCSS}</style>`);
124
- }
125
-
126
- connectedCallback(): void {
127
- const actionbarWrapper = this.shadowRoot?.querySelector('.actionbar__wrapper');
128
- const checklistHolder = this.shadowRoot?.querySelector('.checklists');
129
-
130
- const assetLocation = document.body.hasAttribute('data-assets-location')
131
- ? document.body.getAttribute('data-assets-location')
132
- : '/assets';
133
-
134
- const dialog = this.querySelector('.dialog__wrapper dialog');
135
-
136
- // Transform dialog into a menu custom element
137
- if (dialog) {
138
- const btn = dialog.parentElement.querySelector('.btn');
139
- const id = `menu${uniqueID(1)}`;
140
-
141
- dialog.setAttribute('id', id);
142
- dialog.setAttribute('popover', 'auto');
143
- btn.setAttribute('popovertarget', id);
144
-
145
- dialog.outerHTML = dialog.outerHTML.replace(/<dialog/g, '<iam-menu').replace(/<\/dialog>/g, '</iam-menu>');
146
-
147
- dialog.parentElement?.classList.add('menu__wrapper');
148
- dialog.parentElement?.classList.remove('dialog__wrapper');
149
- }
150
-
151
- // #region select all
152
- if (this.hasAttribute('data-selectall')) {
153
- actionbarWrapper?.insertAdjacentHTML(
154
- 'afterbegin',
155
- `<div class="selectall pb-0"><input type="checkbox" name="selectall" id="selectall"><label for="selectall" class="m-0">Select all</label></div>`
156
- );
157
- const selectAll = this.shadowRoot?.querySelector('.selectall');
158
-
159
- if (this.hasAttribute('data-selected')) {
160
- setSelectAllInput(selectAll, this.getAttribute('data-selected'));
161
- }
162
-
163
- selectAll?.addEventListener('change', (event) => {
164
- if (event && event.target instanceof HTMLElement && event.target.closest('input')) {
165
- if (event.target.closest('input')?.checked) this.setAttribute('data-selected', 'all');
166
- else this.setAttribute('data-selected', '0');
167
- }
168
- });
169
-
170
- const cancelButton = this.querySelector('button[data-cancel]');
171
- if (cancelButton) {
172
- cancelButton.addEventListener('click', () => {
173
- this.setAttribute('data-selected', '0');
174
- });
175
- }
176
- }
177
-
178
- // Wtach div for the select inputs
179
- if (this.hasAttribute('data-select-watch')) {
180
- const element = document.getElementById(this.getAttribute('data-select-watch'));
181
- element?.setAttribute('data-select-container', 'true');
182
- Array.from(element.querySelectorAll('input[type="checkbox"]')).forEach((input) => {
183
- input.parentElement?.setAttribute('slot', 'checkbox');
184
- });
185
- element?.addEventListener('change', (event) => {
186
- if (event && event.target instanceof HTMLElement && event.target.closest('[type="checkbox"]')) {
187
- const count = element.querySelectorAll('input[type="checkbox"]').length;
188
- const countChecked = element.querySelectorAll('input[type="checkbox"]:checked').length;
189
- this.setAttribute('data-selected', count == countChecked ? 'all' : String(countChecked));
190
-
191
- if (countChecked) {
192
- Array.from(element.querySelectorAll('input[type="checkbox"]')).forEach((input) => {
193
- if (input.closest('iam-card')) input.closest('iam-card')?.setAttribute('data-selected', 'true');
194
- });
195
- } else {
196
- Array.from(element.querySelectorAll('input[type="checkbox"]')).forEach((input) => {
197
- if (input.closest('iam-card')) input.closest('iam-card')?.removeAttribute('data-selected');
198
- });
199
- }
200
- }
201
- });
202
- }
203
- // #endregion
204
-
205
- // #region switchviews
206
- if (this.hasAttribute('data-switchviews')) {
207
- let btns = '';
208
- const viewList = this.getAttribute('data-switchviews')?.split(',');
209
-
210
- viewList?.forEach((view) => {
211
- let icon = 'fa-grid';
212
-
213
- if (view == 'list') icon = 'fa-list';
214
- else if (view == 'small') icon = 'fa-table';
215
-
216
- btns += `<button class="tag tag--toggle mb-0" data-view="${view}"><i class="fa-regular ${icon} m-0"></i><span class="visually-hidden">${view}</span></button>`;
217
- });
218
-
219
- actionbarWrapper?.insertAdjacentHTML('afterbegin', `<div class="views m-0">${btns}</div>`);
220
- const views = this.shadowRoot?.querySelector('.views');
221
-
222
- views?.addEventListener('click', (event) => {
223
- if (event && event.target instanceof HTMLElement && event.target.closest('.tag--toggle')) {
224
- const btn = event.target.closest('.tag--toggle');
225
-
226
- this.setAttribute('data-view', btn.textContent);
227
-
228
- const switchEvent = new CustomEvent('switch-view', { detail: { view: btn.textContent } });
229
- this.dispatchEvent(switchEvent);
230
- }
231
- });
232
- }
233
- // #endregion
234
-
235
- // #region search
236
- const searchBar = this.shadowRoot?.querySelector('.actionbar--search');
237
- if (this.hasAttribute('data-search-value')) {
238
- (this.shadowRoot?.querySelector('#search') as HTMLInputElement).value = String(
239
- this.getAttribute('data-search-value')
240
- );
241
- }
242
-
243
- if (this.hasAttribute('data-search') && this.getAttribute('data-search') == 'show')
244
- searchBar?.classList.add('show');
245
-
246
- const searchBtn = this.shadowRoot.querySelector('button[data-search]');
247
-
248
- this.shadowRoot.addEventListener('click', (event) => {
249
- if (event && event.target instanceof HTMLElement && event.target.closest('button[data-search]')) {
250
- searchBar.classList.toggle('show');
251
- searchBtn.toggleAttribute('aria-expanded');
252
- searchInput.focus();
253
- }
254
- });
255
-
256
- searchBar.addEventListener('keyup', () => {
257
- const keyupEvent = new CustomEvent('search-keyup', {
258
- detail: { search: searchBar.querySelector('input').value },
259
- });
260
- this.dispatchEvent(keyupEvent);
261
- });
262
-
263
- searchBar.addEventListener('change', () => {
264
- const changeEvent = new CustomEvent('search-change', {
265
- detail: { search: searchBar.querySelector('input').value },
266
- });
267
- this.dispatchEvent(changeEvent);
268
- });
269
-
270
- searchBar.addEventListener('click', (event) => {
271
-
272
- if (event && event.target instanceof HTMLElement && event.target.closest('button.suffix')) {
273
-
274
- const submitEvent = new CustomEvent('search-submit', {
275
- detail: { search: searchBar.querySelector('input').value },
276
- });
277
-
278
- this.dispatchEvent(submitEvent);
279
-
280
- searchBar.classList.toggle('show');
281
- searchBtn.toggleAttribute('aria-expanded');
282
- }
283
- });
284
-
285
- const clearBtn = searchBar.querySelector('.empty');
286
- const searchInput = searchBar.querySelector('#search');
287
-
288
- clearBtn.addEventListener('click', function (e) {
289
- searchInput.removeAttribute('placeholder');
290
- searchInput.removeAttribute('data-value');
291
- searchInput.value = '';
292
- });
293
- // #endregion
294
-
295
- // #region Reponsive safe area
296
- const hideButtons = (): void => {
297
- const wrapperWidth = actionbarWrapper.scrollWidth;
298
- const screenWidth = document.documentElement.scrollWidth;
299
- let safeAreaWidth = 750;
300
- let elementMargin = 16;
301
- let tabletSafeWidth = 450;
302
- let mobileSafeWidth = this?.hasAttribute('data-switchviews') ? 144 : 210;
303
-
304
- if (this.hasAttribute('data-large-safe-area')) {
305
- safeAreaWidth = 1048;
306
- tabletSafeWidth = 620;
307
- mobileSafeWidth = 260;
308
- }
309
-
310
- // We need to modify the widths to mimic the CSS's scaling functionality
311
- let modifier = 1;
312
- if (screenWidth >= 992 && screenWidth <= 1280) {
313
- modifier = screenWidth / 1280;
314
- } else if (screenWidth >= 576 && screenWidth < 992) {
315
- modifier = screenWidth / 768;
316
- } else if (screenWidth < 576) {
317
- modifier = screenWidth / 375;
318
- }
319
-
320
- // Work out the safe sapce width depending upon the wrappers width and modifier comp
321
- if (wrapperWidth >= 992 && wrapperWidth <= 1280) {
322
- safeAreaWidth = safeAreaWidth * modifier;
323
- } else if (wrapperWidth >= 576 && wrapperWidth < 992) {
324
- safeAreaWidth = tabletSafeWidth * modifier;
325
- } else if (wrapperWidth < 576) {
326
- safeAreaWidth = mobileSafeWidth * modifier;
327
- }
328
-
329
- // Margin in between elements
330
- elementMargin = elementMargin * modifier;
331
-
332
- // If the wrapper width is small we want to reduce the btn sizes by adding or removing btn-compact classes
333
- if (wrapperWidth < 576) {
334
- Array.from(
335
- this.querySelectorAll(
336
- ':scope > .btn:not(.js-updated), :scope > .menu__wrapper > .btn[class*="fa-"]:first-child:not(.js-updated)'
337
- )
338
- ).forEach((element: HTMLElement) => {
339
- element.className = element.className.replace(' btn-compact', ' _btn-compact');
340
- element.classList.add('btn-compact');
341
- element.classList.add('js-updated');
342
- });
343
- } else {
344
- Array.from(
345
- this.querySelectorAll(':scope > .btn.js-updated, :scope > .menu__wrapper > .btn.js-updated:first-child')
346
- ).forEach((element: HTMLElement) => {
347
- element.classList.remove('btn-compact');
348
- element.classList.remove('js-updated');
349
- element.className = element.className.replace(' _btn-compact', ' btn-compact');
350
- });
351
- }
352
-
353
- // Reset the elements before we decide what elements become slotted into the overflow
354
- Array.from(this.querySelectorAll('[slot]')).forEach((element: HTMLElement) => {
355
- if (element.getAttribute('slot') == 'overflow') element.removeAttribute('slot');
356
-
357
- if (element.getAttribute('slot') == 'selected-overflow') element.setAttribute('slot', 'selected');
358
- });
359
-
360
- Array.from(this.querySelectorAll('.show')).forEach((element: HTMLElement) => {
361
- element.classList.remove('show');
362
- });
363
-
364
- // Foreach safe area lets check what elements are slotted in them and if they need an overflow
365
- Array.from(this.shadowRoot.querySelectorAll('.safe-area')).forEach((element: HTMLElement) => {
366
- // Decide on which overflow slot to use
367
- let overflowSlot = 'overflow';
368
-
369
- if (
370
- element.querySelector('slot')?.hasAttribute('name') &&
371
- element.querySelector('slot')?.getAttribute('name') == 'selected'
372
- )
373
- overflowSlot = 'selected-overflow';
374
-
375
- // Get the slotted elements, remember they aren't children of the safe area
376
- const elements = element.querySelector('slot')?.assignedElements() as Array<HTMLElement>;
377
- let tempWidth = 44 * modifier; // Allow space for the overflow button
378
-
379
- // If search then allow for the search button width
380
- if (this.hasAttribute('data-search')) tempWidth += 44 * modifier;
381
-
382
- // Foreach element this isn't an action button or dialog wrapper add to the width, these will not be moved into the overflow slot
383
- for (let i = 0; i < elements.length; i++) {
384
- if (!elements[i].classList.contains('btn-action') && !elements[i].classList.contains('menu__wrapper ')) {
385
- tempWidth += elements[i].offsetWidth;
386
- tempWidth += elementMargin;
387
- }
388
- }
389
-
390
- // Foreach dialog wrapper decide if safe in safe area or move into the overflow slot, dialog wrappers have priority over the action buttons
391
- for (let i = 0; i < elements.length; i++) {
392
- if (elements[i].classList.contains('menu__wrapper ')) {
393
- elements[i].classList.add('show');
394
- tempWidth += elements[i].offsetWidth;
395
- tempWidth += elementMargin / 2;
396
-
397
- // If we have exceeded the safe area then lets break the loop
398
- if (tempWidth - elementMargin / 2 > safeAreaWidth) {
399
- elements[i].classList.remove('show');
400
- break;
401
- }
402
- }
403
- }
404
-
405
- // Foreach action button
406
- for (let i = 0; i < elements.length; i++) {
407
- if (elements[i].classList.contains('btn-action')) {
408
- elements[i].classList.add('show');
409
- tempWidth += elements[i].offsetWidth;
410
- tempWidth += elementMargin / 2;
411
-
412
- // If we have exceeded the safe area then lets break the loop
413
- if (tempWidth - elementMargin / 2 > safeAreaWidth) {
414
- elements[i].classList.remove('show');
415
- break;
416
- }
417
- }
418
- }
419
-
420
- const overflowDialog = element.querySelector('.dialog-overflow');
421
-
422
- if (overflowDialog) overflowDialog.classList.add('d-none');
423
-
424
- // Decide which elements go into the overflow slot
425
- for (let i = 0; i < elements.length; i++) {
426
- if (elements[i].classList.contains('btn-action') || elements[i].classList.contains('menu__wrapper ')) {
427
- if (!elements[i].classList.contains('show')) {
428
- // Move to the slot by changing the attribute
429
- elements[i].setAttribute('slot', overflowSlot);
430
-
431
- // if an element has been added to overflow slot then make sure we show the overflow menu button
432
- if (overflowDialog) overflowDialog.classList.remove('d-none');
433
- }
434
- }
435
- }
436
- });
437
- };
438
-
439
- // Check buttons on load and when the wrapper element gets resized.
440
- hideButtons();
441
- new ResizeObserver(hideButtons).observe(actionbarWrapper);
442
- // #endregion
443
-
444
- // #region cloumn filters
445
-
446
- const setColumnFilters = (): void => {
447
- let columnsHidden = '';
448
- Array.from(checklistHolder?.querySelectorAll('label input')).forEach((element, index) => {
449
- columnsHidden += this.hasAttribute(`data-hide-col${index + 1}`) ? `${index + 1},` : '';
450
- });
451
-
452
- this.setAttribute('data-columns-shown', checklistHolder.querySelectorAll('input:checked').length);
453
-
454
- const dispatchedEvent = new CustomEvent('columm-filters-set', {
455
- detail: {
456
- columnsHidden: columnsHidden.slice(0, -1),
457
- },
458
- });
459
-
460
- this.dispatchEvent(dispatchedEvent);
461
- };
462
-
463
- if (this.hasAttribute('data-filter-columns') || this.hasAttribute('data-filter-columns-save')) {
464
- const columns = this.closest('iam-table').querySelectorAll('thead th');
465
-
466
- Array.from(columns).forEach((element, index) => {
467
- if (element.textContent) {
468
- checklistHolder?.insertAdjacentHTML(
469
- 'beforeend',
470
- `<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>`
471
- );
472
- }
473
- });
474
- }
475
-
476
- this.setAttribute('data-columns-shown', checklistHolder.querySelectorAll('input:checked').length);
477
-
478
- if (this.hasAttribute('data-filter-columns') && !this.hasAttribute('data-filter-columns-save')) {
479
- checklistHolder?.addEventListener('change', (event) => {
480
- if (event && event.target instanceof HTMLElement && event.target.closest('input')) {
481
- const checkbox = event.target.closest('input');
482
-
483
- if (checkbox?.checked == false) {
484
- this.setAttribute('data-hide-col' + checkbox?.value, 'true');
485
- } else {
486
- this.removeAttribute('data-hide-col' + checkbox?.value);
487
- }
488
-
489
- setColumnFilters();
490
- }
491
- });
492
- }
493
-
494
- if (this.hasAttribute('data-filter-columns-save')) {
495
- const checklistHolder = this.shadowRoot?.querySelector('.checklists');
496
- const checklistSave = this.shadowRoot?.querySelector('#saveColumns');
497
- const checklistCancel = this.shadowRoot?.querySelector('#cancelColumns');
498
-
499
- checklistSave?.addEventListener('click', (event) => {
500
- Array.from(checklistHolder?.querySelectorAll('label input')).forEach((checkbox) => {
501
- if (checkbox?.checked == false) {
502
- this.setAttribute('data-hide-col' + checkbox?.value, 'true');
503
- } else {
504
- this.removeAttribute('data-hide-col' + checkbox?.value);
505
- }
506
- });
507
-
508
- setColumnFilters();
509
- checklistSave.closest('dialog')?.close();
510
- });
511
-
512
- // Revert back to what was previously saved
513
- checklistCancel?.addEventListener('click', (event) => {
514
- const checklistHolder = this.shadowRoot?.querySelector('.checklists');
515
-
516
- Array.from(checklistHolder?.querySelectorAll('label input')).forEach((element, index) => {
517
- element.checked = this.hasAttribute(`data-hide-col${index + 1}`) ? false : true;
518
- });
519
-
520
- setColumnFilters();
521
- checklistSave.closest('dialog')?.close();
522
- });
523
- }
524
- // #endregion
525
- }
526
-
527
- static get observedAttributes(): Array<string> {
528
- return ['data-selected'];
529
- }
530
-
531
- attributeChangedCallback(attrName, oldVal, newVal): void {
532
- switch (attrName) {
533
- case 'data-selected': {
534
- const selectAll = this.shadowRoot.querySelector('.selectall');
535
-
536
- if (selectAll) setSelectAllInput(selectAll, newVal);
537
-
538
- const event = new CustomEvent('selected', { detail: { selected: newVal } });
539
- this.dispatchEvent(event);
540
-
541
- if (newVal == 'all' && this.hasAttribute('data-select-watch')) {
542
- const element = document.getElementById(String(this.getAttribute('data-select-watch'))) as HTMLElement;
543
-
544
- Array.from(element.querySelectorAll('input[type="checkbox"]')).forEach((input: HTMLInputElement) => {
545
- input.checked = true;
546
-
547
- if (input.closest('iam-card')) input.closest('iam-card')?.setAttribute('data-selected', 'true');
548
- });
549
- }
550
-
551
- if (newVal == '0' && this.hasAttribute('data-select-watch')) {
552
- const element = document.getElementById(String(this.getAttribute('data-select-watch'))) as HTMLElement;
553
-
554
- Array.from(element.querySelectorAll('input[type="checkbox"]')).forEach((input: HTMLInputElement) => {
555
- input.checked = false;
556
-
557
- if (input.closest('iam-card')) input.closest('iam-card')?.removeAttribute('data-selected');
558
- });
559
- }
560
-
561
- break;
562
- }
563
- }
564
- }
565
- }
566
-
567
- export default iamActionbar;
1
+ import { uniqueID } from '../../modules/helpers';
2
+ import iamMenu from '../menu/menu.component';
3
+
4
+ // Data layer Web component created
5
+ declare global {
6
+ interface Window {
7
+ dataLayer: Array<object>;
8
+ }
9
+ }
10
+ window.dataLayer = window.dataLayer || [];
11
+ window.dataLayer.push({
12
+ event: 'customElementRegistered',
13
+ element: 'action bar',
14
+ });
15
+
16
+ function setSelectAllInput(element, value): void {
17
+ if (element && value == 'all') {
18
+ element.querySelector('input').indeterminate = false;
19
+ element.querySelector('input').checked = true;
20
+ element.querySelector('label').textContent = `Select all`;
21
+ } else if (element && value == 0) {
22
+ element.querySelector('input').indeterminate = false;
23
+ element.querySelector('input').checked = false;
24
+ element.querySelector('label').textContent = `Select all`;
25
+ } else if (element && value) {
26
+ element.querySelector('input').indeterminate = true;
27
+ element.querySelector('input').checked = false;
28
+ element.querySelector('label').textContent = `${value} item${value > 1 ? 's' : ''} selected`;
29
+ } else if (element) {
30
+ element.querySelector('input').checked = false;
31
+ element.querySelector('input').indeterminate = false;
32
+ element.querySelector('label').textContent = `Select all`;
33
+ }
34
+ }
35
+
36
+ class iamActionbar extends HTMLElement {
37
+ constructor() {
38
+ super();
39
+ this.attachShadow({ mode: 'open' });
40
+
41
+ const assetLocation = document.body.hasAttribute('data-assets-location')
42
+ ? document.body.getAttribute('data-assets-location')
43
+ : '/assets';
44
+
45
+
46
+ if (!window.customElements.get(`iam-menu`)) window.customElements.define(`iam-menu`, iamMenu);
47
+
48
+ const loadCSS = `@import "${assetLocation}/css/components/actionbar.component.css";`;
49
+ const loadExtraCSS = `@import "${assetLocation}/css/components/actionbar.global.css";`;
50
+
51
+ const template = document.createElement('template');
52
+ template.innerHTML = `
53
+ <style>
54
+ ${loadCSS}
55
+ ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
56
+ </style>
57
+ <link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
58
+ <div class="actionbar__wrapper">
59
+
60
+ <div class="actionbar" part="actionbar">
61
+ <slot name="selectall"></slot>
62
+ <slot name="filters"></slot>
63
+ <div class="safe-area">
64
+ <slot></slot>
65
+ <div class="body">
66
+ <div class="menu__wrapper menu__wrapper --right dialog-overflow d-none show">
67
+ <button class="btn btn-secondary btn-compact btn-sm fa-ellipsis-vertical m-0" popovertarget="overflow" style="anchor-name: --anchor-overflow;">More actions</button>
68
+ <iam-menu class="dialog--list" part="overflow" id="overflow" style="position-anchor: --anchor-overflow;" popover>
69
+ <slot name="overflow"></slot>
70
+ <slot name="menu"></slot>
71
+ </iam-menu>
72
+ </div>
73
+
74
+
75
+ <div class="menu__wrapper menu__wrapper --right filter-columns">
76
+ <button class="btn btn-secondary btn-compact btn-sm mb-0 me-0 fa-regular fa-table-columns" title="Select colums" popovertarget="filter" style="anchor-name: --anchor-filter;">Filter</button>
77
+ <iam-menu class="dialog--list" id="filter" style="position-anchor: --anchor-filter;" popover>
78
+ <div class="pb-0 mb-0 checklists">
79
+
80
+ </div>
81
+ <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>
82
+ </iam-menu>
83
+ </div>
84
+
85
+ <button class="btn btn-secondary btn-compact btn-sm fa-search" data-search="" part="search-btn">Search</button>
86
+ </div>
87
+ </div>
88
+ </div>
89
+ <div class="actionbar--selected">
90
+ <div class="safe-area">
91
+ <slot name="selected"></slot>
92
+ <div class="body">
93
+ <div class="menu__wrapper menu__wrapper --right dialog-overflow d-none show">
94
+ <button class="btn btn-secondary btn-compact btn-sm fa-ellipsis-vertical m-0" popovertarget="selected-overflow" style="anchor-name: --anchor-selected-overflow;">More actions</button>
95
+ <iam-menu class="dialog--list" part="selected-overflow" id="selected-overflow" style="position-anchor: --anchor-selected-overflow;" popover>
96
+ <slot name="selected-overflow"></slot>
97
+ </iam-menu>
98
+ </div>
99
+ </div>
100
+ </div>
101
+ </div>
102
+
103
+ <div class="actionbar--search">
104
+ <button data-search class="btn btn-compact fa-xmark-large btn-secondary mb-0" >Close</button>
105
+
106
+ <div class="search-wrapper" part="search">
107
+ <label for="search" class="visually-hidden">Input field label</label>
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>
111
+ </div>
112
+
113
+ </div>
114
+ </div>
115
+ <div class="no-columns">
116
+ <span class="d-block">No columns selected</span>
117
+ </div>
118
+ `;
119
+ this.shadowRoot.appendChild(template.content.cloneNode(true));
120
+
121
+ // insert extra CSS
122
+ if (!document.getElementById('actionbarGlobal'))
123
+ document.head.insertAdjacentHTML('beforeend', `<style id="actionbarGlobal">${loadExtraCSS}</style>`);
124
+ }
125
+
126
+ connectedCallback(): void {
127
+ const actionbarWrapper = this.shadowRoot?.querySelector('.actionbar__wrapper');
128
+ const checklistHolder = this.shadowRoot?.querySelector('.checklists');
129
+
130
+ const assetLocation = document.body.hasAttribute('data-assets-location')
131
+ ? document.body.getAttribute('data-assets-location')
132
+ : '/assets';
133
+
134
+ const dialog = this.querySelector('.dialog__wrapper dialog');
135
+
136
+ // Transform dialog into a menu custom element
137
+ if (dialog) {
138
+ const btn = dialog.parentElement.querySelector('.btn');
139
+ const id = `menu${uniqueID(1)}`;
140
+
141
+ dialog.setAttribute('id', id);
142
+ dialog.setAttribute('popover', 'auto');
143
+ btn.setAttribute('popovertarget', id);
144
+
145
+ dialog.outerHTML = dialog.outerHTML.replace(/<dialog/g, '<iam-menu').replace(/<\/dialog>/g, '</iam-menu>');
146
+
147
+ dialog.parentElement?.classList.add('menu__wrapper');
148
+ dialog.parentElement?.classList.remove('dialog__wrapper');
149
+ }
150
+
151
+ // #region select all
152
+ if (this.hasAttribute('data-selectall')) {
153
+ actionbarWrapper?.insertAdjacentHTML(
154
+ 'afterbegin',
155
+ `<div class="selectall pb-0"><input type="checkbox" name="selectall" id="selectall"><label for="selectall" class="m-0">Select all</label></div>`
156
+ );
157
+ const selectAll = this.shadowRoot?.querySelector('.selectall');
158
+
159
+ if (this.hasAttribute('data-selected')) {
160
+ setSelectAllInput(selectAll, this.getAttribute('data-selected'));
161
+ }
162
+
163
+ selectAll?.addEventListener('change', (event) => {
164
+ if (event && event.target instanceof HTMLElement && event.target.closest('input')) {
165
+ if (event.target.closest('input')?.checked) this.setAttribute('data-selected', 'all');
166
+ else this.setAttribute('data-selected', '0');
167
+ }
168
+ });
169
+
170
+ const cancelButton = this.querySelector('button[data-cancel]');
171
+ if (cancelButton) {
172
+ cancelButton.addEventListener('click', () => {
173
+ this.setAttribute('data-selected', '0');
174
+ });
175
+ }
176
+ }
177
+
178
+ // Wtach div for the select inputs
179
+ if (this.hasAttribute('data-select-watch')) {
180
+ const element = document.getElementById(this.getAttribute('data-select-watch'));
181
+ element?.setAttribute('data-select-container', 'true');
182
+ Array.from(element.querySelectorAll('input[type="checkbox"]')).forEach((input) => {
183
+ input.parentElement?.setAttribute('slot', 'checkbox');
184
+ });
185
+ element?.addEventListener('change', (event) => {
186
+ if (event && event.target instanceof HTMLElement && event.target.closest('[type="checkbox"]')) {
187
+ const count = element.querySelectorAll('input[type="checkbox"]').length;
188
+ const countChecked = element.querySelectorAll('input[type="checkbox"]:checked').length;
189
+ this.setAttribute('data-selected', count == countChecked ? 'all' : String(countChecked));
190
+
191
+ if (countChecked) {
192
+ Array.from(element.querySelectorAll('input[type="checkbox"]')).forEach((input) => {
193
+ if (input.closest('iam-card')) input.closest('iam-card')?.setAttribute('data-selected', 'true');
194
+ });
195
+ } else {
196
+ Array.from(element.querySelectorAll('input[type="checkbox"]')).forEach((input) => {
197
+ if (input.closest('iam-card')) input.closest('iam-card')?.removeAttribute('data-selected');
198
+ });
199
+ }
200
+ }
201
+ });
202
+ }
203
+ // #endregion
204
+
205
+ // #region switchviews
206
+ if (this.hasAttribute('data-switchviews')) {
207
+ let btns = '';
208
+ const viewList = this.getAttribute('data-switchviews')?.split(',');
209
+
210
+ viewList?.forEach((view) => {
211
+ let icon = 'fa-grid';
212
+
213
+ if (view == 'list') icon = 'fa-list';
214
+ else if (view == 'small') icon = 'fa-table';
215
+
216
+ btns += `<button class="tag tag--toggle mb-0" data-view="${view}"><i class="fa-regular ${icon} m-0"></i><span class="visually-hidden">${view}</span></button>`;
217
+ });
218
+
219
+ actionbarWrapper?.insertAdjacentHTML('afterbegin', `<div class="views m-0">${btns}</div>`);
220
+ const views = this.shadowRoot?.querySelector('.views');
221
+
222
+ views?.addEventListener('click', (event) => {
223
+ if (event && event.target instanceof HTMLElement && event.target.closest('.tag--toggle')) {
224
+ const btn = event.target.closest('.tag--toggle');
225
+
226
+ this.setAttribute('data-view', btn.textContent);
227
+
228
+ const switchEvent = new CustomEvent('switch-view', { detail: { view: btn.textContent } });
229
+ this.dispatchEvent(switchEvent);
230
+ }
231
+ });
232
+ }
233
+ // #endregion
234
+
235
+ // #region search
236
+ const searchBar = this.shadowRoot?.querySelector('.actionbar--search');
237
+ if (this.hasAttribute('data-search-value')) {
238
+ (this.shadowRoot?.querySelector('#search') as HTMLInputElement).value = String(
239
+ this.getAttribute('data-search-value')
240
+ );
241
+ }
242
+
243
+ if (this.hasAttribute('data-search') && this.getAttribute('data-search') == 'show')
244
+ searchBar?.classList.add('show');
245
+
246
+ const searchBtn = this.shadowRoot.querySelector('button[data-search]');
247
+
248
+ this.shadowRoot.addEventListener('click', (event) => {
249
+ if (event && event.target instanceof HTMLElement && event.target.closest('button[data-search]')) {
250
+ searchBar.classList.toggle('show');
251
+ searchBtn.toggleAttribute('aria-expanded');
252
+ searchInput.focus();
253
+ }
254
+ });
255
+
256
+ searchBar.addEventListener('keyup', () => {
257
+ const keyupEvent = new CustomEvent('search-keyup', {
258
+ detail: { search: searchBar.querySelector('input').value },
259
+ });
260
+ this.dispatchEvent(keyupEvent);
261
+ });
262
+
263
+ searchBar.addEventListener('change', () => {
264
+ const changeEvent = new CustomEvent('search-change', {
265
+ detail: { search: searchBar.querySelector('input').value },
266
+ });
267
+ this.dispatchEvent(changeEvent);
268
+ });
269
+
270
+ searchBar.addEventListener('click', (event) => {
271
+
272
+ if (event && event.target instanceof HTMLElement && event.target.closest('button.suffix')) {
273
+
274
+ const submitEvent = new CustomEvent('search-submit', {
275
+ detail: { search: searchBar.querySelector('input').value },
276
+ });
277
+
278
+ this.dispatchEvent(submitEvent);
279
+
280
+ searchBar.classList.toggle('show');
281
+ searchBtn.toggleAttribute('aria-expanded');
282
+ }
283
+ });
284
+
285
+ const clearBtn = searchBar.querySelector('.empty');
286
+ const searchInput = searchBar.querySelector('#search');
287
+
288
+ clearBtn.addEventListener('click', function (e) {
289
+ searchInput.removeAttribute('placeholder');
290
+ searchInput.removeAttribute('data-value');
291
+ searchInput.value = '';
292
+ });
293
+ // #endregion
294
+
295
+ // #region Reponsive safe area
296
+ const hideButtons = (): void => {
297
+ const wrapperWidth = actionbarWrapper.scrollWidth;
298
+ const screenWidth = document.documentElement.scrollWidth;
299
+ let safeAreaWidth = 750;
300
+ let elementMargin = 16;
301
+ let tabletSafeWidth = 450;
302
+ let mobileSafeWidth = this?.hasAttribute('data-switchviews') ? 144 : 210;
303
+
304
+ if (this.hasAttribute('data-large-safe-area')) {
305
+ safeAreaWidth = 1048;
306
+ tabletSafeWidth = 620;
307
+ mobileSafeWidth = 260;
308
+ }
309
+
310
+ // We need to modify the widths to mimic the CSS's scaling functionality
311
+ let modifier = 1;
312
+ if (screenWidth >= 992 && screenWidth <= 1280) {
313
+ modifier = screenWidth / 1280;
314
+ } else if (screenWidth >= 576 && screenWidth < 992) {
315
+ modifier = screenWidth / 768;
316
+ } else if (screenWidth < 576) {
317
+ modifier = screenWidth / 375;
318
+ }
319
+
320
+ // Work out the safe sapce width depending upon the wrappers width and modifier comp
321
+ if (wrapperWidth >= 992 && wrapperWidth <= 1280) {
322
+ safeAreaWidth = safeAreaWidth * modifier;
323
+ } else if (wrapperWidth >= 576 && wrapperWidth < 992) {
324
+ safeAreaWidth = tabletSafeWidth * modifier;
325
+ } else if (wrapperWidth < 576) {
326
+ safeAreaWidth = mobileSafeWidth * modifier;
327
+ }
328
+
329
+ // Margin in between elements
330
+ elementMargin = elementMargin * modifier;
331
+
332
+ // If the wrapper width is small we want to reduce the btn sizes by adding or removing btn-compact classes
333
+ if (wrapperWidth < 576) {
334
+ Array.from(
335
+ this.querySelectorAll(
336
+ ':scope > .btn:not(.js-updated), :scope > .menu__wrapper > .btn[class*="fa-"]:first-child:not(.js-updated)'
337
+ )
338
+ ).forEach((element: HTMLElement) => {
339
+ element.className = element.className.replace(' btn-compact', ' _btn-compact');
340
+ element.classList.add('btn-compact');
341
+ element.classList.add('js-updated');
342
+ });
343
+ } else {
344
+ Array.from(
345
+ this.querySelectorAll(':scope > .btn.js-updated, :scope > .menu__wrapper > .btn.js-updated:first-child')
346
+ ).forEach((element: HTMLElement) => {
347
+ element.classList.remove('btn-compact');
348
+ element.classList.remove('js-updated');
349
+ element.className = element.className.replace(' _btn-compact', ' btn-compact');
350
+ });
351
+ }
352
+
353
+ // Reset the elements before we decide what elements become slotted into the overflow
354
+ Array.from(this.querySelectorAll('[slot]')).forEach((element: HTMLElement) => {
355
+ if (element.getAttribute('slot') == 'overflow') element.removeAttribute('slot');
356
+
357
+ if (element.getAttribute('slot') == 'selected-overflow') element.setAttribute('slot', 'selected');
358
+ });
359
+
360
+ Array.from(this.querySelectorAll('.show')).forEach((element: HTMLElement) => {
361
+ element.classList.remove('show');
362
+ });
363
+
364
+ // Foreach safe area lets check what elements are slotted in them and if they need an overflow
365
+ Array.from(this.shadowRoot.querySelectorAll('.safe-area')).forEach((element: HTMLElement) => {
366
+ // Decide on which overflow slot to use
367
+ let overflowSlot = 'overflow';
368
+
369
+ if (
370
+ element.querySelector('slot')?.hasAttribute('name') &&
371
+ element.querySelector('slot')?.getAttribute('name') == 'selected'
372
+ )
373
+ overflowSlot = 'selected-overflow';
374
+
375
+ // Get the slotted elements, remember they aren't children of the safe area
376
+ const elements = element.querySelector('slot')?.assignedElements() as Array<HTMLElement>;
377
+ let tempWidth = 44 * modifier; // Allow space for the overflow button
378
+
379
+ // If search then allow for the search button width
380
+ if (this.hasAttribute('data-search')) tempWidth += 44 * modifier;
381
+
382
+ // Foreach element this isn't an action button or dialog wrapper add to the width, these will not be moved into the overflow slot
383
+ for (let i = 0; i < elements.length; i++) {
384
+ if (!elements[i].classList.contains('btn-action') && !elements[i].classList.contains('menu__wrapper ')) {
385
+ tempWidth += elements[i].offsetWidth;
386
+ tempWidth += elementMargin;
387
+ }
388
+ }
389
+
390
+ // Foreach dialog wrapper decide if safe in safe area or move into the overflow slot, dialog wrappers have priority over the action buttons
391
+ for (let i = 0; i < elements.length; i++) {
392
+ if (elements[i].classList.contains('menu__wrapper ')) {
393
+ elements[i].classList.add('show');
394
+ tempWidth += elements[i].offsetWidth;
395
+ tempWidth += elementMargin / 2;
396
+
397
+ // If we have exceeded the safe area then lets break the loop
398
+ if (tempWidth - elementMargin / 2 > safeAreaWidth) {
399
+ elements[i].classList.remove('show');
400
+ break;
401
+ }
402
+ }
403
+ }
404
+
405
+ // Foreach action button
406
+ for (let i = 0; i < elements.length; i++) {
407
+ if (elements[i].classList.contains('btn-action')) {
408
+ elements[i].classList.add('show');
409
+ tempWidth += elements[i].offsetWidth;
410
+ tempWidth += elementMargin / 2;
411
+
412
+ // If we have exceeded the safe area then lets break the loop
413
+ if (tempWidth - elementMargin / 2 > safeAreaWidth) {
414
+ elements[i].classList.remove('show');
415
+ break;
416
+ }
417
+ }
418
+ }
419
+
420
+ const overflowDialog = element.querySelector('.dialog-overflow');
421
+
422
+ if (overflowDialog) overflowDialog.classList.add('d-none');
423
+
424
+ // Decide which elements go into the overflow slot
425
+ for (let i = 0; i < elements.length; i++) {
426
+ if (elements[i].classList.contains('btn-action') || elements[i].classList.contains('menu__wrapper ')) {
427
+ if (!elements[i].classList.contains('show')) {
428
+ // Move to the slot by changing the attribute
429
+ elements[i].setAttribute('slot', overflowSlot);
430
+
431
+ // if an element has been added to overflow slot then make sure we show the overflow menu button
432
+ if (overflowDialog) overflowDialog.classList.remove('d-none');
433
+ }
434
+ }
435
+ }
436
+ });
437
+ };
438
+
439
+ // Check buttons on load and when the wrapper element gets resized.
440
+ hideButtons();
441
+ new ResizeObserver(hideButtons).observe(actionbarWrapper);
442
+ // #endregion
443
+
444
+ // #region cloumn filters
445
+
446
+ const setColumnFilters = (): void => {
447
+ let columnsHidden = '';
448
+ Array.from(checklistHolder?.querySelectorAll('label input')).forEach((element, index) => {
449
+ columnsHidden += this.hasAttribute(`data-hide-col${index + 1}`) ? `${index + 1},` : '';
450
+ });
451
+
452
+ this.setAttribute('data-columns-shown', checklistHolder.querySelectorAll('input:checked').length);
453
+
454
+ const dispatchedEvent = new CustomEvent('columm-filters-set', {
455
+ detail: {
456
+ columnsHidden: columnsHidden.slice(0, -1),
457
+ },
458
+ });
459
+
460
+ this.dispatchEvent(dispatchedEvent);
461
+ };
462
+
463
+ if (this.hasAttribute('data-filter-columns') || this.hasAttribute('data-filter-columns-save')) {
464
+ const columns = this.closest('iam-table').querySelectorAll('thead th');
465
+
466
+ Array.from(columns).forEach((element, index) => {
467
+ if (element.textContent) {
468
+ checklistHolder?.insertAdjacentHTML(
469
+ 'beforeend',
470
+ `<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>`
471
+ );
472
+ }
473
+ });
474
+ }
475
+
476
+ this.setAttribute('data-columns-shown', checklistHolder.querySelectorAll('input:checked').length);
477
+
478
+ if (this.hasAttribute('data-filter-columns') && !this.hasAttribute('data-filter-columns-save')) {
479
+ checklistHolder?.addEventListener('change', (event) => {
480
+ if (event && event.target instanceof HTMLElement && event.target.closest('input')) {
481
+ const checkbox = event.target.closest('input');
482
+
483
+ if (checkbox?.checked == false) {
484
+ this.setAttribute('data-hide-col' + checkbox?.value, 'true');
485
+ } else {
486
+ this.removeAttribute('data-hide-col' + checkbox?.value);
487
+ }
488
+
489
+ setColumnFilters();
490
+ }
491
+ });
492
+ }
493
+
494
+ if (this.hasAttribute('data-filter-columns-save')) {
495
+ const checklistHolder = this.shadowRoot?.querySelector('.checklists');
496
+ const checklistSave = this.shadowRoot?.querySelector('#saveColumns');
497
+ const checklistCancel = this.shadowRoot?.querySelector('#cancelColumns');
498
+
499
+ checklistSave?.addEventListener('click', (event) => {
500
+ Array.from(checklistHolder?.querySelectorAll('label input')).forEach((checkbox) => {
501
+ if (checkbox?.checked == false) {
502
+ this.setAttribute('data-hide-col' + checkbox?.value, 'true');
503
+ } else {
504
+ this.removeAttribute('data-hide-col' + checkbox?.value);
505
+ }
506
+ });
507
+
508
+ setColumnFilters();
509
+ checklistSave.closest('dialog')?.close();
510
+ });
511
+
512
+ // Revert back to what was previously saved
513
+ checklistCancel?.addEventListener('click', (event) => {
514
+ const checklistHolder = this.shadowRoot?.querySelector('.checklists');
515
+
516
+ Array.from(checklistHolder?.querySelectorAll('label input')).forEach((element, index) => {
517
+ element.checked = this.hasAttribute(`data-hide-col${index + 1}`) ? false : true;
518
+ });
519
+
520
+ setColumnFilters();
521
+ checklistSave.closest('dialog')?.close();
522
+ });
523
+ }
524
+ // #endregion
525
+ }
526
+
527
+ static get observedAttributes(): Array<string> {
528
+ return ['data-selected'];
529
+ }
530
+
531
+ attributeChangedCallback(attrName, oldVal, newVal): void {
532
+ switch (attrName) {
533
+ case 'data-selected': {
534
+ const selectAll = this.shadowRoot.querySelector('.selectall');
535
+
536
+ if (selectAll) setSelectAllInput(selectAll, newVal);
537
+
538
+ const event = new CustomEvent('selected', { detail: { selected: newVal } });
539
+ this.dispatchEvent(event);
540
+
541
+ if (newVal == 'all' && this.hasAttribute('data-select-watch')) {
542
+ const element = document.getElementById(String(this.getAttribute('data-select-watch'))) as HTMLElement;
543
+
544
+ Array.from(element.querySelectorAll('input[type="checkbox"]')).forEach((input: HTMLInputElement) => {
545
+ input.checked = true;
546
+
547
+ if (input.closest('iam-card')) input.closest('iam-card')?.setAttribute('data-selected', 'true');
548
+ });
549
+ }
550
+
551
+ if (newVal == '0' && this.hasAttribute('data-select-watch')) {
552
+ const element = document.getElementById(String(this.getAttribute('data-select-watch'))) as HTMLElement;
553
+
554
+ Array.from(element.querySelectorAll('input[type="checkbox"]')).forEach((input: HTMLInputElement) => {
555
+ input.checked = false;
556
+
557
+ if (input.closest('iam-card')) input.closest('iam-card')?.removeAttribute('data-selected');
558
+ });
559
+ }
560
+
561
+ break;
562
+ }
563
+ }
564
+ }
565
+ }
566
+
567
+ export default iamActionbar;