!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).BetterScroll={})}(this,function(t){"use strict";var s=function(t,e){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)};function e(t,e){function o(){this.constructor=t}s(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}var c=function(){return(c=Object.assign||function(t){for(var e,o=1,s=arguments.length;on[0]&&e[1]document.documentElement.clientWidth-s||o>document.documentElement.clientHeight-s||ethis.minScrollPos||othis.minScrollPos&&this.options.bounces[0]||othis.minScrollPos?this.minScrollPos:this.maxScrollPos:o},kt.prototype.end=function(t){var e={duration:0},o=Math.abs(this.currentPos-this.startPos);return this.options.momentum&&tthis.options.momentumLimitDistance?(o=-1===this.direction&&this.options.bounces[0]||1===this.direction&&this.options.bounces[1]?this.wrapperSize:0,e=this.hasScroll?this.momentum(this.currentPos,this.startPos,t,this.maxScrollPos,this.minScrollPos,o,this.options):{destination:this.currentPos,duration:0}):this.hooks.trigger(this.hooks.eventTypes.end,e),e},kt.prototype.momentum=function(t,e,o,s,i,r,n){void 0===n&&(n=this.options);var h=t-e,l=Math.abs(h)/o,e=n.deceleration,o=n.swipeBounceTime,n=n.swipeTime,e={destination:t+l*l/e*(h<0?-1:1),duration:Math.min(n,2*l/e),rate:15};return this.hooks.trigger(this.hooks.eventTypes.momentum,e,h),e.destinationi&&(e.destination=r?Math.min(i+r/4,i+r/e.rate*l):i,e.duration=o),e.destination=Math.round(e.destination),e},kt.prototype.updateDirection=function(){var t=this.currentPos-this.absStartPos;this.setDirection(t)},kt.prototype.refresh=function(t){var e=this.options.rect,o=e.size,s=e.position,i="static"===window.getComputedStyle(this.wrapper,null).position,e=L(this.wrapper);this.wrapperSize=this.wrapper["width"===o?"clientWidth":"clientHeight"],this.setContent(t);t=L(this.content);this.contentSize=t[o],this.relativeOffset=t[s],i&&(this.relativeOffset-=e[s]),this.computeBoundary(),this.setDirection(0)},kt.prototype.setContent=function(t){t!==this.content&&(this.content=t,this.resetState())},kt.prototype.resetState=function(){this.currentPos=0,this.startPos=0,this.dist=0,this.setDirection(0),this.setMovingDirection(0),this.resetStartPos()},kt.prototype.computeBoundary=function(){this.hooks.trigger(this.hooks.eventTypes.beforeComputeBoundary);var t={minScrollPos:0,maxScrollPos:this.wrapperSize-this.contentSize};t.maxScrollPos<0&&(t.maxScrollPos-=this.relativeOffset,0===this.options.specifiedIndexAsContent&&(t.minScrollPos=-this.relativeOffset)),this.hooks.trigger(this.hooks.eventTypes.computeBoundary,t),this.minScrollPos=t.minScrollPos,this.maxScrollPos=t.maxScrollPos,this.hasScroll=this.options.scrollable&&this.maxScrollPosthis.minScrollPos?t=this.minScrollPos:te+this.directionLockThreshold?this.directionLocked="horizontal":e>=t+this.directionLockThreshold?this.directionLocked="vertical":this.directionLocked="none")},bt.prototype.handleEventPassthrough=function(t){var e=St[this.directionLocked];if(e){if(this.eventPassthrough===e.yes)return Tt.yes(t);if(this.eventPassthrough===e.no)return Tt.no(t)}return!1},bt);function bt(t,e,o){this.directionLockThreshold=t,this.freeScroll=e,this.eventPassthrough=o,this.reset()}var wt=(xt.prototype.bindActionsHandler=function(){var i=this;this.actionsHandler.hooks.on(this.actionsHandler.hooks.eventTypes.start,function(t){return!i.enabled||i.handleStart(t)}),this.actionsHandler.hooks.on(this.actionsHandler.hooks.eventTypes.move,function(t){var e=t.deltaX,o=t.deltaY,s=t.e;if(!i.enabled)return!0;t=e,e=o,e=2===(o=i.options.quadrant)?[e,-t]:3===o?[-t,-e]:4===o?[-e,t]:[t,e],e={deltaX:e[0],deltaY:e[1]};return i.hooks.trigger(i.hooks.eventTypes.coordinateTransformation,e),i.handleMove(e.deltaX,e.deltaY,s)}),this.actionsHandler.hooks.on(this.actionsHandler.hooks.eventTypes.end,function(t){return!i.enabled||i.handleEnd(t)}),this.actionsHandler.hooks.on(this.actionsHandler.hooks.eventTypes.click,function(t){i.enabled&&!t._constructed&&i.handleClick(t)})},xt.prototype.handleStart=function(t){var e=v();this.fingerMoved=!1,this.contentMoved=!1,this.startTime=e,this.directionLockAction.reset(),this.scrollBehaviorX.start(),this.scrollBehaviorY.start(),this.animater.doStop(),this.scrollBehaviorX.resetStartPos(),this.scrollBehaviorY.resetStartPos(),this.hooks.trigger(this.hooks.eventTypes.start,t)},xt.prototype.handleMove=function(t,e,o){if(!this.hooks.trigger(this.hooks.eventTypes.beforeMove,o)){var s=this.scrollBehaviorX.getAbsDist(t),i=this.scrollBehaviorY.getAbsDist(e),r=v();if(this.checkMomentum(s,i,r))return!0;if(this.directionLockAction.checkMovingDirection(s,i,o))return this.actionsHandler.setInitiated(),!0;i=this.directionLockAction.adjustDelta(t,e),o=this.scrollBehaviorX.getCurrentPos(),t=this.scrollBehaviorX.move(i.deltaX),e=this.scrollBehaviorY.getCurrentPos(),i=this.scrollBehaviorY.move(i.deltaY);this.hooks.trigger(this.hooks.eventTypes.detectMovingDirection)||(this.fingerMoved||(this.fingerMoved=!0),e=t!==o||i!==e,this.contentMoved||e||this.hooks.trigger(this.hooks.eventTypes.contentNotMoved),!this.contentMoved&&e&&(this.contentMoved=!0,this.hooks.trigger(this.hooks.eventTypes.scrollStart)),this.contentMoved&&e&&(this.animater.translate({x:t,y:i}),this.dispatchScroll(r)))}},xt.prototype.dispatchScroll=function(t){t-this.startTime>this.options.momentumLimitTime&&(this.startTime=t,this.scrollBehaviorX.updateStartPos(),this.scrollBehaviorY.updateStartPos(),1===this.options.probeType&&this.hooks.trigger(this.hooks.eventTypes.scroll,this.getCurrentPos())),1this.options.momentumLimitTime&&ethis.scrollBehaviorX.minScrollPos||o.newXthis.scrollBehaviorY.minScrollPos||o.newYMath.abs(s)&&(s=i),i=0),{x:s=!this.scroll.hasHorizontalScroll?0:s,y:i,directionX:0e.minScrollPos||e.currentPoso.minScrollPos||o.currentPosr&&(this.startTime=e,1===o&&n.hooks.trigger(n.hooks.eventTypes.scroll,i)),1=this.pages[o][0].cx);o++);for(i=this.pages[o].length;s=this.pages[0][s].cy);s++);return{pageX:o,pageY:s}},Qt.prototype.buildPagesMatrix=function(t,e){for(var o,s,i=[],r=0,n=0,h=this.scroll.scroller.scrollBehaviorX.maxScrollPos,l=this.scroll.scroller.scrollBehaviorY.maxScrollPos,a=Math.round(t/2),c=Math.round(e/2);r>-this.scrollerWidth;){for(i[n]=[],o=s=0;o>-this.scrollerHeight;)i[n][s]={x:Math.max(r,h),y:Math.max(o,l),width:t,height:e,cx:r-a,cy:o-c},o-=e,s++;r-=t,n++}return i},Qt);function Qt(t){this.scroll=t,this.init()}var te={pageX:0,pageY:0,x:0,y:0},ee=(oe.prototype.refresh=function(){this.pagesMatrix=new Jt(this.scroll),this.checkSlideLoop(),this.currentPage=this.getAdjustedCurrentPage()},oe.prototype.getAdjustedCurrentPage=function(){var t=this.currentPage,e=t.pageX,o=t.pageY,e=Math.min(e,this.pagesMatrix.pageLengthOfX-1),o=Math.min(o,this.pagesMatrix.pageLengthOfY-1);this.loopX&&(e=Math.min(e,this.pagesMatrix.pageLengthOfX-2)),this.loopY&&(o=Math.min(o,this.pagesMatrix.pageLengthOfY-2));t=this.pagesMatrix.getPageStats(e,o);return{pageX:e,pageY:o,x:t.x,y:t.y}},oe.prototype.setCurrentPage=function(t){this.currentPage=t},oe.prototype.getInternalPage=function(t,e){t>=this.pagesMatrix.pageLengthOfX?t=this.pagesMatrix.pageLengthOfX-1:t<0&&(t=0),e>=this.pagesMatrix.pageLengthOfY?e=this.pagesMatrix.pageLengthOfY-1:e<0&&(e=0);var o=this.pagesMatrix.getPageStats(t,e);return{pageX:t,pageY:e,x:o.x,y:o.y}},oe.prototype.getInitialPage=function(t,e){var o=this.slideOptions,s=o.startPageXIndex,i=o.startPageYIndex,r=this.loopX?1:0,n=this.loopY?1:0,h=(t=void 0===t?!1:t)?r:this.currentPage.pageX,o=t?n:this.currentPage.pageY,o=(e=void 0===e?!1:e)?(h=this.loopX?s+1:s,this.loopY?i+1:i):(h=t?r:this.currentPage.pageX,t?n:this.currentPage.pageY),n=this.pagesMatrix.getPageStats(h,o);return{pageX:h,pageY:o,x:n.x,y:n.y}},oe.prototype.getExposedPage=function(t){t=m({},t);return this.loopX&&(t.pageX=this.fixedPage(t.pageX,this.pagesMatrix.pageLengthOfX-2)),this.loopY&&(t.pageY=this.fixedPage(t.pageY,this.pagesMatrix.pageLengthOfY-2)),t},oe.prototype.getExposedPageByPageIndex=function(t,e){var o={pageX:t,pageY:e};this.loopX&&(o.pageX=t+1),this.loopY&&(o.pageY=e+1);o=this.pagesMatrix.getPageStats(o.pageX,o.pageY);return{x:o.x,y:o.y,pageX:t,pageY:e}},oe.prototype.getWillChangedPage=function(t){return t=m({},t),this.loopX&&(t.pageX=this.fixedPage(t.pageX,this.pagesMatrix.pageLengthOfX-2),t.x=this.pagesMatrix.getPageStats(t.pageX+1,0).x),this.loopY&&(t.pageY=this.fixedPage(t.pageY,this.pagesMatrix.pageLengthOfY-2),t.y=this.pagesMatrix.getPageStats(0,t.pageY+1).y),t},oe.prototype.fixedPage=function(t,e){for(var o=[],s=0;sthis.list.length&&(e=o-this.list.length,this.addEmptyData(e)),[2,this.checkToFetch(o)]})})},Se.prototype.add=function(t){for(var e=0;e=t.length&&(e=t.length-1),o>t.length&&(o=t.length),this.collectUnusedDom(t,e,o),this.createDom(t,e,o),this.cacheHeight(t,e,o);t=this.positionDom(t,e,o);return{start:e,startPos:t.startPos,startDelta:t.startDelta,end:o,endPos:t.endPos}},xe.prototype.collectUnusedDom=function(t,e,o){for(var s,i=0;ithis.scroll.maxScrollY&&(this.scroll.maxScrollY=-(t-this.scroll.scroller.scrollBehaviorY.wrapperSize)),{end:o,startPos:s,endPos:t}},Ye.prototype.destroy=function(){for(var t=this.scroll.scroller,e=t.content,t=t.scrollBehaviorY;e.firstChild;)e.removeChild(e.firstChild);this.domManager.destroy(),this.scroll.off("scroll",this.update),this.scroll.off("destroy",this.destroy),t.hooks.off(t.hooks.eventTypes.computeBoundary)},Ye.pluginName="infinity",Ye);function Ye(t){this.scroll=t,this.start=0,this.end=0,this.init()}var Be=[{key:"putAt",name:"putAt"}].map(function(t){return{key:t.key,sourceKey:"plugins.movable."+t.name}}),Ee=(Xe.prototype.handleBScroll=function(){this.scroll.proxy(Be)},Xe.prototype.handleHooks=function(){var t=this;this.hooksFn=[];function e(t,e){0s&&(this.startTime=e,1===o&&i.hooks.trigger(i.hooks.eventTypes.scroll,t)),1