class AnnouncementBar extends HTMLElement{constructor(){super(),this.config={autorotate:this.dataset.autorotate==="true",autorotateSpeed:parseInt(this.dataset.autorotateSpeed)*1e3,moveTime:parseFloat(this.dataset.speed),space:100},theme.config.mqlSmall?this.initOnMobile():this.initOnDesktop(),document.addEventListener("matchSmall",()=>{this.unload(),this.initOnMobile()}),document.addEventListener("unmatchSmall",()=>{this.unload(),this.initOnDesktop()})}initOnDesktop(){switch(this.dataset.layout){case"carousel":this.initCarousel();break;case"marquee":this.initMarquee();break;default:this.initMarqueeOptimized()}}initOnMobile(){switch(this.dataset.mobileLayout){case"carousel":this.initCarousel();break;case"marquee":this.initMarquee();break}}unload(){this.flickity&&typeof this.flickity.destroy=="function"&&(this.flickity.destroy(),this.removeNextPrevListeners()),this.classList.contains("marquee")&&(this.classList.remove("marquee"),this.querySelectorAll(".announcement-slider[aria-hidden]").forEach(slider=>{slider.remove()})),this.observer&&typeof this.observer.unobserve=="function"&&this.observer.unobserve(this)}initCarousel(){if(this.dataset.blockCount==1)return;const slider=this.querySelector(".announcement-slider");setTimeout(()=>{this.flickity=new Flickity(slider,{accessibility:!1,rightToLeft:theme.config.rtl,prevNextButtons:!1,pageDots:!1,wrapAround:!0,setGallerySize:!1,autoPlay:this.config.autorotate?this.config.autorotateSpeed:!1})}),this.prevButton=this.querySelector('button[name="previous"]'),this.nextButton=this.querySelector('button[name="next"]'),this.onNextPrevClick=this.handleNextPrevClick.bind(this),this.prevButton&&this.prevButton.addEventListener("click",this.onNextPrevClick),this.nextButton&&this.nextButton.addEventListener("click",this.onNextPrevClick)}removeNextPrevListeners(){this.prevButton&&this.prevButton.removeEventListener("click",this.onNextPrevClick),this.nextButton&&this.nextButton.removeEventListener("click",this.onNextPrevClick)}handleNextPrevClick(event){event.preventDefault();const target=event.currentTarget;target.name==="next"?this.flickity&&this.flickity.next():target.name==="previous"&&this.flickity&&this.flickity.previous()}initMarqueeOptimized(){setTimeout(()=>{this.marqueeAnimation()}),this.observer=new IntersectionObserver((entries,_observer)=>{entries.forEach(entry=>{entry.isIntersecting?this.isAnimated&&this.classList.remove("marquee--paused"):this.isAnimated&&this.classList.add("marquee--paused")})},{rootMargin:"0px 0px 50px 0px"}),this.observer.observe(this),window.addEventListener("resize",this.marqueeAnimation.bind(this))}marqueeAnimation(){const slider=this.querySelector(".announcement-slider");if(slider.scrollWidth>this.clientWidth){if(!this.isAnimated){for(let index=0;index<2;index++){const clone=slider.cloneNode(!0);clone.setAttribute("aria-hidden",!0),this.appendChild(clone)}this.classList.add("marquee"),this.style.setProperty("--duration",`${slider.scrollWidth/this.config.space*this.config.moveTime}s`),this.isAnimated=!0}}else if(this.isAnimated){for(let index=0;index<2;index++)this.removeChild(this.lastElementChild);this.classList.remove("marquee"),this.isAnimated=!1}}initMarquee(){setTimeout(()=>{const slider=this.querySelector(".announcement-slider");for(let index=0;index<10;index++){const clone=slider.cloneNode(!0);clone.setAttribute("aria-hidden",!0),this.appendChild(clone)}this.classList.add("marquee"),this.style.setProperty("--duration",`${slider.clientWidth/this.config.space*this.config.moveTime}s`)}),this.observer=new IntersectionObserver((entries,_observer)=>{entries.forEach(entry=>{entry.isIntersecting?this.classList.remove("marquee--paused"):this.classList.add("marquee--paused")})},{rootMargin:"0px 0px 50px 0px"}),this.observer.observe(this)}}customElements.define("announcement-bar",AnnouncementBar);
//# sourceMappingURL=/cdn/shop/t/106/assets/announcement-bar.js.map?v=174306662548894074801737919236