mp-design-system 2.0.46 → 2.0.48

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.
@@ -1,14 +1,14 @@
1
- (()=>{function U(){Array.from(document.querySelectorAll(".c-accordion__title")).forEach(J)}function J(e){e.addEventListener("click",X())}function X(){return e=>{var t=e.currentTarget.parentElement;t.classList.toggle("c-accordion__item--open")}}var A=U;function Z(){let e=0,t=document.querySelectorAll(".c-hero__image-bg"),o=document.querySelectorAll(".c-hero__image-fg");o.length>0&&setInterval(()=>{for(var n of t)n.style.opacity=0;e=e!=t.length-1?e+1:0,t[e].style.opacity=1;for(var c of o)c.style.opacity=0;o[e].style.opacity=1},5e3)}var C=Z;function ee(){let e=document.getElementById("clearForm");e&&e.addEventListener("click",function(){this.closest("form").elements.forEach(o=>{if(o.value!=""){if(o.type.toLowerCase()=="text"||o.type.toLowerCase()=="email"||o.type.toLowerCase()=="tel"||o.type.toLowerCase()=="select-one"||o.type.toLowerCase()=="textarea"){o.value="";return}else if(o.type.toLowerCase()=="checkbox"){o.checked=!1;return}}})})}var w=ee;function te(){document.querySelectorAll(".c-comparison-table").forEach(oe)}function oe(e){let t=e.parentNode.parentNode,o=t.querySelector(".c-comparison-table tbody"),n=t.querySelector(".c-comparison-table thead"),c=t.parentElement.querySelector(".c-comparison-table__mobile");if(!o||!n||!c)return;let r=Array.from(n.children[0].children).filter((s,d)=>d).map(s=>({info:s.innerHTML})),i=Array.from(n.children[1].children).filter((s,d)=>d).map(s=>({buttons:s.innerHTML})),a=r.map((s,d)=>({...s,...i[d],table:[]}));Array.from(o.children).forEach(s=>{if(s.classList.contains("c-comparison-table__title"))a.forEach(d=>{d.table.push({type:"title",title:s.children[0].textContent})});else{let d=Array.from(s.children),m=d.shift();d.forEach((h,p)=>{a[p].table.push({type:"row",key:m.textContent,value:h.innerHTML})})}}),a.forEach(s=>{let d=ne(s);c.appendChild(d)})}function ne(e){let t=document.createElement("article");return t.innerHTML=`${e.info}${e.buttons}
1
+ (()=>{function U(){Array.from(document.querySelectorAll(".c-accordion__title")).forEach(J)}function J(e){e.addEventListener("click",X())}function X(){return e=>{var t=e.currentTarget.parentElement;t.classList.toggle("c-accordion__item--open")}}var E=U;function Z(){let e=0,t=document.querySelectorAll(".c-hero__image-bg"),o=document.querySelectorAll(".c-hero__image-fg");o.length>0&&setInterval(()=>{for(var n of t)n.style.opacity=0;e=e!=t.length-1?e+1:0,t[e].style.opacity=1;for(var r of o)r.style.opacity=0;o[e].style.opacity=1},5e3)}var w=Z;function ee(){let e=document.getElementById("clearForm");e&&e.addEventListener("click",function(){this.closest("form").elements.forEach(o=>{if(o.value!=""){if(o.type.toLowerCase()=="text"||o.type.toLowerCase()=="email"||o.type.toLowerCase()=="tel"||o.type.toLowerCase()=="select-one"||o.type.toLowerCase()=="textarea"){o.value="";return}else if(o.type.toLowerCase()=="checkbox"){o.checked=!1;return}}})})}var C=ee;function te(){document.querySelectorAll(".c-comparison-table").forEach(oe)}function oe(e){let t=e.parentNode.parentNode,o=t.querySelector(".c-comparison-table tbody"),n=t.querySelector(".c-comparison-table thead"),r=t.parentElement.querySelector(".c-comparison-table__mobile");if(!o||!n||!r)return;let c=Array.from(n.children[0].children).filter((a,s)=>s).map(a=>({info:a.innerHTML})),i=Array.from(n.children[1].children).filter((a,s)=>s).map(a=>({buttons:a.innerHTML})),l=c.map((a,s)=>({...a,...i[s],table:[]}));Array.from(o.children).forEach(a=>{if(a.classList.contains("c-comparison-table__title"))l.forEach(s=>{s.table.push({type:"title",title:a.children[0].textContent})});else{let s=Array.from(a.children),h=s.shift();s.forEach((m,p)=>{l[p].table.push({type:"row",key:h.textContent,value:m.innerHTML})})}}),l.forEach(a=>{let s=ne(a);r.appendChild(s)})}function ne(e){let t=document.createElement("article");return t.innerHTML=`${e.info}${e.buttons}
2
2
  <table class="c-comparison-table">
3
3
  ${e.table.map(o=>o.type==="title"?`<tr class="c-comparison-table__title"><th><span>${o.title}</span></th><th></th></tr>`:`<tr>
4
4
  <td>${o.key}</td>
5
5
  <td>${o.value}</td>
6
6
  </tr>`).join("")}
7
- </table>`,t}var S=te;function ce(){Array.from(document.querySelectorAll(".c-facet__toggle")).forEach(re)}function re(e){e.addEventListener("click",ie())}function ie(){return e=>{e.preventDefault();var t=e.currentTarget,o=t.parentElement;o.classList.toggle("c-facet--open");let n=o.classList.contains("c-facet--open")?"true":"false";t.setAttribute("aria-expanded",n)}}var x=ce;function ae(){let e=document.querySelectorAll(".c-gallery__main .c-gallery__slide"),t=document.querySelectorAll(".c-gallery__thumbnails .c-gallery__slide");t.forEach(n=>n.addEventListener("click",function(c){t.forEach(function(r){r!=c.target.parentNode&&r.classList.remove("active")}),c.target.parentNode.classList.add("active"),e.forEach(function(r){r.dataset.slide==n.dataset.slide?r.classList.add("active"):r.classList.remove("active")})})),e.forEach(function(n){n.classList.contains("c-gallery__video")||n.addEventListener("click",o)});function o(){let n=document.querySelector(".c-gallery__main").cloneNode(!0);n.classList.remove("c-gallery__main"),n.classList.add("c-lightbox"),n.querySelectorAll(".c-gallery__slide").forEach(function(c){if(c.classList.contains("c-gallery__video")&&c.remove(),!c.classList.contains("c-gallery__video")){var r=c.querySelector("img");r.srcset!=""&&r.removeAttribute("srcset");var i=r.getAttribute("src");i?i.indexOf("?")!==-1?r.setAttribute("src",i.split("?")[0]+"?quality=90&width=2176"):r.setAttribute("src",i+"?quality=90&width=2176"):(console.log(r),console.log("has no src defined..."))}c.classList.add("c-lightbox__slide"),c.classList.remove("c-gallery__slide")}),document.body.appendChild(n),n.insertAdjacentHTML("beforeend",'<a class="c-lightbox__prev"></a><a class="c-lightbox__next"></a>'),n.querySelector(".c-lightbox__prev").addEventListener("click",function(){let c=n.querySelector(".active"),r=n.querySelector('[data-slide="'+(parseInt(c.dataset.slide)-1)+'"]');r!=null&&(c.classList.remove("active"),r.classList.add("active"))}),n.querySelector(".c-lightbox__next").addEventListener("click",function(){let c=n.querySelector(".active"),r=n.querySelector('[data-slide="'+(parseInt(c.dataset.slide)+1)+'"]');r!=null&&(c.classList.remove("active"),r.classList.add("active"))}),n.addEventListener("click",function(c){c.target===c.currentTarget&&n.remove()})}}var q=ae;function k(e){let t=[...e];for(let o=t.length-1;o>0;o--){let n=Math.floor(Math.random()*(o+1));[t[o],t[n]]=[t[n],t[o]]}return t}function T(){return!window.matchMedia("(prefers-reduced-motion: no-preference)").matches}var M=(e,t)=>{let o=!1;return()=>{o||(e(),o=!0,setTimeout(()=>o=!1,t))}},se=(e,t,o)=>e*(1-o)+t*o,le=(e,t=0,o=1)=>Math.min(o,Math.max(t,e)),de=(e,t,o)=>le((o-e)/(t-e)),H=(e,t,o,n,c)=>se(o,n,de(e,t,c));function fe(){let e=0,t=document.querySelector(".c-hero__canvas");if(!t)return;let o=t.getContext("2d"),n="rgb(19,170,19)",c=T(),r=147,i=0,a=.5,s=.25,d,m,h,p,v=[],_;function L(){e=e+.005,o.clearRect(0,0,t.width,t.height),o.beginPath();for(let l=t.width;l>0;l--)o.lineTo(l,t.height*.5-Math.cos(e+l/5*.03)*(m*.3));o.lineWidth=.5,o.strokeStyle=n,o.stroke(),v.forEach(l=>{K(l.x,l.y,H(0,v.length,i,a,l.counter)),l.counter+=l.direction,l.counter>=v.length&&(l.direction=-1*s),l.counter<0&&(l.direction=s)}),c||window.requestAnimationFrame(L)}function E(){d=t.scrollWidth,m=t.scrollHeight,o.canvas.width=d,o.canvas.height=m,h=Math.ceil(d/r),p=Math.ceil(m/r),_=(h+1)*(p+1);let l=k(Array.from({length:_},(f,u)=>u));v=[];for(let f=0;f<=h;f++)for(let u=0;u<=p;u++)v.push({counter:l.shift(),direction:Math.random()>.5?s:-1*s,x:r*(f+1)-r/1,y:r*(u+1)-r/2})}function K(l,f,u){o.beginPath(),o.moveTo(l-14,f),o.lineTo(l+14,f),o.strokeStyle=`rgba(255, 255, 255, ${u}`,o.moveTo(l,f-14),o.lineTo(l,f+14),o.stroke()}window.addEventListener("resize",E),E(),L()}var B=fe;function ue(){document.addEventListener("DOMContentLoaded",()=>{let e=document.getElementById("videoBackground");if(typeof e<"u"&&e!=null){let r=function(){n.classList.contains("u-hidden")?(e.paused&&e.play(),c.paused||c.pause()):e.paused||e.pause()},t=window.matchMedia("(prefers-reduced-motion: reduce)");(!t||t.matches)&&e.pause();let o=document.getElementById("playVideo"),n=document.getElementById("lightboxVideo"),c=n.querySelector(".c-lightbox__video");o.addEventListener("click",i=>{e.pause(),n.classList.remove("u-hidden"),r()}),n.addEventListener("click",i=>{i.target.classList.contains("c-lightbox__video")||(e.setAttribute("autoplay",""),n.classList.add("u-hidden"),r())}),window.addEventListener("keydown",function(i){i.key=="Escape"&&(e.setAttribute("autoplay",""),n.classList.add("u-hidden"),r())})}})}var I=ue;function me(){setTimeout(function(){document.querySelectorAll(".c-hotspot-image__button").forEach(t=>{t.addEventListener("click",he)}),document.addEventListener("keydown",ve),document.addEventListener("click",g)},2e3)}function he(e){e.preventDefault();let t=e.currentTarget,o=t.getAttribute("aria-controls"),n=document.getElementById(o);n.classList.contains("c-hotspot-image__tooltip--open")?b(t,n):pe(t,n)}function pe(e,t){t.classList.add("c-hotspot-image__tooltip--open"),t.setAttribute("aria-hidden","false"),e.setAttribute("aria-expanded","true"),document.addEventListener("click",g)}function b(e,t){t.classList.remove("c-hotspot-image__tooltip--open"),t.setAttribute("aria-hidden","true"),e.setAttribute("aria-expanded","false"),document.removeEventListener("click",g)}function ve(e){if(e.key==="Escape"){let t=document.querySelector(".c-hotspot-image__tooltip--open");if(t){let o=document.querySelector(`[aria-controls="${t.id}"]`);b(o,t)}}}function g(e){let t=document.querySelector(".c-hotspot-image__tooltip--open");if(t&&!t.contains(e.target)&&!e.target.closest(".c-hotspot-image__button")){let o=document.querySelector(`[aria-controls="${t.id}"]`);b(o,t)}}var O=me;function ye(){let e=document.querySelector(".c-internal-nav--sticky");if(!e)return;let t={root:null,rootMargin:"0px",threshold:1},o=(i,a)=>{let s=i[0].isIntersecting;e.classList.toggle("c-internal-nav--stuck",!s)};new IntersectionObserver(o,t).observe(e);let c=e.offsetHeight,r=()=>{c=e.offsetHeight,Array.from(e.querySelectorAll("a")).forEach(a=>{let s=a.getAttribute("href").replace("#",""),d=document.getElementById(s);d&&(d.style.scrollMarginTop=`${c}px`)})};window.addEventListener("resize",r),r()}var $=ye;function be(){let e=document.querySelectorAll(".c-off-canvas__toggle");e.length&&(e.forEach(t=>{F(t,N(t)),t.addEventListener("click",()=>Le(t))}),window.addEventListener("resize",()=>{e.forEach(t=>{F(t,N(t))})}))}function N(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function F(e,t){let o=document.getElementById(e.getAttribute("data-target"));t===!0?ge(o):_e(o)}function ge(e){e.classList.add("c-off-canvas"),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","true");let t=e.querySelector('[data-off-canvas="header"]'),o=e.querySelector('[data-off-canvas="main"]'),n=e.querySelector('[data-off-canvas="footer"]'),c=t!==null?t.outerHTML:"",r=o!==null?o.outerHTML:"",i=n!==null?n.outerHTML:"";e.innerHTML=`
7
+ </table>`,t}var S=te;function re(){Array.from(document.querySelectorAll(".c-facet__toggle")).forEach(ce)}function ce(e){e.addEventListener("click",ie())}function ie(){return e=>{e.preventDefault();var t=e.currentTarget,o=t.parentElement;o.classList.toggle("c-facet--open");let n=o.classList.contains("c-facet--open")?"true":"false";t.setAttribute("aria-expanded",n)}}var x=re;function ae(){let e=document.querySelectorAll(".c-gallery__main .c-gallery__slide"),t=document.querySelectorAll(".c-gallery__thumbnails .c-gallery__slide");t.forEach(n=>n.addEventListener("click",function(r){t.forEach(function(c){c!=r.target.parentNode&&c.classList.remove("active")}),r.target.parentNode.classList.add("active"),e.forEach(function(c){c.dataset.slide==n.dataset.slide?c.classList.add("active"):c.classList.remove("active")})})),e.forEach(function(n){n.classList.contains("c-gallery__video")||n.addEventListener("click",o)});function o(){let n=document.querySelector(".c-gallery__main").cloneNode(!0);n.classList.remove("c-gallery__main"),n.classList.add("c-lightbox"),n.querySelectorAll(".c-gallery__slide").forEach(function(r){if(r.classList.contains("c-gallery__video")&&r.remove(),!r.classList.contains("c-gallery__video")){var c=r.querySelector("img");c.srcset!=""&&c.removeAttribute("srcset");var i=c.getAttribute("src");i?i.indexOf("?")!==-1?c.setAttribute("src",i.split("?")[0]+"?quality=90&width=2176"):c.setAttribute("src",i+"?quality=90&width=2176"):(console.log(c),console.log("has no src defined..."))}r.classList.add("c-lightbox__slide"),r.classList.remove("c-gallery__slide")}),document.body.appendChild(n),n.insertAdjacentHTML("beforeend",'<a class="c-lightbox__prev"></a><a class="c-lightbox__next"></a>'),n.querySelector(".c-lightbox__prev").addEventListener("click",function(){let r=n.querySelector(".active"),c=n.querySelector('[data-slide="'+(parseInt(r.dataset.slide)-1)+'"]');c!=null&&(r.classList.remove("active"),c.classList.add("active"))}),n.querySelector(".c-lightbox__next").addEventListener("click",function(){let r=n.querySelector(".active"),c=n.querySelector('[data-slide="'+(parseInt(r.dataset.slide)+1)+'"]');c!=null&&(r.classList.remove("active"),c.classList.add("active"))}),n.addEventListener("click",function(r){r.target===r.currentTarget&&n.remove()})}}var k=ae;function q(e){let t=[...e];for(let o=t.length-1;o>0;o--){let n=Math.floor(Math.random()*(o+1));[t[o],t[n]]=[t[n],t[o]]}return t}function T(){return!window.matchMedia("(prefers-reduced-motion: no-preference)").matches}var M=(e,t)=>{let o=!1;return()=>{o||(e(),o=!0,setTimeout(()=>o=!1,t))}},se=(e,t,o)=>e*(1-o)+t*o,le=(e,t=0,o=1)=>Math.min(o,Math.max(t,e)),de=(e,t,o)=>le((o-e)/(t-e)),H=(e,t,o,n,r)=>se(o,n,de(e,t,r));function fe(){let e=0,t=document.querySelector(".c-hero__canvas");if(!t)return;let o=t.getContext("2d"),n="rgb(19,170,19)",r=T(),c=147,i=0,l=.5,a=.25,s,h,m,p,v=[],_;function A(){e=e+.005,o.clearRect(0,0,t.width,t.height),o.beginPath();for(let d=t.width;d>0;d--)o.lineTo(d,t.height*.5-Math.cos(e+d/5*.03)*(h*.3));o.lineWidth=.5,o.strokeStyle=n,o.stroke(),v.forEach(d=>{K(d.x,d.y,H(0,v.length,i,l,d.counter)),d.counter+=d.direction,d.counter>=v.length&&(d.direction=-1*a),d.counter<0&&(d.direction=a)}),r||window.requestAnimationFrame(A)}function L(){s=t.scrollWidth,h=t.scrollHeight,o.canvas.width=s,o.canvas.height=h,m=Math.ceil(s/c),p=Math.ceil(h/c),_=(m+1)*(p+1);let d=q(Array.from({length:_},(f,u)=>u));v=[];for(let f=0;f<=m;f++)for(let u=0;u<=p;u++)v.push({counter:d.shift(),direction:Math.random()>.5?a:-1*a,x:c*(f+1)-c/1,y:c*(u+1)-c/2})}function K(d,f,u){o.beginPath(),o.moveTo(d-14,f),o.lineTo(d+14,f),o.strokeStyle=`rgba(255, 255, 255, ${u}`,o.moveTo(d,f-14),o.lineTo(d,f+14),o.stroke()}window.addEventListener("resize",L),L(),A()}var O=fe;function ue(){document.addEventListener("DOMContentLoaded",()=>{let e=document.getElementById("videoBackground");if(typeof e<"u"&&e!=null){let c=function(){n.classList.contains("u-hidden")?(e.paused&&e.play(),r.paused||r.pause()):e.paused||e.pause()},t=window.matchMedia("(prefers-reduced-motion: reduce)");(!t||t.matches)&&e.pause();let o=document.getElementById("playVideo"),n=document.getElementById("lightboxVideo"),r=n.querySelector(".c-lightbox__video");o.addEventListener("click",i=>{e.pause(),n.classList.remove("u-hidden"),c()}),n.addEventListener("click",i=>{i.target.classList.contains("c-lightbox__video")||(e.setAttribute("autoplay",""),n.classList.add("u-hidden"),c())}),window.addEventListener("keydown",function(i){i.key=="Escape"&&(e.setAttribute("autoplay",""),n.classList.add("u-hidden"),c())})}})}var I=ue;function he(){setTimeout(function(){document.querySelectorAll(".c-hotspot-image__button").forEach(t=>{t.addEventListener("click",me)}),document.addEventListener("keydown",ve),document.addEventListener("click",g)},2e3)}function me(e){e.preventDefault();let t=e.currentTarget,o=t.getAttribute("aria-controls"),n=document.getElementById(o);n.classList.contains("c-hotspot-image__tooltip--open")?b(t,n):pe(t,n)}function pe(e,t){t.classList.add("c-hotspot-image__tooltip--open"),t.setAttribute("aria-hidden","false"),e.setAttribute("aria-expanded","true"),document.addEventListener("click",g)}function b(e,t){t.classList.remove("c-hotspot-image__tooltip--open"),t.setAttribute("aria-hidden","true"),e.setAttribute("aria-expanded","false"),document.removeEventListener("click",g)}function ve(e){if(e.key==="Escape"){let t=document.querySelector(".c-hotspot-image__tooltip--open");if(t){let o=document.querySelector(`[aria-controls="${t.id}"]`);b(o,t)}}}function g(e){let t=document.querySelector(".c-hotspot-image__tooltip--open");if(t&&!t.contains(e.target)&&!e.target.closest(".c-hotspot-image__button")){let o=document.querySelector(`[aria-controls="${t.id}"]`);b(o,t)}}var B=he;function ye(){let e=document.querySelector(".c-internal-nav--sticky");if(!e)return;let t={root:null,rootMargin:"0px",threshold:1},o=(i,l)=>{let a=i[0].isIntersecting;e.classList.toggle("c-internal-nav--stuck",!a)};new IntersectionObserver(o,t).observe(e);let r=e.offsetHeight,c=()=>{r=e.offsetHeight,Array.from(e.querySelectorAll("a")).forEach(l=>{let a=l.getAttribute("href").replace("#",""),s=document.getElementById(a);s&&(s.style.scrollMarginTop=`${r}px`)})};window.addEventListener("resize",c),c()}var $=ye;function be(){let e=document.querySelectorAll(".c-off-canvas__toggle");e.length&&(e.forEach(t=>{R(t,N(t)),t.addEventListener("click",()=>Ae(t))}),window.addEventListener("resize",()=>{e.forEach(t=>{R(t,N(t))})}))}function N(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function R(e,t){let o=document.getElementById(e.getAttribute("data-target"));t===!0?ge(o):_e(o)}function ge(e){e.classList.add("c-off-canvas"),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","true");let t=e.querySelector('[data-off-canvas="header"]'),o=e.querySelector('[data-off-canvas="main"]'),n=e.querySelector('[data-off-canvas="footer"]'),r=t!==null?t.outerHTML:"",c=o!==null?o.outerHTML:"",i=n!==null?n.outerHTML:"";e.innerHTML=`
8
8
  <div class="c-off-canvas__backdrop" role="presentation"></div>
9
9
  <div class="c-off-canvas__content" role="dialog" aria-modal="true" aria-labelledby="offCanvasHeader">
10
- <header id="offCanvasHeader" class="c-off-canvas__header">${c}</header>
11
- <main class="c-off-canvas__main">${r}</main>
10
+ <header id="offCanvasHeader" class="c-off-canvas__header">${r}</header>
11
+ <main class="c-off-canvas__main">${c}</main>
12
12
  <footer class="c-off-canvas__footer">
13
13
  ${i}
14
14
  <button class="mp c-twi c-twi--left c-off-canvas__close" data-off-canvas-close="true" onclick="return false">
@@ -19,14 +19,16 @@
19
19
  </button>
20
20
  </footer>
21
21
  </div>
22
- `}function _e(e){e.classList.remove("c-off-canvas","c-off-canvas--active"),e.removeAttribute("tabindex"),e.removeAttribute("aria-hidden");let t=e.querySelector(".c-off-canvas__backdrop");t&&t.remove();let o=e.querySelector(".c-off-canvas__content");if(o){for(;o.firstChild;)e.insertBefore(o.firstChild,o);e.removeChild(o)}let n=e.querySelector(".c-off-canvas__header");if(n){for(;n.firstChild;)e.insertBefore(n.firstChild,n);e.removeChild(n)}let c=e.querySelector(".c-off-canvas__main");if(c){for(;c.firstChild;)e.insertBefore(c.firstChild,c);e.removeChild(c)}let r=e.querySelector(".c-off-canvas__footer");if(r){for(;r.firstChild;)e.insertBefore(r.firstChild,r);e.removeChild(r)}let i=e.querySelector(".c-off-canvas__close");i&&i.remove()}function Le(e){let t=document.getElementById(e.getAttribute("data-target"));t.classList.contains("c-off-canvas--active")?t.classList.contains("c-off-canvas--active")&&y(t):Ee(e,t)}function Ee(e,t){e.setAttribute("aria-expanded","true"),t.classList.add("c-off-canvas--active"),t.setAttribute("aria-hidden","false");let o=t.querySelector(".c-off-canvas__backdrop");o&&o.addEventListener("click",Ae);let n=t.querySelectorAll('[data-off-canvas-close="true"]');n.length>0&&n.forEach(r=>{r.addEventListener("click",we)}),document.addEventListener("keydown",Ce,{once:!0}),document.body.style.overflowY="hidden";let c=Array.from(document.querySelectorAll(".c-off-canvas")).filter(r=>r!==t);c.length>0&&c.forEach(r=>{y(r)})}function y(e){document.querySelector('[data-target="'+e.id+'"').setAttribute("aria-expanded","false"),e.classList.remove("c-off-canvas--active"),e.setAttribute("aria-hidden","true"),document.body.style.overflowY=""}function Ae(){let e=this.closest(".c-off-canvas");y(e)}function Ce(e){if(e.key==="Escape"){let t=document.querySelector(".c-off-canvas--active");t&&y(t)}}function we(){let e=this.closest(".c-off-canvas");y(e)}var R=be;var Se=()=>{Array.from(document.querySelectorAll(".c-table--responsive")).forEach(t);function t(o){let n=o.querySelectorAll("thead > :first-child th"),c=Number(o.getAttribute("data-columns"))||2;if(n.length<c){o.classList.remove("c-table--responsive");return}Array.from(o.querySelectorAll("tbody tr")).forEach(r=>{Array.from(n).map(i=>i.textContent).forEach((i,a)=>{r.children[a]&&r.children[a].setAttribute("data-responsive-title",i)})})}},W=Se;function xe(){P(),window.addEventListener("resize",M(P,250))}function P(){document.documentElement.style.setProperty("--scrollbarWidth",window.innerWidth-document.body.clientWidth+"px")}var z=xe;function qe(){let e=document.querySelector(".c-internal-nav--sticky"),t=e?e.offsetHeight:0;Array.from(document.querySelectorAll(".c-scroll-spy")).forEach(n=>{ke(n,t)})}function ke(e,t){let o=Array.from(e.querySelectorAll("a")),n=new IntersectionObserver(Te(o));o.forEach(r=>{let i=r.getAttribute("href").replace("#",""),a=document.getElementById(i);a&&n.observe(a)});let c=parseFloat(window.getComputedStyle(e).top);e.style.top=`${c+t}px`}function Te(e){return t=>{let o=t.find(n=>n.isIntersecting);o&&e.forEach(n=>{n.classList.toggle("c-scroll-spy-active",n.getAttribute("href")==="#"+o.target.id)})}}var V=qe;var D;function Me(){Array.from(document.querySelectorAll(".c-tabs--anchor, .c-tabs--mobile-accordion")).forEach(t=>{j(t),window.addEventListener("resize",()=>{clearTimeout(D),D=setTimeout(()=>Q(t),100)})})}function j(e){let t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab")),n=e.classList.contains("c-tabs--persist");if(!(!t.length||!o.length)&&(Q(e),t.forEach(c=>{c.addEventListener("click",Ie(t,o,n))}),n&&window.location.hash)){let c=e.querySelector('[href="'+window.location.hash+'"]');c&&c.dispatchEvent(new Event("click"))}}function Q(e){let t=e.classList.contains("c-tabs--mobile-accordion"),o=window.innerWidth<=880;e.dataset.viewMode!==(o?"accordion":"tabs")&&(e.dataset.viewMode=o?"accordion":"tabs",t&&o?He(e):t&&!o&&Be(e))}function He(e){let t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab")),n=e.querySelector(".c-tabs__controls");n&&n.remove(),t.forEach((c,r)=>{let i=o[r];if(i){let a=document.createElement("div");a.classList.add("c-tabs__content"),a.appendChild(c),a.appendChild(i),e.appendChild(a)}})}function Be(e){let t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab"));!t.length||!o.length||(e.innerHTML=`
23
- <nav class="c-tabs__controls">
24
- <ul class="c-tabs__controls-list">
25
- ${t.map(n=>`<li>${n.outerHTML}</li>`).join("")}
26
- </ul>
22
+ `}function _e(e){e.classList.remove("c-off-canvas","c-off-canvas--active"),e.removeAttribute("tabindex"),e.removeAttribute("aria-hidden");let t=e.querySelector(".c-off-canvas__backdrop");t&&t.remove();let o=e.querySelector(".c-off-canvas__content");if(o){for(;o.firstChild;)e.insertBefore(o.firstChild,o);e.removeChild(o)}let n=e.querySelector(".c-off-canvas__header");if(n){for(;n.firstChild;)e.insertBefore(n.firstChild,n);e.removeChild(n)}let r=e.querySelector(".c-off-canvas__main");if(r){for(;r.firstChild;)e.insertBefore(r.firstChild,r);e.removeChild(r)}let c=e.querySelector(".c-off-canvas__footer");if(c){for(;c.firstChild;)e.insertBefore(c.firstChild,c);e.removeChild(c)}let i=e.querySelector(".c-off-canvas__close");i&&i.remove()}function Ae(e){let t=document.getElementById(e.getAttribute("data-target"));t.classList.contains("c-off-canvas--active")?t.classList.contains("c-off-canvas--active")&&y(t):Le(e,t)}function Le(e,t){e.setAttribute("aria-expanded","true"),t.classList.add("c-off-canvas--active"),t.setAttribute("aria-hidden","false");let o=t.querySelector(".c-off-canvas__backdrop");o&&o.addEventListener("click",Ee);let n=t.querySelectorAll('[data-off-canvas-close="true"]');n.length>0&&n.forEach(c=>{c.addEventListener("click",Ce)}),document.addEventListener("keydown",we,{once:!0}),document.body.style.overflowY="hidden";let r=Array.from(document.querySelectorAll(".c-off-canvas")).filter(c=>c!==t);r.length>0&&r.forEach(c=>{y(c)})}function y(e){document.querySelector('[data-target="'+e.id+'"').setAttribute("aria-expanded","false"),e.classList.remove("c-off-canvas--active"),e.setAttribute("aria-hidden","true"),document.body.style.overflowY=""}function Ee(){let e=this.closest(".c-off-canvas");y(e)}function we(e){if(e.key==="Escape"){let t=document.querySelector(".c-off-canvas--active");t&&y(t)}}function Ce(){let e=this.closest(".c-off-canvas");y(e)}var F=be;var Se=()=>{Array.from(document.querySelectorAll(".c-table--responsive")).forEach(t);function t(o){let n=o.querySelectorAll("thead > :first-child th"),r=Number(o.getAttribute("data-columns"))||2;if(n.length<r){o.classList.remove("c-table--responsive");return}Array.from(o.querySelectorAll("tbody tr")).forEach(c=>{Array.from(n).map(i=>i.textContent).forEach((i,l)=>{c.children[l]&&c.children[l].setAttribute("data-responsive-title",i)})})}},W=Se;function xe(){P(),window.addEventListener("resize",M(P,250))}function P(){document.documentElement.style.setProperty("--scrollbarWidth",window.innerWidth-document.body.clientWidth+"px")}var z=xe;function ke(){let e=document.querySelector(".c-internal-nav--sticky"),t=e?e.offsetHeight:0;Array.from(document.querySelectorAll(".c-scroll-spy")).forEach(n=>{qe(n,t)})}function qe(e,t){let o=Array.from(e.querySelectorAll("a")),n=new IntersectionObserver(Te(o));o.forEach(c=>{let i=c.getAttribute("href").replace("#",""),l=document.getElementById(i);l&&n.observe(l)});let r=parseFloat(window.getComputedStyle(e).top);e.style.top=`${r+t}px`}function Te(e){return t=>{let o=t.find(n=>n.isIntersecting);o&&e.forEach(n=>{n.classList.toggle("c-scroll-spy-active",n.getAttribute("href")==="#"+o.target.id)})}}var V=ke;var D;function Me(){Array.from(document.querySelectorAll(".c-tabs--anchor, .c-tabs--mobile-accordion")).forEach(t=>{j(t),window.addEventListener("resize",()=>{clearTimeout(D),D=setTimeout(()=>Y(t),100)})})}function j(e){let t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab")),n=e.dataset.persist==="true";if(!(!t.length||!o.length)&&(t.forEach((r,c)=>{let i=o[c];i&&(r.setAttribute("role","tab"),r.setAttribute("aria-selected",r.classList.contains("c-tabs__control--active")?"true":"false"),r.setAttribute("aria-controls",i.id),r.id||=`tab-${c+1}-tab`,i.setAttribute("role","tabpanel"),i.setAttribute("aria-labelledby",r.id),i.hidden=!i.classList.contains("c-tab--active"),r.addEventListener("keydown",l=>He(l,t)))}),Y(e),t.forEach(r=>{r.addEventListener("click",$e(t,o,n))}),n&&window.location.hash)){let r=e.querySelector('[href="'+window.location.hash+'"]');r&&r.dispatchEvent(new Event("click"))}}function He(e,t){let o=e.key,n=e.currentTarget,r=t.indexOf(n);["ArrowLeft","ArrowRight","Home","End"].includes(o)&&(e.preventDefault(),o==="ArrowLeft"&&(r=(r-1+t.length)%t.length),o==="ArrowRight"&&(r=(r+1)%t.length),o==="Home"&&(r=0),o==="End"&&(r=t.length-1),t[r].focus(),t[r].click())}function Y(e){let t=e.classList.contains("c-tabs--mobile-accordion"),o=window.innerWidth<=880;e.dataset.viewMode!==(o?"accordion":"tabs")&&(e.dataset.viewMode=o?"accordion":"tabs",t&&o?Oe(e):t&&!o&&Ie(e))}function Oe(e){let t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab")),n=e.querySelector(".c-tabs__controls");n&&n.remove(),t.forEach((r,c)=>{let i=o[c];if(i){let l=document.createElement("div");l.classList.add("c-tabs__content"),l.appendChild(r),l.appendChild(i),e.appendChild(l)}})}function Ie(e){let t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab"));!t.length||!o.length||(e.innerHTML=`
23
+ <nav class="c-tabs__controls-wrapper">
24
+ <div class="c-tabs__controls">
25
+ <ul class="c-tabs__controls-list">
26
+ ${t.map(n=>`<li>${n.outerHTML}</li>`).join("")}
27
+ </ul>
28
+ </div>
27
29
  </nav>
28
30
  <div class="c-tabs__content">
29
31
  ${o.map(n=>n.outerHTML).join("")}
30
32
  </div>
31
- `,setTimeout(()=>j(e),0))}function Ie(e,t,o){return n=>{let c=n.currentTarget,r=c.getAttribute("href")?.replace("#",""),i=t.find(a=>a.id===r);if(!i)return!0;if(n.preventDefault(),o&&history.pushState(null,null,c.getAttribute("href")),window.innerWidth<=880){let a=i.classList.contains("c-tab--active");e.forEach(s=>s.classList.remove("c-tabs__control--active")),t.forEach(s=>s.classList.remove("c-tab--active")),a||(c.classList.add("c-tabs__control--active"),i.classList.add("c-tab--active"))}else e.forEach(a=>a.classList.toggle("c-tabs__control--active",a===c)),t.forEach(a=>a.classList.toggle("c-tab--active",a===i))}}var Y=Me;function G(){window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),window.HTMLCollection&&!HTMLCollection.prototype.forEach&&(HTMLCollection.prototype.forEach=Array.prototype.forEach),A(),C(),w(),S(),x(),q(),B(),I(),O(),$(),R(),W(),z(),V(),Y()}typeof window<"u"&&G();})();
33
+ `,setTimeout(()=>j(e),0))}function Be(e){if(!e)return;let t=e.getBoundingClientRect(),o=window.pageYOffset+t.top,n=e.dataset.stickyOffset?parseInt(e.dataset.stickyOffset,10):0;window.scrollTo({top:o-n,behavior:"smooth"})}function $e(e,t,o){return n=>{let r=n.currentTarget,c=r.getAttribute("href")?.replace("#",""),i=t.find(a=>a.id===c);if(!i)return!0;n.preventDefault(),o&&history.pushState(null,null,r.getAttribute("href"));let l=window.innerWidth<=880;e.forEach(a=>{let s=a===r;a.classList.toggle("c-tabs__control--active",s),a.setAttribute("aria-selected",s?"true":"false")}),t.forEach(a=>{let s=a===i;a.classList.toggle("c-tab--active",s),a.hidden=!s}),Be(r.closest(".c-tabs--anchor, .c-tabs--mobile-accordion")),r.scrollIntoView&&r.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})}}var Q=Me;function G(){window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),window.HTMLCollection&&!HTMLCollection.prototype.forEach&&(HTMLCollection.prototype.forEach=Array.prototype.forEach),E(),w(),C(),S(),x(),k(),O(),I(),B(),$(),F(),W(),z(),V(),Q()}typeof window<"u"&&G();})();
32
34
  //# sourceMappingURL=app.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/assets/js/imports/accordion.js", "../../../src/assets/js/imports/carousel.js", "../../../src/assets/js/imports/clear-form.js", "../../../src/assets/js/imports/comparison.js", "../../../src/assets/js/imports/facet.js", "../../../src/assets/js/imports/gallery.js", "../../../src/assets/js/imports/utilities.js", "../../../src/assets/js/imports/hero-pattern.js", "../../../src/assets/js/imports/hero-video.js", "../../../src/assets/js/imports/hotspot-image.js", "../../../src/assets/js/imports/internal-nav.js", "../../../src/assets/js/imports/off-canvas.js", "../../../src/assets/js/imports/responsive-table.js", "../../../src/assets/js/imports/scrollbar-width.js", "../../../src/assets/js/imports/scroll-spy.js", "../../../src/assets/js/imports/tabs.js", "../../../src/assets/js/app.js"],
4
- "sourcesContent": ["function Accordion() {\r\n const accordions = Array.from(document.querySelectorAll('.c-accordion__title'));\r\n accordions.forEach(setupAccordions);\r\n}\r\n\r\nfunction setupAccordions(title) {\r\n title.addEventListener('click', titleClick())\r\n}\r\n\r\nfunction titleClick() {\r\n return (event) => {\r\n var item = event.currentTarget.parentElement;\r\n item.classList.toggle('c-accordion__item--open');\r\n }\r\n}\r\n\r\nexport default Accordion;\r\n", "function Carousel() {\r\n let current = 0;\r\n const bgSlides = document.querySelectorAll('.c-hero__image-bg');\r\n const fgSlides = document.querySelectorAll('.c-hero__image-fg');\r\n\r\n if(fgSlides.length > 0) {\r\n setInterval(() => {\r\n for (var bgSlide of bgSlides) {\r\n bgSlide.style.opacity = 0;\r\n }\r\n current = (current != bgSlides.length - 1) ? current + 1 : 0;\r\n bgSlides[current].style.opacity = 1;\r\n \r\n for (var fgSlide of fgSlides) {\r\n fgSlide.style.opacity = 0;\r\n }\r\n fgSlides[current].style.opacity = 1;\r\n }, 5000);\r\n }\r\n}\r\n\r\nexport default Carousel;", "function ClearForm() {\r\n const formClear = document.getElementById('clearForm');\r\n if (formClear) {\r\n formClear.addEventListener('click', function () {\r\n const fields = this.closest('form').elements;\r\n fields.forEach(field => {\r\n if (field.value != '') {\r\n if (\r\n field.type.toLowerCase() == 'text' || \r\n field.type.toLowerCase() == 'email' || \r\n field.type.toLowerCase() == 'tel' || \r\n field.type.toLowerCase() == 'select-one' || \r\n field.type.toLowerCase() == 'textarea'\r\n ) {\r\n field.value = '';\r\n return;\r\n } else if (field.type.toLowerCase() == 'checkbox') {\r\n field.checked = false;\r\n return;\r\n }\r\n }\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport default ClearForm;", "function Comparison() {\r\n document.querySelectorAll('.c-comparison-table').forEach(extractMobileComparison)\r\n}\r\n\r\nfunction extractMobileComparison(container) {\r\n const parent = container.parentNode.parentNode;\r\n const body = parent.querySelector('.c-comparison-table tbody');\r\n const head = parent.querySelector('.c-comparison-table thead');\r\n const mobile = parent.parentElement.querySelector('.c-comparison-table__mobile');\r\n\r\n if (!body || !head || !mobile) return;\r\n\r\n // Remove empty corner piece \r\n const productsInfo = Array.from(head.children[0].children).filter((x, i) => i).map(x => ({ info: x.innerHTML }));\r\n const productsButtons = Array.from(head.children[1].children).filter((x, i) => i).map(x => ({ buttons: x.innerHTML }));\r\n const products = productsInfo.map((info, index) => ({ ...info, ...productsButtons[index], table: [] }));\r\n\r\n Array.from(body.children).forEach(row => {\r\n // For table row headers, push to all products\r\n if (row.classList.contains('c-comparison-table__title')) {\r\n products.forEach(x => {\r\n x.table.push({ type: 'title', title: row.children[0].textContent })\r\n })\r\n } else {\r\n // For all others, loop the cells and push to their appropriate parent\r\n const cells = Array.from(row.children);\r\n const firstCell = cells.shift();\r\n\r\n cells.forEach((el, index) => {\r\n products[index].table.push({\r\n type: 'row',\r\n key: firstCell.textContent,\r\n value: el.innerHTML\r\n })\r\n })\r\n }\r\n })\r\n\r\n products.forEach(product => {\r\n const el = createMobileProduct(product);\r\n mobile.appendChild(el)\r\n })\r\n}\r\n\r\nfunction createMobileProduct(product) {\r\n const parent = document.createElement('article');\r\n parent.innerHTML = `${product.info}${product.buttons}\r\n <table class=\"c-comparison-table\">\r\n ${product.table.map(x => {\r\n if (x.type === 'title') {\r\n return `<tr class=\"c-comparison-table__title\"><th><span>${x.title}</span></th><th></th></tr>`;\r\n } else {\r\n return `<tr>\r\n <td>${x.key}</td>\r\n <td>${x.value}</td>\r\n </tr>`;\r\n }\r\n }).join('')}\r\n </table>`;\r\n\r\n return parent;\r\n}\r\n\r\nexport default Comparison;\r\n", "function Facet() {\r\n const facetAccordions = Array.from(document.querySelectorAll('.c-facet__toggle'));\r\n facetAccordions.forEach(setupFacetAccordions);\r\n}\r\n\r\nfunction setupFacetAccordions(toggle) {\r\n toggle.addEventListener('click', titleClick())\r\n}\r\n\r\nfunction titleClick() {\r\n return (event) => {\r\n event.preventDefault();\r\n \r\n var toggle = event.currentTarget;\r\n var facet = toggle.parentElement;\r\n\r\n facet.classList.toggle('c-facet--open');\r\n const expanded = facet.classList.contains('c-facet--open') ? 'true' : 'false';\r\n toggle.setAttribute('aria-expanded', expanded);\r\n }\r\n}\r\n\r\nexport default Facet;\r\n", "function Gallery() {\r\n const mainSlides = document.querySelectorAll('.c-gallery__main .c-gallery__slide');\r\n const thumbnailSlides = document.querySelectorAll('.c-gallery__thumbnails .c-gallery__slide');\r\n\r\n thumbnailSlides.forEach(thumbnailSlide => thumbnailSlide.addEventListener('click', function(e) {\r\n thumbnailSlides.forEach(function(thumbnail) {\r\n if(thumbnail != e.target.parentNode) {\r\n thumbnail.classList.remove('active');\r\n }\r\n });\r\n e.target.parentNode.classList.add('active');\r\n\r\n mainSlides.forEach(function(mainSlide) {\r\n if(mainSlide.dataset.slide == thumbnailSlide.dataset.slide) {\r\n mainSlide.classList.add('active');\r\n } else {\r\n mainSlide.classList.remove('active');\r\n }\r\n });\r\n }));\r\n\r\n mainSlides.forEach(function(mainSlide) {\r\n if(!mainSlide.classList.contains('c-gallery__video')) {\r\n mainSlide.addEventListener('click', lightboxTrigger);\r\n }\r\n });\r\n\r\n function lightboxTrigger() {\r\n const lightbox = document.querySelector('.c-gallery__main').cloneNode(true);\r\n lightbox.classList.remove('c-gallery__main');\r\n lightbox.classList.add('c-lightbox');\r\n lightbox.querySelectorAll('.c-gallery__slide').forEach(function(slide) {\r\n if(slide.classList.contains('c-gallery__video')) {\r\n slide.remove();\r\n }\r\n if(!slide.classList.contains('c-gallery__video')) {\r\n var slideImg = slide.querySelector('img');\r\n if(slideImg.srcset != '') {\r\n slideImg.removeAttribute('srcset');\r\n }\r\n var slideImgSrc = slideImg.getAttribute('src');\r\n if (slideImgSrc) {\r\n if (slideImgSrc.indexOf('?') !== -1) {\r\n slideImg.setAttribute('src', slideImgSrc.split(\"?\")[0] + '?quality=90&width=2176');\r\n } else {\r\n slideImg.setAttribute('src', slideImgSrc + '?quality=90&width=2176');\r\n }\r\n } else {\r\n console.log(slideImg);\r\n console.log('has no src defined...');\r\n }\r\n }\r\n slide.classList.add('c-lightbox__slide');\r\n slide.classList.remove('c-gallery__slide');\r\n });\r\n document.body.appendChild(lightbox);\r\n lightbox.insertAdjacentHTML('beforeend', '<a class=\"c-lightbox__prev\"></a><a class=\"c-lightbox__next\"></a>');\r\n\r\n lightbox.querySelector('.c-lightbox__prev').addEventListener('click', function() {\r\n const lightboxActive = lightbox.querySelector('.active');\r\n const prevImage = lightbox.querySelector('[data-slide=\"' + (parseInt(lightboxActive.dataset.slide) - 1) + '\"]');\r\n if(prevImage != null) {\r\n lightboxActive.classList.remove('active');\r\n prevImage.classList.add('active');\r\n }\r\n });\r\n\r\n lightbox.querySelector('.c-lightbox__next').addEventListener('click', function() {\r\n const lightboxActive = lightbox.querySelector('.active');\r\n const nextImage = lightbox.querySelector('[data-slide=\"' + (parseInt(lightboxActive.dataset.slide) + 1) + '\"]');\r\n if(nextImage != null) {\r\n lightboxActive.classList.remove('active');\r\n nextImage.classList.add('active');\r\n }\r\n });\r\n\r\n lightbox.addEventListener('click', function(e) {\r\n if (e.target !== e.currentTarget) {\r\n return;\r\n } else {\r\n lightbox.remove();\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default Gallery;\r\n", "export function shuffle(array) {\r\n const arr = [...array];\r\n for (let i = arr.length - 1; i > 0; i--) {\r\n let j = Math.floor(Math.random() * (i + 1));\r\n [arr[i], arr[j]] = [arr[j], arr[i]];\r\n }\r\n\r\n return arr;\r\n}\r\n\r\nexport function userPrefersReducedMotion() {\r\n const QUERY = '(prefers-reduced-motion: no-preference)';\r\n const mediaQueryList = window.matchMedia(QUERY);\r\n const prefersReducedMotion = !mediaQueryList.matches;\r\n return prefersReducedMotion;\r\n}\r\n\r\nexport const debounce = (func, limit) => {\r\n let wait = false; \r\n return () => {\r\n if (wait) return;\r\n func();\r\n wait = true;\r\n setTimeout(() => wait = false, limit);\r\n }\r\n}\r\n\r\nexport const lerp = (x, y, a) => x * (1 - a) + y * a;\r\nexport const clamp = (a, min = 0, max = 1) => Math.min(max, Math.max(min, a));\r\nexport const invlerp = (x, y, a) => clamp((a - x) / (y - x));\r\nexport const range = (x1, y1, x2, y2, a) => lerp(x2, y2, invlerp(x1, y1, a));\r\n", "import { range, shuffle, userPrefersReducedMotion } from './utilities';\r\n\r\nfunction HeroPattern() {\r\n let time = 0;\r\n\r\n const c = document.querySelector('.c-hero__canvas');\r\n if (!c) return;\r\n const ctx = c.getContext(\"2d\");\r\n \r\n const sineColour = \"rgb(19,170,19)\";\r\n const reduceMotion = userPrefersReducedMotion();\r\n\r\n const crossGap = 147;\r\n const minimumOpacity = 0;\r\n const maximumOpacity = 0.5;\r\n const crossSpeed = 0.25;\r\n\r\n let width;\r\n let height;\r\n let across;\r\n let down;\r\n let crosses = [];\r\n let totalPoints;\r\n\r\n function draw() {\r\n // Sine wave\r\n time = time + 0.005;\r\n \r\n ctx.clearRect(0, 0, c.width, c.height);\r\n ctx.beginPath();\r\n \r\n for(let cnt = c.width; cnt > 0; cnt--) {\r\n ctx.lineTo(cnt, c.height * 0.5 - (Math.cos(time + cnt / 5 * 0.03) * (height * 0.3) ));\r\n }\r\n \r\n ctx.lineWidth = 0.5;\r\n ctx.strokeStyle = sineColour;\r\n ctx.stroke();\r\n \r\n // Crosses\r\n crosses.forEach(cross => {\r\n drawCross(cross.x, cross.y, range(0, crosses.length, minimumOpacity, maximumOpacity, cross.counter));\r\n \r\n cross.counter += cross.direction;\r\n if (cross.counter >= crosses.length) cross.direction = -1 * crossSpeed;\r\n if (cross.counter < 0) cross.direction = crossSpeed;\r\n })\r\n \r\n if (!reduceMotion) {\r\n window.requestAnimationFrame(draw);\r\n }\r\n }\r\n \r\n function onResize() {\r\n width = c.scrollWidth;\r\n height = c.scrollHeight;\r\n \r\n ctx.canvas.width = width;\r\n ctx.canvas.height = height;\r\n \r\n across = Math.ceil(width / crossGap);\r\n down = Math.ceil(height / crossGap);\r\n \r\n totalPoints = (across + 1) * (down + 1);\r\n const ids = shuffle(Array.from({ length: totalPoints }, (_, i) => (i)))\r\n crosses = [];\r\n for(let x = 0; x <= across; x++) {\r\n for(let y = 0; y <= down; y++) {\r\n crosses.push({\r\n counter: ids.shift(),\r\n direction: Math.random() > 0.5 ? crossSpeed : -1 * crossSpeed,\r\n x: crossGap * (x + 1) - crossGap / 1,\r\n y: crossGap * (y + 1) - crossGap / 2\r\n });\r\n }\r\n }\r\n }\r\n \r\n function drawCross(x, y, opacity) {\r\n ctx.beginPath();\r\n ctx.moveTo(x - 14, y);\r\n ctx.lineTo(x + 14, y);\r\n ctx.strokeStyle = `rgba(255, 255, 255, ${opacity}`;\r\n ctx.moveTo(x, y - 14);\r\n ctx.lineTo(x, y + 14);\r\n ctx.stroke();\r\n }\r\n\r\n window.addEventListener('resize', onResize);\r\n onResize();\r\n draw();\r\n}\r\n\r\nexport default HeroPattern;\r\n", "function HeroVideo() {\r\n document.addEventListener(\"DOMContentLoaded\", () => {\r\n const videoBackground = document.getElementById('videoBackground');\r\n if(typeof(videoBackground) != 'undefined' && videoBackground != null) {\r\n const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\r\n if(!reducedMotion || reducedMotion.matches) {\r\n videoBackground.pause();\r\n }\r\n \r\n const lightboxTrigger = document.getElementById('playVideo');\r\n const lightboxContainer = document.getElementById('lightboxVideo');\r\n const lightboxVideo = lightboxContainer.querySelector('.c-lightbox__video');\r\n\r\n lightboxTrigger.addEventListener('click', e => {\r\n videoBackground.pause();\r\n lightboxContainer.classList.remove('u-hidden');\r\n checkVideos();\r\n });\r\n \r\n lightboxContainer.addEventListener('click', (e) => {\r\n if (!e.target.classList.contains('c-lightbox__video')) {\r\n videoBackground.setAttribute('autoplay','');\r\n lightboxContainer.classList.add('u-hidden');\r\n checkVideos();\r\n }\r\n });\r\n window.addEventListener('keydown', function(e) {\r\n if (e.key == \"Escape\") {\r\n videoBackground.setAttribute('autoplay','');\r\n lightboxContainer.classList.add('u-hidden');\r\n checkVideos();\r\n }\r\n });\r\n\r\n function checkVideos() {\r\n if(lightboxContainer.classList.contains('u-hidden')) {\r\n if (videoBackground.paused) {\r\n videoBackground.play();\r\n }\r\n if (!lightboxVideo.paused) {\r\n lightboxVideo.pause();\r\n }\r\n } else {\r\n if (!videoBackground.paused) {\r\n videoBackground.pause();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport default HeroVideo;", "// Function to initialize tooltip behavior\r\nfunction HotspotImage() {\r\n // Add delay for Tridion JavaScript created hotspot images\r\n setTimeout(function () {\r\n // Select all elements that trigger tooltips\r\n const tooltips = document.querySelectorAll('.c-hotspot-image__button');\r\n\r\n // Add event listeners for each tooltip button\r\n tooltips.forEach((button) => {\r\n button.addEventListener('click', handleTooltipToggle);\r\n });\r\n\r\n // Add event listener for Escape key press\r\n document.addEventListener('keydown', handleKeyDown);\r\n\r\n // Add event listener for click outside tooltip\r\n document.addEventListener('click', handleClickOutside);\r\n }, 2000);\r\n}\r\n\r\n// Function to handle the tooltip toggle\r\nfunction handleTooltipToggle(event) {\r\n // Prevent default action if needed\r\n event.preventDefault();\r\n\r\n const button = event.currentTarget;\r\n const tooltipId = button.getAttribute('aria-controls');\r\n const tooltip = document.getElementById(tooltipId);\r\n\r\n if (tooltip.classList.contains('c-hotspot-image__tooltip--open')) {\r\n closeTooltip(button, tooltip);\r\n } else {\r\n openTooltip(button, tooltip);\r\n }\r\n}\r\n\r\n// Function to open a tooltip\r\nfunction openTooltip(button, tooltip) {\r\n // Add active class and make tooltip visible\r\n tooltip.classList.add('c-hotspot-image__tooltip--open');\r\n tooltip.setAttribute('aria-hidden', 'false');\r\n button.setAttribute('aria-expanded', 'true');\r\n\r\n // Add event listener for click outside\r\n document.addEventListener('click', handleClickOutside);\r\n}\r\n\r\n// Function to close a tooltip\r\nfunction closeTooltip(button, tooltip) {\r\n // Remove active class and hide tooltip\r\n tooltip.classList.remove('c-hotspot-image__tooltip--open');\r\n tooltip.setAttribute('aria-hidden', 'true');\r\n button.setAttribute('aria-expanded', 'false');\r\n\r\n // Remove event listener for click outside\r\n document.removeEventListener('click', handleClickOutside);\r\n}\r\n\r\n// Function to handle Escape key press\r\nfunction handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n const activeTooltip = document.querySelector(\r\n '.c-hotspot-image__tooltip--open'\r\n );\r\n if (activeTooltip) {\r\n const button = document.querySelector(\r\n `[aria-controls=\"${activeTooltip.id}\"]`\r\n );\r\n closeTooltip(button, activeTooltip);\r\n }\r\n }\r\n}\r\n\r\n// Function to handle click outside the tooltip\r\nfunction handleClickOutside(event) {\r\n const activeTooltip = document.querySelector(\r\n '.c-hotspot-image__tooltip--open'\r\n );\r\n if (\r\n activeTooltip &&\r\n !activeTooltip.contains(event.target) &&\r\n !event.target.closest('.c-hotspot-image__button')\r\n ) {\r\n const button = document.querySelector(\r\n `[aria-controls=\"${activeTooltip.id}\"]`\r\n );\r\n closeTooltip(button, activeTooltip);\r\n }\r\n}\r\n\r\nexport default HotspotImage;\r\n", "function InternalNav() {\r\n const internalNav = document.querySelector('.c-internal-nav--sticky');\r\n\r\n if (!internalNav) {\r\n return;\r\n }\r\n\r\n const observerOptions = {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: 1.0\r\n };\r\n\r\n const intersectionCallback = (entries, observer) => {\r\n const isIntersecting = entries[0].isIntersecting;\r\n internalNav.classList.toggle('c-internal-nav--stuck', !isIntersecting);\r\n };\r\n\r\n const observer = new IntersectionObserver(intersectionCallback, observerOptions);\r\n observer.observe(internalNav);\r\n\r\n let internalNavHeight = internalNav.offsetHeight;\r\n\r\n const updateInternalNavHeight = () => {\r\n internalNavHeight = internalNav.offsetHeight;\r\n const anchors = Array.from(internalNav.querySelectorAll('a'));\r\n anchors.forEach(anchor => {\r\n const id = anchor.getAttribute('href').replace('#', '');\r\n const target = document.getElementById(id);\r\n if (target) {\r\n target.style.scrollMarginTop = `${internalNavHeight}px`;\r\n }\r\n });\r\n };\r\n\r\n window.addEventListener('resize', updateInternalNavHeight);\r\n\r\n updateInternalNavHeight();\r\n}\r\n\r\nexport default InternalNav;", "// Function to initialize off-canvas behavior\r\nfunction OffCanvas() {\r\n // Select all elements that trigger off-canvas behavior\r\n const toggles = document.querySelectorAll(\".c-off-canvas__toggle\");\r\n\r\n // Iterate through each toggle element\r\n if (toggles.length) {\r\n toggles.forEach(toggle => {\r\n // Determine initial visibility state and handle click event\r\n handleOffCanvas(toggle, isVisible(toggle));\r\n toggle.addEventListener('click', () => toggleOffCanvas(toggle));\r\n });\r\n\r\n // Add event listener for scroll events to check visibility\r\n // window.addEventListener('scroll', () => {\r\n // toggles.forEach(toggle => {\r\n // handleOffCanvas(toggle, isVisible(toggle));\r\n // });\r\n // });\r\n\r\n // Add event listener for resize events to check visibility\r\n window.addEventListener('resize', () => {\r\n toggles.forEach(toggle => {\r\n handleOffCanvas(toggle, isVisible(toggle));\r\n });\r\n });\r\n }\r\n}\r\n\r\n// Function to check if an element is currently visible on the page\r\nfunction isVisible(element) {\r\n // Check element's styles for visibility\r\n const style = window.getComputedStyle(element);\r\n return (\r\n style.display !== 'none' &&\r\n style.visibility !== 'hidden'\r\n );\r\n}\r\n\r\n// Function to handle off-canvas behavior based on visibility\r\nfunction handleOffCanvas(toggle, isVisible) {\r\n const target = document.getElementById(toggle.getAttribute('data-target'));\r\n if (isVisible === true) {\r\n createOffCanvas(target);\r\n } else {\r\n removeOffCanvas(target);\r\n }\r\n}\r\n\r\n// Function to create off canvas\r\nfunction createOffCanvas(target) {\r\n // Add necessary classes and attributes for off-canvas display\r\n target.classList.add('c-off-canvas');\r\n target.setAttribute('tabindex', '-1');\r\n target.setAttribute('aria-hidden', 'true');\r\n \r\n // Extract specific sections of the off-canvas content\r\n const targetHeader = target.querySelector('[data-off-canvas=\"header\"]');\r\n const targetMain = target.querySelector('[data-off-canvas=\"main\"]');\r\n const targetFooter = target.querySelector('[data-off-canvas=\"footer\"]');\r\n\r\n // Extract content from the sections\r\n const targetHeaderContent = targetHeader !== null ? targetHeader.outerHTML : '';\r\n const targetMainContent = targetMain !== null ? targetMain.outerHTML : '';\r\n const targetFooterContent = targetFooter !== null ? targetFooter.outerHTML : '';\r\n\r\n // Replace the target's content with off-canvas structure\r\n target.innerHTML = `\r\n <div class=\"c-off-canvas__backdrop\" role=\"presentation\"></div>\r\n <div class=\"c-off-canvas__content\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"offCanvasHeader\">\r\n <header id=\"offCanvasHeader\" class=\"c-off-canvas__header\">${targetHeaderContent}</header>\r\n <main class=\"c-off-canvas__main\">${targetMainContent}</main>\r\n <footer class=\"c-off-canvas__footer\">\r\n ${targetFooterContent}\r\n <button class=\"mp c-twi c-twi--left c-off-canvas__close\" data-off-canvas-close=\"true\" onclick=\"return false\">\r\n <span>Cancel</span>\r\n <svg role=\"img\" aria-hidden=\"true\" focusable=\"false\" class=\"mp c-icon c-icon--cross\">\r\n <use xlink:href=\"/static/svg/sprite.svg#cross\"></use>\r\n </svg>\r\n </button>\r\n </footer>\r\n </div>\r\n `;\r\n}\r\n\r\n// Function to remove off-canvas layout\r\nfunction removeOffCanvas(target) {\r\n // Remove classes and attributes for off-canvas display\r\n target.classList.remove('c-off-canvas', 'c-off-canvas--active');\r\n target.removeAttribute('tabindex');\r\n target.removeAttribute('aria-hidden');\r\n\r\n // Remove backdrop element if present\r\n const targetBackdrop = target.querySelector('.c-off-canvas__backdrop');\r\n if (targetBackdrop) {\r\n targetBackdrop.remove();\r\n }\r\n\r\n // Restore original content by removing off-canvas structure\r\n const targetContent = target.querySelector('.c-off-canvas__content');\r\n if (targetContent) {\r\n while (targetContent.firstChild) {\r\n target.insertBefore(targetContent.firstChild, targetContent);\r\n }\r\n target.removeChild(targetContent);\r\n }\r\n\r\n const targetHeader = target.querySelector('.c-off-canvas__header');\r\n if (targetHeader) {\r\n while (targetHeader.firstChild) {\r\n target.insertBefore(targetHeader.firstChild, targetHeader);\r\n }\r\n target.removeChild(targetHeader);\r\n }\r\n\r\n const targetMain = target.querySelector('.c-off-canvas__main');\r\n if (targetMain) {\r\n while (targetMain.firstChild) {\r\n target.insertBefore(targetMain.firstChild, targetMain);\r\n }\r\n target.removeChild(targetMain);\r\n }\r\n\r\n const targetFooter = target.querySelector('.c-off-canvas__footer');\r\n if (targetFooter) {\r\n while (targetFooter.firstChild) {\r\n target.insertBefore(targetFooter.firstChild, targetFooter);\r\n }\r\n target.removeChild(targetFooter);\r\n }\r\n \r\n // Remove close button element if present\r\n const targetClose = target.querySelector('.c-off-canvas__close');\r\n if (targetClose) {\r\n targetClose.remove();\r\n }\r\n}\r\n\r\n// Function to toggle off-canvas visibility\r\nfunction toggleOffCanvas(toggle) {\r\n const target = document.getElementById(toggle.getAttribute('data-target'));\r\n\r\n // Check if the target is already open or closed\r\n if (!target.classList.contains('c-off-canvas--active')) {\r\n openOffCanvas(toggle, target);\r\n } else if (target.classList.contains('c-off-canvas--active')) {\r\n closeOffCanvas(target);\r\n }\r\n}\r\n\r\nfunction openOffCanvas(toggle, target) {\r\n // Add classes and attributes for open off-canvas\r\n toggle.setAttribute('aria-expanded', 'true');\r\n target.classList.add('c-off-canvas--active');\r\n target.setAttribute('aria-hidden', 'false');\r\n\r\n // Add event listener for backdrop clicks\r\n const offCanvasBackdrop = target.querySelector('.c-off-canvas__backdrop');\r\n if(offCanvasBackdrop) {\r\n offCanvasBackdrop.addEventListener('click', handleBackdropClick);\r\n }\r\n\r\n // Add event listener forclose button clicks\r\n const offCanvasCloseElements = target.querySelectorAll('[data-off-canvas-close=\"true\"]');\r\n if (offCanvasCloseElements.length > 0) {\r\n offCanvasCloseElements.forEach((offCanvasClose) => {\r\n offCanvasClose.addEventListener('click', handleCloseClick);\r\n });\r\n }\r\n\r\n // Add event listener for Escape key press\r\n document.addEventListener('keydown', handleKeyDown, { once: true });\r\n\r\n // Adjust body overflow to prevent scrolling\r\n document.body.style.overflowY = 'hidden';\r\n\r\n // Close other open off-canvas elements\r\n const allOffCanvasElementsExceptCurrent = Array.from(document.querySelectorAll('.c-off-canvas')).filter(offCanvas => offCanvas !== target);\r\n if (allOffCanvasElementsExceptCurrent.length > 0) {\r\n allOffCanvasElementsExceptCurrent.forEach((offCanvas) => {\r\n closeOffCanvas(offCanvas);\r\n });\r\n }\r\n}\r\n\r\n// Function to close an off-canvas\r\nfunction closeOffCanvas(target) {\r\n // Remove classes and attributes for open off-canvas\r\n document.querySelector('[data-target=\"' + target.id + '\"').setAttribute('aria-expanded', 'false');\r\n target.classList.remove('c-off-canvas--active');\r\n target.setAttribute('aria-hidden', 'true');\r\n\r\n // Restore body overflow\r\n document.body.style.overflowY = '';\r\n}\r\n\r\n// Function to handle backdrop click\r\nfunction handleBackdropClick() {\r\n const offCanvas = this.closest('.c-off-canvas');\r\n closeOffCanvas(offCanvas);\r\n}\r\n\r\n// Function to handle Escape key press\r\nfunction handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n const activeOffCanvas = document.querySelector('.c-off-canvas--active');\r\n if (activeOffCanvas) {\r\n closeOffCanvas(activeOffCanvas);\r\n }\r\n }\r\n}\r\n\r\n// Function to handle close button click\r\nfunction handleCloseClick() {\r\n const offCanvas = this.closest('.c-off-canvas');\r\n closeOffCanvas(offCanvas);\r\n}\r\n\r\nexport default OffCanvas;", "const ResponsiveTable = () => {\r\n const tables = Array.from(document.querySelectorAll('.c-table--responsive'));\r\n tables.forEach(createResponsiveTable);\r\n\r\n /**\r\n * Create responsive table headers for large tables\r\n * @param {HTMLTableElement} table\r\n */\r\n function createResponsiveTable(table) {\r\n const headers = table.querySelectorAll('thead > :first-child th');\r\n const breakPoint = Number(table.getAttribute('data-columns')) || 2\r\n \r\n if (headers.length < breakPoint) {\r\n table.classList.remove('c-table--responsive');\r\n return;\r\n };\r\n\r\n Array.from(table.querySelectorAll('tbody tr')).forEach((row) => {\r\n Array.from(headers)\r\n .map((x) => x.textContent)\r\n .forEach((header, index) => {\r\n if (row.children[index]) {\r\n row.children[index].setAttribute('data-responsive-title', header);\r\n }\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport default ResponsiveTable;\r\n", "import { debounce } from './utilities';\r\n\r\nfunction ScrollbarWidth() {\r\n setScrollbarWidth();\r\n window.addEventListener('resize', debounce(setScrollbarWidth, 250));\r\n}\r\n\r\nfunction setScrollbarWidth() {\r\n document.documentElement.style.setProperty(\r\n '--scrollbarWidth', \r\n window.innerWidth - document.body.clientWidth + 'px'\r\n );\r\n}\r\n\r\nexport default ScrollbarWidth;", "function ScrollSpy() {\r\n const internalNav = document.querySelector('.c-internal-nav--sticky');\r\n const internalNavHeight = internalNav ? internalNav.offsetHeight : 0;\r\n\r\n const spies = Array.from(document.querySelectorAll('.c-scroll-spy'));\r\n spies.forEach(spy => {\r\n setup(spy, internalNavHeight);\r\n });\r\n}\r\n\r\nfunction setup(element, internalNavHeight) {\r\n const anchors = Array.from(element.querySelectorAll('a'));\r\n const observer = new IntersectionObserver(observation(anchors));\r\n \r\n anchors.forEach(anchor => {\r\n const id = anchor.getAttribute('href').replace('#', '');\r\n const target = document.getElementById(id);\r\n if (!target) return;\r\n\r\n observer.observe(target);\r\n });\r\n\r\n const currentTop = parseFloat(window.getComputedStyle(element).top);\r\n element.style.top = `${currentTop + internalNavHeight}px`;\r\n}\r\n\r\n/**\r\n * @param {Array<HTMLAnchorElement>} results \r\n * @return {Array<IntersectionObserverEntry>}\r\n */\r\nfunction observation(anchors) {\r\n return (results) => {\r\n const firstObservation = results.find(x => x.isIntersecting);\r\n\r\n if (firstObservation) {\r\n anchors.forEach(x => {\r\n x.classList.toggle(\r\n 'c-scroll-spy-active',\r\n x.getAttribute('href') === '#' + firstObservation.target.id\r\n )\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport default ScrollSpy;\r\n", "let resizeTimeout\r\n\r\nfunction Tabs() {\r\n const tabs = Array.from(document.querySelectorAll('.c-tabs--anchor, .c-tabs--mobile-accordion'))\r\n tabs.forEach((parent) => {\r\n setupTabs(parent)\r\n window.addEventListener('resize', () => {\r\n clearTimeout(resizeTimeout)\r\n resizeTimeout = setTimeout(() => handleResize(parent), 100)\r\n })\r\n })\r\n}\r\n\r\nfunction setupTabs(parent) {\r\n const controls = Array.from(parent.querySelectorAll('.c-tabs__control'))\r\n const contents = Array.from(parent.querySelectorAll('.c-tab'))\r\n const persist = parent.classList.contains('c-tabs--persist')\r\n\r\n if (!controls.length || !contents.length) return\r\n\r\n handleResize(parent)\r\n\r\n controls.forEach((control) => {\r\n control.addEventListener('click', controlClick(controls, contents, persist))\r\n })\r\n\r\n if (persist && window.location.hash) {\r\n const control = parent.querySelector('[href=\"' + window.location.hash + '\"]')\r\n if (control) control.dispatchEvent(new Event('click'))\r\n }\r\n}\r\n\r\nfunction handleResize(parent) {\r\n const isAccordion = parent.classList.contains('c-tabs--mobile-accordion')\r\n const isMobile = window.innerWidth <= 880\r\n\r\n if (parent.dataset.viewMode === (isMobile ? 'accordion' : 'tabs')) {\r\n return\r\n }\r\n\r\n parent.dataset.viewMode = isMobile ? 'accordion' : 'tabs'\r\n\r\n if (isAccordion && isMobile) {\r\n restructureForAccordion(parent)\r\n } else if (isAccordion && !isMobile) {\r\n restoreToTabs(parent)\r\n }\r\n}\r\n\r\nfunction restructureForAccordion(parent) {\r\n const controlElements = Array.from(parent.querySelectorAll('.c-tabs__control'))\r\n const tabElements = Array.from(parent.querySelectorAll('.c-tab'))\r\n\r\n const controlsElement = parent.querySelector('.c-tabs__controls')\r\n\r\n if (controlsElement) {\r\n controlsElement.remove()\r\n }\r\n\r\n controlElements.forEach((control, index) => {\r\n const content = tabElements[index]\r\n if (content) {\r\n const tabWrapper = document.createElement('div')\r\n tabWrapper.classList.add('c-tabs__content')\r\n\r\n tabWrapper.appendChild(control)\r\n tabWrapper.appendChild(content)\r\n\r\n parent.appendChild(tabWrapper)\r\n }\r\n })\r\n}\r\n\r\nfunction restoreToTabs(parent) {\r\n const controls = Array.from(parent.querySelectorAll('.c-tabs__control'))\r\n const contents = Array.from(parent.querySelectorAll('.c-tab'))\r\n\r\n if (!controls.length || !contents.length) return\r\n\r\n parent.innerHTML = `\r\n <nav class=\"c-tabs__controls\">\r\n <ul class=\"c-tabs__controls-list\">\r\n ${controls.map((control) => `<li>${control.outerHTML}</li>`).join('')}\r\n </ul>\r\n </nav>\r\n <div class=\"c-tabs__content\">\r\n ${contents.map((content) => content.outerHTML).join('')}\r\n </div>\r\n `\r\n\r\n setTimeout(() => setupTabs(parent), 0)\r\n}\r\n\r\nfunction controlClick(controls, contents, persist) {\r\n return (event) => {\r\n const control = event.currentTarget\r\n const contentId = control.getAttribute('href')?.replace('#', '')\r\n const content = contents.find((x) => x.id === contentId)\r\n\r\n if (!content) return true\r\n\r\n event.preventDefault()\r\n\r\n if (persist) {\r\n history.pushState(null, null, control.getAttribute('href'))\r\n }\r\n\r\n if (window.innerWidth <= 880) {\r\n const isActive = content.classList.contains('c-tab--active')\r\n\r\n controls.forEach((c) => c.classList.remove('c-tabs__control--active'))\r\n contents.forEach((c) => c.classList.remove('c-tab--active'))\r\n\r\n if (!isActive) {\r\n control.classList.add('c-tabs__control--active')\r\n content.classList.add('c-tab--active')\r\n }\r\n } else {\r\n controls.forEach((c) => c.classList.toggle('c-tabs__control--active', c === control))\r\n contents.forEach((c) => c.classList.toggle('c-tab--active', c === content))\r\n }\r\n }\r\n}\r\n\r\nexport default Tabs\r\n", "import Accordion from \"./imports/accordion.js\";\r\nimport Carousel from \"./imports/carousel.js\";\r\nimport ClearForm from \"./imports/clear-form.js\";\r\nimport Comparison from \"./imports/comparison.js\";\r\nimport Facet from \"./imports/facet.js\";\r\nimport Gallery from \"./imports/gallery.js\";\r\nimport HeroPattern from \"./imports/hero-pattern.js\";\r\nimport HeroVideo from \"./imports/hero-video.js\";\r\nimport HotspotImage from \"./imports/hotspot-image.js\";\r\nimport InternalNav from \"./imports/internal-nav.js\";\r\nimport OffCanvas from \"./imports/off-canvas.js\";\r\nimport ResponsiveTable from \"./imports/responsive-table.js\";\r\nimport ScrollbarWidth from \"./imports/scrollbar-width.js\";\r\nimport ScrollSpy from \"./imports/scroll-spy.js\";\r\nimport Tabs from \"./imports/tabs.js\";\r\n\r\nexport default function initializeApp() {\r\n // Polyfills\r\n if (window.NodeList && !NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = Array.prototype.forEach;\r\n }\r\n if (window.HTMLCollection && !HTMLCollection.prototype.forEach) {\r\n HTMLCollection.prototype.forEach = Array.prototype.forEach;\r\n }\r\n\r\n // Initialize components\r\n Accordion();\r\n Carousel();\r\n ClearForm();\r\n Comparison();\r\n Facet();\r\n Gallery();\r\n HeroPattern();\r\n HeroVideo();\r\n HotspotImage();\r\n InternalNav();\r\n OffCanvas();\r\n ResponsiveTable();\r\n ScrollbarWidth();\r\n ScrollSpy();\r\n Tabs();\r\n}\r\n\r\nif (typeof window !== \"undefined\") {\r\n initializeApp();\r\n}\r\n"],
5
- "mappings": "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",
6
- "names": ["Accordion", "setupAccordions", "title", "titleClick", "event", "item", "accordion_default", "Carousel", "current", "bgSlides", "fgSlides", "bgSlide", "fgSlide", "carousel_default", "ClearForm", "formClear", "field", "clear_form_default", "Comparison", "extractMobileComparison", "container", "parent", "body", "head", "mobile", "productsInfo", "x", "i", "productsButtons", "products", "info", "index", "row", "cells", "firstCell", "el", "product", "createMobileProduct", "comparison_default", "Facet", "setupFacetAccordions", "toggle", "titleClick", "event", "facet", "expanded", "facet_default", "Gallery", "mainSlides", "thumbnailSlides", "thumbnailSlide", "e", "thumbnail", "mainSlide", "lightboxTrigger", "lightbox", "slide", "slideImg", "slideImgSrc", "lightboxActive", "prevImage", "nextImage", "gallery_default", "shuffle", "array", "arr", "i", "j", "userPrefersReducedMotion", "debounce", "func", "limit", "wait", "lerp", "x", "y", "a", "clamp", "min", "max", "invlerp", "range", "x1", "y1", "x2", "y2", "HeroPattern", "time", "c", "ctx", "sineColour", "reduceMotion", "userPrefersReducedMotion", "crossGap", "minimumOpacity", "maximumOpacity", "crossSpeed", "width", "height", "across", "down", "crosses", "totalPoints", "draw", "cnt", "cross", "drawCross", "range", "onResize", "ids", "shuffle", "_", "i", "x", "y", "opacity", "hero_pattern_default", "HeroVideo", "videoBackground", "checkVideos", "lightboxContainer", "lightboxVideo", "reducedMotion", "lightboxTrigger", "e", "hero_video_default", "HotspotImage", "button", "handleTooltipToggle", "handleKeyDown", "handleClickOutside", "event", "tooltipId", "tooltip", "closeTooltip", "openTooltip", "activeTooltip", "hotspot_image_default", "InternalNav", "internalNav", "observerOptions", "intersectionCallback", "entries", "observer", "isIntersecting", "internalNavHeight", "updateInternalNavHeight", "anchor", "id", "target", "internal_nav_default", "OffCanvas", "toggles", "toggle", "handleOffCanvas", "isVisible", "toggleOffCanvas", "element", "style", "target", "createOffCanvas", "removeOffCanvas", "targetHeader", "targetMain", "targetFooter", "targetHeaderContent", "targetMainContent", "targetFooterContent", "targetBackdrop", "targetContent", "targetClose", "closeOffCanvas", "openOffCanvas", "offCanvasBackdrop", "handleBackdropClick", "offCanvasCloseElements", "offCanvasClose", "handleCloseClick", "handleKeyDown", "allOffCanvasElementsExceptCurrent", "offCanvas", "event", "activeOffCanvas", "off_canvas_default", "ResponsiveTable", "createResponsiveTable", "table", "headers", "breakPoint", "row", "x", "header", "index", "responsive_table_default", "ScrollbarWidth", "setScrollbarWidth", "debounce", "scrollbar_width_default", "ScrollSpy", "internalNav", "internalNavHeight", "spy", "setup", "element", "anchors", "observer", "observation", "anchor", "id", "target", "currentTop", "results", "firstObservation", "x", "scroll_spy_default", "resizeTimeout", "Tabs", "parent", "setupTabs", "handleResize", "controls", "contents", "persist", "control", "controlClick", "isAccordion", "isMobile", "restructureForAccordion", "restoreToTabs", "controlElements", "tabElements", "controlsElement", "index", "content", "tabWrapper", "event", "contentId", "x", "isActive", "c", "tabs_default", "initializeApp", "accordion_default", "carousel_default", "clear_form_default", "comparison_default", "facet_default", "gallery_default", "hero_pattern_default", "hero_video_default", "hotspot_image_default", "internal_nav_default", "off_canvas_default", "responsive_table_default", "scrollbar_width_default", "scroll_spy_default", "tabs_default"]
4
+ "sourcesContent": ["function Accordion() {\r\n const accordions = Array.from(document.querySelectorAll('.c-accordion__title'));\r\n accordions.forEach(setupAccordions);\r\n}\r\n\r\nfunction setupAccordions(title) {\r\n title.addEventListener('click', titleClick())\r\n}\r\n\r\nfunction titleClick() {\r\n return (event) => {\r\n var item = event.currentTarget.parentElement;\r\n item.classList.toggle('c-accordion__item--open');\r\n }\r\n}\r\n\r\nexport default Accordion;\r\n", "function Carousel() {\r\n let current = 0;\r\n const bgSlides = document.querySelectorAll('.c-hero__image-bg');\r\n const fgSlides = document.querySelectorAll('.c-hero__image-fg');\r\n\r\n if(fgSlides.length > 0) {\r\n setInterval(() => {\r\n for (var bgSlide of bgSlides) {\r\n bgSlide.style.opacity = 0;\r\n }\r\n current = (current != bgSlides.length - 1) ? current + 1 : 0;\r\n bgSlides[current].style.opacity = 1;\r\n \r\n for (var fgSlide of fgSlides) {\r\n fgSlide.style.opacity = 0;\r\n }\r\n fgSlides[current].style.opacity = 1;\r\n }, 5000);\r\n }\r\n}\r\n\r\nexport default Carousel;", "function ClearForm() {\r\n const formClear = document.getElementById('clearForm');\r\n if (formClear) {\r\n formClear.addEventListener('click', function () {\r\n const fields = this.closest('form').elements;\r\n fields.forEach(field => {\r\n if (field.value != '') {\r\n if (\r\n field.type.toLowerCase() == 'text' || \r\n field.type.toLowerCase() == 'email' || \r\n field.type.toLowerCase() == 'tel' || \r\n field.type.toLowerCase() == 'select-one' || \r\n field.type.toLowerCase() == 'textarea'\r\n ) {\r\n field.value = '';\r\n return;\r\n } else if (field.type.toLowerCase() == 'checkbox') {\r\n field.checked = false;\r\n return;\r\n }\r\n }\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport default ClearForm;", "function Comparison() {\r\n document.querySelectorAll('.c-comparison-table').forEach(extractMobileComparison)\r\n}\r\n\r\nfunction extractMobileComparison(container) {\r\n const parent = container.parentNode.parentNode;\r\n const body = parent.querySelector('.c-comparison-table tbody');\r\n const head = parent.querySelector('.c-comparison-table thead');\r\n const mobile = parent.parentElement.querySelector('.c-comparison-table__mobile');\r\n\r\n if (!body || !head || !mobile) return;\r\n\r\n // Remove empty corner piece \r\n const productsInfo = Array.from(head.children[0].children).filter((x, i) => i).map(x => ({ info: x.innerHTML }));\r\n const productsButtons = Array.from(head.children[1].children).filter((x, i) => i).map(x => ({ buttons: x.innerHTML }));\r\n const products = productsInfo.map((info, index) => ({ ...info, ...productsButtons[index], table: [] }));\r\n\r\n Array.from(body.children).forEach(row => {\r\n // For table row headers, push to all products\r\n if (row.classList.contains('c-comparison-table__title')) {\r\n products.forEach(x => {\r\n x.table.push({ type: 'title', title: row.children[0].textContent })\r\n })\r\n } else {\r\n // For all others, loop the cells and push to their appropriate parent\r\n const cells = Array.from(row.children);\r\n const firstCell = cells.shift();\r\n\r\n cells.forEach((el, index) => {\r\n products[index].table.push({\r\n type: 'row',\r\n key: firstCell.textContent,\r\n value: el.innerHTML\r\n })\r\n })\r\n }\r\n })\r\n\r\n products.forEach(product => {\r\n const el = createMobileProduct(product);\r\n mobile.appendChild(el)\r\n })\r\n}\r\n\r\nfunction createMobileProduct(product) {\r\n const parent = document.createElement('article');\r\n parent.innerHTML = `${product.info}${product.buttons}\r\n <table class=\"c-comparison-table\">\r\n ${product.table.map(x => {\r\n if (x.type === 'title') {\r\n return `<tr class=\"c-comparison-table__title\"><th><span>${x.title}</span></th><th></th></tr>`;\r\n } else {\r\n return `<tr>\r\n <td>${x.key}</td>\r\n <td>${x.value}</td>\r\n </tr>`;\r\n }\r\n }).join('')}\r\n </table>`;\r\n\r\n return parent;\r\n}\r\n\r\nexport default Comparison;\r\n", "function Facet() {\r\n const facetAccordions = Array.from(document.querySelectorAll('.c-facet__toggle'));\r\n facetAccordions.forEach(setupFacetAccordions);\r\n}\r\n\r\nfunction setupFacetAccordions(toggle) {\r\n toggle.addEventListener('click', titleClick())\r\n}\r\n\r\nfunction titleClick() {\r\n return (event) => {\r\n event.preventDefault();\r\n \r\n var toggle = event.currentTarget;\r\n var facet = toggle.parentElement;\r\n\r\n facet.classList.toggle('c-facet--open');\r\n const expanded = facet.classList.contains('c-facet--open') ? 'true' : 'false';\r\n toggle.setAttribute('aria-expanded', expanded);\r\n }\r\n}\r\n\r\nexport default Facet;\r\n", "function Gallery() {\r\n const mainSlides = document.querySelectorAll('.c-gallery__main .c-gallery__slide');\r\n const thumbnailSlides = document.querySelectorAll('.c-gallery__thumbnails .c-gallery__slide');\r\n\r\n thumbnailSlides.forEach(thumbnailSlide => thumbnailSlide.addEventListener('click', function(e) {\r\n thumbnailSlides.forEach(function(thumbnail) {\r\n if(thumbnail != e.target.parentNode) {\r\n thumbnail.classList.remove('active');\r\n }\r\n });\r\n e.target.parentNode.classList.add('active');\r\n\r\n mainSlides.forEach(function(mainSlide) {\r\n if(mainSlide.dataset.slide == thumbnailSlide.dataset.slide) {\r\n mainSlide.classList.add('active');\r\n } else {\r\n mainSlide.classList.remove('active');\r\n }\r\n });\r\n }));\r\n\r\n mainSlides.forEach(function(mainSlide) {\r\n if(!mainSlide.classList.contains('c-gallery__video')) {\r\n mainSlide.addEventListener('click', lightboxTrigger);\r\n }\r\n });\r\n\r\n function lightboxTrigger() {\r\n const lightbox = document.querySelector('.c-gallery__main').cloneNode(true);\r\n lightbox.classList.remove('c-gallery__main');\r\n lightbox.classList.add('c-lightbox');\r\n lightbox.querySelectorAll('.c-gallery__slide').forEach(function(slide) {\r\n if(slide.classList.contains('c-gallery__video')) {\r\n slide.remove();\r\n }\r\n if(!slide.classList.contains('c-gallery__video')) {\r\n var slideImg = slide.querySelector('img');\r\n if(slideImg.srcset != '') {\r\n slideImg.removeAttribute('srcset');\r\n }\r\n var slideImgSrc = slideImg.getAttribute('src');\r\n if (slideImgSrc) {\r\n if (slideImgSrc.indexOf('?') !== -1) {\r\n slideImg.setAttribute('src', slideImgSrc.split(\"?\")[0] + '?quality=90&width=2176');\r\n } else {\r\n slideImg.setAttribute('src', slideImgSrc + '?quality=90&width=2176');\r\n }\r\n } else {\r\n console.log(slideImg);\r\n console.log('has no src defined...');\r\n }\r\n }\r\n slide.classList.add('c-lightbox__slide');\r\n slide.classList.remove('c-gallery__slide');\r\n });\r\n document.body.appendChild(lightbox);\r\n lightbox.insertAdjacentHTML('beforeend', '<a class=\"c-lightbox__prev\"></a><a class=\"c-lightbox__next\"></a>');\r\n\r\n lightbox.querySelector('.c-lightbox__prev').addEventListener('click', function() {\r\n const lightboxActive = lightbox.querySelector('.active');\r\n const prevImage = lightbox.querySelector('[data-slide=\"' + (parseInt(lightboxActive.dataset.slide) - 1) + '\"]');\r\n if(prevImage != null) {\r\n lightboxActive.classList.remove('active');\r\n prevImage.classList.add('active');\r\n }\r\n });\r\n\r\n lightbox.querySelector('.c-lightbox__next').addEventListener('click', function() {\r\n const lightboxActive = lightbox.querySelector('.active');\r\n const nextImage = lightbox.querySelector('[data-slide=\"' + (parseInt(lightboxActive.dataset.slide) + 1) + '\"]');\r\n if(nextImage != null) {\r\n lightboxActive.classList.remove('active');\r\n nextImage.classList.add('active');\r\n }\r\n });\r\n\r\n lightbox.addEventListener('click', function(e) {\r\n if (e.target !== e.currentTarget) {\r\n return;\r\n } else {\r\n lightbox.remove();\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default Gallery;\r\n", "export function shuffle(array) {\r\n const arr = [...array];\r\n for (let i = arr.length - 1; i > 0; i--) {\r\n let j = Math.floor(Math.random() * (i + 1));\r\n [arr[i], arr[j]] = [arr[j], arr[i]];\r\n }\r\n\r\n return arr;\r\n}\r\n\r\nexport function userPrefersReducedMotion() {\r\n const QUERY = '(prefers-reduced-motion: no-preference)';\r\n const mediaQueryList = window.matchMedia(QUERY);\r\n const prefersReducedMotion = !mediaQueryList.matches;\r\n return prefersReducedMotion;\r\n}\r\n\r\nexport const debounce = (func, limit) => {\r\n let wait = false; \r\n return () => {\r\n if (wait) return;\r\n func();\r\n wait = true;\r\n setTimeout(() => wait = false, limit);\r\n }\r\n}\r\n\r\nexport const lerp = (x, y, a) => x * (1 - a) + y * a;\r\nexport const clamp = (a, min = 0, max = 1) => Math.min(max, Math.max(min, a));\r\nexport const invlerp = (x, y, a) => clamp((a - x) / (y - x));\r\nexport const range = (x1, y1, x2, y2, a) => lerp(x2, y2, invlerp(x1, y1, a));\r\n", "import { range, shuffle, userPrefersReducedMotion } from './utilities';\r\n\r\nfunction HeroPattern() {\r\n let time = 0;\r\n\r\n const c = document.querySelector('.c-hero__canvas');\r\n if (!c) return;\r\n const ctx = c.getContext(\"2d\");\r\n \r\n const sineColour = \"rgb(19,170,19)\";\r\n const reduceMotion = userPrefersReducedMotion();\r\n\r\n const crossGap = 147;\r\n const minimumOpacity = 0;\r\n const maximumOpacity = 0.5;\r\n const crossSpeed = 0.25;\r\n\r\n let width;\r\n let height;\r\n let across;\r\n let down;\r\n let crosses = [];\r\n let totalPoints;\r\n\r\n function draw() {\r\n // Sine wave\r\n time = time + 0.005;\r\n \r\n ctx.clearRect(0, 0, c.width, c.height);\r\n ctx.beginPath();\r\n \r\n for(let cnt = c.width; cnt > 0; cnt--) {\r\n ctx.lineTo(cnt, c.height * 0.5 - (Math.cos(time + cnt / 5 * 0.03) * (height * 0.3) ));\r\n }\r\n \r\n ctx.lineWidth = 0.5;\r\n ctx.strokeStyle = sineColour;\r\n ctx.stroke();\r\n \r\n // Crosses\r\n crosses.forEach(cross => {\r\n drawCross(cross.x, cross.y, range(0, crosses.length, minimumOpacity, maximumOpacity, cross.counter));\r\n \r\n cross.counter += cross.direction;\r\n if (cross.counter >= crosses.length) cross.direction = -1 * crossSpeed;\r\n if (cross.counter < 0) cross.direction = crossSpeed;\r\n })\r\n \r\n if (!reduceMotion) {\r\n window.requestAnimationFrame(draw);\r\n }\r\n }\r\n \r\n function onResize() {\r\n width = c.scrollWidth;\r\n height = c.scrollHeight;\r\n \r\n ctx.canvas.width = width;\r\n ctx.canvas.height = height;\r\n \r\n across = Math.ceil(width / crossGap);\r\n down = Math.ceil(height / crossGap);\r\n \r\n totalPoints = (across + 1) * (down + 1);\r\n const ids = shuffle(Array.from({ length: totalPoints }, (_, i) => (i)))\r\n crosses = [];\r\n for(let x = 0; x <= across; x++) {\r\n for(let y = 0; y <= down; y++) {\r\n crosses.push({\r\n counter: ids.shift(),\r\n direction: Math.random() > 0.5 ? crossSpeed : -1 * crossSpeed,\r\n x: crossGap * (x + 1) - crossGap / 1,\r\n y: crossGap * (y + 1) - crossGap / 2\r\n });\r\n }\r\n }\r\n }\r\n \r\n function drawCross(x, y, opacity) {\r\n ctx.beginPath();\r\n ctx.moveTo(x - 14, y);\r\n ctx.lineTo(x + 14, y);\r\n ctx.strokeStyle = `rgba(255, 255, 255, ${opacity}`;\r\n ctx.moveTo(x, y - 14);\r\n ctx.lineTo(x, y + 14);\r\n ctx.stroke();\r\n }\r\n\r\n window.addEventListener('resize', onResize);\r\n onResize();\r\n draw();\r\n}\r\n\r\nexport default HeroPattern;\r\n", "function HeroVideo() {\r\n document.addEventListener(\"DOMContentLoaded\", () => {\r\n const videoBackground = document.getElementById('videoBackground');\r\n if(typeof(videoBackground) != 'undefined' && videoBackground != null) {\r\n const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\r\n if(!reducedMotion || reducedMotion.matches) {\r\n videoBackground.pause();\r\n }\r\n \r\n const lightboxTrigger = document.getElementById('playVideo');\r\n const lightboxContainer = document.getElementById('lightboxVideo');\r\n const lightboxVideo = lightboxContainer.querySelector('.c-lightbox__video');\r\n\r\n lightboxTrigger.addEventListener('click', e => {\r\n videoBackground.pause();\r\n lightboxContainer.classList.remove('u-hidden');\r\n checkVideos();\r\n });\r\n \r\n lightboxContainer.addEventListener('click', (e) => {\r\n if (!e.target.classList.contains('c-lightbox__video')) {\r\n videoBackground.setAttribute('autoplay','');\r\n lightboxContainer.classList.add('u-hidden');\r\n checkVideos();\r\n }\r\n });\r\n window.addEventListener('keydown', function(e) {\r\n if (e.key == \"Escape\") {\r\n videoBackground.setAttribute('autoplay','');\r\n lightboxContainer.classList.add('u-hidden');\r\n checkVideos();\r\n }\r\n });\r\n\r\n function checkVideos() {\r\n if(lightboxContainer.classList.contains('u-hidden')) {\r\n if (videoBackground.paused) {\r\n videoBackground.play();\r\n }\r\n if (!lightboxVideo.paused) {\r\n lightboxVideo.pause();\r\n }\r\n } else {\r\n if (!videoBackground.paused) {\r\n videoBackground.pause();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport default HeroVideo;", "// Function to initialize tooltip behavior\r\nfunction HotspotImage() {\r\n // Add delay for Tridion JavaScript created hotspot images\r\n setTimeout(function () {\r\n // Select all elements that trigger tooltips\r\n const tooltips = document.querySelectorAll('.c-hotspot-image__button');\r\n\r\n // Add event listeners for each tooltip button\r\n tooltips.forEach((button) => {\r\n button.addEventListener('click', handleTooltipToggle);\r\n });\r\n\r\n // Add event listener for Escape key press\r\n document.addEventListener('keydown', handleKeyDown);\r\n\r\n // Add event listener for click outside tooltip\r\n document.addEventListener('click', handleClickOutside);\r\n }, 2000);\r\n}\r\n\r\n// Function to handle the tooltip toggle\r\nfunction handleTooltipToggle(event) {\r\n // Prevent default action if needed\r\n event.preventDefault();\r\n\r\n const button = event.currentTarget;\r\n const tooltipId = button.getAttribute('aria-controls');\r\n const tooltip = document.getElementById(tooltipId);\r\n\r\n if (tooltip.classList.contains('c-hotspot-image__tooltip--open')) {\r\n closeTooltip(button, tooltip);\r\n } else {\r\n openTooltip(button, tooltip);\r\n }\r\n}\r\n\r\n// Function to open a tooltip\r\nfunction openTooltip(button, tooltip) {\r\n // Add active class and make tooltip visible\r\n tooltip.classList.add('c-hotspot-image__tooltip--open');\r\n tooltip.setAttribute('aria-hidden', 'false');\r\n button.setAttribute('aria-expanded', 'true');\r\n\r\n // Add event listener for click outside\r\n document.addEventListener('click', handleClickOutside);\r\n}\r\n\r\n// Function to close a tooltip\r\nfunction closeTooltip(button, tooltip) {\r\n // Remove active class and hide tooltip\r\n tooltip.classList.remove('c-hotspot-image__tooltip--open');\r\n tooltip.setAttribute('aria-hidden', 'true');\r\n button.setAttribute('aria-expanded', 'false');\r\n\r\n // Remove event listener for click outside\r\n document.removeEventListener('click', handleClickOutside);\r\n}\r\n\r\n// Function to handle Escape key press\r\nfunction handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n const activeTooltip = document.querySelector(\r\n '.c-hotspot-image__tooltip--open'\r\n );\r\n if (activeTooltip) {\r\n const button = document.querySelector(\r\n `[aria-controls=\"${activeTooltip.id}\"]`\r\n );\r\n closeTooltip(button, activeTooltip);\r\n }\r\n }\r\n}\r\n\r\n// Function to handle click outside the tooltip\r\nfunction handleClickOutside(event) {\r\n const activeTooltip = document.querySelector(\r\n '.c-hotspot-image__tooltip--open'\r\n );\r\n if (\r\n activeTooltip &&\r\n !activeTooltip.contains(event.target) &&\r\n !event.target.closest('.c-hotspot-image__button')\r\n ) {\r\n const button = document.querySelector(\r\n `[aria-controls=\"${activeTooltip.id}\"]`\r\n );\r\n closeTooltip(button, activeTooltip);\r\n }\r\n}\r\n\r\nexport default HotspotImage;\r\n", "function InternalNav() {\r\n const internalNav = document.querySelector('.c-internal-nav--sticky');\r\n\r\n if (!internalNav) {\r\n return;\r\n }\r\n\r\n const observerOptions = {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: 1.0\r\n };\r\n\r\n const intersectionCallback = (entries, observer) => {\r\n const isIntersecting = entries[0].isIntersecting;\r\n internalNav.classList.toggle('c-internal-nav--stuck', !isIntersecting);\r\n };\r\n\r\n const observer = new IntersectionObserver(intersectionCallback, observerOptions);\r\n observer.observe(internalNav);\r\n\r\n let internalNavHeight = internalNav.offsetHeight;\r\n\r\n const updateInternalNavHeight = () => {\r\n internalNavHeight = internalNav.offsetHeight;\r\n const anchors = Array.from(internalNav.querySelectorAll('a'));\r\n anchors.forEach(anchor => {\r\n const id = anchor.getAttribute('href').replace('#', '');\r\n const target = document.getElementById(id);\r\n if (target) {\r\n target.style.scrollMarginTop = `${internalNavHeight}px`;\r\n }\r\n });\r\n };\r\n\r\n window.addEventListener('resize', updateInternalNavHeight);\r\n\r\n updateInternalNavHeight();\r\n}\r\n\r\nexport default InternalNav;", "// Function to initialize off-canvas behavior\r\nfunction OffCanvas() {\r\n // Select all elements that trigger off-canvas behavior\r\n const toggles = document.querySelectorAll(\".c-off-canvas__toggle\");\r\n\r\n // Iterate through each toggle element\r\n if (toggles.length) {\r\n toggles.forEach(toggle => {\r\n // Determine initial visibility state and handle click event\r\n handleOffCanvas(toggle, isVisible(toggle));\r\n toggle.addEventListener('click', () => toggleOffCanvas(toggle));\r\n });\r\n\r\n // Add event listener for scroll events to check visibility\r\n // window.addEventListener('scroll', () => {\r\n // toggles.forEach(toggle => {\r\n // handleOffCanvas(toggle, isVisible(toggle));\r\n // });\r\n // });\r\n\r\n // Add event listener for resize events to check visibility\r\n window.addEventListener('resize', () => {\r\n toggles.forEach(toggle => {\r\n handleOffCanvas(toggle, isVisible(toggle));\r\n });\r\n });\r\n }\r\n}\r\n\r\n// Function to check if an element is currently visible on the page\r\nfunction isVisible(element) {\r\n // Check element's styles for visibility\r\n const style = window.getComputedStyle(element);\r\n return (\r\n style.display !== 'none' &&\r\n style.visibility !== 'hidden'\r\n );\r\n}\r\n\r\n// Function to handle off-canvas behavior based on visibility\r\nfunction handleOffCanvas(toggle, isVisible) {\r\n const target = document.getElementById(toggle.getAttribute('data-target'));\r\n if (isVisible === true) {\r\n createOffCanvas(target);\r\n } else {\r\n removeOffCanvas(target);\r\n }\r\n}\r\n\r\n// Function to create off canvas\r\nfunction createOffCanvas(target) {\r\n // Add necessary classes and attributes for off-canvas display\r\n target.classList.add('c-off-canvas');\r\n target.setAttribute('tabindex', '-1');\r\n target.setAttribute('aria-hidden', 'true');\r\n \r\n // Extract specific sections of the off-canvas content\r\n const targetHeader = target.querySelector('[data-off-canvas=\"header\"]');\r\n const targetMain = target.querySelector('[data-off-canvas=\"main\"]');\r\n const targetFooter = target.querySelector('[data-off-canvas=\"footer\"]');\r\n\r\n // Extract content from the sections\r\n const targetHeaderContent = targetHeader !== null ? targetHeader.outerHTML : '';\r\n const targetMainContent = targetMain !== null ? targetMain.outerHTML : '';\r\n const targetFooterContent = targetFooter !== null ? targetFooter.outerHTML : '';\r\n\r\n // Replace the target's content with off-canvas structure\r\n target.innerHTML = `\r\n <div class=\"c-off-canvas__backdrop\" role=\"presentation\"></div>\r\n <div class=\"c-off-canvas__content\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"offCanvasHeader\">\r\n <header id=\"offCanvasHeader\" class=\"c-off-canvas__header\">${targetHeaderContent}</header>\r\n <main class=\"c-off-canvas__main\">${targetMainContent}</main>\r\n <footer class=\"c-off-canvas__footer\">\r\n ${targetFooterContent}\r\n <button class=\"mp c-twi c-twi--left c-off-canvas__close\" data-off-canvas-close=\"true\" onclick=\"return false\">\r\n <span>Cancel</span>\r\n <svg role=\"img\" aria-hidden=\"true\" focusable=\"false\" class=\"mp c-icon c-icon--cross\">\r\n <use xlink:href=\"/static/svg/sprite.svg#cross\"></use>\r\n </svg>\r\n </button>\r\n </footer>\r\n </div>\r\n `;\r\n}\r\n\r\n// Function to remove off-canvas layout\r\nfunction removeOffCanvas(target) {\r\n // Remove classes and attributes for off-canvas display\r\n target.classList.remove('c-off-canvas', 'c-off-canvas--active');\r\n target.removeAttribute('tabindex');\r\n target.removeAttribute('aria-hidden');\r\n\r\n // Remove backdrop element if present\r\n const targetBackdrop = target.querySelector('.c-off-canvas__backdrop');\r\n if (targetBackdrop) {\r\n targetBackdrop.remove();\r\n }\r\n\r\n // Restore original content by removing off-canvas structure\r\n const targetContent = target.querySelector('.c-off-canvas__content');\r\n if (targetContent) {\r\n while (targetContent.firstChild) {\r\n target.insertBefore(targetContent.firstChild, targetContent);\r\n }\r\n target.removeChild(targetContent);\r\n }\r\n\r\n const targetHeader = target.querySelector('.c-off-canvas__header');\r\n if (targetHeader) {\r\n while (targetHeader.firstChild) {\r\n target.insertBefore(targetHeader.firstChild, targetHeader);\r\n }\r\n target.removeChild(targetHeader);\r\n }\r\n\r\n const targetMain = target.querySelector('.c-off-canvas__main');\r\n if (targetMain) {\r\n while (targetMain.firstChild) {\r\n target.insertBefore(targetMain.firstChild, targetMain);\r\n }\r\n target.removeChild(targetMain);\r\n }\r\n\r\n const targetFooter = target.querySelector('.c-off-canvas__footer');\r\n if (targetFooter) {\r\n while (targetFooter.firstChild) {\r\n target.insertBefore(targetFooter.firstChild, targetFooter);\r\n }\r\n target.removeChild(targetFooter);\r\n }\r\n \r\n // Remove close button element if present\r\n const targetClose = target.querySelector('.c-off-canvas__close');\r\n if (targetClose) {\r\n targetClose.remove();\r\n }\r\n}\r\n\r\n// Function to toggle off-canvas visibility\r\nfunction toggleOffCanvas(toggle) {\r\n const target = document.getElementById(toggle.getAttribute('data-target'));\r\n\r\n // Check if the target is already open or closed\r\n if (!target.classList.contains('c-off-canvas--active')) {\r\n openOffCanvas(toggle, target);\r\n } else if (target.classList.contains('c-off-canvas--active')) {\r\n closeOffCanvas(target);\r\n }\r\n}\r\n\r\nfunction openOffCanvas(toggle, target) {\r\n // Add classes and attributes for open off-canvas\r\n toggle.setAttribute('aria-expanded', 'true');\r\n target.classList.add('c-off-canvas--active');\r\n target.setAttribute('aria-hidden', 'false');\r\n\r\n // Add event listener for backdrop clicks\r\n const offCanvasBackdrop = target.querySelector('.c-off-canvas__backdrop');\r\n if(offCanvasBackdrop) {\r\n offCanvasBackdrop.addEventListener('click', handleBackdropClick);\r\n }\r\n\r\n // Add event listener forclose button clicks\r\n const offCanvasCloseElements = target.querySelectorAll('[data-off-canvas-close=\"true\"]');\r\n if (offCanvasCloseElements.length > 0) {\r\n offCanvasCloseElements.forEach((offCanvasClose) => {\r\n offCanvasClose.addEventListener('click', handleCloseClick);\r\n });\r\n }\r\n\r\n // Add event listener for Escape key press\r\n document.addEventListener('keydown', handleKeyDown, { once: true });\r\n\r\n // Adjust body overflow to prevent scrolling\r\n document.body.style.overflowY = 'hidden';\r\n\r\n // Close other open off-canvas elements\r\n const allOffCanvasElementsExceptCurrent = Array.from(document.querySelectorAll('.c-off-canvas')).filter(offCanvas => offCanvas !== target);\r\n if (allOffCanvasElementsExceptCurrent.length > 0) {\r\n allOffCanvasElementsExceptCurrent.forEach((offCanvas) => {\r\n closeOffCanvas(offCanvas);\r\n });\r\n }\r\n}\r\n\r\n// Function to close an off-canvas\r\nfunction closeOffCanvas(target) {\r\n // Remove classes and attributes for open off-canvas\r\n document.querySelector('[data-target=\"' + target.id + '\"').setAttribute('aria-expanded', 'false');\r\n target.classList.remove('c-off-canvas--active');\r\n target.setAttribute('aria-hidden', 'true');\r\n\r\n // Restore body overflow\r\n document.body.style.overflowY = '';\r\n}\r\n\r\n// Function to handle backdrop click\r\nfunction handleBackdropClick() {\r\n const offCanvas = this.closest('.c-off-canvas');\r\n closeOffCanvas(offCanvas);\r\n}\r\n\r\n// Function to handle Escape key press\r\nfunction handleKeyDown(event) {\r\n if (event.key === 'Escape') {\r\n const activeOffCanvas = document.querySelector('.c-off-canvas--active');\r\n if (activeOffCanvas) {\r\n closeOffCanvas(activeOffCanvas);\r\n }\r\n }\r\n}\r\n\r\n// Function to handle close button click\r\nfunction handleCloseClick() {\r\n const offCanvas = this.closest('.c-off-canvas');\r\n closeOffCanvas(offCanvas);\r\n}\r\n\r\nexport default OffCanvas;", "const ResponsiveTable = () => {\r\n const tables = Array.from(document.querySelectorAll('.c-table--responsive'));\r\n tables.forEach(createResponsiveTable);\r\n\r\n /**\r\n * Create responsive table headers for large tables\r\n * @param {HTMLTableElement} table\r\n */\r\n function createResponsiveTable(table) {\r\n const headers = table.querySelectorAll('thead > :first-child th');\r\n const breakPoint = Number(table.getAttribute('data-columns')) || 2\r\n \r\n if (headers.length < breakPoint) {\r\n table.classList.remove('c-table--responsive');\r\n return;\r\n };\r\n\r\n Array.from(table.querySelectorAll('tbody tr')).forEach((row) => {\r\n Array.from(headers)\r\n .map((x) => x.textContent)\r\n .forEach((header, index) => {\r\n if (row.children[index]) {\r\n row.children[index].setAttribute('data-responsive-title', header);\r\n }\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport default ResponsiveTable;\r\n", "import { debounce } from './utilities';\r\n\r\nfunction ScrollbarWidth() {\r\n setScrollbarWidth();\r\n window.addEventListener('resize', debounce(setScrollbarWidth, 250));\r\n}\r\n\r\nfunction setScrollbarWidth() {\r\n document.documentElement.style.setProperty(\r\n '--scrollbarWidth', \r\n window.innerWidth - document.body.clientWidth + 'px'\r\n );\r\n}\r\n\r\nexport default ScrollbarWidth;", "function ScrollSpy() {\r\n const internalNav = document.querySelector('.c-internal-nav--sticky');\r\n const internalNavHeight = internalNav ? internalNav.offsetHeight : 0;\r\n\r\n const spies = Array.from(document.querySelectorAll('.c-scroll-spy'));\r\n spies.forEach(spy => {\r\n setup(spy, internalNavHeight);\r\n });\r\n}\r\n\r\nfunction setup(element, internalNavHeight) {\r\n const anchors = Array.from(element.querySelectorAll('a'));\r\n const observer = new IntersectionObserver(observation(anchors));\r\n \r\n anchors.forEach(anchor => {\r\n const id = anchor.getAttribute('href').replace('#', '');\r\n const target = document.getElementById(id);\r\n if (!target) return;\r\n\r\n observer.observe(target);\r\n });\r\n\r\n const currentTop = parseFloat(window.getComputedStyle(element).top);\r\n element.style.top = `${currentTop + internalNavHeight}px`;\r\n}\r\n\r\n/**\r\n * @param {Array<HTMLAnchorElement>} results \r\n * @return {Array<IntersectionObserverEntry>}\r\n */\r\nfunction observation(anchors) {\r\n return (results) => {\r\n const firstObservation = results.find(x => x.isIntersecting);\r\n\r\n if (firstObservation) {\r\n anchors.forEach(x => {\r\n x.classList.toggle(\r\n 'c-scroll-spy-active',\r\n x.getAttribute('href') === '#' + firstObservation.target.id\r\n )\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport default ScrollSpy;\r\n", "let resizeTimeout;\r\n\r\nfunction Tabs() {\r\n const tabs = Array.from(\r\n document.querySelectorAll(\".c-tabs--anchor, .c-tabs--mobile-accordion\"),\r\n );\r\n tabs.forEach((parent) => {\r\n setupTabs(parent);\r\n\r\n window.addEventListener(\"resize\", () => {\r\n clearTimeout(resizeTimeout);\r\n resizeTimeout = setTimeout(() => handleResize(parent), 100);\r\n });\r\n });\r\n}\r\n\r\nfunction setupTabs(parent) {\r\n const controls = Array.from(parent.querySelectorAll(\".c-tabs__control\"));\r\n const contents = Array.from(parent.querySelectorAll(\".c-tab\"));\r\n const persist = parent.dataset.persist === \"true\";\r\n\r\n if (!controls.length || !contents.length) return;\r\n\r\n controls.forEach((control, index) => {\r\n const content = contents[index];\r\n if (!content) return;\r\n\r\n control.setAttribute(\"role\", \"tab\");\r\n control.setAttribute(\r\n \"aria-selected\",\r\n control.classList.contains(\"c-tabs__control--active\") ? \"true\" : \"false\",\r\n );\r\n control.setAttribute(\"aria-controls\", content.id);\r\n control.id ||= `tab-${index + 1}-tab`;\r\n\r\n content.setAttribute(\"role\", \"tabpanel\");\r\n content.setAttribute(\"aria-labelledby\", control.id);\r\n content.hidden = !content.classList.contains(\"c-tab--active\");\r\n\r\n control.addEventListener(\"keydown\", (e) => handleKeydown(e, controls));\r\n });\r\n\r\n handleResize(parent);\r\n\r\n controls.forEach((control) => {\r\n control.addEventListener(\r\n \"click\",\r\n controlClick(controls, contents, persist),\r\n );\r\n });\r\n\r\n if (persist && window.location.hash) {\r\n const control = parent.querySelector(\r\n '[href=\"' + window.location.hash + '\"]',\r\n );\r\n if (control) control.dispatchEvent(new Event(\"click\"));\r\n }\r\n}\r\n\r\nfunction handleKeydown(event, controls) {\r\n const key = event.key;\r\n const current = event.currentTarget;\r\n let index = controls.indexOf(current);\r\n\r\n if ([\"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"].includes(key)) {\r\n event.preventDefault();\r\n\r\n if (key === \"ArrowLeft\")\r\n index = (index - 1 + controls.length) % controls.length;\r\n if (key === \"ArrowRight\") index = (index + 1) % controls.length;\r\n if (key === \"Home\") index = 0;\r\n if (key === \"End\") index = controls.length - 1;\r\n\r\n controls[index].focus();\r\n controls[index].click();\r\n }\r\n}\r\n\r\nfunction handleResize(parent) {\r\n const isAccordion = parent.classList.contains(\"c-tabs--mobile-accordion\");\r\n const isMobile = window.innerWidth <= 880;\r\n\r\n if (parent.dataset.viewMode === (isMobile ? \"accordion\" : \"tabs\")) {\r\n return;\r\n }\r\n\r\n parent.dataset.viewMode = isMobile ? \"accordion\" : \"tabs\";\r\n\r\n if (isAccordion && isMobile) {\r\n restructureForAccordion(parent);\r\n } else if (isAccordion && !isMobile) {\r\n restoreToTabs(parent);\r\n }\r\n}\r\n\r\nfunction restructureForAccordion(parent) {\r\n const controlElements = Array.from(\r\n parent.querySelectorAll(\".c-tabs__control\"),\r\n );\r\n const tabElements = Array.from(parent.querySelectorAll(\".c-tab\"));\r\n\r\n const controlsElement = parent.querySelector(\".c-tabs__controls\");\r\n if (controlsElement) {\r\n controlsElement.remove();\r\n }\r\n\r\n controlElements.forEach((control, index) => {\r\n const content = tabElements[index];\r\n if (content) {\r\n const tabWrapper = document.createElement(\"div\");\r\n tabWrapper.classList.add(\"c-tabs__content\");\r\n\r\n tabWrapper.appendChild(control);\r\n tabWrapper.appendChild(content);\r\n\r\n parent.appendChild(tabWrapper);\r\n }\r\n });\r\n}\r\n\r\nfunction restoreToTabs(parent) {\r\n const controls = Array.from(parent.querySelectorAll(\".c-tabs__control\"));\r\n const contents = Array.from(parent.querySelectorAll(\".c-tab\"));\r\n\r\n if (!controls.length || !contents.length) return;\r\n\r\n parent.innerHTML = `\r\n <nav class=\"c-tabs__controls-wrapper\">\r\n <div class=\"c-tabs__controls\">\r\n <ul class=\"c-tabs__controls-list\">\r\n ${controls.map((control) => `<li>${control.outerHTML}</li>`).join(\"\")}\r\n </ul>\r\n </div>\r\n </nav>\r\n <div class=\"c-tabs__content\">\r\n ${contents.map((content) => content.outerHTML).join(\"\")}\r\n </div>\r\n `;\r\n\r\n setTimeout(() => setupTabs(parent), 0);\r\n}\r\n\r\nfunction scrollToTabsTop(parent) {\r\n if (!parent) return;\r\n const rect = parent.getBoundingClientRect();\r\n const offset = window.pageYOffset + rect.top;\r\n\r\n const stickyOffset = parent.dataset.stickyOffset\r\n ? parseInt(parent.dataset.stickyOffset, 10)\r\n : 0;\r\n\r\n window.scrollTo({\r\n top: offset - stickyOffset,\r\n behavior: \"smooth\",\r\n });\r\n}\r\n\r\nfunction controlClick(controls, contents, persist) {\r\n return (event) => {\r\n const control = event.currentTarget;\r\n const contentId = control.getAttribute(\"href\")?.replace(\"#\", \"\");\r\n const content = contents.find((x) => x.id === contentId);\r\n\r\n if (!content) return true;\r\n\r\n event.preventDefault();\r\n\r\n if (persist) {\r\n history.pushState(null, null, control.getAttribute(\"href\"));\r\n }\r\n\r\n const isMobile = window.innerWidth <= 880;\r\n\r\n controls.forEach((c) => {\r\n const isActive = c === control;\r\n c.classList.toggle(\"c-tabs__control--active\", isActive);\r\n c.setAttribute(\"aria-selected\", isActive ? \"true\" : \"false\");\r\n });\r\n\r\n contents.forEach((c) => {\r\n const isActive = c === content;\r\n c.classList.toggle(\"c-tab--active\", isActive);\r\n c.hidden = !isActive;\r\n });\r\n\r\n scrollToTabsTop(\r\n control.closest(\".c-tabs--anchor, .c-tabs--mobile-accordion\"),\r\n );\r\n\r\n if (control.scrollIntoView) {\r\n control.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"nearest\",\r\n inline: \"nearest\",\r\n });\r\n }\r\n };\r\n}\r\n\r\nexport default Tabs;\r\n", "import Accordion from \"./imports/accordion.js\";\r\nimport Carousel from \"./imports/carousel.js\";\r\nimport ClearForm from \"./imports/clear-form.js\";\r\nimport Comparison from \"./imports/comparison.js\";\r\nimport Facet from \"./imports/facet.js\";\r\nimport Gallery from \"./imports/gallery.js\";\r\nimport HeroPattern from \"./imports/hero-pattern.js\";\r\nimport HeroVideo from \"./imports/hero-video.js\";\r\nimport HotspotImage from \"./imports/hotspot-image.js\";\r\nimport InternalNav from \"./imports/internal-nav.js\";\r\nimport OffCanvas from \"./imports/off-canvas.js\";\r\nimport ResponsiveTable from \"./imports/responsive-table.js\";\r\nimport ScrollbarWidth from \"./imports/scrollbar-width.js\";\r\nimport ScrollSpy from \"./imports/scroll-spy.js\";\r\nimport Tabs from \"./imports/tabs.js\";\r\n\r\nexport default function initializeApp() {\r\n // Polyfills\r\n if (window.NodeList && !NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = Array.prototype.forEach;\r\n }\r\n if (window.HTMLCollection && !HTMLCollection.prototype.forEach) {\r\n HTMLCollection.prototype.forEach = Array.prototype.forEach;\r\n }\r\n\r\n // Initialize components\r\n Accordion();\r\n Carousel();\r\n ClearForm();\r\n Comparison();\r\n Facet();\r\n Gallery();\r\n HeroPattern();\r\n HeroVideo();\r\n HotspotImage();\r\n InternalNav();\r\n OffCanvas();\r\n ResponsiveTable();\r\n ScrollbarWidth();\r\n ScrollSpy();\r\n Tabs();\r\n}\r\n\r\nif (typeof window !== \"undefined\") {\r\n initializeApp();\r\n}\r\n"],
5
+ "mappings": "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",
6
+ "names": ["Accordion", "setupAccordions", "title", "titleClick", "event", "item", "accordion_default", "Carousel", "current", "bgSlides", "fgSlides", "bgSlide", "fgSlide", "carousel_default", "ClearForm", "formClear", "field", "clear_form_default", "Comparison", "extractMobileComparison", "container", "parent", "body", "head", "mobile", "productsInfo", "x", "i", "productsButtons", "products", "info", "index", "row", "cells", "firstCell", "el", "product", "createMobileProduct", "comparison_default", "Facet", "setupFacetAccordions", "toggle", "titleClick", "event", "facet", "expanded", "facet_default", "Gallery", "mainSlides", "thumbnailSlides", "thumbnailSlide", "e", "thumbnail", "mainSlide", "lightboxTrigger", "lightbox", "slide", "slideImg", "slideImgSrc", "lightboxActive", "prevImage", "nextImage", "gallery_default", "shuffle", "array", "arr", "i", "j", "userPrefersReducedMotion", "debounce", "func", "limit", "wait", "lerp", "x", "y", "a", "clamp", "min", "max", "invlerp", "range", "x1", "y1", "x2", "y2", "HeroPattern", "time", "c", "ctx", "sineColour", "reduceMotion", "userPrefersReducedMotion", "crossGap", "minimumOpacity", "maximumOpacity", "crossSpeed", "width", "height", "across", "down", "crosses", "totalPoints", "draw", "cnt", "cross", "drawCross", "range", "onResize", "ids", "shuffle", "_", "i", "x", "y", "opacity", "hero_pattern_default", "HeroVideo", "videoBackground", "checkVideos", "lightboxContainer", "lightboxVideo", "reducedMotion", "lightboxTrigger", "e", "hero_video_default", "HotspotImage", "button", "handleTooltipToggle", "handleKeyDown", "handleClickOutside", "event", "tooltipId", "tooltip", "closeTooltip", "openTooltip", "activeTooltip", "hotspot_image_default", "InternalNav", "internalNav", "observerOptions", "intersectionCallback", "entries", "observer", "isIntersecting", "internalNavHeight", "updateInternalNavHeight", "anchor", "id", "target", "internal_nav_default", "OffCanvas", "toggles", "toggle", "handleOffCanvas", "isVisible", "toggleOffCanvas", "element", "style", "target", "createOffCanvas", "removeOffCanvas", "targetHeader", "targetMain", "targetFooter", "targetHeaderContent", "targetMainContent", "targetFooterContent", "targetBackdrop", "targetContent", "targetClose", "closeOffCanvas", "openOffCanvas", "offCanvasBackdrop", "handleBackdropClick", "offCanvasCloseElements", "offCanvasClose", "handleCloseClick", "handleKeyDown", "allOffCanvasElementsExceptCurrent", "offCanvas", "event", "activeOffCanvas", "off_canvas_default", "ResponsiveTable", "createResponsiveTable", "table", "headers", "breakPoint", "row", "x", "header", "index", "responsive_table_default", "ScrollbarWidth", "setScrollbarWidth", "debounce", "scrollbar_width_default", "ScrollSpy", "internalNav", "internalNavHeight", "spy", "setup", "element", "anchors", "observer", "observation", "anchor", "id", "target", "currentTop", "results", "firstObservation", "x", "scroll_spy_default", "resizeTimeout", "Tabs", "parent", "setupTabs", "handleResize", "controls", "contents", "persist", "control", "index", "content", "e", "handleKeydown", "controlClick", "event", "key", "current", "isAccordion", "isMobile", "restructureForAccordion", "restoreToTabs", "controlElements", "tabElements", "controlsElement", "tabWrapper", "scrollToTabsTop", "rect", "offset", "stickyOffset", "contentId", "x", "c", "isActive", "tabs_default", "initializeApp", "accordion_default", "carousel_default", "clear_form_default", "comparison_default", "facet_default", "gallery_default", "hero_pattern_default", "hero_video_default", "hotspot_image_default", "internal_nav_default", "off_canvas_default", "responsive_table_default", "scrollbar_width_default", "scroll_spy_default", "tabs_default"]
7
7
  }
@@ -1,14 +1,14 @@
1
- (()=>{function U(){Array.from(document.querySelectorAll(".c-accordion__title")).forEach(J)}function J(e){e.addEventListener("click",X())}function X(){return e=>{var t=e.currentTarget.parentElement;t.classList.toggle("c-accordion__item--open")}}var A=U;function Z(){let e=0,t=document.querySelectorAll(".c-hero__image-bg"),o=document.querySelectorAll(".c-hero__image-fg");o.length>0&&setInterval(()=>{for(var n of t)n.style.opacity=0;e=e!=t.length-1?e+1:0,t[e].style.opacity=1;for(var c of o)c.style.opacity=0;o[e].style.opacity=1},5e3)}var C=Z;function ee(){let e=document.getElementById("clearForm");e&&e.addEventListener("click",function(){this.closest("form").elements.forEach(o=>{if(o.value!=""){if(o.type.toLowerCase()=="text"||o.type.toLowerCase()=="email"||o.type.toLowerCase()=="tel"||o.type.toLowerCase()=="select-one"||o.type.toLowerCase()=="textarea"){o.value="";return}else if(o.type.toLowerCase()=="checkbox"){o.checked=!1;return}}})})}var w=ee;function te(){document.querySelectorAll(".c-comparison-table").forEach(oe)}function oe(e){let t=e.parentNode.parentNode,o=t.querySelector(".c-comparison-table tbody"),n=t.querySelector(".c-comparison-table thead"),c=t.parentElement.querySelector(".c-comparison-table__mobile");if(!o||!n||!c)return;let r=Array.from(n.children[0].children).filter((s,d)=>d).map(s=>({info:s.innerHTML})),i=Array.from(n.children[1].children).filter((s,d)=>d).map(s=>({buttons:s.innerHTML})),a=r.map((s,d)=>({...s,...i[d],table:[]}));Array.from(o.children).forEach(s=>{if(s.classList.contains("c-comparison-table__title"))a.forEach(d=>{d.table.push({type:"title",title:s.children[0].textContent})});else{let d=Array.from(s.children),m=d.shift();d.forEach((h,p)=>{a[p].table.push({type:"row",key:m.textContent,value:h.innerHTML})})}}),a.forEach(s=>{let d=ne(s);c.appendChild(d)})}function ne(e){let t=document.createElement("article");return t.innerHTML=`${e.info}${e.buttons}
1
+ (()=>{function U(){Array.from(document.querySelectorAll(".c-accordion__title")).forEach(J)}function J(e){e.addEventListener("click",X())}function X(){return e=>{var t=e.currentTarget.parentElement;t.classList.toggle("c-accordion__item--open")}}var E=U;function Z(){let e=0,t=document.querySelectorAll(".c-hero__image-bg"),o=document.querySelectorAll(".c-hero__image-fg");o.length>0&&setInterval(()=>{for(var n of t)n.style.opacity=0;e=e!=t.length-1?e+1:0,t[e].style.opacity=1;for(var r of o)r.style.opacity=0;o[e].style.opacity=1},5e3)}var w=Z;function ee(){let e=document.getElementById("clearForm");e&&e.addEventListener("click",function(){this.closest("form").elements.forEach(o=>{if(o.value!=""){if(o.type.toLowerCase()=="text"||o.type.toLowerCase()=="email"||o.type.toLowerCase()=="tel"||o.type.toLowerCase()=="select-one"||o.type.toLowerCase()=="textarea"){o.value="";return}else if(o.type.toLowerCase()=="checkbox"){o.checked=!1;return}}})})}var C=ee;function te(){document.querySelectorAll(".c-comparison-table").forEach(oe)}function oe(e){let t=e.parentNode.parentNode,o=t.querySelector(".c-comparison-table tbody"),n=t.querySelector(".c-comparison-table thead"),r=t.parentElement.querySelector(".c-comparison-table__mobile");if(!o||!n||!r)return;let c=Array.from(n.children[0].children).filter((a,s)=>s).map(a=>({info:a.innerHTML})),i=Array.from(n.children[1].children).filter((a,s)=>s).map(a=>({buttons:a.innerHTML})),l=c.map((a,s)=>({...a,...i[s],table:[]}));Array.from(o.children).forEach(a=>{if(a.classList.contains("c-comparison-table__title"))l.forEach(s=>{s.table.push({type:"title",title:a.children[0].textContent})});else{let s=Array.from(a.children),h=s.shift();s.forEach((m,p)=>{l[p].table.push({type:"row",key:h.textContent,value:m.innerHTML})})}}),l.forEach(a=>{let s=ne(a);r.appendChild(s)})}function ne(e){let t=document.createElement("article");return t.innerHTML=`${e.info}${e.buttons}
2
2
  <table class="c-comparison-table">
3
3
  ${e.table.map(o=>o.type==="title"?`<tr class="c-comparison-table__title"><th><span>${o.title}</span></th><th></th></tr>`:`<tr>
4
4
  <td>${o.key}</td>
5
5
  <td>${o.value}</td>
6
6
  </tr>`).join("")}
7
- </table>`,t}var S=te;function ce(){Array.from(document.querySelectorAll(".c-facet__toggle")).forEach(re)}function re(e){e.addEventListener("click",ie())}function ie(){return e=>{e.preventDefault();var t=e.currentTarget,o=t.parentElement;o.classList.toggle("c-facet--open");let n=o.classList.contains("c-facet--open")?"true":"false";t.setAttribute("aria-expanded",n)}}var x=ce;function ae(){let e=document.querySelectorAll(".c-gallery__main .c-gallery__slide"),t=document.querySelectorAll(".c-gallery__thumbnails .c-gallery__slide");t.forEach(n=>n.addEventListener("click",function(c){t.forEach(function(r){r!=c.target.parentNode&&r.classList.remove("active")}),c.target.parentNode.classList.add("active"),e.forEach(function(r){r.dataset.slide==n.dataset.slide?r.classList.add("active"):r.classList.remove("active")})})),e.forEach(function(n){n.classList.contains("c-gallery__video")||n.addEventListener("click",o)});function o(){let n=document.querySelector(".c-gallery__main").cloneNode(!0);n.classList.remove("c-gallery__main"),n.classList.add("c-lightbox"),n.querySelectorAll(".c-gallery__slide").forEach(function(c){if(c.classList.contains("c-gallery__video")&&c.remove(),!c.classList.contains("c-gallery__video")){var r=c.querySelector("img");r.srcset!=""&&r.removeAttribute("srcset");var i=r.getAttribute("src");i?i.indexOf("?")!==-1?r.setAttribute("src",i.split("?")[0]+"?quality=90&width=2176"):r.setAttribute("src",i+"?quality=90&width=2176"):(console.log(r),console.log("has no src defined..."))}c.classList.add("c-lightbox__slide"),c.classList.remove("c-gallery__slide")}),document.body.appendChild(n),n.insertAdjacentHTML("beforeend",'<a class="c-lightbox__prev"></a><a class="c-lightbox__next"></a>'),n.querySelector(".c-lightbox__prev").addEventListener("click",function(){let c=n.querySelector(".active"),r=n.querySelector('[data-slide="'+(parseInt(c.dataset.slide)-1)+'"]');r!=null&&(c.classList.remove("active"),r.classList.add("active"))}),n.querySelector(".c-lightbox__next").addEventListener("click",function(){let c=n.querySelector(".active"),r=n.querySelector('[data-slide="'+(parseInt(c.dataset.slide)+1)+'"]');r!=null&&(c.classList.remove("active"),r.classList.add("active"))}),n.addEventListener("click",function(c){c.target===c.currentTarget&&n.remove()})}}var q=ae;function k(e){let t=[...e];for(let o=t.length-1;o>0;o--){let n=Math.floor(Math.random()*(o+1));[t[o],t[n]]=[t[n],t[o]]}return t}function T(){return!window.matchMedia("(prefers-reduced-motion: no-preference)").matches}var M=(e,t)=>{let o=!1;return()=>{o||(e(),o=!0,setTimeout(()=>o=!1,t))}},se=(e,t,o)=>e*(1-o)+t*o,le=(e,t=0,o=1)=>Math.min(o,Math.max(t,e)),de=(e,t,o)=>le((o-e)/(t-e)),H=(e,t,o,n,c)=>se(o,n,de(e,t,c));function fe(){let e=0,t=document.querySelector(".c-hero__canvas");if(!t)return;let o=t.getContext("2d"),n="rgb(19,170,19)",c=T(),r=147,i=0,a=.5,s=.25,d,m,h,p,v=[],_;function L(){e=e+.005,o.clearRect(0,0,t.width,t.height),o.beginPath();for(let l=t.width;l>0;l--)o.lineTo(l,t.height*.5-Math.cos(e+l/5*.03)*(m*.3));o.lineWidth=.5,o.strokeStyle=n,o.stroke(),v.forEach(l=>{K(l.x,l.y,H(0,v.length,i,a,l.counter)),l.counter+=l.direction,l.counter>=v.length&&(l.direction=-1*s),l.counter<0&&(l.direction=s)}),c||window.requestAnimationFrame(L)}function E(){d=t.scrollWidth,m=t.scrollHeight,o.canvas.width=d,o.canvas.height=m,h=Math.ceil(d/r),p=Math.ceil(m/r),_=(h+1)*(p+1);let l=k(Array.from({length:_},(f,u)=>u));v=[];for(let f=0;f<=h;f++)for(let u=0;u<=p;u++)v.push({counter:l.shift(),direction:Math.random()>.5?s:-1*s,x:r*(f+1)-r/1,y:r*(u+1)-r/2})}function K(l,f,u){o.beginPath(),o.moveTo(l-14,f),o.lineTo(l+14,f),o.strokeStyle=`rgba(255, 255, 255, ${u}`,o.moveTo(l,f-14),o.lineTo(l,f+14),o.stroke()}window.addEventListener("resize",E),E(),L()}var B=fe;function ue(){document.addEventListener("DOMContentLoaded",()=>{let e=document.getElementById("videoBackground");if(typeof e<"u"&&e!=null){let r=function(){n.classList.contains("u-hidden")?(e.paused&&e.play(),c.paused||c.pause()):e.paused||e.pause()},t=window.matchMedia("(prefers-reduced-motion: reduce)");(!t||t.matches)&&e.pause();let o=document.getElementById("playVideo"),n=document.getElementById("lightboxVideo"),c=n.querySelector(".c-lightbox__video");o.addEventListener("click",i=>{e.pause(),n.classList.remove("u-hidden"),r()}),n.addEventListener("click",i=>{i.target.classList.contains("c-lightbox__video")||(e.setAttribute("autoplay",""),n.classList.add("u-hidden"),r())}),window.addEventListener("keydown",function(i){i.key=="Escape"&&(e.setAttribute("autoplay",""),n.classList.add("u-hidden"),r())})}})}var I=ue;function me(){setTimeout(function(){document.querySelectorAll(".c-hotspot-image__button").forEach(t=>{t.addEventListener("click",he)}),document.addEventListener("keydown",ve),document.addEventListener("click",g)},2e3)}function he(e){e.preventDefault();let t=e.currentTarget,o=t.getAttribute("aria-controls"),n=document.getElementById(o);n.classList.contains("c-hotspot-image__tooltip--open")?b(t,n):pe(t,n)}function pe(e,t){t.classList.add("c-hotspot-image__tooltip--open"),t.setAttribute("aria-hidden","false"),e.setAttribute("aria-expanded","true"),document.addEventListener("click",g)}function b(e,t){t.classList.remove("c-hotspot-image__tooltip--open"),t.setAttribute("aria-hidden","true"),e.setAttribute("aria-expanded","false"),document.removeEventListener("click",g)}function ve(e){if(e.key==="Escape"){let t=document.querySelector(".c-hotspot-image__tooltip--open");if(t){let o=document.querySelector(`[aria-controls="${t.id}"]`);b(o,t)}}}function g(e){let t=document.querySelector(".c-hotspot-image__tooltip--open");if(t&&!t.contains(e.target)&&!e.target.closest(".c-hotspot-image__button")){let o=document.querySelector(`[aria-controls="${t.id}"]`);b(o,t)}}var O=me;function ye(){let e=document.querySelector(".c-internal-nav--sticky");if(!e)return;let t={root:null,rootMargin:"0px",threshold:1},o=(i,a)=>{let s=i[0].isIntersecting;e.classList.toggle("c-internal-nav--stuck",!s)};new IntersectionObserver(o,t).observe(e);let c=e.offsetHeight,r=()=>{c=e.offsetHeight,Array.from(e.querySelectorAll("a")).forEach(a=>{let s=a.getAttribute("href").replace("#",""),d=document.getElementById(s);d&&(d.style.scrollMarginTop=`${c}px`)})};window.addEventListener("resize",r),r()}var $=ye;function be(){let e=document.querySelectorAll(".c-off-canvas__toggle");e.length&&(e.forEach(t=>{F(t,N(t)),t.addEventListener("click",()=>Le(t))}),window.addEventListener("resize",()=>{e.forEach(t=>{F(t,N(t))})}))}function N(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function F(e,t){let o=document.getElementById(e.getAttribute("data-target"));t===!0?ge(o):_e(o)}function ge(e){e.classList.add("c-off-canvas"),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","true");let t=e.querySelector('[data-off-canvas="header"]'),o=e.querySelector('[data-off-canvas="main"]'),n=e.querySelector('[data-off-canvas="footer"]'),c=t!==null?t.outerHTML:"",r=o!==null?o.outerHTML:"",i=n!==null?n.outerHTML:"";e.innerHTML=`
7
+ </table>`,t}var S=te;function re(){Array.from(document.querySelectorAll(".c-facet__toggle")).forEach(ce)}function ce(e){e.addEventListener("click",ie())}function ie(){return e=>{e.preventDefault();var t=e.currentTarget,o=t.parentElement;o.classList.toggle("c-facet--open");let n=o.classList.contains("c-facet--open")?"true":"false";t.setAttribute("aria-expanded",n)}}var x=re;function ae(){let e=document.querySelectorAll(".c-gallery__main .c-gallery__slide"),t=document.querySelectorAll(".c-gallery__thumbnails .c-gallery__slide");t.forEach(n=>n.addEventListener("click",function(r){t.forEach(function(c){c!=r.target.parentNode&&c.classList.remove("active")}),r.target.parentNode.classList.add("active"),e.forEach(function(c){c.dataset.slide==n.dataset.slide?c.classList.add("active"):c.classList.remove("active")})})),e.forEach(function(n){n.classList.contains("c-gallery__video")||n.addEventListener("click",o)});function o(){let n=document.querySelector(".c-gallery__main").cloneNode(!0);n.classList.remove("c-gallery__main"),n.classList.add("c-lightbox"),n.querySelectorAll(".c-gallery__slide").forEach(function(r){if(r.classList.contains("c-gallery__video")&&r.remove(),!r.classList.contains("c-gallery__video")){var c=r.querySelector("img");c.srcset!=""&&c.removeAttribute("srcset");var i=c.getAttribute("src");i?i.indexOf("?")!==-1?c.setAttribute("src",i.split("?")[0]+"?quality=90&width=2176"):c.setAttribute("src",i+"?quality=90&width=2176"):(console.log(c),console.log("has no src defined..."))}r.classList.add("c-lightbox__slide"),r.classList.remove("c-gallery__slide")}),document.body.appendChild(n),n.insertAdjacentHTML("beforeend",'<a class="c-lightbox__prev"></a><a class="c-lightbox__next"></a>'),n.querySelector(".c-lightbox__prev").addEventListener("click",function(){let r=n.querySelector(".active"),c=n.querySelector('[data-slide="'+(parseInt(r.dataset.slide)-1)+'"]');c!=null&&(r.classList.remove("active"),c.classList.add("active"))}),n.querySelector(".c-lightbox__next").addEventListener("click",function(){let r=n.querySelector(".active"),c=n.querySelector('[data-slide="'+(parseInt(r.dataset.slide)+1)+'"]');c!=null&&(r.classList.remove("active"),c.classList.add("active"))}),n.addEventListener("click",function(r){r.target===r.currentTarget&&n.remove()})}}var k=ae;function q(e){let t=[...e];for(let o=t.length-1;o>0;o--){let n=Math.floor(Math.random()*(o+1));[t[o],t[n]]=[t[n],t[o]]}return t}function T(){return!window.matchMedia("(prefers-reduced-motion: no-preference)").matches}var M=(e,t)=>{let o=!1;return()=>{o||(e(),o=!0,setTimeout(()=>o=!1,t))}},se=(e,t,o)=>e*(1-o)+t*o,le=(e,t=0,o=1)=>Math.min(o,Math.max(t,e)),de=(e,t,o)=>le((o-e)/(t-e)),H=(e,t,o,n,r)=>se(o,n,de(e,t,r));function fe(){let e=0,t=document.querySelector(".c-hero__canvas");if(!t)return;let o=t.getContext("2d"),n="rgb(19,170,19)",r=T(),c=147,i=0,l=.5,a=.25,s,h,m,p,v=[],_;function A(){e=e+.005,o.clearRect(0,0,t.width,t.height),o.beginPath();for(let d=t.width;d>0;d--)o.lineTo(d,t.height*.5-Math.cos(e+d/5*.03)*(h*.3));o.lineWidth=.5,o.strokeStyle=n,o.stroke(),v.forEach(d=>{K(d.x,d.y,H(0,v.length,i,l,d.counter)),d.counter+=d.direction,d.counter>=v.length&&(d.direction=-1*a),d.counter<0&&(d.direction=a)}),r||window.requestAnimationFrame(A)}function L(){s=t.scrollWidth,h=t.scrollHeight,o.canvas.width=s,o.canvas.height=h,m=Math.ceil(s/c),p=Math.ceil(h/c),_=(m+1)*(p+1);let d=q(Array.from({length:_},(f,u)=>u));v=[];for(let f=0;f<=m;f++)for(let u=0;u<=p;u++)v.push({counter:d.shift(),direction:Math.random()>.5?a:-1*a,x:c*(f+1)-c/1,y:c*(u+1)-c/2})}function K(d,f,u){o.beginPath(),o.moveTo(d-14,f),o.lineTo(d+14,f),o.strokeStyle=`rgba(255, 255, 255, ${u}`,o.moveTo(d,f-14),o.lineTo(d,f+14),o.stroke()}window.addEventListener("resize",L),L(),A()}var O=fe;function ue(){document.addEventListener("DOMContentLoaded",()=>{let e=document.getElementById("videoBackground");if(typeof e<"u"&&e!=null){let c=function(){n.classList.contains("u-hidden")?(e.paused&&e.play(),r.paused||r.pause()):e.paused||e.pause()},t=window.matchMedia("(prefers-reduced-motion: reduce)");(!t||t.matches)&&e.pause();let o=document.getElementById("playVideo"),n=document.getElementById("lightboxVideo"),r=n.querySelector(".c-lightbox__video");o.addEventListener("click",i=>{e.pause(),n.classList.remove("u-hidden"),c()}),n.addEventListener("click",i=>{i.target.classList.contains("c-lightbox__video")||(e.setAttribute("autoplay",""),n.classList.add("u-hidden"),c())}),window.addEventListener("keydown",function(i){i.key=="Escape"&&(e.setAttribute("autoplay",""),n.classList.add("u-hidden"),c())})}})}var I=ue;function he(){setTimeout(function(){document.querySelectorAll(".c-hotspot-image__button").forEach(t=>{t.addEventListener("click",me)}),document.addEventListener("keydown",ve),document.addEventListener("click",g)},2e3)}function me(e){e.preventDefault();let t=e.currentTarget,o=t.getAttribute("aria-controls"),n=document.getElementById(o);n.classList.contains("c-hotspot-image__tooltip--open")?b(t,n):pe(t,n)}function pe(e,t){t.classList.add("c-hotspot-image__tooltip--open"),t.setAttribute("aria-hidden","false"),e.setAttribute("aria-expanded","true"),document.addEventListener("click",g)}function b(e,t){t.classList.remove("c-hotspot-image__tooltip--open"),t.setAttribute("aria-hidden","true"),e.setAttribute("aria-expanded","false"),document.removeEventListener("click",g)}function ve(e){if(e.key==="Escape"){let t=document.querySelector(".c-hotspot-image__tooltip--open");if(t){let o=document.querySelector(`[aria-controls="${t.id}"]`);b(o,t)}}}function g(e){let t=document.querySelector(".c-hotspot-image__tooltip--open");if(t&&!t.contains(e.target)&&!e.target.closest(".c-hotspot-image__button")){let o=document.querySelector(`[aria-controls="${t.id}"]`);b(o,t)}}var B=he;function ye(){let e=document.querySelector(".c-internal-nav--sticky");if(!e)return;let t={root:null,rootMargin:"0px",threshold:1},o=(i,l)=>{let a=i[0].isIntersecting;e.classList.toggle("c-internal-nav--stuck",!a)};new IntersectionObserver(o,t).observe(e);let r=e.offsetHeight,c=()=>{r=e.offsetHeight,Array.from(e.querySelectorAll("a")).forEach(l=>{let a=l.getAttribute("href").replace("#",""),s=document.getElementById(a);s&&(s.style.scrollMarginTop=`${r}px`)})};window.addEventListener("resize",c),c()}var $=ye;function be(){let e=document.querySelectorAll(".c-off-canvas__toggle");e.length&&(e.forEach(t=>{R(t,N(t)),t.addEventListener("click",()=>Ae(t))}),window.addEventListener("resize",()=>{e.forEach(t=>{R(t,N(t))})}))}function N(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function R(e,t){let o=document.getElementById(e.getAttribute("data-target"));t===!0?ge(o):_e(o)}function ge(e){e.classList.add("c-off-canvas"),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","true");let t=e.querySelector('[data-off-canvas="header"]'),o=e.querySelector('[data-off-canvas="main"]'),n=e.querySelector('[data-off-canvas="footer"]'),r=t!==null?t.outerHTML:"",c=o!==null?o.outerHTML:"",i=n!==null?n.outerHTML:"";e.innerHTML=`
8
8
  <div class="c-off-canvas__backdrop" role="presentation"></div>
9
9
  <div class="c-off-canvas__content" role="dialog" aria-modal="true" aria-labelledby="offCanvasHeader">
10
- <header id="offCanvasHeader" class="c-off-canvas__header">${c}</header>
11
- <main class="c-off-canvas__main">${r}</main>
10
+ <header id="offCanvasHeader" class="c-off-canvas__header">${r}</header>
11
+ <main class="c-off-canvas__main">${c}</main>
12
12
  <footer class="c-off-canvas__footer">
13
13
  ${i}
14
14
  <button class="mp c-twi c-twi--left c-off-canvas__close" data-off-canvas-close="true" onclick="return false">
@@ -19,14 +19,16 @@
19
19
  </button>
20
20
  </footer>
21
21
  </div>
22
- `}function _e(e){e.classList.remove("c-off-canvas","c-off-canvas--active"),e.removeAttribute("tabindex"),e.removeAttribute("aria-hidden");let t=e.querySelector(".c-off-canvas__backdrop");t&&t.remove();let o=e.querySelector(".c-off-canvas__content");if(o){for(;o.firstChild;)e.insertBefore(o.firstChild,o);e.removeChild(o)}let n=e.querySelector(".c-off-canvas__header");if(n){for(;n.firstChild;)e.insertBefore(n.firstChild,n);e.removeChild(n)}let c=e.querySelector(".c-off-canvas__main");if(c){for(;c.firstChild;)e.insertBefore(c.firstChild,c);e.removeChild(c)}let r=e.querySelector(".c-off-canvas__footer");if(r){for(;r.firstChild;)e.insertBefore(r.firstChild,r);e.removeChild(r)}let i=e.querySelector(".c-off-canvas__close");i&&i.remove()}function Le(e){let t=document.getElementById(e.getAttribute("data-target"));t.classList.contains("c-off-canvas--active")?t.classList.contains("c-off-canvas--active")&&y(t):Ee(e,t)}function Ee(e,t){e.setAttribute("aria-expanded","true"),t.classList.add("c-off-canvas--active"),t.setAttribute("aria-hidden","false");let o=t.querySelector(".c-off-canvas__backdrop");o&&o.addEventListener("click",Ae);let n=t.querySelectorAll('[data-off-canvas-close="true"]');n.length>0&&n.forEach(r=>{r.addEventListener("click",we)}),document.addEventListener("keydown",Ce,{once:!0}),document.body.style.overflowY="hidden";let c=Array.from(document.querySelectorAll(".c-off-canvas")).filter(r=>r!==t);c.length>0&&c.forEach(r=>{y(r)})}function y(e){document.querySelector('[data-target="'+e.id+'"').setAttribute("aria-expanded","false"),e.classList.remove("c-off-canvas--active"),e.setAttribute("aria-hidden","true"),document.body.style.overflowY=""}function Ae(){let e=this.closest(".c-off-canvas");y(e)}function Ce(e){if(e.key==="Escape"){let t=document.querySelector(".c-off-canvas--active");t&&y(t)}}function we(){let e=this.closest(".c-off-canvas");y(e)}var R=be;var Se=()=>{Array.from(document.querySelectorAll(".c-table--responsive")).forEach(t);function t(o){let n=o.querySelectorAll("thead > :first-child th"),c=Number(o.getAttribute("data-columns"))||2;if(n.length<c){o.classList.remove("c-table--responsive");return}Array.from(o.querySelectorAll("tbody tr")).forEach(r=>{Array.from(n).map(i=>i.textContent).forEach((i,a)=>{r.children[a]&&r.children[a].setAttribute("data-responsive-title",i)})})}},W=Se;function xe(){P(),window.addEventListener("resize",M(P,250))}function P(){document.documentElement.style.setProperty("--scrollbarWidth",window.innerWidth-document.body.clientWidth+"px")}var z=xe;function qe(){let e=document.querySelector(".c-internal-nav--sticky"),t=e?e.offsetHeight:0;Array.from(document.querySelectorAll(".c-scroll-spy")).forEach(n=>{ke(n,t)})}function ke(e,t){let o=Array.from(e.querySelectorAll("a")),n=new IntersectionObserver(Te(o));o.forEach(r=>{let i=r.getAttribute("href").replace("#",""),a=document.getElementById(i);a&&n.observe(a)});let c=parseFloat(window.getComputedStyle(e).top);e.style.top=`${c+t}px`}function Te(e){return t=>{let o=t.find(n=>n.isIntersecting);o&&e.forEach(n=>{n.classList.toggle("c-scroll-spy-active",n.getAttribute("href")==="#"+o.target.id)})}}var V=qe;var D;function Me(){Array.from(document.querySelectorAll(".c-tabs--anchor, .c-tabs--mobile-accordion")).forEach(t=>{j(t),window.addEventListener("resize",()=>{clearTimeout(D),D=setTimeout(()=>Q(t),100)})})}function j(e){let t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab")),n=e.classList.contains("c-tabs--persist");if(!(!t.length||!o.length)&&(Q(e),t.forEach(c=>{c.addEventListener("click",Ie(t,o,n))}),n&&window.location.hash)){let c=e.querySelector('[href="'+window.location.hash+'"]');c&&c.dispatchEvent(new Event("click"))}}function Q(e){let t=e.classList.contains("c-tabs--mobile-accordion"),o=window.innerWidth<=880;e.dataset.viewMode!==(o?"accordion":"tabs")&&(e.dataset.viewMode=o?"accordion":"tabs",t&&o?He(e):t&&!o&&Be(e))}function He(e){let t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab")),n=e.querySelector(".c-tabs__controls");n&&n.remove(),t.forEach((c,r)=>{let i=o[r];if(i){let a=document.createElement("div");a.classList.add("c-tabs__content"),a.appendChild(c),a.appendChild(i),e.appendChild(a)}})}function Be(e){let t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab"));!t.length||!o.length||(e.innerHTML=`
23
- <nav class="c-tabs__controls">
24
- <ul class="c-tabs__controls-list">
25
- ${t.map(n=>`<li>${n.outerHTML}</li>`).join("")}
26
- </ul>
22
+ `}function _e(e){e.classList.remove("c-off-canvas","c-off-canvas--active"),e.removeAttribute("tabindex"),e.removeAttribute("aria-hidden");let t=e.querySelector(".c-off-canvas__backdrop");t&&t.remove();let o=e.querySelector(".c-off-canvas__content");if(o){for(;o.firstChild;)e.insertBefore(o.firstChild,o);e.removeChild(o)}let n=e.querySelector(".c-off-canvas__header");if(n){for(;n.firstChild;)e.insertBefore(n.firstChild,n);e.removeChild(n)}let r=e.querySelector(".c-off-canvas__main");if(r){for(;r.firstChild;)e.insertBefore(r.firstChild,r);e.removeChild(r)}let c=e.querySelector(".c-off-canvas__footer");if(c){for(;c.firstChild;)e.insertBefore(c.firstChild,c);e.removeChild(c)}let i=e.querySelector(".c-off-canvas__close");i&&i.remove()}function Ae(e){let t=document.getElementById(e.getAttribute("data-target"));t.classList.contains("c-off-canvas--active")?t.classList.contains("c-off-canvas--active")&&y(t):Le(e,t)}function Le(e,t){e.setAttribute("aria-expanded","true"),t.classList.add("c-off-canvas--active"),t.setAttribute("aria-hidden","false");let o=t.querySelector(".c-off-canvas__backdrop");o&&o.addEventListener("click",Ee);let n=t.querySelectorAll('[data-off-canvas-close="true"]');n.length>0&&n.forEach(c=>{c.addEventListener("click",Ce)}),document.addEventListener("keydown",we,{once:!0}),document.body.style.overflowY="hidden";let r=Array.from(document.querySelectorAll(".c-off-canvas")).filter(c=>c!==t);r.length>0&&r.forEach(c=>{y(c)})}function y(e){document.querySelector('[data-target="'+e.id+'"').setAttribute("aria-expanded","false"),e.classList.remove("c-off-canvas--active"),e.setAttribute("aria-hidden","true"),document.body.style.overflowY=""}function Ee(){let e=this.closest(".c-off-canvas");y(e)}function we(e){if(e.key==="Escape"){let t=document.querySelector(".c-off-canvas--active");t&&y(t)}}function Ce(){let e=this.closest(".c-off-canvas");y(e)}var F=be;var Se=()=>{Array.from(document.querySelectorAll(".c-table--responsive")).forEach(t);function t(o){let n=o.querySelectorAll("thead > :first-child th"),r=Number(o.getAttribute("data-columns"))||2;if(n.length<r){o.classList.remove("c-table--responsive");return}Array.from(o.querySelectorAll("tbody tr")).forEach(c=>{Array.from(n).map(i=>i.textContent).forEach((i,l)=>{c.children[l]&&c.children[l].setAttribute("data-responsive-title",i)})})}},W=Se;function xe(){P(),window.addEventListener("resize",M(P,250))}function P(){document.documentElement.style.setProperty("--scrollbarWidth",window.innerWidth-document.body.clientWidth+"px")}var z=xe;function ke(){let e=document.querySelector(".c-internal-nav--sticky"),t=e?e.offsetHeight:0;Array.from(document.querySelectorAll(".c-scroll-spy")).forEach(n=>{qe(n,t)})}function qe(e,t){let o=Array.from(e.querySelectorAll("a")),n=new IntersectionObserver(Te(o));o.forEach(c=>{let i=c.getAttribute("href").replace("#",""),l=document.getElementById(i);l&&n.observe(l)});let r=parseFloat(window.getComputedStyle(e).top);e.style.top=`${r+t}px`}function Te(e){return t=>{let o=t.find(n=>n.isIntersecting);o&&e.forEach(n=>{n.classList.toggle("c-scroll-spy-active",n.getAttribute("href")==="#"+o.target.id)})}}var V=ke;var D;function Me(){Array.from(document.querySelectorAll(".c-tabs--anchor, .c-tabs--mobile-accordion")).forEach(t=>{j(t),window.addEventListener("resize",()=>{clearTimeout(D),D=setTimeout(()=>Y(t),100)})})}function j(e){let t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab")),n=e.dataset.persist==="true";if(!(!t.length||!o.length)&&(t.forEach((r,c)=>{let i=o[c];i&&(r.setAttribute("role","tab"),r.setAttribute("aria-selected",r.classList.contains("c-tabs__control--active")?"true":"false"),r.setAttribute("aria-controls",i.id),r.id||=`tab-${c+1}-tab`,i.setAttribute("role","tabpanel"),i.setAttribute("aria-labelledby",r.id),i.hidden=!i.classList.contains("c-tab--active"),r.addEventListener("keydown",l=>He(l,t)))}),Y(e),t.forEach(r=>{r.addEventListener("click",$e(t,o,n))}),n&&window.location.hash)){let r=e.querySelector('[href="'+window.location.hash+'"]');r&&r.dispatchEvent(new Event("click"))}}function He(e,t){let o=e.key,n=e.currentTarget,r=t.indexOf(n);["ArrowLeft","ArrowRight","Home","End"].includes(o)&&(e.preventDefault(),o==="ArrowLeft"&&(r=(r-1+t.length)%t.length),o==="ArrowRight"&&(r=(r+1)%t.length),o==="Home"&&(r=0),o==="End"&&(r=t.length-1),t[r].focus(),t[r].click())}function Y(e){let t=e.classList.contains("c-tabs--mobile-accordion"),o=window.innerWidth<=880;e.dataset.viewMode!==(o?"accordion":"tabs")&&(e.dataset.viewMode=o?"accordion":"tabs",t&&o?Oe(e):t&&!o&&Ie(e))}function Oe(e){let t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab")),n=e.querySelector(".c-tabs__controls");n&&n.remove(),t.forEach((r,c)=>{let i=o[c];if(i){let l=document.createElement("div");l.classList.add("c-tabs__content"),l.appendChild(r),l.appendChild(i),e.appendChild(l)}})}function Ie(e){let t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab"));!t.length||!o.length||(e.innerHTML=`
23
+ <nav class="c-tabs__controls-wrapper">
24
+ <div class="c-tabs__controls">
25
+ <ul class="c-tabs__controls-list">
26
+ ${t.map(n=>`<li>${n.outerHTML}</li>`).join("")}
27
+ </ul>
28
+ </div>
27
29
  </nav>
28
30
  <div class="c-tabs__content">
29
31
  ${o.map(n=>n.outerHTML).join("")}
30
32
  </div>
31
- `,setTimeout(()=>j(e),0))}function Ie(e,t,o){return n=>{let c=n.currentTarget,r=c.getAttribute("href")?.replace("#",""),i=t.find(a=>a.id===r);if(!i)return!0;if(n.preventDefault(),o&&history.pushState(null,null,c.getAttribute("href")),window.innerWidth<=880){let a=i.classList.contains("c-tab--active");e.forEach(s=>s.classList.remove("c-tabs__control--active")),t.forEach(s=>s.classList.remove("c-tab--active")),a||(c.classList.add("c-tabs__control--active"),i.classList.add("c-tab--active"))}else e.forEach(a=>a.classList.toggle("c-tabs__control--active",a===c)),t.forEach(a=>a.classList.toggle("c-tab--active",a===i))}}var Y=Me;function G(){window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),window.HTMLCollection&&!HTMLCollection.prototype.forEach&&(HTMLCollection.prototype.forEach=Array.prototype.forEach),A(),C(),w(),S(),x(),q(),B(),I(),O(),$(),R(),W(),z(),V(),Y()}typeof window<"u"&&G();})();
33
+ `,setTimeout(()=>j(e),0))}function Be(e){if(!e)return;let t=e.getBoundingClientRect(),o=window.pageYOffset+t.top,n=e.dataset.stickyOffset?parseInt(e.dataset.stickyOffset,10):0;window.scrollTo({top:o-n,behavior:"smooth"})}function $e(e,t,o){return n=>{let r=n.currentTarget,c=r.getAttribute("href")?.replace("#",""),i=t.find(a=>a.id===c);if(!i)return!0;n.preventDefault(),o&&history.pushState(null,null,r.getAttribute("href"));let l=window.innerWidth<=880;e.forEach(a=>{let s=a===r;a.classList.toggle("c-tabs__control--active",s),a.setAttribute("aria-selected",s?"true":"false")}),t.forEach(a=>{let s=a===i;a.classList.toggle("c-tab--active",s),a.hidden=!s}),Be(r.closest(".c-tabs--anchor, .c-tabs--mobile-accordion")),r.scrollIntoView&&r.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})}}var Q=Me;function G(){window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),window.HTMLCollection&&!HTMLCollection.prototype.forEach&&(HTMLCollection.prototype.forEach=Array.prototype.forEach),E(),w(),C(),S(),x(),k(),O(),I(),B(),$(),F(),W(),z(),V(),Q()}typeof window<"u"&&G();})();
32
34
  //# sourceMappingURL=mp-academy.js.map