class purePajinate{constructor(e){if(this.config={containerSelector:".items",itemSelector:".item",navigationSelector:".page_navigation",itemsPerPage:10,pageLinksToDisplay:10,startPage:0,wrapAround:!1,navLabelFirst:"First",navLabelPrev:"Prev",navLabelNext:"Next",navLabelLast:"Last",navAriaLabelFirst:"First",navAriaLabelPrev:"Prev",navAriaLabelNext:"Next",navAriaLabelLast:"Last",navOrder:["first","prev","num","next","last"],showFirstLast:!1,showPrevNext:!0,hideOnSmall:!1,defaultClass:"",activeClass:"active",disabledClass:"disabled",onInit:function(){},onPageDisplayed:function(){}},void 0!==e){var i=e;for(var t in i)null!=i[t]&&(this.config[t]=i[t])}this.init()}init(){this.config.item_container=document.querySelector(this.config.containerSelector),this.config.pagination_containers=document.querySelectorAll(this.config.navigationSelector);var e=this.config.item_container.querySelectorAll(this.config.itemSelector);if(!(this.config.hideOnSmall&&this.config.itemsPerPage>=e.length)){this.current_page=this.config.startPage;for(let i=0;i<e.length;i++)e[i].style.display="none",e[i].classList.add("hidden");var i=Math.ceil(e.length/this.config.itemsPerPage),t=this.config.showFirstLast?'<li class="first_link '+this.config.defaultClass+'"><a href="" aria-label="'+this.config.navAriaLabelFirst+'" onclick="return false;">'+this.config.navLabelFirst+"</a></li>":"",s=this.config.showFirstLast?'<li class="last_link '+this.config.defaultClass+'"><a href="" aria-label="'+this.config.navAriaLabelLast+'" onclick="return false;">'+this.config.navLabelLast+"</a></li>":"",a=this.config.showPrevNext?'<li class="previous_link '+this.config.defaultClass+'"><a href="" aria-label="'+this.config.navAriaLabelPrev+'" onclick="return false;">'+this.config.navLabelPrev+"</a></li>":"",n=this.config.showPrevNext?'<li class="next_link '+this.config.defaultClass+'"><a href="" aria-label="'+this.config.navAriaLabelNext+'" onclick="return false;">'+this.config.navLabelNext+"</a></li>":"",l="<ul>";for(let e=0;e<this.config.navOrder.length;e++)switch(this.config.navOrder[e]){case"first":l+=t;break;case"last":l+=s;break;case"next":l+=n;break;case"prev":l+=a;break;case"num":this.config.showPrevNext&&(l+='<li class="ellipse less"><span>...</span></li>');for(var o=0;i>o;){var r="";0==o&&(r=" first"),o==i-1&&(r=" last"),l+='<li class="page_link'+r+" "+this.config.defaultClass+'" longdesc="'+o+'"><a href="" aria-label="'+(o+1)+'" onclick="return false;"><span>'+(o+1)+"</span></a></li>",o++}this.config.showPrevNext&&(l+='<li class="ellipse more"><span>...</span></li>')}l+="</ul>",this.config.pagination_containers.forEach(function(e){e.innerHTML=l;var i=e.querySelectorAll(".page_link");for(let e=0;e<i.length;e++)(e>=this.config.pageLinksToDisplay+this.config.startPage||e<this.config.startPage)&&(i[e].style.display="none");if(e.querySelectorAll(".ellipse").forEach(function(e){e.style.display="none"}),i.length>0){var t=i[0];t.classList.add("active_page"),t.classList.add(this.config.activeClass)}this.total_page_no_links=i.length,this.config.pageLinksToDisplay=Math.min(this.config.pageLinksToDisplay,this.total_page_no_links);const s=this;this.config.showFirstLast&&(e.querySelector(".first_link").addEventListener("click",function(i){i.preventDefault(),s.showFirstPage(e)}),e.querySelector(".last_link").addEventListener("click",function(i){i.preventDefault(),s.showLastPage(e)})),this.config.showPrevNext&&(e.querySelector(".previous_link").addEventListener("click",function(i){i.preventDefault(),s.showPrevPage(e)}),e.querySelector(".previous_link").addEventListener("keydown",function(e){37==e.keyCode&&this.click()}),e.querySelector(".next_link").addEventListener("click",function(i){i.preventDefault(),s.showNextPage(e)}),e.querySelector(".next_link").addEventListener("keydown",function(e){39==e.keyCode&&this.click()})),e.querySelectorAll(".page_link").forEach(function(e){e.addEventListener("click",function(i){i.preventDefault(),s.gotopage(e.getAttribute("longdesc"))})},s)},this),this.gotopage(parseInt(this.config.startPage)),this.config.item_container.classList.add("loaded"),this.config.onInit.call(this)}}showFirstPage(e){this.movePageNumbersRight(e.querySelector(".first_link"),0),this.gotopage(0)}showLastPage(e){var i=this.total_page_no_links-1;this.movePageNumbersLeft(e.querySelector(".last_link"),i),this.gotopage(i)}showPrevPage(e){var i=parseInt(this.current_page)-1,t=e.querySelector(".previous_link").parentNode.querySelector(".active_page").previousElementSibling;null!=t&&t.classList.contains("page_link")?(this.movePageNumbersRight(e.querySelector(".previous_link"),i),this.gotopage(i)):this.config.wrapAround&&(this.movePageNumbersLeft(e.querySelector(".previous_link"),this.total_page_no_links-1),this.gotopage(this.total_page_no_links-1))}showNextPage(e){var i=parseInt(this.current_page)+1,t=e.querySelector(".next_link").parentNode.querySelector(".active_page").nextElementSibling;null!=t&&t.classList.contains("page_link")?(this.movePageNumbersLeft(e.querySelector(".next_link"),i),this.gotopage(i)):this.config.wrapAround&&(this.movePageNumbersRight(e.querySelector(".next_link"),0),this.gotopage(0))}gotopage(e){e=parseInt(e,10);var i=parseInt(this.config.itemsPerPage),t=e*i,s=t+i,a=this.config.item_container.querySelectorAll(this.config.itemSelector);for(let e=0;e<a.length;e++)e>=s||e<t?(a[e].style.display="none",a[e].classList.remove("visible"),a[e].classList.add("hidden")):(a[e].style.display="inline-block",setTimeout(function(){a[e].classList.remove("hidden"),a[e].classList.add("visible")},20));this.config.pagination_containers.forEach(function(i){var t=i.querySelectorAll(".page_link");for(let i=0;i<t.length;i++)t[i].getAttribute("longdesc")==e?(t[i].classList.add("active_page"),t[i].classList.add(this.config.activeClass)):(t[i].classList.remove("active_page"),t[i].classList.remove(this.config.activeClass))},this),this.current_page=e,this.toggleMoreLess(),this.config.wrapAround||this.tagNextPrev(),this.config.onPageDisplayed.call(this,e+1)}movePageNumbersLeft(e,i){var t=i;e.parentNode.querySelectorAll(".page_link").forEach(function(e){e.getAttribute("longdesc")!=t||e.classList.contains("active_page")||"none"!=e.style.display||this.config.pagination_containers.forEach(function(e){var i=e.querySelectorAll(".page_link");for(let e=0;e<i.length;e++)e<t+1&&e>=parseInt(t-this.config.pageLinksToDisplay+1)?i[e].style.display="inline":i[e].style.display="none"},this)},this)}movePageNumbersRight(e,i){var t=i;e.parentNode.querySelectorAll(".page_link").forEach(function(e){e.getAttribute("longdesc")!=t||e.classList.contains("active_page")||"none"!=e.style.display||this.config.pagination_containers.forEach(function(e){var i=e.querySelectorAll(".page_link");for(let e=0;e<i.length;e++)e<t+parseInt(this.config.pageLinksToDisplay)&&e>=t?i[e].style.display="inline":i[e].style.display="none"},this)},this)}toggleMoreLess(){this.config.pagination_containers.forEach(function(e){var i=e.querySelector(".more");null!=i&&(i.style.display="none",e.querySelector(".page_link.last")&&this.isHidden(e.querySelector(".page_link.last"))&&(i.style.display="inline"));var t=e.querySelector(".less");null!=t&&(t.style.display="none",e.querySelector(".page_link.first")&&this.isHidden(e.querySelector(".page_link.first"))&&(t.style.display="inline"))},this)}tagNextPrev(){this.config.pagination_containers.forEach(function(e){var i=e.querySelector(".next_link"),t=e.querySelector(".previous_link"),s=e.querySelector(".first_link"),a=e.querySelector(".last_link");e.querySelector(".page_link.last")&&e.querySelector(".page_link.last").classList.contains("active_page")?(null!=i&&(i.classList.add("no_more"),i.classList.add(this.config.disabledClass)),null!=a&&(a.classList.add("no_more"),a.classList.add(this.config.disabledClass))):(null!=i&&(i.classList.remove("no_more"),i.classList.remove(this.config.disabledClass)),null!=a&&(a.classList.remove("no_more"),a.classList.remove(this.config.disabledClass))),e.querySelector(".page_link.first")&&e.querySelector(".page_link.first").classList.contains("active_page")?(null!=t&&(t.classList.add("no_more"),t.classList.add(this.config.disabledClass)),null!=s&&(s.classList.add("no_more"),s.classList.add(this.config.disabledClass))):(null!=t&&(t.classList.remove("no_more"),t.classList.remove(this.config.disabledClass)),null!=s&&(s.classList.remove("no_more"),s.classList.remove(this.config.disabledClass)))},this)}isHidden(e){var i=window.getComputedStyle(e);return"none"===i.display||"hidden"===i.visibility}}
window.purePajinate = purePajinate;