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

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 (577) hide show
  1. package/README.md +4 -4
  2. package/assets/bootstrap/README.md +247 -247
  3. package/assets/bootstrap/js/index.esm.js +19 -19
  4. package/assets/bootstrap/js/index.umd.js +34 -34
  5. package/assets/bootstrap/js/src/alert.js +87 -87
  6. package/assets/bootstrap/js/src/base-component.js +85 -85
  7. package/assets/bootstrap/js/src/button.js +72 -72
  8. package/assets/bootstrap/js/src/carousel.js +475 -475
  9. package/assets/bootstrap/js/src/collapse.js +302 -302
  10. package/assets/bootstrap/js/src/dom/data.js +55 -55
  11. package/assets/bootstrap/js/src/dom/event-handler.js +320 -320
  12. package/assets/bootstrap/js/src/dom/manipulator.js +71 -71
  13. package/assets/bootstrap/js/src/dom/selector-engine.js +83 -83
  14. package/assets/bootstrap/js/src/dropdown.js +445 -445
  15. package/assets/bootstrap/js/src/modal.js +373 -373
  16. package/assets/bootstrap/js/src/offcanvas.js +283 -283
  17. package/assets/bootstrap/js/src/popover.js +97 -97
  18. package/assets/bootstrap/js/src/scrollspy.js +290 -290
  19. package/assets/bootstrap/js/src/tab.js +307 -307
  20. package/assets/bootstrap/js/src/toast.js +220 -220
  21. package/assets/bootstrap/js/src/tooltip.js +651 -651
  22. package/assets/bootstrap/js/src/util/backdrop.js +149 -149
  23. package/assets/bootstrap/js/src/util/component-functions.js +34 -34
  24. package/assets/bootstrap/js/src/util/config.js +66 -66
  25. package/assets/bootstrap/js/src/util/focustrap.js +115 -115
  26. package/assets/bootstrap/js/src/util/index.js +336 -336
  27. package/assets/bootstrap/js/src/util/sanitizer.js +118 -118
  28. package/assets/bootstrap/js/src/util/scrollbar.js +114 -114
  29. package/assets/bootstrap/js/src/util/swipe.js +146 -146
  30. package/assets/bootstrap/js/src/util/template-factory.js +160 -160
  31. package/assets/bootstrap/package.json +180 -180
  32. package/assets/bootstrap/scss/_accordion.scss +146 -146
  33. package/assets/bootstrap/scss/_button-group.scss +142 -142
  34. package/assets/bootstrap/scss/_buttons.scss +186 -186
  35. package/assets/bootstrap/scss/_carousel.scss +229 -229
  36. package/assets/bootstrap/scss/_dropdown.scss +248 -248
  37. package/assets/bootstrap/scss/_functions.scss +302 -302
  38. package/assets/bootstrap/scss/_list-group.scss +191 -191
  39. package/assets/bootstrap/scss/_modal.scss +237 -237
  40. package/assets/bootstrap/scss/_nav.scss +172 -172
  41. package/assets/bootstrap/scss/_navbar.scss +276 -276
  42. package/assets/bootstrap/scss/_offcanvas.scss +143 -143
  43. package/assets/bootstrap/scss/_pagination.scss +109 -109
  44. package/assets/bootstrap/scss/_popover.scss +196 -196
  45. package/assets/bootstrap/scss/_toasts.scss +70 -70
  46. package/assets/bootstrap/scss/_variables-dark.scss +87 -87
  47. package/assets/bootstrap/scss/_variables.scss +1633 -1633
  48. package/assets/bootstrap/scss/bootstrap-utilities.scss +15 -15
  49. package/assets/bootstrap/scss/forms/_floating-labels.scss +74 -74
  50. package/assets/bootstrap/scss/forms/_input-group.scss +129 -129
  51. package/assets/bootstrap/scss/helpers/_focus-ring.scss +5 -5
  52. package/assets/bootstrap/scss/helpers/_icon-link.scss +25 -25
  53. package/assets/bootstrap/scss/mixins/_banner.scss +9 -9
  54. package/assets/bootstrap/scss/mixins/_color-mode.scss +21 -21
  55. package/assets/bootstrap/scss/mixins/_forms.scss +152 -152
  56. package/assets/bootstrap/scss/mixins/_table-variants.scss +24 -24
  57. package/assets/bootstrap/scss/mixins/_utilities.scss +97 -97
  58. package/assets/css/components/notification.css +1 -1
  59. package/assets/css/components/notification.css.map +1 -1
  60. package/assets/favicons/README.md +20 -20
  61. package/assets/favicons/browserconfig.xml +9 -9
  62. package/assets/favicons/manifest.json +31 -31
  63. package/assets/favicons/safari-pinned-tab.svg +35 -35
  64. package/assets/favicons/site.webmanifest +20 -20
  65. package/assets/js/components/accordion/accordion.component.js +14 -14
  66. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  67. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  68. package/assets/js/components/actionbar/actionbar.component.js +66 -66
  69. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  70. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  71. package/assets/js/components/address-lookup/address-lookup.component.js +58 -58
  72. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  73. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  74. package/assets/js/components/advanced-select/advanced-select.component.js +18 -18
  75. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  76. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  77. package/assets/js/components/applied-filters/applied-filters.component.js +6 -6
  78. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  79. package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
  80. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  81. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  82. package/assets/js/components/bento-grid/bento-grid.component.js +9 -9
  83. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  84. package/assets/js/components/bento-grid/bento-grid.component.min.js.map +1 -1
  85. package/assets/js/components/calendar/calendar.component.min.js +1 -1
  86. package/assets/js/components/card/card.component.min.js +1 -1
  87. package/assets/js/components/card/card.component.min.js.map +1 -1
  88. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  89. package/assets/js/components/collapsible-side/collapsible-side.component.js +20 -20
  90. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  91. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  92. package/assets/js/components/config/config.component.js +53 -53
  93. package/assets/js/components/config/config.component.min.js +1 -1
  94. package/assets/js/components/config/config.component.min.js.map +1 -1
  95. package/assets/js/components/content/content.component.js +9 -9
  96. package/assets/js/components/content/content.component.min.js +1 -1
  97. package/assets/js/components/content/content.component.min.js.map +1 -1
  98. package/assets/js/components/darkmode/darkmode.component.js +4 -4
  99. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  100. package/assets/js/components/darkmode/darkmode.component.min.js.map +1 -1
  101. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  102. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  103. package/assets/js/components/fileupload/fileupload.component.js +16 -16
  104. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  105. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  106. package/assets/js/components/filter-card/filter-card.component.js +7 -7
  107. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  108. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  109. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  110. package/assets/js/components/form/form.component.js +4 -4
  111. package/assets/js/components/form/form.component.min.js +1 -1
  112. package/assets/js/components/form/form.component.min.js.map +1 -1
  113. package/assets/js/components/header/header.component.js +53 -53
  114. package/assets/js/components/header/header.component.min.js +1 -1
  115. package/assets/js/components/header/header.component.min.js.map +1 -1
  116. package/assets/js/components/inline-edit/inline-edit.component.js +16 -16
  117. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  118. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  119. package/assets/js/components/input/input.component.js +10 -10
  120. package/assets/js/components/input/input.component.min.js +1 -1
  121. package/assets/js/components/input/input.component.min.js.map +1 -1
  122. package/assets/js/components/input-range/input-range.component.js +8 -8
  123. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  124. package/assets/js/components/input-range/input-range.component.min.js.map +1 -1
  125. package/assets/js/components/marketing/marketing.component.js +10 -10
  126. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  127. package/assets/js/components/marketing/marketing.component.min.js.map +1 -1
  128. package/assets/js/components/menu/menu.component.js +6 -6
  129. package/assets/js/components/menu/menu.component.min.js +1 -1
  130. package/assets/js/components/menu/menu.component.min.js.map +1 -1
  131. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  132. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  133. package/assets/js/components/modal/modal.component.js +21 -21
  134. package/assets/js/components/modal/modal.component.min.js +1 -1
  135. package/assets/js/components/modal/modal.component.min.js.map +1 -1
  136. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  137. package/assets/js/components/multi-step-modal/multi-step-modal.component.js +11 -11
  138. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
  139. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js.map +1 -1
  140. package/assets/js/components/multiselect/multiselect.component.js +20 -20
  141. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  142. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  143. package/assets/js/components/nav/nav.component.js +45 -45
  144. package/assets/js/components/nav/nav.component.min.js +1 -1
  145. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  146. package/assets/js/components/notification/notification.component.js +14 -13
  147. package/assets/js/components/notification/notification.component.min.js +5 -4
  148. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  149. package/assets/js/components/pagination/pagination.component.js +39 -39
  150. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  151. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  152. package/assets/js/components/password/password.component.js +10 -10
  153. package/assets/js/components/password/password.component.min.js +1 -1
  154. package/assets/js/components/password/password.component.min.js.map +1 -1
  155. package/assets/js/components/popover/popover.component.js +7 -7
  156. package/assets/js/components/popover/popover.component.min.js +1 -1
  157. package/assets/js/components/popover/popover.component.min.js.map +1 -1
  158. package/assets/js/components/rank/rank.component.js +359 -359
  159. package/assets/js/components/rank/rank.component.min.js +1 -1
  160. package/assets/js/components/rank/rank.component.min.js.map +1 -1
  161. package/assets/js/components/rankings/rankings.component.js +16 -16
  162. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  163. package/assets/js/components/rankings/rankings.component.min.js.map +1 -1
  164. package/assets/js/components/rating/rating.component.js +9 -9
  165. package/assets/js/components/rating/rating.component.min.js +1 -1
  166. package/assets/js/components/rating/rating.component.min.js.map +1 -1
  167. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  168. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  169. package/assets/js/components/search/search.component.js +17 -17
  170. package/assets/js/components/search/search.component.min.js +1 -1
  171. package/assets/js/components/search/search.component.min.js.map +1 -1
  172. package/assets/js/components/slider/slider.component.js +12 -12
  173. package/assets/js/components/slider/slider.component.min.js +1 -1
  174. package/assets/js/components/slider/slider.component.min.js.map +1 -1
  175. package/assets/js/components/split-button/split-button.component.js +18 -18
  176. package/assets/js/components/split-button/split-button.component.min.js +1 -1
  177. package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
  178. package/assets/js/components/std-address-lookup/std-address-lookup.component.js +113 -113
  179. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +1 -1
  180. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  181. package/assets/js/components/table/table.component.js +15 -15
  182. package/assets/js/components/table/table.component.min.js +1 -1
  183. package/assets/js/components/table/table.component.min.js.map +1 -1
  184. package/assets/js/components/table-ajax/table-ajax.component.js +15 -15
  185. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  186. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
  187. package/assets/js/components/table-basic/table-basic.component.js +15 -15
  188. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  189. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
  190. package/assets/js/components/table-no-submit/table-no-submit.component.js +15 -15
  191. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  192. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
  193. package/assets/js/components/table-submit/table-submit.component.js +15 -15
  194. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  195. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
  196. package/assets/js/components/tabs/tabs.component.js +17 -17
  197. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  198. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  199. package/assets/js/components/tag/tag.component.js +12 -12
  200. package/assets/js/components/tag/tag.component.min.js +1 -1
  201. package/assets/js/components/tag/tag.component.min.js.map +1 -1
  202. package/assets/js/components/tooltip/tooltip.component.js +8 -8
  203. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  204. package/assets/js/components/tooltip/tooltip.component.min.js.map +1 -1
  205. package/assets/js/components/video/video.component.js +9 -9
  206. package/assets/js/components/video/video.component.min.js +1 -1
  207. package/assets/js/components/video/video.component.min.js.map +1 -1
  208. package/assets/js/components/video-card/video-card.component.js +12 -12
  209. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  210. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  211. package/assets/js/components/video-modal/video-modal.component.js +13 -13
  212. package/assets/js/components/video-modal/video-modal.component.min.js +1 -1
  213. package/assets/js/components/video-modal/video-modal.component.min.js.map +1 -1
  214. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  215. package/assets/js/modules/card.module.js +14 -14
  216. package/assets/js/modules/chart.module.js +4 -4
  217. package/assets/js/modules/integration-tests.js +3 -3
  218. package/assets/js/modules/table.js +2 -2
  219. package/assets/js/modules/videos.js +6 -6
  220. package/assets/js/scripts.bundle.js +1 -1
  221. package/assets/js/scripts.bundle.js.map +1 -1
  222. package/assets/js/scripts.bundle.min.js +1 -1
  223. package/assets/js/scripts.bundle.min.js.map +1 -1
  224. package/assets/sass/_bs_grid.scss +41 -41
  225. package/assets/sass/_bs_utilities.scss +51 -51
  226. package/assets/sass/_components.scss +162 -162
  227. package/assets/sass/_corefiles.scss +31 -31
  228. package/assets/sass/_elements.scss +30 -30
  229. package/assets/sass/_fonts.scss +28 -28
  230. package/assets/sass/_func.scss +2 -2
  231. package/assets/sass/_functions/bs_functions.scss +487 -487
  232. package/assets/sass/_functions/bs_mixins.scss +2103 -2103
  233. package/assets/sass/_functions/bs_utilities.scss +922 -922
  234. package/assets/sass/_functions/bs_variables.scss +1701 -1701
  235. package/assets/sass/_functions/functions.scss +48 -48
  236. package/assets/sass/_functions/mixins.scss +1 -1
  237. package/assets/sass/_grid.scss +320 -320
  238. package/assets/sass/_print.scss +64 -64
  239. package/assets/sass/_utilities.scss +35 -35
  240. package/assets/sass/components/actionbar.component.scss +421 -421
  241. package/assets/sass/components/actionbar.global.scss +115 -115
  242. package/assets/sass/components/address-lookup.component.scss +160 -160
  243. package/assets/sass/components/address-lookup.preload.scss +90 -90
  244. package/assets/sass/components/applied-filters.scss +19 -19
  245. package/assets/sass/components/barchart.component.scss +347 -347
  246. package/assets/sass/components/bento-grid.component.scss +109 -109
  247. package/assets/sass/components/bento-grid.global.scss +248 -248
  248. package/assets/sass/components/calendar.component.scss +1272 -1272
  249. package/assets/sass/components/calendar.config.scss +423 -423
  250. package/assets/sass/components/card.component.scss +187 -187
  251. package/assets/sass/components/card.module.scss +154 -154
  252. package/assets/sass/components/carousel.component.scss +631 -631
  253. package/assets/sass/components/carousel.config.scss +84 -84
  254. package/assets/sass/components/charts.config.scss +86 -86
  255. package/assets/sass/components/charts.module.scss +588 -588
  256. package/assets/sass/components/charts.scss +1298 -1298
  257. package/assets/sass/components/collapsible-side.scss +307 -307
  258. package/assets/sass/components/config.component.scss +235 -235
  259. package/assets/sass/components/content.component.scss +18 -18
  260. package/assets/sass/components/darkmode.component.scss +20 -20
  261. package/assets/sass/components/doughnutchart.component.scss +206 -206
  262. package/assets/sass/components/fileupload.scss +162 -162
  263. package/assets/sass/components/filter-card.component.scss +99 -99
  264. package/assets/sass/components/header.scss +251 -251
  265. package/assets/sass/components/inline-edit.preload.scss +203 -203
  266. package/assets/sass/components/inline-edit.scss +40 -40
  267. package/assets/sass/components/input-range.component.scss +46 -46
  268. package/assets/sass/components/input.component.scss +101 -101
  269. package/assets/sass/components/marketing.component.scss +65 -65
  270. package/assets/sass/components/menu.component.scss +161 -161
  271. package/assets/sass/components/menu.global.scss +82 -82
  272. package/assets/sass/components/milestone.scss +216 -216
  273. package/assets/sass/components/modal.component.scss +252 -252
  274. package/assets/sass/components/multi-step-modal.component.scss +255 -255
  275. package/assets/sass/components/multi-step-modal.global.scss +91 -91
  276. package/assets/sass/components/multi-step.component.scss +144 -144
  277. package/assets/sass/components/multiselect.preload.scss +8 -8
  278. package/assets/sass/components/multiselect.scss +238 -238
  279. package/assets/sass/components/nav.component.scss +718 -718
  280. package/assets/sass/components/nav.docs.scss +55 -55
  281. package/assets/sass/components/nav.global.scss +870 -870
  282. package/assets/sass/components/nav.preload.scss +54 -54
  283. package/assets/sass/components/notification.scss +204 -217
  284. package/assets/sass/components/pagination.scss +237 -237
  285. package/assets/sass/components/password.component.scss +55 -55
  286. package/assets/sass/components/popover.component.scss +28 -28
  287. package/assets/sass/components/property-searchbar.scss +139 -139
  288. package/assets/sass/components/rank.component.scss +275 -275
  289. package/assets/sass/components/rankings.component.scss +70 -70
  290. package/assets/sass/components/rankings.global.scss +140 -140
  291. package/assets/sass/components/rating.component.css +211 -211
  292. package/assets/sass/components/record-card.component.scss +191 -191
  293. package/assets/sass/components/slider.scss +127 -127
  294. package/assets/sass/components/snapshot.scss +65 -65
  295. package/assets/sass/components/split-button.component.scss +83 -83
  296. package/assets/sass/components/stepper.scss +157 -157
  297. package/assets/sass/components/table-basic.component.scss +136 -136
  298. package/assets/sass/components/table-basic.global.scss +676 -676
  299. package/assets/sass/components/table.component.scss +51 -51
  300. package/assets/sass/components/table.global.scss +398 -398
  301. package/assets/sass/components/tabs.component.scss +34 -34
  302. package/assets/sass/components/tabs.config.scss +258 -258
  303. package/assets/sass/components/tag.component.scss +59 -59
  304. package/assets/sass/components/tag.preload.scss +20 -20
  305. package/assets/sass/components/testimonial.scss +125 -125
  306. package/assets/sass/components/timeline.scss +92 -92
  307. package/assets/sass/components/tooltip.component.scss +148 -148
  308. package/assets/sass/components/video-card.component.scss +48 -48
  309. package/assets/sass/components/video-modal.component.scss +26 -26
  310. package/assets/sass/components/video.component.scss +74 -74
  311. package/assets/sass/components/word-count.component.scss +26 -26
  312. package/assets/sass/core.scss +4 -4
  313. package/assets/sass/elements/admin-panel.css +310 -310
  314. package/assets/sass/elements/badge-tag.css +101 -101
  315. package/assets/sass/elements/brand.css +80 -80
  316. package/assets/sass/elements/button__group.css +135 -135
  317. package/assets/sass/elements/buttons--action.css +71 -71
  318. package/assets/sass/elements/buttons--compact.css +168 -168
  319. package/assets/sass/elements/buttons--global.css +239 -239
  320. package/assets/sass/elements/buttons--secondary.css +18 -18
  321. package/assets/sass/elements/buttons--special.css +164 -164
  322. package/assets/sass/elements/buttons--tertiary.css +51 -51
  323. package/assets/sass/elements/buttons.scss +9 -9
  324. package/assets/sass/elements/code.css +45 -45
  325. package/assets/sass/elements/container.scss +118 -118
  326. package/assets/sass/elements/details.css +224 -224
  327. package/assets/sass/elements/dialog.scss +75 -75
  328. package/assets/sass/elements/dropdown.css +85 -85
  329. package/assets/sass/elements/feature.css +174 -174
  330. package/assets/sass/elements/forms.scss +1337 -1337
  331. package/assets/sass/elements/highlight.css +76 -76
  332. package/assets/sass/elements/hr.css +41 -41
  333. package/assets/sass/elements/icons.css +48 -48
  334. package/assets/sass/elements/input.scss +212 -212
  335. package/assets/sass/elements/label.css +20 -20
  336. package/assets/sass/elements/links--collapsible-side.scss +129 -129
  337. package/assets/sass/elements/links--global.scss +155 -155
  338. package/assets/sass/elements/links--video.scss +73 -73
  339. package/assets/sass/elements/links.scss +4 -4
  340. package/assets/sass/elements/lists--breadcrumbs.scss +26 -26
  341. package/assets/sass/elements/lists--steps.css +171 -171
  342. package/assets/sass/elements/lists--tick-list.scss +112 -112
  343. package/assets/sass/elements/lists.scss +99 -99
  344. package/assets/sass/elements/media.css +20 -20
  345. package/assets/sass/elements/modal.scss +411 -411
  346. package/assets/sass/elements/popover.scss +259 -259
  347. package/assets/sass/elements/prefix.scss +139 -139
  348. package/assets/sass/elements/progress.scss +208 -208
  349. package/assets/sass/elements/table.element.scss +144 -144
  350. package/assets/sass/elements/textarea.css +84 -84
  351. package/assets/sass/elements/toggle-button.css +49 -49
  352. package/assets/sass/elements/tooltips.scss +152 -152
  353. package/assets/sass/elements/type.css +166 -166
  354. package/assets/sass/email.scss +68 -68
  355. package/assets/sass/error.scss +31 -31
  356. package/assets/sass/foundations/animations.scss +2 -2
  357. package/assets/sass/foundations/colours.scss +104 -104
  358. package/assets/sass/foundations/reboot.scss +166 -166
  359. package/assets/sass/foundations/root.scss +269 -269
  360. package/assets/sass/main.scss +7 -7
  361. package/assets/sass/templates/auth.scss +106 -106
  362. package/assets/sass/templates/form.scss +95 -95
  363. package/assets/sass/utilities/align.css +24 -24
  364. package/assets/sass/utilities/border.css +65 -65
  365. package/assets/sass/utilities/clearfix.css +8 -8
  366. package/assets/sass/utilities/colours.scss +43 -43
  367. package/assets/sass/utilities/columns.css +61 -61
  368. package/assets/sass/utilities/display.scss +89 -89
  369. package/assets/sass/utilities/fixed.css +16 -16
  370. package/assets/sass/utilities/flex.scss +291 -291
  371. package/assets/sass/utilities/font-awesome-iso-fallbacks.css +43 -43
  372. package/assets/sass/utilities/gap.css +25 -25
  373. package/assets/sass/utilities/gradients.css +39 -39
  374. package/assets/sass/utilities/js-display.css +12 -12
  375. package/assets/sass/utilities/line-clamp.css +24 -24
  376. package/assets/sass/utilities/margins.scss +74 -74
  377. package/assets/sass/utilities/max-height.scss +93 -93
  378. package/assets/sass/utilities/opacity.css +20 -20
  379. package/assets/sass/utilities/order.css +104 -104
  380. package/assets/sass/utilities/overflow.css +16 -16
  381. package/assets/sass/utilities/paddings.scss +33 -33
  382. package/assets/sass/utilities/pointer-events.css +8 -8
  383. package/assets/sass/utilities/position.css +67 -67
  384. package/assets/sass/utilities/ratio.css +33 -33
  385. package/assets/sass/utilities/rounded.css +56 -56
  386. package/assets/sass/utilities/shadow.css +6 -6
  387. package/assets/sass/utilities/sizes.css +92 -92
  388. package/assets/sass/utilities/sticky.css +38 -38
  389. package/assets/sass/utilities/text-truncate.css +6 -6
  390. package/assets/sass/utilities/text.css +190 -190
  391. package/assets/sass/utilities/visible.css +8 -8
  392. package/assets/sass/utilities/visually-hidden.css +13 -13
  393. package/assets/sass/utilities/wider-colours.scss +8 -8
  394. package/assets/svg/illustrations/table.svg +165 -165
  395. package/assets/svg/logo.svg +56 -56
  396. package/assets/ts/components/accordion/accordion.component.ts +77 -77
  397. package/assets/ts/components/actionbar/actionbar.component.ts +567 -567
  398. package/assets/ts/components/address-lookup/address-lookup.component.ts +672 -672
  399. package/assets/ts/components/advanced-select/advanced-select.component.ts +116 -116
  400. package/assets/ts/components/applied-filters/applied-filters.component.ts +37 -37
  401. package/assets/ts/components/bento-grid/bento-grid.component.ts +88 -88
  402. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +165 -165
  403. package/assets/ts/components/config/config.component.ts +699 -699
  404. package/assets/ts/components/content/content.component.ts +78 -78
  405. package/assets/ts/components/darkmode/darkmode.component.ts +108 -108
  406. package/assets/ts/components/fileupload/fileupload.component.ts +74 -74
  407. package/assets/ts/components/filter-card/filter-card.component.ts +106 -106
  408. package/assets/ts/components/form/form.component.ts +102 -102
  409. package/assets/ts/components/header/header.component.ts +97 -97
  410. package/assets/ts/components/inline-edit/inline-edit.component.ts +212 -212
  411. package/assets/ts/components/input/input.component.ts +278 -278
  412. package/assets/ts/components/input-range/input-range.component.ts +78 -78
  413. package/assets/ts/components/marketing/marketing.component.ts +44 -44
  414. package/assets/ts/components/menu/menu.component.ts +212 -212
  415. package/assets/ts/components/modal/modal.component.ts +184 -184
  416. package/assets/ts/components/multi-step-modal/multi-step-modal.component.ts +304 -304
  417. package/assets/ts/components/multiselect/multiselect.component.ts +349 -349
  418. package/assets/ts/components/nav/nav.component.ts +369 -369
  419. package/assets/ts/components/notification/notification.component.ts +173 -172
  420. package/assets/ts/components/pagination/pagination.component.ts +213 -213
  421. package/assets/ts/components/password/password.component.ts +118 -118
  422. package/assets/ts/components/popover/popover.component.ts +50 -50
  423. package/assets/ts/components/rank/rank.component.ts +394 -394
  424. package/assets/ts/components/rankings/rankings.component.ts +79 -79
  425. package/assets/ts/components/rating/rating.component.ts +86 -86
  426. package/assets/ts/components/search/search.component.ts +244 -244
  427. package/assets/ts/components/slider/slider.component.ts +170 -170
  428. package/assets/ts/components/split-button/split-button.component.ts +63 -63
  429. package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +1919 -1919
  430. package/assets/ts/components/table/table.component.ts +94 -94
  431. package/assets/ts/components/table-ajax/table-ajax.component.ts +70 -70
  432. package/assets/ts/components/table-basic/table-basic.component.ts +56 -56
  433. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +130 -130
  434. package/assets/ts/components/table-submit/table-submit.component.ts +71 -71
  435. package/assets/ts/components/tabs/tabs.component.ts +70 -70
  436. package/assets/ts/components/tag/tag.component.ts +104 -104
  437. package/assets/ts/components/tooltip/tooltip.component.ts +98 -98
  438. package/assets/ts/components/video/video.component.ts +74 -74
  439. package/assets/ts/components/video-card/video-card.component.ts +129 -129
  440. package/assets/ts/components/video-modal/video-modal.component.ts +88 -88
  441. package/assets/ts/modules/advanced-select.ts +186 -186
  442. package/assets/ts/modules/applied-filters.ts +238 -238
  443. package/assets/ts/modules/card.module.ts +46 -46
  444. package/assets/ts/modules/chart.module.ts +594 -594
  445. package/assets/ts/modules/data-layer.md +71 -71
  446. package/assets/ts/modules/dialogs.ts +259 -259
  447. package/assets/ts/modules/dropdown.ts +216 -216
  448. package/assets/ts/modules/helper.test.ts +143 -143
  449. package/assets/ts/modules/helpers.ts +212 -212
  450. package/assets/ts/modules/integration-tests.ts +525 -525
  451. package/assets/ts/modules/modal.ts +45 -45
  452. package/assets/ts/modules/password.ts +82 -82
  453. package/assets/ts/modules/table.ts +1500 -1500
  454. package/assets/ts/modules/test.ts +22 -22
  455. package/assets/ts/modules/videos.ts +233 -233
  456. package/assets/ts/scripts.ts +111 -111
  457. package/dist/components.es.js +24 -24
  458. package/dist/components.umd.js +3 -2
  459. package/package.json +115 -115
  460. package/src/components/AdvancedSelect/AdvancedSelect.vue +28 -28
  461. package/src/components/Config/Config.vue +23 -23
  462. package/src/components/DarkMode/DarkMode.vue +19 -19
  463. package/src/components/Filterlist/Filterlist.vue +23 -23
  464. package/src/components/Form/Form.vue +22 -22
  465. package/src/components/Header/Header.vue +36 -36
  466. package/src/components/Input/Input.vue +22 -22
  467. package/src/components/InputRange/InputRange.vue +22 -22
  468. package/src/components/Modal/Modal.vue +22 -22
  469. package/src/components/MultiStepModal/MultiStepModal.vue +23 -23
  470. package/src/components/NoteFeed/NoteFeed.vue +82 -82
  471. package/src/components/Password/Password.vue +23 -23
  472. package/src/components/Popover/Popover.vue +22 -22
  473. package/src/components/PropertySearchbar/PropertySearchbar.vue +235 -235
  474. package/src/components/PropertySearchbar/README.md +25 -25
  475. package/src/components/Rating/Rating.vue +22 -22
  476. package/src/components/STDAddressLookup/STDAddressLookup.vue +22 -22
  477. package/src/components/Snapshot/Snapshot.vue +30 -30
  478. package/src/components/Tag/Tag.vue +22 -22
  479. package/src/components/Tooltip/Tooltip.vue +22 -22
  480. package/src/components/Video/Video.vue +22 -22
  481. package/src/components/VideoModal/VideoModal.vue +22 -22
  482. package/assets/bootstrap/dist/css/bootstrap-grid.css +0 -4124
  483. package/assets/bootstrap/dist/css/bootstrap-grid.css.map +0 -1
  484. package/assets/bootstrap/dist/css/bootstrap-grid.min.css +0 -7
  485. package/assets/bootstrap/dist/css/bootstrap-grid.min.css.map +0 -1
  486. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.css +0 -4123
  487. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.css.map +0 -1
  488. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.min.css +0 -7
  489. package/assets/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map +0 -1
  490. package/assets/bootstrap/dist/css/bootstrap-reboot.css +0 -488
  491. package/assets/bootstrap/dist/css/bootstrap-reboot.css.map +0 -1
  492. package/assets/bootstrap/dist/css/bootstrap-reboot.min.css +0 -7
  493. package/assets/bootstrap/dist/css/bootstrap-reboot.min.css.map +0 -1
  494. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.css +0 -485
  495. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.css.map +0 -1
  496. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.min.css +0 -7
  497. package/assets/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map +0 -1
  498. package/assets/bootstrap/dist/css/bootstrap-utilities.css +0 -4197
  499. package/assets/bootstrap/dist/css/bootstrap-utilities.css.map +0 -1
  500. package/assets/bootstrap/dist/css/bootstrap-utilities.min.css +0 -7
  501. package/assets/bootstrap/dist/css/bootstrap-utilities.min.css.map +0 -1
  502. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.css +0 -4188
  503. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.css.map +0 -1
  504. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.min.css +0 -7
  505. package/assets/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map +0 -1
  506. package/assets/bootstrap/dist/css/bootstrap.css +0 -10907
  507. package/assets/bootstrap/dist/css/bootstrap.css.map +0 -1
  508. package/assets/bootstrap/dist/css/bootstrap.min.css +0 -7
  509. package/assets/bootstrap/dist/css/bootstrap.min.css.map +0 -1
  510. package/assets/bootstrap/dist/css/bootstrap.rtl.css +0 -10867
  511. package/assets/bootstrap/dist/css/bootstrap.rtl.css.map +0 -1
  512. package/assets/bootstrap/dist/css/bootstrap.rtl.min.css +0 -7
  513. package/assets/bootstrap/dist/css/bootstrap.rtl.min.css.map +0 -1
  514. package/assets/bootstrap/dist/js/bootstrap.bundle.js +0 -7066
  515. package/assets/bootstrap/dist/js/bootstrap.bundle.js.map +0 -1
  516. package/assets/bootstrap/dist/js/bootstrap.bundle.min.js +0 -7
  517. package/assets/bootstrap/dist/js/bootstrap.bundle.min.js.map +0 -1
  518. package/assets/bootstrap/dist/js/bootstrap.esm.js +0 -5204
  519. package/assets/bootstrap/dist/js/bootstrap.esm.js.map +0 -1
  520. package/assets/bootstrap/dist/js/bootstrap.esm.min.js +0 -7
  521. package/assets/bootstrap/dist/js/bootstrap.esm.min.js.map +0 -1
  522. package/assets/bootstrap/dist/js/bootstrap.js +0 -5251
  523. package/assets/bootstrap/dist/js/bootstrap.js.map +0 -1
  524. package/assets/bootstrap/dist/js/bootstrap.min.js +0 -7
  525. package/assets/bootstrap/dist/js/bootstrap.min.js.map +0 -1
  526. package/assets/bootstrap/js/dist/alert.js +0 -100
  527. package/assets/bootstrap/js/dist/alert.js.map +0 -1
  528. package/assets/bootstrap/js/dist/base-component.js +0 -100
  529. package/assets/bootstrap/js/dist/base-component.js.map +0 -1
  530. package/assets/bootstrap/js/dist/button.js +0 -82
  531. package/assets/bootstrap/js/dist/button.js.map +0 -1
  532. package/assets/bootstrap/js/dist/carousel.js +0 -471
  533. package/assets/bootstrap/js/dist/carousel.js.map +0 -1
  534. package/assets/bootstrap/js/dist/collapse.js +0 -311
  535. package/assets/bootstrap/js/dist/collapse.js.map +0 -1
  536. package/assets/bootstrap/js/dist/dom/data.js +0 -67
  537. package/assets/bootstrap/js/dist/dom/data.js.map +0 -1
  538. package/assets/bootstrap/js/dist/dom/event-handler.js +0 -284
  539. package/assets/bootstrap/js/dist/dom/event-handler.js.map +0 -1
  540. package/assets/bootstrap/js/dist/dom/manipulator.js +0 -85
  541. package/assets/bootstrap/js/dist/dom/manipulator.js.map +0 -1
  542. package/assets/bootstrap/js/dist/dom/selector-engine.js +0 -86
  543. package/assets/bootstrap/js/dist/dom/selector-engine.js.map +0 -1
  544. package/assets/bootstrap/js/dist/dropdown.js +0 -471
  545. package/assets/bootstrap/js/dist/dropdown.js.map +0 -1
  546. package/assets/bootstrap/js/dist/modal.js +0 -397
  547. package/assets/bootstrap/js/dist/modal.js.map +0 -1
  548. package/assets/bootstrap/js/dist/offcanvas.js +0 -298
  549. package/assets/bootstrap/js/dist/offcanvas.js.map +0 -1
  550. package/assets/bootstrap/js/dist/popover.js +0 -102
  551. package/assets/bootstrap/js/dist/popover.js.map +0 -1
  552. package/assets/bootstrap/js/dist/scrollspy.js +0 -308
  553. package/assets/bootstrap/js/dist/scrollspy.js.map +0 -1
  554. package/assets/bootstrap/js/dist/tab.js +0 -334
  555. package/assets/bootstrap/js/dist/tab.js.map +0 -1
  556. package/assets/bootstrap/js/dist/toast.js +0 -237
  557. package/assets/bootstrap/js/dist/toast.js.map +0 -1
  558. package/assets/bootstrap/js/dist/tooltip.js +0 -663
  559. package/assets/bootstrap/js/dist/tooltip.js.map +0 -1
  560. package/assets/bootstrap/js/dist/util/backdrop.js +0 -166
  561. package/assets/bootstrap/js/dist/util/backdrop.js.map +0 -1
  562. package/assets/bootstrap/js/dist/util/component-functions.js +0 -47
  563. package/assets/bootstrap/js/dist/util/component-functions.js.map +0 -1
  564. package/assets/bootstrap/js/dist/util/config.js +0 -80
  565. package/assets/bootstrap/js/dist/util/config.js.map +0 -1
  566. package/assets/bootstrap/js/dist/util/focustrap.js +0 -130
  567. package/assets/bootstrap/js/dist/util/focustrap.js.map +0 -1
  568. package/assets/bootstrap/js/dist/util/index.js +0 -351
  569. package/assets/bootstrap/js/dist/util/index.js.map +0 -1
  570. package/assets/bootstrap/js/dist/util/sanitizer.js +0 -123
  571. package/assets/bootstrap/js/dist/util/sanitizer.js.map +0 -1
  572. package/assets/bootstrap/js/dist/util/scrollbar.js +0 -139
  573. package/assets/bootstrap/js/dist/util/scrollbar.js.map +0 -1
  574. package/assets/bootstrap/js/dist/util/swipe.js +0 -156
  575. package/assets/bootstrap/js/dist/util/swipe.js.map +0 -1
  576. package/assets/bootstrap/js/dist/util/template-factory.js +0 -178
  577. package/assets/bootstrap/js/dist/util/template-factory.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"notification.component.min.js","sources":["../../modules/notification.js","../_global.js","notification.component.js"],"sourcesContent":["function setupNotification(element) {\n // Add toast to notification holder\n if (element.hasAttribute('data-type') && element.getAttribute('data-type') == 'toast') {\n let holder = document.querySelector('.notification__holder');\n if (!holder) {\n holder = document.createElement('div');\n holder.classList.add('notification__holder');\n holder.classList.add('container');\n document.querySelector('body').appendChild(holder);\n }\n if (!element.closest('.notification__holder'))\n holder.appendChild(element);\n }\n element.setAttribute('role', 'alert');\n // Create a dissmissable button\n element.addEventListener('click', function (e) {\n if (event &&\n event.target instanceof HTMLElement &&\n (event.target.closest('[data-dismiss-button]') || event.target.matches('[data-dismiss-button]'))) {\n e.preventDefault();\n closeNotification(element);\n }\n }, false);\n // Self disappearing alert\n if (element.hasAttribute('data-timeout')) {\n const timeOut = element.getAttribute('data-timeout');\n const timer = new Timer(function () {\n closeNotification(element);\n }, timeOut);\n element.addEventListener('mouseenter', () => {\n timer.pause();\n });\n element.addEventListener('mouseleave', () => {\n timer.resume();\n });\n }\n}\nfunction Timer(callback, delay) {\n let timerId, start, remaining = delay;\n this.pause = function () {\n window.clearTimeout(timerId);\n remaining -= new Date() - start;\n };\n this.resume = function () {\n start = new Date();\n window.clearTimeout(timerId);\n timerId = window.setTimeout(callback, remaining);\n };\n this.resume();\n}\nexport const closeNotification = function (element) {\n element.classList.add('d-none');\n};\nexport default setupNotification;\n","export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import setupNotification, { closeNotification } from '../../modules/notification';\nimport { trackComponent, trackComponentRegistered } from '../_global';\ntrackComponentRegistered('iam-notification');\nclass iamNotification extends HTMLElement {\n constructor() {\n super();\n this.addColour = (component, status) => {\n if (component.hasAttribute('data-type'))\n component.classList.add(`bg-${status}`);\n else\n component.classList.add(`colour-${status}`);\n };\n this.addIcon = (component, status) => {\n switch (status) {\n case 'danger':\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-circle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n case 'warning':\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-triangle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n case 'success':\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-check-circle\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n default:\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\" slot=\"icon\"></i>');\n }\n };\n this.addDismissBtn = (component) => {\n var _a;\n (_a = component.shadowRoot.querySelector('.notification__dismiss')) === null || _a === void 0 ? void 0 : _a.innerHTML = `<button data-dismiss-button part=\"dismiss-btn\">Dismiss</button>`;\n component.shadowRoot.querySelector('.notification__dismiss [data-dismiss-button]').addEventListener('click', function () {\n closeNotification(component);\n const customEvent = new CustomEvent('dismiss', {\n detail: {\n class: component.classList,\n },\n });\n component.dispatchEvent(customEvent);\n }, false);\n };\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/notification.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/notification.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\r\n <style>\r\n ${loadCSS}\r\n ${this.hasAttribute('data-css') ? `${this.getAttribute('data-css')}` : ``}\r\n </style>\r\n\r\n <div class=\"notification\">\r\n <div class=\"notification__icon\"><slot name=\"icon\"></slot></div>\r\n <div class=\"notification__inner\"><div class=\"notification__text\"><slot></slot></div><div class=\"notification__btns\"><slot name=\"btns\"></slot></div></div>\r\n <div class=\"notification__dismiss\"></div>\r\n </div>\r\n \r\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('notificationHolder'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"notificationHolder\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n var _a, _b, _c, _d;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const wrapper = this;\n const defaultStatusBG = this.hasAttribute('data-type') ? 'white' : 'info';\n const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : defaultStatusBG;\n this.addColour(this, statusBG);\n if (!this.querySelector('i')) {\n this.addIcon(this, statusBG);\n }\n const buttons = this.querySelectorAll('a,button');\n Array.from(buttons).forEach((button) => {\n button.setAttribute('slot', 'btns');\n button.classList.add('link');\n });\n if (buttons.length || this.hasAttribute('data-dismiss')) {\n this.classList.add('notification--dismissable');\n }\n if (!buttons.length) {\n (_b = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.notification__btns')) === null || _b === void 0 ? void 0 : _b.classList.add('empty');\n }\n else {\n (_d = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.notification__btns')) === null || _d === void 0 ? void 0 : _d.classList.remove('empty');\n }\n if (this.hasAttribute('data-dismiss')) {\n this.addDismissBtn(this);\n }\n setupNotification(this);\n trackComponent(this, 'iam-notification', ['dismiss']);\n }\n static get observedAttributes() {\n return ['data-status', 'data-dismiss'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n var _a, _b;\n switch (attrName) {\n case 'data-status': {\n if (oldVal != newVal) {\n this.classList.remove('bg-danger');\n this.classList.remove('bg-warning');\n this.classList.remove('bg-success');\n this.classList.remove('bg-white');\n (_a = this.querySelector('i')) === null || _a === void 0 ? void 0 : _a.remove();\n this.addColour(this, newVal);\n this.addIcon(this, newVal);\n }\n break;\n }\n case 'data-dismiss': {\n if (oldVal != newVal) {\n if (this.hasAttribute('data-dismiss')) {\n this.addDismissBtn(this);\n }\n else {\n (_b = this.shadowRoot.querySelector('.notification__dismiss')) === null || _b === void 0 ? void 0 : _b.innerHTML = '';\n }\n }\n break;\n }\n }\n }\n}\nexport default iamNotification;\n"],"names":["setupNotification","element","holder","e","closeNotification","timeOut","timer","Timer","callback","delay","timerId","start","remaining","trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","iamNotification","status","_a","customEvent","template","_b","_c","_d","defaultStatusBG","statusBG","buttons","button","attrName","oldVal","newVal"],"mappings":"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"}
1
+ {"version":3,"file":"notification.component.min.js","sources":["../../modules/notification.js","../_global.js","notification.component.js"],"sourcesContent":["function setupNotification(element) {\n // Add toast to notification holder\n if (element.hasAttribute('data-type') && element.getAttribute('data-type') == 'toast') {\n let holder = document.querySelector('.notification__holder');\n if (!holder) {\n holder = document.createElement('div');\n holder.classList.add('notification__holder');\n holder.classList.add('container');\n document.querySelector('body').appendChild(holder);\n }\n if (!element.closest('.notification__holder'))\n holder.appendChild(element);\n }\n element.setAttribute('role', 'alert');\n // Create a dissmissable button\n element.addEventListener('click', function (e) {\n if (event &&\n event.target instanceof HTMLElement &&\n (event.target.closest('[data-dismiss-button]') || event.target.matches('[data-dismiss-button]'))) {\n e.preventDefault();\n closeNotification(element);\n }\n }, false);\n // Self disappearing alert\n if (element.hasAttribute('data-timeout')) {\n const timeOut = element.getAttribute('data-timeout');\n const timer = new Timer(function () {\n closeNotification(element);\n }, timeOut);\n element.addEventListener('mouseenter', () => {\n timer.pause();\n });\n element.addEventListener('mouseleave', () => {\n timer.resume();\n });\n }\n}\nfunction Timer(callback, delay) {\n let timerId, start, remaining = delay;\n this.pause = function () {\n window.clearTimeout(timerId);\n remaining -= new Date() - start;\n };\n this.resume = function () {\n start = new Date();\n window.clearTimeout(timerId);\n timerId = window.setTimeout(callback, remaining);\n };\n this.resume();\n}\nexport const closeNotification = function (element) {\n element.classList.add('d-none');\n};\nexport default setupNotification;\n","export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import setupNotification, { closeNotification } from '../../modules/notification';\nimport { trackComponent, trackComponentRegistered } from '../_global';\ntrackComponentRegistered('iam-notification');\nclass iamNotification extends HTMLElement {\n constructor() {\n super();\n this.addColour = (component, status) => {\n if (component.hasAttribute('data-type'))\n component.classList.add(`bg-${status}`);\n else\n component.classList.add(`colour-${status}`);\n };\n this.addIcon = (component, status) => {\n switch (status) {\n case 'danger':\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-circle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n case 'warning':\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-triangle-exclamation\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n case 'success':\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-check-circle\" aria-hidden=\"true\" slot=\"icon\"></i>');\n break;\n default:\n component.insertAdjacentHTML('beforeend', '<i class=\"fa-solid fa-circle-info\" aria-hidden=\"true\" slot=\"icon\"></i>');\n }\n };\n this.addDismissBtn = (component) => {\n var _a;\n (_a = component.shadowRoot.querySelector('.notification__dismiss')) === null || _a === void 0 ? void 0 : _a.innerHTML = `<button data-dismiss-button part=\"dismiss-btn\" class=\"btn btn-secondary btn-compact fa-xmark\">Dismiss</button>`;\n component.shadowRoot.querySelector('.notification__dismiss [data-dismiss-button]').addEventListener('click', function () {\n closeNotification(component);\n const customEvent = new CustomEvent('dismiss', {\n detail: {\n class: component.classList,\n },\n });\n component.dispatchEvent(customEvent);\n }, false);\n };\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/notification.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/notification.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n ${this.hasAttribute('data-css') ? `${this.getAttribute('data-css')}` : ``}\n </style>\n\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n <div class=\"notification\">\n <div class=\"notification__icon\"><slot name=\"icon\"></slot></div>\n <div class=\"notification__inner\"><div class=\"notification__text\"><slot></slot></div><div class=\"notification__btns\"><slot name=\"btns\"></slot></div></div>\n <div class=\"notification__dismiss\"></div>\n </div>\n \n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('notificationHolder'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"notificationHolder\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n var _a, _b, _c, _d;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const wrapper = this;\n const defaultStatusBG = this.hasAttribute('data-type') ? 'white' : 'info';\n const statusBG = this.hasAttribute('data-status') ? this.getAttribute('data-status') : defaultStatusBG;\n this.addColour(this, statusBG);\n if (!this.querySelector('i')) {\n this.addIcon(this, statusBG);\n }\n const buttons = this.querySelectorAll('a,button');\n Array.from(buttons).forEach((button) => {\n button.setAttribute('slot', 'btns');\n button.classList.add('link');\n });\n if (buttons.length || this.hasAttribute('data-dismiss')) {\n this.classList.add('notification--dismissable');\n }\n if (!buttons.length) {\n (_b = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.notification__btns')) === null || _b === void 0 ? void 0 : _b.classList.add('empty');\n }\n else {\n (_d = (_c = this.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.notification__btns')) === null || _d === void 0 ? void 0 : _d.classList.remove('empty');\n }\n if (this.hasAttribute('data-dismiss')) {\n this.addDismissBtn(this);\n }\n setupNotification(this);\n trackComponent(this, 'iam-notification', ['dismiss']);\n }\n static get observedAttributes() {\n return ['data-status', 'data-dismiss'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n var _a, _b;\n switch (attrName) {\n case 'data-status': {\n if (oldVal != newVal) {\n this.classList.remove('bg-danger');\n this.classList.remove('bg-warning');\n this.classList.remove('bg-success');\n this.classList.remove('bg-white');\n (_a = this.querySelector('i')) === null || _a === void 0 ? void 0 : _a.remove();\n this.addColour(this, newVal);\n this.addIcon(this, newVal);\n }\n break;\n }\n case 'data-dismiss': {\n if (oldVal != newVal) {\n if (this.hasAttribute('data-dismiss')) {\n this.addDismissBtn(this);\n }\n else {\n (_b = this.shadowRoot.querySelector('.notification__dismiss')) === null || _b === void 0 ? void 0 : _b.innerHTML = '';\n }\n }\n break;\n }\n }\n }\n}\nexport default iamNotification;\n"],"names":["setupNotification","element","holder","e","closeNotification","timeOut","timer","Timer","callback","delay","timerId","start","remaining","trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","iamNotification","status","_a","customEvent","template","_b","_c","_d","defaultStatusBG","statusBG","buttons","button","attrName","oldVal","newVal"],"mappings":"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"}
@@ -7,42 +7,42 @@ class iamPagination extends HTMLElement {
7
7
  : '/assets';
8
8
  const loadCSS = `@import "${assetLocation}/css/components/pagination.css";`;
9
9
  const template = document.createElement('template');
10
- template.innerHTML = `
11
- <style>
12
- ${loadCSS}
13
-
14
- ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
15
- </style>
16
- <link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
17
- <div class="pagination d-none">
18
-
19
- <div class="minimal" part="minimal">
20
- <div class="page-jump">
21
- <div><select class="select--minimal"></select></div>
22
- <span class="total-pages"></span>
23
- </div>
24
-
25
- <button class="prev" disabled>Prev</button>
26
- <button class="next" disabled>Next</button>
27
- </div>
28
-
29
- <div class="item-count" part="item-count"></div>
30
- <div class="per-page" part="per-page">
31
- <div>
32
- <select class="select--minimal">
33
- <option value="15">15</option>
34
- <option value="25">25</option>
35
- <option value="40">40</option>
36
- <option value="50">50</option>
37
- </select>
38
- </div>
39
- <span> / page</span>
40
- </div>
41
- <div class="mobile-controls m-auto text-center">
42
- <i class="fa-solid fa-spinner fa-spin"></i>
43
- <button class="load-more btn btn-primary m-auto">Load more</a>
44
- </div>
45
- </div>
10
+ template.innerHTML = `
11
+ <style>
12
+ ${loadCSS}
13
+
14
+ ${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
15
+ </style>
16
+ <link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
17
+ <div class="pagination d-none">
18
+
19
+ <div class="minimal" part="minimal">
20
+ <div class="page-jump">
21
+ <div><select class="select--minimal"></select></div>
22
+ <span class="total-pages"></span>
23
+ </div>
24
+
25
+ <button class="prev" disabled>Prev</button>
26
+ <button class="next" disabled>Next</button>
27
+ </div>
28
+
29
+ <div class="item-count" part="item-count"></div>
30
+ <div class="per-page" part="per-page">
31
+ <div>
32
+ <select class="select--minimal">
33
+ <option value="15">15</option>
34
+ <option value="25">25</option>
35
+ <option value="40">40</option>
36
+ <option value="50">50</option>
37
+ </select>
38
+ </div>
39
+ <span> / page</span>
40
+ </div>
41
+ <div class="mobile-controls m-auto text-center">
42
+ <i class="fa-solid fa-spinner fa-spin"></i>
43
+ <button class="load-more btn btn-primary m-auto">Load more</a>
44
+ </div>
45
+ </div>
46
46
  `;
47
47
  this.shadowRoot.appendChild(template.content.cloneNode(true));
48
48
  }
@@ -136,9 +136,9 @@ class iamPagination extends HTMLElement {
136
136
  const defaultValues = [15, 25, 40, 50];
137
137
  // Update the per page options if needed
138
138
  if (increment && perPage.value != increment && !defaultValues.includes(increment)) {
139
- perPage.innerHTML = `<option value="${increment}">${increment}</option>
140
- <option value="${increment * 2}">${increment * 2}</option>
141
- <option value="${increment * 3}">${increment * 3}</option>
139
+ perPage.innerHTML = `<option value="${increment}">${increment}</option>
140
+ <option value="${increment * 2}">${increment * 2}</option>
141
+ <option value="${increment * 3}">${increment * 3}</option>
142
142
  <option value="${increment * 4}">${increment * 4}</option>`;
143
143
  }
144
144
  perPage.value = increment;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta6
2
+ * iamKey v7.7.1--beta7
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */class v extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
5
5
  <style>
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.component.min.js","sources":["pagination.component.js"],"sourcesContent":["class iamPagination extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/pagination.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\r\n <style>\r\n ${loadCSS}\r\n \r\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\r\n </style>\r\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\r\n <div class=\"pagination d-none\">\r\n \r\n <div class=\"minimal\" part=\"minimal\">\r\n <div class=\"page-jump\">\r\n <div><select class=\"select--minimal\"></select></div>\r\n <span class=\"total-pages\"></span>\r\n </div>\r\n \r\n <button class=\"prev\" disabled>Prev</button>\r\n <button class=\"next\" disabled>Next</button>\r\n </div>\r\n\r\n <div class=\"item-count\" part=\"item-count\"></div>\r\n <div class=\"per-page\" part=\"per-page\">\r\n <div>\r\n <select class=\"select--minimal\">\r\n <option value=\"15\">15</option>\r\n <option value=\"25\">25</option>\r\n <option value=\"40\">40</option>\r\n <option value=\"50\">50</option>\r\n </select>\r\n </div>\r\n <span> / page</span>\r\n </div>\r\n <div class=\"mobile-controls m-auto text-center\">\r\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\r\n <button class=\"load-more btn btn-primary m-auto\">Load more</a>\r\n </div>\r\n </div>\r\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // Set default attributes\n const params = new URLSearchParams(window.location.search);\n if (!this.hasAttribute('data-total'))\n this.setAttribute('data-total', 15);\n if (!this.hasAttribute('data-page'))\n this.setAttribute('data-page', params.has('page') ? params.get('page') : 1);\n if (!this.hasAttribute('data-show'))\n this.setAttribute('data-show', params.has('show') ? params.get('show') : 15);\n if (!this.hasAttribute('data-increment'))\n this.setAttribute('data-increment', this.getAttribute('data-show'));\n // Elements\n const select = this.shadowRoot.querySelector('.page-jump select');\n const prev = this.shadowRoot.querySelector('.prev');\n const next = this.shadowRoot.querySelector('.next');\n const perPage = this.shadowRoot.querySelector('.per-page select');\n const loadMore = this.shadowRoot.querySelector('.load-more');\n // Add the select inputs, enable or disable buttons, update the helper text\n this.setup();\n // Select on change will update the data-page attr which will dispatch an event\n select.addEventListener('change', (event) => {\n this.setAttribute('data-show', this.getAttribute('data-increment'));\n this.setAttribute('data-page', event.target.value);\n });\n // Next and previous buttons will simply trigger and on change on the select which in turn will dispatch an event\n next.addEventListener('click', () => {\n console.log(parseInt(this.getAttribute('data-page')));\n this.setAttribute('data-page', parseInt(this.getAttribute('data-page')) + 1);\n });\n prev.addEventListener('click', () => {\n this.setAttribute('data-page', parseInt(this.getAttribute('data-page')) - 1);\n });\n // Update how many is shown\n perPage.addEventListener('change', (event) => {\n this.setAttribute('data-increment', event.target.value);\n });\n // Load more button\n const increment = parseInt(this.getAttribute('data-increment'));\n const show = parseInt(this.getAttribute('data-show'));\n if (show >= parseInt(this.getAttribute('data-total'))) {\n loadMore.remove();\n }\n loadMore.addEventListener('click', () => {\n const newValue = show + increment;\n this.setAttribute('data-show', newValue);\n if (newValue > parseInt(this.getAttribute('data-total'))) {\n loadMore.remove();\n }\n });\n }\n setup() {\n // Elements\n const wrapper = this.shadowRoot.querySelector('.pagination');\n const select = this.shadowRoot.querySelector('.page-jump select');\n const prev = this.shadowRoot.querySelector('.prev');\n const next = this.shadowRoot.querySelector('.next');\n const itemCount = this.shadowRoot.querySelector('.item-count');\n const perPage = this.shadowRoot.querySelector('.per-page select');\n const totalPages = this.shadowRoot.querySelector('.total-pages');\n // Values\n const currentPage = parseInt(this.getAttribute('data-page'));\n const total = parseInt(this.getAttribute('data-total'));\n const show = parseInt(this.getAttribute('data-show'));\n const increment = parseInt(this.getAttribute('data-increment'));\n const numberPages = Math.ceil(total / increment);\n if (total > show)\n wrapper.classList.remove('d-none');\n // Populate the select input with the number of pages\n let strOptions = '';\n for (let i = 1; i <= numberPages; i++) {\n strOptions += `<option value=\"${i}\" ${i == currentPage ? 'selected' : ''}>${i}</option>`;\n }\n select.innerHTML = strOptions;\n totalPages.innerHTML = `of ${numberPages}`;\n // Next button\n if (currentPage == numberPages)\n next.setAttribute('disabled', 'disabled');\n else\n next.removeAttribute('disabled');\n if (currentPage == 1)\n prev.setAttribute('disabled', 'disabled');\n else\n prev.removeAttribute('disabled');\n // Update the item count text\n const startPoint = currentPage == 1 ? 1 : (currentPage - 1) * show + 1;\n const endPoint = currentPage == 1 ? show : currentPage * show;\n itemCount.innerHTML = `${startPoint} - ${endPoint > total ? total : endPoint} of ${total} items`;\n const defaultValues = [15, 25, 40, 50];\n // Update the per page options if needed\n if (increment && perPage.value != increment && !defaultValues.includes(increment)) {\n perPage.innerHTML = `<option value=\"${increment}\">${increment}</option>\r\n <option value=\"${increment * 2}\">${increment * 2}</option>\r\n <option value=\"${increment * 3}\">${increment * 3}</option>\r\n <option value=\"${increment * 4}\">${increment * 4}</option>`;\n }\n perPage.value = increment;\n }\n static get observedAttributes() {\n return ['data-total', 'data-increment', 'data-page', 'data-show'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-total': {\n if (oldVal != newVal) {\n //this.setAttribute('data-page', 1);\n this.setup();\n }\n break;\n }\n case 'data-show': {\n if (oldVal != newVal) {\n //this.setAttribute('data-page', 1);\n this.setup();\n this.dispatchEvent(new CustomEvent('update-show', { detail: { show: newVal } }));\n }\n break;\n }\n case 'data-increment': {\n if (oldVal != newVal) {\n this.setAttribute('data-show', newVal);\n //this.setAttribute('data-page', 1);\n this.setup();\n this.dispatchEvent(new CustomEvent('update-show', { detail: { show: newVal } }));\n }\n break;\n }\n case 'data-page': {\n if (oldVal && oldVal != newVal) {\n this.setup();\n // Dispact the event for other components to use as triggers\n this.dispatchEvent(new CustomEvent('update-page', { detail: { page: newVal } }));\n }\n break;\n }\n }\n }\n}\nexport default iamPagination;\n"],"names":["iamPagination","template","params","select","prev","next","perPage","loadMore","event","increment","show","newValue","wrapper","itemCount","totalPages","currentPage","total","numberPages","strOptions","i","startPoint","endPoint","defaultValues","attrName","oldVal","newVal"],"mappings":"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"}
1
+ {"version":3,"file":"pagination.component.min.js","sources":["pagination.component.js"],"sourcesContent":["class iamPagination extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/pagination.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n \n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n <div class=\"pagination d-none\">\n \n <div class=\"minimal\" part=\"minimal\">\n <div class=\"page-jump\">\n <div><select class=\"select--minimal\"></select></div>\n <span class=\"total-pages\"></span>\n </div>\n \n <button class=\"prev\" disabled>Prev</button>\n <button class=\"next\" disabled>Next</button>\n </div>\n\n <div class=\"item-count\" part=\"item-count\"></div>\n <div class=\"per-page\" part=\"per-page\">\n <div>\n <select class=\"select--minimal\">\n <option value=\"15\">15</option>\n <option value=\"25\">25</option>\n <option value=\"40\">40</option>\n <option value=\"50\">50</option>\n </select>\n </div>\n <span> / page</span>\n </div>\n <div class=\"mobile-controls m-auto text-center\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <button class=\"load-more btn btn-primary m-auto\">Load more</a>\n </div>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // Set default attributes\n const params = new URLSearchParams(window.location.search);\n if (!this.hasAttribute('data-total'))\n this.setAttribute('data-total', 15);\n if (!this.hasAttribute('data-page'))\n this.setAttribute('data-page', params.has('page') ? params.get('page') : 1);\n if (!this.hasAttribute('data-show'))\n this.setAttribute('data-show', params.has('show') ? params.get('show') : 15);\n if (!this.hasAttribute('data-increment'))\n this.setAttribute('data-increment', this.getAttribute('data-show'));\n // Elements\n const select = this.shadowRoot.querySelector('.page-jump select');\n const prev = this.shadowRoot.querySelector('.prev');\n const next = this.shadowRoot.querySelector('.next');\n const perPage = this.shadowRoot.querySelector('.per-page select');\n const loadMore = this.shadowRoot.querySelector('.load-more');\n // Add the select inputs, enable or disable buttons, update the helper text\n this.setup();\n // Select on change will update the data-page attr which will dispatch an event\n select.addEventListener('change', (event) => {\n this.setAttribute('data-show', this.getAttribute('data-increment'));\n this.setAttribute('data-page', event.target.value);\n });\n // Next and previous buttons will simply trigger and on change on the select which in turn will dispatch an event\n next.addEventListener('click', () => {\n console.log(parseInt(this.getAttribute('data-page')));\n this.setAttribute('data-page', parseInt(this.getAttribute('data-page')) + 1);\n });\n prev.addEventListener('click', () => {\n this.setAttribute('data-page', parseInt(this.getAttribute('data-page')) - 1);\n });\n // Update how many is shown\n perPage.addEventListener('change', (event) => {\n this.setAttribute('data-increment', event.target.value);\n });\n // Load more button\n const increment = parseInt(this.getAttribute('data-increment'));\n const show = parseInt(this.getAttribute('data-show'));\n if (show >= parseInt(this.getAttribute('data-total'))) {\n loadMore.remove();\n }\n loadMore.addEventListener('click', () => {\n const newValue = show + increment;\n this.setAttribute('data-show', newValue);\n if (newValue > parseInt(this.getAttribute('data-total'))) {\n loadMore.remove();\n }\n });\n }\n setup() {\n // Elements\n const wrapper = this.shadowRoot.querySelector('.pagination');\n const select = this.shadowRoot.querySelector('.page-jump select');\n const prev = this.shadowRoot.querySelector('.prev');\n const next = this.shadowRoot.querySelector('.next');\n const itemCount = this.shadowRoot.querySelector('.item-count');\n const perPage = this.shadowRoot.querySelector('.per-page select');\n const totalPages = this.shadowRoot.querySelector('.total-pages');\n // Values\n const currentPage = parseInt(this.getAttribute('data-page'));\n const total = parseInt(this.getAttribute('data-total'));\n const show = parseInt(this.getAttribute('data-show'));\n const increment = parseInt(this.getAttribute('data-increment'));\n const numberPages = Math.ceil(total / increment);\n if (total > show)\n wrapper.classList.remove('d-none');\n // Populate the select input with the number of pages\n let strOptions = '';\n for (let i = 1; i <= numberPages; i++) {\n strOptions += `<option value=\"${i}\" ${i == currentPage ? 'selected' : ''}>${i}</option>`;\n }\n select.innerHTML = strOptions;\n totalPages.innerHTML = `of ${numberPages}`;\n // Next button\n if (currentPage == numberPages)\n next.setAttribute('disabled', 'disabled');\n else\n next.removeAttribute('disabled');\n if (currentPage == 1)\n prev.setAttribute('disabled', 'disabled');\n else\n prev.removeAttribute('disabled');\n // Update the item count text\n const startPoint = currentPage == 1 ? 1 : (currentPage - 1) * show + 1;\n const endPoint = currentPage == 1 ? show : currentPage * show;\n itemCount.innerHTML = `${startPoint} - ${endPoint > total ? total : endPoint} of ${total} items`;\n const defaultValues = [15, 25, 40, 50];\n // Update the per page options if needed\n if (increment && perPage.value != increment && !defaultValues.includes(increment)) {\n perPage.innerHTML = `<option value=\"${increment}\">${increment}</option>\n <option value=\"${increment * 2}\">${increment * 2}</option>\n <option value=\"${increment * 3}\">${increment * 3}</option>\n <option value=\"${increment * 4}\">${increment * 4}</option>`;\n }\n perPage.value = increment;\n }\n static get observedAttributes() {\n return ['data-total', 'data-increment', 'data-page', 'data-show'];\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n switch (attrName) {\n case 'data-total': {\n if (oldVal != newVal) {\n //this.setAttribute('data-page', 1);\n this.setup();\n }\n break;\n }\n case 'data-show': {\n if (oldVal != newVal) {\n //this.setAttribute('data-page', 1);\n this.setup();\n this.dispatchEvent(new CustomEvent('update-show', { detail: { show: newVal } }));\n }\n break;\n }\n case 'data-increment': {\n if (oldVal != newVal) {\n this.setAttribute('data-show', newVal);\n //this.setAttribute('data-page', 1);\n this.setup();\n this.dispatchEvent(new CustomEvent('update-show', { detail: { show: newVal } }));\n }\n break;\n }\n case 'data-page': {\n if (oldVal && oldVal != newVal) {\n this.setup();\n // Dispact the event for other components to use as triggers\n this.dispatchEvent(new CustomEvent('update-page', { detail: { page: newVal } }));\n }\n break;\n }\n }\n }\n}\nexport default iamPagination;\n"],"names":["iamPagination","template","params","select","prev","next","perPage","loadMore","event","increment","show","newValue","wrapper","itemCount","totalPages","currentPage","total","numberPages","strOptions","i","startPoint","endPoint","defaultValues","attrName","oldVal","newVal"],"mappings":"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"}
@@ -11,16 +11,16 @@ class iamPassword extends HTMLElement {
11
11
  : '/assets';
12
12
  const loadCSS = `@import "${assetLocation}/css/components/password.component.css";`;
13
13
  const template = document.createElement('template');
14
- template.innerHTML = `
15
- <style>
16
- ${loadCSS}
17
- </style>
18
- <link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
19
- <div class="wrapper">
20
- <slot></slot>
21
- <button type="button" class="suffix fa-solid fa-eye-slash" data-alt-class="suffix fa-solid fa-eye" aria-hidden="true"><span class="visually-hidden">Show password</span></button>
22
- </div>
23
- <span class="pwd-checker"></span>
14
+ template.innerHTML = `
15
+ <style>
16
+ ${loadCSS}
17
+ </style>
18
+ <link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
19
+ <div class="wrapper">
20
+ <slot></slot>
21
+ <button type="button" class="suffix fa-solid fa-eye-slash" data-alt-class="suffix fa-solid fa-eye" aria-hidden="true"><span class="visually-hidden">Show password</span></button>
22
+ </div>
23
+ <span class="pwd-checker"></span>
24
24
  `;
25
25
  (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.appendChild(template.content.cloneNode(true));
26
26
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta6
2
+ * iamKey v7.7.1--beta7
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const u=c=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:c})};function m(c){var r=new TextEncoder("utf-8").encode(c);return crypto.subtle.digest("SHA-1",r).then(function(e){for(var i=[],n=new DataView(e),o=0;o<n.byteLength;o+=4){var s=n.getUint32(o),a=s.toString(16),t="00000000",p=(t+a).slice(-t.length);i.push(p)}return i.join("")})}const b=(c,r)=>{m(c).then(function(e){const i=new XMLHttpRequest;i.addEventListener("load",function(){const n=this.responseText.split(`
5
5
  `),o=e.slice(5).toUpperCase();var s=!1;for(let t in n)if(n[t].substring(0,35)==o){s=!0;break}const a=new CustomEvent("hibpCheck",{detail:s});r.dispatchEvent(a)}),i.open("GET","https://api.pwnedpasswords.com/range/"+e.substr(0,5)),i.send()})};u("iam-password");class x extends HTMLElement{constructor(){var r;super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
@@ -1 +1 @@
1
- {"version":3,"file":"password.component.min.js","sources":["../_global.js","../../vendor/hibp.js","password.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","// @ts-nocheck\n/**\n * hibp.js\n * @version v1\n * @author Mehdi Bounya\n *\n * Report any bugs here: https://github.com/mehdibo/hibp-js\n *\n * The MIT License (http://www.opensource.org/licenses/mit-license.php)\n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction sha1(string) {\n var buffer = new TextEncoder('utf-8').encode(string);\n return crypto.subtle.digest('SHA-1', buffer).then(function (buffer) {\n // Get the hex code\n var hexCodes = [];\n var view = new DataView(buffer);\n for (var i = 0; i < view.byteLength; i += 4) {\n // Using getUint32 reduces the number of iterations needed (we process 4 bytes each time)\n var value = view.getUint32(i);\n // toString(16) will give the hex representation of the number without padding\n var stringValue = value.toString(16);\n // We use concatenation and slice for padding\n var padding = '00000000';\n var paddedValue = (padding + stringValue).slice(-padding.length);\n hexCodes.push(paddedValue);\n }\n // Join all the hex strings into one\n return hexCodes.join('');\n });\n}\nconst hibpCheck = (pwd, input) => {\n // We hash the pwd first\n sha1(pwd).then(function (hash) {\n // We send the first 5 chars of the hash to hibp's API\n const req = new XMLHttpRequest();\n req.addEventListener('load', function () {\n // When we get back a response from the server\n // We create an array of lines and loop through them\n const resp = this.responseText.split('\\n');\n const hashSub = hash.slice(5).toUpperCase();\n var result = false;\n for (let index in resp) {\n // Check if the line matches the rest of the hash\n if (resp[index].substring(0, 35) == hashSub) {\n result = true;\n break; // If found no need to continue the loop\n }\n }\n // Trigger an event with the result\n const event = new CustomEvent('hibpCheck', { detail: result });\n input.dispatchEvent(event);\n });\n req.open('GET', 'https://api.pwnedpasswords.com/range/' + hash.substr(0, 5));\n req.send();\n });\n};\nexport default hibpCheck;\n","import { trackComponentRegistered } from '../_global';\nimport hibpCheck from '../../vendor/hibp.js';\ntrackComponentRegistered('iam-password');\nclass iamPassword extends HTMLElement {\n constructor() {\n var _a;\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/password.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\r\n <style>\r\n ${loadCSS}\r\n </style>\r\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\r\n <div class=\"wrapper\">\r\n <slot></slot>\r\n <button type=\"button\" class=\"suffix fa-solid fa-eye-slash\" data-alt-class=\"suffix fa-solid fa-eye\" aria-hidden=\"true\"><span class=\"visually-hidden\">Show password</span></button>\r\n </div>\r\n <span class=\"pwd-checker\"></span>\r\n `;\n (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n var _a;\n const input = this.querySelector('input');\n const buttonEle = this.shadowRoot.querySelector('button');\n const pwdChecker = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.pwd-checker');\n // Switch icon and input type\n buttonEle.addEventListener('click', (event) => {\n const currentType = input.type;\n const newType = currentType === 'password' ? 'text' : 'password';\n const isPasswordType = currentType === 'password';\n input.setAttribute('type', newType);\n input.setAttribute('data-password-type', isPasswordType);\n if (buttonEle.hasAttribute('data-alt-class')) {\n const newClass = buttonEle.getAttribute('data-alt-class');\n buttonEle.setAttribute('data-alt-class', buttonEle.getAttribute('class'));\n buttonEle.setAttribute('class', newClass);\n }\n });\n input.addEventListener('input', (event) => {\n const password = input.value;\n const minChars = input.hasAttribute('minlength') ? input.getAttribute('minlength') : 12;\n let strength = 1;\n const strengthName = ['Very weak', 'Weak', 'Average', 'Strong', 'Very strong'];\n let extraMsg = '';\n //has number\n if (password.match(/(?=.*[0-9])/))\n strength += 1;\n // has special character\n if (password.match(/(?=.*[!,%,&,#,$,^,*,?,_,~,<,>,])/))\n strength += 1;\n // has lowercase alpha\n if (password.match(/(?=.*[a-z])/))\n strength += 1;\n // has uppercase alpha\n if (password.match(/(?=.*[A-Z])/))\n strength += 1;\n if (password.length < minChars) {\n strength = 1;\n extraMsg = `(must be at least ${minChars} characters.)`;\n }\n // if the strength is above weak and above the minimum length do some kind of api call to check if its in a list of passwords\n if (strength >= 3) {\n hibpCheck(password, input);\n input.addEventListener('hibpCheck', function (event) {\n checkhibpCheck(event, input);\n });\n function checkhibpCheck(event, input) {\n console.log(event.detail);\n if (event.detail) {\n // found\n strength = 3;\n extraMsg = `(this password is very common)`;\n pwdChecker.innerHTML = `Password strength: ${strengthName[strength - 1]} ${extraMsg}`;\n }\n input.removeEventListener('hibpCheck', checkhibpCheck); // Succeeds\n }\n }\n if (strength <= 3)\n pwdChecker.classList.add('invalid-feedback');\n else\n pwdChecker.classList.remove('invalid-feedback');\n pwdChecker.setAttribute('data-strength', strength);\n pwdChecker.innerHTML = `Password strength: ${strengthName[strength - 1]} ${extraMsg}`;\n });\n }\n}\nexport default iamPassword;\n"],"names":["trackComponentRegistered","componentName","sha1","string","buffer","hexCodes","view","i","value","stringValue","padding","paddedValue","hibpCheck","pwd","input","hash","req","resp","hashSub","result","index","event","iamPassword","_a","template","buttonEle","pwdChecker","currentType","newType","isPasswordType","newClass","password","minChars","strength","strengthName","extraMsg","checkhibpCheck"],"mappings":";;;IAAO,MAAMA,EAA4BC,GAAkB,CAEvD,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAO,0BACP,QAASA,CACjB,CAAK,CACL,ECwBA,SAASC,EAAKC,EAAQ,CAClB,IAAIC,EAAS,IAAI,YAAY,OAAO,EAAE,OAAOD,CAAM,EACnD,OAAO,OAAO,OAAO,OAAO,QAASC,CAAM,EAAE,KAAK,SAAUA,EAAQ,CAIhE,QAFIC,EAAW,CAAA,EACXC,EAAO,IAAI,SAASF,CAAM,EACrBG,EAAI,EAAGA,EAAID,EAAK,WAAYC,GAAK,EAAG,CAEzC,IAAIC,EAAQF,EAAK,UAAUC,CAAC,EAExBE,EAAcD,EAAM,SAAS,EAAE,EAE/BE,EAAU,WACVC,GAAeD,EAAUD,GAAa,MAAM,CAACC,EAAQ,MAAM,EAC/DL,EAAS,KAAKM,CAAW,CAC7B,CAEA,OAAON,EAAS,KAAK,EAAE,CAC3B,CAAC,CACL,CACA,MAAMO,EAAY,CAACC,EAAKC,IAAU,CAE9BZ,EAAKW,CAAG,EAAE,KAAK,SAAUE,EAAM,CAE3B,MAAMC,EAAM,IAAI,eAChBA,EAAI,iBAAiB,OAAQ,UAAY,CAGrC,MAAMC,EAAO,KAAK,aAAa,MAAM;AAAA,CAAI,EACnCC,EAAUH,EAAK,MAAM,CAAC,EAAE,YAAW,EACzC,IAAII,EAAS,GACb,QAASC,KAASH,EAEd,GAAIA,EAAKG,CAAK,EAAE,UAAU,EAAG,EAAE,GAAKF,EAAS,CACzCC,EAAS,GACT,KACJ,CAGJ,MAAME,EAAQ,IAAI,YAAY,YAAa,CAAE,OAAQF,EAAQ,EAC7DL,EAAM,cAAcO,CAAK,CAC7B,CAAC,EACDL,EAAI,KAAK,MAAO,wCAA0CD,EAAK,OAAO,EAAG,CAAC,CAAC,EAC3EC,EAAI,KAAI,CACZ,CAAC,CACL,EC1EAhB,EAAyB,cAAc,EACvC,MAAMsB,UAAoB,WAAY,CAClC,aAAc,CACV,IAAIC,EACJ,MAAK,EACL,KAAK,aAAa,CAAE,KAAM,MAAM,CAAE,EACZ,SAAS,KAAK,aAAa,sBAAsB,GACjE,SAAS,KAAK,aAAa,sBAAsB,EAGvD,MAAMC,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAWpBD,EAAK,KAAK,cAAgB,MAAQA,IAAO,QAAkBA,EAAG,YAAYC,EAAS,QAAQ,UAAU,EAAI,CAAC,CAC/G,CACA,mBAAoB,CAChB,IAAID,EACJ,MAAMT,EAAQ,KAAK,cAAc,OAAO,EAClCW,EAAY,KAAK,WAAW,cAAc,QAAQ,EAClDC,GAAcH,EAAK,KAAK,cAAgB,MAAQA,IAAO,OAAS,OAASA,EAAG,cAAc,cAAc,EAE9GE,EAAU,iBAAiB,QAAUJ,GAAU,CAC3C,MAAMM,EAAcb,EAAM,KACpBc,EAAUD,IAAgB,WAAa,OAAS,WAChDE,EAAiBF,IAAgB,WAGvC,GAFAb,EAAM,aAAa,OAAQc,CAAO,EAClCd,EAAM,aAAa,qBAAsBe,CAAc,EACnDJ,EAAU,aAAa,gBAAgB,EAAG,CAC1C,MAAMK,EAAWL,EAAU,aAAa,gBAAgB,EACxDA,EAAU,aAAa,iBAAkBA,EAAU,aAAa,OAAO,CAAC,EACxEA,EAAU,aAAa,QAASK,CAAQ,CAC5C,CACJ,CAAC,EACDhB,EAAM,iBAAiB,QAAUO,GAAU,CACvC,MAAMU,EAAWjB,EAAM,MACjBkB,EAAWlB,EAAM,aAAa,WAAW,EAAIA,EAAM,aAAa,WAAW,EAAI,GACrF,IAAImB,EAAW,EACf,MAAMC,EAAe,CAAC,YAAa,OAAQ,UAAW,SAAU,aAAa,EAC7E,IAAIC,EAAW,GAkBf,GAhBIJ,EAAS,MAAM,aAAa,IAC5BE,GAAY,GAEZF,EAAS,MAAM,kCAAkC,IACjDE,GAAY,GAEZF,EAAS,MAAM,aAAa,IAC5BE,GAAY,GAEZF,EAAS,MAAM,aAAa,IAC5BE,GAAY,GACZF,EAAS,OAASC,IAClBC,EAAW,EACXE,EAAW,qBAAqBH,CAAQ,iBAGxCC,GAAY,EAAG,CAKf,IAASG,EAAT,SAAwBf,EAAOP,EAAO,CAClC,QAAQ,IAAIO,EAAM,MAAM,EACpBA,EAAM,SAENY,EAAW,EACXE,EAAW,iCACXT,EAAW,UAAY,sBAAsBQ,EAAaD,EAAW,CAAC,CAAC,IAAIE,CAAQ,IAEvFrB,EAAM,oBAAoB,YAAasB,CAAc,CACzD,EAbAxB,EAAUmB,EAAUjB,CAAK,EACzBA,EAAM,iBAAiB,YAAa,SAAUO,EAAO,CACjDe,EAAef,EAAOP,CAAK,CAC/B,CAAC,CAWL,CACImB,GAAY,EACZP,EAAW,UAAU,IAAI,kBAAkB,EAE3CA,EAAW,UAAU,OAAO,kBAAkB,EAClDA,EAAW,aAAa,gBAAiBO,CAAQ,EACjDP,EAAW,UAAY,sBAAsBQ,EAAaD,EAAW,CAAC,CAAC,IAAIE,CAAQ,EACvF,CAAC,CACL,CACJ"}
1
+ {"version":3,"file":"password.component.min.js","sources":["../_global.js","../../vendor/hibp.js","password.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","// @ts-nocheck\n/**\n * hibp.js\n * @version v1\n * @author Mehdi Bounya\n *\n * Report any bugs here: https://github.com/mehdibo/hibp-js\n *\n * The MIT License (http://www.opensource.org/licenses/mit-license.php)\n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction sha1(string) {\n var buffer = new TextEncoder('utf-8').encode(string);\n return crypto.subtle.digest('SHA-1', buffer).then(function (buffer) {\n // Get the hex code\n var hexCodes = [];\n var view = new DataView(buffer);\n for (var i = 0; i < view.byteLength; i += 4) {\n // Using getUint32 reduces the number of iterations needed (we process 4 bytes each time)\n var value = view.getUint32(i);\n // toString(16) will give the hex representation of the number without padding\n var stringValue = value.toString(16);\n // We use concatenation and slice for padding\n var padding = '00000000';\n var paddedValue = (padding + stringValue).slice(-padding.length);\n hexCodes.push(paddedValue);\n }\n // Join all the hex strings into one\n return hexCodes.join('');\n });\n}\nconst hibpCheck = (pwd, input) => {\n // We hash the pwd first\n sha1(pwd).then(function (hash) {\n // We send the first 5 chars of the hash to hibp's API\n const req = new XMLHttpRequest();\n req.addEventListener('load', function () {\n // When we get back a response from the server\n // We create an array of lines and loop through them\n const resp = this.responseText.split('\\n');\n const hashSub = hash.slice(5).toUpperCase();\n var result = false;\n for (let index in resp) {\n // Check if the line matches the rest of the hash\n if (resp[index].substring(0, 35) == hashSub) {\n result = true;\n break; // If found no need to continue the loop\n }\n }\n // Trigger an event with the result\n const event = new CustomEvent('hibpCheck', { detail: result });\n input.dispatchEvent(event);\n });\n req.open('GET', 'https://api.pwnedpasswords.com/range/' + hash.substr(0, 5));\n req.send();\n });\n};\nexport default hibpCheck;\n","import { trackComponentRegistered } from '../_global';\nimport hibpCheck from '../../vendor/hibp.js';\ntrackComponentRegistered('iam-password');\nclass iamPassword extends HTMLElement {\n constructor() {\n var _a;\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/password.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n <div class=\"wrapper\">\n <slot></slot>\n <button type=\"button\" class=\"suffix fa-solid fa-eye-slash\" data-alt-class=\"suffix fa-solid fa-eye\" aria-hidden=\"true\"><span class=\"visually-hidden\">Show password</span></button>\n </div>\n <span class=\"pwd-checker\"></span>\n `;\n (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n var _a;\n const input = this.querySelector('input');\n const buttonEle = this.shadowRoot.querySelector('button');\n const pwdChecker = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.pwd-checker');\n // Switch icon and input type\n buttonEle.addEventListener('click', (event) => {\n const currentType = input.type;\n const newType = currentType === 'password' ? 'text' : 'password';\n const isPasswordType = currentType === 'password';\n input.setAttribute('type', newType);\n input.setAttribute('data-password-type', isPasswordType);\n if (buttonEle.hasAttribute('data-alt-class')) {\n const newClass = buttonEle.getAttribute('data-alt-class');\n buttonEle.setAttribute('data-alt-class', buttonEle.getAttribute('class'));\n buttonEle.setAttribute('class', newClass);\n }\n });\n input.addEventListener('input', (event) => {\n const password = input.value;\n const minChars = input.hasAttribute('minlength') ? input.getAttribute('minlength') : 12;\n let strength = 1;\n const strengthName = ['Very weak', 'Weak', 'Average', 'Strong', 'Very strong'];\n let extraMsg = '';\n //has number\n if (password.match(/(?=.*[0-9])/))\n strength += 1;\n // has special character\n if (password.match(/(?=.*[!,%,&,#,$,^,*,?,_,~,<,>,])/))\n strength += 1;\n // has lowercase alpha\n if (password.match(/(?=.*[a-z])/))\n strength += 1;\n // has uppercase alpha\n if (password.match(/(?=.*[A-Z])/))\n strength += 1;\n if (password.length < minChars) {\n strength = 1;\n extraMsg = `(must be at least ${minChars} characters.)`;\n }\n // if the strength is above weak and above the minimum length do some kind of api call to check if its in a list of passwords\n if (strength >= 3) {\n hibpCheck(password, input);\n input.addEventListener('hibpCheck', function (event) {\n checkhibpCheck(event, input);\n });\n function checkhibpCheck(event, input) {\n console.log(event.detail);\n if (event.detail) {\n // found\n strength = 3;\n extraMsg = `(this password is very common)`;\n pwdChecker.innerHTML = `Password strength: ${strengthName[strength - 1]} ${extraMsg}`;\n }\n input.removeEventListener('hibpCheck', checkhibpCheck); // Succeeds\n }\n }\n if (strength <= 3)\n pwdChecker.classList.add('invalid-feedback');\n else\n pwdChecker.classList.remove('invalid-feedback');\n pwdChecker.setAttribute('data-strength', strength);\n pwdChecker.innerHTML = `Password strength: ${strengthName[strength - 1]} ${extraMsg}`;\n });\n }\n}\nexport default iamPassword;\n"],"names":["trackComponentRegistered","componentName","sha1","string","buffer","hexCodes","view","i","value","stringValue","padding","paddedValue","hibpCheck","pwd","input","hash","req","resp","hashSub","result","index","event","iamPassword","_a","template","buttonEle","pwdChecker","currentType","newType","isPasswordType","newClass","password","minChars","strength","strengthName","extraMsg","checkhibpCheck"],"mappings":"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"}
@@ -9,13 +9,13 @@ class iamPopover extends HTMLElement {
9
9
  : '/assets';
10
10
  const loadCSS = `@import "${assetLocation}/css/components/popover.component.css";`;
11
11
  const template = document.createElement('template');
12
- template.innerHTML = `
13
- <style>
14
- ${loadCSS}
15
- </style>
16
- <div>
17
- <slot></slot>
18
- </div>
12
+ template.innerHTML = `
13
+ <style>
14
+ ${loadCSS}
15
+ </style>
16
+ <div>
17
+ <slot></slot>
18
+ </div>
19
19
  `;
20
20
  this.shadowRoot.appendChild(template.content.cloneNode(true));
21
21
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta6
2
+ * iamKey v7.7.1--beta7
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const a=o=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:o})};a("iam-popover");class s extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
5
5
  <style>
@@ -1 +1 @@
1
- {"version":3,"file":"popover.component.min.js","sources":["../_global.js","popover.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import { trackComponentRegistered } from '../_global';\ntrackComponentRegistered('iam-popover');\nclass iamPopover extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/popover.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\r\n <style>\r\n ${loadCSS}\r\n </style>\r\n <div>\r\n <slot></slot>\r\n </div>\r\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const id = this.getAttribute('id');\n const button = document.querySelector(`[popovertarget=\"${id}\"]`);\n this.setAttribute('popover', 'auto');\n button === null || button === void 0 ? void 0 : button.addEventListener('click', () => {\n if (this.matches(':popover-open')) {\n button.removeAttribute('aria-pressed');\n }\n else {\n button.setAttribute('aria-pressed', 'true');\n }\n });\n }\n}\nexport default iamPopover;\n"],"names":["trackComponentRegistered","componentName","iamPopover","template","id","button"],"mappings":";;;IAAO,MAAMA,EAA4BC,GAAkB,CAEvD,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAO,0BACP,QAASA,CACjB,CAAK,CACL,ECNAD,EAAyB,aAAa,EACtC,MAAME,UAAmB,WAAY,CACjC,aAAc,CACV,MAAK,EACL,KAAK,aAAa,CAAE,KAAM,MAAM,CAAE,EACZ,SAAS,KAAK,aAAa,sBAAsB,GACjE,SAAS,KAAK,aAAa,sBAAsB,EAGvD,MAAMC,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQrB,KAAK,WAAW,YAAYA,EAAS,QAAQ,UAAU,EAAI,CAAC,CAChE,CACA,mBAAoB,CAChB,MAAMC,EAAK,KAAK,aAAa,IAAI,EAC3BC,EAAS,SAAS,cAAc,mBAAmBD,CAAE,IAAI,EAC/D,KAAK,aAAa,UAAW,MAAM,EACaC,GAAO,iBAAiB,QAAS,IAAM,CAC/E,KAAK,QAAQ,eAAe,EAC5BA,EAAO,gBAAgB,cAAc,EAGrCA,EAAO,aAAa,eAAgB,MAAM,CAElD,CAAC,CACL,CACJ"}
1
+ {"version":3,"file":"popover.component.min.js","sources":["../_global.js","popover.component.js"],"sourcesContent":["export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import { trackComponentRegistered } from '../_global';\ntrackComponentRegistered('iam-popover');\nclass iamPopover extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/popover.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n </style>\n <div>\n <slot></slot>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const id = this.getAttribute('id');\n const button = document.querySelector(`[popovertarget=\"${id}\"]`);\n this.setAttribute('popover', 'auto');\n button === null || button === void 0 ? void 0 : button.addEventListener('click', () => {\n if (this.matches(':popover-open')) {\n button.removeAttribute('aria-pressed');\n }\n else {\n button.setAttribute('aria-pressed', 'true');\n }\n });\n }\n}\nexport default iamPopover;\n"],"names":["trackComponentRegistered","componentName","iamPopover","template","id","button"],"mappings":";;;IAAO,MAAMA,EAA4BC,GAAkB,CAEvD,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAO,0BACP,QAASA,CACjB,CAAK,CACL,ECNAD,EAAyB,aAAa,EACtC,MAAME,UAAmB,WAAY,CACjC,aAAc,CACV,MAAK,EACL,KAAK,aAAa,CAAE,KAAM,MAAM,CAAE,EACZ,SAAS,KAAK,aAAa,sBAAsB,GACjE,SAAS,KAAK,aAAa,sBAAsB,EAGvD,MAAMC,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQrB,KAAK,WAAW,YAAYA,EAAS,QAAQ,UAAU,EAAI,CAAC,CAChE,CACA,mBAAoB,CAChB,MAAMC,EAAK,KAAK,aAAa,IAAI,EAC3BC,EAAS,SAAS,cAAc,mBAAmBD,CAAE,IAAI,EAC/D,KAAK,aAAa,UAAW,MAAM,EACaC,GAAO,iBAAiB,QAAS,IAAM,CAC/E,KAAK,QAAQ,eAAe,EAC5BA,EAAO,gBAAgB,cAAc,EAGrCA,EAAO,aAAa,eAAgB,MAAM,CAElD,CAAC,CACL,CACJ"}