{"version":3,"sources":["webpack:///./node_modules/crypt/crypt.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/core-js/modules/es7.promise.finally.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/vant/es/utils/deep-assign.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/better-scroll/dist/bscroll.esm.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/vue-lazyload/vue-lazyload.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_strict-method.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/vant/es/locale/lang/zh-CN.js","webpack:///./node_modules/vant/es/locale/index.js","webpack:///./node_modules/qs/lib/stringify.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/qs/lib/index.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/es6.array.sort.js","webpack:///./node_modules/sha1/sha1.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es6.array.fill.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/vant/es/utils/raf.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/_own-keys.js","webpack:///./node_modules/charenc/charenc.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/qs/lib/parse.js","webpack:///./node_modules/vant/es/utils/use/bem.js","webpack:///./node_modules/vant/es/mixins/slots.js","webpack:///./node_modules/vant/es/utils/use/sfc.js","webpack:///./node_modules/vant/es/utils/use/i18n.js","webpack:///./node_modules/vant/es/utils/use/index.js","webpack:///./node_modules/vant/es/utils/index.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/qs/lib/formats.js","webpack:///./node_modules/core-js/modules/es6.string.link.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/vant/es/utils/functional.js","webpack:///./node_modules/vant/es/mixins/popup/context.js","webpack:///./node_modules/vant/es/mixins/touch.js","webpack:///./node_modules/vant/es/utils/event.js","webpack:///./node_modules/vant/es/overlay/index.js","webpack:///./node_modules/vant/es/mixins/popup/overlay.js","webpack:///./node_modules/vant/es/utils/scroll.js","webpack:///./node_modules/vant/es/mixins/popup/index.js","webpack:///./node_modules/vant/es/info/index.js","webpack:///./node_modules/vant/es/icon/index.js","webpack:///./node_modules/vant/es/loading/index.js","webpack:///./node_modules/vant/es/popup/index.js","webpack:///./node_modules/vant/es/actionsheet/index.js","webpack:///./node_modules/vant/es/utils/validate/mobile.js","webpack:///./node_modules/vant/es/utils/deep-clone.js","webpack:///./node_modules/vant/es/picker/shared.js","webpack:///./node_modules/vant/es/picker/PickerColumn.js","webpack:///./node_modules/vant/es/picker/index.js","webpack:///./node_modules/vant/es/area/index.js","webpack:///./node_modules/vant/es/cell/shared.js","webpack:///./node_modules/vant/es/utils/router.js","webpack:///./node_modules/vant/es/cell/index.js","webpack:///./node_modules/vant/es/utils/validate/number.js","webpack:///./node_modules/vant/es/field/index.js","webpack:///./node_modules/vant/es/toast/Toast.js","webpack:///./node_modules/vant/es/toast/index.js","webpack:///./node_modules/vant/es/button/index.js","webpack:///./node_modules/vant/es/dialog/index.js","webpack:///./node_modules/vant/es/dialog/Dialog.js","webpack:///./node_modules/vant/es/address-edit/Detail.js","webpack:///./node_modules/vant/es/switch/shared.js","webpack:///./node_modules/vant/es/switch/index.js","webpack:///./node_modules/vant/es/switch-cell/index.js","webpack:///./node_modules/vant/es/address-edit/index.js","webpack:///./node_modules/vant/es/radio-group/index.js","webpack:///./node_modules/vant/es/mixins/find-parent.js","webpack:///./node_modules/vant/es/mixins/checkbox.js","webpack:///./node_modules/vant/es/radio/index.js","webpack:///./node_modules/vant/es/address-list/Item.js","webpack:///./node_modules/vant/es/address-list/index.js","webpack:///./node_modules/vant/es/badge/index.js","webpack:///./node_modules/vant/es/badge-group/index.js","webpack:///./node_modules/vant/es/utils/color.js","webpack:///./node_modules/vant/es/tag/index.js","webpack:///./node_modules/vant/es/card/index.js","webpack:///./node_modules/vant/es/cell-group/index.js","webpack:///./node_modules/vant/es/checkbox/index.js","webpack:///./node_modules/vant/es/checkbox-group/index.js","webpack:///./node_modules/vant/es/circle/index.js","webpack:///./node_modules/vant/es/col/index.js","webpack:///./node_modules/vant/es/collapse/index.js","webpack:///./node_modules/vant/es/collapse-item/index.js","webpack:///./node_modules/vant/es/contact-card/index.js","webpack:///./node_modules/vant/es/contact-edit/index.js","webpack:///./node_modules/vant/es/contact-list/index.js","webpack:///./node_modules/vant/es/coupon/index.js","webpack:///./node_modules/vant/es/coupon-cell/index.js","webpack:///./node_modules/vant/es/tab/index.js","webpack:///./node_modules/vant/es/tabs/index.js","webpack:///./node_modules/vant/es/coupon-list/index.js","webpack:///./node_modules/vant/es/datetime-picker/utils.js","webpack:///./node_modules/vant/es/datetime-picker/index.js","webpack:///./node_modules/vant/es/goods-action/index.js","webpack:///./node_modules/vant/es/goods-action-big-btn/index.js","webpack:///./node_modules/vant/es/goods-action-mini-btn/index.js","webpack:///./node_modules/vant/es/swipe/index.js","webpack:///./node_modules/vant/es/swipe-item/index.js","webpack:///./node_modules/vant/es/image-preview/ImagePreview.js","webpack:///./node_modules/vant/es/image-preview/index.js","webpack:///./node_modules/vant/es/list/index.js","webpack:///./node_modules/vant/es/lazyload/index.js","webpack:///./node_modules/vant/es/nav-bar/index.js","webpack:///./node_modules/vant/es/notice-bar/index.js","webpack:///./node_modules/vant/es/notify/Notify.js","webpack:///./node_modules/vant/es/notify/index.js","webpack:///./node_modules/vant/es/number-keyboard/Key.js","webpack:///./node_modules/vant/es/number-keyboard/index.js","webpack:///./node_modules/vant/es/pagination/index.js","webpack:///./node_modules/vant/es/panel/index.js","webpack:///./node_modules/vant/es/password-input/index.js","webpack:///./node_modules/vant/es/progress/index.js","webpack:///./node_modules/vant/es/pull-refresh/index.js","webpack:///./node_modules/vant/es/rate/index.js","webpack:///./node_modules/vant/es/row/index.js","webpack:///./node_modules/vant/es/search/index.js","webpack:///./node_modules/vant/es/sku/components/SkuHeader.js","webpack:///./node_modules/vant/es/sku/components/SkuRow.js","webpack:///./node_modules/vant/es/sku/constants.js","webpack:///./node_modules/vant/es/sku/utils/skuHelper.js","webpack:///./node_modules/vant/es/sku/components/SkuRowItem.js","webpack:///./node_modules/vant/es/stepper/index.js","webpack:///./node_modules/vant/es/sku/components/SkuStepper.js","webpack:///./node_modules/vant/es/utils/validate/email.js","webpack:///./node_modules/vant/es/uploader/index.js","webpack:///./node_modules/vant/es/sku/components/SkuImgUploader.js","webpack:///./node_modules/vant/es/sku/components/SkuMessages.js","webpack:///./node_modules/vant/es/sku/components/SkuActions.js","webpack:///./node_modules/vant/es/sku/Sku.js","webpack:///./node_modules/vant/es/sku/index.js","webpack:///./node_modules/vant/es/slider/index.js","webpack:///./node_modules/vant/es/step/index.js","webpack:///./node_modules/vant/es/steps/index.js","webpack:///./node_modules/vant/es/submit-bar/index.js","webpack:///./node_modules/vant/es/mixins/click-outside.js","webpack:///./node_modules/vant/es/swipe-cell/index.js","webpack:///./node_modules/vant/es/tabbar/index.js","webpack:///./node_modules/vant/es/tabbar-item/index.js","webpack:///./node_modules/vant/es/tree-select/index.js","webpack:///./node_modules/vant/es/waterfall/directive.js","webpack:///./node_modules/vant/es/waterfall/index.js","webpack:///./node_modules/vant/es/index.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/vant/lib/toast/style/index.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/es6.number.constructor.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/qs/lib/utils.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/es6.object.is.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_string-ws.js"],"names":["base64map","crypt","rotl","n","b","rotr","endian","constructor","Number","i","length","randomBytes","bytes","push","Math","floor","random","bytesToWords","words","wordsToBytes","bytesToHex","hex","toString","join","hexToBytes","c","parseInt","substr","bytesToBase64","base64","triplet","j","charAt","base64ToBytes","replace","imod4","indexOf","pow","module","exports","LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","keys","FF_ITERATOR","KEYS","VALUES","returnThis","this","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","methods","key","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","prototype","$native","$default","$entries","undefined","$anyNative","entries","call","Object","name","values","P","F","toInteger","defined","TO_STRING","that","pos","a","s","String","l","charCodeAt","slice","at","S","index","unicode","core","global","speciesConstructor","promiseResolve","R","onFinally","C","Promise","isFunction","then","x","e","ctx","IObject","toObject","toLength","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","$this","callbackfn","val","res","O","self","f","result","anObject","ignoreCase","multiline","sticky","$keys","enumBugKeys","hasOwnProperty","assignKey","to","from","deepAssign","forEach","cof","Array","isArray","arg","pIE","createDesc","toIObject","toPrimitive","has","IE8_DOM_DEFINE","gOPD","getOwnPropertyDescriptor","dP","getKeys","defineProperties","Properties","defer","channel","port","invoke","html","cel","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","run","id","fn","listener","event","data","args","arguments","Function","nextTick","now","port2","port1","onmessage","postMessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","set","clear","asyncGeneratorStep","t","r","o","u","value","done","resolve","_asyncToGenerator","apply","_next","_throw","iterator","ret","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","code","len","getLens","b64","Error","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","extraBytes","parts","maxChunkLength","len2","spliceOne","list","pop","slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","_i","Symbol","err","TypeError","toConsumableArray","arr2","eventMixin","BScroll","on","type","context","_events","once","magic","off","count","trigger","events","eventsCopy","concat","_event","inBrowser","window","ua","navigator","userAgent","toLowerCase","isWeChatDevTools","test","isAndroid","getNow","performance","timing","navigationStart","Date","extend","target","_len","rest","_key","source","isUndef","v","getDistance","y","sqrt","elementStyle","document","createElement","style","vendor","transformNames","standard","webkit","Moz","ms","prefixStyle","toUpperCase","addEvent","el","capture","passive","removeEvent","removeEventListener","offset","left","top","offsetLeft","offsetTop","offsetParent","offsetToBody","rect","getBoundingClientRect","pageXOffset","pageYOffset","cssVendor","transform","transition","hasPerspective","hasTouch","hasTransform","hasTransition","transitionTimingFunction","transitionDuration","transitionDelay","transformOrigin","transitionEnd","TOUCH_EVENT","MOUSE_EVENT","eventType","touchstart","touchmove","touchend","mousedown","mousemove","mouseup","getRect","SVGElement","width","height","offsetWidth","offsetHeight","preventDefaultException","exceptions","tap","eventName","ev","createEvent","initEvent","pageX","pageY","dispatchEvent","click","eventSource","changedTouches","posSrc","screenX","screenY","clientX","clientY","bubbles","cancelable","MouseEvent","forwardedTouchEvent","_constructed","dblclick","prepend","firstChild","before","parentNode","insertBefore","child","DEFAULT_OPTIONS","startX","startY","scrollX","scrollY","freeScroll","directionLockThreshold","eventPassthrough","bounce","bounceTime","momentum","momentumLimitTime","momentumLimitDistance","swipeTime","swipeBounceTime","deceleration","flickLimitTime","flickLimitDistance","resizePolling","probeType","preventDefault","tagName","HWCompositing","useTransition","useTransform","bindToWrapper","disableMouse","disableTouch","observeDOM","autoBlur","wheel","snap","scrollbar","pullDownRefresh","pullUpLoad","mouseWheel","stopPropagation","zoom","infinity","initMixin","_init","options","_handleOptions","directionX","directionY","setScale","_addDOMEvents","_initExtFeatures","_watchTransition","_initDOMObserver","_handleAutoBlur","refresh","scrollTo","enable","scale","lastScale","translateZ","eventOperation","_handleDOMEvents","_removeDOMEvents","wrapper","scroller","_initSnap","_initScrollbar","_initPullUp","_initPullDown","_initWheel","_initMouseWheel","_initZoom","_initInfinite","defineProperty","me","isInTransition","get","newVal","children","pointerEvents","pulling","activeElement","blur","_this","MutationObserver","timer","observer","mutations","_shouldNotRefresh","immediateRefresh","deferredRefresh","mutation","clearTimeout","config","attributes","childList","subtree","observe","disconnect","_checkDOMUpdate","outsideBoundaries","minScrollX","maxScrollX","minScrollY","maxScrollY","stopFromTransition","scrollerRect","oldWidth","oldHeight","check","destroyed","newWidth","newHeight","_this2","handleEvent","_start","touches","_zoomStart","_zoom","_move","scaled","_zoomEnd","_end","_resize","_transitionEnd","enabled","_onMouseWheel","isWrapperStatic","getComputedStyle","position","wrapperRect","wrapperWidth","wrapperHeight","scrollerWidth","round","scrollerHeight","relativeX","relativeY","items","_checkWheelAllDisabled","itemHeight","selectedIndex","hasHorizontalScroll","hasVerticalScroll","endTime","wrapperOffset","resetPosition","disable","ease","swipe","swipeBounce","current","time","lowerMargin","upperMargin","wrapperSize","scroll","distance","speed","abs","duration","rate","destination","_findNearestValidWheel","max","min","DEFAULT_INTERVAL","noop","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","callback","interval","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_RIGHT","PROBE_DEBOUNCE","PROBE_REALTIME","warn","msg","console","error","assert","condition","coreMixin","_eventType","button","initiated","moved","distX","distY","movingDirectionX","movingDirectionY","directionLocked","_transitionTime","startTime","stop","point","absStartX","absStartY","pointX","pointY","deltaX","deltaY","absDistX","absDistY","timestamp","newX","newY","bottom","right","_translate","scrollLeft","documentElement","body","scrollTop","pX","pY","clientWidth","clientHeight","_checkPullDown","_checkClick","flick","momentumX","momentumY","adjustTime","easing","_nearestSnap","currentPage","snapSpeed","preventClick","className","wheelWrapperClass","_offset","_dblclick","dblclickTrigged","lastClickTime","_dblclick$delay","delay","resizeTimeout","_startProbe","probeTimer","probe","getComputedPosition","scrollerStyle","indicators","transitionTime","_transitionTimingFunction","_i2","needReset","_options$wheel$rotate","rotate","deg","_i3","updatePosition","_animate","destX","destY","easingFn","startScale","destScale","destTime","step","isAnimating","newScale","animateTimer","scrollBy","isSilent","_reflow","scrollToElement","offsetX","offsetY","nodeType","querySelector","classList","contains","wheelItemClass","easeing","roundX","roundY","matrix","split","destroy","snapMixin","loop","cloneNode","querySelectorAll","pages","stepX","stepY","cx","cy","m","_checkSnapLoop","initPageX","_loopX","initPageY","_loopY","_goToPage","snapThreshold","threshold","snapThresholdX","snapThresholdY","listenFlick","_children","posX","posY","goToPage","prev","getCurrentPage","wheelMixin","wheelTo","getSelectedIndex","wheelDisabledItemClass","currentIndex","cacheIndex","wheelItemsAllDisabled","INDICATOR_MIN_LEN","scrollbarMixin","_options$scrollbar","_options$scrollbar$fa","fade","_options$scrollbar$in","interactive","indicator","createScrollbar","direction","_insertScrollBar","Indicator","_removeScrollBars","cssText","wrapperStyle","indicatorStyle","visible","opacity","sizeRatioX","sizeRatioY","maxPosX","maxPosY","pullDownMixin","_options$pullDownRefr","_options$pullDownRefr2","_options$pullDownRefr3","finishPullDown","openPullDown","closePullDown","autoPullDownRefresh","_options$pullDownRefr4","_options$pullDownRefr5","_options$pullDownRefr6","pullUpMixin","pullupWatching","_watchPullUp","_checkToEnd","_options$pullUpLoad$t","finishPullUp","openPullUp","closePullUp","mouseWheelMixin","_handleMouseWheelEvent","mouseWheelTimer","mouseWheelEndTimer","firstWheelOpreation","_options$mouseWheel","_options$mouseWheel$s","_options$mouseWheel$i","invert","_options$mouseWheel$e","easeTime","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","detail","needTriggerEnd","zoomMixin","_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","_options$zoom3","_options$zoom3$min","_options$zoom3$max","_shouldShow","_calculate","hold","fadeTimeout","indicatorHeight","_height","indicatorWidth","_width","lastPointX","lastPointY","_handleMoveEvents","_pos","snapOption","_snapOption$easing","display","RUNWAY_ITEMS","RUNWAY_ITEMS_OPPOSITE","ANIMATION_DURATION_MS","DEFAULT_SCROLL_RUNWAY","infiniteMixin","infiniteScroller","InfiniteScroller","isTombstoneNode","node","createTombstone","fetch","render","firstAttachedItem","lastAttachedItem","anchorScrollTop","anchorItem","tombstoneHeight","tombstoneWidth","tombstones","tombstonesAnimationHandlers","loadedItems","requestInProgress","hasMore","wrapperEl","scrollerEl","onResize","_onResizeHandler","onScroll","handler","item","delta","_calculateAnchoredItem","lastScreenItem","fill","maybeRequestContent","tombstone","attachContent","_this3","itemsNeeded","addContent","tombstoneLen","_removeTombstones","curPos","_fixScrollPosition","_setupAnimations","_addItem","unusedNodes","_collectUnusedNodes","tombstoneAnimations","_createDOMNodes","_cleanupUnusedNodes","_cacheNodeSize","resetMore","markIndex","itemLen","currentNode","currentData","splice","zIndex","_getTombStone","isTombstone","_this4","animation","_animation","tombstoneNode","tombstoneAnimationsHandler","_animation2","initialAnchor","ceil","Version","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","exec","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","str","arg2","forceStringMethod","strfn","rxfn","RegExp","string","isObject","is","it","ARG","tryGet","T","B","callee","getOwnPropertySymbols","_extends","assign","bind","d","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","reduce","g","h","mergeFn","classof","getIteratorMethod","isBuffer","L","getAttribute","trim","map","lastIndexOf","sort","k","visibility","innerHTML","p","enumerable","configurable","writable","propertyIsEnumerable","w","Boolean","_","E","A","initCustomEvent","CustomEvent","Event","z","devicePixelRatio","I","Image","src","onload","naturalHeight","naturalWidth","onerror","getPropertyValue","$","HTMLElement","H","Q","loading","bindType","$parent","elRenderer","attempt","performanceData","init","loadStart","loadEnd","filter","initState","dataset","state","loaded","rendered","innerHeight","preLoad","preLoadTop","innerWidth","silent","log","renderLoading","record","W","rootMargin","D","throttleWait","listenEvents","hasbind","adapter","observerOptions","version","mode","ListenerQueue","TargetIndex","TargetQueue","ListenEvents","supportWebp","_initEvent","lazyLoadHandler","_lazyLoadHandler","setMode","_addListenerTarget","_observer","$el","update","_valueFormatter","modifiers","$refs","getElementById","_elRenderer","unobserve","_removeListenerTarget","_initListen","_initIntersectionObserver","childrenCount","listened","listeners","$on","$once","$off","$emit","checkInView","load","IntersectionObserver","_observerHandler","isIntersecting","setAttribute","props","tag","default","show","$slots","mounted","addLazyBox","beforeDestroy","removeComponent","V","lazy","lazyContainerMananger","_queue","N","binding","vnode","M","selector","getImgs","add","remove","install","$Lazyload","lazyComponent","component","directive","componentUpdated","unbind","vm","$els","oldValue","normalizeComponent","scriptExports","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","isRegExp","advanceStringIndex","callRegExpExec","$min","$push","$SPLIT","LENGTH","LAST_INDEX","MAX_UINT32","SUPPORTS_Y","SPLIT","$split","maybeCallNative","internalSplit","separator","limit","match","lastIndex","lastLength","flags","lastLastIndex","splitLimit","separatorCopy","splitter","rx","unicodeMatching","lim","q","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_toConsumableArray","SRC","$toString","TPL","inspectSource","safe","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","lt","gt","contentWindow","open","write","close","store","uid","USE_SYMBOL","$exports","method","INCLUDES","includes","searchString","un","object","ArrayProto","toAbsoluteIndex","aLen","endPos","quot","createHTML","attribute","p1","ObjectProto","inheritIfRequired","gOPN","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","tel","save","confirm","cancel","complete","telEmpty","nameEmpty","confirmDelete","telInvalid","vanContactCard","addText","vanContactList","vanPagination","vanPullRefresh","loosing","vanSubmitBar","label","vanCoupon","valid","unlimited","discount","_discount","_condition","vanCouponCell","title","tips","_count","vanCouponList","empty","exchange","disabled","placeholder","vanAddressEdit","area","postal","areaEmpty","addressEmpty","postalEmpty","defaultAddress","telPlaceholder","namePlaceholder","areaPlaceholder","vanAddressEditDetail","vanAddressList","defineReactive","util","messages","$vantMessages","$vantLang","use","lang","_this$add","utils","formats","arrayPrefixGenerators","brackets","prefix","indices","repeat","pushToArray","valueOrArray","toISO","toISOString","defaults","delimiter","encode","encoder","encodeValuesOnly","serializeDate","date","skipNulls","strictNullHandling","stringify","generateArrayPrefix","allowDots","formatter","obj","keyValue","objKeys","opts","format","formatters","arrayFormat","joined","addQueryPrefix","descriptor","parse","isNaN","bitmap","regExpExec","MATCH","$match","fullUnicode","matchStr","isArrayIter","getIterFn","BREAK","RETURN","iterable","iterFn","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","PATCH","reCopy","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","aFunction","anInstance","forOf","task","microtask","newPromiseCapabilityModule","perform","PROMISE","versions","v8","$Promise","isNode","newPromiseCapability","USE_NATIVE","promise","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","chain","_c","_v","ok","reaction","exited","fail","reject","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_w","$resolve","executor","onFulfilled","onRejected","G","capability","$$reject","iter","all","remaining","$index","alreadyCalled","race","SHARED","copyright","$sort","comparefn","utf8","bin","sha1","message","stringToBytes","Buffer","H0","H1","H2","H3","H4","api","digestbytes","asBytes","asString","bytesToString","_blocksize","_digestsize","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","SAFE_CLOSING","riter","skipClosing","setPrototypeOf","builtinExec","shared","$includes","valueOf","DESCRIPTORS","define","gOPS","$assign","K","getSymbols","isEnum","$find","forced","find","__g","def","stat","FProto","nameRE","macrotask","Observer","WebKitMutationObserver","head","last","flush","standalone","toggle","createTextNode","characterData","__e","fallback","curr","root","iRaf","iCancel","raf","Attributes","buggy","__proto__","ownKeys","createProperty","getOwnPropertyDescriptors","desc","getDesc","hiddenKeys","getOwnPropertyNames","read","buffer","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","Infinity","rt","LN2","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","reverse","skipTempReset","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Reflect","charenc","unescape","encodeURIComponent","decodeURIComponent","escape","fromCharCode","UNSCOPABLES","allowPrototypes","arrayLimit","decoder","decode","depth","parameterLimit","plainObjects","parseValues","cleanStr","ignoreQueryPrefix","part","bracketEqualsPos","parseObject","leaf","parseArrays","cleanRoot","0","parseKeys","givenKey","segment","tempObj","newObj","merge","compact","ELEMENT","MODS","symbol","mods","useBEM","SlotsMixin","slots","$scopedSlots","arrayProp","numberProp","defaultProps","Vue","camelize","unifySlots","scopedSlots","transformFunctionComponent","pure","model","sfc","mixins","path","locale","isServer","$isServer","isDef","isObj","camelizeRE","isIOS","range","isInDocument","element","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","searchValue","replaceValue","functionalReplace","results","accumulatedResult","nextSourcePosition","matched","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","symbols","ch","PromiseCapability","$$resolve","spaces","space","non","ltrim","rtrim","exporter","ALIAS","FORCE","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","_typeof","toPropertyKey","_defineProperty","percentTwenties","RFC1738","RFC3986","url","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","allocUnsafe","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","size","alloc","encoding","checked","isEncoding","actual","fromArrayLike","array","byteOffset","copy","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","isFinite","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","inheritKey","mapInheritKey","nativeOn","inherit","inheritListeners","mount","Component","instance","$props","lockCount","stack","MIN_DISTANCE","getDirection","TouchMixin","touchStart","resetTouchStatus","touchMove","touch","supportsPassive","isStopPropagation","_use","Overlay","customStyle","defaultConfig","onClickOverlay","closeOnClickOverlay","updateOverlay","_context$top","openOverlay","some","closeOverlay","getScrollEventTarget","rootParent","_window$getComputedSt","overflowY","getScrollTop","setScrollTop","getRootScrollTop","getElementTop","getVisibleHeight","PopupMixin","overlay","overlayStyle","overlayClass","getContainer","lockScroll","lazyRender","inited","computed","shouldRender","watch","move","renderOverlay","activated","deactivated","opened","onTouchMove","container","scrollHeight","status","updateZIndex","$nextTick","isImage","Icon","urlIcon","classPrefix","color","fontSize","DEFAULT_COLOR","Loading","colorType","Spin","Circular","_bem","transitionName","Actionsheet","cancelText","onCancel","Header","Option","subname","safeAreaInsetBottom","actions","isMobile","deepClone","pickerProps","showToolbar","cancelButtonText","confirmButtonText","visibleItemCount","DEFAULT_DURATION","valueKey","defaultIndex","initialOptions","startOffset","created","setIndex","onTouchStart","onTouchEnd","adjustIndex","isDisabled","option","getOptionText","userAction","setValue","getValue","columnStyle","baseOffset","lineHeight","optionStyle","selected","columns","simple","setColumns","column","setColumnValues","getColumnValue","getColumnIndex","getValues","getIndexes","onChange","columnIndex","getColumn","setColumnValue","setColumnIndex","optionIndex","getColumnValues","JSON","setValues","setIndexes","indexes","onConfirm","frameStyle","columnsStyle","Toolbar","PickerColumn","COLUMNSPLACEHOLDERCODE","areaList","columnsNum","columnsPlaceholder","province","province_list","city","city_list","county","county_list","displayColumns","typeToColumnsPlaceholder","deep","getList","listCode","codeFill","unshift","getIndex","compareNum","parseOutputValues","picker","getArea","country","names","filterCodeValues","$listeners","change","cellProps","icon","center","isLink","required","titleStyle","titleClass","valueClass","labelClass","border","route","router","location","href","functionalRoute","$router","routeProps","Cell","arrowDirection","showTitle","showValue","showLabel","Label","Title","Value","alone","LeftIcon","rightIconSlot","RightIcon","onClick","classes","borderless","clickable","extra","isNumber","inheritAttrs","leftIcon","rightIcon","readonly","clearable","labelWidth","labelAlign","inputAlign","onIconClick","autosize","errorMessage","errorMessageAlign","focused","adjustSize","showClear","input","onInput","keypress","onKeypress","focus","onFocus","onBlur","labelStyle","maxWidth","minWidth","_target","maxlength","$attrs","onClickLeftIcon","onClickRightIcon","onClear","keyCode","allowPoint","isValidKey","_this$autosize","maxHeight","minHeight","renderInput","$createElement","inputProps","ref","domProps","attrs","renderLeftIcon","showLeftIcon","renderRightIcon","showRightIcon","STYLE","forbidClick","loadingType","toggleClickale","action","Content","defaultOptions","mask","onClose","multiple","currentOptions","createInstance","toast","transformer","$destroy","shift","setDefaultOptions","resetDefaultOptions","allowMultiple","$toast","Button","hairline","loadingText","onTouchstart","block","plain","square","bottomAction","nativeType","loadingSize","text","beforeClose","messageAlign","cancelButtonColor","confirmButtonColor","showCancelButton","showConfirmButton","handleAction","isolated","hasButtons","ButtonGroup","buttons","propsData","alert","$dialog","android","detailRows","searchResult","showSearchResult","onSelect","express","address","onFinish","field","renderFinish","renderSearchResult","switchProps","activeColor","inactiveColor","activeValue","inactiveValue","Switch","backgroundColor","newValue","SwitchCell","defaultData","areaCode","postalCode","addressDetail","isDefault","isSaving","isDeleting","validator","showDelete","showPostal","showSetDefault","saveButtonText","deleteButtonText","showArea","showDetail","addressInfo","telValidator","areaColumnsPlaceholder","showAreaPopup","detailFocused","errorInfo","areaListLoaded","areaText","_this$data","setAreaCode","immediate","onChangeDetail","onAreaConfirm","assignAreaValues","onSave","isValid","every","getErrorMessage","onDelete","setAddressDetail","onDetailBlur","hideBottomFields","$$v","Detail","_value","FindParentMixin","findParent","bem","checkedColor","labelPosition","labelDisabled","shape","bindGroup","iconStyle","borderColor","CheckIcon","onClickLabel","onClickIcon","currentValue","AddressItem","switchable","renderContent","Info","unswitchable","AddressList","List","DisabledList","disabledList","disabledText","addButtonText","inject","badges","vanBadgeGroup","select","activeKey","provide","RED","BLUE","GREEN","WHITE","GRAY_DARK","COLOR_MAP","danger","primary","success","Tag","_style","textColor","Card","thumb","showThumb","showTag","showNum","showPrice","price","showOriginPrice","originPrice","showBottom","onThumbClick","Thumb","thumbLink","lazyLoad","Desc","Price","currency","OriginPrice","Num","Footer","footer","centered","tags","CellGroup","Group","setParentValue","toggleTask","PERIMETER","PATH","layerColor","strokeWidth","clockwise","layerStyle","stroke","strokeDashoffset","hoverStyle","startRate","endRate","increase","rafId","animate","progress","parseFloat","toFixed","span","gutter","padding","paddingLeft","paddingRight","accordion","expanded","activeName","CELL_SLOTS","currentName","_expanded","_this2$$refs","content","contentHeight","onTransitionEnd","titleSlots","ContactCard","editable","defaultContact","isEdit","contactInfo","getErrorMessageByKey","ContactList","padZero","getDate","timeStamp","getFullYear","getMonth","formatDiscount","formatAmount","amount","coupon","chosen","validPeriod","startAt","endAt","faceAmount","valueDesc","unitDesc","denominations","conditionMessage","originCondition","description","formatValue","coupons","chosenCoupon","CouponCell","prop","tabs","curActive","setLine","renderTitle","animated","tabBem","swipeable","background","titleActiveColor","titleInactiveColor","ellipsis","lineWidth","active","swipeThreshold","lineStyle","resize","scrollable","wrapStyle","navStyle","trackStyle","correctActive","scrollIntoView","handlers","onShow","scrollEl","minSwipeDistance","setCurActive","elTopToPageTop","elBottomToPageTop","scrollParams","isFixed","shouldAnimate","tab","borderRadius","exist","defaultActive","findAvailableTab","diff","_this$tabs$index","nav","navWidth","_tabs$this$curActive","tabWidth","frames","replaceChild","getTabStyle","isCard","titleColor","flexBasis","Nav","EMPTY_IMAGE","disabledCoupons","closeButtonText","inputPlaceholder","exchangeButtonText","exchangeButtonLoading","exchangeButtonDisabled","exchangeMinLength","displayedCouponIndex","showExchangeBar","showCloseButton","winHeight","currentCode","buttonDisabled","disabledTitle","listStyle","_code","scrollToShowCoupon","onClickExchangeButton","_this$$refs","card","renderEmpty","renderExchangeButton","ExchangeBar","CouponTab","DisabledCouponTab","isValidDate","getTime","times","iteratee","getTrueValue","formattedValue","getMonthEndDay","year","month","currentYear","minHour","minMinute","minDate","maxDate","maxHour","maxMinute","innerValue","correctValue","isEqual","updateColumnValue","ranges","_this$getBoundary","getBoundary","maxYear","maxMonth","_this$getBoundary2","minYear","minMonth","_ref","rangeArr","isDateType","_value$split","hour","minute","_ref2","boundary","getHours","getMinutes","pair","GoodsAction","GoodsActionBigBtn","GoodsActionMiniBtn","iconClass","autoplay","vertical","initialSwipe","indicatorColor","touchable","showIndicators","computedWidth","computedHeight","swipes","swiping","initialize","_autoplay","autoPlay","trackSize","activeIndicator","isCorrectDirection","expect","mainAxis","crossAxis","correctPosition","pace","emitChange","_ref2$pace","_ref2$offset","atFirst","atLast","outOfBounds","swipeTo","_this$$parent","images","asyncClose","startPosition","showIndex","minZoom","maxZoom","moveX","moveY","moving","zooming","imageStyle","onWrapperTouchStart","touchStartTime","onWrapperTouchEnd","deltaTime","_ref$offsetX","_ref$offsetY","resetScale","startMove","image","currentTarget","winWidth","startMoveX","startMoveY","maxMoveX","maxMoveY","startZoom","_ref2$offsetX","Index","Images","touchcancel","finished","errorText","finishedText","immediateCheck","isReachEdge","targetBottom","elBottom","clickErrorText","binded","NavBar","fixed","leftArrow","leftText","rightText","wrapable","wrapWidth","firstRound","showNoticeBar","animationClass","onAnimationEnd","iconName","barStyle","contentStyle","animationDelay","animationDuration","withicon","Notify","$notify","types","CLOSE_KEY_TYPE","DELETE_KEY_TYPE","theme","extraKey","showDeleteKey","hideOnClickOutside","deleteText","handlerStatus","onPress","titleLeftSlot","showTitleClose","Key","makePage","number","prevText","nextText","pageCount","totalItems","forceEllipses","itemsPerPage","showPageSize","startPage","endPage","isMaxSized","page","previousPageSet","nextPageSet","Panel","header","PasswordInput","Points","_char","inactive","pivotText","pivotColor","percentage","showPivot","pivotWidth","progressWidth","getWidth","pivot","pivotStyle","portionStyle","TEXT_STATUS","successText","pullingText","loosingText","successDuration","headHeight","untouchable","setStatus","getCeiling","ceiling","isLoading","Status","getRateStatus","allowHalf","Rate","voidIcon","voidColor","disabledColor","elementFromPoint","_event$touches$","score","renderStar","isFull","isVoid","align","justify","flex","margin","marginLeft","marginRight","Search","Action","showAction","fieldData","inheritData","getSkuImg","sku","selectedSku","s1","treeItem","tree","k_s","matchedSku","skuValue","imgUrl","img_url","SkuHeader","goods","skuEventBus","goodsImg","picture","previewImage","SkuRow","skuRow","LIMIT_TYPE","QUOTA_LIMIT","STOCK_LIMIT","UNSELECTED_SKU_VALUE_ID","normalizeSkuTree","skuTree","normalizedTree","skuKeyStr","getSkuComb","skuList","skuComb","selectedValues","skuValues","skuValueId","skuToChoose","_extends2","valueId","skusToCheck","skuKey","filteredSku","stock","total","stock_num","getSelectedSkuValues","isAllSelected","isSkuChoosable","choosable","choosed","integer","inputWidth","asyncChange","disableInput","defaultValue","minusDisabled","plusDisabled","formatted","quota","quotaUsed","hideStock","skuStockNum","selectedNum","stepperTitle","hideQuotaText","selectedSkuComb","disableStepperInput","customStepperConfig","currentNum","limitType","stepperLimit","stockNum","stockText","stockFormatter","quotaText","_this$customStepperCo","quotaLimit","setCurrentNum","onOverLimit","handleStepperChange","isEmail","reg","beforeRead","afterRead","accept","resultType","maxSize","MAX_VALUE","files","resetInput","readFile","contents","oversize","payload","file","onAfterRead","reader","FileReader","readAsDataURL","readAsText","uploadImg","paddingImg","imgList","afterReadFile","img","onOversize","ImageList","PLACEHOLDER","id_no","email","textarea","mobile","messageConfig","goodsId","messageValues","resetMessageValues","getType","datetime","getMessages","getCartMessages","getPlaceholder","placeholderMap","validateMessages","textType","SkuImgUploader","uploadMaxSize","SkuActions","showAddCartBtn","buyText","customSkuValidator","resetStepperOnHide","resetSelectedSkuOnHide","initialSku","showSoldoutSku","bodyOffsetTop","selectedSkuValues","resetStepper","resetSelectedSku","skuGroupClass","bodyStyle","isSkuCombSelected","isSkuEmpty","hasSku","none_sku","collection_id","imageList","vItem","onNumChange","onPreviewImage","onAddCart","onBuy","skuStepper","getSkuMessages","skuMessages","getSkuCartMessages","validateSkuMessages","validateSku","_extends3","indexImage","findIndex","cbParams","handleOverLimit","onBuyOrAddCart","getSkuData","cartMessages","slotsProps","skuTreeItem","SkuRowItem","Stepper","SkuStepper","Messages","SkuMessages","Actions","Sku","skuHelper","skuConstants","constants","barHeight","startValue","updateValue","_barStyle","steps","activeIcon","StatusIcon","StatusMessage","SubmitBar","tip","hasPrice","decimalLength","buttonType","buttonText","THRESHOLD","leftWidth","rightWidth","dragging","swipeMove","resetSwipeStatus","swipeLeaveTransition","startDrag","onDrag","endDrag","setActiveItem","dot","TreeSelect","mainActiveIndex","activeId","selectedItem","subItems","CONTEXT","OFFSET","handleScrollEvent","scrollEventTarget","targetScrollTop","targetVisibleHeight","needLoadMoreToLower","elementBottom","cb","lower","needLoadMoreToUpper","elementTop","upper","doBindEvent","scrollEventListener","disabledExpr","$watch","startBind","doCheckStartBind","_isMounted","components","promiseCapability","IS_INCLUDES","fromIndex","$trim","NUMBER","$Number","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","digits","px","addToUnscopables","iterated","_t","_k","Arguments","original","hexTable","compactQueue","compacted","arrayToObject","mergeTarget","targetItem","acc","refs","$defineProperty","forbiddenField"],"mappings":"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","file":"js/chunk-vendors.949cac30.js","sourcesContent":["(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","/* eslint-disable no-use-before-define */\nimport { isDef, isObj } from '.';\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction assignKey(to, from, key) {\n var val = from[key];\n\n if (!isDef(val)) {\n return;\n }\n\n if (!hasOwnProperty.call(to, key) || !isObj(val)) {\n to[key] = val;\n } else {\n to[key] = deepAssign(Object(to[key]), from[key]);\n }\n}\n\nexport function deepAssign(to, from) {\n Object.keys(from).forEach(function (key) {\n assignKey(to, from, key);\n });\n return to;\n}","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\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","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","exports.f = Object.getOwnPropertySymbols;\n","\"use strict\";function _extends(){return _extends=Object.assign?Object.assign.bind():function(a){for(var b,c=1;c\n * Released under the MIT License.\n */\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.VueLazyload=t()}(this,function(){\"use strict\";function e(e){return e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function t(e){e=e||{};var t=arguments.length,i=0;if(1===t)return e;for(;++i-1?e.splice(n,1):void 0}}function a(e,t){for(var n=!1,r=0,i=e.length;rt[0])return 1;if(e[0]===t[0]){if(-1!==t[1].indexOf(\".webp\",t[1].length-5))return 1;if(-1!==e[1].indexOf(\".webp\",e[1].length-5))return-1}return 0});for(var l=\"\",d=void 0,c=r.length,h=0;h=o){l=d[1];break}return l}}function u(e,t){for(var n=void 0,r=0,i=e.length;r=t?s():n=setTimeout(s,t)}}}function c(e){return null!==e&&\"object\"===(void 0===e?\"undefined\":p(e))}function h(e){if(!(e instanceof Object))return[];if(Object.keys)return Object.keys(e);var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t}function f(e){for(var t=e.length,n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:1;return k?window.devicePixelRatio||e:e},T=function(){if(k){var e=!1;try{var t=Object.defineProperty({},\"passive\",{get:function(){e=!0}});window.addEventListener(\"test\",null,t)}catch(e){}return e}}(),O={on:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];T?e.addEventListener(t,n,{capture:r,passive:!0}):e.addEventListener(t,n,r)},off:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e.removeEventListener(t,n,r)}},I=function(e,t,n){var r=new Image;r.src=e.src,r.onload=function(){t({naturalHeight:r.naturalHeight,naturalWidth:r.naturalWidth,src:r.src})},r.onerror=function(e){n(e)}},x=function(e,t){return\"undefined\"!=typeof getComputedStyle?getComputedStyle(e,null).getPropertyValue(t):e.style[t]},S=function(e){return x(e,\"overflow\")+x(e,\"overflow-y\")+x(e,\"overflow-x\")},$=function(e){if(k){if(!(e instanceof HTMLElement))return window;for(var t=e;t&&t!==document.body&&t!==document.documentElement&&t.parentNode;){if(/(scroll|auto)/.test(S(t)))return t;t=t.parentNode}return window}},H={},Q=function(){function e(t){var n=t.el,r=t.src,i=t.error,o=t.loading,a=t.bindType,s=t.$parent,u=t.options,l=t.elRenderer;b(this,e),this.el=n,this.src=r,this.error=i,this.loading=o,this.bindType=a,this.attempt=0,this.naturalHeight=0,this.naturalWidth=0,this.options=u,this.rect=null,this.$parent=s,this.elRenderer=l,this.performanceData={init:Date.now(),loadStart:0,loadEnd:0},this.filter(),this.initState(),this.render(\"loading\",!1)}return y(e,[{key:\"initState\",value:function(){this.el.dataset.src=this.src,this.state={error:!1,loaded:!1,rendered:!1}}},{key:\"record\",value:function(e){this.performanceData[e]=Date.now()}},{key:\"update\",value:function(e){var t=e.src,n=e.loading,r=e.error,i=this.src;this.src=t,this.loading=n,this.error=r,this.filter(),i!==this.src&&(this.attempt=0,this.initState())}},{key:\"getRect\",value:function(){this.rect=this.el.getBoundingClientRect()}},{key:\"checkInView\",value:function(){return this.getRect(),this.rect.topthis.options.preLoadTop&&this.rect.left0}},{key:\"filter\",value:function(){var e=this;h(this.options.filter).map(function(t){e.options.filter[t](e,e.options)})}},{key:\"renderLoading\",value:function(e){var t=this;I({src:this.loading},function(n){t.render(\"loading\",!1),e()},function(){e(),t.options.silent||console.warn(\"VueLazyload log: load failed with loading image(\"+t.loading+\")\")})}},{key:\"load\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:v;return this.attempt>this.options.attempt-1&&this.state.error?(this.options.silent||console.log(\"VueLazyload log: \"+this.src+\" tried too more than \"+this.options.attempt+\" times\"),void t()):this.state.loaded||H[this.src]?(this.state.loaded=!0,t(),this.render(\"loaded\",!0)):void this.renderLoading(function(){e.attempt++,e.record(\"loadStart\"),I({src:e.src},function(n){e.naturalHeight=n.naturalHeight,e.naturalWidth=n.naturalWidth,e.state.loaded=!0,e.state.error=!1,e.record(\"loadEnd\"),e.render(\"loaded\",!1),H[e.src]=1,t()},function(t){!e.options.silent&&console.error(t),e.state.error=!0,e.state.loaded=!1,e.render(\"error\",!1)})})}},{key:\"render\",value:function(e,t){this.elRenderer(this,e,t)}},{key:\"performance\",value:function(){var e=\"loading\",t=0;return this.state.loaded&&(e=\"loaded\",t=(this.performanceData.loadEnd-this.performanceData.loadStart)/1e3),this.state.error&&(e=\"error\"),{src:this.src,state:e,time:t}}},{key:\"destroy\",value:function(){this.el=null,this.src=null,this.error=null,this.loading=null,this.bindType=null,this.attempt=0}}]),e}(),C=\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\",R=[\"scroll\",\"wheel\",\"mousewheel\",\"resize\",\"animationend\",\"transitionend\",\"touchmove\"],W={rootMargin:\"0px\",threshold:0},D=function(e){return function(){function t(e){var n=e.preLoad,r=e.error,i=e.throttleWait,o=e.preLoadTop,a=e.dispatchEvent,s=e.loading,u=e.attempt,c=e.silent,h=void 0===c||c,f=e.scale,v=e.listenEvents,p=(e.hasbind,e.filter),y=e.adapter,g=e.observer,m=e.observerOptions;b(this,t),this.version=\"1.2.3\",this.mode=A.event,this.ListenerQueue=[],this.TargetIndex=0,this.TargetQueue=[],this.options={silent:h,dispatchEvent:!!a,throttleWait:i||200,preLoad:n||1.3,preLoadTop:o||0,error:r||C,loading:s||C,attempt:u||3,scale:f||z(f),ListenEvents:v||R,hasbind:!1,supportWebp:l(),filter:p||{},adapter:y||{},observer:!!g,observerOptions:m||W},this._initEvent(),this.lazyLoadHandler=d(this._lazyLoadHandler.bind(this),this.options.throttleWait),this.setMode(this.options.observer?A.observer:A.event)}return y(t,[{key:\"config\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_(this.options,e)}},{key:\"performance\",value:function(){var e=[];return this.ListenerQueue.map(function(t){e.push(t.performance())}),e}},{key:\"addLazyBox\",value:function(e){this.ListenerQueue.push(e),k&&(this._addListenerTarget(window),this._observer&&this._observer.observe(e.el),e.$el&&e.$el.parentNode&&this._addListenerTarget(e.$el.parentNode))}},{key:\"add\",value:function(t,n,r){var i=this;if(a(this.ListenerQueue,function(e){return e.el===t}))return this.update(t,n),e.nextTick(this.lazyLoadHandler);var o=this._valueFormatter(n.value),u=o.src,l=o.loading,d=o.error;e.nextTick(function(){u=s(t,i.options.scale)||u,i._observer&&i._observer.observe(t);var o=Object.keys(n.modifiers)[0],a=void 0;o&&(a=r.context.$refs[o],a=a?a.$el||a:document.getElementById(o)),a||(a=$(t));var c=new Q({bindType:n.arg,$parent:a,el:t,loading:l,error:d,src:u,elRenderer:i._elRenderer.bind(i),options:i.options});i.ListenerQueue.push(c),k&&(i._addListenerTarget(window),i._addListenerTarget(a)),i.lazyLoadHandler(),e.nextTick(function(){return i.lazyLoadHandler()})})}},{key:\"update\",value:function(t,n){var r=this,i=this._valueFormatter(n.value),o=i.src,a=i.loading,l=i.error;o=s(t,this.options.scale)||o;var d=u(this.ListenerQueue,function(e){return e.el===t});d&&d.update({src:o,loading:a,error:l}),this._observer&&(this._observer.unobserve(t),this._observer.observe(t)),this.lazyLoadHandler(),e.nextTick(function(){return r.lazyLoadHandler()})}},{key:\"remove\",value:function(e){if(e){this._observer&&this._observer.unobserve(e);var t=u(this.ListenerQueue,function(t){return t.el===e});t&&(this._removeListenerTarget(t.$parent),this._removeListenerTarget(window),o(this.ListenerQueue,t)&&t.destroy())}}},{key:\"removeComponent\",value:function(e){e&&(o(this.ListenerQueue,e),this._observer&&this._observer.unobserve(e.el),e.$parent&&e.$el.parentNode&&this._removeListenerTarget(e.$el.parentNode),this._removeListenerTarget(window))}},{key:\"setMode\",value:function(e){var t=this;E||e!==A.observer||(e=A.event),this.mode=e,e===A.event?(this._observer&&(this.ListenerQueue.forEach(function(e){t._observer.unobserve(e.el)}),this._observer=null),this.TargetQueue.forEach(function(e){t._initListen(e.el,!0)})):(this.TargetQueue.forEach(function(e){t._initListen(e.el,!1)}),this._initIntersectionObserver())}},{key:\"_addListenerTarget\",value:function(e){if(e){var t=u(this.TargetQueue,function(t){return t.el===e});return t?t.childrenCount++:(t={el:e,id:++this.TargetIndex,childrenCount:1,listened:!0},this.mode===A.event&&this._initListen(t.el,!0),this.TargetQueue.push(t)),this.TargetIndex}}},{key:\"_removeListenerTarget\",value:function(e){var t=this;this.TargetQueue.forEach(function(n,r){n.el===e&&(--n.childrenCount||(t._initListen(n.el,!1),t.TargetQueue.splice(r,1),n=null))})}},{key:\"_initListen\",value:function(e,t){var n=this;this.options.ListenEvents.forEach(function(r){return O[t?\"on\":\"off\"](e,r,n.lazyLoadHandler)})}},{key:\"_initEvent\",value:function(){var e=this;this.Event={listeners:{loading:[],loaded:[],error:[]}},this.$on=function(t,n){e.Event.listeners[t].push(n)},this.$once=function(t,n){function r(){i.$off(t,r),n.apply(i,arguments)}var i=e;e.$on(t,r)},this.$off=function(t,n){if(!n)return void(e.Event.listeners[t]=[]);o(e.Event.listeners[t],n)},this.$emit=function(t,n,r){e.Event.listeners[t].forEach(function(e){return e(n,r)})}}},{key:\"_lazyLoadHandler\",value:function(){var e=this,t=!1;this.ListenerQueue.forEach(function(n,r){n.state.loaded||(t=n.checkInView())&&n.load(function(){!n.error&&n.loaded&&e.ListenerQueue.splice(r,1)})})}},{key:\"_initIntersectionObserver\",value:function(){var e=this;E&&(this._observer=new IntersectionObserver(this._observerHandler.bind(this),this.options.observerOptions),this.ListenerQueue.length&&this.ListenerQueue.forEach(function(t){e._observer.observe(t.el)}))}},{key:\"_observerHandler\",value:function(e,t){var n=this;e.forEach(function(e){e.isIntersecting&&n.ListenerQueue.forEach(function(t){if(t.el===e.target){if(t.state.loaded)return n._observer.unobserve(t.el);t.load()}})})}},{key:\"_elRenderer\",value:function(e,t,n){if(e.el){var r=e.el,i=e.bindType,o=void 0;switch(t){case\"loading\":o=e.loading;break;case\"error\":o=e.error;break;default:o=e.src}if(i?r.style[i]='url(\"'+o+'\")':r.getAttribute(\"src\")!==o&&r.setAttribute(\"src\",o),r.setAttribute(\"lazy\",t),this.$emit(t,e,n),this.options.adapter[t]&&this.options.adapter[t](e,this.options),this.options.dispatchEvent){var a=new j(t,{detail:e});r.dispatchEvent(a)}}}},{key:\"_valueFormatter\",value:function(e){var t=e,n=this.options.loading,r=this.options.error;return c(e)&&(e.src||this.options.silent||console.error(\"Vue Lazyload warning: miss src with \"+e),t=e.src,n=e.loading||this.options.loading,r=e.error||this.options.error),{src:t,loading:n,error:r}}}]),t}()},B=function(e){return{props:{tag:{type:String,default:\"div\"}},render:function(e){return!1===this.show?e(this.tag):e(this.tag,null,this.$slots.default)},data:function(){return{el:null,state:{loaded:!1},rect:{},show:!1}},mounted:function(){this.el=this.$el,e.addLazyBox(this),e.lazyLoadHandler()},beforeDestroy:function(){e.removeComponent(this)},methods:{getRect:function(){this.rect=this.$el.getBoundingClientRect()},checkInView:function(){return this.getRect(),k&&this.rect.top0&&this.rect.left0},load:function(){this.show=!0,this.state.loaded=!0,this.$emit(\"show\",this)}}}},V=function(){function e(t){var n=t.lazy;b(this,e),this.lazy=n,n.lazyContainerMananger=this,this._queue=[]}return y(e,[{key:\"bind\",value:function(e,t,n){var r=new N({el:e,binding:t,vnode:n,lazy:this.lazy});this._queue.push(r)}},{key:\"update\",value:function(e,t,n){var r=u(this._queue,function(t){return t.el===e});r&&r.update({el:e,binding:t,vnode:n})}},{key:\"unbind\",value:function(e,t,n){var r=u(this._queue,function(t){return t.el===e});r&&(r.clear(),o(this._queue,r))}}]),e}(),M={selector:\"img\"},N=function(){function e(t){var n=t.el,r=t.binding,i=t.vnode,o=t.lazy;b(this,e),this.el=null,this.vnode=i,this.binding=r,this.options={},this.lazy=o,this._queue=[],this.update({el:n,binding:r})}return y(e,[{key:\"update\",value:function(e){var t=this,n=e.el,r=e.binding;this.el=n,this.options=_({},M,r.value),this.getImgs().forEach(function(e){t.lazy.add(e,_({},t.binding,{value:{src:e.dataset.src,error:e.dataset.error,loading:e.dataset.loading}}),t.vnode)})}},{key:\"getImgs\",value:function(){return f(this.el.querySelectorAll(this.options.selector))}},{key:\"clear\",value:function(){var e=this;this.getImgs().forEach(function(t){return e.lazy.remove(t)}),this.vnode=null,this.binding=null,this.lazy=null}}]),e}();return{install:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=D(e),r=new n(t),i=new V({lazy:r}),o=\"2\"===e.version.split(\".\")[0];e.prototype.$Lazyload=r,t.lazyComponent&&e.component(\"lazy-component\",B(r)),o?(e.directive(\"lazy\",{bind:r.add.bind(r),update:r.update.bind(r),componentUpdated:r.lazyLoadHandler.bind(r),unbind:r.remove.bind(r)}),e.directive(\"lazy-container\",{bind:i.bind.bind(i),update:i.update.bind(i),unbind:i.unbind.bind(i)})):(e.directive(\"lazy\",{bind:r.lazyLoadHandler.bind(r),update:function(e,t){_(this.vm.$refs,this.vm.$els),r.add(this.el,{modifiers:this.modifiers||{},arg:this.arg,value:e,oldValue:t},{context:this.vm})},unbind:function(){r.remove(this.el)}}),e.directive(\"lazy-container\",{update:function(e,t){i.update(this.el,{modifiers:this.modifiers||{},arg:this.arg,value:e,oldValue:t},{context:this.vm})},unbind:function(){i.unbind(this.el)}}))}}});\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","module.exports = false;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","export default {\n name: '姓名',\n tel: '电话',\n save: '保存',\n confirm: '确认',\n cancel: '取消',\n \"delete\": '删除',\n complete: '完成',\n loading: '加载中...',\n telEmpty: '请填写电话',\n nameEmpty: '请填写姓名',\n confirmDelete: '确定要删除么',\n telInvalid: '请填写正确的电话',\n vanContactCard: {\n addText: '添加联系人'\n },\n vanContactList: {\n addText: '新建联系人'\n },\n vanPagination: {\n prev: '上一页',\n next: '下一页'\n },\n vanPullRefresh: {\n pulling: '下拉即可刷新...',\n loosing: '释放即可刷新...'\n },\n vanSubmitBar: {\n label: '合计:'\n },\n vanCoupon: {\n valid: '有效期',\n unlimited: '无使用门槛',\n discount: function discount(_discount) {\n return _discount + \"\\u6298\";\n },\n condition: function condition(_condition) {\n return \"\\u6EE1\" + _condition + \"\\u5143\\u53EF\\u7528\";\n }\n },\n vanCouponCell: {\n title: '优惠券',\n tips: '使用优惠',\n count: function count(_count) {\n return _count + \"\\u5F20\\u53EF\\u7528\";\n }\n },\n vanCouponList: {\n empty: '暂无优惠券',\n exchange: '兑换',\n close: '不使用优惠',\n enable: '可使用优惠券',\n disabled: '不可使用优惠券',\n placeholder: '请输入优惠码'\n },\n vanAddressEdit: {\n area: '地区',\n postal: '邮政编码',\n areaEmpty: '请选择地区',\n addressEmpty: '请填写详细地址',\n postalEmpty: '邮政编码格式不正确',\n defaultAddress: '设为默认收货地址',\n telPlaceholder: '收货人手机号',\n namePlaceholder: '收货人姓名',\n areaPlaceholder: '选择省 / 市 / 区'\n },\n vanAddressEditDetail: {\n label: '详细地址',\n placeholder: '街道门牌、楼层房间号等信息'\n },\n vanAddressList: {\n add: '新增地址'\n }\n};","import Vue from 'vue';\nimport { deepAssign } from '../utils/deep-assign';\nimport defaultMessages from './lang/zh-CN';\nvar proto = Vue.prototype;\nvar defineReactive = Vue.util.defineReactive;\ndefineReactive(proto, '$vantLang', 'zh-CN');\ndefineReactive(proto, '$vantMessages', {\n 'zh-CN': defaultMessages\n});\nexport default {\n messages: function messages() {\n return proto.$vantMessages[proto.$vantLang];\n },\n use: function use(lang, messages) {\n var _this$add;\n\n proto.$vantLang = lang;\n this.add((_this$add = {}, _this$add[lang] = messages, _this$add));\n },\n add: function add(messages) {\n if (messages === void 0) {\n messages = {};\n }\n\n deepAssign(proto.$vantMessages, messages);\n }\n};","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaults = {\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n\n if (isArray(obj)) {\n pushToArray(values, stringify(\n obj[key],\n generateArrayPrefix(prefix, key),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n } else {\n pushToArray(values, stringify(\n obj[key],\n prefix + (allowDots ? '.' + key : '[' + key + ']'),\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.encoder !== null && typeof options.encoder !== 'undefined' && typeof options.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;\n var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;\n var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;\n var sort = typeof options.sort === 'function' ? options.sort : null;\n var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;\n var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;\n var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;\n if (typeof options.format === 'undefined') {\n options.format = formats['default'];\n } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n var formatter = formats.formatters[options.format];\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (options.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (sort) {\n objKeys.sort(sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encode ? encoder : null,\n filter,\n sort,\n allowDots,\n serializeDate,\n formatter,\n encodeValuesOnly\n ));\n }\n\n var joined = keys.join(delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","exports.f = {}.propertyIsEnumerable;\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","(function() {\n var crypt = require('crypt'),\n utf8 = require('charenc').utf8,\n bin = require('charenc').bin,\n\n // The core\n sha1 = function (message) {\n // Convert to byte array\n if (message.constructor == String)\n message = utf8.stringToBytes(message);\n else if (typeof Buffer !== 'undefined' && typeof Buffer.isBuffer == 'function' && Buffer.isBuffer(message))\n message = Array.prototype.slice.call(message, 0);\n else if (!Array.isArray(message))\n message = message.toString();\n\n // otherwise assume byte array\n\n var m = crypt.bytesToWords(message),\n l = message.length * 8,\n w = [],\n H0 = 1732584193,\n H1 = -271733879,\n H2 = -1732584194,\n H3 = 271733878,\n H4 = -1009589776;\n\n // Padding\n m[l >> 5] |= 0x80 << (24 - l % 32);\n m[((l + 64 >>> 9) << 4) + 15] = l;\n\n for (var i = 0; i < m.length; i += 16) {\n var a = H0,\n b = H1,\n c = H2,\n d = H3,\n e = H4;\n\n for (var j = 0; j < 80; j++) {\n\n if (j < 16)\n w[j] = m[i + j];\n else {\n var n = w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16];\n w[j] = (n << 1) | (n >>> 31);\n }\n\n var t = ((H0 << 5) | (H0 >>> 27)) + H4 + (w[j] >>> 0) + (\n j < 20 ? (H1 & H2 | ~H1 & H3) + 1518500249 :\n j < 40 ? (H1 ^ H2 ^ H3) + 1859775393 :\n j < 60 ? (H1 & H2 | H1 & H3 | H2 & H3) - 1894007588 :\n (H1 ^ H2 ^ H3) - 899497514);\n\n H4 = H3;\n H3 = H2;\n H2 = (H1 << 30) | (H1 >>> 2);\n H1 = H0;\n H0 = t;\n }\n\n H0 += a;\n H1 += b;\n H2 += c;\n H3 += d;\n H4 += e;\n }\n\n return [H0, H1, H2, H3, H4];\n },\n\n // Public API\n api = function (message, options) {\n var digestbytes = crypt.wordsToBytes(sha1(message));\n return options && options.asBytes ? digestbytes :\n options && options.asString ? bin.bytesToString(digestbytes) :\n crypt.bytesToHex(digestbytes);\n };\n\n api._blocksize = 16;\n api._digestsize = 20;\n\n module.exports = api;\n})();\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","module.exports = {};\n","/**\n * requestAnimationFrame polyfill\n */\nimport { isServer } from './index';\nvar prev = Date.now();\n/* istanbul ignore next */\n\nfunction fallback(fn) {\n var curr = Date.now();\n var ms = Math.max(0, 16 - (curr - prev));\n var id = setTimeout(fn, ms);\n prev = curr + ms;\n return id;\n}\n/* istanbul ignore next */\n\n\nvar root = isServer ? global : window;\n/* istanbul ignore next */\n\nvar iRaf = root.requestAnimationFrame || fallback;\n/* istanbul ignore next */\n\nvar iCancel = root.cancelAnimationFrame || root.clearTimeout;\nexport function raf(fn) {\n return iRaf.call(root, fn);\n}\nexport function cancel(id) {\n iCancel.call(root, id);\n}","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per GeneratorResume behavior specified since ES2015:\n // ES2015 spec, step 3: https://262.ecma-international.org/6.0/#sec-generatorresume\n // Latest spec, step 2: https://tc39.es/ecma262/#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next method, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable != null) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n throw new TypeError(typeof iterable + \" is not iterable\");\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n parameterLimit: 1000,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n\n for (var i = 0; i < parts.length; ++i) {\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder);\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder);\n val = options.decoder(part.slice(pos + 1), defaults.decoder);\n }\n if (has.call(obj, key)) {\n obj[key] = [].concat(obj[key]).concat(val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options) {\n var leaf = val;\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys\n // that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while ((segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options);\n};\n\nmodule.exports = function (str, opts) {\n var options = opts ? utils.assign({}, opts) : {};\n\n if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;\n options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;\n options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;\n options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;\n options.parseArrays = options.parseArrays !== false;\n options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;\n options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;\n options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;\n options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;\n options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;\n options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options);\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","/**\n * bem helper\n * b() // 'button'\n * b('text') // 'button__text'\n * b({ disabled }) // 'button button--disabled'\n * b('text', { disabled }) // 'button__text button__text--disabled'\n * b(['disabled', 'primary']) // 'button button--disabled button--primary'\n */\nvar ELEMENT = '__';\nvar MODS = '--';\n\nfunction join(name, el, symbol) {\n return el ? name + symbol + el : name;\n}\n\nfunction prefix(name, mods) {\n if (typeof mods === 'string') {\n return join(name, mods, MODS);\n }\n\n if (Array.isArray(mods)) {\n return mods.map(function (item) {\n return prefix(name, item);\n });\n }\n\n var ret = {};\n\n if (mods) {\n Object.keys(mods).forEach(function (key) {\n ret[name + MODS + key] = mods[key];\n });\n }\n\n return ret;\n}\n\nexport var useBEM = function useBEM(name) {\n return function (el, mods) {\n if (el && typeof el !== 'string') {\n mods = el;\n el = '';\n }\n\n el = join(name, el, ELEMENT);\n return mods ? [el, prefix(el, mods)] : el;\n };\n};","/**\n * Use scopedSlots in Vue 2.6+\n * downgrade to slots in lower version\n */\nexport var SlotsMixin = {\n methods: {\n slots: function slots(name, props) {\n if (name === void 0) {\n name = 'default';\n }\n\n var $slots = this.$slots,\n $scopedSlots = this.$scopedSlots;\n\n if ($scopedSlots[name]) {\n return $scopedSlots[name](props);\n }\n\n return $slots[name];\n }\n }\n};","/**\n * Create a basic component with common options\n */\nimport '../../locale';\nimport { camelize } from '..';\nimport { SlotsMixin } from '../../mixins/slots';\nimport Vue from 'vue';\nvar arrayProp = {\n type: Array,\n \"default\": function _default() {\n return [];\n }\n};\nvar numberProp = {\n type: Number,\n \"default\": 0\n};\n\nfunction defaultProps(props) {\n Object.keys(props).forEach(function (key) {\n if (props[key] === Array) {\n props[key] = arrayProp;\n } else if (props[key] === Number) {\n props[key] = numberProp;\n }\n });\n}\n\nfunction install(Vue) {\n var name = this.name;\n Vue.component(name, this);\n Vue.component(camelize(\"-\" + name), this);\n} // unify slots & scopedSlots\n\n\nexport function unifySlots(context) {\n // use data.scopedSlots in lower Vue version\n var scopedSlots = context.scopedSlots || context.data.scopedSlots || {};\n var slots = context.slots();\n Object.keys(slots).forEach(function (key) {\n if (!scopedSlots[key]) {\n scopedSlots[key] = function () {\n return slots[key];\n };\n }\n });\n return scopedSlots;\n} // should be removed after Vue 3\n\nfunction transformFunctionComponent(pure) {\n return {\n functional: true,\n props: pure.props,\n model: pure.model,\n render: function render(h, context) {\n return pure(h, context.props, unifySlots(context), context);\n }\n };\n}\n\nexport var useSFC = function useSFC(name) {\n return function (sfc) {\n if (typeof sfc === 'function') {\n sfc = transformFunctionComponent(sfc);\n }\n\n if (!sfc.functional) {\n sfc.mixins = sfc.mixins || [];\n sfc.mixins.push(SlotsMixin);\n }\n\n if (sfc.props) {\n defaultProps(sfc.props);\n }\n\n sfc.name = name;\n sfc.install = install;\n return sfc;\n };\n};","import { get, camelize } from '..';\nimport locale from '../../locale';\nexport var useI18N = function useI18N(name) {\n var prefix = camelize(name) + '.';\n return function (path) {\n var message = get(locale.messages(), prefix + path) || get(locale.messages(), path);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return typeof message === 'function' ? message.apply(void 0, args) : message;\n };\n};","import { useBEM } from './bem';\nimport { useSFC } from './sfc';\nimport { useI18N } from './i18n';\nexport function use(name) {\n name = 'van-' + name;\n return [useSFC(name), useBEM(name), useI18N(name)];\n}","import Vue from 'vue';\nexport { use } from './use';\nexport var isServer = Vue.prototype.$isServer;\nexport function noop() {}\nexport function isDef(value) {\n return value !== undefined && value !== null;\n}\nexport function isObj(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\nexport function get(object, path) {\n var keys = path.split('.');\n var result = object;\n keys.forEach(function (key) {\n result = isDef(result[key]) ? result[key] : '';\n });\n return result;\n}\nvar camelizeRE = /-(\\w)/g;\nexport function camelize(str) {\n return str.replace(camelizeRE, function (_, c) {\n return c.toUpperCase();\n });\n}\nexport function isAndroid() {\n /* istanbul ignore next */\n return isServer ? false : /android/.test(navigator.userAgent.toLowerCase());\n}\nexport function isIOS() {\n /* istanbul ignore next */\n return isServer ? false : /ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase());\n}\nexport function range(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nexport function isInDocument(element) {\n return document.body.contains(element);\n}","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nmodule.exports = {\n 'default': 'RFC3986',\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nvar inheritKey = ['ref', 'style', 'class', 'attrs', 'nativeOn', 'directives', 'staticClass', 'staticStyle'];\nvar mapInheritKey = {\n nativeOn: 'on'\n}; // inherit partial context, map nativeOn to on\n\nexport function inherit(context, inheritListeners) {\n var result = inheritKey.reduce(function (obj, key) {\n if (context.data[key]) {\n obj[mapInheritKey[key] || key] = context.data[key];\n }\n\n return obj;\n }, {});\n\n if (inheritListeners) {\n result.on = result.on || {};\n\n _extends(result.on, context.data.on);\n }\n\n return result;\n} // emit event\n\nexport function emit(context, eventName) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var listeners = context.listeners[eventName];\n\n if (listeners) {\n if (Array.isArray(listeners)) {\n listeners.forEach(function (listener) {\n listener.apply(void 0, args);\n });\n } else {\n listeners.apply(void 0, args);\n }\n }\n} // mount functional component\n\nexport function mount(Component, data) {\n var instance = new Vue({\n el: document.createElement('div'),\n props: Component.props,\n render: function render(h) {\n return h(Component, _extends({\n props: this.$props\n }, data));\n }\n });\n document.body.appendChild(instance.$el);\n return instance;\n}","export var context = {\n zIndex: 2000,\n lockCount: 0,\n stack: [],\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n};","var MIN_DISTANCE = 10;\n\nfunction getDirection(x, y) {\n if (x > y && x > MIN_DISTANCE) {\n return 'horizontal';\n }\n\n if (y > x && y > MIN_DISTANCE) {\n return 'vertical';\n }\n\n return '';\n}\n\nexport var TouchMixin = {\n data: function data() {\n return {\n direction: ''\n };\n },\n methods: {\n touchStart: function touchStart(event) {\n this.resetTouchStatus();\n this.startX = event.touches[0].clientX;\n this.startY = event.touches[0].clientY;\n },\n touchMove: function touchMove(event) {\n var touch = event.touches[0];\n this.deltaX = touch.clientX - this.startX;\n this.deltaY = touch.clientY - this.startY;\n this.offsetX = Math.abs(this.deltaX);\n this.offsetY = Math.abs(this.deltaY);\n this.direction = this.direction || getDirection(this.offsetX, this.offsetY);\n },\n resetTouchStatus: function resetTouchStatus() {\n this.direction = '';\n this.deltaX = 0;\n this.deltaY = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n }\n }\n};","/* eslint-disable no-empty */\n\n/* eslint-disable getter-return */\n\n/* eslint-disable import/no-mutable-exports */\nimport { isServer } from '.';\nexport var supportsPassive = false;\n\nif (!isServer) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n get: function get() {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n });\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\nexport function on(target, event, handler, passive) {\n if (passive === void 0) {\n passive = false;\n }\n\n if (!isServer) {\n target.addEventListener(event, handler, supportsPassive ? {\n capture: false,\n passive: passive\n } : false);\n }\n}\nexport function off(target, event, handler) {\n if (!isServer) {\n target.removeEventListener(event, handler);\n }\n}\nexport function stopPropagation(event) {\n event.stopPropagation();\n}\nexport function preventDefault(event, isStopPropagation) {\n /* istanbul ignore else */\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n\n if (isStopPropagation) {\n stopPropagation(event);\n }\n}","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { preventDefault } from '../utils/event'; // Types\n\nvar _use = use('overlay'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Overlay(h, props, slots, ctx) {\n var style = _extends({\n zIndex: props.zIndex\n }, props.customStyle);\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [h(\"div\", _mergeJSXProps([{\n \"directives\": [{\n name: \"show\",\n value: props.visible\n }],\n \"style\": style,\n \"class\": [bem(), props.className],\n \"on\": {\n \"touchmove\": function touchmove(event) {\n preventDefault(event, true);\n }\n }\n }, inherit(ctx, true)]))]);\n}\n\nOverlay.props = {\n zIndex: Number,\n className: null,\n visible: Boolean,\n customStyle: Object\n};\nexport default sfc(Overlay);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Overlay from '../../overlay';\nimport { context } from './context';\nimport { mount } from '../../utils/functional';\nvar defaultConfig = {\n className: '',\n customStyle: {}\n};\nvar overlay; // close popup when click overlay && closeOnClickOverlay is true\n\nfunction onClickOverlay() {\n if (context.top) {\n var vm = context.top.vm;\n vm.$emit('click-overlay');\n\n if (vm.closeOnClickOverlay) {\n if (vm.onClickOverlay) {\n vm.onClickOverlay();\n } else {\n vm.close();\n }\n }\n }\n}\n\nexport function updateOverlay() {\n if (!overlay) {\n overlay = mount(Overlay, {\n on: {\n click: onClickOverlay\n }\n });\n }\n\n if (context.top) {\n var _context$top = context.top,\n vm = _context$top.vm,\n config = _context$top.config;\n var el = vm.$el;\n var target = el && el.parentNode ? el.parentNode : document.body;\n\n if (target) {\n target.appendChild(overlay.$el);\n }\n\n _extends(overlay, defaultConfig, config, {\n visible: true\n });\n } else {\n overlay.visible = false;\n }\n}\nexport function openOverlay(vm, config) {\n if (!context.stack.some(function (item) {\n return item.vm === vm;\n })) {\n context.stack.push({\n vm: vm,\n config: config\n });\n updateOverlay();\n }\n}\nexport function closeOverlay(vm) {\n var stack = context.stack;\n\n if (stack.length) {\n if (context.top.vm === vm) {\n stack.pop();\n updateOverlay();\n } else {\n context.stack = stack.filter(function (item) {\n return item.vm !== vm;\n });\n }\n }\n}","// get nearest scroll element\n// http://w3help.org/zh-cn/causes/SD9013\n// http://stackoverflow.com/questions/17016740/onscroll-function-is-not-working-for-chrome\nexport function getScrollEventTarget(element, rootParent) {\n if (rootParent === void 0) {\n rootParent = window;\n }\n\n var node = element;\n\n while (node && node.tagName !== 'HTML' && node.tagName !== 'BODY' && node.nodeType === 1 && node !== rootParent) {\n var _window$getComputedSt = window.getComputedStyle(node),\n overflowY = _window$getComputedSt.overflowY;\n\n if (overflowY === 'scroll' || overflowY === 'auto') {\n return node;\n }\n\n node = node.parentNode;\n }\n\n return rootParent;\n}\nexport function getScrollTop(element) {\n return 'scrollTop' in element ? element.scrollTop : element.pageYOffset;\n}\nexport function setScrollTop(element, value) {\n 'scrollTop' in element ? element.scrollTop = value : element.scrollTo(element.scrollX, value);\n}\nexport function getRootScrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n} // get distance from element top to page top\n\nexport function getElementTop(element) {\n return (element === window ? 0 : element.getBoundingClientRect().top) + getScrollTop(window);\n}\nexport function getVisibleHeight(element) {\n return element === window ? element.innerHeight : element.getBoundingClientRect().height;\n}","import { context } from './context';\nimport { TouchMixin } from '../touch';\nimport { on, off, preventDefault } from '../../utils/event';\nimport { openOverlay, closeOverlay, updateOverlay } from './overlay';\nimport { getScrollEventTarget } from '../../utils/scroll';\nexport var PopupMixin = {\n mixins: [TouchMixin],\n props: {\n // whether to show popup\n value: Boolean,\n // whether to show overlay\n overlay: Boolean,\n // overlay custom style\n overlayStyle: Object,\n // overlay custom class name\n overlayClass: String,\n // whether to close popup when click overlay\n closeOnClickOverlay: Boolean,\n // z-index\n zIndex: [String, Number],\n // return the mount node for popup\n getContainer: [String, Function],\n // prevent body scroll\n lockScroll: {\n type: Boolean,\n \"default\": true\n },\n // whether to lazy render\n lazyRender: {\n type: Boolean,\n \"default\": true\n }\n },\n data: function data() {\n return {\n inited: this.value\n };\n },\n computed: {\n shouldRender: function shouldRender() {\n return this.inited || !this.lazyRender;\n }\n },\n watch: {\n value: function value(val) {\n var type = val ? 'open' : 'close';\n this.inited = this.inited || this.value;\n this[type]();\n this.$emit(type);\n },\n getContainer: function getContainer() {\n this.move();\n },\n overlay: function overlay() {\n this.renderOverlay();\n }\n },\n mounted: function mounted() {\n if (this.getContainer) {\n this.move();\n }\n\n if (this.value) {\n this.open();\n }\n },\n activated: function activated() {\n /* istanbul ignore next */\n if (this.value) {\n this.open();\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.close();\n\n if (this.getContainer && this.$parent && this.$parent.$el) {\n this.$parent.$el.appendChild(this.$el);\n }\n },\n deactivated: function deactivated() {\n /* istanbul ignore next */\n this.close();\n },\n methods: {\n open: function open() {\n /* istanbul ignore next */\n if (this.$isServer || this.opened) {\n return;\n } // cover default zIndex\n\n\n if (this.zIndex !== undefined) {\n context.zIndex = this.zIndex;\n }\n\n this.opened = true;\n this.renderOverlay();\n\n if (this.lockScroll) {\n on(document, 'touchstart', this.touchStart);\n on(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.add('van-overflow-hidden');\n }\n\n context.lockCount++;\n }\n },\n close: function close() {\n if (!this.opened) {\n return;\n }\n\n if (this.lockScroll) {\n context.lockCount--;\n off(document, 'touchstart', this.touchStart);\n off(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.remove('van-overflow-hidden');\n }\n }\n\n this.opened = false;\n closeOverlay(this);\n this.$emit('input', false);\n },\n move: function move() {\n var container;\n var getContainer = this.getContainer;\n\n if (getContainer) {\n container = typeof getContainer === 'string' ? document.querySelector(getContainer) : getContainer();\n } else if (this.$parent) {\n container = this.$parent.$el;\n }\n\n if (container && container !== this.$el.parentNode) {\n container.appendChild(this.$el);\n }\n\n if (this.overlay) {\n updateOverlay();\n }\n },\n onTouchMove: function onTouchMove(event) {\n this.touchMove(event);\n var direction = this.deltaY > 0 ? '10' : '01';\n var el = getScrollEventTarget(event.target, this.$el);\n var scrollHeight = el.scrollHeight,\n offsetHeight = el.offsetHeight,\n scrollTop = el.scrollTop;\n var status = '11';\n /* istanbul ignore next */\n\n if (scrollTop === 0) {\n status = offsetHeight >= scrollHeight ? '00' : '01';\n } else if (scrollTop + offsetHeight >= scrollHeight) {\n status = '10';\n }\n /* istanbul ignore next */\n\n\n if (status !== '11' && this.direction === 'vertical' && !(parseInt(status, 2) & parseInt(direction, 2))) {\n preventDefault(event, true);\n }\n },\n renderOverlay: function renderOverlay() {\n if (this.$isServer || !this.value) {\n return;\n }\n\n if (this.overlay) {\n openOverlay(this, {\n zIndex: context.zIndex++,\n className: this.overlayClass,\n customStyle: this.overlayStyle\n });\n } else {\n closeOverlay(this);\n }\n\n this.updateZIndex();\n },\n updateZIndex: function updateZIndex() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.$el.style.zIndex = context.zIndex++;\n });\n }\n }\n};","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use, isDef } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _use = use('info'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Info(h, props, slots, ctx) {\n if (!isDef(props.info) || props.info === '') {\n return;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx, true)]), [props.info]);\n}\n\nInfo.props = {\n info: [String, Number]\n};\nexport default sfc(Info);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional';\nimport Info from '../info'; // Types\n\nvar _use = use('icon'),\n sfc = _use[0];\n\nfunction isImage(name) {\n return name ? name.indexOf('/') !== -1 : false;\n}\n\nfunction Icon(h, props, slots, ctx) {\n var urlIcon = isImage(props.name);\n return h(props.tag, _mergeJSXProps([{\n \"class\": [props.classPrefix, urlIcon ? 'van-icon--image' : props.classPrefix + \"-\" + props.name],\n \"style\": {\n color: props.color,\n fontSize: props.size\n }\n }, inherit(ctx, true)]), [slots[\"default\"] && slots[\"default\"](), urlIcon && h(\"img\", {\n \"attrs\": {\n \"src\": props.name\n }\n }), h(Info, {\n \"attrs\": {\n \"info\": props.info\n }\n })]);\n}\n\nIcon.props = {\n name: String,\n size: String,\n color: String,\n info: [String, Number],\n tag: {\n type: String,\n \"default\": 'i'\n },\n classPrefix: {\n type: String,\n \"default\": 'van-icon'\n }\n};\nexport default sfc(Icon);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _use = use('loading'),\n sfc = _use[0],\n bem = _use[1];\n\nvar DEFAULT_COLOR = '#c9c9c9';\n\nfunction Loading(h, props, slots, ctx) {\n var color = props.color,\n size = props.size,\n type = props.type;\n var colorType = color === 'white' || color === 'black' ? color : '';\n var style = {\n color: color === 'black' ? DEFAULT_COLOR : color,\n width: size,\n height: size\n };\n var Spin = [];\n\n if (type === 'spinner') {\n for (var i = 0; i < 12; i++) {\n Spin.push(h(\"i\"));\n }\n }\n\n var Circular = type === 'circular' && h(\"svg\", {\n \"class\": bem('circular'),\n \"attrs\": {\n \"viewBox\": \"25 25 50 50\"\n }\n }, [h(\"circle\", {\n \"attrs\": {\n \"cx\": \"50\",\n \"cy\": \"50\",\n \"r\": \"20\",\n \"fill\": \"none\"\n }\n })]);\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem([type, colorType]),\n \"style\": style\n }, inherit(ctx, true)]), [h(\"span\", {\n \"class\": bem('spinner', type)\n }, [Spin, Circular])]);\n}\n\nLoading.props = {\n size: String,\n type: {\n type: String,\n \"default\": 'circular'\n },\n color: {\n type: String,\n \"default\": DEFAULT_COLOR\n }\n};\nexport default sfc(Loading);","import { use } from '../utils';\nimport { PopupMixin } from '../mixins/popup';\n\nvar _use = use('popup'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n mixins: [PopupMixin],\n props: {\n position: String,\n transition: String,\n overlay: {\n type: Boolean,\n \"default\": true\n },\n closeOnClickOverlay: {\n type: Boolean,\n \"default\": true\n }\n },\n render: function render(h) {\n var _this = this,\n _bem;\n\n if (!this.shouldRender) {\n return;\n }\n\n var position = this.position;\n\n var emit = function emit(event) {\n return function () {\n return _this.$emit(event);\n };\n };\n\n var transitionName = this.transition || (position ? \"van-popup-slide-\" + position : 'van-fade');\n return h(\"transition\", {\n \"attrs\": {\n \"name\": transitionName\n },\n \"on\": {\n \"afterEnter\": emit('opened'),\n \"afterLeave\": emit('closed')\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"class\": bem((_bem = {}, _bem[position] = position, _bem))\n }, [this.slots()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { PopupMixin } from '../mixins/popup';\nimport Icon from '../icon';\nimport Loading from '../loading';\nimport Popup from '../popup'; // Types\n\nvar _use = use('actionsheet'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Actionsheet(h, props, slots, ctx) {\n var title = props.title,\n cancelText = props.cancelText;\n\n var onCancel = function onCancel() {\n emit(ctx, 'input', false);\n emit(ctx, 'cancel');\n };\n\n var Header = function Header() {\n return h(\"div\", {\n \"class\": [bem('header'), 'van-hairline--top-bottom']\n }, [title, h(Icon, {\n \"attrs\": {\n \"name\": \"close\"\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": onCancel\n }\n })]);\n };\n\n var Option = function Option(item, index) {\n return h(\"div\", {\n \"class\": [bem('item', {\n disabled: item.disabled || item.loading\n }), item.className, 'van-hairline--top'],\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n\n if (!item.disabled && !item.loading) {\n if (item.callback) {\n item.callback(item);\n }\n\n emit(ctx, 'select', item, index);\n }\n }\n }\n }, [item.loading ? h(Loading, {\n \"class\": bem('loading'),\n \"attrs\": {\n \"size\": \"20px\"\n }\n }) : [h(\"span\", {\n \"class\": bem('name')\n }, [item.name]), item.subname && h(\"span\", {\n \"class\": bem('subname')\n }, [item.subname])]]);\n };\n\n return h(Popup, _mergeJSXProps([{\n \"class\": bem({\n 'safe-area-inset-bottom': props.safeAreaInsetBottom\n }),\n \"attrs\": {\n \"value\": props.value,\n \"position\": \"bottom\",\n \"overlay\": props.overlay,\n \"lazyRender\": props.lazyRender,\n \"getContainer\": props.getContainer,\n \"closeOnClickOverlay\": props.closeOnClickOverlay\n },\n \"on\": {\n \"input\": function input(value) {\n emit(ctx, 'input', value);\n }\n }\n }, inherit(ctx)]), [title ? Header() : props.actions.map(Option), slots[\"default\"] && h(\"div\", {\n \"class\": bem('content')\n }, [slots[\"default\"]()]), cancelText && h(\"div\", {\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": onCancel\n }\n }, [cancelText])]);\n}\n\nActionsheet.props = _extends({}, PopupMixin.props, {\n title: String,\n actions: Array,\n cancelText: String,\n safeAreaInsetBottom: Boolean,\n overlay: {\n type: Boolean,\n \"default\": true\n },\n closeOnClickOverlay: {\n type: Boolean,\n \"default\": true\n }\n});\nexport default sfc(Actionsheet);","export function isMobile(value) {\n value = value.replace(/[^-|\\d]/g, '');\n return /^((\\+86)|(86))?(1)\\d{10}$/.test(value) || /^0[0-9-]{10,13}$/.test(value);\n}","import { deepAssign } from './deep-assign';\nexport function deepClone(obj) {\n if (Array.isArray(obj)) {\n return obj.map(function (item) {\n return deepClone(item);\n });\n }\n\n if (typeof obj === 'object') {\n return deepAssign({}, obj);\n }\n\n return obj;\n}","export var pickerProps = {\n title: String,\n loading: Boolean,\n showToolbar: Boolean,\n cancelButtonText: String,\n confirmButtonText: String,\n visibleItemCount: {\n type: Number,\n \"default\": 5\n },\n itemHeight: {\n type: Number,\n \"default\": 44\n }\n};","import { deepClone } from '../utils/deep-clone';\nimport { use, isObj, range } from '../utils';\nimport { preventDefault } from '../utils/event';\nvar DEFAULT_DURATION = 200;\n\nvar _use = use('picker-column'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n valueKey: String,\n className: String,\n itemHeight: Number,\n defaultIndex: Number,\n initialOptions: Array,\n visibleItemCount: Number\n },\n data: function data() {\n return {\n startY: 0,\n offset: 0,\n duration: 0,\n startOffset: 0,\n options: deepClone(this.initialOptions),\n currentIndex: this.defaultIndex\n };\n },\n created: function created() {\n this.$parent.children && this.$parent.children.push(this);\n this.setIndex(this.currentIndex);\n },\n destroyed: function destroyed() {\n var children = this.$parent.children;\n children && children.splice(children.indexOf(this), 1);\n },\n watch: {\n defaultIndex: function defaultIndex() {\n this.setIndex(this.defaultIndex);\n }\n },\n computed: {\n count: function count() {\n return this.options.length;\n }\n },\n methods: {\n onTouchStart: function onTouchStart(event) {\n this.startY = event.touches[0].clientY;\n this.startOffset = this.offset;\n this.duration = 0;\n },\n onTouchMove: function onTouchMove(event) {\n preventDefault(event);\n var deltaY = event.touches[0].clientY - this.startY;\n this.offset = range(this.startOffset + deltaY, -(this.count * this.itemHeight), this.itemHeight);\n },\n onTouchEnd: function onTouchEnd() {\n if (this.offset !== this.startOffset) {\n this.duration = DEFAULT_DURATION;\n var index = range(Math.round(-this.offset / this.itemHeight), 0, this.count - 1);\n this.setIndex(index, true);\n }\n },\n adjustIndex: function adjustIndex(index) {\n index = range(index, 0, this.count);\n\n for (var i = index; i < this.count; i++) {\n if (!this.isDisabled(this.options[i])) return i;\n }\n\n for (var _i = index - 1; _i >= 0; _i--) {\n if (!this.isDisabled(this.options[_i])) return _i;\n }\n },\n isDisabled: function isDisabled(option) {\n return isObj(option) && option.disabled;\n },\n getOptionText: function getOptionText(option) {\n return isObj(option) && this.valueKey in option ? option[this.valueKey] : option;\n },\n setIndex: function setIndex(index, userAction) {\n index = this.adjustIndex(index) || 0;\n this.offset = -index * this.itemHeight;\n\n if (index !== this.currentIndex) {\n this.currentIndex = index;\n userAction && this.$emit('change', index);\n }\n },\n setValue: function setValue(value) {\n var options = this.options;\n\n for (var i = 0; i < options.length; i++) {\n if (this.getOptionText(options[i]) === value) {\n return this.setIndex(i);\n }\n }\n },\n getValue: function getValue() {\n return this.options[this.currentIndex];\n }\n },\n render: function render(h) {\n var _this = this;\n\n var itemHeight = this.itemHeight,\n visibleItemCount = this.visibleItemCount;\n var columnStyle = {\n height: itemHeight * visibleItemCount + 'px'\n };\n var baseOffset = itemHeight * (visibleItemCount - 1) / 2;\n var wrapperStyle = {\n transition: this.duration + \"ms\",\n transform: \"translate3d(0, \" + (this.offset + baseOffset) + \"px, 0)\",\n lineHeight: itemHeight + \"px\"\n };\n var optionStyle = {\n height: itemHeight + \"px\"\n };\n return h(\"div\", {\n \"style\": columnStyle,\n \"class\": [bem(), this.className],\n \"on\": {\n \"touchstart\": this.onTouchStart,\n \"touchmove\": this.onTouchMove,\n \"touchend\": this.onTouchEnd,\n \"touchcancel\": this.onTouchEnd\n }\n }, [h(\"ul\", {\n \"style\": wrapperStyle\n }, [this.options.map(function (option, index) {\n return h(\"li\", {\n \"style\": optionStyle,\n \"class\": ['van-ellipsis', bem('item', {\n disabled: _this.isDisabled(option),\n selected: index === _this.currentIndex\n })],\n \"domProps\": {\n \"innerHTML\": _this.getOptionText(option)\n },\n \"on\": {\n \"click\": function click() {\n _this.setIndex(index, true);\n }\n }\n });\n })])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\nimport { preventDefault } from '../utils/event';\nimport { deepClone } from '../utils/deep-clone';\nimport { pickerProps } from './shared';\nimport Loading from '../loading';\nimport PickerColumn from './PickerColumn';\n\nvar _use = use('picker'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nexport default sfc({\n props: _extends({}, pickerProps, {\n columns: Array,\n defaultIndex: {\n type: Number,\n \"default\": 0\n },\n valueKey: {\n type: String,\n \"default\": 'text'\n }\n }),\n data: function data() {\n return {\n children: []\n };\n },\n computed: {\n simple: function simple() {\n return this.columns.length && !this.columns[0].values;\n }\n },\n watch: {\n columns: function columns() {\n this.setColumns();\n }\n },\n methods: {\n setColumns: function setColumns() {\n var _this = this;\n\n var columns = this.simple ? [{\n values: this.columns\n }] : this.columns;\n columns.forEach(function (column, index) {\n _this.setColumnValues(index, deepClone(column.values));\n });\n },\n emit: function emit(event) {\n if (this.simple) {\n this.$emit(event, this.getColumnValue(0), this.getColumnIndex(0));\n } else {\n this.$emit(event, this.getValues(), this.getIndexes());\n }\n },\n onChange: function onChange(columnIndex) {\n if (this.simple) {\n this.$emit('change', this, this.getColumnValue(0), this.getColumnIndex(0));\n } else {\n this.$emit('change', this, this.getValues(), columnIndex);\n }\n },\n // get column instance by index\n getColumn: function getColumn(index) {\n return this.children[index];\n },\n // get column value by index\n getColumnValue: function getColumnValue(index) {\n var column = this.getColumn(index);\n return column && column.getValue();\n },\n // set column value by index\n setColumnValue: function setColumnValue(index, value) {\n var column = this.getColumn(index);\n column && column.setValue(value);\n },\n // get column option index by column index\n getColumnIndex: function getColumnIndex(columnIndex) {\n return (this.getColumn(columnIndex) || {}).currentIndex;\n },\n // set column option index by column index\n setColumnIndex: function setColumnIndex(columnIndex, optionIndex) {\n var column = this.getColumn(columnIndex);\n column && column.setIndex(optionIndex);\n },\n // get options of column by index\n getColumnValues: function getColumnValues(index) {\n return (this.children[index] || {}).options;\n },\n // set options of column by index\n setColumnValues: function setColumnValues(index, options) {\n var column = this.children[index];\n\n if (column && JSON.stringify(column.options) !== JSON.stringify(options)) {\n column.options = options;\n column.setIndex(0);\n }\n },\n // get values of all columns\n getValues: function getValues() {\n return this.children.map(function (child) {\n return child.getValue();\n });\n },\n // set values of all columns\n setValues: function setValues(values) {\n var _this2 = this;\n\n values.forEach(function (value, index) {\n _this2.setColumnValue(index, value);\n });\n },\n // get indexes of all columns\n getIndexes: function getIndexes() {\n return this.children.map(function (child) {\n return child.currentIndex;\n });\n },\n // set indexes of all columns\n setIndexes: function setIndexes(indexes) {\n var _this3 = this;\n\n indexes.forEach(function (optionIndex, columnIndex) {\n _this3.setColumnIndex(columnIndex, optionIndex);\n });\n },\n onConfirm: function onConfirm() {\n this.emit('confirm');\n },\n onCancel: function onCancel() {\n this.emit('cancel');\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var itemHeight = this.itemHeight;\n var columns = this.simple ? [this.columns] : this.columns;\n var frameStyle = {\n height: itemHeight + \"px\"\n };\n var columnsStyle = {\n height: itemHeight * this.visibleItemCount + \"px\"\n };\n var Toolbar = this.showToolbar && h(\"div\", {\n \"class\": ['van-hairline--top-bottom', bem('toolbar')]\n }, [this.slots() || [h(\"div\", {\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": this.onCancel\n }\n }, [this.cancelButtonText || t('cancel')]), this.slots('title') || this.title && h(\"div\", {\n \"class\": ['van-ellipsis', bem('title')]\n }, [this.title]), h(\"div\", {\n \"class\": bem('confirm'),\n \"on\": {\n \"click\": this.onConfirm\n }\n }, [this.confirmButtonText || t('confirm')])]]);\n return h(\"div\", {\n \"class\": bem()\n }, [Toolbar, this.loading ? h(\"div\", {\n \"class\": bem('loading')\n }, [h(Loading)]) : h(), h(\"div\", {\n \"class\": bem('columns'),\n \"style\": columnsStyle,\n \"on\": {\n \"touchmove\": preventDefault\n }\n }, [columns.map(function (item, index) {\n return h(PickerColumn, {\n \"attrs\": {\n \"valueKey\": _this4.valueKey,\n \"className\": item.className,\n \"itemHeight\": _this4.itemHeight,\n \"defaultIndex\": item.defaultIndex || _this4.defaultIndex,\n \"visibleItemCount\": _this4.visibleItemCount,\n \"initialOptions\": _this4.simple ? item : item.values\n },\n \"on\": {\n \"change\": function change() {\n _this4.onChange(index);\n }\n }\n });\n }), h(\"div\", {\n \"class\": ['van-hairline--top-bottom', bem('frame')],\n \"style\": frameStyle\n })])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\nimport Picker from '../picker';\nimport { pickerProps } from '../picker/shared';\n\nvar _use = use('area'),\n sfc = _use[0],\n bem = _use[1];\n\nvar COLUMNSPLACEHOLDERCODE = '000000';\nexport default sfc({\n props: _extends({}, pickerProps, {\n value: String,\n areaList: {\n type: Object,\n \"default\": function _default() {\n return {};\n }\n },\n columnsNum: {\n type: [String, Number],\n \"default\": 3\n },\n columnsPlaceholder: {\n type: Array,\n \"default\": function _default() {\n return [];\n }\n }\n }),\n data: function data() {\n return {\n code: this.value,\n columns: [{\n values: []\n }, {\n values: []\n }, {\n values: []\n }]\n };\n },\n computed: {\n province: function province() {\n return this.areaList.province_list || {};\n },\n city: function city() {\n return this.areaList.city_list || {};\n },\n county: function county() {\n return this.areaList.county_list || {};\n },\n displayColumns: function displayColumns() {\n return this.columns.slice(0, +this.columnsNum);\n },\n typeToColumnsPlaceholder: function typeToColumnsPlaceholder() {\n return {\n province: this.columnsPlaceholder[0] || '',\n city: this.columnsPlaceholder[1] || '',\n county: this.columnsPlaceholder[2] || ''\n };\n }\n },\n watch: {\n value: function value() {\n this.code = this.value;\n this.setValues();\n },\n areaList: {\n deep: true,\n handler: function handler() {\n this.setValues();\n }\n },\n columnsNum: function columnsNum() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.setValues();\n });\n }\n },\n mounted: function mounted() {\n this.setValues();\n },\n methods: {\n // get list by code\n getList: function getList(type, code) {\n var result = [];\n\n if (type !== 'province' && !code) {\n return result;\n }\n\n var list = this[type];\n result = Object.keys(list).map(function (listCode) {\n return {\n code: listCode,\n name: list[listCode]\n };\n });\n\n if (code) {\n // oversea code\n if (code[0] === '9' && type === 'city') {\n code = '9';\n }\n\n result = result.filter(function (item) {\n return item.code.indexOf(code) === 0;\n });\n }\n\n if (this.typeToColumnsPlaceholder[type] && result.length) {\n // set columns placeholder\n var codeFill = type === 'province' ? '' : type === 'city' ? COLUMNSPLACEHOLDERCODE.slice(2, 4) : COLUMNSPLACEHOLDERCODE.slice(4, 6);\n result.unshift({\n code: \"\" + code + codeFill,\n name: this.typeToColumnsPlaceholder[type]\n });\n }\n\n return result;\n },\n // get index by code\n getIndex: function getIndex(type, code) {\n var compareNum = type === 'province' ? 2 : type === 'city' ? 4 : 6;\n var list = this.getList(type, code.slice(0, compareNum - 2)); // oversea code\n\n if (code[0] === '9' && type === 'province') {\n compareNum = 1;\n }\n\n code = code.slice(0, compareNum);\n\n for (var i = 0; i < list.length; i++) {\n if (list[i].code.slice(0, compareNum) === code) {\n return i;\n }\n }\n\n return 0;\n },\n // parse output columns data\n parseOutputValues: function parseOutputValues(values) {\n var _this2 = this;\n\n return values.map(function (value, index) {\n if (value === void 0) {\n value = {};\n }\n\n value = JSON.parse(JSON.stringify(value));\n\n if (!value.code || value.name === _this2.columnsPlaceholder[index]) {\n value.code = '';\n value.name = '';\n }\n\n return value;\n });\n },\n onChange: function onChange(picker, values, index) {\n this.code = values[index].code;\n this.setValues();\n var getValues = picker.getValues();\n getValues = this.parseOutputValues(getValues);\n this.$emit('change', picker, getValues, index);\n },\n onConfirm: function onConfirm(values, index) {\n values = this.parseOutputValues(values);\n this.setValues();\n this.$emit('confirm', values, index);\n },\n setValues: function setValues() {\n var code = this.code;\n\n if (!code) {\n if (this.columnsPlaceholder.length) {\n code = COLUMNSPLACEHOLDERCODE;\n } else if (Object.keys(this.county)[0]) {\n code = Object.keys(this.county)[0];\n } else {\n code = '';\n }\n }\n\n var picker = this.$refs.picker;\n var province = this.getList('province');\n var city = this.getList('city', code.slice(0, 2));\n\n if (!picker) {\n return;\n }\n\n picker.setColumnValues(0, province);\n picker.setColumnValues(1, city);\n\n if (city.length && code.slice(2, 4) === '00') {\n code = city[0].code;\n }\n\n picker.setColumnValues(2, this.getList('county', code.slice(0, 4)));\n picker.setIndexes([this.getIndex('province', code), this.getIndex('city', code), this.getIndex('county', code)]);\n },\n getValues: function getValues() {\n var picker = this.$refs.picker;\n var getValues = picker ? picker.getValues() : [];\n getValues = this.parseOutputValues(getValues);\n return getValues.filter(function (value) {\n return !!value;\n });\n },\n getArea: function getArea() {\n var values = this.getValues();\n var area = {\n code: '',\n country: '',\n province: '',\n city: '',\n county: ''\n };\n\n if (!values.length) {\n return area;\n }\n\n var names = values.map(function (item) {\n return item.name;\n });\n var filterCodeValues = values.filter(function (value) {\n return !!value.code;\n });\n area.code = filterCodeValues.length ? filterCodeValues[filterCodeValues.length - 1].code : '';\n\n if (area.code[0] === '9') {\n area.country = names[1] || '';\n area.province = names[2] || '';\n } else {\n area.province = names[0] || '';\n area.city = names[1] || '';\n area.county = names[2] || '';\n }\n\n return area;\n },\n reset: function reset() {\n this.code = '';\n this.setValues();\n }\n },\n render: function render(h) {\n var on = _extends({}, this.$listeners, {\n change: this.onChange,\n confirm: this.onConfirm\n });\n\n return h(Picker, {\n \"ref\": \"picker\",\n \"class\": bem(),\n \"attrs\": {\n \"showToolbar\": true,\n \"valueKey\": \"name\",\n \"title\": this.title,\n \"loading\": this.loading,\n \"columns\": this.displayColumns,\n \"itemHeight\": this.itemHeight,\n \"visibleItemCount\": this.visibleItemCount,\n \"cancelButtonText\": this.cancelButtonText,\n \"confirmButtonText\": this.confirmButtonText\n },\n \"on\": _extends({}, on)\n });\n }\n});","export var cellProps = {\n icon: String,\n size: String,\n center: Boolean,\n isLink: Boolean,\n required: Boolean,\n titleStyle: null,\n titleClass: null,\n valueClass: null,\n labelClass: null,\n title: [String, Number],\n value: [String, Number],\n label: [String, Number],\n border: {\n type: Boolean,\n \"default\": true\n }\n};","/**\n * Vue Router support\n */\nexport function route(router, config) {\n var to = config.to,\n url = config.url,\n replace = config.replace;\n\n if (to && router) {\n router[replace ? 'replace' : 'push'](to);\n } else if (url) {\n replace ? location.replace(url) : location.href = url;\n }\n}\nexport function functionalRoute(context) {\n route(context.parent && context.parent.$router, context.props);\n}\nexport var routeProps = {\n url: String,\n replace: Boolean,\n to: [String, Object]\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use, isDef } from '../utils';\nimport { cellProps } from './shared';\nimport { emit, inherit } from '../utils/functional';\nimport { routeProps, functionalRoute } from '../utils/router';\nimport Icon from '../icon'; // Types\n\nvar _use = use('cell'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Cell(h, props, slots, ctx) {\n var icon = props.icon,\n size = props.size,\n title = props.title,\n label = props.label,\n value = props.value,\n isLink = props.isLink,\n arrowDirection = props.arrowDirection;\n var showTitle = slots.title || isDef(title);\n var showValue = slots[\"default\"] || isDef(value);\n var showLabel = slots.label || isDef(label);\n var Label = showLabel && h(\"div\", {\n \"class\": [bem('label'), props.labelClass]\n }, [slots.label ? slots.label() : label]);\n var Title = showTitle && h(\"div\", {\n \"class\": [bem('title'), props.titleClass],\n \"style\": props.titleStyle\n }, [slots.title ? slots.title() : h(\"span\", [title]), Label]);\n var Value = showValue && h(\"div\", {\n \"class\": [bem('value', {\n alone: !slots.title && !title\n }), props.valueClass]\n }, [slots[\"default\"] ? slots[\"default\"]() : h(\"span\", [value])]);\n var LeftIcon = slots.icon ? slots.icon() : icon && h(Icon, {\n \"class\": bem('left-icon'),\n \"attrs\": {\n \"name\": icon\n }\n });\n var rightIconSlot = slots['right-icon'];\n var RightIcon = rightIconSlot ? rightIconSlot() : isLink && h(Icon, {\n \"class\": bem('right-icon'),\n \"attrs\": {\n \"name\": arrowDirection ? \"arrow-\" + arrowDirection : 'arrow'\n }\n });\n\n var onClick = function onClick(event) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n };\n\n var classes = {\n center: props.center,\n required: props.required,\n borderless: !props.border,\n clickable: isLink || props.clickable\n };\n\n if (size) {\n classes[size] = size;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem(classes),\n \"on\": {\n \"click\": onClick\n }\n }, inherit(ctx)]), [LeftIcon, Title, Value, RightIcon, slots.extra && slots.extra()]);\n}\n\nCell.props = _extends({}, cellProps, routeProps, {\n clickable: Boolean,\n arrowDirection: String\n});\nexport default sfc(Cell);","export function isNumber(value) {\n return /^\\d+$/.test(value);\n}","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Icon from '../icon';\nimport Cell from '../cell';\nimport { cellProps } from '../cell/shared';\nimport { use, isObj, isDef, isIOS } from '../utils';\nimport { preventDefault } from '../utils/event';\nimport { getRootScrollTop } from '../utils/scroll';\nimport { isNumber } from '../utils/validate/number';\n\nvar _use = use('field'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n inheritAttrs: false,\n props: _extends({}, cellProps, {\n error: Boolean,\n leftIcon: String,\n rightIcon: String,\n readonly: Boolean,\n clearable: Boolean,\n labelWidth: [String, Number],\n labelAlign: String,\n inputAlign: String,\n onIconClick: Function,\n autosize: [Boolean, Object],\n errorMessage: String,\n errorMessageAlign: String,\n type: {\n type: String,\n \"default\": 'text'\n }\n }),\n data: function data() {\n return {\n focused: false\n };\n },\n watch: {\n value: function value() {\n this.$nextTick(this.adjustSize);\n }\n },\n mounted: function mounted() {\n this.format();\n this.$nextTick(this.adjustSize);\n },\n computed: {\n showClear: function showClear() {\n return this.clearable && this.focused && this.value !== '' && isDef(this.value) && !this.readonly;\n },\n listeners: function listeners() {\n return _extends({}, this.$listeners, {\n input: this.onInput,\n keypress: this.onKeypress,\n focus: this.onFocus,\n blur: this.onBlur\n });\n },\n labelStyle: function labelStyle() {\n var labelWidth = this.labelWidth;\n\n if (labelWidth) {\n var width = isNumber(String(labelWidth)) ? labelWidth + \"px\" : labelWidth;\n return {\n maxWidth: width,\n minWidth: width\n };\n }\n }\n },\n methods: {\n focus: function focus() {\n this.$refs.input && this.$refs.input.focus();\n },\n blur: function blur() {\n this.$refs.input && this.$refs.input.blur();\n },\n // native maxlength not work when type = number\n format: function format(target) {\n if (target === void 0) {\n target = this.$refs.input;\n }\n\n var _target = target,\n value = _target.value;\n var maxlength = this.$attrs.maxlength;\n\n if (this.type === 'number' && isDef(maxlength) && value.length > maxlength) {\n value = value.slice(0, maxlength);\n target.value = value;\n }\n\n return value;\n },\n onInput: function onInput(event) {\n this.$emit('input', this.format(event.target));\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n this.$emit('focus', event); // hack for safari\n\n /* istanbul ignore if */\n\n if (this.readonly) {\n this.blur();\n }\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.$emit('blur', event); // Hack for iOS12 page scroll\n // https://developers.weixin.qq.com/community/develop/doc/00044ae90742f8c82fb78fcae56800\n\n /* istanbul ignore next */\n\n if (isIOS()) {\n window.scrollTo(0, getRootScrollTop());\n }\n },\n onClickLeftIcon: function onClickLeftIcon() {\n this.$emit('click-left-icon');\n },\n onClickRightIcon: function onClickRightIcon() {\n // compatible old version\n this.$emit('click-icon');\n this.$emit('click-right-icon');\n this.onIconClick && this.onIconClick();\n },\n onClear: function onClear(event) {\n preventDefault(event);\n this.$emit('input', '');\n this.$emit('clear');\n },\n onKeypress: function onKeypress(event) {\n if (this.type === 'number') {\n var keyCode = event.keyCode;\n var allowPoint = String(this.value).indexOf('.') === -1;\n var isValidKey = keyCode >= 48 && keyCode <= 57 || keyCode === 46 && allowPoint || keyCode === 45;\n\n if (!isValidKey) {\n preventDefault(event);\n }\n } // trigger blur after click keyboard search button\n\n /* istanbul ignore next */\n\n\n if (this.type === 'search' && event.keyCode === 13) {\n this.blur();\n }\n\n this.$emit('keypress', event);\n },\n adjustSize: function adjustSize() {\n var input = this.$refs.input;\n\n if (!(this.type === 'textarea' && this.autosize) || !input) {\n return;\n }\n\n input.style.height = 'auto';\n var height = input.scrollHeight;\n\n if (isObj(this.autosize)) {\n var _this$autosize = this.autosize,\n maxHeight = _this$autosize.maxHeight,\n minHeight = _this$autosize.minHeight;\n\n if (maxHeight) {\n height = Math.min(height, maxHeight);\n }\n\n if (minHeight) {\n height = Math.max(height, minHeight);\n }\n }\n\n if (height) {\n input.style.height = height + 'px';\n }\n },\n renderInput: function renderInput() {\n var h = this.$createElement;\n var inputProps = {\n ref: 'input',\n \"class\": bem('control', this.inputAlign),\n domProps: {\n value: this.value\n },\n attrs: _extends({}, this.$attrs, {\n readonly: this.readonly\n }),\n on: this.listeners\n };\n\n if (this.type === 'textarea') {\n return h(\"textarea\", _mergeJSXProps([{}, inputProps]));\n }\n\n return h(\"input\", _mergeJSXProps2([{\n \"attrs\": {\n \"type\": this.type\n }\n }, inputProps]));\n },\n renderLeftIcon: function renderLeftIcon() {\n var h = this.$createElement;\n var showLeftIcon = this.slots('left-icon') || this.leftIcon;\n\n if (showLeftIcon) {\n return h(\"div\", {\n \"class\": bem('left-icon'),\n \"on\": {\n \"click\": this.onClickLeftIcon\n }\n }, [this.slots('left-icon') || h(Icon, {\n \"attrs\": {\n \"name\": this.leftIcon\n }\n })]);\n }\n },\n renderRightIcon: function renderRightIcon() {\n var h = this.$createElement;\n var slots = this.slots;\n var showRightIcon = slots('right-icon') || slots('icon') || this.rightIcon || this.icon;\n\n if (showRightIcon) {\n return h(\"div\", {\n \"class\": bem('right-icon'),\n \"on\": {\n \"click\": this.onClickRightIcon\n }\n }, [slots('right-icon') || slots('icon') || h(Icon, {\n \"attrs\": {\n \"name\": this.rightIcon || this.icon\n }\n })]);\n }\n }\n },\n render: function render(h) {\n var _bem;\n\n var slots = this.slots,\n labelAlign = this.labelAlign;\n var scopedSlots = {\n icon: this.renderLeftIcon\n };\n\n if (slots('label')) {\n scopedSlots.title = function () {\n return slots('label');\n };\n }\n\n return h(Cell, {\n \"attrs\": {\n \"icon\": this.leftIcon,\n \"size\": this.size,\n \"title\": this.label,\n \"center\": this.center,\n \"border\": this.border,\n \"isLink\": this.isLink,\n \"required\": this.required,\n \"titleStyle\": this.labelStyle,\n \"titleClass\": bem('label', labelAlign)\n },\n \"class\": bem((_bem = {\n error: this.error,\n disabled: this.$attrs.disabled\n }, _bem[\"label-\" + labelAlign] = labelAlign, _bem['min-height'] = this.type === 'textarea' && !this.autosize, _bem)),\n \"scopedSlots\": scopedSlots\n }, [h(\"div\", {\n \"class\": bem('body')\n }, [this.renderInput(), this.showClear && h(Icon, {\n \"attrs\": {\n \"name\": \"clear\"\n },\n \"class\": bem('clear'),\n \"on\": {\n \"touchstart\": this.onClear\n }\n }), this.renderRightIcon(), slots('button') && h(\"div\", {\n \"class\": bem('button')\n }, [slots('button')])]), this.errorMessage && h(\"div\", {\n \"class\": bem('error-message', this.errorMessageAlign)\n }, [this.errorMessage])]);\n }\n});","import { use, isDef } from '../utils';\nimport { PopupMixin } from '../mixins/popup';\nimport Icon from '../icon';\nimport Loading from '../loading';\n\nvar _use = use('toast'),\n sfc = _use[0],\n bem = _use[1];\n\nvar STYLE = ['success', 'fail', 'loading'];\nexport default sfc({\n mixins: [PopupMixin],\n props: {\n className: null,\n forbidClick: Boolean,\n message: [String, Number],\n type: {\n type: String,\n \"default\": 'text'\n },\n loadingType: {\n type: String,\n \"default\": 'circular'\n },\n position: {\n type: String,\n \"default\": 'middle'\n },\n lockScroll: {\n type: Boolean,\n \"default\": false\n }\n },\n data: function data() {\n return {\n clickable: false\n };\n },\n mounted: function mounted() {\n this.toggleClickale();\n },\n destroyed: function destroyed() {\n this.toggleClickale();\n },\n watch: {\n value: function value() {\n this.toggleClickale();\n },\n forbidClick: function forbidClick() {\n this.toggleClickale();\n }\n },\n methods: {\n toggleClickale: function toggleClickale() {\n var clickable = this.value && this.forbidClick;\n\n if (this.clickable !== clickable) {\n this.clickable = clickable;\n var action = clickable ? 'add' : 'remove';\n document.body.classList[action]('van-toast--unclickable');\n }\n }\n },\n render: function render(h) {\n var _this = this;\n\n var type = this.type,\n message = this.message;\n var style = STYLE.indexOf(type) !== -1 ? 'default' : type;\n\n var Content = function Content() {\n switch (style) {\n case 'text':\n return h(\"div\", [message]);\n\n case 'html':\n return h(\"div\", {\n \"domProps\": {\n \"innerHTML\": message\n }\n });\n\n default:\n return [type === 'loading' ? h(Loading, {\n \"attrs\": {\n \"color\": \"white\",\n \"type\": _this.loadingType\n }\n }) : h(Icon, {\n \"class\": bem('icon'),\n \"attrs\": {\n \"name\": type\n }\n }), isDef(message) && h(\"div\", {\n \"class\": bem('text')\n }, [message])];\n }\n };\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"class\": [bem([style, this.position]), this.className]\n }, [Content()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VueToast from './Toast';\nimport { isObj, isServer } from '../utils';\nvar defaultOptions = {\n type: 'text',\n mask: false,\n value: true,\n message: '',\n className: '',\n onClose: null,\n duration: 3000,\n position: 'middle',\n forbidClick: false,\n loadingType: 'circular',\n getContainer: 'body',\n overlayStyle: null\n};\n\nvar parseOptions = function parseOptions(message) {\n return isObj(message) ? message : {\n message: message\n };\n};\n\nvar queue = [];\nvar multiple = false;\n\nvar currentOptions = _extends({}, defaultOptions);\n\nfunction createInstance() {\n /* istanbul ignore if */\n if (isServer) {\n return {};\n }\n\n if (!queue.length || multiple) {\n var toast = new (Vue.extend(VueToast))({\n el: document.createElement('div')\n });\n queue.push(toast);\n }\n\n return queue[queue.length - 1];\n} // transform toast options to popup props\n\n\nfunction transformer(options) {\n options.overlay = options.mask;\n return options;\n}\n\nfunction Toast(options) {\n if (options === void 0) {\n options = {};\n }\n\n var toast = createInstance(); // should add z-index if previous toast has not disappeared\n\n if (toast.value) {\n toast.updateZIndex();\n }\n\n options = _extends({}, currentOptions, parseOptions(options), {\n clear: function clear() {\n toast.value = false;\n\n if (options.onClose) {\n options.onClose();\n }\n\n if (multiple && !isServer) {\n clearTimeout(toast.timer);\n queue = queue.filter(function (item) {\n return item !== toast;\n });\n var parent = toast.$el.parentNode;\n\n if (parent) {\n parent.removeChild(toast.$el);\n }\n\n toast.$destroy();\n }\n }\n });\n\n _extends(toast, transformer(options));\n\n clearTimeout(toast.timer);\n\n if (options.duration > 0) {\n toast.timer = setTimeout(function () {\n toast.clear();\n }, options.duration);\n }\n\n return toast;\n}\n\nvar createMethod = function createMethod(type) {\n return function (options) {\n return Toast(_extends({\n type: type\n }, parseOptions(options)));\n };\n};\n\n['loading', 'success', 'fail'].forEach(function (method) {\n Toast[method] = createMethod(method);\n});\n\nToast.clear = function (all) {\n if (queue.length) {\n if (all) {\n queue.forEach(function (toast) {\n toast.clear();\n });\n queue = [];\n } else if (!multiple) {\n queue[0].clear();\n } else {\n queue.shift().clear();\n }\n }\n};\n\nToast.setDefaultOptions = function (options) {\n _extends(currentOptions, options);\n};\n\nToast.resetDefaultOptions = function () {\n currentOptions = _extends({}, defaultOptions);\n};\n\nToast.allowMultiple = function (value) {\n if (value === void 0) {\n value = true;\n }\n\n multiple = value;\n};\n\nToast.install = function () {\n Vue.use(VueToast);\n};\n\nVue.prototype.$toast = Toast;\nexport default Toast;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { routeProps, functionalRoute } from '../utils/router';\nimport Loading from '../loading'; // Types\n\nvar _use = use('button'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Button(h, props, slots, ctx) {\n var tag = props.tag,\n type = props.type,\n disabled = props.disabled,\n loading = props.loading,\n hairline = props.hairline,\n loadingText = props.loadingText;\n\n var onClick = function onClick(event) {\n if (!loading && !disabled) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n }\n };\n\n var onTouchstart = function onTouchstart(event) {\n emit(ctx, 'touchstart', event);\n };\n\n var classes = [bem([type, props.size, {\n loading: loading,\n disabled: disabled,\n hairline: hairline,\n block: props.block,\n plain: props.plain,\n round: props.round,\n square: props.square,\n 'bottom-action': props.bottomAction\n }]), {\n 'van-hairline--surround': hairline\n }];\n return h(tag, _mergeJSXProps([{\n \"class\": classes,\n \"attrs\": {\n \"type\": props.nativeType,\n \"disabled\": disabled\n },\n \"on\": {\n \"click\": onClick,\n \"touchstart\": onTouchstart\n }\n }, inherit(ctx)]), [loading ? [h(Loading, {\n \"attrs\": {\n \"size\": props.loadingSize,\n \"color\": type === 'default' ? undefined : ''\n }\n }), loadingText && h(\"span\", {\n \"class\": bem('loading-text')\n }, [loadingText])] : h(\"span\", {\n \"class\": bem('text')\n }, [slots[\"default\"] ? slots[\"default\"]() : props.text])]);\n}\n\nButton.props = _extends({}, routeProps, {\n text: String,\n block: Boolean,\n plain: Boolean,\n round: Boolean,\n square: Boolean,\n loading: Boolean,\n hairline: Boolean,\n disabled: Boolean,\n nativeType: String,\n loadingText: String,\n bottomAction: Boolean,\n tag: {\n type: String,\n \"default\": 'button'\n },\n type: {\n type: String,\n \"default\": 'default'\n },\n size: {\n type: String,\n \"default\": 'normal'\n },\n loadingSize: {\n type: String,\n \"default\": '20px'\n }\n});\nexport default sfc(Button);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VanDialog from './Dialog';\nimport { isServer, isInDocument } from '../utils';\nvar instance;\n\nfunction initInstance() {\n if (instance) {\n instance.$destroy();\n }\n\n instance = new (Vue.extend(VanDialog))({\n el: document.createElement('div'),\n // avoid missing animation when first rendered\n propsData: {\n lazyRender: false\n }\n });\n instance.$on('input', function (value) {\n instance.value = value;\n });\n}\n\nfunction Dialog(options) {\n /* istanbul ignore if */\n if (isServer) {\n return Promise.resolve();\n }\n\n return new Promise(function (resolve, reject) {\n if (!instance || !isInDocument(instance.$el)) {\n initInstance();\n }\n\n _extends(instance, Dialog.currentOptions, options, {\n resolve: resolve,\n reject: reject\n });\n });\n}\n\nDialog.defaultOptions = {\n value: true,\n title: '',\n message: '',\n overlay: true,\n className: '',\n lockScroll: true,\n beforeClose: null,\n messageAlign: '',\n getContainer: 'body',\n cancelButtonText: '',\n cancelButtonColor: null,\n confirmButtonText: '',\n confirmButtonColor: null,\n showConfirmButton: true,\n showCancelButton: false,\n closeOnClickOverlay: false,\n callback: function callback(action) {\n instance[action === 'confirm' ? 'resolve' : 'reject'](action);\n }\n};\nDialog.alert = Dialog;\n\nDialog.confirm = function (options) {\n return Dialog(_extends({\n showCancelButton: true\n }, options));\n};\n\nDialog.close = function () {\n if (instance) {\n instance.value = false;\n }\n};\n\nDialog.setDefaultOptions = function (options) {\n _extends(Dialog.currentOptions, options);\n};\n\nDialog.resetDefaultOptions = function () {\n Dialog.currentOptions = _extends({}, Dialog.defaultOptions);\n};\n\nDialog.resetDefaultOptions();\n\nDialog.install = function () {\n Vue.use(VanDialog);\n};\n\nVue.prototype.$dialog = Dialog;\nexport default Dialog;","import { use } from '../utils';\nimport { PopupMixin } from '../mixins/popup';\nimport Button from '../button';\n\nvar _use = use('dialog'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nexport default sfc({\n mixins: [PopupMixin],\n props: {\n title: String,\n message: String,\n className: null,\n callback: Function,\n beforeClose: Function,\n messageAlign: String,\n cancelButtonText: String,\n cancelButtonColor: String,\n confirmButtonText: String,\n confirmButtonColor: String,\n showCancelButton: Boolean,\n showConfirmButton: {\n type: Boolean,\n \"default\": true\n },\n overlay: {\n type: Boolean,\n \"default\": true\n },\n closeOnClickOverlay: {\n type: Boolean,\n \"default\": false\n }\n },\n data: function data() {\n return {\n loading: {\n confirm: false,\n cancel: false\n }\n };\n },\n methods: {\n onClickOverlay: function onClickOverlay() {\n this.handleAction('overlay');\n },\n handleAction: function handleAction(action) {\n var _this = this;\n\n this.$emit(action);\n\n if (this.beforeClose) {\n this.loading[action] = true;\n this.beforeClose(action, function (state) {\n if (state !== false) {\n _this.onClose(action);\n }\n\n _this.loading[action] = false;\n });\n } else {\n this.onClose(action);\n }\n },\n onClose: function onClose(action) {\n this.close();\n\n if (this.callback) {\n this.callback(action);\n }\n }\n },\n render: function render(h) {\n var _bem,\n _this2 = this;\n\n if (!this.shouldRender) {\n return;\n }\n\n var title = this.title,\n message = this.message,\n messageAlign = this.messageAlign;\n var children = this.slots();\n var Title = title && h(\"div\", {\n \"class\": bem('header', {\n isolated: !message && !children\n })\n }, [title]);\n var Content = (children || message) && h(\"div\", {\n \"class\": bem('content')\n }, [children || h(\"div\", {\n \"domProps\": {\n \"innerHTML\": message\n },\n \"class\": bem('message', (_bem = {\n 'has-title': title\n }, _bem[messageAlign] = messageAlign, _bem))\n })]);\n var hasButtons = this.showCancelButton && this.showConfirmButton;\n var ButtonGroup = h(\"div\", {\n \"class\": ['van-hairline--top', bem('footer', {\n buttons: hasButtons\n })]\n }, [this.showCancelButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.cancel,\n \"text\": this.cancelButtonText || t('cancel')\n },\n \"class\": bem('cancel'),\n \"style\": {\n color: this.cancelButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this2.handleAction('cancel');\n }\n }\n }), this.showConfirmButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.confirm,\n \"text\": this.confirmButtonText || t('confirm')\n },\n \"class\": [bem('confirm'), {\n 'van-hairline--left': hasButtons\n }],\n \"style\": {\n color: this.confirmButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this2.handleAction('confirm');\n }\n }\n })]);\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-dialog-bounce\"\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"class\": [bem(), this.className]\n }, [Title, Content, ButtonGroup])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use, isAndroid } from '../utils';\nimport Cell from '../cell';\nimport Field from '../field';\n\nvar _use = use('address-edit-detail'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nvar android = isAndroid();\nexport default sfc({\n props: {\n value: String,\n error: Boolean,\n focused: Boolean,\n detailRows: Number,\n searchResult: Array,\n showSearchResult: Boolean\n },\n methods: {\n onSelect: function onSelect(express) {\n this.$emit('select-search', express);\n this.$emit('input', ((express.address || '') + \" \" + (express.name || '')).trim());\n },\n onFinish: function onFinish() {\n this.$refs.field.blur();\n },\n renderFinish: function renderFinish() {\n var h = this.$createElement;\n var show = this.value && this.focused && android;\n\n if (show) {\n return h(\"div\", {\n \"class\": bem('finish'),\n \"on\": {\n \"click\": this.onFinish\n }\n }, [t('complete')]);\n }\n },\n renderSearchResult: function renderSearchResult() {\n var _this = this;\n\n var h = this.$createElement;\n var searchResult = this.searchResult;\n var show = this.focused && searchResult && this.showSearchResult;\n\n if (show) {\n return searchResult.map(function (express) {\n return h(Cell, {\n \"key\": express.name + express.address,\n \"attrs\": {\n \"title\": express.name,\n \"label\": express.address,\n \"icon\": \"location-o\",\n \"clickable\": true\n },\n \"on\": {\n \"click\": function click() {\n _this.onSelect(express);\n }\n }\n });\n });\n }\n }\n },\n render: function render(h) {\n return h(Cell, {\n \"class\": bem()\n }, [h(Field, {\n \"attrs\": {\n \"autosize\": true,\n \"rows\": this.detailRows,\n \"clearable\": !android,\n \"type\": \"textarea\",\n \"maxlength\": \"200\",\n \"value\": this.value,\n \"error\": this.error,\n \"label\": t('label'),\n \"placeholder\": t('placeholder')\n },\n \"ref\": \"field\",\n \"scopedSlots\": {\n icon: this.renderFinish\n },\n \"on\": _extends({}, this.$listeners)\n }), this.renderSearchResult()]);\n }\n});","/**\n * Common Switch Props\n */\nexport var switchProps = {\n value: null,\n loading: Boolean,\n disabled: Boolean,\n activeColor: String,\n inactiveColor: String,\n activeValue: {\n type: null,\n \"default\": true\n },\n inactiveValue: {\n type: null,\n \"default\": false\n },\n size: {\n type: String,\n \"default\": '30px'\n }\n};","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport Loading from '../loading';\nimport { switchProps } from './shared';\nimport { emit, inherit } from '../utils/functional'; // Types\n\nvar _use = use('switch'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Switch(h, props, slots, ctx) {\n var value = props.value,\n loading = props.loading,\n disabled = props.disabled,\n activeValue = props.activeValue,\n inactiveValue = props.inactiveValue;\n var checked = value === activeValue;\n var style = {\n fontSize: props.size,\n backgroundColor: checked ? props.activeColor : props.inactiveColor\n };\n\n var onClick = function onClick() {\n if (!disabled && !loading) {\n var newValue = checked ? inactiveValue : activeValue;\n emit(ctx, 'input', newValue);\n emit(ctx, 'change', newValue);\n }\n };\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n on: checked,\n disabled: disabled\n }),\n \"style\": style,\n \"on\": {\n \"click\": onClick\n }\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('node')\n }, [loading && h(Loading, {\n \"class\": bem('loading')\n })])]);\n}\n\nSwitch.props = switchProps;\nexport default sfc(Switch);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional';\nimport Cell from '../cell';\nimport Switch from '../switch';\nimport { switchProps } from '../switch/shared'; // Types\n\nvar _use = use('switch-cell'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction SwitchCell(h, props, slots, ctx) {\n return h(Cell, _mergeJSXProps([{\n \"attrs\": {\n \"center\": true,\n \"title\": props.title,\n \"border\": props.border\n },\n \"class\": bem()\n }, inherit(ctx)]), [h(Switch, {\n \"props\": _extends({}, props),\n \"on\": _extends({}, ctx.listeners)\n })]);\n}\n\nSwitchCell.props = _extends({}, switchProps, {\n title: String,\n border: Boolean,\n size: {\n type: String,\n \"default\": '24px'\n }\n});\nexport default sfc(SwitchCell);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use, isObj } from '../utils';\nimport { isMobile } from '../utils/validate/mobile';\nimport Area from '../area';\nimport Field from '../field';\nimport Popup from '../popup';\nimport Toast from '../toast';\nimport Button from '../button';\nimport Dialog from '../dialog';\nimport Detail from './Detail';\nimport SwitchCell from '../switch-cell';\n\nvar _use = use('address-edit'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nvar defaultData = {\n name: '',\n tel: '',\n country: '',\n province: '',\n city: '',\n county: '',\n areaCode: '',\n postalCode: '',\n addressDetail: '',\n isDefault: false\n};\nexport default sfc({\n props: {\n areaList: Object,\n isSaving: Boolean,\n isDeleting: Boolean,\n validator: Function,\n showDelete: Boolean,\n showPostal: Boolean,\n searchResult: Array,\n showSetDefault: Boolean,\n showSearchResult: Boolean,\n saveButtonText: String,\n deleteButtonText: String,\n showArea: {\n type: Boolean,\n \"default\": true\n },\n showDetail: {\n type: Boolean,\n \"default\": true\n },\n detailRows: {\n type: Number,\n \"default\": 1\n },\n addressInfo: {\n type: Object,\n \"default\": function _default() {\n return _extends({}, defaultData);\n }\n },\n telValidator: {\n type: Function,\n \"default\": isMobile\n },\n areaColumnsPlaceholder: {\n type: Array,\n \"default\": function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n data: {},\n showAreaPopup: false,\n detailFocused: false,\n errorInfo: {\n tel: false,\n name: false,\n postalCode: false,\n addressDetail: false\n }\n };\n },\n computed: {\n areaListLoaded: function areaListLoaded() {\n return isObj(this.areaList) && Object.keys(this.areaList).length;\n },\n areaText: function areaText() {\n var _this$data = this.data,\n country = _this$data.country,\n province = _this$data.province,\n city = _this$data.city,\n county = _this$data.county,\n areaCode = _this$data.areaCode;\n\n if (areaCode) {\n var arr = [country, province, city, county];\n\n if (province && province === city) {\n arr.splice(1, 1);\n }\n\n return arr.filter(function (text) {\n return text;\n }).join('/');\n }\n\n return '';\n }\n },\n watch: {\n addressInfo: {\n handler: function handler(val) {\n this.data = _extends({}, defaultData, val);\n this.setAreaCode(val.areaCode);\n },\n deep: true,\n immediate: true\n },\n areaList: function areaList() {\n this.setAreaCode(this.data.areaCode);\n }\n },\n methods: {\n onFocus: function onFocus(key) {\n this.errorInfo[key] = false;\n this.detailFocused = key === 'addressDetail';\n this.$emit('focus', key);\n },\n onChangeDetail: function onChangeDetail(val) {\n this.data.addressDetail = val;\n this.$emit('change-detail', val);\n },\n onAreaConfirm: function onAreaConfirm(values) {\n if (values.some(function (value) {\n return !value.code;\n })) {\n Toast(t('areaEmpty'));\n return;\n }\n\n this.showAreaPopup = false;\n this.assignAreaValues();\n this.$emit('change-area', values);\n },\n assignAreaValues: function assignAreaValues() {\n var area = this.$refs.area;\n\n if (area) {\n var detail = area.getArea();\n detail.areaCode = detail.code;\n delete detail.code;\n\n _extends(this.data, detail);\n }\n },\n onSave: function onSave() {\n var _this = this;\n\n var items = ['name', 'tel', 'areaCode', 'addressDetail'];\n\n if (this.showPostal) {\n items.push('postalCode');\n }\n\n var isValid = items.every(function (item) {\n var msg = _this.getErrorMessage(item);\n\n if (msg) {\n _this.errorInfo[item] = true;\n Toast(msg);\n }\n\n return !msg;\n });\n\n if (isValid && !this.isSaving) {\n this.$emit('save', this.data);\n }\n },\n getErrorMessage: function getErrorMessage(key) {\n var value = String(this.data[key] || '').trim();\n\n if (this.validator) {\n var message = this.validator(key, value);\n\n if (message) {\n return message;\n }\n }\n\n switch (key) {\n case 'name':\n return value ? '' : t('nameEmpty');\n\n case 'tel':\n return this.telValidator(value) ? '' : t('telInvalid');\n\n case 'areaCode':\n return value ? '' : t('areaEmpty');\n\n case 'addressDetail':\n return value ? '' : t('addressEmpty');\n\n case 'postalCode':\n return value && !/^\\d{6}$/.test(value) ? t('postalEmpty') : '';\n }\n },\n onDelete: function onDelete() {\n var _this2 = this;\n\n Dialog.confirm({\n title: t('confirmDelete')\n }).then(function () {\n _this2.$emit('delete', _this2.data);\n })[\"catch\"](function () {\n _this2.$emit('cancel-delete', _this2.data);\n });\n },\n // get values of area component\n getArea: function getArea() {\n return this.$refs.area ? this.$refs.area.getValues() : [];\n },\n // set area code to area component\n setAreaCode: function setAreaCode(code) {\n this.data.areaCode = code || '';\n\n if (code) {\n this.$nextTick(this.assignAreaValues);\n }\n },\n setAddressDetail: function setAddressDetail(value) {\n this.data.addressDetail = value;\n },\n onDetailBlur: function onDetailBlur() {\n var _this3 = this;\n\n // await for click search event\n setTimeout(function () {\n _this3.detailFocused = false;\n });\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var data = this.data,\n errorInfo = this.errorInfo;\n\n var onFocus = function onFocus(name) {\n return function () {\n return _this4.onFocus(name);\n };\n }; // hide bottom field when use search && detail get focused\n\n\n var hideBottomFields = this.searchResult.length && this.detailFocused;\n return h(\"div\", {\n \"class\": bem()\n }, [h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"label\": t('name'),\n \"placeholder\": t('namePlaceholder'),\n \"error\": errorInfo.name\n },\n \"on\": {\n \"focus\": onFocus('name')\n },\n \"model\": {\n value: data.name,\n callback: function callback($$v) {\n data.name = $$v;\n }\n }\n }), h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"type\": \"tel\",\n \"label\": t('tel'),\n \"placeholder\": t('telPlaceholder'),\n \"error\": errorInfo.tel\n },\n \"on\": {\n \"focus\": onFocus('tel')\n },\n \"model\": {\n value: data.tel,\n callback: function callback($$v) {\n data.tel = $$v;\n }\n }\n }), h(Field, {\n \"directives\": [{\n name: \"show\",\n value: this.showArea\n }],\n \"attrs\": {\n \"readonly\": true,\n \"label\": t('area'),\n \"placeholder\": t('areaPlaceholder'),\n \"value\": this.areaText\n },\n \"on\": {\n \"click\": function click() {\n _this4.showAreaPopup = true;\n }\n }\n }), h(Detail, {\n \"directives\": [{\n name: \"show\",\n value: this.showDetail\n }],\n \"attrs\": {\n \"focused\": this.detailFocused,\n \"value\": data.addressDetail,\n \"error\": errorInfo.addressDetail,\n \"detailRows\": this.detailRows,\n \"searchResult\": this.searchResult,\n \"showSearchResult\": this.showSearchResult\n },\n \"on\": {\n \"focus\": onFocus('addressDetail'),\n \"blur\": this.onDetailBlur,\n \"input\": this.onChangeDetail,\n \"select-search\": function selectSearch(event) {\n _this4.$emit('select-search', event);\n }\n }\n }), this.showPostal && h(Field, {\n \"directives\": [{\n name: \"show\",\n value: !hideBottomFields\n }],\n \"attrs\": {\n \"type\": \"tel\",\n \"maxlength\": \"6\",\n \"label\": t('postal'),\n \"placeholder\": t('postal'),\n \"error\": errorInfo.postalCode\n },\n \"on\": {\n \"focus\": onFocus('postalCode')\n },\n \"model\": {\n value: data.postalCode,\n callback: function callback($$v) {\n data.postalCode = $$v;\n }\n }\n }), this.slots(), this.showSetDefault && h(SwitchCell, {\n \"directives\": [{\n name: \"show\",\n value: !hideBottomFields\n }],\n \"attrs\": {\n \"title\": t('defaultAddress')\n },\n \"on\": {\n \"change\": function change(event) {\n _this4.$emit('change-default', event);\n }\n },\n \"model\": {\n value: data.isDefault,\n callback: function callback($$v) {\n data.isDefault = $$v;\n }\n }\n }), h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: !hideBottomFields\n }],\n \"class\": bem('buttons')\n }, [h(Button, {\n \"attrs\": {\n \"block\": true,\n \"loading\": this.isSaving,\n \"type\": \"danger\",\n \"text\": this.saveButtonText || t('save')\n },\n \"on\": {\n \"click\": this.onSave\n }\n }), this.showDelete && h(Button, {\n \"attrs\": {\n \"block\": true,\n \"loading\": this.isDeleting,\n \"text\": this.deleteButtonText || t('delete')\n },\n \"on\": {\n \"click\": this.onDelete\n }\n })]), h(Popup, {\n \"attrs\": {\n \"position\": \"bottom\",\n \"lazyRender\": false,\n \"getContainer\": \"body\"\n },\n \"model\": {\n value: _this4.showAreaPopup,\n callback: function callback($$v) {\n _this4.showAreaPopup = $$v;\n }\n }\n }, [h(Area, {\n \"ref\": \"area\",\n \"attrs\": {\n \"loading\": !this.areaListLoaded,\n \"value\": data.areaCode,\n \"areaList\": this.areaList,\n \"columnsPlaceholder\": this.areaColumnsPlaceholder\n },\n \"on\": {\n \"confirm\": this.onAreaConfirm,\n \"cancel\": function cancel() {\n _this4.showAreaPopup = false;\n }\n }\n })])]);\n }\n});","import { use } from '../utils';\n\nvar _use = use('radio-group'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n value: null,\n disabled: Boolean\n },\n watch: {\n value: function value(_value) {\n this.$emit('change', _value);\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": bem()\n }, [this.slots()]);\n }\n});","/**\n * find parent component by name\n */\nexport var FindParentMixin = {\n data: function data() {\n return {\n parent: null\n };\n },\n methods: {\n findParent: function findParent(name) {\n var parent = this.$parent;\n\n while (parent) {\n if (parent.$options.name === name) {\n this.parent = parent;\n break;\n }\n\n parent = parent.$parent;\n }\n }\n }\n};","/**\n * Common part of Checkbox & Radio\n */\nimport Icon from '../icon';\nimport { FindParentMixin } from './find-parent';\nexport var CheckboxMixin = function CheckboxMixin(parent, bem) {\n return {\n mixins: [FindParentMixin],\n props: {\n name: null,\n value: null,\n disabled: Boolean,\n checkedColor: String,\n labelPosition: String,\n labelDisabled: Boolean,\n shape: {\n type: String,\n \"default\": 'round'\n },\n bindGroup: {\n type: Boolean,\n \"default\": true\n }\n },\n created: function created() {\n if (this.bindGroup) {\n this.findParent(parent);\n }\n },\n computed: {\n isDisabled: function isDisabled() {\n return this.parent && this.parent.disabled || this.disabled;\n },\n iconStyle: function iconStyle() {\n var checkedColor = this.checkedColor;\n\n if (checkedColor && this.checked && !this.isDisabled) {\n return {\n borderColor: checkedColor,\n backgroundColor: checkedColor\n };\n }\n }\n },\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n var slots = this.slots,\n checked = this.checked;\n var CheckIcon = slots('icon', {\n checked: checked\n }) || h(Icon, {\n \"attrs\": {\n \"name\": \"success\"\n },\n \"style\": this.iconStyle\n });\n var Label = slots() && h(\"span\", {\n \"class\": bem('label', [this.labelPosition, {\n disabled: this.isDisabled\n }]),\n \"on\": {\n \"click\": this.onClickLabel\n }\n }, [slots()]);\n return h(\"div\", {\n \"class\": bem(),\n \"on\": {\n \"click\": function click(event) {\n _this.$emit('click', event);\n }\n }\n }, [h(\"div\", {\n \"class\": bem('icon', [this.shape, {\n disabled: this.isDisabled,\n checked: checked\n }]),\n \"on\": {\n \"click\": this.onClickIcon\n }\n }, [CheckIcon]), Label]);\n }\n };\n};","import { use } from '../utils';\nimport { CheckboxMixin } from '../mixins/checkbox';\n\nvar _use = use('radio'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n mixins: [CheckboxMixin('van-radio-group', bem)],\n computed: {\n currentValue: {\n get: function get() {\n return this.parent ? this.parent.value : this.value;\n },\n set: function set(val) {\n (this.parent || this).$emit('input', val);\n }\n },\n checked: function checked() {\n return this.currentValue === this.name;\n }\n },\n methods: {\n onClickIcon: function onClickIcon() {\n if (!this.isDisabled) {\n this.currentValue = this.name;\n }\n },\n onClickLabel: function onClickLabel() {\n if (!this.isDisabled && !this.labelDisabled) {\n this.currentValue = this.name;\n }\n }\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Icon from '../icon';\nimport Cell from '../cell';\nimport Radio from '../radio'; // Types\n\nvar _use = use('address-item'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction AddressItem(h, props, slots, ctx) {\n var disabled = props.disabled,\n switchable = props.switchable;\n\n function onSelect() {\n if (switchable) {\n emit(ctx, 'select');\n }\n }\n\n var renderRightIcon = function renderRightIcon() {\n return h(Icon, {\n \"attrs\": {\n \"name\": \"edit\"\n },\n \"class\": bem('edit'),\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n emit(ctx, 'edit');\n }\n }\n });\n };\n\n var renderContent = function renderContent() {\n var data = props.data;\n var Info = [h(\"div\", {\n \"class\": bem('name')\n }, [data.name + \"\\uFF0C\" + data.tel]), h(\"div\", {\n \"class\": bem('address')\n }, [data.address])];\n return switchable && !disabled ? h(Radio, {\n \"attrs\": {\n \"name\": data.id\n }\n }, [Info]) : Info;\n };\n\n return h(Cell, _mergeJSXProps([{\n \"class\": bem({\n disabled: disabled,\n unswitchable: !switchable\n }),\n \"attrs\": {\n \"valueClass\": bem('value'),\n \"clickable\": switchable && !disabled\n },\n \"scopedSlots\": {\n \"default\": renderContent,\n 'right-icon': renderRightIcon\n },\n \"on\": {\n \"click\": onSelect\n }\n }, inherit(ctx)]));\n}\n\nAddressItem.props = {\n data: Object,\n disabled: Boolean,\n switchable: Boolean\n};\nexport default sfc(AddressItem);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Button from '../button';\nimport RadioGroup from '../radio-group';\nimport AddressItem from './Item'; // Types\n\nvar _use = use('address-list'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction AddressList(h, props, slots, ctx) {\n var getList = function getList(list, disabled) {\n return list.map(function (item, index) {\n return h(AddressItem, {\n \"attrs\": {\n \"data\": item,\n \"disabled\": disabled,\n \"switchable\": props.switchable\n },\n \"key\": item.id,\n \"on\": {\n \"select\": function select() {\n emit(ctx, disabled ? 'select-disabled' : 'select', item, index);\n },\n \"edit\": function edit() {\n emit(ctx, disabled ? 'edit-disabled' : 'edit', item, index);\n }\n }\n });\n });\n };\n\n var List = getList(props.list);\n var DisabledList = getList(props.disabledList, true);\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [slots.top && slots.top(), h(RadioGroup, {\n \"attrs\": {\n \"value\": props.value\n },\n \"on\": {\n \"input\": function input(event) {\n emit(ctx, 'input', event);\n }\n }\n }, [List]), props.disabledText && h(\"div\", {\n \"class\": bem('disabled-text')\n }, [props.disabledText]), DisabledList, slots[\"default\"] && slots[\"default\"](), h(Button, {\n \"attrs\": {\n \"square\": true,\n \"size\": \"large\",\n \"type\": \"danger\",\n \"text\": props.addButtonText || t('add')\n },\n \"class\": bem('add'),\n \"on\": {\n \"click\": function click() {\n emit(ctx, 'add');\n }\n }\n })]);\n}\n\nAddressList.props = {\n list: Array,\n disabledList: Array,\n disabledText: String,\n addButtonText: String,\n value: [String, Number],\n switchable: {\n type: Boolean,\n \"default\": true\n }\n};\nexport default sfc(AddressList);","import { use } from '../utils';\nimport Info from '../info';\n\nvar _use = use('badge'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n url: String,\n info: [String, Number],\n title: String\n },\n inject: ['vanBadgeGroup'],\n created: function created() {\n this.parent.badges.push(this);\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n this.parent.badges = this.parent.badges.filter(function (item) {\n return item !== _this;\n });\n },\n computed: {\n parent: function parent() {\n if (process.env.NODE_ENV !== 'production' && !this.vanBadgeGroup) {\n console.error('[Vant] Badge needs to be child of BadgeGroup');\n }\n\n return this.vanBadgeGroup;\n },\n select: function select() {\n return this.parent.badges.indexOf(this) === +this.parent.activeKey;\n }\n },\n methods: {\n onClick: function onClick() {\n var index = this.parent.badges.indexOf(this);\n this.$emit('click', index);\n this.parent.$emit('change', index);\n }\n },\n render: function render(h) {\n return h(\"a\", {\n \"attrs\": {\n \"href\": this.url\n },\n \"class\": [bem({\n select: this.select\n }), 'van-hairline'],\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('text')\n }, [this.title, h(Info, {\n \"attrs\": {\n \"info\": this.info\n },\n \"class\": bem('info')\n })])]);\n }\n});","import { use } from '../utils';\n\nvar _use = use('badge-group'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n activeKey: {\n type: [Number, String],\n \"default\": 0\n }\n },\n provide: function provide() {\n return {\n vanBadgeGroup: this\n };\n },\n data: function data() {\n return {\n badges: []\n };\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": [bem(), 'van-hairline--top-bottom']\n }, [this.slots()]);\n }\n});","export var RED = '#f44';\nexport var BLUE = '#1989fa';\nexport var GREEN = '#07c160';\nexport var WHITE = '#fff';\nexport var GRAY_DARK = '#969799';","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { RED, BLUE, GREEN, GRAY_DARK } from '../utils/color'; // Types\n\nvar _use = use('tag'),\n sfc = _use[0],\n bem = _use[1];\n\nvar COLOR_MAP = {\n danger: RED,\n primary: BLUE,\n success: GREEN\n};\n\nfunction Tag(h, props, slots, ctx) {\n var _style;\n\n var type = props.type,\n mark = props.mark,\n plain = props.plain,\n round = props.round,\n size = props.size;\n var color = props.color || type && COLOR_MAP[type] || GRAY_DARK;\n var key = plain ? 'color' : 'backgroundColor';\n var style = (_style = {}, _style[key] = color, _style);\n\n if (props.textColor) {\n style.color = props.textColor;\n }\n\n var classes = {\n mark: mark,\n plain: plain,\n round: round\n };\n\n if (size) {\n classes[size] = size;\n }\n\n return h(\"span\", _mergeJSXProps([{\n \"style\": style,\n \"class\": [bem(classes), {\n 'van-hairline--surround': plain\n }]\n }, inherit(ctx, true)]), [slots[\"default\"] && slots[\"default\"]()]);\n}\n\nTag.props = {\n size: String,\n type: String,\n mark: Boolean,\n color: String,\n plain: Boolean,\n round: Boolean,\n textColor: String\n};\nexport default sfc(Tag);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use, isDef } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Tag from '../tag'; // Types\n\nvar _use = use('card'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Card(h, props, slots, ctx) {\n var thumb = props.thumb;\n var showThumb = slots.thumb || thumb;\n var showTag = slots.tag || props.tag;\n var showNum = slots.num || isDef(props.num);\n var showPrice = slots.price || isDef(props.price);\n var showOriginPrice = slots['origin-price'] || isDef(props.originPrice);\n var showBottom = showNum || showPrice || showOriginPrice;\n\n var onThumbClick = function onThumbClick() {\n emit(ctx, 'click-thumb');\n };\n\n var Thumb = showThumb && h(\"a\", {\n \"attrs\": {\n \"href\": props.thumbLink\n },\n \"class\": bem('thumb'),\n \"on\": {\n \"click\": onThumbClick\n }\n }, [slots.thumb ? slots.thumb() : props.lazyLoad ? h(\"img\", {\n \"class\": bem('img'),\n \"directives\": [{\n name: \"lazy\",\n value: thumb\n }]\n }) : h(\"img\", {\n \"class\": bem('img'),\n \"attrs\": {\n \"src\": thumb\n }\n }), showTag && h(\"div\", {\n \"class\": bem('tag')\n }, [slots.tag ? slots.tag() : h(Tag, {\n \"attrs\": {\n \"mark\": true,\n \"type\": \"danger\"\n }\n }, [props.tag])])]);\n var Title = slots.title ? slots.title() : props.title && h(\"div\", {\n \"class\": bem('title')\n }, [props.title]);\n var Desc = slots.desc ? slots.desc() : props.desc && h(\"div\", {\n \"class\": [bem('desc'), 'van-ellipsis']\n }, [props.desc]);\n var Price = showPrice && h(\"div\", {\n \"class\": bem('price')\n }, [slots.price ? slots.price() : props.currency + \" \" + props.price]);\n var OriginPrice = showOriginPrice && h(\"div\", {\n \"class\": bem('origin-price')\n }, [slots['origin-price'] ? slots['origin-price']() : props.currency + \" \" + props.originPrice]);\n var Num = showNum && h(\"div\", {\n \"class\": bem('num')\n }, [slots.num ? slots.num() : \"x \" + props.num]);\n var Footer = slots.footer && h(\"div\", {\n \"class\": bem('footer')\n }, [slots.footer()]);\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx, true)]), [h(\"div\", {\n \"class\": bem('header')\n }, [Thumb, h(\"div\", {\n \"class\": bem('content', {\n centered: props.centered\n })\n }, [Title, Desc, slots.tags && slots.tags(), showBottom && h(\"div\", {\n \"class\": \"van-card__bottom\"\n }, [Price, OriginPrice, Num, slots.bottom && slots.bottom()])])]), Footer]);\n}\n\nCard.props = {\n tag: String,\n desc: String,\n thumb: String,\n title: String,\n centered: Boolean,\n lazyLoad: Boolean,\n thumbLink: String,\n num: [Number, String],\n price: [Number, String],\n originPrice: [Number, String],\n currency: {\n type: String,\n \"default\": '¥'\n }\n};\nexport default sfc(Card);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _use = use('cell-group'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction CellGroup(h, props, slots, ctx) {\n var Group = h(\"div\", _mergeJSXProps([{\n \"class\": [bem(), {\n 'van-hairline--top-bottom': props.border\n }]\n }, inherit(ctx, true)]), [slots[\"default\"] && slots[\"default\"]()]);\n\n if (props.title) {\n return h(\"div\", [h(\"div\", {\n \"class\": bem('title')\n }, [props.title]), Group]);\n }\n\n return Group;\n}\n\nCellGroup.props = {\n title: String,\n border: {\n type: Boolean,\n \"default\": true\n }\n};\nexport default sfc(CellGroup);","import { use } from '../utils';\nimport { CheckboxMixin } from '../mixins/checkbox';\n\nvar _use = use('checkbox'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n mixins: [CheckboxMixin('van-checkbox-group', bem)],\n computed: {\n checked: {\n get: function get() {\n return this.parent ? this.parent.value.indexOf(this.name) !== -1 : this.value;\n },\n set: function set(val) {\n if (this.parent) {\n this.setParentValue(val);\n } else {\n this.$emit('input', val);\n }\n }\n }\n },\n watch: {\n value: function value(val) {\n this.$emit('change', val);\n }\n },\n methods: {\n toggle: function toggle() {\n var _this = this;\n\n var checked = !this.checked; // When toggle method is called multiple times at the same time,\n // only the last call is valid.\n // This is a hack for usage inside Cell.\n\n clearTimeout(this.toggleTask);\n this.toggleTask = setTimeout(function () {\n _this.checked = checked;\n });\n },\n onClickIcon: function onClickIcon() {\n if (!this.isDisabled) {\n this.toggle();\n }\n },\n onClickLabel: function onClickLabel() {\n if (!this.isDisabled && !this.labelDisabled) {\n this.toggle();\n }\n },\n setParentValue: function setParentValue(val) {\n var parent = this.parent;\n var value = parent.value.slice();\n\n if (val) {\n if (parent.max && value.length >= parent.max) {\n return;\n }\n /* istanbul ignore else */\n\n\n if (value.indexOf(this.name) === -1) {\n value.push(this.name);\n parent.$emit('input', value);\n }\n } else {\n var index = value.indexOf(this.name);\n /* istanbul ignore else */\n\n if (index !== -1) {\n value.splice(index, 1);\n parent.$emit('input', value);\n }\n }\n }\n }\n});","import { use } from '../utils';\n\nvar _use = use('checkbox-group'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n max: Number,\n value: Array,\n disabled: Boolean\n },\n watch: {\n value: function value(val) {\n this.$emit('change', val);\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": bem()\n }, [this.slots()]);\n }\n});","import { use } from '../utils';\nimport { raf, cancel } from '../utils/raf';\nimport { BLUE, WHITE } from '../utils/color';\n\nvar _use = use('circle'),\n sfc = _use[0],\n bem = _use[1];\n\nvar PERIMETER = 3140;\nvar PATH = 'M 530 530 m -500, 0 a 500, 500 0 1, 1 1000, 0 a 500, 500 0 1, 1 -1000, 0';\n\nfunction format(rate) {\n return Math.min(Math.max(rate, 0), 100);\n}\n\nexport default sfc({\n props: {\n text: String,\n value: Number,\n speed: Number,\n size: {\n type: String,\n \"default\": '100px'\n },\n fill: {\n type: String,\n \"default\": 'none'\n },\n rate: {\n type: Number,\n \"default\": 100\n },\n layerColor: {\n type: String,\n \"default\": WHITE\n },\n color: {\n type: String,\n \"default\": BLUE\n },\n strokeWidth: {\n type: Number,\n \"default\": 40\n },\n clockwise: {\n type: Boolean,\n \"default\": true\n }\n },\n computed: {\n style: function style() {\n return {\n width: this.size,\n height: this.size\n };\n },\n layerStyle: function layerStyle() {\n var offset = PERIMETER * (100 - this.value) / 100;\n offset = this.clockwise ? offset : PERIMETER * 2 - offset;\n return {\n stroke: \"\" + this.color,\n strokeDashoffset: offset + \"px\",\n strokeWidth: this.strokeWidth + 1 + \"px\"\n };\n },\n hoverStyle: function hoverStyle() {\n return {\n fill: \"\" + this.fill,\n stroke: \"\" + this.layerColor,\n strokeWidth: this.strokeWidth + \"px\"\n };\n }\n },\n watch: {\n rate: {\n handler: function handler() {\n this.startTime = Date.now();\n this.startRate = this.value;\n this.endRate = format(this.rate);\n this.increase = this.endRate > this.startRate;\n this.duration = Math.abs((this.startRate - this.endRate) * 1000 / this.speed);\n\n if (this.speed) {\n cancel(this.rafId);\n this.rafId = raf(this.animate);\n } else {\n this.$emit('input', this.endRate);\n }\n },\n immediate: true\n }\n },\n methods: {\n animate: function animate() {\n var now = Date.now();\n var progress = Math.min((now - this.startTime) / this.duration, 1);\n var rate = progress * (this.endRate - this.startRate) + this.startRate;\n this.$emit('input', format(parseFloat(rate.toFixed(1))));\n\n if (this.increase ? rate < this.endRate : rate > this.endRate) {\n this.rafId = raf(this.animate);\n }\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": bem(),\n \"style\": this.style\n }, [h(\"svg\", {\n \"attrs\": {\n \"viewBox\": \"0 0 1060 1060\"\n }\n }, [h(\"path\", {\n \"class\": bem('hover'),\n \"style\": this.hoverStyle,\n \"attrs\": {\n \"d\": PATH\n }\n }), h(\"path\", {\n \"class\": bem('layer'),\n \"style\": this.layerStyle,\n \"attrs\": {\n \"d\": PATH\n }\n })]), this.slots() || this.text && h(\"div\", {\n \"class\": bem('text')\n }, [this.text])]);\n }\n});","import { use } from '../utils';\n\nvar _use = use('col'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n span: [Number, String],\n offset: [Number, String],\n tag: {\n type: String,\n \"default\": 'div'\n }\n },\n computed: {\n gutter: function gutter() {\n return this.$parent && Number(this.$parent.gutter) || 0;\n },\n style: function style() {\n var padding = this.gutter / 2 + \"px\";\n return this.gutter ? {\n paddingLeft: padding,\n paddingRight: padding\n } : {};\n }\n },\n render: function render(h) {\n var _bem;\n\n var span = this.span,\n offset = this.offset;\n return h(this.tag, {\n \"class\": bem((_bem = {}, _bem[span] = span, _bem[\"offset-\" + offset] = offset, _bem)),\n \"style\": this.style\n }, [this.slots()]);\n }\n});","import { use } from '../utils';\n\nvar _use = use('collapse'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n accordion: Boolean,\n value: [String, Number, Array],\n border: {\n type: Boolean,\n \"default\": true\n }\n },\n data: function data() {\n return {\n items: []\n };\n },\n methods: {\n \"switch\": function _switch(name, expanded) {\n if (!this.accordion) {\n name = expanded ? this.value.concat(name) : this.value.filter(function (activeName) {\n return activeName !== name;\n });\n }\n\n this.$emit('change', name);\n this.$emit('input', name);\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": [bem(), {\n 'van-hairline--top-bottom': this.border\n }]\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use, isDef } from '../utils';\nimport { raf } from '../utils/raf';\nimport Cell from '../cell';\nimport { cellProps } from '../cell/shared';\nimport { FindParentMixin } from '../mixins/find-parent';\n\nvar _use = use('collapse-item'),\n sfc = _use[0],\n bem = _use[1];\n\nvar CELL_SLOTS = ['title', 'icon', 'right-icon'];\nexport default sfc({\n mixins: [FindParentMixin],\n props: _extends({}, cellProps, {\n name: [String, Number],\n disabled: Boolean,\n isLink: {\n type: Boolean,\n \"default\": true\n }\n }),\n data: function data() {\n return {\n show: null,\n inited: null\n };\n },\n computed: {\n items: function items() {\n return this.parent.items;\n },\n index: function index() {\n return this.items.indexOf(this);\n },\n currentName: function currentName() {\n return isDef(this.name) ? this.name : this.index;\n },\n expanded: function expanded() {\n var _this = this;\n\n if (!this.parent) {\n return null;\n }\n\n var value = this.parent.value;\n return this.parent.accordion ? value === this.currentName : value.some(function (name) {\n return name === _this.currentName;\n });\n }\n },\n created: function created() {\n this.findParent('van-collapse');\n this.items.push(this);\n this.show = this.expanded;\n this.inited = this.expanded;\n },\n destroyed: function destroyed() {\n this.items.splice(this.index, 1);\n },\n watch: {\n expanded: function expanded(_expanded, prev) {\n var _this2 = this;\n\n if (prev === null) {\n return;\n }\n\n if (_expanded) {\n this.show = true;\n this.inited = true;\n }\n\n raf(function () {\n var _this2$$refs = _this2.$refs,\n content = _this2$$refs.content,\n wrapper = _this2$$refs.wrapper;\n\n if (!content || !wrapper) {\n return;\n }\n\n var clientHeight = content.clientHeight;\n\n if (clientHeight) {\n var contentHeight = clientHeight + \"px\";\n wrapper.style.height = _expanded ? 0 : contentHeight;\n raf(function () {\n wrapper.style.height = _expanded ? contentHeight : 0;\n });\n } else {\n _this2.onTransitionEnd();\n }\n });\n }\n },\n methods: {\n onClick: function onClick() {\n if (this.disabled) {\n return;\n }\n\n var parent = this.parent;\n var name = parent.accordion && this.currentName === parent.value ? '' : this.currentName;\n var expanded = !this.expanded;\n this.parent[\"switch\"](name, expanded);\n },\n onTransitionEnd: function onTransitionEnd() {\n if (!this.expanded) {\n this.show = false;\n } else {\n this.$refs.wrapper.style.height = null;\n }\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var titleSlots = CELL_SLOTS.reduce(function (slots, name) {\n if (_this3.slots(name)) {\n slots[name] = function () {\n return _this3.slots(name);\n };\n }\n\n return slots;\n }, {});\n\n if (this.slots('value')) {\n titleSlots[\"default\"] = function () {\n return _this3.slots('value');\n };\n }\n\n var Title = h(Cell, {\n \"class\": bem('title', {\n disabled: this.disabled,\n expanded: this.expanded\n }),\n \"on\": {\n \"click\": this.onClick\n },\n \"scopedSlots\": titleSlots,\n \"props\": _extends({}, this.$props)\n });\n var Content = this.inited && h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.show\n }],\n \"ref\": \"wrapper\",\n \"class\": bem('wrapper'),\n \"on\": {\n \"transitionend\": this.onTransitionEnd\n }\n }, [h(\"div\", {\n \"ref\": \"content\",\n \"class\": bem('content')\n }, [this.slots()])]);\n return h(\"div\", {\n \"class\": [bem(), {\n 'van-hairline--top': this.index\n }]\n }, [Title, Content]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Cell from '../cell'; // Types\n\nvar _use = use('contact-card'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction ContactCard(h, props, slots, ctx) {\n var type = props.type,\n editable = props.editable;\n return h(Cell, _mergeJSXProps([{\n \"attrs\": {\n \"center\": true,\n \"border\": false,\n \"isLink\": editable,\n \"valueClass\": bem('value'),\n \"icon\": type === 'edit' ? 'contact' : 'add-square'\n },\n \"class\": bem([type]),\n \"on\": {\n \"click\": function click(event) {\n if (editable) {\n emit(ctx, 'click', event);\n }\n }\n }\n }, inherit(ctx)]), [type === 'add' ? props.addText || t('addText') : [h(\"div\", [t('name') + \"\\uFF1A\" + props.name]), h(\"div\", [t('tel') + \"\\uFF1A\" + props.tel])]]);\n}\n\nContactCard.props = {\n tel: String,\n name: String,\n addText: String,\n editable: {\n type: Boolean,\n \"default\": true\n },\n type: {\n type: String,\n \"default\": 'add'\n }\n};\nexport default sfc(ContactCard);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\nimport Button from '../button';\nimport Field from '../field';\nimport Toast from '../toast';\nimport Dialog from '../dialog';\nimport { isMobile } from '../utils/validate/mobile';\n\nvar _use = use('contact-edit'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nvar defaultContact = {\n tel: '',\n name: ''\n};\nexport default sfc({\n props: {\n isEdit: Boolean,\n isSaving: Boolean,\n isDeleting: Boolean,\n contactInfo: {\n type: Object,\n \"default\": function _default() {\n return _extends({}, defaultContact);\n }\n },\n telValidator: {\n type: Function,\n \"default\": isMobile\n }\n },\n data: function data() {\n return {\n data: _extends({}, defaultContact, this.contactInfo),\n errorInfo: {\n name: false,\n tel: false\n }\n };\n },\n watch: {\n contactInfo: function contactInfo(val) {\n this.data = _extends({}, defaultContact, val);\n }\n },\n methods: {\n onFocus: function onFocus(key) {\n this.errorInfo[key] = false;\n },\n getErrorMessageByKey: function getErrorMessageByKey(key) {\n var value = this.data[key].trim();\n\n switch (key) {\n case 'name':\n return value ? '' : t('nameEmpty');\n\n case 'tel':\n return this.telValidator(value) ? '' : t('telInvalid');\n }\n },\n onSave: function onSave() {\n var _this = this;\n\n var isValid = ['name', 'tel'].every(function (item) {\n var msg = _this.getErrorMessageByKey(item);\n\n if (msg) {\n _this.errorInfo[item] = true;\n Toast(msg);\n }\n\n return !msg;\n });\n\n if (isValid && !this.isSaving) {\n this.$emit('save', this.data);\n }\n },\n onDelete: function onDelete() {\n var _this2 = this;\n\n Dialog.confirm({\n message: t('confirmDelete')\n }).then(function () {\n _this2.$emit('delete', _this2.data);\n });\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var data = this.data,\n errorInfo = this.errorInfo;\n\n var onFocus = function onFocus(name) {\n return function () {\n return _this3.onFocus(name);\n };\n };\n\n return h(\"div\", {\n \"class\": bem()\n }, [h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"maxlength\": \"30\",\n \"label\": t('name'),\n \"placeholder\": t('nameEmpty'),\n \"error\": errorInfo.name\n },\n \"on\": {\n \"focus\": onFocus('name')\n },\n \"model\": {\n value: data.name,\n callback: function callback($$v) {\n data.name = $$v;\n }\n }\n }), h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"type\": \"tel\",\n \"label\": t('tel'),\n \"placeholder\": t('telEmpty'),\n \"error\": errorInfo.tel\n },\n \"on\": {\n \"focus\": onFocus('tel')\n },\n \"model\": {\n value: data.tel,\n callback: function callback($$v) {\n data.tel = $$v;\n }\n }\n }), h(\"div\", {\n \"class\": bem('buttons')\n }, [h(Button, {\n \"attrs\": {\n \"block\": true,\n \"type\": \"danger\",\n \"text\": t('save'),\n \"loading\": this.isSaving\n },\n \"on\": {\n \"click\": this.onSave\n }\n }), this.isEdit && h(Button, {\n \"attrs\": {\n \"block\": true,\n \"text\": t('delete'),\n \"loading\": this.isDeleting\n },\n \"on\": {\n \"click\": this.onDelete\n }\n })])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Icon from '../icon';\nimport Cell from '../cell';\nimport Button from '../button';\nimport Radio from '../radio';\nimport RadioGroup from '../radio-group'; // Types\n\nvar _use = use('contact-list'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction ContactList(h, props, slots, ctx) {\n var List = props.list.map(function (item, index) {\n var onClick = function onClick() {\n emit(ctx, 'input', item.id);\n emit(ctx, 'select', item, index);\n };\n\n return h(Cell, {\n \"key\": item.id,\n \"attrs\": {\n \"isLink\": true,\n \"valueClass\": bem('item-value')\n },\n \"class\": bem('item'),\n \"scopedSlots\": {\n \"default\": function _default() {\n return h(Radio, {\n \"attrs\": {\n \"name\": item.id\n },\n \"on\": {\n \"click\": onClick\n }\n }, [h(\"div\", {\n \"class\": bem('name')\n }, [item.name + \"\\uFF0C\" + item.tel])]);\n },\n 'right-icon': function rightIcon() {\n return h(Icon, {\n \"attrs\": {\n \"name\": \"edit\"\n },\n \"class\": bem('edit'),\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n emit(ctx, 'edit', item, index);\n }\n }\n });\n }\n },\n \"on\": {\n \"click\": onClick\n }\n });\n });\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [h(RadioGroup, {\n \"attrs\": {\n \"value\": props.value\n },\n \"class\": bem('group')\n }, [List]), h(Button, {\n \"attrs\": {\n \"square\": true,\n \"size\": \"large\",\n \"type\": \"danger\",\n \"text\": props.addText || t('addText')\n },\n \"class\": bem('add'),\n \"on\": {\n \"click\": function click() {\n emit(ctx, 'add');\n }\n }\n })]);\n}\n\nContactList.props = {\n value: null,\n list: Array,\n addText: String\n};\nexport default sfc(ContactList);","import { use } from '../utils';\nimport Checkbox from '../checkbox';\n\nvar _use = use('coupon'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction padZero(num) {\n return (num < 10 ? '0' : '') + num;\n}\n\nfunction getDate(timeStamp) {\n var date = new Date(timeStamp * 1000);\n return date.getFullYear() + \".\" + padZero(date.getMonth() + 1) + \".\" + padZero(date.getDate());\n}\n\nfunction formatDiscount(discount) {\n return (discount / 10).toFixed(discount % 10 === 0 ? 0 : 1);\n}\n\nfunction formatAmount(amount) {\n return (amount / 100).toFixed(amount % 100 === 0 ? 0 : amount % 10 === 0 ? 1 : 2);\n}\n\nexport default sfc({\n props: {\n coupon: Object,\n chosen: Boolean,\n disabled: Boolean,\n currency: {\n type: String,\n \"default\": '¥'\n }\n },\n computed: {\n validPeriod: function validPeriod() {\n return t('valid') + \"\\uFF1A\" + getDate(this.coupon.startAt) + \" - \" + getDate(this.coupon.endAt);\n },\n faceAmount: function faceAmount() {\n var coupon = this.coupon;\n\n if (coupon.valueDesc) {\n return coupon.valueDesc + \"\" + (coupon.unitDesc || '') + \"\";\n }\n\n return coupon.denominations ? \"\" + this.currency + \" \" + formatAmount(this.coupon.denominations) : coupon.discount ? t('discount', formatDiscount(this.coupon.discount)) : '';\n },\n conditionMessage: function conditionMessage() {\n var condition = this.coupon.originCondition;\n condition = condition % 100 === 0 ? Math.round(condition / 100) : (condition / 100).toFixed(2);\n return condition === 0 ? t('unlimited') : t('condition', condition);\n }\n },\n render: function render(h) {\n var coupon = this.coupon,\n disabled = this.disabled;\n var description = disabled && coupon.reason || coupon.description;\n return h(\"div\", {\n \"class\": bem({\n disabled: disabled\n })\n }, [h(\"div\", {\n \"class\": bem('content')\n }, [h(\"div\", {\n \"class\": bem('head')\n }, [h(\"h2\", {\n \"domProps\": {\n \"innerHTML\": this.faceAmount\n }\n }), h(\"p\", [this.coupon.condition || this.conditionMessage])]), h(\"div\", {\n \"class\": bem('body')\n }, [h(\"h2\", [coupon.name]), h(\"p\", [this.validPeriod]), this.chosen && h(Checkbox, {\n \"attrs\": {\n \"value\": true\n },\n \"class\": bem('corner')\n })])]), description && h(\"p\", {\n \"class\": bem('description')\n }, [description])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional';\nimport Cell from '../cell'; // Types\n\nvar _use = use('coupon-cell'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction formatValue(props) {\n var coupons = props.coupons,\n chosenCoupon = props.chosenCoupon,\n currency = props.currency;\n var coupon = coupons[chosenCoupon];\n\n if (coupon) {\n var value = coupon.denominations || coupon.value;\n return \"-\" + currency + (value / 100).toFixed(2);\n }\n\n return coupons.length === 0 ? t('tips') : t('count', coupons.length);\n}\n\nfunction CouponCell(h, props, slots, ctx) {\n var valueClass = props.coupons[props.chosenCoupon] ? 'van-coupon-cell--selected' : '';\n var value = formatValue(props);\n return h(Cell, _mergeJSXProps([{\n \"class\": bem(),\n \"attrs\": {\n \"value\": value,\n \"title\": props.title || t('title'),\n \"border\": props.border,\n \"isLink\": props.editable,\n \"valueClass\": valueClass\n }\n }, inherit(ctx, true)]));\n}\n\nCouponCell.model = {\n prop: 'chosenCoupon'\n};\nCouponCell.props = {\n title: String,\n coupons: Array,\n currency: {\n type: String,\n \"default\": '¥'\n },\n border: {\n type: Boolean,\n \"default\": true\n },\n editable: {\n type: Boolean,\n \"default\": true\n },\n chosenCoupon: {\n type: Number,\n \"default\": -1\n }\n};\nexport default sfc(CouponCell);","/* eslint-disable object-shorthand */\nimport { use } from '../utils';\nimport { FindParentMixin } from '../mixins/find-parent';\n\nvar _use = use('tab'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n mixins: [FindParentMixin],\n props: {\n title: String,\n disabled: Boolean\n },\n data: function data() {\n return {\n inited: false\n };\n },\n computed: {\n index: function index() {\n return this.parent.tabs.indexOf(this);\n },\n selected: function selected() {\n return this.index === this.parent.curActive;\n }\n },\n watch: {\n 'parent.curActive': function parentCurActive() {\n this.inited = this.inited || this.selected;\n },\n title: function title() {\n this.parent.setLine();\n }\n },\n created: function created() {\n this.findParent('van-tabs');\n },\n mounted: function mounted() {\n var tabs = this.parent.tabs;\n var index = this.parent.slots().indexOf(this.$vnode);\n tabs.splice(index === -1 ? tabs.length : index, 0, this);\n\n if (this.slots('title')) {\n this.parent.renderTitle(this.$refs.title, this.index);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.parent.tabs.splice(this.index, 1);\n },\n render: function render(h) {\n var slots = this.slots;\n var shouldRender = this.inited || !this.parent.lazyRender;\n return h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.selected || this.parent.animated\n }],\n \"class\": bem('pane')\n }, [shouldRender ? slots() : h(), slots('title') && h(\"div\", {\n \"ref\": \"title\"\n }, [slots('title')])]);\n }\n});","import { use, isDef } from '../utils';\nimport { raf } from '../utils/raf';\nimport { on, off } from '../utils/event';\nimport { TouchMixin } from '../mixins/touch';\nimport { setScrollTop, getScrollTop, getElementTop, getScrollEventTarget } from '../utils/scroll';\n\nvar _use = use('tabs'),\n sfc = _use[0],\n bem = _use[1];\n\nvar tabBem = use('tab')[1];\nexport default sfc({\n mixins: [TouchMixin],\n model: {\n prop: 'active'\n },\n props: {\n color: String,\n sticky: Boolean,\n animated: Boolean,\n offsetTop: Number,\n swipeable: Boolean,\n background: String,\n titleActiveColor: String,\n titleInactiveColor: String,\n ellipsis: {\n type: Boolean,\n \"default\": true\n },\n lazyRender: {\n type: Boolean,\n \"default\": true\n },\n lineWidth: {\n type: Number,\n \"default\": null\n },\n lineHeight: {\n type: Number,\n \"default\": null\n },\n active: {\n type: [Number, String],\n \"default\": 0\n },\n type: {\n type: String,\n \"default\": 'line'\n },\n duration: {\n type: Number,\n \"default\": 0.3\n },\n swipeThreshold: {\n type: Number,\n \"default\": 4\n }\n },\n data: function data() {\n return {\n tabs: [],\n position: '',\n curActive: null,\n lineStyle: {\n backgroundColor: this.color\n },\n events: {\n resize: false,\n sticky: false,\n swipeable: false\n }\n };\n },\n computed: {\n // whether the nav is scrollable\n scrollable: function scrollable() {\n return this.tabs.length > this.swipeThreshold || !this.ellipsis;\n },\n wrapStyle: function wrapStyle() {\n switch (this.position) {\n case 'top':\n return {\n top: this.offsetTop + 'px',\n position: 'fixed'\n };\n\n case 'bottom':\n return {\n top: 'auto',\n bottom: 0\n };\n\n default:\n return null;\n }\n },\n navStyle: function navStyle() {\n return {\n borderColor: this.color,\n background: this.background\n };\n },\n trackStyle: function trackStyle() {\n if (this.animated) {\n return {\n left: -1 * this.curActive * 100 + \"%\",\n transitionDuration: this.duration + \"s\"\n };\n }\n }\n },\n watch: {\n active: function active(val) {\n if (val !== this.curActive) {\n this.correctActive(val);\n }\n },\n color: function color() {\n this.setLine();\n },\n tabs: function tabs() {\n this.correctActive(this.curActive || this.active);\n this.scrollIntoView();\n this.setLine();\n },\n curActive: function curActive() {\n this.scrollIntoView();\n this.setLine(); // scroll to correct position\n\n if (this.position === 'top' || this.position === 'bottom') {\n setScrollTop(window, getElementTop(this.$el) - this.offsetTop);\n }\n },\n sticky: function sticky() {\n this.handlers(true);\n },\n swipeable: function swipeable() {\n this.handlers(true);\n }\n },\n mounted: function mounted() {\n this.onShow();\n },\n activated: function activated() {\n this.onShow();\n this.setLine();\n },\n deactivated: function deactivated() {\n this.handlers(false);\n },\n beforeDestroy: function beforeDestroy() {\n this.handlers(false);\n },\n methods: {\n onShow: function onShow() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.inited = true;\n\n _this.handlers(true);\n\n _this.scrollIntoView(true);\n });\n },\n // whether to bind sticky listener\n handlers: function handlers(bind) {\n var events = this.events;\n var sticky = this.sticky && bind;\n var swipeable = this.swipeable && bind; // listen to window resize event\n\n if (events.resize !== bind) {\n events.resize = bind;\n (bind ? on : off)(window, 'resize', this.setLine, true);\n } // listen to scroll event\n\n\n if (events.sticky !== sticky) {\n events.sticky = sticky;\n this.scrollEl = this.scrollEl || getScrollEventTarget(this.$el);\n (sticky ? on : off)(this.scrollEl, 'scroll', this.onScroll, true);\n this.onScroll();\n } // listen to touch event\n\n\n if (events.swipeable !== swipeable) {\n events.swipeable = swipeable;\n var content = this.$refs.content;\n var action = swipeable ? on : off;\n action(content, 'touchstart', this.touchStart);\n action(content, 'touchmove', this.touchMove);\n action(content, 'touchend', this.onTouchEnd);\n action(content, 'touchcancel', this.onTouchEnd);\n }\n },\n // watch swipe touch end\n onTouchEnd: function onTouchEnd() {\n var direction = this.direction,\n deltaX = this.deltaX,\n curActive = this.curActive;\n var minSwipeDistance = 50;\n /* istanbul ignore else */\n\n if (direction === 'horizontal' && this.offsetX >= minSwipeDistance) {\n /* istanbul ignore else */\n if (deltaX > 0 && curActive !== 0) {\n this.setCurActive(curActive - 1);\n } else if (deltaX < 0 && curActive !== this.tabs.length - 1) {\n this.setCurActive(curActive + 1);\n }\n }\n },\n // adjust tab position\n onScroll: function onScroll() {\n var scrollTop = getScrollTop(window) + this.offsetTop;\n var elTopToPageTop = getElementTop(this.$el);\n var elBottomToPageTop = elTopToPageTop + this.$el.offsetHeight - this.$refs.wrap.offsetHeight;\n\n if (scrollTop > elBottomToPageTop) {\n this.position = 'bottom';\n } else if (scrollTop > elTopToPageTop) {\n this.position = 'top';\n } else {\n this.position = '';\n }\n\n var scrollParams = {\n scrollTop: scrollTop,\n isFixed: this.position === 'top'\n };\n this.$emit('scroll', scrollParams);\n },\n // update nav bar style\n setLine: function setLine() {\n var _this2 = this;\n\n var shouldAnimate = this.inited;\n this.$nextTick(function () {\n var tabs = _this2.$refs.tabs;\n\n if (!tabs || !tabs[_this2.curActive] || _this2.type !== 'line') {\n return;\n }\n\n var tab = tabs[_this2.curActive];\n var lineWidth = _this2.lineWidth,\n lineHeight = _this2.lineHeight;\n var width = isDef(lineWidth) ? lineWidth : tab.offsetWidth / 2;\n var left = tab.offsetLeft + (tab.offsetWidth - width) / 2;\n var lineStyle = {\n width: width + \"px\",\n backgroundColor: _this2.color,\n transform: \"translateX(\" + left + \"px)\"\n };\n\n if (shouldAnimate) {\n lineStyle.transitionDuration = _this2.duration + \"s\";\n }\n\n if (isDef(lineHeight)) {\n var height = lineHeight + \"px\";\n lineStyle.height = height;\n lineStyle.borderRadius = height;\n }\n\n _this2.lineStyle = lineStyle;\n });\n },\n // correct the value of active\n correctActive: function correctActive(active) {\n active = +active;\n var exist = this.tabs.some(function (tab) {\n return tab.index === active;\n });\n var defaultActive = (this.tabs[0] || {}).index || 0;\n this.setCurActive(exist ? active : defaultActive);\n },\n setCurActive: function setCurActive(active) {\n active = this.findAvailableTab(active, active < this.curActive);\n\n if (isDef(active) && active !== this.curActive) {\n this.$emit('input', active);\n\n if (this.curActive !== null) {\n this.$emit('change', active, this.tabs[active].title);\n }\n\n this.curActive = active;\n }\n },\n findAvailableTab: function findAvailableTab(active, reverse) {\n var diff = reverse ? -1 : 1;\n var index = active;\n\n while (index >= 0 && index < this.tabs.length) {\n if (!this.tabs[index].disabled) {\n return index;\n }\n\n index += diff;\n }\n },\n // emit event when clicked\n onClick: function onClick(index) {\n var _this$tabs$index = this.tabs[index],\n title = _this$tabs$index.title,\n disabled = _this$tabs$index.disabled;\n\n if (disabled) {\n this.$emit('disabled', index, title);\n } else {\n this.setCurActive(index);\n this.$emit('click', index, title);\n }\n },\n // scroll active tab into view\n scrollIntoView: function scrollIntoView(immediate) {\n var tabs = this.$refs.tabs;\n\n if (!this.scrollable || !tabs || !tabs[this.curActive]) {\n return;\n }\n\n var nav = this.$refs.nav;\n var scrollLeft = nav.scrollLeft,\n navWidth = nav.offsetWidth;\n var _tabs$this$curActive = tabs[this.curActive],\n offsetLeft = _tabs$this$curActive.offsetLeft,\n tabWidth = _tabs$this$curActive.offsetWidth;\n this.scrollTo(nav, scrollLeft, offsetLeft - (navWidth - tabWidth) / 2, immediate);\n },\n // animate the scrollLeft of nav\n scrollTo: function scrollTo(el, from, to, immediate) {\n if (immediate) {\n el.scrollLeft += to - from;\n return;\n }\n\n var count = 0;\n var frames = Math.round(this.duration * 1000 / 16);\n\n var animate = function animate() {\n el.scrollLeft += (to - from) / frames;\n /* istanbul ignore next */\n\n if (++count < frames) {\n raf(animate);\n }\n };\n\n animate();\n },\n // render title slot of child tab\n renderTitle: function renderTitle(el, index) {\n var _this3 = this;\n\n this.$nextTick(function () {\n var title = _this3.$refs.title[index];\n title.parentNode.replaceChild(el, title);\n });\n },\n getTabStyle: function getTabStyle(item, index) {\n var style = {};\n var color = this.color;\n var active = index === this.curActive;\n var isCard = this.type === 'card'; // theme color\n\n if (color) {\n if (!item.disabled && isCard && !active) {\n style.color = color;\n }\n\n if (!item.disabled && isCard && active) {\n style.backgroundColor = color;\n }\n\n if (isCard) {\n style.borderColor = color;\n }\n }\n\n var titleColor = active ? this.titleActiveColor : this.titleInactiveColor;\n\n if (titleColor) {\n style.color = titleColor;\n }\n\n if (this.scrollable && this.ellipsis) {\n style.flexBasis = 88 / this.swipeThreshold + '%';\n }\n\n return style;\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var type = this.type,\n ellipsis = this.ellipsis,\n animated = this.animated,\n scrollable = this.scrollable;\n var Nav = this.tabs.map(function (tab, index) {\n return h(\"div\", {\n \"ref\": \"tabs\",\n \"refInFor\": true,\n \"class\": tabBem({\n active: index === _this4.curActive,\n disabled: tab.disabled,\n complete: !ellipsis\n }),\n \"style\": _this4.getTabStyle(tab, index),\n \"on\": {\n \"click\": function click() {\n _this4.onClick(index);\n }\n }\n }, [h(\"span\", {\n \"ref\": \"title\",\n \"refInFor\": true,\n \"class\": {\n 'van-ellipsis': ellipsis\n }\n }, [tab.title])]);\n });\n return h(\"div\", {\n \"class\": bem([type])\n }, [h(\"div\", {\n \"ref\": \"wrap\",\n \"style\": this.wrapStyle,\n \"class\": [bem('wrap', {\n scrollable: scrollable\n }), {\n 'van-hairline--top-bottom': type === 'line'\n }]\n }, [h(\"div\", {\n \"ref\": \"nav\",\n \"class\": bem('nav', [type]),\n \"style\": this.navStyle\n }, [this.slots('nav-left'), type === 'line' && h(\"div\", {\n \"class\": bem('line'),\n \"style\": this.lineStyle\n }), Nav, this.slots('nav-right')])]), h(\"div\", {\n \"ref\": \"content\",\n \"class\": bem('content', {\n animated: animated\n })\n }, [animated ? h(\"div\", {\n \"class\": bem('track'),\n \"style\": this.trackStyle\n }, [this.slots()]) : this.slots()])]);\n }\n});","import { use } from '../utils';\nimport Tab from '../tab';\nimport Tabs from '../tabs';\nimport Field from '../field';\nimport Button from '../button';\nimport Coupon from '../coupon';\n\nvar _use = use('coupon-list'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nvar EMPTY_IMAGE = 'https://img.yzcdn.cn/vant/coupon-empty.png';\nexport default sfc({\n model: {\n prop: 'code'\n },\n props: {\n code: String,\n coupons: Array,\n disabledCoupons: Array,\n closeButtonText: String,\n inputPlaceholder: String,\n exchangeButtonText: String,\n exchangeButtonLoading: Boolean,\n exchangeButtonDisabled: Boolean,\n exchangeMinLength: {\n type: Number,\n \"default\": 1\n },\n chosenCoupon: {\n type: Number,\n \"default\": -1\n },\n displayedCouponIndex: {\n type: Number,\n \"default\": -1\n },\n showExchangeBar: {\n type: Boolean,\n \"default\": true\n },\n showCloseButton: {\n type: Boolean,\n \"default\": true\n },\n currency: {\n type: String,\n \"default\": '¥'\n }\n },\n data: function data() {\n return {\n tab: 0,\n winHeight: window.innerHeight,\n currentCode: this.code || ''\n };\n },\n computed: {\n buttonDisabled: function buttonDisabled() {\n return !this.exchangeButtonLoading && (this.exchangeButtonDisabled || !this.currentCode || this.currentCode.length < this.exchangeMinLength);\n },\n title: function title() {\n return t('enable') + \" (\" + this.coupons.length + \")\";\n },\n disabledTitle: function disabledTitle() {\n return t('disabled') + \" (\" + this.disabledCoupons.length + \")\";\n },\n listStyle: function listStyle() {\n return {\n height: this.winHeight - (this.showExchangeBar ? 140 : 94) + 'px'\n };\n }\n },\n watch: {\n code: function code(_code) {\n this.currentCode = _code;\n },\n currentCode: function currentCode(code) {\n this.$emit('input', code);\n },\n displayedCouponIndex: function displayedCouponIndex(val) {\n this.scrollToShowCoupon(val);\n }\n },\n mounted: function mounted() {\n this.scrollToShowCoupon(this.displayedCouponIndex);\n },\n methods: {\n onClickExchangeButton: function onClickExchangeButton() {\n this.$emit('exchange', this.currentCode); // auto clear currentCode when not use vModel\n\n if (!this.code) {\n this.currentCode = '';\n }\n },\n // scroll to show specific coupon\n scrollToShowCoupon: function scrollToShowCoupon(index) {\n var _this = this;\n\n if (index === -1) {\n return;\n }\n\n this.$nextTick(function () {\n var _this$$refs = _this.$refs,\n card = _this$$refs.card,\n list = _this$$refs.list;\n /* istanbul ignore next */\n\n if (list && card && card[index]) {\n list.scrollTop = card[index].$el.offsetTop - 100;\n }\n });\n },\n renderEmpty: function renderEmpty() {\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": bem('empty')\n }, [h(\"img\", {\n \"attrs\": {\n \"src\": EMPTY_IMAGE\n }\n }), h(\"p\", [t('empty')])]);\n },\n renderExchangeButton: function renderExchangeButton() {\n var h = this.$createElement;\n return h(Button, {\n \"attrs\": {\n \"size\": \"small\",\n \"type\": \"danger\",\n \"text\": this.exchangeButtonText || t('exchange'),\n \"loading\": this.exchangeButtonLoading,\n \"disabled\": this.buttonDisabled\n },\n \"class\": bem('exchange'),\n \"on\": {\n \"click\": this.onClickExchangeButton\n }\n });\n }\n },\n render: function render(h) {\n var _this2 = this;\n\n var ExchangeBar = this.showExchangeBar && h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"border\": false,\n \"placeholder\": this.inputPlaceholder || t('placeholder'),\n \"maxlength\": \"20\"\n },\n \"class\": bem('field'),\n \"scopedSlots\": {\n button: this.renderExchangeButton\n },\n \"model\": {\n value: _this2.currentCode,\n callback: function callback($$v) {\n _this2.currentCode = $$v;\n }\n }\n });\n\n var onChange = function onChange(index) {\n return function () {\n return _this2.$emit('change', index);\n };\n };\n\n var CouponTab = h(Tab, {\n \"attrs\": {\n \"title\": this.title\n }\n }, [h(\"div\", {\n \"class\": bem('list'),\n \"style\": this.listStyle\n }, [this.coupons.map(function (coupon, index) {\n return h(Coupon, {\n \"ref\": \"card\",\n \"key\": coupon.id,\n \"attrs\": {\n \"coupon\": coupon,\n \"currency\": _this2.currency,\n \"chosen\": index === _this2.chosenCoupon\n },\n \"nativeOn\": {\n \"click\": onChange(index)\n }\n });\n }), !this.coupons.length && this.renderEmpty()])]);\n var DisabledCouponTab = h(Tab, {\n \"attrs\": {\n \"title\": this.disabledTitle\n }\n }, [h(\"div\", {\n \"class\": bem('list'),\n \"style\": this.listStyle\n }, [this.disabledCoupons.map(function (coupon) {\n return h(Coupon, {\n \"attrs\": {\n \"disabled\": true,\n \"coupon\": coupon,\n \"currency\": _this2.currency\n },\n \"key\": coupon.id\n });\n }), !this.disabledCoupons.length && this.renderEmpty()])]);\n return h(\"div\", {\n \"class\": bem()\n }, [ExchangeBar, h(Tabs, {\n \"class\": bem('tab'),\n \"attrs\": {\n \"line-width\": 120\n },\n \"model\": {\n value: _this2.tab,\n callback: function callback($$v) {\n _this2.tab = $$v;\n }\n }\n }, [CouponTab, DisabledCouponTab]), h(Button, {\n \"directives\": [{\n name: \"show\",\n value: this.showCloseButton\n }],\n \"attrs\": {\n \"size\": \"large\",\n \"text\": this.closeButtonText || t('close')\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": onChange(-1)\n }\n })]);\n }\n});","export function isValidDate(date) {\n return Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime());\n}\nexport function padZero(val) {\n return (\"00\" + val).slice(-2);\n}\nexport function times(n, iteratee) {\n var index = -1;\n var result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n\n return result;\n}\nexport function getTrueValue(formattedValue) {\n if (!formattedValue) return;\n\n while (isNaN(parseInt(formattedValue, 10))) {\n formattedValue = formattedValue.slice(1);\n }\n\n return parseInt(formattedValue, 10);\n}\nexport function getMonthEndDay(year, month) {\n return 32 - new Date(year, month - 1, 32).getDate();\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use, range } from '../utils';\nimport Picker from '../picker';\nimport { pickerProps } from '../picker/shared';\nimport { times, padZero, isValidDate, getTrueValue, getMonthEndDay } from './utils';\n\nvar _use = use('datetime-picker'),\n sfc = _use[0],\n bem = _use[1];\n\nvar currentYear = new Date().getFullYear();\nexport default sfc({\n props: _extends({}, pickerProps, {\n value: null,\n minHour: Number,\n minMinute: Number,\n type: {\n type: String,\n \"default\": 'datetime'\n },\n showToolbar: {\n type: Boolean,\n \"default\": true\n },\n format: {\n type: String,\n \"default\": 'YYYY.MM.DD HH时 mm分'\n },\n formatter: {\n type: Function,\n \"default\": function _default(type, value) {\n return value;\n }\n },\n minDate: {\n type: Date,\n \"default\": function _default() {\n return new Date(currentYear - 10, 0, 1);\n },\n validator: isValidDate\n },\n maxDate: {\n type: Date,\n \"default\": function _default() {\n return new Date(currentYear + 10, 11, 31);\n },\n validator: isValidDate\n },\n maxHour: {\n type: Number,\n \"default\": 23\n },\n maxMinute: {\n type: Number,\n \"default\": 59\n }\n }),\n data: function data() {\n return {\n innerValue: this.correctValue(this.value)\n };\n },\n watch: {\n value: function value(val) {\n val = this.correctValue(val);\n var isEqual = this.type === 'time' ? val === this.innerValue : val.valueOf() === this.innerValue.valueOf();\n\n if (!isEqual) {\n this.innerValue = val;\n\n if (this.type === 'time') {\n this.updateColumnValue(val);\n }\n }\n },\n innerValue: function innerValue(val) {\n this.$emit('input', val);\n },\n columns: function columns() {\n this.updateColumnValue(this.innerValue);\n }\n },\n computed: {\n ranges: function ranges() {\n if (this.type === 'time') {\n return [{\n type: 'hour',\n range: [this.minHour, this.maxHour]\n }, {\n type: 'minute',\n range: [this.minMinute, this.maxMinute]\n }];\n }\n\n var _this$getBoundary = this.getBoundary('max', this.innerValue),\n maxYear = _this$getBoundary.maxYear,\n maxDate = _this$getBoundary.maxDate,\n maxMonth = _this$getBoundary.maxMonth,\n maxHour = _this$getBoundary.maxHour,\n maxMinute = _this$getBoundary.maxMinute;\n\n var _this$getBoundary2 = this.getBoundary('min', this.innerValue),\n minYear = _this$getBoundary2.minYear,\n minDate = _this$getBoundary2.minDate,\n minMonth = _this$getBoundary2.minMonth,\n minHour = _this$getBoundary2.minHour,\n minMinute = _this$getBoundary2.minMinute;\n\n var result = [{\n type: 'year',\n range: [minYear, maxYear]\n }, {\n type: 'month',\n range: [minMonth, maxMonth]\n }, {\n type: 'day',\n range: [minDate, maxDate]\n }, {\n type: 'hour',\n range: [minHour, maxHour]\n }, {\n type: 'minute',\n range: [minMinute, maxMinute]\n }];\n if (this.type === 'date') result.splice(3, 2);\n if (this.type === 'year-month') result.splice(2, 3);\n return result;\n },\n columns: function columns() {\n var _this = this;\n\n var results = this.ranges.map(function (_ref) {\n var type = _ref.type,\n rangeArr = _ref.range;\n var values = times(rangeArr[1] - rangeArr[0] + 1, function (index) {\n var value = rangeArr[0] + index;\n value = value < 10 ? \"0\" + value : \"\" + value;\n return _this.formatter(type, value);\n });\n return {\n values: values\n };\n });\n return results;\n }\n },\n mounted: function mounted() {\n this.updateColumnValue(this.innerValue);\n },\n methods: {\n correctValue: function correctValue(value) {\n // validate value\n var isDateType = this.type !== 'time';\n\n if (isDateType && !isValidDate(value)) {\n value = this.minDate;\n } else if (!value) {\n var minHour = this.minHour;\n value = (minHour > 10 ? minHour : '0' + minHour) + \":00\";\n } // time type\n\n\n if (!isDateType) {\n var _value$split = value.split(':'),\n hour = _value$split[0],\n minute = _value$split[1];\n\n hour = padZero(range(hour, this.minHour, this.maxHour));\n minute = padZero(range(minute, this.minMinute, this.maxMinute));\n return hour + \":\" + minute;\n } // date type\n\n\n value = Math.max(value, this.minDate.getTime());\n value = Math.min(value, this.maxDate.getTime());\n return new Date(value);\n },\n getBoundary: function getBoundary(type, value) {\n var _ref2;\n\n var boundary = this[type + \"Date\"];\n var year = boundary.getFullYear();\n var month = 1;\n var date = 1;\n var hour = 0;\n var minute = 0;\n\n if (type === 'max') {\n month = 12;\n date = getMonthEndDay(value.getFullYear(), value.getMonth() + 1);\n hour = 23;\n minute = 59;\n }\n\n if (value.getFullYear() === year) {\n month = boundary.getMonth() + 1;\n\n if (value.getMonth() + 1 === month) {\n date = boundary.getDate();\n\n if (value.getDate() === date) {\n hour = boundary.getHours();\n\n if (value.getHours() === hour) {\n minute = boundary.getMinutes();\n }\n }\n }\n }\n\n return _ref2 = {}, _ref2[type + \"Year\"] = year, _ref2[type + \"Month\"] = month, _ref2[type + \"Date\"] = date, _ref2[type + \"Hour\"] = hour, _ref2[type + \"Minute\"] = minute, _ref2;\n },\n onConfirm: function onConfirm() {\n this.$emit('confirm', this.innerValue);\n },\n onChange: function onChange(picker) {\n var _this2 = this;\n\n var value;\n\n if (this.type === 'time') {\n var indexes = picker.getIndexes();\n value = indexes[0] + this.minHour + \":\" + (indexes[1] + this.minMinute);\n } else {\n var values = picker.getValues();\n var year = getTrueValue(values[0]);\n var month = getTrueValue(values[1]);\n var maxDate = getMonthEndDay(year, month);\n var date = getTrueValue(values[2]);\n\n if (this.type === 'year-month') {\n date = 1;\n }\n\n date = date > maxDate ? maxDate : date;\n var hour = 0;\n var minute = 0;\n\n if (this.type === 'datetime') {\n hour = getTrueValue(values[3]);\n minute = getTrueValue(values[4]);\n }\n\n value = new Date(year, month - 1, date, hour, minute);\n }\n\n this.innerValue = this.correctValue(value);\n this.$nextTick(function () {\n _this2.$nextTick(function () {\n _this2.$emit('change', picker);\n });\n });\n },\n updateColumnValue: function updateColumnValue(value) {\n var _this3 = this;\n\n var values = [];\n var formatter = this.formatter;\n\n if (this.type === 'time') {\n var pair = value.split(':');\n values = [formatter('hour', pair[0]), formatter('minute', pair[1])];\n } else {\n values = [formatter('year', \"\" + value.getFullYear()), formatter('month', padZero(value.getMonth() + 1)), formatter('day', padZero(value.getDate()))];\n\n if (this.type === 'datetime') {\n values.push(formatter('hour', padZero(value.getHours())), formatter('minute', padZero(value.getMinutes())));\n }\n\n if (this.type === 'year-month') {\n values = values.slice(0, 2);\n }\n }\n\n this.$nextTick(function () {\n _this3.$refs.picker.setValues(values);\n });\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var props = {};\n Object.keys(pickerProps).forEach(function (key) {\n props[key] = _this4[key];\n });\n return h(Picker, {\n \"class\": bem(),\n \"ref\": \"picker\",\n \"attrs\": {\n \"columns\": this.columns\n },\n \"on\": {\n \"change\": this.onChange,\n \"confirm\": this.onConfirm,\n \"cancel\": function cancel() {\n _this4.$emit('cancel');\n }\n },\n \"props\": _extends({}, props)\n });\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _use = use('goods-action'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction GoodsAction(h, props, slots, ctx) {\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n 'safe-area-inset-bottom': props.safeAreaInsetBottom\n })\n }, inherit(ctx, true)]), [slots[\"default\"] && slots[\"default\"]()]);\n}\n\nGoodsAction.props = {\n safeAreaInsetBottom: Boolean\n};\nexport default sfc(GoodsAction);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport Button from '../button';\nimport { emit, inherit } from '../utils/functional';\nimport { functionalRoute, routeProps } from '../utils/router'; // Types\n\nvar _use = use('goods-action-big-btn'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction GoodsActionBigBtn(h, props, slots, ctx) {\n var onClick = function onClick(event) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n };\n\n return h(Button, _mergeJSXProps([{\n \"attrs\": {\n \"square\": true,\n \"size\": \"large\",\n \"loading\": props.loading,\n \"disabled\": props.disabled,\n \"type\": props.primary ? 'danger' : 'warning'\n },\n \"class\": bem(),\n \"on\": {\n \"click\": onClick\n }\n }, inherit(ctx)]), [slots[\"default\"] ? slots[\"default\"]() : props.text]);\n}\n\nGoodsActionBigBtn.props = _extends({}, routeProps, {\n text: String,\n primary: Boolean,\n loading: Boolean,\n disabled: Boolean\n});\nexport default sfc(GoodsActionBigBtn);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport Icon from '../icon';\nimport { emit, inherit } from '../utils/functional';\nimport { functionalRoute, routeProps } from '../utils/router'; // Types\n\nvar _use = use('goods-action-mini-btn'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction GoodsActionMiniBtn(h, props, slots, ctx) {\n var onClick = function onClick(event) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n };\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": [bem(), 'van-hairline'],\n \"on\": {\n \"click\": onClick\n }\n }, inherit(ctx)]), [h(Icon, {\n \"class\": [bem('icon'), props.iconClass],\n \"attrs\": {\n \"tag\": \"div\",\n \"info\": props.info,\n \"name\": props.icon\n }\n }), slots[\"default\"] ? slots[\"default\"]() : props.text]);\n}\n\nGoodsActionMiniBtn.props = _extends({}, routeProps, {\n text: String,\n icon: String,\n info: [String, Number],\n iconClass: null\n});\nexport default sfc(GoodsActionMiniBtn);","import { use } from '../utils';\nimport { on, off, preventDefault } from '../utils/event';\nimport { TouchMixin } from '../mixins/touch';\n\nvar _use = use('swipe'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n mixins: [TouchMixin],\n props: {\n width: Number,\n height: Number,\n autoplay: Number,\n vertical: Boolean,\n initialSwipe: Number,\n indicatorColor: String,\n loop: {\n type: Boolean,\n \"default\": true\n },\n touchable: {\n type: Boolean,\n \"default\": true\n },\n showIndicators: {\n type: Boolean,\n \"default\": true\n },\n duration: {\n type: Number,\n \"default\": 500\n }\n },\n data: function data() {\n return {\n computedWidth: 0,\n computedHeight: 0,\n offset: 0,\n active: 0,\n deltaX: 0,\n deltaY: 0,\n swipes: [],\n swiping: false\n };\n },\n mounted: function mounted() {\n this.initialize();\n\n if (!this.$isServer) {\n on(window, 'resize', this.onResize, true);\n }\n },\n activated: function activated() {\n if (this.rendered) {\n this.initialize();\n }\n\n this.rendered = true;\n },\n destroyed: function destroyed() {\n this.clear();\n\n if (!this.$isServer) {\n off(window, 'resize', this.onResize, true);\n }\n },\n watch: {\n swipes: function swipes() {\n this.initialize();\n },\n initialSwipe: function initialSwipe() {\n this.initialize();\n },\n autoplay: function autoplay(_autoplay) {\n if (!_autoplay) {\n this.clear();\n } else {\n this.autoPlay();\n }\n }\n },\n computed: {\n count: function count() {\n return this.swipes.length;\n },\n delta: function delta() {\n return this.vertical ? this.deltaY : this.deltaX;\n },\n size: function size() {\n return this[this.vertical ? 'computedHeight' : 'computedWidth'];\n },\n trackSize: function trackSize() {\n return this.count * this.size;\n },\n activeIndicator: function activeIndicator() {\n return (this.active + this.count) % this.count;\n },\n isCorrectDirection: function isCorrectDirection() {\n var expect = this.vertical ? 'vertical' : 'horizontal';\n return this.direction === expect;\n },\n trackStyle: function trackStyle() {\n var _ref;\n\n var mainAxis = this.vertical ? 'height' : 'width';\n var crossAxis = this.vertical ? 'width' : 'height';\n return _ref = {}, _ref[mainAxis] = this.trackSize + \"px\", _ref[crossAxis] = this[crossAxis] ? this[crossAxis] + \"px\" : '', _ref.transitionDuration = (this.swiping ? 0 : this.duration) + \"ms\", _ref.transform = \"translate\" + (this.vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\", _ref;\n },\n indicatorStyle: function indicatorStyle() {\n return {\n backgroundColor: this.indicatorColor\n };\n }\n },\n methods: {\n // initialize swipe position\n initialize: function initialize(active) {\n if (active === void 0) {\n active = this.initialSwipe;\n }\n\n clearTimeout(this.timer);\n\n if (this.$el) {\n var rect = this.$el.getBoundingClientRect();\n this.computedWidth = this.width || rect.width;\n this.computedHeight = this.height || rect.height;\n }\n\n this.swiping = true;\n this.active = active;\n this.offset = this.count > 1 ? -this.size * this.active : 0;\n this.swipes.forEach(function (swipe) {\n swipe.offset = 0;\n });\n this.autoPlay();\n },\n onResize: function onResize() {\n this.initialize(this.activeIndicator);\n },\n onTouchStart: function onTouchStart(event) {\n if (!this.touchable) return;\n this.clear();\n this.swiping = true;\n this.touchStart(event);\n this.correctPosition();\n },\n onTouchMove: function onTouchMove(event) {\n if (!this.touchable || !this.swiping) return;\n this.touchMove(event);\n\n if (this.isCorrectDirection) {\n preventDefault(event, true);\n this.move({\n offset: Math.min(Math.max(this.delta, -this.size), this.size)\n });\n }\n },\n onTouchEnd: function onTouchEnd() {\n if (!this.touchable || !this.swiping) return;\n\n if (this.delta && this.isCorrectDirection) {\n var offset = this.vertical ? this.offsetY : this.offsetX;\n this.move({\n pace: offset > 0 ? this.delta > 0 ? -1 : 1 : 0,\n emitChange: true\n });\n }\n\n this.swiping = false;\n this.autoPlay();\n },\n move: function move(_ref2) {\n var _ref2$pace = _ref2.pace,\n pace = _ref2$pace === void 0 ? 0 : _ref2$pace,\n _ref2$offset = _ref2.offset,\n offset = _ref2$offset === void 0 ? 0 : _ref2$offset,\n emitChange = _ref2.emitChange;\n var delta = this.delta,\n active = this.active,\n count = this.count,\n swipes = this.swipes,\n trackSize = this.trackSize;\n var atFirst = active === 0;\n var atLast = active === count - 1;\n var outOfBounds = !this.loop && (atFirst && (offset > 0 || pace < 0) || atLast && (offset < 0 || pace > 0));\n\n if (outOfBounds || count <= 1) {\n return;\n }\n\n if (swipes[0]) {\n swipes[0].offset = atLast && (delta < 0 || pace > 0) ? trackSize : 0;\n }\n\n if (swipes[count - 1]) {\n swipes[count - 1].offset = atFirst && (delta > 0 || pace < 0) ? -trackSize : 0;\n }\n\n if (pace && active + pace >= -1 && active + pace <= count) {\n this.active += pace;\n\n if (emitChange) {\n this.$emit('change', this.activeIndicator);\n }\n }\n\n this.offset = Math.round(offset - this.active * this.size);\n },\n swipeTo: function swipeTo(index) {\n var _this = this;\n\n this.swiping = true;\n this.resetTouchStatus();\n this.correctPosition();\n setTimeout(function () {\n _this.swiping = false;\n\n _this.move({\n pace: index % _this.count - _this.active,\n emitChange: true\n });\n }, 30);\n },\n correctPosition: function correctPosition() {\n if (this.active <= -1) {\n this.move({\n pace: this.count\n });\n }\n\n if (this.active >= this.count) {\n this.move({\n pace: -this.count\n });\n }\n },\n clear: function clear() {\n clearTimeout(this.timer);\n },\n autoPlay: function autoPlay() {\n var _this2 = this;\n\n var autoplay = this.autoplay;\n\n if (autoplay && this.count > 1) {\n this.clear();\n this.timer = setTimeout(function () {\n _this2.swiping = true;\n\n _this2.resetTouchStatus();\n\n _this2.correctPosition();\n\n setTimeout(function () {\n _this2.swiping = false;\n\n _this2.move({\n pace: 1,\n emitChange: true\n });\n\n _this2.autoPlay();\n }, 30);\n }, autoplay);\n }\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var count = this.count,\n activeIndicator = this.activeIndicator;\n var Indicator = this.slots('indicator') || this.showIndicators && count > 1 && h(\"div\", {\n \"class\": bem('indicators', {\n vertical: this.vertical\n })\n }, [Array.apply(void 0, Array(count)).map(function (empty, index) {\n return h(\"i\", {\n \"class\": bem('indicator', {\n active: index === activeIndicator\n }),\n \"style\": index === activeIndicator ? _this3.indicatorStyle : null\n });\n })]);\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"ref\": \"track\",\n \"style\": this.trackStyle,\n \"class\": bem('track'),\n \"on\": {\n \"touchstart\": this.onTouchStart,\n \"touchmove\": this.onTouchMove,\n \"touchend\": this.onTouchEnd,\n \"touchcancel\": this.onTouchEnd\n }\n }, [this.slots()]), Indicator]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\n\nvar _use = use('swipe-item'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n data: function data() {\n return {\n offset: 0\n };\n },\n beforeCreate: function beforeCreate() {\n this.$parent.swipes.push(this);\n },\n destroyed: function destroyed() {\n this.$parent.swipes.splice(this.$parent.swipes.indexOf(this), 1);\n },\n render: function render(h) {\n var _this$$parent = this.$parent,\n vertical = _this$$parent.vertical,\n computedWidth = _this$$parent.computedWidth,\n computedHeight = _this$$parent.computedHeight;\n var style = {\n width: computedWidth + 'px',\n height: vertical ? computedHeight + 'px' : '100%',\n transform: \"translate\" + (vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\"\n };\n return h(\"div\", {\n \"class\": bem(),\n \"style\": style,\n \"on\": _extends({}, this.$listeners)\n }, [this.slots()]);\n }\n});","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use, range } from '../utils';\nimport { preventDefault } from '../utils/event';\nimport { PopupMixin } from '../mixins/popup';\nimport { TouchMixin } from '../mixins/touch';\nimport Swipe from '../swipe';\nimport SwipeItem from '../swipe-item';\n\nvar _use = use('image-preview'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction getDistance(touches) {\n return Math.sqrt(Math.abs((touches[0].clientX - touches[1].clientX) * (touches[0].clientY - touches[1].clientY)));\n}\n\nexport default sfc({\n mixins: [PopupMixin, TouchMixin],\n props: {\n images: Array,\n className: null,\n lazyLoad: Boolean,\n asyncClose: Boolean,\n startPosition: Number,\n showIndicators: Boolean,\n loop: {\n type: Boolean,\n \"default\": true\n },\n overlay: {\n type: Boolean,\n \"default\": true\n },\n showIndex: {\n type: Boolean,\n \"default\": true\n },\n minZoom: {\n type: Number,\n \"default\": 1 / 3\n },\n maxZoom: {\n type: Number,\n \"default\": 3\n },\n overlayClass: {\n type: String,\n \"default\": 'van-image-preview__overlay'\n },\n closeOnClickOverlay: {\n type: Boolean,\n \"default\": true\n }\n },\n data: function data() {\n return {\n scale: 1,\n moveX: 0,\n moveY: 0,\n moving: false,\n zooming: false,\n active: 0\n };\n },\n computed: {\n imageStyle: function imageStyle() {\n var scale = this.scale;\n var style = {\n transition: this.zooming || this.moving ? '' : '.3s all'\n };\n\n if (scale !== 1) {\n style.transform = \"scale3d(\" + scale + \", \" + scale + \", 1) translate(\" + this.moveX / scale + \"px, \" + this.moveY / scale + \"px)\";\n }\n\n return style;\n }\n },\n watch: {\n value: function value() {\n this.active = this.startPosition;\n },\n startPosition: function startPosition(active) {\n this.active = active;\n }\n },\n methods: {\n onWrapperTouchStart: function onWrapperTouchStart() {\n this.touchStartTime = new Date();\n },\n onWrapperTouchEnd: function onWrapperTouchEnd(event) {\n preventDefault(event);\n var deltaTime = new Date() - this.touchStartTime;\n\n var _ref = this.$refs.swipe || {},\n _ref$offsetX = _ref.offsetX,\n offsetX = _ref$offsetX === void 0 ? 0 : _ref$offsetX,\n _ref$offsetY = _ref.offsetY,\n offsetY = _ref$offsetY === void 0 ? 0 : _ref$offsetY; // prevent long tap to close component\n\n\n if (deltaTime < 300 && offsetX < 10 && offsetY < 10) {\n var index = this.active;\n this.resetScale();\n this.$emit('close', {\n index: index,\n url: this.images[index]\n });\n\n if (!this.asyncClose) {\n this.$emit('input', false);\n }\n }\n },\n startMove: function startMove(event) {\n var image = event.currentTarget;\n var rect = image.getBoundingClientRect();\n var winWidth = window.innerWidth;\n var winHeight = window.innerHeight;\n this.touchStart(event);\n this.moving = true;\n this.startMoveX = this.moveX;\n this.startMoveY = this.moveY;\n this.maxMoveX = Math.max(0, (rect.width - winWidth) / 2);\n this.maxMoveY = Math.max(0, (rect.height - winHeight) / 2);\n },\n startZoom: function startZoom(event) {\n this.moving = false;\n this.zooming = true;\n this.startScale = this.scale;\n this.startDistance = getDistance(event.touches);\n },\n onTouchStart: function onTouchStart(event) {\n var touches = event.touches;\n\n var _ref2 = this.$refs.swipe || {},\n _ref2$offsetX = _ref2.offsetX,\n offsetX = _ref2$offsetX === void 0 ? 0 : _ref2$offsetX;\n\n if (touches.length === 1 && this.scale !== 1) {\n this.startMove(event);\n }\n /* istanbul ignore else */\n else if (touches.length === 2 && !offsetX) {\n this.startZoom(event);\n }\n },\n onTouchMove: function onTouchMove(event) {\n var touches = event.touches;\n\n if (this.moving || this.zooming) {\n preventDefault(event, true);\n }\n\n if (this.moving) {\n this.touchMove(event);\n var moveX = this.deltaX + this.startMoveX;\n var moveY = this.deltaY + this.startMoveY;\n this.moveX = range(moveX, -this.maxMoveX, this.maxMoveX);\n this.moveY = range(moveY, -this.maxMoveY, this.maxMoveY);\n }\n\n if (this.zooming && touches.length === 2) {\n var distance = getDistance(touches);\n var scale = this.startScale * distance / this.startDistance;\n this.scale = range(scale, this.minZoom, this.maxZoom);\n }\n },\n onTouchEnd: function onTouchEnd(event) {\n /* istanbul ignore else */\n if (this.moving || this.zooming) {\n var stopPropagation = true;\n\n if (this.moving && this.startMoveX === this.moveX && this.startMoveY === this.moveY) {\n stopPropagation = false;\n }\n\n if (!event.touches.length) {\n this.moving = false;\n this.zooming = false;\n this.startMoveX = 0;\n this.startMoveY = 0;\n this.startScale = 1;\n\n if (this.scale < 1) {\n this.resetScale();\n }\n }\n\n if (stopPropagation) {\n preventDefault(event, true);\n }\n }\n },\n onChange: function onChange(active) {\n this.resetScale();\n this.active = active;\n this.$emit('change', active);\n },\n resetScale: function resetScale() {\n this.scale = 1;\n this.moveX = 0;\n this.moveY = 0;\n }\n },\n render: function render(h) {\n var _this = this;\n\n if (!this.value) {\n return;\n }\n\n var active = this.active,\n images = this.images;\n var Index = this.showIndex && h(\"div\", {\n \"class\": bem('index')\n }, [this.slots('index') || active + 1 + \"/\" + images.length]);\n var Images = h(Swipe, {\n \"ref\": \"swipe\",\n \"attrs\": {\n \"loop\": this.loop,\n \"indicatorColor\": \"white\",\n \"initialSwipe\": this.startPosition,\n \"showIndicators\": this.showIndicators\n },\n \"on\": {\n \"change\": this.onChange\n }\n }, [images.map(function (image, index) {\n var props = {\n \"class\": bem('image'),\n style: index === active ? _this.imageStyle : null,\n on: {\n touchstart: _this.onTouchStart,\n touchmove: _this.onTouchMove,\n touchend: _this.onTouchEnd,\n touchcancel: _this.onTouchEnd\n }\n };\n return h(SwipeItem, [_this.lazyLoad ? h(\"img\", _mergeJSXProps([{\n \"directives\": [{\n name: \"lazy\",\n value: image\n }]\n }, props])) : h(\"img\", _mergeJSXProps2([{\n \"attrs\": {\n \"src\": image\n }\n }, props]))]);\n })]);\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [h(\"div\", {\n \"class\": [bem(), this.className],\n \"on\": {\n \"touchstart\": this.onWrapperTouchStart,\n \"touchend\": this.onWrapperTouchEnd,\n \"touchcancel\": this.onWrapperTouchEnd\n }\n }, [Index, Images])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VueImagePreview from './ImagePreview';\nimport { isServer } from '../utils';\nvar instance;\nvar defaultConfig = {\n images: [],\n loop: true,\n value: true,\n minZoom: 1 / 3,\n maxZoom: 3,\n className: '',\n lazyLoad: false,\n showIndex: true,\n asyncClose: false,\n startPosition: 0,\n showIndicators: false\n};\n\nvar initInstance = function initInstance() {\n instance = new (Vue.extend(VueImagePreview))({\n el: document.createElement('div')\n });\n document.body.appendChild(instance.$el);\n};\n\nvar ImagePreview = function ImagePreview(images, startPosition) {\n if (startPosition === void 0) {\n startPosition = 0;\n }\n\n /* istanbul ignore if */\n if (isServer) {\n return;\n }\n\n if (!instance) {\n initInstance();\n }\n\n var options = Array.isArray(images) ? {\n images: images,\n startPosition: startPosition\n } : images;\n\n _extends(instance, defaultConfig, options);\n\n instance.$once('input', function (show) {\n instance.value = show;\n });\n\n if (options.onClose) {\n instance.$once('close', options.onClose);\n }\n\n return instance;\n};\n\nImagePreview.install = function () {\n Vue.use(VueImagePreview);\n};\n\nexport default ImagePreview;","import { use } from '../utils';\nimport Loading from '../loading';\nimport { on, off } from '../utils/event';\nimport { getScrollTop, getElementTop, getVisibleHeight, getScrollEventTarget } from '../utils/scroll';\n\nvar _use = use('list'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nexport default sfc({\n model: {\n prop: 'loading'\n },\n props: {\n error: Boolean,\n loading: Boolean,\n finished: Boolean,\n errorText: String,\n loadingText: String,\n finishedText: String,\n immediateCheck: {\n type: Boolean,\n \"default\": true\n },\n offset: {\n type: Number,\n \"default\": 300\n },\n direction: {\n type: String,\n \"default\": 'down'\n }\n },\n mounted: function mounted() {\n this.scroller = getScrollEventTarget(this.$el);\n this.handler(true);\n\n if (this.immediateCheck) {\n this.$nextTick(this.check);\n }\n },\n destroyed: function destroyed() {\n this.handler(false);\n },\n activated: function activated() {\n this.handler(true);\n },\n deactivated: function deactivated() {\n this.handler(false);\n },\n watch: {\n loading: function loading() {\n this.$nextTick(this.check);\n },\n finished: function finished() {\n this.$nextTick(this.check);\n }\n },\n methods: {\n check: function check() {\n if (this.loading || this.finished || this.error) {\n return;\n }\n\n var el = this.$el;\n var scroller = this.scroller;\n var scrollerHeight = getVisibleHeight(scroller);\n /* istanbul ignore next */\n\n if (!scrollerHeight || window.getComputedStyle(el).display === 'none' || el.offsetParent === null) {\n return;\n }\n\n var offset = this.offset,\n direction = this.direction;\n\n function isReachEdge() {\n if (el === scroller) {\n var scrollTop = getScrollTop(el);\n\n if (direction === 'up') {\n return scrollTop <= offset;\n }\n\n var targetBottom = scrollTop + scrollerHeight;\n return scroller.scrollHeight - targetBottom <= offset;\n }\n\n if (direction === 'up') {\n return getScrollTop(scroller) - getElementTop(el) <= offset;\n }\n\n var elBottom = getElementTop(el) + getVisibleHeight(el) - getElementTop(scroller);\n return elBottom - scrollerHeight <= offset;\n }\n\n if (isReachEdge()) {\n this.$emit('input', true);\n this.$emit('load');\n }\n },\n clickErrorText: function clickErrorText() {\n this.$emit('update:error', false);\n this.$nextTick(this.check);\n },\n handler: function handler(bind) {\n /* istanbul ignore else */\n if (this.binded !== bind) {\n this.binded = bind;\n (bind ? on : off)(this.scroller, 'scroll', this.check);\n }\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": bem()\n }, [this.direction === 'down' && this.slots(), this.loading && h(\"div\", {\n \"class\": bem('loading'),\n \"key\": \"loading\"\n }, [this.slots('loading') || [h(Loading, {\n \"class\": bem('loading-icon')\n }), h(\"span\", {\n \"class\": bem('loading-text')\n }, [this.loadingText || t('loading')])]]), this.finished && this.finishedText && h(\"div\", {\n \"class\": bem('finished-text')\n }, [this.finishedText]), this.error && this.errorText && h(\"div\", {\n \"on\": {\n \"click\": this.clickErrorText\n },\n \"class\": bem('error-text')\n }, [this.errorText]), this.direction === 'up' && this.slots()]);\n }\n});","import Lazyload from 'vue-lazyload';\nexport default Lazyload;","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use, noop } from '../utils';\nimport { inherit } from '../utils/functional';\nimport Icon from '../icon'; // Types\n\nvar _use = use('nav-bar'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction NavBar(h, props, slots, ctx) {\n return h(\"div\", _mergeJSXProps([{\n \"class\": [bem({\n fixed: props.fixed\n }), {\n 'van-hairline--bottom': props.border\n }],\n \"style\": {\n zIndex: props.zIndex\n }\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('left'),\n \"on\": {\n \"click\": ctx.listeners['click-left'] || noop\n }\n }, [slots.left ? slots.left() : [props.leftArrow && h(Icon, {\n \"class\": bem('arrow'),\n \"attrs\": {\n \"name\": \"arrow-left\"\n }\n }), props.leftText && h(\"span\", {\n \"class\": bem('text')\n }, [props.leftText])]]), h(\"div\", {\n \"class\": [bem('title'), 'van-ellipsis']\n }, [slots.title ? slots.title() : props.title]), h(\"div\", {\n \"class\": bem('right'),\n \"on\": {\n \"click\": ctx.listeners['click-right'] || noop\n }\n }, [slots.right ? slots.right() : props.rightText && h(\"span\", {\n \"class\": bem('text')\n }, [props.rightText])])]);\n}\n\nNavBar.props = {\n title: String,\n fixed: Boolean,\n leftText: String,\n rightText: String,\n leftArrow: Boolean,\n border: {\n type: Boolean,\n \"default\": true\n },\n zIndex: {\n type: Number,\n \"default\": 1\n }\n};\nexport default sfc(NavBar);","import { use } from '../utils';\nimport Icon from '../icon';\n\nvar _use = use('notice-bar'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n text: String,\n mode: String,\n color: String,\n leftIcon: String,\n wrapable: Boolean,\n background: String,\n delay: {\n type: [String, Number],\n \"default\": 1\n },\n scrollable: {\n type: Boolean,\n \"default\": true\n },\n speed: {\n type: Number,\n \"default\": 50\n }\n },\n data: function data() {\n return {\n wrapWidth: 0,\n firstRound: true,\n duration: 0,\n offsetWidth: 0,\n showNoticeBar: true,\n animationClass: ''\n };\n },\n watch: {\n text: {\n handler: function handler() {\n var _this = this;\n\n this.$nextTick(function () {\n var _this$$refs = _this.$refs,\n wrap = _this$$refs.wrap,\n content = _this$$refs.content;\n\n if (!wrap || !content) {\n return;\n }\n\n var wrapWidth = wrap.getBoundingClientRect().width;\n var offsetWidth = content.getBoundingClientRect().width;\n\n if (_this.scrollable && offsetWidth > wrapWidth) {\n _this.wrapWidth = wrapWidth;\n _this.offsetWidth = offsetWidth;\n _this.duration = offsetWidth / _this.speed;\n _this.animationClass = bem('play');\n }\n });\n },\n immediate: true\n }\n },\n methods: {\n onClickIcon: function onClickIcon() {\n if (this.mode === 'closeable') {\n this.showNoticeBar = false;\n this.$emit('close');\n }\n },\n onAnimationEnd: function onAnimationEnd() {\n var _this2 = this;\n\n this.firstRound = false;\n this.$nextTick(function () {\n _this2.duration = (_this2.offsetWidth + _this2.wrapWidth) / _this2.speed;\n _this2.animationClass = bem('play--infinite');\n });\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var mode = this.mode;\n var iconName = mode === 'closeable' ? 'cross' : mode === 'link' ? 'arrow' : '';\n var barStyle = {\n color: this.color,\n background: this.background\n };\n var contentStyle = {\n paddingLeft: this.firstRound ? 0 : this.wrapWidth + 'px',\n animationDelay: (this.firstRound ? this.delay : 0) + 's',\n animationDuration: this.duration + 's'\n };\n return h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.showNoticeBar\n }],\n \"class\": bem({\n withicon: mode,\n wrapable: this.wrapable\n }),\n \"style\": barStyle,\n \"on\": {\n \"click\": function click() {\n _this3.$emit('click');\n }\n }\n }, [this.leftIcon && h(Icon, {\n \"class\": bem('left-icon'),\n \"attrs\": {\n \"name\": this.leftIcon\n }\n }), h(\"div\", {\n \"ref\": \"wrap\",\n \"class\": bem('wrap')\n }, [h(\"div\", {\n \"ref\": \"content\",\n \"class\": [bem('content'), this.animationClass, {\n 'van-ellipsis': !this.scrollable && !this.wrapable\n }],\n \"style\": contentStyle,\n \"on\": {\n \"animationend\": this.onAnimationEnd,\n \"webkitAnimationEnd\": this.onAnimationEnd\n }\n }, [this.slots() || this.text])]), iconName && h(Icon, {\n \"class\": bem('right-icon'),\n \"attrs\": {\n \"name\": iconName\n },\n \"on\": {\n \"click\": this.onClickIcon\n }\n })]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { RED, WHITE } from '../utils/color';\nimport { emit, inherit } from '../utils/functional';\nimport { PopupMixin } from '../mixins/popup';\nimport Popup from '../popup'; // Types\n\nvar _use = use('notify'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Notify(h, props, slots, ctx) {\n var style = {\n color: props.color,\n background: props.background\n };\n return h(Popup, _mergeJSXProps([{\n \"attrs\": {\n \"value\": props.value,\n \"position\": \"top\",\n \"overlay\": false,\n \"lockScroll\": false\n },\n \"style\": style,\n \"class\": [bem(), props.className],\n \"on\": {\n \"input\": function input(value) {\n emit(ctx, 'input', value);\n }\n }\n }, inherit(ctx)]), [props.message]);\n}\n\nNotify.props = _extends({}, PopupMixin.props, {\n className: null,\n message: [String, Number],\n color: {\n type: String,\n \"default\": WHITE\n },\n background: {\n type: String,\n \"default\": RED\n },\n duration: {\n type: Number,\n \"default\": 3000\n }\n});\nexport default sfc(Notify);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VanNotify from './Notify';\nimport { RED, WHITE } from '../utils/color';\nimport { isObj, isServer } from '../utils';\nimport { mount } from '../utils/functional';\nvar timer;\nvar instance;\n\nfunction parseOptions(message) {\n return isObj(message) ? message : {\n message: message\n };\n}\n\nfunction Notify(options) {\n /* istanbul ignore if */\n if (isServer) {\n return;\n }\n\n if (!instance) {\n instance = mount(VanNotify);\n }\n\n options = _extends({}, Notify.currentOptions, parseOptions(options));\n\n _extends(instance, options);\n\n clearTimeout(timer);\n\n if (options.duration && options.duration > 0) {\n timer = setTimeout(Notify.clear, options.duration);\n }\n\n return instance;\n}\n\nfunction defaultOptions() {\n return {\n value: true,\n message: '',\n color: WHITE,\n background: RED,\n duration: 3000,\n className: ''\n };\n}\n\nNotify.clear = function () {\n if (instance) {\n instance.value = false;\n }\n};\n\nNotify.currentOptions = defaultOptions();\n\nNotify.setDefaultOptions = function (options) {\n _extends(Notify.currentOptions, options);\n};\n\nNotify.resetDefaultOptions = function () {\n Notify.currentOptions = defaultOptions();\n};\n\nNotify.install = function () {\n Vue.use(VanNotify);\n};\n\nVue.prototype.$notify = Notify;\nexport default Notify;","import { use } from '../utils';\nimport { preventDefault } from '../utils/event';\n\nvar _use = use('key'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n type: Array,\n text: [String, Number]\n },\n data: function data() {\n return {\n active: false\n };\n },\n computed: {\n className: function className() {\n var types = this.type.slice(0);\n this.active && types.push('active');\n return bem(types);\n }\n },\n methods: {\n onFocus: function onFocus() {\n this.active = true;\n this.$emit('press', this.text);\n },\n onBlur: function onBlur(event) {\n preventDefault(event, true);\n this.active = false;\n }\n },\n render: function render(h) {\n var onBlur = this.onBlur;\n return h(\"i\", {\n \"class\": ['van-hairline', this.className],\n \"on\": {\n \"touchstart\": this.onFocus,\n \"touchmove\": onBlur,\n \"touchend\": onBlur,\n \"touchcancel\": onBlur\n }\n }, [this.text]);\n }\n});","import { use } from '../utils';\nimport { stopPropagation } from '../utils/event';\nimport Key from './Key';\n\nvar _use = use('number-keyboard'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nvar CLOSE_KEY_TYPE = ['blue', 'big'];\nvar DELETE_KEY_TYPE = ['delete', 'big', 'gray'];\nexport default sfc({\n props: {\n show: Boolean,\n title: String,\n closeButtonText: String,\n deleteButtonText: String,\n safeAreaInsetBottom: Boolean,\n theme: {\n type: String,\n \"default\": 'default'\n },\n extraKey: {\n type: String,\n \"default\": ''\n },\n zIndex: {\n type: Number,\n \"default\": 100\n },\n transition: {\n type: Boolean,\n \"default\": true\n },\n showDeleteKey: {\n type: Boolean,\n \"default\": true\n },\n hideOnClickOutside: {\n type: Boolean,\n \"default\": true\n }\n },\n mounted: function mounted() {\n this.handler(true);\n },\n destroyed: function destroyed() {\n this.handler(false);\n },\n activated: function activated() {\n this.handler(true);\n },\n deactivated: function deactivated() {\n this.handler(false);\n },\n watch: {\n show: function show() {\n if (!this.transition) {\n this.$emit(this.show ? 'show' : 'hide');\n }\n }\n },\n computed: {\n keys: function keys() {\n var keys = [];\n\n for (var i = 1; i <= 9; i++) {\n keys.push({\n text: i\n });\n }\n\n switch (this.theme) {\n case 'default':\n keys.push({\n text: this.extraKey,\n type: ['gray']\n }, {\n text: 0\n }, {\n text: this.deleteText,\n type: ['gray', 'delete']\n });\n break;\n\n case 'custom':\n keys.push({\n text: 0,\n type: ['middle']\n }, {\n text: this.extraKey\n });\n break;\n }\n\n return keys;\n },\n deleteText: function deleteText() {\n return this.deleteButtonText || t('delete');\n }\n },\n methods: {\n handler: function handler(action) {\n /* istanbul ignore if */\n if (this.$isServer) {\n return;\n }\n\n if (action !== this.handlerStatus && this.hideOnClickOutside) {\n this.handlerStatus = action;\n document.body[(action ? 'add' : 'remove') + 'EventListener']('touchstart', this.onBlur);\n }\n },\n onBlur: function onBlur() {\n this.$emit('blur');\n },\n onClose: function onClose() {\n this.$emit('close');\n this.onBlur();\n },\n onAnimationEnd: function onAnimationEnd() {\n this.$emit(this.show ? 'show' : 'hide');\n },\n onPress: function onPress(text) {\n if (text === '') {\n return;\n }\n\n if (text === this.deleteText) {\n this.$emit('delete');\n } else if (text === this.closeButtonText) {\n this.onClose();\n } else {\n this.$emit('input', text);\n }\n }\n },\n render: function render(h) {\n var title = this.title,\n theme = this.theme,\n onPress = this.onPress,\n closeButtonText = this.closeButtonText;\n var titleLeftSlot = this.slots('title-left');\n var showTitleClose = closeButtonText && theme === 'default';\n var showTitle = title || showTitleClose || titleLeftSlot;\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition ? 'van-slide-up' : ''\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.show\n }],\n \"style\": {\n zIndex: this.zIndex\n },\n \"class\": bem([theme, {\n 'safe-area-inset-bottom': this.safeAreaInsetBottom\n }]),\n \"on\": {\n \"touchstart\": stopPropagation,\n \"animationend\": this.onAnimationEnd,\n \"webkitAnimationEnd\": this.onAnimationEnd\n }\n }, [showTitle && h(\"div\", {\n \"class\": [bem('title'), 'van-hairline--top']\n }, [titleLeftSlot && h(\"span\", {\n \"class\": bem('title-left')\n }, [titleLeftSlot]), title && h(\"span\", [title]), showTitleClose && h(\"span\", {\n \"class\": bem('close'),\n \"on\": {\n \"click\": this.onClose\n }\n }, [closeButtonText])]), h(\"div\", {\n \"class\": bem('body')\n }, [this.keys.map(function (key) {\n return h(Key, {\n \"key\": key.text,\n \"attrs\": {\n \"text\": key.text,\n \"type\": key.type\n },\n \"on\": {\n \"press\": onPress\n }\n });\n })]), theme === 'custom' && h(\"div\", {\n \"class\": bem('sidebar')\n }, [h(Key, {\n \"attrs\": {\n \"text\": this.deleteText,\n \"type\": DELETE_KEY_TYPE\n },\n \"on\": {\n \"press\": onPress\n }\n }), h(Key, {\n \"attrs\": {\n \"text\": closeButtonText,\n \"type\": CLOSE_KEY_TYPE\n },\n \"on\": {\n \"press\": onPress\n }\n })])])]);\n }\n});","import { use } from '../utils';\n\nvar _use = use('pagination'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction makePage(number, text, active) {\n return {\n number: number,\n text: text,\n active: active\n };\n}\n\nexport default sfc({\n props: {\n value: Number,\n prevText: String,\n nextText: String,\n pageCount: Number,\n totalItems: Number,\n forceEllipses: Boolean,\n mode: {\n type: String,\n \"default\": 'multi'\n },\n itemsPerPage: {\n type: Number,\n \"default\": 10\n },\n showPageSize: {\n type: Number,\n \"default\": 5\n }\n },\n computed: {\n count: function count() {\n var count = this.pageCount || Math.ceil(this.totalItems / this.itemsPerPage);\n return Math.max(1, count);\n },\n pages: function pages() {\n var pages = [];\n var pageCount = this.count;\n\n if (this.mode !== 'multi') {\n return pages;\n } // Default page limits\n\n\n var startPage = 1;\n var endPage = pageCount;\n var isMaxSized = this.showPageSize !== undefined && this.showPageSize < pageCount; // recompute if showPageSize\n\n if (isMaxSized) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(this.value - Math.floor(this.showPageSize / 2), 1);\n endPage = startPage + this.showPageSize - 1; // Adjust if limit is exceeded\n\n if (endPage > pageCount) {\n endPage = pageCount;\n startPage = endPage - this.showPageSize + 1;\n }\n } // Add page number links\n\n\n for (var number = startPage; number <= endPage; number++) {\n var page = makePage(number, number, number === this.value);\n pages.push(page);\n } // Add links to move between page sets\n\n\n if (isMaxSized && this.showPageSize > 0 && this.forceEllipses) {\n if (startPage > 1) {\n var previousPageSet = makePage(startPage - 1, '...', false);\n pages.unshift(previousPageSet);\n }\n\n if (endPage < pageCount) {\n var nextPageSet = makePage(endPage + 1, '...', false);\n pages.push(nextPageSet);\n }\n }\n\n return pages;\n }\n },\n watch: {\n value: {\n handler: function handler(page) {\n this.select(page || this.value);\n },\n immediate: true\n }\n },\n methods: {\n select: function select(page, emitChange) {\n page = Math.min(this.count, Math.max(1, page));\n\n if (this.value !== page) {\n this.$emit('input', page);\n\n if (emitChange) {\n this.$emit('change', page);\n }\n }\n }\n },\n render: function render(h) {\n var _this = this;\n\n var value = this.value;\n var simple = this.mode !== 'multi';\n\n var onSelect = function onSelect(value) {\n return function () {\n _this.select(value, true);\n };\n };\n\n return h(\"ul\", {\n \"class\": bem({\n simple: simple\n })\n }, [h(\"li\", {\n \"class\": [bem('item', {\n disabled: value === 1\n }), bem('prev'), 'van-hairline'],\n \"on\": {\n \"click\": onSelect(value - 1)\n }\n }, [this.prevText || t('prev')]), this.pages.map(function (page) {\n return h(\"li\", {\n \"class\": [bem('item', {\n active: page.active\n }), bem('page'), 'van-hairline'],\n \"on\": {\n \"click\": onSelect(page.number)\n }\n }, [page.text]);\n }), simple && h(\"li\", {\n \"class\": bem('page-desc')\n }, [this.slots('pageDesc') || value + \"/\" + this.count]), h(\"li\", {\n \"class\": [bem('item', {\n disabled: value === this.count\n }), bem('next'), 'van-hairline'],\n \"on\": {\n \"click\": onSelect(value + 1)\n }\n }, [this.nextText || t('next')])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport Cell from '../cell';\nimport CellGroup from '../cell-group';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _use = use('panel'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction Panel(h, props, slots, ctx) {\n var Content = function Content() {\n return [slots.header ? slots.header() : h(Cell, {\n \"attrs\": {\n \"icon\": props.icon,\n \"label\": props.desc,\n \"title\": props.title,\n \"value\": props.status,\n \"valueClass\": bem('header-value')\n },\n \"class\": bem('header')\n }), h(\"div\", {\n \"class\": bem('content')\n }, [slots[\"default\"] && slots[\"default\"]()]), slots.footer && h(\"div\", {\n \"class\": [bem('footer'), 'van-hairline--top']\n }, [slots.footer()])];\n };\n\n return h(CellGroup, _mergeJSXProps([{\n \"class\": bem(),\n \"scopedSlots\": {\n \"default\": Content\n }\n }, inherit(ctx, true)]));\n}\n\nPanel.props = {\n icon: String,\n desc: String,\n title: String,\n status: String\n};\nexport default sfc(Panel);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Types\n\nvar _use = use('password-input'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction PasswordInput(h, props, slots, ctx) {\n var info = props.errorInfo || props.info;\n var Points = [];\n\n for (var i = 0; i < props.length; i++) {\n var _char = props.value[i];\n Points.push(h(\"li\", {\n \"class\": \"van-hairline\"\n }, [props.mask ? h(\"i\", {\n \"style\": {\n visibility: _char ? 'visible' : 'hidden'\n }\n }) : _char]));\n }\n\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"ul\", _mergeJSXProps([{\n \"class\": [bem('security'), 'van-hairline--surround'],\n \"on\": {\n \"touchstart\": function touchstart(event) {\n event.stopPropagation();\n emit(ctx, 'focus', event);\n }\n }\n }, inherit(ctx, true)]), [Points]), info && h(\"div\", {\n \"class\": bem(props.errorInfo ? 'error-info' : 'info')\n }, [info])]);\n}\n\nPasswordInput.props = {\n info: String,\n errorInfo: String,\n mask: {\n type: Boolean,\n \"default\": true\n },\n value: {\n type: String,\n \"default\": ''\n },\n length: {\n type: Number,\n \"default\": 6\n }\n};\nexport default sfc(PasswordInput);","import { use, isDef } from '../utils';\nimport { BLUE, WHITE } from '../utils/color';\n\nvar _use = use('progress'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n inactive: Boolean,\n pivotText: String,\n pivotColor: String,\n percentage: {\n type: Number,\n required: true,\n validator: function validator(value) {\n return value >= 0 && value <= 100;\n }\n },\n showPivot: {\n type: Boolean,\n \"default\": true\n },\n color: {\n type: String,\n \"default\": BLUE\n },\n textColor: {\n type: String,\n \"default\": WHITE\n }\n },\n data: function data() {\n return {\n pivotWidth: 0,\n progressWidth: 0\n };\n },\n mounted: function mounted() {\n this.getWidth();\n },\n watch: {\n showPivot: function showPivot() {\n this.getWidth();\n },\n pivotText: function pivotText() {\n this.getWidth();\n }\n },\n methods: {\n getWidth: function getWidth() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.progressWidth = _this.$el.offsetWidth;\n _this.pivotWidth = _this.$refs.pivot ? _this.$refs.pivot.offsetWidth : 0;\n });\n }\n },\n render: function render(h) {\n var pivotText = this.pivotText,\n percentage = this.percentage;\n var text = isDef(pivotText) ? pivotText : percentage + '%';\n var showPivot = this.showPivot && text;\n var background = this.inactive ? '#cacaca' : this.color;\n var pivotStyle = {\n color: this.textColor,\n background: this.pivotColor || background\n };\n var portionStyle = {\n background: background,\n width: (this.progressWidth - this.pivotWidth) * percentage / 100 + 'px'\n };\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"span\", {\n \"class\": bem('portion', {\n 'with-pivot': showPivot\n }),\n \"style\": portionStyle\n }, [showPivot && h(\"span\", {\n \"ref\": \"pivot\",\n \"style\": pivotStyle,\n \"class\": bem('pivot')\n }, [text])])]);\n }\n});","import { use } from '../utils';\nimport { preventDefault } from '../utils/event';\nimport { TouchMixin } from '../mixins/touch';\nimport { getScrollTop, getScrollEventTarget } from '../utils/scroll';\nimport Loading from '../loading';\n\nvar _use = use('pull-refresh'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nvar TEXT_STATUS = ['pulling', 'loosing', 'success'];\nexport default sfc({\n mixins: [TouchMixin],\n props: {\n disabled: Boolean,\n successText: String,\n pullingText: String,\n loosingText: String,\n loadingText: String,\n value: {\n type: Boolean,\n required: true\n },\n successDuration: {\n type: Number,\n \"default\": 500\n },\n animationDuration: {\n type: Number,\n \"default\": 300\n },\n headHeight: {\n type: Number,\n \"default\": 50\n }\n },\n data: function data() {\n return {\n status: 'normal',\n height: 0,\n duration: 0\n };\n },\n computed: {\n untouchable: function untouchable() {\n return this.status === 'loading' || this.status === 'success' || this.disabled;\n }\n },\n watch: {\n value: function value(loading) {\n var _this = this;\n\n this.duration = this.animationDuration;\n\n if (!loading && this.successText) {\n this.status = 'success';\n setTimeout(function () {\n _this.setStatus(0);\n }, this.successDuration);\n } else {\n this.setStatus(loading ? this.headHeight : 0, loading);\n }\n }\n },\n mounted: function mounted() {\n this.scrollEl = getScrollEventTarget(this.$el);\n },\n methods: {\n onTouchStart: function onTouchStart(event) {\n if (!this.untouchable && this.getCeiling()) {\n this.duration = 0;\n this.touchStart(event);\n }\n },\n onTouchMove: function onTouchMove(event) {\n if (this.untouchable) {\n return;\n }\n\n this.touchMove(event);\n\n if (!this.ceiling && this.getCeiling()) {\n this.duration = 0;\n this.startY = event.touches[0].clientY;\n this.deltaY = 0;\n }\n\n if (this.ceiling && this.deltaY >= 0) {\n if (this.direction === 'vertical') {\n this.setStatus(this.ease(this.deltaY));\n preventDefault(event);\n }\n }\n },\n onTouchEnd: function onTouchEnd() {\n if (!this.untouchable && this.ceiling && this.deltaY) {\n this.duration = this.animationDuration;\n\n if (this.status === 'loosing') {\n this.setStatus(this.headHeight, true);\n this.$emit('input', true);\n this.$emit('refresh');\n } else {\n this.setStatus(0);\n }\n }\n },\n getCeiling: function getCeiling() {\n this.ceiling = getScrollTop(this.scrollEl) === 0;\n return this.ceiling;\n },\n ease: function ease(height) {\n var headHeight = this.headHeight;\n return height < headHeight ? height : height < headHeight * 2 ? Math.round(headHeight + (height - headHeight) / 2) : Math.round(headHeight * 1.5 + (height - headHeight * 2) / 4);\n },\n setStatus: function setStatus(height, isLoading) {\n this.height = height;\n var status = isLoading ? 'loading' : height === 0 ? 'normal' : height < this.headHeight ? 'pulling' : 'loosing';\n\n if (status !== this.status) {\n this.status = status;\n }\n }\n },\n render: function render(h) {\n var status = this.status;\n var text = this[status + \"Text\"] || t(status);\n var style = {\n transition: this.duration + \"ms\",\n transform: this.height ? \"translate3d(0,\" + this.height + \"px, 0)\" : ''\n };\n var Status = this.slots(status) || [TEXT_STATUS.indexOf(status) !== -1 && h(\"div\", {\n \"class\": bem('text')\n }, [text]), status === 'loading' && h(\"div\", {\n \"class\": bem('loading')\n }, [h(Loading), h(\"span\", [text])])];\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"class\": bem('track'),\n \"style\": style,\n \"on\": {\n \"touchstart\": this.onTouchStart,\n \"touchmove\": this.onTouchMove,\n \"touchend\": this.onTouchEnd,\n \"touchcancel\": this.onTouchEnd\n }\n }, [h(\"div\", {\n \"class\": bem('head')\n }, [Status]), this.slots()])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n\n/* eslint-disable prefer-spread */\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { preventDefault } from '../utils/event';\nimport Icon from '../icon'; // Types\n\nvar _use = use('rate'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction getRateStatus(value, index, allowHalf) {\n if (value >= index) {\n return 'full';\n }\n\n if (value + 0.5 >= index && allowHalf) {\n return 'half';\n }\n\n return 'void';\n}\n\nfunction Rate(h, props, slots, ctx) {\n var icon = props.icon,\n size = props.size,\n color = props.color,\n voidIcon = props.voidIcon,\n readonly = props.readonly,\n disabled = props.disabled,\n voidColor = props.voidColor,\n disabledColor = props.disabledColor;\n var list = [];\n\n for (var i = 1; i <= props.count; i++) {\n list.push(getRateStatus(props.value, i, props.allowHalf));\n }\n\n function onSelect(index) {\n if (!disabled && !readonly) {\n emit(ctx, 'input', index);\n emit(ctx, 'change', index);\n }\n }\n\n function onTouchMove(event) {\n if (readonly || disabled || !document.elementFromPoint) {\n return;\n }\n\n preventDefault(event);\n var _event$touches$ = event.touches[0],\n clientX = _event$touches$.clientX,\n clientY = _event$touches$.clientY;\n var target = document.elementFromPoint(clientX, clientY);\n\n if (target && target.dataset) {\n var score = target.dataset.score;\n /* istanbul ignore else */\n\n if (score) {\n onSelect(+score);\n }\n }\n }\n\n function renderStar(status, index) {\n var isFull = status === 'full';\n var isVoid = status === 'void';\n return h(\"div\", {\n \"key\": index,\n \"class\": bem('item')\n }, [h(Icon, {\n \"attrs\": {\n \"name\": isFull ? icon : voidIcon,\n \"size\": size + \"px\",\n \"data-score\": index + 1,\n \"color\": disabled ? disabledColor : isFull ? color : voidColor\n },\n \"class\": bem('icon'),\n \"on\": {\n \"click\": function click() {\n onSelect(index + 1);\n }\n }\n }), props.allowHalf && h(Icon, {\n \"attrs\": {\n \"name\": isVoid ? voidIcon : icon,\n \"size\": size + \"px\",\n \"data-score\": index + 0.5,\n \"color\": disabled ? disabledColor : isVoid ? voidColor : color\n },\n \"class\": bem('icon', 'half'),\n \"on\": {\n \"click\": function click() {\n onSelect(index + 0.5);\n }\n }\n })]);\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx), {\n \"on\": {\n \"touchmove\": onTouchMove\n }\n }]), [list.map(function (status, index) {\n return renderStar(status, index);\n })]);\n}\n\nRate.props = {\n value: Number,\n readonly: Boolean,\n disabled: Boolean,\n allowHalf: Boolean,\n size: {\n type: Number,\n \"default\": 20\n },\n icon: {\n type: String,\n \"default\": 'star'\n },\n voidIcon: {\n type: String,\n \"default\": 'star-o'\n },\n color: {\n type: String,\n \"default\": '#ffd21e'\n },\n voidColor: {\n type: String,\n \"default\": '#c7c7c7'\n },\n disabledColor: {\n type: String,\n \"default\": '#bdbdbd'\n },\n count: {\n type: Number,\n \"default\": 5\n }\n};\nexport default sfc(Rate);","import { use } from '../utils';\n\nvar _use = use('row'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n type: String,\n align: String,\n justify: String,\n tag: {\n type: String,\n \"default\": 'div'\n },\n gutter: {\n type: [Number, String],\n \"default\": 0\n }\n },\n render: function render(h) {\n var _bem;\n\n var align = this.align,\n justify = this.justify;\n var flex = this.type === 'flex';\n var margin = \"-\" + Number(this.gutter) / 2 + \"px\";\n var style = this.gutter ? {\n marginLeft: margin,\n marginRight: margin\n } : {};\n return h(this.tag, {\n \"style\": style,\n \"class\": bem((_bem = {\n flex: flex\n }, _bem[\"align-\" + align] = flex && align, _bem[\"justify-\" + justify] = flex && justify, _bem))\n }, [this.slots()]);\n }\n});","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\nimport { inherit, emit } from '../utils/functional';\nimport { preventDefault } from '../utils/event';\nimport Field from '../field'; // Types\n\nvar _use = use('search'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction Search(h, props, slots, ctx) {\n var Label = function Label() {\n if (!slots.label && !props.label) {\n return null;\n }\n\n return h(\"div\", {\n \"class\": bem('label')\n }, [slots.label ? slots.label() : props.label]);\n };\n\n var Action = function Action() {\n if (!props.showAction) {\n return null;\n }\n\n var onCancel = function onCancel() {\n emit(ctx, 'input', '');\n emit(ctx, 'cancel');\n };\n\n return h(\"div\", {\n \"class\": bem('action')\n }, [slots.action ? slots.action() : h(\"div\", {\n \"on\": {\n \"click\": onCancel\n }\n }, [t('cancel')])]);\n };\n\n var fieldData = {\n attrs: ctx.data.attrs,\n on: _extends({}, ctx.listeners, {\n input: function input(value) {\n emit(ctx, 'input', value);\n },\n keypress: function keypress(event) {\n // press enter\n if (event.keyCode === 13) {\n preventDefault(event);\n emit(ctx, 'search', props.value);\n }\n\n emit(ctx, 'keypress', event);\n }\n })\n };\n var inheritData = inherit(ctx);\n delete inheritData.attrs;\n return h(\"div\", _mergeJSXProps2([{\n \"class\": bem({\n 'show-action': props.showAction\n }),\n \"style\": {\n background: props.background\n }\n }, inheritData]), [h(\"div\", {\n \"class\": bem('content', props.shape)\n }, [Label(), h(Field, _mergeJSXProps([{\n \"attrs\": {\n \"clearable\": true,\n \"type\": \"search\",\n \"value\": props.value,\n \"border\": false,\n \"leftIcon\": \"search\"\n },\n \"scopedSlots\": {\n 'left-icon': slots['left-icon']\n }\n }, fieldData]))]), Action()]);\n}\n\nSearch.props = {\n value: String,\n label: String,\n showAction: Boolean,\n shape: {\n type: String,\n \"default\": 'square'\n },\n background: {\n type: String,\n \"default\": '#fff'\n }\n};\nexport default sfc(Search);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../../utils';\nimport { inherit } from '../../utils/functional';\nimport Icon from '../../icon'; // Types\n\nvar _use = use('sku-header'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction getSkuImg(sku, selectedSku) {\n var id = selectedSku.s1;\n\n if (id) {\n // skuImg 挂载在 skuTree 中 s1 上\n var treeItem = sku.tree.filter(function (item) {\n return item.k_s === 's1';\n })[0] || {};\n\n if (treeItem.v) {\n var matchedSku = treeItem.v.filter(function (skuValue) {\n return skuValue.id === id;\n })[0];\n\n if (matchedSku) {\n return matchedSku.imgUrl || matchedSku.img_url;\n }\n }\n }\n}\n\nfunction SkuHeader(h, props, slots, ctx) {\n var sku = props.sku,\n goods = props.goods,\n skuEventBus = props.skuEventBus,\n selectedSku = props.selectedSku;\n var goodsImg = getSkuImg(sku, selectedSku) || goods.picture;\n\n var previewImage = function previewImage() {\n skuEventBus.$emit('sku:previewImage', goodsImg);\n };\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": [bem(), 'van-hairline--bottom']\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('img-wrap'),\n \"on\": {\n \"click\": previewImage\n }\n }, [h(\"img\", {\n \"attrs\": {\n \"src\": goodsImg\n }\n })]), h(\"div\", {\n \"class\": bem('goods-info')\n }, [h(\"div\", {\n \"class\": \"van-sku__goods-name van-ellipsis\"\n }, [goods.title]), slots[\"default\"] && slots[\"default\"](), h(Icon, {\n \"attrs\": {\n \"name\": \"close\"\n },\n \"class\": \"van-sku__close-icon\",\n \"on\": {\n \"click\": function click() {\n skuEventBus.$emit('sku:close');\n }\n }\n })])]);\n}\n\nSkuHeader.props = {\n sku: Object,\n goods: Object,\n skuEventBus: Object,\n selectedSku: Object\n};\nexport default sfc(SkuHeader);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../../utils';\nimport { inherit } from '../../utils/functional'; // Types\n\nvar _use = use('sku-row'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction SkuRow(h, props, slots, ctx) {\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('title')\n }, [props.skuRow.k, \"\\uFF1A\"]), slots[\"default\"] && slots[\"default\"]()]);\n}\n\nSkuRow.props = {\n skuRow: Object\n};\nexport default sfc(SkuRow);","export var LIMIT_TYPE = {\n QUOTA_LIMIT: 0,\n STOCK_LIMIT: 1\n};\nexport var UNSELECTED_SKU_VALUE_ID = '';\nexport default {\n LIMIT_TYPE: LIMIT_TYPE,\n UNSELECTED_SKU_VALUE_ID: UNSELECTED_SKU_VALUE_ID\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { UNSELECTED_SKU_VALUE_ID } from '../constants';\n/*\n normalize sku tree\n\n [\n {\n count: 2,\n k: \"品种\", // 规格名称 skuKeyName\n k_id: \"1200\", // skuKeyId\n k_s: \"s1\" // skuKeyStr\n v: [ // skuValues\n { // skuValue\n id: \"1201\", // skuValueId\n name: \"萌\" // 具体的规格值 skuValueName\n }, {\n id: \"973\",\n name: \"帅\"\n }\n ]\n },\n ...\n ]\n |\n v\n {\n s1: [{\n id: \"1201\",\n name: \"萌\"\n }, {\n id: \"973\",\n name: \"帅\"\n }],\n ...\n }\n */\n\nexport var normalizeSkuTree = function normalizeSkuTree(skuTree) {\n var normalizedTree = {};\n skuTree.forEach(function (treeItem) {\n normalizedTree[treeItem.k_s] = treeItem.v;\n });\n return normalizedTree;\n}; // 判断是否所有的sku都已经选中\n\nexport var isAllSelected = function isAllSelected(skuTree, selectedSku) {\n // 筛选selectedSku对象中key值不为空的值\n var selected = Object.keys(selectedSku).filter(function (skuKeyStr) {\n return selectedSku[skuKeyStr] !== UNSELECTED_SKU_VALUE_ID;\n });\n return skuTree.length === selected.length;\n}; // 根据已选择的 sku 获取 skuComb\n\nexport var getSkuComb = function getSkuComb(skuList, selectedSku) {\n var skuComb = skuList.filter(function (item) {\n return Object.keys(selectedSku).every(function (skuKeyStr) {\n return String(item[skuKeyStr]) === String(selectedSku[skuKeyStr]);\n });\n });\n return skuComb[0];\n}; // 获取已选择的sku名称\n\nexport var getSelectedSkuValues = function getSelectedSkuValues(skuTree, selectedSku) {\n var normalizedTree = normalizeSkuTree(skuTree);\n return Object.keys(selectedSku).reduce(function (selectedValues, skuKeyStr) {\n var skuValues = normalizedTree[skuKeyStr];\n var skuValueId = selectedSku[skuKeyStr];\n\n if (skuValueId !== UNSELECTED_SKU_VALUE_ID) {\n var skuValue = skuValues.filter(function (value) {\n return value.id === skuValueId;\n })[0];\n skuValue && selectedValues.push(skuValue);\n }\n\n return selectedValues;\n }, []);\n}; // 判断sku是否可选\n\nexport var isSkuChoosable = function isSkuChoosable(skuList, selectedSku, skuToChoose) {\n var _extends2;\n\n var key = skuToChoose.key,\n valueId = skuToChoose.valueId; // 先假设sku已选中,拼入已选中sku对象中\n\n var matchedSku = _extends({}, selectedSku, (_extends2 = {}, _extends2[key] = valueId, _extends2)); // 再判断剩余sku是否全部不可选,若不可选则当前sku不可选中\n\n\n var skusToCheck = Object.keys(matchedSku).filter(function (skuKey) {\n return matchedSku[skuKey] !== UNSELECTED_SKU_VALUE_ID;\n });\n var filteredSku = skuList.filter(function (sku) {\n return skusToCheck.every(function (skuKey) {\n return String(matchedSku[skuKey]) === String(sku[skuKey]);\n });\n });\n var stock = filteredSku.reduce(function (total, sku) {\n total += sku.stock_num;\n return total;\n }, 0);\n return stock > 0;\n};\nexport default {\n normalizeSkuTree: normalizeSkuTree,\n getSkuComb: getSkuComb,\n getSelectedSkuValues: getSelectedSkuValues,\n isAllSelected: isAllSelected,\n isSkuChoosable: isSkuChoosable\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../../utils';\nimport { isSkuChoosable } from '../utils/skuHelper';\n\nvar _use = use('sku-row-item'),\n sfc = _use[0];\n\nexport default sfc({\n props: {\n skuList: Array,\n skuValue: Object,\n skuKeyStr: String,\n skuEventBus: Object,\n selectedSku: Object\n },\n computed: {\n choosable: function choosable() {\n return isSkuChoosable(this.skuList, this.selectedSku, {\n key: this.skuKeyStr,\n valueId: this.skuValue.id\n });\n }\n },\n methods: {\n onSelect: function onSelect() {\n if (this.choosable) {\n this.skuEventBus.$emit('sku:select', _extends({}, this.skuValue, {\n skuKeyStr: this.skuKeyStr\n }));\n }\n }\n },\n render: function render(h) {\n var choosed = this.skuValue.id === this.selectedSku[this.skuKeyStr];\n return h(\"span\", {\n \"class\": ['van-sku-row__item', {\n 'van-sku-row__item--active': choosed,\n 'van-sku-row__item--disabled': !this.choosable\n }],\n \"on\": {\n \"click\": this.onSelect\n }\n }, [this.skuValue.name]);\n }\n});","import { use, isDef } from '../utils';\n\nvar _use = use('stepper'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n value: null,\n integer: Boolean,\n disabled: Boolean,\n inputWidth: String,\n asyncChange: Boolean,\n disableInput: Boolean,\n min: {\n type: [String, Number],\n \"default\": 1\n },\n max: {\n type: [String, Number],\n \"default\": Infinity\n },\n step: {\n type: [String, Number],\n \"default\": 1\n },\n defaultValue: {\n type: [String, Number],\n \"default\": 1\n }\n },\n data: function data() {\n var value = this.range(isDef(this.value) ? this.value : this.defaultValue);\n\n if (value !== +this.value) {\n this.$emit('input', value);\n }\n\n return {\n currentValue: value\n };\n },\n computed: {\n minusDisabled: function minusDisabled() {\n return this.disabled || this.currentValue <= this.min;\n },\n plusDisabled: function plusDisabled() {\n return this.disabled || this.currentValue >= this.max;\n }\n },\n watch: {\n value: function value(val) {\n if (val !== this.currentValue) {\n this.currentValue = this.format(val);\n }\n },\n currentValue: function currentValue(val) {\n this.$emit('input', val);\n this.$emit('change', val);\n }\n },\n methods: {\n // filter illegal characters\n format: function format(value) {\n value = String(value).replace(/[^0-9.-]/g, '');\n return value === '' ? 0 : this.integer ? Math.floor(value) : +value;\n },\n // limit value range\n range: function range(value) {\n return Math.max(Math.min(this.max, this.format(value)), this.min);\n },\n onInput: function onInput(event) {\n var value = event.target.value;\n var formatted = this.format(value);\n\n if (!this.asyncChange) {\n if (+value !== formatted) {\n event.target.value = formatted;\n }\n\n this.currentValue = formatted;\n } else {\n event.target.value = this.currentValue;\n this.$emit('input', formatted);\n this.$emit('change', formatted);\n }\n },\n onChange: function onChange(type) {\n if (this[type + \"Disabled\"]) {\n this.$emit('overlimit', type);\n return;\n }\n\n var diff = type === 'minus' ? -this.step : +this.step;\n var value = Math.round((this.currentValue + diff) * 100) / 100;\n\n if (!this.asyncChange) {\n this.currentValue = this.range(value);\n } else {\n this.$emit('input', value);\n this.$emit('change', value);\n }\n\n this.$emit(type);\n },\n onFocus: function onFocus(event) {\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.currentValue = this.range(this.currentValue);\n this.$emit('blur', event); // fix edge case when input is empty and min is 0\n\n if (this.currentValue === 0) {\n event.target.value = this.currentValue;\n }\n }\n },\n render: function render(h) {\n var _this = this;\n\n var onChange = function onChange(type) {\n return function () {\n _this.onChange(type);\n };\n };\n\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"button\", {\n \"class\": bem('minus', {\n disabled: this.minusDisabled\n }),\n \"on\": {\n \"click\": onChange('minus')\n }\n }), h(\"input\", {\n \"attrs\": {\n \"type\": \"number\",\n \"disabled\": this.disabled || this.disableInput\n },\n \"class\": bem('input'),\n \"domProps\": {\n \"value\": this.currentValue\n },\n \"style\": {\n width: this.inputWidth\n },\n \"on\": {\n \"input\": this.onInput,\n \"focus\": this.onFocus,\n \"blur\": this.onBlur\n }\n }), h(\"button\", {\n \"class\": bem('plus', {\n disabled: this.plusDisabled\n }),\n \"on\": {\n \"click\": onChange('plus')\n }\n })]);\n }\n});","import { use } from '../../utils';\nimport Stepper from '../../stepper';\nimport { LIMIT_TYPE } from '../constants';\n\nvar _use = use('sku-stepper'),\n sfc = _use[0];\n\nvar QUOTA_LIMIT = LIMIT_TYPE.QUOTA_LIMIT,\n STOCK_LIMIT = LIMIT_TYPE.STOCK_LIMIT;\nexport default sfc({\n props: {\n quota: Number,\n quotaUsed: Number,\n hideStock: Boolean,\n skuEventBus: Object,\n skuStockNum: Number,\n selectedSku: Object,\n selectedNum: Number,\n stepperTitle: String,\n hideQuotaText: Boolean,\n selectedSkuComb: Object,\n disableStepperInput: Boolean,\n customStepperConfig: Object\n },\n data: function data() {\n return {\n currentNum: this.selectedNum,\n // 购买限制类型: 限购/库存\n limitType: STOCK_LIMIT\n };\n },\n watch: {\n currentNum: function currentNum(num) {\n this.skuEventBus.$emit('sku:numChange', num);\n },\n stepperLimit: function stepperLimit(limit) {\n if (limit < this.currentNum) {\n this.currentNum = limit;\n }\n }\n },\n computed: {\n stock: function stock() {\n var stockNum = this.customStepperConfig.stockNum;\n\n if (stockNum !== undefined) {\n return stockNum;\n }\n\n if (this.selectedSkuComb) {\n return this.selectedSkuComb.stock_num;\n }\n\n return this.skuStockNum;\n },\n stockText: function stockText() {\n var stockFormatter = this.customStepperConfig.stockFormatter;\n if (stockFormatter) return stockFormatter(this.stock);\n return \"\\u5269\\u4F59\" + this.stock + \"\\u4EF6\";\n },\n quotaText: function quotaText() {\n var _this$customStepperCo = this.customStepperConfig,\n quotaText = _this$customStepperCo.quotaText,\n hideQuotaText = _this$customStepperCo.hideQuotaText;\n if (hideQuotaText) return '';\n var text = '';\n\n if (quotaText) {\n text = quotaText;\n } else if (this.quota > 0) {\n text = \"\\u6BCF\\u4EBA\\u9650\\u8D2D\" + this.quota + \"\\u4EF6\";\n }\n\n return text;\n },\n stepperLimit: function stepperLimit() {\n var quotaLimit = this.quota - this.quotaUsed;\n var limit; // 无限购时直接取库存,有限购时取限购数和库存数中小的那个\n\n if (this.quota > 0 && quotaLimit <= this.stock) {\n // 修正负的limit\n limit = quotaLimit < 0 ? 0 : quotaLimit;\n this.limitType = QUOTA_LIMIT;\n } else {\n limit = this.stock;\n this.limitType = STOCK_LIMIT;\n }\n\n return limit;\n }\n },\n methods: {\n setCurrentNum: function setCurrentNum(num) {\n this.currentNum = num;\n },\n onOverLimit: function onOverLimit(action) {\n this.skuEventBus.$emit('sku:overLimit', {\n action: action,\n limitType: this.limitType,\n quota: this.quota,\n quotaUsed: this.quotaUsed\n });\n },\n onChange: function onChange(currentValue) {\n var handleStepperChange = this.customStepperConfig.handleStepperChange;\n handleStepperChange && handleStepperChange(currentValue);\n this.$emit('change', currentValue);\n }\n },\n render: function render(h) {\n var _this = this;\n\n return h(\"div\", {\n \"class\": \"van-sku-stepper-stock\"\n }, [h(\"div\", {\n \"class\": \"van-sku-stepper-container\"\n }, [h(\"div\", {\n \"class\": \"van-sku__stepper-title\"\n }, [this.stepperTitle || '购买数量', \"\\uFF1A\"]), h(Stepper, {\n \"class\": \"van-sku__stepper\",\n \"attrs\": {\n \"max\": this.stepperLimit,\n \"disableInput\": this.disableStepperInput\n },\n \"on\": {\n \"overlimit\": this.onOverLimit,\n \"change\": this.onChange\n },\n \"model\": {\n value: _this.currentNum,\n callback: function callback($$v) {\n _this.currentNum = $$v;\n }\n }\n })]), !this.hideStock && h(\"div\", {\n \"class\": \"van-sku__stock\"\n }, [this.stockText]), !this.hideQuotaText && this.quotaText && h(\"div\", {\n \"class\": \"van-sku__quota\"\n }, [this.quotaText])]);\n }\n});","/* eslint-disable */\nexport function isEmail(value) {\n var reg = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n return reg.test(value);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\n\nvar _use = use('uploader'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n inheritAttrs: false,\n props: {\n disabled: Boolean,\n beforeRead: Function,\n afterRead: Function,\n accept: {\n type: String,\n \"default\": 'image/*'\n },\n resultType: {\n type: String,\n \"default\": 'dataUrl'\n },\n maxSize: {\n type: Number,\n \"default\": Number.MAX_VALUE\n }\n },\n computed: {\n detail: function detail() {\n return {\n name: this.$attrs.name || ''\n };\n }\n },\n methods: {\n onChange: function onChange(event) {\n var _this = this;\n\n var files = event.target.files;\n\n if (this.disabled || !files.length) {\n return;\n }\n\n files = files.length === 1 ? files[0] : [].slice.call(files, 0);\n\n if (!files || this.beforeRead && !this.beforeRead(files, this.detail)) {\n this.resetInput();\n return;\n }\n\n if (Array.isArray(files)) {\n Promise.all(files.map(this.readFile)).then(function (contents) {\n var oversize = false;\n var payload = files.map(function (file, index) {\n if (file.size > _this.maxSize) {\n oversize = true;\n }\n\n return {\n file: files[index],\n content: contents[index]\n };\n });\n\n _this.onAfterRead(payload, oversize);\n });\n } else {\n this.readFile(files).then(function (content) {\n _this.onAfterRead({\n file: files,\n content: content\n }, files.size > _this.maxSize);\n });\n }\n },\n readFile: function readFile(file) {\n var _this2 = this;\n\n return new Promise(function (resolve) {\n var reader = new FileReader();\n\n reader.onload = function (event) {\n resolve(event.target.result);\n };\n\n if (_this2.resultType === 'dataUrl') {\n reader.readAsDataURL(file);\n } else if (_this2.resultType === 'text') {\n reader.readAsText(file);\n }\n });\n },\n onAfterRead: function onAfterRead(files, oversize) {\n if (oversize) {\n this.$emit('oversize', files);\n } else {\n this.afterRead && this.afterRead(files, this.detail);\n }\n\n this.resetInput();\n },\n resetInput: function resetInput() {\n if (this.$refs.input) {\n this.$refs.input.value = '';\n }\n }\n },\n render: function render(h) {\n var accept = this.accept,\n disabled = this.disabled;\n return h(\"div\", {\n \"class\": bem()\n }, [this.slots(), h(\"input\", {\n \"attrs\": _extends({}, this.$attrs, {\n \"type\": \"file\",\n \"accept\": accept,\n \"disabled\": disabled\n }),\n \"ref\": \"input\",\n \"class\": bem('input'),\n \"on\": {\n \"change\": this.onChange\n }\n })]);\n }\n});","import { use } from '../../utils';\nimport Icon from '../../icon';\nimport Loading from '../../loading';\nimport Uploader from '../../uploader';\n\nvar _use = use('sku-img-uploader'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n value: String,\n uploadImg: Function,\n maxSize: {\n type: Number,\n \"default\": 6\n }\n },\n data: function data() {\n return {\n // 正在上传的图片 base64\n paddingImg: ''\n };\n },\n computed: {\n imgList: function imgList() {\n return this.value && !this.paddingImg ? [this.value] : [];\n }\n },\n methods: {\n afterReadFile: function afterReadFile(file) {\n var _this = this;\n\n // 上传文件\n this.paddingImg = file.content;\n this.uploadImg(file.file, file.content).then(function (img) {\n _this.$emit('input', img);\n\n _this.$nextTick(function () {\n _this.paddingImg = '';\n });\n })[\"catch\"](function () {\n _this.paddingImg = '';\n });\n },\n onOversize: function onOversize() {\n this.$toast(\"\\u6700\\u5927\\u53EF\\u4E0A\\u4F20\\u56FE\\u7247\\u4E3A\" + this.maxSize + \"MB\\uFF0C\\u8BF7\\u5C1D\\u8BD5\\u538B\\u7F29\\u56FE\\u7247\\u5C3A\\u5BF8\");\n }\n },\n render: function render(h) {\n var _this2 = this;\n\n var imgList = this.imgList,\n paddingImg = this.paddingImg;\n var ImageList = (paddingImg || imgList.length > 0) && h(\"div\", {\n \"class\": \"van-clearfix\"\n }, [imgList.map(function (img) {\n return h(\"div\", {\n \"class\": bem('img')\n }, [h(\"img\", {\n \"attrs\": {\n \"src\": img\n }\n }), h(Icon, {\n \"attrs\": {\n \"name\": \"clear\"\n },\n \"class\": bem('delete'),\n \"on\": {\n \"click\": function click() {\n _this2.$emit('input', '');\n }\n }\n })]);\n }), paddingImg && h(\"div\", {\n \"class\": bem('img')\n }, [h(\"img\", {\n \"attrs\": {\n \"src\": paddingImg\n }\n }), h(Loading, {\n \"attrs\": {\n \"type\": \"spinner\"\n },\n \"class\": bem('uploading')\n })])]);\n return h(\"div\", {\n \"class\": bem()\n }, [h(Uploader, {\n \"attrs\": {\n \"disabled\": !!paddingImg,\n \"afterRead\": this.afterReadFile,\n \"maxSize\": this.maxSize * 1024 * 1024\n },\n \"on\": {\n \"oversize\": this.onOversize\n }\n }, [h(\"div\", {\n \"class\": bem('header')\n }, [paddingImg ? h(\"div\", [\"\\u6B63\\u5728\\u4E0A\\u4F20...\"]) : [h(Icon, {\n \"attrs\": {\n \"name\": \"photograph\"\n }\n }), h(\"span\", {\n \"class\": \"label\"\n }, [this.value ? '重拍' : '拍照', \" \\u6216 \"]), h(Icon, {\n \"attrs\": {\n \"name\": \"photo\"\n }\n }), h(\"span\", {\n \"class\": \"label\"\n }, [this.value ? '重新选择照片' : '选择照片'])]])]), ImageList]);\n }\n});","import { use } from '../../utils';\nimport Cell from '../../cell';\nimport CellGroup from '../../cell-group';\nimport Field from '../../field';\nimport { isEmail } from '../../utils/validate/email';\nimport { isNumber } from '../../utils/validate/number';\nimport SkuImgUploader from './SkuImgUploader';\n\nvar _use = use('sku-messages'),\n sfc = _use[0],\n bem = _use[1];\n\nvar PLACEHOLDER = {\n id_no: '输入身份证号码',\n text: '输入文本',\n tel: '输入数字',\n email: '输入邮箱',\n date: '点击选择日期',\n time: '点击选择时间',\n textarea: '点击填写段落文本',\n mobile: '输入手机号码'\n};\nexport default sfc({\n props: {\n messages: Array,\n messageConfig: Object,\n goodsId: [Number, String]\n },\n data: function data() {\n return {\n messageValues: this.resetMessageValues(this.messages)\n };\n },\n watch: {\n messages: function messages(val) {\n this.messageValues = this.resetMessageValues(val);\n }\n },\n methods: {\n resetMessageValues: function resetMessageValues(messages) {\n return (messages || []).map(function () {\n return {\n value: ''\n };\n });\n },\n getType: function getType(message) {\n if (+message.multiple === 1) {\n return 'textarea';\n }\n\n if (message.type === 'id_no') {\n return 'text';\n }\n\n return message.datetime > 0 ? 'datetime-local' : message.type;\n },\n getMessages: function getMessages() {\n var _this = this;\n\n var messages = {};\n this.messageValues.forEach(function (item, index) {\n var value = item.value;\n\n if (_this.messages[index].datetime > 0) {\n value = value.replace(/T/g, ' ');\n }\n\n messages[\"message_\" + index] = value;\n });\n return messages;\n },\n getCartMessages: function getCartMessages() {\n var _this2 = this;\n\n var messages = {};\n this.messageValues.forEach(function (item, index) {\n var value = item.value;\n var message = _this2.messages[index];\n\n if (message.datetime > 0) {\n value = value.replace(/T/g, ' ');\n }\n\n messages[message.name] = value;\n });\n return messages;\n },\n getPlaceholder: function getPlaceholder(message) {\n var type = +message.multiple === 1 ? 'textarea' : message.type;\n var map = this.messageConfig.placeholderMap || {};\n return map[type] || PLACEHOLDER[type];\n },\n validateMessages: function validateMessages() {\n var values = this.messageValues;\n\n for (var i = 0; i < values.length; i++) {\n var value = values[i].value;\n var message = this.messages[i];\n\n if (value === '') {\n // 必填字段的校验\n if (String(message.required) === '1') {\n // eslint-disable-line\n var textType = message.type === 'image' ? '请上传' : '请填写';\n return textType + message.name;\n }\n } else {\n if (message.type === 'tel' && !isNumber(value)) {\n return '请填写正确的数字格式留言';\n }\n\n if (message.type === 'mobile' && !/^\\d{6,20}$/.test(value)) {\n return '手机号长度为6-20位数字';\n }\n\n if (message.type === 'email' && !isEmail(value)) {\n return '请填写正确的邮箱';\n }\n\n if (message.type === 'id_no' && (value.length < 15 || value.length > 18)) {\n return '请填写正确的身份证号码';\n }\n }\n }\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n return h(CellGroup, {\n \"class\": bem()\n }, [this.messages.map(function (message, index) {\n return message.type === 'image' ? h(Cell, {\n \"class\": bem('image-cell'),\n \"attrs\": {\n \"label\": \"仅限一张\",\n \"title\": message.name,\n \"required\": String(message.required) === '1'\n },\n \"key\": _this3.goodsId + \"-\" + index\n }, [h(SkuImgUploader, {\n \"attrs\": {\n \"uploadImg\": _this3.messageConfig.uploadImg,\n \"maxSize\": _this3.messageConfig.uploadMaxSize\n },\n \"model\": {\n value: _this3.messageValues[index].value,\n callback: function callback($$v) {\n _this3.messageValues[index].value = $$v;\n }\n }\n })]) : h(Field, {\n \"attrs\": {\n \"maxlength\": \"200\",\n \"label\": message.name,\n \"required\": String(message.required) === '1',\n \"placeholder\": _this3.getPlaceholder(message),\n \"type\": _this3.getType(message)\n },\n \"key\": _this3.goodsId + \"-\" + index,\n \"model\": {\n value: _this3.messageValues[index].value,\n callback: function callback($$v) {\n _this3.messageValues[index].value = $$v;\n }\n }\n });\n })]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../../utils';\nimport { inherit } from '../../utils/functional';\nimport Button from '../../button'; // Types\n\nvar _use = use('sku-actions'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction SkuActions(h, props, slots, ctx) {\n var emit = function emit(name) {\n return function () {\n props.skuEventBus.$emit(name);\n };\n };\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [props.showAddCartBtn && h(Button, {\n \"attrs\": {\n \"bottomAction\": true,\n \"text\": \"加入购物车\"\n },\n \"on\": {\n \"click\": emit('sku:addCart')\n }\n }), h(Button, {\n \"attrs\": {\n \"type\": \"primary\",\n \"bottomAction\": true,\n \"text\": props.buyText || '立即购买'\n },\n \"on\": {\n \"click\": emit('sku:buy')\n }\n })]);\n}\n\nSkuActions.props = {\n buyText: String,\n skuEventBus: Object,\n showAddCartBtn: Boolean\n};\nexport default sfc(SkuActions);","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\n/* eslint-disable camelcase */\nimport Vue from 'vue';\nimport Popup from '../popup';\nimport Toast from '../toast';\nimport ImagePreview from '../image-preview';\nimport SkuHeader from './components/SkuHeader';\nimport SkuRow from './components/SkuRow';\nimport SkuRowItem from './components/SkuRowItem';\nimport SkuStepper from './components/SkuStepper';\nimport SkuMessages from './components/SkuMessages';\nimport SkuActions from './components/SkuActions';\nimport { use, isDef } from '../utils';\nimport { isAllSelected, isSkuChoosable, getSkuComb, getSelectedSkuValues } from './utils/skuHelper';\nimport { LIMIT_TYPE, UNSELECTED_SKU_VALUE_ID } from './constants';\n\nvar _use = use('sku'),\n sfc = _use[0];\n\nvar QUOTA_LIMIT = LIMIT_TYPE.QUOTA_LIMIT;\nexport default sfc({\n props: {\n sku: Object,\n goods: Object,\n quota: Number,\n value: Boolean,\n buyText: String,\n quotaUsed: Number,\n goodsId: [Number, String],\n hideStock: Boolean,\n hideQuotaText: Boolean,\n stepperTitle: String,\n getContainer: Function,\n customSkuValidator: Function,\n closeOnClickOverlay: Boolean,\n disableStepperInput: Boolean,\n resetStepperOnHide: Boolean,\n resetSelectedSkuOnHide: Boolean,\n initialSku: {\n type: Object,\n \"default\": function _default() {\n return {};\n }\n },\n showSoldoutSku: {\n type: Boolean,\n \"default\": true\n },\n showAddCartBtn: {\n type: Boolean,\n \"default\": true\n },\n bodyOffsetTop: {\n type: Number,\n \"default\": 200\n },\n messageConfig: {\n type: Object,\n \"default\": function _default() {\n return {\n placeholderMap: {},\n uploadImg: function uploadImg() {\n return Promise.resolve();\n },\n uploadMaxSize: 5\n };\n }\n },\n customStepperConfig: {\n type: Object,\n \"default\": function _default() {\n return {};\n }\n }\n },\n data: function data() {\n return {\n selectedSku: {},\n selectedNum: 1,\n show: this.value\n };\n },\n watch: {\n show: function show(val) {\n this.$emit('input', val);\n\n if (!val) {\n var selectedSkuValues = getSelectedSkuValues(this.sku.tree, this.selectedSku);\n this.$emit('sku-close', {\n selectedSkuValues: selectedSkuValues,\n selectedNum: this.selectedNum,\n selectedSkuComb: this.selectedSkuComb\n });\n\n if (this.resetStepperOnHide) {\n this.resetStepper();\n }\n\n if (this.resetSelectedSkuOnHide) {\n this.resetSelectedSku(this.skuTree);\n }\n }\n },\n value: function value(val) {\n this.show = val;\n },\n skuTree: function skuTree(val) {\n this.resetSelectedSku(val);\n }\n },\n computed: {\n skuGroupClass: function skuGroupClass() {\n return ['van-sku-group-container', 'van-hairline--bottom', {\n 'van-sku-group-container--hide-soldout': !this.showSoldoutSku\n }];\n },\n bodyStyle: function bodyStyle() {\n if (this.$isServer) {\n return;\n } // header高度82px, sku actions高度50px,如果改动了样式自己传下bodyOffsetTop调整下\n\n\n var maxHeight = window.innerHeight - this.bodyOffsetTop;\n return {\n maxHeight: maxHeight + 'px'\n };\n },\n isSkuCombSelected: function isSkuCombSelected() {\n return isAllSelected(this.sku.tree, this.selectedSku);\n },\n isSkuEmpty: function isSkuEmpty() {\n return Object.keys(this.sku).length === 0;\n },\n hasSku: function hasSku() {\n return !this.sku.none_sku;\n },\n selectedSkuComb: function selectedSkuComb() {\n if (!this.hasSku) {\n return {\n id: this.sku.collection_id,\n price: Math.round(this.sku.price * 100),\n stock_num: this.sku.stock_num\n };\n }\n\n if (this.isSkuCombSelected) {\n return getSkuComb(this.sku.list, this.selectedSku);\n }\n\n return null;\n },\n price: function price() {\n if (this.selectedSkuComb) {\n return (this.selectedSkuComb.price / 100).toFixed(2);\n } // sku.price是一个格式化好的价格区间\n\n\n return this.sku.price;\n },\n skuTree: function skuTree() {\n return this.sku.tree || [];\n },\n imageList: function imageList() {\n var imageList = [this.goods.picture];\n\n if (this.skuTree.length > 0) {\n var treeItem = this.skuTree.filter(function (item) {\n return item.k_s === 's1';\n })[0] || {};\n\n if (!treeItem.v) {\n return;\n }\n\n treeItem.v.forEach(function (vItem) {\n var img = vItem.imgUrl || vItem.img_url;\n\n if (img) {\n imageList.push(img);\n }\n });\n }\n\n return imageList;\n }\n },\n created: function created() {\n var skuEventBus = new Vue();\n this.skuEventBus = skuEventBus;\n skuEventBus.$on('sku:close', this.onClose);\n skuEventBus.$on('sku:select', this.onSelect);\n skuEventBus.$on('sku:numChange', this.onNumChange);\n skuEventBus.$on('sku:previewImage', this.onPreviewImage);\n skuEventBus.$on('sku:overLimit', this.onOverLimit);\n skuEventBus.$on('sku:addCart', this.onAddCart);\n skuEventBus.$on('sku:buy', this.onBuy);\n this.resetStepper();\n this.resetSelectedSku(this.skuTree); // 组件初始化后的钩子,抛出skuEventBus\n\n this.$emit('after-sku-create', skuEventBus);\n },\n methods: {\n resetStepper: function resetStepper() {\n var skuStepper = this.$refs.skuStepper;\n var selectedNum = this.initialSku.selectedNum;\n var num = isDef(selectedNum) ? selectedNum : 1;\n\n if (skuStepper) {\n skuStepper.setCurrentNum(num);\n } else {\n this.selectedNum = num;\n }\n },\n resetSelectedSku: function resetSelectedSku(skuTree) {\n var _this = this;\n\n this.selectedSku = {}; // 重置 selectedSku\n\n skuTree.forEach(function (item) {\n _this.selectedSku[item.k_s] = _this.initialSku[item.k_s] || UNSELECTED_SKU_VALUE_ID;\n }); // 只有一个 sku 规格值时默认选中\n\n skuTree.forEach(function (item) {\n var key = item.k_s;\n var valueId = item.v[0].id;\n\n if (item.v.length === 1 && isSkuChoosable(_this.sku.list, _this.selectedSku, {\n key: key,\n valueId: valueId\n })) {\n _this.selectedSku[key] = valueId;\n }\n });\n },\n getSkuMessages: function getSkuMessages() {\n return this.$refs.skuMessages ? this.$refs.skuMessages.getMessages() : {};\n },\n getSkuCartMessages: function getSkuCartMessages() {\n return this.$refs.skuMessages ? this.$refs.skuMessages.getCartMessages() : {};\n },\n validateSkuMessages: function validateSkuMessages() {\n return this.$refs.skuMessages ? this.$refs.skuMessages.validateMessages() : '';\n },\n validateSku: function validateSku() {\n if (this.selectedNum === 0) {\n return '商品已经无法购买啦';\n }\n\n if (this.isSkuCombSelected) {\n return this.validateSkuMessages();\n } // 自定义sku校验\n\n\n if (this.customSkuValidator) {\n var err = this.customSkuValidator(this);\n if (err) return err;\n }\n\n return '请先选择商品规格';\n },\n onClose: function onClose() {\n this.show = false;\n },\n onSelect: function onSelect(skuValue) {\n var _extends2, _extends3;\n\n // 点击已选中的sku时则取消选中\n this.selectedSku = this.selectedSku[skuValue.skuKeyStr] === skuValue.id ? _extends({}, this.selectedSku, (_extends2 = {}, _extends2[skuValue.skuKeyStr] = UNSELECTED_SKU_VALUE_ID, _extends2)) : _extends({}, this.selectedSku, (_extends3 = {}, _extends3[skuValue.skuKeyStr] = skuValue.id, _extends3));\n this.$emit('sku-selected', {\n skuValue: skuValue,\n selectedSku: this.selectedSku,\n selectedSkuComb: this.selectedSkuComb\n });\n },\n onNumChange: function onNumChange(num) {\n this.selectedNum = num;\n },\n onPreviewImage: function onPreviewImage(indexImage) {\n var _this2 = this;\n\n var index = this.imageList.findIndex(function (image) {\n return image === indexImage;\n });\n var cbParams = {\n index: index,\n imageList: this.imageList,\n indexImage: indexImage\n };\n this.$emit('preview-on', cbParams);\n ImagePreview({\n images: this.imageList,\n startPosition: index,\n onClose: function onClose() {\n _this2.$emit('preview-close', cbParams);\n }\n });\n },\n onOverLimit: function onOverLimit(data) {\n var action = data.action,\n limitType = data.limitType,\n quota = data.quota,\n quotaUsed = data.quotaUsed;\n var handleOverLimit = this.customStepperConfig.handleOverLimit;\n\n if (handleOverLimit) {\n handleOverLimit(data);\n return;\n }\n\n if (action === 'minus') {\n Toast('至少选择一件');\n } else if (action === 'plus') {\n if (limitType === QUOTA_LIMIT) {\n var msg = \"\\u9650\\u8D2D\" + quota + \"\\u4EF6\";\n if (quotaUsed > 0) msg += \"\\uFF0C\" + (\"\\u4F60\\u5DF2\\u8D2D\\u4E70\" + quotaUsed + \"\\u4EF6\");\n Toast(msg);\n } else {\n Toast('库存不足');\n }\n }\n },\n onAddCart: function onAddCart() {\n this.onBuyOrAddCart('add-cart');\n },\n onBuy: function onBuy() {\n this.onBuyOrAddCart('buy-clicked');\n },\n onBuyOrAddCart: function onBuyOrAddCart(type) {\n var error = this.validateSku();\n\n if (error) {\n Toast(error);\n } else {\n this.$emit(type, this.getSkuData());\n }\n },\n getSkuData: function getSkuData() {\n return {\n goodsId: this.goodsId,\n selectedNum: this.selectedNum,\n selectedSkuComb: this.selectedSkuComb,\n messages: this.getSkuMessages(),\n cartMessages: this.getSkuCartMessages()\n };\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n if (this.isSkuEmpty) {\n return;\n }\n\n var sku = this.sku,\n goods = this.goods,\n price = this.price,\n skuEventBus = this.skuEventBus,\n selectedSku = this.selectedSku,\n selectedNum = this.selectedNum,\n stepperTitle = this.stepperTitle,\n hideQuotaText = this.hideQuotaText,\n selectedSkuComb = this.selectedSkuComb;\n var slotsProps = {\n price: price,\n selectedNum: selectedNum,\n skuEventBus: skuEventBus,\n selectedSku: selectedSku,\n selectedSkuComb: selectedSkuComb\n };\n\n var slots = function slots(name) {\n return _this3.slots(name, slotsProps);\n };\n\n var Header = slots('sku-header') || h(SkuHeader, {\n \"attrs\": {\n \"sku\": sku,\n \"goods\": goods,\n \"skuEventBus\": skuEventBus,\n \"selectedSku\": selectedSku\n }\n }, [slots('sku-header-price') || h(\"div\", {\n \"class\": \"van-sku__goods-price\"\n }, [h(\"span\", {\n \"class\": \"van-sku__price-symbol\"\n }, [\"\\uFFE5\"]), h(\"span\", {\n \"class\": \"van-sku__price-num\"\n }, [price])])]);\n var Group = slots('sku-group') || this.hasSku && h(\"div\", {\n \"class\": this.skuGroupClass\n }, [this.skuTree.map(function (skuTreeItem) {\n return h(SkuRow, {\n \"attrs\": {\n \"skuRow\": skuTreeItem\n }\n }, [skuTreeItem.v.map(function (skuValue) {\n return h(SkuRowItem, {\n \"attrs\": {\n \"skuList\": sku.list,\n \"skuValue\": skuValue,\n \"selectedSku\": selectedSku,\n \"skuEventBus\": skuEventBus,\n \"skuKeyStr\": skuTreeItem.k_s\n }\n });\n })]);\n })]);\n var Stepper = slots('sku-stepper') || h(SkuStepper, {\n \"ref\": \"skuStepper\",\n \"attrs\": {\n \"quota\": this.quota,\n \"hideStock\": this.hideStock,\n \"quotaUsed\": this.quotaUsed,\n \"skuEventBus\": skuEventBus,\n \"selectedNum\": selectedNum,\n \"selectedSku\": selectedSku,\n \"stepperTitle\": stepperTitle,\n \"skuStockNum\": sku.stock_num,\n \"hideQuotaText\": hideQuotaText,\n \"selectedSkuComb\": selectedSkuComb,\n \"disableStepperInput\": this.disableStepperInput,\n \"customStepperConfig\": this.customStepperConfig\n },\n \"on\": {\n \"change\": function change(event) {\n _this3.$emit('stepper-change', event);\n }\n }\n });\n var Messages = slots('sku-messages') || h(SkuMessages, {\n \"ref\": \"skuMessages\",\n \"attrs\": {\n \"goodsId\": this.goodsId,\n \"messageConfig\": this.messageConfig,\n \"messages\": sku.messages\n }\n });\n var Actions = slots('sku-actions') || h(SkuActions, {\n \"attrs\": {\n \"buyText\": this.buyText,\n \"skuEventBus\": skuEventBus,\n \"showAddCartBtn\": this.showAddCartBtn\n }\n });\n return h(Popup, {\n \"attrs\": {\n \"position\": \"bottom\",\n \"getContainer\": this.getContainer,\n \"closeOnClickOverlay\": this.closeOnClickOverlay\n },\n \"class\": \"van-sku-container\",\n \"model\": {\n value: _this3.show,\n callback: function callback($$v) {\n _this3.show = $$v;\n }\n }\n }, [Header, h(\"div\", {\n \"class\": \"van-sku-body\",\n \"style\": this.bodyStyle\n }, [slots('sku-body-top'), Group, slots('extra-sku-group'), Stepper, Messages]), Actions]);\n }\n});","import Sku from './Sku';\nimport SkuActions from './components/SkuActions';\nimport SkuHeader from './components/SkuHeader';\nimport SkuMessages from './components/SkuMessages';\nimport SkuStepper from './components/SkuStepper';\nimport SkuRow from './components/SkuRow';\nimport SkuRowItem from './components/SkuRowItem';\nimport skuHelper from './utils/skuHelper';\nimport constants from './constants';\nSku.SkuActions = SkuActions;\nSku.SkuHeader = SkuHeader;\nSku.SkuMessages = SkuMessages;\nSku.SkuStepper = SkuStepper;\nSku.SkuRow = SkuRow;\nSku.SkuRowItem = SkuRowItem;\nSku.skuHelper = skuHelper;\nSku.skuConstants = constants;\nexport default Sku;","import { use } from '../utils';\nimport { TouchMixin } from '../mixins/touch';\nimport { preventDefault } from '../utils/event';\n\nvar _use = use('slider'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n mixins: [TouchMixin],\n props: {\n min: Number,\n value: Number,\n disabled: Boolean,\n vertical: Boolean,\n activeColor: String,\n inactiveColor: String,\n max: {\n type: Number,\n \"default\": 100\n },\n step: {\n type: Number,\n \"default\": 1\n },\n barHeight: {\n type: String,\n \"default\": '2px'\n }\n },\n methods: {\n onTouchStart: function onTouchStart(event) {\n if (this.disabled) return;\n this.touchStart(event);\n this.startValue = this.format(this.value);\n },\n onTouchMove: function onTouchMove(event) {\n preventDefault(event, true);\n if (this.disabled) return;\n this.touchMove(event);\n var rect = this.$el.getBoundingClientRect();\n var delta = this.vertical ? this.deltaY : this.deltaX;\n var total = this.vertical ? rect.height : rect.width;\n var diff = delta / total * 100;\n this.newValue = this.startValue + diff;\n this.updateValue(this.newValue);\n },\n onTouchEnd: function onTouchEnd() {\n if (this.disabled) return;\n this.updateValue(this.newValue, true);\n },\n onClick: function onClick(event) {\n event.stopPropagation();\n if (this.disabled) return;\n var rect = this.$el.getBoundingClientRect();\n var delta = this.vertical ? event.clientY - rect.top : event.clientX - rect.left;\n var total = this.vertical ? rect.height : rect.width;\n var value = delta / total * 100;\n this.updateValue(value, true);\n },\n updateValue: function updateValue(value, end) {\n value = this.format(value);\n this.$emit('input', value);\n\n if (end) {\n this.$emit('change', value);\n }\n },\n format: function format(value) {\n return Math.round(Math.max(this.min, Math.min(value, this.max)) / this.step) * this.step;\n }\n },\n render: function render(h) {\n var _barStyle;\n\n var vertical = this.vertical;\n var style = {\n background: this.inactiveColor\n };\n var mainAxis = vertical ? 'height' : 'width';\n var crossAxis = vertical ? 'width' : 'height';\n var barStyle = (_barStyle = {}, _barStyle[mainAxis] = this.format(this.value) + \"%\", _barStyle[crossAxis] = this.barHeight, _barStyle.background = this.activeColor, _barStyle);\n return h(\"div\", {\n \"style\": style,\n \"class\": bem({\n disabled: this.disabled,\n vertical: vertical\n }),\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('bar'),\n \"style\": barStyle\n }, [h(\"div\", {\n \"class\": bem('button-wrapper'),\n \"on\": {\n \"touchstart\": this.onTouchStart,\n \"touchmove\": this.onTouchMove,\n \"touchend\": this.onTouchEnd,\n \"touchcancel\": this.onTouchEnd\n }\n }, [this.slots('button') || h(\"div\", {\n \"class\": bem('button')\n })])])]);\n }\n});","import { use } from '../utils';\nimport Icon from '../icon';\n\nvar _use = use('step'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n beforeCreate: function beforeCreate() {\n var steps = this.$parent.steps;\n var index = this.$parent.slots().indexOf(this.$vnode);\n steps.splice(index === -1 ? steps.length : index, 0, this);\n },\n beforeDestroy: function beforeDestroy() {\n var index = this.$parent.steps.indexOf(this);\n\n if (index > -1) {\n this.$parent.steps.splice(index, 1);\n }\n },\n computed: {\n status: function status() {\n var index = this.$parent.steps.indexOf(this);\n var active = this.$parent.active;\n\n if (index < active) {\n return 'finish';\n }\n\n if (index === active) {\n return 'process';\n }\n }\n },\n render: function render(h) {\n var _ref;\n\n var status = this.status;\n var _this$$parent = this.$parent,\n activeIcon = _this$$parent.activeIcon,\n activeColor = _this$$parent.activeColor,\n direction = _this$$parent.direction;\n var titleStyle = status === 'process' && {\n color: activeColor\n };\n return h(\"div\", {\n \"class\": ['van-hairline', bem([direction, (_ref = {}, _ref[status] = status, _ref)])]\n }, [h(\"div\", {\n \"class\": bem('title'),\n \"style\": titleStyle\n }, [this.slots()]), h(\"div\", {\n \"class\": bem('circle-container')\n }, [status !== 'process' ? h(\"i\", {\n \"class\": bem('circle')\n }) : this.slots('active-icon') || h(Icon, {\n \"attrs\": {\n \"name\": activeIcon\n },\n \"style\": {\n color: activeColor\n }\n })]), h(\"div\", {\n \"class\": bem('line')\n })]);\n }\n});","import { use } from '../utils';\nimport { GREEN } from '../utils/color';\nimport Icon from '../icon';\n\nvar _use = use('steps'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: {\n icon: String,\n title: String,\n active: Number,\n iconClass: String,\n description: String,\n direction: {\n type: String,\n \"default\": 'horizontal'\n },\n activeColor: {\n type: String,\n \"default\": GREEN\n },\n activeIcon: {\n type: String,\n \"default\": 'checked'\n }\n },\n data: function data() {\n return {\n steps: []\n };\n },\n render: function render(h) {\n var icon = this.icon,\n title = this.title,\n description = this.description,\n slots = this.slots;\n var StatusIcon = (slots('icon') || icon) && h(\"div\", {\n \"class\": bem('icon')\n }, [slots('icon') || h(Icon, {\n \"attrs\": {\n \"name\": icon\n },\n \"class\": this.iconClass\n })]);\n var StatusMessage = h(\"div\", {\n \"class\": bem('message')\n }, [h(\"div\", {\n \"class\": bem('title')\n }, [title]), h(\"div\", {\n \"class\": [bem('desc'), 'van-ellipsis']\n }, [description])]);\n return h(\"div\", {\n \"class\": bem([this.direction])\n }, [(title || description) && h(\"div\", {\n \"class\": bem('status')\n }, [StatusIcon, StatusMessage, slots('message-extra')]), h(\"div\", {\n \"class\": bem('items', {\n alone: !title && !description\n })\n }, [slots()])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Button from '../button'; // Types\n\nvar _use = use('submit-bar'),\n sfc = _use[0],\n bem = _use[1],\n t = _use[2];\n\nfunction SubmitBar(h, props, slots, ctx) {\n var tip = props.tip,\n price = props.price;\n var hasPrice = typeof price === 'number';\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n 'safe-area-inset-bottom': props.safeAreaInsetBottom\n })\n }, inherit(ctx)]), [slots.top && slots.top(), (slots.tip || tip) && h(\"div\", {\n \"class\": bem('tip')\n }, [tip, slots.tip && slots.tip()]), h(\"div\", {\n \"class\": bem('bar')\n }, [slots[\"default\"] && slots[\"default\"](), h(\"div\", {\n \"class\": bem('text')\n }, [hasPrice && [h(\"span\", [props.label || t('label')]), h(\"span\", {\n \"class\": bem('price')\n }, [props.currency + \" \" + (price / 100).toFixed(props.decimalLength)])]]), h(Button, {\n \"attrs\": {\n \"square\": true,\n \"size\": \"large\",\n \"type\": props.buttonType,\n \"loading\": props.loading,\n \"disabled\": props.disabled,\n \"text\": props.loading ? '' : props.buttonText\n },\n \"on\": {\n \"click\": function click() {\n emit(ctx, 'submit');\n }\n }\n })])]);\n}\n\nSubmitBar.props = {\n tip: String,\n label: String,\n loading: Boolean,\n disabled: Boolean,\n buttonText: String,\n safeAreaInsetBottom: Boolean,\n price: {\n type: Number,\n \"default\": null\n },\n decimalLength: {\n type: Number,\n \"default\": 2\n },\n currency: {\n type: String,\n \"default\": '¥'\n },\n buttonType: {\n type: String,\n \"default\": 'danger'\n }\n};\nexport default sfc(SubmitBar);","import { on, off } from '../utils/event';\nexport var ClickOutsideMixin = function ClickOutsideMixin(config) {\n return {\n mounted: function mounted() {\n var _this = this;\n\n config.handler = function (event) {\n if (!_this.$el.contains(event.target)) {\n _this[config.method]();\n }\n };\n\n on(document, config.event, config.handler);\n },\n beforeDestroy: function beforeDestroy() {\n off(document, config.event, config.handler);\n }\n };\n};","import { use, range } from '../utils';\nimport { preventDefault } from '../utils/event';\nimport { TouchMixin } from '../mixins/touch';\nimport { ClickOutsideMixin } from '../mixins/click-outside';\n\nvar _use = use('swipe-cell'),\n sfc = _use[0],\n bem = _use[1];\n\nvar THRESHOLD = 0.15;\nexport default sfc({\n mixins: [TouchMixin, ClickOutsideMixin({\n event: 'touchstart',\n method: 'onClick'\n })],\n props: {\n onClose: Function,\n disabled: Boolean,\n leftWidth: Number,\n rightWidth: Number\n },\n data: function data() {\n return {\n offset: 0,\n dragging: false\n };\n },\n methods: {\n open: function open(position) {\n var offset = position === 'left' ? this.leftWidth : -this.rightWidth;\n this.swipeMove(offset);\n this.resetSwipeStatus();\n },\n close: function close() {\n this.offset = 0;\n },\n resetSwipeStatus: function resetSwipeStatus() {\n this.swiping = false;\n this.opened = true;\n },\n swipeMove: function swipeMove(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n this.offset = range(offset, -this.rightWidth, this.leftWidth);\n\n if (this.offset) {\n this.swiping = true;\n } else {\n this.opened = false;\n }\n },\n swipeLeaveTransition: function swipeLeaveTransition(direction) {\n var offset = this.offset,\n leftWidth = this.leftWidth,\n rightWidth = this.rightWidth;\n var threshold = this.opened ? 1 - THRESHOLD : THRESHOLD; // right\n\n if (direction === 'right' && -offset > rightWidth * threshold && rightWidth > 0) {\n this.open('right'); // left\n } else if (direction === 'left' && offset > leftWidth * threshold && leftWidth > 0) {\n this.open('left'); // reset\n } else {\n this.swipeMove(0);\n }\n },\n startDrag: function startDrag(event) {\n if (this.disabled) {\n return;\n }\n\n this.dragging = true;\n this.startOffset = this.offset;\n this.touchStart(event);\n },\n onDrag: function onDrag(event) {\n if (this.disabled) {\n return;\n }\n\n this.touchMove(event);\n\n if (this.direction === 'horizontal') {\n preventDefault(event);\n this.swipeMove(this.deltaX + this.startOffset);\n }\n },\n endDrag: function endDrag() {\n if (this.disabled) {\n return;\n }\n\n this.dragging = false;\n\n if (this.swiping) {\n this.swipeLeaveTransition(this.offset > 0 ? 'left' : 'right');\n }\n },\n onClick: function onClick(position) {\n if (position === void 0) {\n position = 'outside';\n }\n\n this.$emit('click', position);\n\n if (!this.offset) {\n return;\n }\n\n if (this.onClose) {\n this.onClose(position, this);\n } else {\n this.swipeMove(0);\n }\n }\n },\n render: function render(h) {\n var _this = this;\n\n var onClick = function onClick(position, stop) {\n return function (event) {\n if (stop) {\n event.stopPropagation();\n }\n\n _this.onClick(position);\n };\n };\n\n var wrapperStyle = {\n transform: \"translate3d(\" + this.offset + \"px, 0, 0)\",\n transition: this.dragging ? 'none' : '.6s cubic-bezier(0.18, 0.89, 0.32, 1)'\n };\n return h(\"div\", {\n \"class\": bem(),\n \"on\": {\n \"click\": onClick('cell'),\n \"touchstart\": this.startDrag,\n \"touchmove\": this.onDrag,\n \"touchend\": this.endDrag,\n \"touchcancel\": this.endDrag\n }\n }, [h(\"div\", {\n \"class\": bem('wrapper'),\n \"style\": wrapperStyle,\n \"on\": {\n \"transitionend\": function transitionend() {\n _this.swiping = false;\n }\n }\n }, [this.leftWidth ? h(\"div\", {\n \"class\": bem('left'),\n \"on\": {\n \"click\": onClick('left', true)\n }\n }, [this.slots('left')]) : null, this.slots(), this.rightWidth ? h(\"div\", {\n \"class\": bem('right'),\n \"on\": {\n \"click\": onClick('right', true)\n }\n }, [this.slots('right')]) : null])]);\n }\n});","import { use } from '../utils';\n\nvar _use = use('tabbar'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n data: function data() {\n return {\n items: []\n };\n },\n props: {\n value: Number,\n activeColor: String,\n safeAreaInsetBottom: Boolean,\n fixed: {\n type: Boolean,\n \"default\": true\n },\n zIndex: {\n type: Number,\n \"default\": 1\n }\n },\n watch: {\n items: function items() {\n this.setActiveItem();\n },\n value: function value() {\n this.setActiveItem();\n }\n },\n methods: {\n setActiveItem: function setActiveItem() {\n var _this = this;\n\n this.items.forEach(function (item, index) {\n item.active = index === _this.value;\n });\n },\n onChange: function onChange(active) {\n if (active !== this.value) {\n this.$emit('input', active);\n this.$emit('change', active);\n }\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"style\": {\n zIndex: this.zIndex\n },\n \"class\": ['van-hairline--top-bottom', bem({\n fixed: this.fixed,\n 'safe-area-inset-bottom': this.safeAreaInsetBottom\n })]\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { use } from '../utils';\nimport Icon from '../icon';\nimport Info from '../info';\nimport { route, routeProps } from '../utils/router';\n\nvar _use = use('tabbar-item'),\n sfc = _use[0],\n bem = _use[1];\n\nexport default sfc({\n props: _extends({}, routeProps, {\n icon: String,\n dot: Boolean,\n info: [String, Number]\n }),\n data: function data() {\n return {\n active: false\n };\n },\n beforeCreate: function beforeCreate() {\n this.$parent.items.push(this);\n },\n destroyed: function destroyed() {\n this.$parent.items.splice(this.$parent.items.indexOf(this), 1);\n },\n methods: {\n onClick: function onClick(event) {\n this.$parent.onChange(this.$parent.items.indexOf(this));\n this.$emit('click', event);\n route(this.$router, this);\n }\n },\n render: function render(h) {\n var icon = this.icon,\n slots = this.slots,\n active = this.active;\n var style = active ? {\n color: this.$parent.activeColor\n } : null;\n return h(\"div\", {\n \"class\": bem({\n active: active\n }),\n \"style\": style,\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('icon', {\n dot: this.dot\n })\n }, [slots('icon', {\n active: active\n }) || icon && h(Icon, {\n \"attrs\": {\n \"name\": icon\n }\n }), h(Info, {\n \"attrs\": {\n \"info\": this.info\n }\n })]), h(\"div\", {\n \"class\": bem('text')\n }, [slots('default', {\n active: active\n })])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { use } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport Icon from '../icon'; // Types\n\nvar _use = use('tree-select'),\n sfc = _use[0],\n bem = _use[1];\n\nfunction TreeSelect(h, props, slots, ctx) {\n var height = props.height,\n items = props.items,\n mainActiveIndex = props.mainActiveIndex,\n activeId = props.activeId;\n var selectedItem = items[mainActiveIndex] || {};\n var subItems = selectedItem.children || [];\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem(),\n \"style\": {\n height: height + \"px\"\n }\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('nav')\n }, [items.map(function (item, index) {\n return h(\"div\", {\n \"key\": index,\n \"class\": ['van-ellipsis', bem('nitem', {\n active: mainActiveIndex === index,\n disabled: item.disabled\n })],\n \"on\": {\n \"click\": function click() {\n if (!item.disabled) {\n emit(ctx, 'navclick', index);\n }\n }\n }\n }, [item.text]);\n })]), h(\"div\", {\n \"class\": bem('content')\n }, [subItems.map(function (item) {\n return h(\"div\", {\n \"key\": item.id,\n \"class\": ['van-ellipsis', bem('item', {\n active: activeId === item.id,\n disabled: item.disabled\n })],\n \"on\": {\n \"click\": function click() {\n if (!item.disabled) {\n emit(ctx, 'itemclick', item);\n }\n }\n }\n }, [item.text, activeId === item.id && h(Icon, {\n \"attrs\": {\n \"name\": \"checked\",\n \"size\": \"16px\"\n },\n \"class\": bem('selected')\n })]);\n })])]);\n}\n\nTreeSelect.props = {\n items: Array,\n mainActiveIndex: Number,\n activeId: {\n type: [Number, String],\n \"default\": 0\n },\n height: {\n type: Number,\n \"default\": 300\n }\n};\nexport default sfc(TreeSelect);","/* eslint-disable no-underscore-dangle */\nimport { on, off } from '../utils/event';\nimport { getScrollTop, getElementTop, getVisibleHeight, getScrollEventTarget } from '../utils/scroll';\nvar CONTEXT = '@@Waterfall';\nvar OFFSET = 300; // 处理滚动函数\n\nfunction handleScrollEvent() {\n var element = this.el;\n var scrollEventTarget = this.scrollEventTarget; // 已被禁止的滚动处理\n\n if (this.disabled) return;\n var targetScrollTop = getScrollTop(scrollEventTarget);\n var targetVisibleHeight = getVisibleHeight(scrollEventTarget); // 滚动元素可视区域下边沿到滚动元素元素最顶上 距离\n\n var targetBottom = targetScrollTop + targetVisibleHeight; // 如果无元素高度,考虑为元素隐藏,直接返回\n\n if (!targetVisibleHeight) return; // 判断是否到了底\n\n var needLoadMoreToLower = false;\n\n if (element === scrollEventTarget) {\n needLoadMoreToLower = scrollEventTarget.scrollHeight - targetBottom < this.offset;\n } else {\n var elementBottom = getElementTop(element) - getElementTop(scrollEventTarget) + getVisibleHeight(element);\n needLoadMoreToLower = elementBottom - targetVisibleHeight < this.offset;\n }\n\n if (needLoadMoreToLower) {\n this.cb.lower && this.cb.lower({\n target: scrollEventTarget,\n top: targetScrollTop\n });\n } // 判断是否到了顶\n\n\n var needLoadMoreToUpper = false;\n\n if (element === scrollEventTarget) {\n needLoadMoreToUpper = targetScrollTop < this.offset;\n } else {\n var elementTop = getElementTop(element) - getElementTop(scrollEventTarget);\n needLoadMoreToUpper = elementTop + this.offset > 0;\n }\n\n if (needLoadMoreToUpper) {\n this.cb.upper && this.cb.upper({\n target: scrollEventTarget,\n top: targetScrollTop\n });\n }\n} // 绑定事件到元素上\n// 读取基本的控制变量\n\n\nfunction doBindEvent() {\n var _this = this;\n\n if (this.el[CONTEXT].binded) {\n return;\n }\n\n this.el[CONTEXT].binded = true;\n this.scrollEventListener = handleScrollEvent.bind(this);\n this.scrollEventTarget = getScrollEventTarget(this.el);\n var disabledExpr = this.el.getAttribute('waterfall-disabled');\n var disabled = false;\n\n if (disabledExpr) {\n this.vm.$watch(disabledExpr, function (value) {\n _this.disabled = value;\n\n _this.scrollEventListener();\n });\n disabled = Boolean(this.vm[disabledExpr]);\n }\n\n this.disabled = disabled;\n var offset = this.el.getAttribute('waterfall-offset');\n this.offset = Number(offset) || OFFSET;\n on(this.scrollEventTarget, 'scroll', this.scrollEventListener, true);\n this.scrollEventListener();\n} // 绑定事件\n\n\nfunction startBind(el) {\n var context = el[CONTEXT];\n context.vm.$nextTick(function () {\n doBindEvent.call(el[CONTEXT]);\n });\n} // 确认何时绑事件监听函数\n\n\nfunction doCheckStartBind(el) {\n var context = el[CONTEXT];\n\n if (context.vm._isMounted) {\n startBind(el);\n } else {\n context.vm.$on('hook:mounted', function () {\n startBind(el);\n });\n }\n}\n\nexport default function (type) {\n return {\n bind: function bind(el, binding, vnode) {\n if (!el[CONTEXT]) {\n el[CONTEXT] = {\n el: el,\n vm: vnode.context,\n cb: {}\n };\n }\n\n el[CONTEXT].cb[type] = binding.value;\n doCheckStartBind(el);\n },\n update: function update(el) {\n var context = el[CONTEXT];\n context.scrollEventListener && context.scrollEventListener();\n },\n unbind: function unbind(el) {\n var context = el[CONTEXT];\n\n if (context.scrollEventTarget) {\n off(context.scrollEventTarget, 'scroll', context.scrollEventListener);\n }\n }\n };\n}","import Waterfall from './directive';\n\nWaterfall.install = function (Vue) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[Vant] Waterfall is deprecated, please use List component instread');\n }\n\n Vue.directive('WaterfallLower', Waterfall('lower'));\n Vue.directive('WaterfallUpper', Waterfall('upper'));\n};\n\nexport default Waterfall;","/* eslint-disable */\n// This file is auto gererated by build/build-entry.js\nimport Actionsheet from './actionsheet';\nimport AddressEdit from './address-edit';\nimport AddressList from './address-list';\nimport Area from './area';\nimport Badge from './badge';\nimport BadgeGroup from './badge-group';\nimport Button from './button';\nimport Card from './card';\nimport Cell from './cell';\nimport CellGroup from './cell-group';\nimport Checkbox from './checkbox';\nimport CheckboxGroup from './checkbox-group';\nimport Circle from './circle';\nimport Col from './col';\nimport Collapse from './collapse';\nimport CollapseItem from './collapse-item';\nimport ContactCard from './contact-card';\nimport ContactEdit from './contact-edit';\nimport ContactList from './contact-list';\nimport Coupon from './coupon';\nimport CouponCell from './coupon-cell';\nimport CouponList from './coupon-list';\nimport DatetimePicker from './datetime-picker';\nimport Dialog from './dialog';\nimport Field from './field';\nimport GoodsAction from './goods-action';\nimport GoodsActionBigBtn from './goods-action-big-btn';\nimport GoodsActionMiniBtn from './goods-action-mini-btn';\nimport Icon from './icon';\nimport ImagePreview from './image-preview';\nimport Info from './info';\nimport Lazyload from './lazyload';\nimport List from './list';\nimport Loading from './loading';\nimport Locale from './locale';\nimport NavBar from './nav-bar';\nimport NoticeBar from './notice-bar';\nimport Notify from './notify';\nimport NumberKeyboard from './number-keyboard';\nimport Overlay from './overlay';\nimport Pagination from './pagination';\nimport Panel from './panel';\nimport PasswordInput from './password-input';\nimport Picker from './picker';\nimport Popup from './popup';\nimport Progress from './progress';\nimport PullRefresh from './pull-refresh';\nimport Radio from './radio';\nimport RadioGroup from './radio-group';\nimport Rate from './rate';\nimport Row from './row';\nimport Search from './search';\nimport Sku from './sku';\nimport Slider from './slider';\nimport Step from './step';\nimport Stepper from './stepper';\nimport Steps from './steps';\nimport SubmitBar from './submit-bar';\nimport Swipe from './swipe';\nimport SwipeCell from './swipe-cell';\nimport SwipeItem from './swipe-item';\nimport Switch from './switch';\nimport SwitchCell from './switch-cell';\nimport Tab from './tab';\nimport Tabbar from './tabbar';\nimport TabbarItem from './tabbar-item';\nimport Tabs from './tabs';\nimport Tag from './tag';\nimport Toast from './toast';\nimport TreeSelect from './tree-select';\nimport Uploader from './uploader';\nimport Waterfall from './waterfall';\nvar version = '1.6.28';\nvar components = [Actionsheet, AddressEdit, AddressList, Area, Badge, BadgeGroup, Button, Card, Cell, CellGroup, Checkbox, CheckboxGroup, Circle, Col, Collapse, CollapseItem, ContactCard, ContactEdit, ContactList, Coupon, CouponCell, CouponList, DatetimePicker, Dialog, Field, GoodsAction, GoodsActionBigBtn, GoodsActionMiniBtn, Icon, ImagePreview, Info, List, Loading, NavBar, NoticeBar, Notify, NumberKeyboard, Overlay, Pagination, Panel, PasswordInput, Picker, Popup, Progress, PullRefresh, Radio, RadioGroup, Rate, Row, Search, Sku, Slider, Step, Stepper, Steps, SubmitBar, Swipe, SwipeCell, SwipeItem, Switch, SwitchCell, Tab, Tabbar, TabbarItem, Tabs, Tag, Toast, TreeSelect, Uploader];\n\nvar install = function install(Vue) {\n components.forEach(function (Component) {\n Vue.use(Component);\n });\n};\n/* istanbul ignore if */\n\n\nif (typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n}\n\nexport { install, version, Actionsheet, AddressEdit, AddressList, Area, Badge, BadgeGroup, Button, Card, Cell, CellGroup, Checkbox, CheckboxGroup, Circle, Col, Collapse, CollapseItem, ContactCard, ContactEdit, ContactList, Coupon, CouponCell, CouponList, DatetimePicker, Dialog, Field, GoodsAction, GoodsActionBigBtn, GoodsActionMiniBtn, Icon, ImagePreview, Info, Lazyload, List, Loading, Locale, NavBar, NoticeBar, Notify, NumberKeyboard, Overlay, Pagination, Panel, PasswordInput, Picker, Popup, Progress, PullRefresh, Radio, RadioGroup, Rate, Row, Search, Sku, Slider, Step, Stepper, Steps, SubmitBar, Swipe, SwipeCell, SwipeItem, Switch, SwitchCell, Tab, Tabbar, TabbarItem, Tabs, Tag, Toast, TreeSelect, Uploader, Waterfall };\nexport default {\n install: install,\n version: version\n};","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","require('../../style/base.css');\nrequire('../../popup/index.css');\nrequire('../index.css');","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n var obj;\n\n while (queue.length) {\n var item = queue.pop();\n obj = item.obj[item.prop];\n\n if (Array.isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n\n return obj;\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (Array.isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (Array.isArray(target) && !Array.isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str) {\n try {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n } catch (e) {\n return str;\n }\n};\n\nvar encode = function encode(str) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = typeof str === 'string' ? str : String(str);\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n return compactQueue(queue);\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n merge: merge\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n"],"sourceRoot":""}