PageSourceSearch

https://frameworth.com/cdn/shop/t/157/assets/limited-quantity-countdown.js?v=162435866425054850451766165154

js frameworth.com collected 2026-09-26 11:40:34 UTC 2,296 bytes, 2 lines download raw bytes

1class LimitedQuantityCountdown{constructor(element){if(this.element=element,this.endDate=new Date(element.dataset.endDate),this.daysEl=element.querySelector(".lq-countdown-days, .lqb-countdown-days"),this.hoursEl=element.querySelector(".lq-countdown-hours, .lqb-countdown-hours"),this.minutesEl=element.querySelector(".lq-countdown-minutes, .lqb-countdown-minutes"),this.secondsEl=element.querySelector(".lq-countdown-seconds, .lqb-countdown-seconds"),isNaN(this.endDate.getTime())){console.error("Invalid end date:",element.dataset.endDate);return}this.updateCountdown(),this.interval=setInterval(()=>this.updateCountdown(),1e3)}updateCountdown(){const now=new Date,timeRemaining=this.endDate-now;if(timeRemaining<=0){this.handleExpired();return}const days=Math.floor(timeRemaining/(1e3*60*60*24)),hours=Math.floor(timeRemaining%(1e3*60*60*24)/(1e3*60*60)),minutes=Math.floor(timeRemaining%(1e3*60*60)/(1e3*60)),seconds=Math.floor(timeRemaining%(1e3*60)/1e3);this.daysEl&&(this.daysEl.textContent=String(days).padStart(2,"0")),this.hoursEl&&(this.hoursEl.textContent=String(hours).padStart(2,"0")),this.minutesEl&&(this.minutesEl.textContent=String(minutes).padStart(2,"0")),this.secondsEl&&(this.secondsEl.textContent=String(seconds).padStart(2,"0"))}handleExpired(){clearInterval(this.interval),this.daysEl&&(this.daysEl.textContent="00"),this.hoursEl&&(this.hoursEl.textContent="00"),this.minutesEl&&(this.minutesEl.textContent="00"),this.secondsEl&&(this.secondsEl.textContent="00"),this.element.classList.add("lq-countdown--expired","lqb-countdown--expired");const saleBox=this.element.closest(".limited-quantity-box, .limited-quantity-bar");saleBox&&saleBox.classList.add("limited-quantity--expired")}destroy(){this.interval&&clearInterval(this.interval)}}function initCountdownTimers(){const countdownElements=document.querySelectorAll("[data-end-date]"),timers=[];return countdownElements.forEach(element=>{const timer=new LimitedQuantityCountdown(element);timers.push(timer)}),timers}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",initCountdownTimers):initCountdownTimers(),document.addEventListener("shopify:section:load",initCountdownTimers);
2//# sourceMappingURL=/cdn/shop/t/157/assets/limited-quantity-countdown.js.map?v=162435866425054850451766165154

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.