@iamproperty/components 7.7.1--beta20 → 7.7.1--beta21

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 (132) hide show
  1. package/assets/css/components/actionbar.component.css +1 -1
  2. package/assets/css/components/actionbar.component.css.map +1 -1
  3. package/assets/css/components/address-lookup.component.css +1 -1
  4. package/assets/css/components/address-lookup.component.css.map +1 -1
  5. package/assets/css/components/advanced-select.component.css +1 -1
  6. package/assets/css/components/advanced-select.component.css.map +1 -1
  7. package/assets/css/components/applied-filters.css +1 -1
  8. package/assets/css/components/applied-filters.css.map +1 -1
  9. package/assets/css/components/banner.component.css +1 -0
  10. package/assets/css/components/banner.component.css.map +1 -0
  11. package/assets/css/components/calendar.component.css +1 -1
  12. package/assets/css/components/calendar.component.css.map +1 -1
  13. package/assets/css/components/card.component.css +1 -1
  14. package/assets/css/components/card.component.css.map +1 -1
  15. package/assets/css/components/carousel.config.css +1 -1
  16. package/assets/css/components/carousel.config.css.map +1 -1
  17. package/assets/css/components/multiselect.css +1 -1
  18. package/assets/css/components/multiselect.css.map +1 -1
  19. package/assets/css/components/search.component.css +1 -1
  20. package/assets/css/components/search.component.css.map +1 -1
  21. package/assets/css/components/split-button.component.css +1 -1
  22. package/assets/css/components/split-button.component.css.map +1 -1
  23. package/assets/css/components/std-nav-standalone.component.css +1 -1
  24. package/assets/css/components/std-nav-standalone.component.css.map +1 -1
  25. package/assets/css/components/tabs.component.css +1 -1
  26. package/assets/css/components/tabs.component.css.map +1 -1
  27. package/assets/css/components/tabs.config.css +1 -1
  28. package/assets/css/components/tabs.config.css.map +1 -1
  29. package/assets/css/components/tag.component.css +1 -1
  30. package/assets/css/components/tag.component.css.map +1 -1
  31. package/assets/css/core.min.css +1 -1
  32. package/assets/css/core.min.css.map +1 -1
  33. package/assets/css/elements/badge-tag.css +1 -1
  34. package/assets/css/elements/badge-tag.css.map +1 -1
  35. package/assets/css/elements/dropdown.css +1 -1
  36. package/assets/css/elements/dropdown.css.map +1 -1
  37. package/assets/css/style.min.css +1 -1
  38. package/assets/css/style.min.css.map +1 -1
  39. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  40. package/assets/js/components/actionbar/actionbar.component.min.js +2 -2
  41. package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
  42. package/assets/js/components/advanced-select/advanced-select.component.min.js +2 -2
  43. package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
  44. package/assets/js/components/banner/banner.component.js +44 -0
  45. package/assets/js/components/banner/banner.component.min.js +20 -0
  46. package/assets/js/components/banner/banner.component.min.js.map +1 -0
  47. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  48. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  49. package/assets/js/components/bone/bone.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 +2 -0
  53. package/assets/js/components/card/card.component.min.js +5 -5
  54. package/assets/js/components/card/card.component.min.js.map +1 -1
  55. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  56. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  57. package/assets/js/components/config/config.component.min.js +1 -1
  58. package/assets/js/components/content/content.component.js +9 -5
  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 +1 -1
  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.min.js +1 -1
  76. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  77. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
  78. package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
  79. package/assets/js/components/nav/nav.component.min.js +1 -1
  80. package/assets/js/components/notification/notification.component.min.js +1 -1
  81. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  82. package/assets/js/components/password/password.component.min.js +1 -1
  83. package/assets/js/components/popover/popover.component.min.js +1 -1
  84. package/assets/js/components/rank/rank.component.min.js +1 -1
  85. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  86. package/assets/js/components/rating/rating.component.min.js +1 -1
  87. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  88. package/assets/js/components/search/search.component.js +6 -2
  89. package/assets/js/components/search/search.component.min.js +5 -5
  90. package/assets/js/components/search/search.component.min.js.map +1 -1
  91. package/assets/js/components/skeleton/skeleton.component.min.js +1 -1
  92. package/assets/js/components/slider/slider.component.min.js +1 -1
  93. package/assets/js/components/split-button/split-button.component.min.js +2 -2
  94. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +2 -2
  95. package/assets/js/components/std-nav/std-nav.component.min.js +1 -1
  96. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +2 -2
  97. package/assets/js/components/table/table.component.min.js +1 -1
  98. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  99. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  100. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  101. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  102. package/assets/js/components/tabs/tabs.component.min.js +4 -4
  103. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  104. package/assets/js/components/tag/tag.component.min.js +2 -2
  105. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  106. package/assets/js/components/video/video.component.min.js +1 -1
  107. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  108. package/assets/js/components/video-modal/video-modal.component.min.js +1 -1
  109. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  110. package/assets/js/modules/tabs.js +6 -2
  111. package/assets/js/scripts.bundle.js +1 -1
  112. package/assets/js/scripts.bundle.min.js +1 -1
  113. package/assets/sass/components/banner.component.scss +100 -0
  114. package/assets/sass/components/card.component.scss +1 -1
  115. package/assets/sass/components/carousel.config.scss +24 -15
  116. package/assets/sass/components/search.component.scss +46 -1
  117. package/assets/sass/components/tabs.component.scss +1 -0
  118. package/assets/sass/components/tabs.config.scss +21 -0
  119. package/assets/sass/elements/badge-tag.css +2 -2
  120. package/assets/sass/elements/dropdown.css +0 -5
  121. package/assets/sass/utilities/shadow.css +4 -0
  122. package/assets/sass/utilities/text.css +6 -6
  123. package/assets/ts/components/banner/banner.component.ts +57 -0
  124. package/assets/ts/components/card/card.component.ts +4 -0
  125. package/assets/ts/components/content/content.component.ts +14 -6
  126. package/assets/ts/components/search/search.component.ts +7 -1
  127. package/assets/ts/modules/tabs.ts +10 -2
  128. package/dist/components.es.js +441 -469
  129. package/dist/components.umd.js +141 -126
  130. package/package.json +1 -1
  131. package/src/components/Banner/Banner.vue +14 -29
  132. package/src/components/Banner/Banner.spec.js +0 -26
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.component.min.js","sources":["../../modules/helpers.js","../../modules/tabs.js","tabs.component.js"],"sourcesContent":["/**\n * Global helper functions to help maintain and enhance framework elements.\n * @module Helpers\n */\n/**\n * Add global classes used by the CSS and later JavaScript.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addBodyClasses = (body) => {\n body.classList.add('js-enabled');\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {\n body.classList.add('ie');\n }\n};\n/**\n * Add global events.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addGlobalEvents = (body) => {\n const checkElements = function (hash) {\n const label = document.querySelector(`label[for=\"${hash.replace('#', '')}\"]`);\n const summary = document.querySelector(hash + ' summary');\n const dialog = document.querySelector(`dialog${hash}`);\n const detail = document.querySelector(`detail${hash}`);\n if (label instanceof HTMLElement)\n label.click();\n else if (summary instanceof HTMLElement)\n summary.click();\n else if (dialog instanceof HTMLElement)\n dialog.showModal();\n else if (detail instanceof HTMLElement)\n detail.addAttribute('open');\n };\n if (location.hash)\n checkElements(location.hash);\n window.addEventListener('hashchange', function () {\n checkElements(location.hash);\n }, false);\n addEventListener('popstate', (event) => {\n if (event && event.state && event.state.type && event.state.type == 'pagination') {\n const form = document.querySelector(`#${event.state.form}`);\n const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);\n if (pageInput)\n pageInput.value = event.state.page;\n else\n form.innerHTML += `<input name=\"page\" type=\"hidden\" data-pagination=\"true\" value=\"${event.state.page}\" />`;\n form.dispatchEvent(new Event('submit'));\n }\n });\n Array.from(document.querySelectorAll('form')).forEach((form) => {\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n form.addEventListener('submit', (event) => {\n var _a;\n if (form.querySelector(':invalid')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n });\n }\n });\n document.addEventListener('click', (event) => {\n var _a;\n if (event && event.target instanceof HTMLElement && event.target.matches('form button:not([type=button])')) {\n const form = event.target.closest('form');\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n // Reset password types\n Array.from(form.querySelectorAll('[data-password-type]')).forEach((input) => {\n input.setAttribute('type', 'password');\n });\n if (form.querySelector(':invalid') ||\n form.querySelector('.pwd-checker[data-strength=\"1\"]') ||\n form.querySelector('.pwd-checker[data-strength=\"2\"]')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n if (form.querySelector('iam-multiselect[data-is-required][data-error]')) {\n form.classList.add('was-validated');\n event.preventDefault();\n }\n }\n }\n });\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n if (document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n });\n Array.from(document.querySelectorAll('label progress')).forEach((progress) => {\n const label = progress.closest('label');\n label.setAttribute('data-percent', progress.getAttribute('value'));\n });\n};\nexport const isNumeric = function (str) {\n if (typeof str != 'string')\n return false; // we only process strings!\n return (!isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\n !isNaN(parseFloat(str))); // ...and ensure strings of whitespace fail\n};\nexport const zeroPad = (num, places) => String(num).padStart(places, '0');\nexport const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nexport const ucwords = (str) => str\n .split(' ')\n .map((s) => ucfirst(s))\n .join(' ');\nexport const unsnake = (str) => str.replace(/_/g, ' ');\nexport const snake = (str) => str.replace(/ /g, '_');\nexport const safeID = function (str) {\n str = str.toLowerCase();\n str = snake(str);\n str = str.replace(/\\W/g, '');\n return str;\n};\nexport const numberOfDays = function (startDateString, endDateString) {\n const convertStart = startDateString.split('/');\n const convertEnd = endDateString.split('/');\n const dateStart = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);\n const dateEnd = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);\n if (dateStart == 'Invalid Date')\n throw 'Start date is not a valid date';\n if (dateEnd == 'Invalid Date')\n throw 'End date is not a valid date';\n // To calculate the time difference of two dates\n const diffTime = dateEnd.getTime() - dateStart.getTime();\n const numberOfDays = diffTime / (1000 * 3600 * 24) + 1;\n if (numberOfDays < 0)\n throw 'The start date should be before the end date';\n return numberOfDays;\n};\n// Used to get values from nested json objects\nexport const resolvePath = (object, path, defaultValue) => path\n // eslint-disable-next-line no-useless-escape\n .split(/[\\.\\[\\]\\'\\\"]/)\n .filter((p) => p)\n .reduce((o, p) => (o ? o[p] : defaultValue), object);\nexport const isTraversable = (o) => Array.isArray(o) || (o !== null && ['function', 'object'].includes(typeof o));\nexport const getSwipeDirection = (touchstartX, touchstartY, touchendX, touchendY) => {\n const limit = Math.tan(((45 * 1.5) / 180) * Math.PI);\n const pageWidth = window.innerWidth || document.body.clientWidth;\n const treshold = Math.max(1, Math.floor(0.01 * pageWidth));\n const x = touchendX - touchstartX;\n const y = touchendY - touchstartY;\n const xy = Math.abs(x / y);\n const yx = Math.abs(y / x);\n if (Math.abs(x) > treshold || Math.abs(y) > treshold) {\n if (yx <= limit) {\n if (x < 0) {\n return 'left';\n }\n else {\n return 'right';\n }\n }\n if (xy <= limit) {\n if (y < 0) {\n return 'top';\n }\n else {\n return 'bottom';\n }\n }\n }\n else {\n return 'tap';\n }\n};\nexport const uniqueID = (index = 1) => {\n const ID = Math.floor(Math.random() * Date.now() * (index + 1));\n return ID;\n};\nexport const isValidPostcode = (searchValue) => {\n const regexp = /^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/gmi;\n return regexp.test(searchValue.trim());\n};\n","import { getSwipeDirection } from './helpers';\nexport const createTabsLinks = function (tabsElement) {\n const detailsORLinks = tabsElement.querySelectorAll(':scope > details, :scope > a');\n let tabLinks = tabsElement.querySelector(':scope > .tabs__links');\n let tabDropdown = tabsElement.querySelector(':scope .tabs__dropdown');\n if (tabsElement.shadowRoot && tabsElement.shadowRoot.querySelector('.tabs__links'))\n tabLinks = tabsElement.shadowRoot.querySelector('.tabs__links');\n if (!tabLinks) {\n tabLinks = document.createElement('div');\n tabLinks.classList.add('tabs__links');\n const tabLinksWrapper = document.createElement('div');\n tabLinksWrapper.classList.add('tabs__links__wrapper');\n tabLinksWrapper.prepend(tabLinks);\n tabsElement.prepend(tabLinksWrapper);\n }\n if (!tabDropdown) {\n tabDropdown = document.createElement('select');\n tabDropdown.classList.add('tabs__dropdown');\n tabsElement.prepend(tabDropdown);\n }\n // Create the tab buttons from the summary titles\n let tabindex = 0;\n detailsORLinks.forEach((element) => {\n let button = document.createElement('button');\n const dropdownOpt = document.createElement('option');\n if (element.matches('details')) {\n const summary = element.querySelector(':scope > summary');\n const isDisabled = summary.classList.contains('disabled');\n summary.classList.add('visually-hidden');\n if (element.hasAttribute('id'))\n button.setAttribute('data-id', `${element.getAttribute('id')}`);\n if (element.hasAttribute('open')) {\n button.setAttribute('aria-pressed', true);\n }\n button.innerHTML = `${summary.innerText}`;\n button.classList.add('link');\n button.setAttribute('data-index', tabindex);\n button.setAttribute('part', 'tab-link');\n dropdownOpt.innerHTML = `${summary.innerText}`;\n dropdownOpt.value = summary.innerText.replace(/\\s+/g, '-').toLowerCase();\n dropdownOpt.setAttribute('data-index', tabindex);\n element.setAttribute('tabindex', '-1');\n if (isDisabled) {\n button.classList.add('disabled');\n }\n tabindex++;\n }\n else if (element.matches('a')) {\n button = element;\n }\n button.classList.add('link');\n tabLinks.appendChild(button);\n tabDropdown.appendChild(dropdownOpt);\n });\n};\nexport const setTabsEventHandlers = function (tabsElement) {\n const details = tabsElement.querySelectorAll(':scope > details');\n const summaries = tabsElement.querySelectorAll(':scope > details > summary');\n let buttonWrapper = tabsElement.querySelector(':scope .tabs__links');\n let buttons = tabsElement.querySelectorAll(':scope .tabs__links > button');\n const tabDropdown = tabsElement.querySelector(':scope .tabs__dropdown');\n let nextButton = tabsElement.querySelector(':scope .tabs__next');\n let scrollTimeout;\n window.isClicked = false;\n window.isScrolling = false;\n if (tabsElement.shadowRoot) {\n buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');\n buttonWrapper = tabsElement.shadowRoot.querySelector('.tabs__links');\n nextButton = tabsElement.shadowRoot.querySelector('.tabs__next');\n }\n // Set the on click for the tab buttons, these will open the details box it matches too\n buttons.forEach((button) => {\n button.addEventListener('click', (e) => {\n e.preventDefault();\n window.isClicked = true;\n if (button.classList.contains('disabled'))\n return false;\n buttons.forEach((buttonLoopItem) => {\n const buttonPressed = buttonLoopItem == button ? true : false;\n buttonLoopItem.setAttribute('aria-pressed', buttonPressed);\n });\n buttonWrapper.scroll({\n top: 0,\n left: button.offsetLeft,\n behavior: 'smooth',\n });\n //Handles showing correct content\n toggleTab(details, button);\n // Data layer Open Event\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openTab',\n tabTitle: button.textContent,\n });\n if (button.matches(':last-child')) {\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.setAttribute('disabled', 'disabled');\n }\n else {\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.removeAttribute('disabled');\n }\n });\n dropdownTabSelector(details, tabDropdown);\n });\n buttonWrapper.addEventListener('scrollend', () => {\n clearTimeout(scrollTimeout);\n scrollTimeout = setTimeout(function () {\n let buttonToClick = buttons[0];\n let closestOffset = Math.abs(buttonToClick.getBoundingClientRect().left);\n buttons.forEach((button) => {\n if (Math.abs(button.getBoundingClientRect().left) < closestOffset) {\n closestOffset = Math.abs(button.getBoundingClientRect().left);\n buttonToClick = button;\n }\n });\n if (window.isClicked) {\n window.isClicked = false;\n return false;\n }\n else {\n buttonToClick.click();\n }\n buttonToClick.focus();\n }, 500);\n });\n // Make sure we dont loose existing summary functionality\n summaries.forEach((summary, index) => {\n summary.addEventListener('click', (e) => {\n e.preventDefault();\n buttons[index].click();\n });\n });\n details.forEach((detailsElement, index) => {\n detailsElement.addEventListener(\"toggle\", function () {\n var _a;\n if (detailsElement.open)\n (_a = detailsElement.querySelector('button,input')) === null || _a === void 0 ? void 0 : _a.focus();\n });\n });\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.addEventListener('click', (e) => {\n e.preventDefault();\n const currentTab = buttonWrapper.querySelector('[aria-pressed=\"true\"]');\n const nextTab = currentTab.nextSibling;\n if (nextTab)\n nextTab.click();\n });\n if (tabsElement.classList.contains('tabs--guided')) {\n let touchstartX = 0;\n let touchstartY = 0;\n let touchendX = 0;\n let touchendY = 0;\n details.forEach((detail) => {\n detail.addEventListener('touchstart', (event) => {\n event.stopPropagation();\n touchstartX = event.changedTouches[0].screenX;\n touchstartY = event.changedTouches[0].screenY;\n });\n detail.addEventListener('touchend', (event) => {\n event.stopPropagation();\n touchendX = event.changedTouches[0].screenX;\n touchendY = event.changedTouches[0].screenY;\n const direction = getSwipeDirection(touchstartX, touchstartY, touchendX, touchendY);\n const currentTab = buttonWrapper.querySelector('[aria-pressed=\"true\"]');\n const nextTab = currentTab.nextSibling;\n const prevTab = currentTab.previousSibling;\n switch (direction) {\n case 'left':\n if (nextTab)\n nextTab.click();\n break;\n case 'right':\n if (prevTab)\n prevTab.click();\n break;\n }\n });\n });\n }\n};\nexport const toggleTab = function (details, button) {\n details.forEach((detail, detailsIndex) => {\n const detailsOpen = button.getAttribute('data-index') == detailsIndex ? true : false;\n if (detailsOpen) {\n detail.setAttribute('open', detailsOpen);\n }\n else\n detail.removeAttribute('open');\n });\n};\nexport const dropdownTabSelector = function (details, dropdown) {\n dropdown.addEventListener('change', (e) => {\n e.preventDefault();\n const selected = dropdown.options[dropdown.selectedIndex];\n toggleTab(details, selected);\n // Data layer Open Event\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openTab',\n tabTitle: selected.innerText,\n });\n });\n};\nexport const openFirstTab = function (tabsElement) {\n if (!tabsElement.querySelector(':scope > details'))\n return false;\n const details = tabsElement.querySelectorAll(':scope > details');\n const buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');\n if (location.hash &&\n tabsElement.shadowRoot.querySelector(`.tabs__links [data-id=\"${location.hash.replace('#', '')}\"]`)) {\n tabsElement.shadowRoot\n .querySelector(`[data-id=\"${location.hash.replace('#', '')}\"]`)\n .setAttribute('aria-pressed', true);\n tabsElement.querySelector(`details[id=\"${location.hash.replace('#', '')}\"]`).setAttribute('open', true);\n }\n else if (!tabsElement.querySelector(`details[open]`)) {\n details[0].setAttribute('open', true);\n buttons[0].setAttribute('aria-pressed', true);\n }\n};\nconst tabs = function (tabsElement) {\n createTabsLinks(tabsElement);\n setTabsEventHandlers(tabsElement);\n openFirstTab(tabsElement);\n};\nexport default tabs;\n","import tabs from '../../modules/tabs';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'tabs',\n});\nclass iamTabs extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/tabs.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n \n ${loadCSS}\n \n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n <div class=\"tabs\" part=\"tabs\">\n <div class=\"tabs__dropdown\" part=\"tab-dropdown\"></div>\n\n <div class=\"tabs__links__wrapper\" part=\"wrapper\">\n <div class=\"tabs__links\" part=\"tab-links\"></div>\n </div>\n <slot></slot>\n <button part=\"next-button\" class=\"btn btn-secondary btn-sm btn-compact fa-regular fa-chevron-right tabs__next\">Next</button>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const classList = this.classList.toString().replace('container', '');\n this.shadowRoot.querySelector('.tabs').setAttribute('class', `tabs ${classList}`);\n tabs(this);\n // #region Allow togle tags to control the tabs\n Array.from(this.querySelectorAll('details[id]')).forEach((details) => {\n const detailsID = details.getAttribute('id');\n Array.from(document.querySelectorAll(`[command=\"show-tab\"][commandfor=\"${detailsID}\"]`)).forEach((radioField) => {\n radioField.closest('label').addEventListener('click', (e) => {\n details.setAttribute('open', 'open');\n Array.from(document.querySelectorAll(`input[type=\"radio\"][command=\"show-tab\"][commandfor=\"${detailsID}\"]`)).forEach((input) => {\n input.checked = true;\n });\n });\n });\n });\n // #endregion\n }\n}\nexport default iamTabs;\n"],"names":["getSwipeDirection","touchstartX","touchstartY","touchendX","touchendY","limit","pageWidth","treshold","x","y","xy","yx","createTabsLinks","tabsElement","detailsORLinks","tabLinks","tabDropdown","tabLinksWrapper","tabindex","element","button","dropdownOpt","summary","isDisabled","setTabsEventHandlers","details","summaries","buttonWrapper","buttons","nextButton","scrollTimeout","e","buttonLoopItem","buttonPressed","toggleTab","dropdownTabSelector","buttonToClick","closestOffset","index","detailsElement","_a","nextTab","detail","event","direction","currentTab","prevTab","detailsIndex","detailsOpen","dropdown","selected","openFirstTab","tabs","iamTabs","template","classList","detailsID","radioField","input"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.component.min.js","sources":["../../modules/helpers.js","../../modules/tabs.js","tabs.component.js"],"sourcesContent":["/**\n * Global helper functions to help maintain and enhance framework elements.\n * @module Helpers\n */\n/**\n * Add global classes used by the CSS and later JavaScript.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addBodyClasses = (body) => {\n body.classList.add('js-enabled');\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {\n body.classList.add('ie');\n }\n};\n/**\n * Add global events.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addGlobalEvents = (body) => {\n const checkElements = function (hash) {\n const label = document.querySelector(`label[for=\"${hash.replace('#', '')}\"]`);\n const summary = document.querySelector(hash + ' summary');\n const dialog = document.querySelector(`dialog${hash}`);\n const detail = document.querySelector(`detail${hash}`);\n if (label instanceof HTMLElement)\n label.click();\n else if (summary instanceof HTMLElement)\n summary.click();\n else if (dialog instanceof HTMLElement)\n dialog.showModal();\n else if (detail instanceof HTMLElement)\n detail.addAttribute('open');\n };\n if (location.hash)\n checkElements(location.hash);\n window.addEventListener('hashchange', function () {\n checkElements(location.hash);\n }, false);\n addEventListener('popstate', (event) => {\n if (event && event.state && event.state.type && event.state.type == 'pagination') {\n const form = document.querySelector(`#${event.state.form}`);\n const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);\n if (pageInput)\n pageInput.value = event.state.page;\n else\n form.innerHTML += `<input name=\"page\" type=\"hidden\" data-pagination=\"true\" value=\"${event.state.page}\" />`;\n form.dispatchEvent(new Event('submit'));\n }\n });\n Array.from(document.querySelectorAll('form')).forEach((form) => {\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n form.addEventListener('submit', (event) => {\n var _a;\n if (form.querySelector(':invalid')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n });\n }\n });\n document.addEventListener('click', (event) => {\n var _a;\n if (event && event.target instanceof HTMLElement && event.target.matches('form button:not([type=button])')) {\n const form = event.target.closest('form');\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n // Reset password types\n Array.from(form.querySelectorAll('[data-password-type]')).forEach((input) => {\n input.setAttribute('type', 'password');\n });\n if (form.querySelector(':invalid') ||\n form.querySelector('.pwd-checker[data-strength=\"1\"]') ||\n form.querySelector('.pwd-checker[data-strength=\"2\"]')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n if (form.querySelector('iam-multiselect[data-is-required][data-error]')) {\n form.classList.add('was-validated');\n event.preventDefault();\n }\n }\n }\n });\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n if (document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n });\n Array.from(document.querySelectorAll('label progress')).forEach((progress) => {\n const label = progress.closest('label');\n label.setAttribute('data-percent', progress.getAttribute('value'));\n });\n};\nexport const isNumeric = function (str) {\n if (typeof str != 'string')\n return false; // we only process strings!\n return (!isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\n !isNaN(parseFloat(str))); // ...and ensure strings of whitespace fail\n};\nexport const zeroPad = (num, places) => String(num).padStart(places, '0');\nexport const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nexport const ucwords = (str) => str\n .split(' ')\n .map((s) => ucfirst(s))\n .join(' ');\nexport const unsnake = (str) => str.replace(/_/g, ' ');\nexport const snake = (str) => str.replace(/ /g, '_');\nexport const safeID = function (str) {\n str = str.toLowerCase();\n str = snake(str);\n str = str.replace(/\\W/g, '');\n return str;\n};\nexport const numberOfDays = function (startDateString, endDateString) {\n const convertStart = startDateString.split('/');\n const convertEnd = endDateString.split('/');\n const dateStart = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);\n const dateEnd = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);\n if (dateStart == 'Invalid Date')\n throw 'Start date is not a valid date';\n if (dateEnd == 'Invalid Date')\n throw 'End date is not a valid date';\n // To calculate the time difference of two dates\n const diffTime = dateEnd.getTime() - dateStart.getTime();\n const numberOfDays = diffTime / (1000 * 3600 * 24) + 1;\n if (numberOfDays < 0)\n throw 'The start date should be before the end date';\n return numberOfDays;\n};\n// Used to get values from nested json objects\nexport const resolvePath = (object, path, defaultValue) => path\n // eslint-disable-next-line no-useless-escape\n .split(/[\\.\\[\\]\\'\\\"]/)\n .filter((p) => p)\n .reduce((o, p) => (o ? o[p] : defaultValue), object);\nexport const isTraversable = (o) => Array.isArray(o) || (o !== null && ['function', 'object'].includes(typeof o));\nexport const getSwipeDirection = (touchstartX, touchstartY, touchendX, touchendY) => {\n const limit = Math.tan(((45 * 1.5) / 180) * Math.PI);\n const pageWidth = window.innerWidth || document.body.clientWidth;\n const treshold = Math.max(1, Math.floor(0.01 * pageWidth));\n const x = touchendX - touchstartX;\n const y = touchendY - touchstartY;\n const xy = Math.abs(x / y);\n const yx = Math.abs(y / x);\n if (Math.abs(x) > treshold || Math.abs(y) > treshold) {\n if (yx <= limit) {\n if (x < 0) {\n return 'left';\n }\n else {\n return 'right';\n }\n }\n if (xy <= limit) {\n if (y < 0) {\n return 'top';\n }\n else {\n return 'bottom';\n }\n }\n }\n else {\n return 'tap';\n }\n};\nexport const uniqueID = (index = 1) => {\n const ID = Math.floor(Math.random() * Date.now() * (index + 1));\n return ID;\n};\nexport const isValidPostcode = (searchValue) => {\n const regexp = /^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/gmi;\n return regexp.test(searchValue.trim());\n};\n","import { getSwipeDirection } from './helpers';\nexport const createTabsLinks = function (tabsElement) {\n const detailsORLinks = tabsElement.querySelectorAll(':scope > details, :scope > a');\n let tabLinks = tabsElement.querySelector(':scope > .tabs__links');\n let tabDropdown = tabsElement.querySelector(':scope .tabs__dropdown');\n if (tabsElement.shadowRoot && tabsElement.shadowRoot.querySelector('.tabs__links'))\n tabLinks = tabsElement.shadowRoot.querySelector('.tabs__links');\n if (!tabLinks) {\n tabLinks = document.createElement('div');\n tabLinks.classList.add('tabs__links');\n const tabLinksWrapper = document.createElement('div');\n tabLinksWrapper.classList.add('tabs__links__wrapper');\n tabLinksWrapper.prepend(tabLinks);\n tabsElement.prepend(tabLinksWrapper);\n }\n if (!tabDropdown) {\n tabDropdown = document.createElement('select');\n tabDropdown.classList.add('tabs__dropdown');\n tabsElement.prepend(tabDropdown);\n }\n // Create the tab buttons from the summary titles\n let tabindex = 0;\n detailsORLinks.forEach((element) => {\n let button = document.createElement('button');\n const dropdownOpt = document.createElement('option');\n if (element.matches('details')) {\n const summary = element.querySelector(':scope > summary');\n const isDisabled = summary.classList.contains('disabled');\n summary.classList.add('visually-hidden');\n if (element.hasAttribute('id'))\n button.setAttribute('data-id', `${element.getAttribute('id')}`);\n if (element.hasAttribute('open')) {\n button.setAttribute('aria-pressed', true);\n }\n button.innerHTML = `${summary.innerText}`;\n if (tabsElement.classList.contains('tabs--toggle-tags')) {\n button.classList.add('tag');\n button.classList.add('tag--toggle');\n }\n else\n button.classList.add('link');\n button.setAttribute('data-index', tabindex);\n button.setAttribute('part', 'tab-link');\n dropdownOpt.innerHTML = `${summary.innerText}`;\n dropdownOpt.value = summary.innerText.replace(/\\s+/g, '-').toLowerCase();\n dropdownOpt.setAttribute('data-index', tabindex);\n element.setAttribute('tabindex', '-1');\n if (isDisabled) {\n button.classList.add('disabled');\n }\n tabindex++;\n }\n else if (element.matches('a')) {\n button = element;\n }\n tabLinks.appendChild(button);\n tabDropdown.appendChild(dropdownOpt);\n });\n};\nexport const setTabsEventHandlers = function (tabsElement) {\n const details = tabsElement.querySelectorAll(':scope > details');\n const summaries = tabsElement.querySelectorAll(':scope > details > summary');\n let buttonWrapper = tabsElement.querySelector(':scope .tabs__links');\n let buttons = tabsElement.querySelectorAll(':scope .tabs__links > button');\n const tabDropdown = tabsElement.querySelector(':scope .tabs__dropdown');\n let nextButton = tabsElement.querySelector(':scope .tabs__next');\n let scrollTimeout;\n window.isClicked = false;\n window.isScrolling = false;\n if (tabsElement.shadowRoot) {\n buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');\n buttonWrapper = tabsElement.shadowRoot.querySelector('.tabs__links');\n nextButton = tabsElement.shadowRoot.querySelector('.tabs__next');\n }\n // Set the on click for the tab buttons, these will open the details box it matches too\n buttons.forEach((button) => {\n button.addEventListener('click', (e) => {\n e.preventDefault();\n window.isClicked = true;\n if (button.classList.contains('disabled'))\n return false;\n buttons.forEach((buttonLoopItem) => {\n const buttonPressed = buttonLoopItem == button ? true : false;\n buttonLoopItem.setAttribute('aria-pressed', buttonPressed);\n });\n buttonWrapper.scroll({\n top: 0,\n left: button.offsetLeft,\n behavior: 'smooth',\n });\n //Handles showing correct content\n toggleTab(details, button);\n // Data layer Open Event\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openTab',\n tabTitle: button.textContent,\n });\n if (button.matches(':last-child')) {\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.setAttribute('disabled', 'disabled');\n }\n else {\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.removeAttribute('disabled');\n }\n });\n dropdownTabSelector(details, tabDropdown);\n });\n buttonWrapper.addEventListener('scrollend', () => {\n clearTimeout(scrollTimeout);\n scrollTimeout = setTimeout(function () {\n let buttonToClick = buttons[0];\n let closestOffset = Math.abs(buttonToClick.getBoundingClientRect().left);\n buttons.forEach((button) => {\n if (Math.abs(button.getBoundingClientRect().left) < closestOffset) {\n closestOffset = Math.abs(button.getBoundingClientRect().left);\n buttonToClick = button;\n }\n });\n if (window.isClicked) {\n window.isClicked = false;\n return false;\n }\n else {\n buttonToClick.click();\n }\n buttonToClick.focus();\n }, 500);\n });\n // Make sure we dont loose existing summary functionality\n summaries.forEach((summary, index) => {\n summary.addEventListener('click', (e) => {\n e.preventDefault();\n buttons[index].click();\n });\n });\n details.forEach((detailsElement, index) => {\n detailsElement.addEventListener(\"toggle\", function () {\n var _a;\n if (detailsElement.open)\n (_a = detailsElement.querySelector('button,input')) === null || _a === void 0 ? void 0 : _a.focus();\n });\n });\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.addEventListener('click', (e) => {\n e.preventDefault();\n const currentTab = buttonWrapper.querySelector('[aria-pressed=\"true\"]');\n const nextTab = currentTab.nextSibling;\n if (nextTab)\n nextTab.click();\n });\n if (tabsElement.classList.contains('tabs--guided')) {\n let touchstartX = 0;\n let touchstartY = 0;\n let touchendX = 0;\n let touchendY = 0;\n details.forEach((detail) => {\n detail.addEventListener('touchstart', (event) => {\n event.stopPropagation();\n touchstartX = event.changedTouches[0].screenX;\n touchstartY = event.changedTouches[0].screenY;\n });\n detail.addEventListener('touchend', (event) => {\n event.stopPropagation();\n touchendX = event.changedTouches[0].screenX;\n touchendY = event.changedTouches[0].screenY;\n const direction = getSwipeDirection(touchstartX, touchstartY, touchendX, touchendY);\n const currentTab = buttonWrapper.querySelector('[aria-pressed=\"true\"]');\n const nextTab = currentTab.nextSibling;\n const prevTab = currentTab.previousSibling;\n switch (direction) {\n case 'left':\n if (nextTab)\n nextTab.click();\n break;\n case 'right':\n if (prevTab)\n prevTab.click();\n break;\n }\n });\n });\n }\n};\nexport const toggleTab = function (details, button) {\n details.forEach((detail, detailsIndex) => {\n const detailsOpen = button.getAttribute('data-index') == detailsIndex ? true : false;\n if (detailsOpen) {\n detail.setAttribute('open', detailsOpen);\n }\n else\n detail.removeAttribute('open');\n });\n};\nexport const dropdownTabSelector = function (details, dropdown) {\n dropdown.addEventListener('change', (e) => {\n e.preventDefault();\n const selected = dropdown.options[dropdown.selectedIndex];\n toggleTab(details, selected);\n // Data layer Open Event\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openTab',\n tabTitle: selected.innerText,\n });\n });\n};\nexport const openFirstTab = function (tabsElement) {\n if (!tabsElement.querySelector(':scope > details'))\n return false;\n const details = tabsElement.querySelectorAll(':scope > details');\n const buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');\n if (location.hash &&\n tabsElement.shadowRoot.querySelector(`.tabs__links [data-id=\"${location.hash.replace('#', '')}\"]`)) {\n tabsElement.shadowRoot\n .querySelector(`[data-id=\"${location.hash.replace('#', '')}\"]`)\n .setAttribute('aria-pressed', true);\n tabsElement.querySelector(`details[id=\"${location.hash.replace('#', '')}\"]`).setAttribute('open', true);\n }\n else if (!tabsElement.querySelector(`details[open]`)) {\n details[0].setAttribute('open', true);\n buttons[0].setAttribute('aria-pressed', true);\n }\n};\nconst tabs = function (tabsElement) {\n createTabsLinks(tabsElement);\n setTabsEventHandlers(tabsElement);\n openFirstTab(tabsElement);\n};\nexport default tabs;\n","import tabs from '../../modules/tabs';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'tabs',\n});\nclass iamTabs extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/tabs.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n \n ${loadCSS}\n \n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n <div class=\"tabs\" part=\"tabs\">\n <div class=\"tabs__dropdown\" part=\"tab-dropdown\"></div>\n\n <div class=\"tabs__links__wrapper\" part=\"wrapper\">\n <div class=\"tabs__links\" part=\"tab-links\"></div>\n </div>\n <slot></slot>\n <button part=\"next-button\" class=\"btn btn-secondary btn-sm btn-compact fa-regular fa-chevron-right tabs__next\">Next</button>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const classList = this.classList.toString().replace('container', '');\n this.shadowRoot.querySelector('.tabs').setAttribute('class', `tabs ${classList}`);\n tabs(this);\n // #region Allow togle tags to control the tabs\n Array.from(this.querySelectorAll('details[id]')).forEach((details) => {\n const detailsID = details.getAttribute('id');\n Array.from(document.querySelectorAll(`[command=\"show-tab\"][commandfor=\"${detailsID}\"]`)).forEach((radioField) => {\n radioField.closest('label').addEventListener('click', (e) => {\n details.setAttribute('open', 'open');\n Array.from(document.querySelectorAll(`input[type=\"radio\"][command=\"show-tab\"][commandfor=\"${detailsID}\"]`)).forEach((input) => {\n input.checked = true;\n });\n });\n });\n });\n // #endregion\n }\n}\nexport default iamTabs;\n"],"names":["getSwipeDirection","touchstartX","touchstartY","touchendX","touchendY","limit","pageWidth","treshold","x","y","xy","yx","createTabsLinks","tabsElement","detailsORLinks","tabLinks","tabDropdown","tabLinksWrapper","tabindex","element","button","dropdownOpt","summary","isDisabled","setTabsEventHandlers","details","summaries","buttonWrapper","buttons","nextButton","scrollTimeout","e","buttonLoopItem","buttonPressed","toggleTab","dropdownTabSelector","buttonToClick","closestOffset","index","detailsElement","_a","nextTab","detail","event","direction","currentTab","prevTab","detailsIndex","detailsOpen","dropdown","selected","openFirstTab","tabs","iamTabs","template","classList","detailsID","radioField","input"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta20
2
+ * iamKey v7.7.1--beta21
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const v=e=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:e})};/*! js-cookie v3.0.5 | MIT */function h(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var i in t)e[i]=t[i]}return e}var f={read:function(e){return e[0]==='"'&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function u(e,a){function t(o,l,r){if(!(typeof document>"u")){r=h({},a,r),typeof r.expires=="number"&&(r.expires=new Date(Date.now()+r.expires*864e5)),r.expires&&(r.expires=r.expires.toUTCString()),o=encodeURIComponent(o).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var p="";for(var n in r)r[n]&&(p+="; "+n,r[n]!==!0&&(p+="="+r[n].split(";")[0]));return document.cookie=o+"="+e.write(l,o)+p}}function i(o){if(!(typeof document>"u"||arguments.length&&!o)){for(var l=document.cookie?document.cookie.split("; "):[],r={},p=0;p<l.length;p++){var n=l[p].split("="),s=n.slice(1).join("=");try{var d=decodeURIComponent(n[0]);if(r[d]=e.read(s,d),o===d)break}catch{}}return o?r[o]:r}}return Object.create({set:t,get:i,remove:function(o,l){t(o,"",h({},l,{expires:-1}))},withAttributes:function(o){return u(this.converter,h({},this.attributes,o))},withConverter:function(o){return u(h({},this.converter,o),this.attributes)}},{attributes:{value:Object.freeze(a)},converter:{value:Object.freeze(e)}})}var y=u(f,{path:"/"}),k=function(e,a,t,i){function o(l){return l instanceof t?l:new t(function(r){r(l)})}return new(t||(t=Promise))(function(l,r){function p(d){try{s(i.next(d))}catch(c){r(c)}}function n(d){try{s(i.throw(d))}catch(c){r(c)}}function s(d){d.done?l(d.value):o(d.value).then(p,n)}s((i=i.apply(e,a||[])).next())})};const b=(e,a)=>{Array.from(e.querySelectorAll('label:not([slot="checked"])')).forEach(t=>{const o=t.querySelector("input").value,l=t.textContent;o.toLowerCase().includes(a.value.toLowerCase())||l.toLowerCase().includes(a.value.toLowerCase())?t.removeAttribute("slot"):t.setAttribute("slot","notmatched")})},x=(e,a,t)=>k(void 0,void 0,void 0,function*(){const i=a.value,o=e.getAttribute("data-url"),l=e.querySelector("input");console.log(l);const r=l&&l.hasAttribute("type")?l.getAttribute("type"):"checkbox";let p=l&&l.hasAttribute("name")?l.getAttribute("name"):"tags";e.hasAttribute("data-name")&&(p=e.hasAttribute("data-name"));const n=`${o}?search_query=${encodeURI(i)}`;window.controller||(window.controller=[]),window.controller[n]&&window.controller[n].abort(),window.controller[n]=new AbortController;const{signal:s}=controller[n];try{yield fetch(n,{signal:s,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest","X-XSRF-TOKEN":y.get("XSRF-TOKEN")})}).then(d=>d.json()).then(d=>{let c="";for(let m=0;m<d.data.length;m++)e.querySelector(`[value="${d.data[m].value}"]`)||(c+=`<label class="tag dropdown__option"><input type="${r}" name="${e.hasAttribute("data-name")?e.getAttribute("data-name"):p}" value="${d.data[m].value}"/>${d.data[m].title}</label>`);return e.insertAdjacentHTML("beforeend",`${c}`),t(e,a),d})}catch(d){console.log(d)}}),g=e=>{const a=e.querySelector(":checked"),t=a?.getAttribute("name");e.setAttribute("slot","checked"),e.setAttribute("data-content",e.textContent);let i=[];localStorage.getItem("tags-"+t)!=null&&(i=JSON.parse(localStorage.getItem("tags-"+t))),i.includes(e.textContent)||(i.push(e.textContent),localStorage.setItem("tags-"+t,JSON.stringify(i)));let o=i.indexOf(e.textContent)+1;o>23&&(o=1),e?.classList.add(`wider-colour-${o+1}`)},w=(e,a)=>{a.addEventListener("keydown",t=>{var i;switch(t.keyCode){case 40:t.stopPropagation(),t.preventDefault(),(i=e.querySelector('label:not([slot="checked"]) input'))===null||i===void 0||i.focus();break}}),e.addEventListener("keydown",t=>{var i,o,l;const r=e.querySelectorAll(':scope > a, :scope > button, :scope > details > summary, :scope > label:not([slot="checked"]) > input'),p=e.querySelectorAll('a, button, input, label:not([slot="checked"]) > input');if(t&&t.target instanceof HTMLElement&&t.target.closest('a, button, summary, label:not([slot="checked"]) > input')){const n=document.activeElement,s=Array.from(r).indexOf(n)-1,d=Array.from(r).indexOf(n)+1;switch(t.keyCode){case 27:n.closest("details")?(t.stopPropagation(),t.preventDefault(),n.closest("details").removeAttribute("open"),n.closest("details").querySelector(":scope summary").focus()):t.stopPropagation();break;case 32:case 13:break;case 35:t.stopPropagation(),t.preventDefault(),(i=e.querySelector("details[open]"))===null||i===void 0||i.removeAttribute("open"),Array.from(p)[p.length-1].focus();break;case 36:t.stopPropagation(),t.preventDefault(),(o=e.querySelector("details[open]"))===null||o===void 0||o.removeAttribute("open"),Array.from(p)[0].focus();break;case 38:if(t.stopPropagation(),t.preventDefault(),Array.from(r).indexOf(n)>-1)Array.from(r)[s]!=null?Array.from(r)[s].focus():Array.from(r)[r.length-1].focus();else if(n.closest("details")){const c=n.closest("details").querySelectorAll("a, button, :scope details > summary");subPrevIndex=Array.from(c).indexOf(n)-1,Array.from(c)[subPrevIndex]!=null?Array.from(c)[subPrevIndex].focus():Array.from(c)[c.length-1].focus()}break;case 40:if(t.stopPropagation(),t.preventDefault(),Array.from(r).indexOf(n)>-1)Array.from(r)[d]!=null?Array.from(r)[d].focus():Array.from(r)[0].focus();else if(n.closest("details")){const c=(l=n.closest("details"))===null||l===void 0?void 0:l.querySelectorAll("a, button, :scope details > summary");subNextIndex=Array.from(c).indexOf(n)+1,Array.from(c)[subNextIndex]!=null?Array.from(c)[subNextIndex].focus():Array.from(c)[0].focus()}break}}})};v("iam-tag");class z 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>
6
6
 
7
- @layer elements{:is(label:not(.tag),.label){font-size:1.125rem;line-height:1.3125rem;margin-bottom:.5rem;font-weight:normal;color:var(--colour-heading);display:block;&>iam-rating{margin-top:.25rem !important}&.label--sm{--input-max-width: 15rem}}}@layer elements{input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}::-moz-focus-inner{padding:0;border-style:none}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;font-weight:normal;line-height:inherit}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-moz-color-swatch{border-radius:0;border:none}::-webkit-color-swatch{border-radius:0;border:none}::file-selector-button{font:inherit;-webkit-appearance:button}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output){display:block;width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);appearance:none;border-radius:.5rem;margin-bottom:1.5rem;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px);max-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output):is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output):is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output):disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}input[type=color]{padding:0 !important;max-width:3rem !important}[disabled] :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output,select:not(.select--minimal,.btn)){background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}[disabled] label{cursor:not-allowed;pointer-events:none}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])){max-width:var(--input-max-width)}}@layer elements{select,optgroup{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}select{text-transform:none;word-wrap:normal}select:disabled{opacity:1}select:not(.select--minimal,.btn){background:var(--icon-select) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,linear-gradient(to right, var(--colour-canvas-2), var(--colour-canvas-2));padding-right:calc(var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem) + var(--input-lh, 1.25rem)) !important}select:not(.select--minimal,.btn) option{font-size:1.2em}select:not(.select--minimal,.btn){box-shadow:inset -2px 0px 0px var(--colour-primary-theme);max-width:var(--select-max-width)}select:not(.select--minimal,.btn)[multiple],select:not(.select--minimal,.btn)[size]:not([size="1"]){background:none;max-height:none !important}select:not(.select--minimal,.btn):disabled{background-color:gray;border-color:#000}select:not(.select--minimal,.btn):-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 inherit}div:has(>select){margin-bottom:1.5rem}div:has(>select) select{margin-bottom:0 !important}.select--minimal{all:unset;font-size:inherit;line-height:inherit;background:none;border:2px solid rgba(0,0,0,0);display:inline-block;padding:.4em calc(1em + .8ch) .4rem var(--select-padding-left, 0.4em) !important;font-weight:normal !important;margin:-0.4em 0 !important;border-radius:.25em;color:var(--colour-body);height:auto;cursor:pointer;font-family:var(--font-body) !important}.select--minimal option{background-color:var(--colour-canvas);padding-left:1em;font-size:inherit;line-height:inherit}.select--minimal:hover{background:var(--colour-light)}.select--minimal:is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0;box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}*:has(>.select--minimal){position:relative;display:inline-block !important;width:auto !important;font-size:inherit !important;line-height:1 !important;padding:0 !important;margin:0 !important;font-family:var(--font-body) !important}*:has(>.select--minimal):after{font-size:.8em;line-height:1em;content:"\uF078";font-family:"Font Awesome 7 Pro";position:absolute;top:40%;transform:translate(0, -50%);right:.8ch;pointer-events:none;color:var(--colour-body)}select:not(.select--minimal,.btn){width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);border-radius:.5rem;margin-bottom:1.5rem;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px);max-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}select:not(.select--minimal,.btn):is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}select:not(.select--minimal,.btn):is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}select:not(.select--minimal,.btn):disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}[disabled] select:not(.select--minimal,.btn){background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}@media(hover: hover){select{appearance:base-select !important}}select::picker-icon{display:none}select::picker(select){appearance:base-select}select option::checkmark{display:none}select selectedcontent span{display:none}select[multiple]{border-radius:.35rem}select[multiple]::-webkit-scrollbar{width:.7rem}select[multiple]::-webkit-scrollbar *{background-color:rgba(0,0,0,0)}select[multiple]::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);border-radius:.35rem}}@layer elements{textarea{--textarea-height-scale: 3;margin:0;font-family:inherit;resize:vertical;display:block;width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);appearance:none;border-radius:.5rem;margin-bottom:1.5rem;max-height:100%;&:not([rows]){min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)*var(--textarea-height-scale) + 4px) !important}&[rows="1"]{--textarea-height-scale: 1}&[rows="2"]{--textarea-height-scale: 2}&:is([rows="2"],[rows="2"]){min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)*var(--textarea-height-scale) + 4px) !important}&:is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}&:is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30, 190, 230, 0.25)}&:disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}}[disabled] textarea{background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}label:not(.tag):has(textarea){display:block;margin-bottom:1.5rem;max-width:var(--input-max-width);textarea{margin-top:.5rem;margin-bottom:0 !important}}}@layer elements{fieldset{min-width:0;padding:0;margin:0;border:0}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[disabled] label{cursor:not-allowed;pointer-events:none}fieldset{width:100%;position:relative}legend{font-family:var(--font-heading);font-style:normal;font-weight:var(--heading-weight);line-height:2rem;color:var(--colour-heading);margin:0;clear:both;display:block;float:none;font-size:var(--h4-fs);line-height:var(--heading-lh);padding-bottom:.5rem;max-width:var(--content-max-width);min-width:100%}div:has(>label:first-child):has(>input){position:relative;max-width:var(--input-max-width);margin-bottom:1.5rem}div:has(>label:first-child):has(>input) input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),div:has(>label:first-child):has(>input) output,div:has(>label:first-child):has(>input) .prefix,div:has(>label:first-child):has(>input) .suffix{margin-bottom:0 !important}div:has(>label:first-child):has(>input){display:flex;flex-wrap:wrap;align-items:center}div:has(>label:first-child):has(>input)>*:not(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])):not(output):not(.prefix):not(.suffix){flex-shrink:0;width:100%}div:has(>label:first-child):has(>input) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output){flex-shrink:1;flex-grow:1;width:0}div:has(>label:first-child):has(>input) input~*:not(output){order:5;margin-top:.5rem}*:has(>:is(.form-control-sm,.input--sm)){--input-fs: 0.875rem;--input-lh: 1rem;--input-padding-block: 0.625rem;--input-padding-inline: 0.875rem}*:has(>:is(.form-control-lg,.input--lg)){--input-fs: 1.5rem;--input-lh: 1.8125rem;--input-padding-block: 1.25rem;--input-padding-inline: 1.375rem}*:has(>label:first-child):has(>input):has(>:is(.form-control-inline,.input--inline)) label{flex-shrink:0;white-space:nowrap;width:fit-content !important;margin:0;margin-inline-end:1rem}*:has(>input[readonly]){position:relative;max-width:var(--input-max-width)}*:has(>input[readonly]):after{font-family:var(--fa-family-classic);font-weight:300;content:"\uF023";position:absolute;font-size:var(--input-lh, 1.25rem);height:var(--input-lh, 1.25rem);width:var(--input-lh, 1.25rem);top:auto !important;bottom:calc(var(--input-padding-block, 0.75rem) + 2px);right:calc(var(--input-padding-block, 1rem) + 2px);text-align:center}@supports selector(:has(*)){.suffix~:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=date]):not([type=time]),output),:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=date]):not([type=time]),output):has(~.suffix){order:1;border-start-end-radius:0 !important;border-end-end-radius:0 !important}:is(input):has(~iam-password-indicator){border-start-end-radius:0 !important;border-end-end-radius:0 !important}label:has(.suffix) input{border-start-end-radius:0 !important;border-end-end-radius:0 !important}}.was-validated *:not(button):is(:invalid,.is-invalid,[aria-invalid]):not(.is-valid)+label,.was-validated label:has(*:not(button):is(:invalid,.is-invalid,[aria-invalid]):not(.is-valid)){--colour-check-border: var(--colour-danger);--colour-check-bg: #fcebec;border-color:var(--colour-danger)}.was-validated *:not(button):is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){border-color:var(--colour-danger) !important}.was-validated select:not(.btn):is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){background:var(--icon-select) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,var(--icon-error) right var(--input-padding-block, 3.5rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat;padding-right:6rem !important}.was-validated input:is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){background-image:var(--icon-error);background-repeat:no-repeat;background-position:right var(--input-padding-inline, 1rem) center;background-size:var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);padding-right:calc(var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)) !important}.was-validated *:not(button):is(:valid,.is-valid):not(.is-invalid){border-color:var(--colour-complete)}.was-validated input:is(:valid,.is-valid):not(:is(:invalid,.is-invalid)){background-image:var(--icon-tick);background-repeat:no-repeat;background-position:right var(--input-padding-inline, 1rem) center;background-size:var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);padding-right:calc(var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)) !important}.invalid-feedback{color:var(--colour-danger);margin-top:.5rem;background-image:var(--icon-error);background-repeat:no-repeat;background-position:left top 1px;background-size:var(--input-fs, 1rem) var(--input-fs, 1rem);padding-left:calc(var(--input-fs, 1rem) + .5rem);display:none}iam-address-lookup:has([required]){--req-display: none}.was-validated :is(:invalid,.is-invalid)~.invalid-feedback{display:block}.was-validated iam-address-lookup:has([required]:invalid){--error-border: var(--colour-danger);--error-bg: var(--icon-error);--error-display: block;--error-hide: none}@supports selector(:has(*)){input:is([type=radio],[type=checkbox]){position:absolute;top:0;left:0;opacity:0;height:0;width:0;margin:0;pointer-events:none}:is(div,fieldset,label:not(.tag)):has(>input:is([type=radio],[type=checkbox])):not(:has(label input)){position:relative;margin-bottom:1.5rem}:is(div,fieldset,label:not(.tag)):has(>input[type=radio]){--border-radius: 50%;--outline-width: 0.5rem}:is(div,fieldset,label:not(.tag)):has(>input[type=checkbox]){--border-radius: 0.25rem;--outline-width: 0.25rem}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)){--tick-colour: transparent;color:var(--colour-heading);position:relative;font-size:1rem;line-height:1.25rem;padding-left:2.5rem;padding-top:.625rem;padding-bottom:.625rem;margin-bottom:1.5rem;margin-right:1.5rem;cursor:pointer}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):has(+span),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):has(+span){margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):has(+input),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):has(+input){margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):last-child,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):last-child{margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):before,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):before{content:"";border:2px solid var(--colour-check-border, var(--colour-primary));background:var(--colour-check-bg, transparent);border-radius:var(--border-radius);height:var(--radio-size, 1.5rem);width:var(--radio-size, 1.5rem);display:inline-block;position:absolute;top:.5rem;left:var(--outline-width)}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)).btn:before,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)).btn:before{opacity:0}input[type=radio]+label:not(:has(>iam-card)):after,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)):after{content:"" !important;background:var(--colour-info);border-radius:var(--border-radius);height:.875rem;width:.875rem;height:var(--radio-inner-size, 0.875rem);width:var(--radio-inner-size, 0.875rem);display:none;position:absolute;top:var(--radio-inner-top, 0.8125rem);left:var(--radio-inner-left, calc(0.3125rem + var(--outline-width)))}input[type=radio]+label:not(:has(>iam-card)).radio--tick:before,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)).radio--tick:before{content:"\uF00C";position:absolute;font-size:1.5em;line-height:1;color:var(--tick-colour);font-family:var(--fa-family-classic);background:none !important;border:none !important;outline:none !important;left:.25rem}input[type=radio]+label:not(:has(>iam-card)).radio--tick:after,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)).radio--tick:after{display:none}@media(forced-colors: active){input:is([type=radio],[type=checkbox]):not(:checked)+label.radio--tick:not(:has(>iam-card)):before,label:has(input:is([type=radio],[type=checkbox]):not(:checked)).radio--tick:not(:has(>iam-card)):before{display:none}}:is(div,fieldset):has(>:is(input[type=radio],input[type=checkbox]):nth-of-type(2)) label:not(.tag):not(:has(>iam-card)){margin-bottom:0rem}fieldset:has(label>input:is([type=radio],[type=checkbox])) label{margin-bottom:0 !important}fieldset:has(label>input:is([type=radio],[type=checkbox])){margin-bottom:1.5rem}input:is([type=radio],[type=checkbox]):checked+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked){--tick-colour: var(--colour-info)}input:is([type=radio],[type=checkbox]):checked+label:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked):before{border-color:var(--colour-info)}input:is([type=radio],[type=checkbox]):checked+label:after,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked):after{display:inline-block}input:is([type=radio],[type=checkbox]):checked+label iam-card,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked) iam-card{--colour: var(--colour, var(--colour-info))}input[type=checkbox]:not([disabled]):checked+label:before,label:not(.tag):has(input[type=checkbox]:not([disabled]):checked):before{background:var(--colour-info) !important}input[type=checkbox]:checked+label:not(:has(>iam-card)):after,label:not(.tag):has(input[type=checkbox]:checked):after{content:"\uF00C";position:absolute;font-size:var(--checkbox-tick-size, 1em);line-height:1;color:var(--colour-primary-theme);font-family:var(--fa-family-classic);font-weight:bold;height:var(--checkbox-inner-size, 1.5rem);width:var(--checkbox-inner-size, 1.5rem);line-height:1.625rem;background:none !important;border:none !important;outline:none !important;top:var(--checkbox-inner-top, 0.5rem);left:var(--checkbox-inner-left, var(--outline-width));text-align:center}input[type=checkbox]:indeterminate+label:before,label:not(.tag):has(input[type=checkbox]:indeterminate):before{background:var(--colour-info) !important;border-color:var(--colour-info) !important}input[type=checkbox]:indeterminate+label:after,label:not(.tag):has(input[type=checkbox]:indeterminate):after{content:"\uF068";position:absolute;font-size:var(--checkbox-tick-size, 1em);line-height:1;color:var(--colour-primary-theme);font-family:var(--fa-family-classic);font-weight:bold;height:var(--checkbox-inner-size, 1.5rem);width:var(--checkbox-inner-size, 1.5rem);line-height:1.625rem;background:none !important;border:none !important;outline:none !important;top:var(--checkbox-inner-top, 0.5rem);left:var(--checkbox-inner-left, var(--outline-width));text-align:center}input:is([type=radio],[type=checkbox]):checked:is(:focus,:hover,.focus)+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked:is(:focus,:hover,.focus)){--tick-colour: var(--colour-info)}input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)+label,input:is([type=radio],[type=checkbox])+label.hover,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)){--tick-colour: var(--colour-muted)}input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)+label:before,input:is([type=radio],[type=checkbox])+label.hover:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)):before{background:var(--colour-check-bg, light-dark(var(--colour-light), #444444));outline:var(--outline-width) solid light-dark(var(--colour-light), #444444)}input:is([type=radio],[type=checkbox]):is(:active,.active)+label,input:is([type=radio],[type=checkbox])+label.active,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:active,.active)){--tick-colour: var(--colour-light)}input:is([type=radio],[type=checkbox]):is(:active,.active)+label:before,input:is([type=radio],[type=checkbox])+label.active:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:active,.active)):before{background:var(--colour-check-bg, #e0e0e0);outline:var(--outline-width) solid #e0e0e0}input:is([type=radio],[type=checkbox]):disabled+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled){opacity:.4;cursor:not-allowed}input:is([type=radio],[type=checkbox]):disabled+label>iam-card,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled)>iam-card{pointer-events:none}input:is([type=radio],[type=checkbox]):disabled+label:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled):before{background-color:none !important;outline:none !important;border-color:var(--colour-primary) !important}input[type=radio][disabled]:checked+label:after,label:not(.tag):has(input[type=radio][disabled]:checked):after{background-color:var(--colour-primary) !important}input[type=checkbox][disabled]:checked+label:before,label:not(.tag):has(input[type=checkbox][disabled]:checked):before{background:#e0e0e0 !important;border-color:#e0e0e0 !important}}.conditional{display:none}input:checked+.conditional,input:checked+label+.conditional,label:has(:checked)+.conditional,.was-validated .conditional:has(input[required]:invalid),.was-validated .conditional:focus-within{display:block;clear:both}input:not([class*=conditional-input-]):nth-of-type(1):checked~.conditional-1,input:not([class*=conditional-input-]):nth-of-type(2):checked~.conditional-2,input:not([class*=conditional-input-]):nth-of-type(3):checked~.conditional-3,input:not([class*=conditional-input-]):nth-of-type(4):checked~.conditional-4,input:not([class*=conditional-input-]):nth-of-type(5):checked~.conditional-5,input.conditional-input-1:checked~.conditional-1,input.conditional-input-2:checked~.conditional-2,input.conditional-input-3:checked~.conditional-3,input.conditional-input-4:checked~.conditional-4,input.conditional-input-5:checked~.conditional-5,label:has(input.conditional-input-1:checked)~.conditional-1,label:has(input.conditional-input-2:checked)~.conditional-2,label:has(input.conditional-input-3:checked)~.conditional-3,label:has(input.conditional-input-4:checked)~.conditional-4,label:has(input.conditional-input-5:checked)~.conditional-5{display:block;clear:both}iam-fileupload input{display:none}:is(label:not(.tag),.label):has(:is(input,select,textarea)){display:block;margin-bottom:1.5rem;max-width:var(--input-max-width)}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(input:not([type=range]),select){margin-top:.5rem;margin-bottom:0 !important}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(input,select)~span:not(:is(.suffix,.prefix,.invalid-feedback)),:is(label:not(.tag),.label):has(:is(input,select,textarea)) span:has(>:is(input,select))~span:not(:is(.suffix,.prefix,.invalid-feedback)),:is(label:not(.tag),.label):has(:is(input,select,textarea)) .hint-text{all:initial;font-family:var(--font-body);color:var(--colour-body);margin-top:.5rem;display:block;line-height:1.2}:is(label:not(.tag),.label):has(:is(input,select,textarea)) .invalid-feedback{font-size:1rem;font-weight:normal;line-height:1.2}:is(label:not(.tag),.label):has(:is(input,select,textarea)) span:has(:is(input,select)){display:flex;width:100%}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(.suffix,.prefix):not(.mt-0){margin:.5rem 0 0 0 !important}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)),.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid){margin-bottom:1.5rem}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)):has(:is(:invalid,.is-invalid)):after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid):has(:is(:invalid,.is-invalid)):after{content:"This field is required";color:var(--colour-danger);margin-top:.5rem;background-image:var(--icon-error);background-repeat:no-repeat;background-position:left top 1px;background-size:var(--input-fs, 1rem) var(--input-fs, 1rem);padding-left:calc(var(--input-fs, 1rem) + .5rem);display:block;width:100%;font-size:1rem;line-height:1.2}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select))[data-error]:has(:is(:invalid,.is-invalid)):after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid)[data-error]:has(:is(:invalid,.is-invalid)):after{content:attr(data-error) !important}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)).error-nowrap:after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid).error-nowrap:after{white-space:nowrap}input[type=range]{--track-size: 0.5rem;--track-colour: var(--colour-light);--thumb-colour: var(--colour-info);--thumb-size: 1.5rem;width:100%;background:rgba(0,0,0,0);cursor:pointer;margin-top:2rem;margin-bottom:2rem;height:2rem;border-radius:50%;accent-color:var(--thumb-colour);-webkit-appearance:none;appearance:none}*:has(>input[type=range]){position:relative;padding-bottom:6rem;max-width:var(--input-max-width)}label input[type=range]{position:absolute;top:1.5rem;left:0}input[type=range]::-webkit-slider-runnable-track{background:var(--track-colour);height:var(--track-size);border-radius:.5rem}input[type=range]::-moz-range-track{background:var(--track-colour);height:var(--track-size);border-radius:.5rem}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;margin-top:-0.5rem;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]::-moz-range-thumb{border:none;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]:focus{outline:none}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:focus::-webkit-slider-thumb{outline:.5rem solid rgba(30,190,231,.2)}input[type=range]:active::-webkit-slider-thumb{outline:.5rem solid rgba(30,190,231,.4)}input[type=range]:hover::-moz-range-thumb,input[type=range]:focus::-moz-range-thumb{outline:.5rem solid rgba(30,190,231,.2)}input[type=range]:focus::-moz-range-thumb{outline:.5rem solid rgba(30,190,231,.4)}iam-slider input::-webkit-outer-spin-button,iam-slider input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:is(input[type=date],input[type=datetime-local],input[type=year],input[type=month],input[type=week],input[type=time]){position:relative;margin-right:-3rem;padding-right:3rem !important;background-position:right 4rem center;border-radius:.5rem !important}::-webkit-calendar-picker-indicator{background:rgba(0,0,0,0);bottom:0;color:rgba(0,0,0,0);cursor:pointer;height:auto;left:0;position:absolute;right:0;top:0;width:auto;order:3;z-index:98}::-webkit-datetime-edit{position:relative;z-index:99;max-width:fit-content}.input__wrapper{margin-top:.5rem;display:block;position:relative}.input__wrapper input{margin:0 !important}.clear-search{display:var(--error-hide, block);position:absolute;top:50%;transform:translate(0, -50%);right:.5rem;margin:0;aspect-ratio:1/1}.clear-search:not(:hover,:focus){border-color:rgba(0,0,0,0) !important;background-color:rgba(0,0,0,0) !important}.input__wrapper:has(input[disabled],input.empty) .clear-search{display:none}.input__wrapper:has(input:is([name$=Alt]):not([data-value],[data-placeholder])) .clear-search{display:none}}@layer elements{.admin-panel{--padding-x: 1.5rem;--padding-top: 1rem;--padding-bottom: 1rem;--mh-modifier: 4.5rem;--mh-padding-inline: var(--padding-x);display:block;padding:var(--padding-top) var(--padding-x) var(--padding-bottom) var(--padding-x);box-shadow:0px 6px 12px rgba(0, 0, 0, 0.11);background-color:var(--colour-canvas-2);border-radius:.5rem;margin-bottom:1.5rem;outline:var(--contrast-outline-width, 0px) solid var(--colour-primary);overflow:hidden;&:has(:is([class*=cols-],[class*=col-start-],[class*=col-end-],[class*=col-span-])){display:grid;>*{grid-column:var(--col-start, col-1-start)/var(--col-end, col-12-end)}}&:empty{display:none}>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.admin-panel__heading):not(.lead):first-child{--gradient-direction: -90deg !important;background-color:var(--colour-success);&:not([class*=bg-]){color:var(--colour-primary-theme);background-image:linear-gradient(var(--gradient-direction), var(--colour-info) 0, transparent 100%)}margin:calc(var(--padding-top)*-1) calc(var(--padding-x)*-1) var(--padding-top) calc(var(--padding-x)*-1);display:block;border-top-left-radius:.5rem;border-top-right-radius:.5rem}>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6):not(.lead):first-child,.admin-panel__heading>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6):not(.lead){font-size:1.125rem;line-height:1.5rem;font-weight:bold;padding:1rem 1.5rem;max-width:unset}>:is(.admin-panel__heading):first-child{display:flex !important;flex-wrap:wrap;gap:1rem;align-items:center;padding:1rem 1.5rem;>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){padding:0;margin-inline-end:auto}.btn{--btn-margin: 0;margin-bottom:0}.dialog__wrapper+.btn{--btn-margin: 0.25rem;margin-inline-end:0}@media(prefers-color-scheme: light){.btn-action,.dialog__wrapper{--colour-canvas-2: #ffffff;--colour-heading: var(--colour-primary);--colour-btn-action-hover-bg: var(--colour-light);--colour-btn-hover: var(--colour-primary);--colour-border: #d8d8d8}}}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit,iam-table-ajax,.iam-table){margin:0 0 2rem 0;padding:0;box-shadow:none;background:none}&>*:not([class*=mb-]):not(.btn__group):last-child{margin-bottom:0 !important}&>*:is(p):last-child{padding-bottom:0 !important}& p{max-width:100%;padding-bottom:1.5rem}&>: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){overflow:auto;&:before{top:100% !important}}&>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6):not(.lead):first-child+: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){padding-top:var(--padding-top);margin-top:calc(var(--padding-top)*-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):last-child{padding-bottom:var(--padding-bottom);margin-bottom:calc(var(--padding-bottom)*-1) !important;&>*:not([class*=mb-]):last-child{margin-bottom:0 !important}&>*:is(p):last-child{padding-bottom:0 !important}}&>iam-pagination{margin-top:-1rem}&:has(.mh-fluid){max-height:100%;display:flex;flex-direction:column}&.grid{display:grid !important;grid-template-columns:subgrid !important;>*:not(:first-child){grid-column:var(--col-start, col-1-start)/var(--col-end, col-12-end)}}&>hr{margin-inline:calc(var(--padding-x)*-1)}}@container style(--theme: dark){.admin-panel{background-color:var(--colour-canvas-2);color:var(--colour-body);.bg-white{background-color:transparent !important;color:var(--white) !important}}}[class*=col].admin-panel:first-child:last-child:not(:has(.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)){min-height:calc(100% - 1.5rem)}.admin-panel:has(iam-actionbar){&>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6):not(.lead):first-child{margin-bottom:0}iam-actionbar{background:var(--colour-canvas);margin-inline:calc(var(--padding-x)*-1);margin-bottom:var(--padding-top);&:first-child{margin-top:calc(var(--padding-top)*-1)}&:not(:first-child){border-radius:0}}&>:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit,iam-table-ajax){overflow:visible;&:first-child{margin-top:calc(var(--padding-top)*-1)}iam-actionbar{margin-top:0 !important;border-radius:0;box-shadow:none}}}details.admin-panel{summary:after{content:"\uF077";font-weight:bold;margin-left:0;height:2rem;width:2rem;text-align:center;line-height:2rem;margin-right:-0.5rem}summary:not(:has(.btn:hover)):hover:after{background:var(--colour-light);border-radius:50%}summary:not(:has(.btn:hover)):active:after{background:var(--colour-light);filter:brightness(85%);border-radius:50%}}details.admin-panel:not([open]){padding-bottom:0;summary:first-child{margin-bottom:0}summary:after{content:"\uF078"}}.admin-panel__footer:last-child{background-color:var(--wider-colour);padding-top:var(--padding-top);margin-inline:calc(var(--padding-x)*-1);padding-inline:var(--padding-x);padding-bottom:0;&>*:last-child{margin-bottom:0;padding-bottom:var(--padding-bottom);align-self:center}}.admin-panel__footer:not([class*=mb-]):last-child{margin-bottom:calc(var(--padding-bottom)*-1) !important}.sub-panel{background:var(--colour-canvas);padding:var(--spacer-1);border:1px solid var(--colour-border);border-radius:.25rem;font-weight:normal;margin-bottom:1rem;display:block;&>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){font-size:1rem;line-height:1;margin-bottom:0;padding-bottom:.5rem;font-weight:normal}strong{font-weight:normal}.logo{height:1.5rem;width:1.5rem;object-fit:contain;padding:0;margin:0 auto .25rem auto;display:block}}}@layer elements{.dropdown__wrapper{position:relative;display:block;label{position:relative}input{padding-right:3rem}label:after,.hint-text{position:absolute;top:100%}label[for=use]:after{top:var(--checkbox-inner-top, 0.5rem)}}.was-validated .dropdown__wrapper label:has(:is(input:not([type=radio]):not([type=checkbox]),select)),.dropdown__wrapper.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)){input{background:none !important}&:has(:invalid,.is-invalid) .hint-text{display:none}}.dark-theme .dropdown__wrapper datalist{color-scheme:dark}.dropdown__wrapper:is(:focus-within,:has(*:active),:active) datalist{display:block;&:empty{display:block !important}}:is(.dropdown,datalist,[popover]),select::picker(select){border-top:none;border:none !important;font-size:1rem;background:var(--dropdown-bg);margin-block:var(--dropdown-margin-block);padding:var(--dropdown-padding);border-radius:var(--dropdown-border-radius);box-shadow:var(--dropdown-box-shadow)}:is(.dropdown,datalist):empty,select::picker(select):empty{display:none !important}:is(.dropdown,datalist){overflow-y:auto;width:100%;max-width:var(--input-max-width, 50rem);z-index:100;max-height:25rem;overflow:auto;&:before{display:none}}datalist{position:absolute;top:100%;left:0;&:empty{display:block !important}&:empty:before{content:"No results found";background-color:white;padding:1rem .5rem;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;padding-block:var(--menu-item-padding, 1rem) !important;display:block}}[popover]{top:calc(anchor(top) + anchor-size(height));left:anchor(left)}:is(.dropdown,datalist,select) option,.dropdown__option:not([slot=checked]){background:var(--dropdown-bg);cursor:pointer;background:unset !important;border:unset !important;color:var(--option-color) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.5rem !important;margin:0;padding:var(--option-padding) !important;width:100% !important;max-width:100% !important;text-align:left !important;border-radius:var(--option-border-radius) !important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;text-overflow:ellipsis;overflow:clip;&:not(:last-child){margin:0 0 .25rem 0 !important}&:is(:hover,:focus){background:var(--option-bg-hover) !important;color:var(--option-color-hover) !important}&:is(:active,.active,:checked){border-left:var(--option-border-left-active) !important;background:var(--option-bg-active) !important}&:after{content:attr(data-after)}}:is(.dropdown,datalist,select,[popover]) hr{height:1px !important;background-color:var(--menu-hr-border-color, var(--border-color, grey)) !important;width:100%;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding:0 !important}:is(.dropdown,datalist,select,[popover]) *:last-child{margin-bottom:0}:is(.dropdown,datalist,select,[popover]) :is(p):last-child{padding-bottom:0}:is(.dropdown,datalist,[popover]) :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){font-size:1rem !important;line-height:1.1875rem !important;padding-bottom:.5rem;font-weight:700}:is(iam-tag,iam-multiselect):has(label:not([slot=checked])){--display-panel: block}:is(iam-tag,iam-multiselect):has(label[slot=checked]){--display-button: block}:is(iam-tag,iam-multiselect)[data-single] .tag[slot=checked],:is(iam-tag,iam-multiselect)[data-single] .tag[slot=checked] *{pointer-events:none !important}@container style(--theme: dark){:host :is(.tag,.badge):not([slot=checked]){color:var(--colour-heading)}}.dropdown__option[slot=checked]{order:var(--order, 1)}}@layer utilities{.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}}@layer utilities{.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}@media screen and (min-width: 36em){.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}}@media screen and (min-width: 62em){.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}}}*,*::before,*::after{box-sizing:border-box}@layer components{.wrapper{position:relative;display:inline-block;margin-bottom:1rem}.wrapper input{position:absolute;min-height:unset;top:50%;left:0;transform:translate(0, -50%);z-index:-99;opacity:0}::slotted(*){margin-bottom:0 !important}input:focus{opacity:1;z-index:99}.wrapper:is(:focus-within) .dropdown{display:var(--display-panel, none)}@media(hover: hover){.wrapper .dropdown:hover{display:var(--display-panel, none)}}@media(hover: none){:host(.hover) .wrapper .dropdown{display:block}}}/*# sourceMappingURL=assets/css/components/tag.component.css.map */
7
+ @layer elements{:is(label:not(.tag),.label){font-size:1.125rem;line-height:1.3125rem;margin-bottom:.5rem;font-weight:normal;color:var(--colour-heading);display:block;&>iam-rating{margin-top:.25rem !important}&.label--sm{--input-max-width: 15rem}}}@layer elements{input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}::-moz-focus-inner{padding:0;border-style:none}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;font-weight:normal;line-height:inherit}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-moz-color-swatch{border-radius:0;border:none}::-webkit-color-swatch{border-radius:0;border:none}::file-selector-button{font:inherit;-webkit-appearance:button}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output){display:block;width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);appearance:none;border-radius:.5rem;margin-bottom:1.5rem;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px);max-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output):is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output):is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output):disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}input[type=color]{padding:0 !important;max-width:3rem !important}[disabled] :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output,select:not(.select--minimal,.btn)){background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}[disabled] label{cursor:not-allowed;pointer-events:none}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])){max-width:var(--input-max-width)}}@layer elements{select,optgroup{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}select{text-transform:none;word-wrap:normal}select:disabled{opacity:1}select:not(.select--minimal,.btn){background:var(--icon-select) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,linear-gradient(to right, var(--colour-canvas-2), var(--colour-canvas-2));padding-right:calc(var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem) + var(--input-lh, 1.25rem)) !important}select:not(.select--minimal,.btn) option{font-size:1.2em}select:not(.select--minimal,.btn){box-shadow:inset -2px 0px 0px var(--colour-primary-theme);max-width:var(--select-max-width)}select:not(.select--minimal,.btn)[multiple],select:not(.select--minimal,.btn)[size]:not([size="1"]){background:none;max-height:none !important}select:not(.select--minimal,.btn):disabled{background-color:gray;border-color:#000}select:not(.select--minimal,.btn):-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 inherit}div:has(>select){margin-bottom:1.5rem}div:has(>select) select{margin-bottom:0 !important}.select--minimal{all:unset;font-size:inherit;line-height:inherit;background:none;border:2px solid rgba(0,0,0,0);display:inline-block;padding:.4em calc(1em + .8ch) .4rem var(--select-padding-left, 0.4em) !important;font-weight:normal !important;margin:-0.4em 0 !important;border-radius:.25em;color:var(--colour-body);height:auto;cursor:pointer;font-family:var(--font-body) !important}.select--minimal option{background-color:var(--colour-canvas);padding-left:1em;font-size:inherit;line-height:inherit}.select--minimal:hover{background:var(--colour-light)}.select--minimal:is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0;box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}*:has(>.select--minimal){position:relative;display:inline-block !important;width:auto !important;font-size:inherit !important;line-height:1 !important;padding:0 !important;margin:0 !important;font-family:var(--font-body) !important}*:has(>.select--minimal):after{font-size:.8em;line-height:1em;content:"\uF078";font-family:"Font Awesome 7 Pro";position:absolute;top:40%;transform:translate(0, -50%);right:.8ch;pointer-events:none;color:var(--colour-body)}select:not(.select--minimal,.btn){width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);border-radius:.5rem;margin-bottom:1.5rem;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px);max-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}select:not(.select--minimal,.btn):is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}select:not(.select--minimal,.btn):is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}select:not(.select--minimal,.btn):disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}[disabled] select:not(.select--minimal,.btn){background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}@media(hover: hover){select{appearance:base-select !important}}select::picker-icon{display:none}select::picker(select){appearance:base-select}select option::checkmark{display:none}select selectedcontent span{display:none}select[multiple]{border-radius:.35rem}select[multiple]::-webkit-scrollbar{width:.7rem}select[multiple]::-webkit-scrollbar *{background-color:rgba(0,0,0,0)}select[multiple]::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);border-radius:.35rem}}@layer elements{textarea{--textarea-height-scale: 3;margin:0;font-family:inherit;resize:vertical;display:block;width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);appearance:none;border-radius:.5rem;margin-bottom:1.5rem;max-height:100%;&:not([rows]){min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)*var(--textarea-height-scale) + 4px) !important}&[rows="1"]{--textarea-height-scale: 1}&[rows="2"]{--textarea-height-scale: 2}&:is([rows="2"],[rows="2"]){min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)*var(--textarea-height-scale) + 4px) !important}&:is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}&:is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30, 190, 230, 0.25)}&:disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}}[disabled] textarea{background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}label:not(.tag):has(textarea){display:block;margin-bottom:1.5rem;max-width:var(--input-max-width);textarea{margin-top:.5rem;margin-bottom:0 !important}}}@layer elements{fieldset{min-width:0;padding:0;margin:0;border:0}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[disabled] label{cursor:not-allowed;pointer-events:none}fieldset{width:100%;position:relative}legend{font-family:var(--font-heading);font-style:normal;font-weight:var(--heading-weight);line-height:2rem;color:var(--colour-heading);margin:0;clear:both;display:block;float:none;font-size:var(--h4-fs);line-height:var(--heading-lh);padding-bottom:.5rem;max-width:var(--content-max-width);min-width:100%}div:has(>label:first-child):has(>input){position:relative;max-width:var(--input-max-width);margin-bottom:1.5rem}div:has(>label:first-child):has(>input) input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),div:has(>label:first-child):has(>input) output,div:has(>label:first-child):has(>input) .prefix,div:has(>label:first-child):has(>input) .suffix{margin-bottom:0 !important}div:has(>label:first-child):has(>input){display:flex;flex-wrap:wrap;align-items:center}div:has(>label:first-child):has(>input)>*:not(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])):not(output):not(.prefix):not(.suffix){flex-shrink:0;width:100%}div:has(>label:first-child):has(>input) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output){flex-shrink:1;flex-grow:1;width:0}div:has(>label:first-child):has(>input) input~*:not(output){order:5;margin-top:.5rem}*:has(>:is(.form-control-sm,.input--sm)){--input-fs: 0.875rem;--input-lh: 1rem;--input-padding-block: 0.625rem;--input-padding-inline: 0.875rem}*:has(>:is(.form-control-lg,.input--lg)){--input-fs: 1.5rem;--input-lh: 1.8125rem;--input-padding-block: 1.25rem;--input-padding-inline: 1.375rem}*:has(>label:first-child):has(>input):has(>:is(.form-control-inline,.input--inline)) label{flex-shrink:0;white-space:nowrap;width:fit-content !important;margin:0;margin-inline-end:1rem}*:has(>input[readonly]){position:relative;max-width:var(--input-max-width)}*:has(>input[readonly]):after{font-family:var(--fa-family-classic);font-weight:300;content:"\uF023";position:absolute;font-size:var(--input-lh, 1.25rem);height:var(--input-lh, 1.25rem);width:var(--input-lh, 1.25rem);top:auto !important;bottom:calc(var(--input-padding-block, 0.75rem) + 2px);right:calc(var(--input-padding-block, 1rem) + 2px);text-align:center}@supports selector(:has(*)){.suffix~:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=date]):not([type=time]),output),:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=date]):not([type=time]),output):has(~.suffix){order:1;border-start-end-radius:0 !important;border-end-end-radius:0 !important}:is(input):has(~iam-password-indicator){border-start-end-radius:0 !important;border-end-end-radius:0 !important}label:has(.suffix) input{border-start-end-radius:0 !important;border-end-end-radius:0 !important}}.was-validated *:not(button):is(:invalid,.is-invalid,[aria-invalid]):not(.is-valid)+label,.was-validated label:has(*:not(button):is(:invalid,.is-invalid,[aria-invalid]):not(.is-valid)){--colour-check-border: var(--colour-danger);--colour-check-bg: #fcebec;border-color:var(--colour-danger)}.was-validated *:not(button):is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){border-color:var(--colour-danger) !important}.was-validated select:not(.btn):is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){background:var(--icon-select) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,var(--icon-error) right var(--input-padding-block, 3.5rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat;padding-right:6rem !important}.was-validated input:is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){background-image:var(--icon-error);background-repeat:no-repeat;background-position:right var(--input-padding-inline, 1rem) center;background-size:var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);padding-right:calc(var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)) !important}.was-validated *:not(button):is(:valid,.is-valid):not(.is-invalid){border-color:var(--colour-complete)}.was-validated input:is(:valid,.is-valid):not(:is(:invalid,.is-invalid)){background-image:var(--icon-tick);background-repeat:no-repeat;background-position:right var(--input-padding-inline, 1rem) center;background-size:var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);padding-right:calc(var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)) !important}.invalid-feedback{color:var(--colour-danger);margin-top:.5rem;background-image:var(--icon-error);background-repeat:no-repeat;background-position:left top 1px;background-size:var(--input-fs, 1rem) var(--input-fs, 1rem);padding-left:calc(var(--input-fs, 1rem) + .5rem);display:none}iam-address-lookup:has([required]){--req-display: none}.was-validated :is(:invalid,.is-invalid)~.invalid-feedback{display:block}.was-validated iam-address-lookup:has([required]:invalid){--error-border: var(--colour-danger);--error-bg: var(--icon-error);--error-display: block;--error-hide: none}@supports selector(:has(*)){input:is([type=radio],[type=checkbox]){position:absolute;top:0;left:0;opacity:0;height:0;width:0;margin:0;pointer-events:none}:is(div,fieldset,label:not(.tag)):has(>input:is([type=radio],[type=checkbox])):not(:has(label input)){position:relative;margin-bottom:1.5rem}:is(div,fieldset,label:not(.tag)):has(>input[type=radio]){--border-radius: 50%;--outline-width: 0.5rem}:is(div,fieldset,label:not(.tag)):has(>input[type=checkbox]){--border-radius: 0.25rem;--outline-width: 0.25rem}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)){--tick-colour: transparent;color:var(--colour-heading);position:relative;font-size:1rem;line-height:1.25rem;padding-left:2.5rem;padding-top:.625rem;padding-bottom:.625rem;margin-bottom:1.5rem;margin-right:1.5rem;cursor:pointer}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):has(+span),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):has(+span){margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):has(+input),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):has(+input){margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):last-child,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):last-child{margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):before,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):before{content:"";border:2px solid var(--colour-check-border, var(--colour-primary));background:var(--colour-check-bg, transparent);border-radius:var(--border-radius);height:var(--radio-size, 1.5rem);width:var(--radio-size, 1.5rem);display:inline-block;position:absolute;top:.5rem;left:var(--outline-width)}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)).btn:before,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)).btn:before{opacity:0}input[type=radio]+label:not(:has(>iam-card)):after,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)):after{content:"" !important;background:var(--colour-info);border-radius:var(--border-radius);height:.875rem;width:.875rem;height:var(--radio-inner-size, 0.875rem);width:var(--radio-inner-size, 0.875rem);display:none;position:absolute;top:var(--radio-inner-top, 0.8125rem);left:var(--radio-inner-left, calc(0.3125rem + var(--outline-width)))}input[type=radio]+label:not(:has(>iam-card)).radio--tick:before,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)).radio--tick:before{content:"\uF00C";position:absolute;font-size:1.5em;line-height:1;color:var(--tick-colour);font-family:var(--fa-family-classic);background:none !important;border:none !important;outline:none !important;left:.25rem}input[type=radio]+label:not(:has(>iam-card)).radio--tick:after,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)).radio--tick:after{display:none}@media(forced-colors: active){input:is([type=radio],[type=checkbox]):not(:checked)+label.radio--tick:not(:has(>iam-card)):before,label:has(input:is([type=radio],[type=checkbox]):not(:checked)).radio--tick:not(:has(>iam-card)):before{display:none}}:is(div,fieldset):has(>:is(input[type=radio],input[type=checkbox]):nth-of-type(2)) label:not(.tag):not(:has(>iam-card)){margin-bottom:0rem}fieldset:has(label>input:is([type=radio],[type=checkbox])) label{margin-bottom:0 !important}fieldset:has(label>input:is([type=radio],[type=checkbox])){margin-bottom:1.5rem}input:is([type=radio],[type=checkbox]):checked+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked){--tick-colour: var(--colour-info)}input:is([type=radio],[type=checkbox]):checked+label:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked):before{border-color:var(--colour-info)}input:is([type=radio],[type=checkbox]):checked+label:after,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked):after{display:inline-block}input:is([type=radio],[type=checkbox]):checked+label iam-card,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked) iam-card{--colour: var(--colour, var(--colour-info))}input[type=checkbox]:not([disabled]):checked+label:before,label:not(.tag):has(input[type=checkbox]:not([disabled]):checked):before{background:var(--colour-info) !important}input[type=checkbox]:checked+label:not(:has(>iam-card)):after,label:not(.tag):has(input[type=checkbox]:checked):after{content:"\uF00C";position:absolute;font-size:var(--checkbox-tick-size, 1em);line-height:1;color:var(--colour-primary-theme);font-family:var(--fa-family-classic);font-weight:bold;height:var(--checkbox-inner-size, 1.5rem);width:var(--checkbox-inner-size, 1.5rem);line-height:1.625rem;background:none !important;border:none !important;outline:none !important;top:var(--checkbox-inner-top, 0.5rem);left:var(--checkbox-inner-left, var(--outline-width));text-align:center}input[type=checkbox]:indeterminate+label:before,label:not(.tag):has(input[type=checkbox]:indeterminate):before{background:var(--colour-info) !important;border-color:var(--colour-info) !important}input[type=checkbox]:indeterminate+label:after,label:not(.tag):has(input[type=checkbox]:indeterminate):after{content:"\uF068";position:absolute;font-size:var(--checkbox-tick-size, 1em);line-height:1;color:var(--colour-primary-theme);font-family:var(--fa-family-classic);font-weight:bold;height:var(--checkbox-inner-size, 1.5rem);width:var(--checkbox-inner-size, 1.5rem);line-height:1.625rem;background:none !important;border:none !important;outline:none !important;top:var(--checkbox-inner-top, 0.5rem);left:var(--checkbox-inner-left, var(--outline-width));text-align:center}input:is([type=radio],[type=checkbox]):checked:is(:focus,:hover,.focus)+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked:is(:focus,:hover,.focus)){--tick-colour: var(--colour-info)}input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)+label,input:is([type=radio],[type=checkbox])+label.hover,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)){--tick-colour: var(--colour-muted)}input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)+label:before,input:is([type=radio],[type=checkbox])+label.hover:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)):before{background:var(--colour-check-bg, light-dark(var(--colour-light), #444444));outline:var(--outline-width) solid light-dark(var(--colour-light), #444444)}input:is([type=radio],[type=checkbox]):is(:active,.active)+label,input:is([type=radio],[type=checkbox])+label.active,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:active,.active)){--tick-colour: var(--colour-light)}input:is([type=radio],[type=checkbox]):is(:active,.active)+label:before,input:is([type=radio],[type=checkbox])+label.active:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:active,.active)):before{background:var(--colour-check-bg, #e0e0e0);outline:var(--outline-width) solid #e0e0e0}input:is([type=radio],[type=checkbox]):disabled+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled){opacity:.4;cursor:not-allowed}input:is([type=radio],[type=checkbox]):disabled+label>iam-card,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled)>iam-card{pointer-events:none}input:is([type=radio],[type=checkbox]):disabled+label:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled):before{background-color:none !important;outline:none !important;border-color:var(--colour-primary) !important}input[type=radio][disabled]:checked+label:after,label:not(.tag):has(input[type=radio][disabled]:checked):after{background-color:var(--colour-primary) !important}input[type=checkbox][disabled]:checked+label:before,label:not(.tag):has(input[type=checkbox][disabled]:checked):before{background:#e0e0e0 !important;border-color:#e0e0e0 !important}}.conditional{display:none}input:checked+.conditional,input:checked+label+.conditional,label:has(:checked)+.conditional,.was-validated .conditional:has(input[required]:invalid),.was-validated .conditional:focus-within{display:block;clear:both}input:not([class*=conditional-input-]):nth-of-type(1):checked~.conditional-1,input:not([class*=conditional-input-]):nth-of-type(2):checked~.conditional-2,input:not([class*=conditional-input-]):nth-of-type(3):checked~.conditional-3,input:not([class*=conditional-input-]):nth-of-type(4):checked~.conditional-4,input:not([class*=conditional-input-]):nth-of-type(5):checked~.conditional-5,input.conditional-input-1:checked~.conditional-1,input.conditional-input-2:checked~.conditional-2,input.conditional-input-3:checked~.conditional-3,input.conditional-input-4:checked~.conditional-4,input.conditional-input-5:checked~.conditional-5,label:has(input.conditional-input-1:checked)~.conditional-1,label:has(input.conditional-input-2:checked)~.conditional-2,label:has(input.conditional-input-3:checked)~.conditional-3,label:has(input.conditional-input-4:checked)~.conditional-4,label:has(input.conditional-input-5:checked)~.conditional-5{display:block;clear:both}iam-fileupload input{display:none}:is(label:not(.tag),.label):has(:is(input,select,textarea)){display:block;margin-bottom:1.5rem;max-width:var(--input-max-width)}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(input:not([type=range]),select){margin-top:.5rem;margin-bottom:0 !important}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(input,select)~span:not(:is(.suffix,.prefix,.invalid-feedback)),:is(label:not(.tag),.label):has(:is(input,select,textarea)) span:has(>:is(input,select))~span:not(:is(.suffix,.prefix,.invalid-feedback)),:is(label:not(.tag),.label):has(:is(input,select,textarea)) .hint-text{all:initial;font-family:var(--font-body);color:var(--colour-body);margin-top:.5rem;display:block;line-height:1.2}:is(label:not(.tag),.label):has(:is(input,select,textarea)) .invalid-feedback{font-size:1rem;font-weight:normal;line-height:1.2}:is(label:not(.tag),.label):has(:is(input,select,textarea)) span:has(:is(input,select)){display:flex;width:100%}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(.suffix,.prefix):not(.mt-0){margin:.5rem 0 0 0 !important}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)),.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid){margin-bottom:1.5rem}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)):has(:is(:invalid,.is-invalid)):after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid):has(:is(:invalid,.is-invalid)):after{content:"This field is required";color:var(--colour-danger);margin-top:.5rem;background-image:var(--icon-error);background-repeat:no-repeat;background-position:left top 1px;background-size:var(--input-fs, 1rem) var(--input-fs, 1rem);padding-left:calc(var(--input-fs, 1rem) + .5rem);display:block;width:100%;font-size:1rem;line-height:1.2}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select))[data-error]:has(:is(:invalid,.is-invalid)):after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid)[data-error]:has(:is(:invalid,.is-invalid)):after{content:attr(data-error) !important}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)).error-nowrap:after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid).error-nowrap:after{white-space:nowrap}input[type=range]{--track-size: 0.5rem;--track-colour: var(--colour-light);--thumb-colour: var(--colour-info);--thumb-size: 1.5rem;width:100%;background:rgba(0,0,0,0);cursor:pointer;margin-top:2rem;margin-bottom:2rem;height:2rem;border-radius:50%;accent-color:var(--thumb-colour);-webkit-appearance:none;appearance:none}*:has(>input[type=range]){position:relative;padding-bottom:6rem;max-width:var(--input-max-width)}label input[type=range]{position:absolute;top:1.5rem;left:0}input[type=range]::-webkit-slider-runnable-track{background:var(--track-colour);height:var(--track-size);border-radius:.5rem}input[type=range]::-moz-range-track{background:var(--track-colour);height:var(--track-size);border-radius:.5rem}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;margin-top:-0.5rem;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]::-moz-range-thumb{border:none;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]:focus{outline:none}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:focus::-webkit-slider-thumb{outline:.5rem solid rgba(30,190,231,.2)}input[type=range]:active::-webkit-slider-thumb{outline:.5rem solid rgba(30,190,231,.4)}input[type=range]:hover::-moz-range-thumb,input[type=range]:focus::-moz-range-thumb{outline:.5rem solid rgba(30,190,231,.2)}input[type=range]:focus::-moz-range-thumb{outline:.5rem solid rgba(30,190,231,.4)}iam-slider input::-webkit-outer-spin-button,iam-slider input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:is(input[type=date],input[type=datetime-local],input[type=year],input[type=month],input[type=week],input[type=time]){position:relative;margin-right:-3rem;padding-right:3rem !important;background-position:right 4rem center;border-radius:.5rem !important}::-webkit-calendar-picker-indicator{background:rgba(0,0,0,0);bottom:0;color:rgba(0,0,0,0);cursor:pointer;height:auto;left:0;position:absolute;right:0;top:0;width:auto;order:3;z-index:98}::-webkit-datetime-edit{position:relative;z-index:99;max-width:fit-content}.input__wrapper{margin-top:.5rem;display:block;position:relative}.input__wrapper input{margin:0 !important}.clear-search{display:var(--error-hide, block);position:absolute;top:50%;transform:translate(0, -50%);right:.5rem;margin:0;aspect-ratio:1/1}.clear-search:not(:hover,:focus){border-color:rgba(0,0,0,0) !important;background-color:rgba(0,0,0,0) !important}.input__wrapper:has(input[disabled],input.empty) .clear-search{display:none}.input__wrapper:has(input:is([name$=Alt]):not([data-value],[data-placeholder])) .clear-search{display:none}}@layer elements{.admin-panel{--padding-x: 1.5rem;--padding-top: 1rem;--padding-bottom: 1rem;--mh-modifier: 4.5rem;--mh-padding-inline: var(--padding-x);display:block;padding:var(--padding-top) var(--padding-x) var(--padding-bottom) var(--padding-x);box-shadow:0px 6px 12px rgba(0, 0, 0, 0.11);background-color:var(--colour-canvas-2);border-radius:.5rem;margin-bottom:1.5rem;outline:var(--contrast-outline-width, 0px) solid var(--colour-primary);overflow:hidden;&:has(:is([class*=cols-],[class*=col-start-],[class*=col-end-],[class*=col-span-])){display:grid;>*{grid-column:var(--col-start, col-1-start)/var(--col-end, col-12-end)}}&:empty{display:none}>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.admin-panel__heading):not(.lead):first-child{--gradient-direction: -90deg !important;background-color:var(--colour-success);&:not([class*=bg-]){color:var(--colour-primary-theme);background-image:linear-gradient(var(--gradient-direction), var(--colour-info) 0, transparent 100%)}margin:calc(var(--padding-top)*-1) calc(var(--padding-x)*-1) var(--padding-top) calc(var(--padding-x)*-1);display:block;border-top-left-radius:.5rem;border-top-right-radius:.5rem}>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6):not(.lead):first-child,.admin-panel__heading>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6):not(.lead){font-size:1.125rem;line-height:1.5rem;font-weight:bold;padding:1rem 1.5rem;max-width:unset}>:is(.admin-panel__heading):first-child{display:flex !important;flex-wrap:wrap;gap:1rem;align-items:center;padding:1rem 1.5rem;>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){padding:0;margin-inline-end:auto}.btn{--btn-margin: 0;margin-bottom:0}.dialog__wrapper+.btn{--btn-margin: 0.25rem;margin-inline-end:0}@media(prefers-color-scheme: light){.btn-action,.dialog__wrapper{--colour-canvas-2: #ffffff;--colour-heading: var(--colour-primary);--colour-btn-action-hover-bg: var(--colour-light);--colour-btn-hover: var(--colour-primary);--colour-border: #d8d8d8}}}:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit,iam-table-ajax,.iam-table){margin:0 0 2rem 0;padding:0;box-shadow:none;background:none}&>*:not([class*=mb-]):not(.btn__group):last-child{margin-bottom:0 !important}&>*:is(p):last-child{padding-bottom:0 !important}& p{max-width:100%;padding-bottom:1.5rem}&>: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){overflow:auto;&:before{top:100% !important}}&>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6):not(.lead):first-child+: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){padding-top:var(--padding-top);margin-top:calc(var(--padding-top)*-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):last-child{padding-bottom:var(--padding-bottom);margin-bottom:calc(var(--padding-bottom)*-1) !important;&>*:not([class*=mb-]):last-child{margin-bottom:0 !important}&>*:is(p):last-child{padding-bottom:0 !important}}&>iam-pagination{margin-top:-1rem}&:has(.mh-fluid){max-height:100%;display:flex;flex-direction:column}&.grid{display:grid !important;grid-template-columns:subgrid !important;>*:not(:first-child){grid-column:var(--col-start, col-1-start)/var(--col-end, col-12-end)}}&>hr{margin-inline:calc(var(--padding-x)*-1)}}@container style(--theme: dark){.admin-panel{background-color:var(--colour-canvas-2);color:var(--colour-body);.bg-white{background-color:transparent !important;color:var(--white) !important}}}[class*=col].admin-panel:first-child:last-child:not(:has(.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)){min-height:calc(100% - 1.5rem)}.admin-panel:has(iam-actionbar){&>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6):not(.lead):first-child{margin-bottom:0}iam-actionbar{background:var(--colour-canvas);margin-inline:calc(var(--padding-x)*-1);margin-bottom:var(--padding-top);&:first-child{margin-top:calc(var(--padding-top)*-1)}&:not(:first-child){border-radius:0}}&>:is(iam-table,iam-table-basic,iam-table-no-submit,iam-table-submit,iam-table-ajax){overflow:visible;&:first-child{margin-top:calc(var(--padding-top)*-1)}iam-actionbar{margin-top:0 !important;border-radius:0;box-shadow:none}}}details.admin-panel{summary:after{content:"\uF077";font-weight:bold;margin-left:0;height:2rem;width:2rem;text-align:center;line-height:2rem;margin-right:-0.5rem}summary:not(:has(.btn:hover)):hover:after{background:var(--colour-light);border-radius:50%}summary:not(:has(.btn:hover)):active:after{background:var(--colour-light);filter:brightness(85%);border-radius:50%}}details.admin-panel:not([open]){padding-bottom:0;summary:first-child{margin-bottom:0}summary:after{content:"\uF078"}}.admin-panel__footer:last-child{background-color:var(--wider-colour);padding-top:var(--padding-top);margin-inline:calc(var(--padding-x)*-1);padding-inline:var(--padding-x);padding-bottom:0;&>*:last-child{margin-bottom:0;padding-bottom:var(--padding-bottom);align-self:center}}.admin-panel__footer:not([class*=mb-]):last-child{margin-bottom:calc(var(--padding-bottom)*-1) !important}.sub-panel{background:var(--colour-canvas);padding:var(--spacer-1);border:1px solid var(--colour-border);border-radius:.25rem;font-weight:normal;margin-bottom:1rem;display:block;&>:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){font-size:1rem;line-height:1;margin-bottom:0;padding-bottom:.5rem;font-weight:normal}strong{font-weight:normal}.logo{height:1.5rem;width:1.5rem;object-fit:contain;padding:0;margin:0 auto .25rem auto;display:block}}}@layer elements{.dropdown__wrapper{position:relative;display:block;label{position:relative}input{padding-right:3rem}label:after,.hint-text{position:absolute;top:100%}label[for=use]:after{top:var(--checkbox-inner-top, 0.5rem)}}.was-validated .dropdown__wrapper label:has(:is(input:not([type=radio]):not([type=checkbox]),select)),.dropdown__wrapper.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)){input{background:none !important}&:has(:invalid,.is-invalid) .hint-text{display:none}}.dark-theme .dropdown__wrapper datalist{color-scheme:dark}.dropdown__wrapper:is(:focus-within,:has(*:active),:active) datalist{display:block;&:empty{display:block !important}}:is(.dropdown,datalist,[popover]),select::picker(select){border-top:none;border:none !important;font-size:1rem;background:var(--dropdown-bg);margin-block:var(--dropdown-margin-block);padding:var(--dropdown-padding);border-radius:var(--dropdown-border-radius);box-shadow:var(--dropdown-box-shadow)}:is(.dropdown,datalist):empty,select::picker(select):empty{display:none !important}:is(.dropdown,datalist){overflow-y:auto;width:100%;max-width:var(--input-max-width, 50rem);z-index:100;max-height:25rem;overflow:auto;&:before{display:none}}datalist{position:absolute;top:100%;left:0;&:empty:before{content:"No results found";background-color:white;padding:1rem .5rem;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;padding-block:var(--menu-item-padding, 1rem) !important;display:block}}[popover]{top:calc(anchor(top) + anchor-size(height));left:anchor(left)}:is(.dropdown,datalist,select) option,.dropdown__option:not([slot=checked]){background:var(--dropdown-bg);cursor:pointer;background:unset !important;border:unset !important;color:var(--option-color) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.5rem !important;margin:0;padding:var(--option-padding) !important;width:100% !important;max-width:100% !important;text-align:left !important;border-radius:var(--option-border-radius) !important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;text-overflow:ellipsis;overflow:clip;&:not(:last-child){margin:0 0 .25rem 0 !important}&:is(:hover,:focus){background:var(--option-bg-hover) !important;color:var(--option-color-hover) !important}&:is(:active,.active,:checked){border-left:var(--option-border-left-active) !important;background:var(--option-bg-active) !important}&:after{content:attr(data-after)}}:is(.dropdown,datalist,select,[popover]) hr{height:1px !important;background-color:var(--menu-hr-border-color, var(--border-color, grey)) !important;width:100%;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding:0 !important}:is(.dropdown,datalist,select,[popover]) *:last-child{margin-bottom:0}:is(.dropdown,datalist,select,[popover]) :is(p):last-child{padding-bottom:0}:is(.dropdown,datalist,[popover]) :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){font-size:1rem !important;line-height:1.1875rem !important;padding-bottom:.5rem;font-weight:700}:is(iam-tag,iam-multiselect):has(label:not([slot=checked])){--display-panel: block}:is(iam-tag,iam-multiselect):has(label[slot=checked]){--display-button: block}:is(iam-tag,iam-multiselect)[data-single] .tag[slot=checked],:is(iam-tag,iam-multiselect)[data-single] .tag[slot=checked] *{pointer-events:none !important}@container style(--theme: dark){:host :is(.tag,.badge):not([slot=checked]){color:var(--colour-heading)}}.dropdown__option[slot=checked]{order:var(--order, 1)}}@layer utilities{.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}}@layer utilities{.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}@media screen and (min-width: 36em){.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}}@media screen and (min-width: 62em){.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}}}*,*::before,*::after{box-sizing:border-box}@layer components{.wrapper{position:relative;display:inline-block;margin-bottom:1rem}.wrapper input{position:absolute;min-height:unset;top:50%;left:0;transform:translate(0, -50%);z-index:-99;opacity:0}::slotted(*){margin-bottom:0 !important}input:focus{opacity:1;z-index:99}.wrapper:is(:focus-within) .dropdown{display:var(--display-panel, none)}@media(hover: hover){.wrapper .dropdown:hover{display:var(--display-panel, none)}}@media(hover: none){:host(.hover) .wrapper .dropdown{display:block}}}/*# sourceMappingURL=assets/css/components/tag.component.css.map */
8
8
 
9
9
  </style>
10
10
  <div class="wrapper">
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta20
2
+ * iamKey v7.7.1--beta21
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const r=a=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:a})};r("iam-tooltip");class s 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--beta20
2
+ * iamKey v7.7.1--beta21
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const b=a=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:a})};var m=function(a,t,r,o){function i(e){return e instanceof r?e:new r(function(c){c(e)})}return new(r||(r=Promise))(function(e,c){function l(n){try{s(o.next(n))}catch(u){c(u)}}function d(n){try{s(o.throw(n))}catch(u){c(u)}}function s(n){n.done?e(n.value):i(n.value).then(l,d)}s((o=o.apply(a,t||[])).next())})};const v=`<div class="video-wrapper">
5
5
  <slot name="video"></slot>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta20
2
+ * iamKey v7.7.1--beta21
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const b=t=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:t})},g=(t,e,r)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:e}),r.forEach(o=>{t.addEventListener(o,function(a){const i={event:o,element:e,target:a.target};Object.keys(a.detail).forEach(n=>{const c=a.detail[n];i[n]=c}),window.dataLayer.push(i)})}),!0),h=`<div class="wrapper">
5
5
  <div class="card__head" part="head">
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta20
2
+ * iamKey v7.7.1--beta21
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const b=r=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:r})};var s=function(r,t,o,e){function i(a){return a instanceof o?a:new o(function(c){c(a)})}return new(o||(o=Promise))(function(a,c){function m(n){try{l(e.next(n))}catch(d){c(d)}}function p(n){try{l(e.throw(n))}catch(d){c(d)}}function l(n){n.done?a(n.value):i(n.value).then(m,p)}l((e=e.apply(r,t||[])).next())})};const g=`<div class="video-wrapper">
5
5
  <slot name="video"></slot>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta20
2
+ * iamKey v7.7.1--beta21
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const o=i=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:i})};o("iam-word-count");class n 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>
@@ -33,7 +33,12 @@ export const createTabsLinks = function (tabsElement) {
33
33
  button.setAttribute('aria-pressed', true);
34
34
  }
35
35
  button.innerHTML = `${summary.innerText}`;
36
- button.classList.add('link');
36
+ if (tabsElement.classList.contains('tabs--toggle-tags')) {
37
+ button.classList.add('tag');
38
+ button.classList.add('tag--toggle');
39
+ }
40
+ else
41
+ button.classList.add('link');
37
42
  button.setAttribute('data-index', tabindex);
38
43
  button.setAttribute('part', 'tab-link');
39
44
  dropdownOpt.innerHTML = `${summary.innerText}`;
@@ -48,7 +53,6 @@ export const createTabsLinks = function (tabsElement) {
48
53
  else if (element.matches('a')) {
49
54
  button = element;
50
55
  }
51
- button.classList.add('link');
52
56
  tabLinks.appendChild(button);
53
57
  tabDropdown.appendChild(dropdownOpt);
54
58
  });
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta20
2
+ * iamKey v7.7.1--beta21
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */(function(w){typeof define=="function"&&define.amd?define(w):w()})((function(){"use strict";var w=a=>{a.classList.add("js-enabled"),(navigator.userAgent.indexOf("MSIE")!==-1||navigator.appVersion.indexOf("Trident/")>0)&&a.classList.add("ie")},H=a=>{var e=function(n){var r=document.querySelector('label[for="'.concat(n.replace("#",""),'"]')),s=document.querySelector(n+" summary"),u=document.querySelector("dialog".concat(n)),i=document.querySelector("detail".concat(n));r instanceof HTMLElement?r.click():s instanceof HTMLElement?s.click():u instanceof HTMLElement?u.showModal():i instanceof HTMLElement&&i.addAttribute("open")};location.hash&&e(location.hash),window.addEventListener("hashchange",function(){e(location.hash)},!1),addEventListener("popstate",o=>{if(o&&o.state&&o.state.type&&o.state.type=="pagination"){var n=document.querySelector("#".concat(o.state.form)),r=document.querySelector("#".concat(o.state.form," [data-pagination]"));r?r.value=o.state.page:n.innerHTML+='<input name="page" type="hidden" data-pagination="true" value="'.concat(o.state.page,'" />'),n.dispatchEvent(new Event("submit"))}}),Array.from(document.querySelectorAll("form")).forEach(o=>{o?.closest("iam-form")||o.addEventListener("submit",n=>{var r;o.querySelector(":invalid")&&(o.classList.add("was-validated"),(r=o?.querySelector("input:invalid"))===null||r===void 0||r.scrollIntoView(),n.preventDefault())})}),document.addEventListener("click",o=>{var n;if(o&&o.target instanceof HTMLElement&&o.target.matches("form button:not([type=button])")){var r=o.target.closest("form");r?.closest("iam-form")||(Array.from(r.querySelectorAll("[data-password-type]")).forEach(s=>{s.setAttribute("type","password")}),(r.querySelector(":invalid")||r.querySelector('.pwd-checker[data-strength="1"]')||r.querySelector('.pwd-checker[data-strength="2"]'))&&(r.classList.add("was-validated"),(n=r?.querySelector("input:invalid"))===null||n===void 0||n.scrollIntoView(),o.preventDefault()),r.querySelector("iam-multiselect[data-is-required][data-error]")&&(r.classList.add("was-validated"),o.preventDefault()))}}),document.addEventListener("keydown",o=>{o.key==="Escape"&&document.querySelector(".dialog--transactional[open], .dialog--acknowledgement[open]")&&(o.preventDefault(),o.stopPropagation())}),Array.from(document.querySelectorAll("label progress")).forEach(o=>{var n=o.closest("label");n.setAttribute("data-percent",o.getAttribute("value"))})};function N(){window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Pageview",pageTitle:document.title}),document.addEventListener("click",a=>{var e=a.target.closest("[open] summary");if(e)window.dataLayer.push({event:"closeDetails",detailsTitle:e.textContent||""});else{var o=a.target.closest("summary"),n=a.target.closest("a"),r=a.target.closest("button");o&&window.dataLayer.push({event:"openDetails",detailsTitle:o.textContent||""}),n&&window.dataLayer.push({event:"linkClicked",linkText:n.hasAttribute("title")?n.getAttribute("title")||"":n.textContent||"",class:n.hasAttribute("class")&&n.getAttribute("class")||"",href:n.getAttribute("href")||""}),r&&window.dataLayer.push({event:"buttonClicked",buttonText:r.textContent||"",class:r.hasAttribute("class")&&r.getAttribute("class")||""})}})}window.triggerDynamicEvent=function(a){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"change";console.log("event"),a.hasAttribute("data-change-events")&&e=="change"&&v(a,a.getAttribute("data-change-events")),a.hasAttribute("data-click-events")&&e=="click"&&v(a,a.getAttribute("data-click-events"))};var M=()=>{document.addEventListener("change",a=>{a&&a.target instanceof HTMLElement&&a.target.closest("[data-change-events]")&&v(a.target,a.target.closest("[data-change-events]").getAttribute("data-change-events"))}),document.addEventListener("keyup",a=>{a&&a.target instanceof HTMLElement&&a.target.closest("[data-change-events]")&&v(a.target,a.target.closest("[data-change-events]").getAttribute("data-change-events"))}),document.addEventListener("click",a=>{a&&a.target instanceof HTMLElement&&a.target.closest("[data-click-events]")&&v(a.target,a.target.closest("[data-click-events]").getAttribute("data-click-events"))})},v=(a,e)=>{if(e||(e=a.parentNode.getAttribute("data-change-events")),!e)return!1;Array.from(JSON.parse(e)).forEach(o=>{C(a,o)})},C=(a,e)=>{if("matches"in e)return e.matches=="any"||a.value==e.matches?f(a,e,"if"):f(a,e,"else"),!1;if("in-list"in e){var o=document.querySelector("".concat(e["in-list"],' option[value="').concat(a.value,'"]'));return document.querySelector("".concat(e["in-list"],' option[value="').concat(a.value,'"]'))?f(o,e,"if"):f(o,e,"else"),!1}else"event"in e&&f(a,e,"event")},f=(a,e,o)=>{if(!(o in e))return!1;switch(e[o]){case"hide":if(document.querySelector(e.target)){var n=document.querySelector(e.target);n.classList.add("js-hide"),Array.from(n.querySelectorAll("[data-required]")).forEach(i=>{i.removeAttribute("required")})}break;case"show":if(document.querySelector(e.target)){var r=document.querySelector(e.target);r.classList.remove("js-hide"),Array.from(r.querySelectorAll("[data-required]")).forEach(i=>{i.closest(".js-hide")||i.setAttribute("required","true")})}break;case"populate-form":D(a,e);break;case"dispatchEvent":var s=new Event(e.value);document.querySelector("".concat(e.target)).dispatchEvent(s);break;case"setAttribute":Array.from(document.querySelectorAll("".concat(e.target))).forEach(function(i){i.setAttribute(e.attribute,e.value)});break;case"focus":document.querySelector("".concat(e.target)).focus();break;case"removeAttribute":Array.from(document.querySelectorAll("".concat(e.target))).forEach(function(i){i.removeAttribute(e.attribute)});break;case"updateValue":document.querySelector("".concat(e.target)).value=e.value?e.value:"";var u=new Event("change");document.querySelector("".concat(e.target)).dispatchEvent(u);break;case"submitForm":document.querySelector("".concat(e.target)).submit();break;case"openLink":document.querySelector("".concat(e.target)).value&&(window.location.href=document.querySelector("".concat(e.target)).value);break}},D=function(e,o){var n=JSON.parse(e.getAttribute("data-values")),r=document.querySelector(o.target);if(!n)return!1;Object.keys(n).forEach(s=>{document.getElementById(s)&&document.getElementById(s).tagName=="SPAN"&&(document.getElementById(s).innerHTML=n[s]),r.querySelector('select[name="'.concat(s,'"] [value="').concat(n[s],'"]'))?(r.querySelector('select[name="'.concat(s,'"]')).value=n[s],e.hasAttribute("data-lock-fields")&&(r.querySelector('select[name="'.concat(s,'"]')).disabled=!0)):r.querySelector('input[name="'.concat(s,'"][type="radio"][value="').concat(n[s],'"]'))?(Array.from(r.querySelectorAll('input[name="'.concat(s,'"][type="radio"]'))).forEach(function(u){u.disabled=!0}),r.querySelector('input[name="'.concat(s,'"][type="radio"][value="').concat(n[s],'"]')).checked=!0,r.querySelector('input[name="'.concat(s,'"][type="radio"][value="').concat(n[s],'"]')).disabled=!1):r.querySelector('input[name="'.concat(s,'"]'))&&(r.querySelector('input[name="'.concat(s,'"]')).value=n[s],e.hasAttribute("data-lock-fields")&&r.querySelector('input[name="'.concat(s,'"]')).setAttribute("readonly","true"))})},F=()=>{var a=[],e={},o="These tests run against mark-up and content meant to test how a component or element has been integrated. Making sure that guidance setout in the design system is being followed.";window.integrationTestsIntro=o,console.log("%cVirgin Money Framework Tests","color: #E10A0A; font-size: 24px; font-weight: bold; margin-top: 20px; margin-bottom: 10px;"),console.log("%c"+o,"font-size: 14px; margin-bottom: 20px;"),console.log("%cKey","font-size: 16px;font-weight:bold;"),console.log("%c %cSuccessfully implemented","background-color: green; margin-right: 10px","background-color: transparent"),console.log("%c %cNOT implemented correctly","background-color: red; margin-right: 10px","background-color: transparent"),console.log("%c %cN/A","background-color: grey; margin-right: 10px","background-color: transparent"),console.log("%c %cWarning - No action needed","background-color: orange; margin-right: 10px","background-color: transparent"),console.log("%c ? %cWarning - Action needed","background-color: orange; margin-right: 10px","background-color: transparent"),e={Test:"Each card with in a card deck has a footer with some CTA text via a button link",Total:0,Passes:0,Fails:0},Array.from(document.querySelectorAll(".card-deck .card")).forEach((t,c)=>{if(t.closest(".navbar")==null){var l=t.querySelector(".btn-link");l!=null&&l.textContent.length?e.Passes++:e.Fails++}}),e.Total=e.Passes+e.Fails,a.push(e),e={Test:"Article Decks need to have a background colour applied",Total:0,Passes:0,Fails:0},Array.from(document.querySelectorAll(".article-deck")).forEach((t,c)=>{var l=t.closest(".container");l!=null&&l.matches('[class*="bg-"]')?e.Passes++:e.Fails++}),e.Total=e.Passes+e.Fails,a.push(e),e={Test:"Tabs Carousel has a h2 title with a display-4 class. It should always have a strapline next to it also.",Total:0,Passes:0,Fails:0,Notes:"The site nav contains cards without a footer by design."},Array.from(document.querySelectorAll(".tabs__container--carousel")).forEach((t,c)=>{var l=t.querySelector("h2.display-4:first-child"),d=t.querySelector("h2.display-4:first-child + .strapline");l!=null&&d!=null?e.Passes++:e.Fails++}),e.Total=e.Passes+e.Fails,a.push(e),e={Test:"Split Containers can only have multiple of two columns. So either 2, 4, 6 and so on.",Total:0,Passes:0,Fails:0,Notes:""},Array.from(document.querySelectorAll(".container.container--split")).forEach((t,c)=>{t.querySelectorAll(':scope > .row > [class*="col"]').length%2===0?e.Passes++:e.Fails++}),e.Total=e.Passes+e.Fails,a.push(e),e={Test:"Statement Containers with only one paragraph or text element should have the class of .h6",Total:0,Passes:0,Fails:0,Notes:""},Array.from(document.querySelectorAll(".container.container--statement")).forEach((t,c)=>{t.querySelectorAll(":scope > *").length==1&&t.querySelectorAll(":scope > .h6:first-child").length==1?e.Passes++:t.querySelectorAll(":scope > *").length==1&&e.Fails++}),e.Total=e.Passes+e.Fails,a.push(e),e={Test:"CTA Containers title should always have the class of .h1",Total:0,Passes:0,Fails:0,Notes:""},Array.from(document.querySelectorAll(".container.container--cta")).forEach((t,c)=>{t.querySelectorAll("h2.h1:first-child").length==1?e.Passes++:e.Fails++}),e.Total=e.Passes+e.Fails,a.push(e),console.log("%cImplementation Tests","font-size: 16px;font-weight:bold; margin-top: 20px;"),a.forEach(function(t){var c="green";t.Total===0?c="grey":t.Fails!=0&&(c="red"),t.Type=="warning"&&(c="orange"),console.groupCollapsed("%c %c"+t.Test,"background-color: "+c+"; margin-right: 10px","background-color: transparent"),console.table({Passed:{value:t.Passes},Failed:{value:t.Fails},Total:{value:t.Total}}),t.Notes!=""&&console.log(t.Notes),console.groupEnd()}),window.integrationTests=a;var n=[];e={Test:"There are XX padding classes being used on this page",Type:"warning",Total:0,Passes:0,Fails:0,Notes:""},Array.from(document.querySelectorAll('[class*="p-"],[class*="pt-"],[class*="pb-"],[class*="pl-"],[class*="pr-"],[class*="px-"],[class*="py-"]')).forEach((t,c)=>{e.Total++}),e.Test=e.Test.replace("XX",e.Total),n.push(e),e={Test:"There are XX margin classes being used on this page",Type:"warning",Total:0,Passes:0,Fails:0,Notes:""},Array.from(document.querySelectorAll('[class*="m-"],[class*="mt-"],[class*="mb-"],[class*="ml-"],[class*="mr-"],[class*="mx-"],[class*="my-"]')).forEach((t,c)=>{e.Total++}),e.Test=e.Test.replace("XX",e.Total),n.push(e),e={Test:"There are XX text modifier classes being used on this page",Type:"warning",Total:0,Passes:0,Fails:0,Notes:""},Array.from(document.querySelectorAll('[class*="text-"]')).forEach((t,c)=>{e.Total++}),e.Test=e.Test.replace("XX",e.Total),n.push(e),console.log("%cUtility classes","font-size: 16px;font-weight:bold;"),console.log("The use of certain utility classes is necessary at times but the over use of these classes will lead to design/layout inconsistencies."),n.forEach(function(t){var c="green";t.Total===0?c="grey":t.Fails!=0&&(c="red"),t.Type=="warning"&&(c="orange"),console.groupCollapsed("%c %c"+t.Test,"background-color: "+c+"; margin-right: 10px","background-color: transparent"),console.table({Total:{value:t.Total}}),t.Notes!=""&&console.log(t.Notes),console.groupEnd()}),console.log("%cAccessibility and Best practice Tests","font-size: 16px;font-weight:bold;");var r="green",s=1,u={};Array.from(document.querySelectorAll("h1,h2,h3,h4,h5,h6")).forEach((t,c)=>{var l=1,d=t.textContent;t.matches("h2")?l=2:t.matches("h3")?l=3:t.matches("h4")?l=4:t.matches("h5")?l=5:t.matches("h6")&&(l=6);var h=l-s<=1;c==0&&l!=1&&(h=!1);var p={"Heading Level":l,"In order":h};h?s=l:r="red",u[d]=p}),console.groupCollapsed("%c %cHeadings are in the correct order","background-color: "+r+"; margin-right: 10px","background-color: transparent"),console.table(u),console.groupEnd(),console.groupCollapsed("%c ? %cDo all of the headings make sense out of context and do they introduce the content that follows?","background-color: orange; margin-right: 10px","background-color: transparent"),console.log("You should be able to read the below table and get an understanding of what the page content consists of. The titles should make sense when read in order and child titles should be relevant to the parent title."),console.table(u),console.groupEnd();var i={};Array.from(document.querySelectorAll("a")).forEach((t,c)=>{var l=t.getAttribute("href"),d=t.textContent,h=t.getAttribute("title"),p={Text:d,Title:h};i[l]=p}),console.groupCollapsed("%c ? %cDo all of the links make sense out of context and do they describe the page/section that it links to?","background-color: orange; margin-right: 10px","background-color: transparent"),console.table(i),console.groupEnd();var A={},m={};Array.from(document.querySelectorAll("img[alt]")).forEach((t,c)=>{var l=t.getAttribute("src"),d=t.getAttribute("alt");if(d!=""){var h={Alt:d};A[l]=h}else{var l=t.getAttribute("src"),p={};m[l]=p}}),console.groupCollapsed("%c ? %cDo all of the images with an alt tag make sense out of context and describes the image appropriately?","background-color: orange; margin-right: 10px","background-color: transparent"),console.table(A),console.log("%cImages with an empty alt tag:","font-weight: bold;"),console.table(m),console.groupEnd(),console.groupCollapsed("%c ? %cCan you navigation the page links by tabbing through the page?","background-color: orange; margin-right: 10px","background-color: transparent"),console.log("Are all of the links, input fields and buttons accessible through using the keyboard only?"),console.groupEnd(),console.log("%cLighthouse","font-size: 16px;font-weight:bold;"),console.groupCollapsed("%c ? %cHave you ran a lighthouse report on this page","background-color: orange; margin-right: 10px","background-color: transparent"),console.log("If you are in a modern version of chrome you can a lighthouse report by opening the lighthouse window within the devtools. This should appear as a tab link above."),console.log("This report will give you more detail about the above the tests aswell as extra tests. "),console.groupEnd(),console.log("%cImage sizes","font-size: 16px;font-weight:bold;"),console.log("The below tests work from the current screen size, so if you have your screen at a mobile viewport the scaling and sizes of images will reflect that. It is worth running the image tests in both mobile and desktop views. Simply change the screen size and refresh the page."),Array.from(document.querySelectorAll("img")).forEach((t,c)=>{if(!t.matches("[src*='http']")&&!t.matches("[src$='.svg']")){var l=t.getAttribute("src"),d=new XMLHttpRequest;d.open("HEAD",l,!0),d.onreadystatechange=function(){if(d.readyState==4)if(d.status==200){var h=d.getResponseHeader("Content-Length");if(h>1024){var p=t.naturalWidth,P=t.naturalHeight,S=t.clientWidth,O=t.clientHeight,k=(S/p).toFixed(2)=="0.00"?"Hidden":(S/p).toFixed(2),B=Math.floor(h/1024),E=(h/(p*P)).toFixed(2),b="green",L="green",q="green",x="",T="";E>.5?(b="red",L="red",x="The image has a VERY large 'Bytes per pixel' score, trying optimising the image using https://tinypng.com/."):E>.2&&(b="orange",L="orange",x="The image has a large 'Bytes per pixel' score, trying optimising the image using https://tinypng.com/."),k>1.2?(b="red",q="red",T="The image size is smaller than the size shown on screen this may cause the image to appear blurry and low quality."):k<.5?(b="red",q="red",T="The image size is VERY large compared to the size shown on screen, this means unnecessary kb's are being downloaded. Try resizing the image in photoshop or other image editing software."):k<.8&&(b="orange",q="orange",T="The image size is large compared to the size shown on screen, this means unnecessary kb's are being downloaded. Try resizing the image in photoshop or other image editing software."),console.log("%c %c "+t.src,"background: url("+t.src+"); border: 3px solid "+b+"; line-height: 30px; width: 30px; background-size: cover;","background-color: transparent"),x!=""&&console.log("%c %c"+x,"background-color: "+L+"; margin-right: 10px","background-color: transparent"),T!=""&&console.log("%c %c"+T,"background-color: "+q+"; margin-right: 10px","background-color: transparent"),console.table({Image:{Dimensions:p+"x"+P,"Scaled to":S+"x"+O,Scale:k,Filesize:B+"Kb","Bytes per pixel":E}}),console.groupEnd()}}else console.log("%c %c"+t.src+" not loaded","background-color: red; margin-right: 10px","background-color: transparent")},d.send(null)}});var g=[];if(typeof window.integrationTests<"u"&&window.integrationTests.forEach(function(t){t.Total!=0&&t.Type!="warning"&&g.push(t.Test)}),g.length!=0){var y=document.querySelector("#vmtests-display");if(y!=null){y.innerHTML=`<div class="container">
5
5
  <h2>Integration notes</h2>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.7.1--beta20
2
+ * iamKey v7.7.1--beta21
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */
5
5
  !function(e){"function"==typeof define&&define.amd?define(e):e()}(function(){"use strict";window.triggerDynamicEvent=function(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";console.log("event"),t.hasAttribute("data-change-events")&&"change"==a&&e(t,t.getAttribute("data-change-events")),t.hasAttribute("data-click-events")&&"click"==a&&e(t,t.getAttribute("data-click-events"))};var e=(e,a)=>{if(a||(a=e.parentNode.getAttribute("data-change-events")),!a)return!1;Array.from(JSON.parse(a)).forEach(a=>{t(e,a)})},t=(e,t)=>{if("matches"in t)return"any"==t.matches||e.value==t.matches?a(e,t,"if"):a(e,t,"else"),!1;if("in-list"in t){var o=document.querySelector("".concat(t["in-list"],' option[value="').concat(e.value,'"]'));return document.querySelector("".concat(t["in-list"],' option[value="').concat(e.value,'"]'))?a(o,t,"if"):a(o,t,"else"),!1}"event"in t&&a(e,t,"event")},a=(e,t,a)=>{if(!(a in t))return!1;switch(t[a]){case"hide":if(document.querySelector(t.target)){var n=document.querySelector(t.target);n.classList.add("js-hide"),Array.from(n.querySelectorAll("[data-required]")).forEach(e=>{e.removeAttribute("required")})}break;case"show":if(document.querySelector(t.target)){var r=document.querySelector(t.target);r.classList.remove("js-hide"),Array.from(r.querySelectorAll("[data-required]")).forEach(e=>{e.closest(".js-hide")||e.setAttribute("required","true")})}break;case"populate-form":o(e,t);break;case"dispatchEvent":var s=new Event(t.value);document.querySelector("".concat(t.target)).dispatchEvent(s);break;case"setAttribute":Array.from(document.querySelectorAll("".concat(t.target))).forEach(function(e){e.setAttribute(t.attribute,t.value)});break;case"focus":document.querySelector("".concat(t.target)).focus();break;case"removeAttribute":Array.from(document.querySelectorAll("".concat(t.target))).forEach(function(e){e.removeAttribute(t.attribute)});break;case"updateValue":document.querySelector("".concat(t.target)).value=t.value?t.value:"";var l=new Event("change");document.querySelector("".concat(t.target)).dispatchEvent(l);break;case"submitForm":document.querySelector("".concat(t.target)).submit();break;case"openLink":document.querySelector("".concat(t.target)).value&&(window.location.href=document.querySelector("".concat(t.target)).value)}},o=function(e,t){var a=JSON.parse(e.getAttribute("data-values")),o=document.querySelector(t.target);if(!a)return!1;Object.keys(a).forEach(t=>{document.getElementById(t)&&"SPAN"==document.getElementById(t).tagName&&(document.getElementById(t).innerHTML=a[t]),o.querySelector('select[name="'.concat(t,'"] [value="').concat(a[t],'"]'))?(o.querySelector('select[name="'.concat(t,'"]')).value=a[t],e.hasAttribute("data-lock-fields")&&(o.querySelector('select[name="'.concat(t,'"]')).disabled=!0)):o.querySelector('input[name="'.concat(t,'"][type="radio"][value="').concat(a[t],'"]'))?(Array.from(o.querySelectorAll('input[name="'.concat(t,'"][type="radio"]'))).forEach(function(e){e.disabled=!0}),o.querySelector('input[name="'.concat(t,'"][type="radio"][value="').concat(a[t],'"]')).checked=!0,o.querySelector('input[name="'.concat(t,'"][type="radio"][value="').concat(a[t],'"]')).disabled=!1):o.querySelector('input[name="'.concat(t,'"]'))&&(o.querySelector('input[name="'.concat(t,'"]')).value=a[t],e.hasAttribute("data-lock-fields")&&o.querySelector('input[name="'.concat(t,'"]')).setAttribute("readonly","true"))})},n=()=>{var e=[],t={},a="These tests run against mark-up and content meant to test how a component or element has been integrated. Making sure that guidance setout in the design system is being followed.";window.integrationTestsIntro=a,console.log("%cVirgin Money Framework Tests","color: #E10A0A; font-size: 24px; font-weight: bold; margin-top: 20px; margin-bottom: 10px;"),console.log("%c"+a,"font-size: 14px; margin-bottom: 20px;"),console.log("%cKey","font-size: 16px;font-weight:bold;"),console.log("%c %cSuccessfully implemented","background-color: green; margin-right: 10px","background-color: transparent"),console.log("%c %cNOT implemented correctly","background-color: red; margin-right: 10px","background-color: transparent"),console.log("%c %cN/A","background-color: grey; margin-right: 10px","background-color: transparent"),console.log("%c %cWarning - No action needed","background-color: orange; margin-right: 10px","background-color: transparent"),console.log("%c ? %cWarning - Action needed","background-color: orange; margin-right: 10px","background-color: transparent"),t={Test:"Each card with in a card deck has a footer with some CTA text via a button link",Total:0,Passes:0,Fails:0},Array.from(document.querySelectorAll(".card-deck .card")).forEach((e,a)=>{if(null==e.closest(".navbar")){var o=e.querySelector(".btn-link");null!=o&&o.textContent.length?t.Passes++:t.Fails++}}),t.Total=t.Passes+t.Fails,e.push(t),t={Test:"Article Decks need to have a background colour applied",Total:0,Passes:0,Fails:0},Array.from(document.querySelectorAll(".article-deck")).forEach((e,a)=>{var o=e.closest(".container");null!=o&&o.matches('[class*="bg-"]')?t.Passes++:t.Fails++}),t.Total=t.Passes+t.Fails,e.push(t),t={Test:"Tabs Carousel has a h2 title with a display-4 class. It should always have a strapline next to it also.",Total:0,Passes:0,Fails:0,Notes:"The site nav contains cards without a footer by design."},Array.from(document.querySelectorAll(".tabs__container--carousel")).forEach((e,a)=>{var o=e.querySelector("h2.display-4:first-child"),n=e.querySelector("h2.display-4:first-child + .strapline");null!=o&&null!=n?t.Passes++:t.Fails++}),t.Total=t.Passes+t.Fails,e.push(t),t={Test:"Split Containers can only have multiple of two columns. So either 2, 4, 6 and so on.",Total:0,Passes:0,Fails:0,Notes:""},Array.from(document.querySelectorAll(".container.container--split")).forEach((e,a)=>{e.querySelectorAll(':scope > .row > [class*="col"]').length%2==0?t.Passes++:t.Fails++}),t.Total=t.Passes+t.Fails,e.push(t),t={Test:"Statement Containers with only one paragraph or text element should have the class of .h6",Total:0,Passes:0,Fails:0,Notes:""},Array.from(document.querySelectorAll(".container.container--statement")).forEach((e,a)=>{1==e.querySelectorAll(":scope > *").length&&1==e.querySelectorAll(":scope > .h6:first-child").length?t.Passes++:1==e.querySelectorAll(":scope > *").length&&t.Fails++}),t.Total=t.Passes+t.Fails,e.push(t),t={Test:"CTA Containers title should always have the class of .h1",Total:0,Passes:0,Fails:0,Notes:""},Array.from(document.querySelectorAll(".container.container--cta")).forEach((e,a)=>{1==e.querySelectorAll("h2.h1:first-child").length?t.Passes++:t.Fails++}),t.Total=t.Passes+t.Fails,e.push(t),console.log("%cImplementation Tests","font-size: 16px;font-weight:bold; margin-top: 20px;"),e.forEach(function(e){var t="green";0===e.Total?t="grey":0!=e.Fails&&(t="red"),"warning"==e.Type&&(t="orange"),console.groupCollapsed("%c %c"+e.Test,"background-color: "+t+"; margin-right: 10px","background-color: transparent"),console.table({Passed:{value:e.Passes},Failed:{value:e.Fails},Total:{value:e.Total}}),""!=e.Notes&&console.log(e.Notes),console.groupEnd()}),window.integrationTests=e;var o=[];t={Test:"There are XX padding classes being used on this page",Type:"warning",Total:0,Passes:0,Fails:0,Notes:""},Array.from(document.querySelectorAll('[class*="p-"],[class*="pt-"],[class*="pb-"],[class*="pl-"],[class*="pr-"],[class*="px-"],[class*="py-"]')).forEach((e,a)=>{t.Total++}),t.Test=t.Test.replace("XX",t.Total),o.push(t),t={Test:"There are XX margin classes being used on this page",Type:"warning",Total:0,Passes:0,Fails:0,Notes:""},Array.from(document.querySelectorAll('[class*="m-"],[class*="mt-"],[class*="mb-"],[class*="ml-"],[class*="mr-"],[class*="mx-"],[class*="my-"]')).forEach((e,a)=>{t.Total++}),t.Test=t.Test.replace("XX",t.Total),o.push(t),t={Test:"There are XX text modifier classes being used on this page",Type:"warning",Total:0,Passes:0,Fails:0,Notes:""},Array.from(document.querySelectorAll('[class*="text-"]')).forEach((e,a)=>{t.Total++}),t.Test=t.Test.replace("XX",t.Total),o.push(t),console.log("%cUtility classes","font-size: 16px;font-weight:bold;"),console.log("The use of certain utility classes is necessary at times but the over use of these classes will lead to design/layout inconsistencies."),o.forEach(function(e){var t="green";0===e.Total?t="grey":0!=e.Fails&&(t="red"),"warning"==e.Type&&(t="orange"),console.groupCollapsed("%c %c"+e.Test,"background-color: "+t+"; margin-right: 10px","background-color: transparent"),console.table({Total:{value:e.Total}}),""!=e.Notes&&console.log(e.Notes),console.groupEnd()}),console.log("%cAccessibility and Best practice Tests","font-size: 16px;font-weight:bold;");var n="green",r=1,s={};Array.from(document.querySelectorAll("h1,h2,h3,h4,h5,h6")).forEach((e,t)=>{var a=1,o=e.textContent;e.matches("h2")?a=2:e.matches("h3")?a=3:e.matches("h4")?a=4:e.matches("h5")?a=5:e.matches("h6")&&(a=6);var l=a-r<=1;0==t&&1!=a&&(l=!1);var c={"Heading Level":a,"In order":l};l?r=a:n="red",s[o]=c}),console.groupCollapsed("%c %cHeadings are in the correct order","background-color: "+n+"; margin-right: 10px","background-color: transparent"),console.table(s),console.groupEnd(),console.groupCollapsed("%c ? %cDo all of the headings make sense out of context and do they introduce the content that follows?","background-color: orange; margin-right: 10px","background-color: transparent"),console.log("You should be able to read the below table and get an understanding of what the page content consists of. The titles should make sense when read in order and child titles should be relevant to the parent title."),console.table(s),console.groupEnd();var l={};Array.from(document.querySelectorAll("a")).forEach((e,t)=>{var a=e.getAttribute("href"),o={Text:e.textContent,Title:e.getAttribute("title")};l[a]=o}),console.groupCollapsed("%c ? %cDo all of the links make sense out of context and do they describe the page/section that it links to?","background-color: orange; margin-right: 10px","background-color: transparent"),console.table(l),console.groupEnd();var c={},i={};Array.from(document.querySelectorAll("img[alt]")).forEach((e,t)=>{var a=e.getAttribute("src"),o=e.getAttribute("alt");if(""!=o){var n={Alt:o};c[a]=n}else a=e.getAttribute("src"),i[a]={}}),console.groupCollapsed("%c ? %cDo all of the images with an alt tag make sense out of context and describes the image appropriately?","background-color: orange; margin-right: 10px","background-color: transparent"),console.table(c),console.log("%cImages with an empty alt tag:","font-weight: bold;"),console.table(i),console.groupEnd(),console.groupCollapsed("%c ? %cCan you navigation the page links by tabbing through the page?","background-color: orange; margin-right: 10px","background-color: transparent"),console.log("Are all of the links, input fields and buttons accessible through using the keyboard only?"),console.groupEnd(),console.log("%cLighthouse","font-size: 16px;font-weight:bold;"),console.groupCollapsed("%c ? %cHave you ran a lighthouse report on this page","background-color: orange; margin-right: 10px","background-color: transparent"),console.log("If you are in a modern version of chrome you can a lighthouse report by opening the lighthouse window within the devtools. This should appear as a tab link above."),console.log("This report will give you more detail about the above the tests aswell as extra tests. "),console.groupEnd(),console.log("%cImage sizes","font-size: 16px;font-weight:bold;"),console.log("The below tests work from the current screen size, so if you have your screen at a mobile viewport the scaling and sizes of images will reflect that. It is worth running the image tests in both mobile and desktop views. Simply change the screen size and refresh the page."),Array.from(document.querySelectorAll("img")).forEach((e,t)=>{if(!e.matches("[src*='http']")&&!e.matches("[src$='.svg']")){var a=e.getAttribute("src"),o=new XMLHttpRequest;o.open("HEAD",a,!0),o.onreadystatechange=function(){if(4==o.readyState)if(200==o.status){var t=o.getResponseHeader("Content-Length");if(t>1024){var a=e.naturalWidth,n=e.naturalHeight,r=e.clientWidth,s=e.clientHeight,l="0.00"==(r/a).toFixed(2)?"Hidden":(r/a).toFixed(2),c=Math.floor(t/1024),i=(t/(a*n)).toFixed(2),u="green",d="green",g="green",h="",p="";i>.5?(u="red",d="red",h="The image has a VERY large 'Bytes per pixel' score, trying optimising the image using https://tinypng.com/."):i>.2&&(u="orange",d="orange",h="The image has a large 'Bytes per pixel' score, trying optimising the image using https://tinypng.com/."),l>1.2?(u="red",g="red",p="The image size is smaller than the size shown on screen this may cause the image to appear blurry and low quality."):l<.5?(u="red",g="red",p="The image size is VERY large compared to the size shown on screen, this means unnecessary kb's are being downloaded. Try resizing the image in photoshop or other image editing software."):l<.8&&(u="orange",g="orange",p="The image size is large compared to the size shown on screen, this means unnecessary kb's are being downloaded. Try resizing the image in photoshop or other image editing software."),console.log("%c %c "+e.src,"background: url("+e.src+"); border: 3px solid "+u+"; line-height: 30px; width: 30px; background-size: cover;","background-color: transparent"),""!=h&&console.log("%c %c"+h,"background-color: "+d+"; margin-right: 10px","background-color: transparent"),""!=p&&console.log("%c %c"+p,"background-color: "+g+"; margin-right: 10px","background-color: transparent"),console.table({Image:{Dimensions:a+"x"+n,"Scaled to":r+"x"+s,Scale:l,Filesize:c+"Kb","Bytes per pixel":i}}),console.groupEnd()}}else console.log("%c %c"+e.src+" not loaded","background-color: red; margin-right: 10px","background-color: transparent")},o.send(null)}});var u=[];if(typeof window.integrationTests<"u"&&window.integrationTests.forEach(function(e){0!=e.Total&&"warning"!=e.Type&&u.push(e.Test)}),0!=u.length){var d=document.querySelector("#vmtests-display");if(null!=d){d.innerHTML='<div class="container">\n <h2>Integration notes</h2>\n <ul id="integrationTests"></ul>\n </div>';var g=document.getElementById("integrationTests");null!=g&&u.forEach(function(e){g.innerHTML+="<li>"+e+"</li>"})}}return null},r=Object.freeze({__proto__:null,default:n});["localhost"].includes(window.location.hostname)&&Promise.resolve().then(function(){return r}).then(e=>{window.iamTest=()=>{n()}}).catch(e=>{console.log(e.message)}),document.addEventListener("DOMContentLoaded",()=>{return t=void 0,a=void 0,n=function*(){var t,a;window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Pageview",pageTitle:document.title}),document.addEventListener("click",e=>{var t=e.target.closest("[open] summary");if(t)window.dataLayer.push({event:"closeDetails",detailsTitle:t.textContent||""});else{var a=e.target.closest("summary"),o=e.target.closest("a"),n=e.target.closest("button");a&&window.dataLayer.push({event:"openDetails",detailsTitle:a.textContent||""}),o&&window.dataLayer.push({event:"linkClicked",linkText:o.hasAttribute("title")?o.getAttribute("title")||"":o.textContent||"",class:o.hasAttribute("class")&&o.getAttribute("class")||"",href:o.getAttribute("href")||""}),n&&window.dataLayer.push({event:"buttonClicked",buttonText:n.textContent||"",class:n.hasAttribute("class")&&n.getAttribute("class")||""})}}),document.addEventListener("change",t=>{t&&t.target instanceof HTMLElement&&t.target.closest("[data-change-events]")&&e(t.target,t.target.closest("[data-change-events]").getAttribute("data-change-events"))}),document.addEventListener("keyup",t=>{t&&t.target instanceof HTMLElement&&t.target.closest("[data-change-events]")&&e(t.target,t.target.closest("[data-change-events]").getAttribute("data-change-events"))}),document.addEventListener("click",t=>{t&&t.target instanceof HTMLElement&&t.target.closest("[data-click-events]")&&e(t.target,t.target.closest("[data-click-events]").getAttribute("data-click-events"))}),(a=document.body).classList.add("js-enabled"),(-1!==navigator.userAgent.indexOf("MSIE")||navigator.appVersion.indexOf("Trident/")>0)&&a.classList.add("ie"),t=function(e){var t=document.querySelector('label[for="'.concat(e.replace("#",""),'"]')),a=document.querySelector(e+" summary"),o=document.querySelector("dialog".concat(e)),n=document.querySelector("detail".concat(e));t instanceof HTMLElement?t.click():a instanceof HTMLElement?a.click():o instanceof HTMLElement?o.showModal():n instanceof HTMLElement&&n.addAttribute("open")},location.hash&&t(location.hash),window.addEventListener("hashchange",function(){t(location.hash)},!1),addEventListener("popstate",e=>{if(e&&e.state&&e.state.type&&"pagination"==e.state.type){var t=document.querySelector("#".concat(e.state.form)),a=document.querySelector("#".concat(e.state.form," [data-pagination]"));a?a.value=e.state.page:t.innerHTML+='<input name="page" type="hidden" data-pagination="true" value="'.concat(e.state.page,'" />'),t.dispatchEvent(new Event("submit"))}}),Array.from(document.querySelectorAll("form")).forEach(e=>{e?.closest("iam-form")||e.addEventListener("submit",t=>{var a;e.querySelector(":invalid")&&(e.classList.add("was-validated"),null===(a=e?.querySelector("input:invalid"))||void 0===a||a.scrollIntoView(),t.preventDefault())})}),document.addEventListener("click",e=>{var t;if(e&&e.target instanceof HTMLElement&&e.target.matches("form button:not([type=button])")){var a=e.target.closest("form");a?.closest("iam-form")||(Array.from(a.querySelectorAll("[data-password-type]")).forEach(e=>{e.setAttribute("type","password")}),(a.querySelector(":invalid")||a.querySelector('.pwd-checker[data-strength="1"]')||a.querySelector('.pwd-checker[data-strength="2"]'))&&(a.classList.add("was-validated"),null===(t=a?.querySelector("input:invalid"))||void 0===t||t.scrollIntoView(),e.preventDefault()),a.querySelector("iam-multiselect[data-is-required][data-error]")&&(a.classList.add("was-validated"),e.preventDefault()))}}),document.addEventListener("keydown",e=>{"Escape"===e.key&&document.querySelector(".dialog--transactional[open], .dialog--acknowledgement[open]")&&(e.preventDefault(),e.stopPropagation())}),Array.from(document.querySelectorAll("label progress")).forEach(e=>{e.closest("label").setAttribute("data-percent",e.getAttribute("value"))})},new((o=void 0)||(o=Promise))(function(e,r){function s(e){try{c(n.next(e))}catch(e){r(e)}}function l(e){try{c(n.throw(e))}catch(e){r(e)}}function c(t){t.done?e(t.value):function(e){return e instanceof o?e:new o(function(t){t(e)})}(t.value).then(s,l)}c((n=n.apply(t,a||[])).next())});var t,a,o,n})});