1import{startKlaviyoLanguageSync}from"@lyle/weglot";const KLAVIYO_REVISION="2026-04-15";class LyleSiteFooter extends HTMLElement{#abortController=null;connectedCallback(){this.#abortController=new AbortController,this.querySelectorAll("[data-newsletter-form]").forEach(form=>{this.#bindNewsletterForm(form)}),this.#bindCookieSettings(),startKlaviyoLanguageSync()}disconnectedCallback(){this.#abortController?.abort()}#bindNewsletterForm(form){const email=form.querySelector("[data-newsletter-email]");form.addEventListener("submit",this.#handleNewsletterSubmit,{signal:this.#abortController.signal}),email?.addEventListener("input",()=>this.#resetNewsletterState(form),{signal:this.#abortController.signal})}#handleNewsletterSubmit=async event=>{event.preventDefault();const form=event.currentTarget;if(!form.querySelector("[data-newsletter-email]")?.validity.valid){this.#setNewsletterState(form,"error");return}this.#setNewsletterState(form,"loading");try{const formData=new FormData(form);if((await window.fetch(form.action,{body:JSON.stringify({data:{type:"subscription",attributes:{custom_source:"footer",profile:{data:{type:"profile",attributes:{email:formData.get("email"),subscriptions:{email:{marketing:{consent:"SUBSCRIBED"}}}}}}},relationships:{list:{data:{type:"list",id:formData.get("g")}}}}}),headers:{"content-type":"application/vnd.api+json",revision:KLAVIYO_REVISION},method:form.method})).status===202){this.#setNewsletterState(form,"success");return}this.#setNewsletterState(form,"error")}catch{this.#setNewsletterState(form,"error")}};#resetNewsletterState(form){form.dataset.state!=="idle"&&this.#setNewsletterState(form,"idle")}#setNewsletterState(form,state){const submit=form.querySelector("[data-newsletter-submit]"),tick=form.querySelector("[data-newsletter-tick]"),error=form.querySelector("[data-newsletter-error]"),title=form.querySelector("[data-newsletter-title]"),subtitle=form.querySelector("[data-newsletter-subtitle]"),isLoading=state==="loading",isSuccess=state==="success",isError=state==="error";if(form.dataset.state=state,form.classList.remove("is-loading","is-success","is-error"),state!=="idle"&&form.classList.add(`is-${state}`),submit&&(submit.disabled=isLoading,submit.hidden=isSuccess),tick&&(tick.hidden=!isSuccess),error&&(error.hidden=!isError),title){const titleText=isSuccess?form.dataset.successTitle:title.dataset.defaultText;title.textContent=titleText,title.hidden=!titleText}if(subtitle){const subtitleText=isSuccess?form.dataset.successSubtitle:subtitle.dataset.defaultText;subtitle.textContent=subtitleText,subtitle.hidden=!subtitleText}}#bindCookieSettings(){const button=this.querySelector("[data-cookie-settings]");button&&(button.addEventListener("click",()=>{window.lyleOneTrustBannerOpen=!0,window.dispatchEvent(new CustomEvent("onetrust:opened")),window.OneTrust?.ToggleInfoDisplay?.()},{signal:this.#abortController.signal}),window.lyleOneTrustBannerOpen===!1&&(button.hidden=!1),window.addEventListener("onetrust:closed",()=>{button.hidden=!1},{signal:this.#abortController.signal}))}}customElements.get("lyle-site-footer")||customElements.define("lyle-site-footer",LyleSiteFooter); 2//# sourceMappingURL=/cdn/shop/t/458/assets/lyle-site-footer.js.map?v=183938319636057001051788364388
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.