@iamproperty/components 7.8.2--beta5 → 7.8.2--beta7
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/address-lookup.component.css +1 -1
- package/assets/css/components/address-lookup.component.css.map +1 -1
- package/assets/css/components/advanced-select.component.css +1 -1
- package/assets/css/components/advanced-select.component.css.map +1 -1
- package/assets/css/components/banner.component.css +1 -1
- package/assets/css/components/banner.component.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/branch-selector.css +1 -0
- package/assets/css/components/branch-selector.css.map +1 -0
- package/assets/css/components/calendar.component.css +1 -1
- package/assets/css/components/calendar.component.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/card.module.css +1 -1
- package/assets/css/components/card.module.css.map +1 -1
- package/assets/css/components/card.preload.css +1 -1
- package/assets/css/components/card.preload.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/charts.config.css +1 -1
- package/assets/css/components/charts.config.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/config.component.css +1 -1
- package/assets/css/components/config.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/filter-card.component.css +1 -1
- package/assets/css/components/filter-card.component.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/menu.component.css +1 -1
- package/assets/css/components/menu.component.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/multiselect.css +1 -1
- package/assets/css/components/multiselect.css.map +1 -1
- package/assets/css/components/nav-standalone.component.css +1 -0
- package/assets/css/components/nav-standalone.component.css.map +1 -0
- package/assets/css/components/nav.component.css +1 -1
- package/assets/css/components/nav.component.css.map +1 -1
- package/assets/css/components/nav.global.css +1 -1
- package/assets/css/components/nav.global.css.map +1 -1
- package/assets/css/components/nav.preload.css +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/record-card.component.css +1 -1
- package/assets/css/components/record-card.component.css.map +1 -1
- package/assets/css/components/search.component.css +1 -1
- package/assets/css/components/search.component.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/split-button.component.css +1 -1
- package/assets/css/components/split-button.component.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/tag.component.css +1 -1
- package/assets/css/components/tag.component.css.map +1 -1
- package/assets/css/components/video-card.component.css +1 -1
- package/assets/css/components/video-card.component.css.map +1 -1
- package/assets/css/components/video-modal.component.css +1 -1
- package/assets/css/components/video-modal.component.css.map +1 -1
- package/assets/css/components/video.component.css +1 -1
- package/assets/css/components/video.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/elements/buttons--action.css +1 -1
- package/assets/css/elements/buttons--action.css.map +1 -1
- package/assets/css/elements/buttons--compact.css +1 -1
- package/assets/css/elements/buttons--compact.css.map +1 -1
- package/assets/css/elements/buttons--global.css +1 -1
- package/assets/css/elements/buttons--global.css.map +1 -1
- package/assets/css/elements/buttons--secondary.css +1 -1
- package/assets/css/elements/buttons--secondary.css.map +1 -1
- package/assets/css/elements/buttons--tertiary.css +1 -1
- package/assets/css/elements/buttons--tertiary.css.map +1 -1
- package/assets/css/elements/buttons.css +1 -1
- package/assets/css/elements/buttons.css.map +1 -1
- package/assets/css/elements/dropdown.css +1 -1
- package/assets/css/elements/dropdown.css.map +1 -1
- package/assets/css/elements/forms.css +1 -1
- package/assets/css/elements/forms.css.map +1 -1
- package/assets/css/elements/links--global.css +1 -1
- package/assets/css/elements/links--global.css.map +1 -1
- package/assets/css/elements/links.css +1 -1
- package/assets/css/elements/links.css.map +1 -1
- package/assets/css/elements/popover.css +1 -1
- package/assets/css/elements/popover.css.map +1 -1
- package/assets/css/elements/select.css +1 -1
- package/assets/css/elements/select.css.map +1 -1
- package/assets/css/elements/tooltips.css +1 -1
- package/assets/css/elements/tooltips.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.min.js +3 -3
- package/assets/js/components/address-lookup/address-lookup.component.js +1 -1
- 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 +4 -4
- package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
- package/assets/js/components/banner/banner.component.min.js +2 -2
- package/assets/js/components/barchart/barchart.component.min.js +2 -2
- package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
- package/assets/js/components/bone/bone.component.min.js +1 -1
- package/assets/js/components/branch-selector/branch-selector.component.js +69 -0
- package/assets/js/components/branch-selector/branch-selector.component.min.js +22 -0
- package/assets/js/components/branch-selector/branch-selector.component.min.js.map +1 -0
- package/assets/js/components/button/button.component.min.js +1 -1
- package/assets/js/components/calendar/calendar.component.min.js +2 -2
- package/assets/js/components/card/card.component.min.js +3 -3
- package/assets/js/components/carousel/carousel.component.min.js +3 -3
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
- package/assets/js/components/config/config.component.min.js +4 -4
- package/assets/js/components/config/config.component.min.js.map +1 -1
- package/assets/js/components/content/content.component.min.js +1 -1
- package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js +4 -4
- package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
- package/assets/js/components/filter-card/filter-card.component.min.js +5 -5
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/form/form.component.min.js +1 -1
- package/assets/js/components/header/header.component.min.js +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.min.js +3 -3
- package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
- package/assets/js/components/input/input.component.min.js +1 -1
- package/assets/js/components/input-range/input-range.component.min.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js +1 -1
- package/assets/js/components/menu/menu.component.min.js +2 -2
- 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.js +2 -0
- package/assets/js/components/modal/modal.component.min.js +4 -4
- package/assets/js/components/modal/modal.component.min.js.map +1 -1
- package/assets/js/components/multi-step/multi-step.component.min.js +2 -2
- package/assets/js/components/multi-step/multi-step.component.min.js.map +1 -1
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +4 -4
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js.map +1 -1
- package/assets/js/components/multiselect/multiselect.component.js +14 -18
- package/assets/js/components/multiselect/multiselect.component.min.js +14 -14
- package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
- package/assets/js/components/nav/nav.component.js +30 -255
- package/assets/js/components/nav/nav.component.min.js +46 -30
- package/assets/js/components/nav/nav.component.min.js.map +1 -1
- package/assets/js/components/nav-standalone/nav-standalone.component.js +51 -0
- package/assets/js/components/nav-standalone/nav-standalone.component.min.js +80 -0
- package/assets/js/components/nav-standalone/nav-standalone.component.min.js.map +1 -0
- package/assets/js/components/notification/notification.component.min.js +2 -2
- package/assets/js/components/pagination/pagination.component.min.js +2 -2
- package/assets/js/components/password/password.component.min.js +1 -1
- package/assets/js/components/popover/popover.component.min.js +1 -1
- package/assets/js/components/rank/rank.component.min.js +1 -1
- package/assets/js/components/rankings/rankings.component.min.js +1 -1
- package/assets/js/components/rating/rating.component.min.js +1 -1
- package/assets/js/components/record-card/record-card.component.min.js +6 -6
- package/assets/js/components/search/search.component.min.js +3 -3
- package/assets/js/components/search/search.component.min.js.map +1 -1
- package/assets/js/components/skeleton/skeleton.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 +4 -4
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +6 -6
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
- package/assets/js/components/std-nav/std-nav.component.js +32 -58
- package/assets/js/components/std-nav/std-nav.component.min.js +9 -54
- package/assets/js/components/std-nav/std-nav.component.min.js.map +1 -1
- package/assets/js/components/table/table.component.min.js +2 -2
- package/assets/js/components/table-ajax/table-ajax.component.min.js +2 -2
- package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +2 -2
- package/assets/js/components/table-submit/table-submit.component.min.js +2 -2
- package/assets/js/components/tabs/tabs.component.min.js +2 -2
- package/assets/js/components/tag/tag.component.min.js +4 -4
- package/assets/js/components/tag/tag.component.min.js.map +1 -1
- package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
- package/assets/js/components/video/video.component.min.js +2 -2
- package/assets/js/components/video-card/video-card.component.min.js +6 -6
- package/assets/js/components/video-modal/video-modal.component.min.js +5 -5
- package/assets/js/components/word-count/word-count.component.min.js +1 -1
- package/assets/js/modules/advanced-select.js +13 -5
- package/assets/js/modules/nav.js +183 -64
- package/assets/js/modules/nav.test.js +4 -1
- package/assets/js/scripts.bundle.js +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/sass/components/branch-selector.scss +112 -0
- package/assets/sass/components/card.module.scss +11 -1
- package/assets/sass/components/card.preload.scss +0 -15
- package/assets/sass/components/charts.config.scss +3 -3
- package/assets/sass/components/menu.component.scss +2 -1
- package/assets/sass/components/multiselect.scss +0 -1
- package/assets/sass/components/nav-standalone.component.scss +50 -0
- package/assets/sass/components/nav.component.scss +142 -116
- package/assets/sass/components/nav.global.scss +26 -198
- package/assets/sass/components/nav.preload.scss +1 -7
- package/assets/sass/elements/buttons--action.css +1 -1
- package/assets/sass/elements/buttons--compact.css +8 -4
- package/assets/sass/elements/buttons--global.css +3 -6
- package/assets/sass/elements/buttons--secondary.css +1 -1
- package/assets/sass/elements/buttons--tertiary.css +1 -1
- package/assets/sass/elements/dropdown.css +16 -2
- package/assets/sass/elements/links--global.scss +29 -3
- package/assets/sass/elements/popover.scss +1 -0
- package/assets/sass/elements/select.scss +1 -1
- package/assets/sass/elements/tooltips.scss +54 -0
- package/assets/sass/foundations/colours.scss +15 -0
- package/assets/sass/foundations/root.scss +4 -0
- package/assets/sass/templates/form.scss +26 -3
- package/assets/ts/components/address-lookup/address-lookup.component.ts +2 -1
- package/assets/ts/components/branch-selector/branch-selector.component.ts +93 -0
- package/assets/ts/components/modal/modal.component.ts +3 -0
- package/assets/ts/components/multiselect/multiselect.component.ts +20 -23
- package/assets/ts/components/nav/nav.component.ts +30 -285
- package/assets/ts/components/nav-standalone/nav-standalone.component.ts +69 -0
- package/assets/ts/components/std-nav/std-nav.component.ts +38 -81
- package/assets/ts/modules/advanced-select.ts +12 -11
- package/assets/ts/modules/nav.test.ts +4 -1
- package/assets/ts/modules/nav.ts +221 -78
- package/dist/components.es.js +2697 -1246
- package/dist/components.umd.js +503 -455
- package/package.json +5 -5
- package/src/components/BranchSelector/BranchSelector.vue +20 -0
- package/src/components/{STDNavStandalone/STDNavStandalone.vue → NavStandalone/NavStandalone.vue} +3 -3
- package/src/index.js +1 -0
- package/assets/css/components/nav.docs.css +0 -1
- package/assets/css/components/nav.docs.css.map +0 -1
- package/assets/css/components/std-nav-standalone.component.css +0 -1
- package/assets/css/components/std-nav-standalone.component.css.map +0 -1
- package/assets/js/components/std-nav-standalone/std-nav-standalone.component.js +0 -70
- package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +0 -20
- package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js.map +0 -1
- package/assets/sass/components/nav.docs.scss +0 -54
- package/assets/sass/components/std-nav-standalone.component.scss +0 -229
- package/assets/ts/components/std-nav-standalone/std-nav-standalone.component.ts +0 -94
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta7
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const y=(e,r,i)=>r.split(/[\.\[\]\'\"]/).filter(t=>t).reduce((t,d)=>t?t[d]:i,e),_=e=>Array.isArray(e)||e!==null&&["function","object"].includes(typeof e);var S=function(e,r,i,t){function d(n){return n instanceof i?n:new i(function(s){s(n)})}return new(i||(i=Promise))(function(n,s){function p(l){try{a(t.next(l))}catch(c){s(c)}}function o(l){try{a(t.throw(l))}catch(c){s(c)}}function a(l){l.done?n(l.value):d(l.value).then(p,o)}a((t=t.apply(e,r||[])).next())})};const w=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),f=(e,r)=>w(e)?e[r]:void 0,j=e=>String(e??"").replace(`
|
|
5
5
|
`,", "),z=(e,r,i,t,d="")=>{var n,s,p,o,a,l,c;const h=y(r,i,void 0),u=y(r,t,void 0),m=_(r)?"":r,b=(a=(o=(p=(s=(n=h??f(r,"value"))!==null&&n!==void 0?n:f(r,"id"))!==null&&s!==void 0?s:u)!==null&&p!==void 0?p:f(r,"title"))!==null&&o!==void 0?o:f(r,"label"))!==null&&a!==void 0?a:m,g=j((c=(l=u??f(r,"title"))!==null&&l!==void 0?l:f(r,"label"))!==null&&c!==void 0?c:b);if(!g)return;const v=document.createElement("option");v.value=String(b),v.textContent=`${d}${g}`,e.appendChild(v)},A=e=>Array.from(e.querySelectorAll("input,select")),k=(e,r,i)=>e.hasAttribute(r)?e.getAttribute(r)||"":i,E=(e,r,i)=>S(void 0,void 0,void 0,function*(){let t=e.getAttribute("data-url");if(!t)return;const d=e.getAttribute("data-method")||"GET",n={},s=window;s.controller||(s.controller={}),s.controller[t]&&s.controller[t].abort(),s.controller[t]=new AbortController;const{signal:p}=s.controller[t],o={signal:p,method:d,headers:new Headers({"Content-Type":"application/json",Accept:"application/json"})};d.toUpperCase()==="GET"?A(e).forEach(a=>{const l=a.getAttribute("name"),c=a.value;l&&c&&(t+=`${t.includes("?")?"&":"?"}${encodeURIComponent(l)}=${encodeURIComponent(c)}`)}):(A(e).forEach(a=>{const l=a.getAttribute("name"),c=a.value;l&&c&&(n[l]=c)}),o.body=JSON.stringify(n));try{const l=yield(yield fetch(t,o)).json(),c=k(e,"data-schema","data"),h=k(e,"data-value-schema","value"),u=k(e,"data-display-schema","label"),m=y(l,c,[]);Array.isArray(m)?m.forEach(b=>{z(r,b,h,u)}):w(m)&&Object.entries(m).forEach(([b,g])=>{Array.isArray(g)&&g.forEach(v=>{z(r,v,h,u,`${b}: `)})}),L(r,i)}catch(a){console.log(a)}}),L=(e,r)=>{var i;for(const t of e.options)(((i=t.textContent)===null||i===void 0?void 0:i.trim())||t.value).toLowerCase().includes(r.toLowerCase())?t.classList.remove("js-hide"):t.classList.add("js-hide")},q=(e,r,i)=>{var t;const d=i.closest("datalist"),n=((t=i.textContent)===null||t===void 0?void 0:t.trim())||i.value,p=`${r.getAttribute("name")||""}Alt`;if(r.value=n,r.setAttribute("data-value",n),r.setAttribute("placeholder",n),i.value&&i.value!==n){const a=e.querySelector(`input[name="${p}"]`);a?a.value=i.value:e.insertAdjacentHTML("beforeend",`<input type="hidden" name="${p}" value="${i.value}">`)}else{const a=e.querySelector(`input[name="${p}"]`);a&&a.remove()}if(!d)return;for(const a of d.options)a===i?a.classList.add("active"):a.classList.remove("active");const o=new CustomEvent("option-selected",{detail:{title:n,value:i.value||"",url:i.hasAttribute("data-url")&&i.getAttribute("data-url")||""}});e.dispatchEvent(o)},C=(e,r,i)=>{const t=Number.parseInt(e.getAttribute(r)||"",10);return Number.isNaN(t)?i:t},T=e=>e.target instanceof HTMLElement?e.target.closest("option"):null,x=window;x.dataLayer=x.dataLayer||[],x.dataLayer.push({event:"customElementRegistered",element:"Search"});class $ extends HTMLElement{constructor(){super();const r=this.attachShadow({mode:"open"});document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
|
|
6
6
|
<style>
|
|
7
|
-
@layer elements{:is(label:not(.tag),.label){font-size:1.125rem;line-height:1.3125rem;margin-bottom:.5rem;font-weight:normal;color:var(--colour-heading);display:block;&>iam-rating{margin-top:.25rem !important}&.label--sm{--input-max-width: 15rem}}}@layer elements{input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}::-moz-focus-inner{padding:0;border-style:none}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;font-weight:normal;line-height:inherit}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-moz-color-swatch{border-radius:0;border:none}::-webkit-color-swatch{border-radius:0;border:none}::file-selector-button{font:inherit;-webkit-appearance:button}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output){display:block;width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);appearance:none;border-radius:.5rem;margin-bottom:1.5rem;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px);max-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output):is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output):is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output):disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}input[type=color]{padding:0 !important;max-width:3rem !important}[disabled] :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output,select:not(.select--minimal,.btn)){background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}[disabled] label{cursor:not-allowed;pointer-events:none}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])){max-width:var(--input-max-width)}}@layer elements{select,optgroup{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}select{text-transform:none;word-wrap:normal}select:disabled{opacity:1}select:not(.select--minimal,.btn){background:var(--icon-select) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,linear-gradient(to right, var(--colour-canvas-2), var(--colour-canvas-2));padding-right:calc(var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem) + var(--input-lh, 1.25rem)) !important}select:not(.select--minimal,.btn) option{font-size:1.2em}select:not(.select--minimal,.btn){box-shadow:inset -2px 0px 0px var(--colour-primary-theme);max-width:var(--select-max-width)}select:not(.select--minimal,.btn)[multiple],select:not(.select--minimal,.btn)[size]:not([size="1"]){background:none;max-height:none !important}select:not(.select--minimal,.btn):disabled{background-color:gray;border-color:#000}select:not(.select--minimal,.btn):-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 inherit}div:has(>select){margin-bottom:1.5rem}div:has(>select) select{margin-bottom:0 !important}.select--minimal{all:unset;font-size:inherit;line-height:inherit;background:none;border:2px solid rgba(0,0,0,0);display:inline-block;padding:.4em calc(1em + .8ch) .4rem var(--select-padding-left, 0.4em) !important;font-weight:normal !important;margin:-0.4em 0 !important;border-radius:.25em;color:var(--colour-body);height:auto;cursor:pointer;font-family:var(--font-body) !important}.select--minimal option{background-color:var(--colour-canvas);padding-left:1em;font-size:inherit;line-height:inherit}.select--minimal:hover{background:var(--colour-light)}.select--minimal:is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0;box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}*:has(>.select--minimal){position:relative;display:inline-block !important;width:auto !important;font-size:inherit !important;line-height:1 !important;padding:0 !important;margin:0 !important;font-family:var(--font-body) !important}*:has(>.select--minimal):after{font-size:.8em;line-height:1em;content:"\uF078";font-family:"Font Awesome 7 Pro";position:absolute;top:40%;transform:translate(0, -50%);right:.8ch;pointer-events:none;color:var(--colour-body)}select:not(.select--minimal,.btn){width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);border-radius:.5rem;margin-bottom:1.5rem;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px);max-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}select:not(.select--minimal,.btn):is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}select:not(.select--minimal,.btn):is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}select:not(.select--minimal,.btn):disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}[disabled] select:not(.select--minimal,.btn){background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}@media(hover: hover){select{appearance:base-select !important}}select::picker-icon{display:none}select::picker(select){appearance:base-select}select option::checkmark{display:none}select selectedcontent span{display:none}select[multiple]{border-radius:.35rem}select[multiple]::-webkit-scrollbar{width:.7rem}select[multiple]::-webkit-scrollbar *{background-color:rgba(0,0,0,0)}select[multiple]::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);border-radius:.35rem}}@layer elements{textarea{--textarea-height-scale: 3;margin:0;font-family:inherit;resize:vertical;display:block;width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);appearance:none;border-radius:.5rem;margin-bottom:1.5rem;max-height:100%;&:not([rows]){min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)*var(--textarea-height-scale) + 4px) !important}&[rows="1"]{--textarea-height-scale: 1}&[rows="2"]{--textarea-height-scale: 2}&:is([rows="2"],[rows="2"]){min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)*var(--textarea-height-scale) + 4px) !important}&:is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}&:is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30, 190, 230, 0.25)}&:disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}}[disabled] textarea{background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}label:not(.tag):has(textarea){display:block;margin-bottom:1.5rem;max-width:var(--input-max-width);textarea{margin-top:.5rem;margin-bottom:0 !important}}}@layer elements{fieldset{min-width:0;padding:0;margin:0;border:0}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[disabled] label{cursor:not-allowed;pointer-events:none}fieldset{width:100%;position:relative}legend{font-family:var(--font-heading);font-style:normal;font-weight:var(--heading-weight);line-height:2rem;color:var(--colour-heading);margin:0;clear:both;display:block;float:none;font-size:var(--h4-fs);line-height:var(--heading-lh);padding-bottom:.5rem;max-width:var(--content-max-width);min-width:100%}div:has(>label:first-child):has(>input){position:relative;max-width:var(--input-max-width);margin-bottom:1.5rem}div:has(>label:first-child):has(>input) input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),div:has(>label:first-child):has(>input) output,div:has(>label:first-child):has(>input) .prefix,div:has(>label:first-child):has(>input) .suffix{margin-bottom:0 !important}div:has(>label:first-child):has(>input){display:flex;flex-wrap:wrap;align-items:center}div:has(>label:first-child):has(>input)>*:not(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])):not(output):not(.prefix):not(.suffix){flex-shrink:0;width:100%}div:has(>label:first-child):has(>input) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output){flex-shrink:1;flex-grow:1;width:0}div:has(>label:first-child):has(>input) input~*:not(output){order:5;margin-top:.5rem}*:has(>:is(.form-control-sm,.input--sm)){--input-fs: 0.875rem;--input-lh: 1rem;--input-padding-block: 0.625rem;--input-padding-inline: 0.875rem}*:has(>:is(.form-control-lg,.input--lg)){--input-fs: 1.5rem;--input-lh: 1.8125rem;--input-padding-block: 1.25rem;--input-padding-inline: 1.375rem}*:has(>label:first-child):has(>input):has(>:is(.form-control-inline,.input--inline)) label{flex-shrink:0;white-space:nowrap;width:fit-content !important;margin:0;margin-inline-end:1rem}*:has(>input[readonly]){position:relative;max-width:var(--input-max-width)}*:has(>input[readonly]):after{font-family:var(--fa-family-classic);font-weight:300;content:"\uF023";position:absolute;font-size:var(--input-lh, 1.25rem);height:var(--input-lh, 1.25rem);width:var(--input-lh, 1.25rem);top:auto !important;bottom:calc(var(--input-padding-block, 0.75rem) + 2px);right:calc(var(--input-padding-block, 1rem) + 2px);text-align:center}@supports selector(:has(*)){.suffix~:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=date]):not([type=time]),output),:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=date]):not([type=time]),output):has(~.suffix){order:1;border-start-end-radius:0 !important;border-end-end-radius:0 !important}:is(input):has(~iam-password-indicator){border-start-end-radius:0 !important;border-end-end-radius:0 !important}label:has(.suffix) input{border-start-end-radius:0 !important;border-end-end-radius:0 !important}}.was-validated *:not(button):is(:invalid,.is-invalid,[aria-invalid]):not(.is-valid)+label,.was-validated label:has(*:not(button):is(:invalid,.is-invalid,[aria-invalid]):not(.is-valid)){--colour-check-border: var(--colour-danger);--colour-check-bg: #fcebec;border-color:var(--colour-danger)}.was-validated *:not(button):is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){border-color:var(--colour-danger) !important}.was-validated select:not(.btn):is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){background:var(--icon-select) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,var(--icon-error) right var(--input-padding-block, 3.5rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat;padding-right:6rem !important}.was-validated input:is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){background-image:var(--icon-error);background-repeat:no-repeat;background-position:right var(--input-padding-inline, 1rem) center;background-size:var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);padding-right:calc(var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)) !important}.was-validated *:not(button):is(:valid,.is-valid):not(.is-invalid){border-color:var(--colour-complete)}.was-validated input:is(:valid,.is-valid):not(:is(:invalid,.is-invalid)){background-image:var(--icon-tick);background-repeat:no-repeat;background-position:right var(--input-padding-inline, 1rem) center;background-size:var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);padding-right:calc(var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)) !important}.invalid-feedback{color:var(--colour-danger);margin-top:.5rem;background-image:var(--icon-error);background-repeat:no-repeat;background-position:left top 1px;background-size:var(--input-fs, 1rem) var(--input-fs, 1rem);padding-left:calc(var(--input-fs, 1rem) + .5rem);display:none}iam-address-lookup:has([required]){--req-display: none}.was-validated :is(:invalid,.is-invalid)~.invalid-feedback{display:block}.was-validated iam-address-lookup:has([required]:invalid){--error-border: var(--colour-danger);--error-bg: var(--icon-error);--error-display: block;--error-hide: none}@supports selector(:has(*)){input:is([type=radio],[type=checkbox]){position:absolute;top:0;left:0;opacity:0;height:0;width:0;margin:0;pointer-events:none}:is(div,fieldset,label:not(.tag)):has(>input:is([type=radio],[type=checkbox])):not(:has(label input)){position:relative;margin-bottom:1.5rem}:is(div,fieldset,label:not(.tag)):has(>input[type=radio]){--border-radius: 50%;--outline-width: 0.5rem}:is(div,fieldset,label:not(.tag)):has(>input[type=checkbox]){--border-radius: 0.25rem;--outline-width: 0.25rem}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)){--tick-colour: transparent;color:var(--colour-heading);position:relative;font-size:1rem;line-height:1.25rem;padding-left:2.5rem;padding-top:.625rem;padding-bottom:.625rem;margin-bottom:1.5rem;margin-right:1.5rem;cursor:pointer}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):has(+span),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):has(+span){margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):has(+input),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):has(+input){margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):last-child,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):last-child{margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):before,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):before{content:"";border:2px solid var(--colour-check-border, var(--colour-primary));background:var(--colour-check-bg, transparent);border-radius:var(--border-radius);height:var(--radio-size, 1.5rem);width:var(--radio-size, 1.5rem);display:inline-block;position:absolute;top:.5rem;left:var(--outline-width)}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)).btn:before,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)).btn:before{opacity:0}input[type=radio]+label:not(:has(>iam-card)):after,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)):after{content:"" !important;background:var(--colour-info);border-radius:var(--border-radius);height:.875rem;width:.875rem;height:var(--radio-inner-size, 0.875rem);width:var(--radio-inner-size, 0.875rem);display:none;position:absolute;top:var(--radio-inner-top, 0.8125rem);left:var(--radio-inner-left, calc(0.3125rem + var(--outline-width)))}input[type=radio]+label:not(:has(>iam-card)).radio--tick:before,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)).radio--tick:before{content:"\uF00C";position:absolute;font-size:1.5em;line-height:1;color:var(--tick-colour);font-family:var(--fa-family-classic);background:none !important;border:none !important;outline:none !important;left:.25rem}input[type=radio]+label:not(:has(>iam-card)).radio--tick:after,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)).radio--tick:after{display:none}@media(forced-colors: active){input:is([type=radio],[type=checkbox]):not(:checked)+label.radio--tick:not(:has(>iam-card)):before,label:has(input:is([type=radio],[type=checkbox]):not(:checked)).radio--tick:not(:has(>iam-card)):before{display:none}}:is(div,fieldset):has(>:is(input[type=radio],input[type=checkbox]):nth-of-type(2)) label:not(.tag):not(:has(>iam-card)){margin-bottom:0rem}fieldset:has(label>input:is([type=radio],[type=checkbox])) label{margin-bottom:0 !important}fieldset:has(label>input:is([type=radio],[type=checkbox])){margin-bottom:1.5rem}input:is([type=radio],[type=checkbox]):checked+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked){--tick-colour: var(--colour-info)}input:is([type=radio],[type=checkbox]):checked+label:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked):before{border-color:var(--colour-info)}input:is([type=radio],[type=checkbox]):checked+label:after,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked):after{display:inline-block}input:is([type=radio],[type=checkbox]):checked+label iam-card,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked) iam-card{--colour: var(--colour, var(--colour-info))}input[type=checkbox]:not([disabled]):checked+label:before,label:not(.tag):has(input[type=checkbox]:not([disabled]):checked):before{background:var(--colour-info) !important}input[type=checkbox]:checked+label:not(:has(>iam-card)):after,label:not(.tag):has(input[type=checkbox]:checked):after{content:"\uF00C";position:absolute;font-size:var(--checkbox-tick-size, 1em);line-height:1;color:var(--colour-primary-theme);font-family:var(--fa-family-classic);font-weight:bold;height:var(--checkbox-inner-size, 1.5rem);width:var(--checkbox-inner-size, 1.5rem);line-height:1.625rem;background:none !important;border:none !important;outline:none !important;top:var(--checkbox-inner-top, 0.5rem);left:var(--checkbox-inner-left, var(--outline-width));text-align:center}input[type=checkbox]:indeterminate+label:before,label:not(.tag):has(input[type=checkbox]:indeterminate):before{background:var(--colour-info) !important;border-color:var(--colour-info) !important}input[type=checkbox]:indeterminate+label:after,label:not(.tag):has(input[type=checkbox]:indeterminate):after{content:"\uF068";position:absolute;font-size:var(--checkbox-tick-size, 1em);line-height:1;color:var(--colour-primary-theme);font-family:var(--fa-family-classic);font-weight:bold;height:var(--checkbox-inner-size, 1.5rem);width:var(--checkbox-inner-size, 1.5rem);line-height:1.625rem;background:none !important;border:none !important;outline:none !important;top:var(--checkbox-inner-top, 0.5rem);left:var(--checkbox-inner-left, var(--outline-width));text-align:center}input:is([type=radio],[type=checkbox]):checked:is(:focus,:hover,.focus)+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked:is(:focus,:hover,.focus)){--tick-colour: var(--colour-info)}input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)+label,input:is([type=radio],[type=checkbox])+label.hover,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)){--tick-colour: var(--colour-muted)}input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)+label:before,input:is([type=radio],[type=checkbox])+label.hover:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)):before{background:var(--colour-check-bg, light-dark(var(--colour-light), #444444));outline:var(--outline-width) solid light-dark(var(--colour-light), #444444)}input:is([type=radio],[type=checkbox]):is(:active,.active)+label,input:is([type=radio],[type=checkbox])+label.active,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:active,.active)){--tick-colour: var(--colour-light)}input:is([type=radio],[type=checkbox]):is(:active,.active)+label:before,input:is([type=radio],[type=checkbox])+label.active:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:active,.active)):before{background:var(--colour-check-bg, #e0e0e0);outline:var(--outline-width) solid #e0e0e0}input:is([type=radio],[type=checkbox]):disabled+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled){opacity:.4;cursor:not-allowed}input:is([type=radio],[type=checkbox]):disabled+label>iam-card,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled)>iam-card{pointer-events:none}input:is([type=radio],[type=checkbox]):disabled+label:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled):before{background-color:none !important;outline:none !important;border-color:var(--colour-primary) !important}input[type=radio][disabled]:checked+label:after,label:not(.tag):has(input[type=radio][disabled]:checked):after{background-color:var(--colour-primary) !important}input[type=checkbox][disabled]:checked+label:before,label:not(.tag):has(input[type=checkbox][disabled]:checked):before{background:#e0e0e0 !important;border-color:#e0e0e0 !important}}.conditional{display:none}input:checked+.conditional,input:checked+label+.conditional,label:has(:checked)+.conditional,.was-validated .conditional:has(input[required]:invalid),.was-validated .conditional:focus-within{display:block;clear:both}input:not([class*=conditional-input-]):nth-of-type(1):checked~.conditional-1,input:not([class*=conditional-input-]):nth-of-type(2):checked~.conditional-2,input:not([class*=conditional-input-]):nth-of-type(3):checked~.conditional-3,input:not([class*=conditional-input-]):nth-of-type(4):checked~.conditional-4,input:not([class*=conditional-input-]):nth-of-type(5):checked~.conditional-5,input.conditional-input-1:checked~.conditional-1,input.conditional-input-2:checked~.conditional-2,input.conditional-input-3:checked~.conditional-3,input.conditional-input-4:checked~.conditional-4,input.conditional-input-5:checked~.conditional-5,label:has(input.conditional-input-1:checked)~.conditional-1,label:has(input.conditional-input-2:checked)~.conditional-2,label:has(input.conditional-input-3:checked)~.conditional-3,label:has(input.conditional-input-4:checked)~.conditional-4,label:has(input.conditional-input-5:checked)~.conditional-5{display:block;clear:both}iam-fileupload input{display:none}:is(label:not(.tag),.label):has(:is(input,select,textarea)){display:block;margin-bottom:1.5rem;max-width:var(--input-max-width)}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(input:not([type=range]),select){margin-top:.5rem;margin-bottom:0 !important}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(input,select)~span:not(:is(.suffix,.prefix,.invalid-feedback)),:is(label:not(.tag),.label):has(:is(input,select,textarea)) span:has(>:is(input,select))~span:not(:is(.suffix,.prefix,.invalid-feedback)),:is(label:not(.tag),.label):has(:is(input,select,textarea)) .hint-text{all:initial;font-family:var(--font-body);color:var(--colour-body);margin-top:.5rem;display:block;line-height:1.2}:is(label:not(.tag),.label):has(:is(input,select,textarea)) .invalid-feedback{font-size:1rem;font-weight:normal;line-height:1.2}:is(label:not(.tag),.label):has(:is(input,select,textarea)) span:has(:is(input,select)){display:flex;width:100%}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(.suffix,.prefix):not(.mt-0){margin:.5rem 0 0 0 !important}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)),.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid){margin-bottom:1.5rem}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)):has(:is(:invalid,.is-invalid)):after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid):has(:is(:invalid,.is-invalid)):after{content:"This field is required";color:var(--colour-danger);margin-top:.5rem;background-image:var(--icon-error);background-repeat:no-repeat;background-position:left top 1px;background-size:var(--input-fs, 1rem) var(--input-fs, 1rem);padding-left:calc(var(--input-fs, 1rem) + .5rem);display:block;width:100%;font-size:1rem;line-height:1.2}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select))[data-error]:has(:is(:invalid,.is-invalid)):after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid)[data-error]:has(:is(:invalid,.is-invalid)):after{content:attr(data-error) !important}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)).error-nowrap:after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid).error-nowrap:after{white-space:nowrap}input[type=range]{--track-size: 0.5rem;--track-colour: var(--colour-light);--thumb-colour: var(--colour-info);--thumb-size: 1.5rem;width:100%;background:rgba(0,0,0,0);cursor:pointer;margin-top:2rem;margin-bottom:2rem;height:2rem;border-radius:50%;accent-color:var(--thumb-colour);-webkit-appearance:none;appearance:none}*:has(>input[type=range]){position:relative;padding-bottom:6rem;max-width:var(--input-max-width)}label input[type=range]{position:absolute;top:1.5rem;left:0}input[type=range]::-webkit-slider-runnable-track{background:var(--track-colour);height:var(--track-size);border-radius:.5rem}input[type=range]::-moz-range-track{background:var(--track-colour);height:var(--track-size);border-radius:.5rem}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;margin-top:-0.5rem;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]::-moz-range-thumb{border:none;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]:focus{outline:none}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:focus::-webkit-slider-thumb{outline:.5rem solid rgba(30,190,231,.2)}input[type=range]:active::-webkit-slider-thumb{outline:.5rem solid rgba(30,190,231,.4)}input[type=range]:hover::-moz-range-thumb,input[type=range]:focus::-moz-range-thumb{outline:.5rem solid rgba(30,190,231,.2)}input[type=range]:focus::-moz-range-thumb{outline:.5rem solid rgba(30,190,231,.4)}iam-slider input::-webkit-outer-spin-button,iam-slider input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:is(input[type=date],input[type=datetime-local],input[type=year],input[type=month],input[type=week],input[type=time]){position:relative;margin-right:-3rem;padding-right:3rem !important;background-position:right 4rem center;border-radius:.5rem !important}::-webkit-calendar-picker-indicator{background:rgba(0,0,0,0);bottom:0;color:rgba(0,0,0,0);cursor:pointer;height:auto;left:0;position:absolute;right:0;top:0;width:auto;order:3;z-index:98}::-webkit-datetime-edit{position:relative;z-index:99;max-width:fit-content}.input__wrapper{margin-top:.5rem;display:block;position:relative}.input__wrapper input{margin:0 !important}}@layer elements{.dropdown__wrapper{position:relative;display:block;label{position:relative}input{padding-right:3rem}label:after,.hint-text{position:absolute;top:100%}label[for=use]:after{top:var(--checkbox-inner-top, 0.5rem)}}.was-validated .dropdown__wrapper label:has(:is(input:not([type=radio]):not([type=checkbox]),select)),.dropdown__wrapper.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)){input{background:none !important}&:has(:invalid,.is-invalid) .hint-text{display:none}}.dark-theme .dropdown__wrapper datalist{color-scheme:dark}.dropdown__wrapper:is(:focus-within,:has(*:active),:active) datalist{display:block;&:empty{display:block !important}}:is(.dropdown,datalist,[popover]),select::picker(select){border-top:none;border:none !important;font-size:1rem;background:var(--dropdown-bg);margin-block:var(--dropdown-margin-block);padding:var(--dropdown-padding);border-radius:var(--dropdown-border-radius);box-shadow:var(--dropdown-box-shadow)}:is(.dropdown,datalist):empty,select::picker(select):empty{display:none !important}:is(.dropdown,datalist){overflow-y:auto;width:100%;max-width:var(--input-max-width, 50rem);z-index:100;max-height:25rem;overflow:auto;&:before{display:none}}datalist{position:absolute;top:100%;left:0;&:has(>.js-hide):not(:has(>*:not(.js-hide))):before,&:empty:before{content:"No results found";background-color:white;padding:1rem .5rem;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;padding-block:var(--menu-item-padding, 1rem) !important;display:block}}[popover]{top:calc(anchor(top) + anchor-size(height));left:anchor(left)}:is(.dropdown,datalist,select) option,.dropdown__option:not([slot=checked]){background:var(--dropdown-bg);cursor:pointer;background:unset !important;border:unset !important;color:var(--option-color) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.5rem !important;margin:0;padding:var(--option-padding) !important;width:100% !important;max-width:100% !important;text-align:left !important;border-radius:var(--option-border-radius) !important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;text-overflow:ellipsis;overflow:clip;outline:none;&:not(:last-child){margin:0 0 .25rem 0 !important}&:is(:hover,:focus){background:var(--option-bg-hover) !important;color:var(--option-color-hover) !important}&:is(:active,.active,:checked){border-left:var(--option-border-left-active) !important;background:var(--option-bg-active) !important}&:after{content:attr(data-after)}}:is(.dropdown,datalist,select,[popover]) hr{height:1px !important;background-color:var(--menu-hr-border-color, var(--border-color, grey)) !important;width:100%;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding:0 !important}:is(.dropdown,datalist,select,[popover]) *:last-child{margin-bottom:0}:is(.dropdown,datalist,select,[popover]) :is(p):last-child{padding-bottom:0}:is(.dropdown,datalist,[popover]) :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){font-size:1rem !important;line-height:1.1875rem !important;padding-bottom:.5rem;font-weight:700}:is(iam-tag,iam-multiselect):has(label:not([slot=checked])){--display-panel: block}:is(iam-tag,iam-multiselect):has(label[slot=checked]){--display-button: block}:is(iam-tag,iam-multiselect)[data-single] .tag[slot=checked],:is(iam-tag,iam-multiselect)[data-single] .tag[slot=checked] *{pointer-events:none !important}@container style(--theme: dark){:host :is(.tag,.badge):not([slot=checked]){color:var(--colour-heading)}}.dropdown__option[slot=checked]{order:var(--order, 1)}}@layer elements{:is(.prefix,.suffix){display:none}:is(.prefix,.suffix){--fa-display: flex;display:flex;flex-direction:column;justify-content:center;align-items:center;width:auto;padding:0 .75rem;font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-body);background-color:var(--colour-primary-theme);border:2px solid var(--colour-primary);color:var(--colour-white);margin:0 !important;border-end-start-radius:.5rem;border-start-start-radius:.5rem;min-width:calc(2.75rem + 4px);overflow:hidden;white-space:nowrap;text-align:center;text-overflow:ellipsis;position:relative;height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}@supports(height: stretch){:is(.prefix,.suffix){height:stretch}}:is(.prefix,.suffix){flex-shrink:0}:is(.prefix,.suffix):after{display:inline-block;max-width:1.25rem}:is(.prefix,.suffix)[class*=fa-]{width:calc(2.75rem + 4px);padding-inline:0}:is(.prefix,.suffix) select{position:absolute;inset:0;opacity:0;cursor:pointer}:is(.prefix,.suffix) span{display:none}:is(.prefix,.suffix) select:has(option:nth-child(1):checked)~span:nth-of-type(1),:is(.prefix,.suffix) select:has(option:nth-child(2):checked)~span:nth-of-type(2),:is(.prefix,.suffix) select:has(option:nth-child(3):checked)~span:nth-of-type(3),:is(.prefix,.suffix) select:has(option:nth-child(4):checked)~span:nth-of-type(4),:is(.prefix,.suffix) select:has(option:nth-child(5):checked)~span:nth-of-type(5),:is(.prefix,.suffix) select:has(option:nth-child(6):checked)~span:nth-of-type(6),:is(.prefix,.suffix) select:has(option:nth-child(7):checked)~span:nth-of-type(7),:is(.prefix,.suffix) select:has(option:nth-child(8):checked)~span:nth-of-type(8),:is(.prefix,.suffix) select:has(option:nth-child(9):checked)~span:nth-of-type(9),:is(.prefix,.suffix) select:has(option:nth-child(10):checked)~span:nth-of-type(10){display:block}:is(.prefix,.suffix) select~span:after{content:" \uF078";font-family:var(--fa-family-classic);font-size:.8em;display:inline-block;padding-left:1em}:is(.prefix,.suffix) select:focus-visible~span:after{content:"\uF077"}@container style(--font-body){:is(.prefix,.suffix)::before{content:var(--iso) !important}}@container style(--fa-font-regular){:is(.prefix,.suffix)::before{content:var(--fa) !important}}.prefix{border-right:none}.suffix{border-left:none;border-end-start-radius:0;border-start-start-radius:0;border-start-end-radius:.5rem !important;border-end-end-radius:.5rem !important;order:2}.prefix span{display:none}.prefix span small{font-size:.8em}.prefix~:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output){border-end-start-radius:0 !important;border-start-start-radius:0 !important}}@layer components{@media(prefers-color-scheme: light){:host{color-scheme:light}::slotted(*){--colour-heading: var(--colour-primary-theme);--colour-body: var(--colour-primary-theme);color:var(--colour-primary-theme);color-scheme:light}}:host{display:block;margin-top:.5rem}.wrapper{display:flex;width:100%;position:relative}.wrapper .input__wrapper{flex-grow:1;position:relative;margin-top:0 !important}.wrapper .suffix{flex-grow:0}::slotted(input){border-start-end-radius:0 !important;border-end-end-radius:0 !important;margin-top:0 !important}::slotted(label){border-start-end-radius:0 !important;border-end-end-radius:0 !important;margin-top:0 !important}::slotted(button){margin-top:0 !important}.clear-search{display:var(--error-hide, block);position:absolute;top:50%;transform:translate(0, -50%);right:.5rem;margin:0;aspect-ratio:1/1;display:none}.clear-search:not(:hover,:focus){border-color:rgba(0,0,0,0) !important;background-color:rgba(0,0,0,0) !important}:host(.has-value) .clear-search{display:block !important}slot[name=datalist]{display:block;position:relative}:host(:is(.js-show-datalist,.js-force-show-datalist)) ::slotted(datalist){display:block}::slotted(datalist:focus-within){display:block}:host(.search--stylised) ::slotted(input){outline:1px solid var(--colour-border) !important;border:none !important;border-radius:1.5rem !important;padding-left:3rem !important;background-color:var(--colour-canvas)}:host(.search--stylised) ::slotted(input.input--sm){padding-left:2.5rem !important}:host(.search--stylised) ::slotted(input:is(:focus)){outline:1px solid var(--colour-info) !important}:host(.search--stylised) .suffix{cursor:pointer;background:rgba(0,0,0,0) !important;border-color:rgba(0,0,0,0) !important;color:var(--colour-primary-theme) !important;position:absolute !important;top:0;left:0}:host(.hasInputSm) .suffix{min-width:2.5rem !important}:host(.search--stylised) .clear-search{border-radius:50% !important;outline:none !important;border:none !important}}/*# sourceMappingURL=assets/css/components/search.component.css.map */
|
|
7
|
+
@layer elements{:is(label:not(.tag),.label){font-size:1.125rem;line-height:1.3125rem;margin-bottom:.5rem;font-weight:normal;color:var(--colour-heading);display:block;&>iam-rating{margin-top:.25rem !important}&.label--sm{--input-max-width: 15rem}}}@layer elements{input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}::-moz-focus-inner{padding:0;border-style:none}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;font-weight:normal;line-height:inherit}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-moz-color-swatch{border-radius:0;border:none}::-webkit-color-swatch{border-radius:0;border:none}::file-selector-button{font:inherit;-webkit-appearance:button}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output){display:block;width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);appearance:none;border-radius:.5rem;margin-bottom:1.5rem;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px);max-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output):is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output):is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output):disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}input[type=color]{padding:0 !important;max-width:3rem !important}[disabled] :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output,select:not(.select--minimal,.btn)){background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}[disabled] label{cursor:not-allowed;pointer-events:none}:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])){max-width:var(--input-max-width)}}@layer elements{select,optgroup{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}select{text-transform:none;word-wrap:normal}select:disabled{opacity:1}select:not(.select--minimal,.btn){background:var(--icon-select) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,linear-gradient(to right, var(--colour-canvas-2), var(--colour-canvas-2));padding-right:calc(var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem) + var(--input-lh, 1.25rem)) !important}select:not(.select--minimal,.btn) option{font-size:1.2em}select:not(.select--minimal,.btn){box-shadow:inset -2px 0px 0px var(--colour-primary-theme);max-width:var(--select-max-width)}select:not(.select--minimal,.btn)[multiple],select:not(.select--minimal,.btn)[size]:not([size="1"]){background:none;max-height:none !important}select:not(.select--minimal,.btn):disabled{background-color:gray;border-color:#000}select:not(.select--minimal,.btn):-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 inherit}div:has(>select){margin-bottom:1.5rem}div:has(>select) select{margin-bottom:0 !important}.select--minimal{all:unset;font-size:inherit;line-height:inherit;background:none;border:2px solid rgba(0,0,0,0);display:inline-block;padding:.4em calc(1em + .8ch) .4rem var(--select-padding-left, 0.4em) !important;font-weight:normal !important;margin:-0.4em 0 !important;border-radius:.25em;color:var(--colour-body);height:auto;cursor:pointer;font-family:var(--font-body) !important}.select--minimal option{background-color:var(--colour-canvas);padding-left:1em;font-size:inherit;line-height:inherit}.select--minimal:hover{background:var(--colour-light)}.select--minimal:is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0;box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}*:has(>.select--minimal){position:relative;display:inline-block !important;width:auto !important;font-size:inherit !important;line-height:1 !important;padding:0 !important;margin:0 !important;font-family:var(--font-body) !important}*:has(>.select--minimal):after{font-size:.8em;line-height:1em;content:"\uF078";font-family:"Font Awesome 7 Pro";position:absolute;top:40%;transform:translate(0, -50%);right:.8ch;pointer-events:none;color:var(--colour-body)}select:not(.select--minimal,.btn){width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);border-radius:.5rem;margin-bottom:1.5rem;min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px);max-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}select:not(.select--minimal,.btn):is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}select:not(.select--minimal,.btn):is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30,190,230,.25)}select:not(.select--minimal,.btn):disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}[disabled] select:not(.select--minimal,.btn){background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}@media(hover: hover){select{appearance:base-select !important}}select::picker-icon{display:none}select::picker(select){appearance:base-select}select option::checkmark{display:none}select selectedcontent span{display:none}select[multiple]{border-radius:.35rem}select[multiple]::-webkit-scrollbar{width:.7rem}select[multiple]::-webkit-scrollbar{background-color:rgba(0,0,0,0)}select[multiple]::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);border-radius:.35rem}}@layer elements{textarea{--textarea-height-scale: 3;margin:0;font-family:inherit;resize:vertical;display:block;width:100%;display:block;width:100%;padding:var(--input-padding-block, 0.75rem) var(--input-padding-inline, 1rem);font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-heading);background-color:var(--colour-canvas-2);background-clip:padding-box;border:2px solid var(--colour-primary);appearance:none;border-radius:.5rem;margin-bottom:1.5rem;max-height:100%;&:not([rows]){min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)*var(--textarea-height-scale) + 4px) !important}&[rows="1"]{--textarea-height-scale: 1}&[rows="2"]{--textarea-height-scale: 2}&:is([rows="2"],[rows="2"]){min-height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)*var(--textarea-height-scale) + 4px) !important}&:is(:focus,.focus):not(:disabled){border-color:var(--colour-info);outline:0}&:is(:focus,.focus):not(:disabled):not(:invalid){box-shadow:0 0 0 .1rem rgba(30, 190, 230, 0.25)}&:disabled{background-color:#ccd6d8;opacity:.4;cursor:not-allowed}}[disabled] textarea{background-color:#ccd6d8;opacity:.4;cursor:not-allowed;pointer-events:none}label:not(.tag):has(textarea){display:block;margin-bottom:1.5rem;max-width:var(--input-max-width);textarea{margin-top:.5rem;margin-bottom:0 !important}}}@layer elements{fieldset{min-width:0;padding:0;margin:0;border:0}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[disabled] label{cursor:not-allowed;pointer-events:none}fieldset{width:100%;position:relative}legend{font-family:var(--font-heading);font-style:normal;font-weight:var(--heading-weight);line-height:2rem;color:var(--colour-heading);margin:0;clear:both;display:block;float:none;font-size:var(--h4-fs);line-height:var(--heading-lh);padding-bottom:.5rem;max-width:var(--content-max-width);min-width:100%}div:has(>label:first-child):has(>input){position:relative;max-width:var(--input-max-width);margin-bottom:1.5rem}div:has(>label:first-child):has(>input) input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),div:has(>label:first-child):has(>input) output,div:has(>label:first-child):has(>input) .prefix,div:has(>label:first-child):has(>input) .suffix{margin-bottom:0 !important}div:has(>label:first-child):has(>input){display:flex;flex-wrap:wrap;align-items:center}div:has(>label:first-child):has(>input)>*:not(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range])):not(output):not(.prefix):not(.suffix){flex-shrink:0;width:100%}div:has(>label:first-child):has(>input) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),output){flex-shrink:1;flex-grow:1;width:0}div:has(>label:first-child):has(>input) input~*:not(output){order:5;margin-top:.5rem}*:has(>:is(.form-control-sm,.input--sm)){--input-fs: 0.875rem;--input-lh: 1rem;--input-padding-block: 0.625rem;--input-padding-inline: 0.875rem}*:has(>:is(.form-control-lg,.input--lg)){--input-fs: 1.5rem;--input-lh: 1.8125rem;--input-padding-block: 1.25rem;--input-padding-inline: 1.375rem}*:has(>label:first-child):has(>input):has(>:is(.form-control-inline,.input--inline)) label{flex-shrink:0;white-space:nowrap;width:fit-content !important;margin:0;margin-inline-end:1rem}*:has(>input[readonly]){position:relative;max-width:var(--input-max-width)}*:has(>input[readonly]):after{font-family:var(--fa-family-classic);font-weight:300;content:"\uF023";position:absolute;font-size:var(--input-lh, 1.25rem);height:var(--input-lh, 1.25rem);width:var(--input-lh, 1.25rem);top:auto !important;bottom:calc(var(--input-padding-block, 0.75rem) + 2px);right:calc(var(--input-padding-block, 1rem) + 2px);text-align:center}@supports selector(:has(*)){.suffix~:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=date]):not([type=time]),output),:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=date]):not([type=time]),output):has(~.suffix){order:1;border-start-end-radius:0 !important;border-end-end-radius:0 !important}:is(input):has(~iam-password-indicator){border-start-end-radius:0 !important;border-end-end-radius:0 !important}label:has(.suffix) input{border-start-end-radius:0 !important;border-end-end-radius:0 !important}}.was-validated *:not(button):is(:invalid,.is-invalid,[aria-invalid]):not(.is-valid)+label,.was-validated label:has(*:not(button):is(:invalid,.is-invalid,[aria-invalid]):not(.is-valid)){--colour-check-border: var(--colour-danger);--colour-check-bg: #fcebec;border-color:var(--colour-danger)}.was-validated *:not(button):is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){border-color:var(--colour-danger) !important}.was-validated select:not(.btn):is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){background:var(--icon-select) right var(--input-padding-block, 0.75rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat,linear-gradient(to left, var(--colour-primary-theme), var(--colour-primary-theme) 100%) right top/calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem)) calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.8rem) + var(--input-lh, 1.25rem)) no-repeat,var(--icon-error) right var(--input-padding-block, 3.5rem) top var(--input-padding-block, 0.75rem)/var(--input-lh, 1.25rem) var(--input-lh, 1.25rem) no-repeat;padding-right:6rem !important}.was-validated input:is(:invalid,.is-invalid,[aria-invalid],:-internal-autofill-selected){background-image:var(--icon-error);background-repeat:no-repeat;background-position:right var(--input-padding-inline, 1rem) center;background-size:var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);padding-right:calc(var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)) !important}.was-validated *:not(button):is(:valid,.is-valid):not(.is-invalid){border-color:var(--colour-complete)}.was-validated input:is(:valid,.is-valid):not(:is(:invalid,.is-invalid)){background-image:var(--icon-tick);background-repeat:no-repeat;background-position:right var(--input-padding-inline, 1rem) center;background-size:var(--input-lh, 1.25rem) var(--input-lh, 1.25rem);padding-right:calc(var(--input-lh, 1.25rem) + var(--input-padding-inline, 1rem) + var(--input-padding-inline, 1rem)) !important}.invalid-feedback{color:var(--colour-danger);margin-top:.5rem;background-image:var(--icon-error);background-repeat:no-repeat;background-position:left top 1px;background-size:var(--input-fs, 1rem) var(--input-fs, 1rem);padding-left:calc(var(--input-fs, 1rem) + .5rem);display:none}iam-address-lookup:has([required]){--req-display: none}.was-validated :is(:invalid,.is-invalid)~.invalid-feedback{display:block}.was-validated iam-address-lookup:has([required]:invalid){--error-border: var(--colour-danger);--error-bg: var(--icon-error);--error-display: block;--error-hide: none}@supports selector(:has(*)){input:is([type=radio],[type=checkbox]){position:absolute;top:0;left:0;opacity:0;height:0;width:0;margin:0;pointer-events:none}:is(div,fieldset,label:not(.tag)):has(>input:is([type=radio],[type=checkbox])):not(:has(label input)){position:relative;margin-bottom:1.5rem}:is(div,fieldset,label:not(.tag)):has(>input[type=radio]){--border-radius: 50%;--outline-width: 0.5rem}:is(div,fieldset,label:not(.tag)):has(>input[type=checkbox]){--border-radius: 0.25rem;--outline-width: 0.25rem}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)){--tick-colour: transparent;color:var(--colour-heading);position:relative;font-size:1rem;line-height:1.25rem;padding-left:2.5rem;padding-top:.625rem;padding-bottom:.625rem;margin-bottom:1.5rem;margin-right:1.5rem;cursor:pointer}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):has(+span),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):has(+span){margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):has(+input),label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):has(+input){margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):last-child,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):last-child{margin-bottom:0}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)):before,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)):before{content:"";border:2px solid var(--colour-check-border, var(--colour-primary));background:var(--colour-check-bg, transparent);border-radius:var(--border-radius);height:var(--radio-size, 1.5rem);width:var(--radio-size, 1.5rem);display:inline-block;position:absolute;top:.5rem;left:var(--outline-width)}input:is([type=radio],[type=checkbox])+label:not(:has(>iam-card)).btn:before,label:not(.tag):has(input:is([type=radio],[type=checkbox])):not(:has(>iam-card)).btn:before{opacity:0}input[type=radio]+label:not(:has(>iam-card)):after,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)):after{content:"" !important;background:var(--colour-info);border-radius:var(--border-radius);height:.875rem;width:.875rem;height:var(--radio-inner-size, 0.875rem);width:var(--radio-inner-size, 0.875rem);display:none;position:absolute;top:var(--radio-inner-top, 0.8125rem);left:var(--radio-inner-left, calc(0.3125rem + var(--outline-width)))}input[type=radio]+label:not(:has(>iam-card)).radio--tick:before,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)).radio--tick:before{content:"\uF00C";position:absolute;font-size:1.5em;line-height:1;color:var(--tick-colour);font-family:var(--fa-family-classic);background:none !important;border:none !important;outline:none !important;left:.25rem}input[type=radio]+label:not(:has(>iam-card)).radio--tick:after,label:not(.tag):has(input[type=radio]):not(:has(>iam-card)).radio--tick:after{display:none}@media(forced-colors: active){input:is([type=radio],[type=checkbox]):not(:checked)+label.radio--tick:not(:has(>iam-card)):before,label:has(input:is([type=radio],[type=checkbox]):not(:checked)).radio--tick:not(:has(>iam-card)):before{display:none}}:is(div,fieldset):has(>:is(input[type=radio],input[type=checkbox]):nth-of-type(2)) label:not(.tag):not(:has(>iam-card)){margin-bottom:0rem}fieldset:has(label>input:is([type=radio],[type=checkbox])) label{margin-bottom:0 !important}fieldset:has(label>input:is([type=radio],[type=checkbox])){margin-bottom:1.5rem}input:is([type=radio],[type=checkbox]):checked+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked){--tick-colour: var(--colour-info)}input:is([type=radio],[type=checkbox]):checked+label:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked):before{border-color:var(--colour-info)}input:is([type=radio],[type=checkbox]):checked+label:after,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked):after{display:inline-block}input:is([type=radio],[type=checkbox]):checked+label iam-card,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked) iam-card{--colour: var(--colour, var(--colour-info))}input[type=checkbox]:not([disabled]):checked+label:before,label:not(.tag):has(input[type=checkbox]:not([disabled]):checked):before{background:var(--colour-info) !important}input[type=checkbox]:checked+label:not(:has(>iam-card)):after,label:not(.tag):has(input[type=checkbox]:checked):after{content:"\uF00C";position:absolute;font-size:var(--checkbox-tick-size, 1em);line-height:1;color:var(--colour-primary-theme);font-family:var(--fa-family-classic);font-weight:bold;height:var(--checkbox-inner-size, 1.5rem);width:var(--checkbox-inner-size, 1.5rem);line-height:1.625rem;background:none !important;border:none !important;outline:none !important;top:var(--checkbox-inner-top, 0.5rem);left:var(--checkbox-inner-left, var(--outline-width));text-align:center}input[type=checkbox]:indeterminate+label:before,label:not(.tag):has(input[type=checkbox]:indeterminate):before{background:var(--colour-info) !important;border-color:var(--colour-info) !important}input[type=checkbox]:indeterminate+label:after,label:not(.tag):has(input[type=checkbox]:indeterminate):after{content:"\uF068";position:absolute;font-size:var(--checkbox-tick-size, 1em);line-height:1;color:var(--colour-primary-theme);font-family:var(--fa-family-classic);font-weight:bold;height:var(--checkbox-inner-size, 1.5rem);width:var(--checkbox-inner-size, 1.5rem);line-height:1.625rem;background:none !important;border:none !important;outline:none !important;top:var(--checkbox-inner-top, 0.5rem);left:var(--checkbox-inner-left, var(--outline-width));text-align:center}input:is([type=radio],[type=checkbox]):checked:is(:focus,:hover,.focus)+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):checked:is(:focus,:hover,.focus)){--tick-colour: var(--colour-info)}input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)+label,input:is([type=radio],[type=checkbox])+label.hover,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)){--tick-colour: var(--colour-muted)}input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)+label:before,input:is([type=radio],[type=checkbox])+label.hover:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:focus,:hover,.focus)):before{background:var(--colour-check-bg, light-dark(var(--colour-light), #444444));outline:var(--outline-width) solid light-dark(var(--colour-light), #444444)}input:is([type=radio],[type=checkbox]):is(:active,.active)+label,input:is([type=radio],[type=checkbox])+label.active,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:active,.active)){--tick-colour: var(--colour-light)}input:is([type=radio],[type=checkbox]):is(:active,.active)+label:before,input:is([type=radio],[type=checkbox])+label.active:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):is(:active,.active)):before{background:var(--colour-check-bg, #e0e0e0);outline:var(--outline-width) solid #e0e0e0}input:is([type=radio],[type=checkbox]):disabled+label,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled){opacity:.4;cursor:not-allowed}input:is([type=radio],[type=checkbox]):disabled+label>iam-card,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled)>iam-card{pointer-events:none}input:is([type=radio],[type=checkbox]):disabled+label:before,label:not(.tag):has(input:is([type=radio],[type=checkbox]):disabled):before{background-color:none !important;outline:none !important;border-color:var(--colour-primary) !important}input[type=radio][disabled]:checked+label:after,label:not(.tag):has(input[type=radio][disabled]:checked):after{background-color:var(--colour-primary) !important}input[type=checkbox][disabled]:checked+label:before,label:not(.tag):has(input[type=checkbox][disabled]:checked):before{background:#e0e0e0 !important;border-color:#e0e0e0 !important}}.conditional{display:none}input:checked+.conditional,input:checked+label+.conditional,label:has(:checked)+.conditional,.was-validated .conditional:has(input[required]:invalid),.was-validated .conditional:focus-within{display:block;clear:both}input:not([class*=conditional-input-]):nth-of-type(1):checked~.conditional-1,input:not([class*=conditional-input-]):nth-of-type(2):checked~.conditional-2,input:not([class*=conditional-input-]):nth-of-type(3):checked~.conditional-3,input:not([class*=conditional-input-]):nth-of-type(4):checked~.conditional-4,input:not([class*=conditional-input-]):nth-of-type(5):checked~.conditional-5,input.conditional-input-1:checked~.conditional-1,input.conditional-input-2:checked~.conditional-2,input.conditional-input-3:checked~.conditional-3,input.conditional-input-4:checked~.conditional-4,input.conditional-input-5:checked~.conditional-5,label:has(input.conditional-input-1:checked)~.conditional-1,label:has(input.conditional-input-2:checked)~.conditional-2,label:has(input.conditional-input-3:checked)~.conditional-3,label:has(input.conditional-input-4:checked)~.conditional-4,label:has(input.conditional-input-5:checked)~.conditional-5{display:block;clear:both}iam-fileupload input{display:none}:is(label:not(.tag),.label):has(:is(input,select,textarea)){display:block;margin-bottom:1.5rem;max-width:var(--input-max-width)}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(input:not([type=range]),select){margin-top:.5rem;margin-bottom:0 !important}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(input,select)~span:not(:is(.suffix,.prefix,.invalid-feedback)),:is(label:not(.tag),.label):has(:is(input,select,textarea)) span:has(>:is(input,select))~span:not(:is(.suffix,.prefix,.invalid-feedback)),:is(label:not(.tag),.label):has(:is(input,select,textarea)) .hint-text{all:initial;font-family:var(--font-body);color:var(--colour-body);margin-top:.5rem;display:block;line-height:1.2}:is(label:not(.tag),.label):has(:is(input,select,textarea)) .invalid-feedback{font-size:1rem;font-weight:normal;line-height:1.2}:is(label:not(.tag),.label):has(:is(input,select,textarea)) span:has(:is(input,select)){display:flex;width:100%}:is(label:not(.tag),.label):has(:is(input,select,textarea)) :is(.suffix,.prefix):not(.mt-0){margin:.5rem 0 0 0 !important}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)),.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid){margin-bottom:1.5rem}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)):has(:is(:invalid,.is-invalid)):after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid):has(:is(:invalid,.is-invalid)):after{content:"This field is required";color:var(--colour-danger);margin-top:.5rem;background-image:var(--icon-error);background-repeat:no-repeat;background-position:left top 1px;background-size:var(--input-fs, 1rem) var(--input-fs, 1rem);padding-left:calc(var(--input-fs, 1rem) + .5rem);display:block;width:100%;font-size:1rem;line-height:1.2}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select))[data-error]:has(:is(:invalid,.is-invalid)):after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid)[data-error]:has(:is(:invalid,.is-invalid)):after{content:attr(data-error) !important}.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)).error-nowrap:after,.was-validated fieldset:has(label input:is([type=radio],[type=checkbox]):invalid).error-nowrap:after{white-space:nowrap}input[type=range]{--track-size: 0.5rem;--track-colour: var(--colour-light);--thumb-colour: var(--colour-info);--thumb-size: 1.5rem;width:100%;background:rgba(0,0,0,0);cursor:pointer;margin-top:2rem;margin-bottom:2rem;height:2rem;border-radius:50%;accent-color:var(--thumb-colour);-webkit-appearance:none;appearance:none}*:has(>input[type=range]){position:relative;padding-bottom:6rem;max-width:var(--input-max-width)}label input[type=range]{position:absolute;top:1.5rem;left:0}input[type=range]::-webkit-slider-runnable-track{background:var(--track-colour);height:var(--track-size);border-radius:.5rem}input[type=range]::-moz-range-track{background:var(--track-colour);height:var(--track-size);border-radius:.5rem}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;margin-top:-0.5rem;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]::-moz-range-thumb{border:none;background-color:var(--thumb-colour);height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;position:relative;z-index:99;pointer-events:all}input[type=range]:focus{outline:none}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:focus::-webkit-slider-thumb{outline:.5rem solid rgba(30,190,231,.2)}input[type=range]:active::-webkit-slider-thumb{outline:.5rem solid rgba(30,190,231,.4)}input[type=range]:hover::-moz-range-thumb,input[type=range]:focus::-moz-range-thumb{outline:.5rem solid rgba(30,190,231,.2)}input[type=range]:focus::-moz-range-thumb{outline:.5rem solid rgba(30,190,231,.4)}iam-slider input::-webkit-outer-spin-button,iam-slider input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:is(input[type=date],input[type=datetime-local],input[type=year],input[type=month],input[type=week],input[type=time]){position:relative;margin-right:-3rem;padding-right:3rem !important;background-position:right 4rem center;border-radius:.5rem !important}::-webkit-calendar-picker-indicator{background:rgba(0,0,0,0);bottom:0;color:rgba(0,0,0,0);cursor:pointer;height:auto;left:0;position:absolute;right:0;top:0;width:auto;order:3;z-index:98}::-webkit-datetime-edit{position:relative;z-index:99;max-width:fit-content}.input__wrapper{margin-top:.5rem;display:block;position:relative}.input__wrapper input{margin:0 !important}}@layer elements{.dropdown__wrapper{position:relative;display:block;label{position:relative}input{padding-right:3rem}label:after,.hint-text{position:absolute;top:100%}label[for=use]:after{top:var(--checkbox-inner-top, 0.5rem)}}.was-validated .dropdown__wrapper label:has(:is(input:not([type=radio]):not([type=checkbox]),select)),.dropdown__wrapper.was-validated label:has(:is(input:not([type=radio]):not([type=checkbox]),select)){input{background:none !important}&:has(:invalid,.is-invalid) .hint-text{display:none}}.dark-theme .dropdown__wrapper datalist{color-scheme:dark}.dropdown__wrapper:is(:focus-within,:has(*:active),:active) datalist{display:block;&:empty{display:block !important}}:is(.dropdown,datalist,[popover]),select::picker(select){border-top:none;border:none !important;font-size:1rem;background:var(--dropdown-bg);margin-block:var(--dropdown-margin-block);padding:var(--dropdown-padding);border-radius:var(--dropdown-border-radius);box-shadow:var(--dropdown-box-shadow)}:is(.dropdown,datalist):empty{display:none !important}:is(.dropdown,datalist){overflow-y:auto;width:100%;max-width:var(--input-max-width, 50rem);z-index:100;max-height:25rem;overflow:auto;&:before{display:none}}datalist{position:absolute;top:100%;left:0;&:has(>.js-hide):not(:has(>*:not(.js-hide))):before,&:empty:before{content:"No results found";background-color:white;padding:1rem .5rem;color:var(--colour-primary) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.1875rem !important;padding-block:var(--menu-item-padding, 1rem) !important;display:block}}[popover]{top:calc(anchor(top) + anchor-size(height));left:anchor(left)}:is(.dropdown,datalist,select) option,.dropdown__option:not([slot=checked]){background:var(--dropdown-bg);cursor:pointer;background:unset !important;border:unset !important;color:var(--option-color) !important;font-weight:inherit !important;font-family:inherit !important;font-size:1rem !important;line-height:1.5rem !important;margin:0;padding:var(--option-padding) !important;width:100% !important;max-width:100% !important;text-align:left !important;border-radius:var(--option-border-radius) !important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;text-overflow:ellipsis;overflow:clip;outline:none;&:not(:last-child){margin:0 0 .25rem 0 !important}&:is(:hover,:focus){background:var(--option-bg-hover) !important;color:var(--option-color-hover) !important}&:has(:is(:hover,:focus)){background:var(--option-bg-hover) !important;color:var(--option-color-hover) !important}&:is(:active,.active,:checked){border-left:var(--option-border-left-active) !important;padding-left:calc(var(--option-padding) - 4px) !important;background:var(--option-bg-active) !important}&:has(:is(:active,.active,:checked)){border-left:var(--option-border-left-active) !important;padding-left:calc(var(--option-padding) - 4px) !important;background:var(--option-bg-active) !important}&:has(:is(:active,.active,:checked)){border-left:var(--option-border-left-active) !important;background:var(--option-bg-active) !important}&:after{content:attr(data-after)}}:is(.dropdown,datalist,select,[popover]) hr{height:1px !important;background-color:var(--menu-hr-border-color, var(--border-color, grey)) !important;width:100%;margin:var(--menu-item-margin, 0 0 0.25rem 0) !important;padding:0 !important}:is(.dropdown,datalist,select,[popover]) *:last-child{margin-bottom:0}:is(.dropdown,datalist,select,[popover]) :is(p):last-child{padding-bottom:0}:is(.dropdown,datalist,[popover]) :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){font-size:1rem !important;line-height:1.1875rem !important;padding-bottom:.5rem;font-weight:700}:is(iam-tag,iam-multiselect):has(label:not([slot=checked])){--display-panel: block}:is(iam-tag,iam-multiselect):has(label[slot=checked]){--display-button: block}:is(iam-tag,iam-multiselect)[data-single] .tag[slot=checked],:is(iam-tag,iam-multiselect)[data-single] .tag[slot=checked] *{pointer-events:none !important}@container style(--theme: dark){:host :is(.tag,.badge):not([slot=checked]){color:var(--colour-heading)}}.dropdown__option[slot=checked]{order:var(--order, 1)}}@layer elements{:is(.prefix,.suffix){display:none}:is(.prefix,.suffix){--fa-display: flex;display:flex;flex-direction:column;justify-content:center;align-items:center;width:auto;padding:0 .75rem;font-size:var(--input-fs, 1rem);line-height:var(--input-lh, 1.25rem);color:var(--colour-body);background-color:var(--colour-primary-theme);border:2px solid var(--colour-primary);color:var(--colour-white);margin:0 !important;border-end-start-radius:.5rem;border-start-start-radius:.5rem;min-width:calc(2.75rem + 4px);overflow:hidden;white-space:nowrap;text-align:center;text-overflow:ellipsis;position:relative;height:calc(var(--input-padding-block, 0.75rem) + var(--input-padding-block, 0.75rem) + var(--input-lh, 1.25rem) + 4px)}@supports(height: stretch){:is(.prefix,.suffix){height:stretch}}:is(.prefix,.suffix){flex-shrink:0}:is(.prefix,.suffix):after{display:inline-block;max-width:1.25rem}:is(.prefix,.suffix)[class*=fa-]{width:calc(2.75rem + 4px);padding-inline:0}:is(.prefix,.suffix) select{position:absolute;inset:0;opacity:0;cursor:pointer}:is(.prefix,.suffix) span{display:none}:is(.prefix,.suffix) select:has(option:nth-child(1):checked)~span:nth-of-type(1),:is(.prefix,.suffix) select:has(option:nth-child(2):checked)~span:nth-of-type(2),:is(.prefix,.suffix) select:has(option:nth-child(3):checked)~span:nth-of-type(3),:is(.prefix,.suffix) select:has(option:nth-child(4):checked)~span:nth-of-type(4),:is(.prefix,.suffix) select:has(option:nth-child(5):checked)~span:nth-of-type(5),:is(.prefix,.suffix) select:has(option:nth-child(6):checked)~span:nth-of-type(6),:is(.prefix,.suffix) select:has(option:nth-child(7):checked)~span:nth-of-type(7),:is(.prefix,.suffix) select:has(option:nth-child(8):checked)~span:nth-of-type(8),:is(.prefix,.suffix) select:has(option:nth-child(9):checked)~span:nth-of-type(9),:is(.prefix,.suffix) select:has(option:nth-child(10):checked)~span:nth-of-type(10){display:block}:is(.prefix,.suffix) select~span:after{content:" \uF078";font-family:var(--fa-family-classic);font-size:.8em;display:inline-block;padding-left:1em}:is(.prefix,.suffix) select:focus-visible~span:after{content:"\uF077"}@container style(--font-body){:is(.prefix,.suffix)::before{content:var(--iso) !important}}@container style(--fa-font-regular){:is(.prefix,.suffix)::before{content:var(--fa) !important}}.prefix{border-right:none}.suffix{border-left:none;border-end-start-radius:0;border-start-start-radius:0;border-start-end-radius:.5rem !important;border-end-end-radius:.5rem !important;order:2}.prefix span{display:none}.prefix span small{font-size:.8em}.prefix~:is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),textarea,output){border-end-start-radius:0 !important;border-start-start-radius:0 !important}}@layer components{@media(prefers-color-scheme: light){:host{color-scheme:light}::slotted(*){--colour-heading: var(--colour-primary-theme);--colour-body: var(--colour-primary-theme);color:var(--colour-primary-theme);color-scheme:light}}:host{display:block;margin-top:.5rem}.wrapper{display:flex;width:100%;position:relative}.wrapper .input__wrapper{flex-grow:1;position:relative;margin-top:0 !important}.wrapper .suffix{flex-grow:0}::slotted(input){border-start-end-radius:0 !important;border-end-end-radius:0 !important;margin-top:0 !important}::slotted(label){border-start-end-radius:0 !important;border-end-end-radius:0 !important;margin-top:0 !important}::slotted(button){margin-top:0 !important}.clear-search{display:var(--error-hide, block);position:absolute;top:50%;transform:translate(0, -50%);right:.5rem;margin:0;aspect-ratio:1/1;display:none}.clear-search:not(:hover,:focus){border-color:rgba(0,0,0,0) !important;background-color:rgba(0,0,0,0) !important}:host(.has-value) .clear-search{display:block !important}slot[name=datalist]{display:block;position:relative}:host(:is(.js-show-datalist,.js-force-show-datalist)) ::slotted(datalist){display:block}::slotted(datalist:focus-within){display:block}:host(.search--stylised) ::slotted(input){outline:1px solid var(--colour-border) !important;border:none !important;border-radius:1.5rem !important;padding-left:3rem !important;background-color:var(--colour-canvas)}:host(.search--stylised) ::slotted(input.input--sm){padding-left:2.5rem !important}:host(.search--stylised) ::slotted(input:is(:focus)){outline:1px solid var(--colour-info) !important}:host(.search--stylised) .suffix{cursor:pointer;background:rgba(0,0,0,0) !important;border-color:rgba(0,0,0,0) !important;color:var(--colour-primary-theme) !important;position:absolute !important;top:0;left:0}:host(.hasInputSm) .suffix{min-width:2.5rem !important}:host(.search--stylised) .clear-search{border-radius:50% !important;outline:none !important;border:none !important}}/*# sourceMappingURL=assets/css/components/search.component.css.map */
|
|
8
8
|
|
|
9
9
|
</style>
|
|
10
10
|
<link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous" />
|
|
@@ -16,5 +16,5 @@
|
|
|
16
16
|
<button class="suffix fa-regular fa-search"></button>
|
|
17
17
|
</span>
|
|
18
18
|
<slot name="datalist"></slot>
|
|
19
|
-
`,r.appendChild(i.content.cloneNode(!0))}connectedCallback(){const r=this.shadowRoot;if(!r)return;let i=this.querySelector("datalist");const t=this.querySelector("input"),d=r.querySelector(".suffix"),n=r.querySelector(".clear-search");let s=this.hasAttribute("data-min-length")?C(this,"data-min-length",1):1;if(d?.setAttribute("class",`suffix ${this.hasAttribute("data-icon")?this.getAttribute("data-icon"):"fa-regular fa-search"}`),this.hasAttribute("data-url")&&!this.hasAttribute("data-min-length")&&(s=3),!t||!d)return;const p=t.getAttribute("placeholder");if(p!==null&&this.setAttribute("data-original-placeholder",p),t.setAttribute("autocomplete","off"),t.setAttribute("aria-autocomplete","none"),t&&t.hasAttribute("list")&&(t.setAttribute("data-list",t.getAttribute("list")||""),t.setAttribute("list","")),!i){i=document.createElement("datalist");const o=`${t?.getAttribute("name")}-list`;i.setAttribute("id",o),t?.setAttribute("data-list",o),this.appendChild(i)}i.setAttribute("slot","datalist"),i.querySelectorAll("option").forEach(o=>{o.setAttribute("tabindex","0"),o.textContent==""&&o.hasAttribute("value")&&(o.textContent=o.getAttribute("value"))}),i.addEventListener("click",o=>{const a=T(o);a&&(o.stopPropagation(),o.preventDefault(),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),this.classList.remove("js-show-datalist"),q(this,t,a))}),t.addEventListener("input",()=>{t.value.length>=1?this.classList.add("has-value"):this.classList.remove("has-value"),t.value.length>=s?(this.classList.add("js-show-datalist"),this.hasAttribute("data-url")?E(this,i,t.value):L(i,t.value)):this.classList.remove("js-show-datalist")}),t.addEventListener("focus",()=>{if(t.value==t.getAttribute("data-value")){const o=t.getAttribute("data-value")||"";t.value="",t.setAttribute("placeholder",o),this.classList.remove("js-show-datalist")}else t.value.length>=s&&this.classList.add("js-show-datalist")}),t.addEventListener("blur",()=>{const o=t.getAttribute("data-value");!t.value&&o&&(t.value=o),setTimeout(()=>{this.classList.remove("js-force-show-datalist"),this.classList.remove("js-show-datalist")},200);const a=t.getAttribute("data-placeholder");a&&t.setAttribute("placeholder",a)}),d.addEventListener("click",()=>{const o=this.closest("form");o&&!this.hasAttribute("data-prevent-submit")?o.requestSubmit():(t.focus(),this.classList.add("js-force-show-datalist"))}),this.addEventListener("keydown",o=>{var a;
|
|
19
|
+
`,r.appendChild(i.content.cloneNode(!0))}connectedCallback(){const r=this.shadowRoot;if(!r)return;let i=this.querySelector("datalist");const t=this.querySelector("input"),d=r.querySelector(".suffix"),n=r.querySelector(".clear-search");let s=this.hasAttribute("data-min-length")?C(this,"data-min-length",1):1;if(d?.setAttribute("class",`suffix ${this.hasAttribute("data-icon")?this.getAttribute("data-icon"):"fa-regular fa-search"}`),this.hasAttribute("data-url")&&!this.hasAttribute("data-min-length")&&(s=3),!t||!d)return;const p=t.getAttribute("placeholder");if(p!==null&&this.setAttribute("data-original-placeholder",p),t.setAttribute("autocomplete","off"),t.setAttribute("aria-autocomplete","none"),t&&t.hasAttribute("list")&&(t.setAttribute("data-list",t.getAttribute("list")||""),t.setAttribute("list","")),!i){i=document.createElement("datalist");const o=`${t?.getAttribute("name")}-list`;i.setAttribute("id",o),t?.setAttribute("data-list",o),this.appendChild(i)}i.setAttribute("slot","datalist"),i.querySelectorAll("option").forEach(o=>{o.setAttribute("tabindex","0"),o.textContent==""&&o.hasAttribute("value")&&(o.textContent=o.getAttribute("value"))}),i.addEventListener("click",o=>{const a=T(o);a&&(o.stopPropagation(),o.preventDefault(),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),this.classList.remove("js-show-datalist"),q(this,t,a))}),t.addEventListener("input",()=>{t.value.length>=1?this.classList.add("has-value"):this.classList.remove("has-value"),t.value.length>=s?(this.classList.add("js-show-datalist"),this.hasAttribute("data-url")?E(this,i,t.value):L(i,t.value)):this.classList.remove("js-show-datalist")}),t.addEventListener("focus",()=>{if(t.value==t.getAttribute("data-value")){const o=t.getAttribute("data-value")||"";t.value="",t.setAttribute("placeholder",o),this.classList.remove("js-show-datalist")}else t.value.length>=s&&this.classList.add("js-show-datalist")}),t.addEventListener("blur",()=>{const o=t.getAttribute("data-value");!t.value&&o&&(t.value=o),setTimeout(()=>{this.classList.remove("js-force-show-datalist"),this.classList.remove("js-show-datalist")},200);const a=t.getAttribute("data-placeholder");a&&t.setAttribute("placeholder",a)}),d.addEventListener("click",()=>{const o=this.closest("form");o&&!this.hasAttribute("data-prevent-submit")?o.requestSubmit():(t.focus(),this.classList.add("js-force-show-datalist"))}),this.addEventListener("keydown",o=>{var a;o.key==="ArrowDown"&&o&&o.target instanceof HTMLElement&&o.target==t&&((a=this.querySelector("datalist option:not(.js-hide)"))===null||a===void 0||a.focus())}),n?.addEventListener("click",()=>{this.classList.remove("js-show-datalist"),t.value="",t.removeAttribute("data-value"),t.focus(),this.classList.remove("has-value"),t.setAttribute("placeholder",this.getAttribute("data-original-placeholder")||"");const o=t.getAttribute("name"),a=o?this.querySelector(`[name="${o}Alt"]`):null;a?.remove(),i.querySelectorAll("option").forEach(l=>{l.classList.remove("active")})})}}export{$ as default};
|
|
20
20
|
//# sourceMappingURL=search.component.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.component.min.js","sources":["../../modules/helpers.js","../../modules/search.js","search.component.js"],"sourcesContent":["/**\n * Global helper functions to help maintain and enhance framework elements.\n * @module Helpers\n */\n/**\n * Add global classes used by the CSS and later JavaScript.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addBodyClasses = (body) => {\n body.classList.add('js-enabled');\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {\n body.classList.add('ie');\n }\n};\n/**\n * Add global events.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addGlobalEvents = (body) => {\n const checkElements = function (hash) {\n const label = document.querySelector(`label[for=\"${hash.replace('#', '')}\"]`);\n const summary = document.querySelector(hash + ' summary');\n const dialog = document.querySelector(`dialog${hash}`);\n const detail = document.querySelector(`detail${hash}`);\n if (label instanceof HTMLElement)\n label.click();\n else if (summary instanceof HTMLElement)\n summary.click();\n else if (dialog instanceof HTMLElement)\n dialog.showModal();\n else if (detail instanceof HTMLElement)\n detail.addAttribute('open');\n };\n if (location.hash)\n checkElements(location.hash);\n window.addEventListener('hashchange', function () {\n checkElements(location.hash);\n }, false);\n addEventListener('popstate', (event) => {\n if (event && event.state && event.state.type && event.state.type == 'pagination') {\n const form = document.querySelector(`#${event.state.form}`);\n const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);\n if (pageInput)\n pageInput.value = event.state.page;\n else\n form.innerHTML += `<input name=\"page\" type=\"hidden\" data-pagination=\"true\" value=\"${event.state.page}\" />`;\n form.dispatchEvent(new Event('submit'));\n }\n });\n Array.from(document.querySelectorAll('form')).forEach((form) => {\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n form.addEventListener('submit', (event) => {\n var _a;\n if (form.querySelector(':invalid')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n });\n }\n });\n document.addEventListener('click', (event) => {\n var _a;\n if (event && event.target instanceof HTMLElement && event.target.matches('form button:not([type=button])')) {\n const form = event.target.closest('form');\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n // Reset password types\n Array.from(form.querySelectorAll('[data-password-type]')).forEach((input) => {\n input.setAttribute('type', 'password');\n });\n if (form.querySelector(':invalid') ||\n form.querySelector('.pwd-checker[data-strength=\"1\"]') ||\n form.querySelector('.pwd-checker[data-strength=\"2\"]')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n if (form.querySelector('iam-multiselect[data-is-required][data-error]')) {\n form.classList.add('was-validated');\n event.preventDefault();\n }\n }\n }\n });\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n if (document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n });\n Array.from(document.querySelectorAll('label progress')).forEach((progress) => {\n const label = progress.closest('label');\n label.setAttribute('data-percent', progress.getAttribute('value'));\n });\n};\nexport const isNumeric = function (str) {\n if (typeof str != 'string')\n return false; // we only process strings!\n return (!isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\n !isNaN(parseFloat(str))); // ...and ensure strings of whitespace fail\n};\nexport const zeroPad = (num, places) => String(num).padStart(places, '0');\nexport const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nexport const ucwords = (str) => str\n .split(' ')\n .map((s) => ucfirst(s))\n .join(' ');\nexport const unsnake = (str) => str.replace(/_/g, ' ');\nexport const snake = (str) => str.replace(/ /g, '_');\nexport const safeID = function (str) {\n str = str.toLowerCase();\n str = snake(str);\n str = str.replace(/\\W/g, '');\n return str;\n};\nexport const numberOfDays = function (startDateString, endDateString) {\n const convertStart = startDateString.split('/');\n const convertEnd = endDateString.split('/');\n const dateStart = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);\n const dateEnd = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);\n if (dateStart == 'Invalid Date')\n throw 'Start date is not a valid date';\n if (dateEnd == 'Invalid Date')\n throw 'End date is not a valid date';\n // To calculate the time difference of two dates\n const diffTime = dateEnd.getTime() - dateStart.getTime();\n const numberOfDays = diffTime / (1000 * 3600 * 24) + 1;\n if (numberOfDays < 0)\n throw 'The start date should be before the end date';\n return numberOfDays;\n};\n// Used to get values from nested json objects\nexport const resolvePath = (object, path, defaultValue) => path\n // eslint-disable-next-line no-useless-escape\n .split(/[\\.\\[\\]\\'\\\"]/)\n .filter((p) => p)\n .reduce((o, p) => (o ? o[p] : defaultValue), object);\nexport const isTraversable = (o) => Array.isArray(o) || (o !== null && ['function', 'object'].includes(typeof o));\nexport const getSwipeDirection = (touchstartX, touchstartY, touchendX, touchendY) => {\n const limit = Math.tan(((45 * 1.5) / 180) * Math.PI);\n const pageWidth = window.innerWidth || document.body.clientWidth;\n const treshold = Math.max(1, Math.floor(0.01 * pageWidth));\n const x = touchendX - touchstartX;\n const y = touchendY - touchstartY;\n const xy = Math.abs(x / y);\n const yx = Math.abs(y / x);\n if (Math.abs(x) > treshold || Math.abs(y) > treshold) {\n if (yx <= limit) {\n if (x < 0) {\n return 'left';\n }\n else {\n return 'right';\n }\n }\n if (xy <= limit) {\n if (y < 0) {\n return 'top';\n }\n else {\n return 'bottom';\n }\n }\n }\n else {\n return 'tap';\n }\n};\nexport const uniqueID = (index = 1) => {\n const ID = Math.floor(Math.random() * Date.now() * (index + 1));\n return ID;\n};\nexport const isValidPostcode = (searchValue) => {\n const regexp = /^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/gmi;\n return regexp.test(searchValue.trim());\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { resolvePath, isTraversable } from './helpers';\nconst isRecord = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);\nconst getResultValue = (item, key) => (isRecord(item) ? item[key] : undefined);\nconst toOptionText = (value) => String(value !== null && value !== void 0 ? value : '').replace('\\n', ', ');\nconst appendDatalistOption = (datalistElement, item, valueSchema, displaySchema, groupLabel = '') => {\n var _a, _b, _c, _d, _e, _f, _g;\n const resolvedValue = resolvePath(item, valueSchema, undefined);\n const resolvedDisplay = resolvePath(item, displaySchema, undefined);\n const fallbackValue = isTraversable(item) ? '' : item;\n const actualValue = (_e = (_d = (_c = (_b = (_a = resolvedValue !== null && resolvedValue !== void 0 ? resolvedValue : getResultValue(item, 'value')) !== null && _a !== void 0 ? _a : getResultValue(item, 'id')) !== null && _b !== void 0 ? _b : resolvedDisplay) !== null && _c !== void 0 ? _c : getResultValue(item, 'title')) !== null && _d !== void 0 ? _d : getResultValue(item, 'label')) !== null && _e !== void 0 ? _e : fallbackValue;\n const displayValue = toOptionText((_g = (_f = resolvedDisplay !== null && resolvedDisplay !== void 0 ? resolvedDisplay : getResultValue(item, 'title')) !== null && _f !== void 0 ? _f : getResultValue(item, 'label')) !== null && _g !== void 0 ? _g : actualValue);\n if (!displayValue)\n return;\n const optionElement = document.createElement('option');\n optionElement.value = String(actualValue);\n optionElement.textContent = `${groupLabel}${displayValue}`;\n datalistElement.appendChild(optionElement);\n};\nconst getFormControls = (component) => Array.from(component.querySelectorAll('input,select'));\nconst getSearchSchema = (component, attributeName, fallback) => component.hasAttribute(attributeName) ? component.getAttribute(attributeName) || '' : fallback;\nconst search = (component, datalistElement, searchTerm) => __awaiter(void 0, void 0, void 0, function* () {\n let url = component.getAttribute('data-url');\n if (!url)\n return;\n const method = component.getAttribute('data-method') || 'GET';\n const body = {};\n const searchWindow = window;\n // Setup controller vars if not already set\n if (!searchWindow.controller)\n searchWindow.controller = {};\n // Abort if controller already present for this url\n if (searchWindow.controller[url])\n searchWindow.controller[url].abort();\n // Create a new controller so it can be aborted if new fetch made\n searchWindow.controller[url] = new AbortController();\n const { signal } = searchWindow.controller[url];\n const requestOptions = {\n signal,\n method,\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n }),\n };\n if (method.toUpperCase() === 'GET') {\n getFormControls(component).forEach((input) => {\n const name = input.getAttribute('name');\n const value = input.value;\n if (name && value) {\n url += `${url.includes('?') ? '&' : '?'}${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\n }\n });\n }\n else {\n getFormControls(component).forEach((input) => {\n const name = input.getAttribute('name');\n const value = input.value;\n if (name && value) {\n body[name] = value;\n }\n });\n requestOptions['body'] = JSON.stringify(body);\n }\n try {\n const response = yield fetch(url, requestOptions);\n const responseData = (yield response.json());\n const loopSchema = getSearchSchema(component, 'data-schema', 'data');\n const valueSchema = getSearchSchema(component, 'data-value-schema', 'value');\n const displaySchema = getSearchSchema(component, 'data-display-schema', 'label');\n const loopValues = resolvePath(responseData, loopSchema, []);\n if (Array.isArray(loopValues)) {\n loopValues.forEach((item) => {\n appendDatalistOption(datalistElement, item, valueSchema, displaySchema);\n });\n }\n else if (isRecord(loopValues)) {\n Object.entries(loopValues).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((item) => {\n appendDatalistOption(datalistElement, item, valueSchema, displaySchema, `${key}: `);\n });\n }\n });\n }\n filterDatalist(datalistElement, searchTerm);\n }\n catch (error) {\n console.log(error);\n }\n});\nexport const filterDatalist = (datalistElement, searchTerm) => {\n var _a;\n for (const optionElement of datalistElement.options) {\n const optionText = ((_a = optionElement.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || optionElement.value;\n if (optionText.toLowerCase().includes(searchTerm.toLowerCase())) {\n optionElement.classList.remove('js-hide');\n }\n else {\n optionElement.classList.add('js-hide');\n }\n }\n};\nexport const datalistSelectOption = (component, inputElement, optionElement) => {\n var _a;\n const datalistElement = optionElement.closest('datalist');\n const optionText = ((_a = optionElement.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || optionElement.value;\n const inputName = inputElement.getAttribute('name') || '';\n const alternateInputName = `${inputName}Alt`;\n inputElement.value = optionText;\n inputElement.setAttribute('data-value', optionText);\n //inputElement.setAttribute('data-placeholder', optionText);\n inputElement.setAttribute('placeholder', optionText);\n // Make sure the value of the option is passed when in a form\n if (optionElement.value && optionElement.value !== optionText) {\n const alternateInput = component.querySelector(`input[name=\"${alternateInputName}\"]`);\n if (!alternateInput)\n component.insertAdjacentHTML('beforeend', `<input type=\"hidden\" name=\"${alternateInputName}\" value=\"${optionElement.value}\">`);\n else\n alternateInput.value = optionElement.value;\n }\n else {\n const alternateInput = component.querySelector(`input[name=\"${alternateInputName}\"]`);\n if (alternateInput)\n alternateInput.remove();\n }\n // Set the active value on the datalist option\n if (!datalistElement)\n return;\n for (const optionLoopElement of datalistElement.options) {\n if (optionLoopElement === optionElement)\n optionLoopElement.classList.add('active');\n else\n optionLoopElement.classList.remove('active');\n }\n const customEvent = new CustomEvent('option-selected', {\n detail: {\n title: optionText,\n value: optionElement.value || '',\n url: optionElement.hasAttribute('data-url') ? optionElement.getAttribute('data-url') || '' : '',\n },\n });\n component.dispatchEvent(customEvent);\n};\nexport default search;\n","import search, { filterDatalist, datalistSelectOption } from '../../modules/search';\nconst getIntegerAttribute = (element, attributeName, fallback) => {\n const value = Number.parseInt(element.getAttribute(attributeName) || '', 10);\n return Number.isNaN(value) ? fallback : value;\n};\nconst getOptionFromEvent = (event) => event.target instanceof HTMLElement ? event.target.closest('option') : null;\n// Data layer Web component created\nconst searchWindow = window;\nsearchWindow.dataLayer = searchWindow.dataLayer || [];\nsearchWindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'Search',\n});\nclass iamSearch extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.getAttribute('data-assets-location') || '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/search.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = /* HTML */ `\n <style>\n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\" />\n <span class=\"wrapper\">\n <span class=\"input__wrapper\">\n <slot></slot>\n <button class=\"clear-search btn btn-action\" type=\"button\"><i class=\"fa-light fa-times me-0\"></i></button>\n </span>\n <button class=\"suffix fa-regular fa-search\"></button>\n </span>\n <slot name=\"datalist\"></slot>\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const shadowRoot = this.shadowRoot;\n if (!shadowRoot)\n return;\n let datalistElement = this.querySelector('datalist');\n const inputElement = this.querySelector('input');\n const suffixElement = shadowRoot.querySelector('.suffix');\n const clearBtn = shadowRoot.querySelector('.clear-search');\n let minLength = this.hasAttribute('data-min-length') ? getIntegerAttribute(this, 'data-min-length', 1) : 1;\n suffixElement === null || suffixElement === void 0 ? void 0 : suffixElement.setAttribute('class', `suffix ${this.hasAttribute('data-icon') ? this.getAttribute('data-icon') : 'fa-regular fa-search'}`);\n if (this.hasAttribute('data-url') && !this.hasAttribute('data-min-length')) {\n minLength = 3;\n }\n if (!inputElement || !suffixElement)\n return;\n // #region maintain the original placeholder value in a data attribute to allow for it to be reset when the field is emptied\n const originalPlaceholder = inputElement.getAttribute('placeholder');\n if (originalPlaceholder !== null)\n this.setAttribute('data-original-placeholder', originalPlaceholder);\n // #endregion\n // #region transform datalist into dropdown\n // Turn off the browser's default datalist functionality to allow for a custom implementation\n inputElement.setAttribute('autocomplete', 'off');\n inputElement.setAttribute('aria-autocomplete', 'none');\n if (inputElement && inputElement.hasAttribute('list')) {\n inputElement.setAttribute('data-list', inputElement.getAttribute('list') || '');\n inputElement.setAttribute('list', '');\n }\n if (!datalistElement) {\n datalistElement = document.createElement('datalist');\n const listID = `${inputElement === null || inputElement === void 0 ? void 0 : inputElement.getAttribute('name')}-list`;\n datalistElement.setAttribute('id', listID);\n inputElement === null || inputElement === void 0 ? void 0 : inputElement.setAttribute('data-list', listID);\n this.appendChild(datalistElement);\n }\n datalistElement.setAttribute('slot', 'datalist');\n datalistElement.querySelectorAll('option').forEach((option) => {\n option.setAttribute('tabindex', '0');\n if (option.textContent == '' && option.hasAttribute('value')) {\n option.textContent = option.getAttribute('value');\n }\n });\n datalistElement.addEventListener('click', (event) => {\n const optionElement = getOptionFromEvent(event);\n if (optionElement) {\n event.stopPropagation();\n event.preventDefault();\n if (document.activeElement instanceof HTMLElement)\n document.activeElement.blur();\n this.classList.remove('js-show-datalist');\n datalistSelectOption(this, inputElement, optionElement);\n }\n });\n // #endregion\n // #region control input field\n inputElement.addEventListener('input', () => {\n if (inputElement.value.length >= 1) {\n this.classList.add('has-value');\n }\n else {\n this.classList.remove('has-value');\n }\n if (inputElement.value.length >= minLength) {\n //inputElement.removeAttribute('data-value');\n this.classList.add('js-show-datalist');\n if (this.hasAttribute('data-url')) {\n void search(this, datalistElement, inputElement.value);\n }\n else {\n filterDatalist(datalistElement, inputElement.value);\n }\n }\n else {\n this.classList.remove('js-show-datalist');\n }\n });\n inputElement.addEventListener('focus', () => {\n if (inputElement.value == inputElement.getAttribute('data-value')) {\n const selectedValue = inputElement.getAttribute('data-value') || '';\n inputElement.value = '';\n inputElement.setAttribute('placeholder', selectedValue);\n this.classList.remove('js-show-datalist');\n }\n else if (inputElement.value.length >= minLength) {\n this.classList.add('js-show-datalist');\n }\n });\n inputElement.addEventListener('blur', () => {\n const selectedValue = inputElement.getAttribute('data-value');\n if (!inputElement.value && selectedValue) {\n inputElement.value = selectedValue;\n //inputElement.setAttribute('placeholder', inputElement.getAttribute('data-value'));\n //this.classList.remove('js-show-datalist');\n }\n // Set timeout to allow click event to fire on options before hiding the list again\n setTimeout(() => {\n this.classList.remove('js-force-show-datalist');\n this.classList.remove('js-show-datalist');\n }, 200);\n const placeholder = inputElement.getAttribute('data-placeholder');\n if (placeholder)\n inputElement.setAttribute('placeholder', placeholder);\n });\n // #endregion\n // #region control suffix button\n suffixElement.addEventListener('click', () => {\n const form = this.closest('form');\n if (form && !this.hasAttribute('data-prevent-submit')) {\n form.requestSubmit();\n }\n else {\n inputElement.focus();\n this.classList.add('js-force-show-datalist');\n }\n });\n // #endregion\n // #region keyboard navigation\n this.addEventListener('keydown', (event) => {\n var _a;\n switch (event.key) {\n case 'ArrowDown':\n //event.stopPropagation();\n //event.preventDefault();\n if (event && event.target instanceof HTMLElement && event.target == inputElement) {\n (_a = this.querySelector('datalist option:not(.js-hide)')) === null || _a === void 0 ? void 0 : _a.focus();\n }\n break;\n }\n /*\n if (event && event.target instanceof HTMLElement && event.target.closest('a, button, summary')) {\n const activeItem = document.activeElement;\n const prevIndex = Array.from(topLevelmenuItems).indexOf(activeItem) - 1;\n const nextIndex = Array.from(topLevelmenuItems).indexOf(activeItem) + 1;\n \n switch (\n event.keyCode // change to event.key to key to use the above variable\n ) {\n case 27: // Esc\n if (activeItem.closest('details')) {\n event.stopPropagation();\n event.preventDefault();\n activeItem.closest('details').removeAttribute('open');\n activeItem.closest('details').querySelector(':scope summary').focus();\n } else {\n event.stopPropagation();\n menuButton.focus();\n }\n \n break;\n case 32: // Space\n case 13: // Enter\n break;\n case 35: // end\n event.stopPropagation();\n event.preventDefault();\n \n this.querySelector('details[open]').removeAttribute('open');\n Array.from(menuItems)[menuItems.length - 1].focus();\n \n break;\n case 36: // home\n event.stopPropagation();\n event.preventDefault();\n \n this.querySelector('details[open]').removeAttribute('open');\n Array.from(menuItems)[0].focus();\n \n break;\n case 38: // up\n event.stopPropagation();\n event.preventDefault();\n \n if (Array.from(topLevelmenuItems).indexOf(activeItem) > -1) {\n if (Array.from(topLevelmenuItems)[prevIndex] != undefined)\n Array.from(topLevelmenuItems)[prevIndex].focus();\n else Array.from(topLevelmenuItems)[topLevelmenuItems.length - 1].focus();\n } else if (activeItem.closest('details')) {\n const subMenuItems = activeItem\n .closest('details')\n .querySelectorAll('a, button, :scope details > summary');\n subPrevIndex = Array.from(subMenuItems).indexOf(activeItem) - 1;\n \n if (Array.from(subMenuItems)[subPrevIndex] != undefined) Array.from(subMenuItems)[subPrevIndex].focus();\n else Array.from(subMenuItems)[subMenuItems.length - 1].focus();\n }\n \n break;\n case 40: // down\n event.stopPropagation();\n event.preventDefault();\n \n if (Array.from(topLevelmenuItems).indexOf(activeItem) > -1) {\n if (Array.from(topLevelmenuItems)[nextIndex] != undefined)\n Array.from(topLevelmenuItems)[nextIndex].focus();\n else Array.from(topLevelmenuItems)[0].focus();\n } else if (activeItem.closest('details')) {\n const subMenuItems = activeItem\n .closest('details')\n .querySelectorAll('a, button, :scope details > summary');\n subNextIndex = Array.from(subMenuItems).indexOf(activeItem) + 1;\n \n if (Array.from(subMenuItems)[subNextIndex] != undefined) Array.from(subMenuItems)[subNextIndex].focus();\n else Array.from(subMenuItems)[0].focus();\n }\n \n break;\n }\n }\n \n */\n });\n // #endregion\n // #region empty button\n clearBtn === null || clearBtn === void 0 ? void 0 : clearBtn.addEventListener('click', () => {\n this.classList.remove('js-show-datalist');\n inputElement.value = '';\n inputElement.removeAttribute('data-value');\n inputElement.focus();\n this.classList.remove('has-value');\n inputElement.setAttribute('placeholder', this.getAttribute('data-original-placeholder') || '');\n const inputName = inputElement.getAttribute('name');\n const alternateInput = inputName ? this.querySelector(`[name=\"${inputName}Alt\"]`) : null;\n alternateInput === null || alternateInput === void 0 ? void 0 : alternateInput.remove();\n datalistElement.querySelectorAll('option').forEach((option) => {\n option.classList.remove('active');\n });\n });\n }\n}\nexport default iamSearch;\n"],"names":["resolvePath","object","path","defaultValue","p","o","isTraversable","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","isRecord","getResultValue","item","key","toOptionText","appendDatalistOption","datalistElement","valueSchema","displaySchema","groupLabel","_a","_b","_c","_d","_e","_f","_g","resolvedValue","resolvedDisplay","fallbackValue","actualValue","displayValue","optionElement","getFormControls","component","getSearchSchema","attributeName","fallback","search","searchTerm","url","method","body","searchWindow","signal","requestOptions","input","name","responseData","loopSchema","loopValues","filterDatalist","error","datalistSelectOption","inputElement","optionText","alternateInputName","alternateInput","optionLoopElement","customEvent","getIntegerAttribute","element","getOptionFromEvent","event","iamSearch","shadowRoot","template","suffixElement","clearBtn","minLength","originalPlaceholder","listID","option","selectedValue","placeholder","form","inputName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search.component.min.js","sources":["../../modules/helpers.js","../../modules/search.js","search.component.js"],"sourcesContent":["/**\n * Global helper functions to help maintain and enhance framework elements.\n * @module Helpers\n */\n/**\n * Add global classes used by the CSS and later JavaScript.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addBodyClasses = (body) => {\n body.classList.add('js-enabled');\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {\n body.classList.add('ie');\n }\n};\n/**\n * Add global events.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addGlobalEvents = (body) => {\n const checkElements = function (hash) {\n const label = document.querySelector(`label[for=\"${hash.replace('#', '')}\"]`);\n const summary = document.querySelector(hash + ' summary');\n const dialog = document.querySelector(`dialog${hash}`);\n const detail = document.querySelector(`detail${hash}`);\n if (label instanceof HTMLElement)\n label.click();\n else if (summary instanceof HTMLElement)\n summary.click();\n else if (dialog instanceof HTMLElement)\n dialog.showModal();\n else if (detail instanceof HTMLElement)\n detail.addAttribute('open');\n };\n if (location.hash)\n checkElements(location.hash);\n window.addEventListener('hashchange', function () {\n checkElements(location.hash);\n }, false);\n addEventListener('popstate', (event) => {\n if (event && event.state && event.state.type && event.state.type == 'pagination') {\n const form = document.querySelector(`#${event.state.form}`);\n const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);\n if (pageInput)\n pageInput.value = event.state.page;\n else\n form.innerHTML += `<input name=\"page\" type=\"hidden\" data-pagination=\"true\" value=\"${event.state.page}\" />`;\n form.dispatchEvent(new Event('submit'));\n }\n });\n Array.from(document.querySelectorAll('form')).forEach((form) => {\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n form.addEventListener('submit', (event) => {\n var _a;\n if (form.querySelector(':invalid')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n });\n }\n });\n document.addEventListener('click', (event) => {\n var _a;\n if (event && event.target instanceof HTMLElement && event.target.matches('form button:not([type=button])')) {\n const form = event.target.closest('form');\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n // Reset password types\n Array.from(form.querySelectorAll('[data-password-type]')).forEach((input) => {\n input.setAttribute('type', 'password');\n });\n if (form.querySelector(':invalid') ||\n form.querySelector('.pwd-checker[data-strength=\"1\"]') ||\n form.querySelector('.pwd-checker[data-strength=\"2\"]')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n if (form.querySelector('iam-multiselect[data-is-required][data-error]')) {\n form.classList.add('was-validated');\n event.preventDefault();\n }\n }\n }\n });\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n if (document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n });\n Array.from(document.querySelectorAll('label progress')).forEach((progress) => {\n const label = progress.closest('label');\n label.setAttribute('data-percent', progress.getAttribute('value'));\n });\n};\nexport const isNumeric = function (str) {\n if (typeof str != 'string')\n return false; // we only process strings!\n return (!isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\n !isNaN(parseFloat(str))); // ...and ensure strings of whitespace fail\n};\nexport const zeroPad = (num, places) => String(num).padStart(places, '0');\nexport const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nexport const ucwords = (str) => str\n .split(' ')\n .map((s) => ucfirst(s))\n .join(' ');\nexport const unsnake = (str) => str.replace(/_/g, ' ');\nexport const snake = (str) => str.replace(/ /g, '_');\nexport const safeID = function (str) {\n str = str.toLowerCase();\n str = snake(str);\n str = str.replace(/\\W/g, '');\n return str;\n};\nexport const numberOfDays = function (startDateString, endDateString) {\n const convertStart = startDateString.split('/');\n const convertEnd = endDateString.split('/');\n const dateStart = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);\n const dateEnd = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);\n if (dateStart == 'Invalid Date')\n throw 'Start date is not a valid date';\n if (dateEnd == 'Invalid Date')\n throw 'End date is not a valid date';\n // To calculate the time difference of two dates\n const diffTime = dateEnd.getTime() - dateStart.getTime();\n const numberOfDays = diffTime / (1000 * 3600 * 24) + 1;\n if (numberOfDays < 0)\n throw 'The start date should be before the end date';\n return numberOfDays;\n};\n// Used to get values from nested json objects\nexport const resolvePath = (object, path, defaultValue) => path\n // eslint-disable-next-line no-useless-escape\n .split(/[\\.\\[\\]\\'\\\"]/)\n .filter((p) => p)\n .reduce((o, p) => (o ? o[p] : defaultValue), object);\nexport const isTraversable = (o) => Array.isArray(o) || (o !== null && ['function', 'object'].includes(typeof o));\nexport const getSwipeDirection = (touchstartX, touchstartY, touchendX, touchendY) => {\n const limit = Math.tan(((45 * 1.5) / 180) * Math.PI);\n const pageWidth = window.innerWidth || document.body.clientWidth;\n const treshold = Math.max(1, Math.floor(0.01 * pageWidth));\n const x = touchendX - touchstartX;\n const y = touchendY - touchstartY;\n const xy = Math.abs(x / y);\n const yx = Math.abs(y / x);\n if (Math.abs(x) > treshold || Math.abs(y) > treshold) {\n if (yx <= limit) {\n if (x < 0) {\n return 'left';\n }\n else {\n return 'right';\n }\n }\n if (xy <= limit) {\n if (y < 0) {\n return 'top';\n }\n else {\n return 'bottom';\n }\n }\n }\n else {\n return 'tap';\n }\n};\nexport const uniqueID = (index = 1) => {\n const ID = Math.floor(Math.random() * Date.now() * (index + 1));\n return ID;\n};\nexport const isValidPostcode = (searchValue) => {\n const regexp = /^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/gmi;\n return regexp.test(searchValue.trim());\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { resolvePath, isTraversable } from './helpers';\nconst isRecord = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);\nconst getResultValue = (item, key) => (isRecord(item) ? item[key] : undefined);\nconst toOptionText = (value) => String(value !== null && value !== void 0 ? value : '').replace('\\n', ', ');\nconst appendDatalistOption = (datalistElement, item, valueSchema, displaySchema, groupLabel = '') => {\n var _a, _b, _c, _d, _e, _f, _g;\n const resolvedValue = resolvePath(item, valueSchema, undefined);\n const resolvedDisplay = resolvePath(item, displaySchema, undefined);\n const fallbackValue = isTraversable(item) ? '' : item;\n const actualValue = (_e = (_d = (_c = (_b = (_a = resolvedValue !== null && resolvedValue !== void 0 ? resolvedValue : getResultValue(item, 'value')) !== null && _a !== void 0 ? _a : getResultValue(item, 'id')) !== null && _b !== void 0 ? _b : resolvedDisplay) !== null && _c !== void 0 ? _c : getResultValue(item, 'title')) !== null && _d !== void 0 ? _d : getResultValue(item, 'label')) !== null && _e !== void 0 ? _e : fallbackValue;\n const displayValue = toOptionText((_g = (_f = resolvedDisplay !== null && resolvedDisplay !== void 0 ? resolvedDisplay : getResultValue(item, 'title')) !== null && _f !== void 0 ? _f : getResultValue(item, 'label')) !== null && _g !== void 0 ? _g : actualValue);\n if (!displayValue)\n return;\n const optionElement = document.createElement('option');\n optionElement.value = String(actualValue);\n optionElement.textContent = `${groupLabel}${displayValue}`;\n datalistElement.appendChild(optionElement);\n};\nconst getFormControls = (component) => Array.from(component.querySelectorAll('input,select'));\nconst getSearchSchema = (component, attributeName, fallback) => component.hasAttribute(attributeName) ? component.getAttribute(attributeName) || '' : fallback;\nconst search = (component, datalistElement, searchTerm) => __awaiter(void 0, void 0, void 0, function* () {\n let url = component.getAttribute('data-url');\n if (!url)\n return;\n const method = component.getAttribute('data-method') || 'GET';\n const body = {};\n const searchWindow = window;\n // Setup controller vars if not already set\n if (!searchWindow.controller)\n searchWindow.controller = {};\n // Abort if controller already present for this url\n if (searchWindow.controller[url])\n searchWindow.controller[url].abort();\n // Create a new controller so it can be aborted if new fetch made\n searchWindow.controller[url] = new AbortController();\n const { signal } = searchWindow.controller[url];\n const requestOptions = {\n signal,\n method,\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n }),\n };\n if (method.toUpperCase() === 'GET') {\n getFormControls(component).forEach((input) => {\n const name = input.getAttribute('name');\n const value = input.value;\n if (name && value) {\n url += `${url.includes('?') ? '&' : '?'}${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\n }\n });\n }\n else {\n getFormControls(component).forEach((input) => {\n const name = input.getAttribute('name');\n const value = input.value;\n if (name && value) {\n body[name] = value;\n }\n });\n requestOptions['body'] = JSON.stringify(body);\n }\n try {\n const response = yield fetch(url, requestOptions);\n const responseData = (yield response.json());\n const loopSchema = getSearchSchema(component, 'data-schema', 'data');\n const valueSchema = getSearchSchema(component, 'data-value-schema', 'value');\n const displaySchema = getSearchSchema(component, 'data-display-schema', 'label');\n const loopValues = resolvePath(responseData, loopSchema, []);\n if (Array.isArray(loopValues)) {\n loopValues.forEach((item) => {\n appendDatalistOption(datalistElement, item, valueSchema, displaySchema);\n });\n }\n else if (isRecord(loopValues)) {\n Object.entries(loopValues).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((item) => {\n appendDatalistOption(datalistElement, item, valueSchema, displaySchema, `${key}: `);\n });\n }\n });\n }\n filterDatalist(datalistElement, searchTerm);\n }\n catch (error) {\n console.log(error);\n }\n});\nexport const filterDatalist = (datalistElement, searchTerm) => {\n var _a;\n for (const optionElement of datalistElement.options) {\n const optionText = ((_a = optionElement.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || optionElement.value;\n if (optionText.toLowerCase().includes(searchTerm.toLowerCase())) {\n optionElement.classList.remove('js-hide');\n }\n else {\n optionElement.classList.add('js-hide');\n }\n }\n};\nexport const datalistSelectOption = (component, inputElement, optionElement) => {\n var _a;\n const datalistElement = optionElement.closest('datalist');\n const optionText = ((_a = optionElement.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || optionElement.value;\n const inputName = inputElement.getAttribute('name') || '';\n const alternateInputName = `${inputName}Alt`;\n inputElement.value = optionText;\n inputElement.setAttribute('data-value', optionText);\n //inputElement.setAttribute('data-placeholder', optionText);\n inputElement.setAttribute('placeholder', optionText);\n // Make sure the value of the option is passed when in a form\n if (optionElement.value && optionElement.value !== optionText) {\n const alternateInput = component.querySelector(`input[name=\"${alternateInputName}\"]`);\n if (!alternateInput)\n component.insertAdjacentHTML('beforeend', `<input type=\"hidden\" name=\"${alternateInputName}\" value=\"${optionElement.value}\">`);\n else\n alternateInput.value = optionElement.value;\n }\n else {\n const alternateInput = component.querySelector(`input[name=\"${alternateInputName}\"]`);\n if (alternateInput)\n alternateInput.remove();\n }\n // Set the active value on the datalist option\n if (!datalistElement)\n return;\n for (const optionLoopElement of datalistElement.options) {\n if (optionLoopElement === optionElement)\n optionLoopElement.classList.add('active');\n else\n optionLoopElement.classList.remove('active');\n }\n const customEvent = new CustomEvent('option-selected', {\n detail: {\n title: optionText,\n value: optionElement.value || '',\n url: optionElement.hasAttribute('data-url') ? optionElement.getAttribute('data-url') || '' : '',\n },\n });\n component.dispatchEvent(customEvent);\n};\nexport default search;\n","import search, { filterDatalist, datalistSelectOption } from '../../modules/search';\nconst getIntegerAttribute = (element, attributeName, fallback) => {\n const value = Number.parseInt(element.getAttribute(attributeName) || '', 10);\n return Number.isNaN(value) ? fallback : value;\n};\nconst getOptionFromEvent = (event) => event.target instanceof HTMLElement ? event.target.closest('option') : null;\n// Data layer Web component created\nconst searchWindow = window;\nsearchWindow.dataLayer = searchWindow.dataLayer || [];\nsearchWindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'Search',\n});\nclass iamSearch extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.getAttribute('data-assets-location') || '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/search.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = /* HTML */ `\n <style>\n ${loadCSS}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\" />\n <span class=\"wrapper\">\n <span class=\"input__wrapper\">\n <slot></slot>\n <button class=\"clear-search btn btn-action\" type=\"button\"><i class=\"fa-light fa-times me-0\"></i></button>\n </span>\n <button class=\"suffix fa-regular fa-search\"></button>\n </span>\n <slot name=\"datalist\"></slot>\n `;\n shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const shadowRoot = this.shadowRoot;\n if (!shadowRoot)\n return;\n let datalistElement = this.querySelector('datalist');\n const inputElement = this.querySelector('input');\n const suffixElement = shadowRoot.querySelector('.suffix');\n const clearBtn = shadowRoot.querySelector('.clear-search');\n let minLength = this.hasAttribute('data-min-length') ? getIntegerAttribute(this, 'data-min-length', 1) : 1;\n suffixElement === null || suffixElement === void 0 ? void 0 : suffixElement.setAttribute('class', `suffix ${this.hasAttribute('data-icon') ? this.getAttribute('data-icon') : 'fa-regular fa-search'}`);\n if (this.hasAttribute('data-url') && !this.hasAttribute('data-min-length')) {\n minLength = 3;\n }\n if (!inputElement || !suffixElement)\n return;\n // #region maintain the original placeholder value in a data attribute to allow for it to be reset when the field is emptied\n const originalPlaceholder = inputElement.getAttribute('placeholder');\n if (originalPlaceholder !== null)\n this.setAttribute('data-original-placeholder', originalPlaceholder);\n // #endregion\n // #region transform datalist into dropdown\n // Turn off the browser's default datalist functionality to allow for a custom implementation\n inputElement.setAttribute('autocomplete', 'off');\n inputElement.setAttribute('aria-autocomplete', 'none');\n if (inputElement && inputElement.hasAttribute('list')) {\n inputElement.setAttribute('data-list', inputElement.getAttribute('list') || '');\n inputElement.setAttribute('list', '');\n }\n if (!datalistElement) {\n datalistElement = document.createElement('datalist');\n const listID = `${inputElement === null || inputElement === void 0 ? void 0 : inputElement.getAttribute('name')}-list`;\n datalistElement.setAttribute('id', listID);\n inputElement === null || inputElement === void 0 ? void 0 : inputElement.setAttribute('data-list', listID);\n this.appendChild(datalistElement);\n }\n datalistElement.setAttribute('slot', 'datalist');\n datalistElement.querySelectorAll('option').forEach((option) => {\n option.setAttribute('tabindex', '0');\n if (option.textContent == '' && option.hasAttribute('value')) {\n option.textContent = option.getAttribute('value');\n }\n });\n datalistElement.addEventListener('click', (event) => {\n const optionElement = getOptionFromEvent(event);\n if (optionElement) {\n event.stopPropagation();\n event.preventDefault();\n if (document.activeElement instanceof HTMLElement)\n document.activeElement.blur();\n this.classList.remove('js-show-datalist');\n datalistSelectOption(this, inputElement, optionElement);\n }\n });\n // #endregion\n // #region control input field\n inputElement.addEventListener('input', () => {\n if (inputElement.value.length >= 1) {\n this.classList.add('has-value');\n }\n else {\n this.classList.remove('has-value');\n }\n if (inputElement.value.length >= minLength) {\n //inputElement.removeAttribute('data-value');\n this.classList.add('js-show-datalist');\n if (this.hasAttribute('data-url')) {\n void search(this, datalistElement, inputElement.value);\n }\n else {\n filterDatalist(datalistElement, inputElement.value);\n }\n }\n else {\n this.classList.remove('js-show-datalist');\n }\n });\n inputElement.addEventListener('focus', () => {\n if (inputElement.value == inputElement.getAttribute('data-value')) {\n const selectedValue = inputElement.getAttribute('data-value') || '';\n inputElement.value = '';\n inputElement.setAttribute('placeholder', selectedValue);\n this.classList.remove('js-show-datalist');\n }\n else if (inputElement.value.length >= minLength) {\n this.classList.add('js-show-datalist');\n }\n });\n inputElement.addEventListener('blur', () => {\n const selectedValue = inputElement.getAttribute('data-value');\n if (!inputElement.value && selectedValue) {\n inputElement.value = selectedValue;\n //inputElement.setAttribute('placeholder', inputElement.getAttribute('data-value'));\n //this.classList.remove('js-show-datalist');\n }\n // Set timeout to allow click event to fire on options before hiding the list again\n setTimeout(() => {\n this.classList.remove('js-force-show-datalist');\n this.classList.remove('js-show-datalist');\n }, 200);\n const placeholder = inputElement.getAttribute('data-placeholder');\n if (placeholder)\n inputElement.setAttribute('placeholder', placeholder);\n });\n // #endregion\n // #region control suffix button\n suffixElement.addEventListener('click', () => {\n const form = this.closest('form');\n if (form && !this.hasAttribute('data-prevent-submit')) {\n form.requestSubmit();\n }\n else {\n inputElement.focus();\n this.classList.add('js-force-show-datalist');\n }\n });\n // #endregion\n // #region keyboard navigation\n this.addEventListener('keydown', (event) => {\n var _a;\n switch (event.key) {\n case 'ArrowDown':\n //event.stopPropagation();\n //event.preventDefault();\n if (event && event.target instanceof HTMLElement && event.target == inputElement) {\n (_a = this.querySelector('datalist option:not(.js-hide)')) === null || _a === void 0 ? void 0 : _a.focus();\n }\n break;\n }\n /*\n if (event && event.target instanceof HTMLElement && event.target.closest('a, button, summary')) {\n const activeItem = document.activeElement;\n const prevIndex = Array.from(topLevelmenuItems).indexOf(activeItem) - 1;\n const nextIndex = Array.from(topLevelmenuItems).indexOf(activeItem) + 1;\n \n switch (\n event.keyCode // change to event.key to key to use the above variable\n ) {\n case 27: // Esc\n if (activeItem.closest('details')) {\n event.stopPropagation();\n event.preventDefault();\n activeItem.closest('details').removeAttribute('open');\n activeItem.closest('details').querySelector(':scope summary').focus();\n } else {\n event.stopPropagation();\n menuButton.focus();\n }\n \n break;\n case 32: // Space\n case 13: // Enter\n break;\n case 35: // end\n event.stopPropagation();\n event.preventDefault();\n \n this.querySelector('details[open]').removeAttribute('open');\n Array.from(menuItems)[menuItems.length - 1].focus();\n \n break;\n case 36: // home\n event.stopPropagation();\n event.preventDefault();\n \n this.querySelector('details[open]').removeAttribute('open');\n Array.from(menuItems)[0].focus();\n \n break;\n case 38: // up\n event.stopPropagation();\n event.preventDefault();\n \n if (Array.from(topLevelmenuItems).indexOf(activeItem) > -1) {\n if (Array.from(topLevelmenuItems)[prevIndex] != undefined)\n Array.from(topLevelmenuItems)[prevIndex].focus();\n else Array.from(topLevelmenuItems)[topLevelmenuItems.length - 1].focus();\n } else if (activeItem.closest('details')) {\n const subMenuItems = activeItem\n .closest('details')\n .querySelectorAll('a, button, :scope details > summary');\n subPrevIndex = Array.from(subMenuItems).indexOf(activeItem) - 1;\n \n if (Array.from(subMenuItems)[subPrevIndex] != undefined) Array.from(subMenuItems)[subPrevIndex].focus();\n else Array.from(subMenuItems)[subMenuItems.length - 1].focus();\n }\n \n break;\n case 40: // down\n event.stopPropagation();\n event.preventDefault();\n \n if (Array.from(topLevelmenuItems).indexOf(activeItem) > -1) {\n if (Array.from(topLevelmenuItems)[nextIndex] != undefined)\n Array.from(topLevelmenuItems)[nextIndex].focus();\n else Array.from(topLevelmenuItems)[0].focus();\n } else if (activeItem.closest('details')) {\n const subMenuItems = activeItem\n .closest('details')\n .querySelectorAll('a, button, :scope details > summary');\n subNextIndex = Array.from(subMenuItems).indexOf(activeItem) + 1;\n \n if (Array.from(subMenuItems)[subNextIndex] != undefined) Array.from(subMenuItems)[subNextIndex].focus();\n else Array.from(subMenuItems)[0].focus();\n }\n \n break;\n }\n }\n \n */\n });\n // #endregion\n // #region empty button\n clearBtn === null || clearBtn === void 0 ? void 0 : clearBtn.addEventListener('click', () => {\n this.classList.remove('js-show-datalist');\n inputElement.value = '';\n inputElement.removeAttribute('data-value');\n inputElement.focus();\n this.classList.remove('has-value');\n inputElement.setAttribute('placeholder', this.getAttribute('data-original-placeholder') || '');\n const inputName = inputElement.getAttribute('name');\n const alternateInput = inputName ? this.querySelector(`[name=\"${inputName}Alt\"]`) : null;\n alternateInput === null || alternateInput === void 0 ? void 0 : alternateInput.remove();\n datalistElement.querySelectorAll('option').forEach((option) => {\n option.classList.remove('active');\n });\n });\n }\n}\nexport default iamSearch;\n"],"names":["resolvePath","object","path","defaultValue","p","o","isTraversable","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","isRecord","getResultValue","item","key","toOptionText","appendDatalistOption","datalistElement","valueSchema","displaySchema","groupLabel","_a","_b","_c","_d","_e","_f","_g","resolvedValue","resolvedDisplay","fallbackValue","actualValue","displayValue","optionElement","getFormControls","component","getSearchSchema","attributeName","fallback","search","searchTerm","url","method","body","searchWindow","signal","requestOptions","input","name","responseData","loopSchema","loopValues","filterDatalist","error","datalistSelectOption","inputElement","optionText","alternateInputName","alternateInput","optionLoopElement","customEvent","getIntegerAttribute","element","getOptionFromEvent","event","iamSearch","shadowRoot","template","suffixElement","clearBtn","minLength","originalPlaceholder","listID","option","selectedValue","placeholder","form","inputName"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.8.2--
|
|
2
|
+
* iamKey v7.8.2--beta7
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const a=e=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:e})};a("iam-skeleton");class r extends HTMLElement{constructor(){var t;super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const o=document.createElement("template");o.innerHTML=`
|
|
5
5
|
<style>
|