PageSourceSearch

https://soldejaneiro.com/cdn/shop/t/568/assets/ia-notify-me.js?v=89109206640513134791789065804

js soldejaneiro.com collected 2026-09-24 21:06:10 UTC 4,449 bytes, 2 lines download raw bytes

1import{IaModal}from"ia-modal";const KLAVIYO_BIS_URL="https://a.klaviyo.com/client/back-in-stock-subscriptions/",KLAVIYO_REVISION="2024-02-15",FOCUSABLE='a[href], button:not(:disabled), input:not([type="hidden"]):not(:disabled), select:not(:disabled), [tabindex]:not([tabindex="-1"])';class IaNotifyMe extends IaModal{constructor(){super(),this.form=this.querySelector("form"),this.variantInput=this.querySelector('[name="variant"]'),this.emailInput=this.querySelector('input[type="email"]'),this.submitButton=this.querySelector('button[type="submit"]'),this.errorElement=this.querySelector("[data-notify-error]"),this.successElement=this.querySelector("[data-notify-success]"),this.companyId=(this.dataset.companyId||"").trim(),this.errorMessageDefault=this.dataset.errorMessage||"Something went wrong. Please try again.",this.errorMessageInvalid=this.dataset.errorInvalid||"Please enter a valid email address.",this.onTriggerClick=this.handleTriggerClick.bind(this),this.form?.addEventListener("submit",this.handleSubmit.bind(this)),this.addEventListener("keydown",this.trapFocus.bind(this))}connectedCallback(){super.connectedCallback(),document.removeEventListener("click",this.onTriggerClick),document.addEventListener("click",this.onTriggerClick)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.onTriggerClick)}handleTriggerClick(event){const trigger=event.target.closest(`[data-notify-trigger="${this.dataset.drawerId}"]`);trigger&&(event.preventDefault(),this.trigger=trigger,this.selectVariant(trigger.dataset.notifyVariant),this.open())}selectVariant(variantId){if(!variantId||this.variantInput?.tagName!=="SELECT")return;[...this.variantInput.options].some(option=>option.value===variantId)&&(this.variantInput.value=variantId)}open(){super.open(),this.showForm(),requestAnimationFrame(()=>this.emailInput?.focus({preventScroll:!0}))}close(){super.close(),this.trigger?.isConnected&&this.trigger.focus(),this.trigger=null}trapFocus(event){if(event.key!=="Tab"||!this.isOpen)return;const focusable=[...this.querySelectorAll(FOCUSABLE)].filter(element=>element.offsetParent!==null);if(focusable.length===0)return;const first=focusable[0],last=focusable[focusable.length-1];event.shiftKey&&document.activeElement===first?(event.preventDefault(),last.focus()):!event.shiftKey&&document.activeElement===last&&(event.preventDefault(),first.focus())}showForm(){this.form?.classList.remove("ia-hidden"),this.errorElement?.classList.add("ia-hidden"),this.successElement?.classList.add("ia-hidden")}showError(message){this.errorElement&&(this.errorElement.textContent=message,this.errorElement.classList.remove("ia-hidden"))}showSuccess(){this.form?.classList.add("ia-hidden"),this.errorElement?.classList.add("ia-hidden"),this.successElement?.classList.remove("ia-hidden"),this.successElement?.querySelector("button")?.focus()}setBusy(busy){this.form.setAttribute("aria-busy",busy?"true":"false"),this.submitButton?.classList.toggle("loading",busy),this.submitButton&&(this.submitButton.disabled=busy)}async handleSubmit(event){if(event.preventDefault(),this.form.getAttribute("aria-busy")!=="true"){if(!this.form.checkValidity()){this.showError(this.errorMessageInvalid);return}if(!this.companyId){console.error("ia-notify-me: no Klaviyo public API key set (Theme settings \u2192 IA Klaviyo)."),this.showError(this.errorMessageDefault);return}this.setBusy(!0);try{await this.subscribe(this.emailInput.value.trim(),this.variantInput.value),this.showSuccess()}catch(error){console.error("ia-notify-me: subscription failed",error),this.showError(this.errorMessageDefault)}finally{this.setBusy(!1)}}}async subscribe(email,variantId){const response=await fetch(`${KLAVIYO_BIS_URL}?company_id=${encodeURIComponent(this.companyId)}`,{method:"POST",headers:{"Content-Type":"application/json",revision:KLAVIYO_REVISION},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)return;const detail=await response.json().then(data=>data?.errors?.[0]?.detail).catch(()=>null);throw new Error(detail||`HTTP ${response.status}`)}}customElements.get("ia-notify-me")||customElements.define("ia-notify-me",IaNotifyMe);
2//# sourceMappingURL=/cdn/shop/t/568/assets/ia-notify-me.js.map?v=89109206640513134791789065804

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.