"use strict";(self.heliuxModules=self.heliuxModules||[]).push([[9686],{92815:(t,e,i)=>{var n=i(58480);const s={selectors:{shownItems:".searchpagination__shownItems",totalItems:".searchpagination__totalItems",progress:".searchpagination__progress",button:".searchpagination__button",content:".searchpagination__content",skeleton:".searchpagination__skeleton",lazyScrollingSpinner:".searchpagination__lazyScrollingSpinner"},publishes:{loadMoreClicked:"searchpagination::loadmore::clicked",showSpinner:t=>`spinner:${t}:show`,hideSpinner:t=>`spinner:${t}:hide`},subscribes:{lodadMoreUpdated:"searchpagination::loadmore::update"},states:{disabled:"disabled"},classes:{paginationContentHidden:"searchpagination__content--hidden",paginationSkeletonHidden:"searchpagination__skeleton--hidden"}};class o extends n.ComponentBase{init(){this.config={...s,...this.config},this.increasedBy=parseInt(this.config.increasedBy,10),this.lazyScrollingInProgress=!0,this.maxItemsReached=!1,this.getElements(),this.listeners()}listeners(){const{lazyScrollingEnabled:t,subscribes:e}=this.config;(0,n.subscribe)(e.lodadMoreUpdated,(({current:t,total:e,state:i,show:n,error:s})=>{this.updatePagination({current:t,total:e,state:i,show:n,error:s})})),t&&document.addEventListener("scroll",this.onScrolling.bind(this)),this.button&&this.button.addEventListener("click",this.onLoadMoreBtnClick.bind(this))}onScrolling(){const{publishes:t}=this.config;if(this.maxItemsReached)return;const e=this.el.getBoundingClientRect().bottom,i=window.innerHeight+window.innerHeight;!this.lazyScrollingInProgress&&e>0&&e<=i&&(this.lazyScrollingInProgress=!0,(0,n.publish)(t.showSpinner(this.lazyScrollingSpinner?.id)),(0,n.publish)(t.loadMoreClicked,{increment:this.increasedBy,lazyScrolling:!0}))}onLoadMoreBtnClick(){const{publishes:t}=this.config;(0,n.publish)(t.loadMoreClicked,{increment:this.increasedBy})}updatePagination(t){const{lazyScrollingEnabled:e,publishes:i}=this.config;this.maxItemsReached=t.current===t.total,e&&(this.lazyScrollingInProgress=!1,(0,n.publish)(i.hideSpinner(this.lazyScrollingSpinner?.id))),this.button&&this.updateLoadMoreButtonInformation(t)}updateLoadMoreButtonInformation({current:t,total:e,show:i,error:n}){let s=!1,o=t;o>=e&&(o=e,s=!0),this.updateLoadMoreButton(s);const a=0===e?0:o;(a||0===a)&&(this.shownItems.innerText=a,this.progress.value=a),(e||0===e)&&(this.totalItems.innerText=e,this.progress.max=e),i&&this.updateLoadMoreButtonVisibility(),n&&this.hideAllLoadMoreButtonContent()}updateLoadMoreButton(t){t?this.button.setAttribute(this.config.states.disabled,""):this.button.removeAttribute(this.config.states.disabled)}hideAllLoadMoreButtonContent(){this.skeleton.classList.add(this.config.classes.paginationSkeletonHidden),this.content.classList.add(this.config.classes.paginationContentHidden)}updateLoadMoreButtonVisibility(){this.skeleton.classList.add(this.config.classes.paginationSkeletonHidden),this.content.classList.remove(this.config.classes.paginationContentHidden)}}(0,n.register)({SearchPagination:o},0)}},t=>{t.O(0,[750],(()=>t(t.s=92815))),t.O()}]);