PageSourceSearch

https://www.lacoquetakids.com/cdn/shop/t/291/assets/hotspot-quickbuy.js?v=162057212428631214271761906981

js lacoquetakids.com collected 2026-09-26 18:43:47 UTC 5,153 bytes, 16 lines download raw bytes

1const{getElement}=window.BAO.Utils;class HotspotProductCard extends window.BAO.CustomElement(){constructor(){super(),this.initialValue=this.labelValue}setupListeners(){super.setupListeners(),this.listeners.add(this,"click",this.handleTrigger.bind(this)),this.listeners.add(this,"focusin",this.handleTrigger.bind(this))}handleTrigger(event){const currentTriggerEl=(event?.target).closest(this.els?.mediaTrigger?.selector);currentTriggerEl&&(this.setAttribute("data-visible-media-index",currentTriggerEl.dataset?.mediaIndex),this.els.mediaTrigger.elements.forEach(mediaTriggerEl=>mediaTriggerEl.setAttribute(this.currentAttribute,(mediaTriggerEl===currentTriggerEl).toString())))}get currentAttribute(){return"aria-current"}}customElements.get("hotspot-product-card")||customElements.define("hotspot-product-card",HotspotProductCard);class HotspotProductCardQuickBuy extends window.BAO.ProductForm{constructor(){super(),this.initialValue=this.labelValue}connectedCallback(){super.connectedCallback&&super.connectedCallback(),this.form&&Array.from(this.form.attributes).map(attr=>`${attr.name}="${attr.value}"`).join(" ")}setupListeners(){if(super.setupListeners(),!(!this.selectEl||!this.buttonEl)){if(this.buttonEl.disabled&&this.buttonEl.dataset.enabledShort!==void 0){const upsellButtonHtml=`
2        <span class="prd-UpsellCard_ButtonTextLong">
3          ${this.buttonEl.dataset.disabled}
4        </span>
5        <span class="prd-UpsellCard_ButtonTextShort">
6          ${this.buttonEl.dataset.enabledShort}
7        </span>
8      `;this.buttonEl.innerHTML=upsellButtonHtml}else this.buttonEl.disabled&&(this.buttonEl.innerHTML=this.buttonEl.dataset.disabled);this.selectEl&&this.listeners.add(this.selectEl,"change",this.handleSelectChange.bind(this)),this.cartCheck||this.listeners.add(this.form,"submit",this.onSubmitHandler.bind(this))}}checkValidity(){try{super.checkValidity()}catch(error){console.error("\u{1F50D} DEBUG: Error in super.checkValidity():",error)}this.form||(console.error("\u{1F50D} DEBUG: Form not found in checkValidity"),this.throwError("needs to be wrapped around a product's <form> element"))}async onSubmitHandler(e){if(e.preventDefault(),this.form.classList.contains("prd-Card_QuickBuy-bis")){let redirectUrl=`/products/${this.form.dataset.productHandle}`;this.buttonEl.dataset.bisVariantId!==""&&(redirectUrl+=`?variant=${this.buttonEl.dataset.bisVariantId}`),window.location.href=`${window.location.origin}${redirectUrl}`}else try{const result=await this.addToCart()}catch(error){console.error("\u{1F50D} DEBUG: Error in addToCart:",error)}}async addToCart(){if(!window.BAO.Cart)return console.error("\u{1F50D} DEBUG: window.BAO.Cart is not defined"),Promise.reject(new Error("Cart API missing"));if(!window.BAO.Cart.addItemFromForm)return console.error("\u{1F50D} DEBUG: window.BAO.Cart.addItemFromForm is not a function"),Promise.reject(new Error("Cart API method missing"));try{return await window.BAO.Cart.addItemFromForm(this.form)}catch(error){console.error("\u{1F50D} DEBUG: Error in window.BAO.Cart.addItemFromForm:",error);try{const formData=new FormData(this.form),id=Number(formData.get("id")),quantity=Number(formData.get("quantity")||1);if(!id)throw new Error("Invalid product ID");if(window.BAO.Cart.addItem)return window.BAO.Cart.addItem({id,quantity},{form:this.form});throw new Error("No fallback cart method available")}catch(fallbackError){throw console.error("\u{1F50D} DEBUG: Fallback cart addition failed:",fallbackError),fallbackError}}}handleSelectChange(event){const selectEl=event?.target;if(!selectEl){console.warn("\u{1F50D} DEBUG: No select element in event target");return}const value=selectEl.value,disabled=!(value&&value.length);if(this.buttonEl.disabled=disabled,selectEl[selectEl.selectedIndex]?.dataset?.bis!==void 0)this.buttonEl.innerHTML=this.buttonEl.dataset.bis,this.buttonEl.dataset.bisVariantId=value,this.form.classList.add("prd-Card_QuickBuy-bis");else{if(this.buttonEl.dataset.enabledShort!==void 0){const upsellButtonHtml=`
9          <span class="prd-UpsellCard_ButtonTextLong">
10            ${this.buttonEl.dataset.enabled}
11          </span>
12          <span class="prd-UpsellCard_ButtonTextShort">
13            ${this.buttonEl.dataset.enabledShort}
14          </span>
15        `;this.buttonEl.innerHTML=upsellButtonHtml}else this.buttonEl.innerHTML=this.buttonEl.dataset.enabled;this.form.classList.remove("prd-Card_QuickBuy-bis")}const optionEl=getElement(`[value="${value}"]`,{context:selectEl});optionEl&&(this.labelValue=optionEl.textContent)}set labelValue(value){this.labelEl&&(this.labelEl.textContent=value&&value.length>0?value:this.initialValue)}get labelValue(){return this.labelEl?.textContent||""}get selectEl(){return this.els?.select?.element}get labelEl(){return this.els?.label?.element}get buttonEl(){return this.els?.button?.element}get form(){return this.querySelector("form")}get cartCheck(){return this.dataset.cartQuickbuy||!1}}customElements.get("hotspot-product-quickbuy")||customElements.define("hotspot-product-quickbuy",HotspotProductCardQuickBuy);
16//# sourceMappingURL=/cdn/shop/t/291/assets/hotspot-quickbuy.js.map?v=162057212428631214271761906981

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.