(()=>{if(window.GCOQuickAddLazy)return;const SLOT="[data-gco-quick-add-lazy]",cache=new Map,inflight=new WeakMap,attempts=new WeakMap,LIMIT=32,TIMEOUT=8e3;function deadline(promise,abort=()=>{}){let timer;const timeout=new Promise((_,reject)=>{timer=setTimeout(()=>{abort(),reject(new Error("GCO panel timeout"))},TIMEOUT)});return Promise.race([promise,timeout]).finally(()=>clearTimeout(timer))}function fetchPanel(key){if(cache.has(key)){const hit=cache.get(key);return cache.delete(key),cache.set(key,hit),hit}const url=new URL(key);url.searchParams.set("section_id","gco-quick-add-custom-panel");const controller=new AbortController,request=deadline(fetch(url.toString(),{signal:controller.signal}).then(async response=>{if(!response.ok)throw new Error(`GCO panel HTTP ${response.status}`);return response.text()}),()=>controller.abort());for(cache.set(key,request);cache.size>LIMIT;)cache.delete(cache.keys().next().value);return request.catch(()=>{cache.get(key)===request&&cache.delete(key)}),request}function fill(slot){if(!slot||!slot.isConnected)return Promise.resolve(null);if(inflight.has(slot))return inflight.get(slot);const id=slot.dataset.productId,originalURL=slot.dataset.productUrl;let url;try{url=new URL(originalURL,document.baseURI)}catch{return Promise.resolve(null)}if(!originalURL||!id||url.origin!==new URL(document.baseURI).origin||!url.pathname.includes("/products/"))return Promise.resolve(null);const tries=attempts.get(slot)||0;if(tries>=2)return Promise.resolve(null);attempts.set(slot,tries+1);const key=url.toString(),current=()=>slot.isConnected&&slot.dataset.productId===id&&slot.dataset.productUrl===originalURL,request=(async()=>{let cached;try{cached=fetchPanel(key);const html=await cached,template=document.createElement("template");template.innerHTML=html;const panel=template.content.querySelector("quick-add-custom-component");if(!panel||panel.dataset.productId!==id)return cache.get(key)===cached&&cache.delete(key),null;if(await deadline(customElements.whenDefined("quick-add-custom-component")),!current())return null;const form=panel.querySelector("form");return form&&slot.dataset.formId&&(form.id=slot.dataset.formId),slot.replaceWith(panel),panel}catch{return cache.get(key)===cached&&cache.delete(key),null}finally{inflight.delete(slot)}})();return inflight.set(slot,request),request}function onIntent(event,pointer){if(pointer&&(event.pointerType!=="mouse"||!window.matchMedia("(hover: hover)").matches))return;const slot=event.target?.closest?.(".card-gallery, .product-card-simple__media")?.querySelector(SLOT);slot&&fill(slot).then(panel=>{panel&&panel.dispatchEvent(new Event(pointer?"pointerenter":"focusin"))})}window.GCOQuickAddLazy={fill},document.addEventListener("pointerover",event=>onIntent(event,!0)),document.addEventListener("focusin",event=>onIntent(event,!1))})(); //# sourceMappingURL=/cdn/shop/t/35/assets/gco-quick-add-custom-lazy.js.map?v=19938475552986397301793372366