1"use strict";(globalThis.webpackChunkloop_web=globalThis.webpackChunkloop_web||[]).push([[9616],{9616(s,t,i){i.r(t),i.d(t,{createFrom:()=>h});const e=864e5,n=36e5,o=6e4;class l{constructor(s){this.el=s,this.active=!1,this.width=0,this.resizeRequested=!1,this.resizeTimeout=null,this.columnSettings=s.dataset.columns.toLowerCase(),this.stage=s.querySelector(".countdown--stage"),this.liveAlert=s.querySelector(".countdown--live-alert"),this.flipMode=s.classList.contains("countdown--flip"),this.deadline=new Date(s.dataset.deadline).getTime(),isNaN(this.deadline)&&(this.deadline=0),this.columns={days:{render:this.columnSettings.indexOf("d")>=0},hours:{render:this.columnSettings.indexOf("h")>=0},minutes:{render:this.columnSettings.indexOf("m")>=0},seconds:{render:this.columnSettings.indexOf("s")>=0}};let t=this.getRemaining();this.columns.days.digitCount=Math.max(t.days.toString().length,2),this.columns.hours.digitCount=Math.max(t.hours.toString().length,2),this.columns.minutes.digitCount=Math.max(t.minutes.toString().length,2),this.columns.seconds.digitCount=Math.max(t.seconds.toString().length,2);let i="",e=this.flipMode?'<div class="column--digits"><div class="column--digits-now--top">0</div><div class="column--digits-now--bottom"><span>0</span></div><div class="column--digits-next--top">1</div><div class="column--digits-next--bottom"><span>1</span></div></div>':'<div class="column--digits"><div class="column--digits-now">0</div><div class="column--digits-next">1</div></div>';if(this.columns.days.render){i+='<div class="column column--days">';for(let s=0;s<this.columns.days.digitCount;s++)i+=e;i+='<div class="column--label">Days</div></div>'}if(this.columns.hours.render){i+='<div class="column column--hours">';for(let s=0;s<this.columns.hours.digitCount;s++)i+=e;i+='<div class="column--label"><abbr title="Hours">Hrs</abbr></div></div>'}if(this.columns.minutes.render){i+='<div class="column column--minutes">';for(let s=0;s<this.columns.minutes.digitCount;s++)i+=e;i+='<div class="column--label"><abbr title="Minutes">Mins</abbr></div></div>'}if(this.columns.seconds.render){i+='<div class="column column--seconds">';for(let s=0;s<this.columns.seconds.digitCount;s++)i+=e;i+='<div class="column--label"><abbr title="Seconds">Secs</abbr></div></div>'}this.stage.innerHTML=i,this.columns.days.render&&(this.columns.days.digits=[],[...this.stage.querySelectorAll(".column--days .column--digits")].forEach(s=>{this.columns.days.digits.push(new u(s,this.flipMode))})),this.columns.hours.render&&(this.columns.hours.digits=[],[...this.stage.querySelectorAll(".column--hours .column--digits")].forEach(s=>{this.columns.hours.digits.push(new u(s,this.flipMode))})),this.columns.minutes.render&&(this.columns.minutes.digits=[],[...this.stage.querySelectorAll(".column--minutes .column--digits")].forEach(s=>{this.columns.minutes.digits.push(new u(s,this.flipMode))})),this.columns.seconds.render&&(this.columns.seconds.digits=[],[...this.stage.querySelectorAll(".column--seconds .column--digits")].forEach(s=>{this.columns.seconds.digits.push(new u(s,this.flipMode))})),this.update(!0),this.ro=new ResizeObserver(s=>{for(let t of s){const s=t.contentRect;s.width!=this.width&&(this.width=Math.round(s.width),this.resizeRequested||this.requestResize())}}),this.ro.observe(this.el)}requestResize(){clearTimeout(this.resizeTimeout),this.resizeRequested=!0,this.resizeTimeout=setTimeout(()=>{this.resize()},100)}resize(){let s=this.stage.offsetWidth,t=s>this.width?this.width/s:1;this.el.style.setProperty("--scale",`${t}`),this.resizeRequested=!1,this.active||(this.el.classList.add("active"),this.active=!0)}update(s){let t=this.getRemaining(),i="Counting down: ";t.days>0&&this.columns.days.render&&(i+=t.days+" days, "),(t.days>0||t.hours>0)&&this.columns.hours.render&&(i+=t.hours+" hours, "),(t.days>0||t.hours>0||t.minutes>0)&&this.columns.minutes.render&&(i+=t.minutes+" minutes, "),this.columns.seconds.render&&(i+=t.seconds+" seconds."),this.liveAlert.innerHTML=i,this.columns.days.render&&this.updateDigits(t.days,this.columns.days.digitCount,this.columns.days.digits,s),this.columns.hours.render&&this.updateDigits(t.hours,this.columns.hours.digitCount,this.columns.hours.digits,s),this.columns.minutes.render&&this.updateDigits(t.minutes,this.columns.minutes.digitCount,this.columns.minutes.digits,s),this.columns.seconds.render&&this.updateDigits(t.seconds,this.columns.seconds.digitCount,this.columns.seconds.digits,s),t.complete||setTimeout(()=>{this.update(!1)},1e3)}getRemaining(){let s=(new Date).getTime(),t=this.deadline-s;return t<0&&(t=0),{days:Math.floor(t/e),hours:this.columns.days.render?Math.floor(t%e/n):Math.floor(t/n),minutes:this.columns.hours.render?Math.floor(t%n/o):Math.floor(t/o),seconds:this.columns.minutes.render?Math.floor(t%o/1e3):Math.floor(t/1e3),complete:0==t}}updateDigits(s,t,i,e){let n=s.toString();for(;n.length<t;)n="0"+n;for(let s=0;s<t;s++){let t=n.charAt(s);i[s].update(t,e)}}}class u{constructor(s,t){this.el=s,this.flipMode=t,this.timeout=null,t?(this.nowObj=[this.el.querySelector(".column--digits-now--top"),this.el.querySelector(".column--digits-now--bottom span")],this.nextObj=[this.el.querySelector(".column--digits-next--top"),this.el.querySelector(".column--digits-next--bottom span")]):(this.nowObj=this.el.querySelector(".column--digits-now"),this.nextObj=this.el.querySelector(".column--digits-next")),this.prev="0"}update(s,t){t?this.flipMode?(this.nowObj[0].innerHTML=s,this.nowObj[1].innerHTML=s):this.nowObj.innerHTML=s:s!=this.prev&&(this.flipMode?(this.nextObj[0].innerHTML=s,this.nextObj[1].innerHTML=s,this.el.classList.add("shift"),clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.nowObj[0].innerHTML=s,this.nowObj[1].innerHTML=s,this.el.classList.remove("shift"),this.timeout=null},900)):(this.nextObj.innerHTML=s,this.el.classList.add("shift"),clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.nowObj.innerHTML=s,this.el.classList.remove("shift"),this.timeout=null},900))),this.prev=s}}
1function h(s){s.forEach(s=>{1===s.nodeType&&new l(s)})}}}]);
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.