mp-design-system 1.2.44 → 1.2.45

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,2 +1,2 @@
1
- (()=>{function e(e){e.addEventListener("click",(e=>{e.currentTarget.parentElement.classList.toggle("c-accordion__item--open")}))}var t=function(){Array.from(document.querySelectorAll(".c-accordion__title")).forEach(e)};var o=function(){let e=0;const 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;for(var r of(e=e!=t.length-1?e+1:0,t[e].style.opacity=1,o))r.style.opacity=0;o[e].style.opacity=1}),5e3)};var n=function(){const e=document.getElementById("clearForm");e&&e.addEventListener("click",(function(){this.closest("form").elements.forEach((e=>{if(""!=e.value){if("text"==e.type.toLowerCase()||"email"==e.type.toLowerCase()||"tel"==e.type.toLowerCase()||"select-one"==e.type.toLowerCase()||"textarea"==e.type.toLowerCase())return void(e.value="");if("checkbox"==e.type.toLowerCase())return void(e.checked=!1)}}))}))};function r(e){const 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;const c=Array.from(n.children[0].children).filter(((e,t)=>t)).map((e=>({info:e.innerHTML}))),a=Array.from(n.children[1].children).filter(((e,t)=>t)).map((e=>({buttons:e.innerHTML}))),i=c.map(((e,t)=>({...e,...a[t],table:[]})));Array.from(o.children).forEach((e=>{if(e.classList.contains("c-comparison-table__title"))i.forEach((t=>{t.table.push({type:"title",title:e.children[0].textContent})}));else{const t=Array.from(e.children),o=t.shift();t.forEach(((e,t)=>{i[t].table.push({type:"row",key:o.textContent,value:e.innerHTML})}))}})),i.forEach((e=>{const t=function(e){const t=document.createElement("article");return t.innerHTML=`${e.info}${e.buttons}\n <table class="c-comparison-table">\n ${e.table.map((e=>"title"===e.type?`<tr class="c-comparison-table__title"><th><span>${e.title}</span></th><th></th></tr>`:`<tr>\n <td>${e.key}</td>\n <td>${e.value}</td>\n </tr>`)).join("")}\n </table>`,t}(e);r.appendChild(t)}))}var c=function(){document.querySelectorAll(".c-comparison-table").forEach(r)};function a(e){e.addEventListener("click",(e=>{e.preventDefault();var t=e.currentTarget,o=t.parentElement;o.classList.toggle("c-facet--open");const n=o.classList.contains("c-facet--open")?"true":"false";t.setAttribute("aria-expanded",n)}))}var i=function(){Array.from(document.querySelectorAll(".c-facet__toggle")).forEach(a)};var s=function(){const e=document.querySelectorAll(".c-gallery__main .c-gallery__slide"),t=document.querySelectorAll(".c-gallery__thumbnails .c-gallery__slide");function o(){const e=document.querySelector(".c-gallery__main").cloneNode(!0);e.classList.remove("c-gallery__main"),e.classList.add("c-lightbox"),e.querySelectorAll(".c-gallery__slide").forEach((function(e){if(e.classList.contains("c-gallery__video")&&e.remove(),!e.classList.contains("c-gallery__video")){var t=e.querySelector("img");""!=t.srcset&&t.removeAttribute("srcset");var o=t.getAttribute("src");o?-1!==o.indexOf("?")?t.setAttribute("src",o.split("?")[0]+"?quality=90&width=2176"):t.setAttribute("src",o+"?quality=90&width=2176"):(console.log(t),console.log("has no src defined..."))}e.classList.add("c-lightbox__slide"),e.classList.remove("c-gallery__slide")})),document.body.appendChild(e),e.insertAdjacentHTML("beforeend",'<a class="c-lightbox__prev"></a><a class="c-lightbox__next"></a>'),e.querySelector(".c-lightbox__prev").addEventListener("click",(function(){const t=e.querySelector(".active"),o=e.querySelector('[data-slide="'+(parseInt(t.dataset.slide)-1)+'"]');null!=o&&(t.classList.remove("active"),o.classList.add("active"))})),e.querySelector(".c-lightbox__next").addEventListener("click",(function(){const t=e.querySelector(".active"),o=e.querySelector('[data-slide="'+(parseInt(t.dataset.slide)+1)+'"]');null!=o&&(t.classList.remove("active"),o.classList.add("active"))})),e.addEventListener("click",(function(t){t.target===t.currentTarget&&e.remove()}))}t.forEach((o=>o.addEventListener("click",(function(n){t.forEach((function(e){e!=n.target.parentNode&&e.classList.remove("active")})),n.target.parentNode.classList.add("active"),e.forEach((function(e){e.dataset.slide==o.dataset.slide?e.classList.add("active"):e.classList.remove("active")}))})))),e.forEach((function(e){e.classList.contains("c-gallery__video")||e.addEventListener("click",o)}))};const l=(e,t,o)=>((e,t=0,o=1)=>Math.min(o,Math.max(t,e)))((o-e)/(t-e));var d=function(){let e=0;const t=document.querySelector(".c-hero__canvas");if(!t)return;const o=t.getContext("2d"),n=!window.matchMedia("(prefers-reduced-motion: no-preference)").matches,r=147,c=.25;let a,i,s,d,f,u=[];function h(){a=t.scrollWidth,i=t.scrollHeight,o.canvas.width=a,o.canvas.height=i,s=Math.ceil(a/r),d=Math.ceil(i/r),f=(s+1)*(d+1);const e=function(e){const t=[...e];for(let e=t.length-1;e>0;e--){let o=Math.floor(Math.random()*(e+1));[t[e],t[o]]=[t[o],t[e]]}return t}(Array.from({length:f},((e,t)=>t)));u=[];for(let t=0;t<=s;t++)for(let o=0;o<=d;o++)u.push({counter:e.shift(),direction:Math.random()>.5?c:-.25,x:r*(t+1)-147,y:r*(o+1)-73.5})}window.addEventListener("resize",h),h(),function r(){e+=.005,o.clearRect(0,0,t.width,t.height),o.beginPath();for(let n=t.width;n>0;n--)o.lineTo(n,.5*t.height-Math.cos(e+n/5*.03)*(.3*i));o.lineWidth=.5,o.strokeStyle="rgb(19,170,19)",o.stroke(),u.forEach((e=>{var t,n,r,a,i,s,d,f;t=e.x,n=e.y,a=0,i=u.length,s=0,d=.5,f=e.counter,r=((e,t,o)=>e*(1-o)+t*o)(s,d,l(a,i,f)),o.beginPath(),o.moveTo(t-14,n),o.lineTo(t+14,n),o.strokeStyle=`rgba(255, 255, 255, ${r}`,o.moveTo(t,n-14),o.lineTo(t,n+14),o.stroke(),e.counter+=e.direction,e.counter>=u.length&&(e.direction=-.25),e.counter<0&&(e.direction=c)})),n||window.requestAnimationFrame(r)}()};var f=function(){document.addEventListener("DOMContentLoaded",(()=>{const e=document.getElementById("videoBackground");if(void 0!==e&&null!=e){const o=window.matchMedia("(prefers-reduced-motion: reduce)");o&&!o.matches||e.pause();const n=document.getElementById("playVideo"),r=document.getElementById("lightboxVideo"),c=r.querySelector(".c-lightbox__video");function t(){r.classList.contains("u-hidden")?(e.paused&&e.play(),c.paused||c.pause()):e.paused||e.pause()}n.addEventListener("click",(o=>{e.pause(),r.classList.remove("u-hidden"),t()})),r.addEventListener("click",(o=>{o.target.classList.contains("c-lightbox__video")||(e.setAttribute("autoplay",""),r.classList.add("u-hidden"),t())})),window.addEventListener("keydown",(function(o){"Escape"==o.key&&(e.setAttribute("autoplay",""),r.classList.add("u-hidden"),t())}))}}))};var u=function(){const e=document.querySelector(".c-internal-nav--sticky");if(!e)return;new IntersectionObserver(((t,o)=>{const n=t[0].isIntersecting;e.classList.toggle("c-internal-nav--stuck",!n)}),{root:null,rootMargin:"0px",threshold:1}).observe(e);let t=e.offsetHeight;const o=()=>{t=e.offsetHeight;Array.from(e.querySelectorAll("a")).forEach((e=>{const o=e.getAttribute("href").replace("#",""),n=document.getElementById(o);n&&(n.style.scrollMarginTop=`${t}px`)}))};window.addEventListener("resize",o),o()};function h(e){const t=e.getBoundingClientRect(),o=window.getComputedStyle(e);return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)&&"none"!==o.display&&"hidden"!==o.visibility}function v(e,t){const o=document.getElementById(e.getAttribute("data-target"));!0===t?function(e){e.classList.add("c-off-canvas"),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","true");const t=e.querySelector('[data-off-canvas="header"]'),o=e.querySelector('[data-off-canvas="main"]'),n=e.querySelector('[data-off-canvas="footer"]'),r=null!==t?t.outerHTML:"",c=null!==o?o.outerHTML:"",a=null!==n?n.outerHTML:"";e.innerHTML=`\n <div class="c-off-canvas__backdrop" role="presentation"></div>\n <div class="c-off-canvas__content" role="dialog" aria-modal="true" aria-labelledby="offCanvasHeader">\n <header id="offCanvasHeader" class="c-off-canvas__header">${r}</header>\n <main class="c-off-canvas__main">${c}</main>\n <footer class="c-off-canvas__footer">\n ${a}\n <button class="mp c-twi c-twi--left c-off-canvas__close" data-off-canvas-close="true" onclick="return false">\n <span>Cancel</span>\n <svg role="img" aria-hidden="true" focusable="false" class="mp c-icon c-icon--cross">\n <use xlink:href="/static/svg/sprite.svg#cross"></use>\n </svg>\n </button>\n </footer>\n </div>\n `}(o):function(e){e.classList.remove("c-off-canvas","c-off-canvas--active"),e.removeAttribute("tabindex"),e.removeAttribute("aria-hidden");const t=e.querySelector(".c-off-canvas__backdrop");t&&t.remove();const o=e.querySelector(".c-off-canvas__content");if(o){for(;o.firstChild;)e.insertBefore(o.firstChild,o);e.removeChild(o)}const n=e.querySelector(".c-off-canvas__header");if(n){for(;n.firstChild;)e.insertBefore(n.firstChild,n);e.removeChild(n)}const r=e.querySelector(".c-off-canvas__main");if(r){for(;r.firstChild;)e.insertBefore(r.firstChild,r);e.removeChild(r)}const c=e.querySelector(".c-off-canvas__footer");if(c){for(;c.firstChild;)e.insertBefore(c.firstChild,c);e.removeChild(c)}const a=e.querySelector(".c-off-canvas__close");a&&a.remove()}(o)}function m(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 y(){m(this.closest(".c-off-canvas"))}function p(e){if("Escape"===e.key){const e=document.querySelector(".c-off-canvas--active");e&&m(e)}}function g(){m(this.closest(".c-off-canvas"))}var b=function(){const e=document.querySelectorAll(".c-off-canvas__toggle");e.length&&(e.forEach((e=>{v(e,h(e)),e.addEventListener("click",(()=>function(e){const t=document.getElementById(e.getAttribute("data-target"));t.classList.contains("c-off-canvas--active")?t.classList.contains("c-off-canvas--active")&&m(t):function(e,t){e.setAttribute("aria-expanded","true"),t.classList.add("c-off-canvas--active"),t.setAttribute("aria-hidden","false");const o=t.querySelector(".c-off-canvas__backdrop");o&&o.addEventListener("click",y);const n=t.querySelectorAll('[data-off-canvas-close="true"]');n.length>0&&n.forEach((e=>{e.addEventListener("click",g)}));document.addEventListener("keydown",p,{once:!0}),document.body.style.overflowY="hidden";const r=Array.from(document.querySelectorAll(".c-off-canvas")).filter((e=>e!==t));r.length>0&&r.forEach((e=>{m(e)}))}(e,t)}(e)))})),window.addEventListener("resize",(()=>{e.forEach((e=>{v(e,h(e))}))})))};var _=()=>{Array.from(document.querySelectorAll(".c-table--responsive")).forEach((function(e){const t=e.querySelectorAll("thead > :first-child th"),o=Number(e.getAttribute("data-columns"))||2;if(t.length<o)return void e.classList.remove("c-table--responsive");Array.from(e.querySelectorAll("tbody tr")).forEach((e=>{Array.from(t).map((e=>e.textContent)).forEach(((t,o)=>{e.children[o]&&e.children[o].setAttribute("data-responsive-title",t)}))}))}))};function L(){document.documentElement.style.setProperty("--scrollbarWidth",window.innerWidth-document.body.clientWidth+"px")}var E=function(){L(),window.addEventListener("resize",((e,t)=>{let o=!1;return()=>{o||(e(),o=!0,setTimeout((()=>o=!1),t))}})(L,250))};var A=function(){const e=document.querySelector(".c-internal-nav--sticky"),t=e?e.offsetHeight:0;Array.from(document.querySelectorAll(".c-scroll-spy")).forEach((e=>{!function(e,t){const o=Array.from(e.querySelectorAll("a")),n=new IntersectionObserver(function(e){return t=>{const o=t.find((e=>e.isIntersecting));o&&e.forEach((e=>{e.classList.toggle("c-scroll-spy-active",e.getAttribute("href")==="#"+o.target.id)}))}}(o));o.forEach((e=>{const t=e.getAttribute("href").replace("#",""),o=document.getElementById(t);o&&n.observe(o)}));const r=parseFloat(window.getComputedStyle(e).top);e.style.top=`${r+t}px`}(e,t)}))};function w(e){const 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&&(t.forEach((e=>{e.addEventListener("click",function(e,t,o){return n=>{const r=n.currentTarget,c=t.find((e=>e.id===r.getAttribute("href").replace("#","")));if(!c)return!0;n.preventDefault(),o&&history.pushState(null,null,r.getAttribute("href")),e.forEach((e=>e.classList.toggle("c-tabs__control--active",e===r))),t.forEach((e=>{const t=e===c;if(e.classList.toggle("c-tab--active",t),!o)if(t){e.setAttribute("tabIndex",-1);const t=window.scrollY;e.focus(),window.scrollTo({behavior:"auto",top:t})}else e.removeAttribute("tabIndex")}))}}(t,o,n))})),n&&window.location.hash)){const t=e.querySelector('[href="'+window.location.hash+'"]');t&&t.dispatchEvent(new Event("click"))}}var S=function(){Array.from(document.querySelectorAll(".c-tabs--anchor")).forEach(w)};window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),window.HTMLCollection&&!HTMLCollection.prototype.forEach&&(HTMLCollection.prototype.forEach=Array.prototype.forEach),t(),o(),n(),c(),i(),s(),d(),f(),u(),b(),_(),E(),A(),S()})();
1
+ (()=>{function e(e){e.addEventListener("click",(e=>{e.currentTarget.parentElement.classList.toggle("c-accordion__item--open")}))}var t=function(){Array.from(document.querySelectorAll(".c-accordion__title")).forEach(e)};var o=function(){let e=0;const t=document.querySelectorAll(".c-hero__image-bg"),o=document.querySelectorAll(".c-hero__image-fg");o.length>0&&setInterval((()=>{for(var r of t)r.style.opacity=0;for(var n of(e=e!=t.length-1?e+1:0,t[e].style.opacity=1,o))n.style.opacity=0;o[e].style.opacity=1}),5e3)};var r=function(){const e=document.getElementById("clearForm");e&&e.addEventListener("click",(function(){this.closest("form").elements.forEach((e=>{if(""!=e.value){if("text"==e.type.toLowerCase()||"email"==e.type.toLowerCase()||"tel"==e.type.toLowerCase()||"select-one"==e.type.toLowerCase()||"textarea"==e.type.toLowerCase())return void(e.value="");if("checkbox"==e.type.toLowerCase())return void(e.checked=!1)}}))}))};function n(e){const t=e.parentNode.parentNode,o=t.querySelector(".c-comparison-table tbody"),r=t.querySelector(".c-comparison-table thead"),n=t.parentElement.querySelector(".c-comparison-table__mobile");if(!o||!r||!n)return;const c=Array.from(r.children[0].children).filter(((e,t)=>t)).map((e=>({info:e.innerHTML}))),a=Array.from(r.children[1].children).filter(((e,t)=>t)).map((e=>({buttons:e.innerHTML}))),i=c.map(((e,t)=>({...e,...a[t],table:[]})));Array.from(o.children).forEach((e=>{if(e.classList.contains("c-comparison-table__title"))i.forEach((t=>{t.table.push({type:"title",title:e.children[0].textContent})}));else{const t=Array.from(e.children),o=t.shift();t.forEach(((e,t)=>{i[t].table.push({type:"row",key:o.textContent,value:e.innerHTML})}))}})),i.forEach((e=>{const t=function(e){const t=document.createElement("article");return t.innerHTML=`${e.info}${e.buttons}\n <table class="c-comparison-table">\n ${e.table.map((e=>"title"===e.type?`<tr class="c-comparison-table__title"><th><span>${e.title}</span></th><th></th></tr>`:`<tr>\n <td>${e.key}</td>\n <td>${e.value}</td>\n </tr>`)).join("")}\n </table>`,t}(e);n.appendChild(t)}))}var c=function(){document.querySelectorAll(".c-comparison-table").forEach(n)};function a(e){e.addEventListener("click",(e=>{e.preventDefault();var t=e.currentTarget,o=t.parentElement;o.classList.toggle("c-facet--open");const r=o.classList.contains("c-facet--open")?"true":"false";t.setAttribute("aria-expanded",r)}))}var i=function(){Array.from(document.querySelectorAll(".c-facet__toggle")).forEach(a)};var s=function(){const e=document.querySelectorAll(".c-gallery__main .c-gallery__slide"),t=document.querySelectorAll(".c-gallery__thumbnails .c-gallery__slide");function o(){const e=document.querySelector(".c-gallery__main").cloneNode(!0);e.classList.remove("c-gallery__main"),e.classList.add("c-lightbox"),e.querySelectorAll(".c-gallery__slide").forEach((function(e){if(e.classList.contains("c-gallery__video")&&e.remove(),!e.classList.contains("c-gallery__video")){var t=e.querySelector("img");""!=t.srcset&&t.removeAttribute("srcset");var o=t.getAttribute("src");o?-1!==o.indexOf("?")?t.setAttribute("src",o.split("?")[0]+"?quality=90&width=2176"):t.setAttribute("src",o+"?quality=90&width=2176"):(console.log(t),console.log("has no src defined..."))}e.classList.add("c-lightbox__slide"),e.classList.remove("c-gallery__slide")})),document.body.appendChild(e),e.insertAdjacentHTML("beforeend",'<a class="c-lightbox__prev"></a><a class="c-lightbox__next"></a>'),e.querySelector(".c-lightbox__prev").addEventListener("click",(function(){const t=e.querySelector(".active"),o=e.querySelector('[data-slide="'+(parseInt(t.dataset.slide)-1)+'"]');null!=o&&(t.classList.remove("active"),o.classList.add("active"))})),e.querySelector(".c-lightbox__next").addEventListener("click",(function(){const t=e.querySelector(".active"),o=e.querySelector('[data-slide="'+(parseInt(t.dataset.slide)+1)+'"]');null!=o&&(t.classList.remove("active"),o.classList.add("active"))})),e.addEventListener("click",(function(t){t.target===t.currentTarget&&e.remove()}))}t.forEach((o=>o.addEventListener("click",(function(r){t.forEach((function(e){e!=r.target.parentNode&&e.classList.remove("active")})),r.target.parentNode.classList.add("active"),e.forEach((function(e){e.dataset.slide==o.dataset.slide?e.classList.add("active"):e.classList.remove("active")}))})))),e.forEach((function(e){e.classList.contains("c-gallery__video")||e.addEventListener("click",o)}))};const l=(e,t,o)=>((e,t=0,o=1)=>Math.min(o,Math.max(t,e)))((o-e)/(t-e));var d=function(){let e=0;const t=document.querySelector(".c-hero__canvas");if(!t)return;const o=t.getContext("2d"),r=!window.matchMedia("(prefers-reduced-motion: no-preference)").matches,n=147,c=.25;let a,i,s,d,f,u=[];function h(){a=t.scrollWidth,i=t.scrollHeight,o.canvas.width=a,o.canvas.height=i,s=Math.ceil(a/n),d=Math.ceil(i/n),f=(s+1)*(d+1);const e=function(e){const t=[...e];for(let e=t.length-1;e>0;e--){let o=Math.floor(Math.random()*(e+1));[t[e],t[o]]=[t[o],t[e]]}return t}(Array.from({length:f},((e,t)=>t)));u=[];for(let t=0;t<=s;t++)for(let o=0;o<=d;o++)u.push({counter:e.shift(),direction:Math.random()>.5?c:-.25,x:n*(t+1)-147,y:n*(o+1)-73.5})}window.addEventListener("resize",h),h(),function n(){e+=.005,o.clearRect(0,0,t.width,t.height),o.beginPath();for(let r=t.width;r>0;r--)o.lineTo(r,.5*t.height-Math.cos(e+r/5*.03)*(.3*i));o.lineWidth=.5,o.strokeStyle="rgb(19,170,19)",o.stroke(),u.forEach((e=>{var t,r,n,a,i,s,d,f;t=e.x,r=e.y,a=0,i=u.length,s=0,d=.5,f=e.counter,n=((e,t,o)=>e*(1-o)+t*o)(s,d,l(a,i,f)),o.beginPath(),o.moveTo(t-14,r),o.lineTo(t+14,r),o.strokeStyle=`rgba(255, 255, 255, ${n}`,o.moveTo(t,r-14),o.lineTo(t,r+14),o.stroke(),e.counter+=e.direction,e.counter>=u.length&&(e.direction=-.25),e.counter<0&&(e.direction=c)})),r||window.requestAnimationFrame(n)}()};var f=function(){document.addEventListener("DOMContentLoaded",(()=>{const e=document.getElementById("videoBackground");if(void 0!==e&&null!=e){const o=window.matchMedia("(prefers-reduced-motion: reduce)");o&&!o.matches||e.pause();const r=document.getElementById("playVideo"),n=document.getElementById("lightboxVideo"),c=n.querySelector(".c-lightbox__video");function t(){n.classList.contains("u-hidden")?(e.paused&&e.play(),c.paused||c.pause()):e.paused||e.pause()}r.addEventListener("click",(o=>{e.pause(),n.classList.remove("u-hidden"),t()})),n.addEventListener("click",(o=>{o.target.classList.contains("c-lightbox__video")||(e.setAttribute("autoplay",""),n.classList.add("u-hidden"),t())})),window.addEventListener("keydown",(function(o){"Escape"==o.key&&(e.setAttribute("autoplay",""),n.classList.add("u-hidden"),t())}))}}))};var u=function(){const e=document.querySelector(".c-internal-nav--sticky");if(!e)return;new IntersectionObserver(((t,o)=>{const r=t[0].isIntersecting;e.classList.toggle("c-internal-nav--stuck",!r)}),{root:null,rootMargin:"0px",threshold:1}).observe(e);let t=e.offsetHeight;const o=()=>{t=e.offsetHeight;Array.from(e.querySelectorAll("a")).forEach((e=>{const o=e.getAttribute("href").replace("#",""),r=document.getElementById(o);r&&(r.style.scrollMarginTop=`${t}px`)}))};window.addEventListener("resize",o),o()};function h(e){const t=window.getComputedStyle(e);return"none"!==t.display&&"hidden"!==t.visibility}function v(e,t){const o=document.getElementById(e.getAttribute("data-target"));console.log(o),console.log(t),!0===t?function(e){e.classList.add("c-off-canvas"),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","true");const t=e.querySelector('[data-off-canvas="header"]'),o=e.querySelector('[data-off-canvas="main"]'),r=e.querySelector('[data-off-canvas="footer"]'),n=null!==t?t.outerHTML:"",c=null!==o?o.outerHTML:"",a=null!==r?r.outerHTML:"";e.innerHTML=`\n <div class="c-off-canvas__backdrop" role="presentation"></div>\n <div class="c-off-canvas__content" role="dialog" aria-modal="true" aria-labelledby="offCanvasHeader">\n <header id="offCanvasHeader" class="c-off-canvas__header">${n}</header>\n <main class="c-off-canvas__main">${c}</main>\n <footer class="c-off-canvas__footer">\n ${a}\n <button class="mp c-twi c-twi--left c-off-canvas__close" data-off-canvas-close="true" onclick="return false">\n <span>Cancel</span>\n <svg role="img" aria-hidden="true" focusable="false" class="mp c-icon c-icon--cross">\n <use xlink:href="/static/svg/sprite.svg#cross"></use>\n </svg>\n </button>\n </footer>\n </div>\n `}(o):function(e){e.classList.remove("c-off-canvas","c-off-canvas--active"),e.removeAttribute("tabindex"),e.removeAttribute("aria-hidden");const t=e.querySelector(".c-off-canvas__backdrop");t&&t.remove();const o=e.querySelector(".c-off-canvas__content");if(o){for(;o.firstChild;)e.insertBefore(o.firstChild,o);e.removeChild(o)}const r=e.querySelector(".c-off-canvas__header");if(r){for(;r.firstChild;)e.insertBefore(r.firstChild,r);e.removeChild(r)}const n=e.querySelector(".c-off-canvas__main");if(n){for(;n.firstChild;)e.insertBefore(n.firstChild,n);e.removeChild(n)}const c=e.querySelector(".c-off-canvas__footer");if(c){for(;c.firstChild;)e.insertBefore(c.firstChild,c);e.removeChild(c)}const a=e.querySelector(".c-off-canvas__close");a&&a.remove()}(o)}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 m(){y(this.closest(".c-off-canvas"))}function p(e){if("Escape"===e.key){const e=document.querySelector(".c-off-canvas--active");e&&y(e)}}function g(){y(this.closest(".c-off-canvas"))}var b=function(){const e=document.querySelectorAll(".c-off-canvas__toggle");e.length&&(e.forEach((e=>{v(e,h(e)),e.addEventListener("click",(()=>function(e){const t=document.getElementById(e.getAttribute("data-target"));t.classList.contains("c-off-canvas--active")?t.classList.contains("c-off-canvas--active")&&y(t):function(e,t){e.setAttribute("aria-expanded","true"),t.classList.add("c-off-canvas--active"),t.setAttribute("aria-hidden","false");const o=t.querySelector(".c-off-canvas__backdrop");o&&o.addEventListener("click",m);const r=t.querySelectorAll('[data-off-canvas-close="true"]');r.length>0&&r.forEach((e=>{e.addEventListener("click",g)}));document.addEventListener("keydown",p,{once:!0}),document.body.style.overflowY="hidden";const n=Array.from(document.querySelectorAll(".c-off-canvas")).filter((e=>e!==t));n.length>0&&n.forEach((e=>{y(e)}))}(e,t)}(e)))})),window.addEventListener("resize",(()=>{e.forEach((e=>{v(e,h(e))}))})))};var _=()=>{Array.from(document.querySelectorAll(".c-table--responsive")).forEach((function(e){const t=e.querySelectorAll("thead > :first-child th"),o=Number(e.getAttribute("data-columns"))||2;if(t.length<o)return void e.classList.remove("c-table--responsive");Array.from(e.querySelectorAll("tbody tr")).forEach((e=>{Array.from(t).map((e=>e.textContent)).forEach(((t,o)=>{e.children[o]&&e.children[o].setAttribute("data-responsive-title",t)}))}))}))};function L(){document.documentElement.style.setProperty("--scrollbarWidth",window.innerWidth-document.body.clientWidth+"px")}var E=function(){L(),window.addEventListener("resize",((e,t)=>{let o=!1;return()=>{o||(e(),o=!0,setTimeout((()=>o=!1),t))}})(L,250))};var A=function(){const e=document.querySelector(".c-internal-nav--sticky"),t=e?e.offsetHeight:0;Array.from(document.querySelectorAll(".c-scroll-spy")).forEach((e=>{!function(e,t){const o=Array.from(e.querySelectorAll("a")),r=new IntersectionObserver(function(e){return t=>{const o=t.find((e=>e.isIntersecting));o&&e.forEach((e=>{e.classList.toggle("c-scroll-spy-active",e.getAttribute("href")==="#"+o.target.id)}))}}(o));o.forEach((e=>{const t=e.getAttribute("href").replace("#",""),o=document.getElementById(t);o&&r.observe(o)}));const n=parseFloat(window.getComputedStyle(e).top);e.style.top=`${n+t}px`}(e,t)}))};function w(e){const t=Array.from(e.querySelectorAll(".c-tabs__control")),o=Array.from(e.querySelectorAll(".c-tab")),r=e.classList.contains("c-tabs--persist");if(t.length&&o.length&&(t.forEach((e=>{e.addEventListener("click",function(e,t,o){return r=>{const n=r.currentTarget,c=t.find((e=>e.id===n.getAttribute("href").replace("#","")));if(!c)return!0;r.preventDefault(),o&&history.pushState(null,null,n.getAttribute("href")),e.forEach((e=>e.classList.toggle("c-tabs__control--active",e===n))),t.forEach((e=>{const t=e===c;if(e.classList.toggle("c-tab--active",t),!o)if(t){e.setAttribute("tabIndex",-1);const t=window.scrollY;e.focus(),window.scrollTo({behavior:"auto",top:t})}else e.removeAttribute("tabIndex")}))}}(t,o,r))})),r&&window.location.hash)){const t=e.querySelector('[href="'+window.location.hash+'"]');t&&t.dispatchEvent(new Event("click"))}}var S=function(){Array.from(document.querySelectorAll(".c-tabs--anchor")).forEach(w)};window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),window.HTMLCollection&&!HTMLCollection.prototype.forEach&&(HTMLCollection.prototype.forEach=Array.prototype.forEach),t(),o(),r(),c(),i(),s(),d(),f(),u(),b(),_(),E(),A(),S()})();
2
2
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"mappings":"MAKA,SAASA,EAAgBC,GACrBA,EAAMC,iBAAiB,SAIfC,IACOA,EAAMC,cAAcC,cAC1BC,UAAUC,OAAO,0BAA0B,G,KAIxDC,EAhBA,WACuBC,MAAMC,KAAKC,SAASC,iBAAiB,wBAC7CC,QAAQb,E,MCmBvBc,EArBA,WACE,IAAIC,EAAU,EACd,MAAMC,EAAWL,SAASC,iBAAiB,qBACrCK,EAAWN,SAASC,iBAAiB,qBAExCK,EAASC,OAAS,GACnBC,aAAY,KACV,IAAK,IAAIC,KAAWJ,EAClBI,EAAQC,MAAMC,QAAU,EAK1B,IAAK,IAAIC,KAHTR,EAAUA,GAAYC,EAASE,OAAS,EAAKH,EAAU,EAAI,EAC3DC,EAASD,GAASM,MAAMC,QAAU,EAEdL,GAClBM,EAAQF,MAAMC,QAAU,EAE1BL,EAASF,GAASM,MAAMC,QAAU,CAAC,GAClC,I,MCSPE,EA1BA,WACE,MAAMC,EAAYd,SAASe,eAAe,aACtCD,GACFA,EAAUvB,iBAAiB,SAAS,WACnByB,KAAKC,QAAQ,QAAQC,SAC7BhB,SAAQiB,IACb,GAAmB,IAAfA,EAAMC,MAAa,CACrB,GAC8B,QAA5BD,EAAME,KAAKC,eACiB,SAA5BH,EAAME,KAAKC,eACiB,OAA5BH,EAAME,KAAKC,eACiB,cAA5BH,EAAME,KAAKC,eACiB,YAA5BH,EAAME,KAAKC,cAGX,YADAH,EAAMC,MAAQ,IAET,GAAgC,YAA5BD,EAAME,KAAKC,cAEpB,YADAH,EAAMI,SAAU,E,SCb5B,SAASC,EAAwBC,GAC/B,MAAMC,EAASD,EAAUE,WAAWA,WAC9BC,EAAOF,EAAOG,cAAc,6BAC5BC,EAAOJ,EAAOG,cAAc,6BAC5BE,EAASL,EAAOhC,cAAcmC,cAAc,+BAElD,IAAKD,IAASE,IAASC,EAAQ,OAG/B,MAAMC,EAAelC,MAAMC,KAAK+B,EAAKG,SAAS,GAAGA,UAAUC,QAAO,CAACC,EAAGC,IAAMA,IAAGC,KAAIF,IAAM,CAAEG,KAAMH,EAAEI,cAC7FC,EAAkB1C,MAAMC,KAAK+B,EAAKG,SAAS,GAAGA,UAAUC,QAAO,CAACC,EAAGC,IAAMA,IAAGC,KAAIF,IAAM,CAAEM,QAASN,EAAEI,cACnGG,EAAWV,EAAaK,KAAI,CAACC,EAAMK,KAAW,IAAKL,KAASE,EAAgBG,GAAQC,MAAO,OAEjG9C,MAAMC,KAAK6B,EAAKK,UAAU/B,SAAQ2C,IAEhC,GAAIA,EAAIlD,UAAUmD,SAAS,6BACzBJ,EAASxC,SAAQiC,IACfA,EAAES,MAAMG,KAAK,CAAE1B,KAAM,QAAS/B,MAAOuD,EAAIZ,SAAS,GAAGe,aAAc,QAEhE,CAEL,MAAMC,EAAQnD,MAAMC,KAAK8C,EAAIZ,UACvBiB,EAAYD,EAAME,QAExBF,EAAM/C,SAAQ,CAACkD,EAAIT,KACjBD,EAASC,GAAOC,MAAMG,KAAK,CACzB1B,KAAM,MACNgC,IAAKH,EAAUF,YACf5B,MAAOgC,EAAGb,WACV,G,KAKRG,EAASxC,SAAQoD,IACf,MAAMF,EAKV,SAA6BE,GAC3B,MAAM5B,EAAS1B,SAASuD,cAAc,WAetC,OAdA7B,EAAOa,UAAY,GAAGe,EAAQhB,OAAOgB,EAAQb,sDAEzCa,EAAQV,MAAMP,KAAIF,GACH,UAAXA,EAAEd,KACG,mDAAmDc,EAAE7C,kCAErD,uBACC6C,EAAEkB,2BACFlB,EAAEf,8BAGXoC,KAAK,kBAGH9B,C,CArBM+B,CAAoBH,GAC/BvB,EAAO2B,YAAYN,EAAG,G,KAuB1BO,EA/DA,WACE3D,SAASC,iBAAiB,uBAAuBC,QAAQsB,E,ECI3D,SAASoC,EAAqBhE,GAC1BA,EAAOL,iBAAiB,SAIhBC,IACJA,EAAMqE,iBAEN,IAAIjE,EAASJ,EAAMC,cACfqE,EAAQlE,EAAOF,cAEnBoE,EAAMnE,UAAUC,OAAO,iBACvB,MAAMmE,EAAWD,EAAMnE,UAAUmD,SAAS,iBAAmB,OAAS,QACtElD,EAAOoE,aAAa,gBAAiBD,EAAS,G,KAItDE,EAtBA,WAC4BnE,MAAMC,KAAKC,SAASC,iBAAiB,qBAC7CC,QAAQ0D,E,MCoF5BM,EAtFA,WACE,MAAMC,EAAanE,SAASC,iBAAiB,sCACvCmE,EAAkBpE,SAASC,iBAAiB,4CAyBlD,SAASoE,IACP,MAAMC,EAAWtE,SAAS6B,cAAc,oBAAoB0C,WAAU,GACtED,EAAS3E,UAAU6E,OAAO,mBAC1BF,EAAS3E,UAAU8E,IAAI,cACvBH,EAASrE,iBAAiB,qBAAqBC,SAAQ,SAASwE,GAI9D,GAHGA,EAAM/E,UAAUmD,SAAS,qBAC1B4B,EAAMF,UAEJE,EAAM/E,UAAUmD,SAAS,oBAAqB,CAChD,IAAI6B,EAAWD,EAAM7C,cAAc,OACb,IAAnB8C,EAASC,QACVD,EAASE,gBAAgB,UAE3B,IAAIC,EAAcH,EAASI,aAAa,OACpCD,GAC+B,IAA7BA,EAAYE,QAAQ,KACtBL,EAASX,aAAa,MAAOc,EAAYG,MAAM,KAAK,GAAK,0BAEzDN,EAASX,aAAa,MAAOc,EAAc,2BAG7CI,QAAQC,IAAIR,GACZO,QAAQC,IAAI,yB,CAGhBT,EAAM/E,UAAU8E,IAAI,qBACpBC,EAAM/E,UAAU6E,OAAO,mB,IAEzBxE,SAAS4B,KAAK8B,YAAYY,GAC1BA,EAASc,mBAAmB,YAAa,oEAEzCd,EAASzC,cAAc,qBAAqBtC,iBAAiB,SAAS,WACpE,MAAM8F,EAAiBf,EAASzC,cAAc,WACxCyD,EAAYhB,EAASzC,cAAc,iBAAmB0D,SAASF,EAAeG,QAAQd,OAAS,GAAK,MAC1F,MAAbY,IACDD,EAAe1F,UAAU6E,OAAO,UAChCc,EAAU3F,UAAU8E,IAAI,U,IAI5BH,EAASzC,cAAc,qBAAqBtC,iBAAiB,SAAS,WACpE,MAAM8F,EAAiBf,EAASzC,cAAc,WACxC4D,EAAYnB,EAASzC,cAAc,iBAAmB0D,SAASF,EAAeG,QAAQd,OAAS,GAAK,MAC1F,MAAbe,IACDJ,EAAe1F,UAAU6E,OAAO,UAChCiB,EAAU9F,UAAU8E,IAAI,U,IAI5BH,EAAS/E,iBAAiB,SAAS,SAASmG,GACtCA,EAAEC,SAAWD,EAAEjG,eAGjB6E,EAASE,Q,IA5EfJ,EAAgBlE,SAAQ0F,GAAkBA,EAAerG,iBAAiB,SAAS,SAASmG,GAC1FtB,EAAgBlE,SAAQ,SAAS2F,GAC5BA,GAAaH,EAAEC,OAAOhE,YACvBkE,EAAUlG,UAAU6E,OAAO,S,IAG/BkB,EAAEC,OAAOhE,WAAWhC,UAAU8E,IAAI,UAElCN,EAAWjE,SAAQ,SAAS4F,GACvBA,EAAUN,QAAQd,OAASkB,EAAeJ,QAAQd,MACnDoB,EAAUnG,UAAU8E,IAAI,UAExBqB,EAAUnG,UAAU6E,OAAO,S,SAKjCL,EAAWjE,SAAQ,SAAS4F,GACtBA,EAAUnG,UAAUmD,SAAS,qBAC/BgD,EAAUvG,iBAAiB,QAAS8E,E,KCNnC,MAYM0B,EAAU,CAAC5D,EAAG6D,EAAGC,IADT,EAACA,EAAGC,EAAM,EAAGC,EAAM,IAAMC,KAAKF,IAAIC,EAAKC,KAAKD,IAAID,EAAKD,IACtCI,EAAOJ,EAAI9D,IAAM6D,EAAI7D,I,ICgEzDmE,EA3FA,WACE,IAAIC,EAAO,EAEX,MAAMC,EAAIxG,SAAS6B,cAAc,mBACjC,IAAK2E,EAAG,OACR,MAAMC,EAAMD,EAAEE,WAAW,MAGnBC,GDEiBC,OAAOC,WADhB,2CAE+BC,QCDvCC,EAAW,IAGXC,EAAa,IAEnB,IAAIC,EACAC,EACAC,EACAC,EAEAC,EADAC,EAAU,GAgCd,SAASC,IACPN,EAAQT,EAAEgB,YACVN,EAASV,EAAEiB,aAEXhB,EAAIiB,OAAOT,MAASA,EACpBR,EAAIiB,OAAOR,OAASA,EAEpBC,EAASf,KAAKuB,KAAKV,EAAQF,GAC3BK,EAAOhB,KAAKuB,KAAKT,EAASH,GAE1BM,GAAeF,EAAS,IAAMC,EAAO,GACrC,MAAMQ,EDhEH,SAAiBC,GACtB,MAAMC,EAAM,IAAID,GAChB,IAAK,IAAIzF,EAAI0F,EAAIvH,OAAS,EAAG6B,EAAI,EAAGA,IAAK,CACvC,IAAI2F,EAAI3B,KAAK4B,MAAM5B,KAAK6B,UAAY7F,EAAI,KACvC0F,EAAI1F,GAAI0F,EAAIC,IAAM,CAACD,EAAIC,GAAID,EAAI1F,G,CAGlC,OAAO0F,C,CCyDOI,CAAQpI,MAAMC,KAAK,CAAEQ,OAAQ8G,IAAe,CAACc,EAAG/F,IAAOA,KACnEkF,EAAU,GACV,IAAI,IAAInF,EAAI,EAAGA,GAAKgF,EAAQhF,IAC1B,IAAI,IAAI6D,EAAI,EAAGA,GAAKoB,EAAMpB,IACxBsB,EAAQvE,KAAK,CACXqF,QAASR,EAAIzE,QACbkF,UAAWjC,KAAK6B,SAAW,GAAMjB,GAAa,IAC9C7E,EAAG4E,GAAY5E,EAAI,GAAK4E,IACxBf,EAAGe,GAAYf,EAAI,GAAKe,M,CAgBhCH,OAAOrH,iBAAiB,SAAUgI,GAClCA,IAjEA,SAASe,IAEP/B,GAAc,KAEdE,EAAI8B,UAAU,EAAG,EAAG/B,EAAES,MAAOT,EAAEU,QAC/BT,EAAI+B,YAEJ,IAAI,IAAIC,EAAMjC,EAAES,MAAOwB,EAAM,EAAGA,IAC9BhC,EAAIiC,OAAOD,EAAgB,GAAXjC,EAAEU,OAAgBd,KAAKuC,IAAIpC,EAAOkC,EAAM,EAAI,MAAkB,GAATvB,IAGvET,EAAImC,UAAY,GAChBnC,EAAIoC,YA3Ba,iBA4BjBpC,EAAIqC,SAGJxB,EAAQpH,SAAQ6I,IAsClB,IAAmB5G,EAAG6D,EAAGrF,EDhDLqI,EAAIC,EAAIC,EAAIC,EAAIlD,ECgDjB9D,EArCL4G,EAAM5G,EAqCE6D,EArCC+C,EAAM/C,EDXTgD,ECWkB,EDXdC,ECWiB3B,EAAQ/G,ODXrB2I,ECjBL,EDiBSC,EChBT,GDgBalD,ECWqD8C,EAAMX,QAqCtEzH,EDnDP,EAACwB,EAAG6D,EAAGC,IAAM9D,GAAK,EAAI8D,GAAKD,EAAIC,EAGPmD,CAAKF,EAAIC,EAAIpD,EAAQiD,EAAIC,EAAIhD,ICiDrEQ,EAAI+B,YACJ/B,EAAI4C,OAAOlH,EAAI,GAAI6D,GACnBS,EAAIiC,OAAOvG,EAAI,GAAI6D,GACnBS,EAAIoC,YAAc,uBAAuBlI,IACzC8F,EAAI4C,OAAOlH,EAAG6D,EAAI,IAClBS,EAAIiC,OAAOvG,EAAG6D,EAAI,IAClBS,EAAIqC,SA1CFC,EAAMX,SAAWW,EAAMV,UACnBU,EAAMX,SAAWd,EAAQ/G,SAAQwI,EAAMV,WAAY,KACnDU,EAAMX,QAAU,IAAGW,EAAMV,UAAYrB,EAAU,IAGhDL,GACHC,OAAO0C,sBAAsBhB,E,CAyCjCA,E,MCtCFiB,EApDA,WACEvJ,SAAST,iBAAiB,oBAAoB,KAC5C,MAAMiK,EAAkBxJ,SAASe,eAAe,mBAChD,QAA8B,IAApByI,GAAsD,MAAnBA,EAAyB,CACpE,MAAMC,EAAgB7C,OAAOC,WAAW,oCACpC4C,IAAiBA,EAAc3C,SACjC0C,EAAgBE,QAGlB,MAAMrF,EAAkBrE,SAASe,eAAe,aAC1C4I,EAAoB3J,SAASe,eAAe,iBAC5C6I,EAAgBD,EAAkB9H,cAAc,sBAuBtD,SAASgI,IACJF,EAAkBhK,UAAUmD,SAAS,aAClC0G,EAAgBM,QAClBN,EAAgBO,OAEbH,EAAcE,QACjBF,EAAcF,SAGXF,EAAgBM,QACnBN,EAAgBE,O,CA/BtBrF,EAAgB9E,iBAAiB,SAASmG,IACxC8D,EAAgBE,QAChBC,EAAkBhK,UAAU6E,OAAO,YACnCqF,GAAa,IAGfF,EAAkBpK,iBAAiB,SAAUmG,IACtCA,EAAEC,OAAOhG,UAAUmD,SAAS,uBAC/B0G,EAAgBxF,aAAa,WAAW,IACxC2F,EAAkBhK,UAAU8E,IAAI,YAChCoF,I,IAGJjD,OAAOrH,iBAAiB,WAAW,SAASmG,GAC7B,UAATA,EAAErC,MACJmG,EAAgBxF,aAAa,WAAW,IACxC2F,EAAkBhK,UAAU8E,IAAI,YAChCoF,I,aCUVG,EAxCA,WACI,MAAMC,EAAcjK,SAAS6B,cAAc,2BAE3C,IAAKoI,EACD,OAca,IAAIC,sBALQ,CAACC,EAASC,KACnC,MAAMC,EAAiBF,EAAQ,GAAGE,eAClCJ,EAAYtK,UAAUC,OAAO,yBAA0ByK,EAAe,GARlD,CACpBC,KAAM,KACNC,WAAY,MACZC,UAAW,IASNC,QAAQR,GAEjB,IAAIS,EAAoBT,EAAYU,aAEpC,MAAMC,EAA0B,KAC5BF,EAAoBT,EAAYU,aAChB7K,MAAMC,KAAKkK,EAAYhK,iBAAiB,MAChDC,SAAQ2K,IACZ,MAAMC,EAAKD,EAAO9F,aAAa,QAAQgG,QAAQ,IAAK,IAC9CpF,EAAS3F,SAASe,eAAe+J,GACnCnF,IACAA,EAAOjF,MAAMsK,gBAAkB,GAAGN,MAAqB,GAE7D,EAGN9D,OAAOrH,iBAAiB,SAAUqL,GAElCA,G,ECPJ,SAASK,EAAUC,GAEjB,MAAMC,EAAOD,EAAQE,wBACf1K,EAAQkG,OAAOyE,iBAAiBH,GACtC,OACEC,EAAKG,KAAO,GACZH,EAAKI,MAAQ,GACbJ,EAAKK,SAAW5E,OAAO6E,aAAezL,SAAS0L,gBAAgBC,eAC/DR,EAAKS,QAAUhF,OAAOiF,YAAc7L,SAAS0L,gBAAgBI,cAC3C,SAAlBpL,EAAMqL,SACe,WAArBrL,EAAMsL,U,CAKV,SAASC,EAAgBrM,EAAQsM,GAC/B,MAAMvG,EAAS3F,SAASe,eAAenB,EAAOmF,aAAa,iBACzC,IAAdmH,EAQN,SAAyBvG,GAEvBA,EAAOhG,UAAU8E,IAAI,gBACrBkB,EAAO3B,aAAa,WAAY,MAChC2B,EAAO3B,aAAa,cAAe,QAGnC,MAAMmI,EAAexG,EAAO9D,cAAc,8BACpCuK,EAAazG,EAAO9D,cAAc,4BAClCwK,EAAe1G,EAAO9D,cAAc,8BAGpCyK,EAAuC,OAAjBH,EAAwBA,EAAaI,UAAY,GACvEC,EAAmC,OAAfJ,EAAsBA,EAAWG,UAAY,GACjEE,EAAuC,OAAjBJ,EAAwBA,EAAaE,UAAY,GAG7E5G,EAAOpD,UAAY,oPAG6C+J,sDACzBE,kEAE/BC,mY,CA9BNC,CAAgB/G,GA2CpB,SAAyBA,GAEvBA,EAAOhG,UAAU6E,OAAO,eAAgB,wBACxCmB,EAAOd,gBAAgB,YACvBc,EAAOd,gBAAgB,eAGvB,MAAM8H,EAAiBhH,EAAO9D,cAAc,2BACxC8K,GACFA,EAAenI,SAIjB,MAAMoI,EAAgBjH,EAAO9D,cAAc,0BAC3C,GAAI+K,EAAe,CACjB,KAAOA,EAAcC,YACnBlH,EAAOmH,aAAaF,EAAcC,WAAYD,GAEhDjH,EAAOoH,YAAYH,E,CAGrB,MAAMT,EAAexG,EAAO9D,cAAc,yBAC1C,GAAIsK,EAAc,CAChB,KAAOA,EAAaU,YAClBlH,EAAOmH,aAAaX,EAAaU,WAAYV,GAE/CxG,EAAOoH,YAAYZ,E,CAGrB,MAAMC,EAAazG,EAAO9D,cAAc,uBACxC,GAAIuK,EAAY,CACd,KAAOA,EAAWS,YAChBlH,EAAOmH,aAAaV,EAAWS,WAAYT,GAE7CzG,EAAOoH,YAAYX,E,CAGrB,MAAMC,EAAe1G,EAAO9D,cAAc,yBAC1C,GAAIwK,EAAc,CAChB,KAAOA,EAAaQ,YAClBlH,EAAOmH,aAAaT,EAAaQ,WAAYR,GAE/C1G,EAAOoH,YAAYV,E,CAIrB,MAAMW,EAAcrH,EAAO9D,cAAc,wBACrCmL,GACFA,EAAYxI,Q,CAzFZyI,CAAgBtH,E,CA6IpB,SAASuH,EAAevH,GAEtB3F,SAAS6B,cAAc,iBAAmB8D,EAAOmF,GAAK,KAAK9G,aAAa,gBAAiB,SACzF2B,EAAOhG,UAAU6E,OAAO,wBACxBmB,EAAO3B,aAAa,cAAe,QAGnChE,SAAS4B,KAAKlB,MAAMyM,UAAY,E,CAIlC,SAASC,IAEPF,EADkBlM,KAAKC,QAAQ,iB,CAKjC,SAASoM,EAAc7N,GACrB,GAAkB,WAAdA,EAAM6D,IAAkB,CAC1B,MAAMiK,EAAkBtN,SAAS6B,cAAc,yBAC3CyL,GACFJ,EAAeI,E,EAMrB,SAASC,IAEPL,EADkBlM,KAAKC,QAAQ,iB,KAIjCuM,EA9NA,WAEE,MAAMC,EAAUzN,SAASC,iBAAiB,yBAGtCwN,EAAQlN,SACVkN,EAAQvN,SAAQN,IAEdqM,EAAgBrM,EAAQqL,EAAUrL,IAClCA,EAAOL,iBAAiB,SAAS,IAsIvC,SAAyBK,GACvB,MAAM+F,EAAS3F,SAASe,eAAenB,EAAOmF,aAAa,gBAGtDY,EAAOhG,UAAUmD,SAAS,wBAEpB6C,EAAOhG,UAAUmD,SAAS,yBACnCoK,EAAevH,GAInB,SAAuB/F,EAAQ+F,GAE7B/F,EAAOoE,aAAa,gBAAiB,QACrC2B,EAAOhG,UAAU8E,IAAI,wBACrBkB,EAAO3B,aAAa,cAAe,SAGnC,MAAM0J,EAAoB/H,EAAO9D,cAAc,2BAC5C6L,GACDA,EAAkBnO,iBAAiB,QAAS6N,GAI9C,MAAMO,EAAyBhI,EAAO1F,iBAAiB,kCACnD0N,EAAuBpN,OAAS,GAClCoN,EAAuBzN,SAAS0N,IAC9BA,EAAerO,iBAAiB,QAASgO,EAAiB,IAK9DvN,SAAST,iBAAiB,UAAW8N,EAAe,CAAEQ,MAAM,IAG5D7N,SAAS4B,KAAKlB,MAAMyM,UAAY,SAGhC,MAAMW,EAAoChO,MAAMC,KAAKC,SAASC,iBAAiB,kBAAkBiC,QAAO6L,GAAaA,IAAcpI,IAC/HmI,EAAkCvN,OAAS,GAC7CuN,EAAkC5N,SAAS6N,IACzCb,EAAea,EAAU,G,CApC3BC,CAAcpO,EAAQ+F,E,CA3ImBsI,CAAgBrO,IAAQ,IAWjEgH,OAAOrH,iBAAiB,UAAU,KAChCkO,EAAQvN,SAAQN,IACdqM,EAAgBrM,EAAQqL,EAAUrL,GAAQ,GAC1C,I,QCxBgB,KACPE,MAAMC,KAAKC,SAASC,iBAAiB,yBAC7CC,S,SAUgB0C,G,MACnBsL,EAAMtL,EAAU3C,iBAAO,2BACvBkO,EAAOC,OAAAxL,EAAAmC,aAAA,oB,GACRmJ,EAAA3N,OAAA4N,EAGC,YADFvL,EAAUjD,UAAO6E,OAAA,uB,WAIX5B,EAAQ3C,iBACN,aAAaC,SAAO2C,I,MAErB9C,KAAAmO,GAAA7L,KAAAF,KAAAa,cACJ9C,SAAA,CAAAmO,EAAA1L,KACJE,EAAAZ,SAAAU,IAAAE,EAAAZ,SAAAU,GAAAqB,aAAA,wBAAAqK,EAAA,GACD,G,KCpBF,SAASC,IACLtO,SAAS0L,gBAAgBhL,MAAM6N,YAC3B,mBACA3H,OAAOiF,WAAa7L,SAAS4B,KAAKkK,YAAc,K,KAIxD0C,EAZA,WACIF,IACA1H,OAAOrH,iBAAiB,SNaJ,EAACkP,EAAMC,KAC7B,IAAIC,GAAO,EACX,MAAO,KACCA,IACJF,IACAE,GAAO,EACPC,YAAW,IAAMD,GAAO,GAAOD,GAAM,CACxC,EMpBmCG,CAASP,EAAmB,K,QCJlE,WACE,MAAMrE,EAAcjK,SAAS6B,cAAc,2BACrC6I,EAAoBT,EAAcA,EAAYU,aAAe,EAErD7K,MAAMC,KAAKC,SAASC,iBAAiB,kBAC7CC,SAAQ4O,KAKhB,SAAe5D,EAASR,GACtB,MAAMqE,EAAUjP,MAAMC,KAAKmL,EAAQjL,iBAAiB,MAC9CmK,EAAW,IAAIF,qB,SAoB0C6E,G,OAEzDC,I,MAEEC,EACAD,EAAAE,MAAA/M,KAAqBkI,iBAK5B4E,GAAAF,EAAA7O,SAAAiC,IACFA,EAAAxC,UAAAC,OAAA,sBAAAuC,EAAA4C,aAAA,cAAAkK,EAAAtJ,OAAAmF,GAAA,GAED,C,CAjC4CqE,CAAYJ,IAEtDA,EAAQ7O,SAAQ2K,IACd,MAAMC,EAAKD,EAAO9F,aAAa,QAAQgG,QAAQ,IAAK,IAC9CpF,EAAS3F,SAASe,eAAe+J,GAClCnF,GAELyE,EAASK,QAAQ9E,EAAO,IAG1B,MAAMyJ,EAAaC,WAAWzI,OAAOyE,iBAAiBH,GAASI,KAC/DJ,EAAQxK,MAAM4K,IAAM,GAAG8D,EAAa1E,K,CAjBlC4E,CAAMR,EAAKpE,EAAkB,G,ECDjC,SAAS6E,EAAU7N,GACjB,MAAM8N,EAAW1P,MAAMC,KAAK2B,EAAOzB,iBAAiB,qBAC9CwP,EAAU3P,MAAMC,KAAK2B,EAAOzB,iBAAiB,WAC7CyP,EAAUhO,EAAO/B,UAAUmD,SAAS,mBAE1C,GAAK0M,EAASjP,QAAWkP,EAAQlP,SAEjCiP,EAAStP,SAAQyP,IACfA,EAAQpQ,iBAAiB,QAS7B,SAAsBiQ,EAAUI,EAAUF,GACxC,OAAQlQ,IACN,MAAMmQ,EAAUnQ,EAAMC,cAChBgQ,EAAUG,EAASV,MAAK/M,GAAKA,EAAE2I,KAAO6E,EAAQ5K,aAAa,QAAQgG,QAAQ,IAAK,MAEtF,IAAK0E,EACH,OAAO,EAGTjQ,EAAMqE,iBAEF6L,GACFG,QAAQC,UAAU,KAAM,KAAMH,EAAQ5K,aAAa,SAGrDyK,EAAStP,SAAQsG,GAAKA,EAAE7G,UAAUC,OAAO,0BAA2B4G,IAAMmJ,KAC1EC,EAAS1P,SAAQsG,IACf,MAAMuJ,EAAYvJ,IAAMiJ,EAGxB,GAFAjJ,EAAE7G,UAAUC,OAAO,gBAAiBmQ,IAEhCL,EAEJ,GAAIK,EAAW,CACbvJ,EAAExC,aAAa,YAAY,GAE3B,MAAMgC,EAAIY,OAAOoJ,QACjBxJ,EAAEyJ,QACFrJ,OAAOsJ,SAAS,CAAEC,SAAU,OAAQ7E,IAAKtF,G,MAEzCQ,EAAE3B,gBAAgB,WAAW,GAE/B,C,CAxCgCuL,CAAaZ,EAAUC,EAASC,GAAS,IAGzEA,GAAW9I,OAAOyJ,SAASC,MAAM,CACnC,MAAMX,EAAUjO,EAAOG,cAAc,UAAY+E,OAAOyJ,SAASC,KAAO,MACpEX,GAASA,EAAQY,cAAc,IAAIC,MAAM,S,MAuCjDC,EAzDA,WACe3Q,MAAMC,KAAKC,SAASC,iBAAiB,oBAC7CC,QAAQqP,E,ECcV3I,OAAO8J,WAAaA,SAASC,UAAUzQ,UACxCwQ,SAASC,UAAUzQ,QAAUJ,MAAM6Q,UAAUzQ,SAE5C0G,OAAOgK,iBAAmBA,eAAeD,UAAUzQ,UACpD0Q,eAAeD,UAAUzQ,QAAUJ,MAAM6Q,UAAUzQ,SAGrDL,IACAM,IACAU,IACA8C,IACAM,IACAC,IACAoC,IACAiD,IACAS,IACAwD,IACAqD,IACArC,IACAsC,IACAL,G","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/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"],"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 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 position and styles for visibility\r\n const rect = element.getBoundingClientRect();\r\n const style = window.getComputedStyle(element);\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth) &&\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","function Tabs() {\r\n const tabs = Array.from(document.querySelectorAll('.c-tabs--anchor'));\r\n tabs.forEach(setupTabs);\r\n}\r\n\r\nfunction setupTabs(parent) {\r\n const controls = Array.from(parent.querySelectorAll('.c-tabs__control'));\r\n const content = Array.from(parent.querySelectorAll('.c-tab'));\r\n const persist = parent.classList.contains('c-tabs--persist');\r\n \r\n if (!controls.length || !content.length) return;\r\n\r\n controls.forEach(control => {\r\n control.addEventListener('click', controlClick(controls, content, 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 controlClick(controls, contents, persist) {\r\n return (event) => {\r\n const control = event.currentTarget;\r\n const content = contents.find(x => x.id === control.getAttribute('href').replace('#', ''));\r\n \r\n if (!content) {\r\n return true;\r\n };\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 controls.forEach(c => c.classList.toggle('c-tabs__control--active', c === control));\r\n contents.forEach(c => {\r\n const isCurrent = c === content;\r\n c.classList.toggle('c-tab--active', isCurrent);\r\n \r\n if (persist) return;\r\n\r\n if (isCurrent) {\r\n c.setAttribute('tabIndex', -1);\r\n \r\n const y = window.scrollY;\r\n c.focus();\r\n window.scrollTo({ behavior: \"auto\", top: y })\r\n } else {\r\n c.removeAttribute('tabIndex');\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default Tabs;\r\n","import Accordion from './imports/accordion';\r\nimport Carousel from './imports/carousel';\r\nimport ClearForm from './imports/clear-form';\r\nimport Comparison from './imports/comparison';\r\nimport Facet from './imports/facet';\r\nimport Gallery from './imports/gallery';\r\nimport HeroPattern from './imports/hero-pattern';\r\nimport HeroVideo from './imports/hero-video';\r\nimport InternalNav from './imports/internal-nav';\r\nimport OffCanvas from './imports/off-canvas';\r\nimport ResponsiveTable from './imports/responsive-table';\r\nimport ScrollbarWidth from './imports/scrollbar-width';\r\nimport ScrollSpy from './imports/scroll-spy';\r\nimport Tabs from './imports/tabs';\r\n\r\n(() => {\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 Accordion();\r\n Carousel();\r\n ClearForm();\r\n Comparison();\r\n Facet();\r\n Gallery();\r\n HeroPattern();\r\n HeroVideo();\r\n InternalNav();\r\n OffCanvas();\r\n ResponsiveTable();\r\n ScrollbarWidth();\r\n ScrollSpy();\r\n Tabs();\r\n})();"],"names":["$c274619fa9ae66ac$var$setupAccordions","title","addEventListener","event","currentTarget","parentElement","classList","toggle","$c274619fa9ae66ac$export$2e2bcd8739ae039","Array","from","document","querySelectorAll","forEach","$5bdce36a18199573$export$2e2bcd8739ae039","current","bgSlides","fgSlides","length","setInterval","bgSlide","style","opacity","fgSlide","$2b04c6f63ef290fb$export$2e2bcd8739ae039","formClear","getElementById","this","closest","elements","field","value","type","toLowerCase","checked","$7fbc59e2fab6d5d2$var$extractMobileComparison","container","parent","parentNode","body","querySelector","head","mobile","productsInfo","children","filter","x","i","map","info","innerHTML","productsButtons","buttons","products","index","table","row","contains","push","textContent","cells","firstCell","shift","el","key","product","createElement","join","$7fbc59e2fab6d5d2$var$createMobileProduct","appendChild","$7fbc59e2fab6d5d2$export$2e2bcd8739ae039","$c84660375132b4b5$var$setupFacetAccordions","preventDefault","facet","expanded","setAttribute","$c84660375132b4b5$export$2e2bcd8739ae039","$dfe0031b837edf6f$export$2e2bcd8739ae039","mainSlides","thumbnailSlides","lightboxTrigger","lightbox","cloneNode","remove","add","slide","slideImg","srcset","removeAttribute","slideImgSrc","getAttribute","indexOf","split","console","log","insertAdjacentHTML","lightboxActive","prevImage","parseInt","dataset","nextImage","e","target","thumbnailSlide","thumbnail","mainSlide","$41a3994d4318effb$export$b568019c0551f0a4","y","a","min","max","Math","$41a3994d4318effb$export$7d15b64cf5a3a4c4","$2e27ca8f14f20195$export$2e2bcd8739ae039","time","c","ctx","getContext","reduceMotion","window","matchMedia","matches","crossGap","crossSpeed","width","height","across","down","totalPoints","crosses","onResize","scrollWidth","scrollHeight","canvas","ceil","ids","array","arr","j","floor","random","$41a3994d4318effb$export$448332262467e042","_","counter","direction","draw","clearRect","beginPath","cnt","lineTo","cos","lineWidth","strokeStyle","stroke","cross","x1","y1","x2","y2","$41a3994d4318effb$export$3a89f8d6f6bf6c9f","moveTo","requestAnimationFrame","$63fd9338c6a56d33$export$2e2bcd8739ae039","videoBackground","reducedMotion","pause","lightboxContainer","lightboxVideo","checkVideos","paused","play","$a8ec42a1db03828c$export$2e2bcd8739ae039","internalNav","IntersectionObserver","entries","observer","isIntersecting","root","rootMargin","threshold","observe","internalNavHeight","offsetHeight","updateInternalNavHeight","anchor","id","replace","scrollMarginTop","$34e92b90f028a0e5$var$isVisible","element","rect","getBoundingClientRect","getComputedStyle","top","left","bottom","innerHeight","documentElement","clientHeight","right","innerWidth","clientWidth","display","visibility","$34e92b90f028a0e5$var$handleOffCanvas","isVisible","targetHeader","targetMain","targetFooter","targetHeaderContent","outerHTML","targetMainContent","targetFooterContent","$34e92b90f028a0e5$var$createOffCanvas","targetBackdrop","targetContent","firstChild","insertBefore","removeChild","targetClose","$34e92b90f028a0e5$var$removeOffCanvas","$34e92b90f028a0e5$var$closeOffCanvas","overflowY","$34e92b90f028a0e5$var$handleBackdropClick","$34e92b90f028a0e5$var$handleKeyDown","activeOffCanvas","$34e92b90f028a0e5$var$handleCloseClick","$34e92b90f028a0e5$export$2e2bcd8739ae039","toggles","offCanvasBackdrop","offCanvasCloseElements","offCanvasClose","once","allOffCanvasElementsExceptCurrent","offCanvas","$34e92b90f028a0e5$var$openOffCanvas","$34e92b90f028a0e5$var$toggleOffCanvas","headers","breakPoint","Number","header","$e3dc92a106d80d6c$var$setScrollbarWidth","setProperty","$e3dc92a106d80d6c$export$2e2bcd8739ae039","func","limit","wait","setTimeout","$41a3994d4318effb$export$61fc7d43ac8f84b0","spy","anchors","results","firstObservation","find","$9d1dec2ad218c628$var$observation","currentTop","parseFloat","$9d1dec2ad218c628$var$setup","$1d2dabc452d8efd6$var$setupTabs","controls","content","persist","control","contents","history","pushState","isCurrent","scrollY","focus","scrollTo","behavior","$1d2dabc452d8efd6$var$controlClick","location","hash","dispatchEvent","Event","$1d2dabc452d8efd6$export$2e2bcd8739ae039","NodeList","prototype","HTMLCollection","$384feef4bde84172$export$2e2bcd8739ae039","$9d1dec2ad218c628$export$2e2bcd8739ae039"],"version":3,"file":"app.js.map"}
1
+ {"mappings":"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","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/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"],"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 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 console.log(target);\r\n console.log(isVisible);\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","function Tabs() {\r\n const tabs = Array.from(document.querySelectorAll('.c-tabs--anchor'));\r\n tabs.forEach(setupTabs);\r\n}\r\n\r\nfunction setupTabs(parent) {\r\n const controls = Array.from(parent.querySelectorAll('.c-tabs__control'));\r\n const content = Array.from(parent.querySelectorAll('.c-tab'));\r\n const persist = parent.classList.contains('c-tabs--persist');\r\n \r\n if (!controls.length || !content.length) return;\r\n\r\n controls.forEach(control => {\r\n control.addEventListener('click', controlClick(controls, content, 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 controlClick(controls, contents, persist) {\r\n return (event) => {\r\n const control = event.currentTarget;\r\n const content = contents.find(x => x.id === control.getAttribute('href').replace('#', ''));\r\n \r\n if (!content) {\r\n return true;\r\n };\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 controls.forEach(c => c.classList.toggle('c-tabs__control--active', c === control));\r\n contents.forEach(c => {\r\n const isCurrent = c === content;\r\n c.classList.toggle('c-tab--active', isCurrent);\r\n \r\n if (persist) return;\r\n\r\n if (isCurrent) {\r\n c.setAttribute('tabIndex', -1);\r\n \r\n const y = window.scrollY;\r\n c.focus();\r\n window.scrollTo({ behavior: \"auto\", top: y })\r\n } else {\r\n c.removeAttribute('tabIndex');\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default Tabs;\r\n","import Accordion from './imports/accordion';\r\nimport Carousel from './imports/carousel';\r\nimport ClearForm from './imports/clear-form';\r\nimport Comparison from './imports/comparison';\r\nimport Facet from './imports/facet';\r\nimport Gallery from './imports/gallery';\r\nimport HeroPattern from './imports/hero-pattern';\r\nimport HeroVideo from './imports/hero-video';\r\nimport InternalNav from './imports/internal-nav';\r\nimport OffCanvas from './imports/off-canvas';\r\nimport ResponsiveTable from './imports/responsive-table';\r\nimport ScrollbarWidth from './imports/scrollbar-width';\r\nimport ScrollSpy from './imports/scroll-spy';\r\nimport Tabs from './imports/tabs';\r\n\r\n(() => {\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 Accordion();\r\n Carousel();\r\n ClearForm();\r\n Comparison();\r\n Facet();\r\n Gallery();\r\n HeroPattern();\r\n HeroVideo();\r\n InternalNav();\r\n OffCanvas();\r\n ResponsiveTable();\r\n ScrollbarWidth();\r\n ScrollSpy();\r\n Tabs();\r\n})();"],"names":["$c274619fa9ae66ac$var$setupAccordions","title","addEventListener","event","currentTarget","parentElement","classList","toggle","$c274619fa9ae66ac$export$2e2bcd8739ae039","Array","from","document","querySelectorAll","forEach","$5bdce36a18199573$export$2e2bcd8739ae039","current","bgSlides","fgSlides","length","setInterval","bgSlide","style","opacity","fgSlide","$2b04c6f63ef290fb$export$2e2bcd8739ae039","formClear","getElementById","this","closest","elements","field","value","type","toLowerCase","checked","$7fbc59e2fab6d5d2$var$extractMobileComparison","container","parent","parentNode","body","querySelector","head","mobile","productsInfo","children","filter","x","i","map","info","innerHTML","productsButtons","buttons","products","index","table","row","contains","push","textContent","cells","firstCell","shift","el","key","product","createElement","join","$7fbc59e2fab6d5d2$var$createMobileProduct","appendChild","$7fbc59e2fab6d5d2$export$2e2bcd8739ae039","$c84660375132b4b5$var$setupFacetAccordions","preventDefault","facet","expanded","setAttribute","$c84660375132b4b5$export$2e2bcd8739ae039","$dfe0031b837edf6f$export$2e2bcd8739ae039","mainSlides","thumbnailSlides","lightboxTrigger","lightbox","cloneNode","remove","add","slide","slideImg","srcset","removeAttribute","slideImgSrc","getAttribute","indexOf","split","console","log","insertAdjacentHTML","lightboxActive","prevImage","parseInt","dataset","nextImage","e","target","thumbnailSlide","thumbnail","mainSlide","$41a3994d4318effb$export$b568019c0551f0a4","y","a","min","max","Math","$41a3994d4318effb$export$7d15b64cf5a3a4c4","$2e27ca8f14f20195$export$2e2bcd8739ae039","time","c","ctx","getContext","reduceMotion","window","matchMedia","matches","crossGap","crossSpeed","width","height","across","down","totalPoints","crosses","onResize","scrollWidth","scrollHeight","canvas","ceil","ids","array","arr","j","floor","random","$41a3994d4318effb$export$448332262467e042","_","counter","direction","draw","clearRect","beginPath","cnt","lineTo","cos","lineWidth","strokeStyle","stroke","cross","x1","y1","x2","y2","$41a3994d4318effb$export$3a89f8d6f6bf6c9f","moveTo","requestAnimationFrame","$63fd9338c6a56d33$export$2e2bcd8739ae039","videoBackground","reducedMotion","pause","lightboxContainer","lightboxVideo","checkVideos","paused","play","$a8ec42a1db03828c$export$2e2bcd8739ae039","internalNav","IntersectionObserver","entries","observer","isIntersecting","root","rootMargin","threshold","observe","internalNavHeight","offsetHeight","updateInternalNavHeight","anchor","id","replace","scrollMarginTop","$34e92b90f028a0e5$var$isVisible","element","getComputedStyle","display","visibility","$34e92b90f028a0e5$var$handleOffCanvas","isVisible","targetHeader","targetMain","targetFooter","targetHeaderContent","outerHTML","targetMainContent","targetFooterContent","$34e92b90f028a0e5$var$createOffCanvas","targetBackdrop","targetContent","firstChild","insertBefore","removeChild","targetClose","$34e92b90f028a0e5$var$removeOffCanvas","$34e92b90f028a0e5$var$closeOffCanvas","overflowY","$34e92b90f028a0e5$var$handleBackdropClick","$34e92b90f028a0e5$var$handleKeyDown","activeOffCanvas","$34e92b90f028a0e5$var$handleCloseClick","$34e92b90f028a0e5$export$2e2bcd8739ae039","toggles","offCanvasBackdrop","offCanvasCloseElements","offCanvasClose","once","allOffCanvasElementsExceptCurrent","offCanvas","$34e92b90f028a0e5$var$openOffCanvas","$34e92b90f028a0e5$var$toggleOffCanvas","headers","breakPoint","Number","header","$e3dc92a106d80d6c$var$setScrollbarWidth","documentElement","setProperty","innerWidth","clientWidth","$e3dc92a106d80d6c$export$2e2bcd8739ae039","func","limit","wait","setTimeout","$41a3994d4318effb$export$61fc7d43ac8f84b0","spy","anchors","results","firstObservation","find","$9d1dec2ad218c628$var$observation","currentTop","parseFloat","top","$9d1dec2ad218c628$var$setup","$1d2dabc452d8efd6$var$setupTabs","controls","content","persist","control","contents","history","pushState","isCurrent","scrollY","focus","scrollTo","behavior","$1d2dabc452d8efd6$var$controlClick","location","hash","dispatchEvent","Event","$1d2dabc452d8efd6$export$2e2bcd8739ae039","NodeList","prototype","HTMLCollection","$384feef4bde84172$export$2e2bcd8739ae039","$9d1dec2ad218c628$export$2e2bcd8739ae039"],"version":3,"file":"app.js.map"}