PageSourceSearch

https://welleco.com.au/cdn/shop/t/475/assets/collection-product-card.js?v=88254283761170215051787152874

js welleco.com.au collected 2026-09-25 14:55:08 UTC 23,607 bytes, 2 lines download raw bytes

1import{CartAddEvent,CartErrorEvent,CartUpdateEvent,ThemeEvents}from"@theme/events";import{fetchConfig}from"@theme/utilities";const SUBSCRIBE_OPTIONS_MOBILE_QUERY="(max-width: 749px)",SUBSCRIBE_OPTIONS_DESKTOP_QUERY="(min-width: 750px)",DESKTOP_PANEL_CLOSE_MS=480,DESKTOP_PANEL_OPEN_MS=320,DROPDOWN_OFFSET=4,FREQUENCY_ARROW_SVG='<svg width="8" height="5" viewBox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg" class="subscribe-options__frequency-arrow" aria-hidden="true"><path d="M6.6001 0.599976L3.6001 3.59998L0.600098 0.599976" stroke="#181818" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/></svg>';function isSubscribeMobileView(){return window.matchMedia(SUBSCRIBE_OPTIONS_MOBILE_QUERY).matches}function isSubscribeDesktopView(){return window.matchMedia(SUBSCRIBE_OPTIONS_DESKTOP_QUERY).matches}let floatingFrequencyDropdownSelect=null;function positionFloatingFrequencyDropdown(){const display=floatingFrequencyDropdownSelect?.querySelector(".subscribe-options__custom-select-display"),dropdown=floatingFrequencyDropdownSelect?.querySelector(".subscribe-options__custom-select-dropdown");if(!(display instanceof HTMLElement)||!(dropdown instanceof HTMLElement))return;dropdown.style.setProperty("--subscribe-dropdown-top","0px"),dropdown.style.setProperty("--subscribe-dropdown-left","0px");const origin=dropdown.getBoundingClientRect(),trigger=display.getBoundingClientRect();dropdown.style.setProperty("--subscribe-dropdown-top",`${trigger.bottom+DROPDOWN_OFFSET-origin.top}px`),dropdown.style.setProperty("--subscribe-dropdown-left",`${trigger.left-origin.left}px`)}function expandFrequencyDropdown(customSelect){customSelect.classList.add("is-open"),customSelect.querySelector(".subscribe-options__custom-select-display")?.setAttribute("aria-expanded","true");const dropdown=customSelect.querySelector(".subscribe-options__custom-select-dropdown");!customSelect.closest("[data-subscribe-options-panel]")||!(dropdown instanceof HTMLElement)||(floatingFrequencyDropdownSelect=customSelect,dropdown.classList.add("subscribe-options__custom-select-dropdown--floating"),positionFloatingFrequencyDropdown(),window.addEventListener("scroll",positionFloatingFrequencyDropdown,!0),window.addEventListener("resize",positionFloatingFrequencyDropdown))}function collapseFrequencyDropdown(customSelect){customSelect.classList.remove("is-open"),customSelect.querySelector(".subscribe-options__custom-select-display")?.setAttribute("aria-expanded","false");const dropdown=customSelect.querySelector(".subscribe-options__custom-select-dropdown");dropdown instanceof HTMLElement&&(dropdown.classList.remove("subscribe-options__custom-select-dropdown--floating"),dropdown.style.removeProperty("--subscribe-dropdown-top"),dropdown.style.removeProperty("--subscribe-dropdown-left")),floatingFrequencyDropdownSelect===customSelect&&(floatingFrequencyDropdownSelect=null,window.removeEventListener("scroll",positionFloatingFrequencyDropdown,!0),window.removeEventListener("resize",positionFloatingFrequencyDropdown))}function collapseFrequencyDropdowns(container){for(const customSelect of container.querySelectorAll(".subscribe-options__custom-select.is-open"))collapseFrequencyDropdown(customSelect)}function openDesktopSubscribePanel(card){const panel=card.querySelector("[data-subscribe-options-panel]");if(!(panel instanceof HTMLElement))return;closeAllDesktopSubscribePanels(),card.classList.add("collection-product-card--subscribe-open","subscribe-options-card--open"),panel.hidden=!1,panel.classList.remove("is-settled"),panel.classList.add("is-open");const settle=()=>panel.classList.add("is-settled");panel.addEventListener("animationend",settle,{once:!0}),window.setTimeout(settle,DESKTOP_PANEL_OPEN_MS);const trigger=card.querySelector("[data-subscribe-options-trigger]");trigger instanceof HTMLElement&&trigger.setAttribute("aria-expanded","true")}function applyDesktopSubscribePanelClosedState(currentCard){const shouldRevealButtons=isSubscribeDesktopView()&&currentCard.matches(":hover"),buttonsWrapper=currentCard.querySelector(".custom-grid-card__buttons-wrapper.product-grid-item-quick-add");shouldRevealButtons&&buttonsWrapper instanceof HTMLElement&&(buttonsWrapper.classList.add("custom-grid-card__buttons-wrapper--reveal-reset"),buttonsWrapper.getBoundingClientRect()),currentCard.classList.remove("collection-
1product-card--subscribe-open","subscribe-options-card--open");const trigger=currentCard.querySelector("[data-subscribe-options-trigger]");trigger instanceof HTMLElement&&trigger.setAttribute("aria-expanded","false"),shouldRevealButtons&&buttonsWrapper instanceof HTMLElement&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{buttonsWrapper.classList.remove("custom-grid-card__buttons-wrapper--reveal-reset")})})}function hideDesktopSubscribePanel(panel){panel.classList.remove("is-open","is-settled","is-closing","is-closing-active"),panel.hidden=!0}function waitForDesktopPanelCloseAnimation(panel){return new Promise(resolve=>{let settled=!1;const finish=()=>{settled||(settled=!0,panel.removeEventListener("transitionend",onTransitionEnd),resolve())},onTransitionEnd=event=>{event.target===panel&&(event.propertyName==="opacity"||event.propertyName==="transform")&&finish()};panel.addEventListener("transitionend",onTransitionEnd),window.setTimeout(finish,DESKTOP_PANEL_CLOSE_MS+100)})}function startDesktopPanelCloseAnimation(panel){panel.classList.remove("is-open","is-settled"),panel.classList.add("is-closing"),panel.classList.remove("is-closing-active"),panel.getBoundingClientRect(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{panel.classList.add("is-closing-active")})})}async function closeDesktopSubscribePanel(card,options={}){const{animated=!1}=options,cards=card?[card]:Array.from(document.querySelectorAll("[data-subscribe-options-card].collection-product-card--subscribe-open, [data-subscribe-options-card].subscribe-options-card--open"));await Promise.all(cards.map(async currentCard=>{if(!(currentCard instanceof HTMLElement))return;const panel=currentCard.querySelector("[data-subscribe-options-panel]");if(!(panel instanceof HTMLElement)){applyDesktopSubscribePanelClosedState(currentCard);return}if(panel.classList.contains("is-closing"))return;if(collapseFrequencyDropdowns(panel),animated&&isSubscribeDesktopView()&&panel.classList.contains("is-open")&&!panel.hidden){startDesktopPanelCloseAnimation(panel),await waitForDesktopPanelCloseAnimation(panel),hideDesktopSubscribePanel(panel),applyDesktopSubscribePanelClosedState(currentCard);return}applyDesktopSubscribePanelClosedState(currentCard),hideDesktopSubscribePanel(panel)}))}function closeAllDesktopSubscribePanels(options={}){return closeDesktopSubscribePanel(void 0,{animated:options.animated??!1})}function closeAllSubscribeOptions(){closeAllDesktopSubscribePanels(),forceCloseAllSubscribeOptionsDialogs()}async function closeSubscribeOptionsDialogsWithAnimation(){const dialogs=Array.from(document.querySelectorAll("dialog.subscribe-options__dialog")).filter(dialog=>dialog instanceof HTMLDialogElement&&(dialog.open||dialog.hasAttribute("open")));if(dialogs.length===0){forceCloseAllSubscribeOptionsDialogs();return}await Promise.all(dialogs.map(dialog=>new Promise(resolve=>{if(!(dialog instanceof HTMLDialogElement)){resolve();return}let settled=!1;const finish=()=>{settled||(settled=!0,dialog.removeEventListener("animationend",onAnimationEnd),resolve())},onAnimationEnd=event=>{event.target===dialog&&finish()};dialog.classList.add("dialog-closing"),dialog.addEventListener("animationend",onAnimationEnd),window.setTimeout(finish,280)}))),forceCloseAllSubscribeOptionsDialogs()}function forceCloseAllSubscribeOptionsDialogs(){document.querySelectorAll("dialog.subscribe-options__dialog").forEach(dialog=>{if(!(dialog instanceof HTMLDialogElement))return;dialog.classList.remove("dialog-closing");try{typeof dialog.close=="function"&&dialog.open&&dialog.close()}catch{}dialog.removeAttribute("open"),dialog.hidden=!0,dialog.style.cssText="display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important;";const host=dialog.closest("dialog-component");host instanceof HTMLElement&&host.style.setProperty("display","none","important")}),document.documentElement.removeAttribute("scroll-lock")}function prepareSubscribeDialogForOpen(dialog){if(!(dialog instanceof HTMLDialogElement))return;dialog.hidden=!1,dialog.style.cssText="",dialog.classList.remove("dialog-closing");const host=dialog.closest("dialog-component");host instanceof HTMLElement&&host.style.removeProperty("display")}function getCartAddUrl(){return typeof Theme<"u"&&Theme.routes?.cart_add_url?Theme.routes.cart_add_url:`${window.Shopify?.routes?.root||"/"}cart/add.js`}function getCartUrl(){return typeof Theme<"u"&&Theme.routes?.cart_url?`${Theme.routes.cart_url}.js`:`${window.Shopify?.routes?.root||"/"}cart.js`}const productPageCache=new Map;async function fetchProductPage(productUrl,variantId){const url=new URL(productUrl,window.location.origin);url.searchParams.set("variant",variantId);const cacheKey=url.toString(),cachedPage=productPageCache.get(cacheKey);if(cachedPage)return cachedPage;const request=(async()=>{const response=await fetch(cacheKey);if(!response.ok)throw new Error(`Product page fetch failed: ${response.status}`);const html=await response.text();return new DOMParser().parseFromString(html,"text/html")})();productPageCache.set(cacheKey,request);try{return await request}catch(error){throw productPageCache.delete(cacheKey),error}}async function getSubscriptionGiftVariantIds(form){const productUrl=form.dataset.productUrl,variantInput=form.querySelector('[name="id"]'),sellingPlanInput=form.querySelector('[name="selling_plan"]'),variantId=variantInput instanceof HTMLInputElement?variantInput.value:"",sellingPlan=sellingPlanInput instanceof HTMLInputElement?sellingPlanInput.value:"";if(!productUrl||!variantId||!sellingPlan)return[];const productPage=await fetchProductPage(productUrl,variantId);if(productPage.querySelector("pdp-subscription-gifts")?.getAttribute("data-disable-gift-auto-add")==="true")return[];const selectedPlanName=(form.dataset.sellingPlanName??"").toLowerCase(),giftVariantIds=new Set;for(const gift of productPage.querySelectorAll("[data-pdp-subscription-gift][data-variant-id]")){const giftVariantId=gift.getAttribute("data-variant-id");if(!giftVariantId||giftVariantId===variantId)continue;(gift.getAttribute("data-unavailable-plans")??"").split(",").map(plan=>
1plan.trim().toLowerCase()).filter(Boolean).some(planKeyword=>selectedPlanName&&selectedPlanName.includes(planKeyword))||giftVariantIds.add(giftVariantId)}return[...giftVariantIds]}function buildSubscriptionCartPayload(form,giftVariantIds){const formData=new FormData(form),variantId=Number(formData.get("id")),quantity=Number(formData.get("quantity")??1),sellingPlanId=Number(formData.get("selling_plan")),properties={};for(const[name,value]of formData.entries()){const propertyName=name.match(/^properties\[(.+)\]$/)?.[1];propertyName&&typeof value=="string"&&(properties[propertyName]=value)}const mainItem={id:variantId,quantity,selling_plan:sellingPlanId,...Object.keys(properties).length>0?{properties}:{}},giftItems=giftVariantIds.map(giftVariantId=>({id:Number(giftVariantId),quantity:1}));return{items:[mainItem,...giftItems]}}async function handleCollectionCardSubmit(form,event){if(event.preventDefault(),event.stopPropagation(),"stopImmediatePropagation"in event&&event.stopImmediatePropagation(),form.dataset.collectionSubmitting==="true")return;form.dataset.collectionSubmitting="true";const button=form.querySelector('button[type="submit"]');if(!(button instanceof HTMLButtonElement)||button.disabled){form.dataset.collectionSubmitting="false";return}const originalHTML=button.innerHTML,isSubscribeSheet=!!(form.classList.contains("subscribe-options__form")&&(form.closest("dialog.subscribe-options__dialog")||form.closest(".subscribe-options__desktop-panel"))),isMobileSubscribeSheet=isSubscribeSheet&&isSubscribeMobileView(),isDesktopSubscribePanel=isSubscribeSheet&&isSubscribeDesktopView();button.textContent="ADDING...",button.disabled=!0;const formData=new FormData(form),variantId=String(formData.get("id")??""),quantity=Number(formData.get("quantity"))||1;try{let giftVariantIds=[];try{giftVariantIds=await getSubscriptionGiftVariantIds(form)}catch(error){console.error("Collection subscription gift lookup failed",error)}const sellingPlanInput=form.querySelector('[name="selling_plan"]'),requestOptions=sellingPlanInput instanceof HTMLInputElement&&!!sellingPlanInput.value?{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(buildSubscriptionCartPayload(form,giftVariantIds))}:{...fetchConfig("javascript",{body:formData}),headers:{Accept:"application/json"},body:formData},response=await fetch(getCartAddUrl(),requestOptions),data=await response.json();if(!response.ok||data.status)throw new Error(data.description||data.message||"Add to cart failed");if(button.textContent="ADDED",button.setAttribute("aria-label","Added"),isMobileSubscribeSheet)await new Promise(resolve=>window.setTimeout(resolve,500)),await closeSubscribeOptionsDialogsWithAnimation();else if(isDesktopSubscribePanel){await new Promise(resolve=>window.setTimeout(resolve,500));const card=form.closest("[data-subscribe-options-card]");card instanceof HTMLElement&&await closeDesktopSubscribePanel(card,{animated:!0})}const cart=await(await fetch(getCartUrl(),{headers:{Accept:"application/json"}})).json(),variantInput=form.querySelector('[name="id"]'),resolvedVariantId=String(data.variant_id??(variantInput instanceof HTMLInputElement?variantInput.value:variantId));document.dispatchEvent(new CartAddEvent(cart,resolvedVariantId,{source:"collection-product-card",itemCount:cart.item_count??quantity,productId:String(data.product_id??""),variantId:resolvedVariantId})),document.dispatchEvent(new CartUpdateEvent(cart,form.id||"collection-product-card",{source:"collection-product-card",itemCount:cart.item_count,productId:String(data.product_id??""),variantId:resolvedVariantId}));const cartDrawer=document.querySelector("cart-drawer-component");typeof cartDrawer?.open=="function"&&cartDrawer.open()}catch(error){console.error("Collection product card add to cart error",error),button.textContent="ERROR";const message=error instanceof Error?error.message:"Add to cart failed";document.dispatchEvent(new CartErrorEvent(form.id||"collection-product-card",message)),document.dispatchEvent(new CartUpdateEvent({},form.id||"collection-product-card",{didError:!0,source:"collection-
1product-card",itemCount:quantity,variantId}))}finally{window.setTimeout(()=>{if(isMobileSubscribeSheet&&forceCloseAllSubscribeOptionsDialogs(),isDesktopSubscribePanel){const card=form.closest("[data-subscribe-options-card]");card instanceof HTMLElement&&closeDesktopSubscribePanel(card)}button.innerHTML=originalHTML,button.disabled=!1,form.dataset.collectionSubmitting="false"},2e3)}}function getFrequencyOptionLabel(option){const rawLabel=(option.dataset.label||option.textContent||"").trim(),frequencyMatch=rawLabel.match(/(\d+)\s*(day|days|week|weeks|month|months|year|years)/i);return frequencyMatch?`${frequencyMatch[1]} ${frequencyMatch[2].toLowerCase()}`:rawLabel.replace(/every\s+/i,"").replace(/\s*subscription\s*/gi," ").replace(/\s+with\s+.+$/i,"").replace(/\s+-\s+.+$/i,"").replace(/\s+/g," ").trim()}function handleFrequencyChange(select){const option=select.selectedOptions[0];if(!option)return;const form=select.closest(".subscribe-options__form");if(!(form instanceof HTMLElement))return;const sellingPlanInput=form.querySelector("[data-subscribe-options-selling-plan-input]");sellingPlanInput instanceof HTMLInputElement&&(sellingPlanInput.value=option.value);const priceDisplay=form.querySelector("[data-subscribe-options-price]"),price=option.dataset.price;priceDisplay&&price&&(priceDisplay.textContent=price);const customSelect=form.querySelector("[data-subscribe-options-custom-select]"),customText=customSelect?.querySelector("[data-subscribe-options-custom-text]");customText&&(customText.textContent=getFrequencyOptionLabel(option)),customSelect?.querySelectorAll("[data-subscribe-options-custom-option]").forEach(item=>{item instanceof HTMLElement&&(item.classList.toggle("is-selected",item.dataset.value===option.value),item.setAttribute("aria-selected",item.dataset.value===option.value?"true":"false"))})}function initSubscribeFrequencyCustomSelect(select){if(select.dataset.customSelectInit==="true")return;const wrapper=select.closest(".subscribe-options__frequency-select-wrapper"),mount=wrapper?.querySelector("[data-subscribe-options-custom-select]");if(!(wrapper instanceof HTMLElement)||!(mount instanceof HTMLElement))return;select.dataset.customSelectInit="true";const customSelect=document.createElement("div");customSelect.className="subscribe-options__custom-select",customSelect.dataset.subscribeOptionsCustomSelect="";const display=document.createElement("button");display.type="button",display.className="subscribe-options__custom-select-display",display.setAttribute("aria-haspopup","listbox"),display.setAttribute("aria-expanded","false"),display.setAttribute("aria-label","Delivery frequency");const text=document.createElement("span");text.className="subscribe-options__custom-select-text",text.dataset.subscribeOptionsCustomText="",text.textContent=select.selectedOptions[0]?getFrequencyOptionLabel(select.selectedOptions[0]):"",display.append(text),display.insertAdjacentHTML("beforeend",FREQUENCY_ARROW_SVG);const dropdown=document.createElement("ul");dropdown.className="subscribe-options__custom-select-dropdown",dropdown.setAttribute("role","listbox"),dropdown.dataset.subscribeOptionsCustomDropdown="";for(const option of select.options){const item=document.createElement("li");item.className="subscribe-options__custom-select-option",item.dataset.subscribeOptionsCustomOption="",item.dataset.value=option.value,item.setAttribute("role","option"),item.textContent=getFrequencyOptionLabel(option),option.selected?(item.classList.add("is-selected"),item.setAttribute("aria-selected","true")):item.setAttribute("aria-selected","false"),item.addEventListener("click",event=>{event.stopPropagation(),select.value=option.value,select.dispatchEvent(new Event("change",{bubbles:!0})),collapseFrequencyDropdown(customSelect)}),dropdown.appendChild(item)}display.addEventListener("click",event=>{event.stopPropagation(),customSelect.classList.contains("is-open")?collapseFrequencyDropdown(customSelect):expandFrequencyDropdown(customSelect)}),customSelect.append(display,dropdown),mount.replaceWith(customSelect),select.addEventListener("change",()=>handleFrequencyChange(select))}function getSubscribeDialogComponent(card,sheetId){if(card instanceof HTMLElement){const fromCard=(sheetId?card.querySelector(`dialog-component#${CSS.escape(sheetId)}`):null)||card.querySelector("dialog-component.custom-grid-card__subscribe-options")||card.querySelector("dialog-component");if(fromCard instanceof HTMLElement)return fromCard}const fromDocument=sheetId?document.getElementById(sheetId):null;return fromDocument instanceof HTMLElement?fromDocument:null}function handleSubscribeTriggerClick(event,sheetId){event.preventDefault(),event.stopPropagation();const card=event.currentTarget instanceof HTMLElement&&event.currentTarget.closest("[data-subscribe-options-card]")||event.target instanceof Element&&event.target.closest("[data-subscribe-options-card]")||null||getSubscribeDialogComponent(null,sheetId)?.closest("[data-subscribe-options-card]")||null;if(isSubscribeMobileView()){const dialogComponent=getSubscribeDialogComponent(card instanceof HTMLElement?card:null,sheetId);if(!dialogComponent||typeof dialogComponent.showDialog!="function")return;closeAllDesktopSubscribePanels();const dialog=dialogComponent.querySelector("dialog.subscribe-options__dialog");prepareSubscribeDialogForOpen(dialog instanceof HTMLDialogElement?dialog:null),dialogComponent.showDialog();return}isSubscribeDesktopView()&&card instanceof HTMLElement&&(forceCloseAllSubscribeOptionsDialogs(),openDesktopSubscribePanel(card))}async function handleSubscribeCloseClick(closeButton){const card=closeButton.closest("[data-subscribe-options-card]");if(closeButton.closest("[data-subscribe-options-panel]")instanceof HTMLElement&&isSubscribeDesktopView()&&card instanceof HTMLElement){await closeDesktopSubscribePanel(card,{animated:!0});return}if(isSubscribeMobileView()){await closeSubscribeOptionsDialogsWithAnimation();return}closeAllSubscribeOptions()}function handleDocumentSubscribeClick(event){const target=event.target;target instanceof Element&&(target.closest("[data-subscribe-options-trigger], .subscribe-options__desktop-panel, .subscribe-options__dialog")||closeAllDesktopSubscribePanels({animated:!0}))}function handleSubscribeSubmitClick(event){const target=event.target;if(!(target instanceof Element))return;const button=target.closest(".subscribe-options__submit");
1if(!(button instanceof HTMLButtonElement))return;const form=button.closest("form.subscribe-options__form");form instanceof HTMLFormElement&&(event.preventDefault(),event.stopPropagation(),handleCollectionCardSubmit(form,event))}function closeOpenSubscribeFrequencyDropdowns(event){const target=event?.target;target instanceof Element&&target.closest(".subscribe-options__custom-select")||collapseFrequencyDropdowns(document)}export function initCollectionProductCards(root=document){for(const form of root.querySelectorAll("[data-subscribe-options-card] .custom-grid-card__form[data-collection-ajax-cart], [data-subscribe-options-card] .subscribe-options__form[data-collection-ajax-cart]"))!(form instanceof HTMLFormElement)||form.dataset.collectionAjaxInit==="true"||(form.dataset.collectionAjaxInit="true",form.addEventListener("submit",event=>handleCollectionCardSubmit(form,event)));for(const select of root.querySelectorAll("[data-subscribe-options-card] [data-subscribe-options-frequency-select]"))select instanceof HTMLSelectElement&&initSubscribeFrequencyCustomSelect(select);for(const trigger of root.querySelectorAll("[data-subscribe-options-card] [data-subscribe-options-trigger]")){if(!(trigger instanceof HTMLButtonElement)||trigger.dataset.subscribeTriggerInit==="true")continue;trigger.dataset.subscribeTriggerInit="true",trigger.setAttribute("aria-expanded","false");const sheetId=trigger.dataset.subscribeOptionsTrigger;trigger.addEventListener("click",event=>handleSubscribeTriggerClick(event,sheetId??""))}for(const closeButton of root.querySelectorAll("[data-subscribe-options-card] [data-subscribe-options-close]"))!(closeButton instanceof HTMLButtonElement)||closeButton.dataset.subscribeCloseInit==="true"||(closeButton.dataset.subscribeCloseInit="true",closeButton.addEventListener("click",()=>handleSubscribeCloseClick(closeButton)))}function scheduleInit(){requestAnimationFrame(()=>{requestAnimationFrame(()=>initCollectionProductCards())})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>initCollectionProductCards(),{once:!0}):initCollectionProductCards(),document.body.dataset.subscribeOptionsSubmitInit||(document.body.dataset.subscribeOptionsSubmitInit="true",document.addEventListener("click",handleSubscribeSubmitClick,!0),document.addEventListener("click",closeOpenSubscribeFrequencyDropdowns),document.addEventListener("click",handleDocumentSubscribeClick)),document.addEventListener(ThemeEvents.FilterUpdate,scheduleInit);
2//# sourceMappingURL=/cdn/shop/t/475/assets/collection-product-card.js.map?v=88254283761170215051787152874

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.