PageSourceSearch

https://mayorgacoffee.com/cdn/shop/t/132/assets/cart.js?v=180540847282399124361779975025

js mayorgacoffee.com collected 2026-10-02 05:18:53 UTC 26,809 bytes, 30 lines download raw bytes

1class CartRemoveButton extends HTMLElement{constructor(){super(),this.addEventListener("click",event=>{event.preventDefault(),(this.closest("cart-items")||this.closest("cart-drawer-items")).updateQuantity(this.dataset.index,0,event)})}}customElements.define("cart-remove-button",CartRemoveButton);class CartItems extends HTMLElement{constructor(){super(),this.lineItemStatusElement=document.getElementById("shopping-cart-line-item-status")||document.getElementById("CartDrawer-LineItemStatus");const debouncedOnChange=debounce(event=>{this.onChange(event)},ON_CHANGE_DEBOUNCE_TIMER);this.addEventListener("change",debouncedOnChange.bind(this))}cartUpdateUnsubscriber=void 0;connectedCallback(){this.cartUpdateUnsubscriber=subscribe(PUB_SUB_EVENTS.cartUpdate,event=>{if(event.source!=="cart-items")return this.onCartUpdate()})}disconnectedCallback(){this.cartUpdateUnsubscriber&&this.cartUpdateUnsubscriber()}resetQuantityInput(id){const input=this.querySelector(`#Quantity-${id}`);input.value=input.getAttribute("value"),this.isEnterPressed=!1}setValidity(event,index,message){event.target.setCustomValidity(message),event.target.reportValidity(),this.resetQuantityInput(index),event.target.select()}validateQuantity(event){const inputValue=parseInt(event.target.value),index=event.target.dataset.index;let message="";inputValue<event.target.dataset.min?message=window.quickOrderListStrings.min_error.replace("[min]",event.target.dataset.min):inputValue>parseInt(event.target.max)?message=window.quickOrderListStrings.max_error.replace("[max]",event.target.max):inputValue%parseInt(event.target.step)!==0&&(message=window.quickOrderListStrings.step_error.replace("[step]",event.target.step)),message?this.setValidity(event,index,message):(event.target.setCustomValidity(""),event.target.reportValidity(),this.updateQuantity(index,inputValue,event,document.activeElement.getAttribute("name"),event.target.dataset.quantityVariantId))}onChange(event){this.validateQuantity(event)}onCartUpdate(){if(this.tagName==="CART-DRAWER-ITEMS"){const cartDrawerSectionUrl=`${routes.cart_url}?section_id=cart-drawer&ts=${Date.now()}`;return fetch(cartDrawerSectionUrl,{credentials:"same-origin",cache:"no-store"}).then(response=>response.text()).then(responseText=>{const html=new DOMParser().parseFromString(responseText,"text/html"),selectors=["cart-drawer-items",".sm-w",".drawer__footer"];for(const selector of selectors){const targetElement=document.querySelector(selector),sourceElement=html.querySelector(selector);targetElement&&sourceElement&&targetElement.replaceWith(sourceElement)}}).catch(e=>{})}else{const mainCartItemsSectionUrl=`${routes.cart_url}?section_id=main-cart-items&ts=${Date.now()}`;return fetch(mainCartItemsSectionUrl,{credentials:"same-origin",cache:"no-store"}).then(response=>response.text()).then(responseText=>{const sourceQty=new DOMParser().parseFromString(responseText,"text/html").querySelector("cart-items");this.innerHTML=sourceQty.innerHTML}).catch(e=>{})}}getSectionsToRender(){return[{id:"main-cart-items",section:document.getElementById("main-cart-items").dataset.id,selector:".js-contents"},{id:"cart-icon-bubble",section:"cart-icon-bubble",selector:".shopify-section"},{id:"cart-live-region-text",section:"cart-live-region-text",selector:".shopify-section"},{id:"main-cart-footer",section:document.getElementById("main-cart-footer").dataset.id,selector:".js-contents"}]}updateQuantity(line,quantity,event,name,variantId){this.enableLoading(line);const body=JSON.stringify({line,quantity,sections:this.getSectionsToRender().map(section=>section.section),sections_url:window.location.pathname}),eventTarget=event.currentTarget instanceof CartRemoveButton?"clear":"change";fetch(`${routes.cart_change_url}`,{...fetchConfig(),body}).then(response=>response.text()).then(state=>{const parsedState=JSON.parse(state);CartPerformance.measure(`${eventTarget}:paint-updated-sections"`,()=>{const quantityElement=document.getElementById(`Quantity-${line}`)||document.getElementById(`Drawer-quantity-${line}`),items=document.querySelectorAll(".cart-item");if(parsedState.errors){quantityElement.value=quantityElement.getAttribute("value"),this.updateLiveRegions(line,parsedState.errors);return}this.classList.toggle("is-empty",parsedState.item_count===0);const cartDrawerWrapper=document.querySelector("cart-drawer"),cartFooter=document.getElementById("main-cart-footer");cartFooter&&cartFooter.classList.toggle("is-empty",parsedState.item_count===0),c
1artDrawerWrapper&&cartDrawerWrapper.classList.toggle("is-empty",parsedState.item_count===0),this.getSectionsToRender().forEach(section=>{const elementToReplace=document.getElementById(section.id).querySelector(section.selector)||document.getElementById(section.id);elementToReplace.innerHTML=this.getSectionInnerHTML(parsedState.sections[section.section],section.selector)});const updatedValue=parsedState.items[line-1]?parsedState.items[line-1].quantity:void 0;let message="";items.length===parsedState.items.length&&updatedValue!==parseInt(quantityElement.value)&&(typeof updatedValue>"u"?message=window.cartStrings.error:message=window.cartStrings.quantityError.replace("[quantity]",updatedValue)),this.updateLiveRegions(line,message);const lineItem=document.getElementById(`CartItem-${line}`)||document.getElementById(`CartDrawer-Item-${line}`);lineItem&&lineItem.querySelector(`[name="${name}"]`)?cartDrawerWrapper?trapFocus(cartDrawerWrapper,lineItem.querySelector(`[name="${name}"]`)):lineItem.querySelector(`[name="${name}"]`).focus():parsedState.item_count===0&&cartDrawerWrapper?trapFocus(cartDrawerWrapper.querySelector(".drawer__inner-empty"),cartDrawerWrapper.querySelector("a")):document.querySelector(".cart-item")&&cartDrawerWrapper&&trapFocus(cartDrawerWrapper,document.querySelector(".cart-item__name"))}),CartPerformance.measureFromEvent(`${eventTarget}:user-action`,event),publish(PUB_SUB_EVENTS.cartUpdate,{source:"cart-items",cartData:parsedState,variantId})}).catch(()=>{this.querySelectorAll(".loading__spinner").forEach(overlay=>overlay.classList.add("hidden"));const errors=document.getElementById("cart-errors")||document.getElementById("CartDrawer-CartErrors");errors.textContent=window.cartStrings.error}).finally(()=>{this.disableLoading(line)})}updateLiveRegions(line,message){const lineItemError=document.getElementById(`Line-item-error-${line}`)||document.getElementById(`CartDrawer-LineItemError-${line}`);lineItemError&&(lineItemError.querySelector(".cart-item__error-text").textContent=message),this.lineItemStatusElement.setAttribute("aria-hidden",!0);const cartStatus=document.getElementById("cart-live-region-text")||document.getElementById("CartDrawer-LiveRegionText");cartStatus.setAttribute("aria-hidden",!1),setTimeout(()=>{cartStatus.setAttribute("aria-hidden",!0)},1e3)}getSectionInnerHTML(html,selector){return new DOMParser().parseFromString(html,"text/html").querySelector(selector).innerHTML}enableLoading(line){(document.getElementById("main-cart-items")||document.getElementById("CartDrawer-CartItems")).classList.add("cart__items--disabled");const cartItemElements=this.querySelectorAll(`#CartItem-${line} .loading__spinner`),cartDrawerItemElements=this.querySelectorAll(`#CartDrawer-Item-${line} .loading__spinner`);
1[...cartItemElements,...cartDrawerItemElements].forEach(overlay=>overlay.classList.remove("hidden")),document.activeElement.blur(),this.lineItemStatusElement.setAttribute("aria-hidden",!1)}disableLoading(line){(document.getElementById("main-cart-items")||document.getElementById("CartDrawer-CartItems")).classList.remove("cart__items--disabled");const cartItemElements=this.querySelectorAll(`#CartItem-${line} .loading__spinner`),cartDrawerItemElements=this.querySelectorAll(`#CartDrawer-Item-${line} .loading__spinner`);cartItemElements.forEach(overlay=>overlay.classList.add("hidden")),cartDrawerItemElements.forEach(overlay=>overlay.classList.add("hidden"))}}if(customElements.define("cart-items",CartItems),window.__cartRecoAddBound||(window.__cartRecoAddBound=!0,document.addEventListener("click",async event=>{const addButton=event.target.closest(".js-cart-reco-add");if(!addButton)return;event.preventDefault();const variantId=Number(addButton.dataset.variantId);if(!variantId)return;const cartUI=document.querySelector("cart-drawer")||document.querySelector("cart-notification"),sections=cartUI&&typeof cartUI.getSectionsToRender=="function"?cartUI.getSectionsToRender().map(section=>section.id):["cart-icon-bubble"];addButton.disabled=!0,addButton.setAttribute("aria-disabled","true");const originalLabel=addButton.textContent;addButton.textContent="...";try{const config=fetchConfig("javascript");config.headers["X-Requested-With"]="XMLHttpRequest",delete config.headers["Content-Type"];const formData=new FormData;formData.append("id",String(variantId)),formData.append("quantity","1"),sections.forEach(sectionId=>formData.append("sections",sectionId)),formData.append("sections_url",window.location.pathname);const parsedResponse=await(await fetch(`${routes.cart_add_url}`,{...config,body:formData})).json();if(parsedResponse.status){addButton.disabled=!1,addButton.removeAttribute("aria-disabled"),addButton.textContent=originalLabel;return}const cartDrawerItems=document.querySelector("cart-drawer-items");cartDrawerItems&&parsedResponse.sections&&typeof cartDrawerItems.getSectionsToRender=="function"&&typeof cartDrawerItems.getSectionInnerHTML=="function"?cartDrawerItems.getSectionsToRender().forEach(section=>{const targetContainer=document.getElementById(section.id);if(!targetContainer)return;const elementToReplace=targetContainer.querySelector(section.selector)||targetContainer,sectionHtml=parsedResponse.sections[section.section];sectionHtml&&(elementToReplace.innerHTML=cartDrawerItems.getSectionInnerHTML(sectionHtml,section.selector))}):cartUI&&typeof cartUI.renderContents=="function"&&cartUI.renderContents(parsedResponse),publish(PUB_SUB_EVENTS.cartUpdate,{source:"cart-recommendations",productVariantId:variantId,cartData:parsedResponse}),setTimeout(renderCartMergedRecommendations,0)}catch{addButton.disabled=!1,addButton.removeAttribute("aria-disabled"),addButton.textContent=originalLabel}})),!window.__cartDiscountBound){window.__cartDiscountBound=!0;const hasCartDiscountEvidence=cartData=>cartData?(Array.isArray(cartData.cart_level_discount_applications)?cartData.cart_level_discount_applications:[]).length>0?!0:Number(cartData.total_discount||0)>0:!1,updateDiscountChip=(wrapper,discountCode)=>{if(!wrapper)return;const chip=wrapper.querySelector(".js-cart-discount-chip");if(!chip)return;const chipCode=chip.querySelector(".js-cart-discount-code"),normalizedCode=String(discountCode||"").trim();if(!normalizedCode){chip.hidden=!0,chip.classList.add("is-hidden"),chipCode&&(chipCode.textContent="");return}chipCode&&(chipCode.textContent=normalizedCode),chip.hidden=!1,chip.classList.remove("is-hidden")},isDiscountAppliedToCart=(cartData,code)=>{if(!cartData||!code)return!1;const normalizedCode=String(code).trim().toLowerCase();return(Array.isArray(cartData.discount_codes)?cartData.discount_codes:[]).some(entry=>{const isStringEntry=typeof entry=="string";return(isStringEntry?entry.trim().toLowerCase():String(entry&&entry.code?entry.code:"").trim().toLowerCase())!==normalizedCode?!1:!isStringEntry&&typeof entry.applicable=="boolean"?entry.applicable:isStringEntry?hasCartDiscountEvidence(cartData):!0})?!0:(Array.isArray(cartData.cart_level_discount_applications)?cartData.cart_level_discount_applications:[]).some(entry=>String(entry&&entry.title?entry.title:"").trim().toLowerCase()===normalizedCode)},getAppliedDiscountCode=cartData=>{if(!cartData)return"";const discountCodes=Array.isArray(cartData.discount_codes)?cartData.discount_codes:[];for(const entry of discountCodes){const code=typeof entry=="string"?entry.trim():String(entry&&entry.code?entry.code:"").trim();if(code&&!(typeof entry=="object"&&entry&&typeof entry.applicable=="boolean"&&!entry.applicable)&&isDiscountAppliedToCart(cartData,code))return code}const cartDiscounts=Array.isArray(cartData.cart_level_discount_applications)?cartData.cart_level_discount_applications:[];if(hasCartDiscountEvidence(cartData)&&cartDiscounts.length>0){const fallbackTitle=String(cartDiscounts[0]&&cartDiscounts[0].title?cartDiscounts[0].title:"").trim();if(fallbackTitle)return fallbackTitle}return""},toggleDiscountPanel=toggle=>{const wrapper=toggle.closest(".cart-drawer__discount");if(!wrapper)return;const panel=wrapper.querySelector(".cup-panel");
1if(!panel)return;const shouldExpand=!(toggle.getAttribute("aria-expanded")==="true");toggle.setAttribute("aria-expanded",String(shouldExpand)),panel.hidden=!shouldExpand},applyDiscountCode=async trigger=>{const wrapper=trigger.closest(".cart-drawer__discount");if(!wrapper)return;const input=wrapper.querySelector("#CartDrawer-DiscountInput"),message=wrapper.querySelector(".cup-message"),removeTrigger=wrapper.querySelector(".js-cart-discount-remove"),setMessage=(text,state)=>{message&&(message.textContent=text,message.dataset.state=state)},code=input?input.value.trim():"";if(!code){setMessage("Enter a discount code.","error");return}trigger.disabled=!0;const originalAriaLabel=trigger.getAttribute("aria-label"),originalHtml=trigger.innerHTML;trigger.setAttribute("aria-label","Applying discount code"),trigger.classList.add("is-loading"),trigger.textContent="...",message&&(message.textContent="",message.dataset.state="");try{await fetch("/cart/update.js",{method:"POST",credentials:"same-origin",cache:"no-store",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({discount:code})});const cartData=await(await fetch(`/cart.js?ts=${Date.now()}`,{credentials:"same-origin",cache:"no-store"})).json(),isApplied=isDiscountAppliedToCart(cartData,code),appliedCode=getAppliedDiscountCode(cartData);removeTrigger&&(removeTrigger.hidden=!appliedCode),updateDiscountChip(wrapper,appliedCode);const cartDrawerItems=document.querySelector("cart-drawer-items");cartDrawerItems&&typeof cartDrawerItems.onCartUpdate=="function"&&await cartDrawerItems.onCartUpdate(),setTimeout(renderCartMergedRecommendations,0),message&&(isApplied?setMessage("Discount code applied.","success"):setMessage("Discount code is invalid or not applicable.","error"))}catch{setMessage("Unable to apply discount. Please try again.","error")}finally{if(trigger.disabled=!1,trigger.innerHTML=originalHtml,trigger.classList.remove("is-loading"),input&&(input.value=""),originalAriaLabel!==null?trigger.setAttribute("aria-label",originalAriaLabel):trigger.removeAttribute("aria-label"),message){const currentState=message.dataset.state;(currentState==="success"||currentState==="error")&&setTimeout(()=>{message.dataset.state===currentState&&(message.textContent="",message.dataset.state="")},5e3)}}},removeDiscountCode=async trigger=>{const wrapper=trigger.closest(".cart-drawer__discount");if(!wrapper)return;const input=wrapper.querySelector("#CartDrawer-DiscountInput"),message=wrapper.querySelector(".cup-message"),setMessage=(text,state)=>{message&&(message.textContent=text,message.dataset.state=state)},clearMessageAfterDelay=delayMs=>{if(!message)return;const currentState=message.dataset.state;currentState&&setTimeout(()=>{message.dataset.state===currentState&&(message.textContent="",message.dataset.state="")},delayMs)};trigger.disabled=!0;try{updateDiscountChip(wrapper,""),await fetch("/cart/update.js",{method:"POST",credentials:"same-origin",cache:"no-store",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({discount:""})});const cartData=await(await fetch(`/cart.js?ts=${Date.now()}`,{credentials:"same-origin",cache:"no-store"})).json(),appliedCode=getAppliedDiscountCode(cartData);updateDiscountChip(wrapper,appliedCode);const cartDrawerItems=document.querySelector("cart-drawer-items");cartDrawerItems&&typeof cartDrawerItems.onCartUpdate=="function"&&await cartDrawerItems.onCartUpdate(),setTimeout(renderCartMergedRecommendations,0),input&&(input.value=""),setMessage(appliedCode?"Unable to remove discount. Please try again.":"Discount removed.",appliedCode?"error":"success"),trigger.hidden=!!appliedCode,appliedCode||clearMessageAfterDelay(3e3)}catch{setMessage("Unable to remove discount. Please try again.","error")}finally{trigger.disabled=!1}},syncDiscountChipFromCart=async()=>{const wrapper=document.querySelector(".cart-drawer__discount");if(wrapper)try{const cartData=await(await fetch(`/cart.js?ts=${Date.now()}`,{credentials:"same-origin",cache:"no-store"})).json(),appliedCode=getAppliedDiscountCode(cartData);updateDiscountChip(wrapper,appliedCode)}catch{}},getActiveDrawerDiscountCode=()=>{const wrapper=document.querySelector(".cart-drawer__discount");if(!wrapper)return"";const chip=wrapper.querySelector(".js-cart-discount-chip");if(!chip||chip.hidden||chip.classList.contains("is-hidden"))return"";const codeElement=chip.querySelector(".js-cart-discount-code");
1return String(codeElement?codeElement.textContent:"").trim()},redirectToCheckoutWithDiscount=discountCode=>{const normalizedCode=String(discountCode||"").trim();if(!normalizedCode)return!1;const discountPath=`/discount/${encodeURIComponent(normalizedCode)}`,checkoutRedirect=encodeURIComponent("/checkout");return window.location.href=`${discountPath}?redirect=${checkoutRedirect}`,!0};document.addEventListener("click",event=>{const toggle=event.target.closest(".js-cart-discount-toggle");if(toggle){toggleDiscountPanel(toggle);return}const apply=event.target.closest(".js-cart-discount-apply");if(apply){applyDiscountCode(apply);return}const remove=event.target.closest(".js-cart-discount-remove");if(remove){event.preventDefault(),removeDiscountCode(remove);return}}),document.addEventListener("keydown",event=>{const toggle=event.target.closest(".js-cart-discount-toggle");if(toggle&&(event.key==="Enter"||event.key===" ")){event.preventDefault(),toggleDiscountPanel(toggle);return}const input=event.target.closest("#CartDrawer-DiscountInput");if(input&&event.key==="Enter"){event.preventDefault();const wrapper=input.closest(".cart-drawer__discount"),apply=wrapper&&wrapper.querySelector(".js-cart-discount-apply");apply&&applyDiscountCode(apply)}}),document.addEventListener("click",event=>{if(event.defaultPrevented||!event.target.closest('#CartDrawer-Checkout, #CartDrawer [name="checkout"]'))return;const activeCode=getActiveDrawerDiscountCode();activeCode&&(event.preventDefault(),event.stopPropagation(),redirectToCheckoutWithDiscount(activeCode))}),document.addEventListener("submit",event=>{if(event.defaultPrevented)return;const form=event.target;if(!form||form.id!=="CartDrawer-Form")return;const submitter=event.submitter;if(!submitter||!submitter.matches('#CartDrawer-Checkout, [name="checkout"]'))return;const activeCode=getActiveDrawerDiscountCode();activeCode&&(event.preventDefault(),redirectToCheckoutWithDiscount(activeCode))});let _lastKnownDiscountCode="";const clearDiscountFromCart=()=>fetch("/cart/update.js",{method:"POST",credentials:"same-origin",cache:"no-store",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({discount:""})}),clearDiscountUI=()=>{const wrapper=document.querySelector(".cart-drawer__discount");updateDiscountChip(wrapper,"");const input=wrapper&&wrapper.querySelector("#CartDrawer-DiscountInput");input&&(input.value="")};subscribe(PUB_SUB_EVENTS.cartUpdate,({cartData}={})=>{if(cartData){if(cartData.item_count>0){const code=getAppliedDiscountCode(cartData);code&&(_lastKnownDiscountCode=code)}if(cartData.item_count===0){let code=_lastKnownDiscountCode;if(code||(code=(Array.isArray(cartData.discount_codes)?cartData.discount_codes:[]).reduce((found,entry)=>found||(typeof entry=="string"?entry:String(entry?.code||"")).trim(),"")),!code)return;window.__cartDiscountShouldBeCleared=!0,_lastKnownDiscountCode="",clearDiscountUI(),clearDiscountFromCart();return}window.__cartDiscountShouldBeCleared&&(window.__cartDiscountShouldBeCleared=!1,clearDiscountFromCart().then(()=>{const cartDrawerItems=document.querySelector("cart-drawer-items");cartDrawerItems&&typeof cartDrawerItems.onCartUpdate=="function"?cartDrawerItems.onCartUpdate():clearDiscountUI()}))}}),syncDiscountChipFromCart()}customElements.get("cart-note")||customElements.define("cart-note",class extends HTMLElement{constructor(){super(),this.addEventListener("input",debounce(event=>{const body=JSON.stringify({note:event.target.value});fetch(`${routes.cart_update_url}`,{...fetchConfig(),body}).then(()=>CartPerformance.measureFromEvent("note-update:user-action",event))},ON_CHANGE_DEBOUNCE_TIMER))}});function cartRecoPrice(moneyInCents){return typeof Shopify<"u"&&typeof Shopify.formatMoney=="function"?Shopify.formatMoney(moneyInCents):`$${(Number(moneyInCents||0)/100).toFixed(2)}`}function escapeRecoHtml(value){return String(value??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}async function fetchRelatedRecommendationsByProductId(productId,limit=6){const data=await(await fetch(`/recommendations/products.json?product_id=${productId}&limit=${limit}&intent=related`)).json();return Array.isArray(data.products)?data.products:[]}function getFirstAvailableVariantId(product){if(!product||!Array.isArray(product.variants)
1)return null;const availableVariant=product.variants.find(variant=>variant.available);return availableVariant?availableVariant.id:null}function bindRecoSlider(container){const track=container.querySelector(".js-cart-reco-track"),prevButton=container.querySelector(".js-cart-reco-prev"),nextButton=container.querySelector(".js-cart-reco-next");if(!track||!prevButton||!nextButton)return;const originalSlides=Array.from(track.querySelectorAll(".cc"));if(!originalSlides.length)return;const makeClone=slide=>{const clone=slide.cloneNode(!0);return clone.setAttribute("aria-hidden","true"),clone},prependFragment=document.createDocumentFragment();originalSlides.forEach(slide=>prependFragment.appendChild(makeClone(slide))),track.prepend(prependFragment);const appendFragment=document.createDocumentFragment();originalSlides.forEach(slide=>appendFragment.appendChild(makeClone(slide))),track.append(appendFragment);const getSectionWidth=()=>track.scrollWidth/3,setInitialPosition=()=>{track.scrollLeft=getSectionWidth()},normalizeInfiniteScroll=()=>{const sectionWidth=getSectionWidth();sectionWidth&&(track.scrollLeft<sectionWidth*.5?track.scrollLeft+=sectionWidth:track.scrollLeft>sectionWidth*1.5&&(track.scrollLeft-=sectionWidth))};setInitialPosition();const scrollByCard=direction=>{const firstCard=track.querySelector(".cc"),cardWidth=firstCard?firstCard.getBoundingClientRect().width:track.clientWidth;track.scrollBy({left:direction*cardWidth,behavior:"smooth"})};prevButton.addEventListener("click",()=>scrollByCard(-1)),nextButton.addEventListener("click",()=>scrollByCard(1)),track.addEventListener("scroll",normalizeInfiniteScroll,{passive:!0}),window.addEventListener("resize",setInitialPosition)}async function renderCartMergedRecommendations(){const container=document.querySelector(".js-cart-recommendations");
1if(!container)return;const cartProductIds=String(container.dataset.cartProductIds||"").split(",").map(id=>Number(id.trim())).filter(id=>Number.isFinite(id)&&id>0),limit=Number(container.dataset.limit||12),headingText=String(container.dataset.heading||"\u2615 Pairs perfectly with");if(cartProductIds.length)try{const productFetchResults=await Promise.allSettled(cartProductIds.map(productId=>fetchRelatedRecommendationsByProductId(productId,Math.max(limit*3,6)))),inCartProductIds=new Set(cartProductIds),mergedProducts=new Map;productFetchResults.forEach(result=>{result.status==="fulfilled"&&result.value.forEach((product,index)=>{if(!product||!product.id||inCartProductIds.has(product.id))return;const existing=mergedProducts.get(product.id);if(existing){existing.score+=1,existing.rankSum+=index+1;return}mergedProducts.set(product.id,{product,score:1,rankSum:index+1})})});const products=Array.from(mergedProducts.values()).sort((a,b)=>b.score!==a.score?b.score-a.score:a.rankSum-b.rankSum).slice(0,limit).map(entry=>entry.product);if(!products.length){container.innerHTML="";return}const cards=products.map(product=>{const variantId=getFirstAvailableVariantId(product)||product.id,itemPrice=product.price?(product.price/100).toFixed(2):"0",image=product.featured_image?`<img src="${escapeRecoHtml(product.featured_image)}" alt="${escapeRecoHtml(product.title)}" loading="lazy" width="44" height="50">`:"",rating=product.rating&&product.rating_count?` \xB7 \u2605 ${product.rating} (${product.rating_count})`:"",addButton=`<a class="ca" href="${escapeRecoHtml(product.url)}" aria-label="View ${escapeRecoHtml(product.title)}"><svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" focusable="false"><path d="M12 5c5.5 0 9.5 5.2 10.8 7-.1.2-.3.4-.4.6C20.9 14.8 17 19 12 19S3.1 14.8 1.6 12.6c-.1-.2-.3-.4-.4-.6C2.5 10.2 6.5 5 12 5Zm0 2C8.1 7 5 10.3 3.4 12c1.6 1.7 4.7 5 8.6 5s7-3.3 8.6-5C19 10.3 15.9 7 12 7Zm0 1.8a3.2 3.2 0 1 1 0 6.4 3.2 3.2 0 0 1 0-6.4Zm0 2a1.2 1.2 0 1 0 0 2.4 1.2 1.2 0 0 0 0-2.4Z" fill="currentColor"/></svg></a>`;return`
2          <div class="cc"
3            data-item-id="${variantId}"
4            data-item-name="${escapeRecoHtml(product.title)}"
5            data-item-brand="${escapeRecoHtml(product.vendor||"")}"
6            data-item-category="${escapeRecoHtml(product.type||"")}"
7            data-item-price="${itemPrice}"
8            data-item-list-id="cart_recommendations"
9            data-item-list-name="Cart Recommendations"
10          >
11            <a class="ci" href="${escapeRecoHtml(product.url)}" aria-label="${escapeRecoHtml(product.title)}">
12              ${image}
13            </a>
14            <div class="cf">
15              <div class="cn">${escapeRecoHtml(product.title)}</div>
16              <div class="cp">${cartRecoPrice(product.price)}${rating}</div>
17            </div>
18            ${addButton}
19          </div>
20        `}).join("");container.innerHTML=`
21      <div class="cs-header">
22        <div class="ct">${escapeRecoHtml(headingText)}</div>
23        <div class="cs-nav">
24          <button type="button" class="ca ca--nav js-cart-reco-prev" aria-label="Previous recommendations">\u2039</button>
25          <button type="button" class="ca ca--nav js-cart-reco-next" aria-label="Next recommendations">\u203A</button>
26        </div>
27      </div>
28      <div class="cs-track js-cart-reco-track">${cards}</div>
29    `,bindRecoSlider(container)}catch{container.innerHTML=""}}document.addEventListener("DOMContentLoaded",renderCartMergedRecommendations),subscribe(PUB_SUB_EVENTS.cartUpdate,()=>{setTimeout(renderCartMergedRecommendations,0)});
30//# sourceMappingURL=/cdn/shop/t/132/assets/cart.js.map?v=180540847282399124361779975025

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.