1class SliderComponent extends HTMLElement{constructor(){super(),this.initSlider()}initSlider(){this.slider=this.querySelector('[id^="Slider-"]'),this.sliderItems=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.links=this.slider?.querySelectorAll('a[id^="AbsoluteCardLink-"]'),this.isDown=!1,this.isDragging=!1,this.startX=null,this.clickThreshold=300,this.clickStartTime=0,this.scrollLeft,this.slider&&this.nextButton&&(this.initPages(),new ResizeObserver(t=>this.initPages()).observe(this.slider),this.slider.addEventListener("scroll",this.update.bind(this)),this.prevButton.addEventListener("click",this.onButtonClick.bind(this)),this.nextButton.addEventListener("click",this.onButtonClick.bind(this)),this.slider.addEventListener("mousedown",this.onMouseDownHandler.bind(this)),this.slider.addEventListener("mouseleave",this.onMouseLeaveHandler.bind(this)),this.slider.addEventListener("mouseup",this.onMouseUpHandler.bind(this)),this.slider.addEventListener("mousemove",this.onMouseMoveHandler.bind(this)),this.links?.forEach(t=>{t.addEventListener("click",this.onLinkClickHandler.bind(this))}))}initPages(){this.sliderItemsToShow=Array.from(this.sliderItems).filter(t=>0<t.clientWidth);var t=null!==this.getAttribute("data-always-enabled");this.sliderItemsToShow.length<2&&!t?(this.prevButton.setAttribute("disabled","disabled"),this.nextButton.setAttribute("disabled","disabled")):(this.sliderItemOffset=this.sliderItemsToShow[1].offsetLeft-this.sliderItemsToShow[0].offsetLeft,this.slidesPerPage=Math.floor((this.slider.clientWidth-this.sliderItemsToShow[0].offsetLeft)/this.sliderItemOffset)||1,this.totalPages=this.sliderItemsToShow.length-this.slidesPerPage+1,this.update())}resetPages(){this.sliderItems=this.querySelectorAll('[id^="Slide-"]'),this.initPages()}update(){var t;this.slider&&this.nextButton&&(t=this.currentPage,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!=t&&this.dispatchEvent(new CustomEvent("slideChanged",{detail:{currentPage:this.currentPage,currentElement:this.sliderItemsToShow[this.currentPage-1]}})),this.enableSliderLooping||(this.isSlideVisible(this.sliderItemsToShow[0])&&0===this.slider.scrollLeft?this.prevButton.setAttribute("disabled","disabled"):this.prevButton.removeAttribute("disabled"),this.isSlideVisible(this.sliderItemsToShow[this.sliderItemsToShow.length-1])?this.nextButton.setAttribute("disabled","disabled"):this.nextButton.removeAttribute("disabled")))}isSlideVisible(t,e=0){e=this.slider.clientWidth+this.slider.scrollLeft-e;return t.offsetLeft+t.clientWidth<=e&&t.offsetLeft>=this.slider.scrollLeft}onButtonClick(t){t.preventDefault(),t.stopPropagation();var e=2*(t.currentTarget.dataset.step||1);this.slideScrollPosition="next"===t.currentTarget.name?this.slider.scrollLeft+e*this.sliderItemOffset:this.slider.scrollLeft-e*this.sliderItemOffset,this.setSlidePosition(this.slideScrollPosition)}setSlidePosition(t){this.slider.scrollTo({left:t})}onMouseDownHandler(t){this.clickStartTime=Date.now(),this.isDragging=!1,this.isDown=!0,this.slider?.classList.add("active"),this.startX=t.clientX-this.slider?.offsetLeft,this.scrollLeft=this.slider?.scrollLeft}onMouseLeaveHandler(){this.isDown&&(this.isDown=!1,this.isDragging=!1,this.links?.forEach(t=>{t.setAttribute("draggable","true")}),this.slider?.classList.remove("isDragging"),this.slider?.classList.remove("active"))}onMouseUpHandler(){var t;this.isDown&&(this.isDown=!1,this.slider?.classList.remove("active"),t=Date.now()-this.clickStartTime,this.isDragging=t>this.clickThreshold,this.slider?.classList.remove("isDragging"),this.links?.forEach(t=>{t.setAttribute("draggable","true")}),this.slider?.classList.remove("active"),this.enableSliderLooping||(this.isSlideVisible(this.sliderItemsToShow[0])&&0===this.slider.scrollLeft?this.prevButton.setAttribute("disabled","disabled"):this.prevButton.removeAttribute("disabled"),this.isSlideVisible(this.sliderItemsToShow[this.sliderItemsToShow.length-1])?this.nextButton.setAttribute("disabled","disabled"):this.nextButton.removeAttribute("disabled")))}onMouseMoveHandler(t){this.isDown&&(t.preventDefault(),this.isDragging=!0,this.slider?.classList.add("isDragging"),this.links?.forEach(t=>{t.setAttribute("draggable","false")}),t=3*(t.pageX-this.slider.offsetLeft-this.startX),this.slider.scrollLeft=this.scrollLeft-t)}onLinkClickHandler(t){this.isDragging&&(t.preventDefault(),this.isDragging=!1)}}customElements.define("slider-component",SliderComponent); 2//# sourceMappingURL=slider-component.js.map
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.