@iamproperty/components 7.6.1 → 7.6.2
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.
- package/assets/css/components/actionbar.component.css +1 -1
- package/assets/css/components/actionbar.component.css.map +1 -1
- package/assets/css/components/actionbar.global.css +1 -1
- package/assets/css/components/actionbar.global.css.map +1 -1
- package/assets/css/components/address-lookup.component.css +1 -1
- package/assets/css/components/address-lookup.component.css.map +1 -1
- package/assets/css/components/applied-filters.css +1 -1
- package/assets/css/components/applied-filters.css.map +1 -1
- package/assets/css/components/barchart.component.css +1 -1
- package/assets/css/components/barchart.component.css.map +1 -1
- package/assets/css/components/calendar.component.css +1 -1
- package/assets/css/components/calendar.component.css.map +1 -1
- package/assets/css/components/calendar.config.css +1 -1
- package/assets/css/components/calendar.config.css.map +1 -1
- package/assets/css/components/card.component.css +1 -1
- package/assets/css/components/card.component.css.map +1 -1
- package/assets/css/components/carousel.component.css +1 -1
- package/assets/css/components/carousel.component.css.map +1 -1
- package/assets/css/components/carousel.config.css.map +1 -1
- package/assets/css/components/charts.config.css +1 -1
- package/assets/css/components/charts.config.css.map +1 -1
- package/assets/css/components/charts.css +1 -1
- package/assets/css/components/charts.css.map +1 -1
- package/assets/css/components/charts.module.css +1 -1
- package/assets/css/components/charts.module.css.map +1 -1
- package/assets/css/components/collapsible-side.css +1 -1
- package/assets/css/components/collapsible-side.css.map +1 -1
- package/assets/css/components/content.component.css +1 -1
- package/assets/css/components/content.component.css.map +1 -1
- package/assets/css/components/darkmode.component.css +1 -1
- package/assets/css/components/darkmode.component.css.map +1 -1
- package/assets/css/components/doughnutchart.component.css +1 -1
- package/assets/css/components/doughnutchart.component.css.map +1 -1
- package/assets/css/components/fileupload.css +1 -1
- package/assets/css/components/fileupload.css.map +1 -1
- package/assets/css/components/header.css +1 -1
- package/assets/css/components/header.css.map +1 -1
- package/assets/css/components/inline-edit.css +1 -1
- package/assets/css/components/inline-edit.css.map +1 -1
- package/assets/css/components/inline-edit.preload.css.map +1 -1
- package/assets/css/components/input-range.component.css.map +1 -1
- package/assets/css/components/input.component.css +1 -1
- package/assets/css/components/input.component.css.map +1 -1
- package/assets/css/components/marketing.component.css +1 -1
- package/assets/css/components/marketing.component.css.map +1 -1
- package/assets/css/components/menu.global.css.map +1 -1
- package/assets/css/components/modal.component.css +1 -1
- package/assets/css/components/modal.component.css.map +1 -1
- package/assets/css/components/multi-step-modal.component.css +1 -1
- package/assets/css/components/multi-step-modal.component.css.map +1 -1
- package/assets/css/components/multi-step-modal.global.css.map +1 -1
- package/assets/css/components/multi-step.component.css.map +1 -1
- package/assets/css/components/multiselect.css +1 -1
- package/assets/css/components/multiselect.css.map +1 -1
- package/assets/css/components/multiselect.preload.css +1 -1
- package/assets/css/components/multiselect.preload.css.map +1 -1
- package/assets/css/components/nav.component.css +1 -1
- package/assets/css/components/nav.component.css.map +1 -1
- package/assets/css/components/nav.docs.css.map +1 -1
- package/assets/css/components/nav.global.css.map +1 -1
- package/assets/css/components/nav.preload.css.map +1 -1
- package/assets/css/components/notification.css +1 -1
- package/assets/css/components/notification.css.map +1 -1
- package/assets/css/components/pagination.css +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/password.component.css +1 -1
- package/assets/css/components/password.component.css.map +1 -1
- package/assets/css/components/popover.component.css +1 -1
- package/assets/css/components/popover.component.css.map +1 -1
- package/assets/css/components/property-searchbar.css +1 -1
- package/assets/css/components/property-searchbar.css.map +1 -1
- package/assets/css/components/rank.component.css +1 -1
- package/assets/css/components/rank.component.css.map +1 -1
- package/assets/css/components/rankings.component.css +1 -1
- package/assets/css/components/rankings.component.css.map +1 -1
- package/assets/css/components/rankings.global.css +1 -1
- package/assets/css/components/rankings.global.css.map +1 -1
- package/assets/css/components/slider.css +1 -1
- package/assets/css/components/slider.css.map +1 -1
- package/assets/css/components/snapshot.css.map +1 -1
- package/assets/css/components/split-button.component.css +1 -1
- package/assets/css/components/split-button.component.css.map +1 -1
- package/assets/css/components/stepper.css.map +1 -1
- package/assets/css/components/table-basic.component.css +1 -1
- package/assets/css/components/table-basic.component.css.map +1 -1
- package/assets/css/components/table-basic.global.css +1 -1
- package/assets/css/components/table-basic.global.css.map +1 -1
- package/assets/css/components/table.component.css +1 -1
- package/assets/css/components/table.component.css.map +1 -1
- package/assets/css/components/table.global.css +1 -1
- package/assets/css/components/table.global.css.map +1 -1
- package/assets/css/components/tabs.component.css +1 -1
- package/assets/css/components/tabs.component.css.map +1 -1
- package/assets/css/components/tabs.config.css +1 -1
- package/assets/css/components/tabs.config.css.map +1 -1
- package/assets/css/components/testimonial.css.map +1 -1
- package/assets/css/components/timeline.css +1 -1
- package/assets/css/components/timeline.css.map +1 -1
- package/assets/css/components/tooltip.component.css.map +1 -1
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/js/components/accordion/accordion.component.min.js +1 -1
- package/assets/js/components/actionbar/actionbar.component.js +1 -1
- package/assets/js/components/actionbar/actionbar.component.min.js +7 -7
- package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.js +18 -2
- package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
- package/assets/js/components/barchart/barchart.component.min.js +6 -6
- package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
- package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
- package/assets/js/components/calendar/calendar.component.min.js +5 -5
- package/assets/js/components/card/card.component.min.js +5 -5
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/carousel/carousel.component.min.js +2 -2
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -4
- package/assets/js/components/content/content.component.min.js +2 -2
- package/assets/js/components/darkmode/darkmode.component.min.js +4 -4
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js +7 -7
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
- package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
- package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/header/header.component.min.js +4 -4
- package/assets/js/components/inline-edit/inline-edit.component.min.js +3 -3
- package/assets/js/components/input/input.component.min.js +2 -2
- package/assets/js/components/input-range/input-range.component.min.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js +2 -2
- package/assets/js/components/menu/menu.component.min.js +1 -1
- package/assets/js/components/milestone/milestone.component.min.js +1 -1
- package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
- package/assets/js/components/modal/modal.component.min.js +2 -2
- package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +2 -2
- package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
- package/assets/js/components/nav/nav.component.min.js +2 -2
- package/assets/js/components/notification/notification.component.min.js +2 -2
- package/assets/js/components/pagination/pagination.component.min.js +5 -5
- package/assets/js/components/password/password.component.min.js +5 -5
- package/assets/js/components/popover/popover.component.min.js +2 -2
- package/assets/js/components/rank/rank.component.min.js +1 -1
- package/assets/js/components/rankings/rankings.component.min.js +7 -7
- package/assets/js/components/record-card/record-card.component.min.js +1 -1
- package/assets/js/components/search/search.component.min.js +1 -1
- package/assets/js/components/slider/slider.component.min.js +2 -2
- package/assets/js/components/split-button/split-button.component.min.js +2 -2
- package/assets/js/components/std-address-lookup/std-address-lookup.component.js +1 -1
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +7 -7
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
- package/assets/js/components/table/table.component.min.js +6 -6
- package/assets/js/components/table-ajax/table-ajax.component.min.js +6 -6
- package/assets/js/components/table-basic/table-basic.component.min.js +3 -3
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +6 -6
- package/assets/js/components/table-submit/table-submit.component.min.js +6 -6
- package/assets/js/components/tabs/tabs.component.min.js +4 -4
- package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
- package/assets/js/components/video-card/video-card.component.min.js +1 -1
- package/assets/js/components/word-count/word-count.component.min.js +1 -1
- package/assets/js/modules/chart.module.js +1 -1
- package/assets/js/scripts.bundle.js +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/sass/_bs_grid.scss +6 -4
- package/assets/sass/_bs_utilities.scss +51 -0
- package/assets/sass/_components.scss +16 -53
- package/assets/sass/_corefiles.scss +10 -40
- package/assets/sass/_elements.scss +25 -118
- package/assets/sass/_fonts.scss +3 -3
- package/assets/sass/_func.scss +0 -8
- package/assets/sass/_functions/bs_functions.scss +487 -0
- package/assets/sass/_functions/bs_mixins.scss +2103 -0
- package/assets/sass/_functions/bs_utilities.scss +1 -1
- package/assets/sass/_functions/{variables_old.scss → bs_variables.scss} +11 -9
- package/assets/sass/_functions/functions.scss +9 -449
- package/assets/sass/_functions/mixins.scss +1 -643
- package/assets/sass/_functions/utility-mixins.scss +1 -1523
- package/assets/sass/_functions/variables.scss +1 -729
- package/assets/sass/_grid.scss +51 -39
- package/assets/sass/_utilities.scss +28 -50
- package/assets/sass/components/actionbar.component.scss +33 -33
- package/assets/sass/components/actionbar.global.scss +6 -6
- package/assets/sass/components/address-lookup.component.scss +4 -9
- package/assets/sass/components/address-lookup.preload.scss +3 -3
- package/assets/sass/components/barchart.component.scss +14 -14
- package/assets/sass/components/calendar.component.scss +20 -20
- package/assets/sass/components/calendar.config.scss +19 -19
- package/assets/sass/components/card.component.scss +8 -10
- package/assets/sass/components/card.module.scss +9 -9
- package/assets/sass/components/carousel.component.scss +15 -15
- package/assets/sass/components/carousel.config.scss +5 -5
- package/assets/sass/components/charts.config.scss +6 -6
- package/assets/sass/components/charts.module.scss +16 -69
- package/assets/sass/components/charts.scss +8 -8
- package/assets/sass/components/collapsible-side.scss +42 -42
- package/assets/sass/components/darkmode.component.scss +2 -4
- package/assets/sass/components/doughnutchart.component.scss +4 -4
- package/assets/sass/components/fileupload.scss +23 -24
- package/assets/sass/components/filter-card.component.scss +9 -9
- package/assets/sass/components/header.scss +4 -4
- package/assets/sass/components/inline-edit.preload.scss +5 -5
- package/assets/sass/components/inline-edit.scss +1 -1
- package/assets/sass/components/input-range.component.scss +2 -2
- package/assets/sass/components/input.component.scss +2 -3
- package/assets/sass/components/marketing.component.scss +1 -1
- package/assets/sass/components/menu.component.scss +6 -6
- package/assets/sass/components/menu.global.scss +6 -6
- package/assets/sass/components/modal.component.scss +9 -9
- package/assets/sass/components/multi-step-modal.component.scss +14 -14
- package/assets/sass/components/multi-step-modal.global.scss +2 -2
- package/assets/sass/components/multi-step.component.scss +10 -10
- package/assets/sass/components/multiselect.preload.scss +5 -5
- package/assets/sass/components/multiselect.scss +11 -16
- package/assets/sass/components/nav.component.scss +55 -55
- package/assets/sass/components/nav.docs.scss +2 -2
- package/assets/sass/components/nav.global.scss +30 -30
- package/assets/sass/components/nav.preload.scss +8 -8
- package/assets/sass/components/notification.scss +14 -14
- package/assets/sass/components/pagination.scss +15 -15
- package/assets/sass/components/password.component.scss +6 -10
- package/assets/sass/components/popover.component.scss +5 -5
- package/assets/sass/components/property-searchbar.scss +9 -9
- package/assets/sass/components/rank.component.scss +3 -3
- package/assets/sass/components/rankings.component.scss +2 -2
- package/assets/sass/components/rankings.global.scss +7 -7
- package/assets/sass/components/record-card.component.scss +4 -4
- package/assets/sass/components/slider.scss +3 -3
- package/assets/sass/components/snapshot.scss +2 -2
- package/assets/sass/components/stepper.scss +7 -7
- package/assets/sass/components/table-basic.component.scss +4 -4
- package/assets/sass/components/table-basic.global.scss +11 -11
- package/assets/sass/components/table.component.scss +1 -1
- package/assets/sass/components/table.global.scss +7 -14
- package/assets/sass/components/tabs.config.scss +10 -10
- package/assets/sass/components/testimonial.scss +7 -7
- package/assets/sass/components/timeline.scss +2 -2
- package/assets/sass/components/tooltip.component.scss +3 -3
- package/assets/sass/core.scss +1 -13
- package/assets/sass/elements/admin-panel.scss +20 -20
- package/assets/sass/elements/badge-tag.scss +9 -9
- package/assets/sass/elements/brand.css +80 -0
- package/assets/sass/elements/buttons--action.scss +8 -8
- package/assets/sass/elements/buttons--compact.scss +12 -12
- package/assets/sass/elements/buttons--global.scss +31 -33
- package/assets/sass/elements/buttons--secondary.scss +4 -4
- package/assets/sass/elements/buttons--special.scss +3 -3
- package/assets/sass/elements/buttons--tertiary.scss +7 -7
- package/assets/sass/elements/buttons.scss +9 -33
- package/assets/sass/elements/code.css +46 -0
- package/assets/sass/elements/container.scss +14 -63
- package/assets/sass/elements/details.scss +35 -35
- package/assets/sass/elements/dialog.scss +7 -7
- package/assets/sass/elements/feature.scss +4 -4
- package/assets/sass/elements/forms.scss +121 -89
- package/assets/sass/elements/{hr.scss → hr.css} +1 -10
- package/assets/sass/elements/{icons.scss → icons.css} +6 -12
- package/assets/sass/elements/input.scss +58 -8
- package/assets/sass/elements/links.scss +27 -26
- package/assets/sass/elements/lists--breadcrumbs.scss +26 -0
- package/assets/sass/elements/lists--steps.css +171 -0
- package/assets/sass/elements/lists--tick-list.scss +81 -0
- package/assets/sass/elements/lists.scss +19 -310
- package/assets/sass/elements/media.css +20 -0
- package/assets/sass/elements/modal.scss +23 -23
- package/assets/sass/elements/popover.scss +13 -13
- package/assets/sass/elements/prefix.scss +9 -9
- package/assets/sass/elements/progress.scss +24 -24
- package/assets/sass/elements/table.element.scss +19 -19
- package/assets/sass/elements/toggle-button.scss +4 -4
- package/assets/sass/elements/tooltips.scss +41 -49
- package/assets/sass/elements/type.css +158 -0
- package/assets/sass/email.scss +7 -6
- package/assets/sass/error.scss +7 -14
- package/assets/sass/foundations/colours.scss +91 -0
- package/assets/sass/foundations/reboot.scss +16 -64
- package/assets/sass/foundations/root.scss +150 -138
- package/assets/sass/main.scss +3 -13
- package/assets/sass/templates/auth.scss +14 -14
- package/assets/sass/templates/form.scss +10 -12
- package/assets/sass/utilities/align.scss +25 -0
- package/assets/sass/utilities/border.scss +81 -0
- package/assets/sass/utilities/clearfix.scss +9 -0
- package/assets/sass/utilities/colours.scss +43 -0
- package/assets/sass/utilities/display.scss +90 -0
- package/assets/sass/utilities/fixed.scss +17 -0
- package/assets/sass/utilities/flex.scss +150 -0
- package/assets/sass/utilities/gap.scss +8 -0
- package/assets/sass/utilities/gradients.scss +40 -0
- package/assets/sass/utilities/js-display.scss +13 -0
- package/assets/sass/utilities/line-clamp.scss +25 -0
- package/assets/sass/utilities/margins.scss +75 -0
- package/assets/sass/utilities/max-height.scss +94 -0
- package/assets/sass/utilities/opacity.scss +21 -0
- package/assets/sass/utilities/order.scss +43 -0
- package/assets/sass/utilities/overflow.scss +17 -0
- package/assets/sass/utilities/paddings.scss +34 -0
- package/assets/sass/utilities/pointer-events.scss +9 -0
- package/assets/sass/utilities/position.scss +90 -0
- package/assets/sass/utilities/ratio.scss +33 -0
- package/assets/sass/utilities/rounded.scss +57 -0
- package/assets/sass/utilities/sizes.scss +89 -0
- package/assets/sass/utilities/sticky.scss +39 -0
- package/assets/sass/utilities/text-truncate.scss +7 -0
- package/assets/sass/utilities/text.scss +122 -0
- package/assets/sass/utilities/visible.scss +9 -0
- package/assets/sass/utilities/visually-hidden.scss +14 -0
- package/assets/sass/utilities/wider-colours.scss +10 -0
- package/assets/ts/components/actionbar/actionbar.component.ts +1 -1
- package/assets/ts/components/address-lookup/address-lookup.component.ts +24 -3
- package/assets/ts/components/darkmode/darkmode.component.ts +2 -2
- package/assets/ts/components/input/input.component.ts +3 -3
- package/assets/ts/components/modal/modal.component.ts +2 -2
- package/assets/ts/components/multi-step-modal/multi-step-modal.component.ts +2 -2
- package/assets/ts/components/multiselect/multiselect.component.ts +1 -1
- package/assets/ts/components/std-address-lookup/std-address-lookup.component.ts +2 -3
- package/assets/ts/modules/advanced-select.ts +1 -1
- package/assets/ts/modules/applied-filters.ts +2 -2
- package/assets/ts/modules/chart.module.ts +1 -1
- package/dist/components.es.js +28 -28
- package/dist/components.umd.js +178 -178
- package/package.json +7 -7
- package/src/components/Snapshot/Snapshot.vue +1 -1
- package/assets/css/mobile-core.min.css +0 -1
- package/assets/css/mobile-core.min.css.map +0 -1
- package/assets/css/mobile.min.css +0 -1
- package/assets/css/mobile.min.css.map +0 -1
- package/assets/sass/_example.scss +0 -61
- package/assets/sass/_tests/colours.spec.js +0 -9
- package/assets/sass/_tests/colours.spec.scss +0 -32
- package/assets/sass/_tests/func.spec.js +0 -9
- package/assets/sass/_tests/func.spec.scss +0 -196
- package/assets/sass/_tests/mixins.spec.js +0 -9
- package/assets/sass/_tests/mixins.spec.scss +0 -113
- package/assets/sass/_tests/typography.spec.js +0 -9
- package/assets/sass/_tests/typography.spec.scss +0 -35
- package/assets/sass/_utility-mixins.scss +0 -38
- package/assets/sass/elements/brand.scss +0 -83
- package/assets/sass/elements/media.scss +0 -26
- package/assets/sass/elements/type.scss +0 -174
- package/assets/sass/helpers/dynamic.scss +0 -15
- package/assets/sass/helpers/line-clamp.scss +0 -0
- package/assets/sass/helpers/max-height.scss +0 -86
- package/assets/sass/helpers/wider-colours.scss +0 -8
- package/assets/sass/mobile-core.scss +0 -14
- package/assets/sass/mobile.scss +0 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doughnutchart.component.min.js","sources":["../../modules/helpers.js","../../modules/chart.module.js","../_global.js","doughnutchart.component.js"],"sourcesContent":["/**\n * Global helper functions to help maintain and enhance framework elements.\n * @module Helpers\n */\n/**\n * Add global classes used by the CSS and later JavaScript.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addBodyClasses = (body) => {\n body.classList.add('js-enabled');\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {\n body.classList.add('ie');\n }\n};\n/**\n * Add global events.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addGlobalEvents = (body) => {\n const checkElements = function (hash) {\n const label = document.querySelector(`label[for=\"${hash.replace('#', '')}\"]`);\n const summary = document.querySelector(hash + ' summary');\n const dialog = document.querySelector(`dialog${hash}`);\n const detail = document.querySelector(`detail${hash}`);\n if (label instanceof HTMLElement)\n label.click();\n else if (summary instanceof HTMLElement)\n summary.click();\n else if (dialog instanceof HTMLElement)\n dialog.showModal();\n else if (detail instanceof HTMLElement)\n detail.addAttribute('open');\n };\n if (location.hash)\n checkElements(location.hash);\n window.addEventListener('hashchange', function () {\n checkElements(location.hash);\n }, false);\n addEventListener('popstate', (event) => {\n if (event && event.state && event.state.type && event.state.type == 'pagination') {\n const form = document.querySelector(`#${event.state.form}`);\n const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);\n if (pageInput)\n pageInput.value = event.state.page;\n else\n form.innerHTML += `<input name=\"page\" type=\"hidden\" data-pagination=\"true\" value=\"${event.state.page}\" />`;\n form.dispatchEvent(new Event('submit'));\n }\n });\n Array.from(document.querySelectorAll('form')).forEach((form) => {\n 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 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 // 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 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 { ucfirst, unsnake } from './helpers.js';\n// #region Functions that setup and trigger other functions\nexport const addClasses = (chartElement, chartOuter) => {\n // add colour classes\n for (let i = 1; i <= 10; i++) {\n if (chartElement.hasAttribute(`data-colour-${i}`)) {\n const colour = chartElement.getAttribute(`data-colour-${i}`);\n chartElement.style.setProperty(`--chart-colour-${i}`, `var(--chart-colour-${colour})`);\n chartElement.style.setProperty(`--chart-colour-${i}-hover`, `var(--chart-colour-${colour}-hover)`);\n }\n Array.from(chartOuter.querySelectorAll(`[data-colour-${i}]`)).forEach((element) => {\n const colour = element.getAttribute(`data-colour-${i}`);\n element.style.setProperty(`--chart-colour-${i}-set`, `var(--chart-colour-${colour})`);\n element.style.setProperty(`--chart-colour-${i}-hover`, `var(--chart-colour-${colour}-hover)`);\n });\n }\n return true;\n};\nexport const setupChart = (chartElement, chartOuter, tableElement) => {\n if (chartElement.tagName == 'IAM-DOUGHNUTCHART') {\n setupDoughnutChart(chartElement, chartOuter, tableElement);\n return true;\n }\n // #region Reset the chart\n // empty divs to re-populate\n const chartKey = chartOuter.querySelector('.chart__key');\n chartKey.innerHTML = '';\n const chartGuidelines = chartOuter.querySelector('.chart__guidelines');\n chartGuidelines.innerHTML = ``;\n const chartYaxis = chartOuter.querySelector('.chart__yaxis');\n chartYaxis.innerHTML = ``;\n // Remove old input fields\n Array.from(chartOuter.querySelectorAll(':scope > input[type=\"checkbox\"],:scope > input[type=\"radio\"]')).map((element) => {\n element.remove();\n });\n // #endregion\n const { xaxis } = getChartData(chartElement);\n setCellData(chartElement, tableElement);\n createChartKey(chartOuter, tableElement, chartKey);\n createChartGuidelines(chartElement, chartGuidelines);\n createChartYaxis(chartElement, chartYaxis);\n if (xaxis) {\n createXaxis(chartOuter);\n }\n return true;\n};\nexport const setupDoughnutChart = (chartElement, chartOuter, tableElement) => {\n // #region Reset the chart\n // empty divs to re-populate\n const chartKey = chartOuter.querySelector('.chart__key');\n chartKey.innerHTML = '';\n // Remove old input fields\n Array.from(chartOuter.querySelectorAll(':scope > input[type=\"checkbox\"],:scope > input[type=\"radio\"]')).map((element) => {\n element.remove();\n });\n // #endregion\n setCellData(chartElement, tableElement);\n createChartKey(chartOuter, tableElement, chartKey);\n createdoughnuts(chartOuter);\n return true;\n};\n// #endregion\n// #region Event handlers and observers\nexport const setEventListener = function (chartElement, chartOuter) {\n const chart = chartOuter.querySelector('.chart');\n chart.addEventListener('mousemove', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('td:not(:first-child')) {\n const column = event.target.closest('td:not(:first-child');\n const rect = column.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n chart.setAttribute('style', `--cursor-x: ${x}px; --cursor-y: ${y}px;`);\n }\n });\n // Use the part for the chart items to pass through states to the pages CSS\n const labels = chartOuter.querySelectorAll('label');\n Array.from(labels).forEach((label) => {\n if (chartOuter.querySelector(`input#${label.getAttribute('for')}`).checked)\n label.setAttribute('part', 'key-checked');\n else\n label.setAttribute('part', 'key-unchecked');\n });\n const table = chartElement.querySelector('table');\n const shadowTable = chartOuter.querySelector('table');\n chartOuter.addEventListener('change', function (event) {\n const eventTarget = event.target;\n const customEvent = new CustomEvent('view-change', {\n detail: {\n 'data-dataset': eventTarget.getAttribute('data-dataset'),\n label: eventTarget.getAttribute('data-label'),\n checked: eventTarget.checked,\n },\n });\n chartElement.dispatchEvent(customEvent);\n Array.from(labels).forEach((label) => {\n var _a;\n if ((_a = chartOuter.querySelector(`input#${label.getAttribute('for')}`)) === null || _a === void 0 ? void 0 : _a.checked)\n label.setAttribute('part', 'key-checked');\n else\n label.setAttribute('part', 'key-unchecked');\n });\n shadowTable.innerHTML = table.innerHTML;\n setCellData(chartElement, shadowTable);\n if (chartElement.tagName == 'IAM-DOUGHNUTCHART') {\n createdoughnuts(chartOuter);\n }\n });\n};\nexport const setEventObservers = function (chartElement, chartOuter) {\n const table = chartElement.querySelector('table');\n const shadowTable = chartOuter.querySelector('table');\n const attributesUpdated = (mutationList, observer) => {\n observer.disconnect();\n observer2.disconnect();\n for (const mutation of mutationList) {\n if (mutation.attributeName == 'class' || mutation.type === 'attributes' || mutation.type === 'attributes') {\n shadowTable.innerHTML = table.innerHTML;\n setupChart(chartElement, chartOuter, shadowTable);\n }\n }\n observer.observe(table, { characterData: true, subtree: true });\n observer2.observe(chartElement, { attributes: true });\n };\n const tableUpdated = (mutationList, observer) => {\n observer.disconnect();\n observer2.disconnect();\n for (const mutation of mutationList) {\n if (mutation.type == 'characterData' || (mutation.type == 'childList' && mutation.addedNodes.length)) {\n shadowTable.innerHTML = table.innerHTML;\n setupChart(chartElement, chartOuter, shadowTable);\n }\n }\n observer.observe(table, { characterData: true, subtree: true });\n observer2.observe(chartElement, { attributes: true });\n };\n const observer = new MutationObserver(tableUpdated);\n const observer2 = new MutationObserver(attributesUpdated);\n observer.observe(table, { characterData: true, subtree: true });\n observer2.observe(chartElement, { attributes: true });\n return true;\n};\nfunction getCoordinatesForPercent(percent, doughnutCount) {\n // This moves the start point to the top middle point like a clock\n if (doughnutCount > 1)\n percent = percent - 0.25;\n const x = Math.cos(2 * Math.PI * percent);\n const y = Math.sin(2 * Math.PI * percent);\n return [x * 100, y * 100];\n}\n// #endregion\n// #region GET functions\nexport const getChartData = function (chartElement) {\n const table = chartElement.shadowRoot.querySelector('.chart__wrapper table');\n const min = chartElement.hasAttribute('data-min') ? chartElement.getAttribute('data-min') : 0;\n const max = chartElement.hasAttribute('data-max')\n ? chartElement.getAttribute('data-max')\n : getLargestValue(chartElement, table);\n //let type:string = chartElement.hasAttribute('data-type') ? chartElement.getAttribute('data-type') : 'column';\n const yaxis = chartElement.hasAttribute('data-yaxis') ? chartElement.getAttribute('data-yaxis').split(',') : [];\n const guidelines = chartElement.hasAttribute('data-guidelines')\n ? chartElement.getAttribute('data-guidelines').split(',')\n : [];\n //let targets:any = chartElement.hasAttribute('data-targets') ? JSON.parse(chartElement.getAttribute('data-targets')) : null;\n //let events:any = chartElement.hasAttribute('data-events') ? JSON.parse(chartElement.getAttribute('data-events')) : null;\n const xaxis = chartElement.hasAttribute('data-xaxis')\n ? chartElement.getAttribute('data-xaxis').split(',')\n : null;\n //let increment = chartElement.hasAttribute('data-increment') ? chartElement.getAttribute('data-increment'): null;\n //let start:any = chartElement.hasAttribute('data-start') ? chartElement.getAttribute('data-start') : 0;\n //let end:any = chartElement.hasAttribute('data-end') ? chartElement.getAttribute('data-end') : getLargestValue(chartElement,table); // TODO - get largest value from the data-xaxis\n //let slope:any = chartElement.hasAttribute('data-slope') ? chartElement.getAttribute('data-slope') : null;\n //let yInt:any = chartElement.hasAttribute('data-yint') ? chartElement.getAttribute('data-yint') : null;\n return { min, max, yaxis, xaxis, guidelines };\n};\nfunction getLargestValue(chartElement, table) {\n const selector = chartElement.classList.contains('chart--stacked') ? 'tbody tr' : 'tbody td:not(:first-child)';\n const values = Array.from(table.querySelectorAll(selector)).map((element) => {\n const currentValue = element.getAttribute('data-numeric');\n return currentValue;\n });\n const largestValue = Math.max(...values);\n // TO DO round to the nearest 10, 100, 1000 and so on\n return Math.ceil(largestValue);\n}\nconst getValues = function (value, min, max, start) {\n let cleanValue = String(value);\n cleanValue = cleanValue.replace('£', '');\n cleanValue = cleanValue.replace('%', '');\n cleanValue = cleanValue.replace(',', '');\n cleanValue = Number.parseFloat(cleanValue);\n let percent = ((cleanValue - min) / (max - min)) * 100;\n let axis = percent;\n let bottom = 0;\n if (start && start != 0) {\n bottom = ((start - min) / (max - min)) * 100;\n }\n // If the value is negative the position below the 0 line\n if (min < 0) {\n bottom = Math.abs((min / (max - min)) * 100);\n if (cleanValue < 0) {\n percent = bottom - percent;\n bottom = bottom - percent;\n axis = bottom;\n }\n else {\n percent = percent - bottom;\n axis = percent + bottom;\n }\n }\n return { percent, axis, bottom };\n};\n// #endregion\n// #region SET functions - set data attributes and classes\nexport const setCellData = function (chartElement, table) {\n Array.from(table.querySelectorAll('tbody tr')).forEach((tr) => {\n let rowValue = 0;\n // Set the data numeric value if not set\n Array.from(tr.querySelectorAll('td:not(:first-child)')).forEach((td) => {\n // Ignore the buttons and links inside\n const copyTD = td.cloneNode(true);\n Array.from(copyTD.querySelectorAll('*')).forEach((element) => {\n element.remove();\n });\n const value = parseFloat(copyTD.textContent.replace('£', '').replace('%', '').replace(',', ''));\n td.setAttribute('data-numeric', value);\n td.setAttribute('data-value', copyTD.textContent);\n const display = getComputedStyle(td).display;\n if (display != 'none')\n rowValue += value;\n Array.from(td.querySelectorAll('a, button')).forEach((element, index) => {\n if (index == 0) {\n element.insertAdjacentHTML('beforeBegin', '<hr/>');\n }\n element.classList.add('btn');\n element.classList.add('btn-tertiary');\n });\n });\n tr.setAttribute('data-numeric', rowValue);\n });\n const { min, max } = getChartData(chartElement);\n Array.from(table.querySelectorAll('tbody tr')).forEach((tr, index) => {\n const group = tr.querySelector('td:first-child, th:first-child')\n ? tr.querySelector('td:first-child, th:first-child').textContent\n : '';\n tr.setAttribute('part', 'group');\n const percent = ((tr.getAttribute('data-numeric') - min) / (max - min)) * 100;\n tr.style.setProperty('--percent', `${percent}%`);\n // Set the data label value if not set\n Array.from(tr.querySelectorAll('td:not([data-label])')).forEach((td, index) => {\n if (index == 0)\n td.setAttribute('part', 'xaxis-label'); // PART\n else\n td.setAttribute('part', 'value');\n if (tr.querySelectorAll('td').length > 2)\n td.setAttribute('data-label', table.querySelectorAll('thead th')[index].textContent);\n });\n const rowMin = tr.hasAttribute('data-min') ? tr.getAttribute('data-min') : min;\n const rowMax = tr.hasAttribute('data-max') ? tr.getAttribute('data-max') : max;\n if (rowMin < 0) {\n const minBottom = Math.abs((rowMin / (rowMax - rowMin)) * 100);\n chartElement.setAttribute('style', `--min-bottom: ${minBottom}%;`);\n }\n // Add a useful index css var for the use of animatons.\n tr.style.setProperty('--row-index', index + 1);\n // Add css vars to cells\n Array.from(tr.querySelectorAll('td[data-numeric]:not([data-label=\"Min\"]):not([data-label=\"Max\"]):not(:first-child)')).forEach((td) => {\n const display = getComputedStyle(td).display;\n if (display == 'none')\n return;\n const content = td.innerHTML;\n const value = Number.parseFloat(td.getAttribute('data-numeric'));\n const start = Number.parseFloat(td.getAttribute('data-start'));\n if (!td.querySelector('span[data-group]'))\n td.innerHTML = `<span data-group=\"${group}\" ${td.hasAttribute('data-label') ? `data-label=\"${td.getAttribute('data-label')}\"` : ''} part=\"popover\">${content}</span>`;\n if (!td.hasAttribute('style')) {\n const { percent, bottom, axis } = getValues(value, rowMin, rowMax, start);\n td.setAttribute('data-percent', percent);\n td.setAttribute('style', `--bottom:${bottom}%;--percent:${percent}%;--axis:${axis}%;`);\n }\n });\n });\n};\nexport const setLongestLabel = function (chartOuter) {\n const chartWrapper = chartOuter.querySelector('.chart__wrapper');\n const chartSpacer = chartOuter.querySelector('.chart__spacer span');\n const table = chartOuter.querySelector('.chart table');\n // set the longest label attr so that the bar chart knows what margin to set on the left\n let longestLabel = '';\n Array.from(table.querySelectorAll('tbody tr td:first-child')).forEach((td) => {\n if (typeof td.textContent != 'undefined' && td.textContent.length > longestLabel.length) {\n longestLabel = td.textContent;\n }\n });\n chartWrapper.setAttribute('data-longest-label', longestLabel);\n chartSpacer.innerHTML = longestLabel;\n};\nexport const setLongestValue = function (chartOuter) {\n const chartWrapper = chartOuter.querySelector('.chart__wrapper');\n const table = chartOuter.querySelector('.chart table');\n let longestValue = '';\n Array.from(table.querySelectorAll('tbody tr td:not(:first-child)')).forEach((td) => {\n if (typeof td.getAttribute('data-value') != 'undefined' &&\n td.getAttribute('data-value').length > longestValue.length) {\n longestValue = td.getAttribute('data-value');\n }\n });\n chartWrapper.setAttribute('data-longest-value', longestValue);\n};\n// #endregion\n// #region CREATE function\nexport const createChartKey = function (chartOuter, tableElement, chartKey) {\n const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;\n //const chartOuter = chartElement.querySelector('.chart__outer');\n let previousInput;\n const headings = Array.from(tableElement.querySelectorAll('thead th'));\n headings.forEach((arrayElement, index) => {\n if (index != 0) {\n previousInput = createChartKeyItem(chartID, index, arrayElement.textContent, chartKey, chartOuter, previousInput);\n }\n if (index == 50) {\n headings.length = index + 1;\n }\n });\n return true;\n};\nfunction createChartKeyItem(chartID, index, text, chartKey, chartOuter, previousInput) {\n var _a;\n const input = document.createElement('input');\n input.setAttribute('name', `${chartID}-dataset-${index}`);\n input.setAttribute('id', `${chartID}-dataset-${index}`);\n input.setAttribute('data-dataset', `${index}`);\n input.setAttribute('data-label', `${text}`);\n input.checked = true;\n input.setAttribute('type', `checkbox`);\n if (index == 1)\n chartOuter.prepend(input);\n else\n chartOuter.insertBefore(input, previousInput.nextSibling);\n previousInput = input;\n const label = document.createElement('label');\n label.setAttribute('class', `key btn btn-action`);\n label.setAttribute('for', `${chartID}-dataset-${index}`);\n label.setAttribute('data-label', `${text}`);\n label.setAttribute('part', `key`);\n const total = (_a = chartOuter.querySelector(`tbody tr td:nth-child(${index + 1})`)) === null || _a === void 0 ? void 0 : _a.getAttribute('data-numeric');\n label.setAttribute('data-numeric', total);\n label.innerHTML = `${text}`;\n chartKey.append(label);\n return previousInput;\n}\nexport const createChartGuidelines = function (chartElement, chartGuidelines) {\n const { min, max, yaxis } = getChartData(chartElement);\n let { guidelines } = getChartData(chartElement);\n if (!guidelines.length)\n guidelines = yaxis;\n chartGuidelines.innerHTML = '';\n for (let i = 0; i < guidelines.length; i++) {\n const value = parseFloat(guidelines[i].replace('£', '').replace('%', '').replace(',', ''));\n const { axis } = getValues(value, min, max);\n chartGuidelines.innerHTML += `<div class=\"guideline\" style=\"--percent:${axis}%;\">${yaxis.indexOf(guidelines[i]) != -1 ? `<span>${guidelines[i]}</span>` : ''}</div>`;\n }\n};\nexport const createChartYaxis = function (chartElement, chartYaxis) {\n const { min, max, yaxis } = getChartData(chartElement);\n chartYaxis.innerHTML = '';\n for (let i = 0; i < yaxis.length; i++) {\n const value = parseFloat(yaxis[i].replace('£', '').replace('%', ''));\n const { axis } = getValues(value, min, max);\n chartYaxis.innerHTML += `<div class=\"axis__point\" style=\"--percent:${axis}%;\"><span>${yaxis[i]}</span></div>`;\n }\n};\nexport const createXaxis = function (chartOuter) {\n const chart = chartOuter.querySelector('.chart');\n let chartXaxis = chartOuter.querySelector('.chart__xaxis');\n if (!chartXaxis) {\n chartXaxis = document.createElement('div');\n chartXaxis.setAttribute('class', 'chart__xaxis');\n }\n chart.prepend(chartXaxis);\n};\nexport const createTooltips = function (chartOuter) {\n const titles = chartOuter.querySelectorAll('thead th[title], tbody th[title]:first-child, tbody td[title]:first-child');\n Array.from(titles).forEach((title) => {\n const tooltipId = `tooltip-${Date.now()}-${Math.floor(Math.random() * 100)}`;\n title.innerHTML = `<button class=\"tooltip\" popovertarget=\"${tooltipId}\" part=\"tooltip\" style=\"anchor-name: --${tooltipId};\">${title.textContent}</button><span id=\"${tooltipId}\" style=\"position-anchor: --${tooltipId};\" popover part=\"tooltip__content\" class=\"tooltip__content\">${title.getAttribute('title')}</span>`;\n //title.removeAttribute('title'); // TODO add a supports query for anchor positioning\n });\n};\nexport const createdoughnuts = function (chartOuter) {\n let returnString = '';\n const chartInner = chartOuter.querySelector('.chart');\n let doughnutWrapper = chartOuter.querySelector('.doughnuts');\n if (!doughnutWrapper) {\n doughnutWrapper = document.createElement('div');\n doughnutWrapper.setAttribute('class', 'doughnuts');\n chartInner.append(doughnutWrapper);\n }\n Array.from(chartInner.querySelectorAll('tbody tr')).forEach((item, index) => {\n let paths = '';\n let tooltips = '';\n let cumulativePercent = 0;\n let total = 0;\n const titleKey = item.querySelectorAll('td')[0];\n const title = titleKey.innerHTML;\n let doughnutCount = 0;\n const rowTotal = item.getAttribute('data-numeric');\n // Work out the total amount\n Array.from(item.querySelectorAll('td')).forEach((td, subindex) => {\n const display = getComputedStyle(td).display;\n if (subindex != 0 && display != 'none') {\n let value = td.getAttribute('data-numeric');\n value = value.replace('£', '');\n value = value.replace('%', '');\n value = value.replace(',', '');\n value = Number.parseInt(value);\n total += value;\n doughnutCount++;\n }\n });\n // Create the paths\n Array.from(item.querySelectorAll('td')).forEach((td, subindex) => {\n var _a, _b;\n const display = getComputedStyle(td).display;\n if (subindex != 0 && doughnutCount == 1 && display != 'none') {\n const pathData = `M 0 0 L 100 0 A 100 100 0 1 1 100 -0.01 L 0 0`;\n paths += `<path d=\"${pathData}\" style=\"${td.getAttribute('style')} --path-index: ${subindex};\"></path>`;\n tooltips += `<span class=\"h5 mb-0\" part=\"popover\">${ucfirst(unsnake(td.getAttribute('data-label'))).trim()}<br/>${td.hasAttribute('data-second') ? `${td.getAttribute('data-second-label')}: ${td.getAttribute('data-second')}<br/>` : ''}${(_a = td.querySelector('[part=\"popover\"]')) === null || _a === void 0 ? void 0 : _a.innerHTML}</span>`;\n }\n else if (subindex != 0) {\n let value = td.getAttribute('data-numeric');\n const hide = display == 'none' ? 'display: none;' : '';\n value = value.replace('£', '');\n value = value.replace('%', '');\n value = value.replace(',', '');\n value = Number.parseInt(value);\n const percent = value / total;\n const [startX, startY] = getCoordinatesForPercent(cumulativePercent, doughnutCount);\n const [endX, endY] = getCoordinatesForPercent(cumulativePercent + percent, doughnutCount);\n const largeArcFlag = percent > 0.5 ? 1 : 0; // if the slice is more than 50%, take the large arc (the long way around)\n const pathData = [\n `M 0 0`,\n `L ${startX ? startX.toFixed(0) : 0} ${startY ? startY.toFixed(0) : 0}`, // Move\n `A 100 100 0 ${largeArcFlag} 1 ${endX ? endX.toFixed(0) : 0} ${endY ? endY.toFixed(0) : 0}`, // Arc\n `L 0 0`, // Line\n ].join(' ');\n paths += `<path d=\"${pathData}\" style=\"${td.getAttribute('style')} --path-index: ${subindex};${hide}\"></path>`;\n tooltips += `<span class=\"h5 mb-0\" part=\"popover\">${ucfirst(unsnake(td.getAttribute('data-label'))).trim()}<br/>${td.hasAttribute('data-second') ? `${td.getAttribute('data-second-label')}: ${td.getAttribute('data-second')}<br/>` : ''}${(_b = td.querySelector('[part=\"popover\"]')) === null || _b === void 0 ? void 0 : _b.innerHTML}</span>`;\n // each slice starts where the last slice ended, so keep a cumulative percent\n if (display != 'none')\n cumulativePercent += percent;\n }\n });\n returnString += `<div class=\"doughnut\">\n <svg viewBox=\"-105 -105 210 210\" preserveAspectRatio=\"none\" style=\"--row-index: ${index + 1};\">${paths}</svg>\n <div class=\"doughnut__title\" data-numeric=\"${rowTotal}\"><span class=\"h5 mb-0\">${title}</span></div>\n <div class=\"tooltips\">${tooltips}</div>\n</div>`;\n });\n doughnutWrapper.innerHTML = returnString;\n};\n// #endregion\nexport default setupChart;\n","export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import { addClasses, setupChart, setEventListener, setEventObservers } from '../../modules/chart.module.js';\nimport { trackComponent, trackComponentRegistered } from '../_global.js';\ntrackComponentRegistered('iam-doughnutchart');\nclass iamDoughnutChart 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/doughnutchart.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n <div class=\"chart__outer\" part=\"outer\">\n <div class=\"chart__key\" part=\"chart-key\"></div>\n <div class=\"chart__wrapper\" part=\"wrapper\">\n <div class=\"chart__yaxis\" part=\"yaxis\"></div>\n <div class=\"chart\" part=\"chart\">\n <div class=\"chart__guidelines\" part=\"guidelines\"></div>\n </div>\n </div>\n <div class=\"chart__spacer\"><span part=\"spacer\"></span</div>\n </div>`;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const chartComponent = this;\n //const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;\n const orginalTable = this.querySelector('table');\n const clonedTable = orginalTable.cloneNode(true);\n const chart = this.shadowRoot.querySelector('.chart');\n const chartOuter = this.shadowRoot.querySelector('.chart__outer');\n //const barCount = chart.querySelectorAll('td:not(:first-child)').length;\n chart.appendChild(clonedTable);\n addClasses(chartComponent, chartOuter);\n setupChart(chartComponent, chartOuter, clonedTable);\n setEventObservers(chartComponent, chartOuter);\n setEventListener(chartComponent, chartOuter);\n // Set events on the paths\n chart.addEventListener('mousemove', (event) => {\n if (event && event.target.closest('.doughnut')) {\n const column = event.target.closest('.doughnut');\n const rect = column.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n chart.setAttribute('style', `--cursor-x: ${x}px; --cursor-y: ${y}px;`);\n }\n });\n chart === null || chart === void 0 ? void 0 : chart.querySelectorAll('.doughnut').forEach((doughnut) => {\n let count = 1;\n doughnut === null || doughnut === void 0 ? void 0 : doughnut.querySelectorAll('path').forEach((path) => {\n const rect = path.getBoundingClientRect();\n const doughnutRect = doughnut.getBoundingClientRect();\n const x = rect.left - doughnutRect.left + rect.width / 2;\n const y = rect.top - doughnutRect.top + rect.height / 2;\n doughnut.style.setProperty(`--middle-${count}-x`, `${x}px`);\n doughnut.style.setProperty(`--middle-${count}-y`, `${y}px`);\n count++;\n });\n });\n trackComponent(chartComponent, 'iam-doughnutchart', ['view-change']);\n }\n}\nexport default iamDoughnutChart;\n"],"names":["ucfirst","str","unsnake","addClasses","chartElement","chartOuter","i","colour","element","setupChart","tableElement","setupDoughnutChart","chartKey","chartGuidelines","chartYaxis","xaxis","getChartData","setCellData","createChartKey","createChartGuidelines","createChartYaxis","createXaxis","createdoughnuts","setEventListener","chart","event","rect","x","y","labels","label","table","shadowTable","eventTarget","customEvent","_a","setEventObservers","attributesUpdated","mutationList","observer","observer2","mutation","tableUpdated","getCoordinatesForPercent","percent","doughnutCount","min","max","getLargestValue","yaxis","guidelines","selector","values","largestValue","getValues","value","start","cleanValue","axis","bottom","tr","rowValue","td","copyTD","index","group","rowMin","rowMax","minBottom","content","chartID","previousInput","headings","arrayElement","createChartKeyItem","text","input","total","chartXaxis","returnString","chartInner","doughnutWrapper","item","paths","tooltips","cumulativePercent","title","rowTotal","subindex","display","_b","hide","startX","startY","endX","endY","largeArcFlag","pathData","trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","eventDetails","eventKey","eventDetail","iamDoughnutChart","template","chartComponent","clonedTable","doughnut","count","path","doughnutRect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doughnutchart.component.min.js","sources":["../../modules/helpers.js","../../modules/chart.module.js","../_global.js","doughnutchart.component.js"],"sourcesContent":["/**\n * Global helper functions to help maintain and enhance framework elements.\n * @module Helpers\n */\n/**\n * Add global classes used by the CSS and later JavaScript.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addBodyClasses = (body) => {\n body.classList.add('js-enabled');\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {\n body.classList.add('ie');\n }\n};\n/**\n * Add global events.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addGlobalEvents = (body) => {\n const checkElements = function (hash) {\n const label = document.querySelector(`label[for=\"${hash.replace('#', '')}\"]`);\n const summary = document.querySelector(hash + ' summary');\n const dialog = document.querySelector(`dialog${hash}`);\n const detail = document.querySelector(`detail${hash}`);\n if (label instanceof HTMLElement)\n label.click();\n else if (summary instanceof HTMLElement)\n summary.click();\n else if (dialog instanceof HTMLElement)\n dialog.showModal();\n else if (detail instanceof HTMLElement)\n detail.addAttribute('open');\n };\n if (location.hash)\n checkElements(location.hash);\n window.addEventListener('hashchange', function () {\n checkElements(location.hash);\n }, false);\n addEventListener('popstate', (event) => {\n if (event && event.state && event.state.type && event.state.type == 'pagination') {\n const form = document.querySelector(`#${event.state.form}`);\n const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);\n if (pageInput)\n pageInput.value = event.state.page;\n else\n form.innerHTML += `<input name=\"page\" type=\"hidden\" data-pagination=\"true\" value=\"${event.state.page}\" />`;\n form.dispatchEvent(new Event('submit'));\n }\n });\n Array.from(document.querySelectorAll('form')).forEach((form) => {\n 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 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 // 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 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 { ucfirst, unsnake } from './helpers.js';\n// #region Functions that setup and trigger other functions\nexport const addClasses = (chartElement, chartOuter) => {\n // add colour classes\n for (let i = 1; i <= 10; i++) {\n if (chartElement.hasAttribute(`data-colour-${i}`)) {\n const colour = chartElement.getAttribute(`data-colour-${i}`);\n chartElement.style.setProperty(`--chart-colour-${i}`, `var(--chart-colour-${colour})`);\n chartElement.style.setProperty(`--chart-colour-${i}-hover`, `var(--chart-colour-${colour}-hover)`);\n }\n Array.from(chartOuter.querySelectorAll(`[data-colour-${i}]`)).forEach((element) => {\n const colour = element.getAttribute(`data-colour-${i}`);\n element.style.setProperty(`--chart-colour-${i}`, `var(--chart-colour-${colour})`);\n element.style.setProperty(`--chart-colour-${i}-hover`, `var(--chart-colour-${colour}-hover)`);\n });\n }\n return true;\n};\nexport const setupChart = (chartElement, chartOuter, tableElement) => {\n if (chartElement.tagName == 'IAM-DOUGHNUTCHART') {\n setupDoughnutChart(chartElement, chartOuter, tableElement);\n return true;\n }\n // #region Reset the chart\n // empty divs to re-populate\n const chartKey = chartOuter.querySelector('.chart__key');\n chartKey.innerHTML = '';\n const chartGuidelines = chartOuter.querySelector('.chart__guidelines');\n chartGuidelines.innerHTML = ``;\n const chartYaxis = chartOuter.querySelector('.chart__yaxis');\n chartYaxis.innerHTML = ``;\n // Remove old input fields\n Array.from(chartOuter.querySelectorAll(':scope > input[type=\"checkbox\"],:scope > input[type=\"radio\"]')).map((element) => {\n element.remove();\n });\n // #endregion\n const { xaxis } = getChartData(chartElement);\n setCellData(chartElement, tableElement);\n createChartKey(chartOuter, tableElement, chartKey);\n createChartGuidelines(chartElement, chartGuidelines);\n createChartYaxis(chartElement, chartYaxis);\n if (xaxis) {\n createXaxis(chartOuter);\n }\n return true;\n};\nexport const setupDoughnutChart = (chartElement, chartOuter, tableElement) => {\n // #region Reset the chart\n // empty divs to re-populate\n const chartKey = chartOuter.querySelector('.chart__key');\n chartKey.innerHTML = '';\n // Remove old input fields\n Array.from(chartOuter.querySelectorAll(':scope > input[type=\"checkbox\"],:scope > input[type=\"radio\"]')).map((element) => {\n element.remove();\n });\n // #endregion\n setCellData(chartElement, tableElement);\n createChartKey(chartOuter, tableElement, chartKey);\n createdoughnuts(chartOuter);\n return true;\n};\n// #endregion\n// #region Event handlers and observers\nexport const setEventListener = function (chartElement, chartOuter) {\n const chart = chartOuter.querySelector('.chart');\n chart.addEventListener('mousemove', (event) => {\n if (event && event.target instanceof HTMLElement && event.target.closest('td:not(:first-child')) {\n const column = event.target.closest('td:not(:first-child');\n const rect = column.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n chart.setAttribute('style', `--cursor-x: ${x}px; --cursor-y: ${y}px;`);\n }\n });\n // Use the part for the chart items to pass through states to the pages CSS\n const labels = chartOuter.querySelectorAll('label');\n Array.from(labels).forEach((label) => {\n if (chartOuter.querySelector(`input#${label.getAttribute('for')}`).checked)\n label.setAttribute('part', 'key-checked');\n else\n label.setAttribute('part', 'key-unchecked');\n });\n const table = chartElement.querySelector('table');\n const shadowTable = chartOuter.querySelector('table');\n chartOuter.addEventListener('change', function (event) {\n const eventTarget = event.target;\n const customEvent = new CustomEvent('view-change', {\n detail: {\n 'data-dataset': eventTarget.getAttribute('data-dataset'),\n label: eventTarget.getAttribute('data-label'),\n checked: eventTarget.checked,\n },\n });\n chartElement.dispatchEvent(customEvent);\n Array.from(labels).forEach((label) => {\n var _a;\n if ((_a = chartOuter.querySelector(`input#${label.getAttribute('for')}`)) === null || _a === void 0 ? void 0 : _a.checked)\n label.setAttribute('part', 'key-checked');\n else\n label.setAttribute('part', 'key-unchecked');\n });\n shadowTable.innerHTML = table.innerHTML;\n setCellData(chartElement, shadowTable);\n if (chartElement.tagName == 'IAM-DOUGHNUTCHART') {\n createdoughnuts(chartOuter);\n }\n });\n};\nexport const setEventObservers = function (chartElement, chartOuter) {\n const table = chartElement.querySelector('table');\n const shadowTable = chartOuter.querySelector('table');\n const attributesUpdated = (mutationList, observer) => {\n observer.disconnect();\n observer2.disconnect();\n for (const mutation of mutationList) {\n if (mutation.attributeName == 'class' || mutation.type === 'attributes' || mutation.type === 'attributes') {\n shadowTable.innerHTML = table.innerHTML;\n setupChart(chartElement, chartOuter, shadowTable);\n }\n }\n observer.observe(table, { characterData: true, subtree: true });\n observer2.observe(chartElement, { attributes: true });\n };\n const tableUpdated = (mutationList, observer) => {\n observer.disconnect();\n observer2.disconnect();\n for (const mutation of mutationList) {\n if (mutation.type == 'characterData' || (mutation.type == 'childList' && mutation.addedNodes.length)) {\n shadowTable.innerHTML = table.innerHTML;\n setupChart(chartElement, chartOuter, shadowTable);\n }\n }\n observer.observe(table, { characterData: true, subtree: true });\n observer2.observe(chartElement, { attributes: true });\n };\n const observer = new MutationObserver(tableUpdated);\n const observer2 = new MutationObserver(attributesUpdated);\n observer.observe(table, { characterData: true, subtree: true });\n observer2.observe(chartElement, { attributes: true });\n return true;\n};\nfunction getCoordinatesForPercent(percent, doughnutCount) {\n // This moves the start point to the top middle point like a clock\n if (doughnutCount > 1)\n percent = percent - 0.25;\n const x = Math.cos(2 * Math.PI * percent);\n const y = Math.sin(2 * Math.PI * percent);\n return [x * 100, y * 100];\n}\n// #endregion\n// #region GET functions\nexport const getChartData = function (chartElement) {\n const table = chartElement.shadowRoot.querySelector('.chart__wrapper table');\n const min = chartElement.hasAttribute('data-min') ? chartElement.getAttribute('data-min') : 0;\n const max = chartElement.hasAttribute('data-max')\n ? chartElement.getAttribute('data-max')\n : getLargestValue(chartElement, table);\n //let type:string = chartElement.hasAttribute('data-type') ? chartElement.getAttribute('data-type') : 'column';\n const yaxis = chartElement.hasAttribute('data-yaxis') ? chartElement.getAttribute('data-yaxis').split(',') : [];\n const guidelines = chartElement.hasAttribute('data-guidelines')\n ? chartElement.getAttribute('data-guidelines').split(',')\n : [];\n //let targets:any = chartElement.hasAttribute('data-targets') ? JSON.parse(chartElement.getAttribute('data-targets')) : null;\n //let events:any = chartElement.hasAttribute('data-events') ? JSON.parse(chartElement.getAttribute('data-events')) : null;\n const xaxis = chartElement.hasAttribute('data-xaxis')\n ? chartElement.getAttribute('data-xaxis').split(',')\n : null;\n //let increment = chartElement.hasAttribute('data-increment') ? chartElement.getAttribute('data-increment'): null;\n //let start:any = chartElement.hasAttribute('data-start') ? chartElement.getAttribute('data-start') : 0;\n //let end:any = chartElement.hasAttribute('data-end') ? chartElement.getAttribute('data-end') : getLargestValue(chartElement,table); // TODO - get largest value from the data-xaxis\n //let slope:any = chartElement.hasAttribute('data-slope') ? chartElement.getAttribute('data-slope') : null;\n //let yInt:any = chartElement.hasAttribute('data-yint') ? chartElement.getAttribute('data-yint') : null;\n return { min, max, yaxis, xaxis, guidelines };\n};\nfunction getLargestValue(chartElement, table) {\n const selector = chartElement.classList.contains('chart--stacked') ? 'tbody tr' : 'tbody td:not(:first-child)';\n const values = Array.from(table.querySelectorAll(selector)).map((element) => {\n const currentValue = element.getAttribute('data-numeric');\n return currentValue;\n });\n const largestValue = Math.max(...values);\n // TO DO round to the nearest 10, 100, 1000 and so on\n return Math.ceil(largestValue);\n}\nconst getValues = function (value, min, max, start) {\n let cleanValue = String(value);\n cleanValue = cleanValue.replace('£', '');\n cleanValue = cleanValue.replace('%', '');\n cleanValue = cleanValue.replace(',', '');\n cleanValue = Number.parseFloat(cleanValue);\n let percent = ((cleanValue - min) / (max - min)) * 100;\n let axis = percent;\n let bottom = 0;\n if (start && start != 0) {\n bottom = ((start - min) / (max - min)) * 100;\n }\n // If the value is negative the position below the 0 line\n if (min < 0) {\n bottom = Math.abs((min / (max - min)) * 100);\n if (cleanValue < 0) {\n percent = bottom - percent;\n bottom = bottom - percent;\n axis = bottom;\n }\n else {\n percent = percent - bottom;\n axis = percent + bottom;\n }\n }\n return { percent, axis, bottom };\n};\n// #endregion\n// #region SET functions - set data attributes and classes\nexport const setCellData = function (chartElement, table) {\n Array.from(table.querySelectorAll('tbody tr')).forEach((tr) => {\n let rowValue = 0;\n // Set the data numeric value if not set\n Array.from(tr.querySelectorAll('td:not(:first-child)')).forEach((td) => {\n // Ignore the buttons and links inside\n const copyTD = td.cloneNode(true);\n Array.from(copyTD.querySelectorAll('*')).forEach((element) => {\n element.remove();\n });\n const value = parseFloat(copyTD.textContent.replace('£', '').replace('%', '').replace(',', ''));\n td.setAttribute('data-numeric', value);\n td.setAttribute('data-value', copyTD.textContent);\n const display = getComputedStyle(td).display;\n if (display != 'none')\n rowValue += value;\n Array.from(td.querySelectorAll('a, button')).forEach((element, index) => {\n if (index == 0) {\n element.insertAdjacentHTML('beforeBegin', '<hr/>');\n }\n element.classList.add('btn');\n element.classList.add('btn-tertiary');\n });\n });\n tr.setAttribute('data-numeric', rowValue);\n });\n const { min, max } = getChartData(chartElement);\n Array.from(table.querySelectorAll('tbody tr')).forEach((tr, index) => {\n const group = tr.querySelector('td:first-child, th:first-child')\n ? tr.querySelector('td:first-child, th:first-child').textContent\n : '';\n tr.setAttribute('part', 'group');\n const percent = ((tr.getAttribute('data-numeric') - min) / (max - min)) * 100;\n tr.style.setProperty('--percent', `${percent}%`);\n // Set the data label value if not set\n Array.from(tr.querySelectorAll('td:not([data-label])')).forEach((td, index) => {\n if (index == 0)\n td.setAttribute('part', 'xaxis-label'); // PART\n else\n td.setAttribute('part', 'value');\n if (tr.querySelectorAll('td').length > 2)\n td.setAttribute('data-label', table.querySelectorAll('thead th')[index].textContent);\n });\n const rowMin = tr.hasAttribute('data-min') ? tr.getAttribute('data-min') : min;\n const rowMax = tr.hasAttribute('data-max') ? tr.getAttribute('data-max') : max;\n if (rowMin < 0) {\n const minBottom = Math.abs((rowMin / (rowMax - rowMin)) * 100);\n chartElement.setAttribute('style', `--min-bottom: ${minBottom}%;`);\n }\n // Add a useful index css var for the use of animatons.\n tr.style.setProperty('--row-index', index + 1);\n // Add css vars to cells\n Array.from(tr.querySelectorAll('td[data-numeric]:not([data-label=\"Min\"]):not([data-label=\"Max\"]):not(:first-child)')).forEach((td) => {\n const display = getComputedStyle(td).display;\n if (display == 'none')\n return;\n const content = td.innerHTML;\n const value = Number.parseFloat(td.getAttribute('data-numeric'));\n const start = Number.parseFloat(td.getAttribute('data-start'));\n if (!td.querySelector('span[data-group]'))\n td.innerHTML = `<span data-group=\"${group}\" ${td.hasAttribute('data-label') ? `data-label=\"${td.getAttribute('data-label')}\"` : ''} part=\"popover\">${content}</span>`;\n if (!td.hasAttribute('style')) {\n const { percent, bottom, axis } = getValues(value, rowMin, rowMax, start);\n td.setAttribute('data-percent', percent);\n td.setAttribute('style', `--bottom:${bottom}%;--percent:${percent}%;--axis:${axis}%;`);\n }\n });\n });\n};\nexport const setLongestLabel = function (chartOuter) {\n const chartWrapper = chartOuter.querySelector('.chart__wrapper');\n const chartSpacer = chartOuter.querySelector('.chart__spacer span');\n const table = chartOuter.querySelector('.chart table');\n // set the longest label attr so that the bar chart knows what margin to set on the left\n let longestLabel = '';\n Array.from(table.querySelectorAll('tbody tr td:first-child')).forEach((td) => {\n if (typeof td.textContent != 'undefined' && td.textContent.length > longestLabel.length) {\n longestLabel = td.textContent;\n }\n });\n chartWrapper.setAttribute('data-longest-label', longestLabel);\n chartSpacer.innerHTML = longestLabel;\n};\nexport const setLongestValue = function (chartOuter) {\n const chartWrapper = chartOuter.querySelector('.chart__wrapper');\n const table = chartOuter.querySelector('.chart table');\n let longestValue = '';\n Array.from(table.querySelectorAll('tbody tr td:not(:first-child)')).forEach((td) => {\n if (typeof td.getAttribute('data-value') != 'undefined' &&\n td.getAttribute('data-value').length > longestValue.length) {\n longestValue = td.getAttribute('data-value');\n }\n });\n chartWrapper.setAttribute('data-longest-value', longestValue);\n};\n// #endregion\n// #region CREATE function\nexport const createChartKey = function (chartOuter, tableElement, chartKey) {\n const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;\n //const chartOuter = chartElement.querySelector('.chart__outer');\n let previousInput;\n const headings = Array.from(tableElement.querySelectorAll('thead th'));\n headings.forEach((arrayElement, index) => {\n if (index != 0) {\n previousInput = createChartKeyItem(chartID, index, arrayElement.textContent, chartKey, chartOuter, previousInput);\n }\n if (index == 50) {\n headings.length = index + 1;\n }\n });\n return true;\n};\nfunction createChartKeyItem(chartID, index, text, chartKey, chartOuter, previousInput) {\n var _a;\n const input = document.createElement('input');\n input.setAttribute('name', `${chartID}-dataset-${index}`);\n input.setAttribute('id', `${chartID}-dataset-${index}`);\n input.setAttribute('data-dataset', `${index}`);\n input.setAttribute('data-label', `${text}`);\n input.checked = true;\n input.setAttribute('type', `checkbox`);\n if (index == 1)\n chartOuter.prepend(input);\n else\n chartOuter.insertBefore(input, previousInput.nextSibling);\n previousInput = input;\n const label = document.createElement('label');\n label.setAttribute('class', `key btn btn-action`);\n label.setAttribute('for', `${chartID}-dataset-${index}`);\n label.setAttribute('data-label', `${text}`);\n label.setAttribute('part', `key`);\n const total = (_a = chartOuter.querySelector(`tbody tr td:nth-child(${index + 1})`)) === null || _a === void 0 ? void 0 : _a.getAttribute('data-numeric');\n label.setAttribute('data-numeric', total);\n label.innerHTML = `${text}`;\n chartKey.append(label);\n return previousInput;\n}\nexport const createChartGuidelines = function (chartElement, chartGuidelines) {\n const { min, max, yaxis } = getChartData(chartElement);\n let { guidelines } = getChartData(chartElement);\n if (!guidelines.length)\n guidelines = yaxis;\n chartGuidelines.innerHTML = '';\n for (let i = 0; i < guidelines.length; i++) {\n const value = parseFloat(guidelines[i].replace('£', '').replace('%', '').replace(',', ''));\n const { axis } = getValues(value, min, max);\n chartGuidelines.innerHTML += `<div class=\"guideline\" style=\"--percent:${axis}%;\">${yaxis.indexOf(guidelines[i]) != -1 ? `<span>${guidelines[i]}</span>` : ''}</div>`;\n }\n};\nexport const createChartYaxis = function (chartElement, chartYaxis) {\n const { min, max, yaxis } = getChartData(chartElement);\n chartYaxis.innerHTML = '';\n for (let i = 0; i < yaxis.length; i++) {\n const value = parseFloat(yaxis[i].replace('£', '').replace('%', ''));\n const { axis } = getValues(value, min, max);\n chartYaxis.innerHTML += `<div class=\"axis__point\" style=\"--percent:${axis}%;\"><span>${yaxis[i]}</span></div>`;\n }\n};\nexport const createXaxis = function (chartOuter) {\n const chart = chartOuter.querySelector('.chart');\n let chartXaxis = chartOuter.querySelector('.chart__xaxis');\n if (!chartXaxis) {\n chartXaxis = document.createElement('div');\n chartXaxis.setAttribute('class', 'chart__xaxis');\n }\n chart.prepend(chartXaxis);\n};\nexport const createTooltips = function (chartOuter) {\n const titles = chartOuter.querySelectorAll('thead th[title], tbody th[title]:first-child, tbody td[title]:first-child');\n Array.from(titles).forEach((title) => {\n const tooltipId = `tooltip-${Date.now()}-${Math.floor(Math.random() * 100)}`;\n title.innerHTML = `<button class=\"tooltip\" popovertarget=\"${tooltipId}\" part=\"tooltip\" style=\"anchor-name: --${tooltipId};\">${title.textContent}</button><span id=\"${tooltipId}\" style=\"position-anchor: --${tooltipId};\" popover part=\"tooltip__content\" class=\"tooltip__content\">${title.getAttribute('title')}</span>`;\n //title.removeAttribute('title'); // TODO add a supports query for anchor positioning\n });\n};\nexport const createdoughnuts = function (chartOuter) {\n let returnString = '';\n const chartInner = chartOuter.querySelector('.chart');\n let doughnutWrapper = chartOuter.querySelector('.doughnuts');\n if (!doughnutWrapper) {\n doughnutWrapper = document.createElement('div');\n doughnutWrapper.setAttribute('class', 'doughnuts');\n chartInner.append(doughnutWrapper);\n }\n Array.from(chartInner.querySelectorAll('tbody tr')).forEach((item, index) => {\n let paths = '';\n let tooltips = '';\n let cumulativePercent = 0;\n let total = 0;\n const titleKey = item.querySelectorAll('td')[0];\n const title = titleKey.innerHTML;\n let doughnutCount = 0;\n const rowTotal = item.getAttribute('data-numeric');\n // Work out the total amount\n Array.from(item.querySelectorAll('td')).forEach((td, subindex) => {\n const display = getComputedStyle(td).display;\n if (subindex != 0 && display != 'none') {\n let value = td.getAttribute('data-numeric');\n value = value.replace('£', '');\n value = value.replace('%', '');\n value = value.replace(',', '');\n value = Number.parseInt(value);\n total += value;\n doughnutCount++;\n }\n });\n // Create the paths\n Array.from(item.querySelectorAll('td')).forEach((td, subindex) => {\n var _a, _b;\n const display = getComputedStyle(td).display;\n if (subindex != 0 && doughnutCount == 1 && display != 'none') {\n const pathData = `M 0 0 L 100 0 A 100 100 0 1 1 100 -0.01 L 0 0`;\n paths += `<path d=\"${pathData}\" style=\"${td.getAttribute('style')} --path-index: ${subindex};\"></path>`;\n tooltips += `<span class=\"h5 mb-0\" part=\"popover\">${ucfirst(unsnake(td.getAttribute('data-label'))).trim()}<br/>${td.hasAttribute('data-second') ? `${td.getAttribute('data-second-label')}: ${td.getAttribute('data-second')}<br/>` : ''}${(_a = td.querySelector('[part=\"popover\"]')) === null || _a === void 0 ? void 0 : _a.innerHTML}</span>`;\n }\n else if (subindex != 0) {\n let value = td.getAttribute('data-numeric');\n const hide = display == 'none' ? 'display: none;' : '';\n value = value.replace('£', '');\n value = value.replace('%', '');\n value = value.replace(',', '');\n value = Number.parseInt(value);\n const percent = value / total;\n const [startX, startY] = getCoordinatesForPercent(cumulativePercent, doughnutCount);\n const [endX, endY] = getCoordinatesForPercent(cumulativePercent + percent, doughnutCount);\n const largeArcFlag = percent > 0.5 ? 1 : 0; // if the slice is more than 50%, take the large arc (the long way around)\n const pathData = [\n `M 0 0`,\n `L ${startX ? startX.toFixed(0) : 0} ${startY ? startY.toFixed(0) : 0}`, // Move\n `A 100 100 0 ${largeArcFlag} 1 ${endX ? endX.toFixed(0) : 0} ${endY ? endY.toFixed(0) : 0}`, // Arc\n `L 0 0`, // Line\n ].join(' ');\n paths += `<path d=\"${pathData}\" style=\"${td.getAttribute('style')} --path-index: ${subindex};${hide}\"></path>`;\n tooltips += `<span class=\"h5 mb-0\" part=\"popover\">${ucfirst(unsnake(td.getAttribute('data-label'))).trim()}<br/>${td.hasAttribute('data-second') ? `${td.getAttribute('data-second-label')}: ${td.getAttribute('data-second')}<br/>` : ''}${(_b = td.querySelector('[part=\"popover\"]')) === null || _b === void 0 ? void 0 : _b.innerHTML}</span>`;\n // each slice starts where the last slice ended, so keep a cumulative percent\n if (display != 'none')\n cumulativePercent += percent;\n }\n });\n returnString += `<div class=\"doughnut\">\n <svg viewBox=\"-105 -105 210 210\" preserveAspectRatio=\"none\" style=\"--row-index: ${index + 1};\">${paths}</svg>\n <div class=\"doughnut__title\" data-numeric=\"${rowTotal}\"><span class=\"h5 mb-0\">${title}</span></div>\n <div class=\"tooltips\">${tooltips}</div>\n</div>`;\n });\n doughnutWrapper.innerHTML = returnString;\n};\n// #endregion\nexport default setupChart;\n","export const trackComponentRegistered = (componentName) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementRegistered',\n element: componentName,\n });\n};\nexport const trackComponent = (component, componentName, trackEvents) => {\n // Data layer Web component created\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'customElementAdded',\n element: componentName,\n });\n trackEvents.forEach((eventName) => {\n component.addEventListener(eventName, function (event) {\n const eventDetails = {\n event: eventName,\n element: componentName,\n target: event.target,\n };\n Object.keys(event.detail).forEach((eventKey) => {\n const eventDetail = event.detail[eventKey];\n eventDetails[eventKey] = eventDetail;\n });\n window.dataLayer.push(eventDetails);\n });\n });\n return true;\n};\n","import { addClasses, setupChart, setEventListener, setEventObservers } from '../../modules/chart.module.js';\nimport { trackComponent, trackComponentRegistered } from '../_global.js';\ntrackComponentRegistered('iam-doughnutchart');\nclass iamDoughnutChart 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/doughnutchart.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n \n ${loadCSS}\n </style>\n <div class=\"chart__outer\" part=\"outer\">\n <div class=\"chart__key\" part=\"chart-key\"></div>\n <div class=\"chart__wrapper\" part=\"wrapper\">\n <div class=\"chart__yaxis\" part=\"yaxis\"></div>\n <div class=\"chart\" part=\"chart\">\n <div class=\"chart__guidelines\" part=\"guidelines\"></div>\n </div>\n </div>\n <div class=\"chart__spacer\"><span part=\"spacer\"></span</div>\n </div>`;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const chartComponent = this;\n //const chartID = `chart-${Date.now() + (Math.floor(Math.random() * 100) + 1)}`;\n const orginalTable = this.querySelector('table');\n const clonedTable = orginalTable.cloneNode(true);\n const chart = this.shadowRoot.querySelector('.chart');\n const chartOuter = this.shadowRoot.querySelector('.chart__outer');\n //const barCount = chart.querySelectorAll('td:not(:first-child)').length;\n chart.appendChild(clonedTable);\n addClasses(chartComponent, chartOuter);\n setupChart(chartComponent, chartOuter, clonedTable);\n setEventObservers(chartComponent, chartOuter);\n setEventListener(chartComponent, chartOuter);\n // Set events on the paths\n chart.addEventListener('mousemove', (event) => {\n if (event && event.target.closest('.doughnut')) {\n const column = event.target.closest('.doughnut');\n const rect = column.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n chart.setAttribute('style', `--cursor-x: ${x}px; --cursor-y: ${y}px;`);\n }\n });\n chart === null || chart === void 0 ? void 0 : chart.querySelectorAll('.doughnut').forEach((doughnut) => {\n let count = 1;\n doughnut === null || doughnut === void 0 ? void 0 : doughnut.querySelectorAll('path').forEach((path) => {\n const rect = path.getBoundingClientRect();\n const doughnutRect = doughnut.getBoundingClientRect();\n const x = rect.left - doughnutRect.left + rect.width / 2;\n const y = rect.top - doughnutRect.top + rect.height / 2;\n doughnut.style.setProperty(`--middle-${count}-x`, `${x}px`);\n doughnut.style.setProperty(`--middle-${count}-y`, `${y}px`);\n count++;\n });\n });\n trackComponent(chartComponent, 'iam-doughnutchart', ['view-change']);\n }\n}\nexport default iamDoughnutChart;\n"],"names":["ucfirst","str","unsnake","addClasses","chartElement","chartOuter","i","colour","element","setupChart","tableElement","setupDoughnutChart","chartKey","chartGuidelines","chartYaxis","xaxis","getChartData","setCellData","createChartKey","createChartGuidelines","createChartYaxis","createXaxis","createdoughnuts","setEventListener","chart","event","rect","x","y","labels","label","table","shadowTable","eventTarget","customEvent","_a","setEventObservers","attributesUpdated","mutationList","observer","observer2","mutation","tableUpdated","getCoordinatesForPercent","percent","doughnutCount","min","max","getLargestValue","yaxis","guidelines","selector","values","largestValue","getValues","value","start","cleanValue","axis","bottom","tr","rowValue","td","copyTD","index","group","rowMin","rowMax","minBottom","content","chartID","previousInput","headings","arrayElement","createChartKeyItem","text","input","total","chartXaxis","returnString","chartInner","doughnutWrapper","item","paths","tooltips","cumulativePercent","title","rowTotal","subindex","display","_b","hide","startX","startY","endX","endY","largeArcFlag","pathData","trackComponentRegistered","componentName","trackComponent","component","trackEvents","eventName","eventDetails","eventKey","eventDetail","iamDoughnutChart","template","chartComponent","clonedTable","doughnut","count","path","doughnutRect"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.6.
|
|
2
|
+
* iamKey v7.6.2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
|
-
*/function f(l,a){const s=a.querySelector(".files"),r=a.querySelector(".drop-area"),
|
|
4
|
+
*/function f(l,a){const s=a.querySelector(".files"),r=a.querySelector(".drop-area"),t=l.querySelector("input"),b=l.hasAttribute("data-maxsize")?l.getAttribute("data-maxsize"):0,h=a.querySelector(".invalid-feedback.size"),u=a.querySelector(".invalid-feedback.ext"),o=t.cloneNode();r.append(o);const g=function(e){if(!t.hasAttribute("accept"))return!0;const i=e.split(".").pop();return!!t.getAttribute("accept").includes(i)};if(a.addEventListener("click",e=>{e&&e.target instanceof HTMLElement&&e.target.closest(".btn-primary")&&(u.classList.remove("d-block"),h.classList.remove("d-block"),(t.hasAttribute("multiple")?o:t).click())}),a.addEventListener("click",e=>{if(e&&e.target instanceof HTMLElement&&e.target.closest(".files button")){const i=new DataTransfer,{files:d}=t,n=e.target.closest(".files button");for(let p=0;p<d.length;p++){const v=d[p];v.name!=n.getAttribute("data-file")&&i.items.add(v)}t.files=i.files;const m=new Event("change");t.dispatchEvent(m);const c=new CustomEvent("fileRemoved",{detail:{removedFile:n?.dataset.file}});l.dispatchEvent(c)}}),o.addEventListener("change",()=>{if(t.hasAttribute("multiple")){const i=[...t.files,...o.files],d=[],n=new DataTransfer;for(let m=0;m<i.length;m++){const c=i[m],p=c.size/1e3;!d.includes(c.name)&&(b==0||p<b)&&g(c.name)&&n.items.add(c),g(c.name)||u.classList.add("d-block"),p>b&&h.classList.add("d-block"),d.push(c.name)}t.files=n.files}else t.files=o.files;const e=new Event("change");t.dispatchEvent(e)}),o.addEventListener("dragenter",()=>{o.classList.add("focus")}),o.addEventListener("dragleave",()=>{o.classList.remove("focus")}),o.addEventListener("drop",()=>{o.classList.remove("focus")}),t.addEventListener("change",()=>{if(t.files.length==1){const i=t.files[0],d=i.size/1e3;if(!g(i.name)){u.classList.add("d-block");const n=new DataTransfer;t.files=n.files}if(d>b){h.classList.add("d-block");const n=new DataTransfer;t.files=n.files}}s.innerHTML="";for(const i of t.files)s.innerHTML+=`<span class="file" part="file">${i.name} <button data-file="${i.name}" part="file__remove">Remove</button></span>`;const e=new CustomEvent("elementchange",{detail:{files:t.files}});if(l.dispatchEvent(e),t.files.length==0){const i=new CustomEvent("empty");l.dispatchEvent(i)}}),l.hasAttribute("data-filename")){const e=l.getAttribute("data-filename");e&&(s.innerHTML=`<span class="file" part="file">${e} <button data-file="${e}" part="file__remove">Remove</button></span>`)}}window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"fileupload"});class k extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const a=document.createElement("template");a.innerHTML=`
|
|
5
5
|
<style>
|
|
6
|
-
@layer elements{input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}::-moz-focus-inner{padding:0;border-style:none}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-moz-color-swatch{border-radius:0;border:none}::-webkit-color-swatch{border-radius:0;border:none}::file-selector-button{font:inherit;-webkit-appearance:button}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output){display:block;width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);appearance:none;border-radius:0.5rem;margin-bottom:1.5rem;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px);max-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output):is(textarea){max-height:100%}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output):is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output):is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output)::-webkit-date-and-time-value{height:1.5em}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output):disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}input[type=color]{padding:0 !important;max-width:3rem !important}[disabled] :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output,select:not(.select--minimal,.btn)){background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}[disabled] label{cursor:not-allowed;pointer-events:none}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])){max-width:var(--input-max-width, 50rem)}textarea{--textarea-height-scale: 3;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)*var(--textarea-height-scale) + 4px) !important}}@layer elements{label{display:inline-block}select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}select{text-transform:none}select{word-wrap:normal}select:disabled{opacity:1}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}:is(label:not(.tag),.label){font-size:1.125rem;line-height:1.3125rem;margin-bottom:0.5rem;font-weight:normal;color:var(--colour-heading);display:block}:is(select:not(.select--minimal,.btn)){display:block;width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);appearance:none;border-radius:0.5rem;margin-bottom:1.5rem;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px);max-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}:is(select:not(.select--minimal,.btn)):is(textarea){max-height:100%}:is(select:not(.select--minimal,.btn)):is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}:is(select:not(.select--minimal,.btn)):is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}:is(select:not(.select--minimal,.btn))::-webkit-date-and-time-value{height:1.5em}:is(select:not(.select--minimal,.btn)):disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}[disabled] :is(select:not(.select--minimal,.btn)){background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}[disabled] label{cursor:not-allowed;pointer-events:none}fieldset{width:100%}legend{font-family:var(--font-heading);font-style:normal;font-weight:var(--heading-weight);line-height:2rem;color:var(--colour-heading);margin:0;clear:both;display:block;float:none;font-size:round(var(--body-fs, 1rem)*pow(var(--type-scale),2),.25rem);line-height:round(up,1em*var(--type-scale),.25rem);padding-bottom:.5rem;max-width:var(--content-max-width);min-width:100%}div:has(>label:first-child):has(>input){position:relative;max-width:var(--input-max-width, 50rem);margin-bottom:1.5rem}div:has(>label:first-child):has(>input) input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),div:has(>label:first-child):has(>input) output,div:has(>label:first-child):has(>input) .prefix,div:has(>label:first-child):has(>input) .suffix{margin-bottom:0 !important}div:has(>label:first-child):has(>input){display:flex;flex-wrap:wrap;align-items:center}div:has(>label:first-child):has(>input)>*:not(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])):not(output):not(.prefix):not(.suffix){flex-shrink:0;width:100%}div:has(>label:first-child):has(>input) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output){flex-shrink:1;flex-grow:1;width:0}div:has(>label:first-child):has(>input) input~*:not(output){order:5;margin-top:0.5rem}*:has(>:is(.form-control-sm,.input--sm)){--input-fs: 0.875rem;--input-lh: 1rem;--input-padding-block: 0.625rem;--input-padding-inline: 0.875rem}*:has(>:is(.form-control-lg,.input--lg)){--input-fs: 1.5rem;--input-lh: 1.8125rem;--input-padding-block: 1.25rem;--input-padding-inline: 1.375rem}*:has(>label:first-child):has(>input):has(>:is(.form-control-inline,.input--inline)) label{flex-shrink:0;white-space:nowrap;width:fit-content !important;margin:0;margin-inline-end:1rem}*:has(>input[readonly]){position:relative;max-width:var(--input-max-width, 50rem)}*:has(>input[readonly]):after{font-family:"Font Awesome 6 Pro";font-weight:300;content:"\uF023";position:absolute;font-size:var(--input-lh, 1.25rem);height:var(--input-lh, 1.25rem);width:var(--input-lh, 1.25rem);bottom:calc(var(--input-padding-block, 0.75rem) + 2px);right:calc(var(--input-padding-block, 1rem) + 2px);text-align:center}@supports selector(:has(*)){.suffix~:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=date]):not([type=time]),textarea,output),:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=date]):not([type=time]),textarea,output):has(~.suffix){order:1;border-start-end-radius:0 !important;border-end-end-radius:0 !important}:is(input):has(~iam-password-indicator){border-start-end-radius:0 !important;border-end-end-radius:0 !important}}.was-validated *:not(button):is(:invalid,.is-invalid,[aria-invalid]):not(.is-valid)+label,.was-validated label:has(*:not(button):is(:invalid,.is-invalid,[aria-invalid]):not(.is-valid)){--colour-check-border: var(--colour-danger);--colour-check-bg: #fcebec;border-color:var(--colour-danger)}.was-validated *:not(button):is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){border-color:var(--colour-danger) !important}.was-validated select:not(.btn):is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3e%3c!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license %28Commercial License%29 Copyright 2023 Fonticons, Inc. --%3e%3cpath d='M256 32a224 224 0 1 1 0 448 224 224 0 1 1 0-448zm0 480A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c-8.8 0-16 7.2-16 16V272c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8-7.2-16-16-16zm24 224a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z' fill='%23dc3545'/%3e%3c/svg%3e") right var(--input-padding-block, 3.5rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat;padding-right:6rem !important}.was-validated input:is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3e%3c!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license %28Commercial License%29 Copyright 2023 Fonticons, Inc. --%3e%3cpath d='M256 32a224 224 0 1 1 0 448 224 224 0 1 1 0-448zm0 480A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c-8.8 0-16 7.2-16 16V272c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8-7.2-16-16-16zm24 224a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z' fill='%23dc3545'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right var(--input-padding-inline, 1rem) center;background-size:var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);padding-right:calc(var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)) !important}.was-validated *:not(button):is(:valid,.is-valid):not(.is-invalid){border-color:var(--colour-complete)}.was-validated input:is(:valid,.is-valid):not(:is(:invalid,.is-invalid)){background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3e%3c!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license %28Commercial License%29 Copyright 2023 Fonticons, Inc. --%3e%3cpath d='M441 103c9.4 9.4 9.4 24.6 0 33.9L177 401c-9.4 9.4-24.6 9.4-33.9 0L7 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l119 119L407 103c9.4-9.4 24.6-9.4 33.9 0z' fill='%230f9d58' /%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right var(--input-padding-inline, 1rem) center;background-size:var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);padding-right:calc(var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)) !important}.invalid-feedback{color:var(--colour-danger);margin-top:0.5rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3e%3c!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license %28Commercial License%29 Copyright 2023 Fonticons, Inc. --%3e%3cpath d='M256 32a224 224 0 1 1 0 448 224 224 0 1 1 0-448zm0 480A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c-8.8 0-16 7.2-16 16V272c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8-7.2-16-16-16zm24 224a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z' fill='%23dc3545'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:left top 1px;background-size:var(--input-fs, 1rem) var(--input-fs, 1rem);padding-left:calc(var(--input-fs, 1rem) + 0.5rem);display:none}iam-address-lookup:has([required]){--req-display: none}.was-validated :is(:invalid,.is-invalid)~.invalid-feedback{display:block}.was-validated iam-address-lookup:has([required]:invalid){--error-border: var(--colour-danger);--error-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3e%3c!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license %28Commercial License%29 Copyright 2023 Fonticons, Inc. --%3e%3cpath d='M256 32a224 224 0 1 1 0 448 224 224 0 1 1 0-448zm0 480A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c-8.8 0-16 7.2-16 16V272c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8-7.2-16-16-16zm24 224a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z' fill='%23dc3545'/%3e%3c/svg%3e");--error-display: block;--error-hide: none}@supports selector(:has(*)){input:is([type=radio],[type=checkbox]){position:absolute;top:0;left:0;opacity:0;height:0;width:0;margin:0;pointer-events:none}:is(div,fieldset,label:not(.tag)):has(>input:is([type=radio],[type=checkbox])):not(:has(label input)){position:relative;margin-bottom:1.5rem}:is(div,fieldset,label:not(.tag)):has(>input[type=radio]){--border-radius: 50%;--outline-width: 0.5rem}:is(div,fieldset,label:not(.tag)):has(>input[type=checkbox]){--border-radius: 0.25rem;--outline-width: 0.25rem}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)){--tick-colour: transparent;color:var(--colour-heading);position:relative;font-size:1rem;line-height:1.25rem;padding-left:2.5rem;padding-top:0.625rem;padding-bottom:0.625rem;margin-bottom:1.5rem;margin-right:1.5rem;cursor:pointer}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):has(+span),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):has(+span){margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):has(+input),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):has(+input){margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):last-child,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):last-child{margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):before,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):before{content:"";border:2px solid var(--colour-check-border, var(--colour-primary));background:var(--colour-check-bg, transparent);border-radius:var(--border-radius);height:var(--radio-size, 1.5rem);width:var(--radio-size, 1.5rem);display:inline-block;position:absolute;top:0.5rem;left:var(--outline-width)}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)).btn:before,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)).btn:before{opacity:0}input[type=radio]+label:not(:has(>iam-card)):after,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)):after{content:"" !important;background:var(--colour-info);border-radius:var(--border-radius);height:0.875rem;width:0.875rem;height:var(--radio-inner-size, 0.875rem);width:var(--radio-inner-size, 0.875rem);display:none;position:absolute;top:var(--radio-inner-top, 0.8125rem);left:var(--radio-inner-left, calc(0.3125rem + var(--outline-width)))}input[type=radio]+label:not(:has(>iam-card)).radio--tick:before,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)).radio--tick:before{content:"\uF00C";position:absolute;font-size:1.5em;line-height:1;color:var(--tick-colour);font-family:"Font Awesome 6 Pro";background:none !important;border:none !important;outline:none !important;left:.25rem}input[type=radio]+label:not(:has(>iam-card)).radio--tick:after,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)).radio--tick:after{display:none}@media(forced-colors: active){input:is([type=radio],[type=checkbox]):not(:checked)+label.radio--tick:not(:has(>iam-card)):before,label:has(input:is([type=radio],[type=checkbox]):not(:checked)).radio--tick:not(:has(>iam-card)):before{display:none}}:is(div,fieldset):has(>:is(input[type=radio],input[type=checkbox]):nth-of-type(2)) label:not(.tag):not(:has(>iam-card)){margin-bottom:0rem}fieldset:has(label>input:is([type=radio],[type=checkbox])) label{margin-bottom:0 !important}fieldset:has(label>input:is([type=radio],[type=checkbox])){margin-bottom:1.5rem}input:is([type=radio],[type=checkbox]):checked+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked){--tick-colour: var(--colour-info)}input:is([type=radio],[type=checkbox]):checked+label:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked):before{border-color:var(--colour-info)}input:is([type=radio],[type=checkbox]):checked+label:after,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked):after{display:inline-block}input:is([type=radio],[type=checkbox]):checked+label iam-card,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked) iam-card{--colour: var(--colour, var(--colour-info))}input[type=checkbox]:not([disabled]):checked+label:before,label:not(.tag):has(input[type=checkbox]:not([disabled]):checked):before{background:var(--colour-info) !important}input[type=checkbox]:checked+label:not(:has(>iam-card)):after,label:not(.tag):has(input[type=checkbox]:checked):after{content:"\uF00C";position:absolute;font-size:var(--checkbox-tick-size, 1em);line-height:1;color:var(--colour-primary-theme);font-family:"Font Awesome 6 Pro";font-weight:bold;height:var(--checkbox-inner-size, 1.5rem);width:var(--checkbox-inner-size, 1.5rem);line-height:1.625rem;background:none !important;border:none !important;outline:none !important;top:var(--checkbox-inner-top, 0.5rem);left:var(--checkbox-inner-left, var(--outline-width));text-align:center}input[type=checkbox]:indeterminate+label:before,label:not(.tag):has(input[type=checkbox]:indeterminate):before{background:var(--colour-info) !important;border-color:var(--colour-info) !important}input[type=checkbox]:indeterminate+label:after,label:not(.tag):has(input[type=checkbox]:indeterminate):after{content:"\uF068";position:absolute;font-size:var(--checkbox-tick-size, 1em);line-height:1;color:var(--colour-primary-theme);font-family:"Font Awesome 6 Pro";font-weight:bold;height:var(--checkbox-inner-size, 1.5rem);width:var(--checkbox-inner-size, 1.5rem);line-height:1.625rem;background:none !important;border:none !important;outline:none !important;top:var(--checkbox-inner-top, 0.5rem);left:var(--checkbox-inner-left, var(--outline-width));text-align:center}input:is([type=radio],[type=checkbox]):checked:is(:focus,:hover,.focus)+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked:is(:focus,:hover,.focus)){--tick-colour: var(--colour-info)}input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)+label,input:is([type=radio],[type=checkbox])+label.hover,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)){--tick-colour: var(--colour-muted)}input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)+label:before,input:is([type=radio],[type=checkbox])+label.hover:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)):before{background:var(--colour-check-bg, light-dark(var(--colour-light), #444444));outline:var(--outline-width) solid light-dark(var(--colour-light), #444444)}input:is([type=radio],[type=checkbox]):is(:active,.active)+label,input:is([type=radio],[type=checkbox])+label.active,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:active,.active)){--tick-colour: var(--colour-light)}input:is([type=radio],[type=checkbox]):is(:active,.active)+label:before,input:is([type=radio],[type=checkbox])+label.active:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:active,.active)):before{background:var(--colour-check-bg, #e0e0e0);outline:var(--outline-width) solid #e0e0e0}input:is([type=radio],[type=checkbox]):disabled+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled){opacity:.4;cursor:not-allowed}input:is([type=radio],[type=checkbox]):disabled+label>iam-card,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled)>iam-card{pointer-events:none}input:is([type=radio],[type=checkbox]):disabled+label:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled):before{background-color:none !important;outline:none !important;border-color:var(--colour-primary) !important}input[type=radio][disabled]:checked+label:after,label:not(.tag):has(input[type=radio][disabled]:checked):after{background-color:var(--colour-primary) !important}input[type=checkbox][disabled]:checked+label:before,label:not(.tag):has(input[type=checkbox][disabled]:checked):before{background:#e0e0e0 !important;border-color:#e0e0e0 !important}}.conditional{display:none}input:checked+.conditional,input:checked+label+.conditional,label:has(:checked)+.conditional{display:block;clear:both}input:not([class*=conditional-input-]):nth-of-type(1):checked~.conditional-1,input:not([class*=conditional-input-]):nth-of-type(2):checked~.conditional-2,input:not([class*=conditional-input-]):nth-of-type(3):checked~.conditional-3,input:not([class*=conditional-input-]):nth-of-type(4):checked~.conditional-4,input:not([class*=conditional-input-]):nth-of-type(5):checked~.conditional-5,input.conditional-input-1:checked~.conditional-1,input.conditional-input-2:checked~.conditional-2,input.conditional-input-3:checked~.conditional-3,input.conditional-input-4:checked~.conditional-4,input.conditional-input-5:checked~.conditional-5,label:has(input.conditional-input-1:checked)~.conditional-1,label:has(input.conditional-input-2:checked)~.conditional-2,label:has(input.conditional-input-3:checked)~.conditional-3,label:has(input.conditional-input-4:checked)~.conditional-4,label:has(input.conditional-input-5:checked)~.conditional-5{display:block;clear:both}select[multiple]{border-radius:.35rem}select[multiple]::-webkit-scrollbar{width:.7rem}select[multiple]::-webkit-scrollbar *{background-color:rgba(0,0,0,0)}select[multiple]::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);border-radius:.35rem}select:not(.select--minimal,.btn){background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,linear-gradient(to right, var(--colour-canvas-2), var(--colour-canvas-2));padding-right:calc(var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem) + var(--input-lh, 1.25rem)) !important}select:not(.select--minimal,.btn) option{font-size:1.2em}select:not(.select--minimal,.btn){box-shadow:inset -2px 0px 0px var(--colour-primary-theme);max-width:var(--select-max-width, 50rem)}select:not(.select--minimal,.btn)[multiple],select:not(.select--minimal,.btn)[size]:not([size="1"]){background:none;max-height:none !important}select:not(.select--minimal,.btn):disabled{background-color:gray;border-color:#000}select:not(.select--minimal,.btn):-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 inherit}div:has(>select){margin-bottom:1.5rem}div:has(>select) select{margin-bottom:0 !important}.select--minimal{all:unset;font-size:inherit;line-height:inherit;background:none;border:2px solid rgba(0,0,0,0);display:inline-block;padding:.4em calc(1em + .8ch) .4rem var(--select-padding-left, 0.4em) !important;font-weight:normal !important;margin:-0.4em 0 !important;border-radius:.25em;color:var(--colour-body);height:auto;cursor:pointer;font-family:var(--font-body) !important}.select--minimal option{background-color:var(--colour-canvas);padding-left:1em;font-size:inherit;line-height:inherit}.select--minimal:hover{background:var(--colour-light)}.select--minimal:is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0;box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}*:has(>.select--minimal){position:relative;display:inline-block !important;width:auto !important;font-size:inherit !important;line-height:1 !important;padding:0 !important;margin:0 !important;font-family:var(--font-body) !important}*:has(>.select--minimal):after{font-size:.8em;line-height:1em;content:"\uF078";font-family:"Font Awesome 6 Pro";position:absolute;top:40%;transform:translate(0, -50%);right:.8ch;pointer-events:none;color:var(--colour-body)}iam-fileupload input{display:none}:is(label:not(.tag),.label):has(:is(input,select,textarea)){display:block;margin-bottom:1.5rem;max-width:var(--input-max-width, 50rem)}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(input:not([type=range]),select,textarea){margin-top:0.5rem;margin-bottom:0 !important}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(input,select)~span:not(:is(.suffix,.prefix,.invalid-feedback)),:is(label:not(.tag),.label):has(:is(input,select,textarea)) span:has(>:is(input,select))~span:not(:is(.suffix,.prefix,.invalid-feedback)),:is(label:not(.tag),.label):has(:is(input,select,textarea)) .hint-text{all:initial;font-family:var(--font-body);color:var(--colour-body);margin-top:0.5rem;display:block;line-height:1.2}:is(label:not(.tag),.label):has(:is(input,select,textarea)) .invalid-feedback{font-size:1rem;font-weight:normal;line-height:1.2}:is(label:not(.tag),.label):has(:is(input,select,textarea)) span:has(:is(input,select)){display:flex;width:100%}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(.suffix,.prefix):not(.mt-0){margin:0.5rem 0 0 0 !important}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)),.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid){margin-bottom:1.5rem}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)):has(:is(:invalid,.is-invalid)):after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid):has(:is(:invalid,.is-invalid)):after{content:"This field is required";color:var(--colour-danger);margin-top:0.5rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3e%3c!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license %28Commercial License%29 Copyright 2023 Fonticons, Inc. --%3e%3cpath d='M256 32a224 224 0 1 1 0 448 224 224 0 1 1 0-448zm0 480A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c-8.8 0-16 7.2-16 16V272c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8-7.2-16-16-16zm24 224a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z' fill='%23dc3545'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:left top 1px;background-size:var(--input-fs, 1rem) var(--input-fs, 1rem);padding-left:calc(var(--input-fs, 1rem) + 0.5rem);display:block;width:100%;font-size:1rem;line-height:1.2}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select))[data-error]:has(:is(:invalid,.is-invalid)):after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid)[data-error]:has(:is(:invalid,.is-invalid)):after{content:attr(data-error) !important}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)).error-nowrap:after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid).error-nowrap:after{white-space:nowrap}input[type=range]{--track-size: 0.5rem;--track-colour: var(--colour-light);--thumb-colour: var(--colour-info);--thumb-size: 1.5rem;width:100%;background:rgba(0,0,0,0);cursor:pointer;margin-top:2rem;margin-bottom:2rem;height:2rem;border-radius:50%;accent-color:var(--thumb-colour);-webkit-appearance:none;appearance:none}*:has(>input[type=range]){position:relative;padding-bottom:6rem;max-width:var(--input-max-width, 50rem)}label input[type=range]{position:absolute;top:1.5rem;left:0}input[type=range]::-webkit-slider-runnable-track{background:var(--track-colour);height:var(--track-size);border-radius:.5rem}input[type=range]::-moz-range-track{background:var(--track-colour);height:var(--track-size);border-radius:.5rem}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;margin-top:-0.5rem;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]::-moz-range-thumb{border:none;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]:focus{outline:none}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:focus::-webkit-slider-thumb{outline:.5rem solid rgba(30,190,231,.2)}input[type=range]:active::-webkit-slider-thumb{outline:.5rem solid rgba(30,190,231,.4)}input[type=range]:hover::-moz-range-thumb,input[type=range]:focus::-moz-range-thumb{outline:.5rem solid rgba(30,190,231,.2)}input[type=range]:focus::-moz-range-thumb{outline:.5rem solid rgba(30,190,231,.4)}iam-slider input::-webkit-outer-spin-button,iam-slider input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:is(input[type=date],input[type=datetime-local],input[type=year],input[type=month],input[type=week],input[type=time]){position:relative;margin-right:-3rem;padding-right:3rem !important;background-position:right 4rem center;border-radius:.5rem !important}::-webkit-calendar-picker-indicator{background:rgba(0,0,0,0);bottom:0;color:rgba(0,0,0,0);cursor:pointer;height:auto;left:0;position:absolute;right:0;top:0;width:auto;order:3;z-index:98}::-webkit-datetime-edit{position:relative;z-index:99;max-width:fit-content}}:is(iam-advanced-select,iam-search,.postcode-lookup){position:relative;display:block}:is(iam-advanced-select,iam-search,.postcode-lookup) label{position:relative}:is(iam-advanced-select,iam-search,.postcode-lookup) input{padding-right:3rem}:is(iam-advanced-select,iam-search,.postcode-lookup) .empty{position:absolute;bottom:.5rem;right:3.5rem;margin:0;aspect-ratio:1/1;width:2rem;height:2rem;text-align:center;line-height:1}:is(iam-advanced-select,iam-search,.postcode-lookup) .empty:not(:hover,:focus){border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0)}:is(iam-advanced-select,iam-search,.postcode-lookup) .empty i{font-size:1.5rem}:is(iam-advanced-select,iam-search,.postcode-lookup):has(input:is([name$=Alt]):not([data-value],[data-placeholder])) .empty{display:none}:is(iam-advanced-select,iam-search,.postcode-lookup) label:after,:is(iam-advanced-select,iam-search,.postcode-lookup) .hint-text{position:absolute;top:100%}.was-validated :is(iam-advanced-select,iam-search,postcode-lookup) label:has(:is(input:not([type=radio]):not([type=checkbox]),select)),:is(iam-advanced-select,iam-search,postcode-lookup).was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)){margin-bottom:2.5rem}.was-validated :is(iam-advanced-select,iam-search,postcode-lookup) label:has(:is(input:not([type=radio]):not([type=checkbox]),select)) input,:is(iam-advanced-select,iam-search,postcode-lookup).was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)) input{background:none !important}.was-validated :is(iam-advanced-select,iam-search,postcode-lookup) label:has(:is(input:not([type=radio]):not([type=checkbox]),select)):has(:invalid,.is-invalid) .hint-text,:is(iam-advanced-select,iam-search,postcode-lookup).was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)):has(:invalid,.is-invalid) .hint-text{display:none}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist:empty{display:none !important}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist{z-index:100;top:100%;position:absolute;background-color:#fff;border-top:none}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist:not(:empty):has(option:not(.hide)){padding:.5rem}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist{max-height:25rem;overflow-y:auto;width:100%;max-width:var(--input-max-width, 50rem);border:none !important;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0,0,0,.1);display:none}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist option{background-color:#fff;padding:.5rem;cursor:pointer;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;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding-block:var(--menu-item-padding, 0.5rem) !important;width:100% !important;max-width:100% !important;text-align:var(--menu-item-text-align, left) !important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;text-overflow:ellipsis;overflow:clip}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist option:is(:hover,:focus){background:var(--colour-light) !important;border-radius:.25rem !important}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist option:active{background:#e0e0e0 !important;border-radius:.25rem !important}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist option.active{border-left:4px solid var(--colour-info) !important;border-radius:.25rem !important;background:hsl(from var(--colour-info) h s l/10%) !important}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(*:active),:active) datalist{display:block}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(*:active),:active) datalist:empty{display:block !important}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div) .datalist__wrapper{top:100%;position:absolute;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0,0,0,.1);width:var(--menu-item-width, 50rem) !important;max-width:var(--menu-item-width, 50rem) !important;z-index:100;display:none;max-height:25rem;overflow-y:auto}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div) .datalist__wrapper>datalist{border:none !important;box-shadow:none !important;position:relative;display:block !important;border-radius:0 !important;max-height:100% !important}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div) .datalist__wrapper:focus{outline:none !important}iam-address-lookup [slot=preloadedList]{border:none !important;box-shadow:none !important;position:relative;display:block !important;border-radius:0 !important;max-height:100% !important}iam-address-lookup [slot=preloadedList].noresults{display:block !important}iam-address-lookup [slot=preloadedList].noresults:before{content:"No addresses found";background-color:#fff;padding:1rem .5rem;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;padding-block:var(--menu-item-padding, 1rem) !important;display:block}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist:not(:empty)),:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist.loading),:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist.noresults),:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div) .datalist__wrapper:hover{display:block}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div) .datalist__wrapper:has(datalist.noresults) datalist{display:block}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div) .datalist__wrapper:has(datalist.noresults) datalist:before{content:"No addresses found";background-color:#fff;padding:.5rem;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;padding-block:var(--menu-item-padding, 0.5rem) !important;display:block}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(option:active)) .datalist__wrapper:has(datalist.loading) datalist{height:5rem}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(option:active)) .datalist__wrapper:has(datalist.loading) datalist:before{content:"\uF021";font-family:"Font Awesome 6 Pro";font-size:1.75rem;font-weight:300;display:block;position:absolute;top:calc(50% - 1rem);left:calc(50% - 1rem);animation-name:spin;animation-duration:4000ms;animation-iteration-count:infinite;animation-timing-function:linear}@-ms-keyframes spin{from{-ms-transform:rotate(0deg)}to{-ms-transform:rotate(360deg)}}@-moz-keyframes spin{from{-moz-transform:rotate(0deg)}to{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}:is(iam-advanced-select,iam-search,.postcode-lookup) [name=beforeList]{display:none}:is(iam-advanced-select,iam-search,.postcode-lookup) [name=beforeList]:has(+.show-welsh-banner){display:block}:is(iam-advanced-select,iam-search,.postcode-lookup) .datalist__wrapper.show-welsh-banner [name=beforeList]{display:block}@layer elements{*,*::before,*::after{box-sizing:border-box}button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[role=button]{cursor:pointer}button:focus:not(:focus-visible){outline:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 0.125rem;--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}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}.btn:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}.btn:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}.btn:not(.border-0){background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border)}.btn:not(:last-child){margin-right:var(--btn-margin)}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.colour-success{--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success:before,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active):before{content:"\uF00C";font-family:"Font Awesome 6 Pro";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:"Font Awesome 6 Pro";line-height:1em}.btn.btn[class*=fa-after]{padding-right:4rem}.btn.btn[class*=fa-after]:before{margin-right:0;margin-right:0.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}.btn:not(.btn-compact):before{margin-right:1rem}.btn i[class*=fa-]{font-family:"Font Awesome 6 Pro";margin-right:1rem;line-height:1em;font-style:inherit}.btn i[class*=fa-]: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:after,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active):after{margin-left:1.5rem;margin-right:-0.5rem}.btn:has(select){position:relative;padding:0}.btn:has(select) 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:bold;font-size:var(--btn-font-size) !important;line-height:var(--btn-line-height) !important;field-sizing:content !important}.btn:has(select) select option{padding:0;text-align:left;color:var(--colour-primary)}.btn:has(select):after{position:absolute;top:0.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:has(select).active:after{transform:rotate(-90deg)}.btn:has(select:focus):after{transform:rotate(-90deg)}.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:"Font Awesome 6 Pro"}}@layer elements{.btn-secondary{color:var(--colour-btn-secondary)}.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:rgba(0,0,0,0);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}.btn.btn-tertiary:after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}.btn.btn-tertiary.text-decoration-none:after{width:0%}.btn.btn-tertiary [class*=fa-]{margin-left:0;margin-right:.5rem}.btn.btn-tertiary [class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}.btn.btn-tertiary:is(:hover,:focus,.hover,:focus-within):not([disabled],:disabled,:active,.active):after{width:60% !important}.btn.btn-tertiary:is(:active,.active):not([disabled],:disabled){color:var(--colour-active)}}@layer elements{.btn-action{--btn-border-width: 0.0625rem;--btn-padding-block: 0.3125rem;--btn-padding-inline: 0.3125rem;--btn-margin: 0.5rem}.btn-action:not(.btn-primary){color:var(--colour-heading)}.btn-action:not(.btn-primary):not(.border-0){background-color:var(--colour-canvas-2);border:var(--btn-border-width) solid var(--colour-muted)}.btn-action{border-radius:0.25rem !important;font-weight:400 !important;font-size:1rem;line-height:1.25rem}.btn-action.btn[class*=fa-]:before{content:var(--fa);margin-right:0.375rem}a:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn-action,.btn-action: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-action,.btn-action.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) .btn-action,.btn-action: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}.btn-action:has(select){padding-block:0;padding-right:2rem}.btn-action:has(select) select{margin:0rem 0rem !important;padding-right:2rem !important;margin-right:-2rem !important}.btn-action:has(select):after{top:.2rem;right:0.5rem}}@layer elements{.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:0.5rem}.btn-compact:not(:last-child){margin-right:0.5rem}.btn-compact{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;line-height:var(--compact-size) !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1rem}.btn-compact:before{content:var(--fa);position:absolute;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - 0.25rem);font-weight:900}.btn-compact[class*=fa-]:before{line-height:calc(var(--compact-size) - 0.25rem)}@container style(--theme: dark){.btn-compact[class*=fa-]:before{color:#fff}}.btn-compact.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}.btn-compact.btn-action{--compact-size: 2rem;font-size:1rem}.btn-compact.btn-action:before{font-size:1em;font-weight:400}.btn-compact.btn-secondary{--colour-btn-bg: transparent;--colour-btn-border: transparent;border-color:rgba(0,0,0,0)}.btn-compact.btn-secondary:not([class*=colour-]){--colour: var(--colour-light)}.btn-compact.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)}.btn-compact.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse):is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}.btn-compact[data-number]{position:relative}.btn-compact[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:#fff;letter-spacing:-0.1em;font-family:arial,sans-serif}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary:not(:hover,:focus,.hover,:focus-within):not(.btn-collapse),.invert-colours .btn-compact.btn-secondary:not(:hover,:focus,.hover,:focus-within):not(.btn-collapse){background-color:var(--colour-white) !important;border-color:var(--colour-white) !important;color:var(--colour-heading)}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary:is(:hover,:focus,.hover,:focus-within):not([disabled]):not(.btn-collapse),.invert-colours .btn-compact.btn-secondary:is(:hover,:focus,.hover,:focus-within):not([disabled]):not(.btn-collapse){background-color:rgba(0,0,0,0);border-color:var(--colour-white) !important;color:var(--colour-white)}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary[disabled],.invert-colours .btn-compact.btn-secondary[disabled]{background-color:var(--colour-white) !important;border-color:var(--colour-white) !important;color:var(--colour-heading) !important}}.btn[popovertarget]{position:relative;anchor-name:--button2}.btn[popovertarget]>.fa-chevron-down{display:none}.btn[popovertarget]:after{content:"";display:inline-block;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)}.btn[popovertarget][aria-pressed]:after{transform:rotate(270deg)}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}@media screen and (min-width: 36em){.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}}@media screen and (min-width: 62em){.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}}hr{--border-style: solid;--border-color: var(--colour-border);border:0;color:rgba(0,0,0,0);margin:0;border-bottom:none;background-color:currentColor;opacity:1;clear:both}.file-upload{max-width:25rem !important;padding-bottom:1rem}.file-upload .drop-area>input{display:none}.file-upload .file-upload__title{margin-top:0;margin-bottom:0;font-family:var(--font-heading);font-style:normal;font-weight:var(--heading-weight);line-height:2rem;color:var(--colour-heading);clear:both;display:block;padding-bottom:2rem;font-size:round(var(--body-fs, 1rem)*pow(var(--type-scale),2),.25rem);line-height:round(up,1em*var(--type-scale),.25rem);padding-bottom:round(up,1em*var(--type-scale),.25rem);max-width:var(--content-max-width)}.file-upload .helper-text{max-width:16.875rem}.files span{display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);border:2px solid var(--colour-primary-theme);appearance:none;border-radius:0.5rem;margin-bottom:1rem;color:var(--colour-primary);border-color:#d8d8d8;background:#d8d8d8;max-width:25rem !important;position:relative}@media(forced-colors: active){.files span{padding-right:5rem}.files span button{padding:0;width:3.7rem !important;text-indent:0% !important}.files span button:after{display:none !important}}.files span button{position:absolute;top:calc(50% - 0.5625rem);right:0.875rem;z-index:var(--index-floating);text-indent:300%;overflow:hidden;border:none;height:1.125rem;width:1.125rem;background:rgba(0,0,0,0);color:inherit}.files span button:after{content:"";top:0;left:0;position:absolute;display:block;height:1.125rem;width:1.125rem;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-close);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-close);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%}:host(.fileupload--drag-drop) .file-upload{max-width:50rem !important}:host(.fileupload--drag-drop) .file-upload .helper-text{max-width:50rem !important}:host(.fileupload--drag-drop) .file-upload .drop-area>input{display:block;min-height:12.5rem;border:2px dashed var(--colour-primary-theme);color:rgba(0,0,0,0);position:relative;padding:1.5rem 2rem 1.5rem 2rem;user-select:none;max-width:100%;min-width:100%;margin-bottom:1rem}:host(.fileupload--drag-drop) .file-upload .drop-area>input.focus{border:2px solid var(--colour-info)}:host(.fileupload--drag-drop) .file-upload .drop-area{position:relative}:host(.fileupload--drag-drop) .file-upload .drop-area::before{content:"Drag and drop files here or click to upload";position:absolute;inset:1.5rem 2rem 1.5rem 2rem;z-index:1;pointer-events:none}:host(.fileupload--drag-drop) .file-upload ::file-selector-button{position:absolute;inset:0;opacity:0}/*# sourceMappingURL=assets/css/components/fileupload.css.map */
|
|
6
|
+
@layer elements{input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}::-moz-focus-inner{padding:0;border-style:none}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;font-weight:normal;line-height:inherit}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-moz-color-swatch{border-radius:0;border:none}::-webkit-color-swatch{border-radius:0;border:none}::file-selector-button{font:inherit;-webkit-appearance:button}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output){display:block;width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);appearance:none;border-radius:.5rem;margin-bottom:1.5rem;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px);max-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output):is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output):is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output)::-webkit-date-and-time-value{height:1.5em}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output):disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}textarea{max-height:100%}input[type=color]{padding:0 !important;max-width:3rem !important}[disabled] :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output,select:not(.select--minimal,.btn)){background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}[disabled] label{cursor:not-allowed;pointer-events:none}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])){max-width:var(--input-max-width)}textarea{--textarea-height-scale: 3;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)*var(--textarea-height-scale) + 4px) !important}}@layer elements{label{display:inline-block}select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}select{text-transform:none}select{word-wrap:normal}select:disabled{opacity:1}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}:is(label:not(.tag),.label){font-size:1.125rem;line-height:1.3125rem;margin-bottom:.5rem;font-weight:normal;color:var(--colour-heading);display:block}:is(select:not(.select--minimal,.btn)){display:block;width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);appearance:none;border-radius:.5rem;margin-bottom:1.5rem;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px);max-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}:is(select:not(.select--minimal,.btn)):is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}:is(select:not(.select--minimal,.btn)):is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}:is(select:not(.select--minimal,.btn)):disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}[disabled] :is(select:not(.select--minimal,.btn)){background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}[disabled] label{cursor:not-allowed;pointer-events:none}fieldset{width:100%}legend{font-family:var(--font-heading);font-style:normal;font-weight:var(--heading-weight);line-height:2rem;color:var(--colour-heading);margin:0;clear:both;display:block;float:none;font-size:var(--h4-fs);line-height:var(--heading-lh);padding-bottom:.5rem;max-width:var(--content-max-width);min-width:100%}div:has(>label:first-child):has(>input){position:relative;max-width:var(--input-max-width);margin-bottom:1.5rem}div:has(>label:first-child):has(>input) input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),div:has(>label:first-child):has(>input) output,div:has(>label:first-child):has(>input) .prefix,div:has(>label:first-child):has(>input) .suffix{margin-bottom:0 !important}div:has(>label:first-child):has(>input){display:flex;flex-wrap:wrap;align-items:center}div:has(>label:first-child):has(>input)>*:not(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])):not(output):not(.prefix):not(.suffix){flex-shrink:0;width:100%}div:has(>label:first-child):has(>input) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output){flex-shrink:1;flex-grow:1;width:0}div:has(>label:first-child):has(>input) input~*:not(output){order:5;margin-top:.5rem}*:has(>:is(.form-control-sm,.input--sm)){--input-fs: 0.875rem;--input-lh: 1rem;--input-padding-block: 0.625rem;--input-padding-inline: 0.875rem}*:has(>:is(.form-control-lg,.input--lg)){--input-fs: 1.5rem;--input-lh: 1.8125rem;--input-padding-block: 1.25rem;--input-padding-inline: 1.375rem}*:has(>label:first-child):has(>input):has(>:is(.form-control-inline,.input--inline)) label{flex-shrink:0;white-space:nowrap;width:fit-content !important;margin:0;margin-inline-end:1rem}*:has(>input[readonly]){position:relative;max-width:var(--input-max-width)}*:has(>input[readonly]):after{font-family:"Font Awesome 6 Pro";font-weight:300;content:"\uF023";position:absolute;font-size:var(--input-lh, 1.25rem);height:var(--input-lh, 1.25rem);width:var(--input-lh, 1.25rem);bottom:calc(var(--input-padding-block, 0.75rem) + 2px);right:calc(var(--input-padding-block, 1rem) + 2px);text-align:center}@supports selector(:has(*)){.suffix~:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=date]):not([type=time]),textarea,output),:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=date]):not([type=time]),textarea,output):has(~.suffix){order:1;border-start-end-radius:0 !important;border-end-end-radius:0 !important}:is(input):has(~iam-password-indicator){border-start-end-radius:0 !important;border-end-end-radius:0 !important}}.was-validated *:not(button):is(:invalid,.is-invalid,[aria-invalid]):not(.is-valid)+label,.was-validated label:has(*:not(button):is(:invalid,.is-invalid,[aria-invalid]):not(.is-valid)){--colour-check-border: var(--colour-danger);--colour-check-bg: #fcebec;border-color:var(--colour-danger)}.was-validated *:not(button):is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){border-color:var(--colour-danger) !important}.was-validated select:not(.btn):is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){background:var(--icon-select) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,var(--icon-error) right var(--input-padding-block, 3.5rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat;padding-right:6rem !important}.was-validated input:is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){background-image:var(--icon-error);background-repeat:no-repeat;background-position:right var(--input-padding-inline, 1rem) center;background-size:var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);padding-right:calc(var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)) !important}.was-validated *:not(button):is(:valid,.is-valid):not(.is-invalid){border-color:var(--colour-complete)}.was-validated input:is(:valid,.is-valid):not(:is(:invalid,.is-invalid)){background-image:var(--icon-tick);background-repeat:no-repeat;background-position:right var(--input-padding-inline, 1rem) center;background-size:var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);padding-right:calc(var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)) !important}.invalid-feedback{color:var(--colour-danger);margin-top:.5rem;background-image:var(--icon-error);background-repeat:no-repeat;background-position:left top 1px;background-size:var(--input-fs, 1rem) var(--input-fs, 1rem);padding-left:calc(var(--input-fs, 1rem) + .5rem);display:none}iam-address-lookup:has([required]){--req-display: none}.was-validated :is(:invalid,.is-invalid)~.invalid-feedback{display:block}.was-validated iam-address-lookup:has([required]:invalid){--error-border: var(--colour-danger);--error-bg: var(--icon-error);--error-display: block;--error-hide: none}@supports selector(:has(*)){input:is([type=radio],[type=checkbox]){position:absolute;top:0;left:0;opacity:0;height:0;width:0;margin:0;pointer-events:none}:is(div,fieldset,label:not(.tag)):has(>input:is([type=radio],[type=checkbox])):not(:has(label input)){position:relative;margin-bottom:1.5rem}:is(div,fieldset,label:not(.tag)):has(>input[type=radio]){--border-radius: 50%;--outline-width: 0.5rem}:is(div,fieldset,label:not(.tag)):has(>input[type=checkbox]){--border-radius: 0.25rem;--outline-width: 0.25rem}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)){--tick-colour: transparent;color:var(--colour-heading);position:relative;font-size:1rem;line-height:1.25rem;padding-left:2.5rem;padding-top:0.625rem;padding-bottom:0.625rem;margin-bottom:1.5rem;margin-right:1.5rem;cursor:pointer}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):has(+span),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):has(+span){margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):has(+input),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):has(+input){margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):last-child,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):last-child{margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):before,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):before{content:"";border:2px solid var(--colour-check-border, var(--colour-primary));background:var(--colour-check-bg, transparent);border-radius:var(--border-radius);height:var(--radio-size, 1.5rem);width:var(--radio-size, 1.5rem);display:inline-block;position:absolute;top:0.5rem;left:var(--outline-width)}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)).btn:before,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)).btn:before{opacity:0}input[type=radio]+label:not(:has(>iam-card)):after,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)):after{content:"" !important;background:var(--colour-info);border-radius:var(--border-radius);height:.875rem;width:.875rem;height:var(--radio-inner-size, 0.875rem);width:var(--radio-inner-size, 0.875rem);display:none;position:absolute;top:var(--radio-inner-top, 0.8125rem);left:var(--radio-inner-left, calc(0.3125rem + var(--outline-width)))}input[type=radio]+label:not(:has(>iam-card)).radio--tick:before,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)).radio--tick:before{content:"\uF00C";position:absolute;font-size:1.5em;line-height:1;color:var(--tick-colour);font-family:"Font Awesome 6 Pro";background:none !important;border:none !important;outline:none !important;left:.25rem}input[type=radio]+label:not(:has(>iam-card)).radio--tick:after,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)).radio--tick:after{display:none}@media(forced-colors: active){input:is([type=radio],[type=checkbox]):not(:checked)+label.radio--tick:not(:has(>iam-card)):before,label:has(input:is([type=radio],[type=checkbox]):not(:checked)).radio--tick:not(:has(>iam-card)):before{display:none}}:is(div,fieldset):has(>:is(input[type=radio],input[type=checkbox]):nth-of-type(2)) label:not(.tag):not(:has(>iam-card)){margin-bottom:0rem}fieldset:has(label>input:is([type=radio],[type=checkbox])) label{margin-bottom:0 !important}fieldset:has(label>input:is([type=radio],[type=checkbox])){margin-bottom:1.5rem}input:is([type=radio],[type=checkbox]):checked+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked){--tick-colour: var(--colour-info)}input:is([type=radio],[type=checkbox]):checked+label:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked):before{border-color:var(--colour-info)}input:is([type=radio],[type=checkbox]):checked+label:after,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked):after{display:inline-block}input:is([type=radio],[type=checkbox]):checked+label iam-card,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked) iam-card{--colour: var(--colour, var(--colour-info))}input[type=checkbox]:not([disabled]):checked+label:before,label:not(.tag):has(input[type=checkbox]:not([disabled]):checked):before{background:var(--colour-info) !important}input[type=checkbox]:checked+label:not(:has(>iam-card)):after,label:not(.tag):has(input[type=checkbox]:checked):after{content:"\uF00C";position:absolute;font-size:var(--checkbox-tick-size, 1em);line-height:1;color:var(--colour-primary-theme);font-family:"Font Awesome 6 Pro";font-weight:bold;height:var(--checkbox-inner-size, 1.5rem);width:var(--checkbox-inner-size, 1.5rem);line-height:1.625rem;background:none !important;border:none !important;outline:none !important;top:var(--checkbox-inner-top, 0.5rem);left:var(--checkbox-inner-left, var(--outline-width));text-align:center}input[type=checkbox]:indeterminate+label:before,label:not(.tag):has(input[type=checkbox]:indeterminate):before{background:var(--colour-info) !important;border-color:var(--colour-info) !important}input[type=checkbox]:indeterminate+label:after,label:not(.tag):has(input[type=checkbox]:indeterminate):after{content:"\uF068";position:absolute;font-size:var(--checkbox-tick-size, 1em);line-height:1;color:var(--colour-primary-theme);font-family:"Font Awesome 6 Pro";font-weight:bold;height:var(--checkbox-inner-size, 1.5rem);width:var(--checkbox-inner-size, 1.5rem);line-height:1.625rem;background:none !important;border:none !important;outline:none !important;top:var(--checkbox-inner-top, 0.5rem);left:var(--checkbox-inner-left, var(--outline-width));text-align:center}input:is([type=radio],[type=checkbox]):checked:is(:focus,:hover,.focus)+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked:is(:focus,:hover,.focus)){--tick-colour: var(--colour-info)}input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)+label,input:is([type=radio],[type=checkbox])+label.hover,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)){--tick-colour: var(--colour-muted)}input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)+label:before,input:is([type=radio],[type=checkbox])+label.hover:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)):before{background:var(--colour-check-bg, light-dark(var(--colour-light), #444444));outline:var(--outline-width) solid light-dark(var(--colour-light), #444444)}input:is([type=radio],[type=checkbox]):is(:active,.active)+label,input:is([type=radio],[type=checkbox])+label.active,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:active,.active)){--tick-colour: var(--colour-light)}input:is([type=radio],[type=checkbox]):is(:active,.active)+label:before,input:is([type=radio],[type=checkbox])+label.active:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:active,.active)):before{background:var(--colour-check-bg, #e0e0e0);outline:var(--outline-width) solid #e0e0e0}input:is([type=radio],[type=checkbox]):disabled+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled){opacity:.4;cursor:not-allowed}input:is([type=radio],[type=checkbox]):disabled+label>iam-card,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled)>iam-card{pointer-events:none}input:is([type=radio],[type=checkbox]):disabled+label:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled):before{background-color:none !important;outline:none !important;border-color:var(--colour-primary) !important}input[type=radio][disabled]:checked+label:after,label:not(.tag):has(input[type=radio][disabled]:checked):after{background-color:var(--colour-primary) !important}input[type=checkbox][disabled]:checked+label:before,label:not(.tag):has(input[type=checkbox][disabled]:checked):before{background:#e0e0e0 !important;border-color:#e0e0e0 !important}}.conditional{display:none}input:checked+.conditional,input:checked+label+.conditional,label:has(:checked)+.conditional{display:block;clear:both}input:not([class*=conditional-input-]):nth-of-type(1):checked~.conditional-1,input:not([class*=conditional-input-]):nth-of-type(2):checked~.conditional-2,input:not([class*=conditional-input-]):nth-of-type(3):checked~.conditional-3,input:not([class*=conditional-input-]):nth-of-type(4):checked~.conditional-4,input:not([class*=conditional-input-]):nth-of-type(5):checked~.conditional-5,input.conditional-input-1:checked~.conditional-1,input.conditional-input-2:checked~.conditional-2,input.conditional-input-3:checked~.conditional-3,input.conditional-input-4:checked~.conditional-4,input.conditional-input-5:checked~.conditional-5,label:has(input.conditional-input-1:checked)~.conditional-1,label:has(input.conditional-input-2:checked)~.conditional-2,label:has(input.conditional-input-3:checked)~.conditional-3,label:has(input.conditional-input-4:checked)~.conditional-4,label:has(input.conditional-input-5:checked)~.conditional-5{display:block;clear:both}select[multiple]{border-radius:.35rem}select[multiple]::-webkit-scrollbar{width:.7rem}select[multiple]::-webkit-scrollbar *{background-color:rgba(0,0,0,0)}select[multiple]::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);border-radius:.35rem}select:not(.select--minimal,.btn){background:var(--icon-select) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,linear-gradient(to right, var(--colour-canvas-2), var(--colour-canvas-2));padding-right:calc(var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem) + var(--input-lh, 1.25rem)) !important}select:not(.select--minimal,.btn) option{font-size:1.2em}select:not(.select--minimal,.btn){box-shadow:inset -2px 0px 0px var(--colour-primary-theme);max-width:var(--select-max-width)}select:not(.select--minimal,.btn)[multiple],select:not(.select--minimal,.btn)[size]:not([size="1"]){background:none;max-height:none !important}select:not(.select--minimal,.btn):disabled{background-color:gray;border-color:#000}select:not(.select--minimal,.btn):-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 inherit}div:has(>select){margin-bottom:1.5rem}div:has(>select) select{margin-bottom:0 !important}.select--minimal{all:unset;font-size:inherit;line-height:inherit;background:none;border:2px solid rgba(0,0,0,0);display:inline-block;padding:.4em calc(1em + .8ch) .4rem var(--select-padding-left, 0.4em) !important;font-weight:normal !important;margin:-0.4em 0 !important;border-radius:.25em;color:var(--colour-body);height:auto;cursor:pointer;font-family:var(--font-body) !important}.select--minimal option{background-color:var(--colour-canvas);padding-left:1em;font-size:inherit;line-height:inherit}.select--minimal:hover{background:var(--colour-light)}.select--minimal:is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0;box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}*:has(>.select--minimal){position:relative;display:inline-block !important;width:auto !important;font-size:inherit !important;line-height:1 !important;padding:0 !important;margin:0 !important;font-family:var(--font-body) !important}*:has(>.select--minimal):after{font-size:.8em;line-height:1em;content:"\uF078";font-family:"Font Awesome 6 Pro";position:absolute;top:40%;transform:translate(0, -50%);right:.8ch;pointer-events:none;color:var(--colour-body)}iam-fileupload input{display:none}:is(label:not(.tag),.label):has(:is(input,select,textarea)){display:block;margin-bottom:1.5rem;max-width:var(--input-max-width)}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(input:not([type=range]),select,textarea){margin-top:.5rem;margin-bottom:0 !important}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(input,select)~span:not(:is(.suffix,.prefix,.invalid-feedback)),:is(label:not(.tag),.label):has(:is(input,select,textarea)) span:has(>:is(input,select))~span:not(:is(.suffix,.prefix,.invalid-feedback)),:is(label:not(.tag),.label):has(:is(input,select,textarea)) .hint-text{all:initial;font-family:var(--font-body);color:var(--colour-body);margin-top:.5rem;display:block;line-height:1.2}:is(label:not(.tag),.label):has(:is(input,select,textarea)) .invalid-feedback{font-size:1rem;font-weight:normal;line-height:1.2}:is(label:not(.tag),.label):has(:is(input,select,textarea)) span:has(:is(input,select)){display:flex;width:100%}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(.suffix,.prefix):not(.mt-0){margin:.5rem 0 0 0 !important}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)),.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid){margin-bottom:1.5rem}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)):has(:is(:invalid,.is-invalid)):after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid):has(:is(:invalid,.is-invalid)):after{content:"This field is required";color:var(--colour-danger);margin-top:.5rem;background-image:var(--icon-error);background-repeat:no-repeat;background-position:left top 1px;background-size:var(--input-fs, 1rem) var(--input-fs, 1rem);padding-left:calc(var(--input-fs, 1rem) + .5rem);display:block;width:100%;font-size:1rem;line-height:1.2}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select))[data-error]:has(:is(:invalid,.is-invalid)):after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid)[data-error]:has(:is(:invalid,.is-invalid)):after{content:attr(data-error) !important}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)).error-nowrap:after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid).error-nowrap:after{white-space:nowrap}input[type=range]{--track-size: 0.5rem;--track-colour: var(--colour-light);--thumb-colour: var(--colour-info);--thumb-size: 1.5rem;width:100%;background:rgba(0,0,0,0);cursor:pointer;margin-top:2rem;margin-bottom:2rem;height:2rem;border-radius:50%;accent-color:var(--thumb-colour);-webkit-appearance:none;appearance:none}*:has(>input[type=range]){position:relative;padding-bottom:6rem;max-width:var(--input-max-width)}label input[type=range]{position:absolute;top:1.5rem;left:0}input[type=range]::-webkit-slider-runnable-track{background:var(--track-colour);height:var(--track-size);border-radius:.5rem}input[type=range]::-moz-range-track{background:var(--track-colour);height:var(--track-size);border-radius:.5rem}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;margin-top:-0.5rem;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]::-moz-range-thumb{border:none;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]:focus{outline:none}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:focus::-webkit-slider-thumb{outline:.5rem solid rgba(30,190,231,.2)}input[type=range]:active::-webkit-slider-thumb{outline:.5rem solid rgba(30,190,231,.4)}input[type=range]:hover::-moz-range-thumb,input[type=range]:focus::-moz-range-thumb{outline:.5rem solid rgba(30,190,231,.2)}input[type=range]:focus::-moz-range-thumb{outline:.5rem solid rgba(30,190,231,.4)}iam-slider input::-webkit-outer-spin-button,iam-slider input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:is(input[type=date],input[type=datetime-local],input[type=year],input[type=month],input[type=week],input[type=time]){position:relative;margin-right:-3rem;padding-right:3rem !important;background-position:right 4rem center;border-radius:.5rem !important}::-webkit-calendar-picker-indicator{background:rgba(0,0,0,0);bottom:0;color:rgba(0,0,0,0);cursor:pointer;height:auto;left:0;position:absolute;right:0;top:0;width:auto;order:3;z-index:98}::-webkit-datetime-edit{position:relative;z-index:99;max-width:fit-content}}:is(iam-advanced-select,iam-search,.postcode-lookup){position:relative;display:block}:is(iam-advanced-select,iam-search,.postcode-lookup) label{position:relative}:is(iam-advanced-select,iam-search,.postcode-lookup) input{padding-right:3rem}:is(iam-advanced-select,iam-search,.postcode-lookup) .empty{position:absolute;bottom:.5rem;right:3.5rem;margin:0;aspect-ratio:1/1;width:2rem;height:2rem;text-align:center;line-height:1}:is(iam-advanced-select,iam-search,.postcode-lookup) .empty:not(:hover,:focus){border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0)}:is(iam-advanced-select,iam-search,.postcode-lookup) .empty i{font-size:1.5rem}:is(iam-advanced-select,iam-search,.postcode-lookup):has(input:is([name$=Alt]):not([data-value],[data-placeholder])) .empty{display:none}:is(iam-advanced-select,iam-search,.postcode-lookup) label:after,:is(iam-advanced-select,iam-search,.postcode-lookup) .hint-text{position:absolute;top:100%}.was-validated :is(iam-advanced-select,iam-search,postcode-lookup) label:has(:is(input:not([type=radio]):not([type=checkbox]),select)),:is(iam-advanced-select,iam-search,postcode-lookup).was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)){margin-bottom:2.5rem}.was-validated :is(iam-advanced-select,iam-search,postcode-lookup) label:has(:is(input:not([type=radio]):not([type=checkbox]),select)) input,:is(iam-advanced-select,iam-search,postcode-lookup).was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)) input{background:none !important}.was-validated :is(iam-advanced-select,iam-search,postcode-lookup) label:has(:is(input:not([type=radio]):not([type=checkbox]),select)):has(:invalid,.is-invalid) .hint-text,:is(iam-advanced-select,iam-search,postcode-lookup).was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)):has(:invalid,.is-invalid) .hint-text{display:none}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist:empty{display:none !important}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist{z-index:100;top:100%;position:absolute;background-color:#fff;border-top:none}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist:not(:empty):has(option:not(.hide)){padding:.5rem}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist{max-height:25rem;overflow-y:auto;width:100%;max-width:var(--input-max-width, 50rem);border:none !important;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0,0,0,.1);display:none}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist option{background-color:#fff;padding:.5rem;cursor:pointer;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;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding-block:var(--menu-item-padding, 0.5rem) !important;width:100% !important;max-width:100% !important;text-align:var(--menu-item-text-align, left) !important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;text-overflow:ellipsis;overflow:clip}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist option:is(:hover,:focus){background:var(--colour-light) !important;border-radius:.25rem !important}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist option:active{background:#e0e0e0 !important;border-radius:.25rem !important}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup) datalist option.active{border-left:4px solid var(--colour-info) !important;border-radius:.25rem !important;background:hsl(from var(--colour-info) h s l/10%) !important}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(*:active),:active) datalist{display:block}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(*:active),:active) datalist:empty{display:block !important}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div) .datalist__wrapper{top:100%;position:absolute;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0,0,0,.1);width:var(--menu-item-width, 50rem) !important;max-width:var(--menu-item-width, 50rem) !important;z-index:100;display:none;max-height:25rem;overflow-y:auto}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div) .datalist__wrapper>datalist{border:none !important;box-shadow:none !important;position:relative;display:block !important;border-radius:0 !important;max-height:100% !important}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div) .datalist__wrapper:focus{outline:none !important}iam-address-lookup [slot=preloadedList]{border:none !important;box-shadow:none !important;position:relative;display:block !important;border-radius:0 !important;max-height:100% !important}iam-address-lookup [slot=preloadedList].noresults{display:block !important}iam-address-lookup [slot=preloadedList].noresults:before{content:"No addresses found";background-color:#fff;padding:1rem .5rem;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;padding-block:var(--menu-item-padding, 1rem) !important;display:block}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist:not(:empty)),:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist.loading),:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(*:active)) .datalist__wrapper:has(datalist.noresults),:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div) .datalist__wrapper:hover{display:block}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div) .datalist__wrapper:has(datalist.noresults) datalist{display:block}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div) .datalist__wrapper:has(datalist.noresults) datalist:before{content:"No addresses found";background-color:#fff;padding:.5rem;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;padding-block:var(--menu-item-padding, 0.5rem) !important;display:block}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(option:active)) .datalist__wrapper:has(datalist.loading) datalist{height:5rem}:is(iam-advanced-select,iam-search,iam-address-lookup,.postcode-lookup>div):is(:focus-within,:has(option:active)) .datalist__wrapper:has(datalist.loading) datalist:before{content:"\uF021";font-family:"Font Awesome 6 Pro";font-size:1.75rem;font-weight:300;display:block;position:absolute;top:calc(50% - 1rem);left:calc(50% - 1rem);animation-name:spin;animation-duration:4000ms;animation-iteration-count:infinite;animation-timing-function:linear}@-ms-keyframes spin{from{-ms-transform:rotate(0deg)}to{-ms-transform:rotate(360deg)}}@-moz-keyframes spin{from{-moz-transform:rotate(0deg)}to{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}:is(iam-advanced-select,iam-search,.postcode-lookup) [name=beforeList]{display:none}:is(iam-advanced-select,iam-search,.postcode-lookup) [name=beforeList]:has(+.show-welsh-banner){display:block}:is(iam-advanced-select,iam-search,.postcode-lookup) .datalist__wrapper.show-welsh-banner [name=beforeList]{display:block}@layer elements{*,*::before,*::after{box-sizing:border-box}button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[role=button]{cursor:pointer}button:focus:not(:focus-visible){outline:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 0.125rem;--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}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}.btn:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}.btn:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}.btn:not(.border-0){background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border)}.btn:not(:last-child){margin-right:var(--btn-margin)}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.colour-success{--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success:before,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active):before{content:"\uF00C";font-family:"Font Awesome 6 Pro";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:"Font Awesome 6 Pro";line-height:1em}.btn.btn[class*=fa-after]{padding-right:4rem}.btn.btn[class*=fa-after]:before{margin-right:0;margin-right:0.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}.btn:not(.btn-compact):before{margin-right:1rem}.btn i[class*=fa-]{font-family:"Font Awesome 6 Pro";margin-right:1rem;line-height:1em;font-style:inherit}.btn i[class*=fa-]: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:after,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active):after{margin-left:1.5rem;margin-right:-0.5rem}.btn:has(select){position:relative;padding:0}.btn:has(select) 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:bold;font-size:var(--btn-font-size) !important;line-height:var(--btn-line-height) !important;field-sizing:content !important}.btn:has(select) select option{padding:0;text-align:left;color:var(--colour-primary)}.btn:has(select):after{position:absolute;top:0.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:has(select).active:after{transform:rotate(-90deg)}.btn:has(select:focus):after{transform:rotate(-90deg)}.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:"Font Awesome 6 Pro"}}@layer elements{.btn-secondary{color:var(--colour-btn-secondary)}.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:rgba(0,0,0,0);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}.btn.btn-tertiary:after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}.btn.btn-tertiary.text-decoration-none:after{width:0%}.btn.btn-tertiary [class*=fa-]{margin-left:0;margin-right:.5rem}.btn.btn-tertiary [class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}.btn.btn-tertiary:is(:hover,:focus,.hover,:focus-within):not([disabled],:disabled,:active,.active):after{width:60% !important}.btn.btn-tertiary:is(:active,.active):not([disabled],:disabled){color:var(--colour-active)}}@layer elements{.btn-action{--btn-border-width: 0.0625rem;--btn-padding-block: 0.3125rem;--btn-padding-inline: 0.3125rem;--btn-margin: 0.5rem}.btn-action:not(.btn-primary){color:var(--colour-heading)}.btn-action:not(.btn-primary):not(.border-0){background-color:var(--colour-canvas-2);border:var(--btn-border-width) solid var(--colour-muted)}.btn-action{border-radius:.25rem !important;font-weight:400 !important;font-size:1rem;line-height:1.25rem}.btn-action.btn[class*=fa-]:before{content:var(--fa);margin-right:0.375rem}a:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn-action,.btn-action: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-action,.btn-action.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) .btn-action,.btn-action: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}.btn-action:has(select){padding-block:0;padding-right:2rem}.btn-action:has(select) select{margin:0rem 0rem !important;padding-right:2rem !important;margin-right:-2rem !important}.btn-action:has(select):after{top:.2rem;right:.5rem}}@layer elements{.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:.5rem}.btn-compact:not(:last-child){margin-right:.5rem}.btn-compact{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;line-height:var(--compact-size) !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1rem}.btn-compact:before{content:var(--fa);position:absolute;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - .25rem);font-weight:900}.btn-compact[class*=fa-]:before{line-height:calc(var(--compact-size) - .25rem)}@container style(--theme: dark){.btn-compact[class*=fa-]:before{color:#fff}}.btn-compact.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}.btn-compact.btn-action{--compact-size: 2rem;font-size:1rem}.btn-compact.btn-action:before{font-size:1em;font-weight:400}.btn-compact.btn-secondary{--colour-btn-bg: transparent;--colour-btn-border: transparent;border-color:rgba(0,0,0,0)}.btn-compact.btn-secondary:not([class*=colour-]){--colour: var(--colour-light)}.btn-compact.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)}.btn-compact.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse):is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}.btn-compact[data-number]{position:relative}.btn-compact[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:#fff;letter-spacing:-0.1em;font-family:arial,sans-serif}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary:not(:hover,:focus,.hover,:focus-within):not(.btn-collapse),.invert-colours .btn-compact.btn-secondary:not(:hover,:focus,.hover,:focus-within):not(.btn-collapse){background-color:var(--colour-white) !important;border-color:var(--colour-white) !important;color:var(--colour-heading)}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary:is(:hover,:focus,.hover,:focus-within):not([disabled]):not(.btn-collapse),.invert-colours .btn-compact.btn-secondary:is(:hover,:focus,.hover,:focus-within):not([disabled]):not(.btn-collapse){background-color:rgba(0,0,0,0);border-color:var(--colour-white) !important;color:var(--colour-white)}[class*=bg-]:not(.bg-info):not(.bg-success):not(.bg-light):not(.bg-warning):not(.bg-white):not(.bg-admin):not(.bg-canvas):not(.bg-canvas-2):not(.prevent-invert) .btn-compact.btn-secondary[disabled],.invert-colours .btn-compact.btn-secondary[disabled]{background-color:var(--colour-white) !important;border-color:var(--colour-white) !important;color:var(--colour-heading) !important}}.btn[popovertarget]{position:relative;anchor-name:--button2}.btn[popovertarget]>.fa-chevron-down{display:none}.btn[popovertarget]:after{content:"";display:inline-block;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)}.btn[popovertarget][aria-pressed]:after{transform:rotate(270deg)}@layer utilities{.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}@media screen and (min-width: 36em){.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}}@media screen and (min-width: 62em){.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}}}hr{--border-style: solid;--border-color: var(--colour-border);border:0;color:rgba(0,0,0,0);margin:0;border-bottom:none;background-color:currentColor;opacity:1;clear:both}.file-upload{max-width:25rem !important;padding-bottom:1rem}.file-upload .drop-area>input{display:none}.file-upload .file-upload__title{margin-top:0;margin-bottom:0;font-family:var(--font-heading);font-style:normal;font-weight:var(--heading-weight);line-height:2rem;color:var(--colour-heading);clear:both;display:block;padding-bottom:2rem;font-size:var(--h4-fs);line-height:var(--h4-lh);padding-bottom:var(--h4-pb);max-width:var(--content-max-width)}.file-upload .helper-text{max-width:16.875rem}.files span{display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);border:2px solid var(--colour-primary-theme);appearance:none;border-radius:.5rem;margin-bottom:1rem;color:var(--colour-primary);border-color:#d8d8d8;background:#d8d8d8;max-width:25rem !important;position:relative}@media(forced-colors: active){.files span{padding-right:5rem}.files span button{padding:0;width:3.7rem !important;text-indent:0% !important}.files span button:after{display:none !important}}.files span button{position:absolute;top:calc(50% - 0.5625rem);right:.875rem;z-index:var(--index-floating);text-indent:300%;overflow:hidden;border:none;height:1.125rem;width:1.125rem;background:rgba(0,0,0,0);color:inherit}.files span button:after{content:"";top:0;left:0;position:absolute;display:block;height:1.125rem;width:1.125rem;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-close);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-close);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%}:host(.fileupload--drag-drop) .file-upload{max-width:50rem !important}:host(.fileupload--drag-drop) .file-upload .helper-text{max-width:50rem !important}:host(.fileupload--drag-drop) .file-upload .drop-area>input{display:block;min-height:12.5rem;border:2px dashed var(--colour-primary-theme);color:rgba(0,0,0,0);position:relative;padding:1.5rem 2rem 1.5rem 2rem;user-select:none;max-width:100%;min-width:100%;margin-bottom:1rem}:host(.fileupload--drag-drop) .file-upload .drop-area>input.focus{border:2px solid var(--colour-info)}:host(.fileupload--drag-drop) .file-upload .drop-area{position:relative}:host(.fileupload--drag-drop) .file-upload .drop-area::before{content:"Drag and drop files here or click to upload";position:absolute;inset:1.5rem 2rem 1.5rem 2rem;z-index:1;pointer-events:none}:host(.fileupload--drag-drop) .file-upload ::file-selector-button{position:absolute;inset:0;opacity:0}/*# sourceMappingURL=assets/css/components/fileupload.css.map */
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
</style>
|
|
@@ -18,5 +18,5 @@
|
|
|
18
18
|
<span class="invalid-feedback ext">Some files did not match the accepted extension type.</span>
|
|
19
19
|
<span class="invalid-feedback size">Some files were too large to upload.</span>
|
|
20
20
|
</div>
|
|
21
|
-
`,this.shadowRoot.appendChild(a.content.cloneNode(!0))}connectedCallback(){this.innerHTML+='<i class="fa-regular fa-arrow-up-from-bracket me-2" aria-hidden="true" slot="btn"></i>';const a=this.shadowRoot.querySelector(".file-upload"),s=this.querySelector("input"),r=this.shadowRoot.querySelector(".helper-text");this.querySelector('[slot="helper"]')||(r.innerHTML=`${this.hasAttribute("data-maxsize")?`Max file size is ${this.getAttribute("data-maxsize")}kb. `:""}${s.hasAttribute("accept")?`Supported file types are ${s.getAttribute("accept")}`:""}`),f(this,a)}static get observedAttributes(){return["data-filename"]}attributeChangedCallback(a,s,r){switch(a){case"data-filename":{if(s!=r){const
|
|
21
|
+
`,this.shadowRoot.appendChild(a.content.cloneNode(!0))}connectedCallback(){this.innerHTML+='<i class="fa-regular fa-arrow-up-from-bracket me-2" aria-hidden="true" slot="btn"></i>';const a=this.shadowRoot.querySelector(".file-upload"),s=this.querySelector("input"),r=this.shadowRoot.querySelector(".helper-text");this.querySelector('[slot="helper"]')||(r.innerHTML=`${this.hasAttribute("data-maxsize")?`Max file size is ${this.getAttribute("data-maxsize")}kb. `:""}${s.hasAttribute("accept")?`Supported file types are ${s.getAttribute("accept")}`:""}`),f(this,a)}static get observedAttributes(){return["data-filename"]}attributeChangedCallback(a,s,r){switch(a){case"data-filename":{if(s!=r){const t=this.shadowRoot.querySelector(".files");r!=null&&r!="null"&&r!=""&&(t.innerHTML=`<span class="file" part="file">${r} <button data-file="${r}" part="file__remove">Remove</button></span>`)}break}}}}export{k as default};
|
|
22
22
|
//# sourceMappingURL=fileupload.component.min.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.6.
|
|
2
|
+
* iamKey v7.6.2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const h=a=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:a})},p=(a,t,o)=>(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementAdded",element:t}),o.forEach(e=>{a.addEventListener(e,function(i){const r={event:e,element:t,target:i.target};Object.keys(i.detail).forEach(d=>{const s=i.detail[d];r[d]=s}),window.dataLayer.push(r)})}),!0),g=`<div class="card__head" part="head">
|
|
5
5
|
<slot name="head"></slot>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.6.
|
|
2
|
+
* iamKey v7.6.2
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/function r(s,t){i(s,t)}function i(s,t){let e;t.addEventListener("keyup",()=>{clearTimeout(e),e=setTimeout(function(){o(s,t.value)},500)}),t.addEventListener("change",()=>{clearTimeout(e),o(s,t.value)})}const o=function(s,t){Array.from(s.querySelectorAll(":scope > li")).forEach(e=>{const a=e.textContent.toLowerCase();e.classList.add("d-none"),a.includes(t.toLowerCase())&&e.classList.remove("d-none")}),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"Filtered list",value:t})};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"filterlist"});class n extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"});const t=document.body.hasAttribute("data-assets-location")?document.body.getAttribute("data-assets-location"):"/assets",e=document.body.hasAttribute("data-core-css")?document.body.getAttribute("data-core-css"):`${t}/css/core.min.css`,a=document.createElement("template");a.innerHTML=`
|
|
5
5
|
<style>
|