{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///vue-better-scroll.js","webpack:///webpack/bootstrap b4e812e5dd655a041a8a","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///./node_modules/vue-loader/lib/component-normalizer.js","webpack:///./src/lib/index.js","webpack:///./src/lib/BScroll.vue","webpack:///./src/lib/BScroll.vue?5843","webpack:///./src/lib/BScroll.vue?557b","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///BScroll.vue","webpack:///./node_modules/better-scroll/dist/bscroll.esm.js","webpack:///./src/lib/Bubble.vue","webpack:///./src/lib/Bubble.vue?d828","webpack:///./src/lib/Bubble.vue?8751","webpack:///Bubble.vue","webpack:///./src/lib/Bubble.vue?199c","webpack:///./src/lib/BScroll.vue?de1f"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","list","toString","result","length","item","push","join","mediaQuery","alreadyImportedModules","id","addStylesToDom","styles","domStyle","stylesInDom","refs","j","parts","addStyle","createStyleElement","styleElement","document","createElement","type","head","appendChild","obj","update","remove","querySelector","isProduction","noop","parentNode","removeChild","isOldIE","styleIndex","singletonCounter","singletonElement","applyToSingletonTag","bind","applyToTag","newObj","css","media","sourceMap","index","styleSheet","cssText","replaceText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","sources","btoa","unescape","encodeURIComponent","JSON","stringify","firstChild","hasDocument","DEBUG","Error","listToStyles","getElementsByTagName","navigator","test","userAgent","toLowerCase","parentId","_isProduction","newList","mayRemove","textStore","replacement","filter","Boolean","rawScriptExports","compiledTemplate","injectStyles","scopeId","moduleIdentifier","esModule","scriptExports","default","options","render","staticRenderFns","_scopeId","hook","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","functional","existing","beforeCreate","h","concat","__webpack_exports__","value","__WEBPACK_IMPORTED_MODULE_0__BScroll_vue__","__WEBPACK_IMPORTED_MODULE_0__BScroll_vue___default","BScroll","install","Vue","component","window","use","injectStyle","Component","content","locals","newStyles","part","__WEBPACK_IMPORTED_MODULE_0_better_scroll__","__WEBPACK_IMPORTED_MODULE_1__Bubble_vue__","__WEBPACK_IMPORTED_MODULE_1__Bubble_vue___default","props","probeType","Number","click","listenScroll","listenBeforeScroll","scrollbar","pullDownRefresh","pullUpLoad","startY","refreshDelay","freeScroll","components","Bubble","a","data","beforePullDown","isRebounding","isPullingDown","pulling","isPullUpLoad","pullUpDirty","pullDownStyle","bubbleY","reboundPullDownTimer","afterPullDownTimer","computed","pullUpTxt","moreTxt","txt","more","noMoreTxt","noMore","refreshTxt","created","pullDownInitTop","mounted","_this","thisWrapper","$refs","wrapper","firstElementChild","style","minHeight","offsetHeight","$nextTick","initScroll","methods","_this2","assign","scrollY","scrollX","scroll","on","pos","$emit","_initPullDownRefresh","_initPullUpLoad","disable","enable","refresh","scrollTo","apply","arguments","scrollToElement","destroy","forceUpdate","dirty","_this3","_reboundPullDown","then","_afterPullDown","finishPullUp","_this4","Math","max","y","min","stop","_this5","e","_this6","_pullDownRefresh$stop","stopTime","undefined","Promise","resolve","setTimeout","finishPullDown","_this7","bounceTime","destroyed","clearTimeout","spliceOne","pop","getNow","performance","now","timing","navigationStart","Date","extend","target","_len","rest","Array","_key","source","key","isUndef","v","getDistance","x","sqrt","prefixStyle","vendor","charAt","toUpperCase","substr","addEvent","el","fn","capture","addEventListener","passive","removeEvent","removeEventListener","offset","left","top","offsetLeft","offsetTop","offsetParent","offsetToBody","rect","getBoundingClientRect","pageXOffset","pageYOffset","getRect","SVGElement","width","height","offsetWidth","preventDefaultException","exceptions","tap","eventName","ev","createEvent","initEvent","pageX","pageY","dispatchEvent","event","bubbles","cancelable","posSrc","eventSource","changedTouches","screenX","screenY","clientX","clientY","MouseEvent","forwardedTouchEvent","_constructed","dblclick","prepend","before","child","momentum","current","start","time","lowerMargin","upperMargin","wrapperSize","distance","speed","abs","deceleration","itemHeight","swipeBounceTime","wheel","swipeTime","duration","rate","destination","_findNearestValidWheel","round","warn","msg","console","error","assert","condition","createScrollbar","direction","indicator","className","Indicator","scroller","wrapperStyle","children","indicatorStyle","fade","visible","opacity","sizeRatioX","sizeRatioY","maxPosX","maxPosY","interactive","_addDOMEvents","isTombstoneNode","node","classList","contains","InfiniteScroller","createTombstone","fetch","firstAttachedItem","lastAttachedItem","anchorScrollTop","anchorItem","tombstoneHeight","tombstoneWidth","tombstones","tombstonesAnimationHandlers","items","loadedItems","requestInProgress","hasMore","wrapperEl","scrollerEl","onResize","_onResizeHandler","onScroll","scrollerStyle","_init","slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","Symbol","iterator","next","done","err","isArray","TypeError","toConsumableArray","arr2","from","inBrowser","ua","isWeChatDevTools","isAndroid","indexOf","elementStyle","transformNames","standard","webkit","Moz","O","ms","cssVendor","transform","transition","hasPerspective","hasTouch","hasTransform","hasTransition","transitionTimingFunction","transitionDuration","transitionDelay","transformOrigin","transitionEnd","TOUCH_EVENT","eventType","touchstart","touchmove","touchend","mousedown","mousemove","mouseup","DEFAULT_OPTIONS","startX","directionLockThreshold","eventPassthrough","bounce","momentumLimitTime","momentumLimitDistance","flickLimitTime","flickLimitDistance","resizePolling","preventDefault","tagName","HWCompositing","useTransition","useTransform","bindToWrapper","disableMouse","disableTouch","observeDOM","autoBlur","snap","mouseWheel","stopPropagation","zoom","infinity","ease","swipe","t","swipeBounce","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","callback","interval","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_RIGHT","PROBE_DEBOUNCE","PROBE_REALTIME","handleEvent","_start","_move","_end","_shouldShow","transitionTime","_calculate","updatePosition","hold","fadeTimeout","indicatorHeight","_height","translateZ","indicatorWidth","_width","easing","_removeDOMEvents","point","touches","initiated","moved","lastPointX","lastPointY","startTime","_handleMoveEvents","trigger","deltaX","deltaY","newX","newY","_pos","snapOption","_snapOption$easing","_nearestSnap","directionX","directionY","currentPage","hasVerticalScroll","hasHorizontalScroll","display","wrapperHeight","clientHeight","scrollerHeight","maxScrollY","wrapperWidth","clientWidth","scrollerWidth","maxScrollX","eventOperation","_handleDOMEvents","DEFAULT_SCROLL_RUNWAY","forEach","handler","infiniteScroller","scrollTop","delta","_calculateAnchoredItem","lastScreenItem","end","fill","maybeRequestContent","tombstone","position","attachContent","itemsNeeded","addContent","tombstoneLen","_removeTombstones","curPos","_fixScrollPosition","_setupAnimations","resetPosition","_addItem","unusedNodes","_collectUnusedNodes","tombstoneAnimations","_createDOMNodes","_cleanupUnusedNodes","_cacheNodeSize","resetMore","markIndex","itemLen","currentNode","currentData","splice","zIndex","_getTombStone","isTombstone","animation","_i2","_animation","tombstoneNode","tombstoneAnimationsHandler","_i3","_animation2","initialAnchor","ceil","floor","_handleOptions","_events","setScale","_initExtFeatures","_watchTransition","_initDOMObserver","_handleAutoBlur","scale","lastScale","_initSnap","_initScrollbar","_initPullUp","_initPullDown","_initWheel","_initMouseWheel","_initZoom","_initInfinite","me","isInTransition","set","newVal","pointerEvents","activeElement","blur","MutationObserver","timer","observer","mutations","_shouldNotRefresh","immediateRefresh","deferredRefresh","mutation","config","attributes","childList","subtree","observe","disconnect","_checkDOMUpdate","outsideBoundaries","minScrollX","minScrollY","stopFromTransition","check","scrollerRect","newWidth","newHeight","oldWidth","oldHeight","_zoomStart","_zoom","scaled","_zoomEnd","_resize","_transitionEnd","enabled","_onMouseWheel","isWrapperStatic","getComputedStyle","wrapperRect","relativeX","relativeY","_checkWheelAllDisabled","selectedIndex","endTime","wrapperOffset","_eventType","button","distX","distY","movingDirectionX","movingDirectionY","directionLocked","_transitionTime","absStartX","absStartY","pointX","pointY","absDistX","absDistY","timestamp","bottom","right","_translate","scrollLeft","documentElement","body","pX","pY","_checkPullDown","_checkClick","flick","momentumX","momentumY","adjustTime","snapSpeed","preventClick","wheelWrapperClass","_offset","_dblclick","dblclickTrigged","lastClickTime","_dblclick$delay","delay","resizeTimeout","_startProbe","probe","getComputedPosition","probeTimer","indicators","_transitionTimingFunction","_options$wheel$rotate","rotate","deg","_animate","destX","destY","easingFn","step","destTime","isAnimating","destScale","newScale","startScale","animateTimer","scrollBy","isSilent","_reflow","offsetX","offsetY","nodeType","wheelItemClass","easeing","roundX","roundY","matrix","split","replace","once","magic","off","count","events","len","eventsCopy","_event","slice","loop","cloneNode","querySelectorAll","pages","stepX","stepY","cx","cy","_checkSnapLoop","initPageX","_loopX","initPageY","_loopY","_goToPage","snapThreshold","threshold","snapThresholdX","snapThresholdY","listenFlick","_children","posX","posY","goToPage","prev","getCurrentPage","wheelTo","getSelectedIndex","wheelDisabledItemClass","currentIndex","cacheIndex","wheelItemsAllDisabled","_options$scrollbar","_options$scrollbar$fa","_options$scrollbar$in","_insertScrollBar","_removeScrollBars","_options$pullDownRefr","_options$pullDownRefr2","_options$pullDownRefr3","openPullDown","closePullDown","autoPullDownRefresh","_options$pullDownRefr4","_options$pullDownRefr5","_options$pullDownRefr6","pullupWatching","_watchPullUp","_checkToEnd","_options$pullUpLoad$t","openPullUp","closePullUp","_handleMouseWheelEvent","mouseWheelTimer","mouseWheelEndTimer","firstWheelOpreation","_options$mouseWheel","_options$mouseWheel$s","_options$mouseWheel$i","invert","_options$mouseWheel$e","easeTime","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","detail","needTriggerEnd","_options$zoom","_options$zoom$start","_options$zoom$min","_options$zoom$max","_zoomTo","originX","originY","zoomTo","_offsetToBody","firstFinger","secondFinger","startDistance","_offsetToBody2","_options$zoom2","_options$zoom2$min","_options$zoom2$max","pow","_options$zoom3","_options$zoom3$min","_options$zoom3$max","Version","ratio","maxDistance","devicePixelRatio","initRadius","minHeadRadius","minTailRadius","initArrowRadius","minArrowRadius","arrowWidth","initCenterX","initCenterY","headCenter","_draw","bubble","ctx","getContext","clearRect","_drawBubble","_drawArrow","save","beginPath","headRadius","arc","PI","tailRadius","tailCenter","tailPointL","controlPointL","quadraticCurveTo","headPointR","controlPointR","fillStyle","strokeStyle","stroke","restore","arrowRadius","lineTo","watch","_vm","_h","$createElement","_self","_c","ref","attrs","staticClass","_t","_v","src"],"mappings":"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","file":"vue-better-scroll.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"vue2-better-scroll\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue2-better-scroll\"] = factory();\n\telse\n\t\troot[\"vue2-better-scroll\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"vue2-better-scroll\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue2-better-scroll\"] = factory();\n\telse\n\t\troot[\"vue2-better-scroll\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\nvar listToStyles = __webpack_require__(7)\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of \n\n\n\n// WEBPACK FOOTER //\n// BScroll.vue?33729bcb","/*!\n * better-normal-scroll v1.15.2\n * (c) 2016-2019 ustbhuangyi\n * Released under the MIT License.\n */\n// As of V8 6.6, depending on the size of the array, this is anywhere\n// between 1.5-10x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\nfunction eventMixin(BScroll) {\n BScroll.prototype.on = function (type, fn) {\n var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this;\n\n if (!this._events[type]) {\n this._events[type] = [];\n }\n\n this._events[type].push([fn, context]);\n };\n\n BScroll.prototype.once = function (type, fn) {\n var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this;\n\n function magic() {\n this.off(type, magic);\n\n fn.apply(context, arguments);\n }\n // To expose the corresponding function method in order to execute the off method\n magic.fn = fn;\n\n this.on(type, magic);\n };\n\n BScroll.prototype.off = function (type, fn) {\n var _events = this._events[type];\n if (!_events) {\n return;\n }\n\n var count = _events.length;\n while (count--) {\n if (_events[count][0] === fn || _events[count][0] && _events[count][0].fn === fn) {\n spliceOne(_events, count);\n }\n }\n };\n\n BScroll.prototype.trigger = function (type) {\n var events = this._events[type];\n if (!events) {\n return;\n }\n\n var len = events.length;\n var eventsCopy = [].concat(toConsumableArray(events));\n for (var i = 0; i < len; i++) {\n var event = eventsCopy[i];\n\n var _event = slicedToArray(event, 2),\n fn = _event[0],\n context = _event[1];\n\n if (fn) {\n fn.apply(context, [].slice.call(arguments, 1));\n }\n }\n };\n}\n\n// ssr support\nvar inBrowser = typeof window !== 'undefined';\nvar ua = inBrowser && navigator.userAgent.toLowerCase();\nvar isWeChatDevTools = ua && /wechatdevtools/.test(ua);\nvar isAndroid = ua && ua.indexOf('android') > 0;\n\nfunction getNow() {\n return window.performance && window.performance.now ? window.performance.now() + window.performance.timing.navigationStart : +new Date();\n}\n\nfunction extend(target) {\n for (var _len = arguments.length, rest = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < rest.length; i++) {\n var source = rest[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target;\n}\n\nfunction isUndef(v) {\n return v === undefined || v === null;\n}\n\nfunction getDistance(x, y) {\n return Math.sqrt(x * x + y * y);\n}\n\nvar elementStyle = inBrowser && document.createElement('div').style;\n\nvar vendor = function () {\n if (!inBrowser) {\n return false;\n }\n // first pick up standard to fix #743\n var transformNames = {\n standard: 'transform',\n webkit: 'webkitTransform',\n Moz: 'MozTransform',\n O: 'OTransform',\n ms: 'msTransform'\n };\n\n for (var key in transformNames) {\n if (elementStyle[transformNames[key]] !== undefined) {\n return key;\n }\n }\n\n return false;\n}();\n\nfunction prefixStyle(style) {\n if (vendor === false) {\n return false;\n }\n\n if (vendor === 'standard') {\n if (style === 'transitionEnd') {\n return 'transitionend';\n }\n return style;\n }\n\n return vendor + style.charAt(0).toUpperCase() + style.substr(1);\n}\n\nfunction addEvent(el, type, fn, capture) {\n el.addEventListener(type, fn, { passive: false, capture: !!capture });\n}\n\nfunction removeEvent(el, type, fn, capture) {\n el.removeEventListener(type, fn, { passive: false, capture: !!capture });\n}\n\nfunction offset(el) {\n var left = 0;\n var top = 0;\n\n while (el) {\n left -= el.offsetLeft;\n top -= el.offsetTop;\n el = el.offsetParent;\n }\n\n return {\n left: left,\n top: top\n };\n}\n\nfunction offsetToBody(el) {\n var rect = el.getBoundingClientRect();\n\n return {\n left: -(rect.left + window.pageXOffset),\n top: -(rect.top + window.pageYOffset)\n };\n}\n\nvar cssVendor = vendor && vendor !== 'standard' ? '-' + vendor.toLowerCase() + '-' : '';\n\nvar transform = prefixStyle('transform');\nvar transition = prefixStyle('transition');\n\nvar hasPerspective = inBrowser && prefixStyle('perspective') in elementStyle;\n// fix issue #361\nvar hasTouch = inBrowser && ('ontouchstart' in window || isWeChatDevTools);\nvar hasTransform = transform !== false;\nvar hasTransition = inBrowser && transition in elementStyle;\n\nvar style = {\n transform: transform,\n transition: transition,\n transitionTimingFunction: prefixStyle('transitionTimingFunction'),\n transitionDuration: prefixStyle('transitionDuration'),\n transitionDelay: prefixStyle('transitionDelay'),\n transformOrigin: prefixStyle('transformOrigin'),\n transitionEnd: prefixStyle('transitionEnd')\n};\n\nvar TOUCH_EVENT = 1;\nvar MOUSE_EVENT = 2;\n\nvar eventType = {\n touchstart: TOUCH_EVENT,\n touchmove: TOUCH_EVENT,\n touchend: TOUCH_EVENT,\n\n mousedown: MOUSE_EVENT,\n mousemove: MOUSE_EVENT,\n mouseup: MOUSE_EVENT\n};\n\nfunction getRect(el) {\n if (el instanceof window.SVGElement) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top,\n left: rect.left,\n width: rect.width,\n height: rect.height\n };\n } else {\n return {\n top: el.offsetTop,\n left: el.offsetLeft,\n width: el.offsetWidth,\n height: el.offsetHeight\n };\n }\n}\n\nfunction preventDefaultException(el, exceptions) {\n for (var i in exceptions) {\n if (exceptions[i].test(el[i])) {\n return true;\n }\n }\n return false;\n}\n\nfunction tap(e, eventName) {\n var ev = document.createEvent('Event');\n ev.initEvent(eventName, true, true);\n ev.pageX = e.pageX;\n ev.pageY = e.pageY;\n e.target.dispatchEvent(ev);\n}\n\nfunction click(e) {\n var event = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'click';\n\n var eventSource = void 0;\n if (e.type === 'mouseup' || e.type === 'mousecancel') {\n eventSource = e;\n } else if (e.type === 'touchend' || e.type === 'touchcancel') {\n eventSource = e.changedTouches[0];\n }\n var posSrc = {};\n if (eventSource) {\n posSrc.screenX = eventSource.screenX || 0;\n posSrc.screenY = eventSource.screenY || 0;\n posSrc.clientX = eventSource.clientX || 0;\n posSrc.clientY = eventSource.clientY || 0;\n }\n var ev = void 0;\n var bubbles = true;\n var cancelable = true;\n if (typeof MouseEvent !== 'undefined') {\n try {\n ev = new MouseEvent(event, extend({\n bubbles: bubbles,\n cancelable: cancelable\n }, posSrc));\n } catch (e) {\n createEvent();\n }\n } else {\n createEvent();\n }\n\n function createEvent() {\n ev = document.createEvent('Event');\n ev.initEvent(event, bubbles, cancelable);\n extend(ev, posSrc);\n }\n\n // forwardedTouchEvent set to true in case of the conflict with fastclick\n ev.forwardedTouchEvent = true;\n ev._constructed = true;\n e.target.dispatchEvent(ev);\n}\n\nfunction dblclick(e) {\n click(e, 'dblclick');\n}\n\nfunction prepend(el, target) {\n if (target.firstChild) {\n before(el, target.firstChild);\n } else {\n target.appendChild(el);\n }\n}\n\nfunction before(el, target) {\n target.parentNode.insertBefore(el, target);\n}\n\nfunction removeChild(el, child) {\n el.removeChild(child);\n}\n\nvar DEFAULT_OPTIONS = {\n startX: 0,\n startY: 0,\n scrollX: false,\n scrollY: true,\n freeScroll: false,\n directionLockThreshold: 5,\n eventPassthrough: '',\n click: false,\n tap: false,\n /**\n * support any side\n * bounce: {\n * top: true,\n * bottom: true,\n * left: true,\n * right: true\n * }\n */\n bounce: true,\n bounceTime: 800,\n momentum: true,\n momentumLimitTime: 300,\n momentumLimitDistance: 15,\n swipeTime: 2500,\n swipeBounceTime: 500,\n deceleration: 0.0015,\n flickLimitTime: 200,\n flickLimitDistance: 100,\n resizePolling: 60,\n probeType: 0,\n preventDefault: true,\n preventDefaultException: {\n tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT|AUDIO)$/\n },\n HWCompositing: true,\n useTransition: true,\n useTransform: true,\n bindToWrapper: false,\n disableMouse: hasTouch,\n disableTouch: !hasTouch,\n observeDOM: true,\n autoBlur: true,\n /**\n * for picker\n * wheel: {\n * selectedIndex: 0,\n * rotate: 25,\n * adjustTime: 400\n * wheelWrapperClass: 'wheel-scroll',\n * wheelItemClass: 'wheel-item'\n * }\n */\n wheel: false,\n /**\n * for slide\n * snap: {\n * loop: false,\n * el: domEl,\n * threshold: 0.1,\n * stepX: 100,\n * stepY: 100,\n * speed: 400,\n * easing: {\n * style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n * fn: function (t) {\n * return t * (2 - t)\n * }\n * }\n * listenFlick: true\n * }\n */\n snap: false,\n /**\n * for scrollbar\n * scrollbar: {\n * fade: true,\n * interactive: false\n * }\n */\n scrollbar: false,\n /**\n * for pull down and refresh\n * pullDownRefresh: {\n * threshold: 50,\n * stop: 20\n * }\n */\n pullDownRefresh: false,\n /**\n * for pull up and load\n * pullUpLoad: {\n * threshold: 50\n * }\n */\n pullUpLoad: false,\n /**\n * for mouse wheel\n * mouseWheel: {\n * speed: 20,\n * invert: false,\n * easeTime: 300\n * }\n */\n mouseWheel: false,\n stopPropagation: false,\n /**\n * for zoom\n * zoom: {\n * start: 1,\n * min: 1,\n * max: 4\n * }\n */\n zoom: false,\n /**\n * for infinity\n * infinity: {\n * render(item, div) {\n * },\n * createTombstone() {\n * },\n * fetch(count) {\n * }\n * }\n */\n infinity: false,\n /**\n * for double click\n * dblclick: {\n * delay: 300\n * }\n */\n dblclick: false\n};\n\nfunction initMixin(BScroll) {\n BScroll.prototype._init = function (options) {\n this._handleOptions(options);\n\n // init private custom events\n this._events = {};\n\n this.x = 0;\n this.y = 0;\n this.directionX = 0;\n this.directionY = 0;\n\n this.setScale(1);\n\n this._addDOMEvents();\n\n this._initExtFeatures();\n\n this._watchTransition();\n\n if (this.options.observeDOM) {\n this._initDOMObserver();\n }\n\n if (this.options.autoBlur) {\n this._handleAutoBlur();\n }\n\n this.refresh();\n\n if (!this.options.snap) {\n this.scrollTo(this.options.startX, this.options.startY);\n }\n\n this.enable();\n };\n\n BScroll.prototype.setScale = function (scale) {\n this.lastScale = isUndef(this.scale) ? scale : this.scale;\n this.scale = scale;\n };\n\n BScroll.prototype._handleOptions = function (options) {\n this.options = extend({}, DEFAULT_OPTIONS, options);\n\n this.translateZ = this.options.HWCompositing && hasPerspective ? ' translateZ(0)' : '';\n\n this.options.useTransition = this.options.useTransition && hasTransition;\n this.options.useTransform = this.options.useTransform && hasTransform;\n\n this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault;\n\n // If you want eventPassthrough I have to lock one of the axes\n this.options.scrollX = this.options.eventPassthrough === 'horizontal' ? false : this.options.scrollX;\n this.options.scrollY = this.options.eventPassthrough === 'vertical' ? false : this.options.scrollY;\n\n // With eventPassthrough we also need lockDirection mechanism\n this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough;\n this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold;\n\n if (this.options.tap === true) {\n this.options.tap = 'tap';\n }\n };\n\n BScroll.prototype._addDOMEvents = function () {\n var eventOperation = addEvent;\n this._handleDOMEvents(eventOperation);\n };\n\n BScroll.prototype._removeDOMEvents = function () {\n var eventOperation = removeEvent;\n this._handleDOMEvents(eventOperation);\n };\n\n BScroll.prototype._handleDOMEvents = function (eventOperation) {\n var target = this.options.bindToWrapper ? this.wrapper : window;\n eventOperation(window, 'orientationchange', this);\n eventOperation(window, 'resize', this);\n\n if (this.options.click) {\n eventOperation(this.wrapper, 'click', this, true);\n }\n\n if (!this.options.disableMouse) {\n eventOperation(this.wrapper, 'mousedown', this);\n eventOperation(target, 'mousemove', this);\n eventOperation(target, 'mousecancel', this);\n eventOperation(target, 'mouseup', this);\n }\n\n if (hasTouch && !this.options.disableTouch) {\n eventOperation(this.wrapper, 'touchstart', this);\n eventOperation(target, 'touchmove', this);\n eventOperation(target, 'touchcancel', this);\n eventOperation(target, 'touchend', this);\n }\n\n eventOperation(this.scroller, style.transitionEnd, this);\n };\n\n BScroll.prototype._initExtFeatures = function () {\n if (this.options.snap) {\n this._initSnap();\n }\n if (this.options.scrollbar) {\n this._initScrollbar();\n }\n if (this.options.pullUpLoad) {\n this._initPullUp();\n }\n if (this.options.pullDownRefresh) {\n this._initPullDown();\n }\n if (this.options.wheel) {\n this._initWheel();\n }\n if (this.options.mouseWheel) {\n this._initMouseWheel();\n }\n if (this.options.zoom) {\n this._initZoom();\n }\n if (this.options.infinity) {\n this._initInfinite();\n }\n };\n\n BScroll.prototype._watchTransition = function () {\n if (typeof Object.defineProperty !== 'function') {\n return;\n }\n var me = this;\n var isInTransition = false;\n var key = this.options.useTransition ? 'isInTransition' : 'isAnimating';\n Object.defineProperty(this, key, {\n get: function get() {\n return isInTransition;\n },\n set: function set(newVal) {\n isInTransition = newVal;\n // fix issue #359\n var el = me.scroller.children.length ? me.scroller.children : [me.scroller];\n var pointerEvents = isInTransition && !me.pulling ? 'none' : 'auto';\n for (var i = 0; i < el.length; i++) {\n el[i].style.pointerEvents = pointerEvents;\n }\n }\n });\n };\n\n BScroll.prototype._handleAutoBlur = function () {\n this.on('scrollStart', function () {\n var activeElement = document.activeElement;\n if (activeElement && (activeElement.tagName === 'INPUT' || activeElement.tagName === 'TEXTAREA')) {\n activeElement.blur();\n }\n });\n };\n\n BScroll.prototype._initDOMObserver = function () {\n var _this = this;\n\n if (typeof MutationObserver !== 'undefined') {\n var timer = void 0;\n var observer = new MutationObserver(function (mutations) {\n // don't do any refresh during the transition, or outside of the boundaries\n if (_this._shouldNotRefresh()) {\n return;\n }\n var immediateRefresh = false;\n var deferredRefresh = false;\n for (var i = 0; i < mutations.length; i++) {\n var mutation = mutations[i];\n if (mutation.type !== 'attributes') {\n immediateRefresh = true;\n break;\n } else {\n if (mutation.target !== _this.scroller) {\n deferredRefresh = true;\n break;\n }\n }\n }\n if (immediateRefresh) {\n _this.refresh();\n } else if (deferredRefresh) {\n // attributes changes too often\n clearTimeout(timer);\n timer = setTimeout(function () {\n if (!_this._shouldNotRefresh()) {\n _this.refresh();\n }\n }, 60);\n }\n });\n var config = {\n attributes: true,\n childList: true,\n subtree: true\n };\n observer.observe(this.scroller, config);\n\n this.on('destroy', function () {\n observer.disconnect();\n });\n } else {\n this._checkDOMUpdate();\n }\n };\n\n BScroll.prototype._shouldNotRefresh = function () {\n var outsideBoundaries = this.x > this.minScrollX || this.x < this.maxScrollX || this.y > this.minScrollY || this.y < this.maxScrollY;\n\n return this.isInTransition || this.stopFromTransition || outsideBoundaries;\n };\n\n BScroll.prototype._checkDOMUpdate = function () {\n var scrollerRect = getRect(this.scroller);\n var oldWidth = scrollerRect.width;\n var oldHeight = scrollerRect.height;\n\n function check() {\n if (this.destroyed) {\n return;\n }\n scrollerRect = getRect(this.scroller);\n var newWidth = scrollerRect.width;\n var newHeight = scrollerRect.height;\n\n if (oldWidth !== newWidth || oldHeight !== newHeight) {\n this.refresh();\n }\n oldWidth = newWidth;\n oldHeight = newHeight;\n\n next.call(this);\n }\n\n function next() {\n var _this2 = this;\n\n setTimeout(function () {\n check.call(_this2);\n }, 1000);\n }\n\n next.call(this);\n };\n\n BScroll.prototype.handleEvent = function (e) {\n switch (e.type) {\n case 'touchstart':\n case 'mousedown':\n this._start(e);\n if (this.options.zoom && e.touches && e.touches.length > 1) {\n this._zoomStart(e);\n }\n break;\n case 'touchmove':\n case 'mousemove':\n if (this.options.zoom && e.touches && e.touches.length > 1) {\n this._zoom(e);\n } else {\n this._move(e);\n }\n break;\n case 'touchend':\n case 'mouseup':\n case 'touchcancel':\n case 'mousecancel':\n if (this.scaled) {\n this._zoomEnd(e);\n } else {\n this._end(e);\n }\n break;\n case 'orientationchange':\n case 'resize':\n this._resize();\n break;\n case 'transitionend':\n case 'webkitTransitionEnd':\n case 'oTransitionEnd':\n case 'MSTransitionEnd':\n this._transitionEnd(e);\n break;\n case 'click':\n if (this.enabled && !e._constructed) {\n if (!preventDefaultException(e.target, this.options.preventDefaultException)) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n break;\n case 'wheel':\n case 'DOMMouseScroll':\n case 'mousewheel':\n this._onMouseWheel(e);\n break;\n }\n };\n\n BScroll.prototype.refresh = function () {\n var isWrapperStatic = window.getComputedStyle(this.wrapper, null).position === 'static';\n var wrapperRect = getRect(this.wrapper);\n this.wrapperWidth = wrapperRect.width;\n this.wrapperHeight = wrapperRect.height;\n\n var scrollerRect = getRect(this.scroller);\n this.scrollerWidth = Math.round(scrollerRect.width * this.scale);\n this.scrollerHeight = Math.round(scrollerRect.height * this.scale);\n\n this.relativeX = scrollerRect.left;\n this.relativeY = scrollerRect.top;\n\n if (isWrapperStatic) {\n this.relativeX -= wrapperRect.left;\n this.relativeY -= wrapperRect.top;\n }\n\n this.minScrollX = 0;\n this.minScrollY = 0;\n\n var wheel = this.options.wheel;\n if (wheel) {\n this.items = this.scroller.children;\n // check whether there are all disable items or not when refresh\n this._checkWheelAllDisabled();\n this.options.itemHeight = this.itemHeight = this.items.length ? this.scrollerHeight / this.items.length : 0;\n if (this.selectedIndex === undefined) {\n this.selectedIndex = wheel.selectedIndex || 0;\n }\n this.options.startY = -this.selectedIndex * this.itemHeight;\n\n this.maxScrollX = 0;\n this.maxScrollY = -this.itemHeight * (this.items.length - 1);\n } else {\n this.maxScrollX = this.wrapperWidth - this.scrollerWidth;\n if (!this.options.infinity) {\n this.maxScrollY = this.wrapperHeight - this.scrollerHeight;\n }\n if (this.maxScrollX < 0) {\n this.maxScrollX -= this.relativeX;\n this.minScrollX = -this.relativeX;\n } else if (this.scale > 1) {\n this.maxScrollX = this.maxScrollX / 2 - this.relativeX;\n this.minScrollX = this.maxScrollX;\n }\n if (this.maxScrollY < 0) {\n this.maxScrollY -= this.relativeY;\n this.minScrollY = -this.relativeY;\n } else if (this.scale > 1) {\n this.maxScrollY = this.maxScrollY / 2 - this.relativeY;\n this.minScrollY = this.maxScrollY;\n }\n }\n\n this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < this.minScrollX;\n this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < this.minScrollY;\n\n if (!this.hasHorizontalScroll) {\n this.maxScrollX = this.minScrollX;\n this.scrollerWidth = this.wrapperWidth;\n }\n\n if (!this.hasVerticalScroll) {\n this.maxScrollY = this.minScrollY;\n this.scrollerHeight = this.wrapperHeight;\n }\n\n this.endTime = 0;\n this.directionX = 0;\n this.directionY = 0;\n this.wrapperOffset = offset(this.wrapper);\n\n this.trigger('refresh');\n\n !this.scaled && this.resetPosition();\n };\n\n BScroll.prototype.enable = function () {\n this.enabled = true;\n };\n\n BScroll.prototype.disable = function () {\n this.enabled = false;\n };\n}\n\nvar ease = {\n // easeOutQuint\n swipe: {\n style: 'cubic-bezier(0.23, 1, 0.32, 1)',\n fn: function fn(t) {\n return 1 + --t * t * t * t * t;\n }\n },\n // easeOutQuard\n swipeBounce: {\n style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\n fn: function fn(t) {\n return t * (2 - t);\n }\n },\n // easeOutQuart\n bounce: {\n style: 'cubic-bezier(0.165, 0.84, 0.44, 1)',\n fn: function fn(t) {\n return 1 - --t * t * t * t;\n }\n }\n};\n\nfunction momentum(current, start, time, lowerMargin, upperMargin, wrapperSize, options, scroll) {\n var distance = current - start;\n var speed = Math.abs(distance) / time;\n\n var deceleration = options.deceleration,\n itemHeight = options.itemHeight,\n swipeBounceTime = options.swipeBounceTime,\n wheel = options.wheel,\n swipeTime = options.swipeTime;\n\n var duration = swipeTime;\n var rate = wheel ? 4 : 15;\n\n var destination = current + speed / deceleration * (distance < 0 ? -1 : 1);\n\n if (wheel && itemHeight) {\n destination = scroll._findNearestValidWheel(destination).y;\n }\n\n if (destination < lowerMargin) {\n destination = wrapperSize ? Math.max(lowerMargin - wrapperSize / 4, lowerMargin - wrapperSize / rate * speed) : lowerMargin;\n duration = swipeBounceTime;\n } else if (destination > upperMargin) {\n destination = wrapperSize ? Math.min(upperMargin + wrapperSize / 4, upperMargin + wrapperSize / rate * speed) : upperMargin;\n duration = swipeBounceTime;\n }\n\n return {\n destination: Math.round(destination),\n duration: duration\n };\n}\n\nvar DEFAULT_INTERVAL = 100 / 60;\n\nfunction noop() {}\n\nvar requestAnimationFrame = function () {\n if (!inBrowser) {\n /* istanbul ignore if */\n return noop;\n }\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame ||\n // if all else fails, use setTimeout\n function (callback) {\n return window.setTimeout(callback, (callback.interval || DEFAULT_INTERVAL) / 2); // make interval as precise as possible.\n };\n}();\n\nvar cancelAnimationFrame = function () {\n if (!inBrowser) {\n /* istanbul ignore if */\n return noop;\n }\n return window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || function (id) {\n window.clearTimeout(id);\n };\n}();\n\nvar DIRECTION_UP = 1;\nvar DIRECTION_DOWN = -1;\nvar DIRECTION_LEFT = 1;\nvar DIRECTION_RIGHT = -1;\n\nvar PROBE_DEBOUNCE = 1;\n\nvar PROBE_REALTIME = 3;\n\nfunction warn(msg) {\n console.error('[BScroll warn]: ' + msg);\n}\n\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error('[BScroll] ' + msg);\n }\n}\n\nfunction coreMixin(BScroll) {\n BScroll.prototype._start = function (e) {\n var _eventType = eventType[e.type];\n if (_eventType !== TOUCH_EVENT) {\n if (e.button !== 0) {\n return;\n }\n }\n if (!this.enabled || this.destroyed || this.initiated && this.initiated !== _eventType) {\n return;\n }\n this.initiated = _eventType;\n\n if (this.options.preventDefault && !preventDefaultException(e.target, this.options.preventDefaultException)) {\n e.preventDefault();\n }\n if (this.options.stopPropagation) {\n e.stopPropagation();\n }\n\n this.moved = false;\n this.distX = 0;\n this.distY = 0;\n this.directionX = 0;\n this.directionY = 0;\n this.movingDirectionX = 0;\n this.movingDirectionY = 0;\n this.directionLocked = 0;\n\n this._transitionTime();\n this.startTime = getNow();\n\n if (this.options.wheel) {\n this.target = e.target;\n }\n\n this.stop();\n\n var point = e.touches ? e.touches[0] : e;\n\n this.startX = this.x;\n this.startY = this.y;\n this.absStartX = this.x;\n this.absStartY = this.y;\n this.pointX = point.pageX;\n this.pointY = point.pageY;\n\n this.trigger('beforeScrollStart');\n };\n\n BScroll.prototype._move = function (e) {\n if (!this.enabled || this.destroyed || eventType[e.type] !== this.initiated) {\n return;\n }\n\n if (this.options.preventDefault) {\n e.preventDefault();\n }\n if (this.options.stopPropagation) {\n e.stopPropagation();\n }\n\n var point = e.touches ? e.touches[0] : e;\n var deltaX = point.pageX - this.pointX;\n var deltaY = point.pageY - this.pointY;\n\n this.pointX = point.pageX;\n this.pointY = point.pageY;\n\n this.distX += deltaX;\n this.distY += deltaY;\n\n var absDistX = Math.abs(this.distX);\n var absDistY = Math.abs(this.distY);\n\n var timestamp = getNow();\n\n // We need to move at least momentumLimitDistance pixels for the scrolling to initiate\n if (timestamp - this.endTime > this.options.momentumLimitTime && !this.moved && absDistY < this.options.momentumLimitDistance && absDistX < this.options.momentumLimitDistance) {\n return;\n }\n\n // If you are scrolling in one direction lock the other\n if (!this.directionLocked && !this.options.freeScroll) {\n if (absDistX > absDistY + this.options.directionLockThreshold) {\n this.directionLocked = 'h'; // lock horizontally\n } else if (absDistY >= absDistX + this.options.directionLockThreshold) {\n this.directionLocked = 'v'; // lock vertically\n } else {\n this.directionLocked = 'n'; // no lock\n }\n }\n\n if (this.directionLocked === 'h') {\n if (this.options.eventPassthrough === 'vertical') {\n e.preventDefault();\n } else if (this.options.eventPassthrough === 'horizontal') {\n this.initiated = false;\n return;\n }\n deltaY = 0;\n } else if (this.directionLocked === 'v') {\n if (this.options.eventPassthrough === 'horizontal') {\n e.preventDefault();\n } else if (this.options.eventPassthrough === 'vertical') {\n this.initiated = false;\n return;\n }\n deltaX = 0;\n }\n\n deltaX = this.hasHorizontalScroll ? deltaX : 0;\n deltaY = this.hasVerticalScroll ? deltaY : 0;\n this.movingDirectionX = deltaX > 0 ? DIRECTION_RIGHT : deltaX < 0 ? DIRECTION_LEFT : 0;\n this.movingDirectionY = deltaY > 0 ? DIRECTION_DOWN : deltaY < 0 ? DIRECTION_UP : 0;\n\n var newX = this.x + deltaX;\n var newY = this.y + deltaY;\n\n var top = false;\n var bottom = false;\n var left = false;\n var right = false;\n // Slow down or stop if outside of the boundaries\n var bounce = this.options.bounce;\n if (bounce !== false) {\n top = bounce.top === undefined ? true : bounce.top;\n bottom = bounce.bottom === undefined ? true : bounce.bottom;\n left = bounce.left === undefined ? true : bounce.left;\n right = bounce.right === undefined ? true : bounce.right;\n }\n if (newX > this.minScrollX || newX < this.maxScrollX) {\n if (newX > this.minScrollX && left || newX < this.maxScrollX && right) {\n newX = this.x + deltaX / 3;\n } else {\n newX = newX > this.minScrollX ? this.minScrollX : this.maxScrollX;\n }\n }\n if (newY > this.minScrollY || newY < this.maxScrollY) {\n if (newY > this.minScrollY && top || newY < this.maxScrollY && bottom) {\n newY = this.y + deltaY / 3;\n } else {\n newY = newY > this.minScrollY ? this.minScrollY : this.maxScrollY;\n }\n }\n\n if (!this.moved) {\n this.moved = true;\n this.trigger('scrollStart');\n }\n\n this._translate(newX, newY);\n\n if (timestamp - this.startTime > this.options.momentumLimitTime) {\n this.startTime = timestamp;\n this.startX = this.x;\n this.startY = this.y;\n\n if (this.options.probeType === PROBE_DEBOUNCE) {\n this.trigger('scroll', {\n x: this.x,\n y: this.y\n });\n }\n }\n\n if (this.options.probeType > PROBE_DEBOUNCE) {\n this.trigger('scroll', {\n x: this.x,\n y: this.y\n });\n }\n\n var scrollLeft = document.documentElement.scrollLeft || window.pageXOffset || document.body.scrollLeft;\n var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;\n\n var pX = this.pointX - scrollLeft;\n var pY = this.pointY - scrollTop;\n\n if (pX > document.documentElement.clientWidth - this.options.momentumLimitDistance || pX < this.options.momentumLimitDistance || pY < this.options.momentumLimitDistance || pY > document.documentElement.clientHeight - this.options.momentumLimitDistance) {\n this._end(e);\n }\n };\n\n BScroll.prototype._end = function (e) {\n if (!this.enabled || this.destroyed || eventType[e.type] !== this.initiated) {\n return;\n }\n this.initiated = false;\n\n if (this.options.preventDefault && !preventDefaultException(e.target, this.options.preventDefaultException)) {\n e.preventDefault();\n }\n if (this.options.stopPropagation) {\n e.stopPropagation();\n }\n\n this.trigger('touchEnd', {\n x: this.x,\n y: this.y\n });\n\n this.isInTransition = false;\n\n // ensures that the last position is rounded\n var newX = Math.round(this.x);\n var newY = Math.round(this.y);\n\n var deltaX = newX - this.absStartX;\n var deltaY = newY - this.absStartY;\n this.directionX = deltaX > 0 ? DIRECTION_RIGHT : deltaX < 0 ? DIRECTION_LEFT : 0;\n this.directionY = deltaY > 0 ? DIRECTION_DOWN : deltaY < 0 ? DIRECTION_UP : 0;\n\n // if configure pull down refresh, check it first\n if (this.options.pullDownRefresh && this._checkPullDown()) {\n return;\n }\n\n // check if it is a click operation\n if (this._checkClick(e)) {\n this.trigger('scrollCancel');\n return;\n }\n\n // reset if we are outside of the boundaries\n if (this.resetPosition(this.options.bounceTime, ease.bounce)) {\n return;\n }\n\n this._translate(newX, newY);\n\n this.endTime = getNow();\n var duration = this.endTime - this.startTime;\n var absDistX = Math.abs(newX - this.startX);\n var absDistY = Math.abs(newY - this.startY);\n\n // flick\n if (this._events.flick && duration < this.options.flickLimitTime && absDistX < this.options.flickLimitDistance && absDistY < this.options.flickLimitDistance) {\n this.trigger('flick');\n return;\n }\n\n var time = 0;\n // start momentum animation if needed\n if (this.options.momentum && duration < this.options.momentumLimitTime && (absDistY > this.options.momentumLimitDistance || absDistX > this.options.momentumLimitDistance)) {\n var top = false;\n var bottom = false;\n var left = false;\n var right = false;\n var bounce = this.options.bounce;\n if (bounce !== false) {\n top = bounce.top === undefined ? true : bounce.top;\n bottom = bounce.bottom === undefined ? true : bounce.bottom;\n left = bounce.left === undefined ? true : bounce.left;\n right = bounce.right === undefined ? true : bounce.right;\n }\n var wrapperWidth = this.directionX === DIRECTION_RIGHT && left || this.directionX === DIRECTION_LEFT && right ? this.wrapperWidth : 0;\n var wrapperHeight = this.directionY === DIRECTION_DOWN && top || this.directionY === DIRECTION_UP && bottom ? this.wrapperHeight : 0;\n var momentumX = this.hasHorizontalScroll ? momentum(this.x, this.startX, duration, this.maxScrollX, this.minScrollX, wrapperWidth, this.options, this) : { destination: newX, duration: 0 };\n var momentumY = this.hasVerticalScroll ? momentum(this.y, this.startY, duration, this.maxScrollY, this.minScrollY, wrapperHeight, this.options, this) : { destination: newY, duration: 0 };\n newX = momentumX.destination;\n newY = momentumY.destination;\n time = Math.max(momentumX.duration, momentumY.duration);\n this.isInTransition = true;\n } else {\n if (this.options.wheel) {\n newY = this._findNearestValidWheel(newY).y;\n time = this.options.wheel.adjustTime || 400;\n }\n }\n\n var easing = ease.swipe;\n if (this.options.snap) {\n var snap = this._nearestSnap(newX, newY);\n this.currentPage = snap;\n time = this.options.snapSpeed || Math.max(Math.max(Math.min(Math.abs(newX - snap.x), 1000), Math.min(Math.abs(newY - snap.y), 1000)), 300);\n newX = snap.x;\n newY = snap.y;\n\n this.directionX = 0;\n this.directionY = 0;\n easing = this.options.snap.easing || ease.bounce;\n }\n\n if (newX !== this.x || newY !== this.y) {\n // change easing function when scroller goes out of the boundaries\n if (newX > this.minScrollX || newX < this.maxScrollX || newY > this.minScrollY || newY < this.maxScrollY) {\n easing = ease.swipeBounce;\n }\n this.scrollTo(newX, newY, time, easing);\n return;\n }\n\n if (this.options.wheel) {\n this.selectedIndex = this._findNearestValidWheel(this.y).index;\n }\n\n this.trigger('scrollEnd', {\n x: this.x,\n y: this.y\n });\n };\n\n BScroll.prototype._checkClick = function (e) {\n // when in the process of pulling down, it should not prevent click\n var preventClick = this.stopFromTransition && !this.pulling;\n this.stopFromTransition = false;\n\n // we scrolled less than 15 pixels\n if (!this.moved) {\n if (this.options.wheel) {\n if (this.target && this.target.className === this.options.wheel.wheelWrapperClass) {\n var index = this._findNearestValidWheel(this.y).index;\n var _offset = Math.round((this.pointY + offsetToBody(this.wrapper).top - this.wrapperHeight / 2) / this.itemHeight);\n this.target = this.items[index + _offset];\n }\n var top = offset(this.target).top;\n var left = offset(this.target).left;\n top -= this.wrapperOffset.top;\n top -= Math.round(this.target.offsetHeight / 2 - this.wrapper.offsetHeight / 2) || 0;\n left -= this.wrapperOffset.left;\n left -= Math.round(this.target.offsetWidth / 2 - this.wrapper.offsetWidth / 2) || 0;\n\n top = this._findNearestValidWheel(top).y;\n this.scrollTo(left, top, this.options.wheel.adjustTime || 400, ease.swipe);\n return true;\n } else {\n if (!preventClick) {\n var _dblclick = this.options.dblclick;\n var dblclickTrigged = false;\n if (_dblclick && this.lastClickTime) {\n var _dblclick$delay = _dblclick.delay,\n delay = _dblclick$delay === undefined ? 300 : _dblclick$delay;\n\n if (getNow() - this.lastClickTime < delay) {\n dblclickTrigged = true;\n dblclick(e);\n }\n }\n if (this.options.tap) {\n tap(e, this.options.tap);\n }\n\n if (this.options.click && !preventDefaultException(e.target, this.options.preventDefaultException)) {\n click(e);\n }\n this.lastClickTime = dblclickTrigged ? null : getNow();\n return true;\n }\n return false;\n }\n }\n return false;\n };\n\n BScroll.prototype._resize = function () {\n var _this = this;\n\n if (!this.enabled) {\n return;\n }\n // fix a scroll problem under Android condition\n if (isAndroid) {\n this.wrapper.scrollTop = 0;\n }\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(function () {\n _this.refresh();\n }, this.options.resizePolling);\n };\n\n BScroll.prototype._startProbe = function () {\n cancelAnimationFrame(this.probeTimer);\n this.probeTimer = requestAnimationFrame(probe);\n\n var me = this;\n\n function probe() {\n var pos = me.getComputedPosition();\n me.trigger('scroll', pos);\n if (!me.isInTransition) {\n me.trigger('scrollEnd', pos);\n return;\n }\n me.probeTimer = requestAnimationFrame(probe);\n }\n };\n\n BScroll.prototype._transitionTime = function () {\n var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n this.scrollerStyle[style.transitionDuration] = time + 'ms';\n\n if (this.options.wheel) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].style[style.transitionDuration] = time + 'ms';\n }\n }\n\n if (this.indicators) {\n for (var _i = 0; _i < this.indicators.length; _i++) {\n this.indicators[_i].transitionTime(time);\n }\n }\n };\n\n BScroll.prototype._transitionTimingFunction = function (easing) {\n this.scrollerStyle[style.transitionTimingFunction] = easing;\n\n if (this.options.wheel) {\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].style[style.transitionTimingFunction] = easing;\n }\n }\n\n if (this.indicators) {\n for (var _i2 = 0; _i2 < this.indicators.length; _i2++) {\n this.indicators[_i2].transitionTimingFunction(easing);\n }\n }\n };\n\n BScroll.prototype._transitionEnd = function (e) {\n if (e.target !== this.scroller || !this.isInTransition) {\n return;\n }\n\n this._transitionTime();\n var needReset = !this.pulling || this.movingDirectionY === DIRECTION_UP;\n if (needReset && !this.resetPosition(this.options.bounceTime, ease.bounce)) {\n this.isInTransition = false;\n if (this.options.probeType !== PROBE_REALTIME) {\n this.trigger('scrollEnd', {\n x: this.x,\n y: this.y\n });\n }\n }\n };\n\n BScroll.prototype._translate = function (x, y, scale) {\n assert(!isUndef(x) && !isUndef(y), 'Translate x or y is null or undefined.');\n if (isUndef(scale)) {\n scale = this.scale;\n }\n if (this.options.useTransform) {\n this.scrollerStyle[style.transform] = 'translate(' + x + 'px,' + y + 'px) scale(' + scale + ')' + this.translateZ;\n } else {\n x = Math.round(x);\n y = Math.round(y);\n this.scrollerStyle.left = x + 'px';\n this.scrollerStyle.top = y + 'px';\n }\n\n if (this.options.wheel) {\n var _options$wheel$rotate = this.options.wheel.rotate,\n rotate = _options$wheel$rotate === undefined ? 25 : _options$wheel$rotate;\n\n for (var i = 0; i < this.items.length; i++) {\n var deg = rotate * (y / this.itemHeight + i);\n this.items[i].style[style.transform] = 'rotateX(' + deg + 'deg)';\n }\n }\n\n this.x = x;\n this.y = y;\n this.setScale(scale);\n\n if (this.indicators) {\n for (var _i3 = 0; _i3 < this.indicators.length; _i3++) {\n this.indicators[_i3].updatePosition();\n }\n }\n };\n\n BScroll.prototype._animate = function (destX, destY, duration, easingFn) {\n var me = this;\n var startX = this.x;\n var startY = this.y;\n var startScale = this.lastScale;\n var destScale = this.scale;\n var startTime = getNow();\n var destTime = startTime + duration;\n\n function step() {\n var now = getNow();\n\n if (now >= destTime) {\n me.isAnimating = false;\n me._translate(destX, destY, destScale);\n\n me.trigger('scroll', {\n x: me.x,\n y: me.y\n });\n\n if (!me.pulling && !me.resetPosition(me.options.bounceTime)) {\n me.trigger('scrollEnd', {\n x: me.x,\n y: me.y\n });\n }\n return;\n }\n now = (now - startTime) / duration;\n var easing = easingFn(now);\n var newX = (destX - startX) * easing + startX;\n var newY = (destY - startY) * easing + startY;\n var newScale = (destScale - startScale) * easing + startScale;\n\n me._translate(newX, newY, newScale);\n\n if (me.isAnimating) {\n me.animateTimer = requestAnimationFrame(step);\n }\n\n if (me.options.probeType === PROBE_REALTIME) {\n me.trigger('scroll', {\n x: me.x,\n y: me.y\n });\n }\n }\n\n this.isAnimating = true;\n cancelAnimationFrame(this.animateTimer);\n step();\n };\n\n BScroll.prototype.scrollBy = function (x, y) {\n var time = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var easing = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ease.bounce;\n\n x = this.x + x;\n y = this.y + y;\n\n this.scrollTo(x, y, time, easing);\n };\n\n BScroll.prototype.scrollTo = function (x, y) {\n var time = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var easing = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ease.bounce;\n var isSilent = arguments[4];\n\n if (this.options.wheel) {\n y = this._findNearestValidWheel(y).y;\n }\n if (x === this.x && y === this.y) {\n return;\n }\n this.isInTransition = this.options.useTransition && time > 0 && (this.x !== x || this.y !== y);\n\n if (!time || this.options.useTransition) {\n this._transitionTimingFunction(easing.style);\n this._transitionTime(time);\n this._translate(x, y);\n\n if (time && this.options.probeType === PROBE_REALTIME) {\n this._startProbe();\n }\n if (!time && !isSilent) {\n // don't trigger resetPosition when zoom feature is open, fix #748\n if (this.options.zoom) return;\n this.trigger('scroll', {\n x: x,\n y: y\n });\n // force reflow to put everything in position\n this._reflow = document.body.offsetHeight;\n if (!this.resetPosition(this.options.bounceTime, ease.bounce)) {\n this.trigger('scrollEnd', {\n x: x,\n y: y\n });\n }\n }\n\n if (this.options.wheel) {\n this.selectedIndex = this._findNearestValidWheel(y).index;\n }\n } else {\n this._animate(x, y, time, easing.fn);\n }\n };\n\n BScroll.prototype.scrollToElement = function (el, time, offsetX, offsetY, easing) {\n if (!el) {\n return;\n }\n el = el.nodeType ? el : this.scroller.querySelector(el);\n\n if (this.options.wheel && !el.classList.contains(this.options.wheel.wheelItemClass)) {\n return;\n }\n\n var pos = offset(el);\n pos.left -= this.wrapperOffset.left;\n pos.top -= this.wrapperOffset.top;\n\n // if offsetX/Y are true we center the element to the screen\n if (offsetX === true) {\n offsetX = Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2);\n }\n if (offsetY === true) {\n offsetY = Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2);\n }\n\n pos.left -= offsetX || 0;\n pos.top -= offsetY || 0;\n pos.left = pos.left > this.minScrollX ? this.minScrollX : pos.left < this.maxScrollX ? this.maxScrollX : pos.left;\n pos.top = pos.top > this.minScrollY ? this.minScrollY : pos.top < this.maxScrollY ? this.maxScrollY : pos.top;\n\n if (this.options.wheel) {\n pos.top = this._findNearestValidWheel(pos.top).y;\n }\n\n this.scrollTo(pos.left, pos.top, time, easing);\n };\n\n BScroll.prototype.resetPosition = function () {\n var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var easeing = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ease.bounce;\n\n var x = this.x;\n var roundX = Math.round(x);\n if (!this.hasHorizontalScroll || roundX > this.minScrollX) {\n x = this.minScrollX;\n } else if (roundX < this.maxScrollX) {\n x = this.maxScrollX;\n }\n\n var y = this.y;\n var roundY = Math.round(y);\n if (!this.hasVerticalScroll || roundY > this.minScrollY) {\n y = this.minScrollY;\n } else if (roundY < this.maxScrollY) {\n y = this.maxScrollY;\n }\n\n if (x === this.x && y === this.y) {\n return false;\n }\n\n this.scrollTo(x, y, time, easeing);\n\n return true;\n };\n\n BScroll.prototype.getComputedPosition = function () {\n var matrix = window.getComputedStyle(this.scroller, null);\n var x = void 0;\n var y = void 0;\n\n if (this.options.useTransform) {\n matrix = matrix[style.transform].split(')')[0].split(', ');\n x = +(matrix[12] || matrix[4]);\n y = +(matrix[13] || matrix[5]);\n } else {\n x = +matrix.left.replace(/[^-\\d.]/g, '');\n y = +matrix.top.replace(/[^-\\d.]/g, '');\n }\n\n return {\n x: x,\n y: y\n };\n };\n\n BScroll.prototype.stop = function () {\n if (this.options.useTransition && this.isInTransition) {\n this.isInTransition = false;\n cancelAnimationFrame(this.probeTimer);\n var pos = this.getComputedPosition();\n this._translate(pos.x, pos.y);\n if (this.options.wheel) {\n this.target = this.items[this._findNearestValidWheel(pos.y).index];\n } else {\n this.trigger('scrollEnd', {\n x: this.x,\n y: this.y\n });\n }\n this.stopFromTransition = true;\n } else if (!this.options.useTransition && this.isAnimating) {\n this.isAnimating = false;\n cancelAnimationFrame(this.animateTimer);\n this.trigger('scrollEnd', {\n x: this.x,\n y: this.y\n });\n this.stopFromTransition = true;\n }\n };\n\n BScroll.prototype.destroy = function () {\n this.destroyed = true;\n this.trigger('destroy');\n if (this.options.useTransition) {\n cancelAnimationFrame(this.probeTimer);\n } else {\n cancelAnimationFrame(this.animateTimer);\n }\n this._removeDOMEvents();\n // remove custom events\n this._events = {};\n };\n}\n\nfunction snapMixin(BScroll) {\n BScroll.prototype._initSnap = function () {\n var _this = this;\n\n this.currentPage = {};\n var snap = this.options.snap;\n\n if (snap.loop) {\n var children = this.scroller.children;\n if (children.length > 1) {\n prepend(children[children.length - 1].cloneNode(true), this.scroller);\n this.scroller.appendChild(children[1].cloneNode(true));\n } else {\n // Loop does not make any sense if there is only one child.\n snap.loop = false;\n }\n }\n\n var el = snap.el;\n if (typeof el === 'string') {\n el = this.scroller.querySelectorAll(el);\n }\n\n this.on('refresh', function () {\n _this.pages = [];\n\n if (!_this.wrapperWidth || !_this.wrapperHeight || !_this.scrollerWidth || !_this.scrollerHeight) {\n return;\n }\n\n var stepX = snap.stepX || _this.wrapperWidth;\n var stepY = snap.stepY || _this.wrapperHeight;\n\n var x = 0;\n var y = void 0;\n var cx = void 0;\n var cy = void 0;\n var i = 0;\n var l = void 0;\n var m = 0;\n var n = void 0;\n var rect = void 0;\n if (!el) {\n cx = Math.round(stepX / 2);\n cy = Math.round(stepY / 2);\n\n while (x > -_this.scrollerWidth) {\n _this.pages[i] = [];\n l = 0;\n y = 0;\n\n while (y > -_this.scrollerHeight) {\n _this.pages[i][l] = {\n x: Math.max(x, _this.maxScrollX),\n y: Math.max(y, _this.maxScrollY),\n width: stepX,\n height: stepY,\n cx: x - cx,\n cy: y - cy\n };\n\n y -= stepY;\n l++;\n }\n\n x -= stepX;\n i++;\n }\n } else {\n l = el.length;\n n = -1;\n\n for (; i < l; i++) {\n rect = getRect(el[i]);\n if (i === 0 || rect.left <= getRect(el[i - 1]).left) {\n m = 0;\n n++;\n }\n\n if (!_this.pages[m]) {\n _this.pages[m] = [];\n }\n\n x = Math.max(-rect.left, _this.maxScrollX);\n y = Math.max(-rect.top, _this.maxScrollY);\n cx = x - Math.round(rect.width / 2);\n cy = y - Math.round(rect.height / 2);\n\n _this.pages[m][n] = {\n x: x,\n y: y,\n width: rect.width,\n height: rect.height,\n cx: cx,\n cy: cy\n };\n\n if (x > _this.maxScrollX) {\n m++;\n }\n }\n }\n\n _this._checkSnapLoop();\n\n var initPageX = snap._loopX ? 1 : 0;\n var initPageY = snap._loopY ? 1 : 0;\n _this._goToPage(_this.currentPage.pageX || initPageX, _this.currentPage.pageY || initPageY, 0, undefined, true);\n\n // Update snap threshold if needed.\n var snapThreshold = snap.threshold;\n if (snapThreshold % 1 === 0) {\n _this.snapThresholdX = snapThreshold;\n _this.snapThresholdY = snapThreshold;\n } else {\n _this.snapThresholdX = Math.round(_this.pages[_this.currentPage.pageX][_this.currentPage.pageY].width * snapThreshold);\n _this.snapThresholdY = Math.round(_this.pages[_this.currentPage.pageX][_this.currentPage.pageY].height * snapThreshold);\n }\n });\n\n this.on('scrollEnd', function () {\n if (snap.loop) {\n if (snap._loopX) {\n if (_this.currentPage.pageX === 0) {\n _this._goToPage(_this.pages.length - 2, _this.currentPage.pageY, 0, undefined, true);\n }\n if (_this.currentPage.pageX === _this.pages.length - 1) {\n _this._goToPage(1, _this.currentPage.pageY, 0, undefined, true);\n }\n } else {\n if (_this.currentPage.pageY === 0) {\n _this._goToPage(_this.currentPage.pageX, _this.pages[0].length - 2, 0, undefined, true);\n }\n if (_this.currentPage.pageY === _this.pages[0].length - 1) {\n _this._goToPage(_this.currentPage.pageX, 1, 0, undefined, true);\n }\n }\n }\n });\n\n if (snap.listenFlick !== false) {\n this.on('flick', function () {\n var time = snap.speed || Math.max(Math.max(Math.min(Math.abs(_this.x - _this.startX), 1000), Math.min(Math.abs(_this.y - _this.startY), 1000)), 300);\n\n _this._goToPage(_this.currentPage.pageX + _this.directionX, _this.currentPage.pageY + _this.directionY, time);\n });\n }\n\n this.on('destroy', function () {\n if (snap.loop) {\n var _children = _this.scroller.children;\n if (_children.length > 2) {\n removeChild(_this.scroller, _children[_children.length - 1]);\n removeChild(_this.scroller, _children[0]);\n }\n }\n });\n };\n\n BScroll.prototype._checkSnapLoop = function () {\n var snap = this.options.snap;\n\n if (!snap.loop || !this.pages || !this.pages.length) {\n return;\n }\n\n if (this.pages.length > 1) {\n snap._loopX = true;\n }\n if (this.pages[0] && this.pages[0].length > 1) {\n snap._loopY = true;\n }\n if (snap._loopX && snap._loopY) {\n warn('Loop does not support two direction at the same time.');\n }\n };\n\n BScroll.prototype._nearestSnap = function (x, y) {\n if (!this.pages.length) {\n return { x: 0, y: 0, pageX: 0, pageY: 0 };\n }\n\n var i = 0;\n // Check if we exceeded the snap threshold\n if (Math.abs(x - this.absStartX) <= this.snapThresholdX && Math.abs(y - this.absStartY) <= this.snapThresholdY) {\n return this.currentPage;\n }\n\n if (x > this.minScrollX) {\n x = this.minScrollX;\n } else if (x < this.maxScrollX) {\n x = this.maxScrollX;\n }\n\n if (y > this.minScrollY) {\n y = this.minScrollY;\n } else if (y < this.maxScrollY) {\n y = this.maxScrollY;\n }\n\n var l = this.pages.length;\n for (; i < l; i++) {\n if (x >= this.pages[i][0].cx) {\n x = this.pages[i][0].x;\n break;\n }\n }\n\n l = this.pages[i].length;\n\n var m = 0;\n for (; m < l; m++) {\n if (y >= this.pages[0][m].cy) {\n y = this.pages[0][m].y;\n break;\n }\n }\n\n if (i === this.currentPage.pageX) {\n i += this.directionX;\n\n if (i < 0) {\n i = 0;\n } else if (i >= this.pages.length) {\n i = this.pages.length - 1;\n }\n\n x = this.pages[i][0].x;\n }\n\n if (m === this.currentPage.pageY) {\n m += this.directionY;\n\n if (m < 0) {\n m = 0;\n } else if (m >= this.pages[0].length) {\n m = this.pages[0].length - 1;\n }\n\n y = this.pages[0][m].y;\n }\n\n return {\n x: x,\n y: y,\n pageX: i,\n pageY: m\n };\n };\n\n BScroll.prototype._goToPage = function (x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var time = arguments[2];\n var easing = arguments[3];\n var isSilent = arguments[4];\n\n var snap = this.options.snap;\n\n if (!snap || !this.pages || !this.pages.length) {\n return;\n }\n\n easing = easing || snap.easing || ease.bounce;\n\n if (x >= this.pages.length) {\n x = this.pages.length - 1;\n } else if (x < 0) {\n x = 0;\n }\n\n if (!this.pages[x]) {\n return;\n }\n\n if (y >= this.pages[x].length) {\n y = this.pages[x].length - 1;\n } else if (y < 0) {\n y = 0;\n }\n\n var posX = this.pages[x][y].x;\n var posY = this.pages[x][y].y;\n\n time = time === undefined ? snap.speed || Math.max(Math.max(Math.min(Math.abs(posX - this.x), 1000), Math.min(Math.abs(posY - this.y), 1000)), 300) : time;\n\n this.currentPage = {\n x: posX,\n y: posY,\n pageX: x,\n pageY: y\n };\n this.scrollTo(posX, posY, time, easing, isSilent);\n };\n\n BScroll.prototype.goToPage = function (x, y, time, easing) {\n var snap = this.options.snap;\n if (!snap || !this.pages || !this.pages.length) {\n return;\n }\n\n if (snap.loop) {\n var len = void 0;\n if (snap._loopX) {\n len = this.pages.length - 2;\n if (x >= len) {\n x = len - 1;\n } else if (x < 0) {\n x = 0;\n }\n x += 1;\n } else {\n len = this.pages[0].length - 2;\n if (y >= len) {\n y = len - 1;\n } else if (y < 0) {\n y = 0;\n }\n y += 1;\n }\n }\n this._goToPage(x, y, time, easing);\n };\n\n BScroll.prototype.next = function (time, easing) {\n var snap = this.options.snap;\n if (!snap) {\n return;\n }\n\n var x = this.currentPage.pageX;\n var y = this.currentPage.pageY;\n\n x++;\n if (x >= this.pages.length && this.hasVerticalScroll) {\n x = 0;\n y++;\n }\n\n this._goToPage(x, y, time, easing);\n };\n\n BScroll.prototype.prev = function (time, easing) {\n var snap = this.options.snap;\n if (!snap) {\n return;\n }\n\n var x = this.currentPage.pageX;\n var y = this.currentPage.pageY;\n\n x--;\n if (x < 0 && this.hasVerticalScroll) {\n x = 0;\n y--;\n }\n\n this._goToPage(x, y, time, easing);\n };\n\n BScroll.prototype.getCurrentPage = function () {\n var snap = this.options.snap;\n if (!snap) {\n return null;\n }\n\n if (snap.loop) {\n var currentPage = void 0;\n if (snap._loopX) {\n currentPage = extend({}, this.currentPage, {\n pageX: this.currentPage.pageX - 1\n });\n } else {\n currentPage = extend({}, this.currentPage, {\n pageY: this.currentPage.pageY - 1\n });\n }\n return currentPage;\n }\n return this.currentPage;\n };\n}\n\nfunction wheelMixin(BScroll) {\n BScroll.prototype.wheelTo = function () {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.options.wheel) {\n var y = -index * this.itemHeight;\n this.scrollTo(0, y);\n }\n };\n\n BScroll.prototype.getSelectedIndex = function () {\n return this.options.wheel && this.selectedIndex;\n };\n\n BScroll.prototype._initWheel = function () {\n var wheel = this.options.wheel;\n if (!wheel.wheelWrapperClass) {\n wheel.wheelWrapperClass = 'wheel-scroll';\n }\n if (!wheel.wheelItemClass) {\n wheel.wheelItemClass = 'wheel-item';\n }\n if (!wheel.wheelDisabledItemClass) {\n wheel.wheelDisabledItemClass = 'wheel-disabled-item';\n }\n if (wheel.selectedIndex === undefined) {\n wheel.selectedIndex = 0;\n }\n };\n\n BScroll.prototype._findNearestValidWheel = function (y) {\n y = y > 0 ? 0 : y < this.maxScrollY ? this.maxScrollY : y;\n var wheel = this.options.wheel;\n var currentIndex = Math.abs(Math.round(-y / this.itemHeight));\n var cacheIndex = currentIndex;\n var items = this.items;\n // Impersonation web native select\n // first, check whether there is a enable item whose index is smaller than currentIndex\n // then, check whether there is a enable item whose index is bigger than currentIndex\n // otherwise, there are all disabled items, just keep currentIndex unchange\n while (currentIndex >= 0) {\n if (items[currentIndex].className.indexOf(wheel.wheelDisabledItemClass) === -1) {\n break;\n }\n currentIndex--;\n }\n\n if (currentIndex < 0) {\n currentIndex = cacheIndex;\n while (currentIndex <= items.length - 1) {\n if (items[currentIndex].className.indexOf(wheel.wheelDisabledItemClass) === -1) {\n break;\n }\n currentIndex++;\n }\n }\n\n // keep it unchange when all the items are disabled\n if (currentIndex === items.length) {\n currentIndex = cacheIndex;\n }\n // when all the items are disabled, this.selectedIndex should always be -1\n return {\n index: this.wheelItemsAllDisabled ? -1 : currentIndex,\n y: -currentIndex * this.itemHeight\n };\n };\n\n BScroll.prototype._checkWheelAllDisabled = function () {\n var wheel = this.options.wheel;\n var items = this.items;\n this.wheelItemsAllDisabled = true;\n for (var i = 0; i < items.length; i++) {\n if (items[i].className.indexOf(wheel.wheelDisabledItemClass) === -1) {\n this.wheelItemsAllDisabled = false;\n break;\n }\n }\n };\n}\n\nvar INDICATOR_MIN_LEN = 8;\n\nfunction scrollbarMixin(BScroll) {\n BScroll.prototype._initScrollbar = function () {\n var _this = this;\n\n var _options$scrollbar = this.options.scrollbar,\n _options$scrollbar$fa = _options$scrollbar.fade,\n fade = _options$scrollbar$fa === undefined ? true : _options$scrollbar$fa,\n _options$scrollbar$in = _options$scrollbar.interactive,\n interactive = _options$scrollbar$in === undefined ? false : _options$scrollbar$in;\n\n this.indicators = [];\n var indicator = void 0;\n\n if (this.options.scrollX) {\n indicator = {\n el: createScrollbar('horizontal'),\n direction: 'horizontal',\n fade: fade,\n interactive: interactive\n };\n this._insertScrollBar(indicator.el);\n\n this.indicators.push(new Indicator(this, indicator));\n }\n\n if (this.options.scrollY) {\n indicator = {\n el: createScrollbar('vertical'),\n direction: 'vertical',\n fade: fade,\n interactive: interactive\n };\n this._insertScrollBar(indicator.el);\n this.indicators.push(new Indicator(this, indicator));\n }\n\n this.on('refresh', function () {\n for (var i = 0; i < _this.indicators.length; i++) {\n _this.indicators[i].refresh();\n }\n });\n\n if (fade) {\n this.on('scrollEnd', function () {\n for (var i = 0; i < _this.indicators.length; i++) {\n _this.indicators[i].fade();\n }\n });\n\n this.on('scrollCancel', function () {\n for (var i = 0; i < _this.indicators.length; i++) {\n _this.indicators[i].fade();\n }\n });\n\n this.on('scrollStart', function () {\n for (var i = 0; i < _this.indicators.length; i++) {\n _this.indicators[i].fade(true);\n }\n });\n\n this.on('beforeScrollStart', function () {\n for (var i = 0; i < _this.indicators.length; i++) {\n _this.indicators[i].fade(true, true);\n }\n });\n }\n\n this.on('destroy', function () {\n _this._removeScrollBars();\n });\n };\n\n BScroll.prototype._insertScrollBar = function (scrollbar) {\n this.wrapper.appendChild(scrollbar);\n };\n\n BScroll.prototype._removeScrollBars = function () {\n for (var i = 0; i < this.indicators.length; i++) {\n this.indicators[i].destroy();\n }\n };\n}\n\nfunction createScrollbar(direction) {\n var scrollbar = document.createElement('div');\n var indicator = document.createElement('div');\n\n scrollbar.style.cssText = 'position:absolute;z-index:9999;pointerEvents:none';\n indicator.style.cssText = 'box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px;';\n\n indicator.className = 'bscroll-indicator';\n\n if (direction === 'horizontal') {\n scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0';\n indicator.style.height = '100%';\n scrollbar.className = 'bscroll-horizontal-scrollbar';\n } else {\n scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px';\n indicator.style.width = '100%';\n scrollbar.className = 'bscroll-vertical-scrollbar';\n }\n\n scrollbar.style.cssText += ';overflow:hidden';\n scrollbar.appendChild(indicator);\n\n return scrollbar;\n}\n\nfunction Indicator(scroller, options) {\n this.wrapper = options.el;\n this.wrapperStyle = this.wrapper.style;\n this.indicator = this.wrapper.children[0];\n this.indicatorStyle = this.indicator.style;\n this.scroller = scroller;\n this.direction = options.direction;\n if (options.fade) {\n this.visible = 0;\n this.wrapperStyle.opacity = '0';\n } else {\n this.visible = 1;\n }\n\n this.sizeRatioX = 1;\n this.sizeRatioY = 1;\n this.maxPosX = 0;\n this.maxPosY = 0;\n this.x = 0;\n this.y = 0;\n\n if (options.interactive) {\n this._addDOMEvents();\n }\n}\n\nIndicator.prototype.handleEvent = function (e) {\n switch (e.type) {\n case 'touchstart':\n case 'mousedown':\n this._start(e);\n break;\n case 'touchmove':\n case 'mousemove':\n this._move(e);\n break;\n case 'touchend':\n case 'mouseup':\n case 'touchcancel':\n case 'mousecancel':\n this._end(e);\n break;\n }\n};\n\nIndicator.prototype.refresh = function () {\n if (this._shouldShow()) {\n this.transitionTime();\n this._calculate();\n this.updatePosition();\n }\n};\n\nIndicator.prototype.fade = function (visible, hold) {\n var _this2 = this;\n\n if (hold && !this.visible) {\n return;\n }\n\n var time = visible ? 250 : 500;\n\n visible = visible ? '1' : '0';\n\n this.wrapperStyle[style.transitionDuration] = time + 'ms';\n\n clearTimeout(this.fadeTimeout);\n this.fadeTimeout = setTimeout(function () {\n _this2.wrapperStyle.opacity = visible;\n _this2.visible = +visible;\n }, 0);\n};\n\nIndicator.prototype.updatePosition = function () {\n if (this.direction === 'vertical') {\n var y = Math.round(this.sizeRatioY * this.scroller.y);\n\n if (y < 0) {\n this.transitionTime(500);\n var height = Math.max(this.indicatorHeight + y * 3, INDICATOR_MIN_LEN);\n this.indicatorStyle.height = height + 'px';\n y = 0;\n } else if (y > this.maxPosY) {\n this.transitionTime(500);\n var _height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, INDICATOR_MIN_LEN);\n this.indicatorStyle.height = _height + 'px';\n y = this.maxPosY + this.indicatorHeight - _height;\n } else {\n this.indicatorStyle.height = this.indicatorHeight + 'px';\n }\n this.y = y;\n\n if (this.scroller.options.useTransform) {\n this.indicatorStyle[style.transform] = 'translateY(' + y + 'px)' + this.scroller.translateZ;\n } else {\n this.indicatorStyle.top = y + 'px';\n }\n } else {\n var x = Math.round(this.sizeRatioX * this.scroller.x);\n\n if (x < 0) {\n this.transitionTime(500);\n var width = Math.max(this.indicatorWidth + x * 3, INDICATOR_MIN_LEN);\n this.indicatorStyle.width = width + 'px';\n x = 0;\n } else if (x > this.maxPosX) {\n this.transitionTime(500);\n var _width = Math.max(this.indicatorWidth - (x - this.maxPosX) * 3, INDICATOR_MIN_LEN);\n this.indicatorStyle.width = _width + 'px';\n x = this.maxPosX + this.indicatorWidth - _width;\n } else {\n this.indicatorStyle.width = this.indicatorWidth + 'px';\n }\n\n this.x = x;\n\n if (this.scroller.options.useTransform) {\n this.indicatorStyle[style.transform] = 'translateX(' + x + 'px)' + this.scroller.translateZ;\n } else {\n this.indicatorStyle.left = x + 'px';\n }\n }\n};\n\nIndicator.prototype.transitionTime = function () {\n var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n this.indicatorStyle[style.transitionDuration] = time + 'ms';\n};\n\nIndicator.prototype.transitionTimingFunction = function (easing) {\n this.indicatorStyle[style.transitionTimingFunction] = easing;\n};\n\nIndicator.prototype.destroy = function () {\n this._removeDOMEvents();\n this.wrapper.parentNode.removeChild(this.wrapper);\n};\n\nIndicator.prototype._start = function (e) {\n var point = e.touches ? e.touches[0] : e;\n\n e.preventDefault();\n e.stopPropagation();\n\n this.transitionTime();\n\n this.initiated = true;\n this.moved = false;\n this.lastPointX = point.pageX;\n this.lastPointY = point.pageY;\n\n this.startTime = getNow();\n\n this._handleMoveEvents(addEvent);\n this.scroller.trigger('beforeScrollStart');\n};\n\nIndicator.prototype._move = function (e) {\n var point = e.touches ? e.touches[0] : e;\n\n e.preventDefault();\n e.stopPropagation();\n\n if (!this.moved) {\n this.scroller.trigger('scrollStart');\n }\n\n this.moved = true;\n\n var deltaX = point.pageX - this.lastPointX;\n this.lastPointX = point.pageX;\n\n var deltaY = point.pageY - this.lastPointY;\n this.lastPointY = point.pageY;\n\n var newX = this.x + deltaX;\n var newY = this.y + deltaY;\n\n this._pos(newX, newY);\n};\n\nIndicator.prototype._end = function (e) {\n if (!this.initiated) {\n return;\n }\n this.initiated = false;\n\n e.preventDefault();\n e.stopPropagation();\n\n this._handleMoveEvents(removeEvent);\n\n var snapOption = this.scroller.options.snap;\n if (snapOption) {\n var speed = snapOption.speed,\n _snapOption$easing = snapOption.easing,\n easing = _snapOption$easing === undefined ? ease.bounce : _snapOption$easing;\n\n var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y);\n\n var time = speed || Math.max(Math.max(Math.min(Math.abs(this.scroller.x - snap.x), 1000), Math.min(Math.abs(this.scroller.y - snap.y), 1000)), 300);\n\n if (this.scroller.x !== snap.x || this.scroller.y !== snap.y) {\n this.scroller.directionX = 0;\n this.scroller.directionY = 0;\n this.scroller.currentPage = snap;\n this.scroller.scrollTo(snap.x, snap.y, time, easing);\n }\n }\n\n if (this.moved) {\n this.scroller.trigger('scrollEnd', {\n x: this.scroller.x,\n y: this.scroller.y\n });\n }\n};\n\nIndicator.prototype._pos = function (x, y) {\n if (x < 0) {\n x = 0;\n } else if (x > this.maxPosX) {\n x = this.maxPosX;\n }\n\n if (y < 0) {\n y = 0;\n } else if (y > this.maxPosY) {\n y = this.maxPosY;\n }\n\n x = Math.round(x / this.sizeRatioX);\n y = Math.round(y / this.sizeRatioY);\n\n this.scroller.scrollTo(x, y);\n this.scroller.trigger('scroll', {\n x: this.scroller.x,\n y: this.scroller.y\n });\n};\n\nIndicator.prototype._shouldShow = function () {\n if (this.direction === 'vertical' && this.scroller.hasVerticalScroll || this.direction === 'horizontal' && this.scroller.hasHorizontalScroll) {\n this.wrapper.style.display = '';\n return true;\n }\n this.wrapper.style.display = 'none';\n return false;\n};\n\nIndicator.prototype._calculate = function () {\n if (this.direction === 'vertical') {\n var wrapperHeight = this.wrapper.clientHeight;\n this.indicatorHeight = Math.max(Math.round(wrapperHeight * wrapperHeight / (this.scroller.scrollerHeight || wrapperHeight || 1)), INDICATOR_MIN_LEN);\n this.indicatorStyle.height = this.indicatorHeight + 'px';\n\n this.maxPosY = wrapperHeight - this.indicatorHeight;\n\n this.sizeRatioY = this.maxPosY / this.scroller.maxScrollY;\n } else {\n var wrapperWidth = this.wrapper.clientWidth;\n this.indicatorWidth = Math.max(Math.round(wrapperWidth * wrapperWidth / (this.scroller.scrollerWidth || wrapperWidth || 1)), INDICATOR_MIN_LEN);\n this.indicatorStyle.width = this.indicatorWidth + 'px';\n\n this.maxPosX = wrapperWidth - this.indicatorWidth;\n\n this.sizeRatioX = this.maxPosX / this.scroller.maxScrollX;\n }\n};\n\nIndicator.prototype._addDOMEvents = function () {\n var eventOperation = addEvent;\n this._handleDOMEvents(eventOperation);\n};\n\nIndicator.prototype._removeDOMEvents = function () {\n var eventOperation = removeEvent;\n this._handleDOMEvents(eventOperation);\n this._handleMoveEvents(eventOperation);\n};\n\nIndicator.prototype._handleMoveEvents = function (eventOperation) {\n if (!this.scroller.options.disableTouch) {\n eventOperation(window, 'touchmove', this);\n }\n if (!this.scroller.options.disableMouse) {\n eventOperation(window, 'mousemove', this);\n }\n};\n\nIndicator.prototype._handleDOMEvents = function (eventOperation) {\n if (!this.scroller.options.disableTouch) {\n eventOperation(this.indicator, 'touchstart', this);\n eventOperation(window, 'touchend', this);\n }\n if (!this.scroller.options.disableMouse) {\n eventOperation(this.indicator, 'mousedown', this);\n eventOperation(window, 'mouseup', this);\n }\n};\n\nfunction pullDownMixin(BScroll) {\n BScroll.prototype._initPullDown = function () {\n // must watch scroll in real time\n this.options.probeType = PROBE_REALTIME;\n };\n\n BScroll.prototype._checkPullDown = function () {\n var _options$pullDownRefr = this.options.pullDownRefresh,\n _options$pullDownRefr2 = _options$pullDownRefr.threshold,\n threshold = _options$pullDownRefr2 === undefined ? 90 : _options$pullDownRefr2,\n _options$pullDownRefr3 = _options$pullDownRefr.stop,\n stop = _options$pullDownRefr3 === undefined ? 40 : _options$pullDownRefr3;\n\n // check if a real pull down action\n\n if (this.directionY !== DIRECTION_DOWN || this.y < threshold) {\n return false;\n }\n\n if (!this.pulling) {\n this.pulling = true;\n this.trigger('pullingDown');\n }\n this.scrollTo(this.x, stop, this.options.bounceTime, ease.bounce);\n\n return this.pulling;\n };\n\n BScroll.prototype.finishPullDown = function () {\n this.pulling = false;\n this.resetPosition(this.options.bounceTime, ease.bounce);\n };\n\n BScroll.prototype.openPullDown = function () {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.options.pullDownRefresh = config;\n this._initPullDown();\n };\n\n BScroll.prototype.closePullDown = function () {\n this.options.pullDownRefresh = false;\n };\n\n BScroll.prototype.autoPullDownRefresh = function () {\n var _options$pullDownRefr4 = this.options.pullDownRefresh,\n _options$pullDownRefr5 = _options$pullDownRefr4.threshold,\n threshold = _options$pullDownRefr5 === undefined ? 90 : _options$pullDownRefr5,\n _options$pullDownRefr6 = _options$pullDownRefr4.stop,\n stop = _options$pullDownRefr6 === undefined ? 40 : _options$pullDownRefr6;\n\n\n if (this.pulling) {\n return;\n }\n this.pulling = true;\n\n this.scrollTo(this.x, threshold);\n this.trigger('pullingDown');\n this.scrollTo(this.x, stop, this.options.bounceTime, ease.bounce);\n };\n}\n\nfunction pullUpMixin(BScroll) {\n BScroll.prototype._initPullUp = function () {\n // must watch scroll in real time\n this.options.probeType = PROBE_REALTIME;\n\n this.pullupWatching = false;\n this._watchPullUp();\n };\n\n BScroll.prototype._watchPullUp = function () {\n if (this.pullupWatching) {\n return;\n }\n this.pullupWatching = true;\n this.on('scroll', this._checkToEnd);\n };\n\n BScroll.prototype._checkToEnd = function (pos) {\n var _this = this;\n\n var _options$pullUpLoad$t = this.options.pullUpLoad.threshold,\n threshold = _options$pullUpLoad$t === undefined ? 0 : _options$pullUpLoad$t;\n\n if (this.movingDirectionY === DIRECTION_UP && pos.y <= this.maxScrollY + threshold) {\n // reset pullupWatching status after scroll end.\n this.once('scrollEnd', function () {\n _this.pullupWatching = false;\n });\n this.trigger('pullingUp');\n this.off('scroll', this._checkToEnd);\n }\n };\n\n BScroll.prototype.finishPullUp = function () {\n var _this2 = this;\n\n if (this.pullupWatching) {\n this.once('scrollEnd', function () {\n _this2._watchPullUp();\n });\n } else {\n this._watchPullUp();\n }\n };\n\n BScroll.prototype.openPullUp = function () {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.options.pullUpLoad = config;\n this._initPullUp();\n };\n\n BScroll.prototype.closePullUp = function () {\n this.options.pullUpLoad = false;\n if (!this.pullupWatching) {\n return;\n }\n this.pullupWatching = false;\n this.off('scroll', this._checkToEnd);\n };\n}\n\nfunction mouseWheelMixin(BScroll) {\n BScroll.prototype._initMouseWheel = function () {\n var _this = this;\n\n this._handleMouseWheelEvent(addEvent);\n\n this.on('destroy', function () {\n clearTimeout(_this.mouseWheelTimer);\n clearTimeout(_this.mouseWheelEndTimer);\n _this._handleMouseWheelEvent(removeEvent);\n });\n\n this.firstWheelOpreation = true;\n };\n\n BScroll.prototype._handleMouseWheelEvent = function (eventOperation) {\n eventOperation(this.wrapper, 'wheel', this);\n eventOperation(this.wrapper, 'mousewheel', this);\n eventOperation(this.wrapper, 'DOMMouseScroll', this);\n };\n\n BScroll.prototype._onMouseWheel = function (e) {\n var _this2 = this;\n\n if (!this.enabled) {\n return;\n }\n e.preventDefault();\n\n if (this.options.stopPropagation) {\n e.stopPropagation();\n }\n\n if (this.firstWheelOpreation) {\n this.trigger('scrollStart');\n }\n this.firstWheelOpreation = false;\n\n var _options$mouseWheel = this.options.mouseWheel,\n _options$mouseWheel$s = _options$mouseWheel.speed,\n speed = _options$mouseWheel$s === undefined ? 20 : _options$mouseWheel$s,\n _options$mouseWheel$i = _options$mouseWheel.invert,\n invert = _options$mouseWheel$i === undefined ? false : _options$mouseWheel$i,\n _options$mouseWheel$e = _options$mouseWheel.easeTime,\n easeTime = _options$mouseWheel$e === undefined ? 300 : _options$mouseWheel$e;\n\n\n clearTimeout(this.mouseWheelTimer);\n this.mouseWheelTimer = setTimeout(function () {\n if (!_this2.options.snap && !easeTime) {\n _this2.trigger('scrollEnd', {\n x: _this2.x,\n y: _this2.y\n });\n }\n _this2.firstWheelOpreation = true;\n }, 400);\n\n var wheelDeltaX = void 0;\n var wheelDeltaY = void 0;\n\n switch (true) {\n case 'deltaX' in e:\n if (e.deltaMode === 1) {\n wheelDeltaX = -e.deltaX * speed;\n wheelDeltaY = -e.deltaY * speed;\n } else {\n wheelDeltaX = -e.deltaX;\n wheelDeltaY = -e.deltaY;\n }\n break;\n case 'wheelDeltaX' in e:\n wheelDeltaX = e.wheelDeltaX / 120 * speed;\n wheelDeltaY = e.wheelDeltaY / 120 * speed;\n break;\n case 'wheelDelta' in e:\n wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * speed;\n break;\n case 'detail' in e:\n wheelDeltaX = wheelDeltaY = -e.detail / 3 * speed;\n break;\n default:\n return;\n }\n\n var direction = invert ? -1 : 1;\n wheelDeltaX *= direction;\n wheelDeltaY *= direction;\n\n if (!this.hasVerticalScroll) {\n wheelDeltaX = wheelDeltaY;\n wheelDeltaY = 0;\n }\n\n var newX = void 0;\n var newY = void 0;\n if (this.options.snap) {\n newX = this.currentPage.pageX;\n newY = this.currentPage.pageY;\n\n if (wheelDeltaX > 0) {\n newX--;\n } else if (wheelDeltaX < 0) {\n newX++;\n }\n\n if (wheelDeltaY > 0) {\n newY--;\n } else if (wheelDeltaY < 0) {\n newY++;\n }\n\n this._goToPage(newX, newY);\n return;\n }\n\n newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0);\n newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0);\n\n this.movingDirectionX = this.directionX = wheelDeltaX > 0 ? -1 : wheelDeltaX < 0 ? 1 : 0;\n this.movingDirectionY = this.directionY = wheelDeltaY > 0 ? -1 : wheelDeltaY < 0 ? 1 : 0;\n\n if (newX > this.minScrollX) {\n newX = this.minScrollX;\n } else if (newX < this.maxScrollX) {\n newX = this.maxScrollX;\n }\n\n if (newY > this.minScrollY) {\n newY = this.minScrollY;\n } else if (newY < this.maxScrollY) {\n newY = this.maxScrollY;\n }\n\n var needTriggerEnd = this.y === newY;\n this.scrollTo(newX, newY, easeTime, ease.swipe);\n this.trigger('scroll', {\n x: this.x,\n y: this.y\n });\n clearTimeout(this.mouseWheelEndTimer);\n if (needTriggerEnd) {\n this.mouseWheelEndTimer = setTimeout(function () {\n _this2.trigger('scrollEnd', {\n x: _this2.x,\n y: _this2.y\n });\n }, easeTime);\n }\n };\n}\n\nfunction zoomMixin(BScroll) {\n BScroll.prototype._initZoom = function () {\n var _options$zoom = this.options.zoom,\n _options$zoom$start = _options$zoom.start,\n start = _options$zoom$start === undefined ? 1 : _options$zoom$start,\n _options$zoom$min = _options$zoom.min,\n min = _options$zoom$min === undefined ? 1 : _options$zoom$min,\n _options$zoom$max = _options$zoom.max,\n max = _options$zoom$max === undefined ? 4 : _options$zoom$max;\n\n this.scale = Math.min(Math.max(start, min), max);\n this.setScale(this.scale);\n this.scrollerStyle[style.transformOrigin] = '0 0';\n };\n\n BScroll.prototype._zoomTo = function (scale, originX, originY, startScale) {\n this.scaled = true;\n\n var lastScale = scale / (startScale || this.scale);\n this.setScale(scale);\n\n this.refresh();\n\n var newX = Math.round(this.startX - (originX - this.relativeX) * (lastScale - 1));\n var newY = Math.round(this.startY - (originY - this.relativeY) * (lastScale - 1));\n\n if (newX > this.minScrollX) {\n newX = this.minScrollX;\n } else if (newX < this.maxScrollX) {\n newX = this.maxScrollX;\n }\n\n if (newY > this.minScrollY) {\n newY = this.minScrollY;\n } else if (newY < this.maxScrollY) {\n newY = this.maxScrollY;\n }\n\n if (this.x !== newX || this.y !== newY) {\n this.scrollTo(newX, newY, this.options.bounceTime);\n }\n\n this.scaled = false;\n };\n\n BScroll.prototype.zoomTo = function (scale, x, y) {\n var _offsetToBody = offsetToBody(this.wrapper),\n left = _offsetToBody.left,\n top = _offsetToBody.top;\n\n var originX = x + left - this.x;\n var originY = y + top - this.y;\n this._zoomTo(scale, originX, originY);\n };\n\n BScroll.prototype._zoomStart = function (e) {\n var firstFinger = e.touches[0];\n var secondFinger = e.touches[1];\n var deltaX = Math.abs(firstFinger.pageX - secondFinger.pageX);\n var deltaY = Math.abs(firstFinger.pageY - secondFinger.pageY);\n\n this.startDistance = getDistance(deltaX, deltaY);\n this.startScale = this.scale;\n\n var _offsetToBody2 = offsetToBody(this.wrapper),\n left = _offsetToBody2.left,\n top = _offsetToBody2.top;\n\n this.originX = Math.abs(firstFinger.pageX + secondFinger.pageX) / 2 + left - this.x;\n this.originY = Math.abs(firstFinger.pageY + secondFinger.pageY) / 2 + top - this.y;\n\n this.trigger('zoomStart');\n };\n\n BScroll.prototype._zoom = function (e) {\n if (!this.enabled || this.destroyed || eventType[e.type] !== this.initiated) {\n return;\n }\n\n if (this.options.preventDefault) {\n e.preventDefault();\n }\n\n if (this.options.stopPropagation) {\n e.stopPropagation();\n }\n\n var firstFinger = e.touches[0];\n var secondFinger = e.touches[1];\n var deltaX = Math.abs(firstFinger.pageX - secondFinger.pageX);\n var deltaY = Math.abs(firstFinger.pageY - secondFinger.pageY);\n var distance = getDistance(deltaX, deltaY);\n var scale = distance / this.startDistance * this.startScale;\n\n this.scaled = true;\n\n var _options$zoom2 = this.options.zoom,\n _options$zoom2$min = _options$zoom2.min,\n min = _options$zoom2$min === undefined ? 1 : _options$zoom2$min,\n _options$zoom2$max = _options$zoom2.max,\n max = _options$zoom2$max === undefined ? 4 : _options$zoom2$max;\n\n\n if (scale < min) {\n scale = 0.5 * min * Math.pow(2.0, scale / min);\n } else if (scale > max) {\n scale = 2.0 * max * Math.pow(0.5, max / scale);\n }\n\n var lastScale = scale / this.startScale;\n\n var x = this.startX - (this.originX - this.relativeX) * (lastScale - 1);\n var y = this.startY - (this.originY - this.relativeY) * (lastScale - 1);\n\n this.setScale(scale);\n\n this.scrollTo(x, y, 0);\n };\n\n BScroll.prototype._zoomEnd = function (e) {\n if (!this.enabled || this.destroyed || eventType[e.type] !== this.initiated) {\n return;\n }\n\n if (this.options.preventDefault) {\n e.preventDefault();\n }\n\n if (this.options.stopPropagation) {\n e.stopPropagation();\n }\n\n this.isInTransition = false;\n this.isAnimating = false;\n this.initiated = 0;\n\n var _options$zoom3 = this.options.zoom,\n _options$zoom3$min = _options$zoom3.min,\n min = _options$zoom3$min === undefined ? 1 : _options$zoom3$min,\n _options$zoom3$max = _options$zoom3.max,\n max = _options$zoom3$max === undefined ? 4 : _options$zoom3$max;\n\n\n var scale = this.scale > max ? max : this.scale < min ? min : this.scale;\n\n this._zoomTo(scale, this.originX, this.originY, this.startScale);\n\n this.trigger('zoomEnd');\n };\n}\n\n// import { ease } from '../util/ease'\n\n// Number of items to instantiate beyond current view in the scroll direction.\nvar RUNWAY_ITEMS = 30;\n\n// Number of items to instantiate beyond current view in the opposite direction.\nvar RUNWAY_ITEMS_OPPOSITE = 10;\n\n// The animation interval (in ms) for fading in content from tombstones.\nvar ANIMATION_DURATION_MS = 200;\n\n// The number of pixels of default additional length to allow scrolling to.\nvar DEFAULT_SCROLL_RUNWAY = 2000;\n\nfunction infiniteMixin(BScroll) {\n BScroll.prototype._initInfinite = function () {\n this.options.probeType = 3;\n this.maxScrollY = -DEFAULT_SCROLL_RUNWAY;\n this.infiniteScroller = new InfiniteScroller(this, this.options.infinity);\n };\n}\n\nfunction isTombstoneNode(node) {\n if (node && node.classList) {\n return node.classList.contains('tombstone');\n }\n}\n\nfunction InfiniteScroller(scroller, options) {\n var _this = this;\n\n this.options = options;\n assert(typeof this.options.createTombstone === 'function', 'Infinite scroll need createTombstone Function to create tombstone');\n\n assert(typeof this.options.fetch === 'function', 'Infinite scroll need fetch Function to fetch new data.');\n\n assert(typeof this.options.render === 'function', 'Infinite scroll need render Function to render each item.');\n\n this.firstAttachedItem = 0;\n this.lastAttachedItem = 0;\n\n this.anchorScrollTop = 0;\n this.anchorItem = {\n index: 0,\n offset: 0\n };\n this.tombstoneHeight = 0;\n this.tombstoneWidth = 0;\n this.tombstones = [];\n this.tombstonesAnimationHandlers = [];\n\n this.items = [];\n this.loadedItems = 0;\n this.requestInProgress = false;\n this.hasMore = true;\n\n this.scroller = scroller;\n this.wrapperEl = this.scroller.wrapper;\n this.scrollerEl = this.scroller.scroller;\n\n this.scroller.on('resize', function () {\n _this.onResize();\n });\n this.scroller.on('destroy', function () {\n _this.destroy();\n });\n\n // wait scroll core init\n this._onResizeHandler = setTimeout(function () {\n _this.onResize();\n\n // must wait tombstoneHeight has size\n _this.scroller.on('scroll', function () {\n _this.onScroll();\n });\n });\n}\n\nInfiniteScroller.prototype.destroy = function () {\n var _this2 = this;\n\n // In extreme scene, destroy is triggered before _onResizeHandler\n clearTimeout(this._onResizeHandler);\n this.tombstonesAnimationHandlers.forEach(function (handler) {\n clearTimeout(handler);\n });\n this.tombstonesAnimationHandlers = null;\n this.items.forEach(function (item) {\n if (item.node) {\n _this2.scrollerEl.removeChild(item.node);\n item.node = null;\n }\n });\n this.scroller.infiniteScroller = null;\n this.scroller = null;\n this.wrapperEl = null;\n this.scrollerEl = null;\n this.items = null;\n this.tombstones = null;\n};\n\nInfiniteScroller.prototype.onScroll = function () {\n var scrollTop = -this.scroller.y;\n var delta = scrollTop - this.anchorScrollTop;\n if (scrollTop === 0) {\n this.anchorItem = {\n index: 0,\n offset: 0\n };\n } else {\n this.anchorItem = this._calculateAnchoredItem(this.anchorItem, delta);\n }\n\n this.anchorScrollTop = scrollTop;\n var lastScreenItem = this._calculateAnchoredItem(this.anchorItem, this.scroller.wrapperHeight);\n\n var start = this.anchorItem.index;\n var end = lastScreenItem.index;\n if (delta < 0) {\n start -= RUNWAY_ITEMS;\n end += RUNWAY_ITEMS_OPPOSITE;\n } else {\n start -= RUNWAY_ITEMS_OPPOSITE;\n end += RUNWAY_ITEMS;\n }\n this.fill(start, end);\n this.maybeRequestContent();\n};\n\nInfiniteScroller.prototype.onResize = function () {\n var tombstone = this.options.createTombstone();\n tombstone.style.position = 'absolute';\n this.scrollerEl.appendChild(tombstone);\n tombstone.style.display = '';\n this.tombstoneHeight = tombstone.offsetHeight;\n this.tombstoneWidth = tombstone.offsetWidth;\n this.scrollerEl.removeChild(tombstone);\n\n for (var i = 0; i < this.items.length; i++) {\n this.items[i].height = this.items[i].width = 0;\n }\n\n this.onScroll();\n};\n\nInfiniteScroller.prototype.fill = function (start, end) {\n this.firstAttachedItem = Math.max(0, start);\n if (!this.hasMore) {\n end = Math.min(end, this.items.length);\n }\n this.lastAttachedItem = end;\n this.attachContent();\n};\n\nInfiniteScroller.prototype.maybeRequestContent = function () {\n var _this3 = this;\n\n if (this.requestInProgress || !this.hasMore) {\n return;\n }\n var itemsNeeded = this.lastAttachedItem - this.loadedItems;\n if (itemsNeeded <= 0) {\n return;\n }\n this.requestInProgress = true;\n this.options.fetch(itemsNeeded).then(function (items) {\n _this3.requestInProgress = false;\n if (items) {\n _this3.addContent(items);\n } else {\n _this3.hasMore = false;\n var tombstoneLen = _this3._removeTombstones();\n var curPos = 0;\n if (_this3.anchorItem.index <= _this3.items.length) {\n curPos = _this3._fixScrollPosition();\n _this3._setupAnimations({}, curPos);\n _this3.scroller.resetPosition(_this3.scroller.options.bounceTime);\n } else {\n _this3.anchorItem.index -= tombstoneLen;\n curPos = _this3._fixScrollPosition();\n _this3._setupAnimations({}, curPos);\n _this3.scroller.stop();\n _this3.scroller.resetPosition();\n _this3.onScroll();\n }\n }\n });\n};\n\nInfiniteScroller.prototype.addContent = function (items) {\n for (var i = 0; i < items.length; i++) {\n if (this.items.length <= this.loadedItems) {\n this._addItem();\n }\n this.items[this.loadedItems++].data = items[i];\n }\n this.attachContent();\n this.maybeRequestContent();\n};\n\nInfiniteScroller.prototype.attachContent = function () {\n var unusedNodes = this._collectUnusedNodes();\n var tombstoneAnimations = this._createDOMNodes(unusedNodes);\n this._cleanupUnusedNodes(unusedNodes);\n this._cacheNodeSize();\n var curPos = this._fixScrollPosition();\n this._setupAnimations(tombstoneAnimations, curPos);\n};\n\nInfiniteScroller.prototype.resetMore = function () {\n this.hasMore = true;\n};\n\nInfiniteScroller.prototype._removeTombstones = function () {\n var markIndex = void 0;\n var tombstoneLen = 0;\n var itemLen = this.items.length;\n for (var i = 0; i < itemLen; i++) {\n var currentNode = this.items[i].node;\n var currentData = this.items[i].data;\n if ((!currentNode || isTombstoneNode(currentNode)) && !currentData) {\n // 0 should be excluded\n if (markIndex === void 0) {\n markIndex = i;\n }\n if (currentNode) {\n this.scrollerEl.removeChild(currentNode);\n }\n }\n }\n tombstoneLen = itemLen - markIndex;\n this.items.splice(markIndex);\n this.lastAttachedItem = Math.min(this.lastAttachedItem, this.items.length);\n return tombstoneLen;\n};\n\nInfiniteScroller.prototype._collectUnusedNodes = function () {\n var unusedNodes = [];\n for (var i = 0; i < this.items.length; i++) {\n // Skip the items which should be visible.\n if (i === this.firstAttachedItem) {\n i = this.lastAttachedItem - 1;\n continue;\n }\n var currentNode = this.items[i].node;\n if (currentNode) {\n if (isTombstoneNode(currentNode)) {\n // Cache tombstones for reuse\n this.tombstones.push(currentNode);\n this.tombstones[this.tombstones.length - 1].style.display = 'none';\n } else {\n unusedNodes.push(currentNode);\n }\n }\n this.items[i].node = null;\n }\n return unusedNodes;\n};\n\nInfiniteScroller.prototype._createDOMNodes = function (unusedNodes) {\n var tombstoneAnimations = {};\n for (var i = this.firstAttachedItem; i < this.lastAttachedItem; i++) {\n while (this.items.length <= i) {\n this._addItem();\n }\n var currentNode = this.items[i].node;\n var currentData = this.items[i].data;\n if (currentNode) {\n if (isTombstoneNode(currentNode) && currentData) {\n currentNode.style.zIndex = 1;\n tombstoneAnimations[i] = [currentNode, this.items[i].top - this.anchorScrollTop];\n this.items[i].node = null;\n } else {\n continue;\n }\n }\n var node = currentData ? this.options.render(currentData, unusedNodes.pop()) : this._getTombStone();\n node.style.position = 'absolute';\n this.items[i].top = -1;\n this.scrollerEl.appendChild(node);\n this.items[i].node = node;\n }\n return tombstoneAnimations;\n};\n\nInfiniteScroller.prototype._cleanupUnusedNodes = function (unusedNodes) {\n while (unusedNodes.length) {\n this.scrollerEl.removeChild(unusedNodes.pop());\n }\n};\n\nInfiniteScroller.prototype._cacheNodeSize = function () {\n for (var i = this.firstAttachedItem; i < this.lastAttachedItem; i++) {\n var item = this.items[i];\n // Only cache the height if we have the real contents, not a placeholder.\n if (item.data && !item.height) {\n var isTombstone = isTombstoneNode(item.node);\n item.height = isTombstone ? this.tombstoneHeight : item.node.offsetHeight;\n item.width = isTombstone ? this.tombstoneWidth : item.node.offsetWidth;\n }\n }\n};\n\nInfiniteScroller.prototype._fixScrollPosition = function () {\n this.anchorScrollTop = 0;\n for (var _i = 0; _i < this.anchorItem.index; _i++) {\n this.anchorScrollTop += this.items[_i].height || this.tombstoneHeight;\n }\n this.anchorScrollTop += this.anchorItem.offset;\n\n // Position all nodes.\n var curPos = this.anchorScrollTop - this.anchorItem.offset;\n var i = this.anchorItem.index;\n while (i > this.firstAttachedItem) {\n curPos -= this.items[i - 1].height || this.tombstoneHeight;\n i--;\n }\n\n return curPos;\n};\n\nInfiniteScroller.prototype._setupAnimations = function (tombstoneAnimations, curPos) {\n var _this4 = this;\n\n for (var i in tombstoneAnimations) {\n var animation = tombstoneAnimations[i];\n this.items[i].node.style[style.transform] = 'translateY(' + (this.anchorScrollTop + animation[1]) + 'px) scale(' + this.tombstoneWidth / this.items[i].width + ', ' + this.tombstoneHeight / this.items[i].height + ')';\n // Call offsetTop on the nodes to be animated to force them to apply current transforms.\n /* eslint-disable no-unused-expressions */\n this.items[i].node.offsetTop;\n animation[0].offsetTop;\n this.items[i].node.style[style.transition] = cssVendor + 'transform ' + ANIMATION_DURATION_MS + 'ms';\n }\n\n for (var _i2 = this.firstAttachedItem; _i2 < this.lastAttachedItem; _i2++) {\n var _animation = tombstoneAnimations[_i2];\n if (_animation) {\n var tombstoneNode = _animation[0];\n tombstoneNode.style[style.transition] = cssVendor + 'transform ' + ANIMATION_DURATION_MS + 'ms, opacity ' + ANIMATION_DURATION_MS + 'ms';\n tombstoneNode.style[style.transform] = 'translateY(' + curPos + 'px) scale(' + this.items[_i2].width / this.tombstoneWidth + ', ' + this.items[_i2].height / this.tombstoneHeight + ')';\n tombstoneNode.style.opacity = 0;\n }\n if (curPos !== this.items[_i2].top) {\n if (!_animation) {\n this.items[_i2].node.style[style.transition] = '';\n }\n this.items[_i2].node.style[style.transform] = 'translateY(' + curPos + 'px)';\n }\n this.items[_i2].top = curPos;\n curPos += this.items[_i2].height || this.tombstoneHeight;\n }\n\n this.scroller.maxScrollY = -(curPos - this.scroller.wrapperHeight + (this.hasMore ? DEFAULT_SCROLL_RUNWAY : 0));\n\n var tombstoneAnimationsHandler = setTimeout(function () {\n for (var _i3 in tombstoneAnimations) {\n var _animation2 = tombstoneAnimations[_i3];\n _animation2[0].style.display = 'none';\n // Tombstone can be recycled now.\n _this4.tombstones.push(_animation2[0]);\n }\n }, ANIMATION_DURATION_MS);\n\n this.tombstonesAnimationHandlers.push(tombstoneAnimationsHandler);\n};\n\nInfiniteScroller.prototype._getTombStone = function () {\n var tombstone = this.tombstones.pop();\n if (tombstone) {\n tombstone.style.display = '';\n tombstone.style.opacity = 1;\n tombstone.style[style.transform] = '';\n tombstone.style[style.transition] = '';\n return tombstone;\n }\n return this.options.createTombstone();\n};\n\nInfiniteScroller.prototype._addItem = function () {\n this.items.push({\n data: null,\n node: null,\n height: 0,\n width: 0,\n top: 0\n });\n};\n\nInfiniteScroller.prototype._calculateAnchoredItem = function (initialAnchor, delta) {\n if (delta === 0) {\n return initialAnchor;\n }\n var i = initialAnchor.index;\n var tombstones = 0;\n\n delta += initialAnchor.offset;\n if (delta < 0) {\n while (delta < 0 && i > 0 && this.items[i - 1].height) {\n delta += this.items[i - 1].height;\n i--;\n }\n tombstones = Math.max(-i, Math.ceil(Math.min(delta, 0) / this.tombstoneHeight));\n } else {\n while (delta > 0 && i < this.items.length && this.items[i].height && this.items[i].height < delta) {\n delta -= this.items[i].height;\n i++;\n }\n if (i >= this.items.length || !this.items[i].height) {\n tombstones = Math.floor(Math.max(delta, 0) / this.tombstoneHeight);\n }\n }\n i += tombstones;\n delta -= tombstones * this.tombstoneHeight;\n\n return {\n index: i,\n offset: delta\n };\n};\n\nfunction BScroll(el, options) {\n this.wrapper = typeof el === 'string' ? document.querySelector(el) : el;\n if (!this.wrapper) {\n warn('Can not resolve the wrapper DOM.');\n }\n this.scroller = this.wrapper.children[0];\n if (!this.scroller) {\n warn('The wrapper need at least one child element to be scroller.');\n }\n // cache style for better performance\n this.scrollerStyle = this.scroller.style;\n\n this._init(options);\n}\n\ninitMixin(BScroll);\ncoreMixin(BScroll);\neventMixin(BScroll);\nsnapMixin(BScroll);\nwheelMixin(BScroll);\nscrollbarMixin(BScroll);\npullDownMixin(BScroll);\npullUpMixin(BScroll);\nmouseWheelMixin(BScroll);\nzoomMixin(BScroll);\ninfiniteMixin(BScroll);\n\nBScroll.Version = '1.15.2';\n\nexport default BScroll;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/better-scroll/dist/bscroll.esm.js\n// module id = 9\n// module chunks = 0","function injectStyle (ssrContext) {\n require(\"!!vue-style-loader!css-loader?minimize!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-540dbfdb\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Bubble.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Bubble.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-540dbfdb\\\",\\\"hasScoped\\\":true}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Bubble.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-540dbfdb\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/lib/Bubble.vue\n// module id = 10\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a \n\n\n\n// WEBPACK FOOTER //\n// Bubble.vue?df7f9c0c","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('canvas', {\n ref: \"bubble\",\n style: (_vm.style),\n attrs: {\n \"width\": _vm.width,\n \"height\": _vm.height\n }\n })\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-540dbfdb\",\"hasScoped\":true}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/lib/Bubble.vue\n// module id = 14\n// module chunks = 0","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n ref: \"wrapper\",\n staticClass: \"scroll-wrapper\"\n }, [_c('div', {\n staticClass: \"scroll-content\"\n }, [_c('div', [_vm._t(\"default\")], 2), _vm._v(\" \"), _vm._t(\"pullup\", [(_vm.pullUpLoad) ? _c('div', {\n staticClass: \"pullup-wrapper\"\n }, [(!_vm.isPullUpLoad) ? _c('div', {\n staticClass: \"before-trigger\"\n }, [_c('span', [_vm._v(_vm._s(_vm.pullUpTxt))])]) : _c('div', {\n staticClass: \"after-trigger\"\n }, [_c('img', {\n staticClass: \"scroll-loading\",\n attrs: {\n \"src\": \"data:image/gif;base64,R0lGODlhZABkAKIEAN7e3rq6uv///5mZmQAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpBRjA4RUZDMDI3MjA2ODExODA4M0Y1OTQyMzVDRDM3MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMzE0Rjk3NDdDRTgxMUUzOUJCRjk0NjAxMUE1NzRBMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMzE0Rjk3MzdDRTgxMUUzOUJCRjk0NjAxMUE1NzRBMCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RDVBMTZDQjczOTIwNjgxMTgwODNGNTk0MjM1Q0QzNzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QUYwOEVGQzAyNzIwNjgxMTgwODNGNTk0MjM1Q0QzNzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+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\"\n }\n })])]) : _vm._e()], {\n \"pullUpLoad\": _vm.pullUpLoad,\n \"isPullUpLoad\": _vm.isPullUpLoad\n })], 2), _vm._v(\" \"), _vm._t(\"pulldown\", [(_vm.pullDownRefresh) ? _c('div', {\n ref: \"pulldown\",\n staticClass: \"pulldown-wrapper\",\n style: (_vm.pullDownStyle)\n }, [(_vm.beforePullDown) ? _c('div', {\n staticClass: \"before-trigger\"\n }, [_c('bubble', {\n attrs: {\n \"y\": _vm.bubbleY\n }\n })], 1) : _c('div', {\n staticClass: \"after-trigger\"\n }, [(_vm.pulling) ? _c('div', {\n staticClass: \"loading\"\n }, [_c('img', {\n staticClass: \"scroll-loading\",\n attrs: {\n \"src\": \"data:image/gif;base64,R0lGODlhZABkAKIEAN7e3rq6uv///5mZmQAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpBRjA4RUZDMDI3MjA2ODExODA4M0Y1OTQyMzVDRDM3MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMzE0Rjk3NDdDRTgxMUUzOUJCRjk0NjAxMUE1NzRBMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMzE0Rjk3MzdDRTgxMUUzOUJCRjk0NjAxMUE1NzRBMCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RDVBMTZDQjczOTIwNjgxMTgwODNGNTk0MjM1Q0QzNzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QUYwOEVGQzAyNzIwNjgxMTgwODNGNTk0MjM1Q0QzNzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+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\"\n }\n })]) : _c('div', [_c('span', [_vm._v(_vm._s(_vm.refreshTxt))])])])]) : _vm._e()], {\n \"pullDownRefresh\": _vm.pullDownRefresh,\n \"pullDownStyle\": _vm.pullDownStyle,\n \"beforePullDown\": _vm.beforePullDown,\n \"pulling\": _vm.pulling,\n \"bubbleY\": _vm.bubbleY\n })], 2)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-7c2e0d10\",\"hasScoped\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/lib/BScroll.vue\n// module id = 15\n// module chunks = 0"],"sourceRoot":""}