1class Pagination{constructor(paginationContainer,elemPagination,clickOnePage,currentClickedEl,listToDisplay,showInBeginningMobile,offsetActiveElementMobile,showInBeginningDesktop,offsetActiveElementDesktop){this.selectors={paginationContainer:document.querySelector(paginationContainer),paginationElements:document.querySelectorAll(elemPagination),paginationElement:document.querySelector(elemPagination),htmlBodyElement:document.querySelector("body"),arrowLast:document.querySelector(".js-arrow-last"),arrowFirst:document.querySelector(".js-arrow-first"),showInBeginningMobile:void 0!==showInBeginningMobile?showInBeginningMobile:3,offsetActiveElementMobile:void 0!==offsetActiveElementMobile?offsetActiveElementMobile:1,showInBeginningDesktop:void 0!==showInBeginningDesktop?showInBeginningDesktop:5,offsetActiveElementDesktop:void 0!==offsetActiveElementDesktop?offsetActiveElementDesktop:2},this.arrayPaginationItems=Object.values(this.selectors.paginationElements),this.currentClickedEl=currentClickedEl,this.maxPages=this.selectors.paginationElements.length,this.clickOnePage=clickOnePage;for(const el of this.arrayPaginationItems)void 0!==this.hasClass(el,"active")&&(this.activeElement=el);0!==this.maxPages&&(this.currentActiveElement=!0===this.clickOnePage?parseInt(this.currentClickedEl.dataset.page):parseInt(this.activeElement.dataset.page)),this.listToDisplay=document.querySelectorAll(listToDisplay),this.showInBeginning=this.selectors.showInBeginningMobile,this.offsetActiveElement=this.selectors.offsetActiveElementMobile,this.displayEl=0,this.hasClass(this.selectors.htmlBodyElement,"dsktp")&&(this.showInBeginning=this.selectors.showInBeginningDesktop,this.offsetActiveElement=this.selectors.offsetActiveElementDesktop,this.displayEl=1),this.showPaginationPages="show-pages",this.classToClean={siblingActiveBefore:"show-ellipsis-before",siblingActiveAfter:"show-ellipsis-after",hideElementClass:"hide-all",inactiveElementClass:"inactive"}}hasClass(elem,className){if(elem.classList.contains(className))return elem}removeClass(elem,classToRemove){const elemClassList=elem.classList;elemClassList.contains(classToRemove)&&elemClassList.remove(classToRemove)}addClass(elem,classToAdd){const elemClassList=elem.classList;elemClassList.contains(classToAdd)||elemClassList.add(classToAdd)}addDotsBefore(elements,list,elNumDots){this.hidePaginationElements(elements,list),this.addClass(list[elNumDots],this.classToClean.siblingActiveBefore)}addDotsAfter(elements,list,elNumDots){this.hidePaginationElements(elements,list),elNumDots<this.maxPages&&this.addClass(list[elNumDots],this.classToClean.siblingActiveAfter)}cleanPages(list){for(const el of list)for(const classClean of Object.values(this.classToClean))this.hasClass(el,classClean)&&el.classList.remove(classClean)}hidePaginationElements(condition,list){const arr=void 0;list.filter((el,i)=>{i>condition[0]-1&&i<=condition[1]?this.addClass(el,this.showPaginationPages):this.addClass(el,this.classToClean.hideElementClass)})}showHideArrow(currEl){currEl-1==0?(this.addClass(this.selectors.arrowFirst,this.classToClean.inactiveElementClass),this.selectors.arrowLast.classList.contains(this.classToClean.inactiveElementClass)&&this.removeClass(this.selectors.arrowLast,this.classToClean.inactiveElementClass)):currEl===this.maxPages?(this.addClass(this.selectors.arrowLast,this.classToClean.inactiveElementClass),this.selectors.arrowFirst.classList.contains(this.classToClean.inactiveElementClass)&&this.removeClass(this.selectors.arrowFirst,this.classToClean.inactiveElementClass)):(this.selectors.arrowFirst.classList.contains(this.classToClean.inactiveElementClass)||this.selectors.arrowLast.classList.contains(this.classToClean.inactiveElementClass))&&(this.removeClass(this.selectors.arrowFirst,this.classToClean.inactiveElementClass),this.removeClass(this.selectors.arrowLast,this.classToClean.inactiveElementClass))}hideMiddleElements(list,param1,param2){this.addClass(list[param1],this.classToClean.siblingActiveBefore),this.addClass(list[param2],this.classToClean.siblingActiveAfter);const hiddenElements=[param1,param2];this.hidePaginationElements(hiddenElements,list)}changeSelectedNumber(activeCurrElem){let hiddenElements,numberLimit;if(this.cleanPages(this.arrayPaginationItems),this.maxPages<=this.showInBeginning+this.offsetActiveElement+(1-this.displayEl))numberLimit=this.maxPages,hiddenElements=[0,numberLimit],this.addDotsAfter(hiddenElements,this.arrayPaginationItems,numberLimit);else if(activeCurrElem-this.offsetActiveElement<=3)numberLimit=activeCurrElem<=Math.round(this.showInBeginning/2)?this.showInBeginning-1:this.maxPages-(activeCurrElem+this.offsetActiveElement)<this.showInBeginning-2*this.displayEl?this.maxPages:activeCurrElem+this.displayEl,hiddenElements=[0,numberLimit],this.addDotsAfter(hiddenElements,this.arrayPaginationItems,numberLimit);else if(this.maxPages-activeCurrElem+this.displayEl<=this.showInBeginning){let elementsToHide;elementsToHide=this.maxPages-activeCurrElem<this.offsetActiveElement?this.maxPages-this.showInBeginning:activeCurrElem-(this.offsetActiveElement+1),hiddenElements=[elementsToHide,this.maxPages],this.addDotsBefore(hiddenElements,this.arrayPaginationItems,elementsToHide)}else this.hideMiddleElements(this.arrayPaginationItems,activeCurrElem-this.offsetActiveElement-1,activeCurrElem+this.displayEl);this.showHideArrow(activeCurrElem)}activePagination(elems,classToDisplay,currentelem){if(void 0!==currentelem){for(const el of elems)this.hasClass(el,classToDisplay)&&this.removeClass(el,classToDisplay);for(const el of this.arrayPaginationItems)this.hasClass(el,classToDisplay)&&this.removeClass(el,classToDisplay),this.hasClass(el,"show-pages")&&this.removeClass(el,"show-pages");this.addClass(elems[currentelem.dataset.page-1],classToDisplay),this.addClass(currentelem,classToDisplay),this.changeSelectedNumber(parseInt(currentelem.dataset.page))}}render(){0!==this.maxPages&&(this.removeClass(this.selectors.paginationContainer,"hide"),this.changeSelectedNumber(this.currentActiveElement))}}
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.