define(['jquery','underscore','Swissup_Ajaxlayerednavigation/js/navigation/scroll/state-for-product-item','Swissup_Ajaxlayerednavigation/js/navigation/toolbar/pages/next'],function($,_,StateForProducts,Next){'use strict';const getElementTopPosition=function(element){return $(element).offset().top;}
const ScrollDown=function(navigation){var isLoading=false,onDone,prevPageY=window.pageYOffset,destroyCallbacks=[];const isScrollDown=function(){const pageY=window.pageYOffset;const result=pageY>prevPageY;prevPageY=pageY<=0?0:pageY;return result;}
onDone=function(response){if(response.list){const newPages=$(response.list).find('.pages');$('.main .toolbar-products .pages').each(function(i,pages){if(newPages[i]){$(pages).replaceWith(newPages[i]);}});$('.main .products li.item.product.product-item').last().after($(response.list).find('li.item.product.product-item').attr('data-breeze-temporary',''));$('.main .products').append($(response.list).filter('script[type="text/x-magento-init"]'));$('.main .products').trigger('contentUpdated');}
if(response.filters){$('#layered-filter-block').replaceWith(response.filters);}
isLoading=false;navigation.scroll.skipOnce=true;};if(navigation.config.isInfiniteScroll){const onScrollDownHandler=_.debounce(function(){if(!isScrollDown()){return;}
var elementNext=Next.getElement(),elementNextTop,url;if(elementNext.length===0){return;}
if(elementNext.is(':hidden')){elementNext=elementNext.closest(':visible');}
elementNextTop=getElementTopPosition(elementNext)-300;if(elementNextTop<0){elementNextTop=getElementTopPosition($('.main > .products .product-item').last())-200;}
if(window.pageYOffset+$(window).height()>elementNextTop&&!isLoading){isLoading=true;url=Next.getUrl();if(navigation.config.usePushStatateWithInfiniteScroll){StateForProducts.reload();}
navigation.reload(url,{showLoader:true,pushState:navigation.config.usePushStatateWithInfiniteScroll},onDone);}},150);$(window).off('scroll.down');$(window).on('scroll.down',onScrollDownHandler);destroyCallbacks.push(function(){$(window).off('scroll.down');});}
return{destroy:function(){destroyCallbacks.map(function(cb){cb();});destroyCallbacks=[];}};};if($.breezemap){$.breezemap['Swissup_Ajaxlayerednavigation/js/navigation/scroll/down']=ScrollDown;}
return ScrollDown;});