@iamproperty/components 7.8.1 → 7.8.2--beta2

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 (164) hide show
  1. package/assets/css/components/card.component.css +1 -1
  2. package/assets/css/components/card.component.css.map +1 -1
  3. package/assets/css/components/card.module.css +1 -1
  4. package/assets/css/components/card.module.css.map +1 -1
  5. package/assets/css/components/filter-card.component.css +1 -1
  6. package/assets/css/components/filter-card.component.css.map +1 -1
  7. package/assets/css/components/modal.component.css +1 -1
  8. package/assets/css/components/modal.component.css.map +1 -1
  9. package/assets/css/components/record-card.component.css +1 -1
  10. package/assets/css/components/record-card.component.css.map +1 -1
  11. package/assets/css/components/video-card.component.css +1 -1
  12. package/assets/css/components/video-card.component.css.map +1 -1
  13. package/assets/css/components/video-modal.component.css +1 -1
  14. package/assets/css/components/video-modal.component.css.map +1 -1
  15. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  16. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  17. package/assets/js/components/address-lookup/address-lookup.component.min.js +3 -3
  18. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  19. package/assets/js/components/advanced-select/advanced-select.component.min.js +3 -3
  20. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  21. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  22. package/assets/js/components/banner/banner.component.min.js +1 -1
  23. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  24. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  25. package/assets/js/components/bone/bone.component.min.js +1 -1
  26. package/assets/js/components/button/button.component.min.js +1 -1
  27. package/assets/js/components/calendar/calendar.component.min.js +1 -1
  28. package/assets/js/components/card/card.component.min.js +7 -7
  29. package/assets/js/components/card/card.component.min.js.map +1 -1
  30. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  31. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  32. package/assets/js/components/config/config.component.min.js +1 -1
  33. package/assets/js/components/content/content.component.min.js +1 -1
  34. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  35. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  36. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  37. package/assets/js/components/filter-card/filter-card.component.min.js +5 -5
  38. package/assets/js/components/filter-card/filter-card.component.min.js.map +1 -1
  39. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  40. package/assets/js/components/form/form.component.min.js +1 -1
  41. package/assets/js/components/header/header.component.min.js +1 -1
  42. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  43. package/assets/js/components/input/input.component.min.js +1 -1
  44. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  45. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  46. package/assets/js/components/menu/menu.component.min.js +1 -1
  47. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  48. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  49. package/assets/js/components/modal/modal.component.min.js +2 -2
  50. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  51. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
  52. package/assets/js/components/multiselect/multiselect.component.js +17 -5
  53. package/assets/js/components/multiselect/multiselect.component.min.js +3 -3
  54. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  55. package/assets/js/components/nav/nav.component.min.js +1 -1
  56. package/assets/js/components/notification/notification.component.min.js +1 -1
  57. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  58. package/assets/js/components/password/password.component.min.js +1 -1
  59. package/assets/js/components/popover/popover.component.min.js +1 -1
  60. package/assets/js/components/rank/rank.component.min.js +1 -1
  61. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  62. package/assets/js/components/rating/rating.component.min.js +1 -1
  63. package/assets/js/components/record-card/record-card.component.min.js +5 -5
  64. package/assets/js/components/record-card/record-card.component.min.js.map +1 -1
  65. package/assets/js/components/search/search.component.js +2 -2
  66. package/assets/js/components/search/search.component.min.js +5 -5
  67. package/assets/js/components/search/search.component.min.js.map +1 -1
  68. package/assets/js/components/skeleton/skeleton.component.min.js +1 -1
  69. package/assets/js/components/slider/slider.component.min.js +1 -1
  70. package/assets/js/components/split-button/split-button.component.min.js +1 -1
  71. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +4 -4
  72. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  73. package/assets/js/components/std-nav/std-nav.component.min.js +1 -1
  74. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +1 -1
  75. package/assets/js/components/table/table.component.min.js +1 -1
  76. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  77. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  78. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  79. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  80. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  81. package/assets/js/components/tag/tag.component.min.js +1 -1
  82. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  83. package/assets/js/components/video/video.component.min.js +1 -1
  84. package/assets/js/components/video-card/video-card.component.min.js +6 -6
  85. package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
  86. package/assets/js/components/video-modal/video-modal.component.min.js +2 -2
  87. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  88. package/assets/js/modules/advanced-select.js +6 -3
  89. package/assets/js/modules/advanced-select.test.js +28 -0
  90. package/assets/js/modules/applied-filters.test.js +21 -0
  91. package/assets/js/modules/card.module.js +3 -2
  92. package/assets/js/modules/card.module.test.js +20 -0
  93. package/assets/js/modules/carousel.test.js +18 -0
  94. package/assets/js/modules/chart.module.test.js +22 -0
  95. package/assets/js/modules/chart.test.js +15 -0
  96. package/assets/js/modules/content.test.js +20 -0
  97. package/assets/js/modules/data-layer.test.js +12 -0
  98. package/assets/js/modules/dialogs.test.js +13 -0
  99. package/assets/js/modules/drawer.test.js +16 -0
  100. package/assets/js/modules/dropdown.test.js +31 -0
  101. package/assets/js/modules/dynamicEvents.test.js +19 -0
  102. package/assets/js/modules/fileupload.test.js +17 -0
  103. package/assets/js/modules/filterlist.test.js +18 -0
  104. package/assets/js/modules/{helper.test.js → helpers.test.js} +42 -2
  105. package/assets/js/modules/integration-tests.test.js +12 -0
  106. package/assets/js/modules/milestone-group.test.js +18 -0
  107. package/assets/js/modules/milestone.test.js +31 -0
  108. package/assets/js/modules/modal.test.js +18 -0
  109. package/assets/js/modules/nav.test.js +37 -0
  110. package/assets/js/modules/notification.test.js +11 -0
  111. package/assets/js/modules/orderablelist.test.js +15 -0
  112. package/assets/js/modules/pagination.test.js +21 -0
  113. package/assets/js/modules/password.test.js +33 -0
  114. package/assets/js/modules/table.test.js +42 -0
  115. package/assets/js/modules/tabs.test.js +23 -0
  116. package/assets/js/modules/test-dom.js +725 -0
  117. package/assets/js/modules/test-globals.js +7 -0
  118. package/assets/js/modules/test-utils.js +26 -0
  119. package/assets/js/modules/test.js +20 -1
  120. package/assets/js/modules/testimonial.test.js +14 -0
  121. package/assets/js/modules/videos.test.js +37 -0
  122. package/assets/js/scripts.bundle.js +1 -1
  123. package/assets/js/scripts.bundle.min.js +1 -1
  124. package/assets/sass/components/card.module.scss +2 -0
  125. package/assets/sass/components/modal.component.scss +1 -2
  126. package/assets/ts/components/multiselect/multiselect.component.ts +25 -5
  127. package/assets/ts/components/search/search.component.ts +2 -2
  128. package/assets/ts/modules/advanced-select.test.ts +33 -0
  129. package/assets/ts/modules/advanced-select.ts +6 -2
  130. package/assets/ts/modules/applied-filters.test.ts +25 -0
  131. package/assets/ts/modules/card.module.test.ts +24 -0
  132. package/assets/ts/modules/card.module.ts +2 -1
  133. package/assets/ts/modules/carousel.test.ts +27 -0
  134. package/assets/ts/modules/chart.module.test.ts +26 -0
  135. package/assets/ts/modules/chart.test.ts +19 -0
  136. package/assets/ts/modules/content.test.ts +24 -0
  137. package/assets/ts/modules/data-layer.test.ts +15 -0
  138. package/assets/ts/modules/dialogs.test.ts +17 -0
  139. package/assets/ts/modules/drawer.test.ts +20 -0
  140. package/assets/ts/modules/dropdown.test.ts +38 -0
  141. package/assets/ts/modules/dynamicEvents.test.ts +23 -0
  142. package/assets/ts/modules/fileupload.test.ts +21 -0
  143. package/assets/ts/modules/filterlist.test.ts +22 -0
  144. package/assets/ts/modules/{helper.test.ts → helpers.test.ts} +63 -2
  145. package/assets/ts/modules/integration-tests.test.ts +15 -0
  146. package/assets/ts/modules/milestone-group.test.ts +22 -0
  147. package/assets/ts/modules/milestone.test.ts +35 -0
  148. package/assets/ts/modules/modal.test.ts +22 -0
  149. package/assets/ts/modules/nav.test.ts +41 -0
  150. package/assets/ts/modules/notification.test.ts +15 -0
  151. package/assets/ts/modules/orderablelist.test.ts +19 -0
  152. package/assets/ts/modules/pagination.test.ts +25 -0
  153. package/assets/ts/modules/password.test.ts +40 -0
  154. package/assets/ts/modules/table.test.ts +57 -0
  155. package/assets/ts/modules/tabs.test.ts +27 -0
  156. package/assets/ts/modules/test-dom.ts +798 -0
  157. package/assets/ts/modules/test-globals.ts +7 -0
  158. package/assets/ts/modules/test-utils.ts +29 -0
  159. package/assets/ts/modules/test.ts +28 -1
  160. package/assets/ts/modules/testimonial.test.ts +17 -0
  161. package/assets/ts/modules/videos.test.ts +33 -0
  162. package/dist/components.es.js +24 -24
  163. package/dist/components.umd.js +111 -111
  164. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"advanced-select.component.min.js","sources":["../../modules/advanced-select.js","../../modules/helpers.js","advanced-select.component.js"],"sourcesContent":["function advancedSelect(advancedSelect, displayInputField, datalist, isSearch = false) {\n var _a, _b, _c;\n let currentFocus = -1;\n const datalistWrapper = datalist.closest('.datalist__wrapper') ? datalist.closest('.datalist__wrapper') : datalist;\n datalistWrapper.setAttribute('slot', 'datalist');\n if (advancedSelect.querySelector('.suffix')) {\n (_a = advancedSelect.querySelector('.suffix')) === null || _a === void 0 ? void 0 : _a.setAttribute('slot', 'suffix');\n (_b = advancedSelect.shadowRoot.querySelector('.suffix')) === null || _b === void 0 ? void 0 : _b.innerHTML = '<slot name=\"suffix\"></slot>';\n (_c = advancedSelect.shadowRoot.querySelector('.suffix')) === null || _c === void 0 ? void 0 : _c.classList = \"\";\n }\n // Hide the default datalist\n displayInputField.setAttribute('data-list', displayInputField.getAttribute('list'));\n displayInputField.setAttribute('list', '');\n if (displayInputField.hasAttribute('placeholder'))\n displayInputField.setAttribute('data-placeholder', displayInputField.getAttribute('placeholder'));\n if (displayInputField.hasAttribute('placeholder'))\n displayInputField.setAttribute('data-original-placeholder', displayInputField.getAttribute('placeholder'));\n const checkIfEmpty = () => {\n if (displayInputField.value == \"\") {\n advancedSelect.classList.add('has-empty-input');\n displayInputField.classList.add('empty');\n }\n else {\n advancedSelect.classList.remove('has-empty-input');\n displayInputField.classList.remove('empty');\n }\n };\n checkIfEmpty();\n displayInputField.addEventListener('focus', function () {\n if (displayInputField.value != \"\") {\n displayInputField.setAttribute('placeholder', displayInputField.value);\n displayInputField.setAttribute('data-value', displayInputField.value);\n }\n displayInputField.value = '';\n });\n displayInputField.addEventListener('blur', function () {\n if (displayInputField.hasAttribute('data-value')) {\n displayInputField.value = displayInputField.getAttribute('data-value');\n }\n if (displayInputField.hasAttribute('data-placeholder'))\n displayInputField.setAttribute('placeholder', displayInputField.getAttribute('data-placeholder'));\n });\n for (const option of datalist.options) {\n if (option.innerHTML == '')\n option.innerHTML = option.value;\n }\n datalist.addEventListener('click', function (event) {\n var _a;\n if (event && event.target instanceof HTMLElement && event.target.closest('option')) {\n const option = event.target.closest('option');\n const optionText = ((_a = option.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || option.value;\n // Store actual value on the original input\n const originalInput = advancedSelect.querySelector('input[type=\"hidden\"]');\n if (originalInput) {\n originalInput.value = option.value;\n originalInput.setAttribute('value', option.value);\n }\n // Show label text in the visible field\n displayInputField.value = optionText;\n displayInputField.setAttribute('data-value', optionText);\n displayInputField.setAttribute('placeholder', optionText);\n if (typeof window.triggerDynamicEvent == 'function')\n window.triggerDynamicEvent(displayInputField);\n for (const optionInner of datalist.options) {\n optionInner.classList.remove('active');\n }\n option.classList.add('active');\n checkIfEmpty();\n setTimeout(() => {\n advancedSelect.dispatchEvent(new CustomEvent('update-value', {\n detail: {\n value: option.value,\n text: optionText,\n },\n }));\n }, 0);\n }\n });\n displayInputField.addEventListener('input', function () {\n displayInputField.removeAttribute('data-value');\n currentFocus = -1;\n checkIfEmpty();\n if (advancedSelect.tagName != \"IAM-ADDRESS-LOOKUP\") {\n const text = displayInputField.value.toUpperCase();\n for (const option of datalist.options) {\n const optionText = (option.textContent || option.value).toUpperCase();\n if (optionText.indexOf(text) > -1) {\n option.style.display = 'block';\n option.classList.remove('hide');\n }\n else {\n option.style.display = 'none';\n option.classList.add('hide');\n }\n }\n }\n });\n advancedSelect.addEventListener('keydown', function (e) {\n if (e.keyCode == 40) {\n currentFocus++;\n addActive(datalist.options);\n }\n else if (e.keyCode == 38) {\n currentFocus--;\n addActive(datalist.options);\n }\n else if (e.keyCode == 13 && !e.target.closest('form')) {\n e.preventDefault();\n if (currentFocus > -1) {\n /*and simulate a click on the \"active\" item:*/\n if (datalist.options)\n datalist.options[currentFocus].click();\n }\n }\n });\n function addActive(x) {\n if (!x)\n return false;\n removeActive(x);\n if (currentFocus >= x.length)\n currentFocus = 0;\n if (currentFocus < 0)\n currentFocus = x.length - 1;\n x[currentFocus].classList.add('active');\n }\n function removeActive(x) {\n if (!x)\n return false;\n for (let i = 0; i < x.length; i++) {\n x[i].classList.remove('active');\n }\n }\n // Add the empty button\n if (displayInputField.closest('.input__wrapper')) {\n displayInputField.closest('.input__wrapper').insertAdjacentHTML('beforeend', '<button class=\"clear-search btn btn-action\" type=\"button\"><i class=\"fa-light fa-times me-0\"></i></button>');\n }\n else if (advancedSelect.shadowRoot.querySelector('.input__wrapper')) {\n console.log(advancedSelect.shadowRoot.querySelector('.input__wrapper'));\n advancedSelect.shadowRoot.querySelector('.input__wrapper').insertAdjacentHTML('beforeend', '<button class=\"clear-search btn btn-action\" type=\"button\"><i class=\"fa-light fa-times me-0\"></i></button>');\n }\n const emptyField = () => {\n const originalInput = advancedSelect.querySelector('input[type=\"hidden\"]');\n if (originalInput) {\n originalInput.value = '';\n originalInput.setAttribute('value', '');\n }\n displayInputField.removeAttribute('placeholder');\n if (displayInputField.hasAttribute('data-original-placeholder'))\n displayInputField.setAttribute('placeholder', displayInputField.getAttribute('data-original-placeholder'));\n displayInputField.removeAttribute('data-value');\n displayInputField.value = '';\n displayInputField.classList.add('empty');\n for (const optionInner of datalist.options) {\n optionInner.classList.remove('active');\n optionInner.classList.remove('hide');\n optionInner.removeAttribute('style');\n }\n const updateEvent = new CustomEvent('close-button-pressed');\n advancedSelect.dispatchEvent(updateEvent);\n // Notify consumers the value was cleared\n advancedSelect.dispatchEvent(new CustomEvent('update-value', {\n detail: {\n value: '',\n text: '',\n },\n }));\n checkIfEmpty();\n };\n const closeBtn = advancedSelect.querySelector('.clear-search') ? advancedSelect.querySelector('.clear-search') : advancedSelect.shadowRoot.querySelector('.clear-search');\n closeBtn.addEventListener('click', function (e) {\n emptyField();\n });\n advancedSelect.addEventListener('empty', function (e) {\n emptyField();\n });\n}\nexport default advancedSelect;\n","/**\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 advancedSelect from '../../modules/advanced-select';\nimport { safeID } from '../../modules/helpers';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'Advanced select',\n});\nclass iamAdvancedSelect 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/advanced-select.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\" />\n <span class=\"wrapper\"><span class=\"input__wrapper\"><slot></slot></span><span class=\"suffix fa-regular fa-chevron-down\"></span></span>\n <slot name=\"datalist\"></slot>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n var _a, _b;\n // Make the datalist a dropdown\n this.classList.add('dropdown__wrapper');\n // Clone original input field, re-name and use for display purposes\n const inputField = this.querySelector('input');\n if (!inputField)\n return;\n const displayInputField = inputField.cloneNode();\n displayInputField.value = '';\n displayInputField.removeAttribute('value');\n displayInputField.setAttribute('name', `${inputField.getAttribute('name')}Alt`);\n inputField.removeAttribute('data-change-events');\n displayInputField.removeAttribute('id');\n if (this.querySelector('label'))\n this.classList.add('has-label');\n let datalist = this.querySelector('datalist');\n inputField.after(displayInputField);\n // Hide original input field\n inputField.setAttribute('type', 'hidden');\n // if data list does not exist then create one and append\n if (!datalist) {\n datalist = document.createElement('datalist');\n const listID = safeID('list');\n datalist.setAttribute('id', listID);\n searchWrapper.appendChild(datalist);\n displayInputField.setAttribute('list', listID);\n }\n else {\n displayInputField.setAttribute('list', datalist.id);\n }\n if (datalist && datalist.querySelector(`[value=\"${inputField.value}\"]`)) {\n (_a = datalist.querySelector(`[value=\"${inputField.value}\"]`)) === null || _a === void 0 ? void 0 : _a.classList.add('active');\n }\n advancedSelect(this, displayInputField, datalist);\n // Apply initial value passed to the component host or original input\n const initialValue = this.getAttribute('value') || inputField.value || '';\n if (!initialValue)\n return;\n inputField.value = initialValue;\n inputField.setAttribute('value', initialValue);\n let displayValue = initialValue;\n if (datalist) {\n const selectedOption = Array.from(datalist.querySelectorAll('option')).find((option) => {\n return option.getAttribute('value') === initialValue;\n });\n if (selectedOption) {\n displayValue = ((_b = selectedOption.textContent) === null || _b === void 0 ? void 0 : _b.trim()) || selectedOption.value;\n }\n Array.from(datalist.querySelectorAll('option')).forEach((option) => {\n const isMatch = option.getAttribute('value') === initialValue;\n option.classList.toggle('active', isMatch);\n });\n }\n displayInputField.value = displayValue;\n displayInputField.setAttribute('placeholder', displayValue);\n displayInputField.setAttribute('data-value', displayValue);\n displayInputField.removeAttribute('value');\n }\n}\nexport default iamAdvancedSelect;\n"],"names":["advancedSelect","displayInputField","datalist","isSearch","_a","_b","_c","currentFocus","checkIfEmpty","option","event","optionText","originalInput","optionInner","text","e","addActive","x","removeActive","i","emptyField","updateEvent","snake","str","safeID","iamAdvancedSelect","template","inputField","listID","initialValue","displayValue","selectedOption","isMatch"],"mappings":";;;IAAA,SAASA,EAAeA,EAAgBC,EAAmBC,EAAUC,EAAW,GAAO,CACnF,IAAIC,EAAIC,EAAIC,EACZ,IAAIC,EAAe,IACKL,EAAS,QAAQ,oBAAoB,EAAIA,EAAS,QAAQ,oBAAoB,EAAIA,GAC1F,aAAa,OAAQ,UAAU,EAC3CF,EAAe,cAAc,SAAS,KACrCI,EAAKJ,EAAe,cAAc,SAAS,KAAO,MAAQI,IAAO,QAAkBA,EAAG,aAAa,OAAQ,QAAQ,GACnHC,EAAKL,EAAe,WAAW,cAAc,SAAS,KAAO,MAAQK,IAAO,SAAkBA,EAAG,UAAY,gCAC7GC,EAAKN,EAAe,WAAW,cAAc,SAAS,KAAO,MAAQM,IAAO,SAAkBA,EAAG,UAAY,KAGlHL,EAAkB,aAAa,YAAaA,EAAkB,aAAa,MAAM,CAAC,EAClFA,EAAkB,aAAa,OAAQ,EAAE,EACrCA,EAAkB,aAAa,aAAa,GAC5CA,EAAkB,aAAa,mBAAoBA,EAAkB,aAAa,aAAa,CAAC,EAChGA,EAAkB,aAAa,aAAa,GAC5CA,EAAkB,aAAa,4BAA6BA,EAAkB,aAAa,aAAa,CAAC,EAC7G,MAAMO,EAAe,IAAM,CACnBP,EAAkB,OAAS,IAC3BD,EAAe,UAAU,IAAI,iBAAiB,EAC9CC,EAAkB,UAAU,IAAI,OAAO,IAGvCD,EAAe,UAAU,OAAO,iBAAiB,EACjDC,EAAkB,UAAU,OAAO,OAAO,EAElD,EACAO,EAAY,EACZP,EAAkB,iBAAiB,QAAS,UAAY,CAChDA,EAAkB,OAAS,KAC3BA,EAAkB,aAAa,cAAeA,EAAkB,KAAK,EACrEA,EAAkB,aAAa,aAAcA,EAAkB,KAAK,GAExEA,EAAkB,MAAQ,EAC9B,CAAC,EACDA,EAAkB,iBAAiB,OAAQ,UAAY,CAC/CA,EAAkB,aAAa,YAAY,IAC3CA,EAAkB,MAAQA,EAAkB,aAAa,YAAY,GAErEA,EAAkB,aAAa,kBAAkB,GACjDA,EAAkB,aAAa,cAAeA,EAAkB,aAAa,kBAAkB,CAAC,CACxG,CAAC,EACD,UAAWQ,KAAUP,EAAS,QACtBO,EAAO,WAAa,KACpBA,EAAO,UAAYA,EAAO,OAElCP,EAAS,iBAAiB,QAAS,SAAUQ,EAAO,CAChD,IAAIN,EACJ,GAAIM,GAASA,EAAM,kBAAkB,aAAeA,EAAM,OAAO,QAAQ,QAAQ,EAAG,CAChF,MAAMD,EAASC,EAAM,OAAO,QAAQ,QAAQ,EACtCC,IAAeP,EAAKK,EAAO,eAAiB,MAAQL,IAAO,OAAS,OAASA,EAAG,KAAI,IAAOK,EAAO,MAElGG,EAAgBZ,EAAe,cAAc,sBAAsB,EACrEY,IACAA,EAAc,MAAQH,EAAO,MAC7BG,EAAc,aAAa,QAASH,EAAO,KAAK,GAGpDR,EAAkB,MAAQU,EAC1BV,EAAkB,aAAa,aAAcU,CAAU,EACvDV,EAAkB,aAAa,cAAeU,CAAU,EACpD,OAAO,OAAO,qBAAuB,YACrC,OAAO,oBAAoBV,CAAiB,EAChD,UAAWY,KAAeX,EAAS,QAC/BW,EAAY,UAAU,OAAO,QAAQ,EAEzCJ,EAAO,UAAU,IAAI,QAAQ,EAC7BD,EAAY,EACZ,WAAW,IAAM,CACbR,EAAe,cAAc,IAAI,YAAY,eAAgB,CACzD,OAAQ,CACJ,MAAOS,EAAO,MACd,KAAME,CAC9B,CACA,CAAiB,CAAC,CACN,EAAG,CAAC,CACR,CACJ,CAAC,EACDV,EAAkB,iBAAiB,QAAS,UAAY,CAIpD,GAHAA,EAAkB,gBAAgB,YAAY,EAC9CM,EAAe,GACfC,EAAY,EACRR,EAAe,SAAW,qBAAsB,CAChD,MAAMc,EAAOb,EAAkB,MAAM,YAAW,EAChD,UAAWQ,KAAUP,EAAS,SACNO,EAAO,aAAeA,EAAO,OAAO,YAAW,EACpD,QAAQK,CAAI,EAAI,IAC3BL,EAAO,MAAM,QAAU,QACvBA,EAAO,UAAU,OAAO,MAAM,IAG9BA,EAAO,MAAM,QAAU,OACvBA,EAAO,UAAU,IAAI,MAAM,EAGvC,CACJ,CAAC,EACDT,EAAe,iBAAiB,UAAW,SAAUe,EAAG,CAChDA,EAAE,SAAW,IACbR,IACAS,EAAUd,EAAS,OAAO,GAErBa,EAAE,SAAW,IAClBR,IACAS,EAAUd,EAAS,OAAO,GAErBa,EAAE,SAAW,IAAM,CAACA,EAAE,OAAO,QAAQ,MAAM,IAChDA,EAAE,eAAc,EACZR,EAAe,IAEXL,EAAS,SACTA,EAAS,QAAQK,CAAY,EAAE,MAAK,EAGpD,CAAC,EACD,SAASS,EAAUC,EAAG,CAClB,GAAI,CAACA,EACD,MAAO,GACXC,EAAaD,CAAC,EACVV,GAAgBU,EAAE,SAClBV,EAAe,GACfA,EAAe,IACfA,EAAeU,EAAE,OAAS,GAC9BA,EAAEV,CAAY,EAAE,UAAU,IAAI,QAAQ,CAC1C,CACA,SAASW,EAAaD,EAAG,CACrB,GAAI,CAACA,EACD,MAAO,GACX,QAASE,EAAI,EAAGA,EAAIF,EAAE,OAAQE,IAC1BF,EAAEE,CAAC,EAAE,UAAU,OAAO,QAAQ,CAEtC,CAEIlB,EAAkB,QAAQ,iBAAiB,EAC3CA,EAAkB,QAAQ,iBAAiB,EAAE,mBAAmB,YAAa,2GAA2G,EAEnLD,EAAe,WAAW,cAAc,iBAAiB,IAC9D,QAAQ,IAAIA,EAAe,WAAW,cAAc,iBAAiB,CAAC,EACtEA,EAAe,WAAW,cAAc,iBAAiB,EAAE,mBAAmB,YAAa,2GAA2G,GAE1M,MAAMoB,EAAa,IAAM,CACrB,MAAMR,EAAgBZ,EAAe,cAAc,sBAAsB,EACrEY,IACAA,EAAc,MAAQ,GACtBA,EAAc,aAAa,QAAS,EAAE,GAE1CX,EAAkB,gBAAgB,aAAa,EAC3CA,EAAkB,aAAa,2BAA2B,GAC1DA,EAAkB,aAAa,cAAeA,EAAkB,aAAa,2BAA2B,CAAC,EAC7GA,EAAkB,gBAAgB,YAAY,EAC9CA,EAAkB,MAAQ,GAC1BA,EAAkB,UAAU,IAAI,OAAO,EACvC,UAAWY,KAAeX,EAAS,QAC/BW,EAAY,UAAU,OAAO,QAAQ,EACrCA,EAAY,UAAU,OAAO,MAAM,EACnCA,EAAY,gBAAgB,OAAO,EAEvC,MAAMQ,EAAc,IAAI,YAAY,sBAAsB,EAC1DrB,EAAe,cAAcqB,CAAW,EAExCrB,EAAe,cAAc,IAAI,YAAY,eAAgB,CACzD,OAAQ,CACJ,MAAO,GACP,KAAM,EACtB,CACA,CAAS,CAAC,EACFQ,EAAY,CAChB,GACiBR,EAAe,cAAc,eAAe,EAAIA,EAAe,cAAc,eAAe,EAAIA,EAAe,WAAW,cAAc,eAAe,GAC/J,iBAAiB,QAAS,SAAUe,EAAG,CAC5CK,EAAU,CACd,CAAC,EACDpB,EAAe,iBAAiB,QAAS,SAAUe,EAAG,CAClDK,EAAU,CACd,CAAC,CACL,CCjEO,MAAME,EAASC,GAAQA,EAAI,QAAQ,KAAM,GAAG,EACtCC,EAAS,SAAUD,EAAK,CACjC,OAAAA,EAAMA,EAAI,YAAW,EACrBA,EAAMD,EAAMC,CAAG,EACfA,EAAMA,EAAI,QAAQ,MAAO,EAAE,EACpBA,CACX,ECjHA,OAAO,UAAY,OAAO,WAAa,CAAA,EACvC,OAAO,UAAU,KAAK,CAClB,MAAO,0BACP,QAAS,iBACb,CAAC,EACD,MAAME,UAA0B,WAAY,CACxC,aAAc,CACV,MAAK,EACL,KAAK,aAAa,CAAE,KAAM,MAAM,CAAE,EACZ,SAAS,KAAK,aAAa,sBAAsB,GACjE,SAAS,KAAK,aAAa,sBAAsB,EAGvD,MAAMC,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,UAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQrB,KAAK,WAAW,YAAYA,EAAS,QAAQ,UAAU,EAAI,CAAC,CAChE,CACA,mBAAoB,CAChB,IAAItB,EAAIC,EAER,KAAK,UAAU,IAAI,mBAAmB,EAEtC,MAAMsB,EAAa,KAAK,cAAc,OAAO,EAC7C,GAAI,CAACA,EACD,OACJ,MAAM1B,EAAoB0B,EAAW,UAAS,EAC9C1B,EAAkB,MAAQ,GAC1BA,EAAkB,gBAAgB,OAAO,EACzCA,EAAkB,aAAa,OAAQ,GAAG0B,EAAW,aAAa,MAAM,CAAC,KAAK,EAC9EA,EAAW,gBAAgB,oBAAoB,EAC/C1B,EAAkB,gBAAgB,IAAI,EAClC,KAAK,cAAc,OAAO,GAC1B,KAAK,UAAU,IAAI,WAAW,EAClC,IAAIC,EAAW,KAAK,cAAc,UAAU,EAK5C,GAJAyB,EAAW,MAAM1B,CAAiB,EAElC0B,EAAW,aAAa,OAAQ,QAAQ,EAEnCzB,EAQDD,EAAkB,aAAa,OAAQC,EAAS,EAAE,MARvC,CACXA,EAAW,SAAS,cAAc,UAAU,EAC5C,MAAM0B,EAASJ,EAAO,MAAM,EAC5BtB,EAAS,aAAa,KAAM0B,CAAM,EAClC,cAAc,YAAY1B,CAAQ,EAClCD,EAAkB,aAAa,OAAQ2B,CAAM,CACjD,CAII1B,GAAYA,EAAS,cAAc,WAAWyB,EAAW,KAAK,IAAI,KACjEvB,EAAKF,EAAS,cAAc,WAAWyB,EAAW,KAAK,IAAI,KAAO,MAAQvB,IAAO,QAAkBA,EAAG,UAAU,IAAI,QAAQ,GAEjIJ,EAAe,KAAMC,EAAmBC,CAAQ,EAEhD,MAAM2B,EAAe,KAAK,aAAa,OAAO,GAAKF,EAAW,OAAS,GACvE,GAAI,CAACE,EACD,OACJF,EAAW,MAAQE,EACnBF,EAAW,aAAa,QAASE,CAAY,EAC7C,IAAIC,EAAeD,EACnB,GAAI3B,EAAU,CACV,MAAM6B,EAAiB,MAAM,KAAK7B,EAAS,iBAAiB,QAAQ,CAAC,EAAE,KAAMO,GAClEA,EAAO,aAAa,OAAO,IAAMoB,CAC3C,EACGE,IACAD,IAAiBzB,EAAK0B,EAAe,eAAiB,MAAQ1B,IAAO,OAAS,OAASA,EAAG,KAAI,IAAO0B,EAAe,OAExH,MAAM,KAAK7B,EAAS,iBAAiB,QAAQ,CAAC,EAAE,QAASO,GAAW,CAChE,MAAMuB,EAAUvB,EAAO,aAAa,OAAO,IAAMoB,EACjDpB,EAAO,UAAU,OAAO,SAAUuB,CAAO,CAC7C,CAAC,CACL,CACA/B,EAAkB,MAAQ6B,EAC1B7B,EAAkB,aAAa,cAAe6B,CAAY,EAC1D7B,EAAkB,aAAa,aAAc6B,CAAY,EACzD7B,EAAkB,gBAAgB,OAAO,CAC7C,CACJ"}
1
+ {"version":3,"file":"advanced-select.component.min.js","sources":["../../modules/advanced-select.js","../../modules/helpers.js","advanced-select.component.js"],"sourcesContent":["function advancedSelect(advancedSelect, displayInputField, datalist, isSearch = false) {\n var _a;\n let currentFocus = -1;\n const datalistWrapper = datalist.closest('.datalist__wrapper') ? datalist.closest('.datalist__wrapper') : datalist;\n datalistWrapper.setAttribute('slot', 'datalist');\n if (advancedSelect.querySelector('.suffix')) {\n (_a = advancedSelect.querySelector('.suffix')) === null || _a === void 0 ? void 0 : _a.setAttribute('slot', 'suffix');\n const shadowSuffix = advancedSelect.shadowRoot.querySelector('.suffix');\n if (shadowSuffix) {\n shadowSuffix.innerHTML = '<slot name=\"suffix\"></slot>';\n shadowSuffix.className = '';\n }\n }\n // Hide the default datalist\n displayInputField.setAttribute('data-list', displayInputField.getAttribute('list'));\n displayInputField.setAttribute('list', '');\n if (displayInputField.hasAttribute('placeholder'))\n displayInputField.setAttribute('data-placeholder', displayInputField.getAttribute('placeholder'));\n if (displayInputField.hasAttribute('placeholder'))\n displayInputField.setAttribute('data-original-placeholder', displayInputField.getAttribute('placeholder'));\n const checkIfEmpty = () => {\n if (displayInputField.value == \"\") {\n advancedSelect.classList.add('has-empty-input');\n displayInputField.classList.add('empty');\n }\n else {\n advancedSelect.classList.remove('has-empty-input');\n displayInputField.classList.remove('empty');\n }\n };\n checkIfEmpty();\n displayInputField.addEventListener('focus', function () {\n if (displayInputField.value != \"\") {\n displayInputField.setAttribute('placeholder', displayInputField.value);\n displayInputField.setAttribute('data-value', displayInputField.value);\n }\n displayInputField.value = '';\n });\n displayInputField.addEventListener('blur', function () {\n if (displayInputField.hasAttribute('data-value')) {\n displayInputField.value = displayInputField.getAttribute('data-value');\n }\n if (displayInputField.hasAttribute('data-placeholder'))\n displayInputField.setAttribute('placeholder', displayInputField.getAttribute('data-placeholder'));\n });\n for (const option of datalist.options) {\n if (option.innerHTML == '')\n option.innerHTML = option.value;\n }\n datalist.addEventListener('click', function (event) {\n var _a;\n if (event && event.target instanceof HTMLElement && event.target.closest('option')) {\n const option = event.target.closest('option');\n const optionText = ((_a = option.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || option.value;\n // Store actual value on the original input\n const originalInput = advancedSelect.querySelector('input[type=\"hidden\"]');\n if (originalInput) {\n originalInput.value = option.value;\n originalInput.setAttribute('value', option.value);\n }\n // Show label text in the visible field\n displayInputField.value = optionText;\n displayInputField.setAttribute('data-value', optionText);\n displayInputField.setAttribute('placeholder', optionText);\n if (typeof window.triggerDynamicEvent == 'function')\n window.triggerDynamicEvent(displayInputField);\n for (const optionInner of datalist.options) {\n optionInner.classList.remove('active');\n }\n option.classList.add('active');\n checkIfEmpty();\n setTimeout(() => {\n advancedSelect.dispatchEvent(new CustomEvent('update-value', {\n detail: {\n value: option.value,\n text: optionText,\n },\n }));\n }, 0);\n }\n });\n displayInputField.addEventListener('input', function () {\n displayInputField.removeAttribute('data-value');\n currentFocus = -1;\n checkIfEmpty();\n if (advancedSelect.tagName != \"IAM-ADDRESS-LOOKUP\") {\n const text = displayInputField.value.toUpperCase();\n for (const option of datalist.options) {\n const optionText = (option.textContent || option.value).toUpperCase();\n if (optionText.indexOf(text) > -1) {\n option.style.display = 'block';\n option.classList.remove('hide');\n }\n else {\n option.style.display = 'none';\n option.classList.add('hide');\n }\n }\n }\n });\n advancedSelect.addEventListener('keydown', function (e) {\n if (e.keyCode == 40) {\n currentFocus++;\n addActive(datalist.options);\n }\n else if (e.keyCode == 38) {\n currentFocus--;\n addActive(datalist.options);\n }\n else if (e.keyCode == 13 && !e.target.closest('form')) {\n e.preventDefault();\n if (currentFocus > -1) {\n /*and simulate a click on the \"active\" item:*/\n if (datalist.options)\n datalist.options[currentFocus].click();\n }\n }\n });\n function addActive(x) {\n if (!x)\n return false;\n removeActive(x);\n if (currentFocus >= x.length)\n currentFocus = 0;\n if (currentFocus < 0)\n currentFocus = x.length - 1;\n x[currentFocus].classList.add('active');\n }\n function removeActive(x) {\n if (!x)\n return false;\n for (let i = 0; i < x.length; i++) {\n x[i].classList.remove('active');\n }\n }\n // Add the empty button\n if (displayInputField.closest('.input__wrapper')) {\n displayInputField.closest('.input__wrapper').insertAdjacentHTML('beforeend', '<button class=\"clear-search btn btn-action\" type=\"button\"><i class=\"fa-light fa-times me-0\"></i></button>');\n }\n else if (advancedSelect.shadowRoot.querySelector('.input__wrapper')) {\n console.log(advancedSelect.shadowRoot.querySelector('.input__wrapper'));\n advancedSelect.shadowRoot.querySelector('.input__wrapper').insertAdjacentHTML('beforeend', '<button class=\"clear-search btn btn-action\" type=\"button\"><i class=\"fa-light fa-times me-0\"></i></button>');\n }\n const emptyField = () => {\n const originalInput = advancedSelect.querySelector('input[type=\"hidden\"]');\n if (originalInput) {\n originalInput.value = '';\n originalInput.setAttribute('value', '');\n }\n displayInputField.removeAttribute('placeholder');\n if (displayInputField.hasAttribute('data-original-placeholder'))\n displayInputField.setAttribute('placeholder', displayInputField.getAttribute('data-original-placeholder'));\n displayInputField.removeAttribute('data-value');\n displayInputField.value = '';\n displayInputField.classList.add('empty');\n for (const optionInner of datalist.options) {\n optionInner.classList.remove('active');\n optionInner.classList.remove('hide');\n optionInner.removeAttribute('style');\n }\n const updateEvent = new CustomEvent('close-button-pressed');\n advancedSelect.dispatchEvent(updateEvent);\n // Notify consumers the value was cleared\n advancedSelect.dispatchEvent(new CustomEvent('update-value', {\n detail: {\n value: '',\n text: '',\n },\n }));\n checkIfEmpty();\n };\n const closeBtn = advancedSelect.querySelector('.clear-search') ? advancedSelect.querySelector('.clear-search') : advancedSelect.shadowRoot.querySelector('.clear-search');\n closeBtn.addEventListener('click', function (e) {\n emptyField();\n });\n advancedSelect.addEventListener('empty', function (e) {\n emptyField();\n });\n}\nexport default advancedSelect;\n","/**\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 advancedSelect from '../../modules/advanced-select';\nimport { safeID } from '../../modules/helpers';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'Advanced select',\n});\nclass iamAdvancedSelect 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/advanced-select.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\" />\n <span class=\"wrapper\"><span class=\"input__wrapper\"><slot></slot></span><span class=\"suffix fa-regular fa-chevron-down\"></span></span>\n <slot name=\"datalist\"></slot>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n var _a, _b;\n // Make the datalist a dropdown\n this.classList.add('dropdown__wrapper');\n // Clone original input field, re-name and use for display purposes\n const inputField = this.querySelector('input');\n if (!inputField)\n return;\n const displayInputField = inputField.cloneNode();\n displayInputField.value = '';\n displayInputField.removeAttribute('value');\n displayInputField.setAttribute('name', `${inputField.getAttribute('name')}Alt`);\n inputField.removeAttribute('data-change-events');\n displayInputField.removeAttribute('id');\n if (this.querySelector('label'))\n this.classList.add('has-label');\n let datalist = this.querySelector('datalist');\n inputField.after(displayInputField);\n // Hide original input field\n inputField.setAttribute('type', 'hidden');\n // if data list does not exist then create one and append\n if (!datalist) {\n datalist = document.createElement('datalist');\n const listID = safeID('list');\n datalist.setAttribute('id', listID);\n searchWrapper.appendChild(datalist);\n displayInputField.setAttribute('list', listID);\n }\n else {\n displayInputField.setAttribute('list', datalist.id);\n }\n if (datalist && datalist.querySelector(`[value=\"${inputField.value}\"]`)) {\n (_a = datalist.querySelector(`[value=\"${inputField.value}\"]`)) === null || _a === void 0 ? void 0 : _a.classList.add('active');\n }\n advancedSelect(this, displayInputField, datalist);\n // Apply initial value passed to the component host or original input\n const initialValue = this.getAttribute('value') || inputField.value || '';\n if (!initialValue)\n return;\n inputField.value = initialValue;\n inputField.setAttribute('value', initialValue);\n let displayValue = initialValue;\n if (datalist) {\n const selectedOption = Array.from(datalist.querySelectorAll('option')).find((option) => {\n return option.getAttribute('value') === initialValue;\n });\n if (selectedOption) {\n displayValue = ((_b = selectedOption.textContent) === null || _b === void 0 ? void 0 : _b.trim()) || selectedOption.value;\n }\n Array.from(datalist.querySelectorAll('option')).forEach((option) => {\n const isMatch = option.getAttribute('value') === initialValue;\n option.classList.toggle('active', isMatch);\n });\n }\n displayInputField.value = displayValue;\n displayInputField.setAttribute('placeholder', displayValue);\n displayInputField.setAttribute('data-value', displayValue);\n displayInputField.removeAttribute('value');\n }\n}\nexport default iamAdvancedSelect;\n"],"names":["advancedSelect","displayInputField","datalist","isSearch","_a","currentFocus","shadowSuffix","checkIfEmpty","option","event","optionText","originalInput","optionInner","text","e","addActive","x","removeActive","i","emptyField","updateEvent","snake","str","safeID","iamAdvancedSelect","template","_b","inputField","listID","initialValue","displayValue","selectedOption","isMatch"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.8.1
2
+ * iamKey v7.8.2--beta2
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */function E(t,m){const g=t.closest("dialog"),b=(e,o,r=!1)=>{let l=!1,a=o.getAttribute("name");if(!a)return!1;a.includes("[]")&&(a=a.replace("[]",`[${o.value}]`));let s=e.querySelector(`[data-name="${a}"]`);s&&o.getAttribute("type")=="checkbox"&&(l=!o.checked);const c=o.getAttribute("data-filter-text");if(s||(s=document.createElement("button"),e.appendChild(s)),s.setAttribute("type","button"),s.classList.add("filter"),s.classList.add("tag"),r||s.classList.add("tag--not-set"),s.setAttribute("data-name",a),s.innerHTML=c.replace("$value",o.value),(!o.value||l)&&s.remove(),o.parentNode.closest("[data-filter-text]")){const i=o.parentNode.closest("[data-filter-text]");let v=!0;if(a="",i.querySelectorAll("input").forEach((u,n)=>{const p=u.getAttribute("name");if(a+=`${n!=0?",":""}${p}`,e.querySelector(`[data-name="${p}"]`)&&e.querySelector(`[data-name="${p}"]`).remove(),u.value){const d=document.createElement("button");d.setAttribute("type","button"),d.classList.add("filter"),d.classList.add("tag"),r||s.classList.add("tag--not-set"),d.setAttribute("data-name",p),d.innerHTML=c.replace("$value",u.value),e.appendChild(d)}else v=!1}),e.querySelector(`[data-name="${a}"]`)&&e.querySelector(`[data-name="${a}"]`).remove(),v){let u=i.getAttribute("data-filter-text");i.querySelectorAll("input").forEach((p,d)=>{const y=p.getAttribute("name");e.querySelector(`[data-name="${y}"]`)&&e.querySelector(`[data-name="${y}"]`).remove(),u=u.replace(`$${d+1}`,p.value)});const n=document.createElement("button");n.setAttribute("type","button"),n.classList.add("filter"),n.classList.add("tag"),r||s.classList.add("tag--not-set"),n.setAttribute("data-name",a),n.innerHTML=u,e.appendChild(n)}}},f=(e=!1)=>{m.innerHTML="",Array.from(t.querySelectorAll('input:is([type="checkbox"],[type="radio"]):checked, input:not([type="checkbox"], [type="radio"])')).forEach(o=>{b(m,o,e)})};f(!0),Array.from(t.querySelectorAll("input[data-filter-text]")).forEach(e=>{e.addEventListener("change",function(o){var r;const l=!t.closest("dialog");if(!t.hasAttribute("data-keep-same")&&!t.querySelector("dialog")&&b(m,e,l),l){const a=new CustomEvent("update");(r=t.parentElement.closest("iam-applied-filters"))===null||r===void 0||r.dispatchEvent(a)}})});const h=e=>{if(!e?.hasAttribute("data-name"))return!1;const o=e.getAttribute("data-name").split(",");for(let r=0;r<o.length;r++){const l=o[r];let a=`[name="${l}"]`;l.match(/\[(.*)\]/)&&(a=`[value="${l.replace(/.*\[(.*)\]/,"$1")}"]`);const s=t.querySelectorAll(a);for(let c=0;c<s.length;c++){const i=s[c];i.getAttribute("type")!="radio"&&i.getAttribute("type")!="checkbox"?i.value="":i.checked=!1;const v=new CustomEvent("change");i?.dispatchEvent(v)}}e.remove(),f()};if(m.addEventListener("click",function(e){if(e&&e.target instanceof HTMLElement&&e.target.closest(".filter")){const o=e.target.closest(".filter"),r=o.getAttribute("data-name");h(o);const l=new CustomEvent("filter-clicked",{detail:r});if(t.dispatchEvent(l),t.querySelector("dialog iam-applied-filters")){const a=new CustomEvent("filter",{detail:r});t.querySelector("dialog iam-applied-filters").dispatchEvent(a)}}},!1),t.addEventListener("filter",e=>{const o=t.shadowRoot.querySelector(`[data-name="${e.detail}"]`);h(o)}),t.addEventListener("set-filters",e=>{f(!0)}),g){const e=t.querySelector(".btn-primary")?t.querySelector(".btn-primary"):t.shadowRoot.querySelector(".btn-primary");e?.addEventListener("click",o=>{const r=new CustomEvent("update"),l=new CustomEvent("submit");if(t.dispatchEvent(l),t.parentElement.closest("iam-applied-filters")&&t.parentElement.closest("iam-applied-filters").dispatchEvent(r),t.parentElement&&t.parentElement.closest("iam-applied-filters")&&!t.parentElement.closest("iam-applied-filters").closest("dialog")){const a=new CustomEvent("set-filters");t.parentElement.closest("iam-applied-filters").dispatchEvent(a)}if(f(!0),!t.querySelector(".btn-primary").hasAttribute("command")){g.close();const a=new Event("close");g.dispatchEvent(a)}})}}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"Applied Filters"});class k extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const m=this.classList.toString(),g=document.createElement("template");g.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.8.1
2
+ * iamKey v7.8.2--beta2
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"banner"});class i extends HTMLElement{constructor(){var t;super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.8.1
2
+ * iamKey v7.8.2--beta2
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const M=t=>t.charAt(0).toUpperCase()+t.slice(1),q=t=>t.replace(/_/g," "),P=(t,r)=>{for(let a=1;a<=10;a++){if(t.hasAttribute(`data-colour-${a}`)){const o=t.getAttribute(`data-colour-${a}`);t.style.setProperty(`--chart-colour-${a}`,`var(--chart-colour-${o})`),t.style.setProperty(`--chart-colour-${a}-hover`,`var(--chart-colour-${o}-hover)`)}Array.from(r.querySelectorAll(`[data-colour-${a}]`)).forEach(o=>{const e=o.getAttribute(`data-colour-${a}`);o.style.setProperty(`--chart-colour-${a}`,`var(--chart-colour-${e})`),o.style.setProperty(`--chart-colour-${a}-hover`,`var(--chart-colour-${e}-hover)`)})}return!0},k=(t,r,a)=>{if(t.tagName=="IAM-DOUGHNUTCHART")return R(t,r,a),!0;const o=r.querySelector(".chart__key");o.innerHTML="";const e=r.querySelector(".chart__guidelines");e.innerHTML="";const i=r.querySelector(".chart__yaxis");i.innerHTML="",Array.from(r.querySelectorAll(':scope > input[type="checkbox"],:scope > input[type="radio"]')).map(c=>{c.remove()});const{xaxis:n}=g(t);return A(t,a),T(r,a,o),X(t,e),E(t,i),n&&Y(r),!0},R=(t,r,a)=>{const o=r.querySelector(".chart__key");return o.innerHTML="",Array.from(r.querySelectorAll(':scope > input[type="checkbox"],:scope > input[type="radio"]')).map(e=>{e.remove()}),A(t,a),T(r,a,o),H(r),!0},V=function(t,r){const a=r.querySelector(".chart");a.addEventListener("mousemove",n=>{if(n&&n.target instanceof HTMLElement&&n.target.closest("td:not(:first-child")){const d=n.target.closest("td:not(:first-child").getBoundingClientRect(),h=n.clientX-d.left,l=n.clientY-d.top;a.setAttribute("style",`--cursor-x: ${h}px; --cursor-y: ${l}px;`)}});const o=r.querySelectorAll("label");Array.from(o).forEach(n=>{r.querySelector(`input#${n.getAttribute("for")}`).checked?n.setAttribute("part","key-checked"):n.setAttribute("part","key-unchecked")});const e=t.querySelector("table"),i=r.querySelector("table");r.addEventListener("change",function(n){const c=n.target,d=new CustomEvent("view-change",{detail:{"data-dataset":c.getAttribute("data-dataset"),label:c.getAttribute("data-label"),checked:c.checked}});t.dispatchEvent(d),Array.from(o).forEach(h=>{var l;!((l=r.querySelector(`input#${h.getAttribute("for")}`))===null||l===void 0)&&l.checked?h.setAttribute("part","key-checked"):h.setAttribute("part","key-unchecked")}),i.innerHTML=e.innerHTML,A(t,i),t.tagName=="IAM-DOUGHNUTCHART"&&H(r)})},U=function(t,r){const a=t.querySelector("table"),o=r.querySelector("table"),e=(d,h)=>{h.disconnect(),c.disconnect();for(const l of d)(l.attributeName=="class"||l.type==="attributes"||l.type==="attributes")&&(o.innerHTML=a.innerHTML,k(t,r,o));h.observe(a,{characterData:!0,subtree:!0}),c.observe(t,{attributes:!0})},i=(d,h)=>{h.disconnect(),c.disconnect();for(const l of d)(l.type=="characterData"||l.type=="childList"&&l.addedNodes.length)&&(o.innerHTML=a.innerHTML,k(t,r,o));h.observe(a,{characterData:!0,subtree:!0}),c.observe(t,{attributes:!0})},n=new MutationObserver(i),c=new MutationObserver(e);return n.observe(a,{characterData:!0,subtree:!0}),c.observe(t,{attributes:!0}),!0};function C(t,r){r>1&&(t=t-.25);const a=Math.cos(2*Math.PI*t),o=Math.sin(2*Math.PI*t);return[a*100,o*100]}const g=function(t){const r=t.shadowRoot.querySelector(".chart__wrapper table"),a=t.hasAttribute("data-min")?t.getAttribute("data-min"):0,o=t.hasAttribute("data-max")?t.getAttribute("data-max"):j(t,r),e=t.hasAttribute("data-yaxis")?t.getAttribute("data-yaxis").split(","):[],i=t.hasAttribute("data-guidelines")?t.getAttribute("data-guidelines").split(","):[],n=t.hasAttribute("data-xaxis")?t.getAttribute("data-xaxis").split(","):null;return{min:a,max:o,yaxis:e,xaxis:n,guidelines:i}};function j(t,r){const a=t.classList.contains("chart--stacked")?"tbody tr":"tbody td:not(:first-child)",o=Array.from(r.querySelectorAll(a)).map(i=>i.getAttribute("data-numeric")),e=Math.max(...o);return Math.ceil(e)}const x=function(t,r,a,o){let e=String(t);e=e.replace("\xA3",""),e=e.replace("%",""),e=e.replace(",",""),e=Number.parseFloat(e);let i=(e-r)/(a-r)*100,n=i,c=0;return o&&o!=0&&(c=(o-r)/(a-r)*100),r<0&&(c=Math.abs(r/(a-r)*100),e<0?(i=c-i,c=c-i,n=c):(i=i-c,n=i+c)),{percent:i,axis:n,bottom:c}},A=function(t,r){Array.from(r.querySelectorAll("tbody tr")).forEach(e=>{let i=0;Array.from(e.querySelectorAll("td:not(:first-child)")).forEach(n=>{const c=n.cloneNode(!0);Array.from(c.querySelectorAll("*")).forEach(l=>{l.remove()});const d=parseFloat(c.textContent.replace("\xA3","").replace("%","").replace(",",""));n.setAttribute("data-numeric",d),n.setAttribute("data-value",c.textContent),getComputedStyle(n).display!="none"&&(i+=d),Array.from(n.querySelectorAll("a, button")).forEach((l,m)=>{m==0&&l.insertAdjacentHTML("beforeBegin","<hr/>"),l.classList.add("btn"),l.classList.add("btn-tertiary")})}),e.setAttribute("data-numeric",i)});const{min:a,max:o}=g(t);Array.from(r.querySelectorAll("tbody tr")).forEach((e,i)=>{const n=e.querySelector("td:first-child, th:first-child")?e.querySelector("td:first-child, th:first-child").textContent:"";e.setAttribute("part","group");const c=(e.getAttribute("data-numeric")-a)/(o-a)*100;e.style.setProperty("--percent",`${c}%`),Array.from(e.querySelectorAll("td:not([data-label])")).forEach((l,m)=>{m==0?l.setAttribute("part","xaxis-label"):l.setAttribute("part","value"),e.querySelectorAll("td").length>2&&l.setAttribute("data-label",r.querySelectorAll("thead th")[m].textContent)});const d=e.hasAttribute("data-min")?e.getAttribute("data-min"):a,h=e.hasAttribute("data-max")?e.getAttribute("data-max"):o;if(d<0){const l=Math.abs(d/(h-d)*100);t.setAttribute("style",`--min-bottom: ${l}%;`)}e.style.setProperty("--row-index",i+1),Array.from(e.querySelectorAll('td[data-numeric]:not([data-label="Min"]):not([data-label="Max"]):not(:first-child)')).forEach(l=>{if(getComputedStyle(l).display=="none")return;const f=l.innerHTML,_=Number.parseFloat(l.getAttribute("data-numeric")),s=Number.parseFloat(l.getAttribute("data-start"));if(l.querySelector("span[data-group]")||(l.innerHTML=`<span data-group="${n}" ${l.hasAttribute("data-label")?`data-label="${l.getAttribute("data-label")}"`:""} part="popover">${f}</span>`),!l.hasAttribute("style")){const{percent:u,bottom:y,axis:p}=x(_,d,h,s);l.setAttribute("data-percent",u),l.setAttribute("style",`--bottom:${y}%;--percent:${u}%;--axis:${p}%;`)}})})},I=function(t){const r=t.querySelector(".chart__wrapper"),a=t.querySelector(".chart__spacer span"),o=t.querySelector(".chart table");let e="";Array.from(o.querySelectorAll("tbody tr td:first-child")).forEach(i=>{typeof i.textContent<"u"&&i.textContent.length>e.length&&(e=i.textContent)}),r.setAttribute("data-longest-label",e),a.innerHTML=e},B=function(t){const r=t.querySelector(".chart__wrapper"),a=t.querySelector(".chart table");let o="";Array.from(a.querySelectorAll("tbody tr td:not(:first-child)")).forEach(e=>{typeof e.getAttribute("data-value")<"u"&&e.getAttribute("data-value").length>o.length&&(o=e.getAttribute("data-value"))}),r.setAttribute("data-longest-value",o)},T=function(t,r,a){const o=`chart-${Date.now()+(Math.floor(Math.random()*100)+1)}`;let e;const i=Array.from(r.querySelectorAll("thead th"));return i.forEach((n,c)=>{c!=0&&(e=K(o,c,n.textContent,a,t,e)),c==50&&(i.length=c+1)}),!0};function K(t,r,a,o,e,i){var n;const c=document.createElement("input");c.setAttribute("name",`${t}-dataset-${r}`),c.setAttribute("id",`${t}-dataset-${r}`),c.setAttribute("data-dataset",`${r}`),c.setAttribute("data-label",`${a}`),c.checked=!0,c.setAttribute("type","checkbox"),r==1?e.prepend(c):e.insertBefore(c,i.nextSibling),i=c;const d=document.createElement("label");d.setAttribute("class","key btn btn-action"),d.setAttribute("for",`${t}-dataset-${r}`),d.setAttribute("data-label",`${a}`),d.setAttribute("part","key");const h=(n=e.querySelector(`tbody tr td:nth-child(${r+1})`))===null||n===void 0?void 0:n.getAttribute("data-numeric");return d.setAttribute("data-numeric",h),d.innerHTML=`${a}`,o.append(d),i}const X=function(t,r){const{min:a,max:o,yaxis:e}=g(t);let{guidelines:i}=g(t);i.length||(i=e),r.innerHTML="";for(let n=0;n<i.length;n++){const c=parseFloat(i[n].replace("\xA3","").replace("%","").replace(",","")),{axis:d}=x(c,a,o);r.innerHTML+=`<div class="guideline" style="--percent:${d}%;">${e.indexOf(i[n])!=-1?`<span>${i[n]}</span>`:""}</div>`}},E=function(t,r){const{min:a,max:o,yaxis:e}=g(t);r.innerHTML="";for(let i=0;i<e.length;i++){const n=parseFloat(e[i].replace("\xA3","").replace("%","")),{axis:c}=x(n,a,o);r.innerHTML+=`<div class="axis__point" style="--percent:${c}%;"><span>${e[i]}</span></div>`}},Y=function(t){const r=t.querySelector(".chart");let a=t.querySelector(".chart__xaxis");a||(a=document.createElement("div"),a.setAttribute("class","chart__xaxis")),r.prepend(a)},G=function(t){const r=t.querySelectorAll("thead th[title], tbody th[title]:first-child, tbody td[title]:first-child");Array.from(r).forEach(a=>{const o=`tooltip-${Date.now()}-${Math.floor(Math.random()*100)}`;a.innerHTML=`<button class="tooltip" popovertarget="${o}" part="tooltip" style="anchor-name: --${o};">${a.textContent}</button><span id="${o}" style="position-anchor: --${o};" popover part="tooltip__content" class="tooltip__content">${a.getAttribute("title")}</span>`})},H=function(t){let r="";const a=t.querySelector(".chart");let o=t.querySelector(".doughnuts");o||(o=document.createElement("div"),o.setAttribute("class","doughnuts"),a.append(o)),Array.from(a.querySelectorAll("tbody tr")).forEach((e,i)=>{let n="",c="",d=0,h=0;const m=e.querySelectorAll("td")[0].innerHTML;let f=0;const _=e.getAttribute("data-numeric");Array.from(e.querySelectorAll("td")).forEach((s,u)=>{const y=getComputedStyle(s).display;if(u!=0&&y!="none"){let p=s.getAttribute("data-numeric");p=p.replace("\xA3",""),p=p.replace("%",""),p=p.replace(",",""),p=Number.parseInt(p),h+=p,f++}}),Array.from(e.querySelectorAll("td")).forEach((s,u)=>{var y,p;const v=getComputedStyle(s).display;if(u!=0&&f==1&&v!="none")n+=`<path d="M 0 0 L 100 0 A 100 100 0 1 1 100 -0.01 L 0 0" style="${s.getAttribute("style")} --path-index: ${u};"></path>`,c+=`<span class="h5 mb-0" part="popover">${M(q(s.getAttribute("data-label"))).trim()}<br/>${s.hasAttribute("data-second")?`${s.getAttribute("data-second-label")}: ${s.getAttribute("data-second")}<br/>`:""}${(y=s.querySelector('[part="popover"]'))===null||y===void 0?void 0:y.innerHTML}</span>`;else if(u!=0){let b=s.getAttribute("data-numeric");const D=v=="none"?"display: none;":"";b=b.replace("\xA3",""),b=b.replace("%",""),b=b.replace(",",""),b=Number.parseInt(b);const w=b/h,[z,$]=C(d,f),[S,L]=C(d+w,f),F=w>.5?1:0,N=["M 0 0",`L ${z?z.toFixed(0):0} ${$?$.toFixed(0):0}`,`A 100 100 0 ${F} 1 ${S?S.toFixed(0):0} ${L?L.toFixed(0):0}`,"L 0 0"].join(" ");n+=`<path d="${N}" style="${s.getAttribute("style")} --path-index: ${u};${D}"></path>`,c+=`<span class="h5 mb-0" part="popover">${M(q(s.getAttribute("data-label"))).trim()}<br/>${s.hasAttribute("data-second")?`${s.getAttribute("data-second-label")}: ${s.getAttribute("data-second")}<br/>`:""}${(p=s.querySelector('[part="popover"]'))===null||p===void 0?void 0:p.innerHTML}</span>`,v!="none"&&(d+=w)}}),r+=`<div class="doughnut">
5
5
  <svg viewBox="-105 -105 210 210" preserveAspectRatio="none" style="--row-index: ${i+1};">${n}</svg>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.8.1
2
+ * iamKey v7.8.2--beta2
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"bento-grid"});class n extends HTMLElement{constructor(){var o;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.8.1
2
+ * iamKey v7.8.2--beta2
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const a=t=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:t})};a("iam-bone");class n extends HTMLElement{constructor(){var e;super(),this.attachShadow({mode:"open"});const o=document.createElement("template");o.innerHTML=`
5
5
  <div class="wrapper">
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.8.1
2
+ * iamKey v7.8.2--beta2
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"button"});class s extends HTMLElement{constructor(){var t;super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const e=document.createElement("template");e.innerHTML=`
5
5
  <style>
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iamKey v7.8.1
2
+ * iamKey v7.8.2--beta2
3
3
  * Copyright 2022-2026 iamproperty
4
4
  */const Y=M=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:M})},O=(M,t,o)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),o.forEach(a=>{M.addEventListener(a,function(e){const r={event:a,element:t,target:e.target};Object.keys(e.detail).forEach(l=>{const d=e.detail[l];r[l]=d}),window.dataLayer.push(r)})}),!0),C=(M=1)=>Math.floor(Math.random()*Date.now()*(M+1));Y("iam-calendar");class P extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=`<table class="table--day" role="presentation"><tbody>
5
5
  <tr class="allday"><th>All day</th></tr>
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * iamKey v7.8.1
2
+ * iamKey v7.8.2--beta2
3
3
  * Copyright 2022-2026 iamproperty
4
- */const b=d=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:d})},h=(d,r,a)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:r}),a.forEach(t=>{d.addEventListener(t,function(c){const s={event:t,element:r,target:c.target};Object.keys(c.detail).forEach(p=>{const o=c.detail[p];s[p]=o}),window.dataLayer.push(s)})}),!0),u=`<div class="wrapper">
4
+ */const b=d=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:d})},h=(d,a,r)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:a}),r.forEach(e=>{d.addEventListener(e,function(c){const s={event:e,element:a,target:c.target};Object.keys(c.detail).forEach(p=>{const o=c.detail[p];s[p]=o}),window.dataLayer.push(s)})}),!0),u=`<div class="wrapper">
5
5
  <div class="card__head" part="head">
6
6
  <slot name="head"></slot>
7
7
  </div>
@@ -17,27 +17,27 @@
17
17
  <div class="card__footer" part="footer">
18
18
  <slot name="footer"></slot>
19
19
  </div>
20
- </div>`,v=d=>{var r;d.classList.add("card");const a=d.shadowRoot.querySelector(".card__head"),t=d.shadowRoot.querySelector(".card__body");d.hasAttribute("data-image")&&(a.innerHTML+=`<img src="${d.getAttribute("data-image")}" alt="" loading="lazy" part="image" />`),d.hasAttribute("data-total")?t?.querySelector(".card__total")?(r=t?.querySelector(".card__total"))===null||r===void 0||(r.innerHTML=d.getAttribute("data-total")):t.insertAdjacentHTML("beforeend",`<div class="card__total">${d.getAttribute("data-total")}</div>`):d.querySelector('[slot="total-icon"]')&&t.insertAdjacentHTML("beforeend",'<div class="card__total"><slot name="total-icon"></slot></div>'),d.querySelector('[slot="badges"]')?d.shadowRoot.querySelector(".card__badges").classList.remove("empty"):d.shadowRoot.querySelector(".card__badges").classList.add("empty")};class f extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const r=document.createElement("template");r.innerHTML=`
20
+ </div>`,v=d=>{d.classList.add("card");const a=d.shadowRoot.querySelector(".card__head"),r=d.shadowRoot.querySelector(".card__body");if(d.hasAttribute("data-image")&&(a.innerHTML+=`<img src="${d.getAttribute("data-image")}" alt="" loading="lazy" part="image" />`),d.hasAttribute("data-total"))if(!r?.querySelector(".card__total"))r.insertAdjacentHTML("beforeend",`<div class="card__total">${d.getAttribute("data-total")}</div>`);else{const e=r?.querySelector(".card__total");e&&(e.innerHTML=d.getAttribute("data-total"))}else d.querySelector('[slot="total-icon"]')&&r.insertAdjacentHTML("beforeend",'<div class="card__total"><slot name="total-icon"></slot></div>');d.querySelector('[slot="badges"]')?d.shadowRoot.querySelector(".card__badges").classList.remove("empty"):d.shadowRoot.querySelector(".card__badges").classList.add("empty")};class f 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=`
21
21
  <style>
22
22
  *,*::before,*::after{box-sizing:border-box}:host{inset:auto;top:anchor(bottom) !important;left:anchor(left) !important;position:fixed;position-try-fallbacks:flip-block,flip-inline;width:max-content !important;min-width:max-content !important;max-width:max-content !important;height:min-content;max-height:var(--menu-max-height, min(100vh - 6rem));overflow:auto;border:none !important}:host(.menu--fill){width:anchor-size(width) !important;min-width:anchor-size(width) !important;max-width:anchor-size(width) !important}:host(:popover-open),:host([popover-open]){display:block}:host(:not([popover])){position:static;display:block}:host(.menu--sm){width:10rem;min-width:10rem !important;max-width:10rem !important}:host(.menu--md){width:15rem;min-width:15rem !important;max-width:15rem !important}:host(.menu--lg){width:20rem;min-width:20rem !important;max-width:20rem !important}:host(.menu--height-sm){max-height:12.5rem}:host(.menu--height-lg){max-height:25rem}::slotted(*:is(button,a,label,span,iam-button)){background:unset !important;border:unset !important;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;display:block !important;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding-block:var(--menu-item-padding, 0.5rem) !important;width:var(--menu-item-width, 100%) !important;max-width:var(--menu-item-width, 100%) !important;text-align:var(--menu-item-text-align, left) !important}::slotted(*:is(button,a,label,iam-button)){padding-inline:var(--menu-item-padding, 0.5rem);cursor:var(--menu-item-cursor, pointer) !important}::slotted(*:is(span):first-child){padding-top:0 !important;font-weight:700 !important}::slotted(*:is(button,a,label,span,iam-button):last-child){margin-bottom:0 !important}::slotted(*:is(label)){--radio-size: 1.25rem;--radio-inner-size: 0.75rem;--radio-inner-top: 0.75rem;--radio-inner-left: 0.75rem;--checkbox-tick-size: 0.75rem;--checkbox-inner-size: 0.625rem;--checkbox-inner-top: 0.375rem;--checkbox-inner-left: 0.5rem;padding-left:2.25rem}::slotted(*:is(button,a,label):is(.selected)){background:#e9f8fc !important;border-left:4px solid var(--colour-info) !important;border-radius:.25rem !important;padding-left:calc(var(--menu-item-padding, 0.5rem) - 4px) !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(.selected):not(:hover,.hover)){color:#000 !important}}::slotted(*:is(button,a,label,iam-button):is(:hover,.hover,:focus,.focus)){background:var(--colour-light) !important;border-radius:.25rem !important}::slotted(*:is(button,a,label,iam-button):is(:active,.active)){background:#e0e0e0 !important;border-radius:.25rem !important}@media(prefers-color-scheme: dark){::slotted(*:is(button,a,label):is(:active,.active)){color:#000 !important}}::slotted(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}::slotted(iam-menu:not([popover])){border:none !important;border-radius:0 !important;box-shadow:none !important;padding:0;margin:0;width:auto}::slotted(iam-menu[popover]){top:anchor(top) !important;left:calc(anchor(right) + 1rem) !important}/*# sourceMappingURL=assets/css/components/menu.component.css.map */
23
23
 
24
24
  </style>
25
25
  <div class="menu--inner" part="inner">
26
26
  <slot></slot>
27
- </div>`,this.shadowRoot.appendChild(r.content.cloneNode(!0))}connectedCallback(){this.classList.add("dropdown");const r=this.hasAttribute("id")?this.getAttribute("id"):!1,a=document.querySelector(`[popovertarget="${r}"]`);let t=this.querySelectorAll(":scope > a, :scope > button, :scope > details > summary"),c=this.querySelectorAll("a, button");this.closest(".menu__wrapper")&&(c=this.shadowRoot.querySelector("slot").assignedElements({flatten:!0}),t=c),this.querySelectorAll("details");let s,p;r&&a&&(this.setAttribute("role","menu"),this.setAttribute("popover","auto"),this.style["position-anchor"]=`--${r}`,a?.setAttribute("aria-haspopup","true"),a==null||(a.style["anchor-name"]=`--${r}`),a?.setAttribute("aria-controls",r)),c.forEach((o,e)=>{o.setAttribute("role","menuitem"),o.setAttribute("tabindex","0"),e==0&&o.setAttribute("autofocus",!0)}),this.addEventListener("keydown",o=>{if(o&&o.target instanceof HTMLElement&&o.target.closest("a, button, summary")){const e=document.activeElement,n=Array.from(t).indexOf(e)-1,l=Array.from(t).indexOf(e)+1;switch(o.keyCode){case 27:e.closest("details")?(o.stopPropagation(),o.preventDefault(),e.closest("details").removeAttribute("open"),e.closest("details").querySelector(":scope summary").focus()):(o.stopPropagation(),a.focus());break;case 32:case 13:break;case 35:o.stopPropagation(),o.preventDefault(),this.querySelector("details[open]").removeAttribute("open"),Array.from(c)[c.length-1].focus();break;case 36:o.stopPropagation(),o.preventDefault(),this.querySelector("details[open]").removeAttribute("open"),Array.from(c)[0].focus();break;case 38:if(o.stopPropagation(),o.preventDefault(),Array.from(t).indexOf(e)>-1)Array.from(t)[n]!=null?Array.from(t)[n].focus():Array.from(t)[t.length-1].focus();else if(e.closest("details")){const i=e.closest("details").querySelectorAll("a, button, :scope details > summary");p=Array.from(i).indexOf(e)-1,Array.from(i)[p]!=null?Array.from(i)[p].focus():Array.from(i)[i.length-1].focus()}break;case 40:if(o.stopPropagation(),o.preventDefault(),Array.from(t).indexOf(e)>-1)Array.from(t)[l]!=null?Array.from(t)[l].focus():Array.from(t)[0].focus();else if(e.closest("details")){const i=e.closest("details").querySelectorAll("a, button, :scope details > summary");s=Array.from(i).indexOf(e)+1,Array.from(i)[s]!=null?Array.from(i)[s].focus():Array.from(i)[0].focus()}break}}}),this.addEventListener("toggle",o=>{var e,n,l,i;const m=new CustomEvent(o.newState,{detail:{id:this.getAttribute("id"),target:o.target}});this.dispatchEvent(m),this.closest(".menu__wrapper")&&c[0].focus(),this.hasAttribute("popover-open")&&(o.preventDefault(),this.removeAttribute("popover-open"),this.hidePopover()),this.matches(":popover-open")&&document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`)?((e=document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`))===null||e===void 0||e.setAttribute("aria-pressed","true"),(n=document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`))===null||n===void 0||n.classList.add("active")):((l=document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`))===null||l===void 0||l.removeAttribute("aria-pressed"),(i=document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`))===null||i===void 0||i.classList.remove("active"))}),this.addEventListener("click",o=>{if(o&&o.target instanceof HTMLElement&&o.target.closest("button:has(+ iam-menu:not([popover]))")){const e=o.target.closest("button:has(+ iam-menu)");e?.classList.toggle("open")}else if(o&&o.target instanceof HTMLElement&&o.target.closest("button.selectable")){const e=o.target.closest("button.selectable");this.hasAttribute("multiple")?e.classList.toggle("selected"):e?.classList.contains("selected")?this.querySelectorAll(".selected").forEach(n=>{n.classList.remove("selected")}):(this.querySelectorAll(".selected").forEach(n=>{n.classList.remove("selected")}),e.classList.add("selected"))}}),CSS.supports("top","anchor(top)")||document.addEventListener("click",o=>{if(o.originalTarget&&o.originalTarget.matches("[popovertarget]")){const e=o.originalTarget,n=e.getAttribute("popovertarget"),l=document.getElementById(n),i=e.getBoundingClientRect(),m=i.top,g=i.left;l.style.setProperty("top",m+"px"),l.style.setProperty("left",g+e.clientWidth+"px")}})}}var w=function(d,r,a,t){function c(s){return s instanceof a?s:new a(function(p){p(s)})}return new(a||(a=Promise))(function(s,p){function o(l){try{n(t.next(l))}catch(i){p(i)}}function e(l){try{n(t.throw(l))}catch(i){p(i)}}function n(l){l.done?s(l.value):c(l.value).then(o,e)}n((t=t.apply(d,r||[])).next())})};b("iam-card");class y extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const r=document.createElement("template");r.innerHTML=`
27
+ </div>`,this.shadowRoot.appendChild(a.content.cloneNode(!0))}connectedCallback(){this.classList.add("dropdown");const a=this.hasAttribute("id")?this.getAttribute("id"):!1,r=document.querySelector(`[popovertarget="${a}"]`);let e=this.querySelectorAll(":scope > a, :scope > button, :scope > details > summary"),c=this.querySelectorAll("a, button");this.closest(".menu__wrapper")&&(c=this.shadowRoot.querySelector("slot").assignedElements({flatten:!0}),e=c),this.querySelectorAll("details");let s,p;a&&r&&(this.setAttribute("role","menu"),this.setAttribute("popover","auto"),this.style["position-anchor"]=`--${a}`,r?.setAttribute("aria-haspopup","true"),r==null||(r.style["anchor-name"]=`--${a}`),r?.setAttribute("aria-controls",a)),c.forEach((o,t)=>{o.setAttribute("role","menuitem"),o.setAttribute("tabindex","0"),t==0&&o.setAttribute("autofocus",!0)}),this.addEventListener("keydown",o=>{if(o&&o.target instanceof HTMLElement&&o.target.closest("a, button, summary")){const t=document.activeElement,n=Array.from(e).indexOf(t)-1,l=Array.from(e).indexOf(t)+1;switch(o.keyCode){case 27:t.closest("details")?(o.stopPropagation(),o.preventDefault(),t.closest("details").removeAttribute("open"),t.closest("details").querySelector(":scope summary").focus()):(o.stopPropagation(),r.focus());break;case 32:case 13:break;case 35:o.stopPropagation(),o.preventDefault(),this.querySelector("details[open]").removeAttribute("open"),Array.from(c)[c.length-1].focus();break;case 36:o.stopPropagation(),o.preventDefault(),this.querySelector("details[open]").removeAttribute("open"),Array.from(c)[0].focus();break;case 38:if(o.stopPropagation(),o.preventDefault(),Array.from(e).indexOf(t)>-1)Array.from(e)[n]!=null?Array.from(e)[n].focus():Array.from(e)[e.length-1].focus();else if(t.closest("details")){const i=t.closest("details").querySelectorAll("a, button, :scope details > summary");p=Array.from(i).indexOf(t)-1,Array.from(i)[p]!=null?Array.from(i)[p].focus():Array.from(i)[i.length-1].focus()}break;case 40:if(o.stopPropagation(),o.preventDefault(),Array.from(e).indexOf(t)>-1)Array.from(e)[l]!=null?Array.from(e)[l].focus():Array.from(e)[0].focus();else if(t.closest("details")){const i=t.closest("details").querySelectorAll("a, button, :scope details > summary");s=Array.from(i).indexOf(t)+1,Array.from(i)[s]!=null?Array.from(i)[s].focus():Array.from(i)[0].focus()}break}}}),this.addEventListener("toggle",o=>{var t,n,l,i;const m=new CustomEvent(o.newState,{detail:{id:this.getAttribute("id"),target:o.target}});this.dispatchEvent(m),this.closest(".menu__wrapper")&&c[0].focus(),this.hasAttribute("popover-open")&&(o.preventDefault(),this.removeAttribute("popover-open"),this.hidePopover()),this.matches(":popover-open")&&document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`)?((t=document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`))===null||t===void 0||t.setAttribute("aria-pressed","true"),(n=document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`))===null||n===void 0||n.classList.add("active")):((l=document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`))===null||l===void 0||l.removeAttribute("aria-pressed"),(i=document.querySelector(`[popovertarget="${this.getAttribute("id")}"]`))===null||i===void 0||i.classList.remove("active"))}),this.addEventListener("click",o=>{if(o&&o.target instanceof HTMLElement&&o.target.closest("button:has(+ iam-menu:not([popover]))")){const t=o.target.closest("button:has(+ iam-menu)");t?.classList.toggle("open")}else if(o&&o.target instanceof HTMLElement&&o.target.closest("button.selectable")){const t=o.target.closest("button.selectable");this.hasAttribute("multiple")?t.classList.toggle("selected"):t?.classList.contains("selected")?this.querySelectorAll(".selected").forEach(n=>{n.classList.remove("selected")}):(this.querySelectorAll(".selected").forEach(n=>{n.classList.remove("selected")}),t.classList.add("selected"))}}),CSS.supports("top","anchor(top)")||document.addEventListener("click",o=>{if(o.originalTarget&&o.originalTarget.matches("[popovertarget]")){const t=o.originalTarget,n=t.getAttribute("popovertarget"),l=document.getElementById(n),i=t.getBoundingClientRect(),m=i.top,g=i.left;l.style.setProperty("top",m+"px"),l.style.setProperty("left",g+t.clientWidth+"px")}})}}var w=function(d,a,r,e){function c(s){return s instanceof r?s:new r(function(p){p(s)})}return new(r||(r=Promise))(function(s,p){function o(l){try{n(e.next(l))}catch(i){p(i)}}function t(l){try{n(e.throw(l))}catch(i){p(i)}}function n(l){l.done?s(l.value):c(l.value).then(o,t)}n((e=e.apply(d,a||[])).next())})};b("iam-card");class y 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=`
28
28
  <style>
29
29
  ${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
30
30
 
31
- :host{position:relative;border-radius:var(--card-border-radius);margin-bottom:2rem;display:block;outline:var(--card-outline);outline-offset:-2px}.wrapper{border-radius:var(--card-border-radius);box-shadow:var(--card-box-shadow);position:relative;font-weight:bold;font-size:var(--card-fs);line-height:var(--card-lh);color:var(--colour-primary);min-height:100%;width:100%;text-align:left;display:flex;flex-direction:column;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:2px solid var(--outline-colour, --colour-canvas-2);outline-offset:-2px}.wrapper>*{width:100%;box-sizing:border-box}:host-context(:is(a,label,button)){margin-bottom:0 !important}:host(.border-0){box-shadow:none;--card-left-padding: 0rem;outline-offset:1px !important}.card__head:has(img){min-height:var(--card-head-height);position:relative;overflow:hidden;background:rgba(0,0,0,.1);z-index:-1}.card__head:has(img)>img{position:absolute;top:0;left:0;margin:-2px;width:calc(100% + 4px);height:calc(100% + 4px);object-fit:cover}.card__head:has(img):after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--card-head-overlay)}.card__body{padding:var(--card-body-top-padding) var(--card-right-padding) var(--card-body-bottom-padding) var(--card-left-padding)}.card__footer{margin-top:auto;padding:var(--card-footer-top-padding, 0) var(--card-right-padding) var(--card-footer-bottom-padding, 0) var(--card-left-padding)}::slotted(i){font-size:1.5rem !important;margin:-3px var(--card-icon-right) 0 0 !important;vertical-align:middle !important}::slotted(i:not(.fa-light):not(.fa-bold)){font-weight:400 !important}::slotted(.badge){margin-bottom:.375rem !important}::slotted(span:not(.badge,.title)){display:block !important;font-weight:normal !important;font-size:var(--card-body-fs, 1rem) !important;line-height:var(--card-body-lh, inherit) !important}::slotted(small){padding-top:var(--card-gap, 1rem) !important;display:block !important;font-weight:normal !important;padding-bottom:0 !important;color:var(--colour-body)}::slotted(span:not(.badge,.title):not([class*=pt-])){padding-top:var(--card-gap, 1.5rem) !important}::slotted(:is(a,button)[slot=footer]){margin-bottom:var(--card-footer-bottom-padding) !important}.card__body:has(.card__total){--card-head-top-padding: 1rem;--card-head-bottom-padding: 1.5rem}.card__total{font-size:3rem;line-height:3rem;padding-right:1rem;margin-top:.5rem}.card__total i{font-family:var(--fa-style-family, "Font Awesome 7 Pro");font-weight:var(--fa-style, 900);display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important}::slotted([slot=total-icon]){display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important;line-height:2.5rem}.card__head:has(img)~.card__badges{position:absolute;top:0;text-align:right;left:0;z-index:9}.card__badges:not(.empty){padding:var(--card-badges-top-padding, 1rem) var(--card-right-padding) var(--card-badges-bottom-padding, 0) var(--card-left-padding);margin-bottom:-1.5rem}.card__head:not(:has(img))~.card__badges{text-align:end}@layer elements{body:not(.js-enabled) dialog:not([open]):target{display:block}dialog,[popover]{--dialog-padding: 0.5rem;--mh-padding-inline: var(--dialog-padding);color:inherit;width:fit-content;height:fit-content;border:none;overscroll-behavior:contain;outline:var(--contrast-outline-width, 0px) solid var(--colour-primary);font-size:1rem;background:var(--dropdown-bg);margin-block:var(--dropdown-margin-block);padding:var(--dialog-padding);border-radius:var(--dropdown-border-radius);box-shadow:var(--dropdown-box-shadow)}dialog>*:last-child,[popover]>*:last-child{margin-bottom:0}dialog>:is(p):last-child,[popover]>:is(p):last-child{padding-bottom:0}dialog[open]:has(iam-modal){--modal-inner-dialog-display: contents;place-self:center}@media(prefers-color-scheme: light){dialog[open]:has(iam-modal){color-scheme:light;--colour-body: #595959;--colour-heading: var(--colour-primary-theme)}}dialog::backdrop{background:rgba(0,0,0,.3);backdrop-filter:blur(4px);overscroll-behavior:contain}dialog[open],[popover]:popover-open{display:flex;flex-direction:column}*:not(.dialog__wrapper)>dialog[open],*:not(.dialog__wrapper)>[popover]:popover-open{overflow-y:auto;width:90vw;max-width:20.25rem;max-height:min(90vh,47rem);overscroll-behavior:contain}@media screen and (min-width: 36em){*:not(.dialog__wrapper)>dialog[open],*:not(.dialog__wrapper)>[popover]:popover-open{min-width:20.9375rem;width:fit-content;max-width:42.875rem}}@media screen and (min-width: 62em){*:not(.dialog__wrapper)>dialog[open],*:not(.dialog__wrapper)>[popover]:popover-open{min-width:28.375rem;width:fit-content;max-width:46rem}}details.bg-light{margin-inline:calc(var(--dialog-padding)*-1);padding-inline:var(--dialog-padding)}}@layer elements{.dialog__wrapper{position:relative;display:inline-block;margin-bottom:calc(var(--btn-margin) - .25rem)}.dialog__wrapper:has(dialog[open],dialog:popover-open)>button{background:var(--colour-btn-secondary-bg-hover)}.dialog__wrapper:has(dialog[open],dialog:popover-open)>button:not(.btn-action){color:var(--colour-btn-secondary-hover)}.dialog__wrapper:has(dialog[open],dialog:popover-open)>button{filter:brightness(85%);transition:background .1s,color .1s;border-radius:1.5rem}.dialog__wrapper>.btn:first-child:not(.btn-compact):not([class*=fa-]):after{content:"";display:inline-block;margin-left:1em;height:1em;width:1em;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;transform:rotate(90deg)}.dialog__wrapper>.btn:first-child[aria-expanded]:not([data-number]):after{transform:rotate(270deg)}.dialog__wrapper>.btn:first-child:has(+dialog[open]):not([data-number]):after{transform:rotate(270deg)}.dialog__wrapper>[popover]{display:var(--menu-display, none);position:fixed;top:anchor(bottom) !important;left:anchor(left) !important;position-try-fallbacks:flip-block,flip-inline !important;margin:0 0 0 .25rem;padding:.5rem}.dialog__wrapper>[popover]::backdrop{display:none}.dialog__wrapper>[popover]:popover-open{display:block !important}.dialog__wrapper:has([popover]:popover-open)>button{background-color:var(--colour)}.dialog__wrapper>:is(dialog[open],dialog:popover-open){left:0;margin-top:-1rem;top:100%;z-index:var(--index-floating);min-width:20rem;border-radius:1rem;width:20rem}@media screen and (min-width: 36em){.dialog__wrapper>:is(dialog[open],dialog:popover-open){width:20.9375rem}}@media screen and (min-width: 62em){.dialog__wrapper>:is(dialog[open],dialog:popover-open){width:22.5rem}}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list{width:fit-content !important;min-width:10rem !important;max-width:15rem !important;padding:var(--menu-padding, 0.5rem);margin:0;background:var(--menu-bg, canvas);border:var(--menu-border, 2px solid grey);overflow:auto;border:none !important;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0,0,0,.1)}@media screen and (min-width: 36em){.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list{width:max-content !important}}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list 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}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .radio--tick{margin-right:0;padding-left:1.5rem;margin-bottom:0}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .radio--tick:before{left:0;font-size:1em;top:.75rem}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a{padding:.375rem}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a:not(:hover,:focus,:active){border-color:rgba(0,0,0,0)}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a{margin:0}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a:after{display:none}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .btn-action{background:unset;border:unset;color:var(--colour-primary);font-weight:inherit;font-family:inherit;font-size:1rem;line-height:1.1875rem;display:block;margin:var(--menu-item-margin, 0 0 0.25rem 0);padding-block:var(--menu-item-padding, 0.5rem);width:var(--menu-item-width, 100%);max-width:var(--menu-item-width, 100%);text-align:var(--menu-item-text-align, left)}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .btn-action:not(:hover,:focus,:active){border-color:rgba(0,0,0,0)}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .btn-action:is(:hover,:focus){background:var(--colour-light) !important;border-radius:.25rem !important}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .btn-action:is(:active){background:#e0e0e0 !important;border-radius:.25rem !important}.dialog__wrapper>:is(dialog[open],dialog:popover-open) :is(dialog[open],dialog:popover-open){display:contents}.dialog__wrapper.dialog__wrapper--right>:is(dialog[open],dialog:popover-open){right:0;left:auto}.dialog__wrapper.dialog__wrapper--sm>:is(dialog[open],dialog:popover-open){width:14.9375rem}.dialog__wrapper.dialog__wrapper--lg>:is(dialog[open],dialog:popover-open){width:19.9375rem}@media screen and (min-width: 36em){.dialog__wrapper.dialog__wrapper--sm-left>dialog[open]{left:0;right:auto}.dialog__wrapper.dialog__wrapper--sm-right>dialog[open]{right:0;left:auto}.dialog__wrapper.dialog__wrapper--sm>dialog[open]{width:16.5625rem}.dialog__wrapper.dialog__wrapper--lg>dialog[open]{width:28.25rem}}@media screen and (min-width: 62em){.dialog__wrapper.dialog__wrapper--md-left>dialog[open]{left:0;right:auto}.dialog__wrapper.dialog__wrapper--md-right>dialog[open]{right:0;left:auto}.dialog__wrapper.dialog__wrapper--sm>dialog[open]{width:16.5625rem}.dialog__wrapper.dialog__wrapper--lg>dialog[open]{width:28.375rem}}.dialog__wrapper :is(.empty,.individual){display:none}@supports selector(:has(*)){.dialog__wrapper :is(.empty,.individual){display:inline}}.dialog__wrapper:has(input:checked) .empty,.dialog__wrapper:not(:has(input:checked)) .individual,.dialog__wrapper:has(input:checked~input:checked) .individual,.dialog__wrapper:not(:has(input:checked~input:checked)) .multiple{display:none}}@layer elements{button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button:focus:not(:focus-visible){outline:0}:is(button,[type=button],[type=reset],[type=submit],[role=button]){-webkit-appearance:button;&:not(:disabled){cursor:pointer}}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 2px;--btn-font-size: 1.125rem;--btn-line-height: 1.25rem;display:inline-block;font-weight:bold;text-align:left;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;color:var(--colour-btn);font-size:var(--btn-font-size);line-height:var(--btn-line-height);padding:var(--btn-padding-block) var(--btn-padding-inline);border-radius:1.5rem;margin-bottom:var(--btn-margin);background:none;transition:border .5s,background .5s,color .5s;height:auto;max-width:fit-content;appearance:none;white-space:nowrap;&:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}&:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}&:not(.border-0){background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border)}&:not(:last-child){margin-right:var(--btn-margin)}}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}a:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn,.btn:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){outline:0;text-decoration:none;background:var(--colour-btn-bg-hover);color:var(--colour-btn-hover);border-radius:1.5rem}a:is(:active,.active):not([disabled]) .btn,.btn:is(:active,.active):not([disabled]){filter:brightness(85%);transition:background .1s,color .1s;color:var(--colour-btn);border-radius:1.5rem}a:disabled .btn,.btn:disabled,[disabled] .btn,.btn[disabled]{opacity:.4;cursor:not-allowed}.btn.btn-complete{--colour: var(--colour-success);--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn-complete,.btn.btn-complete:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem;&:before{content:"\uF00C";font-family:var(--fa-family-classic);margin-right:1rem;font-style:inherit;width:1rem;display:inline-block;height:var(--btn-line-height);vertical-align:bottom}}.btn.btn-sm{--btn-padding-block: 0.5rem;--btn-padding-inline: 2rem;--btn-margin: 0.5rem;--btn-font-size: 1rem}.btn{&[class*=fa-]:before{content:var(--fa);font-family:var(--fa-family-classic)}&[class*=fa-after]{padding-right:4rem}&[class*=fa-after]:before{margin-right:0;margin-right:.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}&:not(.btn-compact):before{margin-right:1rem}i[class*=fa-]{--fa-width: 1em;font-family:var(--fa-family-classic);margin-right:1rem;line-height:1em;font-style:inherit;&:not(:first-child){margin-left:1rem;margin-right:0}}}.btn.btn--prompt{&:after{content:"";height:var(--btn-line-height);width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem}}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn--prompt,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active){&:after{margin-left:1.5rem;margin-right:-0.5rem}}.btn-filter{&:after{content:"\uF1DE";display:inline-block;margin-left:1em;margin-bottom:-0.15em;height:1em;width:1em;z-index:var(--index-focus);color:currentColor;font-weight:300;font-family:var(--fa-family-classic)}}}@layer elements{.btn-secondary{color:var(--colour-btn-secondary);&:not(.border-0){background:var(--colour-btn-secondary-bg);border:2px solid var(--colour-btn-secondary-border)}}a:is(:hover,:focus,.hover,:active,.active):not([disabled]) .btn-secondary,.btn-secondary:is(:hover,:focus,.hover,:focus-within,:active,.active):not([disabled]){background:var(--colour-btn-secondary-bg-hover);color:var(--colour-btn-secondary-hover)}}@layer elements{.btn.btn-tertiary{background-color:transparent;border:none;color:var(--colour-link);margin:0 var(--btn-margin) var(--btn-margin) 0;padding:0;font-size:1.125rem;font-weight:normal;line-height:1.5rem;min-height:1.5rem;position:relative;&:after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}&.text-decoration-none:after{width:0%}&[class*=fa-]{margin-left:0;margin-right:.5rem}&[class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}&:is(:hover,:focus,.hover,:focus-within):not([disabled],:disabled,:active,.active){&:after{width:60% !important}}&:is(:active,.active):not([disabled],:disabled){color:var(--colour-active)}}}@layer elements{.btn-action{--btn-border-width: 1px;--btn-padding-block: 0.3125rem /* 5px */;--btn-padding-inline: 0.3125rem /* 5px */;--btn-margin: 0.5rem;border-radius:.25rem !important;font-weight:400 !important;font-size:1rem;line-height:1.25rem;&:not(.btn-primary){color:var(--colour-heading)}&:not(.btn-primary):not(.border-0){background-color:var(--colour-canvas-2);border:var(--btn-border-width) solid var(--colour-muted)}&.btn[class*=fa-]:before{content:var(--fa);margin-right:.375rem}&.icon-only{position:relative;text-indent:-300vw;overflow:hidden;min-width:1.75rem;&:before{position:absolute;left:0;top:0;min-width:1.75rem;text-align:center;text-indent:0;padding-inline:.25rem;line-height:1.85rem}}a:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) &,&:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){background:var(--colour-btn-action-hover-bg)}.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) &,&.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){filter:brightness(90%);background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border);color:var(--colour-btn)}a:is(:active,.active):not([disabled]):not(.btn-primary) &,&:is(:active,.active):not([disabled]):not(.btn-primary){filter:brightness(85%);transition:all .1s;color:var(--colour-heading)}}.btn-action:not(.btn-compact).fa-compact-only:before{display:none !important}}@layer elements{.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:.5rem;text-align:center;width:var(--compact-size);min-width:var(--compact-size);max-width:var(--compact-size);height:var(--compact-size) !important;min-height:var(--compact-size) !important;max-height:var(--compact-size) !important;align-content:center;line-height:1 !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1rem;&:not(:last-child){margin-right:.5rem}&:before{content:var(--fa);position:absolute;display:block;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - .25rem);font-weight:900}[class*=fa-]:before{line-height:calc(var(--compact-size) - .25rem);@container style(--theme: dark){color:white}}&.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}&.btn-action{--compact-size: 2rem;font-size:1rem;&:before{font-size:1em;font-weight:400}}&.btn-secondary{--colour-btn-bg: transparent;--colour-btn-border: transparent;border-color:transparent;&:not([class*=colour-]){--colour: var(--colour-light)}}&.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse){background-color:var(--colour);color:var(--colour-primary-theme);border-color:var(--colour);&:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}}&[data-number]{position:relative}&[data-number]:after{content:attr(data-number);position:absolute;top:.5em;z-index:99;background:var(--colour-danger);height:1.5em;width:1.5em;border-radius:50%;text-indent:0;left:50%;font-size:.5em;line-height:1.5em;text-align:center;color:white;letter-spacing:-0.1em;font-family:arial,sans-serif}}.btn-compact{&:is(.fa-left,.fa-chevron-left,.fa-right,.fa-chevron-right,.fa-up,.fa-chevron-up,.fa-down,.fa-chevron-down,.fa-plus,.fa-bars,.fa-edit,.fa-envelope,.fa-calendar){--iso-display: block;--iso-font-size: 1.5rem;--iso-border-radius: 50%;--iso-text-indent: -500px}}@container style(--font-body){.btn-compact{font-size:var(--iso-font-size, 0.6rem) !important;text-indent:var(--iso-text-indent, 0px);white-space:initial;&:not(.btn-action){border-radius:var(--iso-border-radius, 0.25rem) !important}&:before{display:var(--iso-display, none);font-family:monospace !important;content:var(--iso) !important}}}@container style(--fa-font-regular){.btn-compact{text-indent:-500px;font-size:1rem !important;&:not(.btn-action){border-radius:50% !important}&:before{font-family:"Font Awesome 7 Pro" !important;content:var(--fa) !important;display:block}}}}@layer elements{.btn[popovertarget]{position:relative;anchor-name:--button2;&>.fa-chevron-down{display:none}&:not(:has(i)):not(.no-icon):after{content:"";display:inline-block;margin-right:.25em;margin-left:1em;height:.8em;width:.8em;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;transform:rotate(90deg)}&[aria-pressed]:after{transform:rotate(270deg)}}.btn:has(select){position:relative;padding:0;max-width:fit-content;min-width:fit-content;width:fit-content;select{all:unset !important;padding:var(--btn-padding-block) var(--btn-padding-inline) !important;padding-right:calc(var(--btn-padding-inline) + 2rem) !important;border-radius:1.5rem !important;appearance:none !important;background:none !important;border:none !important;color:currentColor !important;display:block;outline:none;font-weight:inherit !important;font-size:var(--btn-font-size) !important;line-height:var(--btn-line-height) !important;field-sizing:content !important;appearance:base-select !important}&:after{position:absolute;top:.625rem;right:1.5rem;content:"";height:1.5rem;width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem;transform:rotate(90deg);pointer-events:none}}.btn-action:has(select){padding-block:0;padding-right:2rem;font-size:1em;select{margin:0rem 0rem !important;padding-right:2rem !important;margin-right:-2rem !important;font-size:1rem !important}&:after{top:.2rem;right:.5rem}}}@layer elements{.btn__group{display:flex;flex-direction:column;row-gap:var(--gap);reading-flow:source-order;margin-bottom:1.5rem;.btn-compact{max-width:fit-content;margin-inline:auto}}:where(.btn__group,iam-modal){reading-flow:source-order;.btn{margin-inline-end:0;width:100%;max-width:100%;text-align:center;white-space:normal;margin:0;&:not(:last-child){margin-right:0}}.btn-tertiary{max-width:fit-content;margin-block:0 !important;margin-inline:auto !important;order:3;reading-order:3}.btn-secondary{order:2;reading-order:2}.btn-primary{order:1;reading-order:1;margin:0;&:not(:last-child){margin:0}}}:is(iam-form,form) .btn__group{padding-top:1rem}@container (min-width: 36em){.btn__group{flex-direction:row;row-gap:0;gap:var(--gap);flex-wrap:wrap;.btn-tertiary{max-width:fit-content;margin-inline:0 !important;margin-block:auto;order:1}.btn-secondary{order:2}.btn-primary{order:3}.btn-compact{margin-inline:0;margin-block:auto}}:where(iam-modal,.btn__group){.btn{max-width:fit-content;white-space:nowrap;margin-block:auto}}.btn__group{.btn-tertiary{reading-order:1}.btn-secondary{reading-order:2}.btn-primary{reading-order:3}}iam-modal{.btn-tertiary{reading-order:3;order:1}.btn-secondary{order:2;reading-order:2}.btn-primary{order:3;reading-order:1}}.btn__group.text-end{justify-content:flex-end}:is(iam-form,form) .btn__group{justify-content:flex-end;padding-top:3rem}iam-modal .btn__group:last-child .btn,dialog .btn__group:last-child .btn{margin-bottom:0}}}:host(:is(:active,.active):not(.prevent-hover)){--card-icon-right: var(--card-icon-right-overide, 0.5rem)}:host(.prevent-hover){pointer-events:none}:host(.prevent-hover) *{pointer-events:all}:host(.show-icon){--card-right-padding: 3.5rem}:host(.show-icon) .card__body:before,:host(.show-icon) .card__body:after{content:"";display:var(--card-right-arrow-display, block);position:absolute;right:var(--card-icon-right);bottom:var(--card-bottom-padding);height:1.5rem;width:1.5rem;background:var(--card-icon-bg);border-radius:50%}:host(.show-icon) .card__body:after{background:var(--card-icon-colour);mask-image:var(--icon, var(--icon-arrow));mask-size:50%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon, var(--icon-arrow));-webkit-mask-size:50%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;z-index:2}.card__body:has(.card__illustration){align-items:center;display:flex}.card__body:has(.card__illustration) .card__illustration{height:4rem;width:4rem;margin-right:1.5rem;margin-top:-1.25rem;margin-bottom:-1.25rem;position:relative}.card__body:has(.card__illustration) .card__illustration img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}:host([class*=colour-]){border-left:.75rem solid var(--colour, var(--colour-primary))}slot[name=secondary]{display:block;position:absolute;top:.5rem;right:0;margin:.5rem .5rem 0 0;z-index:999}::slotted([slot=secondary]:not(:hover,:focus,:active,.hover)){background:none !important;color:var(--colour-btn) !important}::slotted([slot=checkbox]){position:absolute !important;top:.5rem;right:.5rem;width:2rem;height:2rem;height:2.5rem;overflow:hidden}.menu__wrapper{position:absolute;right:1rem;bottom:2rem;width:3rem !important;left:auto;z-index:999}.menu__wrapper>.btn:before{content:"\uF142";font-family:var(--fa-family-classic)}::slotted([slot=btns]){border:none !important;margin:0 !important;display:block !important;width:fit-content}::slotted([slot=primary-action]){overflow:hidden;background-color:rgba(0,0,0,0);text-indent:-300%;position:absolute !important;inset:0;margin:0 !important;z-index:99;border:none}:host(:not(.prevent-hover)) ::slotted([slot=primary-action]:is(:hover,:focus,.hover)){outline:2px solid var(--hover-outline-colour);outline-offset:-2px;border-radius:var(--card-border-radius) !important}:host(.hasLink) slot[name=link]{position:absolute;display:block;inset:0;z-index:1}::slotted([slot=link]){position:absolute !important;display:block !important;inset:0 !important;z-index:1 !important;margin:0 !important;text-indent:-300% !important;overflow:hidden !important}::slotted([slot=link]):after{display:none !important}:host(.card--article){--card-head-height: 5rem;--card-fs: 1rem;--card-gap: 0.5rem;--card-body-top-padding: 1rem;--card-body-bottom-padding: 0.5rem;--card-left-padding: 0.5rem;--card-right-padding: 0.75rem;--card-right-arrow-display: none;--card-body-fs: 0.6875rem;--card-body-lh: 1rem;--card-footer-bottom-padding: 0.5rem;--card-badges-top-padding:0.5rem;--card-badges-bottom-padding: 0;--card-right-padding: 0.5rem;--card-left-padding: 0.5rem}::slotted(span:is(.duration):not([class*=pt-])){font-size:var(--card-fs) !important;line-height:var(--card-lh) !important;padding-top:0 !important}::slotted(span:is(.duration):not([class*=pt-])):before{content:"\uF017";font-family:var(--fa-family-classic);color:var(--colour-warning);padding-right:.25rem}/*# sourceMappingURL=assets/css/components/card.component.css.map */
31
+ :host{position:relative;border-radius:var(--card-border-radius);margin-bottom:2rem;display:block;outline:var(--card-outline);outline-offset:-2px}.wrapper{border-radius:var(--card-border-radius);box-shadow:var(--card-box-shadow);position:relative;font-weight:bold;font-size:var(--card-fs);line-height:var(--card-lh);color:var(--colour-primary);min-height:100%;width:100%;text-align:left;display:flex;flex-direction:column;overflow:hidden;z-index:0;background:var(--colour-canvas-2);outline:2px solid var(--outline-colour, --colour-canvas-2);outline-offset:-2px}.wrapper>*{width:100%;box-sizing:border-box}:host-context(:is(a,label,button)){margin-bottom:0 !important}:host(.border-0){box-shadow:none;--card-left-padding: 0rem;outline-offset:1px !important}.card__head:has(img){min-height:var(--card-head-height);position:relative;overflow:hidden;background:rgba(0,0,0,.1);z-index:-1}.card__head:has(img)>img{position:absolute;top:0;left:0;margin:-2px;width:calc(100% + 4px);height:calc(100% + 4px);object-fit:cover}.card__head:has(img):after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--card-head-overlay)}.card__body{padding:var(--card-body-top-padding) var(--card-right-padding) var(--card-body-bottom-padding) var(--card-left-padding)}.card__footer{margin-top:auto;padding:var(--card-footer-top-padding, 0) var(--card-right-padding) var(--card-footer-bottom-padding, 0) var(--card-left-padding)}::slotted(i){font-size:1.5rem !important;margin:-3px var(--card-icon-right) 0 0 !important;vertical-align:middle !important}::slotted(i:not(.fa-light):not(.fa-bold)){font-weight:400 !important}::slotted(.badge){margin-bottom:.375rem !important}::slotted(span:not(.badge,.title)){display:block !important;font-weight:normal !important;font-size:var(--card-body-fs, 1rem) !important;line-height:var(--card-body-lh, inherit) !important;overflow-x:clip;text-overflow:ellipsis}::slotted(small){padding-top:var(--card-gap, 1rem) !important;display:block !important;font-weight:normal !important;padding-bottom:0 !important;color:var(--colour-body)}::slotted(span:not(.badge,.title):not([class*=pt-])){padding-top:var(--card-gap, 1.5rem) !important}::slotted(:is(a,button)[slot=footer]){margin-bottom:var(--card-footer-bottom-padding) !important}.card__body:has(.card__total){--card-head-top-padding: 1rem;--card-head-bottom-padding: 1.5rem}.card__total{font-size:3rem;line-height:3rem;padding-right:1rem;margin-top:.5rem}.card__total i{font-family:var(--fa-style-family, "Font Awesome 7 Pro");font-weight:var(--fa-style, 900);display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important}::slotted([slot=total-icon]){display:block !important;font-size:2.5rem !important;margin:.5rem 0 .5rem 0 !important;line-height:2.5rem}.card__head:has(img)~.card__badges{position:absolute;top:0;text-align:right;left:0;z-index:9}.card__badges:not(.empty){padding:var(--card-badges-top-padding, 1rem) var(--card-right-padding) var(--card-badges-bottom-padding, 0) var(--card-left-padding);margin-bottom:-1.5rem}.card__head:not(:has(img))~.card__badges{text-align:end}@layer elements{body:not(.js-enabled) dialog:not([open]):target{display:block}dialog,[popover]{--dialog-padding: 0.5rem;--mh-padding-inline: var(--dialog-padding);color:inherit;width:fit-content;height:fit-content;border:none;overscroll-behavior:contain;outline:var(--contrast-outline-width, 0px) solid var(--colour-primary);font-size:1rem;background:var(--dropdown-bg);margin-block:var(--dropdown-margin-block);padding:var(--dialog-padding);border-radius:var(--dropdown-border-radius);box-shadow:var(--dropdown-box-shadow)}dialog>*:last-child,[popover]>*:last-child{margin-bottom:0}dialog>:is(p):last-child,[popover]>:is(p):last-child{padding-bottom:0}dialog[open]:has(iam-modal){--modal-inner-dialog-display: contents;place-self:center}@media(prefers-color-scheme: light){dialog[open]:has(iam-modal){color-scheme:light;--colour-body: #595959;--colour-heading: var(--colour-primary-theme)}}dialog::backdrop{background:rgba(0,0,0,.3);backdrop-filter:blur(4px);overscroll-behavior:contain}dialog[open],[popover]:popover-open{display:flex;flex-direction:column}*:not(.dialog__wrapper)>dialog[open],*:not(.dialog__wrapper)>[popover]:popover-open{overflow-y:auto;width:90vw;max-width:20.25rem;max-height:min(90vh,47rem);overscroll-behavior:contain}@media screen and (min-width: 36em){*:not(.dialog__wrapper)>dialog[open],*:not(.dialog__wrapper)>[popover]:popover-open{min-width:20.9375rem;width:fit-content;max-width:42.875rem}}@media screen and (min-width: 62em){*:not(.dialog__wrapper)>dialog[open],*:not(.dialog__wrapper)>[popover]:popover-open{min-width:28.375rem;width:fit-content;max-width:46rem}}details.bg-light{margin-inline:calc(var(--dialog-padding)*-1);padding-inline:var(--dialog-padding)}}@layer elements{.dialog__wrapper{position:relative;display:inline-block;margin-bottom:calc(var(--btn-margin) - .25rem)}.dialog__wrapper:has(dialog[open],dialog:popover-open)>button{background:var(--colour-btn-secondary-bg-hover)}.dialog__wrapper:has(dialog[open],dialog:popover-open)>button:not(.btn-action){color:var(--colour-btn-secondary-hover)}.dialog__wrapper:has(dialog[open],dialog:popover-open)>button{filter:brightness(85%);transition:background .1s,color .1s;border-radius:1.5rem}.dialog__wrapper>.btn:first-child:not(.btn-compact):not([class*=fa-]):after{content:"";display:inline-block;margin-left:1em;height:1em;width:1em;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;transform:rotate(90deg)}.dialog__wrapper>.btn:first-child[aria-expanded]:not([data-number]):after{transform:rotate(270deg)}.dialog__wrapper>.btn:first-child:has(+dialog[open]):not([data-number]):after{transform:rotate(270deg)}.dialog__wrapper>[popover]{display:var(--menu-display, none);position:fixed;top:anchor(bottom) !important;left:anchor(left) !important;position-try-fallbacks:flip-block,flip-inline !important;margin:0 0 0 .25rem;padding:.5rem}.dialog__wrapper>[popover]::backdrop{display:none}.dialog__wrapper>[popover]:popover-open{display:block !important}.dialog__wrapper:has([popover]:popover-open)>button{background-color:var(--colour)}.dialog__wrapper>:is(dialog[open],dialog:popover-open){left:0;margin-top:-1rem;top:100%;z-index:var(--index-floating);min-width:20rem;border-radius:1rem;width:20rem}@media screen and (min-width: 36em){.dialog__wrapper>:is(dialog[open],dialog:popover-open){width:20.9375rem}}@media screen and (min-width: 62em){.dialog__wrapper>:is(dialog[open],dialog:popover-open){width:22.5rem}}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list{width:fit-content !important;min-width:10rem !important;max-width:15rem !important;padding:var(--menu-padding, 0.5rem);margin:0;background:var(--menu-bg, canvas);border:var(--menu-border, 2px solid grey);overflow:auto;border:none !important;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0,0,0,.1)}@media screen and (min-width: 36em){.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list{width:max-content !important}}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list 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}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .radio--tick{margin-right:0;padding-left:1.5rem;margin-bottom:0}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .radio--tick:before{left:0;font-size:1em;top:.75rem}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a{padding:.375rem}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a:not(:hover,:focus,:active){border-color:rgba(0,0,0,0)}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a{margin:0}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list a:after{display:none}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .btn-action{background:unset;border:unset;color:var(--colour-primary);font-weight:inherit;font-family:inherit;font-size:1rem;line-height:1.1875rem;display:block;margin:var(--menu-item-margin, 0 0 0.25rem 0);padding-block:var(--menu-item-padding, 0.5rem);width:var(--menu-item-width, 100%);max-width:var(--menu-item-width, 100%);text-align:var(--menu-item-text-align, left)}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .btn-action:not(:hover,:focus,:active){border-color:rgba(0,0,0,0)}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .btn-action:is(:hover,:focus){background:var(--colour-light) !important;border-radius:.25rem !important}.dialog__wrapper>:is(dialog[open],dialog:popover-open).dialog--list .btn-action:is(:active){background:#e0e0e0 !important;border-radius:.25rem !important}.dialog__wrapper>:is(dialog[open],dialog:popover-open) :is(dialog[open],dialog:popover-open){display:contents}.dialog__wrapper.dialog__wrapper--right>:is(dialog[open],dialog:popover-open){right:0;left:auto}.dialog__wrapper.dialog__wrapper--sm>:is(dialog[open],dialog:popover-open){width:14.9375rem}.dialog__wrapper.dialog__wrapper--lg>:is(dialog[open],dialog:popover-open){width:19.9375rem}@media screen and (min-width: 36em){.dialog__wrapper.dialog__wrapper--sm-left>dialog[open]{left:0;right:auto}.dialog__wrapper.dialog__wrapper--sm-right>dialog[open]{right:0;left:auto}.dialog__wrapper.dialog__wrapper--sm>dialog[open]{width:16.5625rem}.dialog__wrapper.dialog__wrapper--lg>dialog[open]{width:28.25rem}}@media screen and (min-width: 62em){.dialog__wrapper.dialog__wrapper--md-left>dialog[open]{left:0;right:auto}.dialog__wrapper.dialog__wrapper--md-right>dialog[open]{right:0;left:auto}.dialog__wrapper.dialog__wrapper--sm>dialog[open]{width:16.5625rem}.dialog__wrapper.dialog__wrapper--lg>dialog[open]{width:28.375rem}}.dialog__wrapper :is(.empty,.individual){display:none}@supports selector(:has(*)){.dialog__wrapper :is(.empty,.individual){display:inline}}.dialog__wrapper:has(input:checked) .empty,.dialog__wrapper:not(:has(input:checked)) .individual,.dialog__wrapper:has(input:checked~input:checked) .individual,.dialog__wrapper:not(:has(input:checked~input:checked)) .multiple{display:none}}@layer elements{button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button:focus:not(:focus-visible){outline:0}:is(button,[type=button],[type=reset],[type=submit],[role=button]){-webkit-appearance:button;&:not(:disabled){cursor:pointer}}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 2px;--btn-font-size: 1.125rem;--btn-line-height: 1.25rem;display:inline-block;font-weight:bold;text-align:left;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;color:var(--colour-btn);font-size:var(--btn-font-size);line-height:var(--btn-line-height);padding:var(--btn-padding-block) var(--btn-padding-inline);border-radius:1.5rem;margin-bottom:var(--btn-margin);background:none;transition:border .5s,background .5s,color .5s;height:auto;max-width:fit-content;appearance:none;white-space:nowrap;&:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}&:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}&:not(.border-0){background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border)}&:not(:last-child){margin-right:var(--btn-margin)}}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}a:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn,.btn:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){outline:0;text-decoration:none;background:var(--colour-btn-bg-hover);color:var(--colour-btn-hover);border-radius:1.5rem}a:is(:active,.active):not([disabled]) .btn,.btn:is(:active,.active):not([disabled]){filter:brightness(85%);transition:background .1s,color .1s;color:var(--colour-btn);border-radius:1.5rem}a:disabled .btn,.btn:disabled,[disabled] .btn,.btn[disabled]{opacity:.4;cursor:not-allowed}.btn.btn-complete{--colour: var(--colour-success);--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn-complete,.btn.btn-complete:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem;&:before{content:"\uF00C";font-family:var(--fa-family-classic);margin-right:1rem;font-style:inherit;width:1rem;display:inline-block;height:var(--btn-line-height);vertical-align:bottom}}.btn.btn-sm{--btn-padding-block: 0.5rem;--btn-padding-inline: 2rem;--btn-margin: 0.5rem;--btn-font-size: 1rem}.btn{&[class*=fa-]:before{content:var(--fa);font-family:var(--fa-family-classic)}&[class*=fa-after]{padding-right:4rem}&[class*=fa-after]:before{margin-right:0;margin-right:.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}&:not(.btn-compact):before{margin-right:1rem}i[class*=fa-]{--fa-width: 1em;font-family:var(--fa-family-classic);margin-right:1rem;line-height:1em;font-style:inherit;&:not(:first-child){margin-left:1rem;margin-right:0}}}.btn.btn--prompt{&:after{content:"";height:var(--btn-line-height);width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem}}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn--prompt,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active){&:after{margin-left:1.5rem;margin-right:-0.5rem}}.btn-filter{&:after{content:"\uF1DE";display:inline-block;margin-left:1em;margin-bottom:-0.15em;height:1em;width:1em;z-index:var(--index-focus);color:currentColor;font-weight:300;font-family:var(--fa-family-classic)}}}@layer elements{.btn-secondary{color:var(--colour-btn-secondary);&:not(.border-0){background:var(--colour-btn-secondary-bg);border:2px solid var(--colour-btn-secondary-border)}}a:is(:hover,:focus,.hover,:active,.active):not([disabled]) .btn-secondary,.btn-secondary:is(:hover,:focus,.hover,:focus-within,:active,.active):not([disabled]){background:var(--colour-btn-secondary-bg-hover);color:var(--colour-btn-secondary-hover)}}@layer elements{.btn.btn-tertiary{background-color:transparent;border:none;color:var(--colour-link);margin:0 var(--btn-margin) var(--btn-margin) 0;padding:0;font-size:1.125rem;font-weight:normal;line-height:1.5rem;min-height:1.5rem;position:relative;&:after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}&.text-decoration-none:after{width:0%}&[class*=fa-]{margin-left:0;margin-right:.5rem}&[class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}&:is(:hover,:focus,.hover,:focus-within):not([disabled],:disabled,:active,.active){&:after{width:60% !important}}&:is(:active,.active):not([disabled],:disabled){color:var(--colour-active)}}}@layer elements{.btn-action{--btn-border-width: 1px;--btn-padding-block: 0.3125rem /* 5px */;--btn-padding-inline: 0.3125rem /* 5px */;--btn-margin: 0.5rem;border-radius:.25rem !important;font-weight:400 !important;font-size:1rem;line-height:1.25rem;&:not(.btn-primary){color:var(--colour-heading)}&:not(.btn-primary):not(.border-0){background-color:var(--colour-canvas-2);border:var(--btn-border-width) solid var(--colour-muted)}&.btn[class*=fa-]:before{content:var(--fa);margin-right:.375rem}&.icon-only{position:relative;text-indent:-300vw;overflow:hidden;min-width:1.75rem;&:before{position:absolute;left:0;top:0;min-width:1.75rem;text-align:center;text-indent:0;padding-inline:.25rem;line-height:1.85rem}}a:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) &,&:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){background:var(--colour-btn-action-hover-bg)}.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) &,&.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){filter:brightness(90%);background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border);color:var(--colour-btn)}a:is(:active,.active):not([disabled]):not(.btn-primary) &,&:is(:active,.active):not([disabled]):not(.btn-primary){filter:brightness(85%);transition:all .1s;color:var(--colour-heading)}}.btn-action:not(.btn-compact).fa-compact-only:before{display:none !important}}@layer elements{.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:.5rem;text-align:center;width:var(--compact-size);min-width:var(--compact-size);max-width:var(--compact-size);height:var(--compact-size) !important;min-height:var(--compact-size) !important;max-height:var(--compact-size) !important;align-content:center;line-height:1 !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1rem;&:not(:last-child){margin-right:.5rem}&:before{content:var(--fa);position:absolute;display:block;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - .25rem);font-weight:900}[class*=fa-]:before{line-height:calc(var(--compact-size) - .25rem);@container style(--theme: dark){color:white}}&.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}&.btn-action{--compact-size: 2rem;font-size:1rem;&:before{font-size:1em;font-weight:400}}&.btn-secondary{--colour-btn-bg: transparent;--colour-btn-border: transparent;border-color:transparent;&:not([class*=colour-]){--colour: var(--colour-light)}}&.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse){background-color:var(--colour);color:var(--colour-primary-theme);border-color:var(--colour);&:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}}&[data-number]{position:relative}&[data-number]:after{content:attr(data-number);position:absolute;top:.5em;z-index:99;background:var(--colour-danger);height:1.5em;width:1.5em;border-radius:50%;text-indent:0;left:50%;font-size:.5em;line-height:1.5em;text-align:center;color:white;letter-spacing:-0.1em;font-family:arial,sans-serif}}.btn-compact{&:is(.fa-left,.fa-chevron-left,.fa-right,.fa-chevron-right,.fa-up,.fa-chevron-up,.fa-down,.fa-chevron-down,.fa-plus,.fa-bars,.fa-edit,.fa-envelope,.fa-calendar){--iso-display: block;--iso-font-size: 1.5rem;--iso-border-radius: 50%;--iso-text-indent: -500px}}@container style(--font-body){.btn-compact{font-size:var(--iso-font-size, 0.6rem) !important;text-indent:var(--iso-text-indent, 0px);white-space:initial;&:not(.btn-action){border-radius:var(--iso-border-radius, 0.25rem) !important}&:before{display:var(--iso-display, none);font-family:monospace !important;content:var(--iso) !important}}}@container style(--fa-font-regular){.btn-compact{text-indent:-500px;font-size:1rem !important;&:not(.btn-action){border-radius:50% !important}&:before{font-family:"Font Awesome 7 Pro" !important;content:var(--fa) !important;display:block}}}}@layer elements{.btn[popovertarget]{position:relative;anchor-name:--button2;&>.fa-chevron-down{display:none}&:not(:has(i)):not(.no-icon):after{content:"";display:inline-block;margin-right:.25em;margin-left:1em;height:.8em;width:.8em;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;transform:rotate(90deg)}&[aria-pressed]:after{transform:rotate(270deg)}}.btn:has(select){position:relative;padding:0;max-width:fit-content;min-width:fit-content;width:fit-content;select{all:unset !important;padding:var(--btn-padding-block) var(--btn-padding-inline) !important;padding-right:calc(var(--btn-padding-inline) + 2rem) !important;border-radius:1.5rem !important;appearance:none !important;background:none !important;border:none !important;color:currentColor !important;display:block;outline:none;font-weight:inherit !important;font-size:var(--btn-font-size) !important;line-height:var(--btn-line-height) !important;field-sizing:content !important;appearance:base-select !important}&:after{position:absolute;top:.625rem;right:1.5rem;content:"";height:1.5rem;width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem;transform:rotate(90deg);pointer-events:none}}.btn-action:has(select){padding-block:0;padding-right:2rem;font-size:1em;select{margin:0rem 0rem !important;padding-right:2rem !important;margin-right:-2rem !important;font-size:1rem !important}&:after{top:.2rem;right:.5rem}}}@layer elements{.btn__group{display:flex;flex-direction:column;row-gap:var(--gap);reading-flow:source-order;margin-bottom:1.5rem;.btn-compact{max-width:fit-content;margin-inline:auto}}:where(.btn__group,iam-modal){reading-flow:source-order;.btn{margin-inline-end:0;width:100%;max-width:100%;text-align:center;white-space:normal;margin:0;&:not(:last-child){margin-right:0}}.btn-tertiary{max-width:fit-content;margin-block:0 !important;margin-inline:auto !important;order:3;reading-order:3}.btn-secondary{order:2;reading-order:2}.btn-primary{order:1;reading-order:1;margin:0;&:not(:last-child){margin:0}}}:is(iam-form,form) .btn__group{padding-top:1rem}@container (min-width: 36em){.btn__group{flex-direction:row;row-gap:0;gap:var(--gap);flex-wrap:wrap;.btn-tertiary{max-width:fit-content;margin-inline:0 !important;margin-block:auto;order:1}.btn-secondary{order:2}.btn-primary{order:3}.btn-compact{margin-inline:0;margin-block:auto}}:where(iam-modal,.btn__group){.btn{max-width:fit-content;white-space:nowrap;margin-block:auto}}.btn__group{.btn-tertiary{reading-order:1}.btn-secondary{reading-order:2}.btn-primary{reading-order:3}}iam-modal{.btn-tertiary{reading-order:3;order:1}.btn-secondary{order:2;reading-order:2}.btn-primary{order:3;reading-order:1}}.btn__group.text-end{justify-content:flex-end}:is(iam-form,form) .btn__group{justify-content:flex-end;padding-top:3rem}iam-modal .btn__group:last-child .btn,dialog .btn__group:last-child .btn{margin-bottom:0}}}:host(:is(:active,.active):not(.prevent-hover)){--card-icon-right: var(--card-icon-right-overide, 0.5rem)}:host(.prevent-hover){pointer-events:none}:host(.prevent-hover) *{pointer-events:all}:host(.show-icon){--card-right-padding: 3.5rem}:host(.show-icon) .card__body:before,:host(.show-icon) .card__body:after{content:"";display:var(--card-right-arrow-display, block);position:absolute;right:var(--card-icon-right);bottom:var(--card-bottom-padding);height:1.5rem;width:1.5rem;background:var(--card-icon-bg);border-radius:50%}:host(.show-icon) .card__body:after{background:var(--card-icon-colour);mask-image:var(--icon, var(--icon-arrow));mask-size:50%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon, var(--icon-arrow));-webkit-mask-size:50%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;z-index:2}.card__body:has(.card__illustration){align-items:center;display:flex}.card__body:has(.card__illustration) .card__illustration{height:4rem;width:4rem;margin-right:1.5rem;margin-top:-1.25rem;margin-bottom:-1.25rem;position:relative}.card__body:has(.card__illustration) .card__illustration img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}:host([class*=colour-]){border-left:.75rem solid var(--colour, var(--colour-primary))}slot[name=secondary]{display:block;position:absolute;top:.5rem;right:0;margin:.5rem .5rem 0 0;z-index:999}::slotted([slot=secondary]:not(:hover,:focus,:active,.hover)){background:none !important;color:var(--colour-btn) !important}::slotted([slot=checkbox]){position:absolute !important;top:.5rem;right:.5rem;width:2rem;height:2rem;height:2.5rem;overflow:hidden}.menu__wrapper{position:absolute;right:1rem;bottom:2rem;width:3rem !important;left:auto;z-index:999}.menu__wrapper>.btn:before{content:"\uF142";font-family:var(--fa-family-classic)}::slotted([slot=btns]){border:none !important;margin:0 !important;display:block !important;width:fit-content}::slotted([slot=primary-action]){overflow:hidden;background-color:rgba(0,0,0,0);text-indent:-300%;position:absolute !important;inset:0;margin:0 !important;z-index:99;border:none}:host(:not(.prevent-hover)) ::slotted([slot=primary-action]:is(:hover,:focus,.hover)){outline:2px solid var(--hover-outline-colour);outline-offset:-2px;border-radius:var(--card-border-radius) !important}:host(.hasLink) slot[name=link]{position:absolute;display:block;inset:0;z-index:1}::slotted([slot=link]){position:absolute !important;display:block !important;inset:0 !important;z-index:1 !important;margin:0 !important;text-indent:-300% !important;overflow:hidden !important}::slotted([slot=link]):after{display:none !important}:host(.card--article){--card-head-height: 5rem;--card-fs: 1rem;--card-gap: 0.5rem;--card-body-top-padding: 1rem;--card-body-bottom-padding: 0.5rem;--card-left-padding: 0.5rem;--card-right-padding: 0.75rem;--card-right-arrow-display: none;--card-body-fs: 0.6875rem;--card-body-lh: 1rem;--card-footer-bottom-padding: 0.5rem;--card-badges-top-padding:0.5rem;--card-badges-bottom-padding: 0;--card-right-padding: 0.5rem;--card-left-padding: 0.5rem}::slotted(span:is(.duration):not([class*=pt-])){font-size:var(--card-fs) !important;line-height:var(--card-lh) !important;padding-top:0 !important}::slotted(span:is(.duration):not([class*=pt-])):before{content:"\uF017";font-family:var(--fa-family-classic);color:var(--colour-warning);padding-right:.25rem}/*# sourceMappingURL=assets/css/components/card.component.css.map */
32
32
 
33
33
  </style>
34
34
  ${u}
35
35
  <slot name="link"></slot>
36
36
  <slot name="primary-action"></slot>
37
- `,this.shadowRoot.appendChild(r.content.cloneNode(!0))}connectedCallback(){return w(this,void 0,void 0,function*(){var r,a;const t=this,c=t.shadowRoot.querySelector(".card__body");if(document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location"),window.customElements.get("iam-menu")||window.customElements.define("iam-menu",f),v(t),t.hasAttribute("data-illustration")&&c.insertAdjacentHTML("afterbegin",`<div class="card__illustration"><img src="${this.getAttribute("data-illustration")}" alt="" loading="lazy" /></div>`),!t.querySelector('[slot="btns"]')&&!t.querySelector('[slot="secondary"]')&&!t.classList.contains("card--article")&&!t.closest(".carousel--article-cards")&&t.classList.add("show-icon"),t.querySelector('[slot="btns"]')&&(t.shadowRoot.innerHTML+=`<div class="menu__wrapper">
37
+ `,this.shadowRoot.appendChild(a.content.cloneNode(!0))}connectedCallback(){return w(this,void 0,void 0,function*(){var a,r;const e=this,c=e.shadowRoot.querySelector(".card__body");if(document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location"),window.customElements.get("iam-menu")||window.customElements.define("iam-menu",f),v(e),e.hasAttribute("data-illustration")&&c.insertAdjacentHTML("afterbegin",`<div class="card__illustration"><img src="${this.getAttribute("data-illustration")}" alt="" loading="lazy" /></div>`),!e.querySelector('[slot="btns"]')&&!e.querySelector('[slot="secondary"]')&&!e.classList.contains("card--article")&&!e.closest(".carousel--article-cards")&&e.classList.add("show-icon"),e.querySelector('[slot="btns"]')&&(e.shadowRoot.innerHTML+=`<div class="menu__wrapper">
38
38
  <button class="btn btn-secondary btn-compact fa-ellipsis-vertical m-0" popovertarget="actions" style="anchor-name: --anchor-el;" title="Further actions" type="button">Open further actions</button>
39
39
  <iam-menu class="dialog--fix dialog--list" id="actions" style="position-anchor: --anchor-el;" popover>
40
40
  <slot name="btns"></slot>
41
41
  </iam-menu>
42
- </div>`,!CSS.supports("top","anchor(top)"))){const e=(r=this.shadowRoot)===null||r===void 0?void 0:r.querySelector('[popovertarget="actions"]'),n=(a=this.shadowRoot)===null||a===void 0?void 0:a.querySelector("[popover]");e?.addEventListener("click",l=>{this.style.setProperty("overflow","visible"),this.style.setProperty("z-index","999999");const i=e.getBoundingClientRect(),m=i.top,g=i.left;n.style.setProperty("display","block"),n.style.setProperty("top",m+"px"),n.style.setProperty("left",g-100+"px")}),document.addEventListener("scroll",l=>{n.style.setProperty("display","none")})}if(Array.from(t.querySelectorAll('[slot="btns"]')).forEach(e=>{e.classList.add("btn"),e.classList.add("btn-action")}),t.querySelector('[slot="checkbox"],[slot="secondary"]')){const e=t.querySelector('[slot="checkbox"],[slot="secondary"]');e.addEventListener("mouseenter",()=>{t.classList.add("prevent-hover")}),e.addEventListener("mouseleave",()=>{t.classList.remove("prevent-hover")})}if(t.shadowRoot.querySelector(".menu__wrapper")){const e=t.shadowRoot.querySelector(".menu__wrapper");e.addEventListener("mouseenter",()=>{t.classList.add("prevent-hover")}),e.addEventListener("mouseleave",()=>{t.classList.remove("prevent-hover")})}const s=t.querySelector('input[type="checkbox"]');s&&s.addEventListener("change",()=>{if(s.checked){const e=new CustomEvent("select-card",{detail:{"Card value":s.value,"input name":s.getAttribute("name")}});t.dispatchEvent(e)}else{const e=new CustomEvent("unselect-card",{detail:{"Card value":s.value,"input name":s.getAttribute("name")}});t.dispatchEvent(e)}});const p=t.querySelector('[slot="secondary"]');p&&p.addEventListener("click",()=>{const e=new CustomEvent("secondary-button-clicked",{detail:{Title:p.getAttribute("title")}});t.dispatchEvent(e)});const o=t.querySelectorAll('[slot="btns"]');Array.from(o).forEach(e=>{e.addEventListener("click",()=>{const n=new CustomEvent("action-button-clicked",{detail:{Title:e.getAttribute("title")}});t.dispatchEvent(n)})}),this.querySelector('[slot="link"]')&&this.classList.add("hasLink"),h(t,"iam-card",["select-card","unselect-card","secondary-button-clicked","action-button-clicked"])})}static get observedAttributes(){return["data-image"]}attributeChangedCallback(r,a,t){switch(r){case"data-total":{this.shadowRoot.querySelector(".card__total")&&(this.shadowRoot.querySelector(".card__total").innerHTML=t);break}case"data-image":{if(a!=t){const c=this.shadowRoot.querySelector(".card__head img");c&&c.setAttribute("src",t)}break}}}}export{y as default};
42
+ </div>`,!CSS.supports("top","anchor(top)"))){const t=(a=this.shadowRoot)===null||a===void 0?void 0:a.querySelector('[popovertarget="actions"]'),n=(r=this.shadowRoot)===null||r===void 0?void 0:r.querySelector("[popover]");t?.addEventListener("click",l=>{this.style.setProperty("overflow","visible"),this.style.setProperty("z-index","999999");const i=t.getBoundingClientRect(),m=i.top,g=i.left;n.style.setProperty("display","block"),n.style.setProperty("top",m+"px"),n.style.setProperty("left",g-100+"px")}),document.addEventListener("scroll",l=>{n.style.setProperty("display","none")})}if(Array.from(e.querySelectorAll('[slot="btns"]')).forEach(t=>{t.classList.add("btn"),t.classList.add("btn-action")}),e.querySelector('[slot="checkbox"],[slot="secondary"]')){const t=e.querySelector('[slot="checkbox"],[slot="secondary"]');t.addEventListener("mouseenter",()=>{e.classList.add("prevent-hover")}),t.addEventListener("mouseleave",()=>{e.classList.remove("prevent-hover")})}if(e.shadowRoot.querySelector(".menu__wrapper")){const t=e.shadowRoot.querySelector(".menu__wrapper");t.addEventListener("mouseenter",()=>{e.classList.add("prevent-hover")}),t.addEventListener("mouseleave",()=>{e.classList.remove("prevent-hover")})}const s=e.querySelector('input[type="checkbox"]');s&&s.addEventListener("change",()=>{if(s.checked){const t=new CustomEvent("select-card",{detail:{"Card value":s.value,"input name":s.getAttribute("name")}});e.dispatchEvent(t)}else{const t=new CustomEvent("unselect-card",{detail:{"Card value":s.value,"input name":s.getAttribute("name")}});e.dispatchEvent(t)}});const p=e.querySelector('[slot="secondary"]');p&&p.addEventListener("click",()=>{const t=new CustomEvent("secondary-button-clicked",{detail:{Title:p.getAttribute("title")}});e.dispatchEvent(t)});const o=e.querySelectorAll('[slot="btns"]');Array.from(o).forEach(t=>{t.addEventListener("click",()=>{const n=new CustomEvent("action-button-clicked",{detail:{Title:t.getAttribute("title")}});e.dispatchEvent(n)})}),this.querySelector('[slot="link"]')&&this.classList.add("hasLink"),h(e,"iam-card",["select-card","unselect-card","secondary-button-clicked","action-button-clicked"])})}static get observedAttributes(){return["data-image"]}attributeChangedCallback(a,r,e){switch(a){case"data-total":{this.shadowRoot.querySelector(".card__total")&&(this.shadowRoot.querySelector(".card__total").innerHTML=e);break}case"data-image":{if(r!=e){const c=this.shadowRoot.querySelector(".card__head img");c&&c.setAttribute("src",e)}break}}}}export{y as default};
43
43
  //# sourceMappingURL=card.component.min.js.map