2.03f0f2c8.js 14 KB

1
  1. (window.webpackJsonp=window.webpackJsonp||[]).push([[2],{446:function(e,t,s){"use strict";var i,o=s(435),a=function(){function e(e){this.scroll=e,this.init()}return e.prototype.init=function(){var e=this.scroll.scroller,t=e.scrollBehaviorX,s=e.scrollBehaviorY;this.wrapperWidth=t.wrapperSize,this.wrapperHeight=s.wrapperSize,this.scrollerHeight=s.contentSize,this.scrollerWidth=t.contentSize,this.pages=this.buildPagesMatrix(this.wrapperWidth,this.wrapperHeight),this.pageLengthOfX=this.pages?this.pages.length:0,this.pageLengthOfY=this.pages&&this.pages[0]?this.pages[0].length:0},e.prototype.getPageStats=function(e,t){return this.pages[e][t]},e.prototype.getNearestPageIndex=function(e,t){for(var s=0,i=0,o=this.pages.length;s<o-1&&!(e>=this.pages[s][0].cx);s++);for(o=this.pages[s].length;i<o-1&&!(t>=this.pages[0][i].cy);i++);return{pageX:s,pageY:i}},e.prototype.buildPagesMatrix=function(e,t){var s,i,o,a,r=[],n=0,h=0,g=this.scroll.scroller.scrollBehaviorX.maxScrollPos,p=this.scroll.scroller.scrollBehaviorY.maxScrollPos;for(i=Math.round(e/2),o=Math.round(t/2);n>-this.scrollerWidth;){for(r[h]=[],a=0,s=0;s>-this.scrollerHeight;)r[h][a]={x:Math.max(n,g),y:Math.max(s,p),width:e,height:t,cx:n-i,cy:s-o},s-=t,a++;n-=e,h++}return r},e}(),r={pageX:0,pageY:0,x:0,y:0};!function(e){e.Positive="positive",e.Negative="negative"}(i||(i={}));var n=function(){function e(e,t){this.scroll=e,this.slideOptions=t,this.slideX=!1,this.slideY=!1,this.currentPage=Object(o.t)({},r)}return e.prototype.refresh=function(){this.pagesMatrix=new a(this.scroll),this.checkSlideLoop(),this.currentPage=this.getAdjustedCurrentPage()},e.prototype.getAdjustedCurrentPage=function(){var e=this.currentPage,t=e.pageX,s=e.pageY;t=Math.min(t,this.pagesMatrix.pageLengthOfX-1),s=Math.min(s,this.pagesMatrix.pageLengthOfY-1),this.loopX&&(t=Math.min(t,this.pagesMatrix.pageLengthOfX-2)),this.loopY&&(s=Math.min(s,this.pagesMatrix.pageLengthOfY-2));var i=this.pagesMatrix.getPageStats(t,s);return{pageX:t,pageY:s,x:i.x,y:i.y}},e.prototype.setCurrentPage=function(e){this.currentPage=e},e.prototype.getInternalPage=function(e,t){e>=this.pagesMatrix.pageLengthOfX?e=this.pagesMatrix.pageLengthOfX-1:e<0&&(e=0),t>=this.pagesMatrix.pageLengthOfY?t=this.pagesMatrix.pageLengthOfY-1:t<0&&(t=0);var s=this.pagesMatrix.getPageStats(e,t);return{pageX:e,pageY:t,x:s.x,y:s.y}},e.prototype.getInitialPage=function(e,t){void 0===e&&(e=!1),void 0===t&&(t=!1);var s=this.slideOptions,i=s.startPageXIndex,o=s.startPageYIndex,a=this.loopX?1:0,r=this.loopY?1:0,n=e?a:this.currentPage.pageX,h=e?r:this.currentPage.pageY;t?(n=this.loopX?i+1:i,h=this.loopY?o+1:o):(n=e?a:this.currentPage.pageX,h=e?r:this.currentPage.pageY);var g=this.pagesMatrix.getPageStats(n,h);return{pageX:n,pageY:h,x:g.x,y:g.y}},e.prototype.getExposedPage=function(e){var t=Object(o.t)({},e);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},e.prototype.getExposedPageByPageIndex=function(e,t){var s={pageX:e,pageY:t};this.loopX&&(s.pageX=e+1),this.loopY&&(s.pageY=t+1);var i=this.pagesMatrix.getPageStats(s.pageX,s.pageY);return{x:i.x,y:i.y,pageX:e,pageY:t}},e.prototype.getWillChangedPage=function(e){return e=Object(o.t)({},e),this.loopX&&(e.pageX=this.fixedPage(e.pageX,this.pagesMatrix.pageLengthOfX-2),e.x=this.pagesMatrix.getPageStats(e.pageX+1,0).x),this.loopY&&(e.pageY=this.fixedPage(e.pageY,this.pagesMatrix.pageLengthOfY-2),e.y=this.pagesMatrix.getPageStats(0,e.pageY+1).y),e},e.prototype.fixedPage=function(e,t){for(var s=[],i=0;i<t;i++)s.push(i);return s.unshift(t-1),s.push(0),s[e]},e.prototype.getPageStats=function(){return this.pagesMatrix.getPageStats(this.currentPage.pageX,this.currentPage.pageY)},e.prototype.getValidPageIndex=function(e,t){var s=this.pagesMatrix.pageLengthOfX-1,i=this.pagesMatrix.pageLengthOfY-1,a=0,r=0;return this.loopX&&(e+=1,a+=1,s-=1),this.loopY&&(t+=1,r+=1,i-=1),{pageX:e=Object(o.m)(e,a,s),pageY:t=Object(o.m)(t,r,i)}},e.prototype.nextPageIndex=function(){return this.getPageIndexByDirection(i.Positive)},e.prototype.prevPageIndex=function(){return this.getPageIndexByDirection(i.Negative)},e.prototype.getNearestPage=function(e,t){var s=this.pagesMatrix.getNearestPageIndex(e,t),i=s.pageX,o=s.pageY;return{x:this.pagesMatrix.getPageStats(i,0).x,y:this.pagesMatrix.getPageStats(0,o).y,pageX:i,pageY:o}},e.prototype.getPageByDirection=function(e,t,s){var i=e.pageX,a=e.pageY;return i===this.currentPage.pageX&&(i=Object(o.m)(i+t,0,this.pagesMatrix.pageLengthOfX-1)),a===this.currentPage.pageY&&(a=Object(o.m)(a+s,0,this.pagesMatrix.pageLengthOfY-1)),{x:this.pagesMatrix.getPageStats(i,0).x,y:this.pagesMatrix.getPageStats(0,a).y,pageX:i,pageY:a}},e.prototype.resetLoopPage=function(){if(this.loopX){if(0===this.currentPage.pageX)return{pageX:this.pagesMatrix.pageLengthOfX-2,pageY:this.currentPage.pageY};if(this.currentPage.pageX===this.pagesMatrix.pageLengthOfX-1)return{pageX:1,pageY:this.currentPage.pageY}}if(this.loopY){if(0===this.currentPage.pageY)return{pageX:this.currentPage.pageX,pageY:this.pagesMatrix.pageLengthOfY-2};if(this.currentPage.pageY===this.pagesMatrix.pageLengthOfY-1)return{pageX:this.currentPage.pageX,pageY:1}}},e.prototype.getPageIndexByDirection=function(e){var t=this.currentPage.pageX,s=this.currentPage.pageY;return this.slideX&&(t=e===i.Negative?t-1:t+1),this.slideY&&(s=e===i.Negative?s-1:s+1),{pageX:t,pageY:s}},e.prototype.checkSlideLoop=function(){this.wannaLoop=this.slideOptions.loop,this.pagesMatrix.pageLengthOfX>1?this.slideX=!0:this.slideX=!1,this.pagesMatrix.pages[0]&&this.pagesMatrix.pageLengthOfY>1?this.slideY=!0:this.slideY=!1,this.loopX=this.wannaLoop&&this.slideX,this.loopY=this.wannaLoop&&this.slideY,this.slideX&&this.slideY&&Object(o.S)("slide does not support two direction at the same time.")},e}(),h=[{key:"next",name:"next"},{key:"prev",name:"prev"},{key:"goToPage",name:"goToPage"},{key:"getCurrentPage",name:"getCurrentPage"},{key:"startPlay",name:"startPlay"},{key:"pausePlay",name:"pausePlay"}].map((function(e){return{key:e.key,sourceKey:"plugins.slide."+e.name}})),g=function(){function e(e){this.scroll=e,this.cachedClonedPageDOM=[],this.resetLooping=!1,this.autoplayTimer=0,this.satisfyInitialization()&&this.init()}return e.prototype.satisfyInitialization=function(){return!(this.scroll.scroller.content.children.length<=0)||(Object(o.S)("slide need at least one slide page to be initialised.please check your DOM layout."),!1)},e.prototype.init=function(){this.willChangeToPage=Object(o.t)({},r),this.handleBScroll(),this.handleOptions(),this.handleHooks(),this.createPages()},e.prototype.createPages=function(){this.pages=new n(this.scroll,this.options)},e.prototype.handleBScroll=function(){this.scroll.registerType(["slideWillChange","slidePageChanged"]),this.scroll.proxy(h)},e.prototype.handleOptions=function(){var e=!0===this.scroll.options.slide?{}:this.scroll.options.slide,t={loop:!0,threshold:.1,speed:400,easing:o.r.bounce,listenFlick:!0,autoplay:!0,interval:3e3,startPageXIndex:0,startPageYIndex:0};this.options=Object(o.t)(t,e)},e.prototype.handleLoop=function(e){var t=this.options.loop,s=this.scroll.scroller.content,i=s.children.length;t&&(s!==e?(this.resetLoopChangedStatus(),this.removeClonedSlidePage(e),i>1&&this.cloneFirstAndLastSlidePage(s)):3===i&&this.initialised?(this.removeClonedSlidePage(s),this.moreToOnePageInLoop=!0,this.oneToMorePagesInLoop=!1):i>1?(this.initialised&&0===this.cachedClonedPageDOM.length?(this.oneToMorePagesInLoop=!0,this.moreToOnePageInLoop=!1):(this.removeClonedSlidePage(s),this.resetLoopChangedStatus()),this.cloneFirstAndLastSlidePage(s)):this.resetLoopChangedStatus())},e.prototype.resetLoopChangedStatus=function(){this.moreToOnePageInLoop=!1,this.oneToMorePagesInLoop=!1},e.prototype.handleHooks=function(){var e=this,t=this.scroll.hooks,s=this.scroll.scroller.hooks,i=this.options.listenFlick;this.prevContent=this.scroll.scroller.content,this.hooksFn=[],this.registerHooks(this.scroll,this.scroll.eventTypes.beforeScrollStart,this.pausePlay),this.registerHooks(this.scroll,this.scroll.eventTypes.scrollEnd,this.modifyCurrentPage),this.registerHooks(this.scroll,this.scroll.eventTypes.scrollEnd,this.startPlay),this.scroll.eventTypes.mousewheelMove&&(this.registerHooks(this.scroll,this.scroll.eventTypes.mousewheelMove,(function(){return!0})),this.registerHooks(this.scroll,this.scroll.eventTypes.mousewheelEnd,(function(t){t.directionX!==o.b.Positive&&t.directionY!==o.b.Positive||e.next(),t.directionX!==o.b.Negative&&t.directionY!==o.b.Negative||e.prev()}))),this.registerHooks(t,t.eventTypes.refresh,this.refreshHandler),this.registerHooks(t,t.eventTypes.destroy,this.destroy),this.registerHooks(s,s.eventTypes.beforeRefresh,(function(){e.handleLoop(e.prevContent),e.setSlideInlineStyle()})),this.registerHooks(s,s.eventTypes.momentum,this.modifyScrollMetaHandler),this.registerHooks(s,s.eventTypes.scroll,this.scrollHandler),this.registerHooks(s,s.eventTypes.checkClick,this.startPlay),i&&this.registerHooks(s,s.eventTypes.flick,this.flickHandler)},e.prototype.startPlay=function(){var e=this,t=this.options,s=t.interval;t.autoplay&&(clearTimeout(this.autoplayTimer),this.autoplayTimer=window.setTimeout((function(){e.next()}),s))},e.prototype.pausePlay=function(){this.options.autoplay&&clearTimeout(this.autoplayTimer)},e.prototype.setSlideInlineStyle=function(){var e=this.scroll.scroller,t=e.content,s=e.wrapper,i=this.scroll.options;[{direction:"scrollX",sizeType:"offsetWidth",styleType:"width"},{direction:"scrollY",sizeType:"offsetHeight",styleType:"height"}].forEach((function(e){var o=e.direction,a=e.sizeType,r=e.styleType;if(i[o]){for(var n=s[a],h=t.children,g=h.length,p=0;p<g;p++){h[p].style[r]=n+"px"}t.style[r]=n*g+"px"}}))},e.prototype.next=function(e,t){var s=this.pages.nextPageIndex(),i=s.pageX,o=s.pageY;this.goTo(i,o,e,t)},e.prototype.prev=function(e,t){var s=this.pages.prevPageIndex(),i=s.pageX,o=s.pageY;this.goTo(i,o,e,t)},e.prototype.goToPage=function(e,t,s,i){var o=this.pages.getValidPageIndex(e,t);this.goTo(o.pageX,o.pageY,s,i)},e.prototype.getCurrentPage=function(){return this.exposedPage||this.pages.getInitialPage(!1,!0)},e.prototype.setCurrentPage=function(e){this.pages.setCurrentPage(e),this.exposedPage=this.pages.getExposedPage(e)},e.prototype.nearestPage=function(e,t){var s=this.scroll.scroller,i=s.scrollBehaviorX,a=s.scrollBehaviorY,r=i.maxScrollPos,n=i.minScrollPos,h=a.maxScrollPos,g=a.minScrollPos;return this.pages.getNearestPage(Object(o.m)(e,r,n),Object(o.m)(t,h,g))},e.prototype.satisfyThreshold=function(e,t){var s=this.scroll.scroller,i=s.scrollBehaviorX,o=s.scrollBehaviorY,a=!0;return Math.abs(e-i.absStartPos)<=this.thresholdX&&Math.abs(t-o.absStartPos)<=this.thresholdY&&(a=!1),a},e.prototype.refreshHandler=function(e){var t=this;if(this.satisfyInitialization()){this.pages.refresh(),this.computeThreshold();var s=this.contentChanged=this.prevContent!==e;s&&(this.prevContent=e);var i=this.pages.getInitialPage(this.oneToMorePagesInLoop||this.moreToOnePageInLoop,s||!this.initialised);this.initialised?this.goTo(i.pageX,i.pageY,0):this.registerHooks(this.scroll.hooks,this.scroll.hooks.eventTypes.beforeInitialScrollTo,(function(e){t.initialised=!0,e.x=i.x,e.y=i.y})),this.startPlay()}},e.prototype.computeThreshold=function(){var e=this.options.threshold;if(e%1==0)this.thresholdX=e,this.thresholdY=e;else{var t=this.pages.getPageStats(),s=t.width,i=t.height;this.thresholdX=Math.round(s*e),this.thresholdY=Math.round(i*e)}},e.prototype.cloneFirstAndLastSlidePage=function(e){var t=e.children,s=t[t.length-1].cloneNode(!0),i=t[0].cloneNode(!0);Object(o.K)(s,e),e.appendChild(i),this.cachedClonedPageDOM=[s,i]},e.prototype.removeClonedSlidePage=function(e){(e&&e.children||[]).length&&this.cachedClonedPageDOM.forEach((function(t){Object(o.N)(e,t)})),this.cachedClonedPageDOM=[]},e.prototype.modifyCurrentPage=function(e){var t=this.getCurrentPage(),s=t.pageX,i=t.pageY,o=this.nearestPage(e.x,e.y);if(this.setCurrentPage(o),this.contentChanged)return this.contentChanged=!1,!0;var a=this.getCurrentPage(),r=a.pageX,n=a.pageY;if(this.pageWillChangeTo(o),this.oneToMorePagesInLoop)return this.oneToMorePagesInLoop=!1,!0;if(this.moreToOnePageInLoop&&0===s&&0===i)return this.moreToOnePageInLoop=!1,!0;if(s!==r||i!==n){var h=this.pages.getExposedPageByPageIndex(r,n);this.scroll.trigger(this.scroll.eventTypes.slidePageChanged,h)}if(!this.resetLooping){var g=this.pages.resetLoopPage();return g?(this.resetLooping=!0,this.goTo(g.pageX,g.pageY,0),!0):void 0}this.resetLooping=!1},e.prototype.goTo=function(e,t,s,i){var a=this.pages.getInternalPage(e,t),r=i||this.options.easing||o.r.bounce,n=a.x,h=a.y,g=n-this.scroll.scroller.scrollBehaviorX.currentPos,p=h-this.scroll.scroller.scrollBehaviorY.currentPos;g||p?(s=void 0===s?this.getEaseTime(g,p):s,this.scroll.scroller.scrollTo(n,h,s,r)):this.scroll.scroller.togglePointerEvents(!0)},e.prototype.flickHandler=function(){var e=this.scroll.scroller,t=e.scrollBehaviorX,s=e.scrollBehaviorY,i=t.currentPos,o=t.startPos,a=t.direction,r=s.currentPos,n=s.startPos,h=s.direction,g=this.pages.currentPage,p=g.pageX,l=g.pageY,c=this.getEaseTime(i-o,r-n);this.goTo(p+a,l+h,c)},e.prototype.getEaseTime=function(e,t){return this.options.speed||Math.max(Math.max(Math.min(Math.abs(e),1e3),Math.min(Math.abs(t),1e3)),300)},e.prototype.modifyScrollMetaHandler=function(e){var t=this.scroll.scroller,s=t.scrollBehaviorX,i=t.scrollBehaviorY,a=t.animater,r=e.newX,n=e.newY,h=this.satisfyThreshold(r,n)||a.forceStopped?this.pages.getPageByDirection(this.nearestPage(r,n),s.direction,i.direction):this.pages.currentPage;e.time=this.getEaseTime(e.newX-h.x,e.newY-h.y),e.newX=h.x,e.newY=h.y,e.easing=this.options.easing||o.r.bounce},e.prototype.scrollHandler=function(e){var t=e.x,s=e.y;if(this.satisfyThreshold(t,s)){var i=this.nearestPage(t,s);this.pageWillChangeTo(i)}},e.prototype.pageWillChangeTo=function(e){var t,s,i=this.pages.getWillChangedPage(e);t=this.willChangeToPage,s=i,(t.pageX!==s.pageX||t.pageY!==s.pageY)&&(this.willChangeToPage=i,this.scroll.trigger(this.scroll.eventTypes.slideWillChange,this.willChangeToPage))},e.prototype.registerHooks=function(e,t,s){e.on(t,s,this),this.hooksFn.push([e,t,s])},e.prototype.destroy=function(){var e=this.scroll.scroller.content,t=this.options,s=t.loop,i=t.autoplay;s&&this.removeClonedSlidePage(e),i&&clearTimeout(this.autoplayTimer),this.hooksFn.forEach((function(e){var t=e[0],s=e[1],i=e[2];t.eventTypes[s]&&t.off(s,i)})),this.hooksFn.length=0},e.pluginName="slide",e}();t.a=g}}]);