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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/assets/css/components/calendar.component.css +1 -1
  2. package/assets/css/components/calendar.component.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 -1
  8. package/assets/css/components/carousel.component.css.map +1 -1
  9. package/assets/css/components/carousel.config.css +1 -1
  10. package/assets/css/components/carousel.config.css.map +1 -1
  11. package/assets/css/components/collapsible-side.css +1 -1
  12. package/assets/css/components/collapsible-side.css.map +1 -1
  13. package/assets/css/components/config.component.css +1 -1
  14. package/assets/css/components/config.component.css.map +1 -1
  15. package/assets/css/components/filter-card.component.css +1 -1
  16. package/assets/css/components/filter-card.component.css.map +1 -1
  17. package/assets/css/components/nav.component.css +1 -1
  18. package/assets/css/components/nav.component.css.map +1 -1
  19. package/assets/css/components/nav.global.css +1 -1
  20. package/assets/css/components/nav.global.css.map +1 -1
  21. package/assets/css/components/rank.component.css +1 -1
  22. package/assets/css/components/rank.component.css.map +1 -1
  23. package/assets/css/components/rankings.component.css +1 -1
  24. package/assets/css/components/rankings.component.css.map +1 -1
  25. package/assets/css/components/rankings.global.css +1 -1
  26. package/assets/css/components/rankings.global.css.map +1 -1
  27. package/assets/css/components/record-card.component.css +1 -1
  28. package/assets/css/components/record-card.component.css.map +1 -1
  29. package/assets/css/components/std-nav-standalone.component.css +1 -1
  30. package/assets/css/components/std-nav-standalone.component.css.map +1 -1
  31. package/assets/css/components/video-card.component.css +1 -1
  32. package/assets/css/components/video-card.component.css.map +1 -1
  33. package/assets/css/components/video-modal.component.css +1 -1
  34. package/assets/css/components/video-modal.component.css.map +1 -1
  35. package/assets/css/components/video.component.css +1 -1
  36. package/assets/css/components/video.component.css.map +1 -1
  37. package/assets/css/core.min.css +1 -1
  38. package/assets/css/core.min.css.map +1 -1
  39. package/assets/css/elements/type.css +1 -1
  40. package/assets/css/elements/type.css.map +1 -1
  41. package/assets/css/style.min.css +1 -1
  42. package/assets/css/style.min.css.map +1 -1
  43. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  44. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  45. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  46. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  47. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  48. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  49. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  50. package/assets/js/components/button/button.component.min.js +1 -1
  51. package/assets/js/components/calendar/calendar.component.min.js +2 -2
  52. package/assets/js/components/card/card.component.js +1 -0
  53. package/assets/js/components/card/card.component.min.js +6 -5
  54. package/assets/js/components/card/card.component.min.js.map +1 -1
  55. package/assets/js/components/carousel/carousel.component.min.js +4 -4
  56. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
  57. package/assets/js/components/config/config.component.min.js +2 -2
  58. package/assets/js/components/content/content.component.js +29 -2
  59. package/assets/js/components/content/content.component.min.js +3 -3
  60. package/assets/js/components/content/content.component.min.js.map +1 -1
  61. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  62. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  63. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  64. package/assets/js/components/filter-card/filter-card.component.min.js +2 -2
  65. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  66. package/assets/js/components/form/form.component.min.js +1 -1
  67. package/assets/js/components/header/header.component.min.js +1 -1
  68. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  69. package/assets/js/components/input/input.component.min.js +1 -1
  70. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  71. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  72. package/assets/js/components/menu/menu.component.min.js +1 -1
  73. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  74. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  75. package/assets/js/components/modal/modal.component.js +3 -3
  76. package/assets/js/components/modal/modal.component.min.js +2 -2
  77. package/assets/js/components/modal/modal.component.min.js.map +1 -1
  78. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  79. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
  80. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  81. package/assets/js/components/nav/nav.component.js +0 -1
  82. package/assets/js/components/nav/nav.component.min.js +3 -4
  83. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  84. package/assets/js/components/notification/notification.component.min.js +1 -1
  85. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  86. package/assets/js/components/password/password.component.min.js +1 -1
  87. package/assets/js/components/popover/popover.component.min.js +1 -1
  88. package/assets/js/components/rank/rank.component.min.js +1 -1
  89. package/assets/js/components/rankings/rankings.component.min.js +6 -6
  90. package/assets/js/components/rating/rating.component.min.js +1 -1
  91. package/assets/js/components/record-card/record-card.component.min.js +2 -2
  92. package/assets/js/components/search/search.component.min.js +1 -1
  93. package/assets/js/components/slider/slider.component.min.js +1 -1
  94. package/assets/js/components/split-button/split-button.component.min.js +1 -1
  95. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +1 -1
  96. package/assets/js/components/std-nav/std-nav.component.js +24 -118
  97. package/assets/js/components/std-nav/std-nav.component.min.js +15 -21
  98. package/assets/js/components/std-nav/std-nav.component.min.js.map +1 -1
  99. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.js +6 -1
  100. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +8 -8
  101. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js.map +1 -1
  102. package/assets/js/components/table/table.component.min.js +1 -1
  103. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  104. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  105. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  106. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  107. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  108. package/assets/js/components/tag/tag.component.min.js +1 -1
  109. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  110. package/assets/js/components/video/video.component.min.js +5 -5
  111. package/assets/js/components/video-card/video-card.component.min.js +2 -2
  112. package/assets/js/components/video-modal/video-modal.component.min.js +2 -2
  113. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  114. package/assets/js/modules/nav.js +56 -21
  115. package/assets/js/scripts.bundle.js +1 -1
  116. package/assets/js/scripts.bundle.min.js +1 -1
  117. package/assets/sass/components/card.component.scss +27 -0
  118. package/assets/sass/components/card.module.scss +3 -2
  119. package/assets/sass/components/carousel.component.scss +14 -0
  120. package/assets/sass/components/carousel.config.scss +1 -1
  121. package/assets/sass/components/nav.component.scss +2 -2
  122. package/assets/sass/components/nav.global.scss +51 -4
  123. package/assets/sass/elements/type.css +31 -1
  124. package/assets/sass/utilities/colours.scss +4 -1
  125. package/assets/ts/components/card/card.component.ts +1 -0
  126. package/assets/ts/components/content/content.component.ts +45 -4
  127. package/assets/ts/components/modal/modal.component.ts +3 -3
  128. package/assets/ts/components/nav/nav.component.ts +0 -1
  129. package/assets/ts/components/std-nav/std-nav.component.ts +33 -149
  130. package/assets/ts/components/std-nav-standalone/std-nav-standalone.component.ts +10 -1
  131. package/assets/ts/modules/nav.ts +65 -21
  132. package/dist/components.es.js +24 -24
  133. package/dist/components.umd.js +145 -151
  134. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nav.component.min.js","sources":["nav.component.js"],"sourcesContent":["// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'nav',\n});\nclass iamNav extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/nav.component.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/nav.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style class=\"styles\">\n\n \n ${loadCSS}\n </style>\n <style class=\"doc-styles\">\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n <div class=\"container\">\n <slot name=\"logo\"></slot>\n <div class=\"buttons-holder\"></div>\n <button class=\"btn-menu\" part=\"btn-menu\">Menu<i class=\"fa-regular fa-bars\"></i><i class=\"fa-regular fa-xmark-large\"></i></button>\n\n <div class=\"menu__outer\">\n <div class=\"menu closed\">\n \n <div class=\"menu__primary\">\n <slot></slot>\n <slot name=\"dual\"></slot>\n </div>\n <div class=\"dialog__wrapper d-none\" id=\"search-wrapper\"></div>\n <slot name=\"actions\"></slot>\n <div class=\"menu__secondary bg-light\">\n <div class=\"container\">\n <slot name=\"secondary\"></slot>\n </div>\n </div>\n </div>\n <slot name=\"menus\"></slot>\n </div> \n </div>\n <div class=\"backdrop\" part=\"backdrop\"></div>\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('navGlobal'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"navGlobal\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n // Load external CSS if needed\n if (this.hasAttribute('data-css'))\n this.shadowRoot\n .querySelector('.doc-styles')\n .insertAdjacentHTML('beforeend', `@import \"${this.getAttribute('data-css')}\";`);\n const menuButton = this.shadowRoot.querySelector('.btn-menu');\n const menu = this.shadowRoot.querySelector('.menu');\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const iamNav = this;\n const backdrop = this.shadowRoot.querySelector('.backdrop');\n const buttonsHolder = this.shadowRoot.querySelector('.buttons-holder');\n // Check the content\n this.querySelectorAll(':scope > *').forEach(function (element) {\n const tagname = element.tagName;\n switch (tagname) {\n case 'BUTTON':\n if (!element.hasAttribute('slot')) {\n element.setAttribute('slot', 'actions');\n menu.classList.add('has-actions');\n }\n break;\n }\n // Create menu button\n if (element.classList.contains('nav--menu') &&\n element.hasAttribute('data-title') &&\n element.hasAttribute('data-icon')) {\n const title = element.getAttribute('data-title');\n const iconClass = element.getAttribute('data-icon');\n // Create the menu button that sits seperately to the menu\n const button = document.createElement('button');\n button.setAttribute('slot', title);\n button.classList.add('btn-menu');\n button.setAttribute('part', 'btn-menu');\n button.innerHTML = `<span class=\"btn btn-primary\"><span>${title}</span><i class=\"${iconClass}\"></i><i class=\"fa-regular fa-xmark-large\"></i></span>`;\n buttonsHolder.insertAdjacentElement('beforeend', button);\n const mdButton = button.querySelector('.btn-primary');\n // Make sure the menu is added to the right part of the component\n element.setAttribute('slot', 'menus');\n // If open we need to make sure the main mobile menu is closed, the new button has the right state and the backdrop is shown\n if (element.classList.contains('open')) {\n button.setAttribute('aria-expanded', true);\n mdButton.classList.toggle('active');\n iamNav.classList.add('open');\n backdrop.classList.add('show');\n }\n else {\n element.classList.add('closed'); // closed class is added to prevent the elements being tabbed into, this causes visual issues\n }\n // Click event\n button.addEventListener('click', function (e) {\n e.preventDefault();\n button.toggleAttribute('aria-expanded');\n element.classList.toggle('open');\n mdButton.classList.toggle('active');\n // Close desktop menus\n const openMenu = iamNav.querySelector(':scope > details[open]');\n if (openMenu)\n openMenu.removeAttribute('open');\n // Close the main menu and fix states on the button, iamNav component and backdrop\n if (element.classList.contains('open')) {\n menu.classList.remove('open');\n menuButton.removeAttribute('aria-expanded');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000); // Delay until its close so the animation is broken\n iamNav.classList.add('open');\n backdrop.classList.add('show');\n element.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n backdrop.classList.remove('show');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n }\n // Close any open menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (openmenu) {\n if (openmenu != element) {\n openmenu.classList.remove('open');\n }\n });\n iamNav.shadowRoot\n .querySelectorAll('.buttons-holder .btn-menu[aria-expanded]')\n .forEach(function (selectedButton) {\n if (selectedButton != button) {\n selectedButton.removeAttribute('aria-expanded');\n const innerBtn = selectedButton.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n }\n });\n }, false);\n }\n });\n this.querySelectorAll('details').forEach(function (element) {\n element.classList.add('details--revert');\n });\n // Has secondary link\n if (this.querySelector('[slot=\"secondary\"]')) {\n menu.classList.add('has-secondary');\n }\n // Open and close the menu\n menuButton.addEventListener('click', function (e) {\n e.preventDefault();\n menuButton.toggleAttribute('aria-expanded');\n menu.classList.toggle('open');\n // Close any other menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n if (menu.classList.contains('open')) {\n iamNav.classList.add('open');\n menu.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n }\n }, false);\n // Allow outside JS to close the menu\n this.addEventListener('request-close', () => {\n menuButton.removeAttribute('aria-expanded');\n menu.classList.remove('open');\n iamNav.classList.remove('open');\n });\n // Close the menu on the click of the backdrop on desktop\n backdrop.addEventListener('click', () => {\n const openMenu = this.querySelector('details[open] summary');\n if (openMenu)\n openMenu.click();\n iamNav.classList.toggle('open');\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n backdrop.classList.remove('show');\n });\n // On desktop close other menu's (details) when one is clicked\n this.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('summary')) {\n if (window.innerWidth > 992 && !event.target.closest('.nav--menu')) {\n const summary = event.target.closest('summary');\n const details = summary.closest('details');\n const wrapper = details.parentNode;\n if (details.hasAttribute('open'))\n details.removeAttribute('open');\n else\n details.setAttribute('open', 'true');\n // Close any bespoke menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n // Close any other dropdowns on the same level\n Array.from(wrapper.querySelectorAll(':scope > details')).forEach((detailsArrayElement) => {\n if (detailsArrayElement != details)\n detailsArrayElement.removeAttribute('open');\n });\n if (this.querySelectorAll(':scope > details[open]').length) {\n backdrop.classList.add('show');\n iamNav.classList.add('open');\n if (this.querySelectorAll(':scope > details[open][slot=\"secondary\"]').length)\n iamNav.classList.add('open-secondary');\n }\n else {\n backdrop.classList.remove('show');\n iamNav.classList.remove('open');\n iamNav.classList.remove('open-secondary');\n }\n event.preventDefault();\n }\n }\n });\n // Mega menu title\n this.querySelectorAll('details').forEach((detailsElement) => {\n const summary = detailsElement.querySelector('summary');\n const containerDiv = detailsElement.querySelector(':Scope > div');\n containerDiv.setAttribute('data-title', summary.textContent);\n });\n // Search\n if (this.querySelector('[slot=\"search\"]')) {\n menu.classList.add('has-search');\n const searchWrapper = this.shadowRoot.querySelector('#search-wrapper');\n searchWrapper.classList.remove('d-none');\n searchWrapper.insertAdjacentHTML('afterbegin', `<button class=\"btn btn-secondary btn-compact fa-search me-0 mb-0\" id=\"search-button\" aria-controls=\"search-dialog\">Open Search field</button>\n <dialog id=\"search-dialog\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col mb-0 ms-auto col-md-7\">\n <slot name=\"search\"></slot>\n </div>\n <div class=\"col d-none d-md-block mw-fit-content ms-3\">\n <button class=\"btn btn-compact btn-secondary fa-xmark-large m-0 mb-0\" type=\"button\" id=\"search-close\">Close search field</button>\n </div>\n </div>\n </div>\n </dialog>`);\n const searchButton = this.shadowRoot.querySelector('#search-button');\n const searchClose = this.shadowRoot.querySelector('#search-close');\n const searchDialog = this.shadowRoot.querySelector('#search-dialog');\n if (this.hasAttribute('data-search-open')) {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n }\n searchButton.addEventListener('click', () => {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n });\n searchClose.addEventListener('click', () => {\n searchDialog.removeAttribute('open');\n this.classList.remove('search-open');\n searchButton.removeAttribute('aria-expanded');\n });\n }\n if (this.classList.contains('nav--sticky')) {\n let oldScrollY = window.scrollY;\n window.onscroll = function (e) {\n if (oldScrollY < window.scrollY) {\n document.body.setAttribute('data-direction', 'down');\n }\n else {\n document.body.setAttribute('data-direction', 'up');\n }\n if (window.scrollY > 100) {\n document.body.classList.add('past100');\n }\n else {\n document.body.classList.remove('past100');\n }\n oldScrollY = window.scrollY;\n };\n }\n }\n}\nexport default iamNav;\n"],"names":["iamNav","shadowRoot","template","menuButton","menu","backdrop","buttonsHolder","element","title","iconClass","button","mdButton","e","openMenu","openmenu","selectedButton","event","details","wrapper","detailsArrayElement","detailsElement","summary","searchWrapper","searchButton","searchClose","searchDialog","oldScrollY"],"mappings":"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"}
1
+ {"version":3,"file":"nav.component.min.js","sources":["nav.component.js"],"sourcesContent":["// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'nav',\n});\nclass iamNav extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/nav.component.css\";`;\n const loadExtraCSS = `@import \"${assetLocation}/css/components/nav.global.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style class=\"styles\">\n\n ${loadCSS}\n </style>\n <style class=\"doc-styles\">\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n <div class=\"container\">\n <slot name=\"logo\"></slot>\n <div class=\"buttons-holder\"></div>\n <button class=\"btn-menu\" part=\"btn-menu\">Menu<i class=\"fa-regular fa-bars\"></i><i class=\"fa-regular fa-xmark-large\"></i></button>\n\n <div class=\"menu__outer\">\n <div class=\"menu closed\">\n \n <div class=\"menu__primary\">\n <slot></slot>\n <slot name=\"dual\"></slot>\n </div>\n <div class=\"dialog__wrapper d-none\" id=\"search-wrapper\"></div>\n <slot name=\"actions\"></slot>\n <div class=\"menu__secondary bg-light\">\n <div class=\"container\">\n <slot name=\"secondary\"></slot>\n </div>\n </div>\n </div>\n <slot name=\"menus\"></slot>\n </div> \n </div>\n <div class=\"backdrop\" part=\"backdrop\"></div>\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n // insert extra CSS\n if (!document.getElementById('navGlobal'))\n document.head.insertAdjacentHTML('beforeend', `<style id=\"navGlobal\">${loadExtraCSS}</style>`);\n }\n connectedCallback() {\n // Load external CSS if needed\n if (this.hasAttribute('data-css'))\n this.shadowRoot\n .querySelector('.doc-styles')\n .insertAdjacentHTML('beforeend', `@import \"${this.getAttribute('data-css')}\";`);\n const menuButton = this.shadowRoot.querySelector('.btn-menu');\n const menu = this.shadowRoot.querySelector('.menu');\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const iamNav = this;\n const backdrop = this.shadowRoot.querySelector('.backdrop');\n const buttonsHolder = this.shadowRoot.querySelector('.buttons-holder');\n // Check the content\n this.querySelectorAll(':scope > *').forEach(function (element) {\n const tagname = element.tagName;\n switch (tagname) {\n case 'BUTTON':\n if (!element.hasAttribute('slot')) {\n element.setAttribute('slot', 'actions');\n menu.classList.add('has-actions');\n }\n break;\n }\n // Create menu button\n if (element.classList.contains('nav--menu') &&\n element.hasAttribute('data-title') &&\n element.hasAttribute('data-icon')) {\n const title = element.getAttribute('data-title');\n const iconClass = element.getAttribute('data-icon');\n // Create the menu button that sits seperately to the menu\n const button = document.createElement('button');\n button.setAttribute('slot', title);\n button.classList.add('btn-menu');\n button.setAttribute('part', 'btn-menu');\n button.innerHTML = `<span class=\"btn btn-primary\"><span>${title}</span><i class=\"${iconClass}\"></i><i class=\"fa-regular fa-xmark-large\"></i></span>`;\n buttonsHolder.insertAdjacentElement('beforeend', button);\n const mdButton = button.querySelector('.btn-primary');\n // Make sure the menu is added to the right part of the component\n element.setAttribute('slot', 'menus');\n // If open we need to make sure the main mobile menu is closed, the new button has the right state and the backdrop is shown\n if (element.classList.contains('open')) {\n button.setAttribute('aria-expanded', true);\n mdButton.classList.toggle('active');\n iamNav.classList.add('open');\n backdrop.classList.add('show');\n }\n else {\n element.classList.add('closed'); // closed class is added to prevent the elements being tabbed into, this causes visual issues\n }\n // Click event\n button.addEventListener('click', function (e) {\n e.preventDefault();\n button.toggleAttribute('aria-expanded');\n element.classList.toggle('open');\n mdButton.classList.toggle('active');\n // Close desktop menus\n const openMenu = iamNav.querySelector(':scope > details[open]');\n if (openMenu)\n openMenu.removeAttribute('open');\n // Close the main menu and fix states on the button, iamNav component and backdrop\n if (element.classList.contains('open')) {\n menu.classList.remove('open');\n menuButton.removeAttribute('aria-expanded');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000); // Delay until its close so the animation is broken\n iamNav.classList.add('open');\n backdrop.classList.add('show');\n element.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n backdrop.classList.remove('show');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n }\n // Close any open menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (openmenu) {\n if (openmenu != element) {\n openmenu.classList.remove('open');\n }\n });\n iamNav.shadowRoot\n .querySelectorAll('.buttons-holder .btn-menu[aria-expanded]')\n .forEach(function (selectedButton) {\n if (selectedButton != button) {\n selectedButton.removeAttribute('aria-expanded');\n const innerBtn = selectedButton.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n }\n });\n }, false);\n }\n });\n this.querySelectorAll('details').forEach(function (element) {\n element.classList.add('details--revert');\n });\n // Has secondary link\n if (this.querySelector('[slot=\"secondary\"]')) {\n menu.classList.add('has-secondary');\n }\n // Open and close the menu\n menuButton.addEventListener('click', function (e) {\n e.preventDefault();\n menuButton.toggleAttribute('aria-expanded');\n menu.classList.toggle('open');\n // Close any other menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n element.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n if (menu.classList.contains('open')) {\n iamNav.classList.add('open');\n menu.classList.remove('closed');\n }\n else {\n iamNav.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n }\n }, false);\n // Allow outside JS to close the menu\n this.addEventListener('request-close', () => {\n menuButton.removeAttribute('aria-expanded');\n menu.classList.remove('open');\n iamNav.classList.remove('open');\n });\n // Close the menu on the click of the backdrop on desktop\n backdrop.addEventListener('click', () => {\n const openMenu = this.querySelector('details[open] summary');\n if (openMenu)\n openMenu.click();\n iamNav.classList.toggle('open');\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n backdrop.classList.remove('show');\n });\n // On desktop close other menu's (details) when one is clicked\n this.addEventListener('click', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('summary')) {\n if (window.innerWidth > 992 && !event.target.closest('.nav--menu')) {\n const summary = event.target.closest('summary');\n const details = summary.closest('details');\n const wrapper = details.parentNode;\n if (details.hasAttribute('open'))\n details.removeAttribute('open');\n else\n details.setAttribute('open', 'true');\n // Close any bespoke menus\n iamNav.querySelectorAll('.nav--menu.open').forEach(function (element) {\n element.classList.remove('open');\n setTimeout(function () {\n menu.classList.add('closed');\n }, 1000);\n });\n iamNav.shadowRoot.querySelectorAll('.buttons-holder .btn-menu[aria-expanded]').forEach(function (element) {\n element.removeAttribute('aria-expanded');\n const innerBtn = element.querySelector('.btn-primary');\n innerBtn.classList.remove('active');\n });\n // Close any other dropdowns on the same level\n Array.from(wrapper.querySelectorAll(':scope > details')).forEach((detailsArrayElement) => {\n if (detailsArrayElement != details)\n detailsArrayElement.removeAttribute('open');\n });\n if (this.querySelectorAll(':scope > details[open]').length) {\n backdrop.classList.add('show');\n iamNav.classList.add('open');\n if (this.querySelectorAll(':scope > details[open][slot=\"secondary\"]').length)\n iamNav.classList.add('open-secondary');\n }\n else {\n backdrop.classList.remove('show');\n iamNav.classList.remove('open');\n iamNav.classList.remove('open-secondary');\n }\n event.preventDefault();\n }\n }\n });\n // Mega menu title\n this.querySelectorAll('details').forEach((detailsElement) => {\n const summary = detailsElement.querySelector('summary');\n const containerDiv = detailsElement.querySelector(':Scope > div');\n containerDiv.setAttribute('data-title', summary.textContent);\n });\n // Search\n if (this.querySelector('[slot=\"search\"]')) {\n menu.classList.add('has-search');\n const searchWrapper = this.shadowRoot.querySelector('#search-wrapper');\n searchWrapper.classList.remove('d-none');\n searchWrapper.insertAdjacentHTML('afterbegin', `<button class=\"btn btn-secondary btn-compact fa-search me-0 mb-0\" id=\"search-button\" aria-controls=\"search-dialog\">Open Search field</button>\n <dialog id=\"search-dialog\">\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col mb-0 ms-auto col-md-7\">\n <slot name=\"search\"></slot>\n </div>\n <div class=\"col d-none d-md-block mw-fit-content ms-3\">\n <button class=\"btn btn-compact btn-secondary fa-xmark-large m-0 mb-0\" type=\"button\" id=\"search-close\">Close search field</button>\n </div>\n </div>\n </div>\n </dialog>`);\n const searchButton = this.shadowRoot.querySelector('#search-button');\n const searchClose = this.shadowRoot.querySelector('#search-close');\n const searchDialog = this.shadowRoot.querySelector('#search-dialog');\n if (this.hasAttribute('data-search-open')) {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n }\n searchButton.addEventListener('click', () => {\n searchDialog.setAttribute('open', 'open');\n this.classList.add('search-open');\n searchButton.setAttribute('aria-expanded', true);\n });\n searchClose.addEventListener('click', () => {\n searchDialog.removeAttribute('open');\n this.classList.remove('search-open');\n searchButton.removeAttribute('aria-expanded');\n });\n }\n if (this.classList.contains('nav--sticky')) {\n let oldScrollY = window.scrollY;\n window.onscroll = function (e) {\n if (oldScrollY < window.scrollY) {\n document.body.setAttribute('data-direction', 'down');\n }\n else {\n document.body.setAttribute('data-direction', 'up');\n }\n if (window.scrollY > 100) {\n document.body.classList.add('past100');\n }\n else {\n document.body.classList.remove('past100');\n }\n oldScrollY = window.scrollY;\n };\n }\n }\n}\nexport default iamNav;\n"],"names":["iamNav","shadowRoot","template","menuButton","menu","backdrop","buttonsHolder","element","title","iconClass","button","mdButton","e","openMenu","openmenu","selectedButton","event","details","wrapper","detailsArrayElement","detailsElement","summary","searchWrapper","searchButton","searchClose","searchDialog","oldScrollY"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta16
2
+ * iamKey v7.7.1--beta17
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */function l(e){if(e.hasAttribute("data-type")&&e.getAttribute("data-type")=="toast"){let i=document.querySelector(".notification__holder");i||(i=document.createElement("div"),i.classList.add("notification__holder"),i.classList.add("container"),document.querySelector("body").appendChild(i)),e.closest(".notification__holder")||i.appendChild(e)}if(e.setAttribute("role","alert"),e.addEventListener("click",function(i){event&&event.target instanceof HTMLElement&&(event.target.closest("[data-dismiss-button]")||event.target.matches("[data-dismiss-button]"))&&(i.preventDefault(),c(e))},!1),e.hasAttribute("data-timeout")){const i=e.getAttribute("data-timeout"),t=new m(function(){c(e)},i);e.addEventListener("mouseenter",()=>{t.pause()}),e.addEventListener("mouseleave",()=>{t.resume()})}}function m(e,i){let t,o,n=i;this.pause=function(){window.clearTimeout(t),n-=new Date-o},this.resume=function(){o=new Date,window.clearTimeout(t),t=window.setTimeout(e,n)},this.resume()}const c=function(e){e.classList.add("d-none")},f=e=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:e})},b=(e,i,t)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:i}),t.forEach(o=>{e.addEventListener(o,function(n){const a={event:o,element:i,target:n.target};Object.keys(n.detail).forEach(r=>{const s=n.detail[r];a[r]=s}),window.dataLayer.push(a)})}),!0);f("iam-notification");class h extends HTMLElement{constructor(){super(),this.addColour=(t,o)=>{t.hasAttribute("data-type")?t.classList.add(`bg-${o}`):t.classList.add(`colour-${o}`)},this.addIcon=(t,o)=>{switch(o){case"danger":t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-circle-exclamation" aria-hidden="true" slot="icon"></i>');break;case"warning":t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-triangle-exclamation" aria-hidden="true" slot="icon"></i>');break;case"success":t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-check-circle" aria-hidden="true" slot="icon"></i>');break;default:t.insertAdjacentHTML("beforeend",'<i class="fa-solid fa-circle-info" aria-hidden="true" slot="icon"></i>')}},this.addDismissBtn=t=>{var o;(o=t.shadowRoot.querySelector(".notification__dismiss"))===null||o===void 0||(o.innerHTML='<button data-dismiss-button part="dismiss-btn" class="btn btn-secondary btn-compact fa-xmark">Dismiss</button>'),t.shadowRoot.querySelector(".notification__dismiss [data-dismiss-button]").addEventListener("click",function(){c(t);const n=new CustomEvent("dismiss",{detail:{class:t.classList}});t.dispatchEvent(n)},!1)},this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta16
2
+ * iamKey v7.7.1--beta17
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */class v extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta16
2
+ * iamKey v7.7.1--beta17
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const u=c=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:c})};function m(c){var r=new TextEncoder("utf-8").encode(c);return crypto.subtle.digest("SHA-1",r).then(function(e){for(var i=[],a=new DataView(e),o=0;o<a.byteLength;o+=4){var s=a.getUint32(o),n=s.toString(16),t="00000000",p=(t+n).slice(-t.length);i.push(p)}return i.join("")})}const b=(c,r)=>{m(c).then(function(e){const i=new XMLHttpRequest;i.addEventListener("load",function(){const a=this.responseText.split(`
5
5
  `),o=e.slice(5).toUpperCase();var s=!1;for(let t in a)if(a[t].substring(0,35)==o){s=!0;break}const n=new CustomEvent("hibpCheck",{detail:s});r.dispatchEvent(n)}),i.open("GET","https://api.pwnedpasswords.com/range/"+e.substr(0,5)),i.send()})};u("iam-password");class x extends HTMLElement{constructor(){var r;super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta16
2
+ * iamKey v7.7.1--beta17
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const i=o=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:o})};i("iam-popover");class a extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta16
2
+ * iamKey v7.7.1--beta17
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const i=o=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:o})};i("iam-rank");class a extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const C=`@import "${document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets"}/css/components/rank.component.css";`,l=document.createElement("template");l.innerHTML=`
5
5
  <style>
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta16
2
+ * iamKey v7.7.1--beta17
3
3
  * Copyright 2022-2026 iamproperty
4
- */const m=a=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:a})};m("iam-rank");class g extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const i=`@import "${document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets"}/css/components/rank.component.css";`,o=document.createElement("template");o.innerHTML=`
4
+ */const L=e=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:e})};L("iam-rank");class g extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const i=`@import "${document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets"}/css/components/rank.component.css";`,o=document.createElement("template");o.innerHTML=`
5
5
  <style>
6
6
  ${i}
7
7
  </style>
@@ -360,9 +360,9 @@
360
360
  <div class="title" part="title">
361
361
  <span></span>
362
362
  </div>
363
- `,this.shadowRoot.appendChild(o.content.cloneNode(!0))}connectedCallback(){var t,i;const o=this.hasAttribute("data-position")?this.getAttribute("data-position"):(t=this.textContent)===null||t===void 0?void 0:t.trim(),C=(i=this.shadowRoot)===null||i===void 0?void 0:i.querySelector(".title span");C==null||(C.innerHTML=this.hasAttribute("data-title")?this.getAttribute("data-title"):""),this.setAttribute("data-position",o)}}m("iam-rankings");class u 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=`
363
+ `,this.shadowRoot.appendChild(o.content.cloneNode(!0))}connectedCallback(){var t,i;const o=this.hasAttribute("data-position")?this.getAttribute("data-position"):(t=this.textContent)===null||t===void 0?void 0:t.trim(),C=(i=this.shadowRoot)===null||i===void 0?void 0:i.querySelector(".title span");C==null||(C.innerHTML=this.hasAttribute("data-title")?this.getAttribute("data-title"):""),this.setAttribute("data-position",o)}}L("iam-rankings");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=`
364
364
  <style>
365
- @layer elements{:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6,.display-1,.display-2,.display-3,.display-4){margin-top:0;margin-bottom:0;font-family:var(--font-heading);font-style:normal;font-weight:bold;color:var(--colour-heading);clear:both;display:block;& [class*=fa-]{margin-right:.5rem}}:is(.h1,h1){font-size:var(--h1-fs);line-height:var(--h1-lh);padding-bottom:var(--h1-pb);font-weight:900}:is(h2,.h2){font-size:var(--h2-fs);line-height:var(--h2-lh);padding-bottom:var(--h2-pb);font-weight:900}:is(h3,.h3){font-size:var(--h3-fs);line-height:var(--h3-lh);padding-bottom:var(--h3-pb);max-width:var(--content-max-width)}:is(.h4,h4,.h5,h5,.h6,h6){font-size:var(--h4-fs);line-height:var(--h4-lh);padding-bottom:var(--h4-pb);max-width:var(--content-max-width)}p{margin-top:0;font-size:var(--body-fs);line-height:1.5rem;padding-bottom:3rem;max-width:var(--content-max-width);margin-bottom:0}p:has(+p){padding-bottom:1.5rem}p:empty{display:none}:is(.lead,.strapline){font-size:1.125rem;line-height:1.75rem;padding-bottom:3rem;max-width:var(--content-max-width);font-weight:700}small,.small{font-size:.875rem;line-height:1.5rem;padding-bottom:2rem;max-width:var(--content-max-width);font-weight:normal}.x-small{font-size:.625rem;line-height:1.5rem;padding-bottom:1rem;max-width:var(--content-max-width);font-weight:normal}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}strong{font-weight:bolder;font-family:var(--font-heading);color:var(--colour-heading)}address{margin-bottom:1rem;font-style:normal;line-height:inherit}blockquote{margin:0;quotes:"\u201C" "\u201D" "\u2018" "\u2019";padding-bottom:3rem;overflow:hidden;& p{font-size:1.5rem;line-height:2rem;padding-bottom:0}& p:first-child:before{content:open-quote}& p:last-of-type:after{content:close-quote}& cite{font-size:1.125rem;line-height:2rem;padding-bottom:0;font-weight:bold;font-style:normal}}mark{padding:.1875em;background-color:yellow}.stat{font-size:4rem;line-height:4.5rem;font-weight:bold;color:var(--colour-heading);display:block;text-decoration:underline;text-underline-offset:.75rem;text-decoration-color:var(--colour-secondary);text-decoration-thickness:.25rem;margin-bottom:4rem}}@layer utilities{:is(.mh-sm,.mh-md,.mh-lg,.mh-sm-sm,.mh-sm-md,.mh-sm-lg,.mh-md-sm,.mh-md-md,.mh-md-lg,.mh-fluid):not(iam-table):not(.table__wrapper){padding-inline:var(--mh-padding-inline, 0);margin-inline:calc(var(--mh-padding-inline, 0)*-1)}:is(.mh-sm,.mh-md,.mh-lg,.mh-sm-sm,.mh-sm-md,.mh-sm-lg,.mh-md-sm,.mh-md-md,.mh-md-lg,.mh-fluid)::before{top:calc(100% - 1.5rem);bottom:0;left:0;right:0;height:1.5rem;position:sticky;display:block;background:linear-gradient(180deg, transparent 0%, var(--colour-canvas-2) 100%);z-index:2;margin-bottom:-1.5rem}:is(.mh-sm,.mh-md,.mh-lg,.mh-fluid){overflow:auto;overscroll-behavior:contain}:is(.mh-sm,.mh-md,.mh-lg,.mh-fluid)::before{content:""}.mh-sm{max-height:calc(var(--max-height-sm) - var(--mh-modifier, 0rem))}.mh-md{max-height:calc(var(--max-height-md) - var(--mh-modifier, 0rem))}.mh-lg{max-height:calc(var(--max-height-lg) - var(--mh-modifier, 0rem))}.mh-fluid{max-height:100%}@media screen and (min-width: 36em){:is(.mh-sm-sm,.mh-sm-md,.mh-sm-lg){overflow:auto;overscroll-behavior:contain}:is(.mh-sm-sm,.mh-sm-md,.mh-sm-lg)::before{content:""}.mh-sm-sm{max-height:calc(var(--max-height-sm) - var(--mh-modifier, 0rem))}.mh-sm-md{max-height:calc(var(--max-height-md) - var(--mh-modifier, 0rem))}.mh-sm-lg{max-height:calc(var(--max-height-lg) - var(--mh-modifier, 0rem))}}@media screen and (min-width: 62em){:is(.mh-md-sm,.mh-md-md,.mh-md-lg){overflow:auto;overscroll-behavior:contain}:is(.mh-md-sm,.mh-md-md,.mh-md-lg)::before{content:""}.mh-md-sm{max-height:calc(var(--max-height-sm) - var(--mh-modifier, 0rem))}.mh-md-md{max-height:calc(var(--max-height-md) - var(--mh-modifier, 0rem))}.mh-md-lg{max-height:calc(var(--max-height-lg) - var(--mh-modifier, 0rem))}}}:host{overflow:visible}*,*::before,*::after{box-sizing:border-box}.podium{display:flex;flex-direction:row;flex-wrap:nowrap;max-width:30rem;margin:auto;gap:1rem}.podium>div{flex-basis:30%;flex-grow:1;flex-shrink:1;order:1;position:relative;display:flex;align-items:flex-end;justify-content:center}.podium>div:nth-child(1){order:2}.podium>div:nth-child(3){order:3}.mh-md{display:contents}.mh-md:before{display:none}:host(.leaderboard-scroll) .mh-md{display:block;max-height:calc(var(--leaderboard-height, 25rem) - var(--mh-modifier, 0rem))}:host(.leaderboard-scroll) .mh-md:before{display:block}:host(.hide-podium) .podium{display:none}:host(.hide-leaderboard) .mh-md{display:none !important}/*# sourceMappingURL=assets/css/components/rankings.component.css.map */
365
+ @layer elements{:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6,.display-1,.display-2,.display-3,.display-4){margin-top:0;margin-bottom:0;font-family:var(--font-heading);font-style:normal;font-weight:bold;color:var(--colour-heading);clear:both;display:block;& [class*=fa-]{margin-right:.5rem}}:is(.h1,h1){font-size:var(--h1-fs);line-height:var(--h1-lh);padding-bottom:var(--h1-pb);font-weight:900}:is(h2,.h2){font-size:var(--h2-fs);line-height:var(--h2-lh);padding-bottom:var(--h2-pb);font-weight:900}:is(h3,.h3){font-size:var(--h3-fs);line-height:var(--h3-lh);padding-bottom:var(--h3-pb);max-width:var(--content-max-width)}:is(h4,h5,h6){font-size:var(--h4-fs);line-height:var(--h4-lh);padding-bottom:var(--h4-pb);max-width:var(--content-max-width)}.h1{font-size:var(--h1-fs);line-height:var(--h1-lh);padding-bottom:var(--h1-pb);font-weight:900}.h2{font-size:var(--h2-fs);line-height:var(--h2-lh);padding-bottom:var(--h2-pb);font-weight:900}.h3{font-size:var(--h3-fs);line-height:var(--h3-lh);padding-bottom:var(--h3-pb);max-width:var(--content-max-width)}:is(.h4,.h5,.h6){font-size:var(--h4-fs);line-height:var(--h4-lh);padding-bottom:var(--h4-pb);max-width:var(--content-max-width)}p{margin-top:0;font-size:var(--body-fs);line-height:1.5rem;padding-bottom:3rem;max-width:var(--content-max-width);margin-bottom:0}p:has(+p){padding-bottom:1.5rem}p:empty{display:none}:is(.lead,.strapline){font-size:1.125rem;line-height:1.75rem;padding-bottom:3rem;max-width:var(--content-max-width);font-weight:700}small,.small{font-size:.875rem;line-height:1.5rem;padding-bottom:2rem;max-width:var(--content-max-width);font-weight:normal}.x-small{font-size:.625rem;line-height:1.5rem;padding-bottom:1rem;max-width:var(--content-max-width);font-weight:normal}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}strong{font-weight:bolder;font-family:var(--font-heading);color:var(--colour-heading)}address{margin-bottom:1rem;font-style:normal;line-height:inherit}blockquote{margin:0;quotes:"\u201C" "\u201D" "\u2018" "\u2019";padding-bottom:3rem;overflow:hidden;& p{font-size:1.5rem;line-height:2rem;padding-bottom:0}& p:first-child:before{content:open-quote}& p:last-of-type:after{content:close-quote}& cite{font-size:1.125rem;line-height:2rem;padding-bottom:0;font-weight:bold;font-style:normal}}mark{padding:.1875em;background-color:yellow}.stat{font-size:4rem;line-height:4.5rem;font-weight:bold;color:var(--colour-heading);display:block;text-decoration:underline;text-underline-offset:.75rem;text-decoration-color:var(--colour-secondary);text-decoration-thickness:.25rem;margin-bottom:4rem}}@layer utilities{:is(.mh-sm,.mh-md,.mh-lg,.mh-sm-sm,.mh-sm-md,.mh-sm-lg,.mh-md-sm,.mh-md-md,.mh-md-lg,.mh-fluid):not(iam-table):not(.table__wrapper){padding-inline:var(--mh-padding-inline, 0);margin-inline:calc(var(--mh-padding-inline, 0)*-1)}:is(.mh-sm,.mh-md,.mh-lg,.mh-sm-sm,.mh-sm-md,.mh-sm-lg,.mh-md-sm,.mh-md-md,.mh-md-lg,.mh-fluid)::before{top:calc(100% - 1.5rem);bottom:0;left:0;right:0;height:1.5rem;position:sticky;display:block;background:linear-gradient(180deg, transparent 0%, var(--colour-canvas-2) 100%);z-index:2;margin-bottom:-1.5rem}:is(.mh-sm,.mh-md,.mh-lg,.mh-fluid){overflow:auto;overscroll-behavior:contain}:is(.mh-sm,.mh-md,.mh-lg,.mh-fluid)::before{content:""}.mh-sm{max-height:calc(var(--max-height-sm) - var(--mh-modifier, 0rem))}.mh-md{max-height:calc(var(--max-height-md) - var(--mh-modifier, 0rem))}.mh-lg{max-height:calc(var(--max-height-lg) - var(--mh-modifier, 0rem))}.mh-fluid{max-height:100%}@media screen and (min-width: 36em){:is(.mh-sm-sm,.mh-sm-md,.mh-sm-lg){overflow:auto;overscroll-behavior:contain}:is(.mh-sm-sm,.mh-sm-md,.mh-sm-lg)::before{content:""}.mh-sm-sm{max-height:calc(var(--max-height-sm) - var(--mh-modifier, 0rem))}.mh-sm-md{max-height:calc(var(--max-height-md) - var(--mh-modifier, 0rem))}.mh-sm-lg{max-height:calc(var(--max-height-lg) - var(--mh-modifier, 0rem))}}@media screen and (min-width: 62em){:is(.mh-md-sm,.mh-md-md,.mh-md-lg){overflow:auto;overscroll-behavior:contain}:is(.mh-md-sm,.mh-md-md,.mh-md-lg)::before{content:""}.mh-md-sm{max-height:calc(var(--max-height-sm) - var(--mh-modifier, 0rem))}.mh-md-md{max-height:calc(var(--max-height-md) - var(--mh-modifier, 0rem))}.mh-md-lg{max-height:calc(var(--max-height-lg) - var(--mh-modifier, 0rem))}}}:host{overflow:visible}*,*::before,*::after{box-sizing:border-box}.podium{display:flex;flex-direction:row;flex-wrap:nowrap;max-width:30rem;margin:auto;gap:1rem}.podium>div{flex-basis:30%;flex-grow:1;flex-shrink:1;order:1;position:relative;display:flex;align-items:flex-end;justify-content:center}.podium>div:nth-child(1){order:2}.podium>div:nth-child(3){order:3}.mh-md{display:contents}.mh-md:before{display:none}:host(.leaderboard-scroll) .mh-md{display:block;max-height:calc(var(--leaderboard-height, 25rem) - var(--mh-modifier, 0rem))}:host(.leaderboard-scroll) .mh-md:before{display:block}:host(.hide-podium) .podium{display:none}:host(.hide-leaderboard) .mh-md{display:none !important}/*# sourceMappingURL=assets/css/components/rankings.component.css.map */
366
366
 
367
367
  </style>
368
368
  <div class="podium">
@@ -377,6 +377,6 @@
377
377
  </div>
378
378
  </div>
379
379
  <div class="mh-md" part="leaderboard"><slot></slot></div>
380
- `,this.shadowRoot.appendChild(t.content.cloneNode(!0)),document.getElementById("rankingsGlobal")||document.head.insertAdjacentHTML("beforeend",`<style id="rankingsGlobal">@layer elements{:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6,.display-1,.display-2,.display-3,.display-4){margin-top:0;margin-bottom:0;font-family:var(--font-heading);font-style:normal;font-weight:bold;color:var(--colour-heading);clear:both;display:block;& [class*=fa-]{margin-right:.5rem}}:is(.h1,h1){font-size:var(--h1-fs);line-height:var(--h1-lh);padding-bottom:var(--h1-pb);font-weight:900}:is(h2,.h2){font-size:var(--h2-fs);line-height:var(--h2-lh);padding-bottom:var(--h2-pb);font-weight:900}:is(h3,.h3){font-size:var(--h3-fs);line-height:var(--h3-lh);padding-bottom:var(--h3-pb);max-width:var(--content-max-width)}:is(.h4,h4,.h5,h5,.h6,h6){font-size:var(--h4-fs);line-height:var(--h4-lh);padding-bottom:var(--h4-pb);max-width:var(--content-max-width)}p{margin-top:0;font-size:var(--body-fs);line-height:1.5rem;padding-bottom:3rem;max-width:var(--content-max-width);margin-bottom:0}p:has(+p){padding-bottom:1.5rem}p:empty{display:none}:is(.lead,.strapline){font-size:1.125rem;line-height:1.75rem;padding-bottom:3rem;max-width:var(--content-max-width);font-weight:700}small,.small{font-size:.875rem;line-height:1.5rem;padding-bottom:2rem;max-width:var(--content-max-width);font-weight:normal}.x-small{font-size:.625rem;line-height:1.5rem;padding-bottom:1rem;max-width:var(--content-max-width);font-weight:normal}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}strong{font-weight:bolder;font-family:var(--font-heading);color:var(--colour-heading)}address{margin-bottom:1rem;font-style:normal;line-height:inherit}blockquote{margin:0;quotes:"\u201C" "\u201D" "\u2018" "\u2019";padding-bottom:3rem;overflow:hidden;& p{font-size:1.5rem;line-height:2rem;padding-bottom:0}& p:first-child:before{content:open-quote}& p:last-of-type:after{content:close-quote}& cite{font-size:1.125rem;line-height:2rem;padding-bottom:0;font-weight:bold;font-style:normal}}mark{padding:.1875em;background-color:yellow}.stat{font-size:4rem;line-height:4.5rem;font-weight:bold;color:var(--colour-heading);display:block;text-decoration:underline;text-underline-offset:.75rem;text-decoration-color:var(--colour-secondary);text-decoration-thickness:.25rem;margin-bottom:4rem}}*,*::before,*::after{box-sizing:border-box}iam-rankings table{display:block;width:calc(100% - 2rem);font-weight:normal;counter-reset:countItem;overflow:visible;margin-inline:1rem}iam-rankings thead{display:none}iam-rankings tbody{display:contents}iam-rankings :is(td,th){font-weight:normal}iam-rankings td{font-size:1.75rem;color:var(--colour-heading)}iam-rankings tr.current{background-color:var(--colour-light)}iam-rankings tr.current :is(td,th){font-weight:bolder}iam-rankings tr{display:flex;width:100%;position:relative;z-index:1}iam-rankings tr:before{counter-increment:countItem;content:counter(countItem) ".";font-size:2rem;line-height:2.5rem;font-weight:bolder;color:var(--colour-primary);width:3rem;text-align:center;margin-top:.5rem}iam-rankings tr>*:first-child{width:100%;margin-right:0;padding-right:0}iam-rankings tr>*:last-child{position:absolute;top:0;right:0}iam-rankings tr progress{width:100%;height:1rem}iam-rankings tr progress::-webkit-progress-bar{background-color:rgba(0,0,0,0);border-radius:0}iam-rankings tr progress::-webkit-progress-value{background-color:var(--colour, var(--colour-info));border-radius:0}iam-rankings tr:has(iam-rank):before{opacity:0}iam-rankings tr:has(iam-rank) iam-rank{position:absolute;top:0;left:0;width:2rem}iam-rankings tr:has(+tr.highlighted){border:none !important}iam-rankings tr.highlighted{background:var(--colour-info);margin-block:1rem}iam-rankings tr.highlighted:after{content:"";position:absolute;inset:0;display:block;background:var(--colour-info);z-index:-1;margin:-0.75rem;border-radius:.5rem;box-shadow:0px 6px 12px rgba(0,0,0,.11)}iam-rankings tr:nth-child(1) progress{--colour: var(--wider-colour-7)}iam-rankings tr:nth-child(1) progress{--colour: var(--chart-colour-1)}iam-rankings tr:nth-child(2) progress{--colour: var(--chart-colour-2)}iam-rankings tr:nth-child(3) progress{--colour: var(--chart-colour-3)}iam-rankings tr:nth-child(4) progress{--colour: var(--chart-colour-4)}iam-rankings tr:nth-child(5) progress{--colour: var(--chart-colour-5)}iam-rankings tr:nth-child(6) progress{--colour: var(--chart-colour-6)}iam-rankings tr:nth-child(7) progress{--colour: var(--chart-colour-7)}iam-rankings tr:nth-child(8) progress{--colour: var(--chart-colour-8)}iam-rankings tr:nth-child(9) progress{--colour: var(--chart-colour-9)}iam-rankings tr:nth-child(10) progress{--colour: var(--chart-colour-10)}iam-rankings.hide-progress progress{display:none}iam-rankings.hide-value tbody td{display:none}/*# sourceMappingURL=assets/css/components/rankings.global.css.map */
381
- </style>`)}connectedCallback(){var t,i,o,C,l,r;const s=(t=this.shadowRoot)===null||t===void 0?void 0:t.querySelector(".first-position"),n=(i=this.shadowRoot)===null||i===void 0?void 0:i.querySelector(".second-position"),d=(o=this.shadowRoot)===null||o===void 0?void 0:o.querySelector(".third-position");s?.setAttribute("data-title",(C=this.querySelector("tbody tr:nth-child(1) :is(td,th):nth-child(1)"))===null||C===void 0?void 0:C.textContent),n?.setAttribute("data-title",(l=this.querySelector("tbody tr:nth-child(2) :is(td,th):nth-child(1)"))===null||l===void 0?void 0:l.textContent),d?.setAttribute("data-title",(r=this.querySelector("tbody tr:nth-child(3) :is(td,th):nth-child(1)"))===null||r===void 0?void 0:r.textContent);const f=this.hasAttribute("data-max")?this.getAttribute("data-max"):100;if(this.querySelectorAll("tbody tr").forEach(e=>{var h,p,L;const c=(p=(h=e.querySelector("td:last-child"))===null||h===void 0?void 0:h.textContent)===null||p===void 0?void 0:p.trim();e.querySelector(":first-child progress")||(L=e.querySelector(":first-child"))===null||L===void 0||(L.innerHTML+=`<progress max="${f}" value="${c}"></progress>`)}),!this.classList.contains("hide-gold")){const e=this.querySelector("tbody tr th");e?.insertAdjacentHTML("afterbegin",'<iam-rank class="rank--medal first-position">1st</iam-rank>')}window.customElements.get("iam-rank")||window.customElements.define("iam-rank",g)}}export{u as default};
380
+ `,this.shadowRoot.appendChild(t.content.cloneNode(!0)),document.getElementById("rankingsGlobal")||document.head.insertAdjacentHTML("beforeend",`<style id="rankingsGlobal">@layer elements{:is(h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6,.display-1,.display-2,.display-3,.display-4){margin-top:0;margin-bottom:0;font-family:var(--font-heading);font-style:normal;font-weight:bold;color:var(--colour-heading);clear:both;display:block;& [class*=fa-]{margin-right:.5rem}}:is(.h1,h1){font-size:var(--h1-fs);line-height:var(--h1-lh);padding-bottom:var(--h1-pb);font-weight:900}:is(h2,.h2){font-size:var(--h2-fs);line-height:var(--h2-lh);padding-bottom:var(--h2-pb);font-weight:900}:is(h3,.h3){font-size:var(--h3-fs);line-height:var(--h3-lh);padding-bottom:var(--h3-pb);max-width:var(--content-max-width)}:is(h4,h5,h6){font-size:var(--h4-fs);line-height:var(--h4-lh);padding-bottom:var(--h4-pb);max-width:var(--content-max-width)}.h1{font-size:var(--h1-fs);line-height:var(--h1-lh);padding-bottom:var(--h1-pb);font-weight:900}.h2{font-size:var(--h2-fs);line-height:var(--h2-lh);padding-bottom:var(--h2-pb);font-weight:900}.h3{font-size:var(--h3-fs);line-height:var(--h3-lh);padding-bottom:var(--h3-pb);max-width:var(--content-max-width)}:is(.h4,.h5,.h6){font-size:var(--h4-fs);line-height:var(--h4-lh);padding-bottom:var(--h4-pb);max-width:var(--content-max-width)}p{margin-top:0;font-size:var(--body-fs);line-height:1.5rem;padding-bottom:3rem;max-width:var(--content-max-width);margin-bottom:0}p:has(+p){padding-bottom:1.5rem}p:empty{display:none}:is(.lead,.strapline){font-size:1.125rem;line-height:1.75rem;padding-bottom:3rem;max-width:var(--content-max-width);font-weight:700}small,.small{font-size:.875rem;line-height:1.5rem;padding-bottom:2rem;max-width:var(--content-max-width);font-weight:normal}.x-small{font-size:.625rem;line-height:1.5rem;padding-bottom:1rem;max-width:var(--content-max-width);font-weight:normal}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}strong{font-weight:bolder;font-family:var(--font-heading);color:var(--colour-heading)}address{margin-bottom:1rem;font-style:normal;line-height:inherit}blockquote{margin:0;quotes:"\u201C" "\u201D" "\u2018" "\u2019";padding-bottom:3rem;overflow:hidden;& p{font-size:1.5rem;line-height:2rem;padding-bottom:0}& p:first-child:before{content:open-quote}& p:last-of-type:after{content:close-quote}& cite{font-size:1.125rem;line-height:2rem;padding-bottom:0;font-weight:bold;font-style:normal}}mark{padding:.1875em;background-color:yellow}.stat{font-size:4rem;line-height:4.5rem;font-weight:bold;color:var(--colour-heading);display:block;text-decoration:underline;text-underline-offset:.75rem;text-decoration-color:var(--colour-secondary);text-decoration-thickness:.25rem;margin-bottom:4rem}}*,*::before,*::after{box-sizing:border-box}iam-rankings table{display:block;width:calc(100% - 2rem);font-weight:normal;counter-reset:countItem;overflow:visible;margin-inline:1rem}iam-rankings thead{display:none}iam-rankings tbody{display:contents}iam-rankings :is(td,th){font-weight:normal}iam-rankings td{font-size:1.75rem;color:var(--colour-heading)}iam-rankings tr.current{background-color:var(--colour-light)}iam-rankings tr.current :is(td,th){font-weight:bolder}iam-rankings tr{display:flex;width:100%;position:relative;z-index:1}iam-rankings tr:before{counter-increment:countItem;content:counter(countItem) ".";font-size:2rem;line-height:2.5rem;font-weight:bolder;color:var(--colour-primary);width:3rem;text-align:center;margin-top:.5rem}iam-rankings tr>*:first-child{width:100%;margin-right:0;padding-right:0}iam-rankings tr>*:last-child{position:absolute;top:0;right:0}iam-rankings tr progress{width:100%;height:1rem}iam-rankings tr progress::-webkit-progress-bar{background-color:rgba(0,0,0,0);border-radius:0}iam-rankings tr progress::-webkit-progress-value{background-color:var(--colour, var(--colour-info));border-radius:0}iam-rankings tr:has(iam-rank):before{opacity:0}iam-rankings tr:has(iam-rank) iam-rank{position:absolute;top:0;left:0;width:2rem}iam-rankings tr:has(+tr.highlighted){border:none !important}iam-rankings tr.highlighted{background:var(--colour-info);margin-block:1rem}iam-rankings tr.highlighted:after{content:"";position:absolute;inset:0;display:block;background:var(--colour-info);z-index:-1;margin:-0.75rem;border-radius:.5rem;box-shadow:0px 6px 12px rgba(0,0,0,.11)}iam-rankings tr:nth-child(1) progress{--colour: var(--wider-colour-7)}iam-rankings tr:nth-child(1) progress{--colour: var(--chart-colour-1)}iam-rankings tr:nth-child(2) progress{--colour: var(--chart-colour-2)}iam-rankings tr:nth-child(3) progress{--colour: var(--chart-colour-3)}iam-rankings tr:nth-child(4) progress{--colour: var(--chart-colour-4)}iam-rankings tr:nth-child(5) progress{--colour: var(--chart-colour-5)}iam-rankings tr:nth-child(6) progress{--colour: var(--chart-colour-6)}iam-rankings tr:nth-child(7) progress{--colour: var(--chart-colour-7)}iam-rankings tr:nth-child(8) progress{--colour: var(--chart-colour-8)}iam-rankings tr:nth-child(9) progress{--colour: var(--chart-colour-9)}iam-rankings tr:nth-child(10) progress{--colour: var(--chart-colour-10)}iam-rankings.hide-progress progress{display:none}iam-rankings.hide-value tbody td{display:none}/*# sourceMappingURL=assets/css/components/rankings.global.css.map */
381
+ </style>`)}connectedCallback(){var t,i,o,C,l,r;const s=(t=this.shadowRoot)===null||t===void 0?void 0:t.querySelector(".first-position"),n=(i=this.shadowRoot)===null||i===void 0?void 0:i.querySelector(".second-position"),h=(o=this.shadowRoot)===null||o===void 0?void 0:o.querySelector(".third-position");s?.setAttribute("data-title",(C=this.querySelector("tbody tr:nth-child(1) :is(td,th):nth-child(1)"))===null||C===void 0?void 0:C.textContent),n?.setAttribute("data-title",(l=this.querySelector("tbody tr:nth-child(2) :is(td,th):nth-child(1)"))===null||l===void 0?void 0:l.textContent),h?.setAttribute("data-title",(r=this.querySelector("tbody tr:nth-child(3) :is(td,th):nth-child(1)"))===null||r===void 0?void 0:r.textContent);const f=this.hasAttribute("data-max")?this.getAttribute("data-max"):100;if(this.querySelectorAll("tbody tr").forEach(a=>{var d,p,m;const c=(p=(d=a.querySelector("td:last-child"))===null||d===void 0?void 0:d.textContent)===null||p===void 0?void 0:p.trim();a.querySelector(":first-child progress")||(m=a.querySelector(":first-child"))===null||m===void 0||(m.innerHTML+=`<progress max="${f}" value="${c}"></progress>`)}),!this.classList.contains("hide-gold")){const a=this.querySelector("tbody tr th");a?.insertAdjacentHTML("afterbegin",'<iam-rank class="rank--medal first-position">1st</iam-rank>')}window.customElements.get("iam-rank")||window.customElements.define("iam-rank",g)}}export{v as default};
382
382
  //# sourceMappingURL=rankings.component.min.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta16
2
+ * iamKey v7.7.1--beta17
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const p=n=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:n})};p("iam-rating");class l extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const a=document.createElement("template");a.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta16
2
+ * iamKey v7.7.1--beta17
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const h=o=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:o})},p=(o,a,r)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:a}),r.forEach(t=>{o.addEventListener(t,function(e){const d={event:t,element:a,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="wrapper">
5
5
  <div class="card__head" part="head">
@@ -21,7 +21,7 @@
21
21
  <style>
22
22
  ${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
23
23
 
24
- :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;border-radius:var(--card-border-radius);margin-bottom:2rem}.wrapper{border-radius:var(--card-border-radius);box-shadow:var(--card-box-shadow);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);min-height:100%;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}.wrapper>*{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 7 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}.card__head:not(:has(img))~.card__badges{text-align:end}: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 7 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:.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:.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: '\\f54f';--record-colour: var(--wider-colour-2)}:host([data-record=page]){--record-icon: '\\f15c';--record-colour: var(--wider-colour-3)}:host([data-record=contact]){--record-icon: '\\f2b9';--record-colour: var(--wider-colour-4)}:host([data-record=lettings]){--record-icon: '\\E003';--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-5)}:host([data-record=sales]){--record-icon: '\\E004';--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-7)}:host([data-record=landlord]){--record-icon: '\\E001';--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-8)}:host([data-record=contractor]){--record-icon: '\\f82c';--record-colour: var(--wider-colour-9)}:host([data-record=vendor]){--record-icon: '\\E002';--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-13)}:host([data-record=tenant]){--record-icon: '\\e1b0';--record-colour: var(--wider-colour-6)}:host([data-record=sales-applicant]){--record-icon: '\\E006';--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-10)}/*# sourceMappingURL=assets/css/components/record-card.component.css.map */
24
+ :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;border-radius:var(--card-border-radius);margin-bottom:2rem;display:block}.wrapper{border-radius:var(--card-border-radius);box-shadow:var(--card-box-shadow);position:relative;font-weight:bold;font-size:1.125rem;line-height:1.5rem;color:var(--colour-primary);min-height:100%;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}.wrapper>*{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,.title)){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,.title):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 7 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}.card__head:not(:has(img))~.card__badges{text-align:end}: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 7 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:.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:.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: '\\f54f';--record-colour: var(--wider-colour-2)}:host([data-record=page]){--record-icon: '\\f15c';--record-colour: var(--wider-colour-3)}:host([data-record=contact]){--record-icon: '\\f2b9';--record-colour: var(--wider-colour-4)}:host([data-record=lettings]){--record-icon: '\\E003';--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-5)}:host([data-record=sales]){--record-icon: '\\E004';--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-7)}:host([data-record=landlord]){--record-icon: '\\E001';--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-8)}:host([data-record=contractor]){--record-icon: '\\f82c';--record-colour: var(--wider-colour-9)}:host([data-record=vendor]){--record-icon: '\\E002';--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-13)}:host([data-record=tenant]){--record-icon: '\\e1b0';--record-colour: var(--wider-colour-6)}:host([data-record=sales-applicant]){--record-icon: '\\E006';--record-icon-font: Font Awesome Kit;--record-colour: var(--wider-colour-10)}/*# sourceMappingURL=assets/css/components/record-card.component.css.map */
25
25
 
26
26
  </style>
27
27
  ${g}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta16
2
+ * iamKey v7.7.1--beta17
3
3
  * Copyright 2022-2026 iamproperty
4
4
  *//*! js-cookie v3.0.5 | MIT */function w(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var d in o)t[d]=o[d]}return t}var C={read:function(t){return t[0]==='"'&&(t=t.slice(1,-1)),t.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(t){return encodeURIComponent(t).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function A(t,e){function o(n,u,i){if(!(typeof document>"u")){i=w({},e,i),typeof i.expires=="number"&&(i.expires=new Date(Date.now()+i.expires*864e5)),i.expires&&(i.expires=i.expires.toUTCString()),n=encodeURIComponent(n).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var l="";for(var r in i)i[r]&&(l+="; "+r,i[r]!==!0&&(l+="="+i[r].split(";")[0]));return document.cookie=n+"="+t.write(u,n)+l}}function d(n){if(!(typeof document>"u"||arguments.length&&!n)){for(var u=document.cookie?document.cookie.split("; "):[],i={},l=0;l<u.length;l++){var r=u[l].split("="),f=r.slice(1).join("=");try{var m=decodeURIComponent(r[0]);if(i[m]=t.read(f,m),n===m)break}catch{}}return n?i[n]:i}}return Object.create({set:o,get:d,remove:function(n,u){o(n,"",w({},u,{expires:-1}))},withAttributes:function(n){return A(this.converter,w({},this.attributes,n))},withConverter:function(n){return A(w({},this.converter,n),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(t)}})}var q=A(C,{path:"/"});const T=t=>t.replace(/ /g,"_"),R=function(t){return t=t.toLowerCase(),t=T(t),t=t.replace(/\W/g,""),t},x=(t,e,o)=>e.split(/[\.\[\]\'\"]/).filter(d=>d).reduce((d,n)=>d?d[n]:o,t),_=t=>Array.isArray(t)||t!==null&&["function","object"].includes(typeof t);function M(t,e,o,d=!1){var n,u,i;let l=-1;(o.closest(".datalist__wrapper")?o.closest(".datalist__wrapper"):o).setAttribute("slot","datalist"),t.querySelector(".suffix")&&((n=t.querySelector(".suffix"))===null||n===void 0||n.setAttribute("slot","suffix"),(u=t.shadowRoot.querySelector(".suffix"))===null||u===void 0||(u.innerHTML='<slot name="suffix"></slot>'),(i=t.shadowRoot.querySelector(".suffix"))===null||i===void 0||(i.classList="")),e.setAttribute("data-list",e.getAttribute("list")),e.setAttribute("list",""),e.hasAttribute("placeholder")&&e.setAttribute("data-placeholder",e.getAttribute("placeholder")),e.hasAttribute("placeholder")&&e.setAttribute("data-original-placeholder",e.getAttribute("placeholder"));const f=()=>{e.value==""?(t.classList.add("has-empty-input"),e.classList.add("empty")):(t.classList.remove("has-empty-input"),e.classList.remove("empty"))};f(),e.addEventListener("focus",function(){e.value!=""&&(e.setAttribute("placeholder",e.value),e.setAttribute("data-value",e.value)),e.value=""}),e.addEventListener("blur",function(){e.hasAttribute("data-value")&&(e.value=e.getAttribute("data-value")),e.hasAttribute("data-placeholder")&&e.setAttribute("placeholder",e.getAttribute("data-placeholder"))});for(const a of o.options)a.innerHTML==""&&(a.innerHTML=a.value);o.addEventListener("click",function(a){var p;if(a&&a.target instanceof HTMLElement&&a.target.closest("option")){const h=a.target.closest("option"),g=((p=h.textContent)===null||p===void 0?void 0:p.trim())||h.value,b=t.querySelector('input[type="hidden"]');b&&(b.value=h.value,b.setAttribute("value",h.value)),e.value=g,e.setAttribute("data-value",g),e.setAttribute("placeholder",g),typeof window.triggerDynamicEvent=="function"&&window.triggerDynamicEvent(e);for(const v of o.options)v.classList.remove("active");h.classList.add("active"),f(),setTimeout(()=>{t.dispatchEvent(new CustomEvent("update-value",{detail:{value:h.value,text:g}}))},0)}}),e.addEventListener("input",function(){if(e.removeAttribute("data-value"),l=-1,f(),t.tagName!="IAM-ADDRESS-LOOKUP"){const a=e.value.toUpperCase();for(const p of o.options)(p.textContent||p.value).toUpperCase().indexOf(a)>-1?(p.style.display="block",p.classList.remove("hide")):(p.style.display="none",p.classList.add("hide"))}}),t.addEventListener("keydown",function(a){a.keyCode==40?(l++,m(o.options)):a.keyCode==38?(l--,m(o.options)):a.keyCode==13&&(a.preventDefault(),l>-1&&o.options&&o.options[l].click())});function m(a){if(!a)return!1;s(a),l>=a.length&&(l=0),l<0&&(l=a.length-1),a[l].classList.add("active")}function s(a){if(!a)return!1;for(let p=0;p<a.length;p++)a[p].classList.remove("active")}e.closest(".input__wrapper")?e.closest(".input__wrapper").insertAdjacentHTML("beforeend",'<button class="clear-search btn btn-action" type="button"><i class="fa-light fa-times me-0"></i></button>'):t.shadowRoot.querySelector(".input__wrapper")&&(console.log(t.shadowRoot.querySelector(".input__wrapper")),t.shadowRoot.querySelector(".input__wrapper").insertAdjacentHTML("beforeend",'<button class="clear-search btn btn-action" type="button"><i class="fa-light fa-times me-0"></i></button>'));const c=()=>{const a=t.querySelector('input[type="hidden"]');a&&(a.value="",a.setAttribute("value","")),e.removeAttribute("placeholder"),e.hasAttribute("data-original-placeholder")&&e.setAttribute("placeholder",e.getAttribute("data-original-placeholder")),e.removeAttribute("data-value"),e.value="",e.classList.add("empty");for(const h of o.options)h.classList.remove("active"),h.classList.remove("hide"),h.removeAttribute("style");const p=new CustomEvent("close-button-pressed");t.dispatchEvent(p),t.dispatchEvent(new CustomEvent("update-value",{detail:{value:"",text:""}})),f()};(t.querySelector(".clear-search")?t.querySelector(".clear-search"):t.shadowRoot.querySelector(".clear-search")).addEventListener("click",function(a){c()}),t.addEventListener("empty",function(a){c()})}var E=function(t,e,o,d){function n(u){return u instanceof o?u:new o(function(i){i(u)})}return new(o||(o=Promise))(function(u,i){function l(m){try{f(d.next(m))}catch(s){i(s)}}function r(m){try{f(d.throw(m))}catch(s){i(s)}}function f(m){m.done?u(m.value):n(m.value).then(l,r)}f((d=d.apply(t,e||[])).next())})};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Search"});class $ extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta16
2
+ * iamKey v7.7.1--beta17
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Slider"});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=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta16
2
+ * iamKey v7.7.1--beta17
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */class u extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const r=document.createElement("template");r.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta16
2
+ * iamKey v7.7.1--beta17
3
3
  * Copyright 2022-2026 iamproperty
4
4
  *//*! js-cookie v3.0.5 | MIT */function I(r){for(var a=1;a<arguments.length;a++){var n=arguments[a];for(var y in n)r[y]=n[y]}return r}var lt={read:function(r){return r[0]==='"'&&(r=r.slice(1,-1)),r.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(r){return encodeURIComponent(r).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function V(r,a){function n(e,u,o){if(!(typeof document>"u")){o=I({},a,o),typeof o.expires=="number"&&(o.expires=new Date(Date.now()+o.expires*864e5)),o.expires&&(o.expires=o.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var m="";for(var t in o)o[t]&&(m+="; "+t,o[t]!==!0&&(m+="="+o[t].split(";")[0]));return document.cookie=e+"="+r.write(u,e)+m}}function y(e){if(!(typeof document>"u"||arguments.length&&!e)){for(var u=document.cookie?document.cookie.split("; "):[],o={},m=0;m<u.length;m++){var t=u[m].split("="),g=t.slice(1).join("=");try{var c=decodeURIComponent(t[0]);if(o[c]=r.read(g,c),e===c)break}catch{}}return e?o[e]:o}}return Object.create({set:n,get:y,remove:function(e,u){n(e,"",I({},u,{expires:-1}))},withAttributes:function(e){return V(this.converter,I({},this.attributes,e))},withConverter:function(e){return V(I({},this.converter,e),this.attributes)}},{attributes:{value:Object.freeze(a)},converter:{value:Object.freeze(r)}})}var dt=V(lt,{path:"/"});function ct(r,a,n,y=!1){var e,u,o;let m=-1;(n.closest(".datalist__wrapper")?n.closest(".datalist__wrapper"):n).setAttribute("slot","datalist"),r.querySelector(".suffix")&&((e=r.querySelector(".suffix"))===null||e===void 0||e.setAttribute("slot","suffix"),(u=r.shadowRoot.querySelector(".suffix"))===null||u===void 0||(u.innerHTML='<slot name="suffix"></slot>'),(o=r.shadowRoot.querySelector(".suffix"))===null||o===void 0||(o.classList="")),a.setAttribute("data-list",a.getAttribute("list")),a.setAttribute("list",""),a.hasAttribute("placeholder")&&a.setAttribute("data-placeholder",a.getAttribute("placeholder")),a.hasAttribute("placeholder")&&a.setAttribute("data-original-placeholder",a.getAttribute("placeholder"));const g=()=>{a.value==""?(r.classList.add("has-empty-input"),a.classList.add("empty")):(r.classList.remove("has-empty-input"),a.classList.remove("empty"))};g(),a.addEventListener("focus",function(){a.value!=""&&(a.setAttribute("placeholder",a.value),a.setAttribute("data-value",a.value)),a.value=""}),a.addEventListener("blur",function(){a.hasAttribute("data-value")&&(a.value=a.getAttribute("data-value")),a.hasAttribute("data-placeholder")&&a.setAttribute("placeholder",a.getAttribute("data-placeholder"))});for(const p of n.options)p.innerHTML==""&&(p.innerHTML=p.value);n.addEventListener("click",function(p){var f;if(p&&p.target instanceof HTMLElement&&p.target.closest("option")){const x=p.target.closest("option"),w=((f=x.textContent)===null||f===void 0?void 0:f.trim())||x.value,k=r.querySelector('input[type="hidden"]');k&&(k.value=x.value,k.setAttribute("value",x.value)),a.value=w,a.setAttribute("data-value",w),a.setAttribute("placeholder",w),typeof window.triggerDynamicEvent=="function"&&window.triggerDynamicEvent(a);for(const G of n.options)G.classList.remove("active");x.classList.add("active"),g(),setTimeout(()=>{r.dispatchEvent(new CustomEvent("update-value",{detail:{value:x.value,text:w}}))},0)}}),a.addEventListener("input",function(){if(a.removeAttribute("data-value"),m=-1,g(),r.tagName!="IAM-ADDRESS-LOOKUP"){const p=a.value.toUpperCase();for(const f of n.options)(f.textContent||f.value).toUpperCase().indexOf(p)>-1?(f.style.display="block",f.classList.remove("hide")):(f.style.display="none",f.classList.add("hide"))}}),r.addEventListener("keydown",function(p){p.keyCode==40?(m++,c(n.options)):p.keyCode==38?(m--,c(n.options)):p.keyCode==13&&(p.preventDefault(),m>-1&&n.options&&n.options[m].click())});function c(p){if(!p)return!1;s(p),m>=p.length&&(m=0),m<0&&(m=p.length-1),p[m].classList.add("active")}function s(p){if(!p)return!1;for(let f=0;f<p.length;f++)p[f].classList.remove("active")}a.closest(".input__wrapper")?a.closest(".input__wrapper").insertAdjacentHTML("beforeend",'<button class="clear-search btn btn-action" type="button"><i class="fa-light fa-times me-0"></i></button>'):r.shadowRoot.querySelector(".input__wrapper")&&(console.log(r.shadowRoot.querySelector(".input__wrapper")),r.shadowRoot.querySelector(".input__wrapper").insertAdjacentHTML("beforeend",'<button class="clear-search btn btn-action" type="button"><i class="fa-light fa-times me-0"></i></button>'));const E=()=>{const p=r.querySelector('input[type="hidden"]');p&&(p.value="",p.setAttribute("value","")),a.removeAttribute("placeholder"),a.hasAttribute("data-original-placeholder")&&a.setAttribute("placeholder",a.getAttribute("data-original-placeholder")),a.removeAttribute("data-value"),a.value="",a.classList.add("empty");for(const x of n.options)x.classList.remove("active"),x.classList.remove("hide"),x.removeAttribute("style");const f=new CustomEvent("close-button-pressed");r.dispatchEvent(f),r.dispatchEvent(new CustomEvent("update-value",{detail:{value:"",text:""}})),g()};(r.querySelector(".clear-search")?r.querySelector(".clear-search"):r.shadowRoot.querySelector(".clear-search")).addEventListener("click",function(p){E()}),r.addEventListener("empty",function(p){E()})}const ut=r=>/^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/gmi.test(r.trim());var tt=function(r,a,n,y){function e(u){return u instanceof n?u:new n(function(o){o(u)})}return new(n||(n=Promise))(function(u,o){function m(c){try{g(y.next(c))}catch(s){o(s)}}function t(c){try{g(y.throw(c))}catch(s){o(s)}}function g(c){c.done?u(c.value):e(c.value).then(m,t)}g((y=y.apply(r,a||[])).next())})};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Address Lookup"});class pt extends HTMLElement{constructor(){var a;super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const n=document.createElement("template");n.innerHTML=`
5
5
  <style>
@@ -8,99 +8,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import Cookies from '../../../../node_modules/js-cookie/dist/js.cookie.mjs';
11
+ import { populateNav, loadNavData, loadUserData, setEnabledLinks } from '../../modules/nav';
11
12
  import iamNav from '../nav/nav.component';
12
13
  class iamSTDNav extends HTMLElement {
13
14
  constructor() {
14
15
  super();
15
- this.loadNavData = () => __awaiter(this, void 0, void 0, function* () {
16
- const ajaxURL = '/nav.json';
17
- // Setup controller vars if not already set
18
- if (!window.controller)
19
- window.controller = [];
20
- // Abort if controller already present for this url
21
- if (window.controller[ajaxURL])
22
- window.controller[ajaxURL].abort();
23
- // Create a new controller so it can be aborted if new fetch made
24
- window.controller[ajaxURL] = new AbortController();
25
- const { signal } = window.controller[ajaxURL];
26
- try {
27
- return yield fetch(ajaxURL, {
28
- signal: signal,
29
- method: 'get',
30
- credentials: 'same-origin',
31
- headers: new Headers({
32
- 'Content-Type': 'application/json',
33
- Accept: 'application/json',
34
- 'X-Requested-With': 'XMLHttpRequest',
35
- 'X-XSRF-TOKEN': Cookies.get('XSRF-TOKEN'),
36
- }),
37
- })
38
- .then((response) => response.json())
39
- .then((response) => {
40
- // populate datalist
41
- let listString = '';
42
- const data = response['data'] ? response['data'] : response;
43
- return data;
44
- });
45
- }
46
- catch (error) {
47
- if ((error === null || error === void 0 ? void 0 : error.name) === 'AbortError') {
48
- return true;
49
- }
50
- console.log(error);
51
- return 'There has been a problem. Please try again in a few moments.';
52
- }
53
- });
54
- this.defaultToSecondary = () => {
55
- // Set links and details to secondary slot
56
- Array.from(this.querySelectorAll(':scope > a, :scope > details')).forEach((element) => {
57
- element.setAttribute('slot', 'secondary');
58
- });
59
- const defaultContent = this.innerHTML;
60
- this.outerHTML = `${defaultContent}`;
61
- };
62
16
  this.defaultToNav = () => {
63
17
  const defaultContent = this.innerHTML;
64
18
  this.innerHTML = `<iam-nav>
65
- ${defaultContent}
19
+ ${defaultContent}
66
20
  </iam-nav>`;
67
21
  };
68
- this.defaultToStandalone = () => {
69
- const defaultContent = this.innerHTML;
70
- this.wrapper.innerHTML = `<div class="container">${defaultContent}</div>`;
71
- };
72
- this.populateLinks = (data) => {
73
- let html = ``;
74
- data.forEach((link) => {
75
- html += `
76
- <a href="${link.url}">${link.title}</a>`;
77
- });
78
- return html;
79
- };
80
- this.populateSections = (data) => {
81
- let html = ``;
82
- data.forEach((section) => {
83
- html += `<span class="section ${section.class}">
84
- <span class="lead text-heading d-block">${section.enabled == "false" && section.marketing ? section.marketing : section.title}</span>
85
- ${this.populateLinks(section.links)}
86
- </span>`;
87
- });
88
- return html;
89
- };
90
- this.populateNav = (data) => {
91
- let html = ``;
92
- data.forEach((feature) => {
93
- if (feature.attributes.sections)
94
- html += `<details name="megamenu"><summary>${feature.attributes.title}</summary><div data-title="${feature.attributes.title}">${this.populateSections(feature.attributes.sections)}</div></details>`;
95
- else if (feature.attributes.links)
96
- html += `<details name="megamenu"><summary>${feature.attributes.title}</summary><div data-title="${feature.attributes.title}">${this.populateLinks(feature.attributes.links)}</div></details>`;
97
- else
98
- html += `<a href="/">${feature.attributes.title}</a>`;
22
+ this.transformToNav = (data) => {
23
+ // Remove current links
24
+ this.querySelector('iam-nav').querySelectorAll(`:scope > *`).forEach((element) => {
25
+ if (!element.hasAttribute('slot'))
26
+ element.remove();
99
27
  });
100
- return html;
28
+ const defaultContent = this.querySelector('iam-nav').innerHTML;
29
+ this.innerHTML = `<iam-nav ${(this.hasAttribute('class') ? `class="${this.getAttribute('class')}"` : '')}>
30
+ ${defaultContent}
31
+ ${populateNav(data)}
32
+ </iam-nav>`;
101
33
  };
102
- this.transformToSecondary = (data) => {
103
- this.innerHTML = this.populateNav(data);
34
+ this.defaultToSecondary = () => {
104
35
  // Set links and details to secondary slot
105
36
  Array.from(this.querySelectorAll(':scope > a, :scope > details')).forEach((element) => {
106
37
  element.setAttribute('slot', 'secondary');
@@ -108,41 +39,30 @@ class iamSTDNav extends HTMLElement {
108
39
  const defaultContent = this.innerHTML;
109
40
  this.outerHTML = `${defaultContent}`;
110
41
  };
111
- this.transformToStandalone = (data) => {
112
- this.wrapper.innerHTML = `<div class="container"><details><summary>Products</summary><div class="iam-nav">${this.populateNav(data)}</div></details></div>`;
42
+ this.transformToSecondary = (data) => {
43
+ this.innerHTML = populateNav(data);
113
44
  // Set links and details to secondary slot
114
- Array.from(this.wrapper.querySelectorAll('.iam-nav > a, .iam-nav > details')).forEach((element) => {
45
+ Array.from(this.querySelectorAll(':scope > a, :scope > details')).forEach((element) => {
115
46
  element.setAttribute('slot', 'secondary');
116
47
  });
117
- };
118
- this.transformToNav = (data) => {
119
- this.innerHTML = `<iam-nav>
120
- <a href="/" class="brand brand--property" slot="logo">
121
- <svg>
122
- <title>iam key</title>
123
- <use xlink:href="/svg/logo.svg#logo-property"></use>
124
- </svg>
125
- </a>
126
- ${this.populateNav(data)}
127
- </iam-nav>`;
48
+ const defaultContent = this.innerHTML;
49
+ this.outerHTML = `${defaultContent}`;
128
50
  };
129
51
  }
130
52
  connectedCallback() {
131
53
  return __awaiter(this, void 0, void 0, function* () {
132
54
  var _a;
55
+ const component = this;
133
56
  this.wrapper = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.wrapper');
134
57
  if (!window.customElements.get(`iam-nav`))
135
58
  window.customElements.define(`iam-nav`, iamNav);
136
59
  if (this.hasAttribute('data-hub')) {
137
60
  this.defaultToNav();
138
61
  }
139
- else if (!this.closest('iam-nav')) {
140
- this.defaultToStandalone();
141
- }
142
62
  else {
143
63
  //this.defaultToSecondary(); TODO: change this to show default content but still be able to update
144
64
  }
145
- const data = yield this.loadNavData().then((data) => {
65
+ const data = yield loadNavData(Cookies).then((data) => {
146
66
  if (typeof data == 'string') {
147
67
  return data;
148
68
  }
@@ -150,30 +70,16 @@ class iamSTDNav extends HTMLElement {
150
70
  if (this.hasAttribute('data-hub')) {
151
71
  this.transformToNav(data);
152
72
  }
153
- else if (!this.closest('iam-nav')) {
154
- this.transformToStandalone(data);
155
- }
156
73
  else {
157
74
  this.transformToSecondary(data);
158
- //this.transformToNav(data);
159
75
  }
160
76
  return true;
161
77
  });
78
+ const userData = yield loadUserData(Cookies).then((data) => {
79
+ setEnabledLinks(component, data);
80
+ return true;
81
+ });
162
82
  });
163
83
  }
164
- static get observedAttributes() {
165
- return [];
166
- }
167
- attributeChangedCallback(attrName, oldVal, newVal) {
168
- const addressComponent = this.querySelector('iam-address-lookup');
169
- switch (attrName) {
170
- case 'data-url': {
171
- if (oldVal != newVal && addressComponent) {
172
- addressComponent.setAttribute('data-url', newVal + '?search_string=');
173
- }
174
- break;
175
- }
176
- }
177
- }
178
84
  }
179
85
  export default iamSTDNav;