1(()=>{const ROOT_SELECTOR="[data-tiered-discount-root]",LOCAL_LINE_ID="__local__",MOBILE_TOOLTIP_MEDIA_QUERY="(max-width: 767px)",{parseInteger:parseNumber,parseJson,normalizeCampaigns,getCurrentTier,getTierThreshold,getExtendedProgressMax,getNextTier,optimizeDiscountAssignments,resolveProductDisplayCampaign}=window.ElegooTieredDiscountUtils||{},sectionRefreshRequests=new Map;let cartStateVersion=0;const parseJsonScript=(root,selector,fallback)=>{const script=root.querySelector(selector);return script?parseJson(script.textContent||"",fallback):fallback},getRootRefreshConfig=root=>{const dataNode=root.querySelector("[data-tiered-discount-data]");if(!dataNode)return null;const sectionId=String(dataNode.dataset.tieredDiscountSectionId||"").trim(),refreshUrl=String(dataNode.dataset.tieredDiscountRefreshUrl||"").trim();return!sectionId||!refreshUrl?null:{dataNode,sectionId,refreshUrl}},applyLatestPayload=(root,sourceRoot)=>{if(!root||!sourceRoot)return;const currentDataNode=root.querySelector("[data-tiered-discount-data]"),currentCampaigns=root.querySelector("[data-tiered-discount-campaigns]"),currentCartLines=root.querySelector("[data-tiered-discount-cart-lines]"),nextDataNode=sourceRoot.querySelector("[data-tiered-discount-data]"),nextCampaigns=sourceRoot.querySelector("[data-tiered-discount-campaigns]"),nextCartLines=sourceRoot.querySelector("[data-tiered-discount-cart-lines]");currentDataNode&&nextDataNode&&Array.from(nextDataNode.attributes).forEach(attribute=>{currentDataNode.setAttribute(attribute.name,attribute.value)}),currentCampaigns&&nextCampaigns&&(currentCampaigns.textContent=nextCampaigns.textContent||""),currentCartLines&&nextCartLines&&(currentCartLines.textContent=nextCartLines.textContent||"")},shouldRefreshRootPayload=(root,config)=>{const dataNode=config?.dataNode||root.querySelector("[data-tiered-discount-data]");return dataNode?parseNumber(dataNode.dataset.tieredDiscountCartVersionSynced,0)<cartStateVersion:!1},markRootPayloadSynced=root=>{const dataNode=root.querySelector("[data-tiered-discount-data]");dataNode&&(dataNode.dataset.tieredDiscountCartVersionSynced=String(cartStateVersion))},markCartChanged=()=>{cartStateVersion+=1},fetchLatestRootPayload=async root=>{const config=getRootRefreshConfig(root);if(!config||!shouldRefreshRootPayload(root,config))return root;const requestKey=`${config.refreshUrl}::${config.sectionId}`;if(!sectionRefreshRequests.has(requestKey)){const fetchUrl=new URL(config.refreshUrl,window.location.origin);fetchUrl.searchParams.set("section_id",config.sectionId),sectionRefreshRequests.set(requestKey,fetch(fetchUrl.toString(),{headers:{Accept:"text/html"}}).then(response=>{if(!response.ok)throw new Error(`Failed to refresh tiered discount: ${response.status}`);return response.text()}).then(htmlText=>{const doc=new DOMParser().parseFromString(htmlText,"text/html");return doc.getElementById(root.id)||doc.querySelector(`#${CSS.escape(root.id)}`)}).finally(()=>{sectionRefreshRequests.delete(requestKey)}))}try{const latestRoot=await sectionRefreshRequests.get(requestKey);latestRoot&&(applyLatestPayload(root,latestRoot),markRootPayloadSynced(root))}catch(error){console.warn(error)}return root},htmlEntityDecoder=document.createElement("textarea"),decodeHtmlEntities=value=>{const input=String(value??"");return!input||!input.includes("&")?input:(htmlEntityDecoder.innerHTML=input,htmlEntityDecoder.value)};function formatMoneyTiered(cents){let format=window.theme.settings.money_with_currency_format||"${{amount}}";return formatMoney(cents,format)}const normalizeLines=rawLines=>(Array.isArray(rawLines)?rawLines:[]).map(line=>({id:String(line?.id||"").trim(),quantity:parseNumber(line?.quantity,0),subtotalCents:parseNumber(line?.subtotalCents,0),lineSubtotalCents:parseNumber(line?.lineSubtotalCents,0),title:String(line?.title||"").trim(),productUrl:String(line?.productUrl||"").trim(),imageSrc:String(line?.imageSrc||"").trim(),imageAlt:String(line?.imageAlt||"").trim(),variantTitle:String(line?.variantTitle||"").trim(),unitPriceCents:parseNumber(line?.unitPriceCents,0),finalUnitPriceCents:parseNumber(line?.finalUnitPriceCents,0),campaignIds:Array.isArray(line?.campaignIds)?line.campaignIds.map(discountId=>
1String(discountId||"").trim()).filter(Boolean):[]})).filter(line=>line.id&&line.quantity>0&&line.subtotalCents>=0&&line.campaignIds.length),getProgressRatio=(tiers,basis,metric,options={})=>{if(!tiers.length)return 0;const max=options.maxOverride!=null?parseNumber(options.maxOverride,0):getTierThreshold(tiers[tiers.length-1],basis);return max?Math.max(0,Math.min(1,metric/max)):0},formatTemplate=(template,replacements)=>Object.entries(replacements).reduce((result,[key,value])=>result.replace(`{{ ${key} }}`,value),template),getUnitLabel=(basis,remainingLabel,itemLabelSingular,itemLabelPlural)=>basis==="amount"?"":` ${parseNumber(remainingLabel||0,0)===1?itemLabelSingular||"":itemLabelPlural||""}`.trimStart(),normalizeValueType=valueType=>String(valueType||"").toLowerCase()==="amount"?"amount":"percentage",normalizeMessageBasis=basis=>String(basis||"").toLowerCase()==="amount"?"amount":"quantity",getMetricDisplayData=({basis,metric,itemLabelSingular,itemLabelPlural})=>{const normalizedBasis=normalizeMessageBasis(basis),normalizedMetric=Math.max(0,parseNumber(metric,0)),value=normalizedBasis==="amount"?formatMoneyTiered(normalizedMetric):`${normalizedMetric}`;return{value,unit:getUnitLabel(normalizedBasis,value,itemLabelSingular,itemLabelPlural)}},getRemainingDisplayData=({basis,metric,nextTier,itemLabelSingular,itemLabelPlural})=>{if(!nextTier)return{value:"",remainingValue:"",unit:""};const normalizedBasis=normalizeMessageBasis(basis),nextThreshold=getTierThreshold(nextTier,normalizedBasis),normalizedMetric=Math.max(0,parseNumber(metric,0)),remaining=Math.max(nextThreshold-normalizedMetric,0),remainingDisplayData=getMetricDisplayData({basis:normalizedBasis,metric:remaining,itemLabelSingular,itemLabelPlural}),nextThresholdDisplayData=getMetricDisplayData({basis:normalizedBasis,metric:nextThreshold,itemLabelSingular,itemLabelPlural});return{value:remainingDisplayData.value||nextThresholdDisplayData.value,remainingValue:remainingDisplayData.value,unit:remainingDisplayData.unit}},getTierOffValue=(valueType,tier,{requirePositive=!1}={})=>{if(normalizeValueType(valueType)==="amount"){const amountOffCents=parseNumber(tier?.amountOffCents,0);return requirePositive&&amountOffCents<=0?"":formatMoneyTiered(amountOffCents)}const percent=parseNumber(tier?.percent,0);return requirePositive&&percent<=0?"":`${percent}%`},getTierTransitionData=(valueType,currentTier,nextTier)=>({currentOffValue:getTierOffValue(valueType,currentTier,{requirePositive:!0}),nextOffValue:nextTier?getTierOffValue(valueType,nextTier):""}),formatTierMessage=({compact=!1,addTemplate,unlockedTemplate,upgradeTemplate,unlockedOffValue,transitionData,remainingData,extraTemplateData={}})=>{if(!transitionData.nextOffValue)return!unlockedTemplate||!unlockedOffValue?"":formatTemplate(unlockedTemplate,{off_value:unlockedOffValue,...extraTemplateData});const sharedTemplateData={value:remainingData.value,unit:remainingData.unit,off_value:transitionData.nextOffValue,next_off_value:transitionData.nextOffValue,...extraTemplateData};if(!transitionData.currentOffValue)return addTemplate?formatTemplate(addTemplate,sharedTemplateData):"";if(!upgradeTemplate)return"";const upgradeData={...sharedTemplateData,current_off_value:transitionData.currentOffValue};return compact?`${transitionData.currentOffValue} \xB7 ${formatTemplate(upgradeTemplate,upgradeData)}`:formatTemplate(upgradeTemplate,upgradeData)},getMessage=({valueType,basis,compact,addTemplate,unlockedTemplate,upgradeTemplate,itemLabelSingular,itemLabelPlural,metric,currentTier,nextTier})=>{const transitionData=getTierTransitionData(valueType,currentTier,nextTier);if(!nextTier)return formatTierMessage({compact,unlockedTemplate,unlockedOffValue:transitionData.currentOffValue,transitionData,remainingData:{value:"",unit:""}});const remainingData=getRemainingDisplayData({basis,metric,nextTier,itemLabelSingular,itemLabelPlural});return formatTierMessage({compact,addTemplate,upgradeTemplate,transitionData,remainingData:{...remainingData,value:metric<=0?remainingData.value:remainingData.remainingValue}})},getPdpMessage=({context,valueType,basis,addTemplate,unlockedTemplate,upgradeTemplate,pdpTemplates,cartMetric,cartCount,itemLabelSingular,itemLabelPlural,totalMetric,totalCurrentTier,totalNextTier,cartCurrentTier,cartNextTier})=>
1{if(context!=="product")return"";const cartMetricValue=Math.max(0,parseNumber(cartMetric,0)),cartItemCount=Math.max(0,parseNumber(cartCount,0)),cartDisplayData=getMetricDisplayData({basis,metric:normalizeMessageBasis(basis)==="amount"?cartMetricValue:cartItemCount,itemLabelSingular,itemLabelPlural}),isFreshScenario=cartMetricValue<=0,resolvedAddTemplate=isFreshScenario?addTemplate:pdpTemplates.cartAdd,resolvedUnlockedTemplate=isFreshScenario?unlockedTemplate:pdpTemplates.cartMax,resolvedUpgradeTemplate=isFreshScenario?upgradeTemplate:pdpTemplates.cartUpgrade,activeMetric=isFreshScenario?totalMetric:cartMetricValue,activeCurrentTier=isFreshScenario?totalCurrentTier:cartCurrentTier,activeNextTier=isFreshScenario?totalNextTier:cartNextTier,transitionData=getTierTransitionData(valueType,activeCurrentTier,activeNextTier),remainingData=getRemainingDisplayData({basis,metric:activeMetric,nextTier:activeNextTier,itemLabelSingular,itemLabelPlural});return formatTierMessage({addTemplate:resolvedAddTemplate,unlockedTemplate:resolvedUnlockedTemplate,upgradeTemplate:resolvedUpgradeTemplate,unlockedOffValue:transitionData.currentOffValue,transitionData,remainingData:{...remainingData,value:transitionData.currentOffValue?remainingData.remainingValue:remainingData.value},extraTemplateData:{cart_count:cartDisplayData.value,cart_unit:cartDisplayData.unit}})},renderProgressPoints=(root,tiers,basis,metric,options={})=>{const pointsContainer=root.querySelector("[data-tiered-discount-progress-points]");if(!pointsContainer)return;if(!tiers.length){pointsContainer.innerHTML="";return}const max=options.maxOverride!=null?parseNumber(options.maxOverride,0):getTierThreshold(tiers[tiers.length-1],basis),valueType=String(options.valueType||"").toLowerCase()==="amount"?"amount":"percentage",offLabel=options.offLabel||"off";pointsContainer.innerHTML=tiers.map(tier=>{const threshold=getTierThreshold(tier,basis),position=Math.max(0,Math.min(100,threshold/max*100)),active=metric>=threshold?" is-active":"",thresholdLabel=basis==="amount"?formatMoneyTiered(threshold):`${tier.qty}+`,tierValueLabel=valueType==="amount"?`${formatMoneyTiered(parseNumber(tier.amountOffCents,0))} ${offLabel}`:`${tier.percent}%`,tooltipLabel=`${thresholdLabel} \xB7 ${tierValueLabel}`;return`<span class="tiered-discount-point${active}" style="left:${position}%" tabindex="0" role="button" aria-expanded="false" aria-label="${tooltipLabel}" data-tiered-discount-point><span class="tiered-discount-point__tooltip">${tooltipLabel}</span></span>`}).join("")},isMobileTooltipViewport=()=>window.matchMedia(MOBILE_TOOLTIP_MEDIA_QUERY).matches,closeProgressTooltips=(scope=document)=>{scope.querySelectorAll("[data-tiered-discount-point].is-tooltip-open").forEach(point=>{point.classList.remove("is-tooltip-open"),point.setAttribute("aria-expanded","false")})},toggleProgressTooltip=point=>{const container=point.closest("[data-tiered-discount-progress-points]"),willOpen=!point.classList.contains("is-tooltip-open");container&&closeProgressTooltips(container),willOpen&&(point.classList.add("is-tooltip-open"),point.setAttribute("aria-expanded","true"))},createDetailEntryNode=line=>{const item=document.createElement("div");item.className="tiered-discount-cart__detail-item";const thumb=document.createElement("a");if(thumb.className="tiered-discount-cart__detail-thumb",thumb.href=line.productUrl||"#",thumb.setAttribute("aria-hidden",line.productUrl?"false":"true"),line.productUrl||(thumb.tabIndex=-1),line.imageSrc){const img=document.createElement("img");img.loading="lazy",img.src=line.imageSrc,img.alt=line.imageAlt||line.title||"",thumb.appendChild(img)}const body=document.createElement("div");body.className="tiered-discount-cart__detail-body";const top=document.createElement("div");top.className="tiered-discount-cart__detail-top";const title=document.createElement(line.productUrl?"a":"span");title.className="tiered-discount-cart__detail-title",title.textContent=line.title||"",line.productUrl&&(title.href=line.productUrl);const prices=document.createElement("div");prices.className="tiered-discount-cart__detail-prices";const original=document.createElement("span");original.className="tiered-discount-cart__detail-price-original",original.textContent=formatMoneyTiered(line.unitPriceCents);const finalPrice=document.createElement("span");finalPrice.className="tiered-discount-cart__detail-price-final",finalPrice.textContent=`${formatMoneyTiered(line.finalUnitPriceCents)} \xD7 ${line.quantity}`,line.unitPriceCents>
1line.finalUnitPriceCents?(prices.appendChild(original),prices.appendChild(finalPrice)):(finalPrice.textContent=`${formatMoneyTiered(line.finalUnitPriceCents)} \xD7 ${line.quantity}`,prices.appendChild(finalPrice)),top.appendChild(title),top.appendChild(prices);const variant=document.createElement("div");return variant.className="tiered-discount-cart__detail-variant",variant.textContent=line.variantTitle||"",variant.hidden=!line.variantTitle,body.appendChild(top),body.appendChild(variant),item.appendChild(thumb),item.appendChild(body),item},getCollapsedDetailsHeight=(list,itemCount)=>!list?.children?.length||itemCount<=0?0:140,renderCartDetails=(root,state,solution,groupLineIndexes)=>{const details=root.querySelector("[data-tiered-discount-details]"),list=root.querySelector("[data-tiered-discount-details-list]"),moreButton=root.querySelector("[data-tiered-discount-details-more]");if(!details||!list)return;const lines=(Array.isArray(groupLineIndexes)?groupLineIndexes:[]).map(index=>state.rawLines[index]||solution.lineInfos[index]).filter(line=>line&&line.id&&line.id!==LOCAL_LINE_ID);if(!lines.length){details.hidden=!0,list.textContent="",moreButton&&(moreButton.hidden=!0,moreButton.setAttribute("aria-expanded","false"));return}details.hidden=!1,list.textContent="";const expanded=root.dataset.tieredDiscountExpanded==="true";lines.forEach(line=>{list.appendChild(createDetailEntryNode(line))});const hasMore=lines.length>2;if(hasMore){const collapsedHeight=getCollapsedDetailsHeight(list,2),expandedHeight=list.scrollHeight;list.style.maxHeight=`${expanded?expandedHeight:collapsedHeight}px`}else list.style.maxHeight=`${list.scrollHeight}px`;moreButton&&(moreButton.hidden=!hasMore,moreButton.setAttribute("aria-expanded",expanded?"true":"false"),expanded&&(moreButton.hidden=!0))},resetDrawerBulkOffers=()=>{document.querySelectorAll("[data-cart-bulk-offers]").forEach(module=>{module.dataset.cartBulkOffersState="closed",module.setAttribute("aria-hidden","true")})},isBulkOffersOpen=module=>module?.dataset.cartBulkOffersState==="open",setBulkOffersState=(module,open)=>{module&&(module.dataset.cartBulkOffersState=open?"open":"closed",module.setAttribute("aria-hidden",open?"false":"true"))},syncBulkOffersTriggers=()=>{document.querySelectorAll("[data-cart-bulk-offers-trigger]").forEach(trigger=>{const scope=trigger.closest("[data-cart-bulk-offers-scope]"),module=scope?.querySelector("[data-cart-bulk-offers]"),roots=scope?.querySelectorAll("[data-tiered-discount-root]"),hasVisibleRoot=roots?Array.from(roots).some(root=>!root.hidden):!1;if(module){const hidden=!hasVisibleRoot;hidden&&setBulkOffersState(module,!1),module.hidden=hidden,module.setAttribute("aria-hidden",hidden?"true":"false"),trigger.hidden=hidden}const expanded=isBulkOffersOpen(module);trigger.setAttribute("aria-expanded",expanded?"true":"false")})},buildRootState=root=>{const dataNode=root.querySelector("[data-tiered-discount-data]");if(!dataNode)return null;const campaigns=normalizeCampaigns(parseJsonScript(root,"[data-tiered-discount-campaigns]",[]),{includeTitleMessage:!0});if(!campaigns.length)return null;const cartLines=normalizeLines(parseJsonScript(root,"[data-tiered-discount-cart-lines]",[])),context=dataNode.dataset.tieredDiscountContext||"product",displayCampaignId=(dataNode.dataset.tieredDiscountDisplayCampaignId||"").trim(),parsedLocalCampaignIds=parseJson(dataNode.dataset.tieredDiscountLocalCampaignIds||"[]",[]),localCampaignIds=Array.isArray(parsedLocalCampaignIds)?parsedLocalCampaignIds.map(discountId=>String(discountId||"").trim()).filter(Boolean):[],initialLocalQty=parseNumber(dataNode.dataset.tieredDiscountLocalQty,1),localQty=context==="cart"?0:parseNumber(root.closest("[data-tiered-discount-scope]")?.querySelector('input[name="quantity"]')?.value,initialLocalQty),basePrice=parseNumber(dataNode.dataset.tieredDiscountBasePrice,0),baseCompareAtPrice=parseNumber(dataNode.dataset.tieredDiscountBaseCompareAtPrice,0),rawLines=[...cartLines];return context!=="cart"&&localQty>0&&localCampaignIds.length&&rawLines.push({id:LOCAL_LINE_ID,quantity:localQty,subtotalCents:basePrice*localQty,campaignIds:localCampaignIds}),{dataNode,campaigns,context,compact:root.dataset.tieredDiscountCompact==="true",displayCampaignId,localCampaignIds,localQty,basePrice,baseCompareAtPrice,rawLines,messages:{addTemplate:decodeHtmlEntities(dataNode.dataset.tieredDiscountMessageAdd||""),unlockedTemplate:decodeHtmlEntities(dataNode.dataset.tieredDiscountMessageUnlocked||""),upgradeTemplate:decodeHtmlEntities(dataNode.dataset.tieredDiscountMessageUpgrade||""),pdp:{cartAdd:decodeHtmlEntities(dataNode.dataset.tieredDiscountMessagePdpCartAdd||""),cartUpgrade:decodeHtmlEntities(dataNode.dataset.tieredDiscountMessagePdpCartUpgrade||""),cartMax:decodeHtmlEntities(dataNode.dataset.tieredDiscountMessagePdpCartMax||"")}},labels:{itemLabelSingular:decodeHtmlEntities(dataNode.dataset.tieredDiscountItemLabelSingular||""),itemLabelPlural
1:decodeHtmlEntities(dataNode.dataset.tieredDiscountItemLabelPlural||""),tooltipOff:decodeHtmlEntities(dataNode.dataset.tieredDiscountTooltipOffLabel||"")},progressLabel:decodeHtmlEntities(dataNode.dataset.tieredDiscountProgressLabel||""),moreUrl:decodeHtmlEntities(dataNode.dataset.tieredDiscountMoreUrl||"")}},updateRoot=async root=>{await fetchLatestRootPayload(root);const state=buildRootState(root);if(!state||!state.rawLines.length){root.hidden=!0;return}const solution=optimizeDiscountAssignments(state.campaigns,state.rawLines,state.context==="cart"?{}:{mode:"single_best",requiredLineId:LOCAL_LINE_ID}),resolved=resolveProductDisplayCampaign(solution,{displayCampaignId:state.displayCampaignId,localLineId:LOCAL_LINE_ID,localQty:state.localQty,basePrice:state.basePrice});if(!resolved||!resolved.campaign||!resolved.campaign.tiers.length){root.hidden=!0;return}const{campaign,metricValue,currentTier,nextTier,groupLineIndexes}=resolved,maxOverride=getExtendedProgressMax(campaign.tiers,campaign.basis),campaignIndex=state.campaigns.findIndex(c=>String(c?.discountId||"").trim()===String(campaign.discountId||"").trim()),applicableLineIndexes=state.context!=="cart"&&campaignIndex>=0?solution.lineInfos.map((line,index)=>line?.applicableCampaignIndexes?.includes(campaignIndex)?index:-1).filter(index=>index>=0):Array.isArray(groupLineIndexes)?groupLineIndexes:[],displayMetricValue=state.context!=="cart"?applicableLineIndexes.reduce((sum,lineIndex)=>{const line=solution.lineInfos[lineIndex];return sum+(campaign.basis==="amount"?parseNumber(line?.subtotalCents,0):parseNumber(line?.quantity,0))},0):metricValue,displayCurrentTier=typeof getCurrentTier=="function"?getCurrentTier(campaign.tiers,campaign.basis,displayMetricValue):currentTier,displayNextTier=typeof getNextTier=="function"?getNextTier(campaign.tiers,campaign.basis,displayMetricValue):nextTier,localLineIndex=solution.lineInfos.findIndex(line=>line.id===LOCAL_LINE_ID),localMetric=localLineIndex>=0?campaign.basis==="amount"?parseNumber(solution.lineInfos[localLineIndex]?.subtotalCents,0):parseNumber(solution.lineInfos[localLineIndex]?.quantity,0):0,cartMetricValue=Math.max(0,displayMetricValue-localMetric),cartItemCount=applicableLineIndexes.reduce((sum,lineIndex)=>{const line=solution.lineInfos[lineIndex];return!line||line.id===LOCAL_LINE_ID?sum:sum+parseNumber(line.quantity,0)},0),cartCurrentTier=typeof getCurrentTier=="function"?getCurrentTier(campaign.tiers,campaign.basis,cartMetricValue):displayCurrentTier,cartNextTier=typeof getNextTier=="function"?getNextTier(campaign.tiers,campaign.basis,cartMetricValue):displayNextTier,progress=getProgressRatio(campaign.tiers,campaign.basis,displayMetricValue,{maxOverride}),title=root.querySelector("[data-tiered-discount-title-text]"),message=root.querySelector("[data-tiered-discount-message]"),more=root.querySelector("[data-tiered-discount-more]"),progressFill=root.querySelector("[data-tiered-discount-progress-fill]"),cartFill=root.querySelector("[data-tiered-discount-progress-fill-cart]"),preselectFill=root.querySelector("[data-tiered-discount-progress-fill-preselect]");if(title&&(title.textContent=campaign.discountTitle||""),message){const pdpMessage=getPdpMessage({context:state.context,valueType:campaign.valueType,basis:campaign.basis,addTemplate:state.messages.addTemplate,unlockedTemplate:state.messages.unlockedTemplate,upgradeTemplate:state.messages.upgradeTemplate,pdpTemplates:state.messages.pdp,cartMetric:cartMetricValue,cartCount:cartItemCount,itemLabelSingular:state.labels.itemLabelSingular,itemLabelPlural:state.labels.itemLabelPlural,totalMetric:displayMetricValue,totalCurrentTier:displayCurrentTier,totalNextTier:displayNextTier,cartCurrentTier,cartNextTier});message.textContent=pdpMessage||getMessage({compact:state.compact,addTemplate:state.messages.addTemplate,unlockedTemplate:state.messages.unlockedTemplate,upgradeTemplate:state.messages.upgradeTemplate,itemLabelSingular:state.labels.itemLabelSingular,itemLabelPlural:state.labels.itemLabelPlural,valueType:campaign.valueType,basis:campaign.basis,metric:cartMetricValue,currentTier:cartCurrentTier,nextTier:cartNextTier})}if(more){const url=String(state.moreUrl||"").trim();url?(more.href=url,more.hidden=!1):more.hidden=!0}
1if(cartFill&&preselectFill){const indexes=applicableLineIndexes,localLineIndex2=solution.lineInfos.findIndex(line=>line.id===LOCAL_LINE_ID),localLine=(localLineIndex2>=0?indexes.includes(localLineIndex2):!1)?solution.lineInfos[localLineIndex2]:null,localMetric2=localLine?campaign.basis==="amount"?parseNumber(localLine.subtotalCents,0):parseNumber(localLine.quantity,0):0,cartMetric=Math.max(0,displayMetricValue-localMetric2),cartRatio=getProgressRatio(campaign.tiers,campaign.basis,cartMetric,{maxOverride}),splitRatio=Math.max(0,progress-cartRatio);cartFill.style.width=`${Math.round(cartRatio*100)}%`,preselectFill.style.left=`${Math.round(cartRatio*100)}%`,preselectFill.style.width=`${Math.round(splitRatio*100)}%`,preselectFill.hidden=splitRatio<=0;const hasCartFill=cartRatio>0,hasPreselectFill=splitRatio>0;cartFill.classList.toggle("is-joined",hasCartFill&&hasPreselectFill),preselectFill.classList.toggle("is-joined",hasCartFill&&hasPreselectFill)}else progressFill&&(progressFill.style.width=`${Math.round(progress*100)}%`);const progressBar=root.querySelector("[role='progressbar']");progressBar&&(progressBar.setAttribute("aria-label",state.progressLabel),progressBar.setAttribute("aria-valuenow",`${Math.round(progress*100)}`)),renderProgressPoints(root,campaign.tiers,campaign.basis,displayMetricValue,{maxOverride,valueType:campaign.valueType,offLabel:state.labels.tooltipOff}),renderCartDetails(root,state,solution,groupLineIndexes),root.hidden=!1},updateAll=async()=>{await Promise.all(Array.from(document.querySelectorAll(ROOT_SELECTOR)).map(root=>updateRoot(root))),syncBulkOffersTriggers()},handleDocumentClick=event=>{const progressPoint=event.target.closest("[data-tiered-discount-point]");if(progressPoint&&isMobileTooltipViewport()){toggleProgressTooltip(progressPoint);return}isMobileTooltipViewport()&&closeProgressTooltips();const moreButton=event.target.closest("[data-tiered-discount-details-more]");if(moreButton){const root=moreButton.closest(ROOT_SELECTOR);if(!root)return;root.dataset.tieredDiscountExpanded="true",updateRoot(root);return}const closeButton=event.target.closest("[data-cart-bulk-offers-close]");if(closeButton){const module2=closeButton.closest("[data-cart-bulk-offers]");module2&&(setBulkOffersState(module2,!1),syncBulkOffersTriggers());return}const trigger=event.target.closest("[data-cart-bulk-offers-trigger]");if(!trigger)return;const module=trigger.closest("[data-cart-bulk-offers-scope]")?.querySelector("[data-cart-bulk-offers]");if(module){const willOpen=!isBulkOffersOpen(module);setBulkOffersState(module,willOpen),syncBulkOffersTriggers(),willOpen&&window.setTimeout(()=>{module.scrollIntoView({behavior:"smooth",block:"nearest"})},120)}},handleCartDrawerOpen=()=>{resetDrawerBulkOffers(),document.querySelectorAll(ROOT_SELECTOR).forEach(root=>{delete root.dataset.tieredDiscountExpanded}),updateAll()},handleCartDrawerClose=()=>{updateAll()},handleCartChanged=()=>{markCartChanged(),updateAll()};document.addEventListener("DOMContentLoaded",updateAll),document.addEventListener("click",handleDocumentClick),document.addEventListener("quick-view:open",updateAll),document.addEventListener("product:section-rendered",updateAll),document.addEventListener("quantity:change",updateAll),document.addEventListener("cart:item-added",handleCartChanged),document.addEventListener("cart-drawer:open",handleCartDrawerOpen),document.addEventListener("cart-drawer:close",handleCartDrawerClose),document.addEventListener("line-item:change:end",handleCartChanged)})(); 2//# sourceMappingURL=/cdn/shop/t/141/assets/tiered-discount.js.map?v=136527718140552701011782966570
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.