1(()=>{if(window.__productCardBadgesScriptInitialized===!0)return;window.__productCardBadgesScriptInitialized=!0;const BADGES_ROOT_SELECTOR="[data-product-card-badges]",BADGE_SELECTOR="[data-product-card-badge]",VALID_POSITIONS=["left","center","right"];function isHTMLElement(element){return element instanceof HTMLElement}function getNumberDatasetValue(badge,key){const value=Number(badge.dataset[key]||0);return Number.isFinite(value)?value:0}function getBadgeTimeState(badge,nowTs){const startTs=getNumberDatasetValue(badge,"startTs"),endTs=getNumberDatasetValue(badge,"endTs"),isBeforeStart=startTs>0&&nowTs<startTs,isExpired=endTs>0&&nowTs>=endTs;let nextTransitionTs=null;return isBeforeStart?nextTransitionTs=startTs:!isExpired&&endTs>nowTs&&(nextTransitionTs=endTs),{isActive:!isBeforeStart&&!isExpired,nextTransitionTs}}function getHigherPriorityBadge(currentBadge,candidateBadge){if(!currentBadge)return candidateBadge;const currentPriority=getNumberDatasetValue(currentBadge,"priority")||99;return(getNumberDatasetValue(candidateBadge,"priority")||99)<currentPriority?candidateBadge:currentBadge}function showBadge(badge){badge.hidden=!1,badge.setAttribute("aria-hidden","false")}function hideBadge(badge){badge.hidden=!0,badge.setAttribute("aria-hidden","true")}function syncProductCardBadges(badgesRoot){const nowTs=Math.floor(Date.now()/1e3),badges=Array.from(badgesRoot.querySelectorAll(BADGE_SELECTOR)).filter(isHTMLElement),selectedByPosition={left:null,center:null,right:null};let nextTransitionTs=null;badges.forEach(badge=>{const state=getBadgeTimeState(badge,nowTs);if(state.nextTransitionTs&&(nextTransitionTs=nextTransitionTs===null?state.nextTransitionTs:Math.min(nextTransitionTs,state.nextTransitionTs)),!state.isActive)return;const position=badge.dataset.position||"left";VALID_POSITIONS.includes(position)&&(selectedByPosition[position]=getHigherPriorityBadge(selectedByPosition[position],badge))});const selectedBadges=Object.values(selectedByPosition).filter(Boolean);badges.forEach(badge=>{selectedBadges.includes(badge)?showBadge(badge):hideBadge(badge)});const hasVisibleBadges=selectedBadges.length>0;return badgesRoot.hidden=!hasVisibleBadges,badgesRoot.setAttribute("aria-hidden",hasVisibleBadges?"false":"true"),nextTransitionTs}function initProductCardBadgesRoot(badgesRoot){if(badgesRoot.dataset.productCardBadgesInitialized==="true")return;badgesRoot.dataset.productCardBadgesInitialized="true";let timeoutId=null;const update=()=>{timeoutId&&(window.clearTimeout(timeoutId),timeoutId=null);const nextTransitionTs=syncProductCardBadges(badgesRoot);if(!nextTransitionTs)return;const nowTs=Math.floor(Date.now()/1e3),delayMs=Math.max((nextTransitionTs-nowTs)*1e3+100,1e3);timeoutId=window.setTimeout(update,delayMs)};
1update()}function initProductCardBadges(root=document){root.querySelectorAll(BADGES_ROOT_SELECTOR).forEach(badgesRoot=>{isHTMLElement(badgesRoot)&&initProductCardBadgesRoot(badgesRoot)})}initProductCardBadges(),document.addEventListener("DOMContentLoaded",()=>{initProductCardBadges()}),document.addEventListener("shopify:section:load",event=>{const target=event.target;target instanceof Element&&initProductCardBadges(target)})})(); 2//# sourceMappingURL=/cdn/shop/t/27/assets/product-card-badges.js.map?v=102516032174990277321783672095
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.