@iamproperty/components 7.7.1--beta4 → 7.7.1--beta5
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/applied-filters.css +1 -1
- package/assets/css/components/applied-filters.css.map +1 -1
- package/assets/css/components/barchart.component.css +1 -1
- package/assets/css/components/barchart.component.css.map +1 -1
- package/assets/css/components/calendar.component.css +1 -1
- package/assets/css/components/calendar.component.css.map +1 -1
- package/assets/css/components/card.component.css +1 -1
- package/assets/css/components/card.component.css.map +1 -1
- package/assets/css/components/carousel.component.css +1 -1
- package/assets/css/components/carousel.component.css.map +1 -1
- package/assets/css/components/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/content.component.css +1 -1
- package/assets/css/components/content.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/inline-edit.css +1 -1
- package/assets/css/components/inline-edit.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.component.css +1 -1
- package/assets/css/components/nav.component.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/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/tabs.config.css +1 -1
- package/assets/css/components/tabs.config.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 -0
- package/assets/css/components/video.component.css.map +1 -0
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/elements/badge-tag.css +1 -1
- package/assets/css/elements/badge-tag.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--global.css +1 -1
- package/assets/css/elements/buttons--global.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/links.css +1 -1
- package/assets/css/elements/links.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 +2 -2
- package/assets/js/components/address-lookup/address-lookup.component.min.js +4 -4
- package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
- package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +2 -2
- package/assets/js/components/barchart/barchart.component.min.js +6 -6
- package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
- package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
- package/assets/js/components/calendar/calendar.component.min.js +2 -2
- package/assets/js/components/card/card.component.min.js +2 -2
- 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 +2 -2
- package/assets/js/components/content/content.component.min.js +2 -2
- 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 +2 -2
- package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/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 +4 -4
- 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 +1 -1
- package/assets/js/components/milestone/milestone.component.min.js +1 -1
- package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
- package/assets/js/components/modal/modal.component.js +2 -2
- 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 +1 -1
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +2 -2
- package/assets/js/components/multiselect/multiselect.component.min.js +2 -2
- package/assets/js/components/nav/nav.component.min.js +2 -2
- package/assets/js/components/notification/notification.component.min.js +1 -1
- 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 +1 -1
- package/assets/js/components/search/search.component.min.js +1 -1
- package/assets/js/components/slider/slider.component.min.js +1 -1
- package/assets/js/components/split-button/split-button.component.min.js +2 -2
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +4 -4
- package/assets/js/components/table/table.component.min.js +1 -1
- package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
- 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 +1 -1
- package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
- package/assets/js/components/tabs/tabs.component.js +13 -0
- package/assets/js/components/tabs/tabs.component.min.js +4 -4
- package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
- package/assets/js/components/tag/tag.component.min.js +1 -1
- package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
- package/assets/js/components/video/video.component.js +67 -0
- package/assets/js/components/video/video.component.min.js +21 -0
- package/assets/js/components/video/video.component.min.js.map +1 -0
- package/assets/js/components/video-card/video-card.component.js +42 -59
- package/assets/js/components/video-card/video-card.component.min.js +15 -7
- package/assets/js/components/video-card/video-card.component.min.js.map +1 -1
- package/assets/js/components/video-modal/video-modal.component.js +10 -44
- package/assets/js/components/video-modal/video-modal.component.min.js +12 -6
- package/assets/js/components/video-modal/video-modal.component.min.js.map +1 -1
- package/assets/js/components/word-count/word-count.component.min.js +1 -1
- package/assets/js/modules/modal.js +4 -2
- package/assets/js/modules/videos.js +42 -0
- package/assets/js/scripts.bundle.js +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/sass/_components.scss +1 -1
- package/assets/sass/components/tabs.component.scss +25 -0
- package/assets/sass/components/tabs.config.scss +5 -1
- package/assets/sass/components/video-card.component.scss +36 -62
- package/assets/sass/components/video-modal.component.scss +6 -4
- package/assets/sass/components/video.component.scss +75 -0
- package/assets/sass/elements/badge-tag.css +1 -1
- package/assets/sass/elements/buttons--action.css +17 -0
- package/assets/sass/elements/buttons--global.scss +5 -1
- package/assets/sass/elements/links.scss +53 -31
- package/assets/sass/foundations/animations.scss +1 -1
- package/assets/ts/components/modal/modal.component.ts +2 -2
- package/assets/ts/components/tabs/tabs.component.ts +19 -0
- package/assets/ts/components/video/video.component.ts +74 -0
- package/assets/ts/components/video-card/video-card.component.ts +54 -75
- package/assets/ts/components/video-modal/video-modal.component.ts +10 -59
- package/assets/ts/modules/modal.ts +4 -2
- package/assets/ts/modules/videos.ts +57 -0
- package/dist/components.es.js +25 -25
- package/dist/components.umd.js +138 -108
- package/package.json +1 -1
- package/src/components/Video/Video.vue +22 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.7.1--
|
|
2
|
+
* iamKey v7.7.1--beta5
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const R=t=>t.charAt(0).toUpperCase()+t.slice(1),p=(t,i,a)=>i.split(/[\.\[\]\'\"]/).filter(e=>e).reduce((e,b)=>e?e[b]:a,t),q=(t=1)=>Math.floor(Math.random()*Date.now()*(t+1));var P=function(t,i,a,e){function b(o){return o instanceof a?o:new a(function(s){s(o)})}return new(a||(a=Promise))(function(o,s){function r(m){try{n(e.next(m))}catch(d){s(d)}}function l(m){try{n(e.throw(m))}catch(d){s(d)}}function n(m){m.done?o(m.value):b(m.value).then(r,l)}n((e=e.apply(t,i||[])).next())})};const I=(t,i)=>{switch(t){case"datetime":return new Date(i).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(i).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(i).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return i=R(i)}},O=function(t){const i=new Object;return Array.from(t.querySelectorAll("[data-filter]")).forEach(e=>{if(!(e.type=="radio"&&!e.checked)&&!(e.type=="checkbox"&&!e.checked)&&e&&e.value){const b=e.getAttribute("data-filter");let o=e.value;e.hasAttribute("data-date-from")&&(o+="-date-from"),e.hasAttribute("data-date-to")&&(o+="-date-to"),i[b]||(i[b]=[]),i[b].push(o)}}),i},N=(t,i,a,e,b)=>{a.querySelector("[name=show]")||a.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),a.querySelector("[name=page]")||a.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),e.addEventListener("update-show",o=>{if(a.querySelector("[name=show]").value!=o.detail.show){a.querySelector("[name=show]").value=o.detail.show;const s=new CustomEvent("update-show",{detail:{show:o.detail.show}});t.dispatchEvent(s),T(t,e),b()}}),e.addEventListener("update-page",o=>{if(a.querySelector("[name=page]").value!=o.detail.page){a.querySelector("[name=page]").value=o.detail.page;const s=new CustomEvent("update-page",{detail:{page:o.detail.page}});if(t.dispatchEvent(s),T(t,e),b(),!t.hasAttribute("data-no-scroll")){const l=i.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:l,behavior:"smooth"})}}})},F=(t,i)=>{let a=document.createElement("form");return t.hasAttribute("data-filterby")?a=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?a=t.closest("form"):t.querySelector("form")?a=t.querySelector("form"):i.parentNode.insertBefore(a,i.nextSibling),t.hasAttribute("data-ajax")&&a.setAttribute("data-ajax",t.getAttribute("data-ajax")),a},E=(t,i,a,e)=>{const b=t.shadowRoot.querySelector(".table__wrapper");t.hasAttribute("data-total")||t.setAttribute("data-total",t.querySelectorAll("tbody tr").length),t.hasAttribute("data-page")||t.setAttribute("data-page",1),t.hasAttribute("data-show")||t.setAttribute("data-show",15),t.hasAttribute("data-increment")||t.setAttribute("data-increment",t.getAttribute("data-show")),U(t,e),W(i),V(t,i),t.classList.contains("mh-sm")&&b.classList.add("mh-sm"),t.classList.contains("mh-md")&&b.classList.add("mh-md"),t.classList.contains("mh-lg")&&b.classList.add("mh-lg"),t.classList.contains("table--cta")&&(J(t,i),X(t,i)),B(t)},B=t=>{Array.from(t.querySelectorAll("tr[data-highlight]")).forEach(i=>{i.insertAdjacentHTML("afterend",`<tr role="presentation" class="tr--highlight">
|
|
5
5
|
<td colspan="100%"><i class="fa-solid fa-star"></i> ${i.getAttribute("data-highlight")}</td>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.7.1--
|
|
2
|
+
* iamKey v7.7.1--beta5
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const h=t=>t.charAt(0).toUpperCase()+t.slice(1),u=(t,a)=>{switch(t){case"datetime":return new Date(a).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(a).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(a).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return a=h(a)}},p=(t,a,e,i,o)=>{e.querySelector("[name=show]")||e.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),e.querySelector("[name=page]")||e.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),i.addEventListener("update-show",b=>{if(e.querySelector("[name=show]").value!=b.detail.show){e.querySelector("[name=show]").value=b.detail.show;const l=new CustomEvent("update-show",{detail:{show:b.detail.show}});t.dispatchEvent(l),c(t,i),o()}}),i.addEventListener("update-page",b=>{if(e.querySelector("[name=page]").value!=b.detail.page){e.querySelector("[name=page]").value=b.detail.page;const l=new CustomEvent("update-page",{detail:{page:b.detail.page}});if(t.dispatchEvent(l),c(t,i),o(),!t.hasAttribute("data-no-scroll")){const r=a.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:r,behavior:"smooth"})}}})},g=(t,a)=>{let e=document.createElement("form");return t.hasAttribute("data-filterby")?e=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?e=t.closest("form"):t.querySelector("form")?e=t.querySelector("form"):a.parentNode.insertBefore(e,a.nextSibling),t.hasAttribute("data-ajax")&&e.setAttribute("data-ajax",t.getAttribute("data-ajax")),e},f=(t,a,e,i)=>{const o=t.shadowRoot.querySelector(".table__wrapper");t.hasAttribute("data-total")||t.setAttribute("data-total",t.querySelectorAll("tbody tr").length),t.hasAttribute("data-page")||t.setAttribute("data-page",1),t.hasAttribute("data-show")||t.setAttribute("data-show",15),t.hasAttribute("data-increment")||t.setAttribute("data-increment",t.getAttribute("data-show")),x(t,i),v(a),k(t,a),t.classList.contains("mh-sm")&&o.classList.add("mh-sm"),t.classList.contains("mh-md")&&o.classList.add("mh-md"),t.classList.contains("mh-lg")&&o.classList.add("mh-lg"),t.classList.contains("table--cta")&&(A(t,a),j(t,a)),w(t)},w=t=>{Array.from(t.querySelectorAll("tr[data-highlight]")).forEach(a=>{a.insertAdjacentHTML("afterend",`<tr role="presentation" class="tr--highlight">
|
|
5
5
|
<td colspan="100%"><i class="fa-solid fa-star"></i> ${a.getAttribute("data-highlight")}</td>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.7.1--
|
|
2
|
+
* iamKey v7.7.1--beta5
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const v=function(t){return typeof t!="string"?!1:!isNaN(t)&&!isNaN(parseFloat(t))},k=(t,a)=>String(t).padStart(a,"0"),A=t=>t.charAt(0).toUpperCase()+t.slice(1),u=(t=1)=>Math.floor(Math.random()*Date.now()*(t+1)),j=(t,a)=>{switch(t){case"datetime":return new Date(a).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(a).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(a).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return a=A(a)}},_=(t,a)=>{let i=document.createElement("form");return t.hasAttribute("data-filterby")?i=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?i=t.closest("form"):t.querySelector("form")?i=t.querySelector("form"):a.parentNode.insertBefore(i,a.nextSibling),t.hasAttribute("data-ajax")&&i.setAttribute("data-ajax",t.getAttribute("data-ajax")),i},h=(t,a,i,e)=>{const b=t.shadowRoot.querySelector(".table__wrapper");t.hasAttribute("data-total")||t.setAttribute("data-total",t.querySelectorAll("tbody tr").length),t.hasAttribute("data-page")||t.setAttribute("data-page",1),t.hasAttribute("data-show")||t.setAttribute("data-show",15),t.hasAttribute("data-increment")||t.setAttribute("data-increment",t.getAttribute("data-show")),q(t,e),f(a),L(t,a),t.classList.contains("mh-sm")&&b.classList.add("mh-sm"),t.classList.contains("mh-md")&&b.classList.add("mh-md"),t.classList.contains("mh-lg")&&b.classList.add("mh-lg"),t.classList.contains("table--cta")&&(E(t,a),T(t,a)),S(t)},S=t=>{Array.from(t.querySelectorAll("tr[data-highlight]")).forEach(a=>{a.insertAdjacentHTML("afterend",`<tr role="presentation" class="tr--highlight">
|
|
5
5
|
<td colspan="100%"><i class="fa-solid fa-star"></i> ${a.getAttribute("data-highlight")}</td>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.7.1--
|
|
2
|
+
* iamKey v7.7.1--beta5
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const g=t=>t.charAt(0).toUpperCase()+t.slice(1),u=(t=1)=>Math.floor(Math.random()*Date.now()*(t+1)),f=(t,a)=>{switch(t){case"datetime":return new Date(a).toLocaleDateString("en-gb",{weekday:"short",year:"2-digit",month:"long",day:"numeric"})+" "+new Date(a).toLocaleTimeString("en-gb",{hour:"2-digit",minute:"2-digit"});case"date":return new Date(a).toLocaleDateString("en-gb",{day:"numeric",month:"long",year:"2-digit"});case"capitalise":return a=g(a)}},x=(t,a,i,e,b)=>{i.querySelector("[name=show]")||i.insertAdjacentHTML("beforeend",`<input name="show" type="hidden" value="${t.getAttribute("data-show")}" />`),i.querySelector("[name=page]")||i.insertAdjacentHTML("beforeend",`<input name="page" type="hidden" value="${t.getAttribute("data-page")}" />`),e.addEventListener("update-show",m=>{if(i.querySelector("[name=show]").value!=m.detail.show){i.querySelector("[name=show]").value=m.detail.show;const s=new CustomEvent("update-show",{detail:{show:m.detail.show}});t.dispatchEvent(s),h(t,e),b()}}),e.addEventListener("update-page",m=>{if(i.querySelector("[name=page]").value!=m.detail.page){i.querySelector("[name=page]").value=m.detail.page;const s=new CustomEvent("update-page",{detail:{page:m.detail.page}});if(t.dispatchEvent(s),h(t,e),b(),!t.hasAttribute("data-no-scroll")){const l=a.getBoundingClientRect().top+window.pageYOffset+-250;window.scrollTo({top:l,behavior:"smooth"})}}})},y=(t,a)=>{let i=document.createElement("form");return t.hasAttribute("data-filterby")?i=document.querySelector(`#${t.getAttribute("data-filterby")}`):t.closest("form")?i=t.closest("form"):t.querySelector("form")?i=t.querySelector("form"):a.parentNode.insertBefore(i,a.nextSibling),t.hasAttribute("data-ajax")&&i.setAttribute("data-ajax",t.getAttribute("data-ajax")),i},w=(t,a,i,e)=>{const b=t.shadowRoot.querySelector(".table__wrapper");t.hasAttribute("data-total")||t.setAttribute("data-total",t.querySelectorAll("tbody tr").length),t.hasAttribute("data-page")||t.setAttribute("data-page",1),t.hasAttribute("data-show")||t.setAttribute("data-show",15),t.hasAttribute("data-increment")||t.setAttribute("data-increment",t.getAttribute("data-show")),k(t,e),A(a),j(t,a),t.classList.contains("mh-sm")&&b.classList.add("mh-sm"),t.classList.contains("mh-md")&&b.classList.add("mh-md"),t.classList.contains("mh-lg")&&b.classList.add("mh-lg"),t.classList.contains("table--cta")&&(_(t,a),S(t,a)),v(t)},v=t=>{Array.from(t.querySelectorAll("tr[data-highlight]")).forEach(a=>{a.insertAdjacentHTML("afterend",`<tr role="presentation" class="tr--highlight">
|
|
5
5
|
<td colspan="100%"><i class="fa-solid fa-star"></i> ${a.getAttribute("data-highlight")}</td>
|
|
@@ -38,6 +38,19 @@ class iamTabs extends HTMLElement {
|
|
|
38
38
|
const classList = this.classList.toString().replace('container', '');
|
|
39
39
|
this.shadowRoot.querySelector('.tabs').setAttribute('class', `tabs ${classList}`);
|
|
40
40
|
tabs(this);
|
|
41
|
+
// #region Allow togle tags to control the tabs
|
|
42
|
+
Array.from(this.querySelectorAll('details[id]')).forEach((details) => {
|
|
43
|
+
const detailsID = details.getAttribute('id');
|
|
44
|
+
Array.from(document.querySelectorAll(`[command="show-tab"][commandfor="${detailsID}"]`)).forEach((radioField) => {
|
|
45
|
+
radioField.closest('label').addEventListener('click', (e) => {
|
|
46
|
+
details.setAttribute('open', 'open');
|
|
47
|
+
Array.from(document.querySelectorAll(`input[type="radio"][command="show-tab"][commandfor="${detailsID}"]`)).forEach((input) => {
|
|
48
|
+
input.checked = true;
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
// #endregion
|
|
41
54
|
}
|
|
42
55
|
}
|
|
43
56
|
export default iamTabs;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.7.1--
|
|
2
|
+
* iamKey v7.7.1--beta5
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
|
-
*/const k=(t,
|
|
4
|
+
*/const k=(t,o,i,a)=>{const r=Math.tan(.375*Math.PI),s=window.innerWidth||document.body.clientWidth,n=Math.max(1,Math.floor(.01*s)),c=i-t,e=a-o,d=Math.abs(c/e),l=Math.abs(e/c);if(Math.abs(c)>n||Math.abs(e)>n){if(l<=r)return c<0?"left":"right";if(d<=r)return e<0?"top":"bottom"}else return"tap"},w=function(t){const o=t.querySelectorAll(":scope > details, :scope > a");let i=t.querySelector(":scope > .tabs__links"),a=t.querySelector(":scope .tabs__dropdown");if(t.shadowRoot&&t.shadowRoot.querySelector(".tabs__links")&&(i=t.shadowRoot.querySelector(".tabs__links")),!i){i=document.createElement("div"),i.classList.add("tabs__links");const s=document.createElement("div");s.classList.add("tabs__links__wrapper"),s.prepend(i),t.prepend(s)}a||(a=document.createElement("select"),a.classList.add("tabs__dropdown"),t.prepend(a));let r=0;o.forEach(s=>{let n=document.createElement("button");const c=document.createElement("option");if(s.matches("details")){const e=s.querySelector(":scope > summary"),d=e.classList.contains("disabled");e.classList.add("visually-hidden"),s.hasAttribute("id")&&n.setAttribute("data-id",`${s.getAttribute("id")}`),s.hasAttribute("open")&&n.setAttribute("aria-pressed",!0),n.innerHTML=`${e.innerText}`,n.classList.add("link"),n.setAttribute("data-index",r),n.setAttribute("part","tab-link"),c.innerHTML=`${e.innerText}`,c.value=e.innerText.replace(/\s+/g,"-").toLowerCase(),c.setAttribute("data-index",r),s.setAttribute("tabindex","-1"),d&&n.classList.add("disabled"),r++}else s.matches("a")&&(n=s);n.classList.add("link"),i.appendChild(n),a.appendChild(c)})},y=function(t){const o=t.querySelectorAll(":scope > details"),i=t.querySelectorAll(":scope > details > summary");let a=t.querySelector(":scope .tabs__links"),r=t.querySelectorAll(":scope .tabs__links > button");const s=t.querySelector(":scope .tabs__dropdown");let n=t.querySelector(":scope .tabs__next"),c;if(window.isClicked=!1,window.isScrolling=!1,t.shadowRoot&&(r=t.shadowRoot.querySelectorAll(".tabs__links > button"),a=t.shadowRoot.querySelector(".tabs__links"),n=t.shadowRoot.querySelector(".tabs__next")),r.forEach(e=>{e.addEventListener("click",d=>{if(d.preventDefault(),window.isClicked=!0,e.classList.contains("disabled"))return!1;r.forEach(l=>{const m=l==e;l.setAttribute("aria-pressed",m)}),a.scroll({top:0,left:e.offsetLeft,behavior:"smooth"}),g(o,e),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openTab",tabTitle:e.textContent}),e.matches(":last-child")?n?.setAttribute("disabled","disabled"):n?.removeAttribute("disabled")}),_(o,s)}),a.addEventListener("scrollend",()=>{clearTimeout(c),c=setTimeout(function(){let e=r[0],d=Math.abs(e.getBoundingClientRect().left);if(r.forEach(l=>{Math.abs(l.getBoundingClientRect().left)<d&&(d=Math.abs(l.getBoundingClientRect().left),e=l)}),window.isClicked)return window.isClicked=!1,!1;e.click(),e.focus()},500)}),i.forEach((e,d)=>{e.addEventListener("click",l=>{l.preventDefault(),r[d].click()})}),n?.addEventListener("click",e=>{e.preventDefault();const l=a.querySelector('[aria-pressed="true"]').nextSibling;l&&l.click()}),t.classList.contains("tabs--guided")){let e=0,d=0,l=0,m=0;o.forEach(p=>{p.addEventListener("touchstart",b=>{b.stopPropagation(),e=b.changedTouches[0].screenX,d=b.changedTouches[0].screenY}),p.addEventListener("touchend",b=>{b.stopPropagation(),l=b.changedTouches[0].screenX,m=b.changedTouches[0].screenY;const v=k(e,d,l,m),h=a.querySelector('[aria-pressed="true"]'),u=h.nextSibling,f=h.previousSibling;switch(v){case"left":u&&u.click();break;case"right":f&&f.click();break}})})}},g=function(t,o){t.forEach((i,a)=>{const r=o.getAttribute("data-index")==a;r?i.setAttribute("open",r):i.removeAttribute("open")})},_=function(t,o){o.addEventListener("change",i=>{i.preventDefault();const a=o.options[o.selectedIndex];g(t,a),window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"openTab",tabTitle:a.innerText})})},x=function(t){if(!t.querySelector(":scope > details"))return!1;const o=t.querySelectorAll(":scope > details"),i=t.shadowRoot.querySelectorAll(".tabs__links > button");location.hash&&t.shadowRoot.querySelector(`.tabs__links [data-id="${location.hash.replace("#","")}"]`)?(t.shadowRoot.querySelector(`[data-id="${location.hash.replace("#","")}"]`).setAttribute("aria-pressed",!0),t.querySelector(`details[id="${location.hash.replace("#","")}"]`).setAttribute("open",!0)):t.querySelector("details[open]")||(o[0].setAttribute("open",!0),i[0].setAttribute("aria-pressed",!0))},z=function(t){w(t),y(t),x(t)};window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:"tabs"});class A extends HTMLElement{constructor(){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>
|
|
6
6
|
|
|
7
|
-
@layer elements{a{color:var(--link-color);text-decoration:underline}a:hover{color:var(--link-hover-color);text-decoration:none}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}a{color:var(--colour-link)}a:is(:hover,:focus,.hover,:focus-within){color:var(--colour-hover)}a:is(:active,.active){color:var(--colour-active)}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))),.link{background-color:rgba(0,0,0,0);text-decoration:none;display:inline-block;border:none;color:var(--colour-link);margin:0 1.5rem 1.5rem 0;padding:0;font-size:1.125rem;line-height:1.5rem;min-height:1.5rem;position:relative;font-weight:bold}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))):last-child,.link:last-child{margin-right:0}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))):not(.text-decoration-none):after,.link:not(.text-decoration-none):after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))):not(.text-decoration-none).text-underline-plain:after,.link:not(.text-decoration-none).text-underline-plain:after{background:currentColor}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))) [class*=fa-],.link [class*=fa-]{margin-left:0;margin-right:.5rem}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))) [class*=fa-]:not(:first-child),.link [class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))):not([disabled]):is(:hover,:focus,.hover,:active,.active,:focus-within):after,.link:not([disabled]):is(:hover,:focus,.hover,:active,.active,:focus-within):after{width:60%}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card)))[disabled],.link[disabled]{opacity:.4;cursor:not-allowed}:where(p,ul,ol,dd,.body) a:not(.btn):not(.link),table:not(.table--email) td a:not(.btn):not(.link){min-height:none;display:inline;margin:0;text-decoration:underline;text-underline-offset:.25rem;text-decoration-thickness:.125rem;font-size:inherit}:where(p,ul,ol,dd,.body) a:not(.btn):not(.link):after,table:not(.table--email) td a:not(.btn):not(.link):after{display:none}:where(p,ul,ol,dd,.body) a:not(.btn):not(.link) [class*=fa-],table:not(.table--email) td a:not(.btn):not(.link) [class*=fa-]{margin:0;display:inline;--fa-display: inline}:where(p,ul,ol,dd,.body) a:not(.btn):not(.link) [class*=fa-]:after,table:not(.table--email) td a:not(.btn):not(.link) [class*=fa-]:after{content:"\xA0"}:where(p,ul,ol,dd,.body) a:not(.btn):not(.link):not([disabled]):is(:hover,:focus,.hover,:focus-within),table:not(.table--email) td a:not(.btn):not(.link):not([disabled]):is(:hover,:focus,.hover,:focus-within){color:var(--colour-hover);text-decoration:none}:where(p,ul,ol,dd,.body) a:not(.btn):not(.link):not([disabled]):is(:active,.active),table:not(.table--email) td a:not(.btn):not(.link):not([disabled]):is(:active,.active){color:var(--colour-active);text-decoration:none;filter:brightness(85%)}:is(a,button,label):has(.card,iam-card){border:none;background:none;padding:0;display:flex;margin-bottom:1.5rem;outline:none !important;text-decoration:none}:is(a,button,label):has(.card,iam-card):before{display:none}:is(a,button,label):has(.card,iam-card):not([class*=col]){margin:0 0 1.5rem 0}:is(a,button,label):has(.card,iam-card):not(.d-inline-block):not([class*=col]){width:100%}:is(a,button,label):has(.card,iam-card) iam-card{width:100%}}:is(.youtube-link,.vimeo-link){position:relative}:is(.youtube-link,.vimeo-link):before{content:"";display:block;background-color:var(--video-btn-colour, var(--colour-success));height:3rem;width:3rem;position:absolute;top:calc(50% - 1.5rem);left:calc(50% - 1.5rem);z-index:2;border-radius:1.5rem}:is(.youtube-link,.vimeo-link):after{--icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'><path d='M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80L0 432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z'/></svg>");content:"";display:block;height:1rem;width:1rem;position:absolute;top:calc(50% - .5rem);left:calc(50% - .4rem);z-index:5;background:var(--colour-primary-theme);mask-image:var(--icon);mask-size:80%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon);-webkit-mask-size:80%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%}:is(.youtube-link,.vimeo-link):is(:hover,:focus){--video-btn-colour: var(--colour-canvas)}:is(.youtube-link,.vimeo-link):is(:active){--video-btn-colour: color-mix(in oklab, var(--colour-success), #000000 20%) !important}iam-collapsible-side>*{padding-left:1.5rem}@media screen and (min-width: 36em){iam-collapsible-side>*{padding-left:2.5rem}}@media screen and (min-width: 62em){iam-collapsible-side>*{padding-left:var(--container-padding-x)}}iam-collapsible-side hr{border-bottom:2px solid var(--colour-border) !important;margin-right:-2.5rem !important}.vertical-tabs [class*=link],iam-collapsible-side [class*=link]{display:block !important;line-height:1.25rem !important;padding:1rem 1.5rem 1rem 1.5rem !important;margin:0 !important;flex-shrink:0;font-size:1rem !important;font-weight:normal !important;text-decoration:none !important;border-bottom:2px solid var(--colour-border) !important;border-right:2px solid var(--colour-border) !important;margin-right:-2.5rem !important;z-index:2}.vertical-tabs [class*=link]::after,iam-collapsible-side [class*=link]::after{display:none !important}.vertical-tabs [class*=link] i,iam-collapsible-side [class*=link] i{margin-right:.5rem !important}@media screen and (min-width: 36em){.vertical-tabs [class*=link],iam-collapsible-side [class*=link]{padding-left:1.5rem !important}}@media screen and (min-width: 62em){.vertical-tabs [class*=link],iam-collapsible-side [class*=link]{padding-left:var(--container-padding-x) !important}}.vertical-tabs a:hover,.vertical-tabs a:focus,.vertical-tabs a[aria-expanded],iam-collapsible-side a:hover,iam-collapsible-side a:focus,iam-collapsible-side a[aria-expanded]{background-color:var(--colour-activeLink) !important}.vertical-tabs [class*=active],iam-collapsible-side [class*=active]{background-color:var(--colour-activeLink) !important;border-right-color:var(--colour-activeLinkBorder) !important;border-right-width:3px !important}.vertical-tabs .parent,iam-collapsible-side .parent{margin:0 !important;padding:0 !important;list-style:none}.vertical-tabs .parent li:first-of-type,iam-collapsible-side .parent li:first-of-type{cursor:pointer}.vertical-tabs .parent li:first-of-type a,iam-collapsible-side .parent li:first-of-type a{padding-right:2.5rem !important}.vertical-tabs .parent li:first-of-type a::before,iam-collapsible-side .parent li:first-of-type a::before{position:absolute;display:block;content:"\uF055";font-family:"Font Awesome 7 Pro";right:20px;font-weight:300}.vertical-tabs .parent li:not(:first-of-type),iam-collapsible-side .parent li:not(:first-of-type){display:none}.vertical-tabs .parent li:not(:first-of-type) a,iam-collapsible-side .parent li:not(:first-of-type) a{background-color:var(--colour-light) !important;padding-left:5.625rem !important}.vertical-tabs .parent.reveal li:first-of-type a::before,iam-collapsible-side .parent.reveal li:first-of-type a::before{content:"\uF056";font-weight:bold}.vertical-tabs .parent.reveal li:not(:first-of-type),iam-collapsible-side .parent.reveal li:not(:first-of-type){display:block}@media screen and (min-width: 36em){.vertical-tabs .parent li:not(:first-of-type) a,iam-collapsible-side .parent li:not(:first-of-type) a{padding-left:5.625rem !important}}@layer elements{*,*::before,*::after{box-sizing:border-box}button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[role=button]{cursor:pointer}button:focus:not(:focus-visible){outline:0}:is(button,[type=button],[type=reset],[type=submit]){-webkit-appearance:button}:is(button,[type=button],[type=reset],[type=submit]):not(:disabled){cursor:pointer}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 2px;--btn-font-size: 1.125rem;--btn-line-height: 1.25rem;display:inline-block;font-weight:bold;text-align:left;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;color:var(--colour-btn);font-size:var(--btn-font-size);line-height:var(--btn-line-height);padding:var(--btn-padding-block) var(--btn-padding-inline);border-radius:1.5rem;margin-bottom:var(--btn-margin);background:none;transition:border .5s,background .5s,color .5s;height:auto;max-width:fit-content;appearance:none;white-space:nowrap}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}.btn:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}.btn:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}.btn:not(.border-0){background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border)}.btn:not(:last-child){margin-right:var(--btn-margin)}a:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn,.btn:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){outline:0;text-decoration:none;background:var(--colour-btn-bg-hover);color:var(--colour-btn-hover);border-radius:1.5rem}a:is(:active,.active):not([disabled]) .btn,.btn:is(:active,.active):not([disabled]){filter:brightness(85%);transition:background .1s,color .1s;color:var(--colour-btn);border-radius:1.5rem}a:disabled .btn,.btn:disabled,[disabled] .btn,.btn[disabled]{opacity:.4;cursor:not-allowed}.btn.colour-success{--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.colour-success:before,.btn.colour-success:is(:hover,:focus,.hover):not([disabled],:active,.active):before{content:"\uF00C";font-family:"Font Awesome 7 Pro";margin-right:1rem;font-style:inherit;width:1rem;display:inline-block;height:var(--btn-line-height);vertical-align:bottom}.btn.btn-sm{--btn-padding-block: 0.5rem;--btn-padding-inline: 2rem;--btn-margin: 0.5rem;--btn-font-size: 1rem}.btn[class*=fa-]:before{content:var(--fa);font-family:"Font Awesome 7 Pro"}.btn.btn[class*=fa-after]{padding-right:4rem}.btn.btn[class*=fa-after]:before{margin-right:0;margin-right:.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}.btn:not(.btn-compact):before{margin-right:1rem}.btn i[class*=fa-]{--fa-width: 1em;font-family:"Font Awesome 7 Pro";margin-right:1rem;line-height:1em;font-style:inherit}.btn i[class*=fa-]:not(:first-child){margin-left:1rem;margin-right:0}.btn.btn--prompt:after{content:"";height:var(--btn-line-height);width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn--prompt:after,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active):after{margin-left:1.5rem;margin-right:-0.5rem}.btn-filter:after{content:"\uF1DE";display:inline-block;margin-left:1em;margin-bottom:-0.15em;height:1em;width:1em;z-index:var(--index-focus);color:currentColor;font-weight:300;font-family:"Font Awesome 7 Pro"}}@layer elements{.btn-secondary{color:var(--colour-btn-secondary)}.btn-secondary:not(.border-0){background:var(--colour-btn-secondary-bg);border:2px solid var(--colour-btn-secondary-border)}a:is(:hover,:focus,.hover,:active,.active):not([disabled]) .btn-secondary,.btn-secondary:is(:hover,:focus,.hover,:focus-within,:active,.active):not([disabled]){background:var(--colour-btn-secondary-bg-hover);color:var(--colour-btn-secondary-hover)}}@layer elements{.btn.btn-tertiary{background-color:rgba(0,0,0,0);border:none;color:var(--colour-link);margin:0 var(--btn-margin) var(--btn-margin) 0;padding:0;font-size:1.125rem;font-weight:normal;line-height:1.5rem;min-height:1.5rem;position:relative}.btn.btn-tertiary:after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}.btn.btn-tertiary.text-decoration-none:after{width:0%}.btn.btn-tertiary [class*=fa-]{margin-left:0;margin-right:.5rem}.btn.btn-tertiary [class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}.btn.btn-tertiary:is(:hover,:focus,.hover,:focus-within):not([disabled],:disabled,:active,.active):after{width:60% !important}.btn.btn-tertiary:is(:active,.active):not([disabled],:disabled){color:var(--colour-active)}}@layer elements{.btn-action{--btn-border-width: 1px;--btn-padding-block: 0.3125rem /* 5px */;--btn-padding-inline: 0.3125rem /* 5px */;--btn-margin: 0.5rem;border-radius:.25rem !important;font-weight:400 !important;font-size:1rem;line-height:1.25rem;&:not(.btn-primary){color:var(--colour-heading)}&:not(.btn-primary):not(.border-0){background-color:var(--colour-canvas-2);border:var(--btn-border-width) solid var(--colour-muted)}&.btn[class*=fa-]:before{content:var(--fa);margin-right:.375rem}a:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) &,&:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){background:var(--colour-btn-action-hover-bg)}.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) &,&.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){filter:brightness(90%);background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border);color:var(--colour-btn)}a:is(:active,.active):not([disabled]):not(.btn-primary) &,&:is(:active,.active):not([disabled]):not(.btn-primary){filter:brightness(85%);transition:all .1s;color:var(--colour-heading)}}.btn-action:not(.btn-compact).fa-compact-only:before{display:none !important}}@layer elements{.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:.5rem;text-align:center;width:var(--compact-size);min-width:var(--compact-size);max-width:var(--compact-size);height:var(--compact-size) !important;min-height:var(--compact-size) !important;max-height:var(--compact-size) !important;align-content:center;line-height:1 !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1rem;&:not(:last-child){margin-right:.5rem}&:before{content:var(--fa);position:absolute;display:block;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - .25rem);font-weight:900}[class*=fa-]:before{line-height:calc(var(--compact-size) - .25rem);@container style(--theme: dark){color:white}}&.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}&.btn-action{--compact-size: 2rem;font-size:1rem;&:before{font-size:1em;font-weight:400}}&.btn-secondary{--colour-btn-bg: transparent;--colour-btn-border: transparent;border-color:transparent;&:not([class*=colour-]){--colour: var(--colour-light)}}&.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse){background-color:var(--colour);color:var(--colour-primary-theme);border-color:var(--colour);&:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}}&[data-number]{position:relative}&[data-number]:after{content:attr(data-number);position:absolute;top:.5em;z-index:99;background:var(--colour-danger);height:1.5em;width:1.5em;border-radius:50%;text-indent:0;left:50%;font-size:.5em;line-height:1.5em;text-align:center;color:white;letter-spacing:-0.1em;font-family:arial,sans-serif}}.btn-compact{&:is(.fa-left,.fa-chevron-left,.fa-right,.fa-chevron-right,.fa-up,.fa-chevron-up,.fa-down,.fa-chevron-down,.fa-plus,.fa-bars,.fa-edit,.fa-envelope,.fa-calendar){--iso-display: block;--iso-font-size: 1.5rem;--iso-border-radius: 50%;--iso-text-indent: -500px}}@container style(--font-body){.btn-compact{font-size:var(--iso-font-size, 0.6rem) !important;text-indent:var(--iso-text-indent, 0px);white-space:initial;&:not(.btn-action){border-radius:var(--iso-border-radius, 0.25rem) !important}&:before{display:var(--iso-display, none);font-family:monospace !important;content:var(--iso) !important}}}@container style(--fa-font-regular){.btn-compact{text-indent:-500px;font-size:1rem !important;&:not(.btn-action){border-radius:50% !important}&:before{font-family:"Font Awesome 7 Pro" !important;content:var(--fa) !important;display:block}}}}@layer elements{.btn[popovertarget]{position:relative;anchor-name:--button2}.btn[popovertarget]>.fa-chevron-down{display:none}.btn[popovertarget]:not(:has(i)):after{content:"";display:inline-block;margin-right:.25em;margin-left:1em;height:.8em;width:.8em;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;transform:rotate(90deg)}.btn[popovertarget][aria-pressed]:after{transform:rotate(270deg)}.btn:has(select){position:relative;padding:0;max-width:fit-content;min-width:fit-content;width:fit-content}.btn:has(select) select{all:unset !important;padding:var(--btn-padding-block) var(--btn-padding-inline) !important;padding-right:calc(var(--btn-padding-inline) + 2rem) !important;border-radius:1.5rem !important;appearance:none !important;background:none !important;border:none !important;color:currentColor !important;display:block;outline:none;font-weight:inherit !important;font-size:var(--btn-font-size) !important;line-height:var(--btn-line-height) !important;field-sizing:content !important;appearance:base-select !important}.btn:has(select) select option{font-size:1rem;text-align:left;color:var(--colour-primary);padding-inline:var(--menu-item-padding, 0.5rem);padding-block:var(--menu-item-padding, 0.5rem) !important;border-radius:.25rem !important}.btn:has(select) select option:not(:last-child){margin:var(--menu-item-margin, 0 0 0.25rem 0) !important}.btn:has(select) select option:hover{background:var(--colour-light) !important}.btn:has(select) select option:after{content:attr(data-email)}.btn:has(select) select::picker-icon{display:none}.btn:has(select) select::picker(select){appearance:base-select;background:var(--menu-bg, canvas);margin-block:var(--menu-margin, 0.25rem);padding:var(--menu-padding, 0.5rem) !important;border:none !important;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0,0,0,.1);font-size:1rem}.btn:has(select) 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}.btn:has(select) select option::checkmark{display:none}.btn:has(select) select selectedcontent span{display:none}.btn:has(select):after{position:absolute;top:.625rem;right:1.5rem;content:"";height:1.5rem;width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem;transform:rotate(90deg);pointer-events:none}.btn-action:has(select){padding-block:0;padding-right:2rem;font-size:1em}.btn-action:has(select) select{margin:0rem 0rem !important;padding-right:2rem !important;margin-right:-2rem !important;font-size:1rem !important}.btn-action:has(select):after{top:.2rem;right:.5rem}}@layer elements{.btn__group{display:flex;flex-direction:column;row-gap:var(--gap);reading-flow:source-order;margin-bottom:1.5rem;.btn-compact{max-width:fit-content;margin-inline:auto}}:where(.btn__group,iam-modal){reading-flow:source-order;.btn{margin-inline-end:0;width:100%;max-width:100%;text-align:center;white-space:normal;margin:0;&:not(:last-child){margin-right:0}}.btn-tertiary{max-width:fit-content;margin-block:0 !important;margin-inline:auto !important;order:3;reading-order:3}.btn-secondary{order:2;reading-order:2}.btn-primary{order:1;reading-order:1;margin:0;&:not(:last-child){margin:0}}}:is(iam-form,form) .btn__group{padding-top:1rem}@container (min-width: 36em){.btn__group{flex-direction:row;row-gap:0;gap:var(--gap);flex-wrap:wrap;.btn-tertiary{max-width:fit-content;margin-inline:0 !important;margin-block:auto;order:1}.btn-secondary{order:2}.btn-primary{order:3}.btn-compact{margin-inline:0;margin-block:auto}}:where(iam-modal,.btn__group){.btn{max-width:fit-content;white-space:nowrap;margin-block:auto}}.btn__group{.btn-tertiary{reading-order:1}.btn-secondary{reading-order:2}.btn-primary{reading-order:3}}iam-modal{.btn-tertiary{reading-order:3;order:1}.btn-secondary{order:2;reading-order:2}.btn-primary{order:3;reading-order:1}}.btn__group.text-end{justify-content:flex-end}:is(iam-form,form) .btn__group{justify-content:flex-end;padding-top:3rem}iam-modal .btn__group:last-child .btn,dialog .btn__group:last-child .btn{margin-bottom:0}}}*:not(main):has(>iam-tabs){container-type:inline-size}iam-tabs{--colour-tab-underline: var(--colour-info)}iam-tabs details:not([open]){padding-bottom:0}iam-tabs .tabs__dropdown{display:none;width:fit-content}iam-tabs:is(.tabs--dropdown) .tabs__dropdown{display:block}iam-tabs:is(.tabs--dropdown)::part(wrapper){display:none}@container (min-width: 62em){iam-tabs:is(.tabs--dropdown) .tabs__dropdown{display:none}iam-tabs:is(.tabs--dropdown)::part(wrapper){display:block}}iam-tabs::part(next-button){display:none}@container (width > 62em){iam-tabs.tabs--guided::part(next-button){position:absolute;top:9.375rem;right:0;display:block}}iam-tabs.tabs--guided::part(next-button):not(:hover){background:var(--colour-success)}.tabs:not(.admin-panel){position:relative}.tabs:not(.admin-panel) .tabs__links__wrapper{position:relative;margin:0 auto 2rem}.tabs:not(.admin-panel) .tabs__links__wrapper:after{content:"";left:50%;position:relative;height:1px;width:100vw;background-color:var(--colour-border);transform:translate(-50%, 0);display:block;clear:both}.tabs.admin-panel .tabs__links__wrapper:after{display:none}.tabs:not(.admin-panel) .tabs__links{-webkit-mask-image:linear-gradient(to right, rgb(0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%);mask-image:linear-gradient(to right, rgb(0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%)}.tabs__links{scroll-snap-type:x mandatory;padding-bottom:3px;position:relative;display:flex;flex-wrap:nowrap;width:auto;margin:0 -1.5rem;overflow-y:clip;overflow-x:auto}.tabs__links::-webkit-scrollbar{display:none}.tabs__links .link{white-space:nowrap;scroll-snap-align:start;scroll-margin-left:var(--container-padding)}.tabs__links .link:not(.text-decoration-none):not(.btn){--is-current: 0;font-weight:bold;font-family:var(--font-heading);font-size:1.125rem;cursor:pointer;margin:0;padding:1.5rem 1.5rem .5rem 1.5rem;display:inline-block}.tabs__links .link:not(.text-decoration-none):not(.btn).disabled{cursor:not-allowed;opacity:.4}.tabs__links .link:not(.text-decoration-none):not(.btn):last-child{margin-inline-end:0}.tabs__links .link:not(.text-decoration-none):not(.btn):after{position:absolute;content:"";bottom:0;left:50%;height:3px;width:100%;transform:translate(-50%, 0) scale(0, 0);background:var(--colour-tab-underline, var(--colour-info));transition:transform .4s}.tabs__links .link:not(.text-decoration-none):not(.btn):not(.disabled):hover:after,.tabs__links .link:not(.text-decoration-none):not(.btn):not(.disabled):focus:after,.tabs__links .link:not(.text-decoration-none):not(.btn):not(.disabled).focus:after{transform:translate(-50%, 0) scale(0.6, 1)}.tabs__links .link:not(.text-decoration-none):not(.btn):not(.disabled):is([aria-pressed=true],:active,.current,.active):after{transform:translate(-50%, 0) scale(1, 1)}.tabs__links .link:not(.text-decoration-none):not(.btn):is([aria-pressed=true],.current){pointer-events:none;outline:var(--contrast-outline-width, 0px) solid var(--colour-primary-theme) !important}@media(min-width: 576px){.tabs__links .link:not(.text-decoration-none):not(.btn){padding:2rem 2rem .5rem 2rem}.tabs__links__wrapper{margin:0 auto 2.5rem}}.admin-panel :is(.admin-panel__links,.tabs__links){padding:0;margin:calc(var(--padding-top)*-1) calc(var(--padding-x)*-1) var(--padding-top) calc(var(--padding-x)*-1);border-top-left-radius:.5rem;border-top-right-radius:.5rem;display:flex;flex-direction:column;border-bottom:1px solid var(--colour-border);overflow:hidden;outline:var(--contrast-outline-width, 0px) solid var(--colour-primary)}.admin-panel :is(.admin-panel__links,.tabs__links):after{display:none}@media screen and (min-width: 36em){.admin-panel :is(.admin-panel__links,.tabs__links){flex-direction:row}}.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn){margin:0;padding:1rem var(--padding-x);width:100%;position:relative;text-align:left;flex-grow:1;--gradient-direction: -90deg;background-color:var(--colour-success)}.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn):not([class*=bg-]){background-image:linear-gradient(var(--gradient-direction), var(--colour-info) 0, transparent 100%)}.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn):is(.current,[aria-pressed=true]){color:var(--colour-primary-theme)}.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn):not(.current,[aria-pressed=true]){background:var(--colour-canvas-2) !important}.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn):after{display:none}@media screen and (min-width: 36em){.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn){margin:0}.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn):not(:first-child){border-left:1px solid var(--colour-border) !important}}.admin-panel :is(.admin-panel__links,.tabs__links) .link:is(.current,[aria-pressed=true]){pointer-events:none}@media screen and (min-width: 36em){:host(.tabs--inline) .tabs__links{margin:0;justify-content:center}:host(.tabs--inline) .tabs__links__wrapper:after{width:100%}}:host{background:rgba(0,0,0,0)}/*# sourceMappingURL=assets/css/components/tabs.component.css.map */
|
|
7
|
+
@layer elements{a{color:var(--link-color);text-decoration:underline}a:hover{color:var(--link-hover-color);text-decoration:none}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}a{color:var(--colour-link)}a:is(:hover,:focus,.hover,:focus-within){color:var(--colour-hover)}a:is(:active,.active){color:var(--colour-active)}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))),.link{background-color:rgba(0,0,0,0);text-decoration:none;display:inline-block;border:none;color:var(--colour-link);margin:0 1.5rem 1.5rem 0;padding:0;font-size:1.125rem;line-height:1.5rem;min-height:1.5rem;position:relative;font-weight:bold}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))):last-child,.link:last-child{margin-right:0}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))):not(.text-decoration-none):after,.link:not(.text-decoration-none):after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))):not(.text-decoration-none).text-underline-plain:after,.link:not(.text-decoration-none).text-underline-plain:after{background:currentColor}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))) [class*=fa-],.link [class*=fa-]{margin-left:0;margin-right:.5rem}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))) [class*=fa-]:not(:first-child),.link [class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card))):not([disabled]):is(:hover,:focus,.hover,:active,.active,:focus-within):after,.link:not([disabled]):is(:hover,:focus,.hover,:active,.active,:focus-within):after{width:60%}a:where(:not(.btn):not(.brand):not(:has(.card)):not(:has(iam-card)))[disabled],.link[disabled]{opacity:.4;cursor:not-allowed}:where(p,ul,ol,dd,.body) a:not(.btn):not(.link),table:not(.table--email) td a:not(.btn):not(.link){min-height:none;display:inline;margin:0;text-decoration:underline;text-underline-offset:.25rem;text-decoration-thickness:.125rem;font-size:inherit}:where(p,ul,ol,dd,.body) a:not(.btn):not(.link):after,table:not(.table--email) td a:not(.btn):not(.link):after{display:none}:where(p,ul,ol,dd,.body) a:not(.btn):not(.link) [class*=fa-],table:not(.table--email) td a:not(.btn):not(.link) [class*=fa-]{margin:0;display:inline;--fa-display: inline}:where(p,ul,ol,dd,.body) a:not(.btn):not(.link) [class*=fa-]:after,table:not(.table--email) td a:not(.btn):not(.link) [class*=fa-]:after{content:"\xA0"}:where(p,ul,ol,dd,.body) a:not(.btn):not(.link):not([disabled]):is(:hover,:focus,.hover,:focus-within),table:not(.table--email) td a:not(.btn):not(.link):not([disabled]):is(:hover,:focus,.hover,:focus-within){color:var(--colour-hover);text-decoration:none}:where(p,ul,ol,dd,.body) a:not(.btn):not(.link):not([disabled]):is(:active,.active),table:not(.table--email) td a:not(.btn):not(.link):not([disabled]):is(:active,.active){color:var(--colour-active);text-decoration:none;filter:brightness(85%)}:is(a,button,label):has(.card,iam-card){border:none;background:none;padding:0;display:flex;margin-bottom:1.5rem;outline:none !important;text-decoration:none}:is(a,button,label):has(.card,iam-card):before{display:none}:is(a,button,label):has(.card,iam-card):not([class*=col]){margin:0 0 1.5rem 0}:is(a,button,label):has(.card,iam-card):not(.d-inline-block):not([class*=col]){width:100%}:is(a,button,label):has(.card,iam-card) iam-card{width:100%}}:is(.video-link,.youtube-link,.vimeo-link){position:relative;--compact-size: 3rem}:is(.video-link,.youtube-link,.vimeo-link):before,:is(.video-link,.youtube-link,.vimeo-link):after{content:"\uF04B";font-family:"Font Awesome 7 Pro" !important;display:block;position:absolute;text-indent:0;line-height:calc(var(--compact-size) - .25rem);font-weight:900;font-size:1rem !important;text-align:center;position:absolute;top:50%;left:50%;z-index:4;transform:translate(-50%, -50%);--compact-size: 3rem;padding:0 !important;margin-bottom:.5rem;text-align:center;width:var(--compact-size);min-width:var(--compact-size);max-width:var(--compact-size);height:var(--compact-size) !important;min-height:var(--compact-size) !important;max-height:var(--compact-size) !important;align-content:center;line-height:1 !important;overflow:hidden}:is(.video-link,.youtube-link,.vimeo-link):after{border-radius:50% !important;position:absolute;top:50%;left:50%;z-index:3;background-color:var(--colour-success);border:1px solid var(--colour-success)}:is(.video-link,.youtube-link,.vimeo-link):is(:hover,:focus):not(:active):after{background-color:var(--colour-white);border-color:var(--colour-white)}:is(.video-link,.youtube-link,.vimeo-link):is(:active):after{filter:brightness(85%)}iam-collapsible-side>*{padding-left:1.5rem}@media screen and (min-width: 36em){iam-collapsible-side>*{padding-left:2.5rem}}@media screen and (min-width: 62em){iam-collapsible-side>*{padding-left:var(--container-padding-x)}}iam-collapsible-side hr{border-bottom:2px solid var(--colour-border) !important;margin-right:-2.5rem !important}.vertical-tabs [class*=link],iam-collapsible-side [class*=link]{display:block !important;line-height:1.25rem !important;padding:1rem 1.5rem 1rem 1.5rem !important;margin:0 !important;flex-shrink:0;font-size:1rem !important;font-weight:normal !important;text-decoration:none !important;border-bottom:2px solid var(--colour-border) !important;border-right:2px solid var(--colour-border) !important;margin-right:-2.5rem !important;z-index:2}.vertical-tabs [class*=link]::after,iam-collapsible-side [class*=link]::after{display:none !important}.vertical-tabs [class*=link] i,iam-collapsible-side [class*=link] i{margin-right:.5rem !important}@media screen and (min-width: 36em){.vertical-tabs [class*=link],iam-collapsible-side [class*=link]{padding-left:1.5rem !important}}@media screen and (min-width: 62em){.vertical-tabs [class*=link],iam-collapsible-side [class*=link]{padding-left:var(--container-padding-x) !important}}.vertical-tabs a:hover,.vertical-tabs a:focus,.vertical-tabs a[aria-expanded],iam-collapsible-side a:hover,iam-collapsible-side a:focus,iam-collapsible-side a[aria-expanded]{background-color:var(--colour-activeLink) !important}.vertical-tabs [class*=active],iam-collapsible-side [class*=active]{background-color:var(--colour-activeLink) !important;border-right-color:var(--colour-activeLinkBorder) !important;border-right-width:3px !important}.vertical-tabs .parent,iam-collapsible-side .parent{margin:0 !important;padding:0 !important;list-style:none}.vertical-tabs .parent li:first-of-type,iam-collapsible-side .parent li:first-of-type{cursor:pointer}.vertical-tabs .parent li:first-of-type a,iam-collapsible-side .parent li:first-of-type a{padding-right:2.5rem !important}.vertical-tabs .parent li:first-of-type a::before,iam-collapsible-side .parent li:first-of-type a::before{position:absolute;display:block;content:"\uF055";font-family:"Font Awesome 7 Pro";right:20px;font-weight:300}.vertical-tabs .parent li:not(:first-of-type),iam-collapsible-side .parent li:not(:first-of-type){display:none}.vertical-tabs .parent li:not(:first-of-type) a,iam-collapsible-side .parent li:not(:first-of-type) a{background-color:var(--colour-light) !important;padding-left:5.625rem !important}.vertical-tabs .parent.reveal li:first-of-type a::before,iam-collapsible-side .parent.reveal li:first-of-type a::before{content:"\uF056";font-weight:bold}.vertical-tabs .parent.reveal li:not(:first-of-type),iam-collapsible-side .parent.reveal li:not(:first-of-type){display:block}@media screen and (min-width: 36em){.vertical-tabs .parent li:not(:first-of-type) a,iam-collapsible-side .parent li:not(:first-of-type) a{padding-left:5.625rem !important}}@layer elements{*,*::before,*::after{box-sizing:border-box}button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[role=button]{cursor:pointer}button:focus:not(:focus-visible){outline:0}:is(button,[type=button],[type=reset],[type=submit]){-webkit-appearance:button}:is(button,[type=button],[type=reset],[type=submit]):not(:disabled){cursor:pointer}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 2px;--btn-font-size: 1.125rem;--btn-line-height: 1.25rem;display:inline-block;font-weight:bold;text-align:left;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;color:var(--colour-btn);font-size:var(--btn-font-size);line-height:var(--btn-line-height);padding:var(--btn-padding-block) var(--btn-padding-inline);border-radius:1.5rem;margin-bottom:var(--btn-margin);background:none;transition:border .5s,background .5s,color .5s;height:auto;max-width:fit-content;appearance:none;white-space:nowrap}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}.btn:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}.btn:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}.btn:not(.border-0){background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border)}.btn:not(:last-child){margin-right:var(--btn-margin)}a:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn,.btn:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){outline:0;text-decoration:none;background:var(--colour-btn-bg-hover);color:var(--colour-btn-hover);border-radius:1.5rem}a:is(:active,.active):not([disabled]) .btn,.btn:is(:active,.active):not([disabled]){filter:brightness(85%);transition:background .1s,color .1s;color:var(--colour-btn);border-radius:1.5rem}a:disabled .btn,.btn:disabled,[disabled] .btn,.btn[disabled]{opacity:.4;cursor:not-allowed}.btn.btn-complete{--colour: var(--colour-success);--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn-complete,.btn.btn-complete:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn-complete:before,.btn.btn-complete:is(:hover,:focus,.hover):not([disabled],:active,.active):before{content:"\uF00C";font-family:"Font Awesome 7 Pro";margin-right:1rem;font-style:inherit;width:1rem;display:inline-block;height:var(--btn-line-height);vertical-align:bottom}.btn.btn-sm{--btn-padding-block: 0.5rem;--btn-padding-inline: 2rem;--btn-margin: 0.5rem;--btn-font-size: 1rem}.btn[class*=fa-]:before{content:var(--fa);font-family:"Font Awesome 7 Pro"}.btn.btn[class*=fa-after]{padding-right:4rem}.btn.btn[class*=fa-after]:before{margin-right:0;margin-right:.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}.btn:not(.btn-compact):before{margin-right:1rem}.btn i[class*=fa-]{--fa-width: 1em;font-family:"Font Awesome 7 Pro";margin-right:1rem;line-height:1em;font-style:inherit}.btn i[class*=fa-]:not(:first-child){margin-left:1rem;margin-right:0}.btn.btn--prompt:after{content:"";height:var(--btn-line-height);width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn--prompt:after,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active):after{margin-left:1.5rem;margin-right:-0.5rem}.btn-filter:after{content:"\uF1DE";display:inline-block;margin-left:1em;margin-bottom:-0.15em;height:1em;width:1em;z-index:var(--index-focus);color:currentColor;font-weight:300;font-family:"Font Awesome 7 Pro"}}@layer elements{.btn-secondary{color:var(--colour-btn-secondary)}.btn-secondary:not(.border-0){background:var(--colour-btn-secondary-bg);border:2px solid var(--colour-btn-secondary-border)}a:is(:hover,:focus,.hover,:active,.active):not([disabled]) .btn-secondary,.btn-secondary:is(:hover,:focus,.hover,:focus-within,:active,.active):not([disabled]){background:var(--colour-btn-secondary-bg-hover);color:var(--colour-btn-secondary-hover)}}@layer elements{.btn.btn-tertiary{background-color:rgba(0,0,0,0);border:none;color:var(--colour-link);margin:0 var(--btn-margin) var(--btn-margin) 0;padding:0;font-size:1.125rem;font-weight:normal;line-height:1.5rem;min-height:1.5rem;position:relative}.btn.btn-tertiary:after{position:absolute;content:"";top:100%;left:50%;height:2px;width:100%;transform:translate(-50%, 0);background:var(--colour-underline);transition:width .5s}.btn.btn-tertiary.text-decoration-none:after{width:0%}.btn.btn-tertiary [class*=fa-]{margin-left:0;margin-right:.5rem}.btn.btn-tertiary [class*=fa-]:not(:first-child){margin-left:.5rem;margin-right:0}.btn.btn-tertiary:is(:hover,:focus,.hover,:focus-within):not([disabled],:disabled,:active,.active):after{width:60% !important}.btn.btn-tertiary:is(:active,.active):not([disabled],:disabled){color:var(--colour-active)}}@layer elements{.btn-action{--btn-border-width: 1px;--btn-padding-block: 0.3125rem /* 5px */;--btn-padding-inline: 0.3125rem /* 5px */;--btn-margin: 0.5rem;border-radius:.25rem !important;font-weight:400 !important;font-size:1rem;line-height:1.25rem;&:not(.btn-primary){color:var(--colour-heading)}&:not(.btn-primary):not(.border-0){background-color:var(--colour-canvas-2);border:var(--btn-border-width) solid var(--colour-muted)}&.btn[class*=fa-]:before{content:var(--fa);margin-right:.375rem}&.icon-only{position:relative;text-indent:-300vw;overflow:hidden;min-width:1.75rem;&:before{position:absolute;left:0;top:0;min-width:1.75rem;text-align:center;text-indent:0;padding-inline:.25rem;line-height:1.85rem}}a:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) &,&:not(.btn-primary):is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){background:var(--colour-btn-action-hover-bg)}.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) &,&.btn-primary:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){filter:brightness(90%);background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border);color:var(--colour-btn)}a:is(:active,.active):not([disabled]):not(.btn-primary) &,&:is(:active,.active):not([disabled]):not(.btn-primary){filter:brightness(85%);transition:all .1s;color:var(--colour-heading)}}.btn-action:not(.btn-compact).fa-compact-only:before{display:none !important}}@layer elements{.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:.5rem;text-align:center;width:var(--compact-size);min-width:var(--compact-size);max-width:var(--compact-size);height:var(--compact-size) !important;min-height:var(--compact-size) !important;max-height:var(--compact-size) !important;align-content:center;line-height:1 !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1rem;&:not(:last-child){margin-right:.5rem}&:before{content:var(--fa);position:absolute;display:block;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - .25rem);font-weight:900}[class*=fa-]:before{line-height:calc(var(--compact-size) - .25rem);@container style(--theme: dark){color:white}}&.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}&.btn-action{--compact-size: 2rem;font-size:1rem;&:before{font-size:1em;font-weight:400}}&.btn-secondary{--colour-btn-bg: transparent;--colour-btn-border: transparent;border-color:transparent;&:not([class*=colour-]){--colour: var(--colour-light)}}&.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse){background-color:var(--colour);color:var(--colour-primary-theme);border-color:var(--colour);&:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}}&[data-number]{position:relative}&[data-number]:after{content:attr(data-number);position:absolute;top:.5em;z-index:99;background:var(--colour-danger);height:1.5em;width:1.5em;border-radius:50%;text-indent:0;left:50%;font-size:.5em;line-height:1.5em;text-align:center;color:white;letter-spacing:-0.1em;font-family:arial,sans-serif}}.btn-compact{&:is(.fa-left,.fa-chevron-left,.fa-right,.fa-chevron-right,.fa-up,.fa-chevron-up,.fa-down,.fa-chevron-down,.fa-plus,.fa-bars,.fa-edit,.fa-envelope,.fa-calendar){--iso-display: block;--iso-font-size: 1.5rem;--iso-border-radius: 50%;--iso-text-indent: -500px}}@container style(--font-body){.btn-compact{font-size:var(--iso-font-size, 0.6rem) !important;text-indent:var(--iso-text-indent, 0px);white-space:initial;&:not(.btn-action){border-radius:var(--iso-border-radius, 0.25rem) !important}&:before{display:var(--iso-display, none);font-family:monospace !important;content:var(--iso) !important}}}@container style(--fa-font-regular){.btn-compact{text-indent:-500px;font-size:1rem !important;&:not(.btn-action){border-radius:50% !important}&:before{font-family:"Font Awesome 7 Pro" !important;content:var(--fa) !important;display:block}}}}@layer elements{.btn[popovertarget]{position:relative;anchor-name:--button2}.btn[popovertarget]>.fa-chevron-down{display:none}.btn[popovertarget]:not(:has(i)):after{content:"";display:inline-block;margin-right:.25em;margin-left:1em;height:.8em;width:.8em;z-index:var(--index-focus);background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;transform:rotate(90deg)}.btn[popovertarget][aria-pressed]:after{transform:rotate(270deg)}.btn:has(select){position:relative;padding:0;max-width:fit-content;min-width:fit-content;width:fit-content}.btn:has(select) select{all:unset !important;padding:var(--btn-padding-block) var(--btn-padding-inline) !important;padding-right:calc(var(--btn-padding-inline) + 2rem) !important;border-radius:1.5rem !important;appearance:none !important;background:none !important;border:none !important;color:currentColor !important;display:block;outline:none;font-weight:inherit !important;font-size:var(--btn-font-size) !important;line-height:var(--btn-line-height) !important;field-sizing:content !important;appearance:base-select !important}.btn:has(select) select option{font-size:1rem;text-align:left;color:var(--colour-primary);padding-inline:var(--menu-item-padding, 0.5rem);padding-block:var(--menu-item-padding, 0.5rem) !important;border-radius:.25rem !important}.btn:has(select) select option:not(:last-child){margin:var(--menu-item-margin, 0 0 0.25rem 0) !important}.btn:has(select) select option:hover{background:var(--colour-light) !important}.btn:has(select) select option:after{content:attr(data-email)}.btn:has(select) select::picker-icon{display:none}.btn:has(select) select::picker(select){appearance:base-select;background:var(--menu-bg, canvas);margin-block:var(--menu-margin, 0.25rem);padding:var(--menu-padding, 0.5rem) !important;border:none !important;border-radius:.5rem;box-shadow:0px 2px 9px rgba(0,0,0,.1);font-size:1rem}.btn:has(select) 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}.btn:has(select) select option::checkmark{display:none}.btn:has(select) select selectedcontent span{display:none}.btn:has(select):after{position:absolute;top:.625rem;right:1.5rem;content:"";height:1.5rem;width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem;transform:rotate(90deg);pointer-events:none}.btn-action:has(select){padding-block:0;padding-right:2rem;font-size:1em}.btn-action:has(select) select{margin:0rem 0rem !important;padding-right:2rem !important;margin-right:-2rem !important;font-size:1rem !important}.btn-action:has(select):after{top:.2rem;right:.5rem}}@layer elements{.btn__group{display:flex;flex-direction:column;row-gap:var(--gap);reading-flow:source-order;margin-bottom:1.5rem;.btn-compact{max-width:fit-content;margin-inline:auto}}:where(.btn__group,iam-modal){reading-flow:source-order;.btn{margin-inline-end:0;width:100%;max-width:100%;text-align:center;white-space:normal;margin:0;&:not(:last-child){margin-right:0}}.btn-tertiary{max-width:fit-content;margin-block:0 !important;margin-inline:auto !important;order:3;reading-order:3}.btn-secondary{order:2;reading-order:2}.btn-primary{order:1;reading-order:1;margin:0;&:not(:last-child){margin:0}}}:is(iam-form,form) .btn__group{padding-top:1rem}@container (min-width: 36em){.btn__group{flex-direction:row;row-gap:0;gap:var(--gap);flex-wrap:wrap;.btn-tertiary{max-width:fit-content;margin-inline:0 !important;margin-block:auto;order:1}.btn-secondary{order:2}.btn-primary{order:3}.btn-compact{margin-inline:0;margin-block:auto}}:where(iam-modal,.btn__group){.btn{max-width:fit-content;white-space:nowrap;margin-block:auto}}.btn__group{.btn-tertiary{reading-order:1}.btn-secondary{reading-order:2}.btn-primary{reading-order:3}}iam-modal{.btn-tertiary{reading-order:3;order:1}.btn-secondary{order:2;reading-order:2}.btn-primary{order:3;reading-order:1}}.btn__group.text-end{justify-content:flex-end}:is(iam-form,form) .btn__group{justify-content:flex-end;padding-top:3rem}iam-modal .btn__group:last-child .btn,dialog .btn__group:last-child .btn{margin-bottom:0}}}*:not(main):has(>iam-tabs){container-type:inline-size}iam-tabs{--colour-tab-underline: var(--colour-info)}iam-tabs details[open]{padding-top:2rem}iam-tabs details:not([open]){padding-bottom:0}iam-tabs .tabs__dropdown{display:none;width:fit-content}iam-tabs:is(.tabs--dropdown) .tabs__dropdown{display:block}iam-tabs:is(.tabs--dropdown)::part(wrapper){display:none}@container (min-width: 62em){iam-tabs:is(.tabs--dropdown) .tabs__dropdown{display:none}iam-tabs:is(.tabs--dropdown)::part(wrapper){display:block}}iam-tabs::part(next-button){display:none}@container (width > 62em){iam-tabs.tabs--guided::part(next-button){position:absolute;top:9.375rem;right:0;display:block}}iam-tabs.tabs--guided::part(next-button):not(:hover){background:var(--colour-success)}.tabs:not(.admin-panel){position:relative}.tabs:not(.admin-panel) .tabs__links__wrapper{position:relative;margin:0 auto}.tabs:not(.admin-panel) .tabs__links__wrapper:after{content:"";left:50%;position:relative;height:1px;width:100vw;background-color:var(--colour-border);transform:translate(-50%, 0);display:block;clear:both}.tabs.admin-panel .tabs__links__wrapper:after{display:none}.tabs:not(.admin-panel) .tabs__links{-webkit-mask-image:linear-gradient(to right, rgb(0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%);mask-image:linear-gradient(to right, rgb(0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%)}.tabs__links{scroll-snap-type:x mandatory;padding-bottom:3px;position:relative;display:flex;flex-wrap:nowrap;width:auto;margin:0 -1.5rem;overflow-y:clip;overflow-x:auto}.tabs__links::-webkit-scrollbar{display:none}.tabs__links .link{white-space:nowrap;scroll-snap-align:start;scroll-margin-left:var(--container-padding)}.tabs__links .link:not(.text-decoration-none):not(.btn){--is-current: 0;font-weight:bold;font-family:var(--font-heading);font-size:1.125rem;cursor:pointer;margin:0;padding:1.5rem 1.5rem .5rem 1.5rem;display:inline-block}.tabs__links .link:not(.text-decoration-none):not(.btn).disabled{cursor:not-allowed;opacity:.4}.tabs__links .link:not(.text-decoration-none):not(.btn):last-child{margin-inline-end:0}.tabs__links .link:not(.text-decoration-none):not(.btn):after{position:absolute;content:"";bottom:0;left:50%;height:3px;width:100%;transform:translate(-50%, 0) scale(0, 0);background:var(--colour-tab-underline, var(--colour-info));transition:transform .4s}.tabs__links .link:not(.text-decoration-none):not(.btn):not(.disabled):hover:after,.tabs__links .link:not(.text-decoration-none):not(.btn):not(.disabled):focus:after,.tabs__links .link:not(.text-decoration-none):not(.btn):not(.disabled).focus:after{transform:translate(-50%, 0) scale(0.6, 1)}.tabs__links .link:not(.text-decoration-none):not(.btn):not(.disabled):is([aria-pressed=true],:active,.current,.active):after{transform:translate(-50%, 0) scale(1, 1)}.tabs__links .link:not(.text-decoration-none):not(.btn):is([aria-pressed=true],.current){pointer-events:none;outline:var(--contrast-outline-width, 0px) solid var(--colour-primary-theme) !important}@media(min-width: 576px){.tabs__links .link:not(.text-decoration-none):not(.btn){padding:2rem 2rem .5rem 2rem}.tabs__links__wrapper{margin:0 auto 2.5rem}}.admin-panel :is(.admin-panel__links,.tabs__links){padding:0;margin:calc(var(--padding-top)*-1) calc(var(--padding-x)*-1) var(--padding-top) calc(var(--padding-x)*-1);border-top-left-radius:.5rem;border-top-right-radius:.5rem;display:flex;flex-direction:column;border-bottom:1px solid var(--colour-border);overflow:hidden;outline:var(--contrast-outline-width, 0px) solid var(--colour-primary)}.admin-panel :is(.admin-panel__links,.tabs__links):after{display:none}@media screen and (min-width: 36em){.admin-panel :is(.admin-panel__links,.tabs__links){flex-direction:row}}.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn){margin:0;padding:1rem var(--padding-x);width:100%;position:relative;text-align:left;flex-grow:1;--gradient-direction: -90deg;background-color:var(--colour-success)}.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn):not([class*=bg-]){background-image:linear-gradient(var(--gradient-direction), var(--colour-info) 0, transparent 100%)}.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn):is(.current,[aria-pressed=true]){color:var(--colour-primary-theme)}.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn):not(.current,[aria-pressed=true]){background:var(--colour-canvas-2) !important}.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn):after{display:none}@media screen and (min-width: 36em){.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn){margin:0}.admin-panel :is(.admin-panel__links,.tabs__links) .link:not(.text-decoration-none):not(.btn):not(:first-child){border-left:1px solid var(--colour-border) !important}}.admin-panel :is(.admin-panel__links,.tabs__links) .link:is(.current,[aria-pressed=true]){pointer-events:none}@media screen and (min-width: 36em){:host(.tabs--inline) .tabs__links{margin:0;justify-content:center}:host(.tabs--inline) .tabs__links__wrapper:after{width:100%}}:host{background:rgba(0,0,0,0)}:host(.tabs--hidden) .tabs__links__wrapper{display:none}@container (min-width: 36em){:host(.tabs--sm-hidden) .tabs__links__wrapper{display:none}}@container (min-width: 62em){:host(.tabs--md-hidden) .tabs__links__wrapper{display:none}}/*# sourceMappingURL=assets/css/components/tabs.component.css.map */
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
|
|
@@ -19,5 +19,5 @@
|
|
|
19
19
|
<slot></slot>
|
|
20
20
|
<button part="next-button" class="btn btn-secondary btn-sm btn-compact fa-regular fa-chevron-right tabs__next">Next</button>
|
|
21
21
|
</div>
|
|
22
|
-
`,this.shadowRoot.appendChild(
|
|
22
|
+
`,this.shadowRoot.appendChild(o.content.cloneNode(!0))}connectedCallback(){const o=this.classList.toString().replace("container","");this.shadowRoot.querySelector(".tabs").setAttribute("class",`tabs ${o}`),z(this),Array.from(this.querySelectorAll("details[id]")).forEach(i=>{const a=i.getAttribute("id");Array.from(document.querySelectorAll(`[command="show-tab"][commandfor="${a}"]`)).forEach(r=>{r.closest("label").addEventListener("click",s=>{i.setAttribute("open","open"),Array.from(document.querySelectorAll(`input[type="radio"][command="show-tab"][commandfor="${a}"]`)).forEach(n=>{n.checked=!0})})})})}}export{A as default};
|
|
23
23
|
//# sourceMappingURL=tabs.component.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.component.min.js","sources":["../../modules/helpers.js","../../modules/tabs.js","tabs.component.js"],"sourcesContent":["/**\n * Global helper functions to help maintain and enhance framework elements.\n * @module Helpers\n */\n/**\n * Add global classes used by the CSS and later JavaScript.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addBodyClasses = (body) => {\n body.classList.add('js-enabled');\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {\n body.classList.add('ie');\n }\n};\n/**\n * Add global events.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addGlobalEvents = (body) => {\n const checkElements = function (hash) {\n const label = document.querySelector(`label[for=\"${hash.replace('#', '')}\"]`);\n const summary = document.querySelector(hash + ' summary');\n const dialog = document.querySelector(`dialog${hash}`);\n const detail = document.querySelector(`detail${hash}`);\n if (label instanceof HTMLElement)\n label.click();\n else if (summary instanceof HTMLElement)\n summary.click();\n else if (dialog instanceof HTMLElement)\n dialog.showModal();\n else if (detail instanceof HTMLElement)\n detail.addAttribute('open');\n };\n if (location.hash)\n checkElements(location.hash);\n window.addEventListener('hashchange', function () {\n checkElements(location.hash);\n }, false);\n addEventListener('popstate', (event) => {\n if (event && event.state && event.state.type && event.state.type == 'pagination') {\n const form = document.querySelector(`#${event.state.form}`);\n const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);\n if (pageInput)\n pageInput.value = event.state.page;\n else\n form.innerHTML += `<input name=\"page\" type=\"hidden\" data-pagination=\"true\" value=\"${event.state.page}\" />`;\n form.dispatchEvent(new Event('submit'));\n }\n });\n Array.from(document.querySelectorAll('form')).forEach((form) => {\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n form.addEventListener('submit', (event) => {\n var _a;\n if (form.querySelector(':invalid')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n });\n }\n });\n document.addEventListener('click', (event) => {\n var _a;\n if (event && event.target instanceof HTMLElement && event.target.matches('form button:not([type=button])')) {\n const form = event.target.closest('form');\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n // Reset password types\n Array.from(form.querySelectorAll('[data-password-type]')).forEach((input) => {\n input.setAttribute('type', 'password');\n });\n if (form.querySelector(':invalid') ||\n form.querySelector('.pwd-checker[data-strength=\"1\"]') ||\n form.querySelector('.pwd-checker[data-strength=\"2\"]')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n if (form.querySelector('iam-multiselect[data-is-required][data-error]')) {\n form.classList.add('was-validated');\n event.preventDefault();\n }\n }\n }\n });\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n if (document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n });\n Array.from(document.querySelectorAll('label progress')).forEach((progress) => {\n const label = progress.closest('label');\n label.setAttribute('data-percent', progress.getAttribute('value'));\n });\n};\nexport const isNumeric = function (str) {\n if (typeof str != 'string')\n return false; // we only process strings!\n return (!isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\n !isNaN(parseFloat(str))); // ...and ensure strings of whitespace fail\n};\nexport const zeroPad = (num, places) => String(num).padStart(places, '0');\nexport const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nexport const ucwords = (str) => str\n .split(' ')\n .map((s) => ucfirst(s))\n .join(' ');\nexport const unsnake = (str) => str.replace(/_/g, ' ');\nexport const snake = (str) => str.replace(/ /g, '_');\nexport const safeID = function (str) {\n str = str.toLowerCase();\n str = snake(str);\n str = str.replace(/\\W/g, '');\n return str;\n};\nexport const numberOfDays = function (startDateString, endDateString) {\n const convertStart = startDateString.split('/');\n const convertEnd = endDateString.split('/');\n const dateStart = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);\n const dateEnd = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);\n if (dateStart == 'Invalid Date')\n throw 'Start date is not a valid date';\n if (dateEnd == 'Invalid Date')\n throw 'End date is not a valid date';\n // To calculate the time difference of two dates\n const diffTime = dateEnd.getTime() - dateStart.getTime();\n const numberOfDays = diffTime / (1000 * 3600 * 24) + 1;\n if (numberOfDays < 0)\n throw 'The start date should be before the end date';\n return numberOfDays;\n};\n// Used to get values from nested json objects\nexport const resolvePath = (object, path, defaultValue) => path\n // eslint-disable-next-line no-useless-escape\n .split(/[\\.\\[\\]\\'\\\"]/)\n .filter((p) => p)\n .reduce((o, p) => (o ? o[p] : defaultValue), object);\nexport const isTraversable = (o) => Array.isArray(o) || (o !== null && ['function', 'object'].includes(typeof o));\nexport const getSwipeDirection = (touchstartX, touchstartY, touchendX, touchendY) => {\n const limit = Math.tan(((45 * 1.5) / 180) * Math.PI);\n const pageWidth = window.innerWidth || document.body.clientWidth;\n const treshold = Math.max(1, Math.floor(0.01 * pageWidth));\n const x = touchendX - touchstartX;\n const y = touchendY - touchstartY;\n const xy = Math.abs(x / y);\n const yx = Math.abs(y / x);\n if (Math.abs(x) > treshold || Math.abs(y) > treshold) {\n if (yx <= limit) {\n if (x < 0) {\n return 'left';\n }\n else {\n return 'right';\n }\n }\n if (xy <= limit) {\n if (y < 0) {\n return 'top';\n }\n else {\n return 'bottom';\n }\n }\n }\n else {\n return 'tap';\n }\n};\nexport const uniqueID = (index = 1) => {\n const ID = Math.floor(Math.random() * Date.now() * (index + 1));\n return ID;\n};\nexport const isValidPostcode = (searchValue) => {\n const regexp = /^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/gmi;\n return regexp.test(searchValue.trim());\n};\n","import { getSwipeDirection } from './helpers.js';\nexport const createTabsLinks = function (tabsElement) {\n const detailsORLinks = tabsElement.querySelectorAll(':scope > details, :scope > a');\n let tabLinks = tabsElement.querySelector(':scope > .tabs__links');\n let tabDropdown = tabsElement.querySelector(':scope .tabs__dropdown');\n if (tabsElement.shadowRoot && tabsElement.shadowRoot.querySelector('.tabs__links'))\n tabLinks = tabsElement.shadowRoot.querySelector('.tabs__links');\n if (!tabLinks) {\n tabLinks = document.createElement('div');\n tabLinks.classList.add('tabs__links');\n const tabLinksWrapper = document.createElement('div');\n tabLinksWrapper.classList.add('tabs__links__wrapper');\n tabLinksWrapper.prepend(tabLinks);\n tabsElement.prepend(tabLinksWrapper);\n }\n if (!tabDropdown) {\n tabDropdown = document.createElement('select');\n tabDropdown.classList.add('tabs__dropdown');\n tabsElement.prepend(tabDropdown);\n }\n // Create the tab buttons from the summary titles\n let tabindex = 0;\n detailsORLinks.forEach((element) => {\n let button = document.createElement('button');\n const dropdownOpt = document.createElement('option');\n if (element.matches('details')) {\n const summary = element.querySelector(':scope > summary');\n const isDisabled = summary.classList.contains('disabled');\n summary.classList.add('visually-hidden');\n if (element.hasAttribute('id'))\n button.setAttribute('data-id', `${element.getAttribute('id')}`);\n if (element.hasAttribute('open')) {\n button.setAttribute('aria-pressed', true);\n }\n button.innerHTML = `${summary.innerText}`;\n button.classList.add('link');\n button.setAttribute('data-index', tabindex);\n button.setAttribute('part', 'tab-link');\n dropdownOpt.innerHTML = `${summary.innerText}`;\n dropdownOpt.value = summary.innerText.replace(/\\s+/g, '-').toLowerCase();\n dropdownOpt.setAttribute('data-index', tabindex);\n element.setAttribute('tabindex', '-1');\n if (isDisabled) {\n button.classList.add('disabled');\n }\n tabindex++;\n }\n else if (element.matches('a')) {\n button = element;\n }\n button.classList.add('link');\n tabLinks.appendChild(button);\n tabDropdown.appendChild(dropdownOpt);\n });\n};\nexport const setTabsEventHandlers = function (tabsElement) {\n const details = tabsElement.querySelectorAll(':scope > details');\n const summaries = tabsElement.querySelectorAll(':scope > details > summary');\n let buttonWrapper = tabsElement.querySelector(':scope .tabs__links');\n let buttons = tabsElement.querySelectorAll(':scope .tabs__links > button');\n const tabDropdown = tabsElement.querySelector(':scope .tabs__dropdown');\n let nextButton = tabsElement.querySelector(':scope .tabs__next');\n let scrollTimeout;\n window.isClicked = false;\n window.isScrolling = false;\n if (tabsElement.shadowRoot) {\n buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');\n buttonWrapper = tabsElement.shadowRoot.querySelector('.tabs__links');\n nextButton = tabsElement.shadowRoot.querySelector('.tabs__next');\n }\n // Set the on click for the tab buttons, these will open the details box it matches too\n buttons.forEach((button) => {\n button.addEventListener('click', (e) => {\n e.preventDefault();\n window.isClicked = true;\n if (button.classList.contains('disabled'))\n return false;\n buttons.forEach((buttonLoopItem) => {\n const buttonPressed = buttonLoopItem == button ? true : false;\n buttonLoopItem.setAttribute('aria-pressed', buttonPressed);\n });\n buttonWrapper.scroll({\n top: 0,\n left: button.offsetLeft,\n behavior: 'smooth',\n });\n //Handles showing correct content\n toggleTab(details, button);\n // Data layer Open Event\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openTab',\n tabTitle: button.textContent,\n });\n if (button.matches(':last-child')) {\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.setAttribute('disabled', 'disabled');\n }\n else {\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.removeAttribute('disabled');\n }\n });\n dropdownTabSelector(details, tabDropdown);\n });\n buttonWrapper.addEventListener('scrollend', () => {\n clearTimeout(scrollTimeout);\n scrollTimeout = setTimeout(function () {\n let buttonToClick = buttons[0];\n let closestOffset = Math.abs(buttonToClick.getBoundingClientRect().left);\n buttons.forEach((button) => {\n if (Math.abs(button.getBoundingClientRect().left) < closestOffset) {\n closestOffset = Math.abs(button.getBoundingClientRect().left);\n buttonToClick = button;\n }\n });\n if (window.isClicked) {\n window.isClicked = false;\n return false;\n }\n else {\n buttonToClick.click();\n }\n buttonToClick.focus();\n }, 500);\n });\n // Make sure we dont loose existing summary functionality\n summaries.forEach((summary, index) => {\n summary.addEventListener('click', (e) => {\n e.preventDefault();\n buttons[index].click();\n });\n });\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.addEventListener('click', (e) => {\n e.preventDefault();\n const currentTab = buttonWrapper.querySelector('[aria-pressed=\"true\"]');\n const nextTab = currentTab.nextSibling;\n if (nextTab)\n nextTab.click();\n });\n if (tabsElement.classList.contains('tabs--guided')) {\n let touchstartX = 0;\n let touchstartY = 0;\n let touchendX = 0;\n let touchendY = 0;\n details.forEach((detail) => {\n detail.addEventListener('touchstart', (event) => {\n event.stopPropagation();\n touchstartX = event.changedTouches[0].screenX;\n touchstartY = event.changedTouches[0].screenY;\n });\n detail.addEventListener('touchend', (event) => {\n event.stopPropagation();\n touchendX = event.changedTouches[0].screenX;\n touchendY = event.changedTouches[0].screenY;\n const direction = getSwipeDirection(touchstartX, touchstartY, touchendX, touchendY);\n const currentTab = buttonWrapper.querySelector('[aria-pressed=\"true\"]');\n const nextTab = currentTab.nextSibling;\n const prevTab = currentTab.previousSibling;\n switch (direction) {\n case 'left':\n if (nextTab)\n nextTab.click();\n break;\n case 'right':\n if (prevTab)\n prevTab.click();\n break;\n }\n });\n });\n }\n};\nexport const toggleTab = function (details, button) {\n details.forEach((detail, detailsIndex) => {\n const detailsOpen = button.getAttribute('data-index') == detailsIndex ? true : false;\n if (detailsOpen)\n detail.setAttribute('open', detailsOpen);\n else\n detail.removeAttribute('open');\n });\n};\nexport const dropdownTabSelector = function (details, dropdown) {\n dropdown.addEventListener('change', (e) => {\n e.preventDefault();\n const selected = dropdown.options[dropdown.selectedIndex];\n toggleTab(details, selected);\n // Data layer Open Event\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openTab',\n tabTitle: selected.innerText,\n });\n });\n};\nexport const openFirstTab = function (tabsElement) {\n if (!tabsElement.querySelector(':scope > details'))\n return false;\n const details = tabsElement.querySelectorAll(':scope > details');\n const buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');\n if (location.hash &&\n tabsElement.shadowRoot.querySelector(`.tabs__links [data-id=\"${location.hash.replace('#', '')}\"]`)) {\n tabsElement.shadowRoot\n .querySelector(`[data-id=\"${location.hash.replace('#', '')}\"]`)\n .setAttribute('aria-pressed', true);\n tabsElement.querySelector(`details[id=\"${location.hash.replace('#', '')}\"]`).setAttribute('open', true);\n }\n else if (!tabsElement.querySelector(`details[open]`)) {\n details[0].setAttribute('open', true);\n buttons[0].setAttribute('aria-pressed', true);\n }\n};\nconst tabs = function (tabsElement) {\n createTabsLinks(tabsElement);\n setTabsEventHandlers(tabsElement);\n openFirstTab(tabsElement);\n};\nexport default tabs;\n","import tabs from '../../modules/tabs.js';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'tabs',\n});\nclass iamTabs extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/tabs.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n \n ${loadCSS}\n \n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n <div class=\"tabs\" part=\"tabs\">\n <div class=\"tabs__dropdown\" part=\"tab-dropdown\"></div>\n\n <div class=\"tabs__links__wrapper\" part=\"wrapper\">\n <div class=\"tabs__links\" part=\"tab-links\"></div>\n </div>\n <slot></slot>\n <button part=\"next-button\" class=\"btn btn-secondary btn-sm btn-compact fa-regular fa-chevron-right tabs__next\">Next</button>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const classList = this.classList.toString().replace('container', '');\n this.shadowRoot.querySelector('.tabs').setAttribute('class', `tabs ${classList}`);\n tabs(this);\n }\n}\nexport default iamTabs;\n"],"names":["getSwipeDirection","touchstartX","touchstartY","touchendX","touchendY","limit","pageWidth","treshold","x","y","xy","yx","createTabsLinks","tabsElement","detailsORLinks","tabLinks","tabDropdown","tabLinksWrapper","tabindex","element","button","dropdownOpt","summary","isDisabled","setTabsEventHandlers","details","summaries","buttonWrapper","buttons","nextButton","scrollTimeout","e","buttonLoopItem","buttonPressed","toggleTab","dropdownTabSelector","buttonToClick","closestOffset","index","nextTab","detail","event","direction","currentTab","prevTab","detailsIndex","detailsOpen","dropdown","selected","openFirstTab","tabs","iamTabs","template","classList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tabs.component.min.js","sources":["../../modules/helpers.js","../../modules/tabs.js","tabs.component.js"],"sourcesContent":["/**\n * Global helper functions to help maintain and enhance framework elements.\n * @module Helpers\n */\n/**\n * Add global classes used by the CSS and later JavaScript.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addBodyClasses = (body) => {\n body.classList.add('js-enabled');\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {\n body.classList.add('ie');\n }\n};\n/**\n * Add global events.\n * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.\n */\nexport const addGlobalEvents = (body) => {\n const checkElements = function (hash) {\n const label = document.querySelector(`label[for=\"${hash.replace('#', '')}\"]`);\n const summary = document.querySelector(hash + ' summary');\n const dialog = document.querySelector(`dialog${hash}`);\n const detail = document.querySelector(`detail${hash}`);\n if (label instanceof HTMLElement)\n label.click();\n else if (summary instanceof HTMLElement)\n summary.click();\n else if (dialog instanceof HTMLElement)\n dialog.showModal();\n else if (detail instanceof HTMLElement)\n detail.addAttribute('open');\n };\n if (location.hash)\n checkElements(location.hash);\n window.addEventListener('hashchange', function () {\n checkElements(location.hash);\n }, false);\n addEventListener('popstate', (event) => {\n if (event && event.state && event.state.type && event.state.type == 'pagination') {\n const form = document.querySelector(`#${event.state.form}`);\n const pageInput = document.querySelector(`#${event.state.form} [data-pagination]`);\n if (pageInput)\n pageInput.value = event.state.page;\n else\n form.innerHTML += `<input name=\"page\" type=\"hidden\" data-pagination=\"true\" value=\"${event.state.page}\" />`;\n form.dispatchEvent(new Event('submit'));\n }\n });\n Array.from(document.querySelectorAll('form')).forEach((form) => {\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n form.addEventListener('submit', (event) => {\n var _a;\n if (form.querySelector(':invalid')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n });\n }\n });\n document.addEventListener('click', (event) => {\n var _a;\n if (event && event.target instanceof HTMLElement && event.target.matches('form button:not([type=button])')) {\n const form = event.target.closest('form');\n if (!(form === null || form === void 0 ? void 0 : form.closest('iam-form'))) {\n // Reset password types\n Array.from(form.querySelectorAll('[data-password-type]')).forEach((input) => {\n input.setAttribute('type', 'password');\n });\n if (form.querySelector(':invalid') ||\n form.querySelector('.pwd-checker[data-strength=\"1\"]') ||\n form.querySelector('.pwd-checker[data-strength=\"2\"]')) {\n form.classList.add('was-validated');\n (_a = form === null || form === void 0 ? void 0 : form.querySelector('input:invalid')) === null || _a === void 0 ? void 0 : _a.scrollIntoView();\n event.preventDefault();\n }\n if (form.querySelector('iam-multiselect[data-is-required][data-error]')) {\n form.classList.add('was-validated');\n event.preventDefault();\n }\n }\n }\n });\n document.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') {\n if (document.querySelector('.dialog--transactional[open], .dialog--acknowledgement[open]')) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n });\n Array.from(document.querySelectorAll('label progress')).forEach((progress) => {\n const label = progress.closest('label');\n label.setAttribute('data-percent', progress.getAttribute('value'));\n });\n};\nexport const isNumeric = function (str) {\n if (typeof str != 'string')\n return false; // we only process strings!\n return (!isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\n !isNaN(parseFloat(str))); // ...and ensure strings of whitespace fail\n};\nexport const zeroPad = (num, places) => String(num).padStart(places, '0');\nexport const ucfirst = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nexport const ucwords = (str) => str\n .split(' ')\n .map((s) => ucfirst(s))\n .join(' ');\nexport const unsnake = (str) => str.replace(/_/g, ' ');\nexport const snake = (str) => str.replace(/ /g, '_');\nexport const safeID = function (str) {\n str = str.toLowerCase();\n str = snake(str);\n str = str.replace(/\\W/g, '');\n return str;\n};\nexport const numberOfDays = function (startDateString, endDateString) {\n const convertStart = startDateString.split('/');\n const convertEnd = endDateString.split('/');\n const dateStart = new Date(convertStart[1] + '/' + convertStart[0] + '/' + convertStart[2]);\n const dateEnd = new Date(convertEnd[1] + '/' + convertEnd[0] + '/' + convertEnd[2]);\n if (dateStart == 'Invalid Date')\n throw 'Start date is not a valid date';\n if (dateEnd == 'Invalid Date')\n throw 'End date is not a valid date';\n // To calculate the time difference of two dates\n const diffTime = dateEnd.getTime() - dateStart.getTime();\n const numberOfDays = diffTime / (1000 * 3600 * 24) + 1;\n if (numberOfDays < 0)\n throw 'The start date should be before the end date';\n return numberOfDays;\n};\n// Used to get values from nested json objects\nexport const resolvePath = (object, path, defaultValue) => path\n // eslint-disable-next-line no-useless-escape\n .split(/[\\.\\[\\]\\'\\\"]/)\n .filter((p) => p)\n .reduce((o, p) => (o ? o[p] : defaultValue), object);\nexport const isTraversable = (o) => Array.isArray(o) || (o !== null && ['function', 'object'].includes(typeof o));\nexport const getSwipeDirection = (touchstartX, touchstartY, touchendX, touchendY) => {\n const limit = Math.tan(((45 * 1.5) / 180) * Math.PI);\n const pageWidth = window.innerWidth || document.body.clientWidth;\n const treshold = Math.max(1, Math.floor(0.01 * pageWidth));\n const x = touchendX - touchstartX;\n const y = touchendY - touchstartY;\n const xy = Math.abs(x / y);\n const yx = Math.abs(y / x);\n if (Math.abs(x) > treshold || Math.abs(y) > treshold) {\n if (yx <= limit) {\n if (x < 0) {\n return 'left';\n }\n else {\n return 'right';\n }\n }\n if (xy <= limit) {\n if (y < 0) {\n return 'top';\n }\n else {\n return 'bottom';\n }\n }\n }\n else {\n return 'tap';\n }\n};\nexport const uniqueID = (index = 1) => {\n const ID = Math.floor(Math.random() * Date.now() * (index + 1));\n return ID;\n};\nexport const isValidPostcode = (searchValue) => {\n const regexp = /^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/gmi;\n return regexp.test(searchValue.trim());\n};\n","import { getSwipeDirection } from './helpers.js';\nexport const createTabsLinks = function (tabsElement) {\n const detailsORLinks = tabsElement.querySelectorAll(':scope > details, :scope > a');\n let tabLinks = tabsElement.querySelector(':scope > .tabs__links');\n let tabDropdown = tabsElement.querySelector(':scope .tabs__dropdown');\n if (tabsElement.shadowRoot && tabsElement.shadowRoot.querySelector('.tabs__links'))\n tabLinks = tabsElement.shadowRoot.querySelector('.tabs__links');\n if (!tabLinks) {\n tabLinks = document.createElement('div');\n tabLinks.classList.add('tabs__links');\n const tabLinksWrapper = document.createElement('div');\n tabLinksWrapper.classList.add('tabs__links__wrapper');\n tabLinksWrapper.prepend(tabLinks);\n tabsElement.prepend(tabLinksWrapper);\n }\n if (!tabDropdown) {\n tabDropdown = document.createElement('select');\n tabDropdown.classList.add('tabs__dropdown');\n tabsElement.prepend(tabDropdown);\n }\n // Create the tab buttons from the summary titles\n let tabindex = 0;\n detailsORLinks.forEach((element) => {\n let button = document.createElement('button');\n const dropdownOpt = document.createElement('option');\n if (element.matches('details')) {\n const summary = element.querySelector(':scope > summary');\n const isDisabled = summary.classList.contains('disabled');\n summary.classList.add('visually-hidden');\n if (element.hasAttribute('id'))\n button.setAttribute('data-id', `${element.getAttribute('id')}`);\n if (element.hasAttribute('open')) {\n button.setAttribute('aria-pressed', true);\n }\n button.innerHTML = `${summary.innerText}`;\n button.classList.add('link');\n button.setAttribute('data-index', tabindex);\n button.setAttribute('part', 'tab-link');\n dropdownOpt.innerHTML = `${summary.innerText}`;\n dropdownOpt.value = summary.innerText.replace(/\\s+/g, '-').toLowerCase();\n dropdownOpt.setAttribute('data-index', tabindex);\n element.setAttribute('tabindex', '-1');\n if (isDisabled) {\n button.classList.add('disabled');\n }\n tabindex++;\n }\n else if (element.matches('a')) {\n button = element;\n }\n button.classList.add('link');\n tabLinks.appendChild(button);\n tabDropdown.appendChild(dropdownOpt);\n });\n};\nexport const setTabsEventHandlers = function (tabsElement) {\n const details = tabsElement.querySelectorAll(':scope > details');\n const summaries = tabsElement.querySelectorAll(':scope > details > summary');\n let buttonWrapper = tabsElement.querySelector(':scope .tabs__links');\n let buttons = tabsElement.querySelectorAll(':scope .tabs__links > button');\n const tabDropdown = tabsElement.querySelector(':scope .tabs__dropdown');\n let nextButton = tabsElement.querySelector(':scope .tabs__next');\n let scrollTimeout;\n window.isClicked = false;\n window.isScrolling = false;\n if (tabsElement.shadowRoot) {\n buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');\n buttonWrapper = tabsElement.shadowRoot.querySelector('.tabs__links');\n nextButton = tabsElement.shadowRoot.querySelector('.tabs__next');\n }\n // Set the on click for the tab buttons, these will open the details box it matches too\n buttons.forEach((button) => {\n button.addEventListener('click', (e) => {\n e.preventDefault();\n window.isClicked = true;\n if (button.classList.contains('disabled'))\n return false;\n buttons.forEach((buttonLoopItem) => {\n const buttonPressed = buttonLoopItem == button ? true : false;\n buttonLoopItem.setAttribute('aria-pressed', buttonPressed);\n });\n buttonWrapper.scroll({\n top: 0,\n left: button.offsetLeft,\n behavior: 'smooth',\n });\n //Handles showing correct content\n toggleTab(details, button);\n // Data layer Open Event\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openTab',\n tabTitle: button.textContent,\n });\n if (button.matches(':last-child')) {\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.setAttribute('disabled', 'disabled');\n }\n else {\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.removeAttribute('disabled');\n }\n });\n dropdownTabSelector(details, tabDropdown);\n });\n buttonWrapper.addEventListener('scrollend', () => {\n clearTimeout(scrollTimeout);\n scrollTimeout = setTimeout(function () {\n let buttonToClick = buttons[0];\n let closestOffset = Math.abs(buttonToClick.getBoundingClientRect().left);\n buttons.forEach((button) => {\n if (Math.abs(button.getBoundingClientRect().left) < closestOffset) {\n closestOffset = Math.abs(button.getBoundingClientRect().left);\n buttonToClick = button;\n }\n });\n if (window.isClicked) {\n window.isClicked = false;\n return false;\n }\n else {\n buttonToClick.click();\n }\n buttonToClick.focus();\n }, 500);\n });\n // Make sure we dont loose existing summary functionality\n summaries.forEach((summary, index) => {\n summary.addEventListener('click', (e) => {\n e.preventDefault();\n buttons[index].click();\n });\n });\n nextButton === null || nextButton === void 0 ? void 0 : nextButton.addEventListener('click', (e) => {\n e.preventDefault();\n const currentTab = buttonWrapper.querySelector('[aria-pressed=\"true\"]');\n const nextTab = currentTab.nextSibling;\n if (nextTab)\n nextTab.click();\n });\n if (tabsElement.classList.contains('tabs--guided')) {\n let touchstartX = 0;\n let touchstartY = 0;\n let touchendX = 0;\n let touchendY = 0;\n details.forEach((detail) => {\n detail.addEventListener('touchstart', (event) => {\n event.stopPropagation();\n touchstartX = event.changedTouches[0].screenX;\n touchstartY = event.changedTouches[0].screenY;\n });\n detail.addEventListener('touchend', (event) => {\n event.stopPropagation();\n touchendX = event.changedTouches[0].screenX;\n touchendY = event.changedTouches[0].screenY;\n const direction = getSwipeDirection(touchstartX, touchstartY, touchendX, touchendY);\n const currentTab = buttonWrapper.querySelector('[aria-pressed=\"true\"]');\n const nextTab = currentTab.nextSibling;\n const prevTab = currentTab.previousSibling;\n switch (direction) {\n case 'left':\n if (nextTab)\n nextTab.click();\n break;\n case 'right':\n if (prevTab)\n prevTab.click();\n break;\n }\n });\n });\n }\n};\nexport const toggleTab = function (details, button) {\n details.forEach((detail, detailsIndex) => {\n const detailsOpen = button.getAttribute('data-index') == detailsIndex ? true : false;\n if (detailsOpen)\n detail.setAttribute('open', detailsOpen);\n else\n detail.removeAttribute('open');\n });\n};\nexport const dropdownTabSelector = function (details, dropdown) {\n dropdown.addEventListener('change', (e) => {\n e.preventDefault();\n const selected = dropdown.options[dropdown.selectedIndex];\n toggleTab(details, selected);\n // Data layer Open Event\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'openTab',\n tabTitle: selected.innerText,\n });\n });\n};\nexport const openFirstTab = function (tabsElement) {\n if (!tabsElement.querySelector(':scope > details'))\n return false;\n const details = tabsElement.querySelectorAll(':scope > details');\n const buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');\n if (location.hash &&\n tabsElement.shadowRoot.querySelector(`.tabs__links [data-id=\"${location.hash.replace('#', '')}\"]`)) {\n tabsElement.shadowRoot\n .querySelector(`[data-id=\"${location.hash.replace('#', '')}\"]`)\n .setAttribute('aria-pressed', true);\n tabsElement.querySelector(`details[id=\"${location.hash.replace('#', '')}\"]`).setAttribute('open', true);\n }\n else if (!tabsElement.querySelector(`details[open]`)) {\n details[0].setAttribute('open', true);\n buttons[0].setAttribute('aria-pressed', true);\n }\n};\nconst tabs = function (tabsElement) {\n createTabsLinks(tabsElement);\n setTabsEventHandlers(tabsElement);\n openFirstTab(tabsElement);\n};\nexport default tabs;\n","import tabs from '../../modules/tabs.js';\n// Data layer Web component created\nwindow.dataLayer = window.dataLayer || [];\nwindow.dataLayer.push({\n event: 'customElementRegistered',\n element: 'tabs',\n});\nclass iamTabs extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n const assetLocation = document.body.hasAttribute('data-assets-location')\n ? document.body.getAttribute('data-assets-location')\n : '/assets';\n const loadCSS = `@import \"${assetLocation}/css/components/tabs.component.css\";`;\n const template = document.createElement('template');\n template.innerHTML = `\n <style>\n \n ${loadCSS}\n \n ${this.hasAttribute('css') ? `@import \"${this.getAttribute('css')}\";` : ``}\n </style>\n <link rel=\"stylesheet\" href=\"https://kit.fontawesome.com/8bd0fca975.css\" crossorigin=\"anonymous\">\n <div class=\"tabs\" part=\"tabs\">\n <div class=\"tabs__dropdown\" part=\"tab-dropdown\"></div>\n\n <div class=\"tabs__links__wrapper\" part=\"wrapper\">\n <div class=\"tabs__links\" part=\"tab-links\"></div>\n </div>\n <slot></slot>\n <button part=\"next-button\" class=\"btn btn-secondary btn-sm btn-compact fa-regular fa-chevron-right tabs__next\">Next</button>\n </div>\n `;\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n }\n connectedCallback() {\n const classList = this.classList.toString().replace('container', '');\n this.shadowRoot.querySelector('.tabs').setAttribute('class', `tabs ${classList}`);\n tabs(this);\n // #region Allow togle tags to control the tabs\n Array.from(this.querySelectorAll('details[id]')).forEach((details) => {\n const detailsID = details.getAttribute('id');\n Array.from(document.querySelectorAll(`[command=\"show-tab\"][commandfor=\"${detailsID}\"]`)).forEach((radioField) => {\n radioField.closest('label').addEventListener('click', (e) => {\n details.setAttribute('open', 'open');\n Array.from(document.querySelectorAll(`input[type=\"radio\"][command=\"show-tab\"][commandfor=\"${detailsID}\"]`)).forEach((input) => {\n input.checked = true;\n });\n });\n });\n });\n // #endregion\n }\n}\nexport default iamTabs;\n"],"names":["getSwipeDirection","touchstartX","touchstartY","touchendX","touchendY","limit","pageWidth","treshold","x","y","xy","yx","createTabsLinks","tabsElement","detailsORLinks","tabLinks","tabDropdown","tabLinksWrapper","tabindex","element","button","dropdownOpt","summary","isDisabled","setTabsEventHandlers","details","summaries","buttonWrapper","buttons","nextButton","scrollTimeout","e","buttonLoopItem","buttonPressed","toggleTab","dropdownTabSelector","buttonToClick","closestOffset","index","nextTab","detail","event","direction","currentTab","prevTab","detailsIndex","detailsOpen","dropdown","selected","openFirstTab","tabs","iamTabs","template","classList","detailsID","radioField","input"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.7.1--
|
|
2
|
+
* iamKey v7.7.1--beta5
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const v=e=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:e})};/*! js-cookie v3.0.5 | MIT */function h(e){for(var i=1;i<arguments.length;i++){var t=arguments[i];for(var a in t)e[a]=t[a]}return e}var f={read:function(e){return e[0]==='"'&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function u(e,i){function t(o,l,r){if(!(typeof document>"u")){r=h({},i,r),typeof r.expires=="number"&&(r.expires=new Date(Date.now()+r.expires*864e5)),r.expires&&(r.expires=r.expires.toUTCString()),o=encodeURIComponent(o).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var c="";for(var n in r)r[n]&&(c+="; "+n,r[n]!==!0&&(c+="="+r[n].split(";")[0]));return document.cookie=o+"="+e.write(l,o)+c}}function a(o){if(!(typeof document>"u"||arguments.length&&!o)){for(var l=document.cookie?document.cookie.split("; "):[],r={},c=0;c<l.length;c++){var n=l[c].split("="),p=n.slice(1).join("=");try{var d=decodeURIComponent(n[0]);if(r[d]=e.read(p,d),o===d)break}catch{}}return o?r[o]:r}}return Object.create({set:t,get:a,remove:function(o,l){t(o,"",h({},l,{expires:-1}))},withAttributes:function(o){return u(this.converter,h({},this.attributes,o))},withConverter:function(o){return u(h({},this.converter,o),this.attributes)}},{attributes:{value:Object.freeze(i)},converter:{value:Object.freeze(e)}})}var y=u(f,{path:"/"}),k=function(e,i,t,a){function o(l){return l instanceof t?l:new t(function(r){r(l)})}return new(t||(t=Promise))(function(l,r){function c(d){try{p(a.next(d))}catch(s){r(s)}}function n(d){try{p(a.throw(d))}catch(s){r(s)}}function p(d){d.done?l(d.value):o(d.value).then(c,n)}p((a=a.apply(e,i||[])).next())})};const b=(e,i)=>{Array.from(e.querySelectorAll('label:not([slot="checked"])')).forEach(t=>{const o=t.querySelector("input").value,l=t.textContent;o.toLowerCase().includes(i.value.toLowerCase())||l.toLowerCase().includes(i.value.toLowerCase())?t.removeAttribute("slot"):t.setAttribute("slot","notmatched")})},x=(e,i,t)=>k(void 0,void 0,void 0,function*(){const a=i.value,o=e.getAttribute("data-url"),l=e.querySelector("input");console.log(l);const r=l&&l.hasAttribute("type")?l.getAttribute("type"):"checkbox";let c=l&&l.hasAttribute("name")?l.getAttribute("name"):"tags";e.hasAttribute("data-name")&&(c=e.hasAttribute("data-name"));const n=`${o}?search_query=${encodeURI(a)}`;window.controller||(window.controller=[]),window.controller[n]&&window.controller[n].abort(),window.controller[n]=new AbortController;const{signal:p}=controller[n];try{yield fetch(n,{signal:p,method:"get",credentials:"same-origin",headers:new Headers({"Content-Type":"application/json",Accept:"application/json","X-Requested-With":"XMLHttpRequest","X-XSRF-TOKEN":y.get("XSRF-TOKEN")})}).then(d=>d.json()).then(d=>{let s="";for(let m=0;m<d.data.length;m++)e.querySelector(`[value="${d.data[m].value}"]`)||(s+=`<label class="tag dropdown__option"><input type="${r}" name="${e.hasAttribute("data-name")?e.getAttribute("data-name"):c}" value="${d.data[m].value}"/>${d.data[m].title}</label>`);return e.insertAdjacentHTML("beforeend",`${s}`),t(e,i),d})}catch(d){console.log(d)}}),g=e=>{const i=e.querySelector(":checked"),t=i?.getAttribute("name");e.setAttribute("slot","checked"),e.setAttribute("data-content",e.textContent);let a=[];localStorage.getItem("tags-"+t)!=null&&(a=JSON.parse(localStorage.getItem("tags-"+t))),a.includes(e.textContent)||(a.push(e.textContent),localStorage.setItem("tags-"+t,JSON.stringify(a)));let o=a.indexOf(e.textContent)+1;o>23&&(o=1),e?.classList.add(`wider-colour-${o+1}`)},w=(e,i)=>{i.addEventListener("keydown",t=>{var a;switch(t.keyCode){case 40:t.stopPropagation(),t.preventDefault(),(a=e.querySelector('label:not([slot="checked"]) input'))===null||a===void 0||a.focus();break}}),e.addEventListener("keydown",t=>{var a,o,l;const r=e.querySelectorAll(':scope > a, :scope > button, :scope > details > summary, :scope > label:not([slot="checked"]) > input'),c=e.querySelectorAll('a, button, input, label:not([slot="checked"]) > input');if(t&&t.target instanceof HTMLElement&&t.target.closest('a, button, summary, label:not([slot="checked"]) > input')){const n=document.activeElement,p=Array.from(r).indexOf(n)-1,d=Array.from(r).indexOf(n)+1;switch(t.keyCode){case 27:n.closest("details")?(t.stopPropagation(),t.preventDefault(),n.closest("details").removeAttribute("open"),n.closest("details").querySelector(":scope summary").focus()):t.stopPropagation();break;case 32:case 13:break;case 35:t.stopPropagation(),t.preventDefault(),(a=e.querySelector("details[open]"))===null||a===void 0||a.removeAttribute("open"),Array.from(c)[c.length-1].focus();break;case 36:t.stopPropagation(),t.preventDefault(),(o=e.querySelector("details[open]"))===null||o===void 0||o.removeAttribute("open"),Array.from(c)[0].focus();break;case 38:if(t.stopPropagation(),t.preventDefault(),Array.from(r).indexOf(n)>-1)Array.from(r)[p]!=null?Array.from(r)[p].focus():Array.from(r)[r.length-1].focus();else if(n.closest("details")){const s=n.closest("details").querySelectorAll("a, button, :scope details > summary");subPrevIndex=Array.from(s).indexOf(n)-1,Array.from(s)[subPrevIndex]!=null?Array.from(s)[subPrevIndex].focus():Array.from(s)[s.length-1].focus()}break;case 40:if(t.stopPropagation(),t.preventDefault(),Array.from(r).indexOf(n)>-1)Array.from(r)[d]!=null?Array.from(r)[d].focus():Array.from(r)[0].focus();else if(n.closest("details")){const s=(l=n.closest("details"))===null||l===void 0?void 0:l.querySelectorAll("a, button, :scope details > summary");subNextIndex=Array.from(s).indexOf(n)+1,Array.from(s)[subNextIndex]!=null?Array.from(s)[subNextIndex].focus():Array.from(s)[0].focus()}break}}})};v("iam-tag");class z extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const i=document.createElement("template");i.innerHTML=`
|
|
5
5
|
<style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* iamKey v7.7.1--
|
|
2
|
+
* iamKey v7.7.1--beta5
|
|
3
3
|
* Copyright 2022-2026 iamproperty
|
|
4
4
|
*/const a=n=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:n})};a("iam-tooltip");class l extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
|
|
5
5
|
<style>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { trackComponentRegistered } from '../_global.js';
|
|
11
|
+
import { videoHTML, openYoutubeVideo, openVimeoVideo } from '../../modules/videos.js';
|
|
12
|
+
trackComponentRegistered('iam-video-modal');
|
|
13
|
+
class iamVideo extends HTMLElement {
|
|
14
|
+
constructor() {
|
|
15
|
+
super();
|
|
16
|
+
this.attachShadow({ mode: 'open' });
|
|
17
|
+
const assetLocation = document.body.hasAttribute('data-assets-location')
|
|
18
|
+
? document.body.getAttribute('data-assets-location')
|
|
19
|
+
: '/assets';
|
|
20
|
+
const loadCSS = `@import "${assetLocation}/css/components/video.component.css";`;
|
|
21
|
+
const template = document.createElement('template');
|
|
22
|
+
template.innerHTML = /*HTML*/ `
|
|
23
|
+
<style>
|
|
24
|
+
${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
|
|
25
|
+
|
|
26
|
+
${loadCSS}
|
|
27
|
+
</style>
|
|
28
|
+
|
|
29
|
+
<link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous" />
|
|
30
|
+
${videoHTML}
|
|
31
|
+
`;
|
|
32
|
+
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
33
|
+
}
|
|
34
|
+
connectedCallback() {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
const id = this.getAttribute('id');
|
|
38
|
+
const button = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('button');
|
|
39
|
+
const videoWrapper = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.video-wrapper');
|
|
40
|
+
const img = this.shadowRoot.querySelector('img');
|
|
41
|
+
this.innerHTML = `<div class="embed" slot="video"></div>`;
|
|
42
|
+
const embed = this.querySelector('.embed');
|
|
43
|
+
videoWrapper.tabIndex = 6;
|
|
44
|
+
button === null || button === void 0 ? void 0 : button.tabIndex = -1;
|
|
45
|
+
if (this.hasAttribute('data-youtube')) {
|
|
46
|
+
const youtubeId = this.getAttribute('data-youtube');
|
|
47
|
+
img.setAttribute('src', `http://img.youtube.com/vi/${youtubeId}/hqdefault.jpg`);
|
|
48
|
+
videoWrapper.addEventListener('click', (e) => __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
embed === null || embed === void 0 ? void 0 : embed.setAttribute('id', youtubeId);
|
|
50
|
+
openYoutubeVideo(this);
|
|
51
|
+
button === null || button === void 0 ? void 0 : button.remove();
|
|
52
|
+
img === null || img === void 0 ? void 0 : img.remove();
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
else if (this.hasAttribute('data-vimeo')) {
|
|
56
|
+
const vimeoId = this.getAttribute('data-vimeo');
|
|
57
|
+
img.setAttribute('src', `https://vumbnail.com/${vimeoId}.jpg`);
|
|
58
|
+
videoWrapper.addEventListener('click', (e) => __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
openVimeoVideo(this);
|
|
60
|
+
button === null || button === void 0 ? void 0 : button.remove();
|
|
61
|
+
img === null || img === void 0 ? void 0 : img.remove();
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export default iamVideo;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* iamKey v7.7.1--beta5
|
|
3
|
+
* Copyright 2022-2026 iamproperty
|
|
4
|
+
*/const p=n=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"customElementRegistered",element:n})};var m=function(n,t,r,o){function i(e){return e instanceof r?e:new r(function(c){c(e)})}return new(r||(r=Promise))(function(e,c){function l(a){try{s(o.next(a))}catch(u){c(u)}}function d(a){try{s(o.throw(a))}catch(u){c(u)}}function s(a){a.done?e(a.value):i(a.value).then(l,d)}s((o=o.apply(n,t||[])).next())})};const v=`<div class="video-wrapper">
|
|
5
|
+
<slot name="video"></slot>
|
|
6
|
+
<picture>
|
|
7
|
+
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" lazy="" />
|
|
8
|
+
</picture>
|
|
9
|
+
<button class="btn btn-compact fa-play m-0 colour-success">Play</button>
|
|
10
|
+
</div>`,h=()=>m(void 0,void 0,void 0,function*(){return new Promise((n,t)=>{const r=new Image;r.onload=function(){const o=document.createElement("script");o.src="https://www.youtube.com/iframe_api";const i=document.getElementsByTagName("script")[0];i.parentNode.insertBefore(o,i),document.body.classList.add("youtubeLoaded"),n(!0)},r.onerror=function(){t(!1)},r.src="https://youtube.com/favicon.ico"})}),f=(n,t)=>m(void 0,void 0,void 0,function*(){if(typeof window.player>"u"&&(window.player=[]),typeof window.player[t]<"u"&&typeof window.player[t].pauseVideo=="function")return window.player[t].playVideo(),!1;console.log("hi2"),window.player[t]=new YT.Player(t,{height:"100%",width:"100%",videoId:t,playerVars:{modestbranding:1,playsinline:1,rel:0,showinfo:0},events:{onReady:r,onStateChange:i}});function r(e){e.target.playVideo()}let o=!1;function i(e){e.data==YT.PlayerState.PLAYING&&!o&&(document.getElementById(t).classList.add("player-ready"),o=!0)}}),g=n=>m(void 0,void 0,void 0,function*(){const t=n.shadowRoot.querySelector(".embed"),r=n.getAttribute("data-youtube");document.body.classList.contains("youtubeLoaded")||(yield h());const o=new CustomEvent("play-video",{detail:{"Video Type":"YoutTube",ID:r}});n.dispatchEvent(o);const i=setInterval(()=>{typeof YT<"u"&&(clearInterval(i),f(t,r))},200);setTimeout(function(){clearInterval(i)},2e3)}),w=n=>m(void 0,void 0,void 0,function*(){const t=n.querySelector(".embed"),r=n.getAttribute("data-vimeo"),o=new CustomEvent("play-video",{detail:{"Video Type":"Vimeo",ID:r}});n.dispatchEvent(o),window.dataLayer.push(o.detail),t.querySelector("iframe")||(t.innerHTML=`<iframe src="https://player.vimeo.com/video/${r}?autoplay=1" width="100%" height="100%" frameborder="0" allow="autoplay; encrypted-media" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>`)});var b=function(n,t,r,o){function i(e){return e instanceof r?e:new r(function(c){c(e)})}return new(r||(r=Promise))(function(e,c){function l(a){try{s(o.next(a))}catch(u){c(u)}}function d(a){try{s(o.throw(a))}catch(u){c(u)}}function s(a){a.done?e(a.value):i(a.value).then(l,d)}s((o=o.apply(n,t||[])).next())})};p("iam-video-modal");class y extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),document.body.hasAttribute("data-assets-location")&&document.body.getAttribute("data-assets-location");const t=document.createElement("template");t.innerHTML=`
|
|
11
|
+
<style>
|
|
12
|
+
${this.hasAttribute("css")?`@import "${this.getAttribute("css")}";`:""}
|
|
13
|
+
|
|
14
|
+
@keyframes spin{to{rotate:1turn}}@layer elements{*,*::before,*::after{box-sizing:border-box}button{border-radius:0;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[role=button]{cursor:pointer}button:focus:not(:focus-visible){outline:0}:is(button,[type=button],[type=reset],[type=submit]){-webkit-appearance:button}:is(button,[type=button],[type=reset],[type=submit]):not(:disabled){cursor:pointer}.btn{--btn-margin: 1rem;--btn-padding-block: 0.75rem;--btn-padding-inline: 2.5rem;--btn-border-width: 2px;--btn-font-size: 1.125rem;--btn-line-height: 1.25rem;display:inline-block;font-weight:bold;text-align:left;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;color:var(--colour-btn);font-size:var(--btn-font-size);line-height:var(--btn-line-height);padding:var(--btn-padding-block) var(--btn-padding-inline);border-radius:1.5rem;margin-bottom:var(--btn-margin);background:none;transition:border .5s,background .5s,color .5s;height:auto;max-width:fit-content;appearance:none;white-space:nowrap}@media screen and (min-width: 36em){.btn{--btn-margin: 1.5rem}}.btn:not(.btn-secondary)[class*=colour-]{--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour)}.btn:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){--colour-btn: #fcfcfc}.btn:not(.border-0){background:var(--colour-btn-bg);border:var(--btn-border-width) solid var(--colour-btn-border)}.btn:not(:last-child){margin-right:var(--btn-margin)}a:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active) .btn,.btn:is(:hover,:focus,.hover,:focus-within):not([disabled],:active,.active){outline:0;text-decoration:none;background:var(--colour-btn-bg-hover);color:var(--colour-btn-hover);border-radius:1.5rem}a:is(:active,.active):not([disabled]) .btn,.btn:is(:active,.active):not([disabled]){filter:brightness(85%);transition:background .1s,color .1s;color:var(--colour-btn);border-radius:1.5rem}a:disabled .btn,.btn:disabled,[disabled] .btn,.btn[disabled]{opacity:.4;cursor:not-allowed}.btn.btn-complete{--colour: var(--colour-success);--colour-btn-bg-hover: var(--colour);--colour-btn-border-hover: var(--colour);--colour-btn-hover: var(--colour-primary-theme);--colour-btn-bg: var(--colour);--colour-btn-border: var(--colour);position:relative;padding-left:3.5rem;padding-right:3.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn-complete,.btn.btn-complete:is(:hover,:focus,.hover):not([disabled],:active,.active){padding-left:2.5rem;padding-right:2.5rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn-complete:before,.btn.btn-complete:is(:hover,:focus,.hover):not([disabled],:active,.active):before{content:"\uF00C";font-family:"Font Awesome 7 Pro";margin-right:1rem;font-style:inherit;width:1rem;display:inline-block;height:var(--btn-line-height);vertical-align:bottom}.btn.btn-sm{--btn-padding-block: 0.5rem;--btn-padding-inline: 2rem;--btn-margin: 0.5rem;--btn-font-size: 1rem}.btn[class*=fa-]:before{content:var(--fa);font-family:"Font Awesome 7 Pro"}.btn.btn[class*=fa-after]{padding-right:4rem}.btn.btn[class*=fa-after]:before{margin-right:0;margin-right:.375rem;position:absolute;right:1.5rem;top:50%;transform:translate(0, -50%)}.btn:not(.btn-compact):before{margin-right:1rem}.btn i[class*=fa-]{--fa-width: 1em;font-family:"Font Awesome 7 Pro";margin-right:1rem;line-height:1em;font-style:inherit}.btn i[class*=fa-]:not(:first-child){margin-left:1rem;margin-right:0}.btn.btn--prompt:after{content:"";height:var(--btn-line-height);width:1rem;display:inline-block;background:currentColor;mask-image:var(--icon-arrow);mask-size:100%;mask-repeat:no-repeat;mask-position:50% 50%;-webkit-mask-image:var(--icon-arrow);-webkit-mask-size:100%;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;vertical-align:bottom;margin-left:1rem}a:is(:hover,:focus,.hover):not([disabled],:active,.active) .btn.btn--prompt:after,.btn.btn--prompt:is(:hover,:focus,.hover):not([disabled],:active,.active):after{margin-left:1.5rem;margin-right:-0.5rem}.btn-filter:after{content:"\uF1DE";display:inline-block;margin-left:1em;margin-bottom:-0.15em;height:1em;width:1em;z-index:var(--index-focus);color:currentColor;font-weight:300;font-family:"Font Awesome 7 Pro"}}@layer elements{.btn-compact{--compact-size: 3rem;padding:0 !important;margin-bottom:.5rem;text-align:center;width:var(--compact-size);min-width:var(--compact-size);max-width:var(--compact-size);height:var(--compact-size) !important;min-height:var(--compact-size) !important;max-height:var(--compact-size) !important;align-content:center;line-height:1 !important;text-indent:-500px;overflow:hidden;position:relative;font-size:1rem;&:not(:last-child){margin-right:.5rem}&:before{content:var(--fa);position:absolute;display:block;top:0;left:0;width:100%;height:100%;text-indent:0;line-height:calc(var(--compact-size) - .25rem);font-weight:900}[class*=fa-]:before{line-height:calc(var(--compact-size) - .25rem);@container style(--theme: dark){color:white}}&.btn-sm{--compact-size: 2.5rem;font-size:1rem;padding:0 !important}&.btn-action{--compact-size: 2rem;font-size:1rem;&:before{font-size:1em;font-weight:400}}&.btn-secondary{--colour-btn-bg: transparent;--colour-btn-border: transparent;border-color:transparent;&:not([class*=colour-]){--colour: var(--colour-light)}}&.btn-secondary:is(:hover,:focus,.hover,:active,.active,[aria-expanded],:focus-within):not([disabled]):not(.btn-collapse){background-color:var(--colour);color:var(--colour-primary-theme);border-color:var(--colour);&:is(.colour-primary,.colour-dark,.colour-danger,.colour-black){color:var(--colour-inverted)}}&[data-number]{position:relative}&[data-number]:after{content:attr(data-number);position:absolute;top:.5em;z-index:99;background:var(--colour-danger);height:1.5em;width:1.5em;border-radius:50%;text-indent:0;left:50%;font-size:.5em;line-height:1.5em;text-align:center;color:white;letter-spacing:-0.1em;font-family:arial,sans-serif}}.btn-compact{&:is(.fa-left,.fa-chevron-left,.fa-right,.fa-chevron-right,.fa-up,.fa-chevron-up,.fa-down,.fa-chevron-down,.fa-plus,.fa-bars,.fa-edit,.fa-envelope,.fa-calendar){--iso-display: block;--iso-font-size: 1.5rem;--iso-border-radius: 50%;--iso-text-indent: -500px}}@container style(--font-body){.btn-compact{font-size:var(--iso-font-size, 0.6rem) !important;text-indent:var(--iso-text-indent, 0px);white-space:initial;&:not(.btn-action){border-radius:var(--iso-border-radius, 0.25rem) !important}&:before{display:var(--iso-display, none);font-family:monospace !important;content:var(--iso) !important}}}@container style(--fa-font-regular){.btn-compact{text-indent:-500px;font-size:1rem !important;&:not(.btn-action){border-radius:50% !important}&:before{font-family:"Font Awesome 7 Pro" !important;content:var(--fa) !important;display:block}}}}@layer utilities{.text-heading{color:var(--colour-heading) !important}.text-primary{color:var(--colour-primary) !important}.bg-primary{--bg-colour: var(--colour-primary) !important;background-color:var(--colour-primary) !important}.hover-primary:is(:hover,:focus,:focus-within){--bg-colour: var(--colour-primary) !important;background-color:var(--colour-primary) !important}.colour-primary{--colour: var(--colour-primary) !important}.text-secondary{color:var(--colour-secondary) !important}.bg-secondary{--bg-colour: var(--colour-secondary) !important;background-color:var(--colour-secondary) !important}.hover-secondary:is(:hover,:focus,:focus-within){--bg-colour: var(--colour-secondary) !important;background-color:var(--colour-secondary) !important}.colour-secondary{--colour: var(--colour-secondary) !important}.text-info{color:var(--colour-info) !important}.bg-info{--bg-colour: var(--colour-info) !important;background-color:var(--colour-info) !important}.hover-info:is(:hover,:focus,:focus-within){--bg-colour: var(--colour-info) !important;background-color:var(--colour-info) !important}.colour-info{--colour: var(--colour-info) !important}.text-warning{color:var(--colour-warning) !important}.bg-warning{--bg-colour: var(--colour-warning) !important;background-color:var(--colour-warning) !important}.hover-warning:is(:hover,:focus,:focus-within){--bg-colour: var(--colour-warning) !important;background-color:var(--colour-warning) !important}.colour-warning{--colour: var(--colour-warning) !important}.text-success{color:var(--colour-success) !important}.bg-success{--bg-colour: var(--colour-success) !important;background-color:var(--colour-success) !important}.hover-success:is(:hover,:focus,:focus-within){--bg-colour: var(--colour-success) !important;background-color:var(--colour-success) !important}.colour-success{--colour: var(--colour-success) !important}.text-complete{color:var(--colour-complete) !important}.bg-complete{--bg-colour: var(--colour-complete) !important;background-color:var(--colour-complete) !important}.hover-complete:is(:hover,:focus,:focus-within){--bg-colour: var(--colour-complete) !important;background-color:var(--colour-complete) !important}.colour-complete{--colour: var(--colour-complete) !important}.text-danger{color:var(--colour-danger) !important}.bg-danger{--bg-colour: var(--colour-danger) !important;background-color:var(--colour-danger) !important}.hover-danger:is(:hover,:focus,:focus-within){--bg-colour: var(--colour-danger) !important;background-color:var(--colour-danger) !important}.colour-danger{--colour: var(--colour-danger) !important}.text-dark{color:var(--colour-dark) !important}.bg-dark{--bg-colour: var(--colour-dark) !important;background-color:var(--colour-dark) !important}.hover-dark:is(:hover,:focus,:focus-within){--bg-colour: var(--colour-dark) !important;background-color:var(--colour-dark) !important}.colour-dark{--colour: var(--colour-dark) !important}.text-light{color:var(--colour-light) !important}.bg-light{--bg-colour: var(--colour-light) !important;background-color:var(--colour-light) !important}.hover-light:is(:hover,:focus,:focus-within){--bg-colour: var(--colour-light) !important;background-color:var(--colour-light) !important}.colour-light{--colour: var(--colour-light) !important}.text-canvas{color:var(--colour-canvas) !important}.bg-canvas{--bg-colour: var(--colour-canvas) !important;background-color:var(--colour-canvas) !important}.hover-canvas:is(:hover,:focus,:focus-within){--bg-colour: var(--colour-canvas) !important;background-color:var(--colour-canvas) !important}.colour-canvas{--colour: var(--colour-canvas) !important}.text-white{color:var(--colour-white) !important}.bg-white{--bg-colour: var(--colour-white) !important;background-color:var(--colour-white) !important}.hover-white:is(:hover,:focus,:focus-within){--bg-colour: var(--colour-white) !important;background-color:var(--colour-white) !important}.colour-white{--colour: var(--colour-white) !important}.text-body{color:var(--colour-body)}}@layer components{.video-wrapper{display:block;position:relative;width:100%;height:auto;aspect-ratio:16/9;background-color:var(--colour-light);margin-bottom:2rem;cursor:pointer}.video-wrapper:before{font-family:"Font Awesome 7 Pro";content:"\uF3F4";position:absolute;font-weight:900;color:var(--colour-heading);animation:spin 1.5s infinite steps(10);font-size:1.5em;top:50%;left:50%;translate:-50% -50%;z-index:1}.video-wrapper img{position:absolute;inset:0;z-index:3;width:calc(100% + 2px);height:100%;object-fit:cover;margin-inline:-1px}.video-wrapper button{pointer-events:none;position:absolute;top:50%;left:50%;z-index:4;transform:translate(-50%, -50%)}.video-wrapper:is(:hover,:focus):not(:active) button{--colour-btn-bg: var(--colour-white)!important;--colour-btn-border: var(--colour-white)!important}.video-wrapper:is(:active) button{filter:brightness(85%)}dialog .video-wrapper{margin-bottom:0}}::slotted(.embed){position:absolute;inset:0;z-index:4;aspect-ratio:16/9;width:calc(100% + 2px);height:100%;margin-inline:-1px;margin-block:0}/*# sourceMappingURL=assets/css/components/video.component.css.map */
|
|
15
|
+
|
|
16
|
+
</style>
|
|
17
|
+
|
|
18
|
+
<link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous" />
|
|
19
|
+
${v}
|
|
20
|
+
`,this.shadowRoot.appendChild(t.content.cloneNode(!0))}connectedCallback(){return b(this,void 0,void 0,function*(){var t,r;this.getAttribute("id");const o=(t=this.shadowRoot)===null||t===void 0?void 0:t.querySelector("button"),i=(r=this.shadowRoot)===null||r===void 0?void 0:r.querySelector(".video-wrapper"),e=this.shadowRoot.querySelector("img");this.innerHTML='<div class="embed" slot="video"></div>';const c=this.querySelector(".embed");if(i.tabIndex=6,o==null||(o.tabIndex=-1),this.hasAttribute("data-youtube")){const l=this.getAttribute("data-youtube");e.setAttribute("src",`http://img.youtube.com/vi/${l}/hqdefault.jpg`),i.addEventListener("click",d=>b(this,void 0,void 0,function*(){c?.setAttribute("id",l),g(this),o?.remove(),e?.remove()}))}else if(this.hasAttribute("data-vimeo")){const l=this.getAttribute("data-vimeo");e.setAttribute("src",`https://vumbnail.com/${l}.jpg`),i.addEventListener("click",d=>b(this,void 0,void 0,function*(){w(this),o?.remove(),e?.remove()}))}})}}export{y as default};
|
|
21
|
+
//# sourceMappingURL=video.component.min.js.map
|