https://chilewich.com/cdn/shop/t/334/assets/component-product-bis.js?v=10602104499858136271790255855
1class NovaProductBIS extends HTMLElement{constructor(){super(),this.emailInput=this.querySelector("[data-bis-email-input]"),this.phoneInput=this.querySelector("[data-bis-phone-input]"),this.checkNewsletter=this.querySelector("[data-bis-newsletter-checkbox]"),this.submitButton=this.querySelector("[data-bis-submit]")}connectedCallback(){this.submitButton.addEventListener("click",this.submitBis.bind(this))}disconnectedCallback(){this.submitButton.removeEventListener("click",this.submitBis.bind(this))}isValidEmail=email=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);isValidPhonenumber=phonenumber=>/^\+?[\d\s\-\(\)]{10,15}$/.test(phonenumber.replace(/[\s\-\(\)]/g,""));submitBis=async event=>{event.preventDefault(),this.classList.remove("error","success");try{const inputEmail=this.emailInput.value.trim(),phoneInput=this.phoneInput.value.trim(),variantId=this.querySelector('[name="id"]').value;if(phoneInput&&!this.isValidPhonenumber(phoneInput))throw new Error("Invalid phone number",{cause:"[data-bis-phone-input]"});if(this.phoneInput.nextElementSibling.classList.add("hidden"),inputEmail){if(!this.isValidEmail(inputEmail))throw new Error("Invalid email",{cause:"[data-bis-email-input]"})}else throw new Error("Please input email",{cause:"[data-bis-email-input]"});this.emailInput.nextElementSibling.classList.add("hidden"),await fetch(`https://a.klaviyo.com/client/back-in-stock-subscriptions/?company_id=${this.dataset.publicKlaviyoId}`,{method:"POST",headers:{accept:"application/json",revision:"2024-06-15","Content-Type":"application/json"},body:JSON.stringify({data:{type:"back-in-stock-subscription",attributes:{profile:{data:{type:"profile",attributes:{email:inputEmail,...phoneInput&&{phone_number:phoneInput}}}},channels:phoneInput?["EMAIL","SMS"]:["EMAIL"]},relationships:{variant:{data:{type:"catalog-variant",id:`$shopify:::$default:::${variantId}`}}}}})}),phoneInput&&this.checkNewsletter.hasAttribute("checked")&&await fetch(`https://a.klaviyo.com/client/back-in-stock-subscriptions/?company_id=${this.dataset.publicKlaviyoId}`,{method:"POST",headers:{accept:"application/json",revision:"2024-06-15","Content-Type":"application/json"},body:JSON.stringify({data:{type:"profile-subscription-bulk-create-job",attributes:{profile:{data:{type:"profile",attributes:{phone_number:phoneInput,subscriptions:{sms:{marketing:{consent:"SUBSCRIBED"}}}}}},custom_source:"Back in Stock"},relationships:{list:{data:{type:"list",id:`${this.dataset.subscribeListId}`}}}}})}),this.classList.add("success")}catch(err){console.error("Back-in-stock subscription failed:",err);const errElem=document.querySelector(err.cause);if(errElem)errElem.nextElementSibling.textContent=err.message,errElem.nextElementSibling.classList.remove("hidden"),setTimeout(()=>{errElem.focus()},150);else{const errorMessage=this.querySelector(".product-bis__error-message");errorMessage.textContent="Something went wrong. Please try again.",this.classList.add("error")}}}}typeof customElements.get("nova-product-bis")>"u"&&customElements.define("nova-product-bis",NovaProductBIS); 2//# sourceMappingURL=/cdn/shop/t/334/assets/component-product-bis.js.map?v=10602104499858136271790255855
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.