/*! Copyright (c) Safe As Milk. All rights reserved. */import{debounce}from"utils";import ItemsScroll from"items-scroll";class ItemsScrollPagedNavigation extends ItemsScroll{#boundItemsScroll;#boundHandleStateChange;#boundPageNavigationClick;#controlsListenersEnabled=!1;#itemAtScrollIndex;#navigationPagesAmount;#resizeObserver;#ticking=!1;constructor(){super(),this.pageNavigationWrapper=null,this.navigationCounterOnly=this.hasAttribute("mobile-counter-only"),this.navigationCounterSeparator="/",this.navigationCounterShowForPagesAmount=7,this.navigationCounterShowUpToContainerSize=768,this.#boundItemsScroll=this.#handleItemsScroll.bind(this),this.#boundHandleStateChange=this.#handleStateChange.bind(this),this.#boundPageNavigationClick=this.#handlePageNavigationClick.bind(this)}connectedCallback(){super.connectedCallback(),this.#setPageNavigationState(),this.#resizeObserver=new ResizeObserver(debounce(()=>{this.#updatePageNavigationList()}),50),this.#resizeObserver.observe(this.items),this.addEventListener("on:items-scroll:change-state",this.#boundHandleStateChange),this.pageNavigationContainer&&this.pageNavigationContainer.addEventListener("click",this.#handlePageNavigationClick.bind(this))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("on:items-scroll:change-state",this.#boundHandleStateChange),this.#resizeObserver&&(this.#resizeObserver.disconnect(),this.#resizeObserver=null),this.#disableControlsListeners()}#enableControlsListeners(){this.#controlsListenersEnabled||(this.items.addEventListener("scroll",this.#boundItemsScroll),this.pageNavigationContainer&&this.pageNavigationContainer.addEventListener("click",this.#boundPageNavigationClick),this.#controlsListenersEnabled=!0)}#disableControlsListeners(){this.#controlsListenersEnabled&&(this.items.removeEventListener("scroll",this.#boundItemsScroll),this.pageNavigationContainer&&this.pageNavigationContainer.removeEventListener("click",this.#boundPageNavigationClick),this.#controlsListenersEnabled=!1)}#updatePageNavigationList(){this.pageNavigationWrapper||(this.pageNavigationWrapper=document.createElement("div"),this.pageNavigationWrapper.classList.add("page-navigation-wrapper"),this.appendChild(this.pageNavigationWrapper));const pagesAmount=Math.ceil(this.items.children.length/this.itemsPerPage);pagesAmount!==this.#navigationPagesAmount&&(this.#navigationPagesAmount=pagesAmount,this.navigationCounterShowUpToContainerSize&&this.navigationCounterShowUpToContainerSize>=this.offsetWidth&&this.navigationCounterShowForPagesAmount&&(this.navigationCounterOnly||this.#navigationPagesAmount>=this.navigationCounterShowForPagesAmount)?(this.pageNavigationContainer&&this.pageNavigationContainer.setAttribute("hidden",!0),this.pageNavigationCounter||(this.pageNavigationCounter=document.createElement("div"),this.pageNavigationCounter.classList.add("page-navigation-counter"),this.pageNavigationWrapper.appendChild(this.pageNavigationCounter)),this.pageNavigationCounter.removeAttribute("hidden"),this.pageNavigationCounter.innerHTML=` `,this.#setPageNavigationState()):(this.pageNavigationCounter&&this.pageNavigationCounter.setAttribute("hidden",!0),this.pageNavigationContainer||(this.pageNavigationContainer=document.createElement("ul"),this.pageNavigationContainer.classList.add("page-navigation"),this.pageNavigationContainer.setAttribute("role","tablist"),this.pageNavigationWrapper.appendChild(this.pageNavigationContainer)),this.pageNavigationContainer.removeAttribute("hidden"),this.#navigationPagesAmount>1?(this.pageNavigationContainer.innerHTML=` ${Array.from({length:pagesAmount},(_,i)=>`