1class u{constructor(n="#siteheader-banner"){var t;this.bannerElement=document.querySelector(n),this.closeBtn=(t=this.bannerElement)==null?void 0:t.querySelector(".banner__close-btn"),this.countdownContainer=null,this.intervalId=null,this.init()}init(){if(!this.bannerElement||(this.initCloseFunctionality(),this.countdownContainer=this.bannerElement.querySelector(".banner__countdown"),!this.countdownContainer))return;const n=this.countdownContainer.dataset.countdownDate;n&&this.startCountdown(n)}startCountdown(n){const t=new Date(n).getTime();if(isNaN(t))return;const o=this.countdownContainer.querySelector(".banner__countdown-number--days"),e=this.countdownContainer.querySelector(".banner__countdown-number--hours"),s=this.countdownContainer.querySelector(".banner__countdown-number--minutes"),r=this.countdownContainer.querySelector(".banner__countdown-number--seconds");!o||!e||!s||!r||(this.updateCountdown(t,{days:o,hours:e,minutes:s,seconds:r}),this.intervalId=setInterval(()=>{this.updateCountdown(t,{days:o,hours:e,minutes:s,seconds:r})&&(this.stopCountdown(),this.onCountdownExpired())},1e3))}updateCountdown(n,t){const o=new Date().getTime(),e=n-o;if(e<0)return t.days.textContent="0",t.hours.textContent="0",t.minutes.textContent="0",t.seconds.textContent="0",!0;const s=Math.floor(e/(1e3*60*60*24)),r=Math.floor(e%(1e3*60*60*24)/(1e3*60*60)),a=Math.floor(e%(1e3*60*60)/(1e3*60)),d=Math.floor(e%(1e3*60)/1e3);return t.days.textContent=this.padZero(s),t.hours.textContent=this.padZero(r),t.minutes.textContent=this.padZero(a),t.seconds.textContent=this.padZero(d),!1}stopCountdown(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null)}onCountdownExpired(){if(this.bannerElement){this.bannerElement.classList.add("banner--expired");const n=new CustomEvent("bannerCountdownExpired",{detail:{banner:this.bannerElement,countdown:this.countdownContainer}});document.dispatchEvent(n)}}initCloseFunctionality(){this.closeBtn&&this.closeBtn.addEventListener("click",n=>{n.preventDefault(),this.closeBanner()})}closeBanner(){if(!this.bannerElement)return;this.stopCountdown(),this.bannerElement.classList.add("banner--closing"),setTimeout(()=>{this.bannerElement&&this.bannerElement.parentNode&&this.bannerElement.parentNode.removeChild(this.bannerElement)},300);const n=new CustomEvent("bannerClosed",{detail:{banner:this.bannerElement}});document.dispatchEvent(n)}padZero(n){return n.toString().padStart(2,"0")}refresh(){var t,o;this.stopCountdown();const n=(o=(t=this.countdownContainer)==null?void 0:t.dataset)==null?void 0:o.countdownDate;n&&this.startCountdown(n)}destroy(){this.stopCountdown()}getTimeRemaining(){if(!this.bannerElement||!this.countdownContainer)return null;const n=this.countdownContainer.dataset.countdownDate;if(!n)return null;const t=new Date(n).getTime(),o=new Date().getTime(),e=t-o;return e<0?null:{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),total:e}}}window.addEventListener("content.loaded",i=>{var e;if(!((e=i.detail)==null?void 0:e.context)||!document.getElementById("header"))return;const o=new u;window&&(window.bannerCountdown=o)});
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.