@iamproperty/components 6.1.0--beta → 6.1.0--beta3

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 (144) hide show
  1. package/assets/css/components/actionbar.css.map +1 -1
  2. package/assets/css/components/actionbar.global.css.map +1 -1
  3. package/assets/css/components/card.component.css +1 -1
  4. package/assets/css/components/card.component.css.map +1 -1
  5. package/assets/css/components/card.module.css +1 -1
  6. package/assets/css/components/card.module.css.map +1 -1
  7. package/assets/css/components/carousel.component.css +1 -0
  8. package/assets/css/components/carousel.component.css.map +1 -0
  9. package/assets/css/components/carousel.config.css +1 -0
  10. package/assets/css/components/carousel.config.css.map +1 -0
  11. package/assets/css/components/collapsible-side.css.map +1 -1
  12. package/assets/css/components/fileupload.css.map +1 -1
  13. package/assets/css/components/filter-card.component.css +1 -1
  14. package/assets/css/components/filter-card.component.css.map +1 -1
  15. package/assets/css/components/header.css +1 -1
  16. package/assets/css/components/header.css.map +1 -1
  17. package/assets/css/components/marketing.css.map +1 -1
  18. package/assets/css/components/multi-step.component.css +1 -0
  19. package/assets/css/components/multi-step.component.css.map +1 -0
  20. package/assets/css/components/multiselect.preload.css.map +1 -1
  21. package/assets/css/components/nav.css.map +1 -1
  22. package/assets/css/components/nav.docs.css.map +1 -1
  23. package/assets/css/components/nav.global.css.map +1 -1
  24. package/assets/css/components/nav.old.css.map +1 -1
  25. package/assets/css/components/nav.preload.css +1 -1
  26. package/assets/css/components/nav.preload.css.map +1 -1
  27. package/assets/css/components/notification.css.map +1 -1
  28. package/assets/css/components/pagination.css.map +1 -1
  29. package/assets/css/components/property-searchbar.css.map +1 -1
  30. package/assets/css/components/record-card.component.css +1 -1
  31. package/assets/css/components/record-card.component.css.map +1 -1
  32. package/assets/css/components/slider.css.map +1 -1
  33. package/assets/css/components/snapshot.css.map +1 -1
  34. package/assets/css/components/stepper.css.map +1 -1
  35. package/assets/css/components/table.global.css.map +1 -1
  36. package/assets/css/components/tabs.css +1 -1
  37. package/assets/css/components/tabs.css.map +1 -1
  38. package/assets/css/components/testimonial.css.map +1 -1
  39. package/assets/css/components/timeline.css.map +1 -1
  40. package/assets/css/components/video-card.component.css +1 -1
  41. package/assets/css/components/video-card.component.css.map +1 -1
  42. package/assets/css/core.min.css +1 -1
  43. package/assets/css/core.min.css.map +1 -1
  44. package/assets/css/style.min.css +1 -1
  45. package/assets/css/style.min.css.map +1 -1
  46. package/assets/img/illustrations/not-found.png +0 -0
  47. package/assets/js/components/accordion/accordion.component.min.js +2 -2
  48. package/assets/js/components/actionbar/actionbar.component.min.js +6 -6
  49. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  50. package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
  51. package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
  52. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  53. package/assets/js/components/card/card.component.min.js +4 -4
  54. package/assets/js/components/card/card.component.min.js.map +1 -1
  55. package/assets/js/components/carousel/carousel.component.js +36 -41
  56. package/assets/js/components/carousel/carousel.component.min.js +18 -12
  57. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  58. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
  59. package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
  60. package/assets/js/components/filter-card/filter-card.component.min.js +5 -5
  61. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  62. package/assets/js/components/filterlist/filterlist.component.min.js +2 -2
  63. package/assets/js/components/header/header.component.min.js +3 -3
  64. package/assets/js/components/inline-edit/inline-edit.component.min.js +2 -2
  65. package/assets/js/components/marketing/marketing.component.min.js +2 -2
  66. package/assets/js/components/multi-step/multi-step.component.js +162 -0
  67. package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
  68. package/assets/js/components/nav/nav.component.min.js +2 -2
  69. package/assets/js/components/notification/notification.component.min.js +2 -2
  70. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  71. package/assets/js/components/record-card/record-card.component.min.js +6 -6
  72. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  73. package/assets/js/components/search/search.component.min.js +2 -2
  74. package/assets/js/components/slider/slider.component.min.js +2 -2
  75. package/assets/js/components/table/table.component.js +1 -1
  76. package/assets/js/components/table/table.component.min.js +3 -3
  77. package/assets/js/components/table/table.component.min.js.map +1 -1
  78. package/assets/js/components/tabs/tabs.component.min.js +3 -3
  79. package/assets/js/components/video-card/video-card.component.min.js +6 -6
  80. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  81. package/assets/js/components.bundle.js +3 -3
  82. package/assets/js/components.bundle.js.map +1 -1
  83. package/assets/js/components.js +1 -1
  84. package/assets/js/modules/card.module.js +4 -1
  85. package/assets/js/modules/carousel.js +110 -8
  86. package/assets/js/modules/dialogs.js +5 -123
  87. package/assets/js/scripts.bundle.js +4 -4
  88. package/assets/js/scripts.bundle.js.map +1 -1
  89. package/assets/js/scripts.bundle.min.js +3 -3
  90. package/assets/js/scripts.bundle.min.js.map +1 -1
  91. package/assets/sass/_components.scss +3 -19
  92. package/assets/sass/_corefiles.scss +15 -0
  93. package/assets/sass/_func.scss +3 -0
  94. package/assets/sass/_functions/functions.scss +304 -1
  95. package/assets/sass/_functions/mixins.scss +458 -2
  96. package/assets/sass/_functions/utilities.scss +647 -2
  97. package/assets/sass/_functions/variables.scss +1724 -2
  98. package/assets/sass/_utilities.scss +126 -7
  99. package/assets/sass/components/card.module.scss +1 -1
  100. package/assets/sass/components/carousel.component.scss +605 -0
  101. package/assets/sass/components/carousel.config.scss +84 -0
  102. package/assets/sass/components/header.scss +1 -0
  103. package/assets/sass/components/multi-step.component.scss +148 -0
  104. package/assets/sass/components/nav.preload.scss +5 -0
  105. package/assets/sass/components/tabs.scss +1 -1
  106. package/assets/sass/elements/admin-panel.scss +2 -1
  107. package/assets/sass/elements/buttons.scss +33 -0
  108. package/assets/sass/elements/container.scss +16 -6
  109. package/assets/sass/elements/details.scss +2 -0
  110. package/assets/sass/elements/forms.scss +236 -24
  111. package/assets/sass/elements/links.scss +27 -4
  112. package/assets/sass/elements/lists.scss +46 -0
  113. package/assets/sass/elements/media.scss +11 -1
  114. package/assets/sass/elements/modal.scss +138 -238
  115. package/assets/sass/elements/table.element.scss +35 -0
  116. package/assets/sass/elements/type.scss +38 -2
  117. package/assets/sass/error.scss +32 -1
  118. package/assets/sass/foundations/bs_grid.scss +33 -0
  119. package/assets/sass/foundations/grid.scss +270 -0
  120. package/assets/sass/foundations/reboot.scss +71 -49
  121. package/assets/sass/foundations/root.scss +16 -2
  122. package/assets/ts/components/carousel/carousel.component.ts +51 -44
  123. package/assets/ts/components/multi-step/multi-step.component.ts +262 -0
  124. package/assets/ts/components/table/table.component.ts +2 -1
  125. package/assets/ts/components.ts +1 -1
  126. package/assets/ts/modules/card.module.ts +4 -1
  127. package/assets/ts/modules/carousel.ts +161 -7
  128. package/assets/ts/modules/dialogs.ts +6 -174
  129. package/dist/components.es.js +177 -193
  130. package/dist/components.umd.js +73 -67
  131. package/dist/style.css +1 -1
  132. package/package.json +3 -2
  133. package/src/components/Carousel/Carousel.vue +1 -15
  134. package/src/components/FilterCard/FilterCard.vue +1 -1
  135. package/src/components/MultiStep/MultiStep.vue +25 -0
  136. package/src/components/RecordCard/RecordCard.vue +1 -1
  137. package/src/components/VideoCard/VideoCard.vue +1 -1
  138. package/assets/css/components/carousel.css +0 -1
  139. package/assets/css/components/carousel.css.map +0 -1
  140. package/assets/css/components/carousel.preload.css +0 -1
  141. package/assets/css/components/carousel.preload.css.map +0 -1
  142. package/assets/sass/components/carousel.preload.scss +0 -82
  143. package/assets/sass/components/carousel.scss +0 -258
  144. package/assets/ts/tests/dialogs.spec.js +0 -50
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.component.min.js","sources":["../../modules/carousel.js","carousel.component.js"],"sourcesContent":["// @ts-nocheck\nfunction carousel(carouselElement, row) {\n var scrollTimeout;\n let carouselInner = carouselElement.querySelector('.carousel__inner');\n let carouselControls = carouselElement.querySelector('.carousel__controls');\n let itemCount = row.querySelectorAll(':scope > .col').length;\n // On scroll we need to make sure the buttons get corrected and the next testimonial is shown\n carouselInner.addEventListener('scroll', function (e) {\n clearTimeout(scrollTimeout);\n scrollTimeout = setTimeout(function () {\n let scrollArea = carouselInner.clientWidth;\n let scrollWidth = carouselInner.scrollWidth;\n let scrollLeft = carouselInner.scrollLeft;\n let targetSlide = Math.round((scrollLeft / scrollWidth) * itemCount) + 1;\n let itemWidth = row.querySelector(':scope > .col').scrollWidth;\n let lastItemOffset = row.querySelector(':scope > .col:last-child').offsetLeft;\n //+60px here is to account for when the next offscreen slide is visible beneath the next arrow\n let lastItemInView = carouselInner.scrollLeft + scrollArea + carouselInner.getBoundingClientRect().left >= (lastItemOffset + 60);\n let visibleItems = Math.round(scrollArea / itemWidth);\n //Check if theres room for more slides than we have\n let leftOverSpace = (Math.ceil(itemCount / visibleItems) * visibleItems) - itemCount;\n if (leftOverSpace > 0 && lastItemInView) {\n targetSlide = (Math.floor(itemCount / visibleItems) * visibleItems) + 1;\n }\n Array.from(carouselElement.querySelectorAll('.carousel__controls button')).forEach((button, index) => {\n button.removeAttribute('aria-current');\n });\n carouselElement.querySelector('.control-' + targetSlide).setAttribute('aria-current', true);\n // Disable the previous button\n if (targetSlide == 1)\n carouselElement.querySelector('.btn-prev').setAttribute('disabled', 'disabled');\n else\n carouselElement.querySelector('.btn-prev').removeAttribute('disabled');\n // Disable the next button if the last item is in view\n if (targetSlide > (itemCount - visibleItems))\n carouselElement.querySelector('.btn-next').setAttribute('disabled', 'disabled');\n else\n carouselElement.querySelector('.btn-next').removeAttribute('disabled');\n }, 100);\n }, false);\n // when the buttons are used we need to make sure the carousel scrolls to the correct place\n carouselControls.addEventListener('click', function (e) {\n for (var target = e.target; target && target != this; target = target.parentNode) {\n if (typeof target.matches == \"function\" && target.matches('button')) {\n e.preventDefault();\n Array.from(carouselControls.querySelectorAll('button')).forEach((button, index) => {\n button.removeAttribute('aria-current');\n });\n target.setAttribute('aria-current', true);\n const el = row.querySelector(`:scope > *:nth-child(${target.getAttribute('data-slide')})`);\n carouselInner.scroll({\n top: 0,\n left: el.offsetLeft - carouselInner.getBoundingClientRect().left,\n behavior: 'smooth'\n });\n break;\n }\n }\n }, false);\n carouselElement.addEventListener('click', function (e) {\n let scrollArea = carouselInner.clientWidth;\n let scrollWidth = carouselInner.scrollWidth;\n let itemWidth = row.querySelector(':scope > .col').scrollWidth;\n let visibleItems = Math.round(scrollArea / itemWidth);\n let lastItemOffset = row.querySelector(':scope > .col:last-child').offsetLeft;\n let lastItemInView = carouselInner.scrollLeft + scrollArea + carouselInner.getBoundingClientRect().left >= (lastItemOffset + 60);\n //Check if theres room for more slides than we have\n let leftOverSpace = (Math.ceil(itemCount / visibleItems) * visibleItems) - itemCount;\n /*\n When the last slide isn't filled with items, we only want to move back the number of items on the slide,\n rather than the total number of possible visible items\n */\n let spacesToMove = visibleItems - leftOverSpace;\n //Only want to change the amount of movement if the last item is visible\n let movement = lastItemInView && leftOverSpace > 0 ? spacesToMove * itemWidth : carouselInner.clientWidth;\n for (var target = e.target; target && target != this; target = target.parentNode) {\n if (typeof target.matches == \"function\" && target.matches('.btn-next, .btn-prev')) {\n e.preventDefault();\n let scrollTo = target.classList.contains('btn-prev') ? carouselInner.scrollLeft - movement : carouselInner.scrollLeft + carouselInner.clientWidth;\n carouselInner.scroll({\n top: 0,\n left: scrollTo,\n behavior: 'smooth'\n });\n break;\n }\n }\n }, false);\n}\nexport default carousel;\n","// @ts-nocheck\nimport carousel from \"../../modules/carousel.js\";\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n \"event\": \"customElementRegistered\",\n \"element\": \"carousel\"\n});\nclass iamCarousel extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;\n const loadCSS = `@import \"${assetLocation}/css/components/carousel.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n @import \"${coreCSS}\";\n ${loadCSS}\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <div class=\"carousel\" :id=\"'carousel'+id\">\n <div class=\"carousel__wrapper\">\n <div class=\"carousel__inner\">\n \n <slot></slot>\n </div>\n \n <div class=\"carousel__controls\" part=\"controls\">\n \n </div>\n\n <button class=\"btn btn-prev\" data-go=\"0\" disabled part=\"prev\">Prev</button>\n <button class=\"btn btn-next\" data-go=\"2\" part=\"next\">Next</button>\n\n </div>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const carouselElement = this.shadowRoot.querySelector('.carousel');\n const row = this.querySelector('.row');\n const thumbnailImages = JSON.parse(this.dataset.thumbnails);\n const carouselControls = this.shadowRoot.querySelector('.carousel__controls');\n let itemCount = this.querySelectorAll(':scope > .row > .col').length;\n carouselElement.setAttribute('data-row-class', row.className);\n if (this.classList.contains('hide-btns'))\n carouselElement.classList.add('hide-btns');\n if (this.classList.contains('hide-controls'))\n carouselElement.classList.add('hide-controls');\n if (thumbnailImages === null || thumbnailImages === void 0 ? void 0 : thumbnailImages.length) {\n carouselControls.classList.add('thumbnails');\n }\n // populate the pips\n let pips = \"\";\n for (let i = 1; i <= itemCount; i++) {\n let pipContent = null;\n let pipClass = '';\n if (thumbnailImages.length) {\n pipClass = 'has-thumbnail';\n pipContent = `<img src=\"${thumbnailImages[i - 1].src}\" alt=\"Slide ${i}\" height=\"148\"/>`;\n }\n else {\n pipContent = `Slide ${i}`;\n }\n pips += `<button class=\"control-${i} ${pipClass}\" data-slide=\"${i}\" ${i == 1 ? \"aria-current\" : \"\"}>${pipContent}</button>`;\n }\n carouselControls.innerHTML = pips;\n carousel(carouselElement, row);\n }\n}\nexport default iamCarousel;\n"],"names":["carousel","carouselElement","row","scrollTimeout","carouselInner","carouselControls","itemCount","e","scrollArea","scrollWidth","scrollLeft","targetSlide","itemWidth","lastItemOffset","lastItemInView","visibleItems","button","index","target","el","leftOverSpace","spacesToMove","movement","scrollTo","iamCarousel","assetLocation","coreCSS","template","thumbnailImages","pips","i","pipContent","pipClass"],"mappings":"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"}
1
+ {"version":3,"file":"carousel.component.min.js","sources":["../../modules/carousel.js","../_global.js","carousel.component.js"],"sourcesContent":["// @ts-nocheck\nexport const generateThumbnailList = function (carouselComponent) {\n let thumbnailImages = [];\n Array.from(carouselComponent.querySelectorAll(':scope > div')).forEach((slide, index) => {\n if (slide.hasAttribute('data-thumbnail')) {\n thumbnailImages[index] = slide.getAttribute('data-thumbnail');\n }\n });\n return thumbnailImages;\n};\nexport const generatePipsHTML = function (carouselComponent, thumbnailImages) {\n let itemCount = carouselComponent.querySelectorAll(':scope > div').length;\n let pips = \"\";\n for (let i = 1; i <= itemCount; i++) {\n let pipContent = null;\n let pipClass = '';\n if (thumbnailImages.length && thumbnailImages[i - 1]) {\n pipClass = 'has-thumbnail';\n pipContent = `<img src=\"${thumbnailImages[i - 1]}\" alt=\"Slide ${i}\" height=\"148\"/>`;\n }\n else {\n pipContent = `Slide ${i}`;\n }\n pips += `<button class=\"control-${i} ${pipClass}\" data-slide=\"${i}\" ${i == 1 ? \"aria-current\" : \"\"}>${pipContent}</button>`;\n }\n return pips;\n};\nconst getProgressMax = function (itemCount, visibleItems) {\n if (visibleItems == 1) {\n return itemCount;\n }\n let max = (Math.ceil(itemCount / visibleItems) * visibleItems) - visibleItems;\n return max + 1;\n};\nconst getProgressPercent = function (value, max) {\n return (((value - 1) / (max - 1)) * 100);\n};\nexport const carousel = function (carouselComponent) {\n var scrollTimeout;\n const carouselElement = carouselComponent.shadowRoot.querySelector('.carousel');\n let carouselInner = carouselElement.querySelector('.carousel__inner');\n let carouselControls = carouselElement.querySelector('.carousel__controls');\n let carouselProgress = carouselElement.querySelector('.carousel__progress [type=\"range\"]');\n let itemCount = carouselComponent.querySelectorAll(':scope > div').length;\n let scrollArea = carouselInner.clientWidth;\n let itemWidth = carouselComponent.querySelector(':scope > div').scrollWidth;\n let visibleItems = Math.round(scrollArea / itemWidth);\n carouselProgress.setAttribute('min', 1);\n carouselProgress.setAttribute('step', visibleItems);\n let progressMax = getProgressMax(itemCount, visibleItems);\n carouselProgress.setAttribute('max', progressMax);\n carouselProgress.value = 1;\n let percent = getProgressPercent(1, progressMax);\n carouselProgress.style.setProperty('--percent', percent + \"%\");\n let stepperInterval, stepperEvent = \"mouseup\", stepperStart = \"mousedown\";\n if (\"ontouchstart\" in document.documentElement) {\n stepperEvent = \"touchend\";\n stepperStart = \"touchstart\";\n }\n // On scroll we need to make sure the buttons get corrected and the next testimonial is shown\n carouselInner.addEventListener('scroll', function (e) {\n clearTimeout(scrollTimeout);\n scrollTimeout = setTimeout(function () {\n let scrollArea = carouselInner.clientWidth;\n let scrollWidth = carouselInner.scrollWidth;\n let scrollLeft = carouselInner.scrollLeft;\n let targetSlide = Math.round((scrollLeft / scrollWidth) * itemCount) + 1;\n let itemWidth = carouselComponent.querySelector(':scope > div').scrollWidth;\n let lastItemOffset = carouselComponent.querySelector(':scope > div:last-child').offsetLeft;\n //+60px here is to account for when the next offscreen slide is visible beneath the next arrow\n let lastItemInView = carouselInner.scrollLeft + scrollArea + carouselInner.getBoundingClientRect().left >= (lastItemOffset + 60);\n let visibleItems = Math.round(scrollArea / itemWidth);\n //Check if theres room for more slides than we have\n let leftOverSpace = (Math.ceil(itemCount / visibleItems) * visibleItems) - itemCount;\n carouselProgress.setAttribute('step', visibleItems);\n if (leftOverSpace > 0 && lastItemInView) {\n targetSlide = (Math.floor(itemCount / visibleItems) * visibleItems) + 1;\n }\n Array.from(carouselElement.querySelectorAll('.carousel__controls button')).forEach((button, index) => {\n button.removeAttribute('aria-current');\n });\n carouselElement.querySelector('.control-' + targetSlide).setAttribute('aria-current', true);\n // Disable the previous button\n if (targetSlide == 1)\n carouselElement.querySelector('.btn-prev').setAttribute('disabled', 'disabled');\n else\n carouselElement.querySelector('.btn-prev').removeAttribute('disabled');\n // Disable the next button if the last item is in view\n if (targetSlide > (itemCount - visibleItems))\n carouselElement.querySelector('.btn-next').setAttribute('disabled', 'disabled');\n else\n carouselElement.querySelector('.btn-next').removeAttribute('disabled');\n carouselProgress.value = targetSlide;\n progressMax = getProgressMax(itemCount, visibleItems);\n carouselProgress.setAttribute('max', progressMax);\n percent = (targetSlide / progressMax) * 100;\n percent = getProgressPercent(targetSlide, progressMax);\n carouselProgress.style.setProperty('--percent', percent + \"%\");\n }, 100);\n }, false);\n // when the buttons are used we need to make sure the carousel scrolls to the correct place\n carouselControls.addEventListener('click', function (e) {\n for (var target = e.target; target && target != this; target = target.parentNode) {\n if (typeof target.matches == \"function\" && target.matches('button')) {\n e.preventDefault();\n Array.from(carouselControls.querySelectorAll('button')).forEach((button, index) => {\n button.removeAttribute('aria-current');\n });\n target.setAttribute('aria-current', true);\n const customEvent = new CustomEvent(\"pip-clicked\", { detail: {\n 'slide': target.getAttribute('data-slide')\n }\n });\n carouselComponent.dispatchEvent(customEvent);\n const el = carouselComponent.querySelector(`:scope > *:nth-child(${target.getAttribute('data-slide')})`);\n carouselInner.scroll({\n top: 0,\n left: el.offsetLeft - carouselInner.getBoundingClientRect().left,\n behavior: 'smooth'\n });\n break;\n }\n }\n }, false);\n carouselElement.addEventListener('click', function (e) {\n let scrollArea = carouselInner.clientWidth;\n let scrollWidth = carouselInner.scrollWidth;\n let itemWidth = carouselComponent.querySelector(':scope > div').scrollWidth;\n let visibleItems = Math.round(scrollArea / itemWidth);\n let lastItemOffset = carouselComponent.querySelector(':scope > div:last-child').offsetLeft;\n let lastItemInView = carouselInner.scrollLeft + scrollArea + carouselInner.getBoundingClientRect().left >= (lastItemOffset + 60);\n //Check if theres room for more slides than we have\n let leftOverSpace = (Math.ceil(itemCount / visibleItems) * visibleItems) - itemCount;\n /*\n When the last slide isn't filled with items, we only want to move back the number of items on the slide,\n rather than the total number of possible visible items\n */\n let spacesToMove = visibleItems - leftOverSpace;\n //Only want to change the amount of movement if the last item is visible\n let movement = lastItemInView && leftOverSpace > 0 ? spacesToMove * itemWidth : carouselInner.clientWidth;\n for (var target = e.target; target && target != this; target = target.parentNode) {\n if (typeof target.matches == \"function\" && target.matches('.btn-next, .btn-prev')) {\n let direction = target.matches('.btn-next') ? 'next' : 'prev';\n const customEvent = new CustomEvent(`${direction}-clicked`, { detail: {\n 'slide': target.getAttribute('data-go')\n }\n });\n carouselComponent.dispatchEvent(customEvent);\n e.preventDefault();\n let scrollTo = target.classList.contains('btn-prev') ? carouselInner.scrollLeft - movement : carouselInner.scrollLeft + carouselInner.clientWidth;\n carouselInner.scroll({\n top: 0,\n left: scrollTo,\n behavior: 'smooth'\n });\n break;\n }\n }\n }, false);\n carouselProgress.addEventListener(stepperStart, function (event) {\n clearInterval(stepperInterval);\n stepperInterval = setInterval(function () {\n scrollArea = carouselInner.clientWidth;\n itemWidth = carouselComponent.querySelector(':scope > div').scrollWidth;\n visibleItems = Math.round(scrollArea / itemWidth);\n carouselProgress.setAttribute('step', visibleItems);\n progressMax = getProgressMax(itemCount, visibleItems);\n carouselProgress.setAttribute('max', progressMax);\n percent = getProgressPercent(carouselProgress.value, progressMax);\n carouselProgress.style.setProperty('--percent', percent + \"%\");\n }, 10);\n });\n carouselProgress.addEventListener(stepperEvent, function (event) {\n clearInterval(stepperInterval);\n });\n carouselProgress.addEventListener('change', function (e) {\n clearInterval(stepperInterval);\n let target = carouselComponent.querySelector(`:scope > *:nth-child(${carouselProgress.value})`);\n carouselInner.scroll({\n top: 0,\n left: target ? target.offsetLeft - carouselInner.getBoundingClientRect().left : 0,\n behavior: 'smooth'\n });\n let direction = target.matches('.btn-next') ? 'next' : 'prev';\n const customEvent = new CustomEvent(`slider-changed`, { detail: {\n 'slide': carouselProgress.value\n }\n });\n carouselComponent.dispatchEvent(customEvent);\n }, false);\n};\nexport default carousel;\n","// @ts-nocheck\nexport 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 let 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\nimport { generateThumbnailList, generatePipsHTML, carousel } from \"../../modules/carousel.js\";\nimport { trackComponent, trackComponentRegistered } from \"../_global.js\";\ntrackComponentRegistered(\"iam-carousel\");\nclass iamCarousel extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/carousel.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <div class=\"carousel\" part=\"carousel\">\n <div class=\"carousel__wrapper\">\n <div class=\"carousel__inner\">\n <div class=\"carousel__content\" part=\"content\">\n <slot></slot>\n </div>\n </div>\n \n </div>\n <div class=\"carousel__btns\" part=\"btns\">\n <button class=\"btn btn-secondary btn-compact fa-plus-large btn-prev\" data-go=\"0\" disabled part=\"prev\">Prev</button>\n <button class=\"btn btn-secondary btn-compact fa-plus-large btn-next\" data-go=\"2\" part=\"next\">Next</button>\n </div>\n\n <div class=\"carousel__controls\" part=\"controls\">\n \n </div>\n\n <div class=\"carousel__progress\" part=\"progress\">\n <input type=\"range\" min=\"0\" max=\"100\" value=\"1\" step=\"1\">\n </div>\n\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const carouselComponent = this;\n const carouselElement = this.shadowRoot.querySelector('.carousel');\n const row = this.shadowRoot.querySelector('.row');\n let thumbnailImages = [];\n const carouselControls = this.shadowRoot.querySelector('.carousel__controls');\n if (carouselComponent.querySelector('[data-thumbnail]')) {\n thumbnailImages = generateThumbnailList(carouselComponent);\n carouselComponent.classList.add('thumbnails');\n }\n // populate the pips\n carouselControls.innerHTML = generatePipsHTML(carouselComponent, thumbnailImages);\n Array.from(carouselComponent.querySelectorAll(':scope > div > img:first-child:last-child, :scope > div > picture:first-child:last-child img')).forEach((image, index) => {\n image.style.inset = \"0 0.5rem 0 0.5rem\";\n image.style.position = \"absolute\";\n image.style.width = \"calc(100% - 1rem)\";\n image.style.height = \"100%\";\n image.style['object-fit'] = \"cover\";\n image.closest('div').classList.add('image__wrapper');\n });\n carousel(carouselComponent);\n trackComponent(carouselComponent, \"iam-carousel\", ['pip-clicked', 'next-clicked', 'prev-clicked', 'slider-changed']);\n }\n attributeChangedCallback(attrName, oldVal, newVal) {\n }\n}\nexport default iamCarousel;\n"],"names":["generateThumbnailList","carouselComponent","thumbnailImages","slide","index","generatePipsHTML","itemCount","pips","i","pipContent","pipClass","getProgressMax","visibleItems","getProgressPercent","value","max","carousel","scrollTimeout","carouselElement","carouselInner","carouselControls","carouselProgress","scrollArea","itemWidth","progressMax","percent","stepperInterval","stepperEvent","stepperStart","e","scrollWidth","scrollLeft","targetSlide","lastItemOffset","lastItemInView","leftOverSpace","button","target","customEvent","el","spacesToMove","movement","direction","scrollTo","event","trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","eventDetails","eventKey","eventDetail","iamCarousel","template","image","attrName","oldVal","newVal"],"mappings":";;;IACO,MAAMA,EAAwB,SAAUC,EAAmB,CAC9D,IAAIC,EAAkB,CAAA,EACtB,aAAM,KAAKD,EAAkB,iBAAiB,cAAc,CAAC,EAAE,QAAQ,CAACE,EAAOC,IAAU,CACjFD,EAAM,aAAa,gBAAgB,IACnCD,EAAgBE,CAAK,EAAID,EAAM,aAAa,gBAAgB,EAExE,CAAK,EACMD,CACX,EACaG,EAAmB,SAAUJ,EAAmBC,EAAiB,CAC1E,IAAII,EAAYL,EAAkB,iBAAiB,cAAc,EAAE,OAC/DM,EAAO,GACX,QAASC,EAAI,EAAGA,GAAKF,EAAWE,IAAK,CACjC,IAAIC,EAAa,KACbC,EAAW,GACXR,EAAgB,QAAUA,EAAgBM,EAAI,CAAC,GAC/CE,EAAW,gBACXD,EAAa,aAAaP,EAAgBM,EAAI,CAAC,iBAAiBA,qBAGhEC,EAAa,SAASD,IAE1BD,GAAQ,0BAA0BC,KAAKE,kBAAyBF,MAAMA,GAAK,EAAI,eAAiB,MAAMC,aAE1G,OAAOF,CACX,EACMI,EAAiB,SAAUL,EAAWM,EAAc,CACtD,OAAIA,GAAgB,EACTN,EAEA,KAAK,KAAKA,EAAYM,CAAY,EAAIA,EAAgBA,EACpD,CACjB,EACMC,EAAqB,SAAUC,EAAOC,EAAK,CAC7C,OAAUD,EAAQ,IAAMC,EAAM,GAAM,GACxC,EACaC,EAAW,SAAUf,EAAmB,CACjD,IAAIgB,EACJ,MAAMC,EAAkBjB,EAAkB,WAAW,cAAc,WAAW,EAC9E,IAAIkB,EAAgBD,EAAgB,cAAc,kBAAkB,EAChEE,EAAmBF,EAAgB,cAAc,qBAAqB,EACtEG,EAAmBH,EAAgB,cAAc,oCAAoC,EACrFZ,EAAYL,EAAkB,iBAAiB,cAAc,EAAE,OAC/DqB,EAAaH,EAAc,YAC3BI,EAAYtB,EAAkB,cAAc,cAAc,EAAE,YAC5DW,EAAe,KAAK,MAAMU,EAAaC,CAAS,EACpDF,EAAiB,aAAa,MAAO,CAAC,EACtCA,EAAiB,aAAa,OAAQT,CAAY,EAClD,IAAIY,EAAcb,EAAeL,EAAWM,CAAY,EACxDS,EAAiB,aAAa,MAAOG,CAAW,EAChDH,EAAiB,MAAQ,EACzB,IAAII,EAAUZ,EAAmB,EAAGW,CAAW,EAC/CH,EAAiB,MAAM,YAAY,YAAaI,EAAU,GAAG,EAC7D,IAAIC,EAAiBC,EAAe,UAAWC,EAAe,YAC1D,iBAAkB,SAAS,kBAC3BD,EAAe,WACfC,EAAe,cAGnBT,EAAc,iBAAiB,SAAU,SAAUU,EAAG,CAClD,aAAaZ,CAAa,EAC1BA,EAAgB,WAAW,UAAY,CACnC,IAAIK,EAAaH,EAAc,YAC3BW,EAAcX,EAAc,YAC5BY,EAAaZ,EAAc,WAC3Ba,EAAc,KAAK,MAAOD,EAAaD,EAAexB,CAAS,EAAI,EACnEiB,EAAYtB,EAAkB,cAAc,cAAc,EAAE,YAC5DgC,EAAiBhC,EAAkB,cAAc,yBAAyB,EAAE,WAE5EiC,EAAiBf,EAAc,WAAaG,EAAaH,EAAc,sBAAqB,EAAG,MAASc,EAAiB,GACzHrB,EAAe,KAAK,MAAMU,EAAaC,CAAS,EAEhDY,EAAiB,KAAK,KAAK7B,EAAYM,CAAY,EAAIA,EAAgBN,EAC3Ee,EAAiB,aAAa,OAAQT,CAAY,EAC9CuB,EAAgB,GAAKD,IACrBF,EAAe,KAAK,MAAM1B,EAAYM,CAAY,EAAIA,EAAgB,GAE1E,MAAM,KAAKM,EAAgB,iBAAiB,4BAA4B,CAAC,EAAE,QAAQ,CAACkB,EAAQhC,IAAU,CAClGgC,EAAO,gBAAgB,cAAc,CACrD,CAAa,EACDlB,EAAgB,cAAc,YAAcc,CAAW,EAAE,aAAa,eAAgB,EAAI,EAEtFA,GAAe,EACfd,EAAgB,cAAc,WAAW,EAAE,aAAa,WAAY,UAAU,EAE9EA,EAAgB,cAAc,WAAW,EAAE,gBAAgB,UAAU,EAErEc,EAAe1B,EAAYM,EAC3BM,EAAgB,cAAc,WAAW,EAAE,aAAa,WAAY,UAAU,EAE9EA,EAAgB,cAAc,WAAW,EAAE,gBAAgB,UAAU,EACzEG,EAAiB,MAAQW,EACzBR,EAAcb,EAAeL,EAAWM,CAAY,EACpDS,EAAiB,aAAa,MAAOG,CAAW,EAChDC,EAAWO,EAAcR,EAAe,IACxCC,EAAUZ,EAAmBmB,EAAaR,CAAW,EACrDH,EAAiB,MAAM,YAAY,YAAaI,EAAU,GAAG,CAChE,EAAE,GAAG,CACT,EAAE,EAAK,EAERL,EAAiB,iBAAiB,QAAS,SAAUS,EAAG,CACpD,QAASQ,EAASR,EAAE,OAAQQ,GAAUA,GAAU,KAAMA,EAASA,EAAO,WAClE,GAAI,OAAOA,EAAO,SAAW,YAAcA,EAAO,QAAQ,QAAQ,EAAG,CACjER,EAAE,eAAc,EAChB,MAAM,KAAKT,EAAiB,iBAAiB,QAAQ,CAAC,EAAE,QAAQ,CAACgB,EAAQhC,IAAU,CAC/EgC,EAAO,gBAAgB,cAAc,CACzD,CAAiB,EACDC,EAAO,aAAa,eAAgB,EAAI,EACxC,MAAMC,EAAc,IAAI,YAAY,cAAe,CAAE,OAAQ,CACrD,MAASD,EAAO,aAAa,YAAY,CAC5C,CACrB,CAAiB,EACDpC,EAAkB,cAAcqC,CAAW,EAC3C,MAAMC,EAAKtC,EAAkB,cAAc,wBAAwBoC,EAAO,aAAa,YAAY,IAAI,EACvGlB,EAAc,OAAO,CACjB,IAAK,EACL,KAAMoB,EAAG,WAAapB,EAAc,sBAAuB,EAAC,KAC5D,SAAU,QAC9B,CAAiB,EACD,MAGX,EAAE,EAAK,EACRD,EAAgB,iBAAiB,QAAS,SAAUW,EAAG,CACnD,IAAIP,EAAaH,EAAc,YACbA,EAAc,YAChC,IAAII,EAAYtB,EAAkB,cAAc,cAAc,EAAE,YAC5DW,EAAe,KAAK,MAAMU,EAAaC,CAAS,EAChDU,EAAiBhC,EAAkB,cAAc,yBAAyB,EAAE,WAC5EiC,EAAiBf,EAAc,WAAaG,EAAaH,EAAc,sBAAqB,EAAG,MAASc,EAAiB,GAEzHE,EAAiB,KAAK,KAAK7B,EAAYM,CAAY,EAAIA,EAAgBN,EAKvEkC,EAAe5B,EAAeuB,EAE9BM,EAAWP,GAAkBC,EAAgB,EAAIK,EAAejB,EAAYJ,EAAc,YAC9F,QAASkB,EAASR,EAAE,OAAQQ,GAAUA,GAAU,KAAMA,EAASA,EAAO,WAClE,GAAI,OAAOA,EAAO,SAAW,YAAcA,EAAO,QAAQ,sBAAsB,EAAG,CAC/E,IAAIK,EAAYL,EAAO,QAAQ,WAAW,EAAI,OAAS,OACvD,MAAMC,EAAc,IAAI,YAAY,GAAGI,YAAqB,CAAE,OAAQ,CAC9D,MAASL,EAAO,aAAa,SAAS,CACzC,CACrB,CAAiB,EACDpC,EAAkB,cAAcqC,CAAW,EAC3CT,EAAE,eAAc,EAChB,IAAIc,EAAWN,EAAO,UAAU,SAAS,UAAU,EAAIlB,EAAc,WAAasB,EAAWtB,EAAc,WAAaA,EAAc,YACtIA,EAAc,OAAO,CACjB,IAAK,EACL,KAAMwB,EACN,SAAU,QAC9B,CAAiB,EACD,MAGX,EAAE,EAAK,EACRtB,EAAiB,iBAAiBO,EAAc,SAAUgB,EAAO,CAC7D,cAAclB,CAAe,EAC7BA,EAAkB,YAAY,UAAY,CACtCJ,EAAaH,EAAc,YAC3BI,EAAYtB,EAAkB,cAAc,cAAc,EAAE,YAC5DW,EAAe,KAAK,MAAMU,EAAaC,CAAS,EAChDF,EAAiB,aAAa,OAAQT,CAAY,EAClDY,EAAcb,EAAeL,EAAWM,CAAY,EACpDS,EAAiB,aAAa,MAAOG,CAAW,EAChDC,EAAUZ,EAAmBQ,EAAiB,MAAOG,CAAW,EAChEH,EAAiB,MAAM,YAAY,YAAaI,EAAU,GAAG,CAChE,EAAE,EAAE,CACb,CAAK,EACDJ,EAAiB,iBAAiBM,EAAc,SAAUiB,EAAO,CAC7D,cAAclB,CAAe,CACrC,CAAK,EACDL,EAAiB,iBAAiB,SAAU,SAAUQ,EAAG,CACrD,cAAcH,CAAe,EAC7B,IAAIW,EAASpC,EAAkB,cAAc,wBAAwBoB,EAAiB,QAAQ,EAC9FF,EAAc,OAAO,CACjB,IAAK,EACL,KAAMkB,EAASA,EAAO,WAAalB,EAAc,sBAAqB,EAAG,KAAO,EAChF,SAAU,QACtB,CAAS,EACekB,EAAO,QAAQ,WAAW,EAC1C,MAAMC,EAAc,IAAI,YAAY,iBAAkB,CAAE,OAAQ,CACxD,MAASjB,EAAiB,KAC7B,CACb,CAAS,EACDpB,EAAkB,cAAcqC,CAAW,CAC9C,EAAE,EAAK,CACZ,EC7LaO,EAA4BC,GAAkB,CAEvD,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAS,0BACT,QAAWA,CACnB,CAAK,CACL,EACaC,EAAiB,CAACC,EAAWF,EAAeG,KAErD,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAS,qBACT,QAAWH,CACnB,CAAK,EACDG,EAAY,QAASC,GAAc,CAC/BF,EAAU,iBAAiBE,EAAW,SAAUN,EAAO,CACnD,IAAIO,EAAe,CACf,MAASD,EACT,QAAWJ,EACX,OAAUF,EAAM,MAChC,EACY,OAAO,KAAKA,EAAM,MAAM,EAAE,QAASQ,GAAa,CAC5C,MAAMC,EAAcT,EAAM,OAAOQ,CAAQ,EACzCD,EAAaC,CAAQ,EAAIC,CACzC,CAAa,EACD,OAAO,UAAU,KAAKF,CAAY,CAC9C,CAAS,CACT,CAAK,EACM,IC3BXN,EAAyB,cAAc,EACvC,MAAMS,UAAoB,WAAY,CAClC,aAAc,CACV,QACA,KAAK,aAAa,CAAE,KAAM,MAAQ,CAAA,EACZ,SAAS,KAAK,aAAa,sBAAsB,GAAI,SAAS,KAAK,aAAa,sBAAsB,EAE5H,MAAMC,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA;AAAA;AAAA,MAGvB,KAAK,aAAa,KAAK,EAAI,YAAY,KAAK,aAAa,KAAK,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA0BpE,KAAK,WAAW,YAAYA,EAAS,QAAQ,UAAU,EAAI,CAAC,CAChE,CACA,mBAAoB,CAChB,MAAMtD,EAAoB,KACF,KAAK,WAAW,cAAc,WAAW,EACrD,KAAK,WAAW,cAAc,MAAM,EAChD,IAAIC,EAAkB,CAAA,EACtB,MAAMkB,EAAmB,KAAK,WAAW,cAAc,qBAAqB,EACxEnB,EAAkB,cAAc,kBAAkB,IAClDC,EAAkBF,EAAsBC,CAAiB,EACzDA,EAAkB,UAAU,IAAI,YAAY,GAGhDmB,EAAiB,UAAYf,EAAiBJ,EAAmBC,CAAe,EAChF,MAAM,KAAKD,EAAkB,iBAAiB,8FAA8F,CAAC,EAAE,QAAQ,CAACuD,EAAOpD,IAAU,CACrKoD,EAAM,MAAM,MAAQ,oBACpBA,EAAM,MAAM,SAAW,WACvBA,EAAM,MAAM,MAAQ,oBACpBA,EAAM,MAAM,OAAS,OACrBA,EAAM,MAAM,YAAY,EAAI,QAC5BA,EAAM,QAAQ,KAAK,EAAE,UAAU,IAAI,gBAAgB,CAC/D,CAAS,EACDxC,EAASf,CAAiB,EAC1B8C,EAAe9C,EAAmB,eAAgB,CAAC,cAAe,eAAgB,eAAgB,gBAAgB,CAAC,CACvH,CACA,yBAAyBwD,EAAUC,EAAQC,EAAQ,CACnD,CACJ"}
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * iamKey v6.1.0--beta
3
- * Copyright 2022-2024 iamproperty
2
+ * iamKey v6.1.0--beta3
3
+ * Copyright 2022-2025 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"collapsible side menu"});class a extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const e=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",t=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${e}/css/core.min.css`,n=document.createElement("template");n.innerHTML=`
5
5
  <style class="styles">
6
6
  @import "${t}";
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * iamKey v6.1.0--beta
3
- * Copyright 2022-2024 iamproperty
2
+ * iamKey v6.1.0--beta3
3
+ * Copyright 2022-2025 iamproperty
4
4
  */function v(d,s){const n=s.querySelector(".files"),i=s.querySelector(".drop-area"),e=d.querySelector("input"),f=d.hasAttribute("data-maxsize")?d.getAttribute("data-maxsize"):0,u=s.querySelector(".invalid-feedback.size"),h=s.querySelector(".invalid-feedback.ext"),o=e.cloneNode();i.append(o);let b=function(t){if(!e.hasAttribute("accept"))return!0;const r=t.split(".").pop();return!!e.getAttribute("accept").includes(r)};if(s.addEventListener("click",t=>{t&&t.target instanceof HTMLElement&&t.target.closest(".btn-primary")&&(t.target.closest(".btn-primary"),h.classList.remove("d-block"),u.classList.remove("d-block"),(e.hasAttribute("multiple")?o:e).click())}),s.addEventListener("click",t=>{if(t&&t.target instanceof HTMLElement&&t.target.closest(".files button")){const r=new DataTransfer,{files:a}=e,m=t.target.closest(".files button");for(let p=0;p<a.length;p++){const l=a[p];l.name!=m.getAttribute("data-file")&&r.items.add(l)}e.files=r.files;const c=new Event("change");e.dispatchEvent(c)}}),o.addEventListener("change",t=>{if(e.hasAttribute("multiple")){const a=[...e.files,...o.files];let m=[];const c=new DataTransfer;for(let p=0;p<a.length;p++){const l=a[p],g=l.size/1e3;!m.includes(l.name)&&(f==0||g<f)&&b(l.name)&&c.items.add(l),b(l.name)||h.classList.add("d-block"),g>f&&u.classList.add("d-block"),m.push(l.name)}e.files=c.files}else e.files=o.files;const r=new Event("change");e.dispatchEvent(r)}),o.addEventListener("dragenter",t=>{o.classList.add("focus")}),o.addEventListener("dragleave",t=>{o.classList.remove("focus")}),o.addEventListener("drop",t=>{o.classList.remove("focus")}),e.addEventListener("change",t=>{if(e.files.length==1){let a=e.files[0];const m=a.size/1e3;if(!b(a.name)){h.classList.add("d-block");const c=new DataTransfer;e.files=c.files}if(m>f){u.classList.add("d-block");const c=new DataTransfer;e.files=c.files}}n.innerHTML="";for(const a of e.files)n.innerHTML+=`<span class="file" part="file">${a.name} <button data-file="${a.name}">Remove</button></span>`;const r=new CustomEvent("elementchange",{detail:{files:e.files}});if(d.dispatchEvent(r),e.files.length==0){const a=new CustomEvent("empty");d.dispatchEvent(a)}}),d.hasAttribute("data-filename")){let t=d.getAttribute("data-filename");t&&(n.innerHTML=`<span class="file">${t} <button data-file="${t}">Remove</button></span>`)}}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"fileupload"});class y extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const s=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",n=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${s}/css/core.min.css`,i=document.createElement("template");i.innerHTML=`
5
5
  <style>
6
6
  @import "${n}";
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * iamKey v6.1.0--beta
3
- * Copyright 2022-2024 iamproperty
2
+ * iamKey v6.1.0--beta3
3
+ * Copyright 2022-2025 iamproperty
4
4
  */const h=e=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:e})},p=(e,t,a)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),a.forEach(o=>{e.addEventListener(o,function(i){let r={event:o,element:t,target:i.target};Object.keys(i.detail).forEach(d=>{const s=i.detail[d];r[d]=s}),window.dataLayer.push(r)})}),!0),g=`<div class="card__head" part="head">
5
5
  <slot name="head"></slot>
6
6
  </div>
@@ -15,13 +15,13 @@
15
15
  </div>
16
16
  <div class="card__footer" part="footer">
17
17
  <slot name="footer"></slot>
18
- </div>`,u=e=>{e.classList.add("card");const t=e.shadowRoot.querySelector(".card__head"),a=e.shadowRoot.querySelector(".card__body");e.hasAttribute("data-image")&&(t.innerHTML+=`<img src="${e.getAttribute("data-image")}" alt="" loading="lazy" part="image" />`),e.hasAttribute("data-total")?a.insertAdjacentHTML("beforeend",`<div class="card__total">${e.getAttribute("data-total")}</div>`):e.querySelector('[slot="total-icon"]')&&a.insertAdjacentHTML("beforeend",'<div class="card__total"><slot name="total-icon"></slot></div>'),e.querySelector('[slot="badges"]')||e.shadowRoot.querySelector(".card__badges").remove()};var f=function(e,t,a,o){function i(r){return r instanceof a?r:new a(function(d){d(r)})}return new(a||(a=Promise))(function(r,d){function s(n){try{c(o.next(n))}catch(l){d(l)}}function m(n){try{c(o.throw(n))}catch(l){d(l)}}function c(n){n.done?r(n.value):i(n.value).then(s,m)}c((o=o.apply(e,t||[])).next())})};h("iam-filter-card");class v extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
18
+ </div>`,u=e=>{e.classList.add("card");const t=e.shadowRoot.querySelector(".card__head"),a=e.shadowRoot.querySelector(".card__body");e.hasAttribute("data-image")&&(t.innerHTML+=`<img src="${e.getAttribute("data-image")}" alt="" loading="lazy" part="image" />`),e.hasAttribute("data-total")?a.insertAdjacentHTML("beforeend",`<div class="card__total">${e.getAttribute("data-total")}</div>`):e.querySelector('[slot="total-icon"]')&&a.insertAdjacentHTML("beforeend",'<div class="card__total"><slot name="total-icon"></slot></div>'),e.querySelector('[slot="badges"]')?e.shadowRoot.querySelector(".card__badges").classList.remove("empty"):e.shadowRoot.querySelector(".card__badges").classList.add("empty")};var f=function(e,t,a,o){function i(r){return r instanceof a?r:new a(function(d){d(r)})}return new(a||(a=Promise))(function(r,d){function s(n){try{c(o.next(n))}catch(l){d(l)}}function m(n){try{c(o.throw(n))}catch(l){d(l)}}function c(n){n.done?r(n.value):i(n.value).then(s,m)}c((o=o.apply(e,t||[])).next())})};h("iam-filter-card");class b extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
19
19
  <style>
20
20
  ${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
21
21
 
22
- :host{--card-icon-right: 1rem;--card-head-top-padding: 2rem;--card-head-bottom-padding: 2rem;--card-footer-bottom-padding: 1.5rem;--card-head-height: 6rem;box-shadow:var(--card-box-shadow);border-radius:var(--card-border-radius);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);width:100%;text-align:left;display:flex;flex-direction:column;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:2px solid var(--outline-colour, --colour-canvas-2);outline-offset:-2px;margin-bottom:2rem}:host>*{width:100%;box-sizing:border-box}:host-context(:is(a,label,button)){margin-bottom:0 !important}:host(.border-0){box-shadow:none;--card-left-padding: 0rem;outline-offset:1px !important}.card__head:has(img){min-height:var(--card-head-height);position:relative;overflow:hidden;background:rgba(0,0,0,.1);z-index:-1}.card__head:has(img)>img{position:absolute;top:0;left:0;margin:-2px;width:calc(100% + 4px);height:calc(100% + 4px);object-fit:cover}.card__body{padding:var(--card-head-top-padding) var(--card-right-padding) var(--card-head-bottom-padding) var(--card-left-padding)}.card__footer{margin-top:0;padding:0 var(--card-right-padding) 0 var(--card-left-padding)}::slotted(i){font-size:1.5rem !important;margin:-3px var(--card-icon-right) 0 0 !important;vertical-align:middle !important}::slotted(i:not(.fa-light):not(.fa-bold)){font-weight:400 !important}::slotted(.badge){margin-bottom:.375rem !important}::slotted(span:not(.badge)){display:block !important;font-weight:normal !important;font-size:1rem !important}::slotted(small){padding-top:1rem !important;display:block !important;font-weight:normal !important;padding-bottom:0 !important;color:var(--colour-body)}::slotted(span:not(.badge):not([class*=pt-])){padding-top:1.5rem !important}::slotted(:is(a,button)[slot=footer]){margin-bottom:var(--card-footer-bottom-padding) !important}.card__body:has(.card__total){--card-head-top-padding: 1rem;--card-head-bottom-padding: 1.5rem}.card__total{font-size:3rem;line-height:3rem;padding-right:1rem;margin-top:.5rem}.card__total i{font-family:var(--fa-style-family, "Font Awesome 6 Pro");font-weight:var(--fa-style, 900);display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important}::slotted([slot=total-icon]){display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important;line-height:2.5rem}.card__head:has(img)~.card__badges{position:absolute;top:0;text-align:left;left:0;z-index:9}.card__badges{padding:var(--card-badges-top-padding, 1rem) var(--card-right-padding) 0 var(--card-left-padding);margin-bottom:-1.5rem}:host{--top-padding: 1.5rem;--right-padding: 1rem;--bottom-padding: 1.5rem;--left-padding: 1rem}:host:has(.card__total) .card__body{align-items:center;display:flex}:host:before,:host:after{display:none}:host.card--has-icon{--bottom-padding: 1rem;border:none}:host .icon{font-size:1.125rem !important;height:1.125rem !important;margin:0 0 .5rem 0 !important;font-weight:400 !important;display:block !important}:host .card__total{margin-top:0;order:-1}:host(:is(:hover,:focus,.hover)){outline:none}:host(:is(:hover,:focus,.hover)) :is(.card__body,.card__footer){background:#eee}:host-context(:is(:checked,.checked)),:host(:is(:active,.active)){outline:2px solid var(--colour, var(--colour-primary));outline-offset:-2px}:host-context(:is(:checked,.checked)) .card__body,:host(:is(:active,.active)) .card__body{background:none}:host-context(:is(:checked,.checked)) .card__footer,:host(:is(:active,.active)) .card__footer{background:none}::slotted(i){display:block !important;font-size:1.125rem !important;margin:0 0 .5rem 0 !important}:host(.card--flag){position:relative}:host(.card--flag):after{content:var(--card-flag-icon, "\\f024");font-family:"Font Awesome 6 Pro";position:absolute;top:1rem;right:1rem;font-size:1rem;line-height:1;height:1rem;width:1rem;display:inline-block;font-weight:normal;color:var(--colour, var(--colour-primary))}.card__body:has(.card__total){--card-head-top-padding: 2rem;--card-head-bottom-padding: 2rem;display:flex;align-items:center}.card__total{order:-1}/*# sourceMappingURL=assets/css/components/filter-card.component.css.map */
22
+ :host{--card-icon-right: 1rem;--card-head-top-padding: 2rem;--card-head-bottom-padding: 2rem;--card-footer-bottom-padding: 1.5rem;--card-head-height: 6rem;box-shadow:var(--card-box-shadow);border-radius:var(--card-border-radius);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);width:100%;text-align:left;display:flex;flex-direction:column;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:2px solid var(--outline-colour, --colour-canvas-2);outline-offset:-2px;margin-bottom:2rem}:host>*{width:100%;box-sizing:border-box}:host-context(:is(a,label,button)){margin-bottom:0 !important}:host(.border-0){box-shadow:none;--card-left-padding: 0rem;outline-offset:1px !important}.card__head:has(img){min-height:var(--card-head-height);position:relative;overflow:hidden;background:rgba(0,0,0,.1);z-index:-1}.card__head:has(img)>img{position:absolute;top:0;left:0;margin:-2px;width:calc(100% + 4px);height:calc(100% + 4px);object-fit:cover}.card__body{padding:var(--card-head-top-padding) var(--card-right-padding) var(--card-head-bottom-padding) var(--card-left-padding)}.card__footer{margin-top:0;padding:0 var(--card-right-padding) 0 var(--card-left-padding)}::slotted(i){font-size:1.5rem !important;margin:-3px var(--card-icon-right) 0 0 !important;vertical-align:middle !important}::slotted(i:not(.fa-light):not(.fa-bold)){font-weight:400 !important}::slotted(.badge){margin-bottom:.375rem !important}::slotted(span:not(.badge)){display:block !important;font-weight:normal !important;font-size:1rem !important}::slotted(small){padding-top:1rem !important;display:block !important;font-weight:normal !important;padding-bottom:0 !important;color:var(--colour-body)}::slotted(span:not(.badge):not([class*=pt-])){padding-top:1.5rem !important}::slotted(:is(a,button)[slot=footer]){margin-bottom:var(--card-footer-bottom-padding) !important}.card__body:has(.card__total){--card-head-top-padding: 1rem;--card-head-bottom-padding: 1.5rem}.card__total{font-size:3rem;line-height:3rem;padding-right:1rem;margin-top:.5rem}.card__total i{font-family:var(--fa-style-family, "Font Awesome 6 Pro");font-weight:var(--fa-style, 900);display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important}::slotted([slot=total-icon]){display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important;line-height:2.5rem}.card__head:has(img)~.card__badges{position:absolute;top:0;text-align:left;left:0;z-index:9}.card__badges:not(.empty){padding:var(--card-badges-top-padding, 1rem) var(--card-right-padding) 0 var(--card-left-padding);margin-bottom:-1.5rem}:host{--top-padding: 1.5rem;--right-padding: 1rem;--bottom-padding: 1.5rem;--left-padding: 1rem}:host:has(.card__total) .card__body{align-items:center;display:flex}:host:before,:host:after{display:none}:host.card--has-icon{--bottom-padding: 1rem;border:none}:host .icon{font-size:1.125rem !important;height:1.125rem !important;margin:0 0 .5rem 0 !important;font-weight:400 !important;display:block !important}:host .card__total{margin-top:0;order:-1}:host(:is(:hover,:focus,.hover)){outline:none}:host(:is(:hover,:focus,.hover)) :is(.card__body,.card__footer){background:#eee}:host-context(:is(:checked,.checked)),:host(:is(:active,.active)){outline:2px solid var(--colour, var(--colour-primary));outline-offset:-2px}:host-context(:is(:checked,.checked)) .card__body,:host(:is(:active,.active)) .card__body{background:none}:host-context(:is(:checked,.checked)) .card__footer,:host(:is(:active,.active)) .card__footer{background:none}::slotted(i){display:block !important;font-size:1.125rem !important;margin:0 0 .5rem 0 !important}:host(.card--flag){position:relative}:host(.card--flag):after{content:var(--card-flag-icon, "\\f024");font-family:"Font Awesome 6 Pro";position:absolute;top:1rem;right:1rem;font-size:1rem;line-height:1;height:1rem;width:1rem;display:inline-block;font-weight:normal;color:var(--colour, var(--colour-primary))}.card__body:has(.card__total){--card-head-top-padding: 2rem;--card-head-bottom-padding: 2rem;display:flex;align-items:center}.card__total{order:-1}/*# sourceMappingURL=assets/css/components/filter-card.component.css.map */
23
23
 
24
24
  </style>
25
25
  ${g}
26
- `,this.shadowRoot.appendChild(t.content.cloneNode(!0))}connectedCallback(){return f(this,void 0,void 0,function*(){const t=this;t.shadowRoot.querySelector(".card__head"),u(t);const a=t.parentElement.querySelector('input[type="checkbox"]');if(a&&a.addEventListener("change",o=>{if(a.checked){const i=new CustomEvent("select-card",{detail:{"Card value":a.value,"input name":a.getAttribute("name")}});t.dispatchEvent(i),t.classList.add("active")}else{const i=new CustomEvent("unselect-card",{detail:{"Card value":a.value,"input name":a.getAttribute("name")}});t.dispatchEvent(i),t.classList.remove("active")}}),t.parentElement.matches("button")){const o=t.parentElement;o.addEventListener("click",i=>{if(t.classList.contains("active")){const r=new CustomEvent("unselect-card",{detail:{"button name":o.getAttribute("name")}});t.dispatchEvent(r),t.classList.remove("active")}else{const r=new CustomEvent("select-card",{detail:{"button name":o.getAttribute("name")}});t.dispatchEvent(r),t.classList.add("active")}})}p(t,"iam-filter-card",["select-card","unselect-card"])})}}export{v as default};
26
+ `,this.shadowRoot.appendChild(t.content.cloneNode(!0))}connectedCallback(){return f(this,void 0,void 0,function*(){const t=this;t.shadowRoot.querySelector(".card__head"),u(t);const a=t.parentElement.querySelector('input[type="checkbox"]');if(a&&a.addEventListener("change",o=>{if(a.checked){const i=new CustomEvent("select-card",{detail:{"Card value":a.value,"input name":a.getAttribute("name")}});t.dispatchEvent(i),t.classList.add("active")}else{const i=new CustomEvent("unselect-card",{detail:{"Card value":a.value,"input name":a.getAttribute("name")}});t.dispatchEvent(i),t.classList.remove("active")}}),t.parentElement.matches("button")){const o=t.parentElement;o.addEventListener("click",i=>{if(t.classList.contains("active")){const r=new CustomEvent("unselect-card",{detail:{"button name":o.getAttribute("name")}});t.dispatchEvent(r),t.classList.remove("active")}else{const r=new CustomEvent("select-card",{detail:{"button name":o.getAttribute("name")}});t.dispatchEvent(r),t.classList.add("active")}})}p(t,"iam-filter-card",["select-card","unselect-card"])})}}export{b as default};
27
27
  //# sourceMappingURL=filter-card.component.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-card.component.min.js","sources":["../_global.js","../../modules/card.module.js","filter-card.component.js"],"sourcesContent":["// @ts-nocheck\nexport 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 let 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","export const cardHTML = `<div class=\"card__head\" part=\"head\">\n <slot name=\"head\"></slot>\n</div>\n<div class=\"card__badges\"><slot name=\"badges\"></slot></div>\n<slot name=\"checkbox\" class=\"activate-prevent-hover\"></slot>\n<div class=\"card__body\" part=\"body\">\n <slot></slot>\n <slot name=\"secondary\" part=\"secondary\"></slot>\n</div>\n<div class=\"card__details\" part=\"details\">\n <slot name=\"details\"></slot>\n</div>\n<div class=\"card__footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n</div>`;\nexport const setupCard = (cardComponent) => {\n cardComponent.classList.add('card');\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const cardBody = cardComponent.shadowRoot.querySelector('.card__body');\n if (cardComponent.hasAttribute('data-image')) {\n cardHead.innerHTML += `<img src=\"${cardComponent.getAttribute('data-image')}\" alt=\"\" loading=\"lazy\" part=\"image\" />`;\n }\n // Inset the HTML for the data total or icon fallback\n if (cardComponent.hasAttribute('data-total')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\">${cardComponent.getAttribute('data-total')}</div>`);\n }\n else if (cardComponent.querySelector('[slot=\"total-icon\"]')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\"><slot name=\"total-icon\"></slot></div>`);\n }\n if (!cardComponent.querySelector('[slot=\"badges\"]')) {\n cardComponent.shadowRoot.querySelector('.card__badges').remove();\n }\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n// @ts-nocheck\nimport { trackComponent, trackComponentRegistered } from \"../_global.js\";\nimport { cardHTML, setupCard } from \"../../modules/card.module.js\";\ntrackComponentRegistered(\"iam-filter-card\");\nclass iamFilerCard extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/filter-card.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n ${cardHTML}\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n const cardComponent = this;\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n setupCard(cardComponent);\n // Dispatch events of selecting checkboxes\n const checkbox = cardComponent.parentElement.querySelector('input[type=\"checkbox\"]');\n if (checkbox) {\n checkbox.addEventListener('change', (event) => {\n if (checkbox.checked) {\n const customEvent = new CustomEvent(\"select-card\", { detail: { 'Card value': checkbox.value, 'input name': checkbox.getAttribute('name') } });\n cardComponent.dispatchEvent(customEvent);\n cardComponent.classList.add('active');\n }\n else {\n const customEvent = new CustomEvent(\"unselect-card\", { detail: { 'Card value': checkbox.value, 'input name': checkbox.getAttribute('name') } });\n cardComponent.dispatchEvent(customEvent);\n cardComponent.classList.remove('active');\n }\n });\n }\n if (cardComponent.parentElement.matches('button')) {\n const button = cardComponent.parentElement;\n button.addEventListener('click', (event) => {\n if (!cardComponent.classList.contains('active')) {\n const customEvent = new CustomEvent(\"select-card\", { detail: { 'button name': button.getAttribute('name') } });\n cardComponent.dispatchEvent(customEvent);\n cardComponent.classList.add('active');\n }\n else {\n const customEvent = new CustomEvent(\"unselect-card\", { detail: { 'button name': button.getAttribute('name') } });\n cardComponent.dispatchEvent(customEvent);\n cardComponent.classList.remove('active');\n }\n });\n }\n trackComponent(cardComponent, \"iam-filter-card\", ['select-card', 'unselect-card']);\n });\n }\n}\nexport default iamFilerCard;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","cardHTML","setupCard","cardComponent","cardHead","cardBody","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","iamFilerCard","template","checkbox","customEvent","button"],"mappings":";;;IACO,MAAMA,EAA4BC,GAAkB,CAEvD,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAS,0BACT,QAAWA,CACnB,CAAK,CACL,EACaC,EAAiB,CAACC,EAAWF,EAAeG,KAErD,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAS,qBACT,QAAWH,CACnB,CAAK,EACDG,EAAY,QAASC,GAAc,CAC/BF,EAAU,iBAAiBE,EAAW,SAAUC,EAAO,CACnD,IAAIC,EAAe,CACf,MAASF,EACT,QAAWJ,EACX,OAAUK,EAAM,MAChC,EACY,OAAO,KAAKA,EAAM,MAAM,EAAE,QAASE,GAAa,CAC5C,MAAMC,EAAcH,EAAM,OAAOE,CAAQ,EACzCD,EAAaC,CAAQ,EAAIC,CACzC,CAAa,EACD,OAAO,UAAU,KAAKF,CAAY,CAC9C,CAAS,CACT,CAAK,EACM,IC9BEG,EAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAeXC,EAAaC,GAAkB,CACxCA,EAAc,UAAU,IAAI,MAAM,EAClC,MAAMC,EAAWD,EAAc,WAAW,cAAc,aAAa,EAC/DE,EAAWF,EAAc,WAAW,cAAc,aAAa,EACjEA,EAAc,aAAa,YAAY,IACvCC,EAAS,WAAa,aAAaD,EAAc,aAAa,YAAY,4CAG1EA,EAAc,aAAa,YAAY,EACvCE,EAAS,mBAAmB,YAAa,4BAA4BF,EAAc,aAAa,YAAY,SAAS,EAEhHA,EAAc,cAAc,qBAAqB,GACtDE,EAAS,mBAAmB,YAAa,gEAAgE,EAExGF,EAAc,cAAc,iBAAiB,GAC9CA,EAAc,WAAW,cAAc,eAAe,EAAE,OAAM,CAEtE,EChCA,IAAIG,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMC,EAAO,CAAE,OAAOA,aAAiBH,EAAIG,EAAQ,IAAIH,EAAE,SAAUI,EAAS,CAAEA,EAAQD,CAAK,CAAE,CAAE,CAAG,CAC3G,OAAO,IAAKH,IAAMA,EAAI,UAAU,SAAUI,EAASC,EAAQ,CACvD,SAASC,EAAUH,EAAO,CAAE,GAAI,CAAEI,EAAKN,EAAU,KAAKE,CAAK,CAAC,CAAE,OAAUK,EAAP,CAAYH,EAAOG,CAAC,EAAK,CAC1F,SAASC,EAASN,EAAO,CAAE,GAAI,CAAEI,EAAKN,EAAU,MAASE,CAAK,CAAC,CAAI,OAAQK,EAAP,CAAYH,EAAOG,CAAC,EAAK,CAC7F,SAASD,EAAKG,EAAQ,CAAEA,EAAO,KAAON,EAAQM,EAAO,KAAK,EAAIR,EAAMQ,EAAO,KAAK,EAAE,KAAKJ,EAAWG,CAAQ,CAAG,CAC7GF,GAAMN,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAE,CAAA,GAAG,KAAI,CAAE,CAC5E,CAAK,CACL,EAIAjB,EAAyB,iBAAiB,EAC1C,MAAM6B,UAAqB,WAAY,CACnC,aAAc,CACV,QACA,KAAK,aAAa,CAAE,KAAM,MAAQ,CAAA,EACZ,SAAS,KAAK,aAAa,sBAAsB,GAAI,SAAS,KAAK,aAAa,sBAAsB,EAE5H,MAAMC,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA,MAEvB,KAAK,aAAa,KAAK,EAAI,YAAY,KAAK,aAAa,KAAK,MAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,MAItEpB;AAAA,MAEE,KAAK,WAAW,YAAYoB,EAAS,QAAQ,UAAU,EAAI,CAAC,CAChE,CACA,mBAAoB,CAChB,OAAOf,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,MAAMH,EAAgB,KACLA,EAAc,WAAW,cAAc,aAAa,EACrED,EAAUC,CAAa,EAEvB,MAAMmB,EAAWnB,EAAc,cAAc,cAAc,wBAAwB,EAenF,GAdImB,GACAA,EAAS,iBAAiB,SAAWzB,GAAU,CAC3C,GAAIyB,EAAS,QAAS,CAClB,MAAMC,EAAc,IAAI,YAAY,cAAe,CAAE,OAAQ,CAAE,aAAcD,EAAS,MAAO,aAAcA,EAAS,aAAa,MAAM,CAAG,CAAA,CAAE,EAC5InB,EAAc,cAAcoB,CAAW,EACvCpB,EAAc,UAAU,IAAI,QAAQ,MAEnC,CACD,MAAMoB,EAAc,IAAI,YAAY,gBAAiB,CAAE,OAAQ,CAAE,aAAcD,EAAS,MAAO,aAAcA,EAAS,aAAa,MAAM,CAAG,CAAA,CAAE,EAC9InB,EAAc,cAAcoB,CAAW,EACvCpB,EAAc,UAAU,OAAO,QAAQ,EAE/D,CAAiB,EAEDA,EAAc,cAAc,QAAQ,QAAQ,EAAG,CAC/C,MAAMqB,EAASrB,EAAc,cAC7BqB,EAAO,iBAAiB,QAAU3B,GAAU,CACxC,GAAKM,EAAc,UAAU,SAAS,QAAQ,EAKzC,CACD,MAAMoB,EAAc,IAAI,YAAY,gBAAiB,CAAE,OAAQ,CAAE,cAAeC,EAAO,aAAa,MAAM,CAAC,CAAI,CAAA,EAC/GrB,EAAc,cAAcoB,CAAW,EACvCpB,EAAc,UAAU,OAAO,QAAQ,MARM,CAC7C,MAAMoB,EAAc,IAAI,YAAY,cAAe,CAAE,OAAQ,CAAE,cAAeC,EAAO,aAAa,MAAM,CAAC,CAAI,CAAA,EAC7GrB,EAAc,cAAcoB,CAAW,EACvCpB,EAAc,UAAU,IAAI,QAAQ,EAO5D,CAAiB,EAELV,EAAeU,EAAe,kBAAmB,CAAC,cAAe,eAAe,CAAC,CAC7F,CAAS,CACL,CACJ"}
1
+ {"version":3,"file":"filter-card.component.min.js","sources":["../_global.js","../../modules/card.module.js","filter-card.component.js"],"sourcesContent":["// @ts-nocheck\nexport 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 let 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","export const cardHTML = `<div class=\"card__head\" part=\"head\">\n <slot name=\"head\"></slot>\n</div>\n<div class=\"card__badges\"><slot name=\"badges\"></slot></div>\n<slot name=\"checkbox\" class=\"activate-prevent-hover\"></slot>\n<div class=\"card__body\" part=\"body\">\n <slot></slot>\n <slot name=\"secondary\" part=\"secondary\"></slot>\n</div>\n<div class=\"card__details\" part=\"details\">\n <slot name=\"details\"></slot>\n</div>\n<div class=\"card__footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n</div>`;\nexport const setupCard = (cardComponent) => {\n cardComponent.classList.add('card');\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n const cardBody = cardComponent.shadowRoot.querySelector('.card__body');\n if (cardComponent.hasAttribute('data-image')) {\n cardHead.innerHTML += `<img src=\"${cardComponent.getAttribute('data-image')}\" alt=\"\" loading=\"lazy\" part=\"image\" />`;\n }\n // Inset the HTML for the data total or icon fallback\n if (cardComponent.hasAttribute('data-total')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\">${cardComponent.getAttribute('data-total')}</div>`);\n }\n else if (cardComponent.querySelector('[slot=\"total-icon\"]')) {\n cardBody.insertAdjacentHTML('beforeend', `<div class=\"card__total\"><slot name=\"total-icon\"></slot></div>`);\n }\n if (!cardComponent.querySelector('[slot=\"badges\"]')) {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.add('empty');\n }\n else {\n cardComponent.shadowRoot.querySelector('.card__badges').classList.remove('empty');\n }\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n// @ts-nocheck\nimport { trackComponent, trackComponentRegistered } from \"../_global.js\";\nimport { cardHTML, setupCard } from \"../../modules/card.module.js\";\ntrackComponentRegistered(\"iam-filter-card\");\nclass iamFilerCard extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/filter-card.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n ${cardHTML}\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n return __awaiter(this, void 0, void 0, function* () {\n const cardComponent = this;\n const cardHead = cardComponent.shadowRoot.querySelector('.card__head');\n setupCard(cardComponent);\n // Dispatch events of selecting checkboxes\n const checkbox = cardComponent.parentElement.querySelector('input[type=\"checkbox\"]');\n if (checkbox) {\n checkbox.addEventListener('change', (event) => {\n if (checkbox.checked) {\n const customEvent = new CustomEvent(\"select-card\", { detail: { 'Card value': checkbox.value, 'input name': checkbox.getAttribute('name') } });\n cardComponent.dispatchEvent(customEvent);\n cardComponent.classList.add('active');\n }\n else {\n const customEvent = new CustomEvent(\"unselect-card\", { detail: { 'Card value': checkbox.value, 'input name': checkbox.getAttribute('name') } });\n cardComponent.dispatchEvent(customEvent);\n cardComponent.classList.remove('active');\n }\n });\n }\n if (cardComponent.parentElement.matches('button')) {\n const button = cardComponent.parentElement;\n button.addEventListener('click', (event) => {\n if (!cardComponent.classList.contains('active')) {\n const customEvent = new CustomEvent(\"select-card\", { detail: { 'button name': button.getAttribute('name') } });\n cardComponent.dispatchEvent(customEvent);\n cardComponent.classList.add('active');\n }\n else {\n const customEvent = new CustomEvent(\"unselect-card\", { detail: { 'button name': button.getAttribute('name') } });\n cardComponent.dispatchEvent(customEvent);\n cardComponent.classList.remove('active');\n }\n });\n }\n trackComponent(cardComponent, \"iam-filter-card\", ['select-card', 'unselect-card']);\n });\n }\n}\nexport default iamFilerCard;\n"],"names":["trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","event","eventDetails","eventKey","eventDetail","cardHTML","setupCard","cardComponent","cardHead","cardBody","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","iamFilerCard","template","checkbox","customEvent","button"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * iamKey v6.1.0--beta
3
- * Copyright 2022-2024 iamproperty
2
+ * iamKey v6.1.0--beta3
3
+ * Copyright 2022-2025 iamproperty
4
4
  */function i(s,t){n(s,t)}function n(s,t){var e;t.addEventListener("keyup",a=>{clearTimeout(e),e=setTimeout(function(){o(s,t.value)},500)}),t.addEventListener("change",a=>{clearTimeout(e),o(s,t.value)})}const o=function(s,t){Array.from(s.querySelectorAll(":scope > li")).forEach((e,a)=>{let r=e.textContent.toLowerCase();e.classList.add("d-none"),r.includes(t.toLowerCase())&&e.classList.remove("d-none")}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Filtered list",value:t})};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"filterlist"});class l extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const t=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",e=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${t}/css/core.min.css`,a=document.createElement("template");a.innerHTML=`
5
5
  <style>
6
6
  @import "${e}";
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * iamKey v6.1.0--beta
3
- * Copyright 2022-2024 iamproperty
2
+ * iamKey v6.1.0--beta3
3
+ * Copyright 2022-2025 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"header"});class o extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const t=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",e=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${t}/css/core.min.css`,a=document.createElement("template");a.innerHTML=`
5
5
  <style>
6
6
  @import "${e}";
7
- :host{padding-top:0 !important;margin-bottom:2rem;background-color:rgba(0,0,0,0) !important}.header-banner{padding-top:2.75rem;max-width:120rem;min-height:25rem;margin-inline:auto;display:block;position:relative;height:auto}@media screen and (min-width: 62em){.header-banner{padding-top:5.25rem}}.header-banner>picture{display:block;position:absolute;top:0;left:0;height:100%;width:100%;pointer-events:none;overflow:hidden;min-height:25rem;max-height:25rem}.header-banner>picture:after{content:"";display:block;position:absolute;z-index:-1;inset:0;background:linear-gradient(300deg, rgb(30, 190, 230) 0%, rgb(0, 49, 60) 100%);opacity:.85}.header-banner>picture img{display:block;position:absolute;z-index:-2;inset:0;object-fit:cover;object-position:50% 50%;width:100%;height:100%}:host(.header--contain) .header-banner{padding-bottom:2rem}:host(.header--contain) .header-banner>picture{max-height:100%}::slotted(.breadcrumb){margin-top:1.5rem !important;margin-bottom:-0.5rem !important}@media screen and (min-width: 62em){::slotted(.breadcrumb){position:absolute !important;top:0 !important;left:5.25rem !important}}::slotted(*:last-child){padding-bottom:0 !important;margin-bottom:0 !important}/*# sourceMappingURL=assets/css/components/header.css.map */
7
+ :host{padding-top:0 !important;margin-bottom:2rem;background-color:rgba(0,0,0,0) !important;display:block !important}.header-banner{padding-top:2.75rem;max-width:120rem;min-height:25rem;margin-inline:auto;display:block;position:relative;height:auto}@media screen and (min-width: 62em){.header-banner{padding-top:5.25rem}}.header-banner>picture{display:block;position:absolute;top:0;left:0;height:100%;width:100%;pointer-events:none;overflow:hidden;min-height:25rem;max-height:25rem}.header-banner>picture:after{content:"";display:block;position:absolute;z-index:-1;inset:0;background:linear-gradient(300deg, rgb(30, 190, 230) 0%, rgb(0, 49, 60) 100%);opacity:.85}.header-banner>picture img{display:block;position:absolute;z-index:-2;inset:0;object-fit:cover;object-position:50% 50%;width:100%;height:100%}:host(.header--contain) .header-banner{padding-bottom:2rem}:host(.header--contain) .header-banner>picture{max-height:100%}::slotted(.breadcrumb){margin-top:1.5rem !important;margin-bottom:-0.5rem !important}@media screen and (min-width: 62em){::slotted(.breadcrumb){position:absolute !important;top:0 !important;left:5.25rem !important}}::slotted(*:last-child){padding-bottom:0 !important;margin-bottom:0 !important}/*# sourceMappingURL=assets/css/components/header.css.map */
8
8
 
9
9
  ${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
10
10
  </style>
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * iamKey v6.1.0--beta
3
- * Copyright 2022-2024 iamproperty
2
+ * iamKey v6.1.0--beta3
3
+ * Copyright 2022-2025 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"inline edit"});class b extends HTMLElement{constructor(){super();const t=this.attachShadow({mode:"open"}),i=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",d=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${i}/css/core.min.css`,e=document.createElement("template");e.innerHTML=`
5
5
  <style class="styles">
6
6
  @import "${d}";
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * iamKey v6.1.0--beta
3
- * Copyright 2022-2024 iamproperty
2
+ * iamKey v6.1.0--beta3
3
+ * Copyright 2022-2025 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Marketing"});class o extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const e=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",i=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${e}/css/core.min.css`,t=document.createElement("template");t.innerHTML=`
5
5
  <style>
6
6
  @import "${i}";
@@ -0,0 +1,162 @@
1
+ // @ts-nocheck
2
+ import { trackComponent, trackComponentRegistered } from "../_global.js";
3
+ trackComponentRegistered("iam-multi-step");
4
+ class iamMultiStep extends HTMLElement {
5
+ constructor() {
6
+ super();
7
+ this.attachShadow({ mode: 'open' });
8
+ const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
9
+ const loadCSS = `@import "${assetLocation}/css/components/multi-step.component.css";`;
10
+ const template = document.createElement('template');
11
+ template.innerHTML = `
12
+ <style>
13
+ ${loadCSS}
14
+ </style>
15
+ <div class="steps" parts="steps">
16
+ </div>
17
+ <slot></slot>
18
+ `;
19
+ this.shadowRoot.appendChild(template.content.cloneNode(true));
20
+ }
21
+ connectedCallback() {
22
+ const MultiStepComponent = this;
23
+ const steps = this.shadowRoot.querySelector('.steps');
24
+ const form = this.querySelector('form');
25
+ let fieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset[data-title]'));
26
+ fieldsets.forEach((fieldset, index) => {
27
+ steps.insertAdjacentHTML('beforeend', `<button data-title="${fieldset.getAttribute('data-title')}" type="button" class="${index == 0 ? "active" : ""}" tabindex="-1">${fieldset.getAttribute('data-title')}</button>`);
28
+ if (index === 0)
29
+ fieldset.classList.add('active');
30
+ const btnWrapper = document.createElement("div");
31
+ btnWrapper.classList.add('btn--wrapper');
32
+ fieldset.appendChild(btnWrapper);
33
+ if (index != 0)
34
+ btnWrapper.innerHTML += `<button data-title="${fieldsets[index - 1].getAttribute('data-title')}" class="btn btn-secondary mb-0" data-previous type="button">Previous</button>`;
35
+ if (index != fieldsets.length - 1)
36
+ btnWrapper.innerHTML += `<button data-title="${fieldsets[index + 1].getAttribute('data-title')}" class="btn btn-primary mb-0" data-next type="button">Next</button>`;
37
+ // Last fieldset
38
+ if (index == fieldsets.length - 1) {
39
+ if (form && form.querySelector(':scope > button[type="submit"]')) {
40
+ let existingButton = form.querySelector(':scope > button[type="submit"]');
41
+ existingButton.classList.add('mb-0');
42
+ btnWrapper.insertAdjacentElement('beforeend', existingButton);
43
+ }
44
+ else
45
+ btnWrapper.innerHTML += `<button data-title="${fieldsets[index].getAttribute('data-title')}" class="btn btn-primary mb-0" data-next type="submit">Submit</button>`;
46
+ }
47
+ });
48
+ // Open the fieldset with an error inside
49
+ let validatedFieldsets = Array.from(MultiStepComponent.querySelectorAll('fieldset.was-validated'));
50
+ for (let i = 0; i < validatedFieldsets.length; i++) {
51
+ let fieldset = validatedFieldsets[i];
52
+ let fieldsetID = fieldset.getAttribute('data-title');
53
+ if (fieldset.querySelector('.is-invalid')) {
54
+ Array.from(MultiStepComponent.querySelectorAll(`[data-title="${fieldsetID}"]`)).forEach((element, index) => {
55
+ element.classList.add('active');
56
+ });
57
+ break;
58
+ }
59
+ else {
60
+ Array.from(MultiStepComponent.querySelectorAll(`[data-title="${fieldsetID}"]`)).forEach((element, index) => {
61
+ element.classList.add('valid');
62
+ });
63
+ }
64
+ }
65
+ // Prevent the bubble messages
66
+ MultiStepComponent.addEventListener('invalid', (function () {
67
+ return function (e) {
68
+ e.preventDefault();
69
+ };
70
+ })(), true);
71
+ function validateFieldset(button) {
72
+ const currentFieldset = MultiStepComponent.querySelector(`fieldset.active`) ? MultiStepComponent.querySelector(`fieldset.active`) : MultiStepComponent.querySelector(`fieldset[data-title]`);
73
+ const currentFieldsetID = currentFieldset.getAttribute('data-title');
74
+ let isFieldsetValid = true;
75
+ currentFieldset.classList.add('was-validated');
76
+ Array.from(currentFieldset.querySelectorAll('input')).forEach((input, index) => {
77
+ if (!input.checkValidity())
78
+ isFieldsetValid = false;
79
+ });
80
+ // If valid mode to next field set
81
+ if (!isFieldsetValid) {
82
+ Array.from(MultiStepComponent.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach((element, index) => {
83
+ element.classList.remove('valid');
84
+ });
85
+ Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach((element, index) => {
86
+ element.classList.remove('valid');
87
+ });
88
+ }
89
+ else {
90
+ Array.from(MultiStepComponent.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach((element, index) => {
91
+ element.classList.add('valid');
92
+ });
93
+ Array.from(MultiStepComponent.shadowRoot.querySelectorAll(`[data-title="${currentFieldsetID}"]`)).forEach((element, index) => {
94
+ element.classList.add('valid');
95
+ });
96
+ }
97
+ // Allow the previous button to navigate
98
+ if (isFieldsetValid || !button.hasAttribute('data-next')) {
99
+ const fieldset = MultiStepComponent.querySelector(`fieldset[data-title="${button.getAttribute('data-title')}"]`);
100
+ const step = MultiStepComponent.shadowRoot.querySelector(`.steps button[data-title="${button.getAttribute('data-title')}"]`);
101
+ Array.from(MultiStepComponent.querySelectorAll('button')).forEach((button, index) => {
102
+ button.classList.remove('active');
103
+ });
104
+ Array.from(MultiStepComponent.querySelectorAll('fieldset')).forEach((button, index) => {
105
+ button.classList.remove('active');
106
+ });
107
+ step.classList.add('active');
108
+ fieldset.classList.add('active');
109
+ }
110
+ let fieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset`)).length;
111
+ let validFieldsetCount = Array.from(MultiStepComponent.querySelectorAll(`fieldset.valid`)).length;
112
+ // update the progress bar
113
+ MultiStepComponent.style.setProperty('--progress', `${(validFieldsetCount / (fieldsetCount - 1) * 100)}%`);
114
+ }
115
+ // remove error messages from server
116
+ MultiStepComponent.addEventListener('keydown', (event) => {
117
+ if (event && event.target instanceof HTMLElement && event.target.closest('button')) {
118
+ const button = event.target.closest('button');
119
+ if (event.keyCode == 13 && button.getAttribute('type') != "submit") {
120
+ event.preventDefault();
121
+ validateFieldset(button);
122
+ }
123
+ }
124
+ if (event && event.target instanceof HTMLElement && event.target.closest('input')) {
125
+ const input = event.target.closest('input');
126
+ input.classList.remove('is-invalid');
127
+ if (event.keyCode == 13) {
128
+ event.preventDefault();
129
+ }
130
+ }
131
+ });
132
+ MultiStepComponent.addEventListener('click', (event) => {
133
+ if (event && event.target instanceof HTMLElement && event.target.closest('button[type="submit"]')) {
134
+ const form = event.target.closest('form');
135
+ form.classList.add('was-validated');
136
+ }
137
+ return null;
138
+ });
139
+ MultiStepComponent.shadowRoot.addEventListener('click', (event) => {
140
+ if (event && event.target instanceof HTMLElement && event.target.closest('button[data-title]')) {
141
+ const button = event.target.closest('button[data-title]');
142
+ validateFieldset(button);
143
+ }
144
+ ;
145
+ return null;
146
+ });
147
+ trackComponent(MultiStepComponent, "iam-multi-step", []);
148
+ }
149
+ static get observedAttributes() {
150
+ return ["data-image"];
151
+ }
152
+ attributeChangedCallback(attrName, oldVal, newVal) {
153
+ switch (attrName) {
154
+ case "data-total": {
155
+ if (this.shadowRoot.querySelector('.card__total'))
156
+ this.shadowRoot.querySelector('.card__total').innerHTML = newVal;
157
+ break;
158
+ }
159
+ }
160
+ }
161
+ }
162
+ export default iamMultiStep;
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * iamKey v6.1.0--beta
3
- * Copyright 2022-2024 iamproperty
2
+ * iamKey v6.1.0--beta3
3
+ * Copyright 2022-2025 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"mutliselect"});class b extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const t=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",s=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${t}/css/core.min.css`,r=document.createElement("template");r.innerHTML=`
5
5
  <style>
6
6
  @import "${s}";
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * iamKey v6.1.0--beta
3
- * Copyright 2022-2024 iamproperty
2
+ * iamKey v6.1.0--beta3
3
+ * Copyright 2022-2025 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"nav"});class v extends HTMLElement{constructor(){super();const s=this.attachShadow({mode:"open"}),n=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",o=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${n}/css/core.min.css`,i=document.createElement("template");i.innerHTML=`
5
5
  <style class="styles">
6
6
  @import "${o}";
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * iamKey v6.1.0--beta
3
- * Copyright 2022-2024 iamproperty
2
+ * iamKey v6.1.0--beta3
3
+ * Copyright 2022-2025 iamproperty
4
4
  */function r(i){if(i.hasAttribute("data-type")&&i.getAttribute("data-type")=="toast"){let t=document.querySelector(".notification__holder");t||(t=document.createElement("div"),t.classList.add("notification__holder"),t.classList.add("container"),document.querySelector("body").appendChild(t)),i.closest(".notification__holder")||t.appendChild(i)}if(i.setAttribute("role","alert"),i.addEventListener("click",function(t){event&&event.target instanceof HTMLElement&&event.target.closest("[data-dismiss-button]")&&(t.preventDefault(),a(i))},!1),i.hasAttribute("data-timeout")){let t=i.getAttribute("data-timeout");var n=new c(function(){a(i)},t);i.addEventListener("mouseenter",o=>{n.pause()}),i.addEventListener("mouseleave",o=>{n.resume()})}}function c(i,n){var t,o,e=n;this.pause=function(){window.clearTimeout(t),e-=new Date-o},this.resume=function(){o=new Date,window.clearTimeout(t),t=window.setTimeout(i,e)},this.resume()}const a=function(i){i.classList.add("d-none")};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Notification"});class d extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const n=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",t=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${n}/css/core.min.css`,o=this.querySelectorAll("a,button");Array.from(o).forEach((s,l)=>{s.setAttribute("slot","btns"),s.classList.add("link")}),(o.length||this.hasAttribute("data-dismiss"))&&this.classList.add("notification--dismissable");const e=document.createElement("template");e.innerHTML=`
5
5
  <style>
6
6
  @import "${t}";
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * iamKey v6.1.0--beta
3
- * Copyright 2022-2024 iamproperty
2
+ * iamKey v6.1.0--beta3
3
+ * Copyright 2022-2025 iamproperty
4
4
  */class v extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const i=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",t=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${i}/css/core.min.css`,e=document.createElement("template");e.innerHTML=`
5
5
  <style>
6
6
  @import "${t}";
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * iamKey v6.1.0--beta
3
- * Copyright 2022-2024 iamproperty
4
- */const h=o=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:o})},p=(o,t,a)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),a.forEach(r=>{o.addEventListener(r,function(e){let d={event:r,element:t,target:e.target};Object.keys(e.detail).forEach(i=>{const c=e.detail[i];d[i]=c}),window.dataLayer.push(d)})}),!0),g=`<div class="card__head" part="head">
2
+ * iamKey v6.1.0--beta3
3
+ * Copyright 2022-2025 iamproperty
4
+ */const h=t=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:t})},p=(t,o,a)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:o}),a.forEach(r=>{t.addEventListener(r,function(e){let d={event:r,element:o,target:e.target};Object.keys(e.detail).forEach(i=>{const c=e.detail[i];d[i]=c}),window.dataLayer.push(d)})}),!0),g=`<div class="card__head" part="head">
5
5
  <slot name="head"></slot>
6
6
  </div>
7
7
  <div class="card__badges"><slot name="badges"></slot></div>
@@ -15,13 +15,13 @@
15
15
  </div>
16
16
  <div class="card__footer" part="footer">
17
17
  <slot name="footer"></slot>
18
- </div>`,u=o=>{o.classList.add("card");const t=o.shadowRoot.querySelector(".card__head"),a=o.shadowRoot.querySelector(".card__body");o.hasAttribute("data-image")&&(t.innerHTML+=`<img src="${o.getAttribute("data-image")}" alt="" loading="lazy" part="image" />`),o.hasAttribute("data-total")?a.insertAdjacentHTML("beforeend",`<div class="card__total">${o.getAttribute("data-total")}</div>`):o.querySelector('[slot="total-icon"]')&&a.insertAdjacentHTML("beforeend",'<div class="card__total"><slot name="total-icon"></slot></div>'),o.querySelector('[slot="badges"]')||o.shadowRoot.querySelector(".card__badges").remove()};var b=function(o,t,a,r){function e(d){return d instanceof a?d:new a(function(i){i(d)})}return new(a||(a=Promise))(function(d,i){function c(n){try{s(r.next(n))}catch(l){i(l)}}function m(n){try{s(r.throw(n))}catch(l){i(l)}}function s(n){n.done?d(n.value):e(n.value).then(c,m)}s((r=r.apply(o,t||[])).next())})};h("iam-record-card");class f extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
18
+ </div>`,u=t=>{t.classList.add("card");const o=t.shadowRoot.querySelector(".card__head"),a=t.shadowRoot.querySelector(".card__body");t.hasAttribute("data-image")&&(o.innerHTML+=`<img src="${t.getAttribute("data-image")}" alt="" loading="lazy" part="image" />`),t.hasAttribute("data-total")?a.insertAdjacentHTML("beforeend",`<div class="card__total">${t.getAttribute("data-total")}</div>`):t.querySelector('[slot="total-icon"]')&&a.insertAdjacentHTML("beforeend",'<div class="card__total"><slot name="total-icon"></slot></div>'),t.querySelector('[slot="badges"]')?t.shadowRoot.querySelector(".card__badges").classList.remove("empty"):t.shadowRoot.querySelector(".card__badges").classList.add("empty")};var b=function(t,o,a,r){function e(d){return d instanceof a?d:new a(function(i){i(d)})}return new(a||(a=Promise))(function(d,i){function c(n){try{s(r.next(n))}catch(l){i(l)}}function m(n){try{s(r.throw(n))}catch(l){i(l)}}function s(n){n.done?d(n.value):e(n.value).then(c,m)}s((r=r.apply(t,o||[])).next())})};h("iam-record-card");class f extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const o=document.createElement("template");o.innerHTML=`
19
19
  <style>
20
20
  ${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
21
21
 
22
- :host{--card-icon-right: 1rem;--card-head-top-padding: 2rem;--card-head-bottom-padding: 2rem;--card-footer-bottom-padding: 1.5rem;--card-head-height: 6rem;box-shadow:var(--card-box-shadow);border-radius:var(--card-border-radius);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);width:100%;text-align:left;display:flex;flex-direction:column;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:2px solid var(--outline-colour, --colour-canvas-2);outline-offset:-2px;margin-bottom:2rem}:host>*{width:100%;box-sizing:border-box}:host-context(:is(a,label,button)){margin-bottom:0 !important}:host(.border-0){box-shadow:none;--card-left-padding: 0rem;outline-offset:1px !important}.card__head:has(img){min-height:var(--card-head-height);position:relative;overflow:hidden;background:rgba(0,0,0,.1);z-index:-1}.card__head:has(img)>img{position:absolute;top:0;left:0;margin:-2px;width:calc(100% + 4px);height:calc(100% + 4px);object-fit:cover}.card__body{padding:var(--card-head-top-padding) var(--card-right-padding) var(--card-head-bottom-padding) var(--card-left-padding)}.card__footer{margin-top:0;padding:0 var(--card-right-padding) 0 var(--card-left-padding)}::slotted(i){font-size:1.5rem !important;margin:-3px var(--card-icon-right) 0 0 !important;vertical-align:middle !important}::slotted(i:not(.fa-light):not(.fa-bold)){font-weight:400 !important}::slotted(.badge){margin-bottom:.375rem !important}::slotted(span:not(.badge)){display:block !important;font-weight:normal !important;font-size:1rem !important}::slotted(small){padding-top:1rem !important;display:block !important;font-weight:normal !important;padding-bottom:0 !important;color:var(--colour-body)}::slotted(span:not(.badge):not([class*=pt-])){padding-top:1.5rem !important}::slotted(:is(a,button)[slot=footer]){margin-bottom:var(--card-footer-bottom-padding) !important}.card__body:has(.card__total){--card-head-top-padding: 1rem;--card-head-bottom-padding: 1.5rem}.card__total{font-size:3rem;line-height:3rem;padding-right:1rem;margin-top:.5rem}.card__total i{font-family:var(--fa-style-family, "Font Awesome 6 Pro");font-weight:var(--fa-style, 900);display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important}::slotted([slot=total-icon]){display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important;line-height:2.5rem}.card__head:has(img)~.card__badges{position:absolute;top:0;text-align:left;left:0;z-index:9}.card__badges{padding:var(--card-badges-top-padding, 1rem) var(--card-right-padding) 0 var(--card-left-padding);margin-bottom:-1.5rem}:host{--card-head-height: 9rem;--card-right-padding: 1rem;background:rgba(0,0,0,0) !important;position:relative}:host(:is(:hover,:focus,.hover)){--hover-outline-colour-default: var(--colour, var(--colour-primary));outline:2px solid var(--hover-outline-colour, var(--hover-outline-colour-default));outline-offset:-2px}:host([data-record]) .card__head:before{font-family:var(--record-icon-font, "Font Awesome 6 Pro");font-weight:normal;font-size:1.5rem;content:var(--record-icon);display:block;position:absolute;top:auto;left:50%;bottom:0;background-color:var(--record-colour);border-radius:50%;height:4rem;line-height:4rem;width:4rem;text-align:center;transform:translate(-50%, 0)}:host([data-initials]:before){content:data-initials;display:block}:host([data-initials]) .card__head:before{display:none !important}:host([data-initials]):before{font-family:var(--font-body);font-weight:normal;font-size:2rem;content:attr(data-initials);display:block;position:absolute;top:var(--card-head-height);left:50%;bottom:0;background-color:var(--record-colour);border-radius:50%;height:4rem;margin-top:-4rem;line-height:4rem;width:4rem;text-align:center;transform:translate(-50%, 0)}.card__head{background:rgba(0,0,0,0) !important;position:relative;min-height:var(--card-head-height)}.card__head .card__avatar{display:block;position:absolute;top:auto;left:50%;bottom:0;border-radius:50%;height:4rem;line-height:4rem;width:4rem;text-align:center;transform:translate(-50%, 0);margin:0;object-fit:cover}.card__badges{position:absolute;top:0;text-align:left;left:0;z-index:9}.card__body{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow:hidden;padding-bottom:0;margin-bottom:0}.card__details{padding:0 var(--card-right-padding) 1.5rem var(--card-left-padding)}::slotted(span:not(.badge)){display:block !important;font-weight:normal !important;font-size:0.875rem !important;line-height:1.5rem !important}::slotted(span:not(.badge):not([class*=pt-])){padding-top:1rem !important}::slotted(*:not(.badge)){display:block !important;font-weight:normal !important;font-size:0.875rem !important;line-height:1.5rem !important}:host([data-initials]){--record-content: attr(data-initials);--record-colour: var(--wider-colour-2)}:host([data-record=business]){--record-icon: "\uF54F";--record-colour: var(--wider-colour-2)}:host([data-record=page]){--record-icon: "\uF15C";--record-colour: var(--wider-colour-3)}:host([data-record=contact]){--record-icon: "\uF2B9";--record-colour: var(--wider-colour-4)}:host([data-record=lettings]){--record-icon: "\uE003";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-5)}:host([data-record=sales]){--record-icon: "\uE004";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-7)}:host([data-record=landlord]){--record-icon: "\uE001";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-8)}:host([data-record=contractor]){--record-icon: "\uF82C";--record-colour: var(--wider-colour-9)}:host([data-record=vendor]){--record-icon: "\uE002";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-13)}:host([data-record=tenant]){--record-icon: "\uE1B0";--record-colour: var(--wider-colour-6)}:host([data-record=sales-applicant]){--record-icon: "\uE006";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-10)}/*# sourceMappingURL=assets/css/components/record-card.component.css.map */
22
+ :host{--card-icon-right: 1rem;--card-head-top-padding: 2rem;--card-head-bottom-padding: 2rem;--card-footer-bottom-padding: 1.5rem;--card-head-height: 6rem;box-shadow:var(--card-box-shadow);border-radius:var(--card-border-radius);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);width:100%;text-align:left;display:flex;flex-direction:column;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:2px solid var(--outline-colour, --colour-canvas-2);outline-offset:-2px;margin-bottom:2rem}:host>*{width:100%;box-sizing:border-box}:host-context(:is(a,label,button)){margin-bottom:0 !important}:host(.border-0){box-shadow:none;--card-left-padding: 0rem;outline-offset:1px !important}.card__head:has(img){min-height:var(--card-head-height);position:relative;overflow:hidden;background:rgba(0,0,0,.1);z-index:-1}.card__head:has(img)>img{position:absolute;top:0;left:0;margin:-2px;width:calc(100% + 4px);height:calc(100% + 4px);object-fit:cover}.card__body{padding:var(--card-head-top-padding) var(--card-right-padding) var(--card-head-bottom-padding) var(--card-left-padding)}.card__footer{margin-top:0;padding:0 var(--card-right-padding) 0 var(--card-left-padding)}::slotted(i){font-size:1.5rem !important;margin:-3px var(--card-icon-right) 0 0 !important;vertical-align:middle !important}::slotted(i:not(.fa-light):not(.fa-bold)){font-weight:400 !important}::slotted(.badge){margin-bottom:.375rem !important}::slotted(span:not(.badge)){display:block !important;font-weight:normal !important;font-size:1rem !important}::slotted(small){padding-top:1rem !important;display:block !important;font-weight:normal !important;padding-bottom:0 !important;color:var(--colour-body)}::slotted(span:not(.badge):not([class*=pt-])){padding-top:1.5rem !important}::slotted(:is(a,button)[slot=footer]){margin-bottom:var(--card-footer-bottom-padding) !important}.card__body:has(.card__total){--card-head-top-padding: 1rem;--card-head-bottom-padding: 1.5rem}.card__total{font-size:3rem;line-height:3rem;padding-right:1rem;margin-top:.5rem}.card__total i{font-family:var(--fa-style-family, "Font Awesome 6 Pro");font-weight:var(--fa-style, 900);display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important}::slotted([slot=total-icon]){display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important;line-height:2.5rem}.card__head:has(img)~.card__badges{position:absolute;top:0;text-align:left;left:0;z-index:9}.card__badges:not(.empty){padding:var(--card-badges-top-padding, 1rem) var(--card-right-padding) 0 var(--card-left-padding);margin-bottom:-1.5rem}:host{--card-head-height: 9rem;--card-right-padding: 1rem;background:rgba(0,0,0,0) !important;position:relative}:host(:is(:hover,:focus,.hover)){--hover-outline-colour-default: var(--colour, var(--colour-primary));outline:2px solid var(--hover-outline-colour, var(--hover-outline-colour-default));outline-offset:-2px}:host([data-record]) .card__head:before{font-family:var(--record-icon-font, "Font Awesome 6 Pro");font-weight:normal;font-size:1.5rem;content:var(--record-icon);display:block;position:absolute;top:auto;left:50%;bottom:0;background-color:var(--record-colour);border-radius:50%;height:4rem;line-height:4rem;width:4rem;text-align:center;transform:translate(-50%, 0)}:host([data-initials]:before){content:data-initials;display:block}:host([data-initials]) .card__head:before{display:none !important}:host([data-initials]):before{font-family:var(--font-body);font-weight:normal;font-size:2rem;content:attr(data-initials);display:block;position:absolute;top:var(--card-head-height);left:50%;bottom:0;background-color:var(--record-colour);border-radius:50%;height:4rem;margin-top:-4rem;line-height:4rem;width:4rem;text-align:center;transform:translate(-50%, 0)}.card__head{background:rgba(0,0,0,0) !important;position:relative;min-height:var(--card-head-height)}.card__head .card__avatar{display:block;position:absolute;top:auto;left:50%;bottom:0;border-radius:50%;height:4rem;line-height:4rem;width:4rem;text-align:center;transform:translate(-50%, 0);margin:0;object-fit:cover}.card__badges{position:absolute;top:0;text-align:left;left:0;z-index:9}.card__body{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow:hidden;padding-bottom:0;margin-bottom:0}.card__details{padding:0 var(--card-right-padding) 1.5rem var(--card-left-padding)}::slotted(span:not(.badge)){display:block !important;font-weight:normal !important;font-size:0.875rem !important;line-height:1.5rem !important}::slotted(span:not(.badge):not([class*=pt-])){padding-top:1rem !important}::slotted(*:not(.badge)){display:block !important;font-weight:normal !important;font-size:0.875rem !important;line-height:1.5rem !important}:host([data-initials]){--record-content: attr(data-initials);--record-colour: var(--wider-colour-2)}:host([data-record=business]){--record-icon: "\uF54F";--record-colour: var(--wider-colour-2)}:host([data-record=page]){--record-icon: "\uF15C";--record-colour: var(--wider-colour-3)}:host([data-record=contact]){--record-icon: "\uF2B9";--record-colour: var(--wider-colour-4)}:host([data-record=lettings]){--record-icon: "\uE003";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-5)}:host([data-record=sales]){--record-icon: "\uE004";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-7)}:host([data-record=landlord]){--record-icon: "\uE001";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-8)}:host([data-record=contractor]){--record-icon: "\uF82C";--record-colour: var(--wider-colour-9)}:host([data-record=vendor]){--record-icon: "\uE002";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-13)}:host([data-record=tenant]){--record-icon: "\uE1B0";--record-colour: var(--wider-colour-6)}:host([data-record=sales-applicant]){--record-icon: "\uE006";--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-10)}/*# sourceMappingURL=assets/css/components/record-card.component.css.map */
23
23
 
24
24
  </style>
25
25
  ${g}
26
- `,this.shadowRoot.appendChild(t.content.cloneNode(!0))}connectedCallback(){return b(this,void 0,void 0,function*(){const t=this,a=t.shadowRoot.querySelector(".card__head");u(t),Array.from(t.querySelectorAll(":scope > *:not([slot])")).forEach((r,e)=>{r.setAttribute("slot","details")}),t.hasAttribute("data-avatar")&&(a.innerHTML+=`<img src="${t.getAttribute("data-avatar")}" alt="" loading="lazy" class="card__avatar" part="avatar" />`),p(t,"iam-record-card",[])})}static get observedAttributes(){return["data-image"]}attributeChangedCallback(t,a,r){switch(t){case"data-image":{if(a!=r){const e=this.shadowRoot.querySelector(".card__head img");e&&e.setAttribute("src",r)}break}case"data-avatar":{if(a!=r){const e=this.shadowRoot.querySelector(".card__avatar");e&&e.setAttribute("src",r)}break}}}}export{f as default};
26
+ `,this.shadowRoot.appendChild(o.content.cloneNode(!0))}connectedCallback(){return b(this,void 0,void 0,function*(){const o=this,a=o.shadowRoot.querySelector(".card__head");u(o),Array.from(o.querySelectorAll(":scope > *:not([slot])")).forEach((r,e)=>{r.setAttribute("slot","details")}),o.hasAttribute("data-avatar")&&(a.innerHTML+=`<img src="${o.getAttribute("data-avatar")}" alt="" loading="lazy" class="card__avatar" part="avatar" />`),p(o,"iam-record-card",[])})}static get observedAttributes(){return["data-image"]}attributeChangedCallback(o,a,r){switch(o){case"data-image":{if(a!=r){const e=this.shadowRoot.querySelector(".card__head img");e&&e.setAttribute("src",r)}break}case"data-avatar":{if(a!=r){const e=this.shadowRoot.querySelector(".card__avatar");e&&e.setAttribute("src",r)}break}}}}export{f as default};
27
27
  //# sourceMappingURL=record-card.component.min.js.map