https://www.josephjoseph.com/cdn/shop/t/651/assets/back-in-stock.js?v=115563797027415287531790082271
1const{getElement,getElements,debounce}=window.BAO.Utils;class BackInStock extends window.BAO.CustomElement(){setupListeners(){super.setupListeners(),this.els?.submit?.exists&&this.listeners.add(this.els.submit.element,"click",this.handleClick.bind(this)),this.setupTriggerListeners=this.setupTriggerListeners.bind(this),window.addEventListener("AFTER_QUICKBUY_RENDER",this.setupTriggerListeners),window.addEventListener("AFTER_PRODUCT_CARD_RENDER",debounce(this.setupTriggerListeners,250)),this.setupTriggerListeners()}setupTriggerListeners(){const externalTriggerEls=getElements(this.externalEls?.trigger?.selector);externalTriggerEls?.length&&(this.handleExternalTriggerClick=this.handleExternalTriggerClick.bind(this),externalTriggerEls.forEach(externalTriggerEl=>{this.listeners.remove(externalTriggerEl,"click",this.handleExternalTriggerClick),this.listeners.add(externalTriggerEl,"click",this.handleExternalTriggerClick)}))}handleExternalTriggerClick(event){const externalTriggerEl=event.target.closest(this.externalEls.trigger.selector);externalTriggerEl&&(this.productId=externalTriggerEl?.dataset?.productId,this.variantId=externalTriggerEl?.dataset?.variantId,this.setProductTitle(externalTriggerEl))}setProductTitle(externalTriggerEl){!this.els?.productTitle?.exists||!externalTriggerEl?.dataset?.variantTitle||!externalTriggerEl?.dataset?.productTitle||(this.els.productTitle.element.setAttribute("aria-hidden",!0),externalTriggerEl.dataset.variantTitle.toLowerCase()?.includes("default")?this.els.productTitle.element.textContent=externalTriggerEl.dataset.productTitle:this.els.productTitle.element.textContent=externalTriggerEl.dataset.variantTitle,this.els.productTitle.element.setAttribute("aria-hidden",!1))}async handleClick(event){if(!event.target.closest(this.els?.submit?.selector)||(event.preventDefault(),event.stopPropagation(),this.email.length<1))return;const BISResponse=await this.sendBIS();return this.handleResponse(BISResponse),!1}async sendBIS(){return BIS.create(this.email,this.variantId,this.productId,{accepts_marketing:!!this.els?.newsletterCheckbox?.element?.checked})}handleClose(){const close=getElement(".bis-BackInStock_Close",{context:this}),successModal=getElement(".mod-Modal-BackInStockSuccess");!close||!successModal||(close?.click(),successModal.ariaHidden=!1,setTimeout(()=>{successModal.ariaHidden=!0},3e3))}handleResponse(response){if(!this.els.response.exists)return;const responseEl=this.els.response.element,{errors=null,message=null}=response,errorArray=errors?Object.keys(errors).map(key=>errors[key]):[];this.toggleResponse(!1),responseEl.innerHTML="",responseEl.dataset.status=response.status.toLowerCase(),responseEl.innerHTML=message?`<p>${message}</p>`:responseEl.innerHTML,errorArray.forEach(error=>{responseEl.innerHTML+=`<p>${error}</p>`}),this.toggleResponse(!0),response.status==="OK"&&this.handleClose()}toggleResponse(isVisible){this.els?.response?.exists&&this.els.response.element.setAttribute("aria-hidden",!isVisible)}get email(){return this.els?.email?.exists?this.els.email.element.value:""}get productId(){return this._productId}set productId(productId){this._productId=productId,this.els?.submit?.exists&&this.els.submit.element.setAttribute("data-product-id",productId)}get variantId(){return this._variantId}set variantId(variantId){this._variantId=variantId,this.els?.submit?.exists&&this.els.submit.element.setAttribute("data-variant-id",variantId)}get externalTriggerSelector(){return'[data-back-in-stock-external-el="trigger"]'}}customElements.get("back-in-stock")||customElements.define("back-in-stock",BackInStock); 2//# sourceMappingURL=/cdn/shop/t/651/assets/back-in-stock.js.map?v=115563797027415287531790082271
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.