1class s{constructor(t){if(this.container=t,this.targetDate=new Date(this.container.dataset.countdown),this.elements={days:this.container.querySelector(".countdown-days"),hours:this.container.querySelector(".countdown-hrs"),minutes:this.container.querySelector(".countdown-mins"),seconds:this.container.querySelector(".countdown-sec")},!this.validateElements()){console.error("Required countdown elements are missing");return}this.init()}validateElements(){return Object.values(this.elements).every(t=>t!==null)}calculateTimeRemaining(){const t=new Date,e=this.targetDate-t;return e<0?{days:0,hours:0,minutes:0,seconds:0}:{days:Math.floor(e/(1e3*60*60*24)),hours:Math.floor(e%(1e3*60*60*24)/(1e3*60*60)),minutes:Math.floor(e%(1e3*60*60)/(1e3*60)),seconds:Math.floor(e%(1e3*60)/1e3)}}padNumber(t){return t.toString().padStart(2,"0")}updateDisplay(t){this.elements.days.textContent=this.padNumber(t.days),this.elements.hours.textContent=this.padNumber(t.hours),this.elements.minutes.textContent=this.padNumber(t.minutes),this.elements.seconds.textContent=this.padNumber(t.seconds)}init(){this.updateDisplay(this.calculateTimeRemaining()),this.interval=setInterval(()=>{const t=this.calculateTimeRemaining();this.updateDisplay(t),Object.values(t).every(e=>e===0)&&clearInterval(this.interval)},1e3)}destroy(){this.interval&&clearInterval(this.interval)}}function i(n){return new s(n)}export{i as default};
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.