https://www.mightly.com/cdn/shop/t/55/assets/awtomic-cart-extras.js?v=179307025366707134081788968680
1(function(){"use strict";var has=function(s){return!!document.querySelector(s)},TABLE_SELECTORS={cartItemRow:"tr[data-key]",title:".cart-items__title",image:".cart-items__media-image",imageContainer:".cart-items__media-container",imageLink:".cart-items__link",variants:".cart-items__variants",variantsWrapper:".cart-items__variants-wrapper",unitPriceWrapper:".cart-items__unit-price-wrapper",price:".cart-items__price",compareAtPrice:".compare-at-price",qtyInput:'input[type="number"]',qtyButtons:".quantity-minus, .quantity-plus",removeButton:".cart-items__remove"},BUBBLE={count:".cart-bubble__text-count",visuallyHidden:".cart-bubble__text .visually-hidden",container:".cart-bubble"},BUBBLE_WIDE={count:'[data-testid="cart-bubble"], .cart-count, [id*="cart-count"], .cart-count-bubble span[aria-hidden="true"], .cart-bubble__text-count',visuallyHidden:".visually-hidden",container:".cart-bubble, .cart-count-bubble"},themeDefinitions={themes:{tinker:{name:"Tinker",detect:function(){return has("dialog.cart-drawer__dialog")&&has("cart-items-component[data-drawer]")},selectors:TABLE_SELECTORS,drawer:{selectors:"dialog.cart-drawer__dialog[open], dialog[open]",visibilityCheck:function(el){return el&&el.hasAttribute("open")},itemsComponent:"cart-items-component[data-drawer]",closestContainer:"dialog.cart-drawer__dialog"},cartBubble:BUBBLE},horizon:{name:"Horizon",detect:function(){return has("tr[data-key]")&&has(".cart-items__title")},selectors:TABLE_SELECTORS,drawer:{selectors:"cart-drawer, [data-drawer], .cart-drawer, #cart-drawer",visibilityCheck:function(el){return el&&(el.offsetParent||el.hasAttribute("open")||el.classList.contains("active")||el.classList.contains("is-open"))},itemsComponent:"cart-items-component[data-drawer]",closestContainer:"cart-drawer, .cart-drawer"},cartBubble:BUBBLE},wonder:{name:"Wonder",detect:function(){return has(".wt-cart__item")||has(".wt-cart__list")},selectors:{cartItemRow:"li.wt-cart__item",title:".wt-cart__item__name a",image:"img.card__img",imageContainer:"picture.wt-cart__item__thumb",imageLink:"picture.wt-cart__item__thumb a.wt-cart__item__link",variants:".options",variantsWrapper:".wt-cart__item__data",unitPriceWrapper:".wt-cart__item__price-wrapper",price:"span.price.price--end",compareAtPrice:"s.cart-item__old-price",qtyInput:"input.js-counter-quantity",qtyButtons:".js-counter-button",removeButton:"cart-remove-button a, a.wt-cart__item__remove"},drawer:{selectors:"cart-drawer-items.wt-cart__drawer__items, .wt-cart__drawer__body",visibilityCheck:function(el){return el&&el.offsetParent!==null},itemsComponent:"cart-drawer-items.wt-cart__drawer__items",closestContainer:".wt-cart__drawer__body"},cartBubble:BUBBLE_WIDE},dawn:{name:"Dawn",detect:function(){var onCart=window.location.pathname.includes("/cart");return has("quantity-popover")||has("cart-remove-button")||has("cart-items")||onCart&&(has(".cart-item__name")||has(".cart-item__image-container"))},selectors:{cartItemRow:"tr.cart-item, .cart-item",title:".cart-item__name, a.cart-item__name",image:".cart-item__image",imageContainer:".cart-item__image-container",imageLink:"a.cart-item__link",variants:".product-option",variantsWrapper:".cart-item__details",unitPriceWrapper:".unit-price, .cart-item__totals",price:".price--end, .product-option",compareAtPrice:".price--end",qtyInput:"input.quantity__input",qtyButtons:".quantity__button",removeButton:"cart-remove-button a, .cart-remove-button a"},drawer:null,cartBubble:{count:'.cart-count-bubble span[aria-hidden="true"]',visuallyHidden:".cart-count-bubble .visually-hidden",container:".cart-count-bubble"}},supply:{name:"Supply",detect:function(){return(has("#CartDrawer.drawer, .drawer#CartDrawer")||has("[data-products]")||window.location.pathname.includes("/cart"))&&has(".cart__items, .cart__item")},selectors:{cartItemRow:".cart__item[data-key]",title:".cart__item-name",image:".cart__image img",imageContainer:".cart__image",imageLink:".cart__image a",variants:".cart__item--variants",variantsWrapper:".cart__item-details",unitPriceWrapper:".cart__item-price-col",price:".cart__price",compareAtPrice:".cart__price--strikethrough",qtyInput:"input.js-qty__num",qtyButtons:".js-qty__adjust",removeButton:".cart__remove a"},drawer:{selectors:"#CartDrawer.drawer--is-open, .drawer.drawer--is-open",visibilityCheck:function(el){return el&&el.classList.contains("drawer
1--is-open")},itemsComponent:".cart__items",closestContainer:"#CartDrawer, .drawer"},cartBubble:BUBBLE_WIDE},rebuy:{name:"Rebuy",detect:function(){return has("#rebuy-cart, .rebuy-cart")},selectors:{cartItemRow:"li.rebuy-cart__flyout-item",title:".rebuy-cart__flyout-item-product-title",image:".rebuy-cart__flyout-item-media img",imageContainer:".rebuy-cart__flyout-item-media",imageLink:".rebuy-cart__flyout-item-media a",variants:".rebuy-cart__flyout-item-discount-message",variantsWrapper:".rebuy-cart__flyout-item-info",unitPriceWrapper:".rebuy-cart__flyout-item-price",price:".rebuy-money.sale span:not(.sr-only)",compareAtPrice:".rebuy-money.compare-at span:not(.sr-only)",qtyInput:".rebuy-cart__flyout-item-quantity-widget-label",qtyButtons:".rebuy-cart__flyout-item-quantity-widget-button",removeButton:".rebuy-cart__flyout-item-remove"},drawer:{selectors:'#rebuy-cart.is-visible, #rebuy-cart[aria-hidden="false"], .rebuy-cart.is-visible',visibilityCheck:function(el){return el&&(el.classList.contains("is-visible")||el.getAttribute("aria-hidden")==="false")},itemsComponent:"ul[data-smartcart-items]",closestContainer:"#rebuy-cart, .rebuy-cart"},cartBubble:BUBBLE_WIDE},debut:{name:"Debut",detect:function(){return has('[data-section-type="cart-template"]')&&has(".list-view-item__title")},selectors:{cartItemRow:"tr.cart__row",title:".list-view-item__title a",image:"img.cart__image",imageContainer:".cart__image-wrapper",imageLink:".cart__image-wrapper a",variants:".cart__meta-text",variantsWrapper:".cart__meta",unitPriceWrapper:".cart__price-wrapper",price:"td.text-right.small--hide > div:not(.cart-item__original-price):not(.cart-item__discount)",compareAtPrice:".cart-item__original-price",qtyInput:"input.cart__qty-input",qtyButtons:".cart__qty-adjust",removeButton:"a.cart__remove"},drawer:null,cartBubble:{count:"#CartCount > span:first-child",visuallyHidden:"#CartCount .icon__fallback-text",container:"#CartCount"}},bls:{name:"BLS",detect:function(){return has(".bls-minicart-wrapper")&&has(".bls-items")},selectors:{cartItemRow:"div.cart-item",title:".bls-minicart-product-name a",image:".bls-minicart-product__image img",imageContainer:".bls-minicart-product__image",imageLink:".bls-minicart-product__image a",variants:".bls-minicart-item-variant",variantsWrapper:".bls-minicart-product-info",unitPriceWrapper:".bls-minicart-item-prices",price:".bls-minicart-item-price",compareAtPrice:".bls-minicart-item-original-price",qtyInput:"input.bls-quantity-input",qtyButtons:".quantity__button",removeButton:"mini-cart-remove-button a, .bls-minicart-item-remove a"},drawer:{selectors:".bls-minicart-wrapper",visibilityCheck:function(el){return el&&(el.offsetParent!==null||el.classList.contains("active")||el.classList.contains("is-open")||el.classList.contains("open"))},itemsComponent:".bls-items",closestContainer:".bls-minicart-wrapper"},cartBubble:BUBBLE_WIDE},eVoiCustom:{name:"eVoi Custom",detect:function(){return has("input.quantity__input")&&(has(".cart__row.cart__item")||has("#CartDrawer-CartItems")||has(".drawer__contents-items")||has('.drawer__inner[role="dialog"]'))},selectors:{cartItemRow:".cart__row.cart__item",title:".cart-item__name.cart__product-title",image:"img.cart__image",imageContainer:".cart__image-box",imageLink:".cart__image-wrapper a",variants:".product-option",variantsWrapper:".cart__product-information",unitPriceWrapper:".unit-price, .cart__final-price",price:".cart__final-price > div",compareAtPrice:"s.price--end",qtyInput:"input.quantity__input",qtyButtons:".quantity__button",removeButton:"cart-remove-button a"},drawer:{selectors:'.drawer__inner[role="dialog"]',visibilityCheck:function(el){return el&&el.offsetParent!==null},itemsComponent:"#CartDrawer-CartItems, .drawer__contents-items",closestContainer:".drawer__inner"},cartBubble:BUBBLE_WIDE},prestige:{name:"Prestige",detect:function(){return window.location.pathname.includes("/cart")&&has("form.cart-page")&&has("table.order-summary")&&has("line-item .line-item-info a.h6")&&has("input.quantity-selector__input[data-line-key]")||has(".cart-drawer__items line-item")&&has(".cart
1-drawer__items .line-item-info a.h6")&&has(".cart-drawer__items input.quantity-selector__input[data-line-key]")},selectors:{cartItemRow:":scope > tr, :scope > line-item",title:".line-item-info a.h6",image:"img.line-item__media, line-item img",imageContainer:".line-item__media",imageLink:".line-item-info a.h6",variants:'.line-item-info ul.v-stack[role="list"], .line-item-info ul.text-subdued',variantsWrapper:".line-item-info",unitPriceWrapper:"td.text-end, .line-item-info .price-list",price:"td.text-end, .price-list sale-price, sale-price",compareAtPrice:".price-list compare-at-price, compare-at-price",qtyInput:"input.quantity-selector__input[data-line-key]",qtyButtons:".quantity-selector__button",removeButton:'a[href*="/cart/change"][href*="quantity=0"], a.link.text-xs[aria-label^="Remove"]'},drawer:{selectors:"cart-drawer[open], cart-drawer.is-open, .cart-drawer[open], .cart-drawer.is-open, dialog.cart-drawer__dialog[open], .cart-drawer__content",visibilityCheck:function(el){return!!el&&(el.hasAttribute("open")||el.classList.contains("is-open")||el.classList.contains("active")||el.offsetParent!==null)},itemsComponent:".cart-drawer__items",closestContainer:"cart-drawer, .cart-drawer, dialog.cart-drawer__dialog, .cart-drawer__content"},cartBubble:BUBBLE_WIDE},stretch:{name:"Stretch",detect:function(){return(has("line-item")||has(".line-item"))&&(has("table.order-summary")||has("cart-drawer"))},selectors:{cartItemRow:"tr, line-item",title:'a.subheading[href*="/products/"]',image:"img",imageContainer:".line-item__media",imageLink:"a.line-item__media",variants:'ul[role="list"]',variantsWrapper:".line-item__info",unitPriceWrapper:".v-stack.justify-items-end",price:".line-item__line-price",compareAtPrice:".compare-at-price",qtyInput:"input.quantity-selector__input",qtyButtons:".quantity-selector__button",removeButton:".line-item__remove-button"},drawer:{selectors:"cart-drawer",visibilityCheck:function(el){return el&&(el.hasAttribute("open")||el.offsetParent!==null&&el.style.display!=="none")},itemsComponent:"line-item",closestContainer:"cart-drawer"},cartBubble:{count:".h7",visuallyHidden:".sr-only",container:"cart-drawer"}},swirl:{name:"Swirl",detect:function(){return has('#update-cart[role="dialog"]')&&has("table.cart-items")&&has("tr.cart-item")},selectors:{cartItemRow:"tr.cart-item",title:'a[href*="/products/"]',image:'img[src*="cdn.shopify.com"]',imageContainer:".relative.w-full",imageLink:'a[href*="/products/"]',variants:"dl, .product-option",variantsWrapper:"dl, .product-info-column-1",unitPriceWrapper:".price, .product-info-column-2",price:".price-sale, .price",compareAtPrice:"s.cap",qtyInput:'input.cart-qty, input[id^="cart-qty-"]',qtyButtons:'button[class*="quantity"]',removeButton:'button[class*="p-3"]'},drawer:{selectors:'#update-cart[role="dialog"]',visibilityCheck:function(el){return el&&(el.offsetParent!==null||el.style.display!=="none"&&el.getAttribute("aria-hidden")!=="true")},itemsComponent:"table.cart-items tbody",closestContainer:"#update-cart, #CartDrawer"},cartBubble:BUBBLE_WIDE},generic:{name:"Generic",detect:function(){return!0},selectors:{cartItemRow:"tr[data-key], li[data-key], div[data-key], tr.cart-item",title:'a[href*="/products/"]',image:'img[src*="cdn.shopify.com"]',imageContainer:".image-container, .media-container",imageLink:'a[href*="/products/"]',variants:"dl, .variant",variantsWrapper:".variants-wrapper, .product-options",unitPriceWrapper:".price-wrapper, .unit-price, .price",price:".price, .money, .cart-item-price, td.price",compareAtPrice:".compare-at-price, .was-price, s.cap",qtyInput:'input[type="number"]',qtyButtons:'button[name*="plus"], button[name*="minus"], .x-cart-item-quantity button',removeButton:'button[class*="remove"], a[class*="remove"], button[id*="remove"]'},drawer:{selectors:"cart-drawer, [data-drawer], .cart-drawer, #cart-drawer, #update-cart, dialog[open]",visibilityCheck:function(el){return el&&(el.offsetParent||el.hasAttribute("open")||el.classList.contains("active")||el.classList.contains("is-open")||el.getAttribute("x-show")&&el.style.display!=="none")}
1,itemsComponent:"cart-items-component[data-drawer]",closestContainer:"cart-drawer, .cart-drawer, dialog, #update-cart"},cartBubble:BUBBLE_WIDE}},detectionOrder:["tinker","horizon","prestige","stretch","swirl","wonder","eVoiCustom","dawn","supply","debut","bls","generic"]};const customConfig=window.awtomicCartExtrasConfig||{},debug=(...args)=>{console.log("[Awtomic Cart Rollup]",...args)},isRebuy=name=>name==="Rebuy"||name==="rebuy",isWonder=name=>name==="Wonder"||name==="wonder",isBls=name=>name==="BLS"||name==="bls",isSwirl=name=>name==="Swirl"||name==="swirl",isStretchLike=name=>name==="Stretch"||name==="Prestige",isDirectTheme=name=>isRebuy(name)||name==="Supply"||isWonder(name)||isBls(name)||name==="eVoi Custom",detectTheme=()=>{if(customConfig.theme&&typeof customConfig.theme=="object")return debug("Using custom theme:",customConfig.theme.name||"Custom"),{name:customConfig.theme.name||"Custom",detect:customConfig.theme.detect||(()=>!0),selectors:customConfig.theme.selectors||{},drawer:customConfig.theme.drawer??null,cartBubble:customConfig.theme.cartBubble||null};for(const key of themeDefinitions.detectionOrder){const theme=themeDefinitions.themes[key];if(theme?.detect?.())return debug(`Detected theme: ${theme.name}`),theme}return themeDefinitions.themes.generic||{name:"Fallback",detect:()=>!0,selectors:{},drawer:null,cartBubble:null}};let THEME=detectTheme();debug("=".repeat(60)),debug("CONSOLE VERSION \u2014 Debug Mode Always On"),debug("Version: 1.0.0"),debug("Theme:",THEME.name),debug("Custom Config:",customConfig.theme?"Yes":"No"),debug("Has Drawer:",THEME.drawer?"Yes":"No"),debug("=".repeat(60));const injectAntiFlickerCSS=()=>{const style=document.createElement("style");style.id="awtomic-cart-antiflicker",style.textContent=` 2 body:not(.awtomic-cart-processed) .cart__items:not(.awtomic-ready), 3 body:not(.awtomic-cart-processed) [data-products]:not(.awtomic-ready), 4 body:not(.awtomic-cart-processed) .rebuy-cart__flyout-items:not(.awtomic-ready), 5 body:not(.awtomic-cart-processed) .cart-items__table:not(.awtomic-ready), 6 body:not(.awtomic-cart-processed) cart-items-component[data-drawer]:not(.awtomic-ready), 7 body:not(.awtomic-cart-processed) .wt-cart__list:not(.awtomic-ready), 8 body:not(.awtomic-cart-processed) .bls-items:not(.awtomic-ready), 9 body:not(.awtomic-cart-processed) [data-section-type="cart-template"] table tbody:not(.awtomic-ready) { 10 visibility: hidden !important; 11 opacity: 0 !important; 12 } 13 `,document.head.appendChild(style);const permanent=document.createElement("style");permanent.id="awtomic-cart-rollup-styles",permanent.textContent=` 14 tbody.awtomic-original { display: none !important; } 15 tbody.awtomic-processed { display: table-row-group !important; } 16 .rebuy-cart__flyout-item-subscription { display: none !important; } 17 line-item[data-awtomic-hidden] { display: none !important; } 18 tr[data-awtomic-hidden] { display: none !important; } 19 [data-awtomic-bundle] .cart-item__quantity button:last-of-type { visibility: hidden !important; pointer-events: none !important; } 20 [data-awtomic-bundle] button[class*="remove"] { display: none !important; } 21 `,document.head.appendChild(permanent)},removeAntiFlickerCSS=()=>{document.body.classList.add("awtomic-cart-processed"),setTimeout(()=>{const style=document.getElementById("awtomic-cart-antiflicker");style&&style.remove()},1e3)};injectAntiFlickerCSS();let isProcessing=!1,lastProcessedTime=0,observers={drawer:null,rebuy:null};const productCache=new Map,lastCartData={page:null,drawer:null,rebuy:null},rollupAlreadyDone={page:!1,drawer:!1,rebuy:!1},fetchCartData=async()=>{try{const response=await fetch("/cart.js");if(!response.ok)throw new Error(`Cart fetch failed: ${response.status}`);return await response.json()}catch{return null}},fetchBundleProductData=async(bundleHandle,variantId)=>{const cacheKey=`${bundleHandle}:${variantId}`;if(productCache.has(cacheKey))return productCache.get(cacheKey);try{const response=await fetch(`/products/${bundleHandle}.js`);if(!response.ok)throw new Error(`Product fetch failed: ${response.status}`);const productData=await response.json(),result={product:productData,variant:productData.variants.find(v=>v.id.toString()===variantId.split("/").pop())};return productCache.set(cacheKey,result),result}catch{return null}},groupBundleItems=cartData=>cartData?.items?cartData.items.reduce((groups,item)=>{const bundleId=item.properties?._bundleUid;return bundleId&&(groups[bundleId]||(groups[bundleId]={items:[],properties:item.properties}),groups[bundleId].items.push(item)),groups},{}):{},getCartContext=()=>{debug("getCartContext() called");const contexts=[],rebuyCart=document.querySelector("#rebuy-cart, .rebuy-cart");rebuyCart&&(contexts.push({type:"rebuy",container:rebuyCart,theme:"rebuy"}),debug("Found Rebuy cart"));const drawerConfig=THEME.drawer;if(debug("Checking for drawer, drawerConfig:",drawerConfig),drawerConfig&&!isRebuy(THEME.name)){const drawer=document.querySelector(drawerConfig.selectors);if(debug("Drawer element:",drawer),debug("Drawer visibility check:",drawer?drawerConfig.visibilityCheck(drawer):"no drawer"),drawer&&drawerConfig.visibilityCheck(drawer))contexts.push({type:"drawer",container:drawer,theme:THEME.name}),debug(`Found ${THEME.name} drawer cart`);else{const drawerCartItems=document.querySelector(drawerConfig.itemsComponent);if(debug("Drawer cart items:",drawerCartItems),debug("Drawer cart items offsetParent:",drawerCartItems?.offsetParent),drawerCartItems?.offsetParent||drawerCartItems?.querySelector("line-item")){const closestDrawer=drawerCartItems.closest(drawerConfig.closestContainer);contexts.push({type:"drawer",container:closestDrawer||drawerCartItems,theme:THEME.name}),debug(`Found ${THEME.name} drawer cart (via items component)`)}}}debug("Checking for cart page, pathname:",window.location.pathname);const isCartPage=window.location.pathname.includes("/cart")||document.querySelector(".cart-page, [data-cart-page], main.cart, cart-items");return debug("isCartPage:",isCartPage),debug("THEME.name:",THEME.name),isCartPage&&!isRebuy(THEME.name)&&(contexts.push({type:"page",container:document,theme:THEME.name}
21),debug("Found cart page")),debug("Final contexts:",contexts),contexts.length>0?contexts:null},findAndMatchCartItems=(cartData,tbody,selectors,themeName)=>{const effectiveSelectors=selectors||THEME.selectors,effectiveTheme=themeName||THEME.name,matchedCartItemIndices=new Set;let rows=Array.from(tbody.querySelectorAll(effectiveSelectors.cartItemRow));return rows.length===0&&tbody.tagName==="TBODY"&&(rows=Array.from(tbody.querySelectorAll(":scope > tr"))),rows.map(row=>{let cartItem,cartItemIndex=-1;if(row.dataset.key&&(cartItemIndex=cartData.items.findIndex(item=>item.key===row.dataset.key),cartItemIndex!==-1&&(cartItem=cartData.items[cartItemIndex])),!cartItem&&isStretchLike(effectiveTheme)){const keyInput=row.querySelector("input[data-line-key]");keyInput?.dataset.lineKey&&(cartItemIndex=cartData.items.findIndex((item,idx)=>!matchedCartItemIndices.has(idx)&&item.key===keyInput.dataset.lineKey),cartItemIndex!==-1&&(cartItem=cartData.items[cartItemIndex]))}if(!cartItem){const keyInput=row.querySelector("input[data-key]");keyInput?.dataset.key&&(cartItemIndex=cartData.items.findIndex((item,idx)=>!matchedCartItemIndices.has(idx)&&item.key===keyInput.dataset.key),cartItemIndex!==-1&&(cartItem=cartData.items[cartItemIndex]))}if(!cartItem&&isRebuy(effectiveTheme)){const classList=Array.from(row.classList),bundleUidClass=classList.find(c=>c.startsWith("property-_bundleuid:"));if(bundleUidClass){const bundleUidFromClass=bundleUidClass.split(":")[1];cartItemIndex=cartData.items.findIndex((item,idx)=>!matchedCartItemIndices.has(idx)&&item.properties?._bundleUid?.replace(/-/g,"")===bundleUidFromClass),cartItemIndex!==-1&&(cartItem=cartData.items[cartItemIndex])}if(!cartItem){const productClass=classList.find(c=>c.startsWith("product-")&&!c.startsWith("product-id-"));if(productClass){const handle=productClass.replace("product-","");cartItemIndex=cartData.items.findIndex((item,idx)=>!matchedCartItemIndices.has(idx)&&item.handle===handle),cartItemIndex!==-1&&(cartItem=cartData.items[cartItemIndex])}}}else if(!cartItem&&effectiveTheme==="Debut"){const inputId=row.querySelector("input.cart__qty-input")?.id;if(inputId?.startsWith("updates_")){const key=inputId.replace("updates_","");cartItemIndex=cartData.items.findIndex((item,idx)=>!matchedCartItemIndices.has(idx)&&item.key===key),cartItemIndex!==-1&&(cartItem=cartData.items[cartItemIndex])}}else if(!cartItem&&effectiveTheme==="Swirl"){const inputId=row.querySelector("input.cart-qty")?.id;if(inputId?.startsWith("cart-qty-")){const key=inputId.replace("cart-qty-","");key.includes(":")&&(debug("Swirl: extracted key from input id:",key),cartItemIndex=cartData.items.findIndex((item,idx)=>!matchedCartItemIndices.has(idx)&&item.key===key),cartItemIndex!==-1&&(cartItem=cartData.items[cartItemIndex],debug("Swirl: matched cart item:",cartItem.title)))}}else if(!cartItem){const inputId=row.querySelector('input[id^="cart-qty-"]')?.id;if(inputId?.startsWith("cart-qty-")){const key=inputId.replace("cart-qty-","");debug("Generic drawer: extracted key from input id:",key),cartItemIndex=cartData.items.findIndex((item,idx)=>!matchedCartItemIndices.has(idx)&&item.key===key),cartItemIndex!==-1&&(cartItem=cartData.items[cartItemIndex],debug("Generic drawer: matched cart item:",cartItem.title))}}if(!cartItem&&isBls(effectiveTheme)){const blsId=row.id;if(blsId?.startsWith("bls-minicart-product-")){const key=blsId.replace("bls-minicart-product-","");cartItemIndex=cartData.items.findIndex((item,idx)=>!matchedCartItemIndices.has(idx)&&item.key===key),cartItemIndex!==-1&&(cartItem=cartData.items[cartItemIndex])}}else if(!cartItem){const idMatch=row.id?.match(/Cart(?:Drawer-)?Item-(\d+)/);if(idMatch){const index=parseInt(idMatch[1])-1;cartItem=cartData.items[index],cartItemIndex=index}}return cartItemIndex!==-1&&matchedCartItemIndices.add(cartItemIndex),cartItem?{row,cartItem}:null}).filter(Boolean)},formatPrice=cents=>
21{if(typeof window<"u"&&window.Shopify&&typeof window.Shopify.formatMoney=="function")try{return window.Shopify.formatMoney(cents)}catch{}return`$${(cents/100).toFixed(2)}`},onDocReady=fn=>document.readyState==="loading"?document.addEventListener("DOMContentLoaded",fn):fn(),updateElement=(element,props)=>element&&Object.assign(element,props),setStyles=(element,styles)=>element&&Object.assign(element.style,styles),queryInRow=(row,selector,selectors)=>{const effectiveSelectors=selectors||THEME.selectors;return row.querySelector(effectiveSelectors[selector])},createBundleSubitem=item=>{const subitem=document.createElement("div");if(subitem.className="bundle-subitem",subitem.style.cssText="display: flex; align-items: flex-start; margin-bottom: 8px;",item.image){const imgContainer=document.createElement("div");imgContainer.style.cssText="margin-right: 10px; display: flex; margin-top: 15px; overflow: hidden; max-width: 40px; width: 40px; min-width: 40px; justify-content: center;";const img=Object.assign(document.createElement("img"),{src:item.image,alt:item.product_title});img.style.cssText="width: auto; height: 45px; object-fit: contain;",imgContainer.appendChild(img),subitem.appendChild(imgContainer)}const details=document.createElement("div");details.className="bundle-subitem-details",details.style.cssText="flex: 1; font-size: 0.875em; line-height: 1.4;";const titleDiv=document.createElement("div");if(titleDiv.style.cssText="font-weight: 500;",titleDiv.textContent=item.product_title,details.appendChild(titleDiv),item.variant_title&&item.variant_title!=="Default Title"){const variantDiv=document.createElement("div");variantDiv.style.cssText="color: #6b7280; font-size: 0.9em;",variantDiv.textContent=item.variant_title,details.appendChild(variantDiv)}const qtyDiv=document.createElement("div");return qtyDiv.style.cssText="color: #6b7280; font-size: 0.9em; margin-top: 2px;",qtyDiv.textContent=`Qty: ${item.quantity}`,details.appendChild(qtyDiv),subitem.appendChild(details),subitem},updateBundlePrices=(bundleRow,items,selectors,themeName)=>{const effectiveTheme=themeName||THEME.name,effectiveSelectors=selectors||THEME.selectors,totalPrice=items.reduce((sum,item)=>sum+item.final_line_price,0),totalOriginalPrice=items.reduce((sum,item)=>sum+item.original_line_price,0);debug(`updateBundlePrices: totalPrice=${formatPrice(totalPrice)}, totalOriginalPrice=${formatPrice(totalOriginalPrice)}`);let priceEl=queryInRow(bundleRow,"price",effectiveSelectors);priceEl||(priceEl=bundleRow.querySelector('td.total strong, td.total, [class*="total"] strong, [class*="price"] strong, .cart-item-price, .price span:not(.compare-at-price):not(.price-sale)')),debug("updateBundlePrices: priceEl=",priceEl,`selector="${effectiveSelectors.price}"`),bundleRow.querySelectorAll(".cart-item-price, .price").forEach(el=>{if(el.closest(".compare-at-price, s.cap"))return;const saleSpan=el.querySelector(".price-sale, span.price-sale, span:not(.compare-at-price):not(s)");saleSpan?(saleSpan.textContent=formatPrice(totalPrice),debug(`updateBundlePrices: updated sale span to ${formatPrice(totalPrice)}`)):el.querySelector("span, s")||(el.textContent=formatPrice(totalPrice),debug(`updateBundlePrices: updated price element to ${formatPrice(totalPrice)}`))});const unitPriceWrapper=queryInRow(bundleRow,"unitPriceWrapper",effectiveSelectors);if(debug("updateBundlePrices: unitPriceWrapper=",unitPriceWrapper),unitPriceWrapper){const priceElInsideWrapper=priceEl&&unitPriceWrapper.contains(priceEl);if(debug(`updateBundlePrices: priceEl inside unitPriceWrapper=${priceElInsideWrapper}`),priceElInsideWrapper)updateElement(priceEl,{textContent:formatPrice(totalPrice)}),debug(`updateBundlePrices: updated priceEl directly to ${formatPrice(totalPrice)}`);else{const spanEl=unitPriceWrapper.querySelector("span:not(.visually-hidden):not(.compare-at-price):not(s)");debug("updateBundlePrices: fallback spanEl=",spanEl),spanEl&&updateElement(spanEl,{textContent:formatPrice(totalPrice)})}const compareAtEl=unitPriceWrapper.querySelector(effectiveSelectors.compareAtPrice);debug("updateBundlePrices: compareAtEl=",compareAtEl,`selector="${effectiveSelectors.compareAtPrice}"`);const compareAtContainer=compareAtEl&&(compareAtEl.parentElement!==unitPriceWrapper?compareAtEl.parentElement:compareAtEl);
21debug("updateBundlePrices: compareAtContainer=",compareAtContainer),compareAtEl&&compareAtContainer&&(totalOriginalPrice>totalPrice?(compareAtEl.textContent=formatPrice(totalOriginalPrice),compareAtContainer.style.display="",debug(`updateBundlePrices: showed compareAt ${formatPrice(totalOriginalPrice)}`)):(compareAtContainer.style.display="none",debug("updateBundlePrices: hid compareAt (no discount)")))}priceEl&&(!unitPriceWrapper||!unitPriceWrapper.contains(priceEl))&&(updateElement(priceEl,{textContent:formatPrice(totalPrice)}),debug(`updateBundlePrices: updated outer priceEl to ${formatPrice(totalPrice)}`));const priceCell=priceEl&&(priceEl.closest("td")||priceEl.parentElement);if(priceCell){const compareEl=priceCell.querySelector(effectiveSelectors.compareAtPrice);if(compareEl)if(totalOriginalPrice>totalPrice){const sTag=compareEl.querySelector("s");sTag?sTag.textContent=formatPrice(totalOriginalPrice):compareEl.textContent=formatPrice(totalOriginalPrice),compareEl.style.display=""}else compareEl.style.display="none"}if(effectiveTheme==="Prestige"){const totalCell=bundleRow.querySelector("td.text-end");totalCell&&(totalCell.textContent=formatPrice(totalPrice))}},disableBundleQuantityControls=(bundleRow,themeName,selectors)=>{const effectiveTheme=themeName||THEME.name,effectiveSelectors=selectors||THEME.selectors,qtyElements=Array.from(bundleRow.querySelectorAll(effectiveSelectors.qtyInput));isRebuy(effectiveTheme)?qtyElements.forEach(qtyElement=>{const textNodes=Array.from(qtyElement.childNodes).filter(node=>node.nodeType===Node.TEXT_NODE);textNodes.length>0&&(textNodes[0].textContent=" 1 ")}):qtyElements.forEach(qtyElement=>{updateElement(qtyElement,{value:"1",readOnly:!0,disabled:!0})}),bundleRow.querySelectorAll(effectiveSelectors.qtyButtons).forEach(btn=>setStyles(btn,{visibility:"hidden",opacity:"0",pointerEvents:"none"})),bundleRow.querySelectorAll(".x-cart-item-quantity button, .quantity button").forEach(btn=>setStyles(btn,{visibility:"hidden",opacity:"0",pointerEvents:"none"}))},setupRemoveButton=(bundleRow,bundleId,selectors,themeName)=>{const effectiveSelectors=selectors||THEME.selectors,effectiveTheme=themeName||THEME.name;let removeButtons=[];if(effectiveTheme==="eVoi Custom"){const minusBtn=bundleRow.querySelector("button.qtyminus");minusBtn&&(removeButtons=[minusBtn],setStyles(minusBtn,{visibility:"visible",opacity:"1",pointerEvents:"auto"}))}else removeButtons=Array.from(bundleRow.querySelectorAll(effectiveSelectors.removeButton)),removeButtons.length===0&&(removeButtons=Array.from(bundleRow.querySelectorAll("button")).filter(btn=>{const text=btn.textContent.trim();return text==="\xD7"||text==="\u2715"||text==="x"||text.toLowerCase().includes("remove")}));if(removeButtons.length===0)return;bundleRow.querySelectorAll("cart-remove-button, mini-cart-remove-button").forEach(crb=>{const plain=document.createElement("span");for(plain.className=crb.className,crb.id&&(plain.id=crb.id);crb.firstChild;)plain.appendChild(crb.firstChild);crb.parentNode.replaceChild(plain,crb)});const handleRemoveClick=async e=>{e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),setStyles(bundleRow,{opacity:"0.6",pointerEvents:"none"});try{const updates={};if((await(await fetch("/cart.js")).json()).items.forEach(item=>{item.properties?._bundleUid===bundleId&&(updates[item.key]=0)}),(await fetch("/cart/update.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({updates})})).ok){bundleRow.remove();const updatedCartData=await fetchCartData();updatedCartData&&(updateCartBubble(updatedCartData),lastCartData.page=updatedCartData,lastCartData.drawer=updatedCartData,lastCartData.rebuy=updatedCartData)}else setStyles(bundleRow,{opacity:"",pointerEvents:""})}catch{setStyles(bundleRow,{opacity:"",pointerEvents:""})}};removeButtons.forEach(removeButton=>{if(effectiveTheme==="eVoi Custom"&&removeButton.classList.contains("qtyminus")){const trashBtn=bundleRow.querySelector(".quantity__button.qtyremove");trashBtn&&setStyles(trashBtn,{display:"none"}),removeButton.addEventListener("click",handleRemoveClick)}else{const wrapper=document.createElement("div"),wrapperStyles=isRebuy(effectiveTheme)?{display:"inline-block",cursor:"pointer",position:"absolute",top:"0",right:"0",width:"20px",height:"20px"}:{display:"inline-block",cursor:"pointer"};setStyles(wrapper,wrapperStyles),removeButton.parentNode.insertBefore(wrapper,removeButton),wrapper.appendChild(removeButton),removeButton.href="#",setStyles(removeButton,{pointerEvents:"none"}),wrapper.addEventListener("click",handleRemoveClick)}})},updateBundleImage=(bundleRow,product,themeName,selectors)=>{const effectiveSelectors=selectors||THEME.selectors,imageContainer=queryInRow(bundleRow,"imageContainer",effectiveSelectors);if(!imageContainer)return;const productImage=product?.featured_image||product?.images?.[0]?.src;if(productImage){const img=imageContainer.querySelector("img");img&&(img.src=productImage,img.alt=product.title||"");const link=imageContainer.querySelector("a");link&&product.handle&&(link.href=`/products/${product.handle}`)}else imageContainer.style.visibility="hidden"},addVariantAndSubscription=(variantsWrapper,variant,subscription)=>
21{if(!variantsWrapper||!variant)return;const existingPropertyLists=Array.from(variantsWrapper.querySelectorAll("ul.list-unstyled"));if(variant.title&&variant.title!=="Default Title"){const variantDiv=Object.assign(document.createElement("div"),{className:"cart-items__variant",textContent:variant.title});setStyles(variantDiv,{margin:"5px 0",display:"block"}),variantsWrapper.insertBefore(variantDiv,variantsWrapper.firstChild)}if(subscription?.selling_plan&&!existingPropertyLists.find(ul=>ul.textContent.includes(subscription.selling_plan.name))){const planList=Object.assign(document.createElement("ul"),{className:"list-unstyled"}),planItem=document.createElement("li");planItem.textContent=subscription.selling_plan.name,planList.appendChild(planItem),planList.setAttribute("role","list"),(existingPropertyLists[existingPropertyLists.length-1]||variantsWrapper).parentNode.insertBefore(planList,existingPropertyLists[existingPropertyLists.length-1]?.nextSibling||null)}},updateCartBubble=cartData=>{const bundleGroups=groupBundleItems(cartData),bundleItemKeys=new Set(Object.values(bundleGroups).flatMap(g=>g.items.map(i=>i.key))),bundleCount=Object.keys(bundleGroups).length,standaloneCount=cartData.items.filter(i=>!bundleItemKeys.has(i.key)).reduce((sum,item)=>sum+(item.quantity||0),0),totalCount=bundleCount+standaloneCount;debug(`Updating cart bubble: ${totalCount} visible items (${bundleCount} bundles + ${standaloneCount} standalone)`);const bubbleConfig=THEME.cartBubble;if(bubbleConfig){const containers=document.querySelectorAll(bubbleConfig.container);document.querySelectorAll(bubbleConfig.count).forEach(el=>{el.textContent=totalCount}),containers.forEach(container=>{container.querySelectorAll(bubbleConfig.visuallyHidden).forEach(el=>{el.textContent=THEME.name==="Dawn"?`${totalCount} items`:`Total items in cart: ${totalCount}`})}),containers.forEach(el=>{el.classList.add("awtomic-ready")})}},createBundleRows=async(bundleGroups,matches,themeName,selectors)=>{const effectiveTheme=themeName||THEME.name,effectiveSelectors=selectors||THEME.selectors;console.log(`[DEBUG] createBundleRows called with ${matches.length} matches`),console.log("[DEBUG] All matches:",matches.map(m=>({key:m.cartItem.key,title:m.cartItem.product_title,price:m.cartItem.final_line_price,bundleUid:m.cartItem.properties?._bundleUid})));for(const[bundleId,group]of Object.entries(bundleGroups)){console.log(`[DEBUG] Processing bundle ${bundleId} with ${group.items.length} items`),console.log("[DEBUG] Bundle properties:",group.properties);let containerSelector="tbody";isRebuy(effectiveTheme)?containerSelector="ul[data-smartcart-items]":effectiveTheme==="Supply"?containerSelector=".cart__items":isWonder(effectiveTheme)?containerSelector="ul.wt-cart__list":isBls(effectiveTheme)?containerSelector=".bls-items":isStretchLike(effectiveTheme)?containerSelector=".cart-drawer__items, .cart-drawer__content, .section-stack, tbody":effectiveTheme==="eVoi Custom"?containerSelector=".cart__row.cart__item":effectiveTheme==="Swirl"&&(containerSelector="table.cart-items tbody");let itemSelector=`[data-bundle-id="${bundleId}"]`;if(isRebuy(effectiveTheme)?itemSelector=`li[data-bundle-id="${bundleId}"]`:effectiveTheme==="Supply"?itemSelector=`.cart__item[data-bundle-id="${bundleId}"]`:isStretchLike(effectiveTheme)?itemSelector=`line-item[data-bundle-id="${bundleId}"], tr[data-bundle-id="${bundleId}"]`:effectiveTheme==="eVoi Custom"?itemSelector=`.cart__row.cart__item[data-bundle-id="${bundleId}"]`:effectiveTheme==="Swirl"&&(itemSelector=`tr.cart-item[data-bundle-id="${bundleId}"]`),matches[0]?.row.closest(containerSelector)?.querySelector(itemSelector))continue;const bundleProductData=group.properties._bundleHandle&&group.properties._variantId?await fetchBundleProductData(group.properties._bundleHandle,group.properties._variantId):null,firstMatch=matches.find(m=>m.cartItem.key===group.items[0].key);if(!firstMatch)continue;const bundleRow=isRebuy(effectiveTheme)?firstMatch.row:firstMatch.row.cloneNode(!0);Object.assign(bundleRow.dataset,{bundleId,bundleHandle:group.properties._bundleHandle,awtomicBundle:"true",key:`bundle-${bundleId}`});const oldVariants=bundleRow.querySelector(effectiveSelectors.variants);if(oldVariants&&effectiveTheme!=="eVoi Custom"&&oldVariants.remove(),bundleRow.querySelectorAll("ul.list-unstyled").forEach(el=>el.remove()),bundleRow.querySelectorAll('ul[role="list"]:not(.unstyled-list)').forEach(el=>el.remove()),isRebuy(effectiveTheme)){const propsEl=bundleRow.querySelector(".rebuy-cart__flyout-item-properties");propsEl&&(propsEl.style.display="none")}const product=bundleProductData?.product||null,variant=bundleProductData?.variant||null,bundleTitle=product?.title||group.properties.bundle||(group.properties._bundleName?group.properties._bundleName.split("-").map(w=>w.charAt(0).toUpperCase()+w.slice(1)).join(" "):"Bundle"),bundleUrl=product?`/products/${product.handle}${variant?`?variant=${variant.id}`:""}`:group.properties._bundleHandle?`/products/${group.properties._bundleHandle}`:null,allTitleLinks=bundleRow.querySelectorAll(effectiveSelectors.title);let titleEl=null;for(const link of allTitleLinks)if(!link.querySelector("img")){titleEl=link;break}if(!titleEl&&allTitleLinks.length>0&&(titleEl=allTitleLinks[0]),titleEl){titleEl.textContent=bundleTitle,bundleUrl&&(titleEl.href=bundleUrl);const titleCell=titleEl.closest("td, div, li")||titleEl.parentElement;titleCell&&titleCell.querySelectorAll('a[href*="/products/"]').forEach(link=>{link!==titleEl&&(link.querySelector("img")?link.querySelectorAll("img").forEach(img=>{img.style.visibility="hidden"}):link.remove())})}let bundleContainerImage=null;const bundleContainerMatch=matches.find(m=>m.cartItem.properties&&m.cartItem.properties._bundleUid===bundleId&&!group.items.find(item=>item.key===m.cartItem.key));if(bundleContainerMatch){const containerImgEl=bundleContainerMatch.row.querySelector(effectiveSelectors.image);containerImgEl&&containerImgEl.src&&(bundleContainerImage=containerImgEl.src)}if(bundleContainerImage){const imgEl=bundleRow.querySelector(effectiveSelectors.image);imgEl&&(imgEl.src=bundleContainerImage,imgEl.alt=bundleTitle)}else updateBundleImage(bundleRow,product,effectiveTheme,effectiveSelectors);const variantsWrapper=bundleRow.querySelector(effectiveSelectors.variantsWrapper);let titleWrapper=null;titleEl&&!variantsWrapper&&(titleWrapper=document.createElement("div"),titleWrapper.style.cssText="display: inline-block; vertical-align: top;",titleEl.parentNode.insertBefore(titleWrapper,titleEl),titleWrapper.appendChild(titleEl));let subitemsTarget=variantsWrapper||titleWrapper||titleEl&&(titleEl.closest("td, div, li")||titleEl.parentElement);if(effectiveTheme==="eVoi Custom"){const productInfo=bundleRow.querySelector(".cart__product-information");if(productInfo){const bottomSection=productInfo.querySelector(".cart__information-td.cart__information--bottom");if(bottomSection){const subitemsContainer=Object.assign(document.createElement("div"),{className:"bundle-subitems"});
21setStyles(subitemsContainer,{marginTop:"15px"}),group.items.forEach(item=>subitemsContainer.appendChild(createBundleSubitem(item))),productInfo.insertBefore(subitemsContainer,bottomSection)}}}else if(variantsWrapper&&variant){if(addVariantAndSubscription(variantsWrapper,variant,bundleRow.dataset.awtomicBundle?null:group.items[0].selling_plan_allocation),subitemsTarget){const subitemsContainer=Object.assign(document.createElement("div"),{className:"bundle-subitems"});setStyles(subitemsContainer,{marginTop:"15px"}),group.items.forEach(item=>subitemsContainer.appendChild(createBundleSubitem(item))),subitemsTarget.appendChild(subitemsContainer)}}else if(subitemsTarget){const subitemsContainer=Object.assign(document.createElement("div"),{className:"bundle-subitems"});setStyles(subitemsContainer,{marginTop:"15px"}),group.items.forEach(item=>subitemsContainer.appendChild(createBundleSubitem(item))),subitemsTarget.appendChild(subitemsContainer)}updateBundlePrices(bundleRow,group.items,effectiveSelectors,effectiveTheme),disableBundleQuantityControls(bundleRow,effectiveTheme,effectiveSelectors),setupRemoveButton(bundleRow,bundleId,effectiveSelectors,effectiveTheme),isRebuy(effectiveTheme)||firstMatch.row.parentNode.insertBefore(bundleRow,firstMatch.row);const bundleItemKeys=group.items.map(item=>item.key);console.log(`[DEBUG] Bundle ${bundleId} - Bundle item keys:`,bundleItemKeys);let containerVariantId=null;if(group.properties._variantId){const vid=String(group.properties._variantId);containerVariantId=vid.includes("ProductVariant/")?vid.split("ProductVariant/")[1]:vid}console.log(`[DEBUG] Bundle ${bundleId} - Container variant ID (extracted):`,containerVariantId,`(original: ${group.properties._variantId})`),matches.forEach(match=>{const isBundleItem=bundleItemKeys.includes(match.cartItem.key),itemVariantId=match.cartItem.key.split(":")[0],isBundleContainer=containerVariantId&&itemVariantId===containerVariantId&&match.cartItem.final_line_price===0&&!isBundleItem;if(console.log(`[DEBUG] Checking match for bundle ${bundleId}:`,{key:match.cartItem.key,itemVariantId,containerVariantId,title:match.cartItem.product_title,price:match.cartItem.final_line_price,hasUid:!!match.cartItem.properties?._bundleUid,uid:match.cartItem.properties?._bundleUid,uidMatches:match.cartItem.properties?._bundleUid===bundleId,variantIdMatches:itemVariantId===containerVariantId,isBundleItem,isBundleContainer,shouldHide:isBundleItem||isBundleContainer}),isBundleItem||isBundleContainer){if(isRebuy(effectiveTheme)&&match.row===firstMatch.row)return;match.row.style.setProperty("display","none","important"),match.row.dataset.awtomicHidden="true";const content=match.row.querySelector(".line-item__info-with-line-price");content&&content.style.setProperty("display","none","important"),isBundleContainer&&debug(`Hidden bundle container product for bundle ${bundleId}`)}})}},analyzeCart=async()=>{if(!(isProcessing||Date.now()-lastProcessedTime<1500))try{const newTheme=detectTheme();newTheme.name!==THEME.name&&(debug(`Theme changed from ${THEME.name} to ${newTheme.name}`),THEME=newTheme);const contexts=getCartContext();if(!contexts){debug("No cart contexts found"),removeAntiFlickerCSS();return}debug("Fetching cart data...");const cartData=await fetchCartData();if(debug("Cart data fetched:",cartData?`${cartData.items.length} items`:"null"),!cartData){debug("No cart data returned"),removeAntiFlickerCSS();return}debug(`Found ${contexts.length} cart context(s) to process`);for(const context of contexts){if(debug(`Analyzing ${context.type} cart (${context.theme}) with ${cartData.items.length} items`),rollupAlreadyDone[context.type]){debug(`Rollup already done for ${context.type} cart, skipping`);continue}await processCartContext(context,cartData)}updateCartBubble(cartData),removeAntiFlickerCSS()}catch(error){console.error("[Awtomic Cart Rollup] Error in analyzeCart:",error),removeAntiFlickerCSS()}},processCartContext=async(context,cartData)=>{const contextType=context.type;if(lastCartData[contextType]?.items.length===cartData.items.length&&lastCartData[contextType].items.every((item,i)=>{const newItem=cartData.items[i];return newItem&&item.key===newItem.key&&item.quantity===newItem.quantity})){debug(`Cart data unchanged for ${contextType}, skipping`);return}lastCartData[contextType]=cartData,isProcessing=!0,lastProcessedTime=Date.now();let itemsContainer,originalContainer;try{const contextTheme=context.theme,themeSelectors=isRebuy(contextTheme)?themeDefinitions.themes.rebuy.selectors:THEME.selectors;if(isRebuy(contextTheme))itemsContainer=context.container.querySelector("ul[data-smartcart-items], .rebuy-cart__flyout-items"),originalContainer=itemsContainer,debug(`Rebuy container found: ${!!originalContainer}`);else if(isBls(contextTheme))itemsContainer=(context.type==="drawer"?context.container:document).querySelector(".bls-items"),originalContainer=itemsContainer,debug(`BLS container found: ${!!originalContainer}`,originalContainer);else if(contextTheme==="Supply"){if(context.type==="drawer")itemsContainer=context.container.querySelector(".cart__items");else{const dataProductsContainers=document.querySelectorAll("[data-products]");
21for(const container of dataProductsContainers)if(container.querySelector(".cart__item")){itemsContainer=container;break}itemsContainer||(itemsContainer=document.querySelector("[data-products], .cart__items"))}originalContainer=itemsContainer,debug(`Supply container found: ${!!originalContainer}`,originalContainer)}else if(isWonder(contextTheme))itemsContainer=(context.type==="drawer"?context.container:document).querySelector("ul.wt-cart__list"),originalContainer=itemsContainer,debug(`Wonder container found: ${!!originalContainer}`,originalContainer);else if(contextTheme==="eVoi Custom"){const searchRoot=context.type==="drawer"?context.container:document;if(context.type==="drawer")itemsContainer=searchRoot.querySelector("#CartDrawer-CartItems, .drawer__contents-items");else if(itemsContainer=searchRoot.querySelector(".cart__items"),itemsContainer||(itemsContainer=searchRoot.querySelector(".cart-items")),itemsContainer||(itemsContainer=searchRoot.querySelector('form[action*="/cart"]')),!itemsContainer){const firstItem=searchRoot.querySelector(".cart__row.cart__item");firstItem&&(itemsContainer=firstItem.closest(".cart-form, .cart-wrapper, .cart-content, div[data-cart], form")||firstItem.parentElement)}originalContainer=itemsContainer,debug(`eVoi Custom container found: ${!!originalContainer}`,originalContainer)}else if(isStretchLike(contextTheme)){const searchRoot=context.type==="drawer"?context.container:document;if(context.type==="drawer"){let lineItemsParent=searchRoot.querySelector(".cart-drawer__items");if(!lineItemsParent){const possibleContainers=searchRoot.querySelectorAll('[class*="v-stack"]');for(const container of possibleContainers)if(container.querySelectorAll(":scope > line-item:not([data-bundle-id])").length>0){lineItemsParent=container;break}}originalContainer=lineItemsParent||searchRoot,itemsContainer=originalContainer.parentElement||searchRoot}else{let cartTable=searchRoot.querySelector("table.order-summary");cartTable||(cartTable=searchRoot.querySelector('form[action*="/cart"] table')),originalContainer=cartTable?.querySelector("tbody"),itemsContainer=cartTable}debug(`${contextTheme} container found: ${!!originalContainer}`,originalContainer)}else{const searchRoot=context.type==="drawer"?context.container:document;let cartTable=searchRoot.querySelector(".cart-items__table, table.cart-items");cartTable||(cartTable=searchRoot.querySelector('form[action*="/cart"] table')),originalContainer=cartTable?.querySelector("tbody"),itemsContainer=cartTable}if(!originalContainer){debug(`No original container found for ${contextTheme} cart`);return}isDirectTheme(contextTheme)||(itemsContainer&&itemsContainer.classList.add("awtomic-ready"),originalContainer&&originalContainer!==itemsContainer&&originalContainer.classList.add("awtomic-ready"));const bundleGroups=groupBundleItems(cartData),bundleGroupCount=Object.keys(bundleGroups).length;if(bundleGroupCount>0){debug(`Found ${bundleGroupCount} bundle group(s):`,Object.keys(bundleGroups));const bundleItemKeys=new Set(Object.values(bundleGroups).flatMap(g=>g.items.map(i=>i.key))),bundleUids=Object.keys(bundleGroups);debug(`Bundle item keys from cart API (${bundleItemKeys.size}):`,Array.from(bundleItemKeys).slice(0,5));let allRows=Array.from(originalContainer.querySelectorAll(themeSelectors.cartItemRow));allRows.length===0&&originalContainer.tagName==="TBODY"&&(allRows=Array.from(originalContainer.querySelectorAll(":scope > tr"))),debug(`Found ${allRows.length} total rows in DOM with selector "${themeSelectors.cartItemRow}"`),debug("First 5 DOM row keys:",allRows.slice(0,5).map(r=>isStretchLike(contextTheme)?r.querySelector("input[data-line-key]")?.dataset.lineKey||r.dataset.key||r.id:r.dataset.key||r.id));const visibleBundleItems=allRows.filter(row=>{if(isRebuy(contextTheme)){const bundleUidClass=Array.from(row.classList).find(c=>c.startsWith("property-_bundleuid:"));if(bundleUidClass){const normalizedClassUid=bundleUidClass.split(":")[1].replace(/-/g,"");return bundleUids.some(uid=>uid.replace(/-/g,"")===normalizedClassUid)}return!1}else{let rowKey=row.dataset.key||row.id;
21if(isStretchLike(contextTheme)&&!rowKey){const keyInput=row.querySelector("input[data-line-key]");keyInput?.dataset.lineKey&&(rowKey=keyInput.dataset.lineKey)}if(!rowKey){const keyInput=row.querySelector("input[data-key]");keyInput?.dataset.key&&(rowKey=keyInput.dataset.key)}if(!rowKey){const inputId=row.querySelector("input.cart__qty-input")?.id;inputId?.startsWith("updates_")&&(rowKey=inputId.replace("updates_",""))}if(!rowKey&&isSwirl(contextTheme)){const inputId=row.querySelector('input.cart-qty, input[id^="cart-qty-"]')?.id;if(inputId?.startsWith("cart-qty-")){const key=inputId.replace("cart-qty-","");key&&key.includes(":")&&(rowKey=key,debug("Swirl: extracted key from input id:",rowKey))}}rowKey?.startsWith("bls-minicart-product-")&&(rowKey=rowKey.replace("bls-minicart-product-",""));const indexIdMatch=rowKey?.match(/^Cart(?:Drawer-)?Item-(\d+)$/);if(indexIdMatch){const idx=parseInt(indexIdMatch[1])-1;cartData.items[idx]&&(rowKey=cartData.items[idx].key)}const hasKey=bundleItemKeys.has(rowKey),isVisible=context.type==="drawer"?!0:row.offsetParent!==null;return!hasKey&&rowKey&&debug(`Row key "${rowKey}" not found in bundleItemKeys (first check)`),hasKey&&isVisible}});if(debug(`Found ${visibleBundleItems.length} visible bundle items in DOM`),bundleItemKeys.size>0&&visibleBundleItems.length===0){debug(`Detected server-side rollup for ${context.type} cart (${bundleItemKeys.size} bundle items hidden in DOM)`),rollupAlreadyDone[context.type]=!0;return}}else{debug("No bundle groups found in cart");return}isRebuy(contextTheme)?originalContainer.querySelectorAll("li.awtomic-processed, li[data-awtomic-hidden]").forEach(item=>item.remove()):isBls(contextTheme)?originalContainer.querySelectorAll(".cart-item[data-awtomic-bundle], .cart-item[data-awtomic-hidden]").forEach(item=>item.remove()):contextTheme==="Supply"?originalContainer.querySelectorAll(".cart__item.awtomic-processed, .cart__item[data-awtomic-hidden]").forEach(item=>item.remove()):isWonder(contextTheme)?originalContainer.querySelectorAll("li[data-awtomic-bundle], li[data-awtomic-hidden]").forEach(item=>item.remove()):contextTheme==="eVoi Custom"?originalContainer.querySelectorAll(".cart__row.cart__item[data-awtomic-bundle], .cart__row.cart__item[data-awtomic-hidden]").forEach(item=>item.remove()):itemsContainer.querySelectorAll("tbody.awtomic-processed").forEach(clone=>clone.remove());let containerToProcess;if(isDirectTheme(contextTheme)?containerToProcess=originalContainer:(containerToProcess=originalContainer.cloneNode(!0),containerToProcess.classList.add("awtomic-processed"),containerToProcess.classList.remove("awtomic-original")),bundleGroupCount>0){const matches=findAndMatchCartItems(cartData,containerToProcess,themeSelectors,contextTheme);debug(`Matched ${matches.length} items out of ${cartData.items.length} cart items`),debug("Matched cart item keys:",matches.map(m=>m.cartItem.key)),await createBundleRows(bundleGroups,matches,contextTheme,themeSelectors)}if(isDirectTheme(contextTheme))itemsContainer&&itemsContainer.classList.add("awtomic-ready"),originalContainer&&originalContainer!==itemsContainer&&originalContainer.classList.add("awtomic-ready");else{originalContainer.classList.add("awtomic-original"),itemsContainer.appendChild(containerToProcess),originalContainer.style.display="none";const parentWrapper=originalContainer.parentElement;parentWrapper&&!parentWrapper.querySelector(".awtomic-processed")&&(parentWrapper.style.display="none")}rollupAlreadyDone[contextType]=!0,debug(`Cart rollup completed for ${context.type} cart (${contextTheme})`)}catch(error){console.error(`[Awtomic Cart Rollup] Error processing ${context.type} cart:`,error)}finally{isProcessing=!1}},setupEventListeners=()=>{const createObserver=(callback,options={})=>{const safeCallback=(...args)=>{try{callback(...args)}catch(error){console.error("[Awtomic Cart Rollup] Observer callback error:",error)}},observer=new MutationObserver(safeCallback);return{observe:el=>observer.observe(el,options),disconnect:()=>observer.disconnect()}};["cart:update","cart:updated","cart:refresh","cart:refreshed","cart-drawer:open","cart-drawer:updated","cart-drawer:refresh","drawer:open","cart:open","theme:cart:open","ajaxCart.afterCartLoad","drawer.didOpen"].forEach(e
21=>document.addEventListener(e,()=>{try{analyzeCart()}catch(error){console.error("[Awtomic Cart Rollup] Event listener error:",error)}})),document.addEventListener("click",e=>{try{e.target.closest('[data-open-drawer], [data-cart-drawer], .cart-icon, [href="#cart-drawer"], .js-drawer-open-right, [data-ajax-cart-toggle-class-button]')&&analyzeCart()}catch(error){console.error("[Awtomic Cart Rollup] Click handler error:",error)}});const observeDrawer=()=>{if(!THEME.drawer)return;observers.drawer&&observers.drawer.disconnect();let drawer=document.querySelector(THEME.drawer.selectors);if(debug("observeDrawer: drawer element =",drawer),drawer)observers.drawer=createObserver(mutations=>{const hasStyleChange=mutations.some(m=>m.type==="attributes"&&m.attributeName==="style"),hasClassChange=mutations.some(m=>m.type==="attributes"&&m.attributeName==="class");(hasStyleChange||hasClassChange)&&(debug("Drawer style/class changed, checking visibility"),THEME.drawer.visibilityCheck(drawer)&&(debug("Drawer is now visible, analyzing cart"),setTimeout(()=>analyzeCart(),100)))},{attributes:!0,attributeFilter:["style","class","open"]}),observers.drawer.observe(drawer),debug("observeDrawer: MutationObserver attached to drawer");else{debug("observeDrawer: drawer element not found, will retry on DOM changes");const bodyObserver=createObserver(mutations=>{mutations.flatMap(m=>Array.from(m.addedNodes)).some(node=>node.nodeType===1)&&document.querySelector(THEME.drawer.selectors)&&!observers.drawer&&(debug("Drawer element now exists, setting up observer"),bodyObserver.disconnect(),observeDrawer())},{childList:!0,subtree:!0});bodyObserver.observe(document.body),debug("observeDrawer: Watching DOM for drawer element to appear")}},observeRebuyCart=()=>{observers.rebuy&&observers.rebuy.disconnect();const rebuyCart=document.querySelector("#rebuy-cart, .rebuy-cart");rebuyCart&&(debug("Setting up Rebuy cart observer"),observers.rebuy=createObserver(mutations=>{for(const m of mutations){if(m.type==="attributes"&&(m.attributeName==="class"||m.attributeName==="aria-hidden")){(m.target.classList.contains("is-visible")||m.target.getAttribute("aria-hidden")==="false")&&(debug("Rebuy cart opened, analyzing..."),rollupAlreadyDone.rebuy=!1,lastCartData.rebuy=null,analyzeCart());break}if(m.type==="childList"&&m.addedNodes.length>0){for(var hasElement=!1,ni=0;ni<m.addedNodes.length;ni++)if(m.addedNodes[ni].nodeType===1){hasElement=!0;break}if(!hasElement)break;debug("Rebuy cart items changed, re-analyzing..."),rollupAlreadyDone.rebuy=!1,lastCartData.rebuy=null,setTimeout(()=>analyzeCart(),150);break}}},{attributes:!0,attributeFilter:["class","aria-hidden"],childList:!0,subtree:!0}),observers.rebuy.observe(rebuyCart))},observeCartPage=()=>{if(window.location.pathname.includes("/cart")){const cartTableFallback=document.querySelector("table.cart-items, .cart-items__table")||document.querySelector('form[action*="/cart"] table');if(cartTableFallback&&createObserver(()=>setTimeout(analyzeCart,100),{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class"]}).observe(cartTableFallback),THEME.name==="Supply"){const cartPageContainer=document.querySelector("[data-products]");cartPageContainer&&createObserver(()=>setTimeout(analyzeCart,150),{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class"]}).observe(cartPageContainer)}}if(THEME.name==="Supply"){const cartItems=document.querySelector(".cart__items");cartItems&&createObserver(()=>setTimeout(analyzeCart,150),{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class","data-count"]}).observe(cartItems)}THEME.name==="Wonder"&&document.querySelectorAll("ul.wt-cart__list").forEach(list=>{createObserver(()=>setTimeout(analyzeCart,150),{childList:!0,subtree:!0}).observe(list)}),THEME.name==="BLS"&&document.querySelectorAll(".bls-items").forEach(list=>{createObserver(()=>setTimeout(analyzeCart,150),{childList:!0,subtree:!0}).observe(list)})},observeBody=()=>{new MutationObserver(()=>{observers.rebuy||document.querySelector("#rebuy-cart, .rebuy-cart")&&observeRebuyCart()}).observe(document.body,{childList:!0,subtree:!0})};onDocReady(()=>{observeDrawer(),observeRebuyCart(),observeCartPage(),observeBody()})},init=async()=>{try{const cartData=await fetchCartData();cartData&&await Promise.all(Object.values(groupBundleItems(cartData)).filter(g=>g.properties._bundleHandle&&g.properties._variantId).map(g=>fetchBundleProductData(g.properties._bundleHandle,g.properties._variantId))),setupEventListeners(),onDocReady(()=>{analyzeCart(),fetchCartData().then(data=>data&&updateCartBubble(data))}),debug("\u2713 Event-driven detection active (MutationObservers)"),window.awtomicCartRollup={analyze:analyzeCart,version:"1.0.0",get theme(){return THEME}}}catch(error){console.error("[Awtomic Cart Rollup] Error during initialization:",error),removeAntiFlickerCSS()}};try{init()}catch(error){console.error("[Awtomic Cart Rollup] Fatal error:",error),removeAntiFlickerCSS()}})(); 22//# sourceMappingURL=/cdn/shop/t/55/assets/awtomic-cart-extras.js.map?v=179307025366707134081788968680
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.