PageSourceSearch

https://omanaturalfood.com/cdn/shop/t/46/assets/waitlist-form.js?v=146146907740570839711790866775

js omanaturalfood.com collected 2026-10-04 13:24:57 UTC 4,144 bytes, 2 lines download raw bytes

1if(!customElements.get("waitlist-form")){class WaitlistForm extends HTMLElement{constructor(){super(),this.variantChangeUnsubscriber=null}connectedCallback(){this.emailInput=this.querySelector("[data-waitlist-email]"),this.submitBtn=this.querySelector("[data-waitlist-submit]"),this.successEl=this.querySelector("[data-waitlist-success]"),this.errorEl=this.querySelector("[data-waitlist-error]"),this.klaviyoForm=this.querySelector("[data-waitlist-klaviyo-form]"),this.nativeForm=this.querySelector("[data-waitlist-native-form]"),this.nativeVariantInput=this.querySelector("[data-waitlist-native-variant]"),this.productFormButtons=document.querySelector(`#product-form-${this.dataset.sectionId} .product-form__buttons`),this.stickyAtc=document.querySelector(`#StickyATC-${this.dataset.sectionId}`),this.klaviyoForm&&this.klaviyoForm.addEventListener("submit",this.onSubmit.bind(this)),typeof subscribe<"u"&&typeof PUB_SUB_EVENTS<"u"&&(this.variantChangeUnsubscriber=subscribe(PUB_SUB_EVENTS.variantChange,this.onVariantChange.bind(this)))}disconnectedCallback(){this.variantChangeUnsubscriber&&this.variantChangeUnsubscriber()}onVariantChange(event){const{variant,sectionId}=event.data;if(sectionId===this.dataset.sectionId){if(!variant){this.hide();return}if(this.dataset.variantId=variant.id,this.nativeVariantInput){const typeTag=this.dataset.productTypeTag?`${this.dataset.productTypeTag}, `:"";this.nativeVariantInput.value=`waitlist, ${typeTag}waitlist-${this.dataset.productHandle}, waitlist-variant-${variant.id}`}if(this.dataset.previewMode==="true"){this.show();return}variant.available?this.hide():this.show()}}show(){this.removeAttribute("hidden"),this.productFormButtons&&this.productFormButtons.setAttribute("hidden",""),this.stickyAtc&&(this.stickyAtc.setAttribute("hidden",""),this.stickyAtc.classList.remove("active"))}hide(){this.setAttribute("hidden",""),this.resetState(),this.productFormButtons&&this.productFormButtons.removeAttribute("hidden"),this.stickyAtc&&this.stickyAtc.removeAttribute("hidden")}resetState(){this.successEl&&this.successEl.setAttribute("hidden",""),this.errorEl&&this.errorEl.setAttribute("hidden",""),this.emailInput&&(this.emailInput.value=""),this.submitBtn&&(this.submitBtn.removeAttribute("disabled"),this.submitBtn.removeAttribute("aria-busy"))}async onSubmit(event){event.preventDefault();const email=this.emailInput?.value?.trim();if(!email){this.showError("Please enter a valid email address.");return}const variantId=this.dataset.variantId,klaviyoKey=this.dataset.klaviyoKey;if(this.setLoading(!0),klaviyoKey)try{const response=await fetch(`https://a.klaviyo.com/client/back-in-stock-subscriptions/?company_id=${klaviyoKey}`,{method:"POST",headers:{"Content-Type":"application/json",revision:"2024-02-15"},body:JSON.stringify({data:{type:"back-in-stock-subscription",attributes:{profile:{data:{type:"profile",attributes:{email}}},channels:["EMAIL"]},relationships:{variant:{data:{type:"catalog-variant",id:`$shopify:::$default:::${variantId}`}}}}})});if(response.ok||response.status===202){this.showSuccess();return}console.warn("[Waitlist] Klaviyo API returned status",response.status,"\u2014 falling back to Shopify form.")}catch(err){console.warn("[Waitlist] Klaviyo API failed, falling back to Shopify form.",err)}this.nativeForm?this.nativeForm.submit():this.showSuccess()}setLoading(loading){this.submitBtn&&(loading?(this.submitBtn.setAttribute("disabled",""),this.submitBtn.setAttribute("aria-busy","true")):(this.submitBtn.removeAttribute("disabled"),this.submitBtn.removeAttribute("aria-busy")))}showSuccess(){this.setLoading(!1),this.successEl&&this.successEl.removeAttribute("hidden"),this.errorEl&&this.errorEl.setAttribute("hidden",""),this.klaviyoForm&&this.klaviyoForm.setAttribute("hidden","")}showError(message){this.setLoading(!1),this.errorEl&&(this.errorEl.textContent=message||"Something went wrong. Please try again.",this.errorEl.removeAttribute("hidden")),this.successEl&&this.successEl.setAttribute("hidden","")}}customElements.define("waitlist-form",WaitlistForm)}
2//# sourceMappingURL=/cdn/shop/t/46/assets/waitlist-form.js.map?v=146146907740570839711790866775

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.