1class SliderComponent extends HTMLElement{constructor(){super(),this.init()}init(){if(this.slider=this.classList.contains("slideshow")?this:this.querySelector('[id^="Slider-"]'),this.sliderItems=Array.from(this.querySelectorAll('[id^="Slide-"]')),this.enableSliderLooping=!1,this.currentPageElement=this.querySelector(".slider-counter--current"),this.pageTotalElement=this.querySelector(".slider-counter--total"),this.prevButton=this.querySelector('button[name="previous"]'),this.nextButton=this.querySelector('button[name="next"]'),this.enableDrag=this.dataset.draggable==="true",!this.slider)return;this.sliderRect=this.slider.getBoundingClientRect(),this.sliderFirstItem=this.sliderItems[0],this.sliderSecondItem=this.sliderItems[1],this.initPages(),new ResizeObserver(this.debounce(()=>this.initPages(),200)).observe(this.slider),this.slider.addEventListener("scroll",this.update.bind(this),{passive:!0}),this.prevButton?.addEventListener("click",this.onButtonClick.bind(this)),this.nextButton?.addEventListener("click",this.onButtonClick.bind(this)),this.enableDrag&&this.addClickAndDrag()}debounce(func,delay){let timeout;return function(...args){clearTimeout(timeout),timeout=setTimeout(()=>func.apply(this,args),delay)}}initPages(){if(this.sliderItemsToShow=this.sliderItems.filter(element=>element.clientWidth>0),this.sliderItemsToShow.length<2)return;const firstItemOffsetLeft=this.sliderItemsToShow[0].offsetLeft,secondItemOffsetLeft=this.sliderItemsToShow[1].offsetLeft;this.sliderItemOffset=secondItemOffsetLeft-firstItemOffsetLeft,this.slidesPerPage=Math.floor((this.slider.clientWidth-firstItemOffsetLeft)/this.sliderItemOffset),this.totalPages=this.sliderItemsToShow.length-this.slidesPerPage+1,this.update()}update(){if(!this.slider)return;const previousPage=this.currentPage;if(this.currentPage=Math.round(this.slider.scrollLeft/this.sliderItemOffset)+1,this.currentPageElement&&this.pageTotalElement&&(this.currentPageElement.textContent=this.currentPage,this.pageTotalElement.textContent=this.totalPages),this.currentPage!==previousPage&&this.dispatchEvent(new CustomEvent("slideChanged",{detail:{currentPage:this.currentPage,currentElement:this.sliderItemsToShow[this.currentPage-1]}})),!this.enableSliderLooping){const isAtStart=this.slider.scrollLeft===0,isAtEnd=this.slider.scrollLeft+this.slider.clientWidth>=this.slider.scrollWidth;this.isSlideVisible(this.sliderItemsToShow[0])&&this.slider.scrollLeft===0?(this.prevButton?.setAttribute("disabled","disabled"),this.prevButton&&isAtStart==!0&&isAtEnd==!0&&(this.prevButton.style.display="none")):(this.prevButton?.removeAttribute("disabled"),this.prevButton&&(this.prevButton.style.display="flex")),this.isSlideVisible(this.sliderItemsToShow[this.sliderItemsToShow.length-1])?(this.nextButton?.setAttribute("disabled","disabled"),this.nextButton&&isAtStart==!0&&isAtEnd==!0&&(this.nextButton.style.display="none")):(this.nextButton?.removeAttribute("disabled"),this.nextButton&&(this.nextButton.style.display="flex"))}}isSlideVisible(element){const lastVisibleSlide=this.slider.clientWidth+this.slider.scrollLeft;return element.offsetLeft+element.clientWidth<=lastVisibleSlide&&element.offsetLeft>=this.slider.scrollLeft}onButtonClick(event){event.preventDefault();const step=parseInt(event.currentTarget.dataset.step)||1;this.slideScrollPosition=event.currentTarget.name==="next"?this.slider.scrollLeft+step*this.sliderItemOffset:this.slider.scrollLeft-step*this.sliderItemOffset,this.slider.scrollTo({left:this.slideScrollPosition})}addClickAndDrag(){let isDown=!1,startX,startScrollLeft,preventClick=!1;const interactiveSelector="select, input, textarea, button, label, option, [data-no-drag]";this.slider.addEventListener("mousedown",e=>{window.innerWidth<=749||e.target.closest(interactiveSelector)||(isDown=!0,startX=e.pageX,startScrollLeft=this.slider.scrollLeft,this.slider.style.scrollSnapType="none",this.slider.style.scrollBehavior="auto",e.preventDefault())}),this.slider.addEventListener("mouseup",()=>{window.innerWidth<=749||(isDown&&(isDown=!1,this.slider.style.scrollBehavior="",this.slider.style.scrollSnapType=""),setTimeout(()=>preventClick=!1,0))}),this.slider.addEventListener("mousemove",e=>{if(window.innerWidth<=749||!isDown)return;const walk=e.pageX-startX;this.slider.scrollLeft=startScrollLeft-walk,preventClick=!0}),this.slider.addEventListener("click",e=>{preventClick&&e.preventDefault()})}connectedCallback(){this.dataset.reset_scroll==="true"&&(this.slider.scrollLeft=0)}}customElements.define("slider-component",SliderComponent);class SlideshowComponent extends SliderComponent{constructor(){super(),this.sliderControlWrapper=this.querySelector(".slider-buttons"),!this.dataset.enableSliderLooping=="false"&&(this.enableSliderLooping=!0),this.sliderControlWrapper&&(this.sliderControlLinksArray=Array.from(this.sliderControlWrapper.querySelectorAll(".slider-counter__link")),this.sliderControlLinksArray.forEach(link=>link.addEventListener("click",this.linkToSlide.bind(this))),this.slider.addEventListener("scroll",this.setSlideVisibility.bind(this),{passive:!0}),this.setSlideVisibility(),this.getAttribute("data-autoplay")==="true"&&this.setAutoPlay())}setAutoPlay(){this.autoplaySpeed=this.slider.dataset.speed*1e3,this.play()}setSlideVisibility(){this.sliderItemsToShow.forEach((item,index)=>{const isActive=index===this.currentPage-1;item.querySelectorAll('a, button, input, select, textarea, [tabindex]:not
1([tabindex="-1"])').length===0&&(item.setAttribute("aria-hidden",!isActive),item.setAttribute("tabindex",isActive?"0":"-1"))})}linkToSlide(event){event.preventDefault();const scrollPosition=this.sliderControlLinksArray.indexOf(event.currentTarget)*this.sliderItemsToShow[0].clientWidth;this.slider.scrollTo({left:scrollPosition})}}customElements.define("slideshow-component",SlideshowComponent); 2//# sourceMappingURL=/cdn/shop/t/253/assets/ua_slider-component.js.map?v=176615294694023908241785932114
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.