{"version":3,"sources":["webpack:///./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","webpack:///./node_modules/vue-lazyload/vue-lazyload.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/create/bem.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/mixins/slots.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/create/component.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/create/i18n.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/create/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/deep-assign.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/dom/raf.js","webpack:///./node_modules/@zyf2e/adapt/node_modules/qs/lib/parse.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/format/string.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/validate/number.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/functional.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/mixins/popup/context.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/dom/event.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/overlay/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/dom/node.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/mixins/popup/overlay.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/dom/scroll.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/mixins/touch.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/mixins/portal.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/mixins/bind-event.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/mixins/close-on-popstate.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/mixins/popup/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/info/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/icon/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/popup/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/loading/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/action-sheet/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/validate/mobile.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/picker/shared.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/constant.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/deep-clone.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/format/number.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/picker/PickerColumn.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/picker/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/area/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/router.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/cell/shared.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/cell/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/validate/system.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/dom/reset-scroll.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/field/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/toast/lock-click.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/toast/Toast.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/toast/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/button/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/vnodes.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/mixins/relation.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/goods-action/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/dialog/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/goods-action-button/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/dialog/Dialog.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/address-edit/Detail.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/switch/shared.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/mixins/field.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/switch/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/address-edit/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/radio-group/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/tag/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/mixins/checkbox.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/radio/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/address-list/Item.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/address-list/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/checkbox/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/approve-agreement/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/badge/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/bottom-button/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/validate/date.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/calendar/utils.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/datetime-picker/utils.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/calendar/components/Month.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/calendar/components/Header.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/calendar/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/image/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/card/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/cell-group/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/checkbox-group/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/circle/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/col/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/collapse/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/collapse-item/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/contact-card/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/contact-edit/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/contact-list/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/count-down/utils.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/count-down/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/coupon/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/coupon-cell/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/tabs/utils.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/tab/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/dom/style.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/interceptor.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/tabs/Title.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sticky/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/tabs/Content.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/tabs/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/coupon-list/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/datetime-picker/shared.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/datetime-picker/TimePicker.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/datetime-picker/DatePicker.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/datetime-picker/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/date-picker-field/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/divider/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/dot/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/dropdown-item/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/mixins/click-outside.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/dropdown-menu/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/empty/Network.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/empty/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/form/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/goods-action-icon/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/grid/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/grid-item/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/image-preview/shared.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/swipe/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/swipe-item/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/image-preview/ImagePreviewItem.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/image-preview/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/image-preview/ImagePreview.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/index-anchor/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/index-bar/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/lazyload/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/list/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/modal-sheet/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/nav-bar/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/notice-bar/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/notify/Notify.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/notify/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/number-keyboard/DeleteIcon.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/number-keyboard/CollapseIcon.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/number-keyboard/Key.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/number-keyboard/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/pagination/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/panel/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/password-input/index.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/popover/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/prescription/components/baseInfo.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/prescription/components/drugInfo.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/prescription/components/newCheckInfo.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/prescription/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/progress/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/pull-refresh/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/rate/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/row/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/search/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/share-sheet/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sidebar/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sidebar-item/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/skeleton/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/lang.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/constants.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/utils/sku-helper.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/components/SkuHeader.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/components/SkuHeaderItem.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/components/SkuRow.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/components/SkuRowItem.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/components/SkuRowPropItem.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/stepper/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/components/SkuStepper.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/validate/email.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/uploader/utils.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/uploader/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/components/SkuImgUploader.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/utils/time-helper.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/components/SkuDateTimeField.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/components/SkuMessages.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/components/SkuActions.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/Sku.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/sku/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/slider/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/step/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/step-normal/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/steps/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/steps-normal/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/submit-bar/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/swipe-cell/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/switch-cell/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/tabbar/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/tabbar-item/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/tree-select/index.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/index.js","webpack:///./node_modules/@zyf2e/checkout-sdk/dist/pay.esm.js","webpack:///./node_modules/@zyf2e/adapt/dist/adapt.min.js","webpack:///./node_modules/@zyf2e/adapt/node_modules/qs/lib/stringify.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/utils/format/unit.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/locale/lang/zh-CN.js","webpack:///./node_modules/@zyf2e/capui-mobile/es/locale/index.js","webpack:///./node_modules/@zyf2e/adapt/node_modules/qs/lib/formats.js","webpack:///./node_modules/@zyf2e/adapt/node_modules/qs/lib/index.js","webpack:///./node_modules/@zyf2e/adapt/node_modules/qs/lib/utils.js"],"names":["_extends","Object","assign","bind","a","b","c","arguments","length","d","prototype","hasOwnProperty","call","apply","this","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","reduce","indexOf","Array","e","concat","f","g","h","i","mergeFn","module","exports","t","constructor","isBuffer","o","r","n","m","L","splice","s","tagName","getAttribute","parentNode","offsetWidth","u","trim","split","map","lastIndexOf","substr","parseInt","push","sort","l","k","document","createElement","type","style","visibility","innerHTML","body","appendChild","removeChild","Date","now","setTimeout","p","keys","v","Symbol","iterator","TypeError","y","enumerable","configurable","writable","defineProperty","key","getOwnPropertySymbols","propertyIsEnumerable","w","toString","Boolean","String","Number","Function","name","slice","isArray","RegExp","_","window","E","A","event","observer","j","bubbles","cancelable","detail","createEvent","initCustomEvent","CustomEvent","Event","z","devicePixelRatio","T","get","addEventListener","O","on","capture","passive","off","removeEventListener","I","Image","src","onload","naturalHeight","naturalWidth","onerror","x","getComputedStyle","getPropertyValue","S","$","HTMLElement","documentElement","test","H","Q","el","error","loading","bindType","$parent","options","elRenderer","attempt","rect","performanceData","init","loadStart","loadEnd","filter","initState","render","value","dataset","state","loaded","rendered","getBoundingClientRect","getRect","top","innerHeight","preLoad","bottom","preLoadTop","left","innerWidth","right","silent","console","warn","log","renderLoading","record","time","C","R","W","rootMargin","threshold","D","throttleWait","dispatchEvent","scale","listenEvents","hasbind","adapter","observerOptions","version","mode","ListenerQueue","TargetIndex","TargetQueue","ListenEvents","supportWebp","_initEvent","lazyLoadHandler","_lazyLoadHandler","setMode","performance","_addListenerTarget","_observer","observe","$el","update","nextTick","_valueFormatter","modifiers","context","$refs","getElementById","arg","_elRenderer","unobserve","_removeListenerTarget","destroy","forEach","_initListen","_initIntersectionObserver","childrenCount","id","listened","listeners","$on","$once","$off","$emit","checkInView","load","IntersectionObserver","_observerHandler","isIntersecting","target","setAttribute","B","props","tag","default","show","$slots","data","mounted","addLazyBox","beforeDestroy","removeComponent","methods","V","lazy","lazyContainerMananger","_queue","N","binding","vnode","clear","M","selector","getImgs","add","querySelectorAll","remove","install","$Lazyload","lazyComponent","component","directive","componentUpdated","unbind","vm","$els","oldValue","gen","mods","ret","item","createBEM","SlotsMixin","slots","$scopedSlots","scopedSlot","Vue","unifySlots","scopedSlots","transformFunctionComponent","pure","functional","model","createComponent","sfc","mixins","createI18N","prefix","path","messages","locale","message","_len","args","_key","createNamespace","assignKey","to","from","val","deepAssign","prev","fallback","fn","curr","ms","Math","max","root","global","iRaf","requestAnimationFrame","iCancel","cancelAnimationFrame","clearTimeout","raf","doubleRaf","cancelRaf","utils","has","defaults","allowDots","allowEmptyArrays","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decodeDotInKeys","decoder","decode","delimiter","depth","duplicates","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictDepth","strictNullHandling","str","replace","$0","numberStr","fromCharCode","parseArrayValue","isoSentinel","parseValues","obj","__proto__","cleanStr","limit","Infinity","undefined","parts","skipIndex","part","bracketEqualsPos","pos","maybeMap","encodedVal","existing","combine","parseObject","chain","valuesParsed","leaf","create","cleanRoot","charAt","decodedRoot","index","isNaN","0","parseKeys","givenKey","brackets","child","segment","exec","parent","RangeError","normalizeParseOptions","opts","isRegExp","tempObj","newObj","merge","compact","inBrowser","isServer","$isServer","noop","isDef","isFunction","isObject","isPromise","then","catch","object","result","_result$key","camelizeRE","camelize","toUpperCase","padZero","num","targetLength","isNumeric","inheritKey","mapInheritKey","nativeOn","inherit","inheritListeners","eventName","listener","mount","Component","instance","$props","zIndex","lockCount","stack","find","supportsPassive","handler","stopPropagation","preventDefault","isStopPropagation","_createNamespace","preventTouchMove","Overlay","ctx","customStyle","duration","animationDuration","className","lockScroll","removeNode","defaultConfig","mountOverlay","click","closeOnClickOverlay","onClickOverlay","close","updateOverlay","config","overlay","insertBefore","openOverlay","closeOverlay","removeOverlay","isWindow","overflowScrollReg","getScroller","node","nodeType","_window$getComputedSt","overflowY","getScrollTop","scrollTop","pageYOffset","setScrollTop","scrollTo","scrollX","getRootScrollTop","setRootScrollTop","getElementTop","scroller","getVisibleHeight","height","getVisibleTop","MIN_DISTANCE","getDirection","TouchMixin","direction","touchStart","resetTouchStatus","startX","touches","clientX","startY","clientY","touchMove","touch","deltaX","deltaY","offsetX","abs","offsetY","bindTouchEvent","onTouchStart","onTouchMove","onTouchEnd","getElement","querySelector","PortalMixin","_temp","_ref","ref","afterPortal","getContainer","watch","portal","container","uid","BindEventMixin","activated","deactivated","CloseOnPopstateMixin","isBind","handlePopstate","closeOnPopstate","bindStatus","onPopstate","shouldReopen","action","popupMixinProps","transitionAppear","overlayStyle","overlayClass","lazyRender","PopupMixin","inited","computed","shouldRender","skipToggleEvent","open","opened","removeLock","renderOverlay","addLock","classList","scrollHeight","offsetHeight","status","_this","$nextTick","updateZIndex","dot","info","showInfo","isImage","LEGACY_MAP","medel","correctName","Icon","_props$badge","imageIcon","classPrefix","color","fontSize","size","badge","round","closeable","transition","safeAreaInsetBottom","closeIcon","closeIconPosition","position","beforeCreate","createEmitter","onClick","onOpened","onClosed","onClickCloseIcon","_bem","isCenter","transitionName","LoadingIcon","Spin","LoadingText","textSize","Loading","iconSize","width","vertical","ActionSheet","title","cancelText","onCancel","Header","Option","disabled","callback","onClickOption","closeOnClickAction","OptionContent","subname","padding","CancelText","Description","description","actions","isMobile","DEFAULT_ITEM_HEIGHT","pickerProps","readonly","itemHeight","showToolbar","cancelButtonText","confirmButtonText","allowHtml","visibleItemCount","swipeDuration","RED","BLUE","WHITE","BORDER","BORDER_TOP","BORDER_LEFT","BORDER_BOTTOM","BORDER_SURROUND","BORDER_TOP_BOTTOM","BORDER_UNSET_TOP_BOTTOM","deepClone","range","min","trimExtraChar","_char","regExp","allowDot","allowMinus","DEFAULT_DURATION","MOMENTUM_LIMIT_TIME","MOMENTUM_LIMIT_DISTANCE","getElementTranslateY","element","transform","webkitTransform","translateY","isOptionDisabled","option","valueKey","defaultIndex","initialOptions","offset","currentIndex","created","children","setIndex","destroyed","count","baseOffset","setOptions","JSON","stringify","moving","wrapper","startOffset","transitionEndTrigger","touchStartTime","momentumOffset","distance","allowMomentum","momentum","getIndexByOffset","onTransitionEnd","stopMomentum","onClickItem","adjustIndex","_i","getOptionText","emitChange","_this2","trigger","setValue","getValue","speed","genOptions","_this3","$createElement","optionStyle","_domProps","text","attrs","role","tabindex","class","selected","childData","domProps","wrapperStyle","transitionDuration","transitionProperty","columns","toolbarPosition","formattedColumns","itemPxHeight","unit","dataType","firstColumn","values","immediate","format","formatCascade","formatted","cursor","_cursor$defaultIndex","_cursor","emit","getColumnValue","getColumnIndex","getValues","getIndexes","onCascadeChange","columnIndex","indexes","setColumnValues","onChange","getColumn","column","setColumnValue","setColumnIndex","optionIndex","getColumnValues","setValues","setIndexes","_this4","confirm","cancel","genTitle","titleSlot","genCancel","genConfirm","genToolbar","genColumns","wrapHeight","frameStyle","columnsStyle","maskStyle","backgroundSize","genColumnItems","_this5","_item$defaultIndex","PickerColumn","PLACEHOLDER_CODE","isOverseaCode","code","pickSlots","areaList","columnsNum","columnsPlaceholder","province","province_list","city","city_list","county","county_list","displayColumns","placeholderMap","deep","getList","list","listCode","codeFill","unshift","getIndex","compareNum","parseOutputValues","parse","picker","parsedValues","onConfirm","getDefaultCode","countyCodes","cityCodes","getArea","area","country","names","validValues","reset","$listeners","change","isRedundantNavigation","err","route","router","url","promise","location","href","functionalRoute","$router","routeProps","cellProps","bigIcon","isValueLeft","isLinkTitle","icon","center","isLink","required","clickable","iconPrefix","titleStyle","titleClass","valueClass","labelClass","label","arrowDirection","border","Cell","showTitle","linkTitleCls","Label","showLabel","Title","Value","showValue","adjoinRight","alone","LeftIcon","bigIconRender","RightIcon","rightIconSlot","classes","borderless","extra","isAndroid","navigator","userAgent","toLowerCase","isIOS","resetScroll","inheritAttrs","provide","vanField","inject","vanForm","rules","autosize","leftIcon","rightIcon","clearable","formatter","maxlength","labelWidth","labelAlign","inputAlign","placeholder","errorMessage","errorMessageAlign","showWordLimit","colon","clearTrigger","formatTrigger","focused","validateFailed","validateMessage","updateValue","resetValidation","validateWithTrigger","adjustSize","addField","removeField","showClear","hasValue","showError","blur","onBlur","focus","onFocus","input","onInput","onClickInput","keypress","onKeypress","labelStyle","getProp","formValue","runValidator","rule","Promise","resolve","returnVal","validator","isEmptyValue","runSyncRule","pattern","getRuleMessage","runRules","validate","defaultTrigger","validateTrigger","isNumber","composing","onClickLeftIcon","onClickRightIcon","onClear","ENTER_CODE","keyCode","submitOnEnter","_this$autosize","maxHeight","minHeight","genInput","inputSlot","inputProps","$attrs","directives","inputMode","inputType","genLeftIcon","showLeftIcon","genRightIcon","showRightIcon","genWordLimit","isFull","genMessage","errorMode","showErrorMessage","genLabel","lockClick","lock","loadingType","forbidClick","closeOnClick","toggleClickable","hasIcon","hasMessage","onlyIcon","onAfterEnter","onAfterLeave","genIcon","mask","onClose","defaultOptionsMap","queue","currentOptions","parseOptions","isInDocument","contains","createInstance","toast","extend","transformOptions","timer","$destroy","method","all","shift","setDefaultOptions","resetDefaultOptions","allowMultiple","use","$toast","Button","plain","hairline","loadingText","iconPosition","onTouchstart","background","borderColor","block","square","renderIcon","loadingSize","renderContent","content","nativeType","flattenVNodes","vnodes","traverse","componentInstance","$children","$vnode","sortChildren","componentOptions","ChildrenMixin","_parent","_inject","_computed","indexKey","disableBindRelation","bindRelation","ParentMixin","unfit","isFirst","$options","isLast","next","first","last","theme","beforeClose","messageAlign","cancelButtonColor","confirmButtonColor","showCancelButton","showCloseIcon","showAssistButton","assistButtonText","assistButtonColor","showConfirmButton","assist","handleAction","genRoundButtons","genButton","showLeftBorder","genButtons","multiple","buttons","genContent","hasTitle","messageSlot","isolated","Close","propsData","reject","defaultOptions","alert","$dialog","android","detailRows","searchResult","detailMaxlength","showSearchResult","shouldShowSearchResult","onSelect","express","address","onFinish","field","genFinish","genSearchResult","switchProps","activeColor","inactiveColor","activeValue","inactiveValue","FieldMixin","checked","backgroundColor","newValue","genLoading","defaultData","tel","areaCode","postalCode","addressDetail","isDefault","isPostal","isSaving","isDeleting","showDelete","showPostal","telMaxlength","showSetDefault","saveButtonText","areaPlaceholder","deleteButtonText","showArea","showDetail","disableArea","addressInfo","telValidator","postalValidator","areaColumnsPlaceholder","showAreaPopup","detailFocused","errorInfo","areaListLoaded","areaText","_this$data","arr","join","hideBottomFields","setAreaCode","onChangeDetail","onAreaConfirm","some","assignAreaValues","onSave","items","isValid","every","msg","getErrorMessage","onDelete","setAddressDetail","onDetailBlur","genSetDefaultCell","$$v","$set","Detail","checkedColor","_value","Tag","_style","mark","textColor","CloseIcon","bem","labelPosition","labelDisabled","shape","bindGroup","isDisabled","iconStyle","iconClicked","toggle","slot","Children","currentValue","set","AddressItem","switchable","genTag","defaultTagText","Info","AddressList","genList","List","DisabledList","disabledList","disabledText","addButtonText","setParentValue","toggleTask","prop","textRegex","buttonText","linkText","match","pre_text","link_text","agree","onClickButton","hasContent","renderBadge","fixed","embedded","isDate","getTime","formatMonthTitle","date","getFullYear","getMonth","compareMonth","date1","date2","year1","year2","month1","month2","compareDay","day1","day2","compareMonthResult","getDate","getDayByOffset","setDate","getPrevDay","getNextDay","calcDateNum","copyDate","dates","copyDates","times","iteratee","getTrueValue","getMonthEndDay","year","month","minDate","maxDate","showMark","rowHeight","currentDate","allowSameDay","showSubtitle","showMonthTitle","selectDayDisplay","firstDayOfWeek","visible","rowHeightWithUnit","realDay","getDay","totalDay","placeholders","rows","ceil","day","days","getDayType","bottomInfo","getBottomInfo","getHeight","scrollIntoView","_this$$refs","getMultipleDayType","isSelected","prevDay","nextDay","prevSelected","nextSelected","getRangeDayType","_this$currentDate","startDay","endDay","compareToStart","compareToEnd","getDayStyle","marginLeft","genMark","genDays","genDay","topInfo","TopInfo","BottomInfo","subtitle","genSubtitle","genWeekDays","weekdays","renderWeekDays","confirmText","rangePrompt","defaultDate","confirmDisabledText","poppable","maxRange","showConfirm","getInitialDate","months","setMonth","buttonDisabled","dayOffset","bodyHeight","floor","onScroll","targetDate","displayed","_this2$$refs","defaultVal","heights","heightSum","currentMonth","visibleRange","showed","onClickDay","select","selectedIndex","dateItem","equal","_currentDate$splice","unselectedDate","togglePopup","complete","valid","checkRange","genMonth","Month","genFooterContent","genFooter","genCalendar","_attrs","createListener","fit","alt","radius","lazyLoad","showLoading","errorIcon","loadingIcon","overflow","borderRadius","onLazyLoaded","onLazyLoadError","onLoad","image","_ref2","onError","genPlaceholder","genImage","imgData","objectFit","Card","_slots$priceTop","thumb","showNum","showPrice","price","showOriginPrice","originPrice","showBottom","onThumbClick","ThumbTag","Thumb","thumbLink","Desc","desc","PriceContent","priceArr","currency","Price","OriginPrice","Num","Footer","footer","centered","tags","CellGroup","Group","rightBlock","toggleAll","PERIMETER","rate","getPath","clockwise","viewBoxSize","sweepFlag","strokeLinecap","fill","layerColor","strokeWidth","layerStyle","stroke","strokeDasharray","hoverStyle","gradient","LinearGradient","Stops","parseFloat","startTime","startRate","endRate","increase","rafId","animate","progress","toFixed","span","spaces","_spaces$index","paddingLeft","paddingRight","accordion","switch","expanded","activeName","CELL_SLOTS","currentName","_this$name","_this$parent","_expanded","contentHeight","titleSlots","ContactCard","editable","Content","addText","defaultContact","isEdit","setDefaultLabel","contactInfo","getErrorMessageByKey","ContactList","nodes","SECOND","MINUTE","HOUR","DAY","parseTimeData","hours","minutes","seconds","milliseconds","parseFormat","timeData","isSameSecond","time1","time2","millisecond","autoStart","remain","formattedTime","keepAlivePaused","counting","tick","pause","start","endTime","microTick","macroTick","setRemain","getRemain","timeStamp","formatDiscount","discount","formatAmount","amount","coupon","chosen","validPeriod","_this$coupon","startAt","endAt","faceAmount","valueDesc","unitDesc","denominations","conditionMessage","condition","originCondition","reason","coupons","chosenCoupon","CouponCell","scrollLeftRafId","computedName","isActive","active","setLine","slotContent","animated","scrollspy","inactive","scrollLeftTo","scrollLeft","frames","scrollTopTo","current","isDown","step","isHidden","hidden","display","parentHidden","offsetParent","callInterceptor","interceptor","done","scrollable","isCard","titleColor","genText","Text","ellipsis","offsetTop","offsetTopPx","entries","intersectionRatio","topToPageTop","emitScrollEvent","isFixed","bottomToPageTop","distanceToBottom","MIN_SWIPE_DISTANCE","swipeable","touchstart","touchmove","touchend","touchcancel","genChildren","resize","sticky","lineWidth","lineHeight","beforeChange","titleActiveColor","titleInactiveColor","swipeThreshold","showDividingLine","align","lineStyle","navStyle","activeTab","scrollOffset","tabHeight","setCurrentIndexByName","stickyFixed","wrap","shouldAnimate","titles","offsetLeft","matched","tab","setCurrentIndex","newIndex","findAvailableTab","newTab","newName","shouldEmitChange","diff","_this$children$index","scrollToCurrentContent","nav","onSticktScroll","params","_this6","getCurrentIndexOnScroll","_this7","Nav","_item$badge","Wrap","dividingLine","EMPTY_IMAGE","closeButtonText","inputPlaceholder","enabledTitle","disabledTitle","exchangeButtonText","exchangeButtonLoading","exchangeButtonDisabled","exchangeMinLength","disabledCoupons","displayedCouponIndex","showExchangeBar","showCloseButton","showCount","emptyImage","winHeight","currentCode","listStyle","_code","scrollToShowCoupon","onClickExchangeButton","card","genEmpty","genExchangeButton","disabledCount","ExchangeBar","CouponTab","DisabledCouponTab","sharedProps","columnsOrder","TimePickerMixin","innerValue","formatValue","originColumns","ranges","rangeArr","updateColumnValue","updateInnerValue","getPicker","minHour","maxHour","minMinute","maxMinute","_value$split","hour","minute","_this$getPicker$getIn","hourIndex","minuteIndex","_this$originColumns","hourColumn","minuteColumn","pair","currentYear","valueOf","_this$getBoundary","getBoundary","maxYear","maxMonth","_this$getBoundary2","minYear","minMonth","boundary","getHours","getMinutes","maxDay","TimePicker","DatePicker","showPicker","handleCancel","handleConfirm","handleFocus","handlePopupInput","Divider","dashed","contentPosition","dotClass","renderNumComponents","renderTextComponents","showPopup","showWrapper","displayTitle","bindScroll","onOpen","updateOffset","onClickWrapper","Options","closeOnClickOutside","clickOutsideHandler","barStyle","bar","toggleItem","onClickOutside","Titles","down","genStop","opacity","PRESETS","imageSize","genImageContent","Network","imageStyle","genDescription","genBottom","scrollToError","validateFirst","fields","validateSeq","errors","validateAll","validateField","scrollToField","form","onSubmit","submit","iconClass","_this$badge","gutter","columnNum","percent","flexBasis","paddingTop","gutterValue","marginTop","contentStyle","_this$parent2","iconSlot","getText","textSlot","_this$parent3","surround","onVisibilityChange","initialize","autoplay","indicatorColor","loop","touchable","initialSwipe","showIndicators","roundCorner","swiping","computedWidth","computedHeight","_autoplay","autoPlay","maxCount","minOffset","delta","trackSize","activeIndicator","isCorrectDirection","expect","trackStyle","mainAxis","crossAxis","indicatorStyle","track","getTargetOffset","swipe","correctPosition","move","shouldSwipe","pace","getTargetActive","targetActive","currentPosition","targetOffset","_ref2$pace","_ref2$offset","outRightBound","outLeftBound","swipeTo","targetIndex","genIndicator","empty","maxActive","prevActive","nextActive","getDistance","sqrt","pow","minZoom","maxZoom","rootWidth","rootHeight","moveX","moveY","zooming","imageRatio","displayWidth","displayHeight","rootRatio","maxMoveX","maxMoveY","resetScale","setScale","toggleScale","_this$offsetX","startMoveX","startMoveY","startScale","startDistance","checkTap","_this$offsetX2","_this$offsetY","deltaTime","TAP_TIME","TAP_OFFSET","doubleTapTimer","_event$target","imageSlots","asyncClose","images","showIndex","startPosition","doubleClickTimer","setActive","emitClose","emitScale","genIndex","genCover","cover","clickEvent","imageIndex","tagIndex","findIndex","elm","genImages","ImagePreviewItem","genClose","onScale","anchorStyle","highlightColor","scrollerRect","elRect","genAlphabet","indexList","charCodeOfA","charCodeAt","stickyOffsetTop","activeAnchorIndex","sidebarStyle","highlightStyle","getScrollerRect","rects","getActiveAnchorIndex","activeItemTop","prevHeight","reachTop","scrollToElement","_event$touches$","elementFromPoint","touchActiveIndex","Indexes","check","finished","errorText","finishedText","loadBgColor","immediateCheck","innerLoading","updated","scrollerHeight","isReachEdge","placeholderRect","clickErrorText","genFinishedText","genErrorText","Placeholder","leftIconName","leftText","leftTextColor","rightIconName","rightText","rightTextColor","maxPopUpHeight","minPopUPHeight","headerLeftArea","headerRightArea","getHeader","leftClick","rightClick","isCusmizeSize","popupStyle","sizeTmp","includes","leftArrow","backgroundImage","safeAreaInsetTop","navBar","genLeft","leftSlot","genRight","rightSlot","genNavBar","styleBackground","styleColor","hasLeft","onClickLeft","hasRight","onClickRight","wrapable","delay","wrapWidth","contentWidth","onClickIcon","startTimer","iconName","Notify","$notify","wider","large","isExtra","isDelete","CollapseIcon","delete","hideOnClickOutside","closeButtonLoading","extraKey","MAX_VALUE","showDeleteKey","genCustomKeys","genDefaultKeys","genBasicKeys","extraKeys","onAnimationEnd","onPress","titleLeft","showClose","genKeys","Key","genSidebar","makePage","number","prevText","nextText","forceEllipses","pageCount","totalItems","itemsPerPage","showPageSize","pages","startPage","endPage","isMaxSized","page","previousPageSet","nextPageSet","_this$slots","_this$slots3","simple","_this$slots2","Panel","header","PasswordInput","Points","showBorder","showCursor","getWindow","ownerDocument","defaultView","isElement","OwnElement","Element","isHTMLElement","isShadowRoot","ShadowRoot","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","getWindowScroll","win","pageXOffset","getHTMLElementScroll","getNodeScroll","getNodeName","nodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","isElementScaled","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","getParentNode","assignedSlot","host","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","perspective","contain","willChange","getOffsetParent","auto","basePlacements","end","placements","acc","placement","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","order","Map","visited","Set","modifier","requires","requiresIfExists","dep","depModifier","orderModifiers","orderedModifiers","phase","debounce","pending","mergeByName","merged","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","reference","popper","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","enabled","runModifierEffects","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","_options","_ref$options","effect","cleanupFn","noopFn","onFirstUpdate","_options$scroll","_options$resize","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","len","popperOffsets","unsetSides","roundOffsetsByDPR","dpr","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","applyStyles","removeAttribute","initialStyles","margin","styleProperties","property","attribute","eventListeners","distanceAndSkiddingToXY","invertDistance","skidding","_options$offset","_data$state$placement","updateLocation","createPopper","popover","renderAction","onClickAction","onToggle","doctorAuditTimeStr","sex","_sex","formatDate","formatFullDate","_this$detail","prescriptionType","hospitalName","_this$detail$name","gender","age","storeContactInfo","dept","prescriptionTotalStatus","symptom","illness","allergy","showCity","showDoctorSign","advisoryType","serviceAuditStatus","doctorAuditStatus","usage","_item$usage","perNum","perUnit","_item$usageFrequencyN","usageFrequencyName","_item$dose","dose","perAmount","drugNum","temp","_this$detail2","prescriptionDetails","supplementaryNotes","chineseMedicineDetail","usageNum","usageFrequency","usagePerNum","usageWay","usageTime","chemicalName","drugName","spec","remark","imgServer","doctorSignUrl","doctorName","prescriptionAuditorSignUrl","prescriptionAuditorName","dispenserSignature","dispatcherSignature","hospitalSeal","pharmacistAuditName","pharmacistAuditSignUrl","validityMemo","showStore","pivotText","pivotColor","trackColor","percentage","showPivot","pivotWidth","progressWidth","pivot","pivotStyle","portionStyle","DEFAULT_HEAD_HEIGHT","TEXT_STATUS","successText","pullingText","loosingText","successDuration","headHeight","headStyle","setStatus","showSuccessTip","scrollEl","checkPullStart","ceiling","ease","isLoading","genStatus","getRateStatus","allowHalf","voidColor","disabledColor","voidIcon","sizeWithUnit","gutterWithUnit","score","getScoreByPosition","genStar","isVoid","full","justify","groups","totalSpan","group","averagePadding","flex","Search","Action","showAction","actionText","fieldData","inheritData","contentBackground","PRESET_ICONS","getIconURL","genHeader","genRows","genCancelText","_this$cancelText","activeKey","DEFAULT_ROW_WIDTH","DEFAULT_LAST_ROW_WIDTH","Skeleton","titleWidth","Rows","rowWidth","getRowWidth","row","Avatar","avatar","avatarSize","avatarShape","vanSku","selectSku","soldout","minusTip","minusStartTip","unavailable","stock","stockUnit","quotaTip","quota","quotaUsedTip","vanSkuActions","buy","addCart","vanSkuImgUploader","oversize","maxSize","fail","uploading","vanSkuStepper","quotaLimit","quotaStart","vanSkuMessages","upload","imageLabel","invalid","mobile","email","id_no","textarea","vanSkuRow","vanSkuDatetimeField","datetime","LIMIT_TYPE","QUOTA_LIMIT","STOCK_LIMIT","UNSELECTED_SKU_VALUE_ID","normalizeSkuTree","skuTree","normalizedTree","treeItem","k_s","normalizePropList","propList","normalizedProp","itemObj","it","k_id","selectedSku","skuKeyStr","getSkuComb","skuList","skuComb","selectedValues","skuValues","skuValueId","skuValue","skuToChoose","_extends2","valueId","matchedSku","skusToCheck","skuKey","filteredSku","sku","total","stock_num","selectedProp","normalizeProp","cur","getSelectedSkuValues","isAllSelected","isSkuChoosable","getSelectedPropValues","getSelectedProperties","getSkuImgValue","imgValue","tree","img","previewImgUrl","imgUrl","img_url","ks","SkuHeader","_slots$skuHeaderIma","goods","skuEventBus","_props$showHeaderImag","showHeaderImage","selectedValue","picture","previewImage","skuRow","largeImageMode","is_multiple","centerItem","selectSkuId","_this$children","_this$$refs2","canSelectSoldoutSku","choosable","skuDisabled","onPreviewImg","choosed","LONG_PRESS_START_TIME","LONG_PRESS_INTERVAL","value1","value2","num1","num2","cardinal","integer","allowEmpty","inputWidth","buttonSize","asyncChange","disablePlus","disableMinus","disableInput","decimalLength","defaultValue","showPlus","showMinus","longPress","_this$value","minusDisabled","plusDisabled","inputStyle","buttonStyle","formatNumber","longPressStep","longPressTimer","isLongPress","createListeners","namespace","skuStockNum","selectedNum","stepperTitle","disableStepperInput","customStepperConfig","hideQuotaText","quotaUsed","startSaleNum","currentNum","limitType","intValue","stepperMinLimit","stepperLimit","checkState","quotaText","_this$customStepperCo","textArr","setCurrentNum","onOverLimit","handleStepperChange","isEmail","reg","toArray","file","resultType","reader","FileReader","readAsDataURL","readAsText","isOversize","files","IMAGE_REGEXP","isImageUrl","isImageFile","uploadText","beforeDelete","previewSize","previewOptions","accept","fileList","deletable","showUpload","previewFullImage","imageFit","uploadIcon","previewSizeWithUnit","getDetail","response","resetInput","readFile","contents","onAfterRead","validFiles","oversizeFiles","isValidFiles","deleteFile","onPreviewImage","imageFiles","imageContents","imagePreview","closeImagePreview","chooseFile","genPreviewMask","MaskIcon","showMessage","genPreviewItem","DeleteIcon","PreviewCoverContent","PreviewCover","Preview","genPreviewList","genUpload","Input","uploadImg","afterReadFile","onOversize","stringToDate","timeString","dateToString","showDatePicker","word","messageConfig","goodsId","messageValues","resetMessageValues","_messageConfig$initia","initialMessages","getType","getMessages","getCartMessages","getPlaceholder","validateMessages","textType","getFormatter","SkuImgUploader","uploadMaxSize","isDateOrTime","SkuDateTimeField","SkuActions","showAddCartBtn","addCartText","buyText","priceTag","hideStock","properties","hideSelectedText","resetStepperOnHide","customSkuValidator","resetSelectedSkuOnHide","initialSku","stockThreshold","showSoldoutSku","previewOnClickImage","bodyOffsetTop","selectedSkuValues","selectedSkuComb","resetStepper","resetSelectedSku","skuGroupClass","bodyStyle","isSkuCombSelected","hasSku","isSkuEmpty","none_sku","hasSkuOrAttr","collection_id","property_price","selectedPropValues","origin_price","imageList","vItem","stockNum","stockText","stockFormatter","highlight","selectedText","unselectedSku","unselectedProp","onPropSelect","onNumChange","onStepperState","onAddCart","onBuy","skuStepper","stepperError","_this$initialSku$sele","propValues","propValue","centerInitialSku","getSkuMessages","skuMessages","getSkuCartMessages","validateSkuMessages","validateSku","_extends3","_extends4","indexImage","handleOverLimit","onBuyOrAddCart","getSkuData","cartMessages","skuRows","slotsProps","SkuHeaderItem","skuTreeItem","SkuRow","SkuRowItem","SkuRowPropItem","Stepper","SkuStepper","Messages","SkuMessages","Actions","lang","Sku","skuHelper","skuConstants","constants","isSameValue","barHeight","dragStatus","scope","wrapper0","wrapper1","startValue","middle","handleOverlap","reverse","_wrapperStyle","_barStyle","calcMainAxis","calcOffset","renderButton","getClassName","getRefName","genCircle","activeIcon","inactiveIcon","inactiveIconSlot","onClickStep","isFailed","SubmitBar","tip","tipIcon","decimalStr","textAlign","suffixLabel","Tip","button","buttonType","buttonColor","THRESHOLD","leftWidth","rightWidth","dragging","computedLeftWidth","getWidthByRef","computedRightWidth","isPrevent","getClickHandler","stop","genLeftPart","genRightPart","SwitchCell","cellSize","tabbar","setActiveItem","genTabbar","routeActive","$route","pathMatched","nameMatched","TreeSelect","activeId","selectedIcon","mainActiveIndex","selectedItem","subItems","isMultiple","isActiveItem","Navs","newActiveId","components","ROUTE_PATH","checkout","success","iconAlipay","iconWepay","iconUnion","payClients","getPayClient","client","mallSassPayList","getMallSassPayClient","extendStatics","setPrototypeOf","__extends","__","__assign","__awaiter","thisArg","_arguments","P","generator","adopt","fulfilled","rejected","__generator","sent","trys","ops","verb","op","pop","__spreadArrays","il","jl","getCommonApi","apiUrl","port","rootUrl","devEnv","protocol","baseApi","getQueryVariable","variable","query","vars","parseParam","json","flatMap","encodeURIComponent","callBackUrl","domain","getUCLoginUrl","hostStr","baseOfWechat","configKey","pw","getAppPayString","payString","ua","getPayUa","inWechatMiniProgram","inWechat","inAPP","inH5","inAliApp","getPaymentParams","paramKeys","_a","getParamByName","signType","getQueryValues","queryKeys","search","substring","hash","getMallTradeType","EMallSassTradeType","APP","OFFICIAL","H5","mallRequestResult","res","EventTypeEnum","EPayResult","EPingPayWay","EQRCodePayWay","adaptConfig","INSURANCE","baseURL","VUE_APP_INSURANCE_API","loginKey","VUE_APP_INSURANCE_LOGIN_KEY","wechatLoginApi","VUE_APP_INSURANCE_LOGIN_API","h5LoginUrl","VUE_APP_INSURANCE_H5LOGIN_URL","jkysWechatURL","MEDIC_SALE","PAY_WAY","alipay_app","union_pay_app","wechat_app","ERROR_TYPE","MALL_SASS_SUBMIT_PAY_OVER_TIME","getTradeInfo","tradeNo","post","getPayResult","queryThirdPlatform","getPayConfig","payUA","getRedirectUrl","redirectUrl","getOpenId","getPayString","getNoLoginOpenId","getMallSaasDetail","getMallSaasPay","getMallSaasPayResult","CheckoutError","_super","Error","commonjsGlobal","globalThis","self","createCommonjsModule","basedir","require","base","commonjsRequire","telescope_min","factory","SERVER_URL","DEBUG_SERVER_URL","CUSTOM_TOKEN_KEY","SEND_TYPE","SYNC","ASYNC","UNLOAD","ACTION_TYPE","EVENT","PAGE","VIEW","DURATION","VIEW_DURATION","SAFETY_KEY","trackKey","serverUrl","debugServerUrl","offlineUrl","sendType","delayTime","autoTrackPage","autoTrackClick","autoInstall","delayLink","delayLinkTime","deviceIdKey","beforeGenerateLog","autoTrackPrefix","scriptDom","getConfig","setConfig","_isPlaceholder","_isPlaceholder_1","_curry1","f1","_curry1_1","_curry2","f2","_b","_curry2_1","_arrayFromIterator","iter","_arrayFromIterator_1","_includesWith","pred","idx","_includesWith_1","_functionName","_functionName_1","_has","_has_1","_objectIs","_objectIs_1","is","_isArguments","_isArguments_1","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","nIdx","checkArgsLength","keys_1","type_1","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","_equals","aItem","typeA","equals","source","ignoreCase","multiline","unicode","keysA","extendedStackA","extendedStackB","_equals_1","equals_1","isThenable","getCookie","cookies","cookie","unescape","setCookie","expires","getExpires","setTime","toUTCString","notChanged","isEmpty","setFlag","_TrackerGlobalData","_trackerFlag","getFlag","getUUID","random","getDomPath","dom","getLocationHref","hashCode","char","getRealPath","inMin","config$1","clientInfo","clientWidth","screen","clientHeight","radio","appId","appVersion","appType","marketId","sessionId","channel","deviceId","setClientInfo","urlInfoStr","urlInfo","decodeURIComponent","cookieInfoStr","cookieInfo","expired","config_1","getClientInfo","userInfo","isLogin","setUserInfo","getUserInfo","login","newUserInfo","logout","getDefaultReferrerId","referrerId","referrerData","localStorage","getItem","removeItem","getDefaultSourceEventId","sourceEventId","sourceEventData","pageId","pageInfo","referrerUrl","referrer","pathname","setPageInfo","getPageInfo","http","isAjax","isSendBeacon","cb","dataStr","sendBeacon","Blob","headers","blob","xhr","XMLHttpRequest","withCredentials","readyState","setRequestHeader","send","libInfo","libVersion","libType","getNetInfo","connection","mozConnection","webkitConnection","effectiveType","netType","DurationTime","timeMap","getInstance","trackId","logs","generateLog","trackId_1","actionType","durationTime","trackTime","masterId","setItem","pick","pick_1","businessExtension","seKeywords","bizId","getBusinessExtension","setBuinessExtension","extension","allData","allDebugData","uuid","sendSync","sendAsync","_generateData","newData","debug","_sendToServer","_wrapperData","wrapperData","customTime","custom","netInfo","businessInfo","sourceEventInfo","isAutoTrack","preSourceEventInfo","durationLogs","vissense","withWindow","product","noConflict","commonjsGlobal$1","undefined$1","async","defer","dest","sourceIsObject","destIsObject","fireIf","when","ask","array","identity","isDefined","once","cache","called","throttle","wait","func","viewport","referenceWindow","computedStyle","styleProperty","isDisplayed","isVisibleByStyling","isInViewport","view","vh","vw","isPageVisible","createVisibilityApi","VisSense","_element","_config","fullyvisible","percentageHook","precision","visibilityHooks","roundFactor","_round","visibilityApi","nextState","visobj","currentState","newState","previous","VisState","VisMon","Strategy","PollingStrategy","EventStrategy","_visobj","_state","_started","anyTopicName","_pubsub","PubSub","_events","_strategy","CompositeStrategy","monitor","publish","entry","propertyName","dict","api","_cache","_onAnyCache","syncFireListeners","consumers","consumer","topic","applyCallback","unregister","enableAsync","syncOrAsyncPublish","hiddenByHook","hook","perc","isFullyVisible","isVisible","of","STATES","HIDDEN","VISIBLE","FULLY_VISIBLE","newVisState","isInternalEvent","_cancelAsyncStart","startAsync","me","cancelAsyncStart","Builder","combineStrategies","strategies","combinedStrategies","forceDisableStrategies","enableStrategies","configStrategyIsDefined","configStrategyIsArray","configStrategyAsArray","events","productBuilt","build","manufacture","_strategies","interval","_clearInterval","intervalId","setInterval","clearInterval","_removeEventListeners","removeOnVisibilityChangeEvent","Utils","VisibilityApi","_viewport","_isInViewport","_isDisplayed","_computedStyle","_styleProperty","VisSenseUtils","createInnerMonitor","outerMonitor","timeElapsed","timeStarted","timeLimit","percentageLimit","onPercentageTimeTestPassed","hiddenLimit","innerMonitor","ActionTracker","pageTrackTime","eventId","eventTrackTime","trackEvent","trackPage","trackViewStart","trackView","trackViewEnd","trackLog","autoTrackId","_trackEvent","domInfo","domId","domPath","domTag","visSenseConfig","data_1","domClass","domContent","textContent","trackLink","linkDom","trackDom","_dom","IS_TRACKED","DELAY_TRACK_TIME","trackInfo","domHref","domName","instance$1","hijackHistoryEvent","globalData","oldOnpopstate","onpopstate","newURL","oldURL","historyEventTrigger","oldPushState","history","pushState","spellUrl","fetchEvent","conf","routeChange","onLeave","sended","hasTrack","_isWatchTrack","deviceIdMatch","AppInfoMatch","Sailer","ready","_curry3","f3","_c","_curry3_1","always","always_1","Identity","over","lens","over_1","set_1","_isPlaceholder$1","_curry1$1","_curry2$1","_arity","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","_curryN","received","combined","argsIdx","combinedIdx","curryN","_curry3$1","_isArray","_isTransformer","_dispatchable","methodNames","xf","transducer","_xfBase","_map","functor","_isString","_isArrayLike","XWrap","_xwrap","thisObj","_arrayReduce","_iterableReduce","_methodReduce","methodName","symIterator","_reduce","XMap","_xmap","_has$1","toString$1","_isArguments$1","hasEnumBug$1","nonEnumerableProps$1","hasArgsEnumBug$1","contains$1","keys$1","_isInteger","isInteger","nth","paths","pathsArray","pathAr","assoc","getter","setter","toFunctorFn","lensProp","tracker","partical","descriptor","_arity$1","_arity_1","_curryN$1","_curryN_1","curryN$1","curryN_1","before","trackFn","evalF","after","rr","generate","isWatched","_trackerInfo","handleEvent","trackPage$1","trackEvent$1","trackView$1","actionTracker","vTrackEvent","vTrackPage","vTrackView","needLogin","mallSass","origin","bizSource","backEventType","payWay","BaseConfig","adaptParam","adaptKey","extrConfig","env","queryOpenId","bizOpenId","version$1","stash","PingppError$1","hasOwn$o","payment_elements","or_id","app","credential","livemode","order_no","time_expire","paid","actual_amount","charge_or_order","charge","merchant_order_no","charge_essentials","charges","callbacks","userCallback","urlReturnCallback","urlReturnChannels","userAgreementCallback","innerCallback","payment_elements$1","triggerUrlReturnCallback","shouldReturnUrlByCallback","innerAgreementCallback","utils_1","hasOwn","stringifyData","urlencode","output","request","requestData","successCallback","errorCallback","timeout","onreadystatechange","responseText","formSubmit","hiddenField","randomString","chars","maxPos","redirectTo","inWeixin","inAlipay","inWxLite","wx","miniProgram","requestPayment","inAlipayLite","my","tradePay","documentReady","loadUrlJs","sid","jsurl","nodeHead","getElementsByTagName","nodeScript","initPuid","puid","hasOwn$n","testmode","PINGPP_MOCK_URL","runTestMode","orderNo","timeExpire","hasOwn$m","alipay","PINGPP_NOTIFY_URL_BASE","handleCharge","callpay","orderInfo","alipayLiteEnabled","orderStr","alipayLitePay","swuserAgent","waitAlipayJSBridgde","alipayJsBridgePay","errmsg","AlipayJSBridge","alipayResultHandler","tradePayParams","resultCode","memo","httpRequest","alipay_lite","trade_no","tradeNO","hasOwn$l","alipay_pc_direct","ALIPAY_PC_DIRECT_URL","channel_url","service","_input_charset","hasOwn$k","alipay_qr","transaction_no","hasOwn$j","redirect_base","targetURL","alipay_qr_lakala","hasOwn$i","alipay_wap","ALIPAY_WAP_URL_OLD","ALIPAY_WAP_URL","ap","mods_1","getExtraModule","pay","alipay_wap_lakala","hasOwn$h","bfb_wap","hasOwn$g","cb_alipay_pc_direct","hasOwn$f","cb_alipay_wap","hasOwn$e","cb_wx_pub","jsApiParameters","wx_jssdk","jssdkEnabled","WeixinJSBridge","eventCallback","jsApiCall","attachEvent","invoke","err_msg","dopay","ccb_qr","hasOwn$d","ccb_wap","CCB_WAP_URL_BASE","hasOwn$c","cmb_pc_qr","hasOwn$b","cmb_wallet","CMB_WALLET_URL","request_url","ChannelUrl","channelVersion","coolcredit","request_data","cp_b2b","CP_B2B_URL","hasOwn$a","wx_lite","wxLiteEnabled","errMsg","err_code","err_desc","isv_lite","hasOwn$9","isv_wap","pay_channel","hasOwn$8","jdpay_wap","JDPAY_WAP_URL_OLD","JDPAY_H5_URL","JDPAY_PC_URL","channelUrl","pab_pc","paypal","hasOwn$7","qpay_pub","SRC_URL","ID","tokenId","token_id","mqq","QQVersion","tenpay","retmsg","hasOwn$6","upacp_b2b","upacp_pc","UPACP_PC_URL","upacp_wap","UPACP_WAP_URL","wx_lite_pab","hasOwn$5","wx_pub","wx_pub_hzbank","wx_pub_pab","hasOwn$4","wx_wap","hasOwn$3","yeepay_wap","YEEPAY_WAP_URL","YEEPAY_WAP_TEST_URL","DOMException","INVALID_CHARACTER_ERR","ALPHA","makeDOMException","getbyte64","PADCHAR","SyntaxError","getbyte","encode","APURL","hasOwn$2","agreement","signAgreement","agreementObj","urlToOpen","URL","hasOwn$1","channels","extras","getChannelModule","PingppSDK","PingppError","pingPay","Telescope","createPayment","appPay","wxAppPay","payStringJson","appid","app_id","partnerid","mch_id","prepayid","prepay_id","noncestr","nonce_str","timestamp","time_stamp","sign","wxAppNativePay","payParams","wxsdkpay","wxPay","nonceStr","packageValue","package_value","paySign","sign_type","wxNativePay","package","wxMiniPay","chargeJSON","signature","channelModule","setAPURL","setUrlReturnCallback","PrePay","getPayConfigs","payConfigs","getPayConfigList","payClient","toPay","payConfig","payParam","status_1","error_1","bizToken","setOnceConfig","noToast","clearOnceConfig","queryPayString","callPayChannel","prePay","payWay_1","payConfigList","selectedPayConfig","error_2","toMiniPay","payChannel","configId","callbackRedirectUrl","successUrl","failUrl","configRedirectUrl","wechatH5","getPayQRCode","payWays","payConfigList_1","error_5","productId","configList","error_6","payData","status_2","error_7","errorDialog","PayFunction","getMallSassOrderDetail","pay_type_list","toMallPay","tradeType","toMallMiniPay","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","getPrototypeOf","ReferenceError","Reflect","construct","sham","Proxy","return","PRE","QA","PRODUCTION","__wxjs_environment","inGZZ","appInfo","getCustomUaInfo","inAndroid","onceConfig","Toast","abrupt","delayClose","manual","UPDATE_APP_MESSAGE_SHARE_DATA","UPDATE_TIMELINE_SHARE_DATA","ON_MENU_SHARE_TIMELINE","ON_MENU_SHARE_APP_MESSAGE","ON_MENU_SHARE_QQ","ON_MENU_SHARE_WEIBO","ON_MENU_SHARE_QZONE","START_RECORD","STOP_RECORD","ON_VOICE_RECORD_END","PLAY_VOICE","PAUSE_VOICE","STOP_VOICE","ON_VOICE_PLAY_END","UPLOAD_VOICE","DOWNLOAD_VOICE","CHOOSE_IMAGE","PREVIEW_IMAGE","UPLOAD_IMAGE","DOWNLOAD_IMAGE","TRANSLATE_VOICE","GET_NETWORK_TYPE","OPEN_LOCATION","GET_LOCATION","HIDE_OPTION_MENU","SHOW_OPTION_MENU","HIDE_MENU_ITEMS","SHOW_MENU_ITEMS","HIDE_ALL_NON_BASE_MENU_ITEM","SHOW_ALL_NON_BASE_MENU_ITEM","CLOSE_WINDOW","SCAN_QR_CODE","CHOOSE_WX_PAY","OPEN_PRODUCT_SPECIFIC_VIEW","ADD_CARD","CHOOSE_CARD","OPEN_CARD","WX_FUNCTION_ENUM","U","oldBaseURL","cookieHost","wechatDebug","openTagList","wechatAPIList","wxConfig","wechatMiniProgramLoginUrl","checkOpenIdType","jumpWechatMPLogin","customWebPageLoginUrl","customHeaders","loginTelescopeParams","customAppLoginSuccessCb","MPLoginTimes","LOGIN_REQUIRED","INVALID_TOKEN","UNAUTHORIZED","ECONNABORTED","ACCOUNT_EXCEPTION","DIALOG","axios","put","interceptors","token","ok","Dialog","serviceTel","t0","t1","G","appver","nickname","getLoginUserInfo","doNothing","reLogin","redirect","qs","toId","forceGoBack","back","closeWebview","uploadInput","creatUpload","FormData","append","sessionStorage","Z","loginHandlerInWechat","hideOptionMenu","showOptionMenu","hideAllNonBaseMenuItem","showAllNonBaseMenuItem","returnUrl","link","imageUrl","isNeedLogin","updateAppMessageShareData","updateTimelineShareData","pageUrl","shareUrl","postMessage","getLocation","closeWindow","errcode","jsApiList","getEnv","miniprogram","setIsInZyjkMiniFlag","setMiniProgramH5UserToken","checkOpenId","setQueryToLocal","q","setLoginTelescopeParams","geolocation","getCurrentPosition","coords","X","sailer","callLogin","onLogin","reload","configNavBar","param","openShare","setH5Title","hideNavBar","callNativeBack","customerTypeId","closeBrowser","setHeaderColor","foregroundColor","setStatusBarStyle","chooseSingleImage","getPaddingTop","doctorId","F","K","Y","inIframe","J","isMiniProgram","ZYToast","axiosLegacy","getAdapter","initAdapter","getSideChannel","formats","arrayPrefixGenerators","indices","repeat","pushToArray","valueOrArray","toISO","toISOString","defaultFormat","addQueryPrefix","arrayFormat","encodeDotInKeys","encoder","encodeValuesOnly","formatters","serializeDate","skipNulls","isNonNullishPrimitive","sentinel","generateArrayPrefix","commaRoundTrip","sideChannel","tmpSc","findFlag","keyValue","objKeys","encodedPrefix","adjustedPrefix","encodedKey","keyPrefix","valueSideChannel","normalizeStringifyOptions","joined","rootFontSize","addUnit","getRootFontSize","doc","convertRem","convertVw","convertVh","unitToPx","save","telEmpty","nameEmpty","nameInvalid","confirmDelete","telInvalid","vanCalendar","startEnd","monthTitle","vanContactCard","vanContactList","vanPagination","vanPullRefresh","pulling","loosing","vanSubmitBar","vanCoupon","unlimited","_discount","_condition","vanCouponCell","tips","_count","vanCouponList","exchange","enable","vanAddressEdit","postal","areaEmpty","addressEmpty","postalEmpty","defaultAddress","telPlaceholder","namePlaceholder","vanAddressEditDetail","vanAddressList","proto","defineReactive","util","$vantMessages","$vantLang","_this$add","percentTwenties","Format","RFC1738","RFC3986","hexTable","compactQueue","compacted","arrayToObject","mergeTarget","targetItem","strWithoutPlus","defaultEncoder","kind","string","escape","out","refs","mapped"],"mappings":"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","file":"js/zyPay.9e8603fd.js","sourcesContent":["\"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","/**\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 */\nfunction gen(name, mods) {\n if (!mods) {\n return '';\n }\n\n if (typeof mods === 'string') {\n return \" \" + name + \"--\" + mods;\n }\n\n if (Array.isArray(mods)) {\n return mods.reduce(function (ret, item) {\n return ret + gen(name, item);\n }, '');\n }\n\n return Object.keys(mods).reduce(function (ret, key) {\n return ret + (mods[key] ? gen(name, key) : '');\n }, '');\n}\n\nexport function createBEM(name) {\n return function (el, mods) {\n if (el && typeof el !== 'string') {\n mods = el;\n el = '';\n }\n\n el = el ? name + \"__\" + el : name;\n return \"\" + el + gen(el, mods);\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 var scopedSlot = $scopedSlots[name];\n\n if (scopedSlot) {\n return scopedSlot(props);\n }\n\n return $slots[name];\n }\n }\n};","/**\n * Create a basic component with common options\n */\nimport '../../locale';\nimport { isFunction } from '..';\nimport { camelize } from '../format/string';\nimport { SlotsMixin } from '../../mixins/slots';\nimport Vue from 'vue';\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 function createComponent(name) {\n return function (sfc) {\n if (isFunction(sfc)) {\n sfc = transformFunctionComponent(sfc);\n }\n\n if (!sfc.functional) {\n sfc.mixins = sfc.mixins || [];\n sfc.mixins.push(SlotsMixin);\n }\n\n sfc.name = name;\n sfc.install = install;\n return sfc;\n };\n}","import { get, isFunction } from '..';\nimport { camelize } from '../format/string';\nimport locale from '../../locale';\nexport function createI18N(name) {\n var prefix = camelize(name) + '.';\n return function (path) {\n var messages = locale.messages();\n var message = get(messages, prefix + path) || get(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 isFunction(message) ? message.apply(void 0, args) : message;\n };\n}","import { createBEM } from './bem';\nimport { createComponent } from './component';\nimport { createI18N } from './i18n';\nexport function createNamespace(name) {\n name = 'van-' + name;\n return [createComponent(name), createBEM(name), createI18N(name)];\n}","import { isDef, isObject } 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) || !isObject(val)) {\n to[key] = val;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\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}","/**\n * requestAnimationFrame polyfill\n */\nimport { isServer } from '..';\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} // double raf for animation\n\nexport function doubleRaf(fn) {\n raf(function () {\n raf(fn);\n });\n}\nexport function cancelRaf(id) {\n iCancel.call(root, id);\n}","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowEmptyArrays: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decodeDotInKeys: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n duplicates: 'combine',\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictDepth: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\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, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n var existing = has.call(obj, key);\n if (existing && options.duplicates === 'combine') {\n obj[key] = utils.combine(obj[key], val);\n } else if (!existing || options.duplicates === 'last') {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\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 = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n ? []\n : [].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 decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n var index = parseInt(decodedRoot, 10);\n if (!options.parseArrays && decodedRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== decodedRoot\n && String(index) === decodedRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (decodedRoot !== '__proto__') {\n obj[decodedRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\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 = options.depth > 0 && 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 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 (options.depth > 0 && (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, check strictDepth option for throw, else just add whatever is left\n\n if (segment) {\n if (options.strictDepth === true) {\n throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n }\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n throw new TypeError('The duplicates option must be either combine, first, or last');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n duplicates: duplicates,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\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, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","import Vue from 'vue';\nexport { createNamespace } from './create';\nexport { addUnit } from './format/unit';\nexport var inBrowser = typeof window !== 'undefined';\nexport var isServer = Vue.prototype.$isServer; // eslint-disable-next-line @typescript-eslint/no-empty-function\n\nexport function noop() {}\nexport function isDef(val) {\n return val !== undefined && val !== null;\n}\nexport function isFunction(val) {\n return typeof val === 'function';\n}\nexport function isObject(val) {\n return val !== null && typeof val === 'object';\n}\nexport function isPromise(val) {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n}\nexport function get(object, path) {\n var keys = path.split('.');\n var result = object;\n keys.forEach(function (key) {\n var _result$key;\n\n result = (_result$key = result[key]) != null ? _result$key : '';\n });\n return result;\n}\nexport var isEmpty = function isEmpty(val) {\n return [undefined, 'null', '\"\"', '[]', '{}'].includes(JSON.stringify(val));\n};","var camelizeRE = /-(\\w)/g;\nexport function camelize(str) {\n return str.replace(camelizeRE, function (_, c) {\n return c.toUpperCase();\n });\n}\nexport function padZero(num, targetLength) {\n if (targetLength === void 0) {\n targetLength = 2;\n }\n\n var str = num + '';\n\n while (str.length < targetLength) {\n str = '0' + str;\n }\n\n return str;\n}","export function isNumeric(val) {\n return /^\\d+(\\.\\d+)?$/.test(val);\n}\nexport function isNaN(val) {\n if (Number.isNaN) {\n return Number.isNaN(val);\n } // eslint-disable-next-line no-self-compare\n\n\n return val !== val;\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', 'refInFor', '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 find: function find(vm) {\n return this.stack.filter(function (item) {\n return item.vm === vm;\n })[0];\n }\n};","import { isServer } from '..';\n// eslint-disable-next-line import/no-mutable-exports\nexport var supportsPassive = false;\n\nif (!isServer) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n // eslint-disable-next-line getter-return\n get: function get() {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n });\n window.addEventListener('test-passive', null, opts); // eslint-disable-next-line no-empty\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\";\n// Utils\nimport { createNamespace, isDef, noop } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { preventDefault } from '../utils/dom/event'; // Types\n\nvar _createNamespace = createNamespace('overlay'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction preventTouchMove(event) {\n preventDefault(event, true);\n}\n\nfunction Overlay(h, props, slots, ctx) {\n var style = _extends({\n zIndex: props.zIndex\n }, props.customStyle);\n\n if (isDef(props.duration)) {\n style.animationDuration = props.duration + \"s\";\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [h(\"div\", _mergeJSXProps([{\n \"directives\": [{\n name: \"show\",\n value: props.show\n }],\n \"style\": style,\n \"class\": [bem(), props.className],\n \"on\": {\n \"touchmove\": props.lockScroll ? preventTouchMove : noop\n }\n }, inherit(ctx, true)]), [slots.default == null ? void 0 : slots.default()])]);\n}\n\nOverlay.props = {\n show: Boolean,\n zIndex: [Number, String],\n duration: [Number, String],\n className: null,\n customStyle: Object,\n lockScroll: {\n type: Boolean,\n default: true\n }\n};\nexport default createComponent(Overlay);","export function removeNode(el) {\n var parent = el.parentNode;\n\n if (parent) {\n parent.removeChild(el);\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Overlay from '../../overlay';\nimport { context } from './context';\nimport { mount } from '../../utils/functional';\nimport { removeNode } from '../../utils/dom/node';\nvar defaultConfig = {\n className: '',\n customStyle: {}\n};\n\nfunction mountOverlay(vm) {\n return mount(Overlay, {\n on: {\n // close popup when overlay clicked & closeOnClickOverlay is true\n click: function click() {\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 });\n}\n\nexport function updateOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n var el = vm.$el;\n var config = item.config,\n overlay = item.overlay;\n\n if (el && el.parentNode) {\n el.parentNode.insertBefore(overlay.$el, el);\n }\n\n _extends(overlay, defaultConfig, config, {\n show: true\n });\n }\n}\nexport function openOverlay(vm, config) {\n var item = context.find(vm);\n\n if (item) {\n item.config = config;\n } else {\n var overlay = mountOverlay(vm);\n context.stack.push({\n vm: vm,\n config: config,\n overlay: overlay\n });\n }\n\n updateOverlay(vm);\n}\nexport function closeOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n item.overlay.show = false;\n }\n}\nexport function removeOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n removeNode(item.overlay.$el);\n }\n}","function isWindow(val) {\n return val === window;\n} // get nearest scroll element\n// https://github.com/youzan/vant/issues/3823\n\n\nvar overflowScrollReg = /scroll|auto/i;\nexport function getScroller(el, root) {\n if (root === void 0) {\n root = window;\n }\n\n var node = el;\n\n while (node && node.tagName !== 'HTML' && node.tagName !== 'BODY' && node.nodeType === 1 && node !== root) {\n var _window$getComputedSt = window.getComputedStyle(node),\n overflowY = _window$getComputedSt.overflowY;\n\n if (overflowScrollReg.test(overflowY)) {\n return node;\n }\n\n node = node.parentNode;\n }\n\n return root;\n}\nexport function getScrollTop(el) {\n var top = 'scrollTop' in el ? el.scrollTop : el.pageYOffset; // iOS scroll bounce cause minus scrollTop\n\n return Math.max(top, 0);\n}\nexport function setScrollTop(el, value) {\n if ('scrollTop' in el) {\n el.scrollTop = value;\n } else {\n el.scrollTo(el.scrollX, value);\n }\n}\nexport function getRootScrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n}\nexport function setRootScrollTop(value) {\n setScrollTop(window, value);\n setScrollTop(document.body, value);\n} // get distance from element top to page top or scroller top\n\nexport function getElementTop(el, scroller) {\n if (isWindow(el)) {\n return 0;\n }\n\n var scrollTop = scroller ? getScrollTop(scroller) : getRootScrollTop();\n return el.getBoundingClientRect().top + scrollTop;\n}\nexport function getVisibleHeight(el) {\n if (isWindow(el)) {\n return el.innerHeight;\n }\n\n return el.getBoundingClientRect().height;\n}\nexport function getVisibleTop(el) {\n if (isWindow(el)) {\n return 0;\n }\n\n return el.getBoundingClientRect().top;\n}","import { on } from '../utils/dom/event';\nvar 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 // avoid Vue 2.6 event bubble issues by manually binding events\n // https://github.com/youzan/vant/issues/3015\n bindTouchEvent: function bindTouchEvent(el) {\n var onTouchStart = this.onTouchStart,\n onTouchMove = this.onTouchMove,\n onTouchEnd = this.onTouchEnd;\n on(el, 'touchstart', onTouchStart);\n on(el, 'touchmove', onTouchMove);\n\n if (onTouchEnd) {\n on(el, 'touchend', onTouchEnd);\n on(el, 'touchcancel', onTouchEnd);\n }\n }\n }\n};","function getElement(selector) {\n if (typeof selector === 'string') {\n return document.querySelector(selector);\n }\n\n return selector();\n}\n\nexport function PortalMixin(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n ref = _ref.ref,\n afterPortal = _ref.afterPortal;\n\n return {\n props: {\n getContainer: [String, Function]\n },\n watch: {\n getContainer: 'portal'\n },\n mounted: function mounted() {\n if (this.getContainer) {\n this.portal();\n }\n },\n methods: {\n portal: function portal() {\n var getContainer = this.getContainer;\n var el = ref ? this.$refs[ref] : this.$el;\n var container;\n\n if (getContainer) {\n container = getElement(getContainer);\n } else if (this.$parent) {\n container = this.$parent.$el;\n }\n\n if (container && container !== el.parentNode) {\n container.appendChild(el);\n }\n\n if (afterPortal) {\n afterPortal.call(this);\n }\n }\n }\n };\n}","/**\n * Bind event when mounted or activated\n */\nimport { on, off } from '../utils/dom/event';\nvar uid = 0;\nexport function BindEventMixin(handler) {\n var key = \"binded_\" + uid++;\n\n function bind() {\n if (!this[key]) {\n handler.call(this, on, true);\n this[key] = true;\n }\n }\n\n function unbind() {\n if (this[key]) {\n handler.call(this, off, false);\n this[key] = false;\n }\n }\n\n return {\n mounted: bind,\n activated: bind,\n deactivated: unbind,\n beforeDestroy: unbind\n };\n}","import { on, off } from '../utils/dom/event';\nimport { BindEventMixin } from './bind-event';\nexport var CloseOnPopstateMixin = {\n mixins: [BindEventMixin(function (bind, isBind) {\n this.handlePopstate(isBind && this.closeOnPopstate);\n })],\n props: {\n closeOnPopstate: Boolean\n },\n data: function data() {\n return {\n bindStatus: false\n };\n },\n watch: {\n closeOnPopstate: function closeOnPopstate(val) {\n this.handlePopstate(val);\n }\n },\n methods: {\n onPopstate: function onPopstate() {\n this.close();\n this.shouldReopen = false;\n },\n handlePopstate: function handlePopstate(bind) {\n /* istanbul ignore if */\n if (this.$isServer) {\n return;\n }\n\n if (this.bindStatus !== bind) {\n this.bindStatus = bind;\n var action = bind ? on : off;\n action(window, 'popstate', this.onPopstate);\n }\n }\n }\n};","// Context\nimport { context } from './context';\nimport { openOverlay, closeOverlay, updateOverlay, removeOverlay } from './overlay'; // Utils\n\nimport { on, off, preventDefault } from '../../utils/dom/event';\nimport { removeNode } from '../../utils/dom/node';\nimport { getScroller } from '../../utils/dom/scroll'; // Mixins\n\nimport { TouchMixin } from '../touch';\nimport { PortalMixin } from '../portal';\nimport { CloseOnPopstateMixin } from '../close-on-popstate';\nexport var popupMixinProps = {\n // Initial rendering animation\n transitionAppear: Boolean,\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 overlay is clicked\n closeOnClickOverlay: Boolean,\n // z-index\n zIndex: [Number, String],\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};\nexport function PopupMixin(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n mixins: [TouchMixin, CloseOnPopstateMixin, PortalMixin({\n afterPortal: function afterPortal() {\n if (this.overlay) {\n updateOverlay();\n }\n }\n })],\n props: popupMixinProps,\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\n if (!options.skipToggleEvent) {\n this.$emit(type);\n }\n },\n overlay: 'renderOverlay'\n },\n mounted: function mounted() {\n if (this.value) {\n this.open();\n }\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n if (this.shouldReopen) {\n this.$emit('input', true);\n this.shouldReopen = false;\n }\n },\n beforeDestroy: function beforeDestroy() {\n removeOverlay(this);\n\n if (this.opened) {\n this.removeLock();\n }\n\n if (this.getContainer) {\n removeNode(this.$el);\n }\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n if (this.value) {\n this.close();\n this.shouldReopen = true;\n }\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 this.addLock();\n },\n addLock: function addLock() {\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 removeLock: function removeLock() {\n if (this.lockScroll && context.lockCount) {\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 close: function close() {\n if (!this.opened) {\n return;\n }\n\n closeOverlay(this);\n this.opened = false;\n this.removeLock();\n this.$emit('input', false);\n },\n onTouchMove: function onTouchMove(event) {\n this.touchMove(event);\n var direction = this.deltaY > 0 ? '10' : '01';\n var el = getScroller(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 var _this = this;\n\n if (this.$isServer || !this.value) {\n return;\n }\n\n this.$nextTick(function () {\n _this.updateZIndex(_this.overlay ? 1 : 0);\n\n if (_this.overlay) {\n openOverlay(_this, {\n zIndex: context.zIndex++,\n duration: _this.duration,\n className: _this.overlayClass,\n customStyle: _this.overlayStyle\n });\n } else {\n closeOverlay(_this);\n }\n });\n },\n updateZIndex: function updateZIndex(value) {\n if (value === void 0) {\n value = 0;\n }\n\n this.$el.style.zIndex = ++context.zIndex + value;\n }\n }\n };\n}","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('info'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Info(h, props, slots, ctx) {\n var dot = props.dot,\n info = props.info;\n var showInfo = isDef(info) && info !== '';\n\n if (!dot && !showInfo) {\n return;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n dot: dot\n })\n }, inherit(ctx, true)]), [dot ? '' : props.info]);\n}\n\nInfo.props = {\n dot: Boolean,\n info: [Number, String]\n};\nexport default createComponent(Info);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { inherit } from '../utils/functional'; // Components\n\nimport Info from '../info'; // Types\n\nvar _createNamespace = createNamespace('icon'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction isImage(name) {\n return name ? name.indexOf('/') !== -1 : false;\n} // compatible with legacy usage, should be removed in next major version\n\n\nvar LEGACY_MAP = {\n medel: 'medal',\n 'medel-o': 'medal-o',\n 'calender-o': 'calendar-o'\n};\n\nfunction correctName(name) {\n return name && LEGACY_MAP[name] || name;\n}\n\nfunction Icon(h, props, slots, ctx) {\n var _props$badge;\n\n var name = correctName(props.name);\n var imageIcon = isImage(name);\n\n if (process.env.NODE_ENV === 'development' && props.info) {\n console.warn('[Vant] Icon: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n return h(props.tag, _mergeJSXProps([{\n \"class\": [props.classPrefix, imageIcon ? '' : props.classPrefix + \"-\" + name],\n \"style\": {\n color: props.color,\n fontSize: addUnit(props.size)\n }\n }, inherit(ctx, true)]), [slots.default && slots.default(), imageIcon && h(\"img\", {\n \"class\": bem('image'),\n \"attrs\": {\n \"src\": name\n }\n }), h(Info, {\n \"attrs\": {\n \"dot\": props.dot,\n \"info\": (_props$badge = props.badge) != null ? _props$badge : props.info\n }\n })]);\n}\n\nIcon.props = {\n dot: Boolean,\n name: String,\n size: [Number, String],\n // @deprecated\n // should be removed in next major version\n info: [Number, String],\n badge: [Number, String],\n color: String,\n tag: {\n type: String,\n default: 'i'\n },\n classPrefix: {\n type: String,\n default: bem()\n }\n};\nexport default createComponent(Icon);","import { createNamespace, isDef } from '../utils';\nimport { PopupMixin } from '../mixins/popup';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('popup'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n round: Boolean,\n duration: [Number, String],\n closeable: Boolean,\n transition: String,\n safeAreaInsetBottom: Boolean,\n closeIcon: {\n type: String,\n default: 'cross'\n },\n closeIconPosition: {\n type: String,\n default: 'top-right'\n },\n position: {\n type: String,\n default: 'center'\n },\n overlay: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n },\n size: {\n type: String,\n default: ''\n }\n },\n beforeCreate: function beforeCreate() {\n var _this = this;\n\n var createEmitter = function createEmitter(eventName) {\n return function (event) {\n return _this.$emit(eventName, event);\n };\n };\n\n this.onClick = createEmitter('click');\n this.onOpened = createEmitter('opened');\n this.onClosed = createEmitter('closed');\n },\n methods: {\n onClickCloseIcon: function onClickCloseIcon(event) {\n this.$emit('click-close-icon', event);\n this.close();\n }\n },\n render: function render() {\n var _bem;\n\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n var round = this.round,\n position = this.position,\n duration = this.duration,\n size = this.size;\n var isCenter = position === 'center';\n var transitionName = this.transition || (isCenter ? 'van-fade' : \"van-popup-slide-\" + position);\n var style = {};\n\n if (isDef(duration)) {\n var key = isCenter ? 'animationDuration' : 'transitionDuration';\n style[key] = duration + \"s\";\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"appear\": this.transitionAppear,\n \"name\": transitionName\n },\n \"on\": {\n \"afterEnter\": this.onOpened,\n \"afterLeave\": this.onClosed\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"style\": style,\n \"class\": bem((_bem = {\n round: round\n }, _bem[position] = position, _bem[size] = size, _bem['safe-area-inset-bottom'] = this.safeAreaInsetBottom, _bem)),\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots(), this.closeable && h(Icon, {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\",\n \"name\": this.closeIcon\n },\n \"class\": bem('close-icon', this.closeIconPosition),\n \"on\": {\n \"click\": this.onClickCloseIcon\n }\n })])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('loading'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction LoadingIcon(h, props) {\n if (props.type === 'spinner') {\n var Spin = [];\n\n for (var i = 0; i < 12; i++) {\n Spin.push(h(\"i\"));\n }\n\n return Spin;\n }\n\n return 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}\n\nfunction LoadingText(h, props, slots) {\n if (slots.default) {\n var style = props.textSize && {\n fontSize: addUnit(props.textSize)\n };\n return h(\"span\", {\n \"class\": bem('text'),\n \"style\": style\n }, [slots.default()]);\n }\n}\n\nfunction Loading(h, props, slots, ctx) {\n var color = props.color,\n size = props.size,\n type = props.type;\n var style = {\n color: color\n };\n\n if (size) {\n var iconSize = addUnit(size);\n style.width = iconSize;\n style.height = iconSize;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem([type, {\n vertical: props.vertical\n }])\n }, inherit(ctx, true)]), [h(\"span\", {\n \"class\": bem('spinner', type),\n \"style\": style\n }, [LoadingIcon(h, props)]), LoadingText(h, props, slots)]);\n}\n\nLoading.props = {\n color: String,\n size: [Number, String],\n vertical: Boolean,\n textSize: [Number, String],\n type: {\n type: String,\n default: 'circular'\n }\n};\nexport default createComponent(Loading);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Mixins\n\nimport { popupMixinProps } from '../mixins/popup'; // Components\n\nimport Icon from '../icon';\nimport Popup from '../popup';\nimport Loading from '../loading'; // Types\n\nvar _createNamespace = createNamespace('action-sheet'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction ActionSheet(h, props, slots, ctx) {\n var title = props.title,\n cancelText = props.cancelText,\n closeable = props.closeable;\n\n function onCancel() {\n emit(ctx, 'input', false);\n emit(ctx, 'cancel');\n }\n\n function Header() {\n if (title) {\n return h(\"div\", {\n \"class\": bem('header')\n }, [title, closeable && h(Icon, {\n \"attrs\": {\n \"name\": props.closeIcon\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": onCancel\n }\n })]);\n }\n }\n\n function Option(item, index) {\n var disabled = item.disabled,\n loading = item.loading,\n callback = item.callback;\n\n function onClickOption(event) {\n event.stopPropagation();\n\n if (disabled || loading) {\n return;\n }\n\n if (callback) {\n callback(item);\n }\n\n emit(ctx, 'select', item, index);\n\n if (props.closeOnClickAction) {\n emit(ctx, 'input', false);\n }\n }\n\n function OptionContent() {\n if (loading) {\n return h(Loading, {\n \"class\": bem('loading-icon')\n });\n }\n\n return [h(\"span\", {\n \"class\": bem('name')\n }, [item.name]), item.subname && h(\"div\", {\n \"class\": bem('subname')\n }, [item.subname])];\n }\n\n return h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": [bem('item', {\n disabled: disabled,\n loading: loading\n }), item.className],\n \"style\": {\n color: item.color,\n padding: item.subname ? '15px 16px' : '19px 16px'\n },\n \"on\": {\n \"click\": onClickOption\n }\n }, [OptionContent()]);\n }\n\n function CancelText() {\n if (cancelText) {\n return [h(\"div\", {\n \"class\": bem('gap')\n }), h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": onCancel\n }\n }, [cancelText])];\n }\n }\n\n function Description() {\n var description = (slots.description == null ? void 0 : slots.description()) || props.description;\n\n if (description) {\n return h(\"div\", {\n \"class\": bem('description')\n }, [description]);\n }\n }\n\n return h(Popup, _mergeJSXProps([{\n \"class\": bem(),\n \"attrs\": {\n \"position\": \"bottom\",\n \"round\": props.round,\n \"value\": props.value,\n \"overlay\": props.overlay,\n \"duration\": props.duration,\n \"lazyRender\": props.lazyRender,\n \"lockScroll\": props.lockScroll,\n \"getContainer\": props.getContainer,\n \"closeOnPopstate\": props.closeOnPopstate,\n \"closeOnClickOverlay\": props.closeOnClickOverlay,\n \"safeAreaInsetBottom\": props.safeAreaInsetBottom\n }\n }, inherit(ctx, true)]), [Header(), Description(), h(\"div\", {\n \"class\": bem('content')\n }, [props.actions && props.actions.map(Option), slots.default == null ? void 0 : slots.default()]), CancelText()]);\n}\n\nActionSheet.props = _extends({}, popupMixinProps, {\n title: String,\n actions: Array,\n duration: [Number, String],\n cancelText: String,\n description: String,\n getContainer: [String, Function],\n closeOnPopstate: Boolean,\n closeOnClickAction: Boolean,\n round: {\n type: Boolean,\n default: true\n },\n closeable: {\n type: Boolean,\n default: true\n },\n closeIcon: {\n type: String,\n default: 'cross'\n },\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n },\n overlay: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n }\n});\nexport default createComponent(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}","export var DEFAULT_ITEM_HEIGHT = 44;\nexport var pickerProps = {\n title: String,\n loading: Boolean,\n readonly: Boolean,\n itemHeight: [Number, String],\n showToolbar: Boolean,\n cancelButtonText: String,\n confirmButtonText: String,\n allowHtml: {\n type: Boolean,\n default: true\n },\n visibleItemCount: {\n type: [Number, String],\n default: 6\n },\n swipeDuration: {\n type: [Number, String],\n default: 1000\n }\n};","// color\nexport var RED = '#ee0a24';\nexport var BLUE = '#1989fa';\nexport var GREEN = '#07c160';\nexport var WHITE = '#fff'; // border\n\nexport var BORDER = 'van-hairline';\nexport var BORDER_TOP = BORDER + \"--top\";\nexport var BORDER_LEFT = BORDER + \"--left\";\nexport var BORDER_BOTTOM = BORDER + \"--bottom\";\nexport var BORDER_SURROUND = BORDER + \"--surround\";\nexport var BORDER_TOP_BOTTOM = BORDER + \"--top-bottom\";\nexport var BORDER_UNSET_TOP_BOTTOM = BORDER + \"-unset--top-bottom\";","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 function range(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\n\nfunction trimExtraChar(value, _char, regExp) {\n var index = value.indexOf(_char);\n\n if (index === -1) {\n return value;\n }\n\n if (_char === '-' && index !== 0) {\n return value.slice(0, index);\n }\n\n return value.slice(0, index + 1) + value.slice(index).replace(regExp, '');\n}\n\nexport function formatNumber(value, allowDot, allowMinus) {\n if (allowDot === void 0) {\n allowDot = true;\n }\n\n if (allowMinus === void 0) {\n allowMinus = true;\n }\n\n if (allowDot) {\n value = trimExtraChar(value, '.', /\\./g);\n } else {\n value = value.split('.')[0];\n }\n\n if (allowMinus) {\n value = trimExtraChar(value, '-', /-/g);\n } else {\n value = value.replace(/-/, '');\n }\n\n var regExp = allowDot ? /[^-0-9.]/g : /[^-0-9]/g;\n return value.replace(regExp, '');\n}","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { deepClone } from '../utils/deep-clone';\nimport { createNamespace, isObject } from '../utils';\nimport { range } from '../utils/format/number';\nimport { preventDefault } from '../utils/dom/event';\nimport { TouchMixin } from '../mixins/touch';\nvar DEFAULT_DURATION = 200; // 惯性滑动思路:\n// 在手指离开屏幕时,如果和上一次 move 时的间隔小于 `MOMENTUM_LIMIT_TIME` 且 move\n// 距离大于 `MOMENTUM_LIMIT_DISTANCE` 时,执行惯性滑动\n\nvar MOMENTUM_LIMIT_TIME = 300;\nvar MOMENTUM_LIMIT_DISTANCE = 15;\n\nvar _createNamespace = createNamespace('picker-column'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction getElementTranslateY(element) {\n var style = window.getComputedStyle(element);\n var transform = style.transform || style.webkitTransform;\n var translateY = transform.slice(7, transform.length - 1).split(', ')[5];\n return Number(translateY);\n}\n\nfunction isOptionDisabled(option) {\n return isObject(option) && option.disabled;\n}\n\nexport default createComponent({\n mixins: [TouchMixin],\n props: {\n valueKey: String,\n readonly: Boolean,\n allowHtml: Boolean,\n className: String,\n itemHeight: Number,\n defaultIndex: Number,\n swipeDuration: [Number, String],\n visibleItemCount: [Number, String],\n initialOptions: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n offset: 0,\n duration: 0,\n options: deepClone(this.initialOptions),\n currentIndex: this.defaultIndex\n };\n },\n created: function created() {\n if (this.$parent.children) {\n this.$parent.children.push(this);\n }\n\n this.setIndex(this.currentIndex);\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$el);\n },\n destroyed: function destroyed() {\n var children = this.$parent.children;\n\n if (children) {\n children.splice(children.indexOf(this), 1);\n }\n },\n watch: {\n initialOptions: 'setOptions',\n defaultIndex: function defaultIndex(val) {\n this.setIndex(val);\n }\n },\n computed: {\n count: function count() {\n return this.options.length;\n },\n baseOffset: function baseOffset() {\n return this.itemHeight * (this.visibleItemCount - 1) / 2;\n }\n },\n methods: {\n setOptions: function setOptions(options) {\n if (JSON.stringify(options) !== JSON.stringify(this.options)) {\n this.options = deepClone(options);\n this.setIndex(this.defaultIndex);\n }\n },\n onTouchStart: function onTouchStart(event) {\n if (this.readonly) {\n return;\n }\n\n this.touchStart(event);\n\n if (this.moving) {\n var translateY = getElementTranslateY(this.$refs.wrapper);\n this.offset = Math.min(0, translateY - this.baseOffset);\n this.startOffset = this.offset;\n } else {\n this.startOffset = this.offset;\n }\n\n this.duration = 0;\n this.transitionEndTrigger = null;\n this.touchStartTime = Date.now();\n this.momentumOffset = this.startOffset;\n },\n onTouchMove: function onTouchMove(event) {\n if (this.readonly) {\n return;\n }\n\n this.touchMove(event);\n\n if (this.direction === 'vertical') {\n this.moving = true;\n preventDefault(event, true);\n }\n\n this.offset = range(this.startOffset + this.deltaY, -(this.count * this.itemHeight), this.itemHeight);\n var now = Date.now();\n\n if (now - this.touchStartTime > MOMENTUM_LIMIT_TIME) {\n this.touchStartTime = now;\n this.momentumOffset = this.offset;\n }\n },\n onTouchEnd: function onTouchEnd() {\n var _this = this;\n\n if (this.readonly) {\n return;\n }\n\n var distance = this.offset - this.momentumOffset;\n var duration = Date.now() - this.touchStartTime;\n var allowMomentum = duration < MOMENTUM_LIMIT_TIME && Math.abs(distance) > MOMENTUM_LIMIT_DISTANCE;\n\n if (allowMomentum) {\n this.momentum(distance, duration);\n return;\n }\n\n var index = this.getIndexByOffset(this.offset);\n this.duration = DEFAULT_DURATION;\n this.setIndex(index, true); // compatible with desktop scenario\n // use setTimeout to skip the click event Emitted after touchstart\n\n setTimeout(function () {\n _this.moving = false;\n }, 0);\n },\n onTransitionEnd: function onTransitionEnd() {\n this.stopMomentum();\n },\n onClickItem: function onClickItem(index) {\n if (this.moving || this.readonly) {\n return;\n }\n\n this.transitionEndTrigger = null;\n this.duration = DEFAULT_DURATION;\n this.setIndex(index, true);\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 (!isOptionDisabled(this.options[i])) return i;\n }\n\n for (var _i = index - 1; _i >= 0; _i--) {\n if (!isOptionDisabled(this.options[_i])) return _i;\n }\n },\n getOptionText: function getOptionText(option) {\n if (isObject(option) && this.valueKey in option) {\n return option[this.valueKey];\n }\n\n return option;\n },\n setIndex: function setIndex(index, emitChange) {\n var _this2 = this;\n\n index = this.adjustIndex(index) || 0;\n var offset = -index * this.itemHeight;\n\n var trigger = function trigger() {\n if (index !== _this2.currentIndex) {\n _this2.currentIndex = index;\n\n if (emitChange) {\n _this2.$emit('change', index);\n }\n }\n }; // trigger the change event after transitionend when moving\n\n\n if (this.moving && offset !== this.offset) {\n this.transitionEndTrigger = trigger;\n } else {\n trigger();\n }\n\n this.offset = offset;\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 getIndexByOffset: function getIndexByOffset(offset) {\n return range(Math.round(-offset / this.itemHeight), 0, this.count - 1);\n },\n momentum: function momentum(distance, duration) {\n var speed = Math.abs(distance / duration);\n distance = this.offset + speed / 0.003 * (distance < 0 ? -1 : 1);\n var index = this.getIndexByOffset(distance);\n this.duration = +this.swipeDuration;\n this.setIndex(index, true);\n },\n stopMomentum: function stopMomentum() {\n this.moving = false;\n this.duration = 0;\n\n if (this.transitionEndTrigger) {\n this.transitionEndTrigger();\n this.transitionEndTrigger = null;\n }\n },\n genOptions: function genOptions() {\n var _this3 = this;\n\n var h = this.$createElement;\n var optionStyle = {\n height: this.itemHeight + \"px\"\n };\n return this.options.map(function (option, index) {\n var _domProps;\n\n var text = _this3.getOptionText(option);\n\n var disabled = isOptionDisabled(option);\n var data = {\n style: optionStyle,\n attrs: {\n role: 'button',\n tabindex: disabled ? -1 : 0\n },\n class: [bem('item', {\n disabled: disabled,\n selected: index === _this3.currentIndex\n })],\n on: {\n click: function click() {\n _this3.onClickItem(index);\n }\n }\n };\n var childData = {\n class: 'van-ellipsis',\n domProps: (_domProps = {}, _domProps[_this3.allowHtml ? 'innerHTML' : 'textContent'] = text, _domProps)\n };\n return h(\"li\", _mergeJSXProps2([{}, data]), [_this3.slots('option', option) || h(\"div\", _mergeJSXProps([{}, childData]))]);\n });\n }\n },\n render: function render() {\n var h = arguments[0];\n var wrapperStyle = {\n transform: \"translate3d(0, \" + (this.offset + this.baseOffset) + \"px, 0)\",\n transitionDuration: this.duration + \"ms\",\n transitionProperty: this.duration ? 'all' : 'none'\n };\n return h(\"div\", {\n \"class\": [bem(), this.className]\n }, [h(\"ul\", {\n \"ref\": \"wrapper\",\n \"style\": wrapperStyle,\n \"class\": bem('wrapper'),\n \"on\": {\n \"transitionend\": this.onTransitionEnd\n }\n }, [this.genOptions()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { preventDefault } from '../utils/dom/event';\nimport { BORDER_UNSET_TOP_BOTTOM } from '../utils/constant';\nimport { pickerProps, DEFAULT_ITEM_HEIGHT } from './shared';\nimport { unitToPx } from '../utils/format/unit'; // Components\n\nimport Loading from '../loading';\nimport PickerColumn from './PickerColumn';\n\nvar _createNamespace = createNamespace('picker'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n props: _extends({}, pickerProps, {\n defaultIndex: {\n type: [Number, String],\n default: 0\n },\n columns: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n toolbarPosition: {\n type: String,\n default: 'top'\n },\n valueKey: {\n type: String,\n default: 'text'\n }\n }),\n data: function data() {\n return {\n children: [],\n formattedColumns: []\n };\n },\n computed: {\n itemPxHeight: function itemPxHeight() {\n return this.itemHeight ? unitToPx(this.itemHeight) : DEFAULT_ITEM_HEIGHT;\n },\n dataType: function dataType() {\n var columns = this.columns;\n var firstColumn = columns[0] || {};\n\n if (firstColumn.children) {\n return 'cascade';\n }\n\n if (firstColumn.values) {\n return 'object';\n }\n\n return 'text';\n }\n },\n watch: {\n columns: {\n handler: 'format',\n immediate: true\n }\n },\n methods: {\n format: function format() {\n var columns = this.columns,\n dataType = this.dataType;\n\n if (dataType === 'text') {\n this.formattedColumns = [{\n values: columns\n }];\n } else if (dataType === 'cascade') {\n this.formatCascade();\n } else {\n this.formattedColumns = columns;\n }\n },\n formatCascade: function formatCascade() {\n var formatted = [];\n var cursor = {\n children: this.columns\n };\n\n while (cursor && cursor.children) {\n var _cursor$defaultIndex;\n\n var _cursor = cursor,\n children = _cursor.children;\n var defaultIndex = (_cursor$defaultIndex = cursor.defaultIndex) != null ? _cursor$defaultIndex : +this.defaultIndex;\n\n while (children[defaultIndex] && children[defaultIndex].disabled) {\n if (defaultIndex < children.length - 1) {\n defaultIndex++;\n } else {\n defaultIndex = 0;\n break;\n }\n }\n\n formatted.push({\n values: cursor.children,\n className: cursor.className,\n defaultIndex: defaultIndex\n });\n cursor = children[defaultIndex];\n }\n\n this.formattedColumns = formatted;\n },\n emit: function emit(event) {\n var _this = this;\n\n if (this.dataType === 'text') {\n this.$emit(event, this.getColumnValue(0), this.getColumnIndex(0));\n } else {\n var values = this.getValues(); // compatible with old version of wrong parameters\n // should be removed in next major version\n // see: https://github.com/youzan/vant/issues/5905\n\n if (this.dataType === 'cascade') {\n values = values.map(function (item) {\n return item[_this.valueKey];\n });\n }\n\n this.$emit(event, values, this.getIndexes());\n }\n },\n onCascadeChange: function onCascadeChange(columnIndex) {\n var cursor = {\n children: this.columns\n };\n var indexes = this.getIndexes();\n\n for (var i = 0; i <= columnIndex; i++) {\n cursor = cursor.children[indexes[i]];\n }\n\n while (cursor && cursor.children) {\n columnIndex++;\n this.setColumnValues(columnIndex, cursor.children);\n cursor = cursor.children[cursor.defaultIndex || 0];\n }\n },\n onChange: function onChange(columnIndex) {\n var _this2 = this;\n\n if (this.dataType === 'cascade') {\n this.onCascadeChange(columnIndex);\n }\n\n if (this.dataType === 'text') {\n this.$emit('change', this, this.getColumnValue(0), this.getColumnIndex(0));\n } else {\n var values = this.getValues(); // compatible with old version of wrong parameters\n // should be removed in next major version\n // see: https://github.com/youzan/vant/issues/5905\n\n if (this.dataType === 'cascade') {\n values = values.map(function (item) {\n return item[_this2.valueKey];\n });\n }\n\n this.$emit('change', this, values, columnIndex);\n }\n },\n // get column instance by index\n getColumn: function getColumn(index) {\n return this.children[index];\n },\n // @exposed-api\n // get column value by index\n getColumnValue: function getColumnValue(index) {\n var column = this.getColumn(index);\n return column && column.getValue();\n },\n // @exposed-api\n // set column value by index\n setColumnValue: function setColumnValue(index, value) {\n var column = this.getColumn(index);\n\n if (column) {\n column.setValue(value);\n\n if (this.dataType === 'cascade') {\n this.onCascadeChange(index);\n }\n }\n },\n // @exposed-api\n // get column option index by column index\n getColumnIndex: function getColumnIndex(columnIndex) {\n return (this.getColumn(columnIndex) || {}).currentIndex;\n },\n // @exposed-api\n // set column option index by column index\n setColumnIndex: function setColumnIndex(columnIndex, optionIndex) {\n var column = this.getColumn(columnIndex);\n\n if (column) {\n column.setIndex(optionIndex);\n\n if (this.dataType === 'cascade') {\n this.onCascadeChange(columnIndex);\n }\n }\n },\n // @exposed-api\n // get options of column by index\n getColumnValues: function getColumnValues(index) {\n return (this.children[index] || {}).options;\n },\n // @exposed-api\n // set options of column by index\n setColumnValues: function setColumnValues(index, options) {\n var column = this.children[index];\n\n if (column) {\n column.setOptions(options);\n }\n },\n // @exposed-api\n // get values of all columns\n getValues: function getValues() {\n return this.children.map(function (child) {\n return child.getValue();\n });\n },\n // @exposed-api\n // set values of all columns\n setValues: function setValues(values) {\n var _this3 = this;\n\n values.forEach(function (value, index) {\n _this3.setColumnValue(index, value);\n });\n },\n // @exposed-api\n // get indexes of all columns\n getIndexes: function getIndexes() {\n return this.children.map(function (child) {\n return child.currentIndex;\n });\n },\n // @exposed-api\n // set indexes of all columns\n setIndexes: function setIndexes(indexes) {\n var _this4 = this;\n\n indexes.forEach(function (optionIndex, columnIndex) {\n _this4.setColumnIndex(columnIndex, optionIndex);\n });\n },\n // @exposed-api\n confirm: function confirm() {\n this.children.forEach(function (child) {\n return child.stopMomentum();\n });\n this.emit('confirm');\n },\n cancel: function cancel() {\n this.emit('cancel');\n },\n genTitle: function genTitle() {\n var h = this.$createElement;\n var titleSlot = this.slots('title');\n\n if (titleSlot) {\n return titleSlot;\n }\n\n if (this.title) {\n return h(\"div\", {\n \"class\": ['van-ellipsis', bem('title')]\n }, [this.title]);\n }\n },\n genCancel: function genCancel() {\n var h = this.$createElement;\n return h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": this.cancel\n }\n }, [this.slots('cancel') || this.cancelButtonText || t('cancel')]);\n },\n genConfirm: function genConfirm() {\n var h = this.$createElement;\n return h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": bem('confirm'),\n \"on\": {\n \"click\": this.confirm\n }\n }, [this.slots('confirm') || this.confirmButtonText || t('confirm')]);\n },\n genToolbar: function genToolbar() {\n var h = this.$createElement;\n\n if (this.showToolbar) {\n return h(\"div\", {\n \"class\": bem('toolbar')\n }, [this.slots() || [this.genCancel(), this.genTitle(), this.genConfirm()]]);\n }\n },\n genColumns: function genColumns() {\n var h = this.$createElement;\n var itemPxHeight = this.itemPxHeight;\n var wrapHeight = itemPxHeight * this.visibleItemCount;\n var frameStyle = {\n height: itemPxHeight + \"px\"\n };\n var columnsStyle = {\n height: wrapHeight + \"px\"\n };\n var maskStyle = {\n backgroundSize: \"100% \" + (wrapHeight - itemPxHeight) / 2 + \"px\"\n };\n return h(\"div\", {\n \"class\": bem('columns'),\n \"style\": columnsStyle,\n \"on\": {\n \"touchmove\": preventDefault\n }\n }, [this.genColumnItems(), h(\"div\", {\n \"class\": bem('mask'),\n \"style\": maskStyle\n }), h(\"div\", {\n \"class\": [BORDER_UNSET_TOP_BOTTOM, bem('frame')],\n \"style\": frameStyle\n })]);\n },\n genColumnItems: function genColumnItems() {\n var _this5 = this;\n\n var h = this.$createElement;\n return this.formattedColumns.map(function (item, columnIndex) {\n var _item$defaultIndex;\n\n return h(PickerColumn, {\n \"attrs\": {\n \"readonly\": _this5.readonly,\n \"valueKey\": _this5.valueKey,\n \"allowHtml\": _this5.allowHtml,\n \"className\": item.className,\n \"itemHeight\": _this5.itemPxHeight,\n \"defaultIndex\": (_item$defaultIndex = item.defaultIndex) != null ? _item$defaultIndex : +_this5.defaultIndex,\n \"swipeDuration\": _this5.swipeDuration,\n \"visibleItemCount\": _this5.visibleItemCount,\n \"initialOptions\": item.values\n },\n \"scopedSlots\": {\n option: _this5.$scopedSlots.option\n },\n \"on\": {\n \"change\": function change() {\n _this5.onChange(columnIndex);\n }\n }\n });\n });\n }\n },\n render: function render(h) {\n return h(\"div\", {\n \"class\": bem()\n }, [this.toolbarPosition === 'top' ? this.genToolbar() : h(), this.loading ? h(Loading, {\n \"class\": bem('loading')\n }) : h(), this.slots('columns-top'), this.genColumns(), this.slots('columns-bottom'), this.toolbarPosition === 'bottom' ? this.genToolbar() : h()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { pickerProps } from '../picker/shared';\nimport Picker from '../picker';\n\nvar _createNamespace = createNamespace('area'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar PLACEHOLDER_CODE = '000000';\n\nfunction isOverseaCode(code) {\n return code[0] === '9';\n}\n\nfunction pickSlots(instance, keys) {\n var $slots = instance.$slots,\n $scopedSlots = instance.$scopedSlots;\n var scopedSlots = {};\n keys.forEach(function (key) {\n if ($scopedSlots[key]) {\n scopedSlots[key] = $scopedSlots[key];\n } else if ($slots[key]) {\n scopedSlots[key] = function () {\n return $slots[key];\n };\n }\n });\n return scopedSlots;\n}\n\nexport default createComponent({\n props: _extends({}, pickerProps, {\n value: String,\n areaList: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n columnsNum: {\n type: [Number, String],\n default: 3\n },\n isOverseaCode: {\n type: Function,\n default: isOverseaCode\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 placeholderMap: function placeholderMap() {\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(val) {\n this.code = val;\n this.setValues();\n },\n areaList: {\n deep: true,\n handler: 'setValues'\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 (this.isOverseaCode(code) && 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.placeholderMap[type] && result.length) {\n // set columns placeholder\n var codeFill = '';\n\n if (type === 'city') {\n codeFill = PLACEHOLDER_CODE.slice(2, 4);\n } else if (type === 'county') {\n codeFill = PLACEHOLDER_CODE.slice(4, 6);\n }\n\n result.unshift({\n code: \"\" + code + codeFill,\n name: this.placeholderMap[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 (this.isOverseaCode(code) && 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 // save undefined value\n if (!value) return value;\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 parsedValues = this.parseOutputValues(picker.getValues());\n this.$emit('change', picker, parsedValues, index);\n },\n onConfirm: function onConfirm(values, index) {\n values = this.parseOutputValues(values);\n this.setValues();\n this.$emit('confirm', values, index);\n },\n getDefaultCode: function getDefaultCode() {\n if (this.columnsPlaceholder.length) {\n return PLACEHOLDER_CODE;\n }\n\n var countyCodes = Object.keys(this.county);\n\n if (countyCodes[0]) {\n return countyCodes[0];\n }\n\n var cityCodes = Object.keys(this.city);\n\n if (cityCodes[0]) {\n return cityCodes[0];\n }\n\n return '';\n },\n setValues: function setValues() {\n var code = this.code;\n\n if (!code) {\n code = this.getDefaultCode();\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' && !this.isOverseaCode(code)) {\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().filter(function (value) {\n return !!value;\n }) : [];\n getValues = this.parseOutputValues(getValues);\n return getValues;\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 validValues = values.filter(function (value) {\n return !!value.code;\n });\n area.code = validValues.length ? validValues[validValues.length - 1].code : '';\n\n if (this.isOverseaCode(area.code)) {\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 // @exposed-api\n reset: function reset(code) {\n this.code = code || '';\n this.setValues();\n }\n },\n render: function render() {\n var h = arguments[0];\n\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 \"columns\": this.displayColumns,\n \"loading\": this.loading,\n \"readonly\": this.readonly,\n \"itemHeight\": this.itemHeight,\n \"swipeDuration\": this.swipeDuration,\n \"visibleItemCount\": this.visibleItemCount,\n \"cancelButtonText\": this.cancelButtonText,\n \"confirmButtonText\": this.confirmButtonText\n },\n \"scopedSlots\": pickSlots(this, ['title', 'columns-top', 'columns-bottom']),\n \"on\": _extends({}, on)\n });\n }\n});","/**\n * Vue Router support\n */\nfunction isRedundantNavigation(err) {\n return err.name === 'NavigationDuplicated' || // compatible with vue-router@3.3\n err.message && err.message.indexOf('redundant navigation') !== -1;\n}\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 var promise = router[replace ? 'replace' : 'push'](to);\n /* istanbul ignore else */\n\n if (promise && promise.catch) {\n promise.catch(function (err) {\n if (err && !isRedundantNavigation(err)) {\n throw err;\n }\n });\n }\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};","export var cellProps = {\n bigIcon: String,\n isValueLeft: Boolean,\n isLinkTitle: Boolean,\n icon: String,\n size: String,\n center: Boolean,\n isLink: Boolean,\n required: Boolean,\n clickable: Boolean,\n iconPrefix: String,\n titleStyle: null,\n titleClass: null,\n valueClass: null,\n labelClass: null,\n title: [Number, String],\n value: [Number, String],\n label: [Number, String],\n arrowDirection: String,\n border: {\n type: Boolean,\n default: true\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { routeProps, functionalRoute } from '../utils/router';\nimport { cellProps } from './shared'; // Components\n\nimport Icon from '../icon'; // Types\n\nvar _createNamespace = createNamespace('cell'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[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 isLinkTitle = props.isLinkTitle,\n isValueLeft = props.isValueLeft,\n bigIcon = props.bigIcon;\n var showTitle = slots.title || isDef(title);\n var linkTitleCls = isLinkTitle ? 'linkTitle' : '';\n\n function Label() {\n var showLabel = slots.label || isDef(label);\n\n if (showLabel) {\n return h(\"div\", {\n \"class\": [bem('label'), props.labelClass]\n }, [slots.label ? slots.label() : label]);\n }\n }\n\n function Title() {\n if (showTitle) {\n var left = isValueLeft ? 'title-auto' : bem('title');\n return h(\"div\", {\n \"class\": [left, props.titleClass],\n \"style\": props.titleStyle\n }, [slots.title ? slots.title() : h(\"span\", {\n \"class\": linkTitleCls\n }, [title])]);\n }\n }\n\n function Value() {\n var showValue = slots.default || isDef(value);\n var left = isValueLeft ? 'value-left' : '';\n var adjoinRight = !isLink && !slots['right-icon'];\n\n if (showValue) {\n return h(\"div\", {\n \"class\": [bem('value', {\n alone: !showTitle,\n 'adjoin-right': adjoinRight\n }), props.valueClass, left]\n }, [slots.default ? slots.default() : h(\"span\", [value])]);\n }\n }\n\n function LeftIcon() {\n if (slots.icon) {\n return slots.icon();\n }\n\n if (icon) {\n return h(Icon, {\n \"class\": bem('left-icon'),\n \"attrs\": {\n \"name\": icon,\n \"classPrefix\": props.iconPrefix\n }\n });\n }\n }\n\n function bigIconRender() {\n if (bigIcon) {\n return h(\"div\", {\n \"class\": bem('big-icon')\n }, [h(\"van-image\", {\n \"attrs\": {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"radius\": \"6px\",\n \"src\": bigIcon\n }\n })]);\n }\n }\n\n function RightIcon() {\n var rightIconSlot = slots['right-icon'];\n\n if (rightIconSlot) {\n var el = rightIconSlot();\n\n if (Array.isArray(el) && el.length && el[0].data) {\n el[0].data.class = el[0].data.class || [];\n el[0].data.class = [].concat(el[0].data.class, [bem('right-icon')]);\n }\n\n return el;\n }\n\n if (isLink) {\n var arrowDirection = props.arrowDirection;\n return h(Icon, {\n \"class\": bem('right-icon'),\n \"attrs\": {\n \"name\": arrowDirection ? \"cap-arrow-\" + arrowDirection : 'cap-arrow'\n }\n });\n }\n }\n\n function onClick(event) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n }\n\n var clickable = isLink || props.clickable;\n var classes = {\n clickable: clickable,\n center: props.center,\n required: props.required,\n borderless: !props.border\n };\n\n if (size) {\n classes[size] = size;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem(classes),\n \"attrs\": {\n \"role\": clickable ? 'button' : null,\n \"tabindex\": clickable ? 0 : null\n },\n \"on\": {\n \"click\": onClick\n }\n }, inherit(ctx)]), [bigIconRender(), h(\"div\", {\n \"class\": [bem('flexrow'), {\n 'is-big-icon-row': bigIcon\n }]\n }, [h(\"div\", {\n \"class\": [bem('flexbox')]\n }, [LeftIcon(), Title(), Value(), RightIcon(), slots.extra == null ? void 0 : slots.extra()]), Label()])]);\n}\n\nCell.props = _extends({}, cellProps, routeProps);\nexport default createComponent(Cell);","import { isServer } from '..';\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}","/**\n * Hack for iOS12 page scroll\n * https://developers.weixin.qq.com/community/develop/doc/00044ae90742f8c82fb78fcae56800\n */\nimport { isIOS as checkIsIOS } from '../validate/system';\nimport { getRootScrollTop, setRootScrollTop } from './scroll';\nvar isIOS = checkIsIOS();\n/* istanbul ignore next */\n\nexport function resetScroll() {\n if (isIOS) {\n setRootScrollTop(getRootScrollTop());\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\";\n// Utils\nimport { resetScroll } from '../utils/dom/reset-scroll';\nimport { formatNumber } from '../utils/format/number';\nimport { preventDefault } from '../utils/dom/event';\nimport { isDef, addUnit, isObject, isPromise, isFunction, createNamespace } from '../utils'; // Components\n\nimport Icon from '../icon';\nimport Cell from '../cell';\nimport { cellProps } from '../cell/shared';\n\nvar _createNamespace = createNamespace('field'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n inheritAttrs: false,\n provide: function provide() {\n return {\n vanField: this\n };\n },\n inject: {\n vanForm: {\n default: null\n }\n },\n props: _extends({}, cellProps, {\n name: String,\n rules: Array,\n disabled: Boolean,\n readonly: Boolean,\n autosize: [Boolean, Object],\n leftIcon: String,\n rightIcon: String,\n clearable: Boolean,\n formatter: Function,\n maxlength: [Number, String],\n labelWidth: [Number, String],\n labelClass: null,\n labelAlign: String,\n inputAlign: String,\n placeholder: String,\n errorMessage: String,\n errorMessageAlign: String,\n showWordLimit: Boolean,\n direction: {\n type: String,\n default: 'row'\n },\n value: {\n type: [Number, String],\n default: ''\n },\n type: {\n type: String,\n default: 'text'\n },\n error: {\n type: Boolean,\n default: null\n },\n colon: {\n type: Boolean,\n default: null\n },\n clearTrigger: {\n type: String,\n default: 'focus'\n },\n formatTrigger: {\n type: String,\n default: 'onChange'\n }\n }),\n data: function data() {\n return {\n focused: false,\n validateFailed: false,\n validateMessage: ''\n };\n },\n watch: {\n value: function value() {\n this.updateValue(this.value);\n this.resetValidation();\n this.validateWithTrigger('onChange');\n this.$nextTick(this.adjustSize);\n }\n },\n mounted: function mounted() {\n this.updateValue(this.value, this.formatTrigger);\n this.$nextTick(this.adjustSize);\n\n if (this.vanForm) {\n this.vanForm.addField(this);\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (this.vanForm) {\n this.vanForm.removeField(this);\n }\n },\n computed: {\n showClear: function showClear() {\n if (this.clearable && !this.readonly) {\n var hasValue = isDef(this.value) && this.value !== '';\n var trigger = this.clearTrigger === 'always' || this.clearTrigger === 'focus' && this.focused;\n return hasValue && trigger;\n }\n },\n showError: function showError() {\n if (this.error !== null) {\n return this.error;\n }\n\n if (this.vanForm && this.vanForm.showError && this.validateFailed) {\n return true;\n }\n },\n listeners: function listeners() {\n return _extends({}, this.$listeners, {\n blur: this.onBlur,\n focus: this.onFocus,\n input: this.onInput,\n click: this.onClickInput,\n keypress: this.onKeypress\n });\n },\n labelStyle: function labelStyle() {\n var labelWidth = this.getProp('labelWidth');\n\n if (labelWidth) {\n return {\n width: addUnit(labelWidth)\n };\n }\n },\n formValue: function formValue() {\n if (this.children && (this.$scopedSlots.input || this.$slots.input)) {\n return this.children.value;\n }\n\n return this.value;\n }\n },\n methods: {\n // @exposed-api\n focus: function focus() {\n if (this.$refs.input) {\n this.$refs.input.focus();\n }\n },\n // @exposed-api\n blur: function blur() {\n if (this.$refs.input) {\n this.$refs.input.blur();\n }\n },\n runValidator: function runValidator(value, rule) {\n return new Promise(function (resolve) {\n var returnVal = rule.validator(value, rule);\n\n if (isPromise(returnVal)) {\n return returnVal.then(resolve);\n }\n\n resolve(returnVal);\n });\n },\n isEmptyValue: function isEmptyValue(value) {\n if (Array.isArray(value)) {\n return !value.length;\n }\n\n if (value === 0) {\n return false;\n }\n\n return !value;\n },\n runSyncRule: function runSyncRule(value, rule) {\n if (rule.required && this.isEmptyValue(value)) {\n return false;\n }\n\n if (rule.pattern && !rule.pattern.test(value)) {\n return false;\n }\n\n return true;\n },\n getRuleMessage: function getRuleMessage(value, rule) {\n var message = rule.message;\n\n if (isFunction(message)) {\n return message(value, rule);\n }\n\n return message;\n },\n runRules: function runRules(rules) {\n var _this = this;\n\n return rules.reduce(function (promise, rule) {\n return promise.then(function () {\n if (_this.validateFailed) {\n return;\n }\n\n var value = _this.formValue;\n\n if (rule.formatter) {\n value = rule.formatter(value, rule);\n }\n\n if (!_this.runSyncRule(value, rule)) {\n _this.validateFailed = true;\n _this.validateMessage = _this.getRuleMessage(value, rule);\n return;\n }\n\n if (rule.validator) {\n return _this.runValidator(value, rule).then(function (result) {\n if (result === false) {\n _this.validateFailed = true;\n _this.validateMessage = _this.getRuleMessage(value, rule);\n }\n });\n }\n });\n }, Promise.resolve());\n },\n validate: function validate(rules) {\n var _this2 = this;\n\n if (rules === void 0) {\n rules = this.rules;\n }\n\n return new Promise(function (resolve) {\n if (!rules) {\n resolve();\n }\n\n _this2.resetValidation();\n\n _this2.runRules(rules).then(function () {\n if (_this2.validateFailed) {\n resolve({\n name: _this2.name,\n message: _this2.validateMessage\n });\n } else {\n resolve();\n }\n });\n });\n },\n validateWithTrigger: function validateWithTrigger(trigger) {\n if (this.vanForm && this.rules) {\n var defaultTrigger = this.vanForm.validateTrigger === trigger;\n var rules = this.rules.filter(function (rule) {\n if (rule.trigger) {\n return rule.trigger === trigger;\n }\n\n return defaultTrigger;\n });\n this.validate(rules);\n }\n },\n resetValidation: function resetValidation() {\n if (this.validateFailed) {\n this.validateFailed = false;\n this.validateMessage = '';\n }\n },\n updateValue: function updateValue(value, trigger) {\n if (trigger === void 0) {\n trigger = 'onChange';\n }\n\n value = isDef(value) ? String(value) : ''; // native maxlength have incorrect line-break counting\n // see: https://github.com/youzan/vant/issues/5033\n\n var maxlength = this.maxlength;\n\n if (isDef(maxlength) && value.length > maxlength) {\n if (this.value && this.value.length === +maxlength) {\n value = this.value;\n } else {\n value = value.slice(0, maxlength);\n }\n }\n\n if (this.type === 'number' || this.type === 'digit') {\n var isNumber = this.type === 'number';\n value = formatNumber(value, isNumber, isNumber);\n }\n\n if (this.formatter && trigger === this.formatTrigger) {\n value = this.formatter(value);\n }\n\n var input = this.$refs.input;\n\n if (input && value !== input.value) {\n input.value = value;\n }\n\n if (value !== this.value) {\n this.$emit('input', value);\n }\n },\n onInput: function onInput(event) {\n // not update v-model when composing\n if (event.target.composing) {\n return;\n }\n\n this.updateValue(event.target.value);\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n this.$emit('focus', event); // readonly not work in lagacy mobile 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.updateValue(this.value, 'onBlur');\n this.$emit('blur', event);\n this.validateWithTrigger('onBlur');\n resetScroll();\n },\n onClick: function onClick(event) {\n this.$emit('click', event);\n },\n onClickInput: function onClickInput(event) {\n this.$emit('click-input', event);\n },\n onClickLeftIcon: function onClickLeftIcon(event) {\n this.$emit('click-left-icon', event);\n },\n onClickRightIcon: function onClickRightIcon(event) {\n this.$emit('click-right-icon', event);\n },\n onClear: function onClear(event) {\n preventDefault(event);\n this.$emit('input', '');\n this.$emit('clear', event);\n },\n onKeypress: function onKeypress(event) {\n var ENTER_CODE = 13;\n\n if (event.keyCode === ENTER_CODE) {\n var submitOnEnter = this.getProp('submitOnEnter');\n\n if (!submitOnEnter && this.type !== 'textarea') {\n preventDefault(event);\n } // trigger blur after click keyboard search button\n\n\n if (this.type === 'search') {\n this.blur();\n }\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 (isObject(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 genInput: function genInput() {\n var h = this.$createElement;\n var type = this.type;\n var inputSlot = this.slots('input');\n var inputAlign = this.getProp('inputAlign');\n\n if (inputSlot) {\n return h(\"div\", {\n \"class\": bem('control', [inputAlign, 'custom']),\n \"on\": {\n \"click\": this.onClickInput\n }\n }, [inputSlot]);\n }\n\n var inputProps = {\n ref: 'input',\n class: bem('control', [inputAlign]),\n domProps: {\n value: this.value\n },\n attrs: _extends({}, this.$attrs, {\n name: this.name,\n disabled: this.disabled,\n readonly: this.readonly,\n placeholder: this.placeholder\n }),\n on: this.listeners,\n // add model directive to skip IME composition\n directives: [{\n name: 'model',\n value: this.value\n }]\n };\n\n if (type === 'textarea') {\n return h(\"textarea\", _mergeJSXProps([{\n \"class\": bem('type-textarea', {\n 'show-clear': this.showClear\n })\n }, inputProps]));\n }\n\n var inputType = type;\n var inputMode; // type=\"number\" is weired in iOS, and can't prevent dot in Android\n // so use inputmode to set keyboard in mordern browers\n\n if (type === 'number') {\n inputType = 'text';\n inputMode = 'decimal';\n }\n\n if (type === 'digit') {\n inputType = 'tel';\n inputMode = 'numeric';\n }\n\n return h(\"input\", _mergeJSXProps2([{\n \"class\": bem('type-input'),\n \"attrs\": {\n \"type\": inputType,\n \"inputmode\": inputMode\n }\n }, inputProps]));\n },\n genLeftIcon: function genLeftIcon() {\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 \"classPrefix\": this.iconPrefix\n }\n })]);\n }\n },\n genRightIcon: function genRightIcon() {\n var h = this.$createElement;\n var slots = this.slots;\n var showRightIcon = slots('right-icon') || this.rightIcon;\n\n if (showRightIcon) {\n return h(\"div\", {\n \"class\": bem('right-icon'),\n \"on\": {\n \"click\": this.onClickRightIcon\n }\n }, [slots('right-icon') || h(Icon, {\n \"attrs\": {\n \"name\": this.rightIcon,\n \"classPrefix\": this.iconPrefix\n }\n })]);\n }\n },\n genWordLimit: function genWordLimit() {\n var h = this.$createElement;\n\n if (this.showWordLimit && this.maxlength) {\n var count = (this.value || '').length;\n var isFull = count === Number(this.maxlength);\n return h(\"div\", {\n \"class\": bem('word-limit', {\n 'is-full': isFull\n })\n }, [h(\"span\", {\n \"class\": bem('word-num')\n }, [count, \"/\", this.maxlength])]);\n }\n },\n genMessage: function genMessage() {\n var h = this.$createElement;\n var errorMode = this.getProp('errorMode');\n\n if (errorMode !== 'controller') {\n return;\n }\n\n if (this.vanForm && this.vanForm.showErrorMessage === false) {\n return;\n }\n\n var message = this.errorMessage || this.validateMessage;\n\n if (message) {\n var errorMessageAlign = this.getProp('errorMessageAlign');\n return h(\"div\", {\n \"class\": bem('error-message', errorMessageAlign)\n }, [message]);\n }\n },\n getProp: function getProp(key) {\n if (isDef(this[key])) {\n return this[key];\n }\n\n if (this.vanForm && isDef(this.vanForm[key])) {\n return this.vanForm[key];\n }\n },\n genLabel: function genLabel() {\n var h = this.$createElement;\n var colon = this.getProp('colon') ? ':' : '';\n var errorMode = this.getProp('errorMode');\n var message = this.errorMessage || this.validateMessage;\n\n if (this.slots('label')) {\n if (errorMode === 'label' && message) {\n return h(\"span\", {\n \"class\": bem('label--error')\n }, [[this.slots('label'), colon]]);\n }\n\n return [this.slots('label'), colon];\n }\n\n if (this.label) {\n if (errorMode === 'label' && message) {\n return h(\"span\", {\n \"class\": bem('label--error')\n }, [this.label + colon]);\n }\n\n return h(\"span\", [this.label + colon]);\n }\n }\n },\n render: function render() {\n var _bem;\n\n var h = arguments[0];\n var slots = this.slots;\n var errorMode = this.getProp('errorMode');\n var labelAlign = this.getProp('labelAlign');\n var direction = this.getProp('direction');\n var scopedSlots = {\n icon: this.genLeftIcon\n };\n var Label = this.genLabel();\n\n if (Label) {\n scopedSlots.title = function () {\n return Label;\n };\n }\n\n var extra = this.slots('extra');\n\n if (extra) {\n scopedSlots.extra = function () {\n return extra;\n };\n }\n\n return h(Cell, {\n \"attrs\": {\n \"icon\": this.leftIcon,\n \"size\": this.size,\n \"center\": this.center,\n \"border\": this.border,\n \"isLink\": this.isLink,\n \"required\": this.required,\n \"clickable\": this.clickable,\n \"titleStyle\": this.labelStyle,\n \"valueClass\": bem('value'),\n \"titleClass\": [bem('label', labelAlign), this.labelClass],\n \"arrowDirection\": this.arrowDirection\n },\n \"scopedSlots\": scopedSlots,\n \"class\": bem((_bem = {\n error: this.showError,\n 'label-error': errorMode === 'label',\n column: direction === 'column',\n disabled: this.disabled\n }, _bem[\"label-\" + labelAlign] = labelAlign, _bem['min-height'] = this.type === 'textarea' && !this.autosize, _bem)),\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('body')\n }, [this.genInput(), this.showClear && h(Icon, {\n \"attrs\": {\n \"name\": \"cap-clear\"\n },\n \"class\": bem('clear'),\n \"on\": {\n \"touchstart\": this.onClear\n }\n }), this.genRightIcon(), slots('button') && h(\"div\", {\n \"class\": bem('button')\n }, [slots('button')])]), this.genWordLimit(), this.genMessage()]);\n }\n});","var lockCount = 0;\nexport function lockClick(lock) {\n if (lock) {\n if (!lockCount) {\n document.body.classList.add('van-toast--unclickable');\n }\n\n lockCount++;\n } else {\n lockCount--;\n\n if (!lockCount) {\n document.body.classList.remove('van-toast--unclickable');\n }\n }\n}","// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { lockClick } from './lock-click'; // Mixins\n\nimport { PopupMixin } from '../mixins/popup'; // Components\n\nimport Icon from '../icon';\nimport Loading from '../loading';\n\nvar _createNamespace = createNamespace('toast'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n icon: String,\n className: null,\n iconPrefix: String,\n loadingType: String,\n forbidClick: Boolean,\n closeOnClick: Boolean,\n message: [Number, String],\n type: {\n type: String,\n default: 'text'\n },\n position: {\n type: String,\n default: 'middle'\n },\n transition: {\n type: String,\n default: 'van-fade'\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.toggleClickable();\n },\n destroyed: function destroyed() {\n this.toggleClickable();\n },\n computed: {\n hasIcon: function hasIcon() {\n var icon = this.icon,\n type = this.type;\n return icon || type === 'success' || type === 'fail';\n },\n hasMessage: function hasMessage() {\n var message = this.message;\n return !(!isDef(message) || message === '');\n },\n onlyIcon: function onlyIcon() {\n return this.hasIcon && !this.hasMessage ? 'onlyIcon' : '';\n }\n },\n watch: {\n value: 'toggleClickable',\n forbidClick: 'toggleClickable'\n },\n methods: {\n onClick: function onClick() {\n if (this.closeOnClick) {\n this.close();\n }\n },\n toggleClickable: function toggleClickable() {\n var clickable = this.value && this.forbidClick;\n\n if (this.clickable !== clickable) {\n this.clickable = clickable;\n lockClick(clickable);\n }\n },\n\n /* istanbul ignore next */\n onAfterEnter: function onAfterEnter() {\n this.$emit('opened');\n\n if (this.onOpened) {\n this.onOpened();\n }\n },\n onAfterLeave: function onAfterLeave() {\n this.$emit('closed');\n },\n genIcon: function genIcon() {\n var h = this.$createElement;\n var icon = this.icon,\n type = this.type,\n iconPrefix = this.iconPrefix,\n loadingType = this.loadingType;\n\n if (this.hasIcon) {\n return h(Icon, {\n \"class\": bem('icon'),\n \"attrs\": {\n \"classPrefix\": iconPrefix,\n \"name\": icon || type\n }\n });\n }\n\n if (type === 'loading') {\n return h(Loading, {\n \"class\": bem('loading'),\n \"attrs\": {\n \"type\": loadingType\n }\n });\n }\n },\n genMessage: function genMessage() {\n var h = this.$createElement;\n var type = this.type,\n message = this.message;\n\n if (!this.hasMessage || type === 'loading') {\n return;\n }\n\n if (this.hasIcon) {\n return h(\"div\", {\n \"class\": ['van-multi-ellipsis--l2', bem('text')]\n }, [message]);\n }\n\n if (type === 'html') {\n return h(\"div\", {\n \"class\": [bem('text')],\n \"domProps\": {\n \"innerHTML\": message\n }\n });\n }\n\n return h(\"div\", {\n \"class\": [bem('text')]\n }, [message]);\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition\n },\n \"on\": {\n \"afterEnter\": this.onAfterEnter,\n \"afterLeave\": this.onAfterLeave\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"class\": [bem([this.position, (_ref = {}, _ref[this.type] = !this.icon, _ref)]), this.className, this.hasIcon && 'hasIcon'],\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genIcon(), this.genMessage()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VueToast from './Toast';\nimport { isObject, isServer } from '../utils';\nimport { removeNode } from '../utils/dom/node';\nvar defaultOptions = {\n icon: '',\n type: 'text',\n // @deprecated\n mask: false,\n value: true,\n message: '',\n className: '',\n overlay: false,\n onClose: null,\n onOpened: null,\n duration: 2000,\n iconPrefix: undefined,\n position: 'middle',\n transition: 'van-fade',\n forbidClick: false,\n loadingType: undefined,\n getContainer: 'body',\n overlayStyle: null,\n closeOnClick: false,\n closeOnClickOverlay: false\n}; // default options of specific type\n\nvar defaultOptionsMap = {};\nvar queue = [];\nvar multiple = false;\n\nvar currentOptions = _extends({}, defaultOptions);\n\nfunction parseOptions(message) {\n if (isObject(message)) {\n return message;\n }\n\n return {\n message: message\n };\n}\n\nfunction isInDocument(element) {\n return document.body.contains(element);\n}\n\nfunction createInstance() {\n /* istanbul ignore if */\n if (isServer) {\n return {};\n }\n\n queue = queue.filter(function (item) {\n return !item.$el.parentNode || isInDocument(item.$el);\n });\n\n if (!queue.length || multiple) {\n var toast = new (Vue.extend(VueToast))({\n el: document.createElement('div')\n });\n toast.$on('input', function (value) {\n toast.value = value;\n });\n queue.push(toast);\n }\n\n return queue[queue.length - 1];\n} // transform toast options to popup props\n\n\nfunction transformOptions(options) {\n return _extends({}, options, {\n overlay: options.mask || options.overlay,\n mask: undefined,\n duration: undefined\n });\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 = parseOptions(options);\n options = _extends({}, currentOptions, defaultOptionsMap[options.type || currentOptions.type], options);\n\n if (process.env.NODE_ENV === 'development' && options.mask) {\n console.warn('[Vant] Toast: \"mask\" option is deprecated, use \"overlay\" option instead.');\n }\n\n options.clear = function () {\n toast.value = false;\n\n if (options.onClose) {\n options.onClose();\n options.onClose = null;\n }\n\n if (multiple && !isServer) {\n toast.$on('closed', function () {\n clearTimeout(toast.timer);\n queue = queue.filter(function (item) {\n return item !== toast;\n });\n removeNode(toast.$el);\n toast.$destroy();\n });\n }\n };\n\n _extends(toast, transformOptions(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 (type, options) {\n if (typeof type === 'string') {\n defaultOptionsMap[type] = options;\n } else {\n _extends(currentOptions, type);\n }\n};\n\nToast.resetDefaultOptions = function (type) {\n if (typeof type === 'string') {\n defaultOptionsMap[type] = null;\n } else {\n currentOptions = _extends({}, defaultOptions);\n defaultOptionsMap = {};\n }\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\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { BORDER_SURROUND, WHITE } from '../utils/constant';\nimport { routeProps, functionalRoute } from '../utils/router'; // Components\n\nimport Icon from '../icon';\nimport Loading from '../loading'; // Types\n\nvar _createNamespace = createNamespace('button'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Button(h, props, slots, ctx) {\n var _ref;\n\n var tag = props.tag,\n icon = props.icon,\n type = props.type,\n color = props.color,\n plain = props.plain,\n disabled = props.disabled,\n loading = props.loading,\n hairline = props.hairline,\n loadingText = props.loadingText,\n border = props.border,\n iconPosition = props.iconPosition;\n var style = {}; // border为false的时候没有边框\n\n if (!border) {\n style.border = 0;\n }\n\n if (color) {\n style.color = plain ? color : WHITE;\n\n if (!plain) {\n // Use background instead of backgroundColor to make linear-gradient work\n style.background = color;\n } // hide border when color is linear-gradient\n\n\n if (color.indexOf('gradient') !== -1) {\n style.border = 0;\n } else {\n style.borderColor = color;\n }\n }\n\n function onClick(event) {\n if (!loading && !disabled) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n }\n }\n\n function onTouchstart(event) {\n emit(ctx, 'touchstart', event);\n }\n\n var classes = [bem([type, props.size, {\n plain: plain,\n loading: loading,\n disabled: disabled,\n hairline: hairline,\n block: props.block,\n round: props.round,\n square: props.square,\n text: plain && !border\n }]), (_ref = {}, _ref[BORDER_SURROUND] = hairline, _ref)];\n\n function renderIcon() {\n if (loading) {\n return slots.loading ? slots.loading() : h(Loading, {\n \"class\": bem('loading'),\n \"attrs\": {\n \"size\": props.loadingSize,\n \"type\": props.loadingType,\n \"color\": \"currentColor\"\n }\n });\n }\n\n if (icon) {\n return h(Icon, {\n \"attrs\": {\n \"name\": icon,\n \"classPrefix\": props.iconPrefix\n },\n \"class\": bem('icon')\n });\n }\n }\n\n function renderContent() {\n var content = [];\n\n if (iconPosition === 'left') {\n content.push(renderIcon());\n }\n\n var text;\n\n if (loading) {\n text = loadingText;\n } else {\n text = slots.default ? slots.default() : props.text;\n }\n\n if (text) {\n content.push(h(\"span\", {\n \"class\": bem('text')\n }, [text]));\n }\n\n if (iconPosition === 'right') {\n content.push(renderIcon());\n }\n\n return content;\n }\n\n return h(tag, _mergeJSXProps([{\n \"style\": style,\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)]), [h(\"div\", {\n \"class\": bem('content')\n }, [renderContent()])]);\n}\n\nButton.props = _extends({}, routeProps, {\n text: String,\n icon: String,\n color: String,\n block: Boolean,\n plain: Boolean,\n round: Boolean,\n square: Boolean,\n loading: Boolean,\n hairline: Boolean,\n disabled: Boolean,\n iconPrefix: String,\n nativeType: String,\n loadingText: String,\n loadingType: String,\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 border: {\n type: Boolean,\n default: true\n },\n iconPosition: {\n type: String,\n default: 'left'\n }\n});\nexport default createComponent(Button);","function flattenVNodes(vnodes) {\n var result = [];\n\n function traverse(vnodes) {\n vnodes.forEach(function (vnode) {\n result.push(vnode);\n\n if (vnode.componentInstance) {\n traverse(vnode.componentInstance.$children.map(function (item) {\n return item.$vnode;\n }));\n }\n\n if (vnode.children) {\n traverse(vnode.children);\n }\n });\n }\n\n traverse(vnodes);\n return result;\n} // sort children instances by vnodes order\n\n\nexport function sortChildren(children, parent) {\n var componentOptions = parent.$vnode.componentOptions;\n\n if (!componentOptions || !componentOptions.children) {\n return;\n }\n\n var vnodes = flattenVNodes(componentOptions.children);\n children.sort(function (a, b) {\n return vnodes.indexOf(a.$vnode) - vnodes.indexOf(b.$vnode);\n });\n}","import { sortChildren } from '../utils/vnodes';\nexport function ChildrenMixin(_parent, options) {\n var _inject, _computed;\n\n if (options === void 0) {\n options = {};\n }\n\n var indexKey = options.indexKey || 'index';\n return {\n inject: (_inject = {}, _inject[_parent] = {\n default: null\n }, _inject),\n computed: (_computed = {\n parent: function parent() {\n if (this.disableBindRelation) {\n return null;\n }\n\n return this[_parent];\n }\n }, _computed[indexKey] = function () {\n this.bindRelation();\n\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n\n return null;\n }, _computed),\n watch: {\n disableBindRelation: function disableBindRelation(val) {\n if (!val) {\n this.bindRelation();\n }\n }\n },\n mounted: function mounted() {\n this.bindRelation();\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n if (this.parent) {\n this.parent.children = this.parent.children.filter(function (item) {\n return item !== _this;\n });\n }\n },\n methods: {\n bindRelation: function bindRelation() {\n if (!this.parent || this.parent.children.indexOf(this) !== -1) {\n return;\n }\n\n var children = [].concat(this.parent.children, [this]);\n sortChildren(children, this.parent);\n this.parent.children = children;\n }\n }\n };\n}\nexport function ParentMixin(parent) {\n return {\n provide: function provide() {\n var _ref;\n\n return _ref = {}, _ref[parent] = this, _ref;\n },\n data: function data() {\n return {\n children: []\n };\n }\n };\n}","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('goods-action'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanGoodsAction')],\n props: {\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem({\n unfit: !this.safeAreaInsetBottom\n })\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VanDialog from './Dialog';\nimport { isServer } from '../utils';\nvar instance;\n\nfunction isInDocument(element) {\n return document.body.contains(element);\n}\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 width: '',\n theme: null,\n message: '',\n overlay: true,\n className: '',\n allowHtml: true,\n lockScroll: true,\n transition: 'van-dialog-bounce',\n beforeClose: null,\n overlayClass: '',\n overlayStyle: null,\n messageAlign: '',\n getContainer: 'body',\n cancelButtonText: '',\n cancelButtonColor: null,\n confirmButtonText: '',\n confirmButtonColor: null,\n assistButtonText: '',\n assistButtonColor: null,\n showConfirmButton: true,\n showCancelButton: false,\n showAssistButton: false,\n closeOnPopstate: true,\n closeOnClickOverlay: false,\n showCloseIcon: 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\nDialog.Component = VanDialog;\nVue.prototype.$dialog = Dialog;\nexport default Dialog;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { route, routeProps } from '../utils/router';\nimport { ChildrenMixin } from '../mixins/relation';\nimport Button from '../button';\n\nvar _createNamespace = createNamespace('goods-action-button'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanGoodsAction')],\n props: _extends({}, routeProps, {\n type: String,\n text: String,\n icon: String,\n color: String,\n loading: Boolean,\n disabled: Boolean\n }),\n computed: {\n isFirst: function isFirst() {\n var prev = this.parent && this.parent.children[this.index - 1];\n return !prev || prev.$options.name !== this.$options.name;\n },\n isLast: function isLast() {\n var next = this.parent && this.parent.children[this.index + 1];\n return !next || next.$options.name !== this.$options.name;\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n route(this.$router, this);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(Button, {\n \"class\": bem([{\n first: this.isFirst,\n last: this.isLast\n }, this.type]),\n \"attrs\": {\n \"size\": \"large\",\n \"type\": this.type,\n \"icon\": this.icon,\n \"color\": this.color,\n \"loading\": this.loading,\n \"disabled\": this.disabled\n },\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots() || this.text]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { createNamespace, addUnit } from '../utils';\nimport { PopupMixin } from '../mixins/popup';\nimport { BORDER_TOP, BORDER_LEFT } from '../utils/constant';\nimport Button from '../button';\nimport Icon from '../icon';\nimport GoodsAction from '../goods-action';\nimport GoodsActionButton from '../goods-action-button';\n\nvar _createNamespace = createNamespace('dialog'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n title: String,\n theme: String,\n width: [Number, 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 showCloseIcon: Boolean,\n showAssistButton: Boolean,\n assistButtonText: String,\n assistButtonColor: String,\n overlay: {\n type: Boolean,\n default: true\n },\n allowHtml: {\n type: Boolean,\n default: true\n },\n transition: {\n type: String,\n default: 'van-dialog-bounce'\n },\n showConfirmButton: {\n type: Boolean,\n default: true\n },\n closeOnPopstate: {\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 assist: 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); // show not trigger close event when hidden\n\n if (!this.value) {\n return;\n }\n\n if (this.beforeClose) {\n this.loading[action] = true;\n this.beforeClose(action, function (state) {\n if (state !== false && _this.loading[action]) {\n _this.onClose(action);\n }\n\n _this.loading.confirm = false;\n _this.loading.cancel = false;\n _this.loading.assist = 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 onOpened: function onOpened() {\n this.$emit('opened');\n },\n onClosed: function onClosed() {\n this.$emit('closed');\n },\n genRoundButtons: function genRoundButtons() {\n var _this2 = this;\n\n var h = this.$createElement;\n return h(GoodsAction, {\n \"class\": bem('footer')\n }, [this.showCancelButton && h(GoodsActionButton, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"warning\",\n \"text\": this.cancelButtonText || t('cancel'),\n \"color\": this.cancelButtonColor,\n \"loading\": this.loading.cancel\n },\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": function click() {\n _this2.handleAction('cancel');\n }\n }\n }), this.showConfirmButton && h(GoodsActionButton, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"danger\",\n \"text\": this.confirmButtonText || t('confirm'),\n \"color\": this.confirmButtonColor,\n \"loading\": this.loading.confirm\n },\n \"class\": bem('confirm'),\n \"on\": {\n \"click\": function click() {\n _this2.handleAction('confirm');\n }\n }\n })]);\n },\n genButton: function genButton(type, showLeftBorder) {\n var _ref,\n _this3 = this;\n\n var h = this.$createElement;\n return h(Button, {\n \"attrs\": {\n \"plain\": true,\n \"size\": \"large\",\n \"loading\": this.loading[type],\n \"text\": this[type + \"ButtonText\"] || t(type)\n },\n \"class\": [bem(type), (_ref = {}, _ref[BORDER_LEFT] = showLeftBorder, _ref)],\n \"style\": {\n color: this[type + \"ButtonColor\"]\n },\n \"on\": {\n \"click\": function click() {\n _this3.handleAction(type);\n }\n }\n });\n },\n genButtons: function genButtons() {\n var h = this.$createElement;\n var multiple = this.showConfirmButton && (this.showCancelButton || this.showAssistButton);\n var vertical = this.showCancelButton && this.showConfirmButton && this.showAssistButton;\n return h(\"div\", {\n \"class\": [BORDER_TOP, bem('footer'), {\n buttons: multiple\n }, {\n vertical: vertical\n }]\n }, [this.showCancelButton && this.genButton('cancel'), this.showAssistButton && this.genButton('assist'), this.showConfirmButton && this.genButton('confirm', !vertical && this.showCancelButton)]);\n },\n genContent: function genContent(hasTitle, messageSlot) {\n var h = this.$createElement;\n\n if (messageSlot) {\n return h(\"div\", {\n \"class\": bem('content')\n }, [messageSlot]);\n }\n\n var message = this.message,\n messageAlign = this.messageAlign;\n\n if (message) {\n var _bem, _domProps;\n\n var data = {\n class: bem('message', (_bem = {\n 'has-title': hasTitle\n }, _bem[messageAlign] = messageAlign, _bem)),\n domProps: (_domProps = {}, _domProps[this.allowHtml ? 'innerHTML' : 'textContent'] = message, _domProps)\n };\n return h(\"div\", {\n \"class\": bem('content', {\n isolated: !hasTitle\n })\n }, [h(\"div\", _mergeJSXProps([{}, data]))]);\n }\n }\n },\n render: function render() {\n var _this4 = this;\n\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n var message = this.message,\n showCloseIcon = this.showCloseIcon;\n var messageSlot = this.slots();\n var title = this.slots('title') || this.title;\n var Title = title && h(\"div\", {\n \"class\": bem('header', {\n isolated: !message && !messageSlot\n })\n }, [title]);\n var Close = Title && showCloseIcon && h(Icon, {\n \"attrs\": {\n \"name\": \"cross\"\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": function click() {\n _this4.handleAction('cancel');\n }\n }\n });\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition\n },\n \"on\": {\n \"afterEnter\": this.onOpened,\n \"afterLeave\": this.onClosed\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"attrs\": {\n \"role\": \"dialog\",\n \"aria-labelledby\": this.title || message\n },\n \"class\": [bem([this.theme]), this.className],\n \"style\": {\n width: addUnit(this.width)\n }\n }, [Close, Title, this.genContent(title, messageSlot), this.theme === 'round-button' ? this.genRoundButtons() : this.genButtons()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { isAndroid } from '../utils/validate/system'; // Components\n\nimport Cell from '../cell';\nimport Field from '../field';\n\nvar _createNamespace = createNamespace('address-edit-detail'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nvar android = isAndroid();\nexport default createComponent({\n props: {\n value: String,\n errorMessage: String,\n focused: Boolean,\n detailRows: [Number, String],\n searchResult: Array,\n detailMaxlength: [Number, String],\n showSearchResult: Boolean\n },\n computed: {\n shouldShowSearchResult: function shouldShowSearchResult() {\n return this.focused && this.searchResult && this.showSearchResult;\n }\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 genFinish: function genFinish() {\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 genSearchResult: function genSearchResult() {\n var _this = this;\n\n var h = this.$createElement;\n var value = this.value,\n shouldShowSearchResult = this.shouldShowSearchResult,\n searchResult = this.searchResult;\n\n if (shouldShowSearchResult) {\n return searchResult.map(function (express) {\n return h(Cell, {\n \"key\": express.name + express.address,\n \"attrs\": {\n \"clickable\": true,\n \"border\": false,\n \"icon\": \"location-o\",\n \"label\": express.address\n },\n \"class\": bem('search-item'),\n \"on\": {\n \"click\": function click() {\n _this.onSelect(express);\n }\n },\n \"scopedSlots\": {\n title: function title() {\n if (express.name) {\n var text = express.name.replace(value, \"\" + value + \"\");\n return h(\"div\", {\n \"domProps\": {\n \"innerHTML\": text\n }\n });\n }\n }\n }\n });\n });\n }\n }\n },\n render: function render() {\n var h = arguments[0];\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 \"value\": this.value,\n \"errorMessage\": this.errorMessage,\n \"border\": !this.shouldShowSearchResult,\n \"label\": t('label'),\n \"maxlength\": this.detailMaxlength,\n \"placeholder\": t('placeholder')\n },\n \"ref\": \"field\",\n \"scopedSlots\": {\n icon: this.genFinish\n },\n \"on\": _extends({}, this.$listeners)\n }), this.genSearchResult()]);\n }\n});","/**\n * Common Switch Props\n */\nexport var switchProps = {\n size: [Number, String],\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};","export var FieldMixin = {\n inject: {\n vanField: {\n default: null\n }\n },\n watch: {\n value: function value() {\n var field = this.vanField;\n\n if (field) {\n field.resetValidation();\n field.validateWithTrigger('onChange');\n }\n }\n },\n created: function created() {\n var field = this.vanField;\n\n if (field && !field.children) {\n field.children = this;\n }\n }\n};","// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { switchProps } from './shared'; // Mixins\n\nimport { FieldMixin } from '../mixins/field'; // Components\n\nimport Loading from '../loading';\n\nvar _createNamespace = createNamespace('switch'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [FieldMixin],\n props: switchProps,\n computed: {\n checked: function checked() {\n return this.value === this.activeValue;\n },\n style: function style() {\n return {\n fontSize: addUnit(this.size),\n backgroundColor: this.checked ? this.activeColor : this.inactiveColor\n };\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n\n if (!this.disabled && !this.loading) {\n var newValue = this.checked ? this.inactiveValue : this.activeValue;\n this.$emit('input', newValue);\n this.$emit('change', newValue);\n }\n },\n genLoading: function genLoading() {\n var h = this.$createElement;\n\n if (this.loading) {\n var color = this.checked ? this.activeColor : this.inactiveColor;\n return h(Loading, {\n \"class\": bem('loading'),\n \"attrs\": {\n \"color\": color\n }\n });\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var checked = this.checked,\n loading = this.loading,\n disabled = this.disabled;\n return h(\"div\", {\n \"class\": bem({\n on: checked,\n loading: loading,\n disabled: disabled\n }),\n \"attrs\": {\n \"role\": \"switch\",\n \"aria-checked\": String(checked)\n },\n \"style\": this.style,\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('node')\n }, [this.genLoading()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, isObject } from '../utils';\nimport { isMobile } from '../utils/validate/mobile'; // Components\n\nimport Area from '../area';\nimport Cell from '../cell';\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 Switch from '../switch';\n\nvar _createNamespace = createNamespace('address-edit'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[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};\n\nfunction isPostal(value) {\n return /^\\d{6}$/.test(value);\n}\n\nexport default createComponent({\n props: {\n areaList: Object,\n isSaving: Boolean,\n isDeleting: Boolean,\n validator: Function,\n showDelete: Boolean,\n showPostal: Boolean,\n searchResult: Array,\n telMaxlength: [Number, String],\n showSetDefault: Boolean,\n saveButtonText: String,\n areaPlaceholder: String,\n deleteButtonText: String,\n showSearchResult: Boolean,\n showArea: {\n type: Boolean,\n default: true\n },\n showDetail: {\n type: Boolean,\n default: true\n },\n disableArea: Boolean,\n detailRows: {\n type: [Number, String],\n default: 1\n },\n detailMaxlength: {\n type: [Number, String],\n default: 200\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 postalValidator: {\n type: Function,\n default: isPostal\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: '',\n name: '',\n areaCode: '',\n postalCode: '',\n addressDetail: ''\n }\n };\n },\n computed: {\n areaListLoaded: function areaListLoaded() {\n return isObject(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 // hide bottom field when use search && detail get focused\n hideBottomFields: function hideBottomFields() {\n var searchResult = this.searchResult;\n return searchResult && searchResult.length && this.detailFocused;\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] = '';\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 values = values.filter(function (value) {\n return !!value;\n });\n\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'];\n\n if (this.showArea) {\n items.push('areaCode');\n }\n\n if (this.showDetail) {\n items.push('addressDetail');\n }\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] = 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 && !this.postalValidator(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 // @exposed-api\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 genSetDefaultCell: function genSetDefaultCell(h) {\n var _this4 = this;\n\n if (this.showSetDefault) {\n var slots = {\n 'right-icon': function rightIcon() {\n return h(Switch, {\n \"attrs\": {\n \"size\": \"24\"\n },\n \"on\": {\n \"change\": function change(event) {\n _this4.$emit('change-default', event);\n }\n },\n \"model\": {\n value: _this4.data.isDefault,\n callback: function callback($$v) {\n _this4.$set(_this4.data, \"isDefault\", $$v);\n }\n }\n });\n }\n };\n return h(Cell, {\n \"directives\": [{\n name: \"show\",\n value: !this.hideBottomFields\n }],\n \"attrs\": {\n \"center\": true,\n \"title\": t('defaultAddress')\n },\n \"class\": bem('default'),\n \"scopedSlots\": slots\n });\n }\n\n return h();\n }\n },\n render: function render(h) {\n var _this5 = this;\n\n var data = this.data,\n errorInfo = this.errorInfo,\n disableArea = this.disableArea,\n hideBottomFields = this.hideBottomFields;\n\n var onFocus = function onFocus(name) {\n return function () {\n return _this5.onFocus(name);\n };\n };\n\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"class\": bem('fields')\n }, [h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"label\": t('name'),\n \"placeholder\": t('namePlaceholder'),\n \"errorMessage\": errorInfo.name\n },\n \"on\": {\n \"focus\": onFocus('name')\n },\n \"model\": {\n value: data.name,\n callback: function callback($$v) {\n _this5.$set(data, \"name\", $$v);\n }\n }\n }), h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"type\": \"tel\",\n \"label\": t('tel'),\n \"maxlength\": this.telMaxlength,\n \"placeholder\": t('telPlaceholder'),\n \"errorMessage\": errorInfo.tel\n },\n \"on\": {\n \"focus\": onFocus('tel')\n },\n \"model\": {\n value: data.tel,\n callback: function callback($$v) {\n _this5.$set(data, \"tel\", $$v);\n }\n }\n }), h(Field, {\n \"directives\": [{\n name: \"show\",\n value: this.showArea\n }],\n \"attrs\": {\n \"readonly\": true,\n \"clickable\": !disableArea,\n \"label\": t('area'),\n \"placeholder\": this.areaPlaceholder || t('areaPlaceholder'),\n \"errorMessage\": errorInfo.areaCode,\n \"rightIcon\": !disableArea ? 'arrow' : null,\n \"value\": this.areaText\n },\n \"on\": {\n \"focus\": onFocus('areaCode'),\n \"click\": function click() {\n _this5.$emit('click-area');\n\n _this5.showAreaPopup = !disableArea;\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 \"errorMessage\": errorInfo.addressDetail,\n \"detailRows\": this.detailRows,\n \"detailMaxlength\": this.detailMaxlength,\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 _this5.$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 \"errorMessage\": errorInfo.postalCode\n },\n \"on\": {\n \"focus\": onFocus('postalCode')\n },\n \"model\": {\n value: data.postalCode,\n callback: function callback($$v) {\n _this5.$set(data, \"postalCode\", $$v);\n }\n }\n }), this.slots()]), this.genSetDefaultCell(h), h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: !hideBottomFields\n }],\n \"class\": bem('buttons')\n }, [h(Button, {\n \"attrs\": {\n \"block\": true,\n \"round\": 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 \"round\": 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 \"round\": true,\n \"position\": \"bottom\",\n \"lazyRender\": false,\n \"getContainer\": \"body\"\n },\n \"model\": {\n value: _this5.showAreaPopup,\n callback: function callback($$v) {\n _this5.showAreaPopup = $$v;\n }\n }\n }, [h(Area, {\n \"ref\": \"area\",\n \"attrs\": {\n \"value\": data.areaCode,\n \"loading\": !this.areaListLoaded,\n \"areaList\": this.areaList,\n \"columnsPlaceholder\": this.areaColumnsPlaceholder\n },\n \"on\": {\n \"confirm\": this.onAreaConfirm,\n \"cancel\": function cancel() {\n _this5.showAreaPopup = false;\n }\n }\n })])]);\n }\n});","import { createNamespace } from '../utils';\nimport { FieldMixin } from '../mixins/field';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('radio-group'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanRadio'), FieldMixin],\n props: {\n value: null,\n disabled: Boolean,\n direction: String,\n checkedColor: String,\n iconSize: [Number, String]\n },\n watch: {\n value: function value(_value) {\n this.$emit('change', _value);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem([this.direction]),\n \"attrs\": {\n \"role\": \"radiogroup\"\n }\n }, [this.slots()]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit, emit } from '../utils/functional'; // Components\n\nimport Icon from '../icon'; // Types\n\nvar _createNamespace = createNamespace('tag'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\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 color = props.color,\n round = props.round,\n size = props.size;\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 var CloseIcon = props.closeable && h(Icon, {\n \"attrs\": {\n \"name\": \"cross\"\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n emit(ctx, 'close');\n }\n }\n });\n return h(\"transition\", {\n \"attrs\": {\n \"name\": props.closeable ? 'van-fade' : null\n }\n }, [h(\"span\", _mergeJSXProps([{\n \"key\": \"content\",\n \"style\": style,\n \"class\": bem([classes, type])\n }, inherit(ctx, true)]), [slots.default == null ? void 0 : slots.default(), CloseIcon])]);\n}\n\nTag.props = {\n size: String,\n mark: Boolean,\n color: String,\n plain: Boolean,\n round: Boolean,\n textColor: String,\n closeable: Boolean,\n type: {\n type: String,\n default: 'default'\n }\n};\nexport default createComponent(Tag);","/**\n * Common part of Checkbox & Radio\n */\nimport Icon from '../icon';\nimport { FieldMixin } from './field';\nimport { ChildrenMixin } from './relation';\nimport { addUnit } from '../utils';\nexport var CheckboxMixin = function CheckboxMixin(_ref) {\n var parent = _ref.parent,\n bem = _ref.bem,\n role = _ref.role;\n return {\n mixins: [ChildrenMixin(parent), FieldMixin],\n props: {\n name: null,\n value: null,\n disabled: Boolean,\n iconSize: [Number, String],\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 computed: {\n disableBindRelation: function disableBindRelation() {\n return !this.bindGroup;\n },\n isDisabled: function isDisabled() {\n return this.parent && this.parent.disabled || this.disabled;\n },\n direction: function direction() {\n return this.parent && this.parent.direction || null;\n },\n iconStyle: function iconStyle() {\n var checkedColor = this.checkedColor || this.parent && this.parent.checkedColor;\n\n if (checkedColor && this.checked && !this.isDisabled) {\n return {\n borderColor: checkedColor,\n backgroundColor: checkedColor\n };\n }\n },\n tabindex: function tabindex() {\n if (this.isDisabled || role === 'radio' && !this.checked) {\n return -1;\n }\n\n return 0;\n }\n },\n methods: {\n onClick: function onClick(event) {\n var _this = this;\n\n var target = event.target;\n var icon = this.$refs.icon;\n var iconClicked = icon === target || icon.contains(target);\n\n if (!this.isDisabled && (iconClicked || !this.labelDisabled)) {\n this.toggle(); // wait for toggle method to complete\n // so we can get the changed value in the click event listener\n\n setTimeout(function () {\n _this.$emit('click', event);\n });\n } else {\n this.$emit('click', event);\n }\n },\n genIcon: function genIcon() {\n var h = this.$createElement;\n var checked = this.checked;\n var iconSize = this.iconSize || this.parent && this.parent.iconSize;\n return h(\"div\", {\n \"ref\": \"icon\",\n \"class\": bem('icon', [this.shape, {\n disabled: this.isDisabled,\n checked: checked\n }]),\n \"style\": {\n fontSize: addUnit(iconSize)\n }\n }, [this.slots('icon', {\n checked: checked\n }) || h(Icon, {\n \"attrs\": {\n \"name\": \"success\"\n },\n \"style\": this.iconStyle\n })]);\n },\n genLabel: function genLabel() {\n var h = this.$createElement;\n var slot = this.slots();\n\n if (slot) {\n return h(\"span\", {\n \"class\": bem('label', [this.labelPosition, {\n disabled: this.isDisabled\n }])\n }, [slot]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var Children = [this.genIcon()];\n\n if (this.labelPosition === 'left') {\n Children.unshift(this.genLabel());\n } else {\n Children.push(this.genLabel());\n }\n\n return h(\"div\", {\n \"attrs\": {\n \"role\": role,\n \"tabindex\": this.tabindex,\n \"aria-checked\": String(this.checked)\n },\n \"class\": bem([{\n disabled: this.isDisabled,\n 'label-disabled': this.labelDisabled\n }, this.direction]),\n \"on\": {\n \"click\": this.onClick\n }\n }, [Children]);\n }\n };\n};","import { createNamespace } from '../utils';\nimport { CheckboxMixin } from '../mixins/checkbox';\n\nvar _createNamespace = createNamespace('radio'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [CheckboxMixin({\n bem: bem,\n role: 'radio',\n parent: 'vanRadio'\n })],\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 toggle: function toggle() {\n this.currentValue = this.name;\n }\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Tag from '../tag';\nimport Icon from '../icon';\nimport Cell from '../cell';\nimport Radio from '../radio'; // Types\n\nvar _createNamespace = createNamespace('address-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction AddressItem(h, props, slots, ctx) {\n var disabled = props.disabled,\n switchable = props.switchable;\n\n function onClick() {\n if (switchable) {\n emit(ctx, 'select');\n }\n\n emit(ctx, 'click');\n }\n\n var genRightIcon = function genRightIcon() {\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 emit(ctx, 'click');\n }\n }\n });\n };\n\n function genTag() {\n if (props.data.isDefault && props.defaultTagText) {\n return h(Tag, {\n \"attrs\": {\n \"type\": \"danger\",\n \"round\": true\n },\n \"class\": bem('tag')\n }, [props.defaultTagText]);\n }\n }\n\n function genContent() {\n var data = props.data;\n var Info = [h(\"div\", {\n \"class\": bem('name')\n }, [data.name + \" \" + data.tel, genTag()]), h(\"div\", {\n \"class\": bem('address')\n }, [data.address])];\n\n if (switchable && !disabled) {\n return h(Radio, {\n \"attrs\": {\n \"name\": data.id,\n \"iconSize\": 18\n }\n }, [Info]);\n }\n\n return Info;\n }\n\n return h(\"div\", {\n \"class\": bem({\n disabled: disabled\n }),\n \"on\": {\n \"click\": onClick\n }\n }, [h(Cell, _mergeJSXProps([{\n \"attrs\": {\n \"border\": false,\n \"valueClass\": bem('value')\n },\n \"scopedSlots\": {\n default: genContent,\n 'right-icon': genRightIcon\n }\n }, inherit(ctx)])), slots.bottom == null ? void 0 : slots.bottom(_extends({}, props.data, {\n disabled: disabled\n }))]);\n}\n\nAddressItem.props = {\n data: Object,\n disabled: Boolean,\n switchable: Boolean,\n defaultTagText: String\n};\nexport default createComponent(AddressItem);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Button from '../button';\nimport RadioGroup from '../radio-group';\nimport AddressItem from './Item'; // Types\n\nvar _createNamespace = createNamespace('address-list'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction AddressList(h, props, slots, ctx) {\n function genList(list, disabled) {\n if (!list) {\n return;\n }\n\n return list.map(function (item, index) {\n return h(AddressItem, {\n \"attrs\": {\n \"data\": item,\n \"disabled\": disabled,\n \"switchable\": props.switchable,\n \"defaultTagText\": props.defaultTagText\n },\n \"key\": item.id,\n \"scopedSlots\": {\n bottom: slots['item-bottom']\n },\n \"on\": {\n \"select\": function select() {\n emit(ctx, disabled ? 'select-disabled' : 'select', item, index);\n\n if (!disabled) {\n emit(ctx, 'input', item.id);\n }\n },\n \"edit\": function edit() {\n emit(ctx, disabled ? 'edit-disabled' : 'edit', item, index);\n },\n \"click\": function click() {\n emit(ctx, 'click-item', item, index);\n }\n }\n });\n });\n }\n\n var List = genList(props.list);\n var DisabledList = genList(props.disabledList, true);\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [slots.top == null ? void 0 : slots.top(), h(RadioGroup, {\n \"attrs\": {\n \"value\": props.value\n }\n }, [List]), props.disabledText && h(\"div\", {\n \"class\": bem('disabled-text')\n }, [props.disabledText]), DisabledList, slots.default == null ? void 0 : slots.default(), h(\"div\", {\n \"class\": bem('bottom')\n }, [h(Button, {\n \"attrs\": {\n \"round\": true,\n \"block\": true,\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 value: [Number, String],\n disabledList: Array,\n disabledText: String,\n addButtonText: String,\n defaultTagText: String,\n switchable: {\n type: Boolean,\n default: true\n }\n};\nexport default createComponent(AddressList);","import { createNamespace } from '../utils';\nimport { CheckboxMixin } from '../mixins/checkbox';\n\nvar _createNamespace = createNamespace('checkbox'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [CheckboxMixin({\n bem: bem,\n role: 'checkbox',\n parent: 'vanCheckbox'\n })],\n computed: {\n checked: {\n get: function get() {\n if (this.parent) {\n return this.parent.value.indexOf(this.name) !== -1;\n }\n\n return 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 // @exposed-api\n toggle: function toggle(checked) {\n var _this = this;\n\n if (checked === void 0) {\n checked = !this.checked;\n }\n\n // 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 clearTimeout(this.toggleTask);\n this.toggleTask = setTimeout(function () {\n _this.checked = checked;\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 _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Toast from '../toast';\nimport { route, routeProps } from '../utils/router';\nimport { createNamespace } from '../utils';\nimport Checkbox from '../checkbox';\nimport Button from '../button';\n\nvar _createNamespace = createNamespace('approve-agreement'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n model: {\n prop: 'checked',\n event: 'update'\n },\n props: _extends({}, routeProps, {\n checked: Boolean,\n textRegex: {\n type: RegExp,\n default: function _default() {\n return /(.+)(《.+》)/;\n }\n },\n text: {\n type: String,\n required: true\n },\n message: {\n type: String,\n default: '请认真阅读并确认勾选协议'\n },\n shape: {\n type: String,\n default: 'round'\n },\n iconSize: [Number, String],\n checkedColor: String,\n buttonText: String\n }),\n data: function data() {\n return {};\n },\n computed: {\n linkText: function linkText() {\n var text = this.text,\n textRegex = this.textRegex;\n\n if (text && textRegex) {\n var match = text.match(textRegex);\n return match && match[1] && match[2] ? {\n pre_text: match[1],\n link_text: match[2]\n } : {\n pre_text: text,\n link_text: ''\n };\n }\n\n return {\n pre_text: '',\n link_text: ''\n };\n },\n agree: {\n get: function get() {\n return this.checked;\n },\n set: function set(val) {\n this.$emit('update', val);\n }\n }\n },\n methods: {\n onClick: function onClick() {\n this.$emit('click');\n route(this.$router, this);\n },\n onChange: function onChange(e) {\n this.$emit('change', e);\n },\n onClickButton: function onClickButton() {\n if (!this.agree) {\n Toast(this.message);\n return;\n }\n\n this.$emit('success');\n }\n },\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem('')\n }, [h(Checkbox, {\n \"class\": bem('checkbox'),\n \"attrs\": {\n \"shape\": this.shape,\n \"iconSize\": this.iconSize,\n \"checkedColor\": this.checkedColor\n },\n \"on\": {\n \"change\": this.onChange\n },\n \"model\": {\n value: _this.agree,\n callback: function callback($$v) {\n _this.agree = $$v;\n }\n }\n }), h(\"div\", {\n \"class\": bem('text')\n }, [this.linkText.pre_text, h(\"span\", {\n \"on\": {\n \"click\": this.onClick\n },\n \"class\": this.linkText.link_text ? bem('link') : ''\n }, [this.linkText.link_text])]), this.slots('right') || (this.buttonText ? h(Button, {\n \"attrs\": {\n \"type\": \"primary\"\n },\n \"class\": this.agree ? bem('button') : bem('disabled') + \" \" + bem('button'),\n \"on\": {\n \"click\": this.onClickButton\n }\n }, [this.buttonText]) : null)]);\n }\n});","import { isDef, createNamespace } from '../utils';\nimport { isNumeric } from '../utils/validate/number';\n\nvar _createNamespace = createNamespace('badge'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n dot: Boolean,\n max: [Number, String],\n color: String,\n content: [Number, String],\n tag: {\n type: String,\n default: 'div'\n }\n },\n methods: {\n hasContent: function hasContent() {\n return !!(this.$scopedSlots.content || isDef(this.content) && this.content !== '');\n },\n renderContent: function renderContent() {\n var dot = this.dot,\n max = this.max,\n content = this.content;\n\n if (!dot && this.hasContent()) {\n if (this.$scopedSlots.content) {\n return this.$scopedSlots.content();\n }\n\n if (isDef(max) && isNumeric(content) && +content > max) {\n return max + \"+\";\n }\n\n return content;\n }\n },\n renderBadge: function renderBadge() {\n var h = this.$createElement;\n\n if (this.hasContent() || this.dot) {\n return h(\"div\", {\n \"class\": bem({\n dot: this.dot,\n fixed: !!this.$scopedSlots.default\n }),\n \"style\": {\n background: this.color\n }\n }, [this.renderContent()]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n\n if (this.$scopedSlots.default) {\n var tag = this.tag;\n return h(tag, {\n \"class\": bem('wrapper')\n }, [this.$scopedSlots.default(), this.renderBadge()]);\n }\n\n return this.renderBadge();\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport Button from '../button';\n\nvar _createNamespace = createNamespace('bottom-button'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n embedded: {\n type: Boolean,\n default: false\n },\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {};\n },\n methods: {},\n render: function render() {\n var h = arguments[0];\n var slots = this.slots;\n return h(\"div\", {\n \"class\": bem({\n 'safe-area-inset-bottom': this.safeAreaInsetBottom\n })\n }, [h(\"div\", {\n \"class\": bem('box', {\n embedded: this.embedded\n })\n }, [slots() ? slots() : h(Button, {\n \"attrs\": _extends({\n \"block\": true\n }, _extends({}, this.$attrs), {\n \"size\": \"large\"\n }),\n \"on\": _extends({}, this.$listeners)\n })])]);\n }\n});","import { isNaN } from './number';\nexport function isDate(val) {\n return Object.prototype.toString.call(val) === '[object Date]' && !isNaN(val.getTime());\n}","import { createNamespace } from '../utils';\n\nvar _createNamespace = createNamespace('calendar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport { createComponent, bem, t };\nexport function formatMonthTitle(date) {\n return t('monthTitle', date.getFullYear(), date.getMonth() + 1);\n}\nexport function compareMonth(date1, date2) {\n var year1 = date1.getFullYear();\n var year2 = date2.getFullYear();\n var month1 = date1.getMonth();\n var month2 = date2.getMonth();\n\n if (year1 === year2) {\n return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;\n }\n\n return year1 > year2 ? 1 : -1;\n}\nexport function compareDay(day1, day2) {\n var compareMonthResult = compareMonth(day1, day2);\n\n if (compareMonthResult === 0) {\n var date1 = day1.getDate();\n var date2 = day2.getDate();\n return date1 === date2 ? 0 : date1 > date2 ? 1 : -1;\n }\n\n return compareMonthResult;\n}\nexport function getDayByOffset(date, offset) {\n date = new Date(date);\n date.setDate(date.getDate() + offset);\n return date;\n}\nexport function getPrevDay(date) {\n return getDayByOffset(date, -1);\n}\nexport function getNextDay(date) {\n return getDayByOffset(date, 1);\n}\nexport function calcDateNum(date) {\n var day1 = date[0].getTime();\n var day2 = date[1].getTime();\n return (day2 - day1) / (1000 * 60 * 60 * 24) + 1;\n}\nexport function copyDate(dates) {\n return new Date(dates);\n}\nexport function copyDates(dates) {\n if (Array.isArray(dates)) {\n return dates.map(function (date) {\n if (date === null) {\n return date;\n }\n\n return copyDate(date);\n });\n }\n\n return copyDate(dates);\n}","import { isNaN } from '../utils/validate/number';\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(value) {\n if (!value) {\n return 0;\n }\n\n while (isNaN(parseInt(value, 10))) {\n if (value.length > 1) {\n value = value.slice(1);\n } else {\n return 0;\n }\n }\n\n return parseInt(value, 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 { createNamespace, addUnit } from '../../utils';\nimport { setScrollTop } from '../../utils/dom/scroll';\nimport { t, bem, compareDay, getPrevDay, getNextDay, formatMonthTitle } from '../utils';\nimport { getMonthEndDay } from '../../datetime-picker/utils';\n\nvar _createNamespace = createNamespace('calendar-month'),\n createComponent = _createNamespace[0];\n\nexport default createComponent({\n props: {\n date: Date,\n type: String,\n color: String,\n minDate: Date,\n maxDate: Date,\n showMark: Boolean,\n rowHeight: [Number, String],\n formatter: Function,\n lazyRender: Boolean,\n currentDate: [Date, Array],\n allowSameDay: Boolean,\n showSubtitle: Boolean,\n showMonthTitle: Boolean,\n selectDayDisplay: String,\n firstDayOfWeek: Number\n },\n data: function data() {\n return {\n visible: false\n };\n },\n computed: {\n title: function title() {\n return formatMonthTitle(this.date);\n },\n rowHeightWithUnit: function rowHeightWithUnit() {\n return addUnit(this.rowHeight);\n },\n offset: function offset() {\n var firstDayOfWeek = this.firstDayOfWeek;\n var realDay = this.date.getDay();\n\n if (!firstDayOfWeek) {\n return realDay;\n }\n\n return (realDay + 7 - this.firstDayOfWeek) % 7;\n },\n totalDay: function totalDay() {\n return getMonthEndDay(this.date.getFullYear(), this.date.getMonth() + 1);\n },\n shouldRender: function shouldRender() {\n return this.visible || !this.lazyRender;\n },\n placeholders: function placeholders() {\n var rows = [];\n var count = Math.ceil((this.totalDay + this.offset) / 7);\n\n for (var day = 1; day <= count; day++) {\n rows.push({\n type: 'placeholder'\n });\n }\n\n return rows;\n },\n days: function days() {\n var days = [];\n var year = this.date.getFullYear();\n var month = this.date.getMonth();\n\n for (var day = 1; day <= this.totalDay; day++) {\n var date = new Date(year, month, day);\n var type = this.getDayType(date);\n var config = {\n date: date,\n type: type,\n text: day,\n bottomInfo: this.getBottomInfo(type)\n };\n\n if (this.formatter) {\n config = this.formatter(config);\n }\n\n days.push(config);\n }\n\n return days;\n }\n },\n methods: {\n getHeight: function getHeight() {\n if (!this.height) {\n this.height = this.$el.getBoundingClientRect().height;\n }\n\n return this.height;\n },\n scrollIntoView: function scrollIntoView(body) {\n var _this$$refs = this.$refs,\n days = _this$$refs.days,\n month = _this$$refs.month;\n var el = this.showSubtitle ? days : month;\n var scrollTop = el.getBoundingClientRect().top - body.getBoundingClientRect().top + body.scrollTop;\n setScrollTop(body, scrollTop);\n },\n getMultipleDayType: function getMultipleDayType(day) {\n var _this = this;\n\n var isSelected = function isSelected(date) {\n return _this.currentDate.some(function (item) {\n return compareDay(item, date) === 0;\n });\n };\n\n if (isSelected(day)) {\n var prevDay = getPrevDay(day);\n var nextDay = getNextDay(day);\n var prevSelected = isSelected(prevDay);\n var nextSelected = isSelected(nextDay);\n\n if (prevSelected && nextSelected) {\n return 'multiple-middle';\n }\n\n if (prevSelected) {\n return 'end';\n }\n\n return nextSelected ? 'start' : 'multiple-selected';\n }\n\n return '';\n },\n getRangeDayType: function getRangeDayType(day) {\n var _this$currentDate = this.currentDate,\n startDay = _this$currentDate[0],\n endDay = _this$currentDate[1];\n\n if (!startDay) {\n return '';\n }\n\n var compareToStart = compareDay(day, startDay);\n\n if (!endDay) {\n return compareToStart === 0 ? 'start' : '';\n }\n\n var compareToEnd = compareDay(day, endDay);\n\n if (compareToStart === 0 && compareToEnd === 0 && this.allowSameDay) {\n return 'start-end';\n }\n\n if (compareToStart === 0) {\n return 'start';\n }\n\n if (compareToEnd === 0) {\n return 'end';\n }\n\n if (compareToStart > 0 && compareToEnd < 0) {\n return 'middle';\n }\n },\n getDayType: function getDayType(day) {\n var type = this.type,\n minDate = this.minDate,\n maxDate = this.maxDate,\n currentDate = this.currentDate;\n\n if (compareDay(day, minDate) < 0 || compareDay(day, maxDate) > 0) {\n return 'disabled';\n }\n\n if (currentDate === null) {\n return;\n }\n\n if (type === 'single') {\n return compareDay(day, currentDate) === 0 ? 'selected' : '';\n }\n\n if (type === 'multiple') {\n return this.getMultipleDayType(day);\n }\n /* istanbul ignore else */\n\n\n if (type === 'range') {\n return this.getRangeDayType(day);\n }\n },\n getBottomInfo: function getBottomInfo(type) {\n if (this.type === 'range') {\n if (type === 'start' || type === 'end') {\n return t(type);\n }\n\n if (type === 'start-end') {\n return t('startEnd');\n }\n }\n },\n getDayStyle: function getDayStyle(type, index) {\n var style = {\n height: this.rowHeightWithUnit\n };\n\n if (type === 'placeholder') {\n style.width = '100%';\n return style;\n }\n\n if (index === 0) {\n style.marginLeft = 100 * this.offset / 7 + \"%\";\n }\n\n if (this.color) {\n if (type === 'start' || type === 'end' || type === 'start-end' || type === 'multiple-selected' || type === 'multiple-middle') {\n style.background = this.color;\n } else if (type === 'middle') {\n style.color = this.color;\n }\n }\n\n return style;\n },\n genTitle: function genTitle() {\n var h = this.$createElement;\n\n if (this.showMonthTitle) {\n return h(\"div\", {\n \"class\": bem('month-title')\n }, [this.title]);\n }\n },\n genMark: function genMark() {\n var h = this.$createElement;\n\n if (this.showMark && this.shouldRender) {\n return h(\"div\", {\n \"class\": bem('month-mark')\n }, [this.date.getMonth() + 1]);\n }\n },\n genDays: function genDays() {\n var h = this.$createElement;\n var days = this.shouldRender ? this.days : this.placeholders;\n return h(\"div\", {\n \"ref\": \"days\",\n \"attrs\": {\n \"role\": \"grid\"\n },\n \"class\": bem('days')\n }, [this.genMark(), days.map(this.genDay)]);\n },\n genDay: function genDay(item, index) {\n var _this2 = this;\n\n var h = this.$createElement;\n var selectDayDisplay = this.selectDayDisplay,\n currentDate = this.currentDate;\n var type = item.type,\n topInfo = item.topInfo,\n bottomInfo = item.bottomInfo;\n var style = this.getDayStyle(type, index);\n var disabled = type === 'disabled';\n\n var onClick = function onClick() {\n if (!disabled) {\n _this2.$emit('click', item);\n }\n };\n\n var TopInfo = topInfo && h(\"div\", {\n \"class\": bem('top-info')\n }, [topInfo]);\n var BottomInfo = bottomInfo && h(\"div\", {\n \"class\": bem('bottom-info')\n }, [bottomInfo]);\n\n if (type === 'selected') {\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"gridcell\",\n \"tabindex\": -1\n },\n \"style\": style,\n \"class\": [bem('day'), item.className],\n \"on\": {\n \"click\": onClick\n }\n }, [h(\"div\", {\n \"class\": bem('selected-day', selectDayDisplay === 'circle' && selectDayDisplay),\n \"style\": {\n width: this.rowHeightWithUnit,\n height: this.rowHeightWithUnit,\n background: this.color\n }\n }, [TopInfo, item.text, BottomInfo])]);\n }\n\n if (selectDayDisplay === 'circle') {\n var startDay = currentDate[0],\n endDay = currentDate[1];\n var isSelected = startDay && endDay;\n delete style.background;\n\n switch (type) {\n case 'start':\n case 'end':\n case 'multiple-selected':\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"gridcell\",\n \"tabIndex\": disabled ? null : -1\n },\n \"class\": [bem('day', type), item.className, selectDayDisplay, isSelected && type],\n \"style\": _extends({}, style, {\n color: this.color || '#ff4e47'\n }),\n \"on\": {\n \"click\": onClick\n }\n }, [h(\"div\", {\n \"class\": [bem('selected-day', selectDayDisplay), isSelected && type],\n \"style\": {\n background: this.color\n }\n }, [item.text])]);\n\n case 'middle':\n case 'multiple-middle':\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"gridcell\",\n \"tabIndex\": disabled ? null : -1\n },\n \"style\": style,\n \"class\": [bem('day', type), item.className, selectDayDisplay],\n \"on\": {\n \"click\": onClick\n }\n }, [h(\"div\", {\n \"class\": bem('selected-day', 'middle'),\n \"style\": {\n color: this.color\n }\n }, [item.text])]);\n\n case 'start-end':\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"gridcell\",\n \"tabIndex\": disabled ? null : -1\n },\n \"style\": style,\n \"class\": [bem('day', type), item.className, selectDayDisplay],\n \"on\": {\n \"click\": onClick\n }\n }, [h(\"div\", {\n \"class\": bem('selected-day', selectDayDisplay),\n \"style\": {\n background: this.color\n }\n }, [item.text])]);\n }\n }\n\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"gridcell\",\n \"tabindex\": disabled ? null : -1\n },\n \"style\": style,\n \"class\": [bem('day', type), item.className],\n \"on\": {\n \"click\": onClick\n }\n }, [TopInfo, item.text, BottomInfo]);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem('month'),\n \"ref\": \"month\"\n }, [this.genTitle(), this.genDays()]);\n }\n});","import { createNamespace } from '../../utils';\nimport { t, bem } from '../utils';\n\nvar _createNamespace = createNamespace('calendar-header'),\n createComponent = _createNamespace[0];\n\nexport default createComponent({\n props: {\n title: String,\n subtitle: String,\n showTitle: Boolean,\n showSubtitle: Boolean,\n firstDayOfWeek: Number\n },\n methods: {\n genTitle: function genTitle() {\n var h = this.$createElement;\n\n if (this.showTitle) {\n var title = this.slots('title') || this.title || t('title');\n return h(\"div\", {\n \"class\": bem('header-title')\n }, [title]);\n }\n },\n genSubtitle: function genSubtitle() {\n var h = this.$createElement;\n\n if (this.showSubtitle) {\n return h(\"div\", {\n \"class\": bem('header-subtitle')\n }, [this.subtitle]);\n }\n },\n genWeekDays: function genWeekDays() {\n var h = this.$createElement;\n var weekdays = t('weekdays');\n var firstDayOfWeek = this.firstDayOfWeek;\n var renderWeekDays = [].concat(weekdays.slice(firstDayOfWeek, 7), weekdays.slice(0, firstDayOfWeek));\n return h(\"div\", {\n \"class\": bem('weekdays')\n }, [renderWeekDays.map(function (item) {\n return h(\"span\", {\n \"class\": bem('weekday')\n }, [item]);\n })]);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem('header')\n }, [this.genTitle(), this.genSubtitle(), this.genWeekDays()]);\n }\n});","// Utils\nimport { raf } from '../utils/dom/raf';\nimport { isDate } from '../utils/validate/date';\nimport { getScrollTop } from '../utils/dom/scroll';\nimport { t, bem, copyDate, copyDates, getNextDay, compareDay, calcDateNum, compareMonth, createComponent, getDayByOffset } from './utils'; // Components\n\nimport Popup from '../popup';\nimport Button from '../button';\nimport Toast from '../toast';\nimport Month from './components/Month';\nimport Header from './components/Header';\nexport default createComponent({\n props: {\n title: String,\n color: String,\n value: Boolean,\n readonly: Boolean,\n formatter: Function,\n rowHeight: [Number, String],\n confirmText: String,\n rangePrompt: String,\n defaultDate: [Date, Array],\n getContainer: [String, Function],\n allowSameDay: Boolean,\n confirmDisabledText: String,\n type: {\n type: String,\n default: 'single'\n },\n round: {\n type: Boolean,\n default: true\n },\n position: {\n type: String,\n default: 'bottom'\n },\n poppable: {\n type: Boolean,\n default: true\n },\n maxRange: {\n type: [Number, String],\n default: null\n },\n lazyRender: {\n type: Boolean,\n default: true\n },\n showMark: {\n type: Boolean,\n default: true\n },\n showTitle: {\n type: Boolean,\n default: true\n },\n showConfirm: {\n type: Boolean,\n default: true\n },\n showSubtitle: {\n type: Boolean,\n default: true\n },\n closeOnPopstate: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n },\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n },\n minDate: {\n type: Date,\n validator: isDate,\n default: function _default() {\n return new Date();\n }\n },\n maxDate: {\n type: Date,\n validator: isDate,\n default: function _default() {\n var now = new Date();\n return new Date(now.getFullYear(), now.getMonth() + 6, now.getDate());\n }\n },\n firstDayOfWeek: {\n type: [Number, String],\n default: 0,\n validator: function validator(val) {\n return val >= 0 && val <= 6;\n }\n },\n selectDayDisplay: {\n type: String,\n default: 'rect' // rect,circle\n\n }\n },\n data: function data() {\n return {\n subtitle: '',\n currentDate: this.getInitialDate()\n };\n },\n computed: {\n months: function months() {\n var months = [];\n var cursor = new Date(this.minDate);\n cursor.setDate(1);\n\n do {\n months.push(new Date(cursor));\n cursor.setMonth(cursor.getMonth() + 1);\n } while (compareMonth(cursor, this.maxDate) !== 1);\n\n return months;\n },\n buttonDisabled: function buttonDisabled() {\n var type = this.type,\n currentDate = this.currentDate;\n\n if (currentDate) {\n if (type === 'range') {\n return !currentDate[0] || !currentDate[1];\n }\n\n if (type === 'multiple') {\n return !currentDate.length;\n }\n }\n\n return !currentDate;\n },\n dayOffset: function dayOffset() {\n return this.firstDayOfWeek ? this.firstDayOfWeek % 7 : 0;\n }\n },\n watch: {\n type: 'reset',\n value: 'init',\n defaultDate: function defaultDate(val) {\n this.currentDate = val;\n this.scrollIntoView();\n }\n },\n mounted: function mounted() {\n this.init();\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.init();\n },\n methods: {\n // @exposed-api\n reset: function reset() {\n this.currentDate = this.getInitialDate();\n this.scrollIntoView();\n },\n init: function init() {\n var _this = this;\n\n if (this.poppable && !this.value) {\n return;\n }\n\n this.$nextTick(function () {\n // add Math.floor to avoid decimal height issues\n // https://github.com/youzan/vant/issues/5640\n _this.bodyHeight = Math.floor(_this.$refs.body.getBoundingClientRect().height);\n\n _this.onScroll();\n\n _this.scrollIntoView();\n });\n },\n // scroll to current month\n scrollIntoView: function scrollIntoView() {\n var _this2 = this;\n\n raf(function () {\n var currentDate = _this2.currentDate;\n\n if (!currentDate) {\n return;\n }\n\n var targetDate = _this2.type === 'single' ? currentDate : currentDate[0];\n var displayed = _this2.value || !_this2.poppable;\n /* istanbul ignore if */\n\n if (!targetDate || !displayed) {\n return;\n }\n\n _this2.months.some(function (month, index) {\n if (compareMonth(month, targetDate) === 0) {\n var _this2$$refs = _this2.$refs,\n body = _this2$$refs.body,\n months = _this2$$refs.months;\n months[index].scrollIntoView(body);\n return true;\n }\n\n return false;\n });\n });\n },\n getInitialDate: function getInitialDate() {\n var type = this.type,\n minDate = this.minDate,\n maxDate = this.maxDate,\n defaultDate = this.defaultDate;\n\n if (defaultDate === null) {\n return defaultDate;\n }\n\n var defaultVal = new Date();\n\n if (compareDay(defaultVal, minDate) === -1) {\n defaultVal = minDate;\n } else if (compareDay(defaultVal, maxDate) === 1) {\n defaultVal = maxDate;\n }\n\n if (type === 'range') {\n var _ref = defaultDate || [],\n startDay = _ref[0],\n endDay = _ref[1];\n\n return [startDay || defaultVal, endDay || getNextDay(defaultVal)];\n }\n\n if (type === 'multiple') {\n return defaultDate || [defaultVal];\n }\n\n return defaultDate || defaultVal;\n },\n // calculate the position of the elements\n // and find the elements that needs to be rendered\n onScroll: function onScroll() {\n var _this$$refs = this.$refs,\n body = _this$$refs.body,\n months = _this$$refs.months;\n var top = getScrollTop(body);\n var bottom = top + this.bodyHeight;\n var heights = months.map(function (item) {\n return item.getHeight();\n });\n var heightSum = heights.reduce(function (a, b) {\n return a + b;\n }, 0); // iOS scroll bounce may exceed the range\n\n if (bottom > heightSum && top > 0) {\n return;\n }\n\n var height = 0;\n var currentMonth;\n var visibleRange = [-1, -1];\n\n for (var i = 0; i < months.length; i++) {\n var visible = height <= bottom && height + heights[i] >= top;\n\n if (visible) {\n visibleRange[1] = i;\n\n if (!currentMonth) {\n currentMonth = months[i];\n visibleRange[0] = i;\n }\n\n if (!months[i].showed) {\n months[i].showed = true;\n this.$emit('month-show', {\n date: months[i].date,\n title: months[i].title\n });\n }\n }\n\n height += heights[i];\n }\n\n months.forEach(function (month, index) {\n month.visible = index >= visibleRange[0] - 1 && index <= visibleRange[1] + 1;\n });\n /* istanbul ignore else */\n\n if (currentMonth) {\n this.subtitle = currentMonth.title;\n }\n },\n onClickDay: function onClickDay(item) {\n if (this.readonly) {\n return;\n }\n\n var date = item.date;\n var type = this.type,\n currentDate = this.currentDate;\n\n if (type === 'range') {\n if (!currentDate) {\n this.select([date, null]);\n return;\n }\n\n var startDay = currentDate[0],\n endDay = currentDate[1];\n\n if (startDay && !endDay) {\n var compareToStart = compareDay(date, startDay);\n\n if (compareToStart === 1) {\n this.select([startDay, date], true);\n } else if (compareToStart === -1) {\n this.select([date, null]);\n } else if (this.allowSameDay) {\n this.select([date, date], true);\n }\n } else {\n this.select([date, null]);\n }\n } else if (type === 'multiple') {\n if (!currentDate) {\n this.select([date]);\n return;\n }\n\n var selectedIndex;\n var selected = this.currentDate.some(function (dateItem, index) {\n var equal = compareDay(dateItem, date) === 0;\n\n if (equal) {\n selectedIndex = index;\n }\n\n return equal;\n });\n\n if (selected) {\n var _currentDate$splice = currentDate.splice(selectedIndex, 1),\n unselectedDate = _currentDate$splice[0];\n\n this.$emit('unselect', copyDate(unselectedDate));\n } else if (this.maxRange && currentDate.length >= this.maxRange) {\n Toast(this.rangePrompt || t('rangePrompt', this.maxRange));\n } else {\n this.select([].concat(currentDate, [date]));\n }\n } else {\n this.select(date, true);\n }\n },\n togglePopup: function togglePopup(val) {\n this.$emit('input', val);\n },\n select: function select(date, complete) {\n var _this3 = this;\n\n var emit = function emit(date) {\n _this3.currentDate = date;\n\n _this3.$emit('select', copyDates(_this3.currentDate));\n };\n\n if (complete && this.type === 'range') {\n var valid = this.checkRange(date);\n\n if (!valid) {\n // auto selected to max range if showConfirm\n if (this.showConfirm) {\n emit([date[0], getDayByOffset(date[0], this.maxRange - 1)]);\n } else {\n emit(date);\n }\n\n return;\n }\n }\n\n emit(date);\n\n if (complete && !this.showConfirm) {\n this.onConfirm();\n }\n },\n checkRange: function checkRange(date) {\n var maxRange = this.maxRange,\n rangePrompt = this.rangePrompt;\n\n if (maxRange && calcDateNum(date) > maxRange) {\n Toast(rangePrompt || t('rangePrompt', maxRange));\n return false;\n }\n\n return true;\n },\n onConfirm: function onConfirm() {\n this.$emit('confirm', copyDates(this.currentDate));\n },\n genMonth: function genMonth(date, index) {\n var h = this.$createElement;\n var showMonthTitle = index !== 0 || !this.showSubtitle;\n return h(Month, {\n \"ref\": \"months\",\n \"refInFor\": true,\n \"attrs\": {\n \"date\": date,\n \"type\": this.type,\n \"color\": this.color,\n \"minDate\": this.minDate,\n \"maxDate\": this.maxDate,\n \"showMark\": this.showMark,\n \"formatter\": this.formatter,\n \"rowHeight\": this.rowHeight,\n \"lazyRender\": this.lazyRender,\n \"currentDate\": this.currentDate,\n \"showSubtitle\": this.showSubtitle,\n \"allowSameDay\": this.allowSameDay,\n \"showMonthTitle\": showMonthTitle,\n \"selectDayDisplay\": this.selectDayDisplay,\n \"firstDayOfWeek\": this.dayOffset\n },\n \"on\": {\n \"click\": this.onClickDay\n }\n });\n },\n genFooterContent: function genFooterContent() {\n var h = this.$createElement;\n var slot = this.slots('footer');\n\n if (slot) {\n return slot;\n }\n\n if (this.showConfirm) {\n var text = this.buttonDisabled ? this.confirmDisabledText : this.confirmText;\n return h(Button, {\n \"attrs\": {\n \"round\": true,\n \"block\": true,\n \"type\": \"danger\",\n \"color\": this.color,\n \"disabled\": this.buttonDisabled,\n \"nativeType\": \"button\"\n },\n \"class\": bem('confirm'),\n \"on\": {\n \"click\": this.onConfirm\n }\n }, [text || t('confirm')]);\n }\n },\n genFooter: function genFooter() {\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": bem('footer', {\n unfit: !this.safeAreaInsetBottom\n })\n }, [this.genFooterContent()]);\n },\n genCalendar: function genCalendar() {\n var _this4 = this;\n\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": bem()\n }, [h(Header, {\n \"attrs\": {\n \"title\": this.title,\n \"showTitle\": this.showTitle,\n \"subtitle\": this.subtitle,\n \"showSubtitle\": this.showSubtitle,\n \"firstDayOfWeek\": this.dayOffset\n },\n \"scopedSlots\": {\n title: function title() {\n return _this4.slots('title');\n }\n }\n }), h(\"div\", {\n \"ref\": \"body\",\n \"class\": bem('body'),\n \"on\": {\n \"scroll\": this.onScroll\n }\n }, [this.months.map(this.genMonth)]), this.genFooter()]);\n }\n },\n render: function render() {\n var _this5 = this;\n\n var h = arguments[0];\n\n if (this.poppable) {\n var _attrs;\n\n var createListener = function createListener(name) {\n return function () {\n return _this5.$emit(name);\n };\n };\n\n return h(Popup, {\n \"attrs\": (_attrs = {\n \"round\": true,\n \"value\": this.value\n }, _attrs[\"round\"] = this.round, _attrs[\"position\"] = this.position, _attrs[\"closeable\"] = this.showTitle || this.showSubtitle, _attrs[\"closeIconPosition\"] = \"top-left\", _attrs[\"getContainer\"] = this.getContainer, _attrs[\"closeOnPopstate\"] = this.closeOnPopstate, _attrs[\"closeOnClickOverlay\"] = this.closeOnClickOverlay, _attrs),\n \"class\": bem('popup'),\n \"on\": {\n \"input\": this.togglePopup,\n \"open\": createListener('open'),\n \"opened\": createListener('opened'),\n \"close\": createListener('close'),\n \"closed\": createListener('closed')\n }\n }, [this.genCalendar()]);\n }\n\n return this.genCalendar();\n }\n});","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { createNamespace, isDef, addUnit, inBrowser } from '../utils';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('image'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n src: String,\n fit: String,\n alt: String,\n round: Boolean,\n width: [Number, String],\n height: [Number, String],\n radius: [Number, String],\n lazyLoad: Boolean,\n iconPrefix: String,\n showError: {\n type: Boolean,\n default: true\n },\n showLoading: {\n type: Boolean,\n default: true\n },\n errorIcon: {\n type: String,\n default: 'photo-fail'\n },\n loadingIcon: {\n type: String,\n default: 'photo'\n }\n },\n data: function data() {\n return {\n loading: true,\n error: false\n };\n },\n watch: {\n src: function src() {\n this.loading = true;\n this.error = false;\n }\n },\n computed: {\n style: function style() {\n var style = {};\n\n if (isDef(this.width)) {\n style.width = addUnit(this.width);\n }\n\n if (isDef(this.height)) {\n style.height = addUnit(this.height);\n }\n\n if (isDef(this.radius)) {\n style.overflow = 'hidden';\n style.borderRadius = addUnit(this.radius);\n }\n\n return style;\n }\n },\n created: function created() {\n var $Lazyload = this.$Lazyload;\n\n if ($Lazyload && inBrowser) {\n $Lazyload.$on('loaded', this.onLazyLoaded);\n $Lazyload.$on('error', this.onLazyLoadError);\n }\n },\n beforeDestroy: function beforeDestroy() {\n var $Lazyload = this.$Lazyload;\n\n if ($Lazyload) {\n $Lazyload.$off('loaded', this.onLazyLoaded);\n $Lazyload.$off('error', this.onLazyLoadError);\n }\n },\n methods: {\n onLoad: function onLoad(event) {\n this.loading = false;\n this.$emit('load', event);\n },\n onLazyLoaded: function onLazyLoaded(_ref) {\n var el = _ref.el;\n\n if (el === this.$refs.image && this.loading) {\n this.onLoad();\n }\n },\n onLazyLoadError: function onLazyLoadError(_ref2) {\n var el = _ref2.el;\n\n if (el === this.$refs.image && !this.error) {\n this.onError();\n }\n },\n onError: function onError(event) {\n this.error = true;\n this.loading = false;\n this.$emit('error', event);\n },\n onClick: function onClick(event) {\n this.$emit('click', event);\n },\n genPlaceholder: function genPlaceholder() {\n var h = this.$createElement;\n\n if (this.loading && this.showLoading && inBrowser) {\n return h(\"div\", {\n \"class\": bem('loading')\n }, [this.slots('loading') || h(Icon, {\n \"attrs\": {\n \"name\": this.loadingIcon,\n \"classPrefix\": this.iconPrefix\n },\n \"class\": bem('loading-icon')\n })]);\n }\n\n if (this.error && this.showError) {\n return h(\"div\", {\n \"class\": bem('error')\n }, [this.slots('error') || h(Icon, {\n \"attrs\": {\n \"name\": this.errorIcon,\n \"classPrefix\": this.iconPrefix\n },\n \"class\": bem('error-icon')\n })]);\n }\n },\n genImage: function genImage() {\n var h = this.$createElement;\n var imgData = {\n class: bem('img'),\n attrs: {\n alt: this.alt\n },\n style: {\n objectFit: this.fit\n }\n };\n\n if (this.error) {\n return;\n }\n\n if (this.lazyLoad) {\n return h(\"img\", _mergeJSXProps([{\n \"ref\": \"image\",\n \"directives\": [{\n name: \"lazy\",\n value: this.src\n }]\n }, imgData]));\n }\n\n return h(\"img\", _mergeJSXProps2([{\n \"attrs\": {\n \"src\": this.src\n },\n \"on\": {\n \"load\": this.onLoad,\n \"error\": this.onError\n }\n }, imgData]));\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem({\n round: this.round\n }),\n \"style\": this.style,\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genImage(), this.genPlaceholder(), this.slots()]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Tag from '../tag';\nimport Image from '../image'; // Types\n\nvar _createNamespace = createNamespace('card'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Card(h, props, slots, ctx) {\n var _slots$priceTop;\n\n var thumb = props.thumb;\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 || slots.bottom;\n\n function onThumbClick(event) {\n emit(ctx, 'click-thumb', event);\n }\n\n function ThumbTag() {\n if (slots.tag || props.tag) {\n return 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 }\n }\n\n function Thumb() {\n if (slots.thumb || thumb) {\n return h(\"a\", {\n \"attrs\": {\n \"href\": props.thumbLink\n },\n \"class\": bem('thumb'),\n \"on\": {\n \"click\": onThumbClick\n }\n }, [slots.thumb ? slots.thumb() : h(Image, {\n \"attrs\": {\n \"src\": thumb,\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"fit\": \"cover\",\n \"lazy-load\": props.lazyLoad\n }\n }), ThumbTag()]);\n }\n }\n\n function Title() {\n if (slots.title) {\n return slots.title();\n }\n\n if (props.title) {\n return h(\"div\", {\n \"class\": [bem('title'), 'van-multi-ellipsis--l2']\n }, [props.title]);\n }\n }\n\n function Desc() {\n if (slots.desc) {\n return slots.desc();\n }\n\n if (props.desc) {\n return h(\"div\", {\n \"class\": [bem('desc'), 'van-ellipsis']\n }, [props.desc]);\n }\n }\n\n function PriceContent() {\n var priceArr = props.price.toString().split('.');\n return h(\"div\", [h(\"span\", {\n \"class\": bem('price-currency')\n }, [props.currency]), h(\"span\", {\n \"class\": bem('price-integer')\n }, [priceArr[0]]), \".\", h(\"span\", {\n \"class\": bem('price-decimal')\n }, [priceArr[1]])]);\n }\n\n function Price() {\n if (showPrice) {\n return h(\"div\", {\n \"class\": bem('price')\n }, [slots.price ? slots.price() : PriceContent()]);\n }\n }\n\n function OriginPrice() {\n if (showOriginPrice) {\n var slot = slots['origin-price'];\n return h(\"div\", {\n \"class\": bem('origin-price')\n }, [slot ? slot() : props.currency + \" \" + props.originPrice]);\n }\n }\n\n function Num() {\n if (showNum) {\n return h(\"div\", {\n \"class\": bem('num')\n }, [slots.num ? slots.num() : \"x\" + props.num]);\n }\n }\n\n function Footer() {\n if (slots.footer) {\n return h(\"div\", {\n \"class\": bem('footer')\n }, [slots.footer()]);\n }\n }\n\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 }, [h(\"div\", [Title(), Desc(), slots.tags == null ? void 0 : slots.tags()]), showBottom && h(\"div\", {\n \"class\": \"van-card__bottom\"\n }, [(_slots$priceTop = slots['price-top']) == null ? void 0 : _slots$priceTop.call(slots), Price(), OriginPrice(), Num(), slots.bottom == null ? void 0 : 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 createComponent(Card);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { BORDER_TOP_BOTTOM } from '../utils/constant'; // Types\n\nvar _createNamespace = createNamespace('cell-group'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction CellGroup(h, props, slots, ctx) {\n var _ref;\n\n var Group = h(\"div\", _mergeJSXProps([{\n \"class\": [bem(), (_ref = {}, _ref[BORDER_TOP_BOTTOM] = props.border, _ref), bem(props.rightBlock ? 'right-block' : '')]\n }, inherit(ctx, true)]), [slots.default == null ? void 0 : slots.default()]);\n\n if (props.title || slots.title) {\n return h(\"div\", [h(\"div\", {\n \"class\": bem('title')\n }, [slots.title ? slots.title() : 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 rightBlock: {\n type: Boolean,\n default: false\n }\n};\nexport default createComponent(CellGroup);","import { createNamespace } from '../utils';\nimport { FieldMixin } from '../mixins/field';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('checkbox-group'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanCheckbox'), FieldMixin],\n props: {\n max: [Number, String],\n disabled: Boolean,\n direction: String,\n iconSize: [Number, String],\n checkedColor: String,\n value: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n watch: {\n value: function value(val) {\n this.$emit('change', val);\n }\n },\n methods: {\n // @exposed-api\n toggleAll: function toggleAll(checked) {\n if (checked === false) {\n this.$emit('input', []);\n return;\n }\n\n var children = this.children;\n\n if (!checked) {\n children = children.filter(function (item) {\n return !item.checked;\n });\n }\n\n var names = children.map(function (item) {\n return item.name;\n });\n this.$emit('input', names);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem([this.direction])\n }, [this.slots()]);\n }\n});","import { createNamespace, isObject, addUnit } from '../utils';\nimport { raf, cancelRaf } from '../utils/dom/raf';\nimport { BLUE, WHITE } from '../utils/constant';\n\nvar _createNamespace = createNamespace('circle'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar PERIMETER = 3140;\nvar uid = 0;\n\nfunction format(rate) {\n return Math.min(Math.max(rate, 0), 100);\n}\n\nfunction getPath(clockwise, viewBoxSize) {\n var sweepFlag = clockwise ? 1 : 0;\n return \"M \" + viewBoxSize / 2 + \" \" + viewBoxSize / 2 + \" m 0, -500 a 500, 500 0 1, \" + sweepFlag + \" 0, 1000 a 500, 500 0 1, \" + sweepFlag + \" 0, -1000\";\n}\n\nexport default createComponent({\n props: {\n text: String,\n strokeLinecap: String,\n value: {\n type: Number,\n default: 0\n },\n speed: {\n type: [Number, String],\n default: 0\n },\n size: {\n type: [Number, String],\n default: 100\n },\n fill: {\n type: String,\n default: 'none'\n },\n rate: {\n type: [Number, String],\n default: 100\n },\n layerColor: {\n type: String,\n default: WHITE\n },\n color: {\n type: [String, Object],\n default: BLUE\n },\n strokeWidth: {\n type: [Number, String],\n default: 40\n },\n clockwise: {\n type: Boolean,\n default: true\n }\n },\n beforeCreate: function beforeCreate() {\n this.uid = \"van-circle-gradient-\" + uid++;\n },\n computed: {\n style: function style() {\n var size = addUnit(this.size);\n return {\n width: size,\n height: size\n };\n },\n path: function path() {\n return getPath(this.clockwise, this.viewBoxSize);\n },\n viewBoxSize: function viewBoxSize() {\n return +this.strokeWidth + 1000;\n },\n layerStyle: function layerStyle() {\n var offset = PERIMETER * this.value / 100;\n return {\n stroke: \"\" + this.color,\n strokeWidth: +this.strokeWidth + 1 + \"px\",\n strokeLinecap: this.strokeLinecap,\n strokeDasharray: offset + \"px \" + PERIMETER + \"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 gradient: function gradient() {\n return isObject(this.color);\n },\n LinearGradient: function LinearGradient() {\n var _this = this;\n\n var h = this.$createElement;\n\n if (!this.gradient) {\n return;\n }\n\n var Stops = Object.keys(this.color).sort(function (a, b) {\n return parseFloat(a) - parseFloat(b);\n }).map(function (key, index) {\n return h(\"stop\", {\n \"key\": index,\n \"attrs\": {\n \"offset\": key,\n \"stop-color\": _this.color[key]\n }\n });\n });\n return h(\"defs\", [h(\"linearGradient\", {\n \"attrs\": {\n \"id\": this.uid,\n \"x1\": \"100%\",\n \"y1\": \"0%\",\n \"x2\": \"0%\",\n \"y2\": \"0%\"\n }\n }, [Stops])]);\n }\n },\n watch: {\n rate: {\n handler: function handler(rate) {\n this.startTime = Date.now();\n this.startRate = this.value;\n this.endRate = format(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 cancelRaf(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() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem(),\n \"style\": this.style\n }, [h(\"svg\", {\n \"attrs\": {\n \"viewBox\": \"0 0 \" + this.viewBoxSize + \" \" + this.viewBoxSize\n }\n }, [this.LinearGradient, h(\"path\", {\n \"class\": bem('hover'),\n \"style\": this.hoverStyle,\n \"attrs\": {\n \"d\": this.path\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": this.path,\n \"stroke\": this.gradient ? \"url(#\" + this.uid + \")\" : this.color\n },\n \"class\": bem('layer'),\n \"style\": this.layerStyle\n })]), this.slots() || this.text && h(\"div\", {\n \"class\": bem('text')\n }, [this.text])]);\n }\n});","import { createNamespace } from '../utils';\nimport { ChildrenMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('col'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanRow')],\n props: {\n span: [Number, String],\n offset: [Number, String],\n tag: {\n type: String,\n default: 'div'\n }\n },\n computed: {\n style: function style() {\n var index = this.index;\n\n var _ref = this.parent || {},\n spaces = _ref.spaces;\n\n if (spaces && spaces[index]) {\n var _spaces$index = spaces[index],\n left = _spaces$index.left,\n right = _spaces$index.right;\n return {\n paddingLeft: left ? left + \"px\" : null,\n paddingRight: right ? right + \"px\" : null\n };\n }\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n }\n },\n render: function render() {\n var _bem;\n\n var h = arguments[0];\n var span = this.span,\n offset = this.offset;\n return h(this.tag, {\n \"style\": this.style,\n \"class\": bem((_bem = {}, _bem[span] = span, _bem[\"offset-\" + offset] = offset, _bem)),\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots()]);\n }\n});","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\nimport { BORDER_TOP_BOTTOM } from '../utils/constant';\n\nvar _createNamespace = createNamespace('collapse'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanCollapse')],\n props: {\n accordion: Boolean,\n value: [String, Number, Array],\n border: {\n type: Boolean,\n default: true\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() {\n var _ref;\n\n var h = arguments[0];\n return h(\"div\", {\n \"class\": [bem(), (_ref = {}, _ref[BORDER_TOP_BOTTOM] = this.border, _ref)]\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { raf, doubleRaf } from '../utils/dom/raf'; // Mixins\n\nimport { ChildrenMixin } from '../mixins/relation'; // Components\n\nimport Cell from '../cell';\nimport { cellProps } from '../cell/shared';\n\nvar _createNamespace = createNamespace('collapse-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar CELL_SLOTS = ['title', 'icon', 'right-icon'];\nexport default createComponent({\n mixins: [ChildrenMixin('vanCollapse')],\n props: _extends({}, cellProps, {\n name: [Number, String],\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 currentName: function currentName() {\n var _this$name;\n\n return (_this$name = this.name) != null ? _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 _this$parent = this.parent,\n value = _this$parent.value,\n accordion = _this$parent.accordion;\n\n if (process.env.NODE_ENV === 'development' && !accordion && !Array.isArray(value)) {\n console.error('[Vant] Collapse: type of prop \"value\" should be Array');\n return;\n }\n\n return accordion ? value === this.currentName : value.some(function (name) {\n return name === _this.currentName;\n });\n }\n },\n created: function created() {\n this.show = this.expanded;\n this.inited = this.expanded;\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 } // Use raf: flick when opened in safari\n // Use nextTick: closing animation failed when set `user-select: none`\n\n\n var nextTick = _expanded ? this.$nextTick : raf;\n nextTick(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 offsetHeight = content.offsetHeight;\n\n if (offsetHeight) {\n var contentHeight = offsetHeight + \"px\";\n wrapper.style.height = _expanded ? 0 : contentHeight; // use double raf to ensure animation can start\n\n doubleRaf(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 this.toggle();\n }\n },\n // @exposed-api\n toggle: function toggle(expanded) {\n if (expanded === void 0) {\n expanded = !this.expanded;\n }\n\n var parent = this.parent,\n currentName = this.currentName;\n var close = parent.accordion && currentName === parent.value;\n var name = close ? '' : currentName;\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 = '';\n }\n },\n genTitle: function genTitle() {\n var _this3 = this;\n\n var h = this.$createElement;\n var border = this.border,\n disabled = this.disabled,\n expanded = this.expanded;\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 return h(Cell, {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": disabled ? -1 : 0,\n \"aria-expanded\": String(expanded)\n },\n \"class\": bem('title', {\n disabled: disabled,\n expanded: expanded,\n borderless: !border\n }),\n \"on\": {\n \"click\": this.onClick\n },\n \"scopedSlots\": titleSlots,\n \"props\": _extends({}, this.$props)\n });\n },\n genContent: function genContent() {\n var h = this.$createElement;\n\n if (this.inited) {\n return 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 }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": [bem({\n border: this.index && this.border\n })]\n }, [this.genTitle(), this.genContent()]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Cell from '../cell'; // Types\n\nvar _createNamespace = createNamespace('contact-card'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction ContactCard(h, props, slots, ctx) {\n var type = props.type,\n editable = props.editable;\n\n function onClick(event) {\n if (editable) {\n emit(ctx, 'click', event);\n }\n }\n\n function Content() {\n if (type === 'add') {\n return props.addText || t('addText');\n }\n\n return [h(\"div\", [t('name') + \"\\uFF1A\" + props.name]), h(\"div\", [t('tel') + \"\\uFF1A\" + props.tel])];\n }\n\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\": onClick\n }\n }, inherit(ctx)]), [Content()]);\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 createComponent(ContactCard);","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { isMobile } from '../utils/validate/mobile'; // Components\n\nimport Cell from '../cell';\nimport Field from '../field';\nimport Button from '../button';\nimport Dialog from '../dialog';\nimport Switch from '../switch';\n\nvar _createNamespace = createNamespace('contact-edit'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nvar defaultContact = {\n tel: '',\n name: ''\n};\nexport default createComponent({\n props: {\n isEdit: Boolean,\n isSaving: Boolean,\n isDeleting: Boolean,\n showSetDefault: Boolean,\n setDefaultLabel: String,\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: '',\n tel: ''\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] = '';\n },\n getErrorMessageByKey: function getErrorMessageByKey(key) {\n var value = this.data[key].trim();\n\n switch (key) {\n case 'name':\n return value ? '' : t('nameInvalid');\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] = 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 title: t('confirmDelete')\n }).then(function () {\n _this2.$emit('delete', _this2.data);\n });\n }\n },\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\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(\"div\", {\n \"class\": bem('fields')\n }, [h(Field, {\n \"attrs\": {\n \"clearable\": true,\n \"maxlength\": \"30\",\n \"label\": t('name'),\n \"placeholder\": t('nameEmpty'),\n \"errorMessage\": errorInfo.name\n },\n \"on\": {\n \"focus\": onFocus('name')\n },\n \"model\": {\n value: data.name,\n callback: function callback($$v) {\n _this3.$set(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 \"errorMessage\": errorInfo.tel\n },\n \"on\": {\n \"focus\": onFocus('tel')\n },\n \"model\": {\n value: data.tel,\n callback: function callback($$v) {\n _this3.$set(data, \"tel\", $$v);\n }\n }\n })]), this.showSetDefault && h(Cell, {\n \"attrs\": {\n \"title\": this.setDefaultLabel,\n \"border\": false\n },\n \"class\": bem('switch-cell')\n }, [h(Switch, {\n \"attrs\": {\n \"size\": 24\n },\n \"slot\": \"right-icon\",\n \"on\": {\n \"change\": function change(event) {\n _this3.$emit('change-default', event);\n }\n },\n \"model\": {\n value: data.isDefault,\n callback: function callback($$v) {\n _this3.$set(data, \"isDefault\", $$v);\n }\n }\n })]), h(\"div\", {\n \"class\": bem('buttons')\n }, [h(Button, {\n \"attrs\": {\n \"block\": true,\n \"round\": 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 \"round\": 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\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { RED } from '../utils/constant';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Tag from '../tag';\nimport Icon from '../icon';\nimport Cell from '../cell';\nimport Radio from '../radio';\nimport Button from '../button';\nimport RadioGroup from '../radio-group'; // Types\n\nvar _createNamespace = createNamespace('contact-list'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction ContactList(h, props, slots, ctx) {\n var List = props.list && props.list.map(function (item, index) {\n function onClick() {\n emit(ctx, 'input', item.id);\n emit(ctx, 'select', item, index);\n }\n\n function RightIcon() {\n return h(Radio, {\n \"attrs\": {\n \"name\": item.id,\n \"iconSize\": 16,\n \"checkedColor\": RED\n },\n \"on\": {\n \"click\": onClick\n }\n });\n }\n\n function LeftIcon() {\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 function Content() {\n var nodes = [item.name + \"\\uFF0C\" + item.tel];\n\n if (item.isDefault && props.defaultTagText) {\n nodes.push(h(Tag, {\n \"attrs\": {\n \"type\": \"danger\",\n \"round\": true\n },\n \"class\": bem('item-tag')\n }, [props.defaultTagText]));\n }\n\n return nodes;\n }\n\n return h(Cell, {\n \"key\": item.id,\n \"attrs\": {\n \"isLink\": true,\n \"center\": true,\n \"valueClass\": bem('item-value')\n },\n \"class\": bem('item'),\n \"scopedSlots\": {\n icon: LeftIcon,\n default: Content,\n 'right-icon': RightIcon\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(\"div\", {\n \"class\": bem('bottom')\n }, [h(Button, {\n \"attrs\": {\n \"round\": true,\n \"block\": true,\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 defaultTagText: String\n};\nexport default createComponent(ContactList);","import { padZero } from '../utils/format/string';\nvar SECOND = 1000;\nvar MINUTE = 60 * SECOND;\nvar HOUR = 60 * MINUTE;\nvar DAY = 24 * HOUR;\nexport function parseTimeData(time) {\n var days = Math.floor(time / DAY);\n var hours = Math.floor(time % DAY / HOUR);\n var minutes = Math.floor(time % HOUR / MINUTE);\n var seconds = Math.floor(time % MINUTE / SECOND);\n var milliseconds = Math.floor(time % SECOND);\n return {\n days: days,\n hours: hours,\n minutes: minutes,\n seconds: seconds,\n milliseconds: milliseconds\n };\n}\nexport function parseFormat(format, timeData) {\n var days = timeData.days;\n var hours = timeData.hours,\n minutes = timeData.minutes,\n seconds = timeData.seconds,\n milliseconds = timeData.milliseconds;\n\n if (format.indexOf('DD') === -1) {\n hours += days * 24;\n } else {\n format = format.replace('DD', padZero(days));\n }\n\n if (format.indexOf('HH') === -1) {\n minutes += hours * 60;\n } else {\n format = format.replace('HH', padZero(hours));\n }\n\n if (format.indexOf('mm') === -1) {\n seconds += minutes * 60;\n } else {\n format = format.replace('mm', padZero(minutes));\n }\n\n if (format.indexOf('ss') === -1) {\n milliseconds += seconds * 1000;\n } else {\n format = format.replace('ss', padZero(seconds));\n }\n\n if (format.indexOf('S') !== -1) {\n var ms = padZero(milliseconds, 3);\n\n if (format.indexOf('SSS') !== -1) {\n format = format.replace('SSS', ms);\n } else if (format.indexOf('SS') !== -1) {\n format = format.replace('SS', ms.slice(0, 2));\n } else {\n format = format.replace('S', ms.charAt(0));\n }\n }\n\n return format;\n}\nexport function isSameSecond(time1, time2) {\n return Math.floor(time1 / 1000) === Math.floor(time2 / 1000);\n}","import { createNamespace } from '../utils';\nimport { raf, cancelRaf } from '../utils/dom/raf';\nimport { isSameSecond, parseTimeData, parseFormat } from './utils';\n\nvar _createNamespace = createNamespace('count-down'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n millisecond: Boolean,\n time: {\n type: [Number, String],\n default: 0\n },\n format: {\n type: String,\n default: 'HH:mm:ss'\n },\n autoStart: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n remain: 0\n };\n },\n computed: {\n timeData: function timeData() {\n return parseTimeData(this.remain);\n },\n formattedTime: function formattedTime() {\n return parseFormat(this.format, this.timeData);\n }\n },\n watch: {\n time: {\n immediate: true,\n handler: 'reset'\n }\n },\n activated: function activated() {\n if (this.keepAlivePaused) {\n this.counting = true;\n this.keepAlivePaused = false;\n this.tick();\n }\n },\n deactivated: function deactivated() {\n if (this.counting) {\n this.pause();\n this.keepAlivePaused = true;\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.pause();\n },\n methods: {\n // @exposed-api\n start: function start() {\n if (this.counting) {\n return;\n }\n\n this.counting = true;\n this.endTime = Date.now() + this.remain;\n this.tick();\n },\n // @exposed-api\n pause: function pause() {\n this.counting = false;\n cancelRaf(this.rafId);\n },\n // @exposed-api\n reset: function reset() {\n this.pause();\n this.remain = +this.time;\n\n if (this.autoStart) {\n this.start();\n }\n },\n tick: function tick() {\n if (this.millisecond) {\n this.microTick();\n } else {\n this.macroTick();\n }\n },\n microTick: function microTick() {\n var _this = this;\n\n this.rafId = raf(function () {\n /* istanbul ignore if */\n // in case of call reset immediately after finish\n if (!_this.counting) {\n return;\n }\n\n _this.setRemain(_this.getRemain());\n\n if (_this.remain > 0) {\n _this.microTick();\n }\n });\n },\n macroTick: function macroTick() {\n var _this2 = this;\n\n this.rafId = raf(function () {\n /* istanbul ignore if */\n // in case of call reset immediately after finish\n if (!_this2.counting) {\n return;\n }\n\n var remain = _this2.getRemain();\n\n if (!isSameSecond(remain, _this2.remain) || remain === 0) {\n _this2.setRemain(remain);\n }\n\n if (_this2.remain > 0) {\n _this2.macroTick();\n }\n });\n },\n getRemain: function getRemain() {\n return Math.max(this.endTime - Date.now(), 0);\n },\n setRemain: function setRemain(remain) {\n this.remain = remain;\n this.$emit('change', this.timeData);\n\n if (remain === 0) {\n this.pause();\n this.$emit('finish');\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [this.slots('default', this.timeData) || this.formattedTime]);\n }\n});","import { createNamespace } from '../utils';\nimport { RED } from '../utils/constant';\nimport { padZero } from '../utils/format/string';\nimport Checkbox from '../checkbox';\n\nvar _createNamespace = createNamespace('coupon'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\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 createComponent({\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 var _this$coupon = this.coupon,\n startAt = _this$coupon.startAt,\n endAt = _this$coupon.endAt;\n return getDate(startAt) + \" - \" + getDate(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 if (coupon.denominations) {\n var denominations = formatAmount(coupon.denominations);\n return \"\" + this.currency + \" \" + denominations;\n }\n\n if (coupon.discount) {\n return t('discount', formatDiscount(coupon.discount));\n }\n\n return '';\n },\n conditionMessage: function conditionMessage() {\n var condition = formatAmount(this.coupon.originCondition);\n return condition === '0' ? t('unlimited') : t('condition', condition);\n }\n },\n render: function render() {\n var h = arguments[0];\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 \"class\": bem('amount'),\n \"domProps\": {\n \"innerHTML\": this.faceAmount\n }\n }), h(\"p\", {\n \"class\": bem('condition')\n }, [this.coupon.condition || this.conditionMessage])]), h(\"div\", {\n \"class\": bem('body')\n }, [h(\"p\", {\n \"class\": bem('name')\n }, [coupon.name]), h(\"p\", {\n \"class\": bem('valid')\n }, [this.validPeriod]), !this.disabled && h(Checkbox, {\n \"attrs\": {\n \"size\": 18,\n \"value\": this.chosen,\n \"checkedColor\": RED\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\";\n// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { inherit } from '../utils/functional'; // Components\n\nimport Cell from '../cell'; // Types\n\nvar _createNamespace = createNamespace('coupon-cell'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[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 = 0;\n\n if (isDef(coupon.value)) {\n value = coupon.value;\n } else if (isDef(coupon.denominations)) {\n value = coupon.denominations;\n }\n\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 selected = props.coupons[+props.chosenCoupon];\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\": bem('value', {\n selected: selected\n })\n }\n }, inherit(ctx, true)]));\n}\n\nCouponCell.model = {\n prop: 'chosenCoupon'\n};\nCouponCell.props = {\n title: String,\n coupons: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\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, String],\n default: -1\n }\n};\nexport default createComponent(CouponCell);","import { raf, cancelRaf } from '../utils/dom/raf';\nimport { getScrollTop, setScrollTop } from '../utils/dom/scroll';\nvar scrollLeftRafId;\nexport function scrollLeftTo(scroller, to, duration) {\n cancelRaf(scrollLeftRafId);\n var count = 0;\n var from = scroller.scrollLeft;\n var frames = duration === 0 ? 1 : Math.round(duration * 1000 / 16);\n\n function animate() {\n scroller.scrollLeft += (to - from) / frames;\n\n if (++count < frames) {\n scrollLeftRafId = raf(animate);\n }\n }\n\n animate();\n}\nexport function scrollTopTo(scroller, to, duration, callback) {\n var current = getScrollTop(scroller);\n var isDown = current < to;\n var frames = duration === 0 ? 1 : Math.round(duration * 1000 / 16);\n var step = (to - current) / frames;\n\n function animate() {\n current += step;\n\n if (isDown && current > to || !isDown && current < to) {\n current = to;\n }\n\n setScrollTop(scroller, current);\n\n if (isDown && current < to || !isDown && current > to) {\n raf(animate);\n } else if (callback) {\n raf(callback);\n }\n }\n\n animate();\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { ChildrenMixin } from '../mixins/relation';\nimport { routeProps } from '../utils/router';\n\nvar _createNamespace = createNamespace('tab'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanTabs')],\n props: _extends({}, routeProps, {\n dot: Boolean,\n name: [Number, String],\n // @deprecated\n info: [Number, String],\n badge: [Number, String],\n title: String,\n titleStyle: null,\n disabled: Boolean\n }),\n data: function data() {\n return {\n inited: false\n };\n },\n computed: {\n computedName: function computedName() {\n var _this$name;\n\n return (_this$name = this.name) != null ? _this$name : this.index;\n },\n isActive: function isActive() {\n var active = this.computedName === this.parent.currentName;\n\n if (active) {\n this.inited = true;\n }\n\n return active;\n }\n },\n watch: {\n title: function title() {\n this.parent.setLine();\n },\n inited: function inited(val) {\n var _this = this;\n\n if (this.parent.lazyRender && val) {\n this.$nextTick(function () {\n _this.parent.$emit('rendered', _this.computedName, _this.title);\n });\n }\n }\n },\n render: function render(h) {\n var slots = this.slots,\n parent = this.parent,\n isActive = this.isActive;\n var slotContent = slots();\n\n if (process.env.NODE_ENV === 'development' && this.info) {\n console.warn('[Vant] Tab: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n if (!slotContent && !parent.animated) {\n return;\n }\n\n var show = parent.scrollspy || isActive;\n var shouldRender = this.inited || parent.scrollspy || !parent.lazyRender;\n var Content = shouldRender ? slotContent : h();\n\n if (parent.animated) {\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"tabpanel\",\n \"aria-hidden\": !isActive\n },\n \"class\": bem('pane-wrapper', {\n inactive: !isActive\n })\n }, [h(\"div\", {\n \"class\": bem('pane')\n }, [Content])]);\n }\n\n return h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: show\n }],\n \"attrs\": {\n \"role\": \"tabpanel\"\n },\n \"class\": bem('pane')\n }, [Content]);\n }\n});","export function isHidden(el) {\n var style = window.getComputedStyle(el);\n var hidden = style.display === 'none'; // offsetParent returns null in the following situations:\n // 1. The element or its parent element has the display property set to none.\n // 2. The element has the position property set to fixed\n\n var parentHidden = el.offsetParent === null && style.position !== 'fixed';\n return hidden || parentHidden;\n}","import { isPromise, noop } from '.';\nexport function callInterceptor(options) {\n var interceptor = options.interceptor,\n args = options.args,\n done = options.done;\n\n if (interceptor) {\n var returnVal = interceptor.apply(void 0, args);\n\n if (isPromise(returnVal)) {\n returnVal.then(function (value) {\n if (value) {\n done();\n }\n }).catch(noop);\n } else if (returnVal) {\n done();\n }\n } else {\n done();\n }\n}","import { createNamespace, isDef } from '../utils';\nimport Info from '../info';\n\nvar _createNamespace = createNamespace('tab'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n dot: Boolean,\n type: String,\n info: [Number, String],\n color: String,\n title: String,\n isActive: Boolean,\n disabled: Boolean,\n scrollable: Boolean,\n activeColor: String,\n inactiveColor: String\n },\n computed: {\n style: function style() {\n var style = {};\n var color = this.color,\n isActive = this.isActive;\n var isCard = this.type === 'card'; // card theme color\n\n if (color && isCard) {\n style.borderColor = color;\n\n if (!this.disabled) {\n if (isActive) {\n style.backgroundColor = color;\n } else {\n style.color = color;\n }\n }\n }\n\n var titleColor = isActive ? this.activeColor : this.inactiveColor;\n\n if (titleColor) {\n style.color = titleColor;\n }\n\n return style;\n }\n },\n methods: {\n onClick: function onClick() {\n this.$emit('click');\n },\n genText: function genText() {\n var h = this.$createElement;\n var Text = h(\"span\", {\n \"class\": bem('text', {\n ellipsis: !this.scrollable\n })\n }, [this.slots() || this.title]);\n\n if (this.dot || isDef(this.info) && this.info !== '') {\n return h(\"span\", {\n \"class\": bem('text-wrapper')\n }, [Text, h(Info, {\n \"attrs\": {\n \"dot\": this.dot,\n \"info\": this.info\n }\n })]);\n }\n\n return Text;\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"tab\",\n \"aria-selected\": this.isActive\n },\n \"class\": [bem({\n active: this.isActive,\n disabled: this.disabled\n })],\n \"style\": this.style,\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genText()]);\n }\n});","import { isHidden } from '../utils/dom/style';\nimport { unitToPx } from '../utils/format/unit';\nimport { createNamespace, isDef, isServer } from '../utils';\nimport { getScrollTop, getElementTop, getScroller } from '../utils/dom/scroll';\nimport { BindEventMixin } from '../mixins/bind-event';\n\nvar _createNamespace = createNamespace('sticky'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [BindEventMixin(function (bind, isBind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n if (this.observer) {\n var method = isBind ? 'observe' : 'unobserve';\n this.observer[method](this.$el);\n }\n\n bind(this.scroller, 'scroll', this.onScroll, true);\n this.onScroll();\n })],\n props: {\n zIndex: [Number, String],\n container: null,\n offsetTop: {\n type: [Number, String],\n default: 0\n }\n },\n data: function data() {\n return {\n fixed: false,\n height: 0,\n transform: 0\n };\n },\n computed: {\n offsetTopPx: function offsetTopPx() {\n return unitToPx(this.offsetTop);\n },\n style: function style() {\n if (!this.fixed) {\n return;\n }\n\n var style = {};\n\n if (isDef(this.zIndex)) {\n style.zIndex = this.zIndex;\n }\n\n if (this.offsetTopPx && this.fixed) {\n style.top = this.offsetTopPx + \"px\";\n }\n\n if (this.transform) {\n style.transform = \"translate3d(0, \" + this.transform + \"px, 0)\";\n }\n\n return style;\n }\n },\n created: function created() {\n var _this = this;\n\n // compatibility: https://caniuse.com/#feat=intersectionobserver\n if (!isServer && window.IntersectionObserver) {\n this.observer = new IntersectionObserver(function (entries) {\n // trigger scroll when visibility changed\n if (entries[0].intersectionRatio > 0) {\n _this.onScroll();\n }\n }, {\n root: document.body\n });\n }\n },\n methods: {\n onScroll: function onScroll() {\n var _this2 = this;\n\n if (isHidden(this.$el)) {\n return;\n }\n\n this.height = this.$el.offsetHeight;\n var container = this.container,\n offsetTopPx = this.offsetTopPx;\n var scrollTop = getScrollTop(window);\n var topToPageTop = getElementTop(this.$el);\n\n var emitScrollEvent = function emitScrollEvent() {\n _this2.$emit('scroll', {\n scrollTop: scrollTop,\n isFixed: _this2.fixed\n });\n }; // The sticky component should be kept inside the container element\n\n\n if (container) {\n var bottomToPageTop = topToPageTop + container.offsetHeight;\n\n if (scrollTop + offsetTopPx + this.height > bottomToPageTop) {\n var distanceToBottom = this.height + scrollTop - bottomToPageTop;\n\n if (distanceToBottom < this.height) {\n this.fixed = true;\n this.transform = -(distanceToBottom + offsetTopPx);\n } else {\n this.fixed = false;\n }\n\n emitScrollEvent();\n return;\n }\n }\n\n if (scrollTop + offsetTopPx > topToPageTop) {\n this.fixed = true;\n this.transform = 0;\n } else {\n this.fixed = false;\n }\n\n emitScrollEvent();\n }\n },\n render: function render() {\n var h = arguments[0];\n var fixed = this.fixed;\n var style = {\n height: fixed ? this.height + \"px\" : null\n };\n return h(\"div\", {\n \"style\": style\n }, [h(\"div\", {\n \"class\": bem({\n fixed: fixed\n }),\n \"style\": this.style\n }, [this.slots()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { TouchMixin } from '../mixins/touch';\n\nvar _createNamespace = createNamespace('tabs'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar MIN_SWIPE_DISTANCE = 50;\nexport default createComponent({\n mixins: [TouchMixin],\n props: {\n count: Number,\n duration: [Number, String],\n animated: Boolean,\n swipeable: Boolean,\n currentIndex: Number\n },\n computed: {\n style: function style() {\n if (this.animated) {\n return {\n transform: \"translate3d(\" + -1 * this.currentIndex * 100 + \"%, 0, 0)\",\n transitionDuration: this.duration + \"s\"\n };\n }\n },\n listeners: function listeners() {\n if (this.swipeable) {\n return {\n touchstart: this.touchStart,\n touchmove: this.touchMove,\n touchend: this.onTouchEnd,\n touchcancel: this.onTouchEnd\n };\n }\n }\n },\n methods: {\n // watch swipe touch end\n onTouchEnd: function onTouchEnd() {\n var direction = this.direction,\n deltaX = this.deltaX,\n currentIndex = this.currentIndex;\n /* istanbul ignore else */\n\n if (direction === 'horizontal' && this.offsetX >= MIN_SWIPE_DISTANCE) {\n /* istanbul ignore else */\n if (deltaX > 0 && currentIndex !== 0) {\n this.$emit('change', currentIndex - 1);\n } else if (deltaX < 0 && currentIndex !== this.count - 1) {\n this.$emit('change', currentIndex + 1);\n }\n }\n },\n genChildren: function genChildren() {\n var h = this.$createElement;\n\n if (this.animated) {\n return h(\"div\", {\n \"class\": bem('track'),\n \"style\": this.style\n }, [this.slots()]);\n }\n\n return this.slots();\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem('content', {\n animated: this.animated\n }),\n \"on\": _extends({}, this.listeners)\n }, [this.genChildren()]);\n }\n});","// Utils\nimport { createNamespace, isDef, addUnit } from '../utils';\nimport { scrollLeftTo, scrollTopTo } from './utils';\nimport { route } from '../utils/router';\nimport { isHidden } from '../utils/dom/style';\nimport { on, off } from '../utils/dom/event';\nimport { unitToPx } from '../utils/format/unit';\nimport { BORDER_TOP_BOTTOM } from '../utils/constant';\nimport { callInterceptor } from '../utils/interceptor';\nimport { getScroller, getVisibleTop, getElementTop, getVisibleHeight, setRootScrollTop } from '../utils/dom/scroll'; // Mixins\n\nimport { ParentMixin } from '../mixins/relation';\nimport { BindEventMixin } from '../mixins/bind-event'; // Components\n\nimport Title from './Title';\nimport Sticky from '../sticky';\nimport Content from './Content';\n\nvar _createNamespace = createNamespace('tabs'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanTabs'), BindEventMixin(function (bind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n bind(window, 'resize', this.resize, true);\n\n if (this.scrollspy) {\n bind(this.scroller, 'scroll', this.onScroll, true);\n }\n })],\n model: {\n prop: 'active'\n },\n props: {\n color: String,\n border: Boolean,\n sticky: Boolean,\n animated: Boolean,\n swipeable: Boolean,\n scrollspy: Boolean,\n background: String,\n lineWidth: [Number, String],\n lineHeight: [Number, String],\n beforeChange: Function,\n titleActiveColor: String,\n titleInactiveColor: String,\n type: {\n type: String,\n default: 'line'\n },\n active: {\n type: [Number, String],\n default: 0\n },\n ellipsis: {\n type: Boolean,\n default: true\n },\n duration: {\n type: [Number, String],\n default: 0.3\n },\n offsetTop: {\n type: [Number, String],\n default: 0\n },\n lazyRender: {\n type: Boolean,\n default: true\n },\n swipeThreshold: {\n type: [Number, String],\n default: 5\n },\n showDividingLine: {\n type: Boolean,\n default: false\n },\n align: {\n type: String,\n default: 'around'\n }\n },\n data: function data() {\n return {\n position: '',\n currentIndex: null,\n lineStyle: {\n backgroundColor: this.color\n }\n };\n },\n computed: {\n // whether the nav is scrollable\n scrollable: function scrollable() {\n return this.children.length > this.swipeThreshold || !this.ellipsis;\n },\n navStyle: function navStyle() {\n return {\n borderColor: this.color,\n background: this.background\n };\n },\n currentName: function currentName() {\n var activeTab = this.children[this.currentIndex];\n\n if (activeTab) {\n return activeTab.computedName;\n }\n },\n offsetTopPx: function offsetTopPx() {\n return unitToPx(this.offsetTop);\n },\n scrollOffset: function scrollOffset() {\n if (this.sticky) {\n return this.offsetTopPx + this.tabHeight;\n }\n\n return 0;\n }\n },\n watch: {\n color: 'setLine',\n active: function active(name) {\n if (name !== this.currentName) {\n this.setCurrentIndexByName(name);\n }\n },\n children: function children() {\n var _this = this;\n\n this.setCurrentIndexByName(this.active || this.currentName);\n this.setLine();\n this.$nextTick(function () {\n _this.scrollIntoView(true);\n });\n },\n currentIndex: function currentIndex() {\n this.scrollIntoView();\n this.setLine(); // scroll to correct position\n\n if (this.stickyFixed && !this.scrollspy) {\n setRootScrollTop(Math.ceil(getElementTop(this.$el) - this.offsetTopPx));\n }\n },\n scrollspy: function scrollspy(val) {\n if (val) {\n on(this.scroller, 'scroll', this.onScroll, true);\n } else {\n off(this.scroller, 'scroll', this.onScroll);\n }\n }\n },\n mounted: function mounted() {\n this.init();\n },\n activated: function activated() {\n this.init();\n this.setLine();\n },\n methods: {\n // @exposed-api\n resize: function resize() {\n this.setLine();\n },\n init: function init() {\n var _this2 = this;\n\n this.$nextTick(function () {\n _this2.inited = true;\n _this2.tabHeight = getVisibleHeight(_this2.$refs.wrap);\n\n _this2.scrollIntoView(true);\n });\n },\n // update nav bar style\n setLine: function setLine() {\n var _this3 = this;\n\n var shouldAnimate = this.inited;\n this.$nextTick(function () {\n var titles = _this3.$refs.titles;\n\n if (!titles || !titles[_this3.currentIndex] || _this3.type !== 'line' || isHidden(_this3.$el)) {\n return;\n }\n\n var title = titles[_this3.currentIndex].$el;\n var lineWidth = _this3.lineWidth,\n lineHeight = _this3.lineHeight;\n var left = title.offsetLeft + title.offsetWidth / 2;\n var lineStyle = {\n width: addUnit(lineWidth),\n backgroundColor: _this3.color,\n transform: \"translateX(\" + left + \"px) translateX(-50%)\"\n };\n\n if (shouldAnimate) {\n lineStyle.transitionDuration = _this3.duration + \"s\";\n }\n\n if (isDef(lineHeight)) {\n var height = addUnit(lineHeight);\n lineStyle.height = height;\n lineStyle.borderRadius = height;\n }\n\n _this3.lineStyle = lineStyle;\n });\n },\n // correct the index of active tab\n setCurrentIndexByName: function setCurrentIndexByName(name) {\n var matched = this.children.filter(function (tab) {\n return tab.computedName === name;\n });\n var defaultIndex = (this.children[0] || {}).index || 0;\n this.setCurrentIndex(matched.length ? matched[0].index : defaultIndex);\n },\n setCurrentIndex: function setCurrentIndex(currentIndex) {\n var newIndex = this.findAvailableTab(currentIndex);\n\n if (!isDef(newIndex)) {\n return;\n }\n\n var newTab = this.children[newIndex];\n var newName = newTab.computedName;\n var shouldEmitChange = this.currentIndex !== null;\n this.currentIndex = newIndex;\n\n if (newName !== this.active) {\n this.$emit('input', newName);\n\n if (shouldEmitChange) {\n this.$emit('change', newName, newTab.title);\n }\n }\n },\n findAvailableTab: function findAvailableTab(index) {\n var diff = index < this.currentIndex ? -1 : 1;\n\n while (index >= 0 && index < this.children.length) {\n if (!this.children[index].disabled) {\n return index;\n }\n\n index += diff;\n }\n },\n // emit event when clicked\n onClick: function onClick(item, index) {\n var _this4 = this;\n\n var _this$children$index = this.children[index],\n title = _this$children$index.title,\n disabled = _this$children$index.disabled,\n computedName = _this$children$index.computedName;\n\n if (disabled) {\n this.$emit('disabled', computedName, title);\n } else {\n callInterceptor({\n interceptor: this.beforeChange,\n args: [computedName],\n done: function done() {\n _this4.setCurrentIndex(index);\n\n _this4.scrollToCurrentContent();\n }\n });\n this.$emit('click', computedName, title);\n route(item.$router, item);\n }\n },\n // scroll active tab into view\n scrollIntoView: function scrollIntoView(immediate) {\n var titles = this.$refs.titles;\n\n if (!this.scrollable || !titles || !titles[this.currentIndex]) {\n return;\n }\n\n var nav = this.$refs.nav;\n var title = titles[this.currentIndex].$el;\n var to = title.offsetLeft - (nav.offsetWidth - title.offsetWidth) / 2;\n scrollLeftTo(nav, to, immediate ? 0 : +this.duration);\n },\n onSticktScroll: function onSticktScroll(params) {\n this.stickyFixed = params.isFixed;\n this.$emit('scroll', params);\n },\n // @exposed-api\n scrollTo: function scrollTo(name) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.setCurrentIndexByName(name);\n\n _this5.scrollToCurrentContent(true);\n });\n },\n scrollToCurrentContent: function scrollToCurrentContent(immediate) {\n var _this6 = this;\n\n if (immediate === void 0) {\n immediate = false;\n }\n\n if (this.scrollspy) {\n var target = this.children[this.currentIndex];\n var el = target == null ? void 0 : target.$el;\n\n if (el) {\n var to = getElementTop(el, this.scroller) - this.scrollOffset;\n this.lockScroll = true;\n scrollTopTo(this.scroller, to, immediate ? 0 : +this.duration, function () {\n _this6.lockScroll = false;\n });\n }\n }\n },\n onScroll: function onScroll() {\n if (this.scrollspy && !this.lockScroll) {\n var index = this.getCurrentIndexOnScroll();\n this.setCurrentIndex(index);\n }\n },\n getCurrentIndexOnScroll: function getCurrentIndexOnScroll() {\n var children = this.children;\n\n for (var index = 0; index < children.length; index++) {\n var top = getVisibleTop(children[index].$el);\n\n if (top > this.scrollOffset) {\n return index === 0 ? 0 : index - 1;\n }\n }\n\n return children.length - 1;\n }\n },\n render: function render() {\n var _this7 = this,\n _ref;\n\n var h = arguments[0];\n var type = this.type,\n animated = this.animated,\n scrollable = this.scrollable;\n var Nav = this.children.map(function (item, index) {\n var _item$badge;\n\n return h(Title, {\n \"ref\": \"titles\",\n \"refInFor\": true,\n \"attrs\": {\n \"type\": type,\n \"dot\": item.dot,\n \"info\": (_item$badge = item.badge) != null ? _item$badge : item.info,\n \"title\": item.title,\n \"color\": _this7.color,\n \"isActive\": index === _this7.currentIndex,\n \"disabled\": item.disabled,\n \"scrollable\": scrollable,\n \"activeColor\": _this7.titleActiveColor,\n \"inactiveColor\": _this7.titleInactiveColor\n },\n \"style\": item.titleStyle,\n \"scopedSlots\": {\n default: function _default() {\n return item.slots('title');\n }\n },\n \"on\": {\n \"click\": function click() {\n _this7.onClick(item, index);\n }\n }\n });\n });\n var Wrap = h(\"div\", {\n \"ref\": \"wrap\",\n \"class\": [bem('wrap', [this.align, {\n scrollable: scrollable\n }, {\n dividingLine: this.showDividingLine\n }]), (_ref = {}, _ref[BORDER_TOP_BOTTOM] = type === 'line' && this.border, _ref)]\n }, [h(\"div\", {\n \"ref\": \"nav\",\n \"attrs\": {\n \"role\": \"tablist\"\n },\n \"class\": bem('nav', [type, {\n complete: this.scrollable\n }]),\n \"style\": this.navStyle\n }, [this.slots('nav-left'), Nav, type === 'line' && h(\"div\", {\n \"class\": bem('line'),\n \"style\": this.lineStyle\n }), this.slots('nav-right')])]);\n return h(\"div\", {\n \"class\": bem([type])\n }, [this.sticky ? h(Sticky, {\n \"attrs\": {\n \"container\": this.$el,\n \"offsetTop\": this.offsetTop\n },\n \"on\": {\n \"scroll\": this.onSticktScroll\n }\n }, [Wrap]) : Wrap, h(Content, {\n \"attrs\": {\n \"count\": this.children.length,\n \"animated\": animated,\n \"duration\": this.duration,\n \"swipeable\": this.swipeable,\n \"currentIndex\": this.currentIndex\n },\n \"on\": {\n \"change\": this.setCurrentIndex\n }\n }, [this.slots()])]);\n }\n});","// Utils\nimport { createNamespace } from '../utils'; // Components\n\nimport Tab from '../tab';\nimport Tabs from '../tabs';\nimport Field from '../field';\nimport Button from '../button';\nimport Coupon from '../coupon';\n\nvar _createNamespace = createNamespace('coupon-list'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nvar EMPTY_IMAGE = 'https://img.yzcdn.cn/vant/coupon-empty.png';\nexport default createComponent({\n model: {\n prop: 'code'\n },\n props: {\n code: String,\n closeButtonText: String,\n inputPlaceholder: String,\n enabledTitle: String,\n disabledTitle: 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 coupons: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n disabledCoupons: {\n type: Array,\n default: function _default() {\n return [];\n }\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 showCount: {\n type: Boolean,\n default: true\n },\n currency: {\n type: String,\n default: '¥'\n },\n emptyImage: {\n type: String,\n default: EMPTY_IMAGE\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 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: 'scrollToShowCoupon'\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 genEmpty: function genEmpty() {\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": bem('empty')\n }, [h(\"img\", {\n \"attrs\": {\n \"src\": this.emptyImage\n }\n }), h(\"p\", [t('empty')])]);\n },\n genExchangeButton: function genExchangeButton() {\n var h = this.$createElement;\n return h(Button, {\n \"attrs\": {\n \"plain\": true,\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() {\n var _this2 = this;\n\n var h = arguments[0];\n var coupons = this.coupons,\n disabledCoupons = this.disabledCoupons;\n var count = this.showCount ? \" (\" + coupons.length + \")\" : '';\n var title = (this.enabledTitle || t('enable')) + count;\n var disabledCount = this.showCount ? \" (\" + disabledCoupons.length + \")\" : '';\n var disabledTitle = (this.disabledTitle || t('disabled')) + disabledCount;\n var ExchangeBar = this.showExchangeBar && h(\"div\", {\n \"class\": bem('exchange-bar')\n }, [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 \"model\": {\n value: _this2.currentCode,\n callback: function callback($$v) {\n _this2.currentCode = $$v;\n }\n }\n }), this.genExchangeButton()]);\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\": title\n }\n }, [h(\"div\", {\n \"class\": bem('list', {\n 'with-bottom': this.showCloseButton\n }),\n \"style\": this.listStyle\n }, [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 }), !coupons.length && this.genEmpty()])]);\n var DisabledCouponTab = h(Tab, {\n \"attrs\": {\n \"title\": disabledTitle\n }\n }, [h(\"div\", {\n \"class\": bem('list', {\n 'with-bottom': this.showCloseButton\n }),\n \"style\": this.listStyle\n }, [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 }), !disabledCoupons.length && this.genEmpty()])]);\n return h(\"div\", {\n \"class\": bem()\n }, [ExchangeBar, h(Tabs, {\n \"class\": bem('tab'),\n \"attrs\": {\n \"border\": false\n },\n \"model\": {\n value: _this2.tab,\n callback: function callback($$v) {\n _this2.tab = $$v;\n }\n }\n }, [CouponTab, DisabledCouponTab]), h(\"div\", {\n \"class\": bem('bottom')\n }, [h(Button, {\n \"directives\": [{\n name: \"show\",\n value: this.showCloseButton\n }],\n \"attrs\": {\n \"round\": true,\n \"type\": \"danger\",\n \"block\": true,\n \"text\": this.closeButtonText || t('close')\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": onChange(-1)\n }\n })])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { times } from './utils';\nimport { padZero } from '../utils/format/string';\nimport { pickerProps } from '../picker/shared';\nimport Picker from '../picker';\nexport var sharedProps = _extends({}, pickerProps, {\n value: null,\n filter: Function,\n columnsOrder: Array,\n showToolbar: {\n type: Boolean,\n default: true\n },\n formatter: {\n type: Function,\n default: function _default(type, value) {\n return value;\n }\n }\n});\nexport var TimePickerMixin = {\n data: function data() {\n return {\n innerValue: this.formatValue(this.value)\n };\n },\n computed: {\n originColumns: function originColumns() {\n var _this = this;\n\n return 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 = padZero(rangeArr[0] + index);\n return value;\n });\n\n if (_this.filter) {\n values = _this.filter(type, values);\n }\n\n return {\n type: type,\n values: values\n };\n });\n },\n columns: function columns() {\n var _this2 = this;\n\n return this.originColumns.map(function (column) {\n return {\n values: column.values.map(function (value) {\n return _this2.formatter(column.type, value);\n })\n };\n });\n }\n },\n watch: {\n columns: 'updateColumnValue',\n innerValue: function innerValue(val) {\n this.$emit('input', val);\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.updateColumnValue();\n this.$nextTick(function () {\n _this3.updateInnerValue();\n });\n },\n methods: {\n // @exposed-api\n getPicker: function getPicker() {\n return this.$refs.picker;\n },\n onConfirm: function onConfirm() {\n this.$emit('confirm', this.innerValue);\n },\n onCancel: function onCancel() {\n this.$emit('cancel');\n }\n },\n render: function render() {\n var _this4 = this;\n\n var h = arguments[0];\n var props = {};\n Object.keys(pickerProps).forEach(function (key) {\n props[key] = _this4[key];\n });\n return h(Picker, {\n \"ref\": \"picker\",\n \"attrs\": {\n \"columns\": this.columns,\n \"readonly\": this.readonly\n },\n \"on\": {\n \"change\": this.onChange,\n \"confirm\": this.onConfirm,\n \"cancel\": this.onCancel\n },\n \"props\": _extends({}, props)\n });\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { padZero } from '../utils/format/string';\nimport { range } from '../utils/format/number';\nimport { sharedProps, TimePickerMixin } from './shared';\n\nvar _createNamespace = createNamespace('time-picker'),\n createComponent = _createNamespace[0];\n\nexport default createComponent({\n mixins: [TimePickerMixin],\n props: _extends({}, sharedProps, {\n minHour: {\n type: [Number, String],\n default: 0\n },\n maxHour: {\n type: [Number, String],\n default: 23\n },\n minMinute: {\n type: [Number, String],\n default: 0\n },\n maxMinute: {\n type: [Number, String],\n default: 59\n }\n }),\n computed: {\n ranges: function ranges() {\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 watch: {\n filter: 'updateInnerValue',\n minHour: 'updateInnerValue',\n maxHour: 'updateInnerValue',\n minMinute: 'updateInnerValue',\n maxMinute: 'updateInnerValue',\n value: function value(val) {\n val = this.formatValue(val);\n\n if (val !== this.innerValue) {\n this.innerValue = val;\n this.updateColumnValue();\n }\n }\n },\n methods: {\n formatValue: function formatValue(value) {\n if (!value) {\n value = padZero(this.minHour) + \":\" + padZero(this.minMinute);\n }\n\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 },\n updateInnerValue: function updateInnerValue() {\n var _this$getPicker$getIn = this.getPicker().getIndexes(),\n hourIndex = _this$getPicker$getIn[0],\n minuteIndex = _this$getPicker$getIn[1];\n\n var _this$originColumns = this.originColumns,\n hourColumn = _this$originColumns[0],\n minuteColumn = _this$originColumns[1];\n var hour = hourColumn.values[hourIndex] || hourColumn.values[0];\n var minute = minuteColumn.values[minuteIndex] || minuteColumn.values[0];\n this.innerValue = this.formatValue(hour + \":\" + minute);\n this.updateColumnValue();\n },\n onChange: function onChange(picker) {\n var _this = this;\n\n this.updateInnerValue();\n this.$nextTick(function () {\n _this.$nextTick(function () {\n _this.$emit('change', picker);\n });\n });\n },\n updateColumnValue: function updateColumnValue() {\n var _this2 = this;\n\n var formatter = this.formatter;\n var pair = this.innerValue.split(':');\n var values = [formatter('hour', pair[0]), formatter('minute', pair[1])];\n this.$nextTick(function () {\n _this2.getPicker().setValues(values);\n });\n }\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { isDate } from '../utils/validate/date';\nimport { padZero } from '../utils/format/string';\nimport { getTrueValue, getMonthEndDay } from './utils';\nimport { sharedProps, TimePickerMixin } from './shared';\nvar currentYear = new Date().getFullYear();\n\nvar _createNamespace = createNamespace('date-picker'),\n createComponent = _createNamespace[0];\n\nexport default createComponent({\n mixins: [TimePickerMixin],\n props: _extends({}, sharedProps, {\n type: {\n type: String,\n default: 'datetime'\n },\n minDate: {\n type: Date,\n default: function _default() {\n return new Date(currentYear - 10, 0, 1);\n },\n validator: isDate\n },\n maxDate: {\n type: Date,\n default: function _default() {\n return new Date(currentYear + 10, 11, 31);\n },\n validator: isDate\n }\n }),\n watch: {\n filter: 'updateInnerValue',\n minDate: 'updateInnerValue',\n maxDate: 'updateInnerValue',\n value: function value(val) {\n val = this.formatValue(val);\n\n if (val.valueOf() !== this.innerValue.valueOf()) {\n this.innerValue = val;\n }\n }\n },\n computed: {\n ranges: function ranges() {\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\n switch (this.type) {\n case 'date':\n result = result.slice(0, 3);\n break;\n\n case 'year-month':\n result = result.slice(0, 2);\n break;\n\n case 'month-day':\n result = result.slice(1, 3);\n break;\n\n case 'datehour':\n result = result.slice(0, 4);\n break;\n }\n\n if (this.columnsOrder) {\n var columnsOrder = this.columnsOrder.concat(result.map(function (column) {\n return column.type;\n }));\n result.sort(function (a, b) {\n return columnsOrder.indexOf(a.type) - columnsOrder.indexOf(b.type);\n });\n }\n\n return result;\n }\n },\n methods: {\n formatValue: function formatValue(value) {\n if (!isDate(value)) {\n value = this.minDate;\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 _ref;\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 _ref = {}, _ref[type + \"Year\"] = year, _ref[type + \"Month\"] = month, _ref[type + \"Date\"] = date, _ref[type + \"Hour\"] = hour, _ref[type + \"Minute\"] = minute, _ref;\n },\n updateInnerValue: function updateInnerValue() {\n var _this = this;\n\n var type = this.type;\n var indexes = this.getPicker().getIndexes();\n\n var getValue = function getValue(type) {\n var index = 0;\n\n _this.originColumns.forEach(function (column, columnIndex) {\n if (type === column.type) {\n index = columnIndex;\n }\n });\n\n var values = _this.originColumns[index].values;\n return getTrueValue(values[indexes[index]]);\n };\n\n var year;\n var month;\n var day;\n\n if (type === 'month-day') {\n year = this.innerValue.getFullYear();\n month = getValue('month');\n day = getValue('day');\n } else {\n year = getValue('year');\n month = getValue('month');\n day = type === 'year-month' ? 1 : getValue('day');\n }\n\n var maxDay = getMonthEndDay(year, month);\n day = day > maxDay ? maxDay : day;\n var hour = 0;\n var minute = 0;\n\n if (type === 'datehour') {\n hour = getValue('hour');\n }\n\n if (type === 'datetime') {\n hour = getValue('hour');\n minute = getValue('minute');\n }\n\n var value = new Date(year, month - 1, day, hour, minute);\n this.innerValue = this.formatValue(value);\n },\n onChange: function onChange(picker) {\n var _this2 = this;\n\n this.updateInnerValue();\n this.$nextTick(function () {\n _this2.$nextTick(function () {\n _this2.$emit('change', picker);\n });\n });\n },\n updateColumnValue: function updateColumnValue() {\n var _this3 = this;\n\n var value = this.innerValue;\n var formatter = this.formatter;\n var values = this.originColumns.map(function (column) {\n switch (column.type) {\n case 'year':\n return formatter('year', \"\" + value.getFullYear());\n\n case 'month':\n return formatter('month', padZero(value.getMonth() + 1));\n\n case 'day':\n return formatter('day', padZero(value.getDate()));\n\n case 'hour':\n return formatter('hour', padZero(value.getHours()));\n\n case 'minute':\n return formatter('minute', padZero(value.getMinutes()));\n\n default:\n // no default\n return null;\n }\n });\n this.$nextTick(function () {\n _this3.getPicker().setValues(values);\n });\n }\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport TimePicker from './TimePicker';\nimport DatePicker from './DatePicker';\n\nvar _createNamespace = createNamespace('datetime-picker'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: _extends({}, TimePicker.props, DatePicker.props),\n methods: {\n // @exposed-api\n getPicker: function getPicker() {\n return this.$refs.root.getPicker();\n }\n },\n render: function render() {\n var h = arguments[0];\n var Component = this.type === 'time' ? TimePicker : DatePicker;\n return h(Component, {\n \"ref\": \"root\",\n \"class\": bem(),\n \"props\": _extends({}, this.$props),\n \"on\": _extends({}, this.$listeners)\n });\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport DatetimePicker from '../datetime-picker';\nimport Field from '../field';\nimport Popup from '../popup';\nimport dayjs from 'dayjs';\n\nvar _createNamespace = createNamespace('date-picker-field'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: _extends({}, DatetimePicker.props, Field.props, {\n value: {\n type: [String, Number, Date],\n default: null\n },\n format: {\n type: String,\n default: 'YYYY-MM-DD'\n },\n formatValue: {\n type: String,\n default: 'YYYY-MM-DD'\n }\n }),\n data: function data() {\n return {\n currentDate: null,\n showPicker: false\n };\n },\n computed: {\n showValue: function showValue() {\n if (this.currentDate) {\n if (this.type === 'time') {\n return this.value;\n }\n\n return dayjs(this.currentDate).format(this.format);\n }\n\n return this.currentDate;\n }\n },\n watch: {\n value: function value(val) {\n this.currentDate = this.type === 'time' ? this.value : new Date(val);\n }\n },\n methods: {\n handleCancel: function handleCancel() {\n this.showPicker = false;\n },\n handleConfirm: function handleConfirm(val) {\n if (this.formatValue === 'timestamp' && this.type !== 'time') {\n val = new Date(val).getTime();\n }\n\n this.$emit('input', val);\n this.showPicker = false;\n },\n handleFocus: function handleFocus() {\n this.showPicker = true;\n },\n handlePopupInput: function handlePopupInput(val) {\n this.showPicker = val;\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [h(Field, {\n \"props\": _extends({}, _extends({}, this.$props, {\n value: this.showValue,\n readonly: true\n })),\n \"on\": _extends({}, this.$listeners, {\n \"focus\": this.handleFocus\n }),\n \"attrs\": {\n \"placeholder\": \"请选择时间\"\n }\n }), h(Popup, {\n \"attrs\": {\n \"value\": this.showPicker,\n \"position\": \"bottom\",\n \"show-toolbar\": true\n },\n \"on\": {\n \"input\": this.handlePopupInput\n }\n }, [h(DatetimePicker, {\n \"attrs\": {\n \"value\": this.currentDate,\n \"type\": this.type,\n \"minDate\": this.minDate,\n \"maxDate\": this.maxDate,\n \"filter\": this.filter,\n \"formatValue\": this.formatValue,\n \"format\": this.format\n },\n \"on\": {\n \"cancel\": this.handleCancel,\n \"confirm\": this.handleConfirm\n }\n })])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('divider'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Divider(h, props, slots, ctx) {\n var _bem;\n\n return h(\"div\", _mergeJSXProps([{\n \"attrs\": {\n \"role\": \"separator\"\n },\n \"style\": {\n borderColor: props.borderColor\n },\n \"class\": bem((_bem = {\n dashed: props.dashed,\n hairline: props.hairline\n }, _bem[\"content-\" + props.contentPosition] = slots.default, _bem))\n }, inherit(ctx, true)]), [slots.default && slots.default()]);\n}\n\nDivider.props = {\n dashed: Boolean,\n hairline: {\n type: Boolean,\n default: true\n },\n contentPosition: {\n type: String,\n default: 'center'\n }\n};\nexport default createComponent(Divider);","import { createNamespace } from '../utils'; // component\n\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('dot'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n inheritAttrs: false,\n props: {\n type: {\n type: String,\n default: 'common'\n },\n num: String || Number,\n value: String,\n dotClass: String\n },\n data: function data() {\n return {};\n },\n methods: {\n renderNumComponents: function renderNumComponents(num) {\n var h = this.$createElement;\n if (num > 99) return h(\"div\", {\n \"class\": bem('num__max')\n }, [h(Icon, {\n \"attrs\": {\n \"name\": \"cap-ellipsis\",\n \"size\": \"12\"\n }\n })]);\n if (num >= 10) return h(\"div\", {\n \"class\": bem('num__mid')\n }, [num]);\n if (num >= 1) return h(\"div\", {\n \"class\": bem('num__min')\n }, [num]);\n },\n renderTextComponents: function renderTextComponents(value) {\n var h = this.$createElement;\n\n if (value && value.length === 1) {\n return h(\"div\", {\n \"class\": bem('text__min')\n }, [value]);\n }\n\n return h(\"div\", {\n \"class\": bem('text')\n }, [value]);\n }\n },\n render: function render() {\n var h = arguments[0];\n var type = this.type,\n num = this.num,\n dotClass = this.dotClass,\n value = this.value;\n\n if (type === 'num') {\n // 数字角标组件\n return h(\"div\", {\n \"class\": [bem('dot'), dotClass]\n }, [this.renderNumComponents(num)]);\n }\n\n if (value) {\n // 中文标签\n return h(\"div\", {\n \"class\": [bem('dot'), dotClass]\n }, [this.renderTextComponents(value)]);\n }\n\n return h(\"div\", {\n \"class\": [bem('dot'), dotClass]\n }, [h(\"div\", {\n \"class\": bem('default')\n }, [num])]);\n }\n});","// Utils\nimport { createNamespace } from '../utils';\nimport { on, off } from '../utils/dom/event'; // Mixins\n\nimport { PortalMixin } from '../mixins/portal';\nimport { ChildrenMixin } from '../mixins/relation'; // Components\n\nimport Cell from '../cell';\nimport Icon from '../icon';\nimport Popup from '../popup';\n\nvar _createNamespace = createNamespace('dropdown-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [PortalMixin({\n ref: 'wrapper'\n }), ChildrenMixin('vanDropdownMenu')],\n props: {\n value: null,\n title: String,\n disabled: Boolean,\n titleClass: String,\n options: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n lazyRender: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n transition: true,\n showPopup: false,\n showWrapper: false\n };\n },\n computed: {\n displayTitle: function displayTitle() {\n var _this = this;\n\n if (this.title) {\n return this.title;\n }\n\n var match = this.options.filter(function (option) {\n return option.value === _this.value;\n });\n return match.length ? match[0].text : '';\n }\n },\n watch: {\n showPopup: function showPopup(val) {\n this.bindScroll(val);\n }\n },\n beforeCreate: function beforeCreate() {\n var _this2 = this;\n\n var createEmitter = function createEmitter(eventName) {\n return function () {\n return _this2.$emit(eventName);\n };\n };\n\n this.onOpen = createEmitter('open');\n this.onClose = createEmitter('close');\n this.onOpened = createEmitter('opened');\n },\n methods: {\n // @exposed-api\n toggle: function toggle(show, options) {\n if (show === void 0) {\n show = !this.showPopup;\n }\n\n if (options === void 0) {\n options = {};\n }\n\n if (show === this.showPopup) {\n return;\n }\n\n this.transition = !options.immediate;\n this.showPopup = show;\n\n if (show) {\n this.parent.updateOffset();\n this.showWrapper = true;\n }\n },\n bindScroll: function bindScroll(bind) {\n var scroller = this.parent.scroller;\n var action = bind ? on : off;\n action(scroller, 'scroll', this.onScroll, true);\n },\n onScroll: function onScroll() {\n this.parent.updateOffset();\n },\n onClickWrapper: function onClickWrapper(event) {\n // prevent being identified as clicking outside and closed when use get-contaienr\n if (this.getContainer) {\n event.stopPropagation();\n }\n }\n },\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\n var _this$parent = this.parent,\n zIndex = _this$parent.zIndex,\n offset = _this$parent.offset,\n overlay = _this$parent.overlay,\n duration = _this$parent.duration,\n direction = _this$parent.direction,\n activeColor = _this$parent.activeColor,\n closeOnClickOverlay = _this$parent.closeOnClickOverlay;\n var Options = this.options.map(function (option) {\n var active = option.value === _this3.value;\n return h(Cell, {\n \"attrs\": {\n \"clickable\": true,\n \"icon\": option.icon,\n \"title\": option.text\n },\n \"key\": option.value,\n \"class\": bem('option', {\n active: active\n }),\n \"style\": {\n color: active ? activeColor : ''\n },\n \"on\": {\n \"click\": function click() {\n _this3.showPopup = false;\n\n if (option.value !== _this3.value) {\n _this3.$emit('input', option.value);\n\n _this3.$emit('change', option.value);\n }\n }\n }\n }, [active && h(Icon, {\n \"class\": bem('icon'),\n \"attrs\": {\n \"color\": activeColor,\n \"name\": \"success\"\n }\n })]);\n });\n var style = {\n zIndex: zIndex\n };\n\n if (direction === 'down') {\n style.top = offset + \"px\";\n } else {\n style.bottom = offset + \"px\";\n }\n\n return h(\"div\", [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.showWrapper\n }],\n \"ref\": \"wrapper\",\n \"style\": style,\n \"class\": bem([direction]),\n \"on\": {\n \"click\": this.onClickWrapper\n }\n }, [h(Popup, {\n \"attrs\": {\n \"overlay\": overlay,\n \"position\": direction === 'down' ? 'top' : 'bottom',\n \"duration\": this.transition ? duration : 0,\n \"lazyRender\": this.lazyRender,\n \"overlayStyle\": {\n position: 'absolute'\n },\n \"closeOnClickOverlay\": closeOnClickOverlay\n },\n \"class\": bem('content'),\n \"on\": {\n \"open\": this.onOpen,\n \"close\": this.onClose,\n \"opened\": this.onOpened,\n \"closed\": function closed() {\n _this3.showWrapper = false;\n\n _this3.$emit('closed');\n }\n },\n \"model\": {\n value: _this3.showPopup,\n callback: function callback($$v) {\n _this3.showPopup = $$v;\n }\n }\n }, [Options, this.slots('default')])])]);\n }\n});","/**\n * Listen to click outside event\n */\nimport { on, off } from '../utils/dom/event';\nexport var ClickOutsideMixin = function ClickOutsideMixin(config) {\n return {\n props: {\n closeOnClickOutside: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n var _this = this;\n\n var clickOutsideHandler = function clickOutsideHandler(event) {\n if (_this.closeOnClickOutside && !_this.$el.contains(event.target)) {\n _this[config.method]();\n }\n };\n\n return {\n clickOutsideHandler: clickOutsideHandler\n };\n },\n mounted: function mounted() {\n on(document, config.event, this.clickOutsideHandler);\n },\n beforeDestroy: function beforeDestroy() {\n off(document, config.event, this.clickOutsideHandler);\n }\n };\n};","// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { getScroller } from '../utils/dom/scroll'; // Mixins\n\nimport { ParentMixin } from '../mixins/relation';\nimport { ClickOutsideMixin } from '../mixins/click-outside';\n\nvar _createNamespace = createNamespace('dropdown-menu'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanDropdownMenu'), ClickOutsideMixin({\n event: 'click',\n method: 'onClickOutside'\n })],\n props: {\n zIndex: [Number, String],\n activeColor: String,\n overlay: {\n type: Boolean,\n default: true\n },\n duration: {\n type: [Number, String],\n default: 0.2\n },\n direction: {\n type: String,\n default: 'down'\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n offset: 0\n };\n },\n computed: {\n scroller: function scroller() {\n return getScroller(this.$el);\n },\n opened: function opened() {\n return this.children.some(function (item) {\n return item.showWrapper;\n });\n },\n barStyle: function barStyle() {\n if (this.opened && isDef(this.zIndex)) {\n return {\n zIndex: 1 + this.zIndex\n };\n }\n }\n },\n methods: {\n updateOffset: function updateOffset() {\n if (!this.$refs.bar) {\n return;\n }\n\n var rect = this.$refs.bar.getBoundingClientRect();\n\n if (this.direction === 'down') {\n this.offset = rect.bottom;\n } else {\n this.offset = window.innerHeight - rect.top;\n }\n },\n toggleItem: function toggleItem(active) {\n this.children.forEach(function (item, index) {\n if (index === active) {\n item.toggle();\n } else if (item.showPopup) {\n item.toggle(false, {\n immediate: true\n });\n }\n });\n },\n onClickOutside: function onClickOutside() {\n this.children.forEach(function (item) {\n item.toggle(false);\n });\n }\n },\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n var Titles = this.children.map(function (item, index) {\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": item.disabled ? -1 : 0\n },\n \"class\": bem('item', {\n disabled: item.disabled\n }),\n \"on\": {\n \"click\": function click() {\n if (!item.disabled) {\n _this.toggleItem(index);\n }\n }\n }\n }, [h(\"span\", {\n \"class\": [bem('title', {\n active: item.showPopup,\n down: item.showPopup === (_this.direction === 'down')\n }), item.titleClass],\n \"style\": {\n color: item.showPopup ? _this.activeColor : ''\n }\n }, [h(\"div\", {\n \"class\": \"van-ellipsis\"\n }, [item.slots('title') || item.displayTitle])])]);\n });\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"ref\": \"bar\",\n \"style\": this.barStyle,\n \"class\": bem('bar', {\n opened: this.opened\n })\n }, [Titles]), this.slots('default')]);\n }\n});","export default {\n render: function render() {\n var h = arguments[0];\n\n var genStop = function genStop(color, offset, opacity) {\n return h(\"stop\", {\n \"attrs\": {\n \"stop-color\": color,\n \"offset\": offset + \"%\",\n \"stop-opacity\": opacity\n }\n });\n };\n\n return h(\"svg\", {\n \"attrs\": {\n \"viewBox\": \"0 0 160 160\",\n \"xmlns\": \"http://www.w3.org/2000/svg\"\n }\n }, [h(\"defs\", [h(\"linearGradient\", {\n \"attrs\": {\n \"id\": \"c\",\n \"x1\": \"64.022%\",\n \"y1\": \"100%\",\n \"x2\": \"64.022%\",\n \"y2\": \"0%\"\n }\n }, [genStop('#FFF', 0, 0.5), genStop('#F2F3F5', 100)]), h(\"linearGradient\", {\n \"attrs\": {\n \"id\": \"d\",\n \"x1\": \"64.022%\",\n \"y1\": \"96.956%\",\n \"x2\": \"64.022%\",\n \"y2\": \"0%\"\n }\n }, [genStop('#F2F3F5', 0, 0.3), genStop('#F2F3F5', 100)]), h(\"linearGradient\", {\n \"attrs\": {\n \"id\": \"h\",\n \"x1\": \"50%\",\n \"y1\": \"0%\",\n \"x2\": \"50%\",\n \"y2\": \"84.459%\"\n }\n }, [genStop('#EBEDF0', 0), genStop('#DCDEE0', 100, 0)]), h(\"linearGradient\", {\n \"attrs\": {\n \"id\": \"i\",\n \"x1\": \"100%\",\n \"y1\": \"0%\",\n \"x2\": \"100%\",\n \"y2\": \"100%\"\n }\n }, [genStop('#EAEDF0', 0), genStop('#DCDEE0', 100)]), h(\"linearGradient\", {\n \"attrs\": {\n \"id\": \"k\",\n \"x1\": \"100%\",\n \"y1\": \"100%\",\n \"x2\": \"100%\",\n \"y2\": \"0%\"\n }\n }, [genStop('#EAEDF0', 0), genStop('#DCDEE0', 100)]), h(\"linearGradient\", {\n \"attrs\": {\n \"id\": \"m\",\n \"x1\": \"0%\",\n \"y1\": \"43.982%\",\n \"x2\": \"100%\",\n \"y2\": \"54.703%\"\n }\n }, [genStop('#EAEDF0', 0), genStop('#DCDEE0', 100)]), h(\"linearGradient\", {\n \"attrs\": {\n \"id\": \"n\",\n \"x1\": \"94.535%\",\n \"y1\": \"43.837%\",\n \"x2\": \"5.465%\",\n \"y2\": \"54.948%\"\n }\n }, [genStop('#EAEDF0', 0), genStop('#DCDEE0', 100)]), h(\"radialGradient\", {\n \"attrs\": {\n \"id\": \"g\",\n \"cx\": \"50%\",\n \"cy\": \"0%\",\n \"fx\": \"50%\",\n \"fy\": \"0%\",\n \"r\": \"100%\",\n \"gradientTransform\": \"matrix(0 1 -.54835 0 .5 -.5)\"\n }\n }, [genStop('#EBEDF0', 0), genStop('#FFF', 100, 0)])]), h(\"g\", {\n \"attrs\": {\n \"fill\": \"none\",\n \"fill-rule\": \"evenodd\"\n }\n }, [h(\"g\", {\n \"attrs\": {\n \"opacity\": \".8\"\n }\n }, [h(\"path\", {\n \"attrs\": {\n \"d\": \"M0 124V46h20v20h14v58H0z\",\n \"fill\": \"url(#c)\",\n \"transform\": \"matrix(-1 0 0 1 36 7)\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M40.5 5a8.504 8.504 0 018.13 6.009l.12-.005L49 11a8 8 0 11-1 15.938V27H34v-.174a6.5 6.5 0 11-1.985-12.808A8.5 8.5 0 0140.5 5z\",\n \"fill\": \"url(#d)\",\n \"transform\": \"translate(2 7)\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M96.016 0a4.108 4.108 0 013.934 2.868l.179-.004c2.138 0 3.871 1.71 3.871 3.818 0 2.109-1.733 3.818-3.871 3.818-.164 0-.325-.01-.484-.03v.03h-6.774v-.083a3.196 3.196 0 01-.726.083C90.408 10.5 89 9.111 89 7.398c0-1.636 1.284-2.976 2.911-3.094a3.555 3.555 0 01-.008-.247c0-2.24 1.842-4.057 4.113-4.057z\",\n \"fill\": \"url(#d)\",\n \"transform\": \"translate(2 7)\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M121 8h22.231v14H152v77.37h-31V8z\",\n \"fill\": \"url(#c)\",\n \"transform\": \"translate(2 7)\"\n }\n })]), h(\"path\", {\n \"attrs\": {\n \"fill\": \"url(#g)\",\n \"d\": \"M0 139h160v21H0z\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M37 18a7 7 0 013 13.326v26.742c0 1.23-.997 2.227-2.227 2.227h-1.546A2.227 2.227 0 0134 58.068V31.326A7 7 0 0137 18z\",\n \"fill\": \"url(#h)\",\n \"fill-rule\": \"nonzero\",\n \"transform\": \"translate(43 36)\"\n }\n }), h(\"g\", {\n \"attrs\": {\n \"opacity\": \".6\",\n \"stroke-linecap\": \"round\",\n \"stroke-width\": \"7\"\n }\n }, [h(\"path\", {\n \"attrs\": {\n \"d\": \"M20.875 11.136a18.868 18.868 0 00-5.284 13.121c0 5.094 2.012 9.718 5.284 13.12\",\n \"stroke\": \"url(#i)\",\n \"transform\": \"translate(43 36)\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M9.849 0C3.756 6.225 0 14.747 0 24.146c0 9.398 3.756 17.92 9.849 24.145\",\n \"stroke\": \"url(#i)\",\n \"transform\": \"translate(43 36)\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M57.625 11.136a18.868 18.868 0 00-5.284 13.121c0 5.094 2.012 9.718 5.284 13.12\",\n \"stroke\": \"url(#k)\",\n \"transform\": \"rotate(-180 76.483 42.257)\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M73.216 0c-6.093 6.225-9.849 14.747-9.849 24.146 0 9.398 3.756 17.92 9.849 24.145\",\n \"stroke\": \"url(#k)\",\n \"transform\": \"rotate(-180 89.791 42.146)\"\n }\n })]), h(\"g\", {\n \"attrs\": {\n \"transform\": \"translate(31 105)\",\n \"fill-rule\": \"nonzero\"\n }\n }, [h(\"rect\", {\n \"attrs\": {\n \"fill\": \"url(#m)\",\n \"width\": \"98\",\n \"height\": \"34\",\n \"rx\": \"2\"\n }\n }), h(\"rect\", {\n \"attrs\": {\n \"fill\": \"#FFF\",\n \"x\": \"9\",\n \"y\": \"8\",\n \"width\": \"80\",\n \"height\": \"18\",\n \"rx\": \"1.114\"\n }\n }), h(\"rect\", {\n \"attrs\": {\n \"fill\": \"url(#n)\",\n \"x\": \"15\",\n \"y\": \"12\",\n \"width\": \"18\",\n \"height\": \"6\",\n \"rx\": \"1.114\"\n }\n })])])]);\n }\n};","import { addUnit, createNamespace } from '../utils';\nimport Network from './Network';\n\nvar _createNamespace = createNamespace('empty'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar PRESETS = ['error', 'search', 'default'];\nexport default createComponent({\n props: {\n imageSize: [Number, String],\n description: String,\n image: {\n type: String,\n default: 'default'\n }\n },\n methods: {\n genImageContent: function genImageContent() {\n var h = this.$createElement;\n var slots = this.slots('image');\n\n if (slots) {\n return slots;\n }\n\n if (this.image === 'network') {\n return h(Network);\n }\n\n var image = this.image;\n\n if (PRESETS.indexOf(image) !== -1) {\n image = \"https://img.yzcdn.cn/vant/empty-image-\" + image + \".png\";\n }\n\n return h(\"img\", {\n \"attrs\": {\n \"src\": image\n }\n });\n },\n genImage: function genImage() {\n var h = this.$createElement;\n var imageStyle = {\n width: addUnit(this.imageSize),\n height: addUnit(this.imageSize)\n };\n return h(\"div\", {\n \"class\": bem('image'),\n \"style\": imageStyle\n }, [this.genImageContent()]);\n },\n genDescription: function genDescription() {\n var h = this.$createElement;\n var description = this.slots('description') || this.description;\n\n if (description) {\n return h(\"p\", {\n \"class\": bem('description')\n }, [description]);\n }\n },\n genBottom: function genBottom() {\n var h = this.$createElement;\n var slot = this.slots();\n\n if (slot) {\n return h(\"div\", {\n \"class\": bem('bottom')\n }, [slot]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [this.genImage(), this.genDescription(), this.genBottom()]);\n }\n});","import { createNamespace } from '../utils';\nimport { sortChildren } from '../utils/vnodes';\n\nvar _createNamespace = createNamespace('form'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n colon: Boolean,\n labelWidth: [Number, String],\n labelAlign: String,\n inputAlign: String,\n scrollToError: Boolean,\n validateFirst: Boolean,\n errorMessageAlign: String,\n submitOnEnter: {\n type: Boolean,\n default: true\n },\n validateTrigger: {\n type: String,\n default: 'onBlur'\n },\n showError: {\n type: Boolean,\n default: true\n },\n showErrorMessage: {\n type: Boolean,\n default: true\n },\n errorMode: {\n type: String,\n default: 'controller'\n } // 'default:controller,mode:label,controller,toast'\n\n },\n provide: function provide() {\n return {\n vanForm: this\n };\n },\n data: function data() {\n return {\n fields: []\n };\n },\n methods: {\n validateSeq: function validateSeq() {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n var errors = [];\n\n _this.fields.reduce(function (promise, field) {\n return promise.then(function () {\n if (!errors.length) {\n return field.validate().then(function (error) {\n if (error) {\n errors.push(error);\n }\n });\n }\n });\n }, Promise.resolve()).then(function () {\n if (errors.length) {\n reject(errors);\n } else {\n resolve();\n }\n });\n });\n },\n validateAll: function validateAll() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n Promise.all(_this2.fields.map(function (item) {\n return item.validate();\n })).then(function (errors) {\n errors = errors.filter(function (item) {\n return item;\n });\n\n if (errors.length) {\n reject(errors);\n } else {\n resolve();\n }\n });\n });\n },\n // @exposed-api\n validate: function validate(name) {\n if (name) {\n return this.validateField(name);\n }\n\n return this.validateFirst ? this.validateSeq() : this.validateAll();\n },\n validateField: function validateField(name) {\n var matched = this.fields.filter(function (item) {\n return item.name === name;\n });\n\n if (matched.length) {\n return new Promise(function (resolve, reject) {\n matched[0].validate().then(function (error) {\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n });\n });\n }\n\n return Promise.reject();\n },\n // @exposed-api\n resetValidation: function resetValidation(name) {\n this.fields.forEach(function (item) {\n if (!name || item.name === name) {\n item.resetValidation();\n }\n });\n },\n // @exposed-api\n scrollToField: function scrollToField(name, options) {\n this.fields.some(function (item) {\n if (item.name === name) {\n item.$el.scrollIntoView(options);\n return true;\n }\n\n return false;\n });\n },\n addField: function addField(field) {\n this.fields.push(field);\n sortChildren(this.fields, this);\n },\n removeField: function removeField(field) {\n this.fields = this.fields.filter(function (item) {\n return item !== field;\n });\n },\n getValues: function getValues() {\n return this.fields.reduce(function (form, field) {\n form[field.name] = field.formValue;\n return form;\n }, {});\n },\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n this.submit();\n },\n // @exposed-api\n submit: function submit() {\n var _this3 = this;\n\n var values = this.getValues();\n this.validate().then(function () {\n _this3.$emit('submit', values);\n }).catch(function (errors) {\n _this3.$emit('failed', {\n values: values,\n errors: errors\n });\n\n if (_this3.scrollToError) {\n _this3.scrollToField(errors[0].name);\n }\n });\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"form\", {\n \"class\": bem(),\n \"on\": {\n \"submit\": this.onSubmit\n }\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { route, routeProps } from '../utils/router';\nimport { ChildrenMixin } from '../mixins/relation';\nimport Info from '../info';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('goods-action-icon'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanGoodsAction')],\n props: _extends({}, routeProps, {\n dot: Boolean,\n text: String,\n icon: String,\n color: String,\n // @deprecated\n info: [Number, String],\n badge: [Number, String],\n iconClass: null\n }),\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n route(this.$router, this);\n },\n genIcon: function genIcon() {\n var _this$badge;\n\n var h = this.$createElement;\n var slot = this.slots('icon');\n var info = (_this$badge = this.badge) != null ? _this$badge : this.info;\n\n if (process.env.NODE_ENV === 'development' && this.info) {\n console.warn('[Vant] GoodsActionIcon: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n if (slot) {\n return h(\"div\", {\n \"class\": bem('icon')\n }, [slot, h(Info, {\n \"attrs\": {\n \"dot\": this.dot,\n \"info\": info\n }\n })]);\n }\n\n return h(Icon, {\n \"class\": [bem('icon'), this.iconClass],\n \"attrs\": {\n \"tag\": \"div\",\n \"dot\": this.dot,\n \"info\": info,\n \"name\": this.icon,\n \"color\": this.color\n }\n });\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\"\n },\n \"class\": bem(),\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genIcon(), this.slots() || this.text]);\n }\n});","import { createNamespace, addUnit } from '../utils';\nimport { BORDER_TOP } from '../utils/constant';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('grid'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanGrid')],\n props: {\n square: Boolean,\n gutter: [Number, String],\n iconSize: [Number, String],\n direction: String,\n clickable: Boolean,\n columnNum: {\n type: [Number, String],\n default: 4\n },\n center: {\n type: Boolean,\n default: true\n },\n border: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n style: function style() {\n var gutter = this.gutter;\n\n if (gutter) {\n return {\n paddingLeft: addUnit(gutter)\n };\n }\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n return h(\"div\", {\n \"style\": this.style,\n \"class\": [bem(), (_ref = {}, _ref[BORDER_TOP] = this.border && !this.gutter, _ref)]\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { BORDER } from '../utils/constant';\nimport { route, routeProps } from '../utils/router'; // Mixins\n\nimport { ChildrenMixin } from '../mixins/relation'; // Components\n\nimport Info from '../info';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('grid-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanGrid')],\n props: _extends({}, routeProps, {\n dot: Boolean,\n text: String,\n icon: String,\n iconPrefix: String,\n // @deprecated\n info: [Number, String],\n badge: [Number, String]\n }),\n computed: {\n style: function style() {\n var _this$parent = this.parent,\n square = _this$parent.square,\n gutter = _this$parent.gutter,\n columnNum = _this$parent.columnNum;\n var percent = 100 / columnNum + \"%\";\n var style = {\n flexBasis: percent\n };\n\n if (square) {\n style.paddingTop = percent;\n } else if (gutter) {\n var gutterValue = addUnit(gutter);\n style.paddingRight = gutterValue;\n\n if (this.index >= columnNum) {\n style.marginTop = gutterValue;\n }\n }\n\n return style;\n },\n contentStyle: function contentStyle() {\n var _this$parent2 = this.parent,\n square = _this$parent2.square,\n gutter = _this$parent2.gutter;\n\n if (square && gutter) {\n var gutterValue = addUnit(gutter);\n return {\n right: gutterValue,\n bottom: gutterValue,\n height: 'auto'\n };\n }\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n route(this.$router, this);\n },\n genIcon: function genIcon() {\n var _this$badge;\n\n var h = this.$createElement;\n var iconSlot = this.slots('icon');\n var info = (_this$badge = this.badge) != null ? _this$badge : this.info;\n\n if (process.env.NODE_ENV === 'development' && this.info) {\n console.warn('[Vant] GridItem: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n if (iconSlot) {\n return h(\"div\", {\n \"class\": bem('icon-wrapper')\n }, [iconSlot, h(Info, {\n \"attrs\": {\n \"dot\": this.dot,\n \"info\": info\n }\n })]);\n }\n\n if (this.icon) {\n return h(Icon, {\n \"attrs\": {\n \"name\": this.icon,\n \"dot\": this.dot,\n \"badge\": info,\n \"size\": this.parent.iconSize,\n \"classPrefix\": this.iconPrefix\n },\n \"class\": bem('icon')\n });\n }\n },\n getText: function getText() {\n var h = this.$createElement;\n var textSlot = this.slots('text');\n\n if (textSlot) {\n return textSlot;\n }\n\n if (this.text) {\n return h(\"span\", {\n \"class\": bem('text')\n }, [this.text]);\n }\n },\n genContent: function genContent() {\n var slot = this.slots();\n\n if (slot) {\n return slot;\n }\n\n return [this.genIcon(), this.getText()];\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n var _this$parent3 = this.parent,\n center = _this$parent3.center,\n border = _this$parent3.border,\n square = _this$parent3.square,\n gutter = _this$parent3.gutter,\n direction = _this$parent3.direction,\n clickable = _this$parent3.clickable;\n return h(\"div\", {\n \"class\": [bem({\n square: square\n })],\n \"style\": this.style\n }, [h(\"div\", {\n \"style\": this.contentStyle,\n \"attrs\": {\n \"role\": clickable ? 'button' : null,\n \"tabindex\": clickable ? 0 : null\n },\n \"class\": [bem('content', [direction, {\n center: center,\n square: square,\n clickable: clickable,\n surround: border && gutter\n }]), (_ref = {}, _ref[BORDER] = border, _ref)],\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.genContent()])]);\n }\n});","import { createNamespace } from '../utils';\n\nvar _createNamespace = createNamespace('image-preview'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport { createComponent, bem };","// Utils\nimport { createNamespace } from '../utils';\nimport { isHidden } from '../utils/dom/style';\nimport { preventDefault } from '../utils/dom/event';\nimport { doubleRaf } from '../utils/dom/raf';\nimport { range } from '../utils/format/number'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch';\nimport { ParentMixin } from '../mixins/relation';\nimport { BindEventMixin } from '../mixins/bind-event';\n\nvar _createNamespace = createNamespace('swipe'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [TouchMixin, ParentMixin('vanSwipe'), BindEventMixin(function (bind, isBind) {\n bind(window, 'resize', this.resize, true);\n bind(window, 'orientationchange', this.resize, true);\n bind(window, 'visibilitychange', this.onVisibilityChange);\n\n if (isBind) {\n this.initialize();\n } else {\n this.clear();\n }\n })],\n props: {\n width: [Number, String],\n height: [Number, String],\n autoplay: [Number, String],\n vertical: Boolean,\n lazyRender: Boolean,\n indicatorColor: String,\n loop: {\n type: Boolean,\n default: true\n },\n duration: {\n type: [Number, String],\n default: 500\n },\n touchable: {\n type: Boolean,\n default: true\n },\n initialSwipe: {\n type: [Number, String],\n default: 0\n },\n showIndicators: {\n type: Boolean,\n default: true\n },\n stopPropagation: {\n type: Boolean,\n default: true\n },\n roundCorner: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n rect: null,\n offset: 0,\n active: 0,\n deltaX: 0,\n deltaY: 0,\n swiping: false,\n computedWidth: 0,\n computedHeight: 0\n };\n },\n watch: {\n children: function children() {\n this.initialize();\n },\n initialSwipe: function initialSwipe() {\n this.initialize();\n },\n autoplay: function autoplay(_autoplay) {\n if (_autoplay > 0) {\n this.autoPlay();\n } else {\n this.clear();\n }\n }\n },\n computed: {\n count: function count() {\n return this.children.length;\n },\n maxCount: function maxCount() {\n return Math.ceil(Math.abs(this.minOffset) / this.size);\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 minOffset: function minOffset() {\n return (this.vertical ? this.rect.height : this.rect.width) - this.size * this.count;\n }\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$refs.track);\n },\n methods: {\n // initialize swipe position\n initialize: function initialize(active) {\n if (active === void 0) {\n active = +this.initialSwipe;\n }\n\n if (!this.$el || isHidden(this.$el)) {\n return;\n }\n\n clearTimeout(this.timer);\n var rect = this.$el.getBoundingClientRect();\n this.rect = rect;\n this.swiping = true;\n this.active = active;\n this.computedWidth = +this.width || rect.width;\n this.computedHeight = +this.height || rect.height;\n this.offset = this.getTargetOffset(active);\n this.children.forEach(function (swipe) {\n swipe.offset = 0;\n });\n this.autoPlay();\n },\n // @exposed-api\n resize: function resize() {\n this.initialize(this.activeIndicator);\n },\n onVisibilityChange: function onVisibilityChange() {\n if (document.hidden) {\n this.clear();\n } else {\n this.autoPlay();\n }\n },\n onTouchStart: function onTouchStart(event) {\n if (!this.touchable) return;\n this.clear();\n this.touchStartTime = Date.now();\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, this.stopPropagation);\n this.move({\n offset: this.delta\n });\n }\n },\n onTouchEnd: function onTouchEnd() {\n if (!this.touchable || !this.swiping) return;\n var size = this.size,\n delta = this.delta;\n var duration = Date.now() - this.touchStartTime;\n var speed = delta / duration;\n var shouldSwipe = Math.abs(speed) > 0.25 || Math.abs(delta) > size / 2;\n\n if (shouldSwipe && this.isCorrectDirection) {\n var offset = this.vertical ? this.offsetY : this.offsetX;\n var pace = 0;\n\n if (this.loop) {\n pace = offset > 0 ? delta > 0 ? -1 : 1 : 0;\n } else {\n pace = -Math[delta > 0 ? 'ceil' : 'floor'](delta / size);\n }\n\n this.move({\n pace: pace,\n emitChange: true\n });\n } else if (delta) {\n this.move({\n pace: 0\n });\n }\n\n this.swiping = false;\n this.autoPlay();\n },\n getTargetActive: function getTargetActive(pace) {\n var active = this.active,\n count = this.count,\n maxCount = this.maxCount;\n\n if (pace) {\n if (this.loop) {\n return range(active + pace, -1, count);\n }\n\n return range(active + pace, 0, maxCount);\n }\n\n return active;\n },\n getTargetOffset: function getTargetOffset(targetActive, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n var currentPosition = targetActive * this.size;\n\n if (!this.loop) {\n currentPosition = Math.min(currentPosition, -this.minOffset);\n }\n\n var targetOffset = offset - currentPosition;\n\n if (!this.loop) {\n targetOffset = range(targetOffset, this.minOffset, 0);\n }\n\n return targetOffset;\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 loop = this.loop,\n count = this.count,\n active = this.active,\n children = this.children,\n trackSize = this.trackSize,\n minOffset = this.minOffset;\n\n if (count <= 1) {\n return;\n }\n\n var targetActive = this.getTargetActive(pace);\n var targetOffset = this.getTargetOffset(targetActive, offset); // auto move first and last swipe in loop mode\n\n if (loop) {\n if (children[0] && targetOffset !== minOffset) {\n var outRightBound = targetOffset < minOffset;\n children[0].offset = outRightBound ? trackSize : 0;\n }\n\n if (children[count - 1] && targetOffset !== 0) {\n var outLeftBound = targetOffset > 0;\n children[count - 1].offset = outLeftBound ? -trackSize : 0;\n }\n }\n\n this.active = targetActive;\n this.offset = targetOffset;\n\n if (emitChange && targetActive !== active) {\n this.$emit('change', this.activeIndicator);\n }\n },\n // @exposed-api\n prev: function prev() {\n var _this = this;\n\n this.correctPosition();\n this.resetTouchStatus();\n doubleRaf(function () {\n _this.swiping = false;\n\n _this.move({\n pace: -1,\n emitChange: true\n });\n });\n },\n // @exposed-api\n next: function next() {\n var _this2 = this;\n\n this.correctPosition();\n this.resetTouchStatus();\n doubleRaf(function () {\n _this2.swiping = false;\n\n _this2.move({\n pace: 1,\n emitChange: true\n });\n });\n },\n // @exposed-api\n swipeTo: function swipeTo(index, options) {\n var _this3 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n this.correctPosition();\n this.resetTouchStatus();\n doubleRaf(function () {\n var targetIndex;\n\n if (_this3.loop && index === _this3.count) {\n targetIndex = _this3.active === 0 ? 0 : index;\n } else {\n targetIndex = index % _this3.count;\n }\n\n if (options.immediate) {\n doubleRaf(function () {\n _this3.swiping = false;\n });\n } else {\n _this3.swiping = false;\n }\n\n _this3.move({\n pace: targetIndex - _this3.active,\n emitChange: true\n });\n });\n },\n correctPosition: function correctPosition() {\n this.swiping = true;\n\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 _this4 = this;\n\n var autoplay = this.autoplay;\n\n if (autoplay > 0 && this.count > 1) {\n this.clear();\n this.timer = setTimeout(function () {\n _this4.next();\n\n _this4.autoPlay();\n }, autoplay);\n }\n },\n genIndicator: function genIndicator() {\n var _this5 = this;\n\n var h = this.$createElement;\n var count = this.count,\n activeIndicator = this.activeIndicator;\n var slot = this.slots('indicator');\n\n if (slot) {\n return slot;\n }\n\n if (this.showIndicators && count > 1) {\n return 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 ? _this5.indicatorStyle : null\n });\n })]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem() + ' ' + (this.roundCorner ? bem('round') : '')\n }, [h(\"div\", {\n \"ref\": \"track\",\n \"style\": this.trackStyle,\n \"class\": bem('track', {\n vertical: this.vertical\n })\n }, [this.slots()]), this.genIndicator()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { ChildrenMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('swipe-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanSwipe')],\n data: function data() {\n return {\n offset: 0,\n inited: false,\n mounted: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.mounted = true;\n });\n },\n computed: {\n style: function style() {\n var style = {};\n var _this$parent = this.parent,\n size = _this$parent.size,\n vertical = _this$parent.vertical;\n style[vertical ? 'height' : 'width'] = size + \"px\";\n\n if (this.offset) {\n style.transform = \"translate\" + (vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\";\n }\n\n return style;\n },\n shouldRender: function shouldRender() {\n var index = this.index,\n inited = this.inited,\n parent = this.parent,\n mounted = this.mounted;\n\n if (!parent.lazyRender || inited) {\n return true;\n } // wait for all item to mount, so we can get the exact count\n\n\n if (!mounted) {\n return false;\n }\n\n var active = parent.activeIndicator;\n var maxActive = parent.count - 1;\n var prevActive = active === 0 && parent.loop ? maxActive : active - 1;\n var nextActive = active === maxActive && parent.loop ? 0 : active + 1;\n var shouldRender = index === active || index === prevActive || index === nextActive;\n\n if (shouldRender) {\n this.inited = true;\n }\n\n return shouldRender;\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem(),\n \"style\": this.style,\n \"on\": _extends({}, this.$listeners)\n }, [this.shouldRender && this.slots()]);\n }\n});","// Utils\nimport { bem } from './shared';\nimport { range } from '../utils/format/number';\nimport { preventDefault } from '../utils/dom/event'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch'; // Component\n\nimport Image from '../image';\nimport Loading from '../loading';\nimport SwipeItem from '../swipe-item';\n\nfunction getDistance(touches) {\n return Math.sqrt(Math.pow(touches[0].clientX - touches[1].clientX, 2) + Math.pow(touches[0].clientY - touches[1].clientY, 2));\n}\n\nexport default {\n mixins: [TouchMixin],\n props: {\n src: String,\n show: Boolean,\n active: Number,\n minZoom: [Number, String],\n maxZoom: [Number, String],\n rootWidth: Number,\n rootHeight: Number\n },\n data: function data() {\n return {\n scale: 1,\n moveX: 0,\n moveY: 0,\n moving: false,\n zooming: false,\n imageRatio: 0,\n displayWidth: 0,\n displayHeight: 0\n };\n },\n computed: {\n vertical: function vertical() {\n var rootWidth = this.rootWidth,\n rootHeight = this.rootHeight;\n var rootRatio = rootHeight / rootWidth;\n return this.imageRatio > rootRatio;\n },\n imageStyle: function imageStyle() {\n var scale = this.scale;\n var style = {\n transitionDuration: this.zooming || this.moving ? '0s' : '.3s'\n };\n\n if (scale !== 1) {\n var offsetX = this.moveX / scale;\n var offsetY = this.moveY / scale;\n style.transform = \"scale(\" + scale + \", \" + scale + \") translate(\" + offsetX + \"px, \" + offsetY + \"px)\";\n }\n\n return style;\n },\n maxMoveX: function maxMoveX() {\n if (this.imageRatio) {\n var displayWidth = this.vertical ? this.rootHeight / this.imageRatio : this.rootWidth;\n return Math.max(0, (this.scale * displayWidth - this.rootWidth) / 2);\n }\n\n return 0;\n },\n maxMoveY: function maxMoveY() {\n if (this.imageRatio) {\n var displayHeight = this.vertical ? this.rootHeight : this.rootWidth * this.imageRatio;\n return Math.max(0, (this.scale * displayHeight - this.rootHeight) / 2);\n }\n\n return 0;\n }\n },\n watch: {\n show: function show(val) {\n if (!val) {\n this.resetScale();\n }\n }\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$el);\n },\n methods: {\n resetScale: function resetScale() {\n this.setScale(1);\n this.moveX = 0;\n this.moveY = 0;\n },\n setScale: function setScale(scale) {\n this.scale = range(scale, +this.minZoom, +this.maxZoom);\n this.$emit('scale', {\n scale: this.scale,\n index: this.active\n });\n },\n toggleScale: function toggleScale() {\n var scale = this.scale > 1 ? 1 : 2;\n this.setScale(scale);\n this.moveX = 0;\n this.moveY = 0;\n },\n onTouchStart: function onTouchStart(event) {\n var touches = event.touches;\n var _this$offsetX = this.offsetX,\n offsetX = _this$offsetX === void 0 ? 0 : _this$offsetX;\n this.touchStart(event);\n this.touchStartTime = new Date();\n this.startMoveX = this.moveX;\n this.startMoveY = this.moveY;\n this.moving = touches.length === 1 && this.scale !== 1;\n this.zooming = touches.length === 2 && !offsetX;\n\n if (this.zooming) {\n this.startScale = this.scale;\n this.startDistance = getDistance(event.touches);\n }\n },\n onTouchMove: function onTouchMove(event) {\n var touches = event.touches;\n this.touchMove(event);\n\n if (this.moving || this.zooming) {\n preventDefault(event, true);\n }\n\n if (this.moving) {\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.setScale(scale);\n }\n },\n onTouchEnd: function onTouchEnd(event) {\n var stopPropagation = false;\n /* istanbul ignore else */\n\n if (this.moving || this.zooming) {\n 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 if (this.zooming) {\n this.moveX = range(this.moveX, -this.maxMoveX, this.maxMoveX);\n this.moveY = range(this.moveY, -this.maxMoveY, this.maxMoveY);\n this.zooming = false;\n }\n\n this.moving = 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 } // eliminate tap delay on safari\n\n\n preventDefault(event, stopPropagation);\n this.checkTap();\n this.resetTouchStatus();\n },\n checkTap: function checkTap() {\n var _this = this;\n\n var _this$offsetX2 = this.offsetX,\n offsetX = _this$offsetX2 === void 0 ? 0 : _this$offsetX2,\n _this$offsetY = this.offsetY,\n offsetY = _this$offsetY === void 0 ? 0 : _this$offsetY;\n var deltaTime = new Date() - this.touchStartTime;\n var TAP_TIME = 250;\n var TAP_OFFSET = 10;\n\n if (offsetX < TAP_OFFSET && offsetY < TAP_OFFSET && deltaTime < TAP_TIME) {\n if (this.doubleTapTimer) {\n clearTimeout(this.doubleTapTimer);\n this.doubleTapTimer = null;\n this.toggleScale();\n } else {\n this.doubleTapTimer = setTimeout(function () {\n _this.$emit('close');\n\n _this.doubleTapTimer = null;\n }, TAP_TIME);\n }\n }\n },\n onLoad: function onLoad(event) {\n var _event$target = event.target,\n naturalWidth = _event$target.naturalWidth,\n naturalHeight = _event$target.naturalHeight;\n this.imageRatio = naturalHeight / naturalWidth;\n }\n },\n render: function render() {\n var h = arguments[0];\n var imageSlots = {\n loading: function loading() {\n return h(Loading, {\n \"attrs\": {\n \"type\": \"spinner\"\n }\n });\n }\n };\n return h(SwipeItem, {\n \"class\": bem('swipe-item')\n }, [h(Image, {\n \"attrs\": {\n \"src\": this.src,\n \"fit\": \"contain\"\n },\n \"class\": bem('image', {\n vertical: this.vertical\n }),\n \"style\": this.imageStyle,\n \"scopedSlots\": imageSlots,\n \"on\": {\n \"load\": this.onLoad\n }\n })]);\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 loop: true,\n value: true,\n images: [],\n maxZoom: 3,\n minZoom: 1 / 3,\n onClose: null,\n onChange: null,\n className: '',\n showIndex: true,\n closeable: false,\n closeIcon: 'clear',\n asyncClose: false,\n getContainer: 'body',\n startPosition: 0,\n swipeDuration: 500,\n showIndicators: false,\n closeOnPopstate: true,\n closeIconPosition: 'top-right'\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 instance.$on('change', function (index) {\n if (instance.onChange) {\n instance.onChange(index);\n }\n });\n instance.$on('scale', function (data) {\n if (instance.onScale) {\n instance.onScale(data);\n }\n });\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 instance.$once('closed', function () {\n instance.images = [];\n });\n\n if (options.onClose) {\n instance.$off('close');\n instance.$once('close', options.onClose);\n }\n\n return instance;\n};\n\nImagePreview.Component = VueImagePreview;\n\nImagePreview.install = function () {\n Vue.use(VueImagePreview);\n};\n\nexport default ImagePreview;","// Utils\nimport { bem, createComponent } from './shared'; // Mixins\n\nimport { PopupMixin } from '../mixins/popup';\nimport { TouchMixin } from '../mixins/touch';\nimport { BindEventMixin } from '../mixins/bind-event'; // Components\n\nimport Icon from '../icon';\nimport Swipe from '../swipe';\nimport ImagePreviewItem from './ImagePreviewItem';\nexport default createComponent({\n mixins: [TouchMixin, PopupMixin({\n skipToggleEvent: true\n }), BindEventMixin(function (bind) {\n bind(window, 'resize', this.resize, true);\n bind(window, 'orientationchange', this.resize, true);\n })],\n props: {\n className: null,\n closeable: Boolean,\n asyncClose: Boolean,\n showIndicators: Boolean,\n images: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n loop: {\n type: Boolean,\n default: true\n },\n overlay: {\n type: Boolean,\n default: true\n },\n minZoom: {\n type: [Number, String],\n default: 1 / 3\n },\n maxZoom: {\n type: [Number, String],\n default: 3\n },\n showIndex: {\n type: Boolean,\n default: true\n },\n swipeDuration: {\n type: [Number, String],\n default: 500\n },\n startPosition: {\n type: [Number, String],\n default: 0\n },\n overlayClass: {\n type: String,\n default: bem('overlay')\n },\n closeIcon: {\n type: String,\n default: 'clear'\n },\n closeOnPopstate: {\n type: Boolean,\n default: true\n },\n closeIconPosition: {\n type: String,\n default: 'top-right'\n }\n },\n data: function data() {\n return {\n active: 0,\n rootWidth: 0,\n rootHeight: 0,\n doubleClickTimer: null\n };\n },\n mounted: function mounted() {\n this.resize();\n },\n watch: {\n startPosition: 'setActive',\n value: function value(val) {\n var _this = this;\n\n if (val) {\n this.setActive(+this.startPosition);\n this.$nextTick(function () {\n _this.resize();\n\n _this.$refs.swipe.swipeTo(+_this.startPosition, {\n immediate: true\n });\n });\n } else {\n this.$emit('close', {\n index: this.active,\n url: this.images[this.active]\n });\n }\n }\n },\n methods: {\n resize: function resize() {\n if (this.$el && this.$el.getBoundingClientRect) {\n var rect = this.$el.getBoundingClientRect();\n this.rootWidth = rect.width;\n this.rootHeight = rect.height;\n }\n },\n emitClose: function emitClose() {\n if (!this.asyncClose) {\n this.$emit('input', false);\n }\n },\n emitScale: function emitScale(args) {\n this.$emit('scale', args);\n },\n setActive: function setActive(active) {\n if (active !== this.active) {\n this.active = active;\n this.$emit('change', active);\n }\n },\n genIndex: function genIndex() {\n var h = this.$createElement;\n\n if (this.showIndex) {\n return h(\"div\", {\n \"class\": bem('index')\n }, [this.slots('index', {\n index: this.active\n }) || this.active + 1 + \" / \" + this.images.length]);\n }\n },\n genCover: function genCover() {\n var h = this.$createElement;\n var cover = this.slots('cover');\n\n if (cover) {\n return h(\"div\", {\n \"class\": bem('cover')\n }, [cover]);\n }\n },\n genFooter: function genFooter() {\n var _this2 = this;\n\n var h = this.$createElement;\n var footer = this.slots('footer');\n\n var clickEvent = function clickEvent() {\n return _this2.$emit('footerClick', {\n imageIndex: _this2.active,\n tagIndex: footer.findIndex(function (v) {\n return v.elm === window.event.target;\n }),\n event: window.event\n });\n };\n\n if (footer) {\n return h(\"div\", {\n \"on\": {\n \"click\": clickEvent\n },\n \"class\": bem('footer')\n }, [footer]);\n }\n },\n genImages: function genImages() {\n var _this3 = this;\n\n var h = this.$createElement;\n return h(Swipe, {\n \"ref\": \"swipe\",\n \"attrs\": {\n \"lazyRender\": true,\n \"loop\": this.loop,\n \"duration\": this.swipeDuration,\n \"initialSwipe\": this.startPosition,\n \"showIndicators\": this.showIndicators,\n \"indicatorColor\": \"white\"\n },\n \"class\": bem('swipe'),\n \"on\": {\n \"change\": this.setActive\n }\n }, [this.images.map(function (image) {\n return h(ImagePreviewItem, {\n \"attrs\": {\n \"src\": image,\n \"show\": _this3.value,\n \"active\": _this3.active,\n \"maxZoom\": _this3.maxZoom,\n \"minZoom\": _this3.minZoom,\n \"rootWidth\": _this3.rootWidth,\n \"rootHeight\": _this3.rootHeight\n },\n \"on\": {\n \"scale\": _this3.emitScale,\n \"close\": _this3.emitClose\n }\n });\n })]);\n },\n genClose: function genClose() {\n var h = this.$createElement;\n\n if (this.closeable) {\n return h(Icon, {\n \"attrs\": {\n \"role\": \"button\",\n \"name\": this.closeIcon\n },\n \"class\": bem('close-icon', this.closeIconPosition),\n \"on\": {\n \"click\": this.emitClose\n }\n });\n }\n },\n onClosed: function onClosed() {\n this.$emit('closed');\n },\n // @exposed-api\n swipeTo: function swipeTo(index, options) {\n if (this.$refs.swipe) {\n this.$refs.swipe.swipeTo(index, options);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n },\n \"on\": {\n \"afterLeave\": this.onClosed\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"class\": [bem(), this.className]\n }, [this.genClose(), this.genImages(), this.genIndex(), this.genCover(), this.genFooter()])]);\n }\n});","import { createNamespace } from '../utils';\nimport { ChildrenMixin } from '../mixins/relation';\nimport { BORDER_BOTTOM } from '../utils/constant';\nimport { getScrollTop, getRootScrollTop } from '../utils/dom/scroll';\n\nvar _createNamespace = createNamespace('index-anchor'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanIndexBar', {\n indexKey: 'childrenIndex'\n })],\n props: {\n index: [Number, String]\n },\n data: function data() {\n return {\n top: 0,\n left: null,\n rect: {\n top: 0,\n height: 0\n },\n width: null,\n active: false\n };\n },\n computed: {\n sticky: function sticky() {\n return this.active && this.parent.sticky;\n },\n anchorStyle: function anchorStyle() {\n if (this.sticky) {\n return {\n zIndex: \"\" + this.parent.zIndex,\n left: this.left ? this.left + \"px\" : null,\n width: this.width ? this.width + \"px\" : null,\n transform: \"translate3d(0, \" + this.top + \"px, 0)\",\n color: this.parent.highlightColor\n };\n }\n }\n },\n mounted: function mounted() {\n var rect = this.$el.getBoundingClientRect();\n this.rect.height = rect.height;\n },\n methods: {\n scrollIntoView: function scrollIntoView() {\n this.$el.scrollIntoView();\n },\n getRect: function getRect(scroller, scrollerRect) {\n var el = this.$el;\n var elRect = el.getBoundingClientRect();\n this.rect.height = elRect.height;\n\n if (scroller === window || scroller === document.body) {\n this.rect.top = elRect.top + getRootScrollTop();\n } else {\n this.rect.top = elRect.top + getScrollTop(scroller) - scrollerRect.top;\n }\n\n return this.rect;\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n var sticky = this.sticky;\n return h(\"div\", {\n \"style\": {\n height: sticky ? this.rect.height + \"px\" : null\n }\n }, [h(\"div\", {\n \"style\": this.anchorStyle,\n \"class\": [bem({\n sticky: sticky\n }), (_ref = {}, _ref[BORDER_BOTTOM] = sticky, _ref)]\n }, [this.slots('default') || this.index])]);\n }\n});","// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { isHidden } from '../utils/dom/style';\nimport { preventDefault } from '../utils/dom/event';\nimport { getScroller, getScrollTop, getRootScrollTop, setRootScrollTop } from '../utils/dom/scroll'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch';\nimport { ParentMixin } from '../mixins/relation';\nimport { BindEventMixin } from '../mixins/bind-event';\n\nfunction genAlphabet() {\n var indexList = [];\n var charCodeOfA = 'A'.charCodeAt(0);\n\n for (var i = 0; i < 26; i++) {\n indexList.push(String.fromCharCode(charCodeOfA + i));\n }\n\n return indexList;\n}\n\nvar _createNamespace = createNamespace('index-bar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [TouchMixin, ParentMixin('vanIndexBar'), BindEventMixin(function (bind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n bind(this.scroller, 'scroll', this.onScroll);\n })],\n props: {\n zIndex: [Number, String],\n highlightColor: String,\n sticky: {\n type: Boolean,\n default: true\n },\n stickyOffsetTop: {\n type: Number,\n default: 0\n },\n indexList: {\n type: Array,\n default: genAlphabet\n }\n },\n data: function data() {\n return {\n activeAnchorIndex: null\n };\n },\n computed: {\n sidebarStyle: function sidebarStyle() {\n if (isDef(this.zIndex)) {\n return {\n zIndex: this.zIndex + 1\n };\n }\n },\n highlightStyle: function highlightStyle() {\n var highlightColor = this.highlightColor;\n\n if (highlightColor) {\n return {\n color: highlightColor\n };\n }\n }\n },\n watch: {\n indexList: function indexList() {\n this.$nextTick(this.onScroll);\n },\n activeAnchorIndex: function activeAnchorIndex(value) {\n if (value) {\n this.$emit('change', value);\n }\n }\n },\n methods: {\n onScroll: function onScroll() {\n var _this = this;\n\n if (isHidden(this.$el)) {\n return;\n }\n\n var scrollTop = getScrollTop(this.scroller);\n var scrollerRect = this.getScrollerRect();\n var rects = this.children.map(function (item) {\n return item.getRect(_this.scroller, scrollerRect);\n });\n var active = this.getActiveAnchorIndex(scrollTop, rects);\n this.activeAnchorIndex = this.indexList[active];\n\n if (this.sticky) {\n this.children.forEach(function (item, index) {\n if (index === active || index === active - 1) {\n var rect = item.$el.getBoundingClientRect();\n item.left = rect.left;\n item.width = rect.width;\n } else {\n item.left = null;\n item.width = null;\n }\n\n if (index === active) {\n item.active = true;\n item.top = Math.max(_this.stickyOffsetTop, rects[index].top - scrollTop) + scrollerRect.top;\n } else if (index === active - 1) {\n var activeItemTop = rects[active].top - scrollTop;\n item.active = activeItemTop > 0;\n item.top = activeItemTop + scrollerRect.top - rects[index].height;\n } else {\n item.active = false;\n }\n });\n }\n },\n getScrollerRect: function getScrollerRect() {\n if (this.scroller.getBoundingClientRect) {\n return this.scroller.getBoundingClientRect();\n }\n\n return {\n top: 0,\n left: 0\n };\n },\n getActiveAnchorIndex: function getActiveAnchorIndex(scrollTop, rects) {\n for (var i = this.children.length - 1; i >= 0; i--) {\n var prevHeight = i > 0 ? rects[i - 1].height : 0;\n var reachTop = this.sticky ? prevHeight + this.stickyOffsetTop : 0;\n\n if (scrollTop + reachTop >= rects[i].top) {\n return i;\n }\n }\n\n return -1;\n },\n onClick: function onClick(event) {\n this.scrollToElement(event.target);\n },\n onTouchMove: function onTouchMove(event) {\n this.touchMove(event);\n\n if (this.direction === 'vertical') {\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) {\n var index = target.dataset.index;\n /* istanbul ignore else */\n\n if (this.touchActiveIndex !== index) {\n this.touchActiveIndex = index;\n this.scrollToElement(target);\n }\n }\n }\n },\n scrollToElement: function scrollToElement(element) {\n var index = element.dataset.index;\n\n if (!index) {\n return;\n }\n\n var match = this.children.filter(function (item) {\n return String(item.index) === index;\n });\n\n if (match[0]) {\n match[0].scrollIntoView();\n\n if (this.sticky && this.stickyOffsetTop) {\n setRootScrollTop(getRootScrollTop() - this.stickyOffsetTop);\n }\n\n this.$emit('select', match[0].index);\n }\n },\n onTouchEnd: function onTouchEnd() {\n this.active = null;\n }\n },\n render: function render() {\n var _this2 = this;\n\n var h = arguments[0];\n var Indexes = this.indexList.map(function (index) {\n var active = index === _this2.activeAnchorIndex;\n return h(\"span\", {\n \"class\": bem('index', {\n active: active\n }),\n \"style\": active ? _this2.highlightStyle : null,\n \"attrs\": {\n \"data-index\": index\n }\n }, [index]);\n });\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"class\": bem('sidebar'),\n \"style\": this.sidebarStyle,\n \"on\": {\n \"click\": this.onClick,\n \"touchstart\": this.touchStart,\n \"touchmove\": this.onTouchMove,\n \"touchend\": this.onTouchEnd,\n \"touchcancel\": this.onTouchEnd\n }\n }, [Indexes]), this.slots('default')]);\n }\n});","import Lazyload from 'vue-lazyload';\nexport default Lazyload;","// Utils\nimport { createNamespace } from '../utils';\nimport { isHidden } from '../utils/dom/style';\nimport { getScroller } from '../utils/dom/scroll'; // Mixins\n\nimport { BindEventMixin } from '../mixins/bind-event'; // Components\n\nimport Loading from '../loading';\n\nvar _createNamespace = createNamespace('list'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n mixins: [BindEventMixin(function (bind) {\n if (!this.scroller) {\n this.scroller = getScroller(this.$el);\n }\n\n bind(this.scroller, 'scroll', this.check);\n })],\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 loadBgColor: {\n type: String,\n default: '#f5f5f5'\n },\n immediateCheck: {\n type: Boolean,\n default: true\n },\n offset: {\n type: [Number, String],\n default: 300\n },\n direction: {\n type: String,\n default: 'down'\n }\n },\n data: function data() {\n return {\n // use sync innerLoading state to avoid repeated loading in some edge cases\n innerLoading: this.loading\n };\n },\n updated: function updated() {\n this.innerLoading = this.loading;\n },\n mounted: function mounted() {\n if (this.immediateCheck) {\n this.check();\n }\n },\n watch: {\n loading: 'check',\n finished: 'check'\n },\n methods: {\n // @exposed-api\n check: function check() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.innerLoading || _this.finished || _this.error) {\n return;\n }\n\n var el = _this.$el,\n scroller = _this.scroller,\n offset = _this.offset,\n direction = _this.direction;\n var scrollerRect;\n\n if (scroller.getBoundingClientRect) {\n scrollerRect = scroller.getBoundingClientRect();\n } else {\n scrollerRect = {\n top: 0,\n bottom: scroller.innerHeight\n };\n }\n\n var scrollerHeight = scrollerRect.bottom - scrollerRect.top;\n /* istanbul ignore next */\n\n if (!scrollerHeight || isHidden(el)) {\n return false;\n }\n\n var isReachEdge = false;\n\n var placeholderRect = _this.$refs.placeholder.getBoundingClientRect();\n\n if (direction === 'up') {\n isReachEdge = scrollerRect.top - placeholderRect.top <= offset;\n } else {\n isReachEdge = placeholderRect.bottom - scrollerRect.bottom <= offset;\n }\n\n if (isReachEdge) {\n _this.innerLoading = true;\n\n _this.$emit('input', true);\n\n _this.$emit('load');\n }\n });\n },\n clickErrorText: function clickErrorText() {\n this.$emit('update:error', false);\n this.check();\n },\n genLoading: function genLoading() {\n var h = this.$createElement;\n\n if (this.innerLoading && !this.finished) {\n return h(\"div\", {\n \"key\": \"loading\",\n \"class\": bem('loading')\n }, [this.slots('loading') || h(Loading, {\n \"attrs\": {\n \"size\": \"16\"\n }\n }, [this.loadingText || t('loading')])]);\n }\n },\n genFinishedText: function genFinishedText() {\n var h = this.$createElement;\n\n if (this.finished) {\n var text = this.slots('finished') || this.finishedText;\n\n if (text) {\n return h(\"div\", {\n \"class\": bem('finished-text')\n }, [text]);\n }\n }\n },\n genErrorText: function genErrorText() {\n var h = this.$createElement;\n\n if (this.error) {\n var text = this.slots('error') || this.errorText;\n\n if (text) {\n return h(\"div\", {\n \"on\": {\n \"click\": this.clickErrorText\n },\n \"class\": bem('error-text')\n }, [text]);\n }\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var Placeholder = h(\"div\", {\n \"ref\": \"placeholder\",\n \"key\": \"placeholder\",\n \"class\": bem('placeholder')\n });\n return h(\"div\", {\n \"class\": bem(),\n \"attrs\": {\n \"role\": \"feed\",\n \"aria-busy\": this.innerLoading\n },\n \"style\": \"background-color: \" + this.loadBgColor\n }, [this.direction === 'down' ? this.slots() : Placeholder, this.genLoading(), this.genFinishedText(), this.genErrorText(), this.direction === 'up' ? this.slots() : Placeholder]);\n }\n});","import { createNamespace } from '../utils';\nimport { isNumeric } from '../utils/validate/number'; // Component\n\nimport Popup from '../popup';\nimport Icon from '../icon'; // css\n\nimport './index.css';\n\nvar _createNamespace = createNamespace('modal-sheet'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n value: Boolean,\n size: {\n type: String,\n default: 'normal'\n },\n title: {\n type: String,\n default: ''\n },\n leftIcon: {\n type: Boolean,\n default: false\n },\n leftIconName: {\n type: String,\n default: 'cap-back'\n },\n leftText: {\n type: String,\n default: ''\n },\n leftTextColor: {\n type: String,\n default: '#262626'\n },\n rightIcon: {\n type: Boolean,\n default: false\n },\n rightIconName: {\n type: String,\n default: 'cap-close'\n },\n rightText: {\n type: String,\n default: ''\n },\n rightTextColor: {\n type: String,\n default: '#262626'\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n maxPopUpHeight: 412,\n minPopUPHeight: 120\n };\n },\n methods: {\n headerLeftArea: function headerLeftArea() {\n var h = this.$createElement;\n\n if (this.leftIcon) {\n return h(Icon, {\n \"attrs\": {\n \"name\": this.leftIconName\n },\n \"class\": bem('header-icon')\n });\n }\n\n if (this.leftText) {\n return h(\"span\", {\n \"class\": bem('text'),\n \"style\": {\n color: this.leftTextColor\n }\n }, [this.leftText]);\n }\n },\n headerRightArea: function headerRightArea() {\n var h = this.$createElement;\n\n if (this.rightIcon) {\n return h(Icon, {\n \"attrs\": {\n \"name\": this.rightIconName\n },\n \"class\": bem('header-icon')\n });\n }\n\n if (this.rightText) {\n return h(\"span\", {\n \"class\": bem('text'),\n \"style\": {\n color: this.rightTextColor\n }\n }, [this.rightText]);\n }\n },\n getHeader: function getHeader() {\n var h = this.$createElement;\n if (!this.title) return;\n return h(\"div\", {\n \"class\": bem('header')\n }, [h(\"div\", {\n \"on\": {\n \"click\": this.leftClick\n },\n \"class\": bem('left-area')\n }, [this.headerLeftArea()]), h(\"div\", {\n \"class\": bem('header-title')\n }, [this.title]), h(\"div\", {\n \"on\": {\n \"click\": this.rightClick\n },\n \"class\": bem('right-area')\n }, [this.headerRightArea()])]);\n },\n togglePopup: function togglePopup(val) {\n this.$emit('input', val);\n },\n leftClick: function leftClick() {\n if (this.leftIcon || this.leftText) {\n this.$emit('titleLeftClick');\n }\n },\n rightClick: function rightClick() {\n if (this.rightIcon || this.rightText) {\n this.$emit('titleRightClick');\n }\n }\n },\n render: function render() {\n var _this = this,\n _bem;\n\n var h = arguments[0];\n // prop\n var value = this.value,\n size = this.size,\n maxPopUpHeight = this.maxPopUpHeight,\n minPopUPHeight = this.minPopUPHeight;\n var isCusmizeSize = false;\n var popupStyle = {};\n\n if (isNumeric(size)) {\n isCusmizeSize = true;\n var sizeTmp = Number(size);\n\n if (sizeTmp > maxPopUpHeight) {\n popupStyle.height = maxPopUpHeight + \"px\";\n } else if (sizeTmp < minPopUPHeight) {\n popupStyle.height = minPopUPHeight + \"px\";\n } else {\n popupStyle.height = size + \"px\";\n }\n }\n\n if (['normal', 'small', 'large'].includes(size)) isCusmizeSize = false; // methods\n\n var getHeader = this.getHeader; // evnets\n\n var createListener = function createListener(name) {\n return function () {\n return _this.$emit(name);\n };\n };\n\n return h(Popup, {\n \"class\": bem((_bem = {}, _bem[size] = !isCusmizeSize, _bem)),\n \"style\": popupStyle,\n \"attrs\": {\n \"value\": value,\n \"round\": true,\n \"position\": \"bottom\",\n \"getContainer\": \"body\",\n \"closeOnClickOverlay\": this.closeOnClickOverlay\n },\n \"on\": {\n \"input\": this.togglePopup,\n \"open\": createListener('open'),\n \"opened\": createListener('opened'),\n \"close\": createListener('close'),\n \"closed\": createListener('closed')\n }\n }, [getHeader(), h(\"div\", {\n \"class\": bem('content')\n }, [this.slots()])]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { BORDER_BOTTOM } from '../utils/constant'; // Components\n\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('nav-bar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n title: String,\n fixed: Boolean,\n zIndex: [Number, String],\n leftText: String,\n rightText: String,\n leftArrow: Boolean,\n placeholder: Boolean,\n background: String,\n backgroundImage: String,\n safeAreaInsetTop: Boolean,\n border: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n height: null\n };\n },\n mounted: function mounted() {\n if (this.placeholder && this.fixed) {\n this.height = this.$refs.navBar.getBoundingClientRect().height;\n }\n },\n methods: {\n genLeft: function genLeft() {\n var h = this.$createElement;\n var leftSlot = this.slots('left');\n\n if (leftSlot) {\n return leftSlot;\n }\n\n return [this.leftArrow && h(Icon, {\n \"class\": bem('arrow'),\n \"attrs\": {\n \"name\": \"arrow-left\"\n }\n }), this.leftText && h(\"span\", {\n \"class\": bem('text')\n }, [this.leftText])];\n },\n genRight: function genRight() {\n var h = this.$createElement;\n var rightSlot = this.slots('right');\n\n if (rightSlot) {\n return rightSlot;\n }\n\n if (this.rightText) {\n return h(\"span\", {\n \"class\": bem('text')\n }, [this.rightText]);\n }\n },\n genNavBar: function genNavBar() {\n var _ref;\n\n var h = this.$createElement;\n var styleBackground = {\n background: this.background || '',\n backgroundImage: this.backgroundImage ? \"URL(\" + this.backgroundImage + \")\" : ''\n };\n var styleColor = {\n color: this.background || this.backgroundImage ? '#fff' : '#333'\n };\n return h(\"div\", {\n \"ref\": \"navBar\",\n \"style\": _extends({\n zIndex: this.zIndex\n }, styleBackground, styleColor),\n \"class\": [bem({\n fixed: this.fixed,\n 'safe-area-inset-top': this.safeAreaInsetTop\n }), (_ref = {}, _ref[BORDER_BOTTOM] = this.border, _ref)]\n }, [h(\"div\", {\n \"class\": bem('content')\n }, [this.hasLeft() && h(\"div\", {\n \"class\": bem('left'),\n \"on\": {\n \"click\": this.onClickLeft\n }\n }, [this.genLeft()]), h(\"div\", {\n \"class\": [bem('title'), 'van-ellipsis']\n }, [this.slots('title') || this.title]), this.hasRight() && h(\"div\", {\n \"class\": bem('right'),\n \"on\": {\n \"click\": this.onClickRight\n }\n }, [this.genRight()])])]);\n },\n hasLeft: function hasLeft() {\n return this.leftArrow || this.leftText || this.slots('left');\n },\n hasRight: function hasRight() {\n return this.rightText || this.slots('right');\n },\n onClickLeft: function onClickLeft(event) {\n this.$emit('click-left', event);\n },\n onClickRight: function onClickRight(event) {\n this.$emit('click-right', event);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n if (this.placeholder && this.fixed) {\n return h(\"div\", {\n \"class\": bem('placeholder'),\n \"style\": {\n height: this.height + \"px\"\n }\n }, [this.genNavBar()]);\n }\n\n return this.genNavBar();\n }\n});","import { createNamespace, isDef } from '../utils';\nimport { doubleRaf, raf } from '../utils/dom/raf';\nimport { BindEventMixin } from '../mixins/bind-event';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('notice-bar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [BindEventMixin(function (bind) {\n // fix cache issues with forwards and back history in safari\n // see: https://guwii.com/cache-issues-with-forwards-and-back-history-in-safari/\n bind(window, 'pageshow', this.start);\n })],\n props: {\n iconPrefix: {\n type: String,\n default: 'van-icon'\n },\n text: String,\n mode: String,\n color: String,\n leftIcon: String,\n wrapable: Boolean,\n background: String,\n scrollable: {\n type: Boolean,\n default: false\n },\n delay: {\n type: [Number, String],\n default: 1\n },\n speed: {\n type: [Number, String],\n default: 50\n }\n },\n data: function data() {\n return {\n show: true,\n offset: 0,\n duration: 0,\n wrapWidth: 0,\n contentWidth: 0\n };\n },\n watch: {\n scrollable: 'start',\n text: {\n handler: 'start',\n immediate: true\n }\n },\n activated: function activated() {\n this.start();\n },\n methods: {\n onClickIcon: function onClickIcon(event) {\n if (this.mode === 'closeable') {\n this.show = false;\n this.$emit('close', event);\n }\n },\n onTransitionEnd: function onTransitionEnd() {\n var _this = this;\n\n this.offset = this.wrapWidth;\n this.duration = 0; // wait for Vue to render offset\n // using nextTick won't work in iOS14\n\n raf(function () {\n // use double raf to ensure animation can start\n doubleRaf(function () {\n _this.offset = -_this.contentWidth;\n _this.duration = (_this.contentWidth + _this.wrapWidth) / _this.speed;\n\n _this.$emit('replay');\n });\n });\n },\n reset: function reset() {\n this.offset = 0;\n this.duration = 0;\n this.wrapWidth = 0;\n this.contentWidth = 0;\n },\n start: function start() {\n var _this2 = this;\n\n var delay = isDef(this.delay) ? this.delay * 1000 : 0;\n this.reset();\n clearTimeout(this.startTimer);\n this.startTimer = setTimeout(function () {\n var _this2$$refs = _this2.$refs,\n wrap = _this2$$refs.wrap,\n content = _this2$$refs.content;\n\n if (!wrap || !content || _this2.scrollable === false) {\n return;\n }\n\n var wrapWidth = wrap.getBoundingClientRect().width;\n var contentWidth = content.getBoundingClientRect().width;\n\n if (_this2.scrollable || contentWidth > wrapWidth) {\n doubleRaf(function () {\n _this2.offset = -contentWidth;\n _this2.duration = contentWidth / _this2.speed;\n _this2.wrapWidth = wrapWidth;\n _this2.contentWidth = contentWidth;\n });\n }\n }, delay);\n }\n },\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\n var slots = this.slots,\n mode = this.mode,\n leftIcon = this.leftIcon,\n onClickIcon = this.onClickIcon,\n iconPrefix = this.iconPrefix;\n var barStyle = {\n color: this.color,\n background: this.background\n };\n var contentStyle = {\n transform: this.offset ? \"translateX(\" + this.offset + \"px)\" : '',\n transitionDuration: this.duration + 's'\n };\n\n function LeftIcon() {\n var slot = slots('left-icon');\n\n if (slot) {\n return slot;\n }\n\n if (leftIcon) {\n return h(Icon, {\n \"attrs\": {\n \"classPrefix\": iconPrefix,\n \"name\": leftIcon\n },\n \"class\": bem('left-icon')\n });\n }\n }\n\n function RightIcon() {\n var slot = slots('right-icon');\n\n if (slot) {\n return slot;\n }\n\n var iconName;\n\n if (mode === 'closeable') {\n iconName = 'cap-close';\n } else if (mode === 'link') {\n iconName = 'cap-noticebararrow';\n }\n\n if (iconName) {\n return h(Icon, {\n \"class\": bem('right-icon'),\n \"attrs\": {\n \"name\": iconName\n },\n \"on\": {\n \"click\": onClickIcon\n }\n });\n }\n }\n\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"alert\"\n },\n \"directives\": [{\n name: \"show\",\n value: this.show\n }],\n \"class\": bem({\n wrapable: this.wrapable\n }),\n \"style\": barStyle,\n \"on\": {\n \"click\": function click(event) {\n _this3.$emit('click', event);\n }\n }\n }, [LeftIcon(), h(\"div\", {\n \"ref\": \"wrap\",\n \"class\": bem('wrap'),\n \"attrs\": {\n \"role\": \"marquee\"\n }\n }, [h(\"div\", {\n \"ref\": \"content\",\n \"class\": [bem('content'), {\n 'van-ellipsis': this.scrollable === false && !this.wrapable\n }],\n \"style\": contentStyle,\n \"on\": {\n \"transitionend\": this.onTransitionEnd\n }\n }, [this.slots() || this.text])]), RightIcon()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit } from '../utils/functional'; // Mixins\n\nimport { popupMixinProps } from '../mixins/popup'; // Components\n\nimport Popup from '../popup'; // Types\n\nvar _createNamespace = createNamespace('notify'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[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 \"duration\": 0.2,\n \"lockScroll\": false\n },\n \"style\": style,\n \"class\": [bem([props.type]), props.className]\n }, inherit(ctx, true)]), [(slots.default == null ? void 0 : slots.default()) || props.message]);\n}\n\nNotify.props = _extends({}, popupMixinProps, {\n color: String,\n message: [Number, String],\n duration: [Number, String],\n className: null,\n background: String,\n getContainer: [String, Function],\n type: {\n type: String,\n default: 'danger'\n }\n});\nexport default createComponent(Notify);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VanNotify from './Notify';\nimport { isObject, isServer } from '../utils';\nimport { mount } from '../utils/functional';\nvar timer;\nvar instance;\n\nfunction parseOptions(message) {\n return isObject(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 on: {\n click: function click(event) {\n if (instance.onClick) {\n instance.onClick(event);\n }\n },\n close: function close() {\n if (instance.onClose) {\n instance.onClose();\n }\n },\n opened: function opened() {\n if (instance.onOpened) {\n instance.onOpened();\n }\n }\n }\n });\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 type: 'danger',\n value: true,\n message: '',\n color: undefined,\n background: undefined,\n duration: 3000,\n className: '',\n onClose: null,\n onClick: null,\n onOpened: null\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\nNotify.Component = VanNotify;\nVue.prototype.$notify = Notify;\nexport default Notify;","export default {\n render: function render() {\n var h = arguments[0];\n return h(\"svg\", {\n \"attrs\": {\n \"viewBox\": \"0 0 32 22\",\n \"xmlns\": \"http://www.w3.org/2000/svg\"\n }\n }, [h(\"path\", {\n \"attrs\": {\n \"d\": \"M28.016 0A3.991 3.991 0 0132 3.987v14.026c0 2.2-1.787 3.987-3.98 3.987H10.382c-.509 0-.996-.206-1.374-.585L.89 13.09C.33 12.62 0 11.84 0 11.006c0-.86.325-1.62.887-2.08L9.01.585A1.936 1.936 0 0110.383 0zm0 1.947H10.368L2.24 10.28c-.224.226-.312.432-.312.73 0 .287.094.51.312.729l8.128 8.333h17.648a2.041 2.041 0 002.037-2.04V3.987c0-1.127-.915-2.04-2.037-2.04zM23.028 6a.96.96 0 01.678.292.95.95 0 01-.003 1.377l-3.342 3.348 3.326 3.333c.189.188.292.43.292.679 0 .248-.103.49-.292.679a.96.96 0 01-.678.292.959.959 0 01-.677-.292L18.99 12.36l-3.343 3.345a.96.96 0 01-.677.292.96.96 0 01-.678-.292.962.962 0 01-.292-.68c0-.248.104-.49.292-.679l3.342-3.348-3.342-3.348A.963.963 0 0114 6.971c0-.248.104-.49.292-.679A.96.96 0 0114.97 6a.96.96 0 01.677.292l3.358 3.348 3.345-3.348A.96.96 0 0123.028 6z\",\n \"fill\": \"currentColor\"\n }\n })]);\n }\n};","export default {\n render: function render() {\n var h = arguments[0];\n return h(\"svg\", {\n \"attrs\": {\n \"viewBox\": \"0 0 30 24\",\n \"xmlns\": \"http://www.w3.org/2000/svg\"\n }\n }, [h(\"path\", {\n \"attrs\": {\n \"d\": \"M25.877 12.843h-1.502c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h1.5c.187 0 .187 0 .187-.188v-1.511c0-.19 0-.191-.185-.191zM17.999 10.2c0 .188 0 .188.188.188h1.687c.188 0 .188 0 .188-.188V8.688c0-.187.004-.187-.186-.19h-1.69c-.187 0-.187 0-.187.19V10.2zm2.25-3.967h1.5c.188 0 .188 0 .188-.188v-1.7c0-.19 0-.19-.188-.19h-1.5c-.189 0-.189 0-.189.19v1.7c0 .188 0 .188.19.188zm2.063 4.157h3.563c.187 0 .187 0 .187-.189V4.346c0-.19.004-.19-.185-.19h-1.69c-.187 0-.187 0-.187.188v4.155h-1.688c-.187 0-.187 0-.187.189v1.514c0 .19 0 .19.187.19zM14.812 24l2.812-3.4H12l2.813 3.4zm-9-11.157H4.31c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h1.502c.187 0 .187 0 .187-.188v-1.511c0-.19.01-.191-.189-.191zm15.937 0H8.25c-.188 0-.188 0-.188.19v1.512c0 .188 0 .188.188.188h13.5c.188 0 .188 0 .188-.188v-1.511c0-.19 0-.191-.188-.191zm-11.438-2.454h1.5c.188 0 .188 0 .188-.188V8.688c0-.187 0-.187-.188-.189h-1.5c-.187 0-.187 0-.187.189V10.2c0 .188 0 .188.187.188zM27.94 0c.563 0 .917.21 1.313.567.518.466.748.757.748 1.51v14.92c0 .567-.188 1.134-.562 1.512-.376.378-.938.566-1.313.566H2.063c-.563 0-.938-.188-1.313-.566-.562-.378-.75-.945-.75-1.511V2.078C0 1.51.188.944.562.567.938.189 1.5 0 1.875 0zm-.062 2H2v14.92h25.877V2zM5.81 4.157c.19 0 .19 0 .19.189v1.762c-.003.126-.024.126-.188.126H4.249c-.126-.003-.126-.023-.126-.188v-1.7c-.187-.19 0-.19.188-.19zm10.5 2.077h1.503c.187 0 .187 0 .187-.188v-1.7c0-.19 0-.19-.187-.19h-1.502c-.188 0-.188.001-.188.19v1.7c0 .188 0 .188.188.188zM7.875 8.5c.187 0 .187.002.187.189V10.2c0 .188 0 .188-.187.188H4.249c-.126-.002-.126-.023-.126-.188V8.625c.003-.126.024-.126.188-.126zm7.875 0c.19.002.19.002.19.189v1.575c-.003.126-.024.126-.19.126h-1.563c-.126-.002-.126-.023-.126-.188V8.625c.002-.126.023-.126.189-.126zm-6-4.342c.187 0 .187 0 .187.189v1.7c0 .188 0 .188-.187.188H8.187c-.126-.003-.126-.023-.126-.188V4.283c.003-.126.024-.126.188-.126zm3.94 0c.185 0 .372 0 .372.189v1.762c-.002.126-.023.126-.187.126h-1.75C12 6.231 12 6.211 12 6.046v-1.7c0-.19.187-.19.187-.19z\",\n \"fill\": \"currentColor\"\n }\n })]);\n }\n};","import { createNamespace } from '../utils';\nimport { TouchMixin } from '../mixins/touch';\nimport Loading from '../loading';\nimport DeleteIcon from './DeleteIcon';\nimport CollapseIcon from './CollapseIcon';\n\nvar _createNamespace = createNamespace('key'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [TouchMixin],\n props: {\n type: String,\n text: [Number, String],\n color: String,\n wider: Boolean,\n large: Boolean,\n loading: Boolean\n },\n data: function data() {\n return {\n active: false\n };\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$el);\n },\n methods: {\n onTouchStart: function onTouchStart(event) {\n // compatible with Vue 2.6 event bubble bug\n event.stopPropagation();\n this.touchStart(event);\n this.active = true;\n },\n onTouchMove: function onTouchMove(event) {\n this.touchMove(event);\n\n if (this.direction) {\n this.active = false;\n }\n },\n onTouchEnd: function onTouchEnd(event) {\n if (this.active) {\n // eliminate tap delay on safari\n // see: https://github.com/youzan/vant/issues/6836\n if (!this.slots('default')) {\n event.preventDefault();\n }\n\n this.active = false;\n this.$emit('press', this.text, this.type);\n }\n },\n genContent: function genContent() {\n var h = this.$createElement;\n var isExtra = this.type === 'extra';\n var isDelete = this.type === 'delete';\n var text = this.slots('default') || this.text;\n\n if (this.loading) {\n return h(Loading, {\n \"class\": bem('loading-icon')\n });\n }\n\n if (isDelete) {\n return text || h(DeleteIcon, {\n \"class\": bem('delete-icon')\n });\n }\n\n if (isExtra) {\n return text || h(CollapseIcon, {\n \"class\": bem('collapse-icon')\n });\n }\n\n return text;\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem('wrapper', {\n wider: this.wider\n })\n }, [h(\"div\", {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\"\n },\n \"class\": bem([this.color, {\n large: this.large,\n active: this.active,\n delete: this.type === 'delete'\n }])\n }, [this.genContent()])]);\n }\n});","import { createNamespace } from '../utils';\nimport { stopPropagation } from '../utils/dom/event';\nimport { PortalMixin } from '../mixins/portal';\nimport { BindEventMixin } from '../mixins/bind-event';\nimport Key from './Key';\n\nvar _createNamespace = createNamespace('number-keyboard'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [PortalMixin(), BindEventMixin(function (bind) {\n if (this.hideOnClickOutside) {\n bind(document.body, 'touchstart', this.onBlur);\n }\n })],\n model: {\n event: 'update:value'\n },\n props: {\n show: Boolean,\n title: String,\n zIndex: [Number, String],\n closeButtonText: String,\n deleteButtonText: String,\n closeButtonLoading: Boolean,\n theme: {\n type: String,\n default: 'default'\n },\n value: {\n type: String,\n default: ''\n },\n extraKey: {\n type: [String, Array],\n default: ''\n },\n maxlength: {\n type: [Number, String],\n default: Number.MAX_VALUE\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 safeAreaInsetBottom: {\n type: Boolean,\n default: true\n }\n },\n watch: {\n show: function show(val) {\n if (!this.transition) {\n this.$emit(val ? 'show' : 'hide');\n }\n }\n },\n computed: {\n keys: function keys() {\n if (this.theme === 'custom') {\n return this.genCustomKeys();\n }\n\n return this.genDefaultKeys();\n }\n },\n methods: {\n genBasicKeys: function genBasicKeys() {\n var keys = [];\n\n for (var i = 1; i <= 9; i++) {\n keys.push({\n text: i\n });\n }\n\n return keys;\n },\n genDefaultKeys: function genDefaultKeys() {\n return [].concat(this.genBasicKeys(), [{\n text: this.extraKey,\n type: 'extra'\n }, {\n text: 0\n }, {\n text: this.showDeleteKey ? this.deleteButtonText : '',\n type: this.showDeleteKey ? 'delete' : ''\n }]);\n },\n genCustomKeys: function genCustomKeys() {\n var keys = this.genBasicKeys();\n var extraKey = this.extraKey;\n var extraKeys = Array.isArray(extraKey) ? extraKey : [extraKey];\n\n if (extraKeys.length === 1) {\n keys.push({\n text: 0,\n wider: true\n }, {\n text: extraKeys[0],\n type: 'extra'\n });\n } else if (extraKeys.length === 2) {\n keys.push({\n text: extraKeys[0],\n type: 'extra'\n }, {\n text: 0\n }, {\n text: extraKeys[1],\n type: 'extra'\n });\n }\n\n return keys;\n },\n onBlur: function onBlur() {\n this.show && 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, type) {\n if (text === '') {\n if (type === 'extra') {\n this.onBlur();\n }\n\n return;\n }\n\n var value = this.value;\n\n if (type === 'delete') {\n this.$emit('delete');\n this.$emit('update:value', value.slice(0, value.length - 1));\n } else if (type === 'close') {\n this.onClose();\n } else if (value.length < this.maxlength) {\n this.$emit('input', text);\n this.$emit('update:value', value + text);\n }\n },\n genTitle: function genTitle() {\n var h = this.$createElement;\n var title = this.title,\n theme = this.theme,\n closeButtonText = this.closeButtonText;\n var titleLeft = this.slots('title-left');\n var showClose = closeButtonText && theme === 'default';\n var showTitle = title || showClose || titleLeft;\n\n if (!showTitle) {\n return;\n }\n\n return h(\"div\", {\n \"class\": bem('header')\n }, [titleLeft && h(\"span\", {\n \"class\": bem('title-left')\n }, [titleLeft]), title && h(\"h2\", {\n \"class\": bem('title')\n }, [title]), showClose && h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": bem('close'),\n \"on\": {\n \"click\": this.onClose\n }\n }, [closeButtonText])]);\n },\n genKeys: function genKeys() {\n var _this = this;\n\n var h = this.$createElement;\n return this.keys.map(function (key) {\n return h(Key, {\n \"key\": key.text,\n \"attrs\": {\n \"text\": key.text,\n \"type\": key.type,\n \"wider\": key.wider,\n \"color\": key.color\n },\n \"on\": {\n \"press\": _this.onPress\n }\n }, [key.type === 'delete' && _this.slots('delete'), key.type === 'extra' && _this.slots('extra-key')]);\n });\n },\n genSidebar: function genSidebar() {\n var h = this.$createElement;\n\n if (this.theme === 'custom') {\n return h(\"div\", {\n \"class\": bem('sidebar')\n }, [this.showDeleteKey && h(Key, {\n \"attrs\": {\n \"large\": true,\n \"text\": this.deleteButtonText,\n \"type\": \"delete\"\n },\n \"on\": {\n \"press\": this.onPress\n }\n }, [this.slots('delete')]), h(Key, {\n \"attrs\": {\n \"large\": true,\n \"text\": this.closeButtonText,\n \"type\": \"close\",\n \"color\": \"blue\",\n \"loading\": this.closeButtonLoading\n },\n \"on\": {\n \"press\": this.onPress\n }\n })]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var Title = this.genTitle();\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({\n unfit: !this.safeAreaInsetBottom,\n 'with-title': Title\n }),\n \"on\": {\n \"touchstart\": stopPropagation,\n \"animationend\": this.onAnimationEnd,\n \"webkitAnimationEnd\": this.onAnimationEnd\n }\n }, [Title, h(\"div\", {\n \"class\": bem('body')\n }, [h(\"div\", {\n \"class\": bem('keys')\n }, [this.genKeys()]), this.genSidebar()])])]);\n }\n});","import { createNamespace } from '../utils';\nimport { BORDER } from '../utils/constant';\n\nvar _createNamespace = createNamespace('pagination'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction makePage(number, text, active) {\n return {\n number: number,\n text: text,\n active: active\n };\n}\n\nexport default createComponent({\n props: {\n prevText: String,\n nextText: String,\n forceEllipses: Boolean,\n mode: {\n type: String,\n default: 'multi'\n },\n value: {\n type: Number,\n default: 0\n },\n pageCount: {\n type: [Number, String],\n default: 0\n },\n totalItems: {\n type: [Number, String],\n default: 0\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10\n },\n showPageSize: {\n type: [Number, String],\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 var showPageSize = +this.showPageSize;\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 = 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(showPageSize / 2), 1);\n endPage = startPage + showPageSize - 1; // Adjust if limit is exceeded\n\n if (endPage > pageCount) {\n endPage = pageCount;\n startPage = endPage - 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 && 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() {\n var _this = this,\n _this$slots,\n _this$slots3;\n\n var h = arguments[0];\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'), BORDER],\n \"on\": {\n \"click\": onSelect(value - 1)\n }\n }, [((_this$slots = this.slots('prev-text')) != null ? _this$slots : this.prevText) || t('prev')]), this.pages.map(function (page) {\n var _this$slots2;\n\n return h(\"li\", {\n \"class\": [bem('item', {\n active: page.active\n }), bem('page'), BORDER],\n \"on\": {\n \"click\": onSelect(page.number)\n }\n }, [(_this$slots2 = _this.slots('page', page)) != null ? _this$slots2 : 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'), BORDER],\n \"on\": {\n \"click\": onSelect(value + 1)\n }\n }, [((_this$slots3 = this.slots('next-text')) != null ? _this$slots3 : this.nextText) || t('next')])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { BORDER_TOP } from '../utils/constant'; // Components\n\nimport Cell from '../cell';\nimport CellGroup from '../cell-group'; // Types\n\nvar _createNamespace = createNamespace('panel'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[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'), BORDER_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 createComponent(Panel);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { BORDER_LEFT, BORDER_SURROUND } from '../utils/constant'; // Types\n\nvar _createNamespace = createNamespace('password-input'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction PasswordInput(h, props, slots, ctx) {\n var _ref2;\n\n var mask = props.mask,\n value = props.value,\n length = props.length,\n gutter = props.gutter,\n focused = props.focused,\n errorInfo = props.errorInfo;\n var info = errorInfo || props.info;\n var Points = [];\n\n for (var i = 0; i < length; i++) {\n var _ref;\n\n var _char = value[i];\n var showBorder = i !== 0 && !gutter;\n var showCursor = focused && i === value.length;\n var style = void 0;\n\n if (i !== 0 && gutter) {\n style = {\n marginLeft: addUnit(gutter)\n };\n }\n\n Points.push(h(\"li\", {\n \"class\": [(_ref = {}, _ref[BORDER_LEFT] = showBorder, _ref), bem('item', {\n focus: showCursor\n })],\n \"style\": style\n }, [mask ? h(\"i\", {\n \"style\": {\n visibility: _char ? 'visible' : 'hidden'\n }\n }) : _char, showCursor && h(\"div\", {\n \"class\": bem('cursor')\n })]));\n }\n\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"ul\", _mergeJSXProps([{\n \"class\": [bem('security'), (_ref2 = {}, _ref2[BORDER_SURROUND] = !gutter, _ref2)],\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(errorInfo ? 'error-info' : 'info')\n }, [info])]);\n}\n\nPasswordInput.props = {\n info: String,\n gutter: [Number, String],\n focused: Boolean,\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, String],\n default: 6\n }\n};\nexport default createComponent(PasswordInput);","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createPopper as _createPopper } from '@popperjs/core/lib/popper-lite';\nimport offsetModifier from '@popperjs/core/lib/modifiers/offset';\nimport extendsHelper from '@babel/runtime/helpers/esm/extends';\nimport { createNamespace } from '../utils';\nimport { BORDER_BOTTOM } from '../utils/constant'; // Mixins\n\nimport { ClickOutsideMixin } from '../mixins/click-outside'; // Components\n\nimport Icon from '../icon';\nimport Popup from '../popup'; // add Object.assign polyfill for popper.js\n// see: https://popper.js.org/docs/v2/browser-support/\n\n/* istanbul ignore if */\n\nif (!Object.assign) {\n Object.assign = extendsHelper;\n}\n\nvar _createNamespace = createNamespace('popover'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ClickOutsideMixin({\n event: 'touchstart',\n method: 'onClickOutside'\n })],\n props: {\n value: Boolean,\n overlay: Boolean,\n offset: {\n type: Array,\n default: function _default() {\n return [0, 8];\n }\n },\n theme: {\n type: String,\n default: 'light'\n },\n actions: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n placement: {\n type: String,\n default: 'bottom'\n },\n getContainer: {\n type: [String, Function],\n default: 'body'\n },\n closeOnClickAction: {\n type: Boolean,\n default: true\n }\n },\n watch: {\n value: 'updateLocation',\n placement: 'updateLocation'\n },\n mounted: function mounted() {\n this.updateLocation();\n },\n beforeDestroy: function beforeDestroy() {\n if (this.popper) {\n this.popper.destroy();\n this.popper = null;\n }\n },\n methods: {\n createPopper: function createPopper() {\n return _createPopper(this.$refs.wrapper, this.$refs.popover.$el, {\n placement: this.placement,\n modifiers: [{\n name: 'computeStyles',\n options: {\n adaptive: false,\n gpuAcceleration: false\n }\n }, _extends({}, offsetModifier, {\n options: {\n offset: this.offset\n }\n })]\n });\n },\n updateLocation: function updateLocation() {\n var _this = this;\n\n this.$nextTick(function () {\n if (!_this.value) {\n return;\n }\n\n if (!_this.popper) {\n _this.popper = _this.createPopper();\n } else {\n _this.popper.setOptions({\n placement: _this.placement\n });\n }\n });\n },\n renderAction: function renderAction(action, index) {\n var _this2 = this;\n\n var h = this.$createElement;\n var icon = action.icon,\n text = action.text,\n disabled = action.disabled,\n className = action.className;\n return h(\"div\", {\n \"class\": [bem('action', {\n disabled: disabled,\n 'with-icon': icon\n }), className],\n \"on\": {\n \"click\": function click() {\n return _this2.onClickAction(action, index);\n }\n }\n }, [icon && h(Icon, {\n \"attrs\": {\n \"name\": icon\n },\n \"class\": bem('action-icon')\n }), h(\"div\", {\n \"class\": [bem('action-text'), BORDER_BOTTOM]\n }, [text])]);\n },\n onToggle: function onToggle(value) {\n this.$emit('input', value);\n },\n onTouchstart: function onTouchstart(event) {\n event.stopPropagation();\n this.$emit('touchstart', event);\n },\n onClickAction: function onClickAction(action, index) {\n if (action.disabled) {\n return;\n }\n\n this.$emit('select', action, index);\n\n if (this.closeOnClickAction) {\n this.$emit('input', false);\n }\n },\n onClickOutside: function onClickOutside() {\n this.$emit('input', false);\n },\n onOpen: function onOpen() {\n this.$emit('open');\n },\n\n /* istanbul ignore next */\n onOpened: function onOpened() {\n this.$emit('opened');\n },\n onClose: function onClose() {\n this.$emit('close');\n },\n\n /* istanbul ignore next */\n onClosed: function onClosed() {\n this.$emit('closed');\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"span\", {\n \"ref\": \"wrapper\",\n \"class\": bem('wrapper')\n }, [h(Popup, {\n \"ref\": \"popover\",\n \"attrs\": {\n \"value\": this.value,\n \"overlay\": this.overlay,\n \"position\": null,\n \"transition\": \"van-popover-zoom\",\n \"lockScroll\": false,\n \"getContainer\": this.getContainer\n },\n \"class\": bem([this.theme]),\n \"on\": {\n \"open\": this.onOpen,\n \"close\": this.onClose,\n \"input\": this.onToggle,\n \"opened\": this.onOpened,\n \"closed\": this.onClosed\n },\n \"nativeOn\": {\n \"touchstart\": this.onTouchstart\n }\n }, [h(\"div\", {\n \"class\": bem('arrow')\n }), h(\"div\", {\n \"class\": bem('content')\n }, [this.slots('default') || this.actions.map(this.renderAction)])]), this.slots('reference')]);\n }\n});","import { createNamespace } from '../../utils'; // Components\n\nvar _createNamespace = createNamespace('prescription'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n detail: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n type: {\n type: Number,\n default: 1\n }\n },\n computed: {\n date: function date() {\n var doctorAuditTimeStr = this.detail.doctorAuditTimeStr; // let date = null;\n\n return doctorAuditTimeStr; // // 审核通过的时候展示时间\n // if (\n // serviceAuditStatus === 1 &&\n // (advisoryType === 1 || advisoryType === 2)\n // )\n // date = serviceAuditTime;\n // if (doctorAuditStatus === 1 && advisoryType === 4) date = doctorAuditTime;\n // return isEmpty(date) ? '' : this.formatFullDate(new Date(date));\n }\n },\n data: function data() {\n return {};\n },\n methods: {\n sex: function sex(_sex) {\n if (_sex === 1) {\n return '男';\n }\n\n if (_sex === 0) {\n return '女';\n }\n\n return '未填写';\n },\n formatDate: function formatDate(date) {\n if (date) {\n return date.getMonth() + 1 + \"\\u6708\" + date.getDate() + \"\\u65E5\";\n }\n },\n formatFullDate: function formatFullDate(date) {\n if (date) {\n return date.getFullYear() + \"\\u5E74\" + this.formatDate(date);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var _this$detail = this.detail,\n prescriptionType = _this$detail.prescriptionType,\n hospitalName = _this$detail.hospitalName,\n id = _this$detail.id,\n _this$detail$name = _this$detail.name,\n name = _this$detail$name === void 0 ? '' : _this$detail$name,\n gender = _this$detail.gender,\n age = _this$detail.age,\n storeContactInfo = _this$detail.storeContactInfo,\n dept = _this$detail.dept,\n prescriptionTotalStatus = _this$detail.prescriptionTotalStatus,\n symptom = _this$detail.symptom,\n illness = _this$detail.illness,\n allergy = _this$detail.allergy,\n date = this.date;\n return h(\"div\", {\n \"class\": bem('base-info')\n }, [h(\"h2\", {\n \"class\": bem('base-info--title')\n }, [hospitalName]), h(\"Image\", {\n \"class\": bem('base-info--normal-remark'),\n \"attrs\": {\n \"width\": \"44px\",\n \"height\": \"44px\",\n \"fit\": \"contain\",\n \"src\": \"https://static.91jkys.com/collection/capui-mobile/image/prescription/normal_prescription.png\"\n }\n }), h(\"div\", {\n \"class\": bem('base-info--content')\n }, [h(\"div\", {\n \"class\": bem('base-info--order')\n }, [h(\"span\", {\n \"class\": bem('bold')\n }, [\"\\u5904\\u65B9\\u5355\\u53F7: \"]), h(\"span\", [id])]), name.length > 5 ? h(\"div\", {\n \"class\": bem('space-between')\n }, [h(\"span\", [\"\\u59D3\\u540D: \", name || '未填写'])]) : '', h(\"div\", {\n \"class\": bem('space-between')\n }, [name.length <= 5 ? h(\"span\", [\"\\u59D3\\u540D: \", name || '未填写']) : '', h(\"span\", [\"\\u6027\\u522B: \", this.sex(gender)]), h(\"span\", [\"\\u5E74\\u9F84: \", age, \"\\u5C81\"]), storeContactInfo && storeContactInfo.showCity ? h(\"span\", [storeContactInfo.showCity]) : '']), h(\"div\", {\n \"class\": bem('space-between')\n }, [h(\"span\", [\"\\u79D1\\u522B: \", dept || '未填写']), date ? h(\"span\", [\"\\u65E5\\u671F: \", date]) : '']), prescriptionTotalStatus !== 2 || prescriptionType === 1 ? h(\"div\", {\n \"class\": bem('base-info--symptom')\n }, [prescriptionType === 1 ? '证型' : '主诉', \":\", ' ', prescriptionType === 1 ? illness : symptom]) : '', h(\"div\", {\n \"class\": bem('base-info--illness')\n }, [prescriptionType === 1 ? '病名' : '诊断', \":\", ' ', prescriptionType === 1 ? symptom || '待补充' : illness || '待补充']), allergy ? h(\"div\", {\n \"class\": bem('base-info--allergy')\n }, [h(\"span\", [\"\\u8FC7\\u654F\\u53F2: \"]), h(\"span\", [allergy])]) : null])]);\n }\n});","import { createNamespace } from '../../utils'; // Components\n\nvar _createNamespace = createNamespace('prescription'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n detail: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n type: {\n type: Number,\n default: 1\n }\n },\n computed: {\n showDoctorSign: function showDoctorSign() {\n var _this$detail = this.detail,\n advisoryType = _this$detail.advisoryType,\n serviceAuditStatus = _this$detail.serviceAuditStatus,\n doctorAuditStatus = _this$detail.doctorAuditStatus; // 直接咨询和图文咨询,客服医生通过审核\n\n if ((advisoryType === 1 || advisoryType === 2) && serviceAuditStatus === 1) return true; // 视频咨询,医生审核通过\n\n return advisoryType === 4 && doctorAuditStatus === 1;\n }\n },\n data: function data() {\n return {};\n },\n methods: {\n usage: function usage(item, type) {\n var _item$usage = item.usage,\n usage = _item$usage === void 0 ? '' : _item$usage,\n perNum = item.perNum,\n perUnit = item.perUnit,\n _item$usageFrequencyN = item.usageFrequencyName,\n usageFrequencyName = _item$usageFrequencyN === void 0 ? '' : _item$usageFrequencyN;\n var _item$dose = item.dose,\n dose = _item$dose === void 0 ? '' : _item$dose;\n\n if (type === 2) {\n if (!usage || !perNum || !perUnit || !usageFrequencyName || !dose) return '待补充';\n }\n\n var perAmount = '';\n if (perNum && perUnit && perUnit !== '无') perAmount = perNum + perUnit + '/次';\n if (perNum && (!perUnit || perUnit === '无')) perAmount = perNum + '/次';\n dose = dose ? '用药' + dose + '天' : '';\n return usage + ' ' + perAmount + ' ' + usageFrequencyName + ' ' + dose;\n },\n drugNum: function drugNum(item) {\n var num = item.num,\n unit = item.unit;\n if (!unit) return '待补充';\n var temp = parseInt(num, 10);\n\n if (isNaN(temp) || temp < 0) {\n return '';\n }\n\n return \"\" + num + unit;\n }\n },\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n var _this$detail2 = this.detail,\n prescriptionType = _this$detail2.prescriptionType,\n prescriptionDetails = _this$detail2.prescriptionDetails,\n prescriptionTotalStatus = _this$detail2.prescriptionTotalStatus,\n supplementaryNotes = _this$detail2.supplementaryNotes,\n chineseMedicineDetail = _this$detail2.chineseMedicineDetail,\n type = this.type;\n return h(\"div\", {\n \"class\": bem('drug-info')\n }, [h(\"p\", {\n \"class\": bem('drug-info--title')\n }, [\"Rp.\"]), prescriptionType === 1 ? h(\"div\", {\n \"class\": bem('drug-info-chinese--wrap')\n }, [h(\"ul\", {\n \"class\": bem('drug-info-chinese--list')\n }, [prescriptionDetails.map(function (detail, i) {\n return h(\"li\", {\n \"class\": bem('drug-info-chinese--item'),\n \"key\": i\n }, [h(\"span\", {\n \"class\": bem('drug-info-chinese--drug-name')\n }, [detail.name, detail.usage && h(\"span\", {\n \"class\": bem('drug-info-chinese--drug-usage')\n }, [\"\\uFF08\", detail.usage, \"\\uFF09\"])]), detail.perNum, detail.perUnit]);\n })]), h(\"div\", {\n \"class\": bem('drug-info-chinese--usage')\n }, [h(\"h2\", {\n \"class\": bem('drug-info-chinese--usage-title')\n }, [\"\\u7528\\u6CD5\\u7528\\u91CF\"]), h(\"p\", {\n \"class\": bem('drug-info-chinese--usage-item')\n }, [\"\\u5171\", chineseMedicineDetail.usageNum, \"\\u5242\\uFF0C\\u6BCF\\u65E5\", chineseMedicineDetail.usageFrequency, \"\\u5242\\uFF0C\\u6BCF\\u5242\\u5206\", chineseMedicineDetail.usagePerNum, \"\\u6B21\\u4F7F\\u7528\"]), h(\"p\", {\n \"class\": bem('drug-info-chinese--usage-item')\n }, [\"\\u7528\\u836F\\u65B9\\u5F0F\\uFF1A\", chineseMedicineDetail.usageWay]), chineseMedicineDetail.usageTime && h(\"p\", {\n \"class\": bem('drug-info-chinese--usage-item')\n }, [\"\\u7528\\u836F\\u65F6\\u95F4\\uFF1A\", chineseMedicineDetail.usageTime])])]) : h(\"ul\", {\n \"class\": bem('drug-info--list')\n }, [prescriptionDetails && prescriptionDetails.map(function (item) {\n return h(\"li\", {\n \"class\": bem('drug-info--item')\n }, [h(\"h3\", [item.chemicalName || item.drugName || item.name || '', item.spec, \" \\u3010\", _this.drugNum(item), \"\\u3011\"]), h(\"p\", {\n \"class\": bem('drug-info--usage')\n }, [\"\\u7528\\u6CD5: \", _this.usage(item, type)]), prescriptionTotalStatus === 1 ? h(\"p\", {\n \"class\": bem('drug-info--remark')\n }, [\"\\u5907\\u6CE8: \", item.remark || '无']) : '']);\n })]), supplementaryNotes ? h(\"div\", {\n \"class\": bem('drug-info--supplementary-notes')\n }, [\"\\u8865\\u5145\\u8BF4\\u660E\\uFF1A\", supplementaryNotes]) : '', h(\"div\", {\n \"class\": bem('drug-info--finish')\n }, [\"\\u4EE5\\u4E0B\\u7A7A\\u767D\"])]);\n }\n});","import { createNamespace } from '../../utils'; // Components\n\nimport Image from '../../image';\nimport Loading from '../../loading';\n\nvar _createNamespace = createNamespace('prescription'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n detail: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n type: {\n type: Number,\n default: 1\n },\n imgServer: String\n },\n computed: {\n showDoctorSign: function showDoctorSign() {\n var _this$detail = this.detail,\n advisoryType = _this$detail.advisoryType,\n serviceAuditStatus = _this$detail.serviceAuditStatus,\n doctorAuditStatus = _this$detail.doctorAuditStatus; // 直接咨询和图文咨询,客服医生通过审核\n\n if ((advisoryType === 1 || advisoryType === 2) && serviceAuditStatus === 1) return true; // 视频咨询,医生审核通过\n\n if (advisoryType === 4 && doctorAuditStatus === 1) return true;\n return false;\n }\n },\n data: function data() {\n return {};\n },\n render: function render() {\n var h = arguments[0];\n var _this$detail2 = this.detail,\n doctorSignUrl = _this$detail2.doctorSignUrl,\n doctorName = _this$detail2.doctorName,\n prescriptionAuditorSignUrl = _this$detail2.prescriptionAuditorSignUrl,\n prescriptionAuditorName = _this$detail2.prescriptionAuditorName,\n dispenserSignature = _this$detail2.dispenserSignature,\n dispatcherSignature = _this$detail2.dispatcherSignature,\n storeContactInfo = _this$detail2.storeContactInfo,\n prescriptionTotalStatus = _this$detail2.prescriptionTotalStatus,\n hospitalSeal = _this$detail2.hospitalSeal,\n pharmacistAuditName = _this$detail2.pharmacistAuditName,\n pharmacistAuditSignUrl = _this$detail2.pharmacistAuditSignUrl,\n validityMemo = _this$detail2.validityMemo,\n showDoctorSign = this.showDoctorSign,\n imgServer = this.imgServer;\n return h(\"div\", {\n \"class\": bem('check-info')\n }, [h(\"div\", {\n \"class\": bem('check-info--line')\n }, [h(\"span\", [\"\\u533B\\u5E08:\"]), doctorName && showDoctorSign ? h(\"span\", {\n \"class\": \"name\"\n }, [doctorName]) : '', doctorSignUrl && showDoctorSign ? h(Image, {\n \"attrs\": {\n \"width\": \"93px\",\n \"height\": \"26.6px\",\n \"fit\": \"contain\",\n \"src\": imgServer + doctorSignUrl\n },\n \"scopedSlots\": {\n loading: function loading() {\n return h(Loading, {\n \"attrs\": {\n \"type\": \"spinner\",\n \"size\": \"20\"\n }\n });\n }\n }\n }) : '']), h(\"div\", {\n \"class\": bem('check-info--line')\n }, [h(\"span\", [\"\\u836F\\u5E08:\"]), pharmacistAuditName ? h(\"span\", {\n \"class\": \"name\"\n }, [pharmacistAuditName]) : '', pharmacistAuditSignUrl ? h(Image, {\n \"attrs\": {\n \"width\": \"93px\",\n \"height\": \"26.6px\",\n \"fit\": \"contain\",\n \"src\": imgServer + pharmacistAuditSignUrl\n },\n \"scopedSlots\": {\n loading: function loading() {\n return h(Loading, {\n \"attrs\": {\n \"type\": \"spinner\",\n \"size\": \"20\"\n }\n });\n }\n }\n }) : '']), h(\"div\", {\n \"class\": bem('check-info--line')\n }, [h(\"span\", [\"\\u5BA1\\u6838:\"]), prescriptionTotalStatus === 2 && prescriptionAuditorName ? h(\"span\", {\n \"class\": \"name\"\n }, [prescriptionAuditorName]) : '', prescriptionTotalStatus === 2 && prescriptionAuditorSignUrl ? h(Image, {\n \"attrs\": {\n \"width\": \"93px\",\n \"height\": \"26.6px\",\n \"fit\": \"contain\",\n \"src\": imgServer + prescriptionAuditorSignUrl\n },\n \"scopedSlots\": {\n loading: function loading() {\n return h(Loading, {\n \"attrs\": {\n \"type\": \"spinner\",\n \"size\": \"20\"\n }\n });\n }\n }\n }) : '']), h(\"div\", {\n \"class\": bem('check-info--line')\n }, [h(\"span\", [\"\\u8C03\\u914D:\"]), dispenserSignature ? h(Image, {\n \"attrs\": {\n \"width\": \"93px\",\n \"height\": \"26.6px\",\n \"fit\": \"contain\",\n \"src\": imgServer + dispenserSignature\n },\n \"scopedSlots\": {\n loading: function loading() {\n return h(Loading, {\n \"attrs\": {\n \"type\": \"spinner\",\n \"size\": \"20\"\n }\n });\n }\n }\n }) : '']), h(\"div\", {\n \"class\": bem('check-info--line')\n }, [h(\"span\", [\"\\u6838\\u5BF9/\\u53D1\\u836F:\"]), dispatcherSignature ? h(Image, {\n \"attrs\": {\n \"width\": \"93px\",\n \"height\": \"26.6px\",\n \"fit\": \"contain\",\n \"src\": imgServer + dispatcherSignature\n },\n \"scopedSlots\": {\n loading: function loading() {\n return h(Loading, {\n \"attrs\": {\n \"type\": \"spinner\",\n \"size\": \"20\"\n }\n });\n }\n }\n }) : '']), h(\"div\", [h(\"span\", [\"\\u91D1\\u989D: \"])]), prescriptionTotalStatus === 2 ? h(Image, {\n \"class\": bem('check-info--seal'),\n \"attrs\": {\n \"width\": \"100px\",\n \"height\": \"100px\",\n \"fit\": \"contain\",\n \"src\": hospitalSeal\n },\n \"scopedSlots\": {\n loading: function loading() {\n return h(Loading, {\n \"attrs\": {\n \"type\": \"spinner\",\n \"size\": \"20\"\n }\n });\n }\n }\n }) : '', h(\"div\", {\n \"class\": bem('check-info--tip')\n }, [h(\"p\", [\"\\u6CE8: \", validityMemo || '本处方当日生效。', storeContactInfo && storeContactInfo.showStore ? storeContactInfo.showStore : ''])])]);\n }\n});","import { createNamespace } from '../utils'; // Components\n\nimport BaseInfo from './components/baseInfo';\nimport DrugInfo from './components/drugInfo';\nimport NewCheckInfo from './components/newCheckInfo';\n\nvar _createNamespace = createNamespace('prescription'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n detail: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n type: {\n type: Number,\n default: 1\n },\n imgServer: String\n },\n data: function data() {\n return {};\n },\n render: function render() {\n var h = arguments[0];\n var detail = this.detail,\n type = this.type,\n imgServer = this.imgServer;\n return h(\"div\", {\n \"class\": bem()\n }, [h(BaseInfo, {\n \"attrs\": {\n \"detail\": detail,\n \"type\": type\n }\n }), h(DrugInfo, {\n \"attrs\": {\n \"detail\": detail,\n \"type\": type\n }\n }), h(NewCheckInfo, {\n \"attrs\": {\n \"detail\": detail,\n \"type\": type,\n \"imgServer\": imgServer\n }\n })]);\n }\n});","import { createNamespace, addUnit } from '../utils';\n\nvar _createNamespace = createNamespace('progress'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n props: {\n color: String,\n inactive: Boolean,\n pivotText: String,\n textColor: String,\n pivotColor: String,\n trackColor: String,\n strokeWidth: [Number, String],\n percentage: {\n type: [Number, String],\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 },\n data: function data() {\n return {\n pivotWidth: 0,\n progressWidth: 0\n };\n },\n mounted: function mounted() {\n this.resize();\n },\n watch: {\n showPivot: 'resize',\n pivotText: 'resize'\n },\n methods: {\n // @exposed-api\n resize: function resize() {\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() {\n var h = arguments[0];\n var pivotText = this.pivotText,\n percentage = this.percentage;\n var text = pivotText != null ? pivotText : percentage + '%';\n var showPivot = this.showPivot && text;\n var background = this.inactive ? '#cacaca' : this.color;\n var pivotStyle = {\n color: this.textColor,\n left: (this.progressWidth - this.pivotWidth) * percentage / 100 + \"px\",\n background: this.pivotColor || background\n };\n var portionStyle = {\n background: background,\n width: this.progressWidth * percentage / 100 + 'px'\n };\n var wrapperStyle = {\n background: this.trackColor,\n height: addUnit(this.strokeWidth)\n };\n return h(\"div\", {\n \"class\": bem(),\n \"style\": wrapperStyle\n }, [h(\"span\", {\n \"class\": bem('portion'),\n \"style\": portionStyle\n }, [showPivot && h(\"span\", {\n \"ref\": \"pivot\",\n \"style\": pivotStyle,\n \"class\": bem('pivot')\n }, [text])])]);\n }\n});","// Utils\nimport { createNamespace } from '../utils';\nimport { preventDefault } from '../utils/dom/event';\nimport { getScrollTop, getScroller } from '../utils/dom/scroll'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch'; // Components\n\nimport Loading from '../loading';\n\nvar _createNamespace = createNamespace('pull-refresh'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nvar DEFAULT_HEAD_HEIGHT = 80;\nvar TEXT_STATUS = ['pulling', 'loosing', 'success'];\nexport default createComponent({\n mixins: [TouchMixin],\n props: {\n disabled: Boolean,\n successText: String,\n pullingText: String,\n loosingText: String,\n loadingText: String,\n loadBgColor: String,\n value: {\n type: Boolean,\n required: true\n },\n successDuration: {\n type: [Number, String],\n default: 500\n },\n animationDuration: {\n type: [Number, String],\n default: 300\n },\n headHeight: {\n type: [Number, String],\n default: DEFAULT_HEAD_HEIGHT\n }\n },\n data: function data() {\n return {\n status: 'normal',\n distance: 0,\n duration: 0\n };\n },\n computed: {\n touchable: function touchable() {\n return this.status !== 'loading' && this.status !== 'success' && !this.disabled;\n },\n headStyle: function headStyle() {\n return {\n backgroundColor: this.loadBgColor\n };\n },\n lineHeight: function lineHeight() {\n return {\n lineHeight: this.headHeight + \"px\"\n };\n }\n },\n watch: {\n value: function value(loading) {\n this.duration = this.animationDuration;\n\n if (loading) {\n this.setStatus(+this.headHeight, true);\n } else if (this.slots('success') || this.successText) {\n this.showSuccessTip();\n } else {\n this.setStatus(0, false);\n }\n }\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$refs.track);\n this.scrollEl = getScroller(this.$el);\n },\n methods: {\n checkPullStart: function checkPullStart(event) {\n this.ceiling = getScrollTop(this.scrollEl) === 0;\n\n if (this.ceiling) {\n this.duration = 0;\n this.touchStart(event);\n }\n },\n onTouchStart: function onTouchStart(event) {\n if (this.touchable) {\n this.checkPullStart(event);\n }\n },\n onTouchMove: function onTouchMove(event) {\n if (!this.touchable) {\n return;\n }\n\n if (!this.ceiling) {\n this.checkPullStart(event);\n }\n\n this.touchMove(event);\n\n if (this.ceiling && this.deltaY >= 0 && this.direction === 'vertical') {\n preventDefault(event);\n this.setStatus(this.ease(this.deltaY));\n }\n },\n onTouchEnd: function onTouchEnd() {\n var _this = this;\n\n if (this.touchable && 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); // ensure value change can be watched\n\n this.$nextTick(function () {\n _this.$emit('refresh');\n });\n } else {\n this.setStatus(0);\n }\n }\n },\n ease: function ease(distance) {\n var headHeight = +this.headHeight;\n\n if (distance > headHeight) {\n if (distance < headHeight * 2) {\n distance = headHeight + (distance - headHeight) / 2;\n } else {\n distance = headHeight * 1.5 + (distance - headHeight * 2) / 4;\n }\n }\n\n return Math.round(distance);\n },\n setStatus: function setStatus(distance, isLoading) {\n var status;\n\n if (isLoading) {\n status = 'loading';\n } else if (distance === 0) {\n status = 'normal';\n } else {\n status = distance < this.headHeight ? 'pulling' : 'loosing';\n }\n\n this.distance = distance;\n\n if (status !== this.status) {\n this.status = status;\n }\n },\n genStatus: function genStatus() {\n var h = this.$createElement;\n var status = this.status,\n distance = this.distance;\n var slot = this.slots(status, {\n distance: distance\n });\n\n if (slot) {\n return slot;\n }\n\n var nodes = [];\n var text = this[status + \"Text\"] || t(status);\n\n if (TEXT_STATUS.indexOf(status) !== -1) {\n nodes.push(h(\"div\", {\n \"class\": bem('text'),\n \"style\": this.lineHeight\n }, [text]));\n }\n\n if (status === 'loading') {\n nodes.push(h(Loading, {\n \"attrs\": {\n \"size\": \"16\"\n },\n \"style\": this.lineHeight\n }, [text]));\n }\n\n return nodes;\n },\n showSuccessTip: function showSuccessTip() {\n var _this2 = this;\n\n this.status = 'success';\n setTimeout(function () {\n _this2.setStatus(0);\n }, this.successDuration);\n }\n },\n render: function render() {\n var h = arguments[0];\n var trackStyle = {\n transitionDuration: this.duration + \"ms\",\n transform: this.distance ? \"translate3d(0,\" + this.distance + \"px, 0)\" : ''\n };\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"ref\": \"track\",\n \"class\": bem('track'),\n \"style\": trackStyle\n }, [h(\"div\", {\n \"class\": bem('head'),\n \"style\": this.headStyle\n }, [this.genStatus()]), this.slots()])]);\n }\n});","// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { preventDefault } from '../utils/dom/event'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch';\nimport { FieldMixin } from '../mixins/field'; // Components\n\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('rate'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[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\nexport default createComponent({\n mixins: [TouchMixin, FieldMixin],\n props: {\n size: [Number, String],\n color: String,\n gutter: [Number, String],\n readonly: Boolean,\n disabled: Boolean,\n allowHalf: Boolean,\n voidColor: String,\n iconPrefix: String,\n disabledColor: String,\n value: {\n type: Number,\n default: 0\n },\n icon: {\n type: String,\n default: 'star'\n },\n voidIcon: {\n type: String,\n default: 'star-o'\n },\n count: {\n type: [Number, String],\n default: 5\n },\n touchable: {\n type: Boolean,\n default: true\n }\n },\n computed: {\n list: function list() {\n var list = [];\n\n for (var i = 1; i <= this.count; i++) {\n list.push(getRateStatus(this.value, i, this.allowHalf));\n }\n\n return list;\n },\n sizeWithUnit: function sizeWithUnit() {\n return addUnit(this.size);\n },\n gutterWithUnit: function gutterWithUnit() {\n return addUnit(this.gutter);\n }\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$el);\n },\n methods: {\n select: function select(index) {\n if (!this.disabled && !this.readonly && index !== this.value) {\n this.$emit('input', index);\n this.$emit('change', index);\n }\n },\n onTouchStart: function onTouchStart(event) {\n var _this = this;\n\n if (this.readonly || this.disabled || !this.touchable) {\n return;\n }\n\n this.touchStart(event);\n var rects = this.$refs.items.map(function (item) {\n return item.getBoundingClientRect();\n });\n var ranges = [];\n rects.forEach(function (rect, index) {\n if (_this.allowHalf) {\n ranges.push({\n score: index + 0.5,\n left: rect.left\n }, {\n score: index + 1,\n left: rect.left + rect.width / 2\n });\n } else {\n ranges.push({\n score: index + 1,\n left: rect.left\n });\n }\n });\n this.ranges = ranges;\n },\n onTouchMove: function onTouchMove(event) {\n if (this.readonly || this.disabled || !this.touchable) {\n return;\n }\n\n this.touchMove(event);\n\n if (this.direction === 'horizontal') {\n preventDefault(event);\n var clientX = event.touches[0].clientX;\n this.select(this.getScoreByPosition(clientX));\n }\n },\n getScoreByPosition: function getScoreByPosition(x) {\n for (var i = this.ranges.length - 1; i > 0; i--) {\n if (x > this.ranges[i].left) {\n return this.ranges[i].score;\n }\n }\n\n return this.allowHalf ? 0.5 : 1;\n },\n genStar: function genStar(status, index) {\n var _this2 = this;\n\n var h = this.$createElement;\n var icon = this.icon,\n color = this.color,\n count = this.count,\n voidIcon = this.voidIcon,\n disabled = this.disabled,\n voidColor = this.voidColor,\n disabledColor = this.disabledColor;\n var score = index + 1;\n var isFull = status === 'full';\n var isVoid = status === 'void';\n var style;\n\n if (this.gutterWithUnit && score !== +count) {\n style = {\n paddingRight: this.gutterWithUnit\n };\n }\n\n return h(\"div\", {\n \"ref\": \"items\",\n \"refInFor\": true,\n \"key\": index,\n \"attrs\": {\n \"role\": \"radio\",\n \"tabindex\": \"0\",\n \"aria-setsize\": count,\n \"aria-posinset\": score,\n \"aria-checked\": String(!isVoid)\n },\n \"style\": style,\n \"class\": bem('item')\n }, [h(Icon, {\n \"attrs\": {\n \"size\": this.sizeWithUnit,\n \"name\": isFull ? icon : voidIcon,\n \"color\": disabled ? disabledColor : isFull ? color : voidColor,\n \"classPrefix\": this.iconPrefix,\n \"data-score\": score\n },\n \"class\": bem('icon', {\n disabled: disabled,\n full: isFull\n }),\n \"on\": {\n \"click\": function click() {\n _this2.select(score);\n }\n }\n }), this.allowHalf && h(Icon, {\n \"attrs\": {\n \"size\": this.sizeWithUnit,\n \"name\": isVoid ? voidIcon : icon,\n \"color\": disabled ? disabledColor : isVoid ? voidColor : color,\n \"classPrefix\": this.iconPrefix,\n \"data-score\": score - 0.5\n },\n \"class\": bem('icon', ['half', {\n disabled: disabled,\n full: !isVoid\n }]),\n \"on\": {\n \"click\": function click() {\n _this2.select(score - 0.5);\n }\n }\n })]);\n }\n },\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem({\n readonly: this.readonly,\n disabled: this.disabled\n }),\n \"attrs\": {\n \"tabindex\": \"0\",\n \"role\": \"radiogroup\"\n }\n }, [this.list.map(function (status, index) {\n return _this3.genStar(status, index);\n })]);\n }\n});","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('row'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanRow')],\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 computed: {\n spaces: function spaces() {\n var gutter = Number(this.gutter);\n\n if (!gutter) {\n return;\n }\n\n var spaces = [];\n var groups = [[]];\n var totalSpan = 0;\n this.children.forEach(function (item, index) {\n totalSpan += Number(item.span);\n\n if (totalSpan > 24) {\n groups.push([index]);\n totalSpan -= 24;\n } else {\n groups[groups.length - 1].push(index);\n }\n });\n groups.forEach(function (group) {\n var averagePadding = gutter * (group.length - 1) / group.length;\n group.forEach(function (item, index) {\n if (index === 0) {\n spaces.push({\n right: averagePadding\n });\n } else {\n var left = gutter - spaces[item - 1].right;\n var right = averagePadding - left;\n spaces.push({\n left: left,\n right: right\n });\n }\n });\n });\n return spaces;\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n }\n },\n render: function render() {\n var _bem;\n\n var h = arguments[0];\n var align = this.align,\n justify = this.justify;\n var flex = this.type === 'flex';\n return h(this.tag, {\n \"class\": bem((_bem = {\n flex: flex\n }, _bem[\"align-\" + align] = flex && align, _bem[\"justify-\" + justify] = flex && justify, _bem)),\n \"on\": {\n \"click\": this.onClick\n }\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\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit, emit } from '../utils/functional';\nimport { preventDefault } from '../utils/dom/event'; // Components\n\nimport Field from '../field'; // Types\n\nvar _createNamespace = createNamespace('search'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction Search(h, props, slots, ctx) {\n function Label() {\n if (slots.label || props.label) {\n return h(\"div\", {\n \"class\": bem('label')\n }, [slots.label ? slots.label() : props.label]);\n }\n }\n\n function Action() {\n if (!props.showAction) {\n return;\n }\n\n function onCancel() {\n if (slots.action) {\n return;\n }\n\n emit(ctx, 'input', '');\n emit(ctx, 'cancel');\n }\n\n return h(\"div\", {\n \"class\": bem('action'),\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\"\n },\n \"on\": {\n \"click\": onCancel\n }\n }, [slots.action ? slots.action() : props.actionText || t('cancel')]);\n }\n\n var fieldData = {\n attrs: ctx.data.attrs,\n on: _extends({}, ctx.listeners, {\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 inheritData.attrs = undefined;\n return h(\"div\", _mergeJSXProps2([{\n \"class\": bem({\n 'show-action': props.showAction\n }),\n \"style\": {\n background: props.background\n }\n }, inheritData]), [slots.left == null ? void 0 : slots.left(), h(\"div\", {\n \"class\": bem('content', props.shape),\n \"style\": {\n background: props.contentBackground\n }\n }, [Label(), h(Field, _mergeJSXProps([{\n \"attrs\": {\n \"type\": \"search\",\n \"border\": false,\n \"value\": props.value,\n \"leftIcon\": props.leftIcon,\n \"rightIcon\": props.rightIcon,\n \"clearable\": props.clearable,\n \"clearTrigger\": props.clearTrigger\n },\n \"scopedSlots\": {\n 'left-icon': slots['left-icon'],\n 'right-icon': slots['right-icon']\n }\n }, fieldData]))]), Action()]);\n}\n\nSearch.props = {\n value: String,\n label: String,\n rightIcon: String,\n actionText: String,\n background: String,\n showAction: Boolean,\n clearTrigger: String,\n contentBackground: {\n type: String,\n default: '#f5f5f5'\n },\n shape: {\n type: String,\n default: 'circle'\n },\n clearable: {\n type: Boolean,\n default: true\n },\n leftIcon: {\n type: String,\n default: 'cap-search'\n }\n};\nexport default createComponent(Search);","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils'; // Mixins\n\nimport { popupMixinProps } from '../mixins/popup'; // Components\n\nimport Popup from '../popup';\nvar PRESET_ICONS = ['qq', 'weibo', 'wechat', 'link', 'qrcode', 'poster'];\n\nvar _createNamespace = createNamespace('share-sheet'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n props: _extends({}, popupMixinProps, {\n title: String,\n cancelText: String,\n description: String,\n getContainer: [String, Function],\n options: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n overlay: {\n type: Boolean,\n default: true\n },\n closeOnPopstate: {\n type: Boolean,\n default: true\n },\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n }\n }),\n methods: {\n onCancel: function onCancel() {\n this.toggle(false);\n this.$emit('cancel');\n },\n onSelect: function onSelect(option, index) {\n this.$emit('select', option, index);\n },\n toggle: function toggle(val) {\n this.$emit('input', val);\n },\n getIconURL: function getIconURL(icon) {\n if (PRESET_ICONS.indexOf(icon) !== -1) {\n return \"https://img.yzcdn.cn/vant/share-icon-\" + icon + \".png\";\n }\n\n return icon;\n },\n genHeader: function genHeader() {\n var h = this.$createElement;\n var title = this.slots('title') || this.title;\n var description = this.slots('description') || this.description;\n\n if (!title && !description) {\n return;\n }\n\n return h(\"div\", {\n \"class\": bem('header')\n }, [title && h(\"h2\", {\n \"class\": bem('title')\n }, [title]), description && h(\"span\", {\n \"class\": bem('description')\n }, [description])]);\n },\n genOptions: function genOptions(options, showBorder) {\n var _this = this;\n\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": bem('options', {\n border: showBorder\n })\n }, [options.map(function (option, index) {\n return h(\"div\", {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\"\n },\n \"class\": [bem('option'), option.className],\n \"on\": {\n \"click\": function click() {\n _this.onSelect(option, index);\n }\n }\n }, [h(\"img\", {\n \"attrs\": {\n \"src\": _this.getIconURL(option.icon)\n },\n \"class\": bem('icon')\n }), option.name && h(\"span\", {\n \"class\": bem('name')\n }, [option.name]), option.description && h(\"span\", {\n \"class\": bem('option-description')\n }, [option.description])]);\n })]);\n },\n genRows: function genRows() {\n var _this2 = this;\n\n var options = this.options;\n\n if (Array.isArray(options[0])) {\n // return options.map((item, index) => this.genOptions(item, index !== 0));\n // 新版UI不需要border\n return options.map(function (item) {\n return _this2.genOptions(item);\n });\n }\n\n return this.genOptions(options);\n },\n genCancelText: function genCancelText() {\n var _this$cancelText;\n\n var h = this.$createElement;\n var cancelText = (_this$cancelText = this.cancelText) != null ? _this$cancelText : t('cancel');\n\n if (cancelText) {\n return h(\"button\", {\n \"attrs\": {\n \"type\": \"button\"\n },\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": this.onCancel\n }\n }, [cancelText]);\n }\n },\n onClickOverlay: function onClickOverlay() {\n this.$emit('click-overlay');\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(Popup, {\n \"attrs\": {\n \"round\": true,\n \"value\": this.value,\n \"position\": \"bottom\",\n \"overlay\": this.overlay,\n \"duration\": this.duration,\n \"lazyRender\": this.lazyRender,\n \"lockScroll\": this.lockScroll,\n \"getContainer\": this.getContainer,\n \"closeOnPopstate\": this.closeOnPopstate,\n \"closeOnClickOverlay\": this.closeOnClickOverlay,\n \"safeAreaInsetBottom\": this.safeAreaInsetBottom\n },\n \"class\": bem(),\n \"on\": {\n \"input\": this.toggle,\n \"click-overlay\": this.onClickOverlay\n }\n }, [this.genHeader(), this.genRows(), this.genCancelText()]);\n }\n});","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('sidebar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanSidebar')],\n model: {\n prop: 'activeKey'\n },\n props: {\n activeKey: {\n type: [Number, String],\n default: 0\n }\n },\n data: function data() {\n return {\n index: +this.activeKey\n };\n },\n watch: {\n activeKey: function activeKey() {\n this.setIndex(+this.activeKey);\n }\n },\n methods: {\n setIndex: function setIndex(index) {\n if (index !== this.index) {\n this.index = index;\n this.$emit('change', index);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { ChildrenMixin } from '../mixins/relation';\nimport { route, routeProps } from '../utils/router';\nimport Info from '../info';\n\nvar _createNamespace = createNamespace('sidebar-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanSidebar')],\n props: _extends({}, routeProps, {\n dot: Boolean,\n // @deprecated\n info: [Number, String],\n badge: [Number, String],\n title: String,\n disabled: Boolean\n }),\n computed: {\n select: function select() {\n return this.index === +this.parent.activeKey;\n }\n },\n methods: {\n onClick: function onClick() {\n if (this.disabled) {\n return;\n }\n\n this.$emit('click', this.index);\n this.parent.$emit('input', this.index);\n this.parent.setIndex(this.index);\n route(this.$router, this);\n }\n },\n render: function render() {\n var _this$slots, _this$badge;\n\n var h = arguments[0];\n\n if (process.env.NODE_ENV === 'development' && this.info) {\n console.warn('[Vant] SidebarItem: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n return h(\"a\", {\n \"class\": bem({\n select: this.select,\n disabled: this.disabled\n }),\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('text')\n }, [(_this$slots = this.slots('title')) != null ? _this$slots : this.title, h(Info, {\n \"attrs\": {\n \"dot\": this.dot,\n \"info\": (_this$badge = this.badge) != null ? _this$badge : this.info\n },\n \"class\": bem('info')\n })])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('skeleton'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar DEFAULT_ROW_WIDTH = '100%';\nvar DEFAULT_LAST_ROW_WIDTH = '60%';\n\nfunction Skeleton(h, props, slots, ctx) {\n if (!props.loading) {\n return slots.default && slots.default();\n }\n\n function Title() {\n if (props.title) {\n return h(\"h3\", {\n \"class\": bem('title'),\n \"style\": {\n width: addUnit(props.titleWidth)\n }\n });\n }\n }\n\n function Rows() {\n var Rows = [];\n var rowWidth = props.rowWidth;\n\n function getRowWidth(index) {\n if (rowWidth === DEFAULT_ROW_WIDTH && index === +props.row - 1) {\n return DEFAULT_LAST_ROW_WIDTH;\n }\n\n if (Array.isArray(rowWidth)) {\n return rowWidth[index];\n }\n\n return rowWidth;\n }\n\n for (var i = 0; i < props.row; i++) {\n Rows.push(h(\"div\", {\n \"class\": bem('row'),\n \"style\": {\n width: addUnit(getRowWidth(i))\n }\n }));\n }\n\n return Rows;\n }\n\n function Avatar() {\n if (props.avatar) {\n var size = addUnit(props.avatarSize);\n return h(\"div\", {\n \"class\": bem('avatar', props.avatarShape),\n \"style\": {\n width: size,\n height: size\n }\n });\n }\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n animate: props.animate,\n round: props.round\n })\n }, inherit(ctx)]), [Avatar(), h(\"div\", {\n \"class\": bem('content')\n }, [Title(), Rows()])]);\n}\n\nSkeleton.props = {\n title: Boolean,\n round: Boolean,\n avatar: Boolean,\n titleWidth: [Number, String],\n avatarSize: [Number, String],\n row: {\n type: [Number, String],\n default: 0\n },\n loading: {\n type: Boolean,\n default: true\n },\n animate: {\n type: Boolean,\n default: true\n },\n avatarShape: {\n type: String,\n default: 'round'\n },\n rowWidth: {\n type: [Number, String, Array],\n default: DEFAULT_ROW_WIDTH\n }\n};\nexport default createComponent(Skeleton);","/**\n * Sku only provide zh-CN lang by default\n */\nexport default {\n 'zh-CN': {\n vanSku: {\n select: '请选择',\n selected: '已选',\n selectSku: '请先选择商品规格',\n soldout: '库存不足',\n originPrice: '原价',\n minusTip: '至少选择一件',\n minusStartTip: function minusStartTip(start) {\n return start + \"\\u4EF6\\u8D77\\u552E\";\n },\n unavailable: '商品已经无法购买啦',\n stock: '剩余',\n stockUnit: '件',\n quotaTip: function quotaTip(quota) {\n return \"\\u6BCF\\u4EBA\\u9650\\u8D2D\" + quota + \"\\u4EF6\";\n },\n quotaUsedTip: function quotaUsedTip(quota, count) {\n return \"\\u6BCF\\u4EBA\\u9650\\u8D2D\" + quota + \"\\u4EF6\\uFF0C\\u4F60\\u5DF2\\u8D2D\\u4E70\" + count + \"\\u4EF6\";\n }\n },\n vanSkuActions: {\n buy: '立即购买',\n addCart: '加入购物车'\n },\n vanSkuImgUploader: {\n oversize: function oversize(maxSize) {\n return \"\\u6700\\u5927\\u53EF\\u4E0A\\u4F20\\u56FE\\u7247\\u4E3A\" + maxSize + \"MB\\uFF0C\\u8BF7\\u5C1D\\u8BD5\\u538B\\u7F29\\u56FE\\u7247\\u5C3A\\u5BF8\";\n },\n fail: '上传失败',\n uploading: '上传中...'\n },\n vanSkuStepper: {\n quotaLimit: function quotaLimit(quota) {\n return \"\\u9650\\u8D2D\" + quota + \"\\u4EF6\";\n },\n quotaStart: function quotaStart(start) {\n return start + \"\\u4EF6\\u8D77\\u552E\";\n },\n comma: ',',\n num: '购买数量'\n },\n vanSkuMessages: {\n fill: '请填写',\n upload: '请上传',\n imageLabel: '仅限一张',\n invalid: {\n tel: '请填写正确的数字格式留言',\n mobile: '手机号长度为6-20位数字',\n email: '请填写正确的邮箱',\n id_no: '请填写正确的身份证号码'\n },\n placeholder: {\n id_no: '请填写身份证号',\n text: '请填写留言',\n tel: '请填写数字',\n email: '请填写邮箱',\n date: '请选择日期',\n time: '请选择时间',\n textarea: '请填写留言',\n mobile: '请填写手机号'\n }\n },\n vanSkuRow: {\n multiple: '可多选'\n },\n vanSkuDatetimeField: {\n title: {\n date: '选择年月日',\n time: '选择时间',\n datetime: '选择日期时间'\n },\n format: {\n year: '年',\n month: '月',\n day: '日',\n hour: '时',\n minute: '分'\n }\n }\n }\n};","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};\nexport var normalizePropList = function normalizePropList(propList) {\n var normalizedProp = {};\n propList.forEach(function (item) {\n var itemObj = {};\n item.v.forEach(function (it) {\n itemObj[it.id] = it;\n });\n normalizedProp[item.k_id] = itemObj;\n });\n return normalizedProp;\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 var getSelectedPropValues = function getSelectedPropValues(propList, selectedProp) {\n var normalizeProp = normalizePropList(propList);\n return Object.keys(selectedProp).reduce(function (acc, cur) {\n selectedProp[cur].forEach(function (it) {\n acc.push(_extends({}, normalizeProp[cur][it]));\n });\n return acc;\n }, []);\n};\nexport var getSelectedProperties = function getSelectedProperties(propList, selectedProp) {\n var list = [];\n (propList || []).forEach(function (prop) {\n if (selectedProp[prop.k_id] && selectedProp[prop.k_id].length > 0) {\n var v = [];\n prop.v.forEach(function (it) {\n if (selectedProp[prop.k_id].indexOf(it.id) > -1) {\n v.push(_extends({}, it));\n }\n });\n list.push(_extends({}, prop, {\n v: v\n }));\n }\n });\n return list;\n};\nexport default {\n normalizeSkuTree: normalizeSkuTree,\n getSkuComb: getSkuComb,\n getSelectedSkuValues: getSelectedSkuValues,\n isAllSelected: isAllSelected,\n isSkuChoosable: isSkuChoosable,\n getSelectedPropValues: getSelectedPropValues,\n getSelectedProperties: getSelectedProperties\n};","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../../utils';\nimport { inherit } from '../../utils/functional';\nimport { BORDER_BOTTOM } from '../../utils/constant'; // Components\n\nimport Image from '../../image'; // Types\n\nvar _createNamespace = createNamespace('sku-header'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction getSkuImgValue(sku, selectedSku) {\n var imgValue;\n sku.tree.some(function (item) {\n var id = selectedSku[item.k_s];\n\n if (id && item.v) {\n var matchedSku = item.v.filter(function (skuValue) {\n return skuValue.id === id;\n })[0] || {};\n var img = matchedSku.previewImgUrl || matchedSku.imgUrl || matchedSku.img_url;\n\n if (img) {\n imgValue = _extends({}, matchedSku, {\n ks: item.k_s,\n imgUrl: img\n });\n return true;\n }\n }\n\n return false;\n });\n return imgValue;\n}\n\nfunction SkuHeader(h, props, slots, ctx) {\n var _slots$skuHeaderIma;\n\n var sku = props.sku,\n goods = props.goods,\n skuEventBus = props.skuEventBus,\n selectedSku = props.selectedSku,\n _props$showHeaderImag = props.showHeaderImage,\n showHeaderImage = _props$showHeaderImag === void 0 ? true : _props$showHeaderImag;\n var selectedValue = getSkuImgValue(sku, selectedSku);\n var imgUrl = selectedValue ? selectedValue.imgUrl : goods.picture;\n\n var previewImage = function previewImage() {\n skuEventBus.$emit('sku:previewImage', selectedValue);\n };\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": [bem(), BORDER_BOTTOM]\n }, inherit(ctx)]), [showHeaderImage && h(Image, {\n \"attrs\": {\n \"fit\": \"cover\",\n \"src\": imgUrl\n },\n \"class\": bem('img-wrap'),\n \"on\": {\n \"click\": previewImage\n }\n }, [(_slots$skuHeaderIma = slots['sku-header-image-extra']) == null ? void 0 : _slots$skuHeaderIma.call(slots)]), h(\"div\", {\n \"class\": bem('goods-info')\n }, [slots.default == null ? void 0 : slots.default()])]);\n}\n\nSkuHeader.props = {\n sku: Object,\n goods: Object,\n skuEventBus: Object,\n selectedSku: Object,\n showHeaderImage: Boolean\n};\nexport default createComponent(SkuHeader);","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../../utils';\nimport { inherit } from '../../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('sku-header-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction SkuHeader(h, props, slots, ctx) {\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem()\n }, inherit(ctx)]), [slots.default && slots.default()]);\n}\n\nexport default createComponent(SkuHeader);","// Utils\nimport { createNamespace } from '../../utils';\nimport { BORDER_BOTTOM } from '../../utils/constant'; // Mixins\n\nimport { ParentMixin } from '../../mixins/relation';\nimport { BindEventMixin } from '../../mixins/bind-event';\n\nvar _createNamespace = createNamespace('sku-row'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport { bem };\nexport default createComponent({\n mixins: [ParentMixin('vanSkuRows'), BindEventMixin(function (bind) {\n if (this.scrollable && this.$refs.scroller) {\n bind(this.$refs.scroller, 'scroll', this.onScroll);\n }\n })],\n props: {\n skuRow: Object\n },\n data: function data() {\n return {\n progress: 0\n };\n },\n computed: {\n scrollable: function scrollable() {\n return this.skuRow.largeImageMode && this.skuRow.v.length > 6;\n }\n },\n methods: {\n onScroll: function onScroll() {\n var _this$$refs = this.$refs,\n scroller = _this$$refs.scroller,\n row = _this$$refs.row;\n var distance = row.offsetWidth - scroller.offsetWidth;\n this.progress = scroller.scrollLeft / distance;\n },\n genTitle: function genTitle() {\n var h = this.$createElement;\n return h(\"div\", {\n \"class\": bem('title')\n }, [this.skuRow.k, this.skuRow.is_multiple && h(\"span\", {\n \"class\": bem('title-multiple')\n }, [\"\\uFF08\", t('multiple'), \"\\uFF09\"])]);\n },\n genIndicator: function genIndicator() {\n var h = this.$createElement;\n\n if (this.scrollable) {\n var style = {\n transform: \"translate3d(\" + this.progress * 20 + \"px, 0, 0)\"\n };\n return h(\"div\", {\n \"class\": bem('indicator-wrapper')\n }, [h(\"div\", {\n \"class\": bem('indicator')\n }, [h(\"div\", {\n \"class\": bem('indicator-slider'),\n \"style\": style\n })])]);\n }\n },\n genContent: function genContent() {\n var h = this.$createElement;\n var nodes = this.slots();\n\n if (this.skuRow.largeImageMode) {\n var top = [];\n var bottom = [];\n nodes.forEach(function (node, index) {\n var group = Math.floor(index / 3) % 2 === 0 ? top : bottom;\n group.push(node);\n });\n return h(\"div\", {\n \"class\": bem('scroller'),\n \"ref\": \"scroller\"\n }, [h(\"div\", {\n \"class\": bem('row'),\n \"ref\": \"row\"\n }, [top]), bottom.length ? h(\"div\", {\n \"class\": bem('row')\n }, [bottom]) : null]);\n }\n\n return nodes;\n },\n centerItem: function centerItem(selectSkuId) {\n if (!this.skuRow.largeImageMode || !selectSkuId) {\n return;\n }\n\n var _this$children = this.children,\n children = _this$children === void 0 ? [] : _this$children;\n var _this$$refs2 = this.$refs,\n scroller = _this$$refs2.scroller,\n row = _this$$refs2.row;\n var child = children.find(function (it) {\n return +it.skuValue.id === +selectSkuId;\n });\n\n if (scroller && row && child && child.$el) {\n var target = child.$el;\n var to = target.offsetLeft - (scroller.offsetWidth - target.offsetWidth) / 2;\n scroller.scrollLeft = to;\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": [bem(), BORDER_BOTTOM]\n }, [this.genTitle(), this.genContent(), this.genIndicator()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { bem } from './SkuRow';\nimport { createNamespace } from '../../utils';\nimport { isSkuChoosable } from '../utils/sku-helper';\nimport { ChildrenMixin } from '../../mixins/relation';\nimport Image from '../../image';\n\nvar _createNamespace = createNamespace('sku-row-item'),\n createComponent = _createNamespace[0];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanSkuRows')],\n props: {\n lazyLoad: Boolean,\n skuValue: Object,\n skuKeyStr: String,\n skuEventBus: Object,\n selectedSku: Object,\n largeImageMode: Boolean,\n canSelectSoldoutSku: Boolean,\n skuList: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n computed: {\n imgUrl: function imgUrl() {\n var url = this.skuValue.imgUrl || this.skuValue.img_url;\n return this.largeImageMode ? url || 'https://img.yzcdn.cn/upload_files/2020/06/24/FmKWDg0bN9rMcTp9ne8MXiQWGtLn.png' : url;\n },\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 || this.canSelectSoldoutSku) {\n var params = _extends({}, this.skuValue, {\n skuKeyStr: this.skuKeyStr\n });\n\n if (!this.choosable) params.skuDisabled = true;\n this.skuEventBus.$emit('sku:select', params);\n }\n },\n onPreviewImg: function onPreviewImg(event) {\n event.stopPropagation();\n var skuValue = this.skuValue,\n skuKeyStr = this.skuKeyStr;\n this.skuEventBus.$emit('sku:previewImage', _extends({}, skuValue, {\n ks: skuKeyStr,\n imgUrl: skuValue.imgUrl || skuValue.img_url\n }));\n },\n genImage: function genImage(classPrefix) {\n var h = this.$createElement;\n\n if (this.imgUrl) {\n return h(Image, {\n \"attrs\": {\n \"fit\": \"cover\",\n \"src\": this.imgUrl,\n \"lazyLoad\": this.lazyLoad\n },\n \"class\": classPrefix + \"-img\"\n });\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var choosed = this.skuValue.id === this.selectedSku[this.skuKeyStr];\n var classPrefix = this.largeImageMode ? bem('image-item') : bem('item');\n return h(\"span\", {\n \"class\": [classPrefix, choosed ? classPrefix + \"--active\" : '', !this.choosable && !choosed ? classPrefix + \"--disabled\" : ''],\n \"on\": {\n \"click\": this.onSelect\n }\n }, [this.genImage(classPrefix), h(\"div\", {\n \"class\": classPrefix + \"-name\"\n }, [this.largeImageMode ? h(\"span\", {\n \"class\": {\n 'van-multi-ellipsis--l2': this.largeImageMode\n }\n }, [this.skuValue.name]) : this.skuValue.name]), this.largeImageMode && h(\"img\", {\n \"class\": classPrefix + \"-img-icon\",\n \"attrs\": {\n \"src\": \"https://img.yzcdn.cn/upload_files/2020/07/02/Fu4_ya0l0aAt4Mv4PL9jzPzfZnDX.png\"\n },\n \"on\": {\n \"click\": this.onPreviewImg\n }\n })]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../../utils';\n\nvar _createNamespace = createNamespace('sku-row-prop-item'),\n createComponent = _createNamespace[0];\n\nexport default createComponent({\n props: {\n skuValue: Object,\n skuKeyStr: String,\n skuEventBus: Object,\n selectedProp: Object,\n multiple: Boolean\n },\n computed: {\n choosed: function choosed() {\n var selectedProp = this.selectedProp,\n skuKeyStr = this.skuKeyStr,\n skuValue = this.skuValue;\n\n if (selectedProp && selectedProp[skuKeyStr]) {\n return selectedProp[skuKeyStr].indexOf(skuValue.id) > -1;\n }\n\n return false;\n }\n },\n methods: {\n onSelect: function onSelect() {\n this.skuEventBus.$emit('sku:propSelect', _extends({}, this.skuValue, {\n skuKeyStr: this.skuKeyStr,\n multiple: this.multiple\n }));\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"span\", {\n \"class\": ['van-sku-row__item', {\n 'van-sku-row__item--active': this.choosed\n }],\n \"on\": {\n \"click\": this.onSelect\n }\n }, [h(\"span\", {\n \"class\": \"van-sku-row__item-name\"\n }, [this.skuValue.name])]);\n }\n});","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { createNamespace, isDef, addUnit } from '../utils';\nimport { resetScroll } from '../utils/dom/reset-scroll';\nimport { preventDefault } from '../utils/dom/event';\nimport { formatNumber as _formatNumber } from '../utils/format/number';\nimport { isNaN } from '../utils/validate/number';\nimport { FieldMixin } from '../mixins/field';\n\nvar _createNamespace = createNamespace('stepper'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar LONG_PRESS_START_TIME = 600;\nvar LONG_PRESS_INTERVAL = 200;\n\nfunction equal(value1, value2) {\n return String(value1) === String(value2);\n} // add num and avoid float number\n\n\nfunction add(num1, num2) {\n var cardinal = Math.pow(10, 10);\n return Math.round((num1 + num2) * cardinal) / cardinal;\n}\n\nexport default createComponent({\n mixins: [FieldMixin],\n props: {\n value: null,\n theme: String,\n integer: Boolean,\n disabled: Boolean,\n allowEmpty: Boolean,\n inputWidth: [Number, String],\n buttonSize: [Number, String],\n asyncChange: Boolean,\n placeholder: String,\n disablePlus: Boolean,\n disableMinus: Boolean,\n disableInput: Boolean,\n decimalLength: [Number, String],\n name: {\n type: [Number, String],\n default: ''\n },\n min: {\n type: [Number, String],\n default: 1\n },\n max: {\n type: [Number, String],\n default: Infinity\n },\n step: {\n type: [Number, String],\n default: 1\n },\n defaultValue: {\n type: [Number, String],\n default: 1\n },\n showPlus: {\n type: Boolean,\n default: true\n },\n showMinus: {\n type: Boolean,\n default: true\n },\n longPress: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n var _this$value;\n\n var defaultValue = (_this$value = this.value) != null ? _this$value : this.defaultValue;\n var value = this.format(defaultValue);\n\n if (!equal(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.disableMinus || this.currentValue <= +this.min;\n },\n plusDisabled: function plusDisabled() {\n return this.disabled || this.disablePlus || this.currentValue >= +this.max;\n },\n inputStyle: function inputStyle() {\n var style = {};\n\n if (this.inputWidth) {\n style.width = addUnit(this.inputWidth);\n }\n\n if (this.buttonSize) {\n style.height = addUnit(this.buttonSize);\n }\n\n return style;\n },\n buttonStyle: function buttonStyle() {\n if (this.buttonSize) {\n var size = addUnit(this.buttonSize);\n return {\n width: size,\n height: size\n };\n }\n }\n },\n watch: {\n max: 'check',\n min: 'check',\n integer: 'check',\n decimalLength: 'check',\n value: function value(val) {\n if (!equal(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 name: this.name\n });\n }\n },\n methods: {\n check: function check() {\n var val = this.format(this.currentValue);\n\n if (!equal(val, this.currentValue)) {\n this.currentValue = val;\n }\n },\n // formatNumber illegal characters\n formatNumber: function formatNumber(value) {\n return _formatNumber(String(value), !this.integer);\n },\n format: function format(value) {\n if (this.allowEmpty && value === '') {\n return value;\n }\n\n value = this.formatNumber(value); // format range\n\n value = value === '' ? 0 : +value;\n value = isNaN(value) ? this.min : value;\n value = Math.max(Math.min(this.max, value), this.min); // format decimal\n\n if (isDef(this.decimalLength)) {\n value = value.toFixed(this.decimalLength);\n }\n\n return value;\n },\n onInput: function onInput(event) {\n var value = event.target.value;\n var formatted = this.formatNumber(value); // limit max decimal length\n\n if (isDef(this.decimalLength) && formatted.indexOf('.') !== -1) {\n var pair = formatted.split('.');\n formatted = pair[0] + \".\" + pair[1].slice(0, this.decimalLength);\n }\n\n if (!equal(value, formatted)) {\n event.target.value = formatted;\n }\n\n this.emitChange(formatted);\n },\n emitChange: function emitChange(value) {\n if (this.asyncChange) {\n this.$emit('input', value);\n this.$emit('change', value, {\n name: this.name\n });\n } else {\n this.currentValue = value;\n }\n },\n onChange: function onChange() {\n var type = this.type;\n\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 = this.format(add(+this.currentValue, diff));\n this.emitChange(value);\n this.$emit(type);\n },\n onFocus: function onFocus(event) {\n // readonly not work in lagacy mobile safari\n if (this.disableInput && this.$refs.input) {\n this.$refs.input.blur();\n } else {\n this.$emit('focus', event);\n }\n },\n onBlur: function onBlur(event) {\n var value = this.format(event.target.value);\n event.target.value = value;\n this.currentValue = value;\n this.$emit('blur', event);\n resetScroll();\n },\n longPressStep: function longPressStep() {\n var _this = this;\n\n this.longPressTimer = setTimeout(function () {\n _this.onChange();\n\n _this.longPressStep(_this.type);\n }, LONG_PRESS_INTERVAL);\n },\n onTouchStart: function onTouchStart() {\n var _this2 = this;\n\n if (!this.longPress) {\n return;\n }\n\n clearTimeout(this.longPressTimer);\n this.isLongPress = false;\n this.longPressTimer = setTimeout(function () {\n _this2.isLongPress = true;\n\n _this2.onChange();\n\n _this2.longPressStep();\n }, LONG_PRESS_START_TIME);\n },\n onTouchEnd: function onTouchEnd(event) {\n if (!this.longPress) {\n return;\n }\n\n clearTimeout(this.longPressTimer);\n\n if (this.isLongPress) {\n preventDefault(event);\n }\n }\n },\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\n\n var createListeners = function createListeners(type) {\n return {\n on: {\n click: function click(e) {\n // disable double tap scrolling on mobile safari\n e.preventDefault();\n _this3.type = type;\n\n _this3.onChange();\n },\n touchstart: function touchstart() {\n _this3.type = type;\n\n _this3.onTouchStart();\n },\n touchend: _this3.onTouchEnd,\n touchcancel: _this3.onTouchEnd\n }\n };\n };\n\n return h(\"div\", {\n \"class\": bem([this.theme])\n }, [h(\"button\", _mergeJSXProps([{\n \"directives\": [{\n name: \"show\",\n value: this.showMinus\n }],\n \"attrs\": {\n \"type\": \"button\"\n },\n \"style\": this.buttonStyle,\n \"class\": bem('minus', {\n disabled: this.minusDisabled\n })\n }, createListeners('minus')])), h(\"input\", {\n \"ref\": \"input\",\n \"attrs\": {\n \"type\": this.integer ? 'tel' : 'text',\n \"role\": \"spinbutton\",\n \"disabled\": this.disabled,\n \"readonly\": this.disableInput,\n \"inputmode\": this.integer ? 'numeric' : 'decimal',\n \"placeholder\": this.placeholder,\n \"aria-valuemax\": this.max,\n \"aria-valuemin\": this.min,\n \"aria-valuenow\": this.currentValue\n },\n \"class\": bem('input'),\n \"domProps\": {\n \"value\": this.currentValue\n },\n \"style\": this.inputStyle,\n \"on\": {\n \"input\": this.onInput,\n \"focus\": this.onFocus,\n \"blur\": this.onBlur\n }\n }), h(\"button\", _mergeJSXProps2([{\n \"directives\": [{\n name: \"show\",\n value: this.showPlus\n }],\n \"attrs\": {\n \"type\": \"button\"\n },\n \"style\": this.buttonStyle,\n \"class\": bem('plus', {\n disabled: this.plusDisabled\n })\n }, createListeners('plus')]))]);\n }\n});","import { createNamespace } from '../../utils';\nimport { LIMIT_TYPE } from '../constants';\nimport Stepper from '../../stepper';\nvar namespace = createNamespace('sku-stepper');\nvar createComponent = namespace[0];\nvar t = namespace[2];\nvar QUOTA_LIMIT = LIMIT_TYPE.QUOTA_LIMIT,\n STOCK_LIMIT = LIMIT_TYPE.STOCK_LIMIT;\nexport default createComponent({\n props: {\n stock: Number,\n skuEventBus: Object,\n skuStockNum: Number,\n selectedNum: Number,\n stepperTitle: String,\n disableStepperInput: Boolean,\n customStepperConfig: Object,\n hideQuotaText: Boolean,\n quota: {\n type: Number,\n default: 0\n },\n quotaUsed: {\n type: Number,\n default: 0\n },\n startSaleNum: {\n type: Number,\n default: 1\n }\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 var intValue = parseInt(num, 10);\n\n if (intValue >= this.stepperMinLimit && intValue <= this.stepperLimit) {\n this.skuEventBus.$emit('sku:numChange', intValue);\n }\n },\n stepperLimit: function stepperLimit(limit) {\n if (limit < this.currentNum && this.stepperMinLimit <= limit) {\n this.currentNum = limit;\n }\n\n this.checkState(this.stepperMinLimit, limit);\n },\n stepperMinLimit: function stepperMinLimit(start) {\n if (start > this.currentNum || start > this.stepperLimit) {\n this.currentNum = start;\n }\n\n this.checkState(start, this.stepperLimit);\n }\n },\n computed: {\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 stepperMinLimit: function stepperMinLimit() {\n return this.startSaleNum < 1 ? 1 : this.startSaleNum;\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 {\n var textArr = [];\n\n if (this.startSaleNum > 1) {\n textArr.push(t('quotaStart', this.startSaleNum));\n }\n\n if (this.quota > 0) {\n textArr.push(t('quotaLimit', this.quota));\n }\n\n text = textArr.join(t('comma'));\n }\n\n return text;\n }\n },\n created: function created() {\n this.checkState(this.stepperMinLimit, this.stepperLimit);\n },\n methods: {\n setCurrentNum: function setCurrentNum(num) {\n this.currentNum = num;\n this.checkState(this.stepperMinLimit, this.stepperLimit);\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 startSaleNum: this.startSaleNum\n });\n },\n onChange: function onChange(currentValue) {\n var intValue = parseInt(currentValue, 10);\n var handleStepperChange = this.customStepperConfig.handleStepperChange;\n handleStepperChange && handleStepperChange(intValue);\n this.$emit('change', intValue);\n },\n checkState: function checkState(min, max) {\n // 如果选择小于起售,则强制变为起售\n if (this.currentNum < min || min > max) {\n this.currentNum = min;\n } else if (this.currentNum > max) {\n // 当前选择数量大于最大可选时,需要重置已选数量\n this.currentNum = max;\n }\n\n this.skuEventBus.$emit('sku:stepperState', {\n valid: min <= max,\n min: min,\n max: max,\n limitType: this.limitType,\n quota: this.quota,\n quotaUsed: this.quotaUsed,\n startSaleNum: this.startSaleNum\n });\n }\n },\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n return h(\"div\", {\n \"class\": \"van-sku-stepper-stock\"\n }, [h(\"div\", {\n \"class\": \"van-sku__stepper-title\"\n }, [this.stepperTitle || t('num')]), h(Stepper, {\n \"attrs\": {\n \"integer\": true,\n \"min\": this.stepperMinLimit,\n \"max\": this.stepperLimit,\n \"disableInput\": this.disableStepperInput\n },\n \"class\": \"van-sku__stepper\",\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.hideQuotaText && this.quotaText && h(\"span\", {\n \"class\": \"van-sku__stepper-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}","export function toArray(item) {\n if (Array.isArray(item)) {\n return item;\n }\n\n return [item];\n}\nexport function readFile(file, resultType) {\n return new Promise(function (resolve) {\n if (resultType === 'file') {\n resolve();\n return;\n }\n\n var reader = new FileReader();\n\n reader.onload = function (event) {\n resolve(event.target.result);\n };\n\n if (resultType === 'dataUrl') {\n reader.readAsDataURL(file);\n } else if (resultType === 'text') {\n reader.readAsText(file);\n }\n });\n}\nexport function isOversize(files, maxSize) {\n return toArray(files).some(function (file) {\n return file.size > maxSize;\n });\n}\nvar IMAGE_REGEXP = /\\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;\nexport function isImageUrl(url) {\n return IMAGE_REGEXP.test(url);\n}\nexport function isImageFile(item) {\n // some special urls cannot be recognized\n // user can add `isImage` flag to mark it as an image url\n if (item.isImage) {\n return true;\n }\n\n if (item.file && item.file.type) {\n return item.file.type.indexOf('image') === 0;\n }\n\n if (item.url) {\n return isImageUrl(item.url);\n }\n\n if (item.content) {\n return item.content.indexOf('data:image') === 0;\n }\n\n return false;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, addUnit, noop, isPromise, isDef } from '../utils';\nimport { toArray, readFile as _readFile, isOversize, isImageFile } from './utils'; // Mixins\n\nimport { FieldMixin } from '../mixins/field'; // Components\n\nimport Icon from '../icon';\nimport Image from '../image';\nimport Loading from '../loading';\nimport ImagePreview from '../image-preview';\n\nvar _createNamespace = createNamespace('uploader'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n inheritAttrs: false,\n mixins: [FieldMixin],\n model: {\n prop: 'fileList'\n },\n props: {\n disabled: Boolean,\n lazyLoad: Boolean,\n uploadText: String,\n afterRead: Function,\n beforeRead: Function,\n beforeDelete: Function,\n previewSize: [Number, String],\n previewOptions: Object,\n name: {\n type: [Number, String],\n default: ''\n },\n accept: {\n type: String,\n default: 'image/*'\n },\n fileList: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n maxSize: {\n type: [Number, String],\n default: Number.MAX_VALUE\n },\n maxCount: {\n type: [Number, String],\n default: Number.MAX_VALUE\n },\n deletable: {\n type: Boolean,\n default: true\n },\n showUpload: {\n type: Boolean,\n default: true\n },\n previewImage: {\n type: Boolean,\n default: true\n },\n previewFullImage: {\n type: Boolean,\n default: true\n },\n imageFit: {\n type: String,\n default: 'cover'\n },\n resultType: {\n type: String,\n default: 'dataUrl'\n },\n uploadIcon: {\n type: String,\n default: 'photograph'\n }\n },\n computed: {\n previewSizeWithUnit: function previewSizeWithUnit() {\n return addUnit(this.previewSize);\n },\n // for form\n value: function value() {\n return this.fileList;\n }\n },\n methods: {\n getDetail: function getDetail(index) {\n if (index === void 0) {\n index = this.fileList.length;\n }\n\n return {\n name: this.name,\n index: index\n };\n },\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);\n\n if (this.beforeRead) {\n var response = this.beforeRead(files, this.getDetail());\n\n if (!response) {\n this.resetInput();\n return;\n }\n\n if (isPromise(response)) {\n response.then(function (data) {\n if (data) {\n _this.readFile(data);\n } else {\n _this.readFile(files);\n }\n }).catch(this.resetInput);\n return;\n }\n }\n\n this.readFile(files);\n },\n readFile: function readFile(files) {\n var _this2 = this;\n\n var oversize = isOversize(files, this.maxSize);\n\n if (Array.isArray(files)) {\n var maxCount = this.maxCount - this.fileList.length;\n\n if (files.length > maxCount) {\n files = files.slice(0, maxCount);\n }\n\n Promise.all(files.map(function (file) {\n return _readFile(file, _this2.resultType);\n })).then(function (contents) {\n var fileList = files.map(function (file, index) {\n var result = {\n file: file,\n status: '',\n message: ''\n };\n\n if (contents[index]) {\n result.content = contents[index];\n }\n\n return result;\n });\n\n _this2.onAfterRead(fileList, oversize);\n });\n } else {\n _readFile(files, this.resultType).then(function (content) {\n var result = {\n file: files,\n status: '',\n message: ''\n };\n\n if (content) {\n result.content = content;\n }\n\n _this2.onAfterRead(result, oversize);\n });\n }\n },\n onAfterRead: function onAfterRead(files, oversize) {\n var _this3 = this;\n\n this.resetInput();\n var validFiles = files;\n\n if (oversize) {\n var oversizeFiles = files;\n\n if (Array.isArray(files)) {\n oversizeFiles = [];\n validFiles = [];\n files.forEach(function (item) {\n if (item.file) {\n if (item.file.size > _this3.maxSize) {\n oversizeFiles.push(item);\n } else {\n validFiles.push(item);\n }\n }\n });\n } else {\n validFiles = null;\n }\n\n this.$emit('oversize', oversizeFiles, this.getDetail());\n }\n\n var isValidFiles = Array.isArray(validFiles) ? Boolean(validFiles.length) : Boolean(validFiles);\n\n if (isValidFiles) {\n this.$emit('input', [].concat(this.fileList, toArray(validFiles)));\n\n if (this.afterRead) {\n this.afterRead(validFiles, this.getDetail());\n }\n }\n },\n onDelete: function onDelete(file, index) {\n var _this4 = this;\n\n if (this.beforeDelete) {\n var response = this.beforeDelete(file, this.getDetail(index));\n\n if (!response) {\n return;\n }\n\n if (isPromise(response)) {\n response.then(function () {\n _this4.deleteFile(file, index);\n }).catch(noop);\n return;\n }\n }\n\n this.deleteFile(file, index);\n },\n deleteFile: function deleteFile(file, index) {\n var fileList = this.fileList.slice(0);\n fileList.splice(index, 1);\n this.$emit('input', fileList);\n this.$emit('delete', file, this.getDetail(index));\n },\n resetInput: function resetInput() {\n /* istanbul ignore else */\n if (this.$refs.input) {\n this.$refs.input.value = '';\n }\n },\n onPreviewImage: function onPreviewImage(item) {\n var _this5 = this;\n\n if (!this.previewFullImage) {\n return;\n }\n\n var imageFiles = this.fileList.filter(function (item) {\n return isImageFile(item);\n });\n var imageContents = imageFiles.map(function (item) {\n return item.content || item.url;\n });\n this.imagePreview = ImagePreview(_extends({\n images: imageContents,\n startPosition: imageFiles.indexOf(item),\n onClose: function onClose() {\n _this5.$emit('close-preview');\n }\n }, this.previewOptions));\n },\n // @exposed-api\n closeImagePreview: function closeImagePreview() {\n if (this.imagePreview) {\n this.imagePreview.close();\n }\n },\n // @exposed-api\n chooseFile: function chooseFile() {\n if (this.disabled) {\n return;\n }\n /* istanbul ignore else */\n\n\n if (this.$refs.input) {\n this.$refs.input.click();\n }\n },\n genPreviewMask: function genPreviewMask(item) {\n var h = this.$createElement;\n var status = item.status,\n message = item.message;\n\n if (status === 'uploading' || status === 'failed') {\n var MaskIcon = status === 'failed' ? h(Icon, {\n \"attrs\": {\n \"name\": \"close\"\n },\n \"class\": bem('mask-icon')\n }) : h(Loading, {\n \"class\": bem('loading')\n });\n var showMessage = isDef(message) && message !== '';\n return h(\"div\", {\n \"class\": bem('mask')\n }, [MaskIcon, showMessage && h(\"div\", {\n \"class\": bem('mask-message')\n }, [message])]);\n }\n },\n genPreviewItem: function genPreviewItem(item, index) {\n var _this6 = this;\n\n var h = this.$createElement;\n var showDelete = item.status !== 'uploading' && this.deletable;\n var DeleteIcon = showDelete && h(\"div\", {\n \"class\": bem('preview-delete'),\n \"on\": {\n \"click\": function click(event) {\n event.stopPropagation();\n\n _this6.onDelete(item, index);\n }\n }\n }, [h(Icon, {\n \"attrs\": {\n \"name\": \"cross\"\n },\n \"class\": bem('preview-delete-icon')\n })]);\n var PreviewCoverContent = this.slots('preview-cover', _extends({\n index: index\n }, item));\n var PreviewCover = PreviewCoverContent && h(\"div\", {\n \"class\": bem('preview-cover')\n }, [PreviewCoverContent]);\n var Preview = isImageFile(item) ? h(Image, {\n \"attrs\": {\n \"fit\": this.imageFit,\n \"src\": item.content || item.url,\n \"width\": this.previewSize,\n \"height\": this.previewSize,\n \"lazyLoad\": this.lazyLoad\n },\n \"class\": bem('preview-image'),\n \"on\": {\n \"click\": function click() {\n _this6.onPreviewImage(item);\n }\n }\n }, [PreviewCover]) : h(\"div\", {\n \"class\": bem('file'),\n \"style\": {\n width: this.previewSizeWithUnit,\n height: this.previewSizeWithUnit\n }\n }, [h(Icon, {\n \"class\": bem('file-icon'),\n \"attrs\": {\n \"name\": \"description\"\n }\n }), h(\"div\", {\n \"class\": [bem('file-name'), 'van-ellipsis']\n }, [item.file ? item.file.name : item.url]), PreviewCover]);\n return h(\"div\", {\n \"class\": bem('preview'),\n \"on\": {\n \"click\": function click() {\n _this6.$emit('click-preview', item, _this6.getDetail(index));\n }\n }\n }, [Preview, this.genPreviewMask(item), DeleteIcon]);\n },\n genPreviewList: function genPreviewList() {\n if (this.previewImage) {\n return this.fileList.map(this.genPreviewItem);\n }\n },\n genUpload: function genUpload() {\n var h = this.$createElement;\n\n if (this.fileList.length >= this.maxCount || !this.showUpload) {\n return;\n }\n\n var slot = this.slots();\n var Input = h(\"input\", {\n \"attrs\": _extends({}, this.$attrs, {\n \"type\": \"file\",\n \"accept\": this.accept,\n \"disabled\": this.disabled\n }),\n \"ref\": \"input\",\n \"class\": bem('input'),\n \"on\": {\n \"change\": this.onChange\n }\n });\n\n if (slot) {\n return h(\"div\", {\n \"class\": bem('input-wrapper')\n }, [slot, Input]);\n }\n\n var style;\n\n if (this.previewSize) {\n var size = this.previewSizeWithUnit;\n style = {\n width: size,\n height: size\n };\n }\n\n return h(\"div\", {\n \"class\": bem('upload'),\n \"style\": style\n }, [h(Icon, {\n \"attrs\": {\n \"name\": this.uploadIcon\n },\n \"class\": bem('upload-icon')\n }), this.uploadText && h(\"span\", {\n \"class\": bem('upload-text')\n }, [this.uploadText]), Input]);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [h(\"div\", {\n \"class\": bem('wrapper', {\n disabled: this.disabled\n })\n }, [this.genPreviewList(), this.genUpload()])]);\n }\n});","// Utils\nimport { createNamespace } from '../../utils'; // Components\n\nimport Uploader from '../../uploader';\nvar namespace = createNamespace('sku-img-uploader');\nvar createComponent = namespace[0];\nvar t = namespace[2];\nexport default createComponent({\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 fileList: []\n };\n },\n watch: {\n value: function value(val) {\n if (val) {\n this.fileList = [{\n url: val,\n isImage: true\n }];\n } else {\n this.fileList = [];\n }\n }\n },\n methods: {\n afterReadFile: function afterReadFile(file) {\n var _this = this;\n\n file.status = 'uploading';\n file.message = t('uploading');\n this.uploadImg(file.file, file.content).then(function (img) {\n file.status = 'done';\n\n _this.$emit('input', img);\n }).catch(function () {\n file.status = 'failed';\n file.message = t('fail');\n });\n },\n onOversize: function onOversize() {\n this.$toast(t('oversize', this.maxSize));\n },\n onDelete: function onDelete() {\n this.$emit('input', '');\n }\n },\n render: function render() {\n var _this2 = this;\n\n var h = arguments[0];\n return h(Uploader, {\n \"attrs\": {\n \"maxCount\": 1,\n \"afterRead\": this.afterReadFile,\n \"maxSize\": this.maxSize * 1024 * 1024\n },\n \"on\": {\n \"oversize\": this.onOversize,\n \"delete\": this.onDelete\n },\n \"model\": {\n value: _this2.fileList,\n callback: function callback($$v) {\n _this2.fileList = $$v;\n }\n }\n });\n }\n});","import { padZero } from '../../utils/format/string'; // 字符串转 Date\n// 只处理 YYYY-MM-DD 或者 YYYY-MM-DD HH:MM 格式\n\nexport function stringToDate(timeString) {\n if (!timeString) {\n return null;\n }\n\n return new Date(timeString.replace(/-/g, '/'));\n} // Date 转字符串\n// type: date or datetime\n\nexport function dateToString(date, type) {\n if (type === void 0) {\n type = 'date';\n }\n\n if (!date) {\n return '';\n }\n\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var day = date.getDate();\n var timeString = year + \"-\" + padZero(month) + \"-\" + padZero(day);\n\n if (type === 'datetime') {\n var hours = date.getHours();\n var minute = date.getMinutes();\n timeString += \" \" + padZero(hours) + \":\" + padZero(minute);\n }\n\n return timeString;\n}","// Utils\nimport { createNamespace } from '../../utils';\nimport { stringToDate, dateToString } from '../utils/time-helper'; // Components\n\nimport Popup from '../../popup';\nimport DateTimePicker from '../../datetime-picker';\nimport Field from '../../field';\nvar namespace = createNamespace('sku-datetime-field');\nvar createComponent = namespace[0];\nvar t = namespace[2];\nexport default createComponent({\n props: {\n value: String,\n label: String,\n required: Boolean,\n placeholder: String,\n type: {\n type: String,\n default: 'date'\n }\n },\n data: function data() {\n return {\n showDatePicker: false,\n currentDate: this.type === 'time' ? '' : new Date(),\n minDate: new Date(new Date().getFullYear() - 60, 0, 1)\n };\n },\n watch: {\n value: function value(val) {\n switch (this.type) {\n case 'time':\n this.currentDate = val;\n break;\n\n case 'date':\n case 'datetime':\n this.currentDate = stringToDate(val) || new Date();\n break;\n }\n }\n },\n computed: {\n title: function title() {\n return t(\"title.\" + this.type);\n }\n },\n methods: {\n onClick: function onClick() {\n this.showDatePicker = true;\n },\n onConfirm: function onConfirm(val) {\n var data = val;\n\n if (this.type !== 'time') {\n data = dateToString(val, this.type);\n }\n\n this.$emit('input', data);\n this.showDatePicker = false;\n },\n onCancel: function onCancel() {\n this.showDatePicker = false;\n },\n formatter: function formatter(type, val) {\n var word = t(\"format.\" + type);\n return \"\" + val + word;\n }\n },\n render: function render() {\n var _this = this;\n\n var h = arguments[0];\n return h(Field, {\n \"attrs\": {\n \"readonly\": true,\n \"is-link\": true,\n \"center\": true,\n \"value\": this.value,\n \"label\": this.label,\n \"required\": this.required,\n \"placeholder\": this.placeholder\n },\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(Popup, {\n \"attrs\": {\n \"round\": true,\n \"position\": \"bottom\",\n \"getContainer\": \"body\"\n },\n \"slot\": \"extra\",\n \"model\": {\n value: _this.showDatePicker,\n callback: function callback($$v) {\n _this.showDatePicker = $$v;\n }\n }\n }, [h(DateTimePicker, {\n \"attrs\": {\n \"type\": this.type,\n \"title\": this.title,\n \"value\": this.currentDate,\n \"minDate\": this.minDate,\n \"formatter\": this.formatter\n },\n \"on\": {\n \"cancel\": this.onCancel,\n \"confirm\": this.onConfirm\n }\n })])]);\n }\n});","// Utils\nimport { createNamespace } from '../../utils';\nimport { isEmail } from '../../utils/validate/email';\nimport { isNumeric } from '../../utils/validate/number'; // Components\n\nimport Cell from '../../cell';\nimport Field from '../../field';\nimport SkuImgUploader from './SkuImgUploader';\nimport SkuDateTimeField from './SkuDateTimeField';\n\nvar _createNamespace = createNamespace('sku-messages'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n props: {\n messageConfig: Object,\n goodsId: [Number, String],\n messages: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\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 var messageConfig = this.messageConfig;\n var _messageConfig$initia = messageConfig.initialMessages,\n initialMessages = _messageConfig$initia === void 0 ? {} : _messageConfig$initia;\n return (messages || []).map(function (message) {\n return {\n value: initialMessages[message.name] || ''\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' : message.type;\n },\n getMessages: function getMessages() {\n var messages = {};\n this.messageValues.forEach(function (item, index) {\n messages[\"message_\" + index] = item.value;\n });\n return messages;\n },\n getCartMessages: function getCartMessages() {\n var _this = this;\n\n var messages = {};\n this.messageValues.forEach(function (item, index) {\n var message = _this.messages[index];\n messages[message.name] = item.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 message.placeholder || map[type] || t(\"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 var textType = t(message.type === 'image' ? 'upload' : 'fill');\n return textType + message.name;\n }\n } else {\n if (message.type === 'tel' && !isNumeric(value)) {\n return t('invalid.tel');\n }\n\n if (message.type === 'mobile' && !/^\\d{6,20}$/.test(value)) {\n return t('invalid.mobile');\n }\n\n if (message.type === 'email' && !isEmail(value)) {\n return t('invalid.email');\n }\n\n if (message.type === 'id_no' && (value.length < 15 || value.length > 18)) {\n return t('invalid.id_no');\n }\n }\n }\n },\n\n /**\n * The phone number copied from IOS mobile phone address book\n * will add spaces and invisible Unicode characters\n * which cannot pass the /^\\d+$/ verification\n * so keep numbers and dots\n */\n getFormatter: function getFormatter(message) {\n return function formatter(value) {\n if (message.type === 'mobile' || message.type === 'tel') {\n return value.replace(/[^\\d.]/g, '');\n }\n\n return value;\n };\n },\n genMessage: function genMessage(message, index) {\n var _this2 = this;\n\n var h = this.$createElement;\n\n if (message.type === 'image') {\n return h(Cell, {\n \"key\": this.goodsId + \"-\" + index,\n \"attrs\": {\n \"title\": message.name,\n \"required\": String(message.required) === '1',\n \"valueClass\": bem('image-cell-value')\n },\n \"class\": bem('image-cell')\n }, [h(SkuImgUploader, {\n \"attrs\": {\n \"maxSize\": this.messageConfig.uploadMaxSize,\n \"uploadImg\": this.messageConfig.uploadImg\n },\n \"model\": {\n value: _this2.messageValues[index].value,\n callback: function callback($$v) {\n _this2.$set(_this2.messageValues[index], \"value\", $$v);\n }\n }\n }), h(\"div\", {\n \"class\": bem('image-cell-label')\n }, [t('imageLabel')])]);\n } // 时间和日期使用的vant选择器\n\n\n var isDateOrTime = ['date', 'time'].indexOf(message.type) > -1;\n\n if (isDateOrTime) {\n return h(SkuDateTimeField, {\n \"attrs\": {\n \"label\": message.name,\n \"required\": String(message.required) === '1',\n \"placeholder\": this.getPlaceholder(message),\n \"type\": this.getType(message)\n },\n \"key\": this.goodsId + \"-\" + index,\n \"model\": {\n value: _this2.messageValues[index].value,\n callback: function callback($$v) {\n _this2.$set(_this2.messageValues[index], \"value\", $$v);\n }\n }\n });\n }\n\n return h(Field, {\n \"attrs\": {\n \"maxlength\": \"200\",\n \"center\": !message.multiple,\n \"label\": message.name,\n \"required\": String(message.required) === '1',\n \"placeholder\": this.getPlaceholder(message),\n \"type\": this.getType(message),\n \"formatter\": this.getFormatter(message)\n },\n \"key\": this.goodsId + \"-\" + index,\n \"model\": {\n value: _this2.messageValues[index].value,\n callback: function callback($$v) {\n _this2.$set(_this2.messageValues[index], \"value\", $$v);\n }\n }\n });\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [this.messages.map(this.genMessage)]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../../utils';\nimport { inherit } from '../../utils/functional'; // Components\n\nimport Button from '../../button'; // Types\n\nvar _createNamespace = createNamespace('sku-actions'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction SkuActions(h, props, slots, ctx) {\n var createEmitter = function createEmitter(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 \"size\": \"large\",\n \"type\": \"warning\",\n \"text\": props.addCartText || t('addCart')\n },\n \"on\": {\n \"click\": createEmitter('sku:addCart')\n }\n }), h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"danger\",\n \"text\": props.buyText || t('buy')\n },\n \"on\": {\n \"click\": createEmitter('sku:buy')\n }\n })]);\n}\n\nSkuActions.props = {\n buyText: String,\n addCartText: String,\n skuEventBus: Object,\n showAddCartBtn: Boolean\n};\nexport default createComponent(SkuActions);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport Popup from '../popup';\nimport Toast from '../toast';\nimport ImagePreview from '../image-preview';\nimport SkuHeader from './components/SkuHeader';\nimport SkuHeaderItem from './components/SkuHeaderItem';\nimport SkuRow from './components/SkuRow';\nimport SkuRowItem from './components/SkuRowItem';\nimport SkuRowPropItem from './components/SkuRowPropItem';\nimport SkuStepper from './components/SkuStepper';\nimport SkuMessages from './components/SkuMessages';\nimport SkuActions from './components/SkuActions';\nimport { createNamespace } from '../utils';\nimport { isAllSelected, isSkuChoosable, getSkuComb, getSelectedSkuValues, getSelectedPropValues, getSelectedProperties } from './utils/sku-helper';\nimport { LIMIT_TYPE, UNSELECTED_SKU_VALUE_ID } from './constants';\nvar namespace = createNamespace('sku');\nvar createComponent = namespace[0],\n bem = namespace[1],\n t = namespace[2];\nvar QUOTA_LIMIT = LIMIT_TYPE.QUOTA_LIMIT;\nexport default createComponent({\n props: {\n sku: Object,\n goods: Object,\n value: Boolean,\n buyText: String,\n goodsId: [Number, String],\n priceTag: String,\n lazyLoad: Boolean,\n hideStock: Boolean,\n properties: Array,\n addCartText: String,\n stepperTitle: String,\n getContainer: [String, Function],\n hideQuotaText: Boolean,\n hideSelectedText: Boolean,\n resetStepperOnHide: Boolean,\n customSkuValidator: Function,\n disableStepperInput: Boolean,\n resetSelectedSkuOnHide: Boolean,\n quota: {\n type: Number,\n default: 0\n },\n quotaUsed: {\n type: Number,\n default: 0\n },\n startSaleNum: {\n type: Number,\n default: 1\n },\n initialSku: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n stockThreshold: {\n type: Number,\n default: 50\n },\n showSoldoutSku: {\n type: Boolean,\n default: true\n },\n showAddCartBtn: {\n type: Boolean,\n default: true\n },\n customStepperConfig: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n showHeaderImage: {\n type: Boolean,\n default: true\n },\n previewOnClickImage: {\n type: Boolean,\n default: true\n },\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\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 initialMessages: {},\n placeholderMap: {},\n uploadImg: function uploadImg() {\n return Promise.resolve();\n },\n uploadMaxSize: 5\n };\n }\n },\n canSelectSoldoutSku: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n selectedSku: {},\n selectedProp: {},\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 this.$emit('sku-close', {\n selectedSkuValues: this.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();\n }\n }\n },\n value: function value(val) {\n this.show = val;\n },\n skuTree: 'resetSelectedSku',\n initialSku: function initialSku() {\n this.resetStepper();\n this.resetSelectedSku();\n }\n },\n computed: {\n skuGroupClass: function skuGroupClass() {\n return ['van-sku-group-container', {\n 'van-sku-group-container--hide-soldout': !this.showSoldoutSku\n }];\n },\n bodyStyle: function bodyStyle() {\n if (this.$isServer) {\n return;\n }\n\n var maxHeight = window.innerHeight - this.bodyOffsetTop;\n return {\n maxHeight: maxHeight + 'px'\n };\n },\n isSkuCombSelected: function isSkuCombSelected() {\n var _this = this;\n\n // SKU 未选完\n if (this.hasSku && !isAllSelected(this.skuTree, this.selectedSku)) {\n return false;\n } // 属性未全选\n\n\n return !this.propList.some(function (it) {\n return (_this.selectedProp[it.k_id] || []).length < 1;\n });\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 hasSkuOrAttr: function hasSkuOrAttr() {\n return this.hasSku || this.propList.length > 0;\n },\n selectedSkuComb: function selectedSkuComb() {\n var skuComb = null;\n\n if (this.isSkuCombSelected) {\n if (this.hasSku) {\n skuComb = getSkuComb(this.skuList, this.selectedSku);\n } else {\n skuComb = {\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 (skuComb) {\n skuComb.properties = getSelectedProperties(this.propList, this.selectedProp);\n skuComb.property_price = this.selectedPropValues.reduce(function (acc, cur) {\n return acc + (cur.price || 0);\n }, 0);\n }\n }\n\n return skuComb;\n },\n selectedSkuValues: function selectedSkuValues() {\n return getSelectedSkuValues(this.skuTree, this.selectedSku);\n },\n selectedPropValues: function selectedPropValues() {\n return getSelectedPropValues(this.propList, this.selectedProp);\n },\n price: function price() {\n if (this.selectedSkuComb) {\n return ((this.selectedSkuComb.price + this.selectedSkuComb.property_price) / 100).toFixed(2);\n } // sku.price是一个格式化好的价格区间\n\n\n return this.sku.price;\n },\n originPrice: function originPrice() {\n if (this.selectedSkuComb && this.selectedSkuComb.origin_price) {\n return ((this.selectedSkuComb.origin_price + this.selectedSkuComb.property_price) / 100).toFixed(2);\n }\n\n return this.sku.origin_price;\n },\n skuTree: function skuTree() {\n return this.sku.tree || [];\n },\n skuList: function skuList() {\n return this.sku.list || [];\n },\n propList: function propList() {\n return this.properties || [];\n },\n imageList: function imageList() {\n var imageList = [this.goods.picture];\n\n if (this.skuTree.length > 0) {\n this.skuTree.forEach(function (treeItem) {\n if (!treeItem.v) {\n return;\n }\n\n treeItem.v.forEach(function (vItem) {\n var imgUrl = vItem.previewImgUrl || vItem.imgUrl || vItem.img_url;\n\n if (imgUrl && imageList.indexOf(imgUrl) === -1) {\n imageList.push(imgUrl);\n }\n });\n });\n }\n\n return imageList;\n },\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.sku.stock_num;\n },\n stockText: function stockText() {\n var h = this.$createElement;\n var stockFormatter = this.customStepperConfig.stockFormatter;\n\n if (stockFormatter) {\n return stockFormatter(this.stock);\n }\n\n return [t('stock') + \" \", h(\"span\", {\n \"class\": bem('stock-num', {\n highlight: this.stock < this.stockThreshold\n })\n }, [this.stock]), \" \" + t('stockUnit')];\n },\n selectedText: function selectedText() {\n var _this2 = this;\n\n if (this.selectedSkuComb) {\n var values = this.selectedSkuValues.concat(this.selectedPropValues);\n return t('selected') + \" \" + values.map(function (item) {\n return item.name;\n }).join(' ');\n }\n\n var unselectedSku = this.skuTree.filter(function (item) {\n return _this2.selectedSku[item.k_s] === UNSELECTED_SKU_VALUE_ID;\n }).map(function (item) {\n return item.k;\n });\n var unselectedProp = this.propList.filter(function (item) {\n return (_this2.selectedProp[item.k_id] || []).length < 1;\n }).map(function (item) {\n return item.k;\n });\n return t('select') + \" \" + unselectedSku.concat(unselectedProp).join(' ');\n }\n },\n created: function created() {\n var skuEventBus = new Vue();\n this.skuEventBus = skuEventBus;\n skuEventBus.$on('sku:select', this.onSelect);\n skuEventBus.$on('sku:propSelect', this.onPropSelect);\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:stepperState', this.onStepperState);\n skuEventBus.$on('sku:addCart', this.onAddCart);\n skuEventBus.$on('sku:buy', this.onBuy);\n this.resetStepper();\n this.resetSelectedSku(); // 组件初始化后的钩子,抛出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 = selectedNum != null ? selectedNum : this.startSaleNum; // 用来缓存不合法的情况\n\n this.stepperError = null;\n\n if (skuStepper) {\n skuStepper.setCurrentNum(num);\n } else {\n // 当首次加载(skuStepper 为空)时,传入数量如果不合法,可能会存在问题\n this.selectedNum = num;\n }\n },\n // @exposed-api\n resetSelectedSku: function resetSelectedSku() {\n var _this3 = this;\n\n this.selectedSku = {}; // 重置 selectedSku\n\n this.skuTree.forEach(function (item) {\n _this3.selectedSku[item.k_s] = UNSELECTED_SKU_VALUE_ID;\n });\n this.skuTree.forEach(function (item) {\n var key = item.k_s; // 规格值只有1个时,优先判断\n\n var valueId = item.v.length === 1 ? item.v[0].id : _this3.initialSku[key];\n\n if (valueId && (isSkuChoosable(_this3.sku.list, _this3.selectedSku, {\n key: key,\n valueId: valueId\n }) || _this3.canSelectSoldoutSku)) {\n _this3.selectedSku[key] = valueId;\n }\n });\n var skuValues = this.selectedSkuValues;\n\n if (skuValues.length > 0) {\n this.$nextTick(function () {\n _this3.$emit('sku-selected', {\n skuValue: skuValues[skuValues.length - 1],\n selectedSku: _this3.selectedSku,\n selectedSkuComb: _this3.selectedSkuComb\n });\n });\n } // 重置商品属性\n\n\n this.selectedProp = {};\n var _this$initialSku$sele = this.initialSku.selectedProp,\n selectedProp = _this$initialSku$sele === void 0 ? {} : _this$initialSku$sele; // 只有一个属性值时,默认选中,且选中外部传入信息\n\n this.propList.forEach(function (item) {\n if (item.v && item.v.length === 1) {\n _this3.selectedProp[item.k_id] = [item.v[0].id];\n } else if (selectedProp[item.k_id]) {\n _this3.selectedProp[item.k_id] = selectedProp[item.k_id];\n }\n });\n var propValues = this.selectedPropValues;\n\n if (propValues.length > 0) {\n this.$emit('sku-prop-selected', {\n propValue: propValues[propValues.length - 1],\n selectedProp: this.selectedProp,\n selectedSkuComb: this.selectedSkuComb\n });\n } // 抛出重置事件\n\n\n this.$emit('sku-reset', {\n selectedSku: this.selectedSku,\n selectedProp: this.selectedProp,\n selectedSkuComb: this.selectedSkuComb\n });\n this.centerInitialSku();\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 t('unavailable');\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 t('selectSku');\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 onPropSelect: function onPropSelect(propValue) {\n var _extends4;\n\n var arr = this.selectedProp[propValue.skuKeyStr] || [];\n var pos = arr.indexOf(propValue.id);\n\n if (pos > -1) {\n arr.splice(pos, 1);\n } else if (propValue.multiple) {\n arr.push(propValue.id);\n } else {\n arr.splice(0, 1, propValue.id);\n }\n\n this.selectedProp = _extends({}, this.selectedProp, (_extends4 = {}, _extends4[propValue.skuKeyStr] = arr, _extends4));\n this.$emit('sku-prop-selected', {\n propValue: propValue,\n selectedProp: this.selectedProp,\n selectedSkuComb: this.selectedSkuComb\n });\n },\n onNumChange: function onNumChange(num) {\n this.selectedNum = num;\n },\n onPreviewImage: function onPreviewImage(selectedValue) {\n var _this4 = this;\n\n var imageList = this.imageList;\n var index = 0;\n var indexImage = imageList[0];\n\n if (selectedValue && selectedValue.imgUrl) {\n this.imageList.some(function (image, pos) {\n if (image === selectedValue.imgUrl) {\n index = pos;\n return true;\n }\n\n return false;\n });\n indexImage = selectedValue.imgUrl;\n }\n\n var params = _extends({}, selectedValue, {\n index: index,\n imageList: this.imageList,\n indexImage: indexImage\n });\n\n this.$emit('open-preview', params);\n\n if (!this.previewOnClickImage) {\n return;\n }\n\n ImagePreview({\n images: this.imageList,\n startPosition: index,\n onClose: function onClose() {\n _this4.$emit('close-preview', params);\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 if (this.startSaleNum > 1) {\n Toast(t('minusStartTip', this.startSaleNum));\n } else {\n Toast(t('minusTip'));\n }\n } else if (action === 'plus') {\n if (limitType === QUOTA_LIMIT) {\n if (quotaUsed > 0) {\n Toast(t('quotaUsedTip', quota, quotaUsed));\n } else {\n Toast(t('quotaTip', quota));\n }\n } else {\n Toast(t('soldout'));\n }\n }\n },\n onStepperState: function onStepperState(data) {\n this.stepperError = data.valid ? null : _extends({}, data, {\n action: 'plus'\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 // sku 不符合购买条件\n if (this.stepperError) {\n return this.onOverLimit(this.stepperError);\n }\n\n var error = this.validateSku();\n\n if (error) {\n Toast(error);\n } else {\n this.$emit(type, this.getSkuData());\n }\n },\n // @exposed-api\n getSkuData: function getSkuData() {\n return {\n goodsId: this.goodsId,\n messages: this.getSkuMessages(),\n selectedNum: this.selectedNum,\n cartMessages: this.getSkuCartMessages(),\n selectedSkuComb: this.selectedSkuComb\n };\n },\n // 当 popup 完全打开后执行\n onOpened: function onOpened() {\n this.centerInitialSku();\n },\n centerInitialSku: function centerInitialSku() {\n var _this5 = this;\n\n (this.$refs.skuRows || []).forEach(function (it) {\n var _ref = it.skuRow || {},\n k_s = _ref.k_s;\n\n it.centerItem(_this5.initialSku[k_s]);\n });\n }\n },\n render: function render() {\n var _this6 = this;\n\n var h = arguments[0];\n\n if (this.isSkuEmpty) {\n return;\n }\n\n var sku = this.sku,\n skuList = this.skuList,\n goods = this.goods,\n price = this.price,\n lazyLoad = this.lazyLoad,\n originPrice = this.originPrice,\n skuEventBus = this.skuEventBus,\n selectedSku = this.selectedSku,\n selectedProp = this.selectedProp,\n selectedNum = this.selectedNum,\n stepperTitle = this.stepperTitle,\n selectedSkuComb = this.selectedSkuComb,\n showHeaderImage = this.showHeaderImage,\n canSelectSoldoutSku = this.canSelectSoldoutSku;\n var slotsProps = {\n price: price,\n originPrice: originPrice,\n selectedNum: selectedNum,\n skuEventBus: skuEventBus,\n selectedSku: selectedSku,\n selectedSkuComb: selectedSkuComb\n };\n\n var slots = function slots(name) {\n return _this6.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 \"showHeaderImage\": showHeaderImage\n }\n }, [h(\"template\", {\n \"slot\": \"sku-header-image-extra\"\n }, [slots('sku-header-image-extra')]), 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]), this.priceTag && h(\"span\", {\n \"class\": \"van-sku__price-tag\"\n }, [this.priceTag])]), slots('sku-header-origin-price') || originPrice && h(SkuHeaderItem, [t('originPrice'), \" \\uFFE5\", originPrice]), !this.hideStock && h(SkuHeaderItem, [h(\"span\", {\n \"class\": \"van-sku__stock\"\n }, [this.stockText])]), this.hasSkuOrAttr && !this.hideSelectedText && h(SkuHeaderItem, [this.selectedText]), slots('sku-header-extra')]);\n var Group = slots('sku-group') || this.hasSkuOrAttr && h(\"div\", {\n \"class\": this.skuGroupClass\n }, [this.skuTree.map(function (skuTreeItem) {\n return h(SkuRow, {\n \"attrs\": {\n \"skuRow\": skuTreeItem\n },\n \"ref\": \"skuRows\",\n \"refInFor\": true\n }, [skuTreeItem.v.map(function (skuValue) {\n return h(SkuRowItem, {\n \"attrs\": {\n \"skuList\": skuList,\n \"lazyLoad\": lazyLoad,\n \"skuValue\": skuValue,\n \"skuKeyStr\": skuTreeItem.k_s,\n \"selectedSku\": selectedSku,\n \"skuEventBus\": skuEventBus,\n \"largeImageMode\": skuTreeItem.largeImageMode,\n \"canSelectSoldoutSku\": canSelectSoldoutSku\n }\n });\n })]);\n }), this.propList.map(function (skuTreeItem) {\n return h(SkuRow, {\n \"attrs\": {\n \"skuRow\": skuTreeItem\n }\n }, [skuTreeItem.v.map(function (skuValue) {\n return h(SkuRowPropItem, {\n \"attrs\": {\n \"skuValue\": skuValue,\n \"skuKeyStr\": skuTreeItem.k_id + '',\n \"selectedProp\": selectedProp,\n \"skuEventBus\": skuEventBus,\n \"multiple\": skuTreeItem.is_multiple\n }\n });\n })]);\n })]);\n var Stepper = slots('sku-stepper') || h(SkuStepper, {\n \"ref\": \"skuStepper\",\n \"attrs\": {\n \"stock\": this.stock,\n \"quota\": this.quota,\n \"quotaUsed\": this.quotaUsed,\n \"startSaleNum\": this.startSaleNum,\n \"skuEventBus\": skuEventBus,\n \"selectedNum\": selectedNum,\n \"stepperTitle\": stepperTitle,\n \"skuStockNum\": sku.stock_num,\n \"disableStepperInput\": this.disableStepperInput,\n \"customStepperConfig\": this.customStepperConfig,\n \"hideQuotaText\": this.hideQuotaText\n },\n \"on\": {\n \"change\": function change(event) {\n _this6.$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 \"addCartText\": this.addCartText,\n \"showAddCartBtn\": this.showAddCartBtn\n }\n });\n return h(Popup, {\n \"attrs\": {\n \"round\": true,\n \"closeable\": true,\n \"position\": \"bottom\",\n \"getContainer\": this.getContainer,\n \"closeOnClickOverlay\": this.closeOnClickOverlay,\n \"safeAreaInsetBottom\": this.safeAreaInsetBottom\n },\n \"class\": \"van-sku-container\",\n \"on\": {\n \"opened\": this.onOpened\n },\n \"model\": {\n value: _this6.show,\n callback: function callback($$v) {\n _this6.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]), slots('sku-actions-top'), Actions]);\n }\n});","// Utils\nimport lang from './lang';\nimport constants from './constants';\nimport skuHelper from './utils/sku-helper'; // Components\n\nimport Sku from './Sku';\nimport Locale from '../locale';\nimport SkuActions from './components/SkuActions';\nimport SkuHeader from './components/SkuHeader';\nimport SkuHeaderItem from './components/SkuHeaderItem';\nimport SkuMessages from './components/SkuMessages';\nimport SkuStepper from './components/SkuStepper';\nimport SkuRow from './components/SkuRow';\nimport SkuRowItem from './components/SkuRowItem';\nimport SkuRowPropItem from './components/SkuRowPropItem';\nLocale.add(lang);\nSku.SkuActions = SkuActions;\nSku.SkuHeader = SkuHeader;\nSku.SkuHeaderItem = SkuHeaderItem;\nSku.SkuMessages = SkuMessages;\nSku.SkuStepper = SkuStepper;\nSku.SkuRow = SkuRow;\nSku.SkuRowItem = SkuRowItem;\nSku.SkuRowPropItem = SkuRowPropItem;\nSku.skuHelper = skuHelper;\nSku.skuConstants = constants;\nexport default Sku;","import { createNamespace, addUnit } from '../utils';\nimport { deepClone } from '../utils/deep-clone';\nimport { preventDefault } from '../utils/dom/event';\nimport { TouchMixin } from '../mixins/touch';\nimport { FieldMixin } from '../mixins/field';\n\nvar _createNamespace = createNamespace('slider'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar isSameValue = function isSameValue(newValue, oldValue) {\n return JSON.stringify(newValue) === JSON.stringify(oldValue);\n};\n\nexport default createComponent({\n mixins: [TouchMixin, FieldMixin],\n props: {\n disabled: Boolean,\n vertical: Boolean,\n range: Boolean,\n barHeight: [Number, String],\n buttonSize: [Number, String],\n activeColor: String,\n inactiveColor: String,\n min: {\n type: [Number, String],\n default: 0\n },\n max: {\n type: [Number, String],\n default: 100\n },\n step: {\n type: [Number, String],\n default: 1\n },\n value: {\n type: [Number, Array],\n default: 0\n }\n },\n data: function data() {\n return {\n dragStatus: ''\n };\n },\n computed: {\n scope: function scope() {\n return this.max - this.min;\n },\n buttonStyle: function buttonStyle() {\n if (this.buttonSize) {\n var size = addUnit(this.buttonSize);\n return {\n width: size,\n height: size\n };\n }\n }\n },\n created: function created() {\n // format initial value\n this.updateValue(this.value);\n },\n mounted: function mounted() {\n if (this.range) {\n this.bindTouchEvent(this.$refs.wrapper0);\n this.bindTouchEvent(this.$refs.wrapper1);\n } else {\n this.bindTouchEvent(this.$refs.wrapper);\n }\n },\n methods: {\n onTouchStart: function onTouchStart(event) {\n if (this.disabled) {\n return;\n }\n\n this.touchStart(event);\n this.currentValue = this.value;\n\n if (this.range) {\n this.startValue = this.value.map(this.format);\n } else {\n this.startValue = this.format(this.value);\n }\n\n this.dragStatus = 'start';\n },\n onTouchMove: function onTouchMove(event) {\n if (this.disabled) {\n return;\n }\n\n if (this.dragStatus === 'start') {\n this.$emit('drag-start');\n }\n\n preventDefault(event, true);\n this.touchMove(event);\n this.dragStatus = 'draging';\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 * this.scope;\n\n if (this.range) {\n this.currentValue[this.index] = this.startValue[this.index] + diff;\n } else {\n this.currentValue = this.startValue + diff;\n }\n\n this.updateValue(this.currentValue);\n },\n onTouchEnd: function onTouchEnd() {\n if (this.disabled) {\n return;\n }\n\n if (this.dragStatus === 'draging') {\n this.updateValue(this.currentValue, true);\n this.$emit('drag-end');\n }\n\n this.dragStatus = '';\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 = +this.min + delta / total * this.scope;\n\n if (this.range) {\n var _this$value = this.value,\n left = _this$value[0],\n right = _this$value[1];\n var middle = (left + right) / 2;\n\n if (value <= middle) {\n left = value;\n } else {\n right = value;\n }\n\n value = [left, right];\n }\n\n this.startValue = this.value;\n this.updateValue(value, true);\n },\n // 处理两个滑块重叠之后的情况\n handleOverlap: function handleOverlap(value) {\n if (value[0] > value[1]) {\n value = deepClone(value);\n return value.reverse();\n }\n\n return value;\n },\n updateValue: function updateValue(value, end) {\n if (this.range) {\n value = this.handleOverlap(value).map(this.format);\n } else {\n value = this.format(value);\n }\n\n if (!isSameValue(value, this.value)) {\n this.$emit('input', value);\n }\n\n if (end && !isSameValue(value, this.startValue)) {\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() {\n var _wrapperStyle,\n _this = this,\n _barStyle;\n\n var h = arguments[0];\n var vertical = this.vertical;\n var mainAxis = vertical ? 'height' : 'width';\n var crossAxis = vertical ? 'width' : 'height';\n var wrapperStyle = (_wrapperStyle = {\n background: this.inactiveColor\n }, _wrapperStyle[crossAxis] = addUnit(this.barHeight), _wrapperStyle); // 计算选中条的长度百分比\n\n var calcMainAxis = function calcMainAxis() {\n var value = _this.value,\n min = _this.min,\n range = _this.range,\n scope = _this.scope;\n\n if (range) {\n return (value[1] - value[0]) * 100 / scope + \"%\";\n }\n\n return (value - min) * 100 / scope + \"%\";\n }; // 计算选中条的开始位置的偏移量\n\n\n var calcOffset = function calcOffset() {\n var value = _this.value,\n min = _this.min,\n range = _this.range,\n scope = _this.scope;\n\n if (range) {\n return (value[0] - min) * 100 / scope + \"%\";\n }\n\n return null;\n };\n\n var barStyle = (_barStyle = {}, _barStyle[mainAxis] = calcMainAxis(), _barStyle.left = this.vertical ? null : calcOffset(), _barStyle.top = this.vertical ? calcOffset() : null, _barStyle.background = this.activeColor, _barStyle);\n\n if (this.dragStatus) {\n barStyle.transition = 'none';\n }\n\n var renderButton = function renderButton(i) {\n var map = ['left', 'right'];\n var isNumber = typeof i === 'number';\n\n var getClassName = function getClassName() {\n if (isNumber) {\n return \"button-wrapper-\" + map[i];\n }\n\n return \"button-wrapper\";\n };\n\n var getRefName = function getRefName() {\n if (isNumber) {\n return \"wrapper\" + i;\n }\n\n return \"wrapper\";\n };\n\n return h(\"div\", {\n \"ref\": getRefName(),\n \"attrs\": {\n \"role\": \"slider\",\n \"tabindex\": _this.disabled ? -1 : 0,\n \"aria-valuemin\": _this.min,\n \"aria-valuenow\": _this.value,\n \"aria-valuemax\": _this.max,\n \"aria-orientation\": _this.vertical ? 'vertical' : 'horizontal'\n },\n \"class\": bem(getClassName()),\n \"on\": {\n \"touchstart\": function touchstart() {\n if (isNumber) {\n // 保存当前按钮的索引\n _this.index = i;\n }\n },\n \"click\": function click(e) {\n return e.stopPropagation();\n }\n }\n }, [_this.slots('button') || h(\"div\", {\n \"class\": bem('button'),\n \"style\": _this.buttonStyle\n })]);\n };\n\n return h(\"div\", {\n \"style\": wrapperStyle,\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 }, [this.range ? [renderButton(0), renderButton(1)] : renderButton()])]);\n }\n});","import { createNamespace } from '../utils';\nimport { BORDER } from '../utils/constant';\nimport { ChildrenMixin } from '../mixins/relation';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('step'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanSteps')],\n computed: {\n status: function status() {\n if (this.index < this.parent.active) {\n return 'finish';\n }\n\n if (this.index === +this.parent.active) {\n return 'process';\n }\n },\n active: function active() {\n return this.status === 'process';\n },\n lineStyle: function lineStyle() {\n if (this.status === 'finish') {\n return {\n background: this.parent.activeColor\n };\n }\n\n return {\n background: this.parent.inactiveColor\n };\n },\n titleStyle: function titleStyle() {\n if (this.active) {\n return {\n color: this.parent.activeColor\n };\n }\n\n if (!this.status) {\n return {\n color: this.parent.inactiveColor\n };\n }\n }\n },\n methods: {\n genCircle: function genCircle() {\n var h = this.$createElement;\n var _this$parent = this.parent,\n activeIcon = _this$parent.activeIcon,\n activeColor = _this$parent.activeColor,\n inactiveIcon = _this$parent.inactiveIcon;\n\n if (this.active) {\n return this.slots('active-icon') || h(Icon, {\n \"class\": bem('icon', 'active'),\n \"attrs\": {\n \"name\": activeIcon,\n \"color\": activeColor\n }\n });\n }\n\n var inactiveIconSlot = this.slots('inactive-icon');\n\n if (inactiveIcon || inactiveIconSlot) {\n return inactiveIconSlot || h(Icon, {\n \"class\": bem('icon'),\n \"attrs\": {\n \"name\": inactiveIcon\n }\n });\n }\n\n return h(\"i\", {\n \"class\": bem('circle'),\n \"style\": this.lineStyle\n });\n },\n onClickStep: function onClickStep() {\n this.parent.$emit('click-step', this.index);\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n var status = this.status,\n active = this.active;\n var direction = this.parent.direction;\n return h(\"div\", {\n \"class\": [BORDER, bem([direction, (_ref = {}, _ref[status] = status, _ref)])]\n }, [h(\"div\", {\n \"class\": bem('title', {\n active: active\n }),\n \"style\": this.titleStyle,\n \"on\": {\n \"click\": this.onClickStep\n }\n }, [this.slots()]), h(\"div\", {\n \"class\": bem('circle-container'),\n \"on\": {\n \"click\": this.onClickStep\n }\n }, [this.genCircle()]), h(\"div\", {\n \"class\": bem('line'),\n \"style\": this.lineStyle\n })]);\n }\n});","import { createNamespace } from '../utils';\nimport { BORDER } from '../utils/constant';\nimport { ChildrenMixin } from '../mixins/relation';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('step-normal'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanStepsNormal')],\n computed: {\n status: function status() {\n if (this.index < this.parent.active) {\n return 'finish';\n }\n\n if (this.index === +this.parent.active) {\n return 'process';\n }\n },\n active: function active() {\n return this.status === 'process';\n }\n },\n methods: {\n genCircle: function genCircle() {\n var h = this.$createElement;\n var _this$parent = this.parent,\n activeIcon = _this$parent.activeIcon,\n activeColor = _this$parent.activeColor,\n inactiveIcon = _this$parent.inactiveIcon,\n active = _this$parent.active,\n isFailed = _this$parent.isFailed;\n\n if (isFailed && this.active) {\n return h(Icon, {\n \"class\": bem('icon', 'active'),\n \"attrs\": {\n \"name\": \"clear\",\n \"color\": \"#DF3B3B\"\n }\n });\n }\n\n if (this.active) {\n return this.slots('active-icon') || h(\"i\", {\n \"class\": bem('circle', 'active')\n }, [h(\"span\", [this.index + 1])]);\n }\n\n var inactiveIconSlot = this.slots('inactive-icon');\n\n if (inactiveIcon || inactiveIconSlot) {\n return inactiveIconSlot || h(Icon, {\n \"class\": bem('icon'),\n \"attrs\": {\n \"name\": inactiveIcon\n }\n });\n }\n\n if (active > this.index) {\n return h(Icon, {\n \"class\": bem('icon', 'active'),\n \"attrs\": {\n \"name\": activeIcon,\n \"color\": activeColor\n }\n });\n }\n\n return h(\"i\", {\n \"class\": bem('circle')\n }, [h(\"span\", [this.index + 1])]);\n }\n },\n render: function render() {\n var _ref;\n\n var h = arguments[0];\n var status = this.status,\n active = this.active;\n var _this$parent2 = this.parent,\n activeColor = _this$parent2.activeColor,\n direction = _this$parent2.direction,\n isFailed = _this$parent2.isFailed;\n var titleStyle = active && {\n color: activeColor\n };\n var lineStyle = status === 'finish' && {\n background: isFailed && this.index === this.parent.active - 1 ? '#DF3B3B' : activeColor\n };\n return h(\"div\", {\n \"class\": [BORDER, bem([direction, (_ref = {}, _ref[status] = status, _ref)])]\n }, [h(\"div\", {\n \"class\": bem('title', {\n active: active\n }),\n \"style\": titleStyle\n }, [this.slots()]), h(\"div\", {\n \"class\": bem('circle-container')\n }, [this.genCircle()]), h(\"div\", {\n \"class\": bem('line'),\n \"style\": lineStyle\n })]);\n }\n});","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('steps'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanSteps')],\n props: {\n activeColor: String,\n inactiveIcon: String,\n inactiveColor: String,\n active: {\n type: [Number, String],\n default: 0\n },\n direction: {\n type: String,\n default: 'horizontal'\n },\n activeIcon: {\n type: String,\n default: 'checked'\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem([this.direction])\n }, [h(\"div\", {\n \"class\": bem('items')\n }, [this.slots()])]);\n }\n});","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('steps-normal'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanStepsNormal')],\n props: {\n activeColor: String,\n inactiveIcon: String,\n active: {\n type: [Number, String],\n default: 0\n },\n direction: {\n type: String,\n default: 'horizontal'\n },\n activeIcon: {\n type: String,\n default: 'checked'\n },\n isFailed: {\n type: Boolean,\n default: false\n }\n },\n render: function render() {\n var h = arguments[0];\n var paddingLeft = 100 / (this.children.length + 1) + '%';\n return h(\"div\", {\n \"class\": bem([this.direction]),\n \"style\": {\n paddingLeft: paddingLeft\n }\n }, [h(\"div\", {\n \"class\": bem('items')\n }, [this.slots()])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Icon from '../icon';\nimport Button from '../button'; // Types\n\nvar _createNamespace = createNamespace('submit-bar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nfunction SubmitBar(h, props, slots, ctx) {\n var tip = props.tip,\n price = props.price,\n tipIcon = props.tipIcon;\n\n function Text() {\n if (typeof price === 'number') {\n var priceArr = (price / 100).toFixed(props.decimalLength).split('.');\n var decimalStr = props.decimalLength ? \".\" + priceArr[1] : '';\n return h(\"div\", {\n \"style\": {\n textAlign: props.textAlign ? props.textAlign : ''\n },\n \"class\": bem('text')\n }, [h(\"span\", [props.label || t('label')]), h(\"span\", {\n \"class\": bem('price')\n }, [props.currency, h(\"span\", {\n \"class\": bem('price', 'integer')\n }, [priceArr[0]]), decimalStr]), props.suffixLabel && h(\"span\", {\n \"class\": bem('suffix-label')\n }, [props.suffixLabel])]);\n }\n }\n\n function Tip() {\n if (slots.tip || tip) {\n return h(\"div\", {\n \"class\": bem('tip')\n }, [tipIcon && h(Icon, {\n \"class\": bem('tip-icon'),\n \"attrs\": {\n \"name\": tipIcon\n }\n }), tip && h(\"span\", {\n \"class\": bem('tip-text')\n }, [tip]), slots.tip && slots.tip()]);\n }\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n unfit: !props.safeAreaInsetBottom\n })\n }, inherit(ctx)]), [slots.top && slots.top(), Tip(), h(\"div\", {\n \"class\": bem('bar')\n }, [slots.default && slots.default(), Text(), slots.button ? slots.button() : h(Button, {\n \"attrs\": {\n \"round\": true,\n \"type\": props.buttonType,\n \"text\": props.loading ? '' : props.buttonText,\n \"color\": props.buttonColor,\n \"loading\": props.loading,\n \"disabled\": props.disabled\n },\n \"class\": bem('button', props.buttonType),\n \"on\": {\n \"click\": function click() {\n emit(ctx, 'submit');\n }\n }\n })])]);\n}\n\nSubmitBar.props = {\n tip: String,\n label: String,\n price: Number,\n tipIcon: String,\n loading: Boolean,\n disabled: Boolean,\n textAlign: String,\n buttonText: String,\n buttonColor: String,\n suffixLabel: String,\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n },\n decimalLength: {\n type: [Number, String],\n default: 2\n },\n currency: {\n type: String,\n default: '¥'\n },\n buttonType: {\n type: String,\n default: 'danger'\n }\n};\nexport default createComponent(SubmitBar);","// Utils\nimport { createNamespace } from '../utils';\nimport { range } from '../utils/format/number';\nimport { preventDefault } from '../utils/dom/event'; // Mixins\n\nimport { TouchMixin } from '../mixins/touch';\nimport { ClickOutsideMixin } from '../mixins/click-outside';\n\nvar _createNamespace = createNamespace('swipe-cell'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nvar THRESHOLD = 0.15;\nexport default createComponent({\n mixins: [TouchMixin, ClickOutsideMixin({\n event: 'touchstart',\n method: 'onClick'\n })],\n props: {\n // @deprecated\n // should be removed in next major version, use beforeClose instead\n onClose: Function,\n disabled: Boolean,\n leftWidth: [Number, String],\n rightWidth: [Number, String],\n beforeClose: Function,\n stopPropagation: Boolean,\n name: {\n type: [Number, String],\n default: ''\n }\n },\n data: function data() {\n return {\n offset: 0,\n dragging: false\n };\n },\n computed: {\n computedLeftWidth: function computedLeftWidth() {\n return +this.leftWidth || this.getWidthByRef('left');\n },\n computedRightWidth: function computedRightWidth() {\n return +this.rightWidth || this.getWidthByRef('right');\n }\n },\n mounted: function mounted() {\n this.bindTouchEvent(this.$el);\n },\n methods: {\n getWidthByRef: function getWidthByRef(ref) {\n if (this.$refs[ref]) {\n var rect = this.$refs[ref].getBoundingClientRect();\n return rect.width;\n }\n\n return 0;\n },\n // @exposed-api\n open: function open(position) {\n var offset = position === 'left' ? this.computedLeftWidth : -this.computedRightWidth;\n this.opened = true;\n this.offset = offset;\n this.$emit('open', {\n position: position,\n name: this.name,\n // @deprecated\n // should be removed in next major version\n detail: this.name\n });\n },\n // @exposed-api\n close: function close(position) {\n this.offset = 0;\n\n if (this.opened) {\n this.opened = false;\n this.$emit('close', {\n position: position,\n name: this.name\n });\n }\n },\n onTouchStart: function onTouchStart(event) {\n if (this.disabled) {\n return;\n }\n\n this.startOffset = this.offset;\n this.touchStart(event);\n },\n onTouchMove: function onTouchMove(event) {\n if (this.disabled) {\n return;\n }\n\n this.touchMove(event);\n\n if (this.direction === 'horizontal') {\n this.dragging = true;\n this.lockClick = true;\n var isPrevent = !this.opened || this.deltaX * this.startOffset < 0;\n\n if (isPrevent) {\n preventDefault(event, this.stopPropagation);\n }\n\n this.offset = range(this.deltaX + this.startOffset, -this.computedRightWidth, this.computedLeftWidth);\n }\n },\n onTouchEnd: function onTouchEnd() {\n var _this = this;\n\n if (this.disabled) {\n return;\n }\n\n if (this.dragging) {\n this.toggle(this.offset > 0 ? 'left' : 'right');\n this.dragging = false; // compatible with desktop scenario\n\n setTimeout(function () {\n _this.lockClick = false;\n }, 0);\n }\n },\n toggle: function toggle(direction) {\n var offset = Math.abs(this.offset);\n var threshold = this.opened ? 1 - THRESHOLD : THRESHOLD;\n var computedLeftWidth = this.computedLeftWidth,\n computedRightWidth = this.computedRightWidth;\n\n if (computedRightWidth && direction === 'right' && offset > computedRightWidth * threshold) {\n this.open('right');\n } else if (computedLeftWidth && direction === 'left' && offset > computedLeftWidth * threshold) {\n this.open('left');\n } else {\n this.close();\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.opened && !this.lockClick) {\n if (this.beforeClose) {\n this.beforeClose({\n position: position,\n name: this.name,\n instance: this\n });\n } else if (this.onClose) {\n this.onClose(position, this, {\n name: this.name\n });\n } else {\n this.close(position);\n }\n }\n },\n getClickHandler: function getClickHandler(position, stop) {\n var _this2 = this;\n\n return function (event) {\n if (stop) {\n event.stopPropagation();\n }\n\n _this2.onClick(position);\n };\n },\n genLeftPart: function genLeftPart() {\n var h = this.$createElement;\n var content = this.slots('left');\n\n if (content) {\n return h(\"div\", {\n \"ref\": \"left\",\n \"class\": bem('left'),\n \"on\": {\n \"click\": this.getClickHandler('left', true)\n }\n }, [content]);\n }\n },\n genRightPart: function genRightPart() {\n var h = this.$createElement;\n var content = this.slots('right');\n\n if (content) {\n return h(\"div\", {\n \"ref\": \"right\",\n \"class\": bem('right'),\n \"on\": {\n \"click\": this.getClickHandler('right', true)\n }\n }, [content]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n var wrapperStyle = {\n transform: \"translate3d(\" + this.offset + \"px, 0, 0)\",\n transitionDuration: this.dragging ? '0s' : '.6s'\n };\n return h(\"div\", {\n \"class\": bem(),\n \"on\": {\n \"click\": this.getClickHandler('cell')\n }\n }, [h(\"div\", {\n \"class\": bem('wrapper'),\n \"style\": wrapperStyle\n }, [this.genLeftPart(), this.slots(), this.genRightPart()])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { inherit } from '../utils/functional'; // Components\n\nimport Cell from '../cell';\nimport Switch from '../switch';\nimport { switchProps } from '../switch/shared'; // Types\n\nvar _createNamespace = createNamespace('switch-cell'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction SwitchCell(h, props, slots, ctx) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('[Vant] \"SwitchCell\" component is deprecated, see: https://youzan.github.io/vant/#/zh-CN/switch-cell.');\n }\n\n return h(Cell, _mergeJSXProps([{\n \"attrs\": {\n \"center\": true,\n \"size\": props.cellSize,\n \"title\": props.title,\n \"border\": props.border\n },\n \"class\": bem([props.cellSize])\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 cellSize: String,\n border: {\n type: Boolean,\n default: true\n },\n size: {\n type: String,\n default: '24px'\n }\n});\nexport default createComponent(SwitchCell);","import { createNamespace } from '../utils';\nimport { BORDER_TOP_BOTTOM } from '../utils/constant';\nimport { callInterceptor } from '../utils/interceptor';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('tabbar'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanTabbar')],\n props: {\n route: Boolean,\n zIndex: [Number, String],\n placeholder: Boolean,\n activeColor: String,\n beforeChange: Function,\n inactiveColor: String,\n value: {\n type: [Number, String],\n default: 0\n },\n border: {\n type: Boolean,\n default: true\n },\n fixed: {\n type: Boolean,\n default: true\n },\n safeAreaInsetBottom: {\n type: Boolean,\n default: null\n }\n },\n data: function data() {\n return {\n height: null\n };\n },\n computed: {\n fit: function fit() {\n if (this.safeAreaInsetBottom !== null) {\n return this.safeAreaInsetBottom;\n } // enable safe-area-inset-bottom by default when fixed\n\n\n return this.fixed;\n }\n },\n watch: {\n value: 'setActiveItem',\n children: 'setActiveItem'\n },\n mounted: function mounted() {\n if (this.placeholder && this.fixed) {\n this.height = this.$refs.tabbar.getBoundingClientRect().height;\n }\n },\n methods: {\n setActiveItem: function setActiveItem() {\n var _this = this;\n\n this.children.forEach(function (item, index) {\n item.active = (item.name || index) === _this.value;\n });\n },\n onChange: function onChange(active) {\n var _this2 = this;\n\n if (active !== this.value) {\n callInterceptor({\n interceptor: this.beforeChange,\n args: [active],\n done: function done() {\n _this2.$emit('input', active);\n\n _this2.$emit('change', active);\n }\n });\n }\n },\n genTabbar: function genTabbar() {\n var _ref;\n\n var h = this.$createElement;\n return h(\"div\", {\n \"ref\": \"tabbar\",\n \"style\": {\n zIndex: this.zIndex\n },\n \"class\": [(_ref = {}, _ref[BORDER_TOP_BOTTOM] = this.border, _ref), bem({\n unfit: !this.fit,\n fixed: this.fixed\n })]\n }, [this.slots()]);\n }\n },\n render: function render() {\n var h = arguments[0];\n\n if (this.placeholder && this.fixed) {\n return h(\"div\", {\n \"class\": bem('placeholder'),\n \"style\": {\n height: this.height + \"px\"\n }\n }, [this.genTabbar()]);\n }\n\n return this.genTabbar();\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, isObject, isDef } from '../utils';\nimport { route, routeProps } from '../utils/router'; // Mixins\n\nimport { ChildrenMixin } from '../mixins/relation'; // Components\n\nimport Icon from '../icon';\nimport Info from '../info';\n\nvar _createNamespace = createNamespace('tabbar-item'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanTabbar')],\n props: _extends({}, routeProps, {\n dot: Boolean,\n icon: String,\n name: [Number, String],\n // @deprecated\n info: [Number, String],\n badge: [Number, String],\n iconPrefix: String\n }),\n data: function data() {\n return {\n active: false\n };\n },\n computed: {\n routeActive: function routeActive() {\n var to = this.to,\n $route = this.$route;\n\n if (to && $route) {\n var config = isObject(to) ? to : {\n path: to\n };\n var pathMatched = config.path === $route.path;\n var nameMatched = isDef(config.name) && config.name === $route.name;\n return pathMatched || nameMatched;\n }\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.parent.onChange(this.name || this.index);\n this.$emit('click', event);\n route(this.$router, this);\n },\n genIcon: function genIcon(active) {\n var h = this.$createElement;\n var slot = this.slots('icon', {\n active: active\n });\n\n if (slot) {\n return slot;\n }\n\n if (this.icon) {\n return h(Icon, {\n \"attrs\": {\n \"name\": this.icon,\n \"classPrefix\": this.iconPrefix\n }\n });\n }\n }\n },\n render: function render() {\n var _this$badge;\n\n var h = arguments[0];\n var active = this.parent.route ? this.routeActive : this.active;\n var color = this.parent[active ? 'activeColor' : 'inactiveColor'];\n\n if (process.env.NODE_ENV === 'development' && this.info) {\n console.warn('[Vant] TabbarItem: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n return h(\"div\", {\n \"class\": bem({\n active: active\n }),\n \"style\": {\n color: color\n },\n \"on\": {\n \"click\": this.onClick\n }\n }, [h(\"div\", {\n \"class\": bem('icon')\n }, [this.genIcon(active), h(Info, {\n \"attrs\": {\n \"dot\": this.dot,\n \"info\": (_this$badge = this.badge) != null ? _this$badge : this.info\n }\n })]), h(\"div\", {\n \"class\": bem('text')\n }, [this.slots('default', {\n active: active\n })])]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { emit, inherit } from '../utils/functional'; // Components\n\nimport Icon from '../icon';\nimport Sidebar from '../sidebar';\nimport SidebarItem from '../sidebar-item'; // Types\n\nvar _createNamespace = createNamespace('tree-select'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction TreeSelect(h, props, slots, ctx) {\n var items = props.items,\n height = props.height,\n activeId = props.activeId,\n selectedIcon = props.selectedIcon,\n mainActiveIndex = props.mainActiveIndex;\n\n if (process.env.NODE_ENV === 'development') {\n if (ctx.listeners.navclick) {\n console.warn('[Vant] TreeSelect: \"navclick\" event is deprecated, use \"click-nav\" instead.');\n }\n\n if (ctx.listeners.itemclick) {\n console.warn('[Vant] TreeSelect: \"itemclick\" event is deprecated, use \"click-item\" instead.');\n }\n }\n\n var selectedItem = items[+mainActiveIndex] || {};\n var subItems = selectedItem.children || [];\n var isMultiple = Array.isArray(activeId);\n\n function isActiveItem(id) {\n return isMultiple ? activeId.indexOf(id) !== -1 : activeId === id;\n }\n\n var Navs = items.map(function (item) {\n var _item$badge;\n\n return h(SidebarItem, {\n \"attrs\": {\n \"dot\": item.dot,\n \"info\": (_item$badge = item.badge) != null ? _item$badge : item.info,\n \"title\": item.text,\n \"disabled\": item.disabled\n },\n \"class\": [bem('nav-item'), item.className]\n });\n });\n\n function Content() {\n if (slots.content) {\n return slots.content();\n }\n\n return subItems.map(function (item) {\n return h(\"div\", {\n \"key\": item.id,\n \"class\": ['van-ellipsis', bem('item', {\n active: isActiveItem(item.id),\n disabled: item.disabled\n })],\n \"on\": {\n \"click\": function click() {\n if (!item.disabled) {\n var newActiveId = item.id;\n\n if (isMultiple) {\n newActiveId = activeId.slice();\n var index = newActiveId.indexOf(item.id);\n\n if (index !== -1) {\n newActiveId.splice(index, 1);\n } else if (newActiveId.length < props.max) {\n newActiveId.push(item.id);\n }\n }\n\n emit(ctx, 'update:active-id', newActiveId);\n emit(ctx, 'click-item', item); // compatible with legacy usage, should be removed in next major version\n\n emit(ctx, 'itemclick', item);\n }\n }\n }\n }, [slots.item ? slots.item(item) : h(\"span\", [item.text, isActiveItem(item.id) && h(Icon, {\n \"attrs\": {\n \"name\": selectedIcon\n },\n \"class\": bem('selected')\n })])]);\n });\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem(),\n \"style\": {\n height: addUnit(height)\n }\n }, inherit(ctx)]), [h(Sidebar, {\n \"class\": bem('nav'),\n \"attrs\": {\n \"activeKey\": mainActiveIndex\n },\n \"on\": {\n \"change\": function change(index) {\n emit(ctx, 'update:main-active-index', index);\n emit(ctx, 'click-nav', index); // compatible with legacy usage, should be removed in next major version\n\n emit(ctx, 'navclick', index);\n }\n }\n }, [Navs]), h(\"div\", {\n \"class\": bem('content')\n }, [Content()])]);\n}\n\nTreeSelect.props = {\n max: {\n type: [Number, String],\n default: Infinity\n },\n items: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n height: {\n type: [Number, String],\n default: 300\n },\n activeId: {\n type: [Number, String, Array],\n default: 0\n },\n selectedIcon: {\n type: String,\n default: 'success'\n },\n mainActiveIndex: {\n type: [Number, String],\n default: 0\n }\n};\nexport default createComponent(TreeSelect);","import ActionSheet from './action-sheet';\nimport AddressEdit from './address-edit';\nimport AddressList from './address-list';\nimport ApproveAgreement from './approve-agreement';\nimport Area from './area';\nimport Badge from './badge';\nimport BottomButton from './bottom-button';\nimport Button from './button';\nimport Calendar from './calendar';\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 CountDown from './count-down';\nimport Coupon from './coupon';\nimport CouponCell from './coupon-cell';\nimport CouponList from './coupon-list';\nimport DatePickerField from './date-picker-field';\nimport DatetimePicker from './datetime-picker';\nimport Dialog from './dialog';\nimport Divider from './divider';\nimport Dot from './dot';\nimport DropdownItem from './dropdown-item';\nimport DropdownMenu from './dropdown-menu';\nimport Empty from './empty';\nimport Field from './field';\nimport Form from './form';\nimport GoodsAction from './goods-action';\nimport GoodsActionButton from './goods-action-button';\nimport GoodsActionIcon from './goods-action-icon';\nimport Grid from './grid';\nimport GridItem from './grid-item';\nimport Icon from './icon';\nimport Image from './image';\nimport ImagePreview from './image-preview';\nimport IndexAnchor from './index-anchor';\nimport IndexBar from './index-bar';\nimport Info from './info';\nimport Lazyload from './lazyload';\nimport List from './list';\nimport Loading from './loading';\nimport Locale from './locale';\nimport ModalSheet from './modal-sheet';\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 Popover from './popover';\nimport Popup from './popup';\nimport Prescription from './prescription';\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 ShareSheet from './share-sheet';\nimport Sidebar from './sidebar';\nimport SidebarItem from './sidebar-item';\nimport Skeleton from './skeleton';\nimport Sku from './sku';\nimport Slider from './slider';\nimport Step from './step';\nimport StepNormal from './step-normal';\nimport Stepper from './stepper';\nimport Steps from './steps';\nimport StepsNormal from './steps-normal';\nimport Sticky from './sticky';\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';\nvar version = '1.0.24';\n\nfunction install(Vue) {\n var components = [ActionSheet, AddressEdit, AddressList, ApproveAgreement, Area, Badge, BottomButton, Button, Calendar, Card, Cell, CellGroup, Checkbox, CheckboxGroup, Circle, Col, Collapse, CollapseItem, ContactCard, ContactEdit, ContactList, CountDown, Coupon, CouponCell, CouponList, DatePickerField, DatetimePicker, Dialog, Divider, Dot, DropdownItem, DropdownMenu, Empty, Field, Form, GoodsAction, GoodsActionButton, GoodsActionIcon, Grid, GridItem, Icon, Image, ImagePreview, IndexAnchor, IndexBar, Info, List, Loading, Locale, ModalSheet, NavBar, NoticeBar, Notify, NumberKeyboard, Overlay, Pagination, Panel, PasswordInput, Picker, Popover, Popup, Prescription, Progress, PullRefresh, Radio, RadioGroup, Rate, Row, Search, ShareSheet, Sidebar, SidebarItem, Skeleton, Sku, Slider, Step, StepNormal, Stepper, Steps, StepsNormal, Sticky, SubmitBar, Swipe, SwipeCell, SwipeItem, Switch, SwitchCell, Tab, Tabbar, TabbarItem, Tabs, Tag, Toast, TreeSelect, Uploader];\n components.forEach(function (item) {\n if (item.install) {\n Vue.use(item);\n } else if (item.name) {\n Vue.component(item.name, item);\n }\n });\n}\n\nif (typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n}\n\nexport { install, version, ActionSheet, AddressEdit, AddressList, ApproveAgreement, Area, Badge, BottomButton, Button, Calendar, Card, Cell, CellGroup, Checkbox, CheckboxGroup, Circle, Col, Collapse, CollapseItem, ContactCard, ContactEdit, ContactList, CountDown, Coupon, CouponCell, CouponList, DatePickerField, DatetimePicker, Dialog, Divider, Dot, DropdownItem, DropdownMenu, Empty, Field, Form, GoodsAction, GoodsActionButton, GoodsActionIcon, Grid, GridItem, Icon, Image, ImagePreview, IndexAnchor, IndexBar, Info, Lazyload, List, Loading, Locale, ModalSheet, NavBar, NoticeBar, Notify, NumberKeyboard, Overlay, Pagination, Panel, PasswordInput, Picker, Popover, Popup, Prescription, Progress, PullRefresh, Radio, RadioGroup, Rate, Row, Search, ShareSheet, Sidebar, SidebarItem, Skeleton, Sku, Slider, Step, StepNormal, Stepper, Steps, StepsNormal, Sticky, SubmitBar, Swipe, SwipeCell, SwipeItem, Switch, SwitchCell, Tab, Tabbar, TabbarItem, Tabs, Tag, Toast, TreeSelect, Uploader };\nexport default {\n install: install,\n version: version\n};","/* @checkout-sdk/pay version ' + 0.0.3 */\nimport { env, axios, getAdapter, initAdapter, ZYToast } from '@zyf2e/adapt';\n\nvar ROUTE_PATH = {\r\n checkout: '/checkout',\r\n confirm: '/confirm',\r\n success: '/success',\r\n fail: '/fail'\r\n};\n\nvar iconAlipay = 'https://static.91jkys.com/attachment/20210629101054066_4a6530d8cfc742239c577fd3f372074f.png';\r\nvar iconWepay = 'https://static.91jkys.com/attachment/20210629101058690_0b872db7d0254ab08f8582ddaf28bb1d.png';\r\nvar iconUnion = 'https://static.91jkys.com/attachment/20210629101101851_55f47d3d8e6744ad98f6ee285c609b54.png';\r\nvar payClients = [\r\n {\r\n value: 'alipay',\r\n name: '支付宝',\r\n icon: iconAlipay\r\n },\r\n {\r\n value: 'wechat',\r\n name: '微信',\r\n icon: iconWepay\r\n },\r\n {\r\n value: 'union',\r\n name: '银联支付',\r\n icon: iconUnion\r\n }\r\n];\r\nfunction getPayClient(client) {\r\n return (payClients.find(function (item) { return item.value === client; }) || {\r\n value: '',\r\n name: '其他支付',\r\n icon: ''\r\n });\r\n}\r\nvar mallSassPayList = [\r\n {\r\n id: 1,\r\n name: '微信支付',\r\n icon: iconWepay\r\n }\r\n];\r\nfunction getMallSassPayClient(id) {\r\n return mallSassPayList.find(function (item) { return item.id === id; }) || {};\r\n}\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\nfunction __extends(d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nvar __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nfunction __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\nfunction __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nfunction getCommonApi(apiUrl, port, rootUrl) {\r\n if (rootUrl === void 0) { rootUrl = '/'; }\r\n var devEnv = env.devEnv;\r\n var protocol = window.location.protocol === 'https:' ? 'https:' : 'http:';\r\n var baseApi = protocol + \"//\" + apiUrl + (devEnv ? \".\" + devEnv : '') + \".91jkys.com\";\r\n return baseApi + (port && port !== 80 ? \":\" + port : '') + rootUrl;\r\n}\r\nfunction getQueryVariable(variable) {\r\n var query = window.location.href.split('?');\r\n if (query.length < 2) {\r\n return null;\r\n }\r\n var vars = query[1].split('&');\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split('=');\r\n if (pair[0] === variable) {\r\n return pair[1];\r\n }\r\n }\r\n return null;\r\n}\r\nfunction parseParam(json) {\r\n return Object.keys(json)\r\n .flatMap(function (v) {\r\n if (/^https?:\\/\\//.test(json[v])) {\r\n return [v + \"=\" + encodeURIComponent(json[v])];\r\n }\r\n if (!json[v])\r\n return [];\r\n return [v + \"=\" + json[v]];\r\n })\r\n .join('&');\r\n}\r\nfunction callBackUrl(domain, params) {\r\n return domain + \"#\" + ROUTE_PATH.confirm + \"?\" + parseParam(params);\r\n}\r\nfunction getUCLoginUrl() {\r\n var hostStr = window.location.host;\r\n if (/\\.qa\\.|\\d+\\.\\d+\\.|localhost/.test(hostStr)) {\r\n return 'https://third.y.91jkys.com/api/share-login-center/';\r\n }\r\n if (/\\.pre\\./.test(hostStr)) {\r\n return 'https://third.pre.91jkys.com/api/share-login-center/';\r\n }\r\n return 'https://share-login-center.91jkys.com/';\r\n}\r\nfunction baseOfWechat(configKey, pw) {\r\n var url = window.location.href + \"&payWay=\" + pw;\r\n window.location.replace(getUCLoginUrl() + \"weChat/getOpenId?redirectUrl=\" + encodeURIComponent(url) + \"&configKey=\" + configKey);\r\n}\r\nfunction getAppPayString(payString) {\r\n var ua = window.navigator.userAgent;\r\n return !/flutter/i.test(ua) && /iPhone|iPad|iPod/i.test(ua) ? encodeURIComponent(payString) : payString;\r\n}\r\nfunction getPayUa() {\r\n if (env.inWechatMiniProgram) {\r\n return 'mini';\r\n }\r\n if (env.inWechat) {\r\n return 'pub';\r\n }\r\n if (env.inAPP) {\r\n return 'app';\r\n }\r\n if (env.inH5 || env.inAliApp) {\r\n return 'h5';\r\n }\r\n return 'pc';\r\n}\r\nfunction getPaymentParams(payString, paramKeys) {\r\n return paramKeys.reduce(function (params, key) {\r\n var _a;\r\n var val = getParamByName(payString, key);\r\n return __assign(__assign({}, params), (_a = {}, _a[key] = val, _a));\r\n }, { signType: 'RSA' });\r\n}\r\nfunction getParamByName(str, name) {\r\n var reg = new RegExp(\"[^?,]?\" + name + \"=([^,]+)\");\r\n var target = str.match(reg);\r\n if (target && target.length > 1) {\r\n return target[1];\r\n }\r\n return '';\r\n}\r\nfunction getQueryValues(queryKeys) {\r\n var query = window.location.search.substring(1) + '&' + window.location.hash.split('?')[1];\r\n var vars = query.split('&');\r\n var result = {};\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split('=');\r\n if (queryKeys.includes(pair[0])) {\r\n result[pair[0]] = pair[1];\r\n }\r\n }\r\n return result;\r\n}\r\nfunction getMallTradeType() {\r\n if (env.inAPP) {\r\n return EMallSassTradeType.APP;\r\n }\r\n else if (env.inWechat) {\r\n return EMallSassTradeType.OFFICIAL;\r\n }\r\n return EMallSassTradeType.H5;\r\n}\n\nfunction mallRequestResult(res) {\r\n return new Promise(function (resolve, reject) {\r\n var result = res !== undefined ? JSON.parse(res) : res;\r\n if (result.code === 0) {\r\n resolve(result.data);\r\n }\r\n else {\r\n reject(result);\r\n }\r\n });\r\n}\n\nvar adaptConfig = {\r\n INSURANCE: {\r\n baseURL: process.env.VUE_APP_INSURANCE_API,\r\n loginKey: process.env.VUE_APP_INSURANCE_LOGIN_KEY,\r\n wechatLoginApi: process.env.VUE_APP_INSURANCE_LOGIN_API,\r\n h5LoginUrl: process.env.VUE_APP_INSURANCE_H5LOGIN_URL + \"#/login?c=\" + getQueryVariable('city') + \"&redirect=\",\r\n jkysWechatURL: process.env.VUE_APP_INSURANCE_API + \"cis_base/1.0/get_wxconfig?c=\" + getQueryVariable('city')\r\n },\r\n MEDIC_SALE: {\r\n loginKey: 'zyyd_login',\r\n wechatLoginApi: '//api.zyyd.dia-solution.com/medicsale/wechatLogin?bizId=MEDIC_SALE'\r\n }\r\n};\r\nvar PAY_WAY = {\r\n alipay_app: 'aliPay',\r\n union_pay_app: 'yinLianPay',\r\n wechat_app: 'wxpay'\r\n};\r\nvar EventTypeEnum;\r\n(function (EventTypeEnum) {\r\n EventTypeEnum[EventTypeEnum[\"jump\"] = 0] = \"jump\";\r\n EventTypeEnum[EventTypeEnum[\"closeWindow\"] = 1] = \"closeWindow\";\r\n})(EventTypeEnum || (EventTypeEnum = {}));\r\nvar EPayResult;\r\n(function (EPayResult) {\r\n EPayResult[\"success\"] = \"pay_success\";\r\n EPayResult[\"fail\"] = \"pay_fail\";\r\n EPayResult[\"cancel\"] = \"pay_cancel\";\r\n EPayResult[\"invalid\"] = \"pay_invalid\";\r\n EPayResult[\"ok\"] = \"pay_success\";\r\n EPayResult[EPayResult[\"pay_fail\"] = 0] = \"pay_fail\";\r\n EPayResult[EPayResult[\"pay_success\"] = 1] = \"pay_success\";\r\n EPayResult[EPayResult[\"pay_invalid\"] = 2] = \"pay_invalid\";\r\n})(EPayResult || (EPayResult = {}));\r\nvar EPingPayWay;\r\n(function (EPingPayWay) {\r\n EPingPayWay[\"wechatPub\"] = \"wechat_pub\";\r\n EPingPayWay[\"wechatH5\"] = \"wechat_h5\";\r\n EPingPayWay[\"unionPayH5\"] = \"union_pay_h5\";\r\n EPingPayWay[\"alipayH5\"] = \"alipay_h5\";\r\n})(EPingPayWay || (EPingPayWay = {}));\r\nvar EQRCodePayWay;\r\n(function (EQRCodePayWay) {\r\n EQRCodePayWay[\"wx_pub_qr\"] = \"wechat\";\r\n EQRCodePayWay[\"alipay_qr\"] = \"alipay\";\r\n})(EQRCodePayWay || (EQRCodePayWay = {}));\r\nvar EMallSassTradeType;\r\n(function (EMallSassTradeType) {\r\n EMallSassTradeType[\"APP\"] = \"APP\";\r\n EMallSassTradeType[\"OFFICIAL\"] = \"OFFICIAL\";\r\n EMallSassTradeType[\"H5\"] = \"H5\";\r\n})(EMallSassTradeType || (EMallSassTradeType = {}));\r\nvar MALL_SASS_SUBMIT_PAY_OVER_TIME = 410203;\n\nfunction getTradeInfo(tradeNo) {\r\n return axios.post('trade-service/1.0.0/getTradeInfo', {\r\n tradeNo: tradeNo\r\n });\r\n}\r\nfunction getPayResult(tradeNo, queryThirdPlatform) {\r\n return axios.post('trade-service/1.0.0/queryPayResult', {\r\n tradeNo: tradeNo,\r\n queryThirdPlatform: queryThirdPlatform\r\n });\r\n}\r\nfunction getPayConfig(tradeNo, payUA) {\r\n return axios.post('trade-service/1.0.0/getPayConfig', {\r\n tradeNo: tradeNo,\r\n payUA: payUA\r\n });\r\n}\r\nfunction getRedirectUrl(redirectUrl) {\r\n return axios.get('/trade-service/1.0.0/getRedirectUrlKey', { params: { redirectUrl: redirectUrl } });\r\n}\r\nfunction getOpenId(params) {\r\n return axios.post('/trade-service/1.0.0/queryOpenId', params);\r\n}\r\nfunction getPayString(params) {\r\n return axios.post('/trade-service/1.0.0/prePay', params);\r\n}\r\nfunction getNoLoginOpenId(params) {\r\n return axios.post('/trade-service/1.0.0/getWechatInfoNologin', params);\r\n}\n\nfunction getMallSaasDetail(params) {\r\n return axios.post('/mall-saas/1.0.0/detail', params)\r\n .then(function (res) { return mallRequestResult(res); });\r\n}\r\nfunction getMallSaasPay(params) {\r\n return axios.post('/mall-saas/1.0.0/pay', params)\r\n .then(function (res) { return mallRequestResult(res); });\r\n}\r\nfunction getMallSaasPayResult(params) {\r\n return axios.post('/mall-saas/1.0.0/payResult', params)\r\n .then(function (res) { return mallRequestResult(res); });\r\n}\n\nvar ERROR_TYPE;\r\n(function (ERROR_TYPE) {\r\n ERROR_TYPE[\"error\"] = \"ERROR\";\r\n ERROR_TYPE[\"errorDialog\"] = \"ERROR_DIALOG\";\r\n ERROR_TYPE[\"errorPay\"] = \"ERROR_PAY\";\r\n})(ERROR_TYPE || (ERROR_TYPE = {}));\r\nvar CheckoutError = (function (_super) {\r\n __extends(CheckoutError, _super);\r\n function CheckoutError(message, type, code) {\r\n if (type === void 0) { type = ERROR_TYPE.error; }\r\n if (code === void 0) { code = ''; }\r\n var _this = _super.call(this) || this;\r\n _this.message = message;\r\n _this.type = type;\r\n _this.code = code;\r\n return _this;\r\n }\r\n return CheckoutError;\r\n}(Error));\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t path: basedir,\n\t exports: {},\n\t require: function (path, base) {\n return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n }\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar telescope_min = createCommonjsModule(function (module, exports) {\n(function (global, factory) {\n factory(exports) ;\n}(commonjsGlobal, function (exports) { var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };\n var SERVER_URL = (window.location.protocol === 'http:' ? 'http:' : 'https:') + \"//frontlo-collection.91jkys.com/log.gif\";\n var DEBUG_SERVER_URL = (window.location.protocol === 'http:' ? 'http:' : 'https:') + \"//frontlo-collection.91jkys.com/f2e/log.gif\";\n var CUSTOM_TOKEN_KEY = 'TRYCATCH_TOKEN';\n var SEND_TYPE = {\n SYNC: 'SYNC',\n ASYNC: 'ASYNC',\n UNLOAD: 'UNLOAD'\n };\n var ACTION_TYPE = {\n EVENT: 'EVENT',\n PAGE: 'PAGE',\n VIEW: 'VIEW',\n DURATION: 'DURATION',\n VIEW_DURATION: 'VIEW_DURATION'\n };\n var SAFETY_KEY = [\n 'version',\n 'custom',\n 'actionType',\n 'eventName',\n 'pageId',\n 'domId',\n 'domClass',\n 'domHref',\n 'domName',\n 'domTag',\n 'domContent',\n 'domPath',\n 'trackId',\n 'referrerId',\n 'score',\n 'startTime',\n 'endTime',\n 'durationTime',\n 'channel',\n 'netType',\n 'debug',\n 'seKeywords',\n 'bizId',\n 'isAutoTrack',\n 'autoTrackId',\n 'contentId',\n 'patientId',\n 'doctorId',\n 'skuId',\n 'prescriptionId',\n 'storeId',\n 'inquiryId',\n 'orderId',\n 'activityId'\n ];\n var config = {\n trackKey: '',\n serverUrl: SERVER_URL,\n debugServerUrl: DEBUG_SERVER_URL,\n version: null,\n offlineUrl: '',\n sendType: SEND_TYPE.ASYNC,\n delayTime: 1000,\n autoTrackPage: true,\n autoTrackClick: true,\n autoInstall: true,\n delayLink: true,\n delayLinkTime: 300,\n deviceIdKey: CUSTOM_TOKEN_KEY,\n beforeGenerateLog: null,\n autoTrackPrefix: 'zhiyun-'\n };\n var scriptDom = document.querySelector('script[track-key]') || document.querySelector('script[trackKey]');\n if (scriptDom) {\n var trackKey = scriptDom.getAttribute('track-key') || scriptDom.getAttribute('trackKey') || '';\n if (trackKey) {\n config.trackKey = trackKey;\n }\n var autoTrackPrefix = scriptDom.getAttribute('auto-track-prefix');\n if (autoTrackPrefix) {\n config.autoTrackPrefix = autoTrackPrefix;\n }\n }\n function getConfig() {\n return config;\n }\n function setConfig(data) {\n config = __assign(__assign({}, config), data);\n }\n function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n }\n var _isPlaceholder_1 = _isPlaceholder;\n function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder_1(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n }\n var _curry1_1 = _curry1;\n function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder_1(a) ? f2 : _curry1_1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder_1(a) && _isPlaceholder_1(b) ? f2 : _isPlaceholder_1(a) ? _curry1_1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder_1(b) ? _curry1_1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n }\n var _curry2_1 = _curry2;\n function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n }\n var _arrayFromIterator_1 = _arrayFromIterator;\n function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n }\n var _includesWith_1 = _includesWith;\n function _functionName(f) {\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n }\n var _functionName_1 = _functionName;\n function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n var _has_1 = _has;\n function _objectIs(a, b) {\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n } else {\n return a !== a && b !== b;\n }\n }\n var _objectIs_1 = typeof Object.is === 'function' ? Object.is : _objectIs;\n var toString = Object.prototype.toString;\n var _isArguments =\n function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has_1('callee', x);\n };\n }();\n var _isArguments_1 = _isArguments;\n var hasEnumBug = !\n {\n toString: null\n }.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n var hasArgsEnumBug =\n function () {\n return arguments.propertyIsEnumerable('length');\n }();\n var contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n };\n var keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n _curry1_1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n }) :\n _curry1_1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments_1(obj);\n for (prop in obj) {\n if (_has_1(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has_1(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n });\n var keys_1 = keys;\n var type =\n _curry1_1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n });\n var type_1 = type;\n function _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator_1(aIterator);\n var b = _arrayFromIterator_1(bIterator);\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n return !_includesWith_1(function (b, aItem) {\n return !_includesWith_1(eq, aItem, b);\n }, b, a);\n }\n function _equals(a, b, stackA, stackB) {\n if (_objectIs_1(a, b)) {\n return true;\n }\n var typeA = type_1(a);\n if (typeA !== type_1(b)) {\n return false;\n }\n if (a == null || b == null) {\n return false;\n }\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName_1(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs_1(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs_1(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n return false;\n }\n var keysA = keys_1(a);\n if (keysA.length !== keys_1(b).length) {\n return false;\n }\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has_1(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n }\n var _equals_1 = _equals;\n var equals =\n _curry2_1(function equals(a, b) {\n return _equals_1(a, b, [], []);\n });\n var equals_1 = equals;\n function isThenable(f) {\n return f && typeof f.then === 'function';\n }\n function getQueryVariable(variable) {\n var query = window.location.href.match(/\\?(.*)$/);\n if (!query)\n return null;\n var vars = query[1].split('&');\n for (var i = 0; i < vars.length; i++) {\n var pair = vars[i].split('=');\n if (pair[0] == variable) {\n return pair[1];\n }\n }\n return null;\n }\n function getCookie(name) {\n var cookies = document.cookie.split(';');\n for (var i in cookies) {\n var arr = cookies[i].split('=');\n if (name == arr[0].trim()) {\n return unescape(arr[1]).replace(/&&&&/g, ';');\n }\n }\n return null;\n }\n function setCookie(name, value, expires, path, domain) {\n if (expires === void 0) { expires = 99999; }\n if (path === void 0) { path = '/'; }\n document.cookie =\n name +\n '=' +\n value.replace(/;/g, '&&&&') +\n (expires ? '; expires=' + getExpires(expires) : '') +\n (path ? '; path=' + path : '') +\n ('; domain=' + (domain ? domain : '.' + location.host.replace(/.*\\.(.*\\..*)$/, '$1')));\n function getExpires(hours) {\n var date = new Date();\n date.setTime(date.getTime() + hours * 60 * 60 * 1000);\n return date.toUTCString();\n }\n }\n function notChanged(binding) {\n if (binding.oldValue !== undefined) {\n if (typeof binding.value === 'object') {\n return equals_1(binding.value, binding.oldValue);\n }\n else {\n return binding.value === binding.oldValue;\n }\n }\n else {\n return false;\n }\n }\n function isEmpty(binding) {\n return binding.value === '' || binding.value === undefined || binding.value === null;\n }\n function setFlag(key, value) {\n if (value === void 0) { value = true; }\n _TrackerGlobalData._trackerFlag = _TrackerGlobalData._trackerFlag || {};\n _TrackerGlobalData._trackerFlag[key] = value;\n }\n function getFlag(key) {\n _TrackerGlobalData._trackerFlag = _TrackerGlobalData._trackerFlag || {};\n return _TrackerGlobalData._trackerFlag[key] || false;\n }\n function getUUID() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n function getDomPath(dom) {\n var path = [];\n if (dom.id && typeof dom.id === 'string') {\n path.push('#' + dom.id);\n }\n else if (dom.className && typeof dom.className === 'string') {\n path.push(dom.tagName.toLowerCase() + '.' + dom.className.split(' ')[0]);\n }\n else {\n path.push(dom.tagName.toLowerCase());\n }\n while (dom.parentNode &&\n dom.parentNode.tagName &&\n dom.parentNode.tagName !== 'BODY' &&\n !dom.id) {\n dom = dom.parentNode;\n if (dom.id && typeof dom.id === 'string') {\n path.unshift('#' + dom.id);\n }\n else if (dom.className && typeof dom.className === 'string') {\n path.unshift(dom.tagName.toLowerCase() + '.' + dom.className.split(' ')[0]);\n }\n else {\n path.unshift(dom.tagName.toLowerCase());\n }\n }\n return path.join('>');\n }\n function getLocationHref() {\n if (typeof document === 'undefined' || document.location == null)\n return '';\n return document.location.href;\n }\n function isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n }\n function hashCode(str) {\n var hash = 0;\n if (str.length === 0) {\n return '';\n }\n for (var i = 0; i < str.length; i++) {\n var char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return String(hash).replace('-', '0');\n }\n function getRealPath(url, offlineUrl) {\n if (/file:/.test(url) && offlineUrl) {\n url = offlineUrl + url.replace(/^.*(#.*)$/, '$1');\n }\n return url\n .replace('https', 'http')\n .replace(/\\?.*$/, '')\n .replace(/\\/\\d+([\\/]*$)/, '{param}$1')\n .replace(/index\\.html/, '');\n }\n var inMin = /miniprogram/i.test(window.navigator.userAgent);\n var inWechat = !inMin && /micromessenger/i.test(window.navigator.userAgent);\n var config$1 = getConfig();\n var clientInfo = {\n clientWidth: window.screen.height,\n clientHeight: window.screen.width,\n radio: window.devicePixelRatio || 1,\n domain: document.domain || '',\n appId: 'H5',\n appVersion: null,\n appType: 'H5',\n marketId: null,\n sessionId: getUUID(),\n channel: null,\n deviceId: getCookie(config$1.deviceIdKey)\n };\n var setClientInfo = function (info) {\n var urlInfoStr = getQueryVariable('telescope-info');\n var urlInfo = {};\n if (urlInfoStr) {\n try {\n urlInfo = JSON.parse(decodeURIComponent(urlInfoStr));\n }\n catch (error) { }\n }\n var cookieInfoStr = getCookie('TELESCOPE_CACHE_INFO');\n var cookieInfo = {};\n if (cookieInfoStr) {\n try {\n cookieInfo = JSON.parse(cookieInfoStr);\n }\n catch (error) { }\n }\n if (cookieInfo.expired && cookieInfo.expired < Date.now()) {\n cookieInfo.channel = null;\n cookieInfo.sessionId = getUUID();\n }\n delete cookieInfo.expired;\n var channel = getQueryVariable('channel') || urlInfo.channel || cookieInfo.channel;\n clientInfo = __assign(__assign(__assign(__assign(__assign({}, clientInfo), cookieInfo), urlInfo), { channel: channel }), info);\n if (/_mini_/.test(clientInfo.appId)) {\n clientInfo.appType = 'MINI';\n }\n if (clientInfo.deviceId) {\n var config_1 = getConfig();\n setCookie(config_1.deviceIdKey, clientInfo.deviceId);\n }\n setCookie('TELESCOPE_CACHE_INFO', JSON.stringify({\n appId: clientInfo.appId,\n appVersion: clientInfo.appVersion,\n marketId: clientInfo.marketId,\n channel: clientInfo.channel,\n sessionId: clientInfo.sessionId,\n expired: Date.now() + 30 * 60 * 1000\n }));\n };\n if (inMin) {\n setClientInfo({\n appType: 'MINI'\n });\n }\n else if (inWechat) {\n setClientInfo({\n appId: 'wechat',\n appType: 'WECHAT'\n });\n }\n var getClientInfo = function () {\n setClientInfo({});\n return __assign({}, clientInfo);\n };\n var userInfo = {\n uid: null,\n isLogin: false\n };\n function setUserInfo(info) {\n userInfo = __assign(__assign({}, userInfo), info);\n }\n function getUserInfo() {\n return userInfo;\n }\n function login(info) {\n var newUserInfo = __assign(__assign({}, info), { isLogin: true });\n setUserInfo(newUserInfo);\n }\n function logout() {\n setUserInfo({ uid: null, isLogin: false });\n }\n var getDefaultReferrerId = function () {\n var referrerId = getQueryVariable('referrer_id');\n if (referrerId) {\n return referrerId;\n }\n else {\n try {\n var referrerData = JSON.parse(localStorage.getItem('referrer_id'));\n if (referrerData.date + 5000 > Date.now()) {\n return referrerData.id;\n }\n }\n catch (e) {\n return null;\n }\n localStorage.removeItem('referrer_id');\n }\n };\n var getDefaultSourceEventId = function () {\n var sourceEventId = getQueryVariable('source_event_id');\n if (sourceEventId) {\n return sourceEventId;\n }\n else {\n try {\n var sourceEventData = JSON.parse(localStorage.getItem('source_event_id'));\n if (sourceEventData.date + 5000 > Date.now() && sourceEventData.pageId !== pageInfo.pageId) {\n return sourceEventData.id;\n }\n }\n catch (e) {\n return null;\n }\n }\n return null;\n };\n var pageInfo = {\n pageId: null,\n referrerId: getDefaultReferrerId(),\n sourceEventId: null,\n referrerUrl: document.referrer || '',\n url: location.href,\n host: location.host,\n path: location.pathname,\n hash: location.hash,\n title: document.title || ''\n };\n var setPageInfo = function (info) {\n pageInfo = __assign(__assign(__assign({}, pageInfo), { url: location.href, host: location.host, path: location.pathname, hash: location.hash, title: document.title || '' }), info);\n };\n var getPageInfo = function () {\n return __assign(__assign({}, pageInfo), { sourceEventId: getDefaultSourceEventId() });\n };\n function http(data, isAjax, isSendBeacon, cb) {\n if (isAjax === void 0) { isAjax = false; }\n if (isSendBeacon === void 0) { isSendBeacon = true; }\n if (cb === void 0) { cb = function () { }; }\n var dataStr = data;\n var config = getConfig();\n var url = (isAjax ? config.debugServerUrl : config.serverUrl) + \"?\" + (config.trackKey ? \"trackKey=\" + config.trackKey + \"&\" : '') + \"time=\" + Date.now();\n if (window.location.protocol === 'https:' &&\n isSendBeacon &&\n typeof window.navigator.sendBeacon === 'function' &&\n typeof Blob === 'function') {\n var headers = {\n type: 'text/plain; charset=UTF-8'\n };\n var blob = new Blob([dataStr], headers);\n var success = window.navigator.sendBeacon(url, blob);\n if (success) {\n cb();\n return;\n }\n }\n if (isAjax || dataStr.length > 2000) {\n var xhr = new XMLHttpRequest();\n xhr.withCredentials = true;\n xhr.addEventListener('readystatechange', function () {\n if (this.readyState === 4) {\n cb();\n }\n });\n xhr.open('POST', url, true);\n xhr.setRequestHeader('Content-Type', 'text/plain;charset=UTF-8');\n xhr.withCredentials = true;\n xhr.send(dataStr);\n }\n else {\n var img = new Image();\n img.onload = function () {\n cb();\n };\n img.src = url + \"&data=\" + encodeURIComponent(dataStr);\n }\n }\n var libInfo = {\n libVersion: '2.0.10',\n libType: 'js'\n };\n function getNetInfo () {\n var connection = window.navigator.connection ||\n window.navigator.mozConnection ||\n window.navigator.webkitConnection ||\n {};\n if (!connection) {\n return {};\n }\n var type = connection.type || connection.effectiveType;\n if (!type) {\n return {};\n }\n return {\n netType: type\n };\n }\n var DurationTime = (function () {\n function DurationTime() {\n this.startTime = Date.now();\n this.endTime = Date.now();\n this.config = null;\n this.timeMap = {};\n }\n DurationTime.getInstance = function () {\n if (!DurationTime.instance) {\n DurationTime.instance = new DurationTime();\n }\n return DurationTime.instance;\n };\n DurationTime.prototype.start = function (info) {\n if (!info.trackId || this.timeMap[info.trackId]) {\n return;\n }\n this.timeMap[info.trackId] = __assign({ startTime: Date.now() }, info);\n };\n DurationTime.prototype.end = function (trackId) {\n var logs = [];\n if (trackId) {\n if (this.timeMap[trackId]) {\n logs.push(this.generateLog(this.timeMap[trackId]));\n }\n return logs;\n }\n for (var trackId_1 in this.timeMap) {\n if (!this.timeMap[trackId_1]) {\n continue;\n }\n logs.push(this.generateLog(this.timeMap[trackId_1]));\n this.timeMap[trackId_1] = null;\n }\n return logs;\n };\n DurationTime.prototype.generateLog = function (info) {\n var log = __assign(__assign({}, info), { actionType: info.actionType === ACTION_TYPE.PAGE ? ACTION_TYPE.DURATION : ACTION_TYPE.VIEW_DURATION, durationTime: Date.now() - info.startTime, trackTime: Date.now(), masterId: info.id, trackId: '', pageId: info.actionType === ACTION_TYPE.PAGE ? info.trackId : info.pageId, id: getUUID() });\n localStorage.setItem('referrer_id', JSON.stringify({\n date: Date.now(),\n id: log.pageId\n }));\n return log;\n };\n DurationTime.instance = null;\n return DurationTime;\n }());\n var instance = DurationTime.getInstance();\n var pick =\n _curry2_1(function pick(names, obj) {\n var result = {};\n var idx = 0;\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n idx += 1;\n }\n return result;\n });\n var pick_1 = pick;\n var businessExtension = {\n seKeywords: getQueryVariable('seKeywords'),\n bizId: getQueryVariable('bizId')\n };\n var getBusinessExtension = function () {\n return __assign({}, businessExtension);\n };\n var setBuinessExtension = function (extension) {\n businessExtension = __assign(__assign({}, businessExtension), extension);\n };\n var allData = [];\n var allDebugData = [];\n var timer = null;\n var uuid = getUUID();\n var index = 0;\n function send(data) {\n var config = getConfig();\n var sendType = config.sendType;\n if (sendType === SEND_TYPE.SYNC) {\n sendSync(data);\n }\n else if (sendType === SEND_TYPE.ASYNC) {\n sendAsync(data);\n }\n }\n function sendSync(data) {\n if (data) {\n var config = getConfig();\n var _a = _generateData(data, config), newData = _a[0], debug = _a[1];\n if (!newData) {\n return;\n }\n if (debug) {\n allDebugData.push(newData);\n }\n else {\n allData.push(newData);\n }\n }\n clearTimeout(timer);\n _sendToServer(allData);\n _sendToServer(allDebugData, true);\n allData.length = 0;\n allDebugData.length = 0;\n }\n function sendAsync(data) {\n var config = getConfig();\n if (data) {\n var _a = _generateData(data, config), newData = _a[0], debug = _a[1];\n if (!newData) {\n return;\n }\n if (debug) {\n allDebugData.push(newData);\n }\n else {\n allData.push(newData);\n }\n }\n clearTimeout(timer);\n if ((!data && allData.length > 0) || allData.length >= 10 || allDebugData.length >= 10) {\n _sendToServer(allData);\n _sendToServer(allDebugData, true);\n allData.length = 0;\n allDebugData.length = 0;\n return;\n }\n timer = setTimeout(function () {\n _sendToServer(allData);\n _sendToServer(allDebugData, true);\n allData.length = 0;\n allDebugData.length = 0;\n }, config.delayTime);\n }\n function _sendToServer(data, isAjax) {\n if (!data.length) {\n return;\n }\n return http(JSON.stringify(_wrapperData(data)), isAjax);\n }\n function _wrapperData(data) {\n var config = getConfig();\n index++;\n var wrapperData = __assign(__assign(__assign(__assign({ customTime: Date.now(), items: data }, getClientInfo()), libInfo), getUserInfo()), { version: config.version });\n return wrapperData;\n }\n function _generateData(data, config) {\n index++;\n if (typeof config.beforeGenerateLog === 'function') {\n data = config.beforeGenerateLog(data);\n if (!data) {\n return [null, !!data.debug];\n }\n }\n if (isObject(data.custom)) {\n data.custom = JSON.stringify(data.custom);\n }\n if (typeof data.custom === 'string' && data.custom.length > 500) {\n data.custom = data.custom.substr(0, 500) + '[超出500部分被裁剪]';\n }\n var newData = pick_1(SAFETY_KEY, data);\n var pageInfo = getPageInfo();\n var netInfo = getNetInfo();\n setBuinessExtension({\n seKeywords: getQueryVariable('seKeywords'),\n bizId: getQueryVariable('bizId')\n });\n var businessInfo = getBusinessExtension();\n if (data.actionType === ACTION_TYPE.PAGE) {\n setPageInfo({\n pageId: data.trackId || '',\n referrerId: pageInfo.pageId || pageInfo.referrerId || '',\n referrerUrl: pageInfo.url || ''\n });\n pageInfo = getPageInfo();\n pageInfo.pageId = null;\n }\n if (data.actionType === ACTION_TYPE.EVENT) {\n var sourceEventInfo = {\n date: Date.now(),\n id: data.trackId,\n pageId: pageInfo.pageId,\n isAutoTrack: data.isAutoTrack\n };\n if (data.isAutoTrack) {\n try {\n var preSourceEventInfo = JSON.parse(localStorage.getItem('source_event_id'));\n if (preSourceEventInfo && !preSourceEventInfo.isAutoTrack && preSourceEventInfo.date > Date.now() - 300) {\n sourceEventInfo = null;\n }\n }\n catch (error) { }\n }\n if (sourceEventInfo) {\n localStorage.setItem('source_event_id', JSON.stringify(sourceEventInfo));\n }\n }\n var result = __assign(__assign(__assign(__assign(__assign({}, newData), pageInfo), netInfo), businessInfo), { trackTime: Date.now(), id: uuid + '-' + index });\n if (result.actionType === ACTION_TYPE.PAGE && !data.debug) {\n var durationLogs = instance.end();\n if (durationLogs && durationLogs.length) {\n _sendToServer(durationLogs);\n }\n instance.start(result);\n localStorage.removeItem('source_event_id');\n }\n else {\n result.sourceEventId = null;\n }\n if (result.actionType === ACTION_TYPE.VIEW && !data.debug) {\n instance.start(result);\n }\n return [result, !!data.debug];\n }\n var commonjsGlobal$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : typeof self !== 'undefined' ? self : {};\n function createCommonjsModule(fn, module) {\n \treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n }\n var vissense = createCommonjsModule(function (module, exports) {\n !function(root, name, factory) {\n var withWindow = function(win) {\n var product = factory(win, win.document);\n return product.noConflict = function() {\n return product;\n }, product;\n };\n module.exports = function(win) {\n return withWindow(win);\n };\n }(commonjsGlobal$1, \"VisSense\", function(window, document, undefined$1) {\n function async(callback, delay) {\n return function() {\n var args = arguments;\n return defer(function() {\n callback.apply(undefined$1, args);\n }, delay || 0);\n };\n }\n function debounce(callback, delay) {\n var cancel = noop;\n return function() {\n var self = this, args = arguments;\n cancel(), cancel = defer(function() {\n callback.apply(self, args);\n }, delay);\n };\n }\n function defaults(dest, source) {\n var sourceIsObject = isObject(source), destIsObject = isObject(dest);\n return sourceIsObject || destIsObject ? sourceIsObject && destIsObject ? (forEach(Object.keys(source), function(property) {\n dest[property] === undefined$1 && (dest[property] = source[property]);\n }), dest) : sourceIsObject ? source : dest : source;\n }\n function defer(callback, delay) {\n var timer = setTimeout(function() {\n callback();\n }, delay || 0);\n return function() {\n clearTimeout(timer);\n };\n }\n function fireIf(when, callback) {\n return function() {\n return (isFunction(when) ? when() : when) ? callback() : undefined$1;\n };\n }\n function extend(dest, source, callback) {\n for (var index = -1, props = Object.keys(source), length = props.length, ask = isFunction(callback); ++index < length; ) {\n var key = props[index];\n dest[key] = ask ? callback(dest[key], source[key], key, dest, source) : source[key];\n }\n return dest;\n }\n function forEach(array, callback, thisArg) {\n for (var i = 0, n = array.length; n > i; i++) {\n var result = callback.call(thisArg, array[i], i, array);\n if (result !== undefined$1) return result;\n }\n }\n function identity(value) {\n return value;\n }\n function isDefined(value) {\n return value !== undefined$1;\n }\n function isArray(value) {\n return value && \"object\" == typeof value && \"number\" == typeof value.length && \"[object Array]\" === Object.prototype.toString.call(value) || !1;\n }\n function isElement(value) {\n return value && 1 === value.nodeType || !1;\n }\n function isFunction(value) {\n return \"function\" == typeof value || !1;\n }\n function isObject(value) {\n var type = typeof value;\n return \"function\" === type || value && \"object\" === type || !1;\n }\n function noop() {}\n function now() {\n return new Date().getTime();\n }\n function once(callback) {\n var cache, called = !1;\n return function() {\n return called || (cache = callback.apply(undefined$1, arguments), called = !0), cache;\n };\n }\n function throttle(callback, wait, thisArg) {\n var cancel = noop, last = !1;\n return function() {\n var time = now(), args = arguments, func = function() {\n last = time, callback.apply(thisArg, args);\n };\n last && last + wait > time ? (cancel(), cancel = defer(func, wait)) : (last = time,\n defer(func, 0));\n };\n }\n function viewport(referenceWindow) {\n var win = referenceWindow || window;\n return {\n height: win.innerHeight,\n width: win.innerWidth\n };\n }\n function computedStyle(element, referenceWindow) {\n return (referenceWindow || window).getComputedStyle(element, null);\n }\n function styleProperty(style, property) {\n return style.getPropertyValue(property);\n }\n function isDisplayed(element, style) {\n style || (style = computedStyle(element));\n var display = styleProperty(style, \"display\");\n if (\"none\" === display) return !1;\n var parent = element.parentNode;\n return isElement(parent) ? isDisplayed(parent) : !0;\n }\n function isVisibleByStyling(element, referenceWindow) {\n if (element === (referenceWindow || window).document) return !0;\n if (!element || !element.parentNode) return !1;\n var style = computedStyle(element, referenceWindow), visibility = styleProperty(style, \"visibility\");\n return \"hidden\" === visibility || \"collapse\" === visibility ? !1 : isDisplayed(element, style);\n }\n function isInViewport(rect, viewport) {\n return !rect || rect.width <= 0 || rect.height <= 0 ? !1 : rect.bottom > 0 && rect.right > 0 && rect.top < viewport.height && rect.left < viewport.width;\n }\n function percentage(element, referenceWindow) {\n var rect = element.getBoundingClientRect(), view = viewport(referenceWindow);\n if (!isInViewport(rect, view) || !isVisibleByStyling(element)) return 0;\n var vh = 0, vw = 0;\n return rect.top >= 0 ? vh = Math.min(rect.height, view.height - rect.top) : rect.bottom > 0 && (vh = Math.min(view.height, rect.bottom)),\n rect.left >= 0 ? vw = Math.min(rect.width, view.width - rect.left) : rect.right > 0 && (vw = Math.min(view.width, rect.right)),\n vh * vw / (rect.height * rect.width);\n }\n function isPageVisible(referenceWindow) {\n return !createVisibilityApi(referenceWindow || window).isHidden();\n }\n function VisSense(element, config) {\n if (!(this instanceof VisSense)) return new VisSense(element, config);\n if (!isElement(element)) throw new Error(\"not an element node\");\n this._element = element, this._config = defaults(config, {\n fullyvisible: 1,\n hidden: 0,\n referenceWindow: window,\n percentageHook: percentage,\n precision: 3,\n visibilityHooks: []\n });\n var roundFactor = this._config.precision <= 0 ? 1 : Math.pow(10, this._config.precision || 3);\n this._round = function(val) {\n return Math.round(val * roundFactor) / roundFactor;\n };\n var visibilityApi = createVisibilityApi(this._config.referenceWindow);\n this._config.visibilityHooks.push(function() {\n return !visibilityApi.isHidden();\n });\n }\n function nextState(visobj, currentState) {\n var newState = visobj.state(), percentage = newState.percentage;\n return currentState && percentage === currentState.percentage && currentState.percentage === currentState.previous.percentage ? currentState : newState.hidden ? VisSense.VisState.hidden(percentage, currentState) : newState.fullyvisible ? VisSense.VisState.fullyvisible(percentage, currentState) : VisSense.VisState.visible(percentage, currentState);\n }\n function VisMon(visobj, config) {\n var _config = defaults(config, {\n strategy: [ new VisMon.Strategy.PollingStrategy(), new VisMon.Strategy.EventStrategy() ],\n async: !1\n });\n this._visobj = visobj, this._state = {}, this._started = !1;\n var anyTopicName = \"*#\" + now();\n this._pubsub = new PubSub({\n async: _config.async,\n anyTopicName: anyTopicName\n }), this._events = [ anyTopicName, \"start\", \"stop\", \"update\", \"hidden\", \"visible\", \"fullyvisible\", \"percentagechange\", \"visibilitychange\" ],\n this._strategy = new VisMon.Strategy.CompositeStrategy(_config.strategy), this._strategy.init(this),\n this._pubsub.on(\"update\", function(monitor) {\n var newValue = monitor._state.percentage, oldValue = monitor._state.previous.percentage;\n newValue !== oldValue && monitor._pubsub.publish(\"percentagechange\", [ monitor, newValue, oldValue ]);\n }), this._pubsub.on(\"update\", function(monitor) {\n monitor._state.code !== monitor._state.previous.code && monitor._pubsub.publish(\"visibilitychange\", [ monitor ]);\n }), this._pubsub.on(\"visibilitychange\", function(monitor) {\n monitor._state.visible && !monitor._state.previous.visible && monitor._pubsub.publish(\"visible\", [ monitor ]);\n }), this._pubsub.on(\"visibilitychange\", function(monitor) {\n monitor._state.fullyvisible && monitor._pubsub.publish(\"fullyvisible\", [ monitor ]);\n }), this._pubsub.on(\"visibilitychange\", function(monitor) {\n monitor._state.hidden && monitor._pubsub.publish(\"hidden\", [ monitor ]);\n }), forEach(this._events, function(event) {\n isFunction(_config[event]) && this.on(event, _config[event]);\n }, this);\n }\n var createVisibilityApi = function(referenceWindow) {\n return function(document, undefined$1) {\n var entry = function(propertyName, eventName) {\n return {\n property: propertyName,\n event: eventName\n };\n }, event = \"visibilitychange\", dict = [ entry(\"webkitHidden\", \"webkit\" + event), entry(\"msHidden\", \"ms\" + event), entry(\"mozHidden\", \"moz\" + event), entry(\"hidden\", event) ], api = forEach(dict, function(entry) {\n return document[entry.property] !== undefined$1 ? {\n isHidden: function() {\n return !!document[entry.property] || !1;\n },\n onVisibilityChange: function(callback) {\n return document.addEventListener(entry.event, callback, !1), function() {\n document.removeEventListener(entry.event, callback, !1);\n };\n }\n } : void 0;\n });\n return api || {\n isHidden: function() {\n return !1;\n },\n onVisibilityChange: function() {\n return noop;\n }\n };\n }((referenceWindow || window).document);\n }, PubSub = function(undefined$1) {\n function PubSub(config) {\n this._cache = {}, this._onAnyCache = [], this._config = defaults(config, {\n async: !1,\n anyTopicName: \"*\"\n });\n }\n var syncFireListeners = function(consumers, args) {\n forEach(consumers, function(consumer) {\n consumer(args);\n });\n };\n return PubSub.prototype.on = function(topic, callback) {\n if (!isFunction(callback)) return noop;\n var applyCallback = function(args) {\n return callback.apply(undefined$1, args || []);\n }, listener = this._config.async ? async(applyCallback) : applyCallback, unregister = function(listener, array, topic) {\n return function() {\n var index = array.indexOf(listener);\n return index > -1 ? (array.splice(index, 1), !0) : !1;\n };\n };\n return topic === this._config.anyTopicName ? (this._onAnyCache.push(listener), unregister(listener, this._onAnyCache)) : (this._cache[topic] || (this._cache[topic] = []),\n this._cache[topic].push(listener), unregister(listener, this._cache[topic]));\n }, PubSub.prototype.publish = function(topic, args) {\n var listeners = (this._cache[topic] || []).concat(topic === this._config.anyTopicName ? [] : this._onAnyCache), enableAsync = !!this._config.async, syncOrAsyncPublish = enableAsync ? async(syncFireListeners) : function(listeners, args) {\n return syncFireListeners(listeners, args), noop;\n };\n return syncOrAsyncPublish(listeners, args || []);\n }, PubSub;\n }();\n VisSense.prototype.state = function() {\n var hiddenByHook = forEach(this._config.visibilityHooks, function(hook) {\n return hook(this._element) ? void 0 : VisSense.VisState.hidden(0);\n }, this);\n return hiddenByHook || function(visobj, element, config) {\n var perc = visobj._round(config.percentageHook(element, config.referenceWindow));\n return perc <= config.hidden ? VisSense.VisState.hidden(perc) : perc >= config.fullyvisible ? VisSense.VisState.fullyvisible(perc) : VisSense.VisState.visible(perc);\n }(this, this._element, this._config);\n }, VisSense.prototype.percentage = function() {\n return this.state().percentage;\n }, VisSense.prototype.element = function() {\n return this._element;\n }, VisSense.prototype.referenceWindow = function() {\n return this._config.referenceWindow;\n }, VisSense.prototype.isFullyVisible = function() {\n return this.state().fullyvisible;\n }, VisSense.prototype.isVisible = function() {\n return this.state().visible;\n }, VisSense.prototype.isHidden = function() {\n return this.state().hidden;\n }, VisSense.fn = VisSense.prototype, VisSense.of = function(element, config) {\n return new VisSense(element, config);\n };\n var STATES = {\n HIDDEN: [ 0, \"hidden\" ],\n VISIBLE: [ 1, \"visible\" ],\n FULLY_VISIBLE: [ 2, \"fullyvisible\" ]\n };\n return VisSense.VisState = function() {\n function newVisState(state, percentage, previous) {\n return previous && delete previous.previous, {\n code: state[0],\n state: state[1],\n percentage: percentage,\n previous: previous || {},\n fullyvisible: state[0] === STATES.FULLY_VISIBLE[0],\n visible: state[0] === STATES.VISIBLE[0] || state[0] === STATES.FULLY_VISIBLE[0],\n hidden: state[0] === STATES.HIDDEN[0]\n };\n }\n return {\n hidden: function(percentage, previous) {\n return newVisState(STATES.HIDDEN, percentage, previous);\n },\n visible: function(percentage, previous) {\n return newVisState(STATES.VISIBLE, percentage, previous);\n },\n fullyvisible: function(percentage, previous) {\n return newVisState(STATES.FULLY_VISIBLE, percentage, previous);\n }\n };\n }(), VisMon.prototype.visobj = function() {\n return this._visobj;\n }, VisMon.prototype.publish = function(eventName, args) {\n var isInternalEvent = this._events.indexOf(eventName) >= 0;\n if (isInternalEvent) throw new Error('Cannot publish internal event \"' + eventName + '\" from external scope.');\n return this._pubsub.publish(eventName, args);\n }, VisMon.prototype.state = function() {\n return this._state;\n }, VisMon.prototype.start = function(config) {\n if (this._started) return this;\n var _config = defaults(config, {\n async: !1\n });\n return this._cancelAsyncStart && this._cancelAsyncStart(), _config.async ? this.startAsync() : (this._started = !0,\n this.update(), this._pubsub.publish(\"start\", [ this ]), this._strategy.start(this),\n this);\n }, VisMon.prototype.startAsync = function(config) {\n this._cancelAsyncStart && this._cancelAsyncStart();\n var me = this, cancelAsyncStart = defer(function() {\n me.start(extend(defaults(config, {}), {\n async: !1\n }));\n });\n return this._cancelAsyncStart = function() {\n cancelAsyncStart(), me._cancelAsyncStart = null;\n }, this;\n }, VisMon.prototype.stop = function() {\n this._cancelAsyncStart && this._cancelAsyncStart(), this._started && (this._strategy.stop(this),\n this._pubsub.publish(\"stop\", [ this ])), this._started = !1;\n }, VisMon.prototype.update = function() {\n this._started && (this._state = nextState(this._visobj, this._state), this._pubsub.publish(\"update\", [ this ]));\n }, VisMon.prototype.on = function(topic, callback) {\n return this._pubsub.on(topic, callback);\n }, VisMon.Builder = function() {\n var combineStrategies = function(config, strategies) {\n var combinedStrategies = null, forceDisableStrategies = config.strategy === !1, enableStrategies = !forceDisableStrategies && (config.strategy || strategies.length > 0);\n if (enableStrategies) {\n var configStrategyIsDefined = !!config.strategy, configStrategyIsArray = isArray(config.strategy), configStrategyAsArray = configStrategyIsDefined ? configStrategyIsArray ? config.strategy : [ config.strategy ] : [];\n combinedStrategies = configStrategyAsArray.concat(strategies);\n } else combinedStrategies = forceDisableStrategies ? [] : config.strategy;\n return combinedStrategies;\n };\n return function(visobj) {\n var config = {}, strategies = [], events = [], productBuilt = !1, product = null;\n return {\n set: function(name, value) {\n return config[name] = value, this;\n },\n strategy: function(strategy) {\n return strategies.push(strategy), this;\n },\n on: function(event, handler) {\n return events.push([ event, handler ]), this;\n },\n build: function(consumer) {\n var manufacture = function() {\n var combinedStrategies = combineStrategies(config, strategies);\n config.strategy = combinedStrategies;\n var monitor = visobj.monitor(config);\n return forEach(events, function(event) {\n monitor.on(event[0], event[1]);\n }), productBuilt = !0, product = monitor;\n }, monitor = productBuilt ? product : manufacture();\n return isFunction(consumer) ? consumer(monitor) : monitor;\n }\n };\n };\n }(), VisMon.Strategy = function() {}, VisMon.Strategy.prototype.init = noop, VisMon.Strategy.prototype.start = noop,\n VisMon.Strategy.prototype.stop = noop, VisMon.Strategy.CompositeStrategy = function(strategies) {\n this._strategies = isArray(strategies) ? strategies : [ strategies ];\n }, VisMon.Strategy.CompositeStrategy.prototype = Object.create(VisMon.Strategy.prototype),\n VisMon.Strategy.CompositeStrategy.prototype.init = function(monitor) {\n forEach(this._strategies, function(strategy) {\n isFunction(strategy.init) && strategy.init(monitor);\n });\n }, VisMon.Strategy.CompositeStrategy.prototype.start = function(monitor) {\n forEach(this._strategies, function(strategy) {\n isFunction(strategy.start) && strategy.start(monitor);\n });\n }, VisMon.Strategy.CompositeStrategy.prototype.stop = function(monitor) {\n forEach(this._strategies, function(strategy) {\n isFunction(strategy.stop) && strategy.stop(monitor);\n });\n }, VisMon.Strategy.PollingStrategy = function(config) {\n this._config = defaults(config, {\n interval: 1e3\n }), this._started = !1;\n }, VisMon.Strategy.PollingStrategy.prototype = Object.create(VisMon.Strategy.prototype),\n VisMon.Strategy.PollingStrategy.prototype.start = function(monitor) {\n return this._started || (this._clearInterval = function(interval) {\n var intervalId = setInterval(function() {\n monitor.update();\n }, interval);\n return function() {\n clearInterval(intervalId);\n };\n }(this._config.interval), this._started = !0), this._started;\n }, VisMon.Strategy.PollingStrategy.prototype.stop = function() {\n return this._started ? (this._clearInterval(), this._started = !1, !0) : !1;\n }, VisMon.Strategy.EventStrategy = function(config) {\n this._config = defaults(config, {\n throttle: 50\n }), this._config.debounce > 0 && (this._config.throttle = +this._config.debounce),\n this._started = !1;\n }, VisMon.Strategy.EventStrategy.prototype = Object.create(VisMon.Strategy.prototype),\n VisMon.Strategy.EventStrategy.prototype.start = function(monitor) {\n return this._started || (this._removeEventListeners = function(update) {\n var referenceWindow = monitor.visobj().referenceWindow(), visibilityApi = createVisibilityApi(referenceWindow), removeOnVisibilityChangeEvent = visibilityApi.onVisibilityChange(update);\n return referenceWindow.addEventListener(\"scroll\", update, !1), referenceWindow.addEventListener(\"resize\", update, !1),\n referenceWindow.addEventListener(\"touchmove\", update, !1), function() {\n referenceWindow.removeEventListener(\"touchmove\", update, !1), referenceWindow.removeEventListener(\"resize\", update, !1),\n referenceWindow.removeEventListener(\"scroll\", update, !1), removeOnVisibilityChangeEvent();\n };\n }(throttle(function() {\n monitor.update();\n }, this._config.throttle)), this._started = !0), this._started;\n }, VisMon.Strategy.EventStrategy.prototype.stop = function() {\n return this._started ? (this._removeEventListeners(), this._started = !1, !0) : !1;\n }, VisSense.VisMon = VisMon, VisSense.PubSub = PubSub, VisSense.fn.monitor = function(config) {\n return new VisMon(this, config);\n }, VisSense.Utils = {\n async: async,\n debounce: debounce,\n defaults: defaults,\n defer: defer,\n extend: extend,\n forEach: forEach,\n fireIf: fireIf,\n identity: identity,\n isArray: isArray,\n isDefined: isDefined,\n isElement: isElement,\n isFunction: isFunction,\n isObject: isObject,\n isPageVisible: isPageVisible,\n isVisibleByStyling: isVisibleByStyling,\n noop: noop,\n now: now,\n once: once,\n throttle: throttle,\n percentage: percentage,\n VisibilityApi: createVisibilityApi(),\n createVisibilityApi: createVisibilityApi,\n _viewport: viewport,\n _isInViewport: isInViewport,\n _isDisplayed: isDisplayed,\n _computedStyle: computedStyle,\n _styleProperty: styleProperty\n }, VisSense;\n });\n });\n var VisSense = vissense(window);\n var VisSenseUtils = VisSense.Utils;\n var createInnerMonitor = function (outerMonitor, callback, config) {\n var timeElapsed = 0;\n var timeStarted = null;\n var timeLimit = config.timeLimit;\n var percentageLimit = config.percentageLimit;\n var interval = config.interval;\n return VisSense.VisMon.Builder(outerMonitor.visobj())\n .strategy(new VisSense.VisMon.Strategy.PollingStrategy({ interval: interval }))\n .on('update', function (monitor) {\n var percentage = monitor.state().percentage;\n if (percentage < percentageLimit) {\n timeStarted = null;\n }\n else {\n var now = VisSenseUtils.now();\n timeStarted = timeStarted || now;\n timeElapsed = now - timeStarted;\n }\n if (timeElapsed >= timeLimit) {\n monitor.stop();\n outerMonitor.stop();\n callback(monitor);\n }\n })\n .on('stop', function () {\n timeStarted = null;\n })\n .build();\n };\n var onPercentageTimeTestPassed = function (visobj, callback, config) {\n var _config = VisSenseUtils.defaults(config, {\n percentageLimit: 1,\n timeLimit: 1000,\n interval: 100,\n strategy: undefined\n });\n var hiddenLimit = Math.max(_config.percentageLimit - 0.001, 0);\n var innerMonitor = null;\n var outerMonitor = VisSense.VisMon.Builder(new VisSense(visobj.element(), {\n hidden: hiddenLimit,\n referenceWindow: visobj.referenceWindow()\n }))\n .set('strategy', _config.strategy)\n .on('visible', function (monitor) {\n if (innerMonitor === null) {\n innerMonitor = createInnerMonitor(monitor, callback, _config);\n }\n innerMonitor.start();\n })\n .on('hidden', function () {\n if (innerMonitor !== null) {\n innerMonitor.stop();\n }\n })\n .on('stop', function () {\n if (innerMonitor !== null) {\n innerMonitor.stop();\n }\n })\n .build();\n outerMonitor.start();\n return function () {\n outerMonitor.stop();\n innerMonitor = null;\n };\n };\n VisSense.fn.onPercentageTimeTestPassed = function (callback, config) {\n onPercentageTimeTestPassed(this, callback, config);\n };\n var ActionTracker = (function () {\n function ActionTracker() {\n this.record = {\n pageId: '',\n pageTrackTime: null,\n eventId: '',\n eventTrackTime: null\n };\n this.trackEvent = this.trackEvent.bind(this);\n this.trackPage = this.trackPage.bind(this);\n this.trackViewStart = this.trackViewStart.bind(this);\n this.trackView = this.trackView.bind(this);\n this.trackViewEnd = this.trackViewEnd.bind(this);\n this.trackLog = this.trackLog.bind(this);\n }\n ActionTracker.getInstance = function () {\n if (!ActionTracker.instance) {\n ActionTracker.instance = new ActionTracker();\n }\n return ActionTracker.instance;\n };\n ActionTracker.prototype.trackPage = function (info) {\n var _this = this;\n if (info === void 0) { info = {}; }\n setTimeout(function () {\n var _a = getConfig(), offlineUrl = _a.offlineUrl, autoTrackPrefix = _a.autoTrackPrefix;\n var data = __assign({ actionType: ACTION_TYPE.PAGE }, info);\n if (!data.trackId) {\n data.trackId = autoTrackPrefix + \"page-\" + hashCode(getRealPath(window.location.href, offlineUrl));\n data.isAutoTrack = true;\n }\n else {\n _this.record.pageTrackTime = Date.now();\n _this.record.pageId = data.trackId;\n data.autoTrackId = autoTrackPrefix + \"page-\" + hashCode(getRealPath(window.location.href, offlineUrl));\n }\n send(data);\n }, 0);\n };\n ActionTracker.prototype.trackEvent = function (info) {\n if (info === void 0) { info = {}; }\n this._trackEvent(info);\n };\n ActionTracker.prototype._trackEvent = function (info, domInfo) {\n if (info === void 0) { info = {}; }\n var _a = getConfig(), offlineUrl = _a.offlineUrl, autoTrackPrefix = _a.autoTrackPrefix;\n var data = __assign({ actionType: ACTION_TYPE.EVENT, eventName: 'CLICK' }, info);\n if (!data.trackId && !data.debug && domInfo) {\n var code = domInfo.domId ? hashCode(domInfo.domId) : hashCode(domInfo.domPath + domInfo.domTag);\n data.trackId = autoTrackPrefix + \"event-\" + hashCode(getRealPath(window.location.href, offlineUrl)) + \"-\" + code;\n data.isAutoTrack = true;\n }\n send(data);\n };\n ActionTracker.prototype.trackView = function (dom, info, visSenseConfig) {\n if (visSenseConfig === void 0) { visSenseConfig = {}; }\n if (dom) {\n var data_1 = __assign({ actionType: ACTION_TYPE.VIEW, domId: dom.id, domClass: dom.className, domTag: dom.tagName, domContent: dom.textContent.substr(0, 20), domPath: getDomPath(dom) }, info);\n var visobj = VisSense(dom);\n visobj.onPercentageTimeTestPassed(function () {\n send(data_1);\n }, {\n percentageLimit: visSenseConfig.percentageLimit || 1,\n timeLimit: visSenseConfig.timeLimit || 0,\n interval: 200\n });\n }\n };\n ActionTracker.prototype.trackViewStart = function (info) {\n send(__assign(__assign({}, info), { actionType: ACTION_TYPE.VIEW }));\n };\n ActionTracker.prototype.trackViewEnd = function (trackId) {\n var log = instance.end(trackId);\n if (log && log[0]) {\n send(log[0]);\n }\n };\n ActionTracker.prototype.track = function (info) {\n switch (info.actionType) {\n case ACTION_TYPE.EVENT:\n this.trackEvent(info);\n break;\n case ACTION_TYPE.PAGE:\n this.trackPage(info);\n break;\n }\n send(info);\n };\n ActionTracker.prototype.trackLink = function (linkDom, info) {\n if (info === void 0) { info = {}; }\n this.trackDom(linkDom, info);\n sendAsync();\n };\n ActionTracker.prototype.trackDom = function (dom, info) {\n if (info === void 0) { info = {}; }\n var _dom = dom;\n if (_dom.IS_TRACKED) {\n clearTimeout(_dom.DELAY_TRACK_TIME);\n _dom.DELAY_TRACK_TIME = setTimeout(function () {\n _dom.IS_TRACKED = false;\n }, 1000);\n return;\n }\n _dom.IS_TRACKED = true;\n _dom.DELAY_TRACK_TIME = setTimeout(function () {\n _dom.IS_TRACKED = false;\n }, 1000);\n var domPath = getDomPath(dom);\n var trackInfo = {\n trackId: '',\n domPath: domPath,\n domContent: dom.textContent.substr(0, 20),\n domHref: dom.href || dom.src || null\n };\n var domInfo = {\n domId: dom.id,\n domClass: dom.className,\n domHref: dom.href || dom.src || '',\n domName: dom.name || '',\n domTag: dom.tagName,\n domPath: domPath,\n domContent: dom.textContent.substr(0, 20)\n };\n var track = dom.getAttribute('data-track');\n if (track && track.search(/^\\{[\\S\\s]*\\}$/) >= 0) {\n trackInfo = __assign(__assign({}, trackInfo), JSON.parse(track));\n }\n else {\n trackInfo.trackId = track || '';\n }\n if (info) {\n trackInfo = __assign(__assign({}, trackInfo), info);\n }\n this._trackEvent(trackInfo, domInfo);\n };\n ActionTracker.prototype.trackLog = function (info) {\n if (info === void 0) { info = {}; }\n var data = __assign({ actionType: ACTION_TYPE.EVENT, eventName: 'CLICK', debug: true }, info);\n send(data);\n };\n ActionTracker.instance = null;\n return ActionTracker;\n }());\n var instance$1 = ActionTracker.getInstance();\n function hijackHistoryEvent () {\n if (getFlag('historyInjected'))\n return;\n function historyEventTrigger(event, data) {\n var fetchEvent = new CustomEvent(event, { detail: data });\n window.dispatchEvent(fetchEvent);\n }\n function spellUrl(oldURL, newURL) {\n if (/:\\/\\//.test(newURL)) {\n return newURL;\n }\n var host = oldURL.match(/^.*:\\/\\/[^/]+/)[0];\n return host + (/^\\//.test(newURL) ? '' : '/') + newURL;\n }\n var globalData = {\n url: getLocationHref()\n };\n var oldOnpopstate = window.onpopstate;\n window.onpopstate = function () {\n var data = {\n newURL: window.location.href,\n oldURL: globalData.url\n };\n globalData.url = window.location.href;\n historyEventTrigger.apply(this, ['historyPopstate', data]);\n if (oldOnpopstate) {\n return oldOnpopstate.apply(this, arguments);\n }\n };\n var oldPushState = window.history.pushState;\n oldPushState &&\n (window.history.pushState = function (state, title, url) {\n var data = {\n newURL: spellUrl(globalData.url, url),\n oldURL: globalData.url\n };\n globalData = {\n url: data.newURL\n };\n historyEventTrigger.apply(this, ['historyPushState', data]);\n if (oldPushState) {\n return oldPushState.apply(this, arguments);\n }\n });\n setFlag('historyInjected', true);\n }\n setClientInfo({});\n var install = function (conf) {\n if (getFlag('install'))\n return;\n setFlag('install');\n if (conf) {\n setConfig(conf);\n }\n var config = getConfig();\n if (!config.version && window.version) {\n setConfig({ version: window.version });\n }\n setClientInfo({});\n hijackHistoryEvent();\n routeChange();\n function routeChange() {\n if (config.autoTrackPage) {\n setTimeout(function () {\n var pageInfo = getPageInfo();\n var time = Math.abs(Date.now() - instance$1.record.pageTrackTime);\n if (!instance$1.record.pageTrackTime || (time > 2000 && pageInfo.pageId != instance$1.record.pageId)) {\n instance$1.trackPage();\n }\n }, 500);\n }\n }\n if (typeof window.onpopstate === 'undefined') {\n window.addEventListener('hashchange', routeChange);\n }\n window.addEventListener('historyPushState', routeChange);\n window.addEventListener('historyPopstate', routeChange);\n window.addEventListener('visibilitychange', function () {\n var isHidden = document.hidden;\n var pageInfo = getPageInfo();\n if (isHidden) {\n instance.end();\n }\n else {\n instance$1.trackPage({ trackId: pageInfo.pageId });\n }\n });\n var onLeave = (function () {\n var sended = false;\n return function () {\n if (sended) {\n return;\n }\n instance.end();\n sendSync();\n sended = true;\n };\n })();\n window.addEventListener('beforeunload', onLeave);\n window.addEventListener('unload', onLeave);\n document.addEventListener('click', function (e) {\n var element = e.target;\n var pageId = getPageInfo().pageId;\n var hasTrack = false;\n while (element && element.tagName && element.tagName.toUpperCase() !== 'HTML' && element.getAttribute) {\n if (element.getAttribute('data-track') ||\n (config.autoTrackClick &&\n (element.tagName === 'A' ||\n element.tagName === 'BUTTON' ||\n element.tagName === 'INPUT' ||\n element.getAttribute('role')) &&\n !element._isWatchTrack)) {\n if (element.tagName === 'A' && element.href && !/referrer\\-id=/.test(element.href)) {\n if (pageId && typeof pageId === 'string' && /:\\/\\//.test(element.href)) {\n if (/\\?.*=/.test(element.href)) {\n element.href = element.href.replace(/\\?/, \"?referrer-id=\" + pageId + \"&\");\n }\n else if (/\\?/.test(element.href) === false) {\n element.href += \"?referrer-id=\" + pageId;\n }\n }\n instance$1.trackLink(element);\n hasTrack = true;\n }\n else {\n instance$1.trackDom(element);\n hasTrack = true;\n }\n }\n else if (element._isWatchTrack) {\n hasTrack = true;\n }\n element = element.parentNode;\n }\n if (!hasTrack && e.target) {\n instance$1.trackDom(e.target);\n }\n }, false);\n };\n window.addEventListener('load', function () {\n var config = getConfig();\n if (config.autoInstall) {\n install();\n }\n });\n try {\n var ua = window.navigator.userAgent;\n if (/(pre|qa|127|192)\\.|localhost/.test(window.location.host) ||\n (/env\\((pre|qa)\\)/i.test(ua) && !window.location.host)) {\n setConfig({\n serverUrl: (window.location.protocol === 'http:' ? 'http:' : 'https:') + \"//frontlo-collection.qa.91jkys.com/log.gif\",\n debugServerUrl: (window.location.protocol === 'http:' ? 'http:' : 'https:') + \"//frontlo-collection.qa.91jkys.com/f2e/log.gif\"\n });\n }\n if (/DeviceId/i.test(ua)) {\n var deviceIdMatch = ua.match(/DeviceId\\((.*?)\\)/);\n if (deviceIdMatch && deviceIdMatch.length >= 2) {\n setClientInfo({\n deviceId: deviceIdMatch[1]\n });\n }\n }\n if (/AppInfo/i.test(ua)) {\n var AppInfoMatch = ua.match(/AppInfo\\((.*?);(.*?)\\)/);\n if (AppInfoMatch && AppInfoMatch.length >= 3) {\n setClientInfo({\n appId: AppInfoMatch[1],\n appVersion: AppInfoMatch[2],\n appType: 'APP'\n });\n }\n }\n if (typeof Sailer !== 'undefined' && /AppInfo|tangyi/.test(ua)) {\n setConfig({\n autoInstall: false\n });\n Sailer.ready(function () {\n var uid = Sailer.getUserInfo().uid;\n if (uid > 0) {\n login({ uid: uid });\n }\n install();\n });\n }\n else {\n var uid = getCookie('user_id') || getCookie('wechat_uid');\n if (uid) {\n login({ uid: uid });\n }\n }\n }\n catch (error) {\n console.error(error);\n }\n function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder_1(a) ? f3 : _curry2_1(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder_1(a) && _isPlaceholder_1(b) ? f3 : _isPlaceholder_1(a) ? _curry2_1(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder_1(b) ? _curry2_1(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1_1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder_1(a) && _isPlaceholder_1(b) && _isPlaceholder_1(c) ? f3 : _isPlaceholder_1(a) && _isPlaceholder_1(b) ? _curry2_1(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder_1(a) && _isPlaceholder_1(c) ? _curry2_1(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder_1(b) && _isPlaceholder_1(c) ? _curry2_1(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder_1(a) ? _curry1_1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder_1(b) ? _curry1_1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder_1(c) ? _curry1_1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n }\n var _curry3_1 = _curry3;\n var always =\n _curry1_1(function always(val) {\n return function () {\n return val;\n };\n });\n var always_1 = always;\n var Identity = function (x) {\n return {\n value: x,\n map: function (f) {\n return Identity(f(x));\n }\n };\n };\n var over =\n _curry3_1(function over(lens, f, x) {\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n });\n var over_1 = over;\n var set =\n _curry3_1(function set(lens, v, x) {\n return over_1(lens, always_1(v), x);\n });\n var set_1 = set;\n function _isPlaceholder$1(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n }\n function _curry1$1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder$1(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n }\n function _curry2$1(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder$1(a) ? f2 : _curry1$1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder$1(a) && _isPlaceholder$1(b) ? f2 : _isPlaceholder$1(a) ? _curry1$1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder$1(b) ? _curry1$1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n }\n function _arity(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n }\n function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n if (combinedIdx < received.length && (!_isPlaceholder$1(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n combined[combinedIdx] = result;\n if (!_isPlaceholder$1(result)) {\n left -= 1;\n }\n combinedIdx += 1;\n }\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n }\n var curryN =\n _curry2$1(function curryN(length, fn) {\n if (length === 1) {\n return _curry1$1(fn);\n }\n return _arity(length, _curryN(length, [], fn));\n });\n function _curry3$1(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder$1(a) ? f3 : _curry2$1(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder$1(a) && _isPlaceholder$1(b) ? f3 : _isPlaceholder$1(a) ? _curry2$1(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder$1(b) ? _curry2$1(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1$1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder$1(a) && _isPlaceholder$1(b) && _isPlaceholder$1(c) ? f3 : _isPlaceholder$1(a) && _isPlaceholder$1(b) ? _curry2$1(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder$1(a) && _isPlaceholder$1(c) ? _curry2$1(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder$1(b) && _isPlaceholder$1(c) ? _curry2$1(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder$1(a) ? _curry1$1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder$1(b) ? _curry1$1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder$1(c) ? _curry1$1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n }\n var _isArray = Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n };\n function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n }\n function _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n }\n var _xfBase = {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n };\n function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n return result;\n }\n function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n }\n var _isArrayLike =\n _curry1$1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.nodeType === 1) {\n return !!x.length;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n });\n var XWrap =\n function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n return XWrap;\n }();\n function _xwrap(fn) {\n return new XWrap(fn);\n }\n var bind =\n _curry2$1(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n });\n function _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n }\n function _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n }\n function _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n }\n var symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n throw new TypeError('reduce: list must be array or iterable');\n }\n var XMap =\n function () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n return XMap;\n }();\n var _xmap =\n _curry2$1(function _xmap(f, xf) {\n return new XMap(f, xf);\n });\n function _has$1(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n var toString$1 = Object.prototype.toString;\n var _isArguments$1 =\n function () {\n return toString$1.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString$1.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has$1('callee', x);\n };\n }();\n var hasEnumBug$1 = !\n {\n toString: null\n }.propertyIsEnumerable('toString');\n var nonEnumerableProps$1 = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n var hasArgsEnumBug$1 =\n function () {\n return arguments.propertyIsEnumerable('length');\n }();\n var contains$1 = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n };\n var keys$1 = typeof Object.keys === 'function' && !hasArgsEnumBug$1 ?\n _curry1$1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n }) :\n _curry1$1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug$1 && _isArguments$1(obj);\n for (prop in obj) {\n if (_has$1(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug$1) {\n nIdx = nonEnumerableProps$1.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps$1[nIdx];\n if (_has$1(prop, obj) && !contains$1(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n });\n var map =\n _curry2$1(\n _dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys$1(functor));\n default:\n return _map(fn, functor);\n }\n }));\n var _isInteger = Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n };\n var nth =\n _curry2$1(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n });\n var paths =\n _curry2$1(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n p = paths[idx];\n val = _isInteger(p) ? nth(p, val) : val[p];\n idx += 1;\n }\n return val;\n });\n });\n var path =\n _curry2$1(function path(pathAr, obj) {\n return paths([pathAr], obj)[0];\n });\n var prop =\n _curry2$1(function prop(p, obj) {\n return path([p], obj);\n });\n var assoc =\n _curry3$1(function assoc(prop, val, obj) {\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n result[prop] = val;\n return result;\n });\n var lens =\n _curry2$1(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return map(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n });\n var lensProp =\n _curry1$1(function lensProp(k) {\n return lens(prop(k), assoc(k));\n });\n var tracker = function (partical) {\n if (typeof partical === 'function') {\n return function (target, key, descriptor) {\n var value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var fn = partical.call(this, descriptor.value, this);\n if (typeof fn === 'function') {\n return fn.apply(this, args);\n }\n else {\n if (typeof fn === 'object') {\n var data = __assign({}, fn);\n instance$1.trackEvent(data);\n }\n return descriptor.value.apply(this, arguments);\n }\n };\n return set_1(lensProp('value'), value, descriptor);\n };\n }\n else if (typeof partical === 'object') {\n return function (target, key, descriptor) {\n var oldValue = descriptor.value;\n descriptor.value = function () {\n var data = __assign({}, partical);\n instance$1.trackEvent(data);\n return oldValue.apply(this, arguments);\n };\n return descriptor;\n };\n }\n else {\n return function (target, key, descriptor) {\n var oldValue = descriptor.value;\n descriptor.value = function () {\n var data = {\n trackId: partical\n };\n instance$1.trackEvent(data);\n return oldValue.apply(this, arguments);\n };\n return descriptor;\n };\n }\n };\n function _arity$1(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n }\n var _arity_1 = _arity$1;\n function _curryN$1(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n if (combinedIdx < received.length && (!_isPlaceholder_1(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n combined[combinedIdx] = result;\n if (!_isPlaceholder_1(result)) {\n left -= 1;\n }\n combinedIdx += 1;\n }\n return left <= 0 ? fn.apply(this, combined) : _arity_1(left, _curryN$1(length, combined, fn));\n };\n }\n var _curryN_1 = _curryN$1;\n var curryN$1 =\n _curry2_1(function curryN(length, fn) {\n if (length === 1) {\n return _curry1_1(fn);\n }\n return _arity_1(length, _curryN_1(length, [], fn));\n });\n var curryN_1 = curryN$1;\n var before = curryN_1(2, function (trackFn, fn) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (typeof trackFn === 'function') {\n try {\n var result = trackFn.apply(this, args);\n if (typeof result === 'object') {\n instance$1.track(result);\n }\n }\n catch (e) {\n console.error(e);\n }\n }\n else if (typeof trackFn === 'object') {\n instance$1.track(trackFn);\n }\n else if (typeof trackFn === 'string') {\n var data = {\n trackId: trackFn\n };\n instance$1.track(data);\n }\n var evalF = function () {\n var _this = this;\n setTimeout(function () {\n fn.apply(_this, args);\n }, 300);\n };\n return evalF.apply(this);\n };\n });\n var after = curryN_1(2, function (trackFn, fn) {\n return function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var r = fn.apply(this, args);\n var evalF = function () {\n if (typeof trackFn === 'function') {\n try {\n var result = trackFn.apply(_this, args);\n if (typeof result === 'object') {\n instance$1.track(result);\n }\n }\n catch (e) {\n console.error(e);\n }\n }\n else if (typeof trackFn === 'object') {\n instance$1.track(trackFn);\n }\n else if (typeof trackFn === 'string') {\n var data = {\n trackId: trackFn\n };\n instance$1.track(data);\n }\n };\n if (isThenable(r)) {\n return r.then(function (rr) {\n evalF();\n return rr;\n });\n }\n evalF();\n return r;\n };\n });\n var findIndex = function (arr, callback) {\n for (var i = 0, len = arr.length; i < len; i++) {\n if (callback(arr[i], i)) {\n return i;\n }\n }\n return -1;\n };\n var generate = function (type) {\n var watch = [];\n var track = {\n bind: function (el, binding, vnode) {\n var index = findIndex(watch, function (element) { return element === el; });\n var isWatched = index !== -1;\n if (el.style.display === 'none') {\n if (!isWatched)\n watch.push(el);\n return;\n }\n else {\n if (isWatched)\n watch.splice(index, 1);\n }\n if (!isWatched && (notChanged(binding) || isEmpty(binding)))\n return;\n var info = {};\n if (typeof binding.value === 'object') {\n info = binding.value;\n }\n else if (typeof binding.value === 'string' && binding.value) {\n info.trackId = binding.value;\n }\n if (type === 'PAGE') {\n instance$1.trackPage(info);\n }\n else {\n instance$1.trackView(el, info);\n }\n },\n unbind: function (el, binding) {\n var index = findIndex(watch, function (element) { return element === el; });\n if (index !== -1)\n watch.splice(index, 1);\n if (type !== 'PAGE') {\n var info = {};\n if (typeof binding.value === 'object') {\n info = binding.value;\n }\n else if (typeof binding.value === 'string' && binding.value) {\n info.trackId = binding.value;\n }\n if (info.trackId) {\n instance.end(info.trackId);\n }\n }\n },\n update: function (el, binding, vnode) { }\n };\n track.update = track.bind;\n return track;\n };\n var trackView = generate('VIEW');\n function trackEvent (el, binding) {\n if (notChanged(binding) || isEmpty(binding)) {\n return;\n }\n var info = {};\n if (typeof binding.value === 'object' && binding.value) {\n info = binding.value;\n }\n else if (typeof binding.value === 'string') {\n info.trackId = binding.value;\n }\n else if (typeof binding.value === 'number') {\n info.trackId = binding.value + '';\n }\n el._trackerInfo = info;\n el._isWatchTrack = true;\n var events = Object.keys(binding.modifiers).filter(function (modifier) {\n return binding.modifiers[modifier];\n });\n if (!events.length)\n events.push('click');\n events.forEach(function (event) {\n el.removeEventListener(event, handleEvent, false);\n el.addEventListener(event, handleEvent, false);\n });\n }\n function handleEvent(e) {\n this._trackerInfo.eventName = e.type.toUpperCase();\n if (this.tagName === 'A' && this.href) {\n instance$1.trackLink(this, this._trackerInfo);\n }\n else {\n instance$1.trackDom(this, this._trackerInfo);\n }\n }\n var trackPage = generate('PAGE');\n var trackDom = instance$1.trackDom;\n var trackPage$1 = instance$1.trackPage;\n var trackEvent$1 = instance$1.trackEvent;\n var trackLog = instance$1.trackLog;\n var trackViewStart = instance$1.trackViewStart;\n var trackViewEnd = instance$1.trackViewEnd;\n var trackView$1 = instance$1.trackView;\n var trackLink = instance$1.trackLink;\n var track = instance$1.track;\n if (typeof XMLHttpRequest === 'undefined') {\n throw new Error('tracker requires ie10+');\n }\n try {\n \"production\";\n }\n catch (e) {\n var g = typeof window !== 'undefined' ? window : commonjsGlobal;\n if (typeof g.process === 'undefined')\n g.process = {};\n g.process.env = {};\n }\n if (typeof _TrackerGlobalData === 'undefined') {\n window._TrackerGlobalData = {};\n }\n exports.actionTracker = instance$1;\n exports.after = after;\n exports.before = before;\n exports.getConfig = getConfig;\n exports.install = install;\n exports.login = login;\n exports.logout = logout;\n exports.send = send;\n exports.sendAsync = sendAsync;\n exports.sendSync = sendSync;\n exports.setConfig = setConfig;\n exports.track = track;\n exports.trackDom = trackDom;\n exports.trackEvent = trackEvent$1;\n exports.trackLink = trackLink;\n exports.trackLog = trackLog;\n exports.trackPage = trackPage$1;\n exports.trackView = trackView$1;\n exports.trackViewEnd = trackViewEnd;\n exports.trackViewStart = trackViewStart;\n exports.tracker = tracker;\n exports.vTrackEvent = trackEvent;\n exports.vTrackPage = trackPage;\n exports.vTrackView = trackView;\n Object.defineProperty(exports, '__esModule', { value: true });\n}));\n});\n\nvar defaultOptions = {\r\n needLogin: true,\r\n mallSass: false,\r\n baseURL: '',\r\n domain: window.location.origin + \"/f2e/checkout-web/\",\r\n bizId: '',\r\n bizSource: '',\r\n backEventType: 0,\r\n payWay: []\r\n};\r\nvar BaseConfig = (function () {\r\n function BaseConfig() {\r\n this.options = defaultOptions;\r\n }\r\n BaseConfig.prototype.init = function (options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var adaptParam, adaptKey, extrConfig, bizSource;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n telescope_min.setConfig({ autoTrackClick: false, trackKey: 'acd2bf9921d1c93e260c4626e1a7d88b', version: '1.0.0' });\r\n this.options = __assign(__assign(__assign({}, this.options), options), { domain: options.domain || this.options.domain });\r\n adaptParam = {};\r\n adaptKey = ['bizId', 'baseURL', 'loginKey', 'wechatLoginApi', 'jkysWechatURL'];\r\n Object.keys(this.options).forEach(function (el) {\r\n if (adaptKey.includes(el)) {\r\n adaptParam[el] = _this.options[el];\r\n }\r\n });\r\n extrConfig = adaptConfig[this.options.bizId] || null;\r\n return [4, initAdapter(__assign(__assign({}, adaptParam), extrConfig))];\r\n case 1:\r\n _a.sent();\r\n this.adapter = getAdapter();\r\n this.env = env;\r\n if (!(env.inWechat && this.options.needLogin)) return [3, 3];\r\n return [4, this.queryOpenId()];\r\n case 2:\r\n _a.sent();\r\n _a.label = 3;\r\n case 3:\r\n this.payUA = getPayUa();\r\n if (this.options.bizSource) {\r\n telescope_min.setConfig({\r\n beforeGenerateLog: function (log) {\r\n return (__assign(__assign({}, log), { custom: __assign({ bizSource: _this.options.bizSource }, log.custom) }));\r\n }\r\n });\r\n }\r\n bizSource = this.options.bizSource;\r\n telescope_min.trackLog({\r\n trackId: 'checkout-sdk-pay-init',\r\n custom: __assign({ payUA: this.payUA, bizOpenId: this.bizOpenId, bizSource: bizSource }, this.options)\r\n });\r\n if (bizSource) {\r\n telescope_min.setConfig({\r\n beforeGenerateLog: function (log) {\r\n return __assign(__assign({}, log), { custom: __assign({ bizSource: bizSource }, log.custom) });\r\n }\r\n });\r\n }\r\n return [2];\r\n }\r\n });\r\n });\r\n };\r\n BaseConfig.prototype.queryOpenId = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var bizId, ua, bizOpenId;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n bizId = this.options.bizId;\r\n ua = 'pub';\r\n if (bizId === 'C_TERMINAL' && env.inWechatMiniProgram) {\r\n ua = 'mini';\r\n }\r\n return [4, getOpenId({\r\n bizId: bizId,\r\n ua: ua\r\n })];\r\n case 1:\r\n bizOpenId = (_a.sent()).data.bizOpenId;\r\n this.bizOpenId = bizOpenId;\r\n return [2];\r\n }\r\n });\r\n });\r\n };\r\n return BaseConfig;\r\n}());\n\nvar version$1 = {\n v: '2.2.22'\n};\n\nvar stash = {\n};\n\nvar error = function PingppError(message, extra) {\n this.message = message;\n this.extra = extra;\n};\nvar errors = {\n Error: error,\n};\n\nvar PingppError$1 = errors.Error;\nvar hasOwn$o = {}.hasOwnProperty;\nvar payment_elements = {\n id: null,\n or_id: null,\n channel: null,\n app: null,\n credential: {},\n extra: null,\n livemode: null,\n order_no: null,\n time_expire: null,\n paid: false,\n status: null,\n actual_amount: null,\n init: function (charge_or_order) {\n var charge;\n if (typeof charge_or_order === 'string') {\n try {\n charge = JSON.parse(charge_or_order);\n } catch (err) {\n throw new PingppError$1('json_decode_fail', err);\n }\n } else {\n charge = charge_or_order;\n }\n if (typeof charge === 'undefined') {\n throw new PingppError$1('json_decode_fail');\n }\n if (hasOwn$o.call(charge, 'object') && charge.object == 'order') {\n charge.or_id = charge.id;\n charge.order_no = charge.merchant_order_no;\n var charge_essentials = charge.charge_essentials;\n charge.channel = charge_essentials.channel;\n charge.credential = charge_essentials.credential;\n charge.extra = charge_essentials.extra;\n if(hasOwn$o.call(charge, 'charge') && charge.charge != null) {\n charge.id = charge.charge;\n } else if(hasOwn$o.call(charge_essentials, 'id')\n && charge_essentials.id != null) {\n charge.id = charge_essentials.id;\n } else if(hasOwn$o.call(charge, 'charges')) {\n for(var i = 0; i < charge.charges.data.length; i++){\n if(charge.charges.data[i].channel === charge_essentials.channel) {\n charge.id = charge.charges.data[i].id;\n break;\n }\n }\n }\n } else if(hasOwn$o.call(charge, 'object') && charge.object == 'recharge') {\n charge = charge.charge;\n }\n for (var key in this) {\n if (hasOwn$o.call(charge, key)) {\n this[key] = charge[key];\n }\n }\n return this;\n },\n clear: function () {\n for (var key in this) {\n if (typeof this[key] !== 'function') {\n this[key] = null;\n }\n }\n }\n};\n\nvar callbacks = {\n userCallback: undefined,\n urlReturnCallback: undefined,\n urlReturnChannels: [\n 'alipay_pc_direct',\n ],\n userAgreementCallback: undefined,\n innerCallback: function(result, err) {\n if (typeof this.userCallback === 'function') {\n if (typeof err === 'undefined') {\n err = this.error();\n }\n this.userCallback(result, err);\n this.userCallback = undefined;\n var payment_elements$1 = payment_elements;\n payment_elements$1.clear();\n }\n },\n error: function(msg, extra) {\n msg = (typeof msg === 'undefined') ? '' : msg;\n extra = (typeof extra === 'undefined') ? '' : extra;\n return {\n msg: msg,\n extra: extra\n };\n },\n triggerUrlReturnCallback: function (err, url) {\n if (typeof this.urlReturnCallback === 'function') {\n this.urlReturnCallback(err, url);\n }\n },\n shouldReturnUrlByCallback: function (channel) {\n if (typeof this.urlReturnCallback !== 'function') {\n return false;\n }\n return this.urlReturnChannels.indexOf(channel) !== -1;\n },\n innerAgreementCallback: function(result, err) {\n if (typeof this.userAgreementCallback === 'function') {\n if (typeof err === 'undefined') {\n err = this.error();\n }\n this.userAgreementCallback(result, err);\n this.userAgreementCallback = undefined;\n }\n }\n};\n\nvar utils_1 = createCommonjsModule(function (module) {\nvar hasOwn = {}.hasOwnProperty;\nvar utils = module.exports = {\n stringifyData: function (data, channel, urlencode) {\n if (typeof urlencode == 'undefined') {\n urlencode = false;\n }\n var output = [];\n for (var i in data) {\n if (!hasOwn.call(data, i) || typeof data[i] === 'function') {\n continue;\n }\n if (channel == 'bfb_wap' && i == 'url') {\n continue;\n }\n if (channel == 'yeepay_wap' && i == 'mode') {\n continue;\n }\n if (i == 'channel_url') {\n continue;\n }\n output.push(i + '=' +\n (urlencode ? encodeURIComponent(data[i]) : data[i]));\n }\n return output.join('&');\n },\n request: function (url, method, requestData,\n successCallback, errorCallback, headers) {\n if (typeof XMLHttpRequest === 'undefined') {\n console.log('Function XMLHttpRequest is undefined.');\n return;\n }\n var xhr = new XMLHttpRequest();\n if (typeof xhr.timeout !== 'undefined') {\n xhr.timeout = 6000;\n }\n method = method.toUpperCase();\n if (method === 'GET' && typeof requestData === 'object' && requestData) {\n url += '?' + utils.stringifyData(requestData, '', true);\n }\n xhr.open(method, url, true);\n if (typeof headers !== 'undefined') {\n for (var k in headers) {\n if (hasOwn.call(headers, k)) {\n xhr.setRequestHeader(k, headers[k]);\n }\n }\n }\n if (method === 'POST') {\n xhr.setRequestHeader('Content-type', 'application/json; charset=utf-8');\n xhr.send(JSON.stringify(requestData));\n } else {\n xhr.send();\n }\n if (typeof successCallback == 'undefined') {\n successCallback = function () {};\n }\n if (typeof errorCallback == 'undefined') {\n errorCallback = function () {};\n }\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n successCallback(xhr.responseText, xhr.status, xhr);\n }\n };\n xhr.onerror = function (e) {\n errorCallback(xhr, 0, e);\n };\n },\n formSubmit: function (url, method, params) {\n if (typeof window === 'undefined') {\n console.log('Not a browser, form submit url: ' + url);\n return;\n }\n var form = document.createElement('form');\n form.setAttribute('method', method);\n form.setAttribute('action', url);\n for (var key in params) {\n if (hasOwn.call(params, key)) {\n var hiddenField = document.createElement('input');\n hiddenField.setAttribute('type', 'hidden');\n hiddenField.setAttribute('name', key);\n hiddenField.setAttribute('value', params[key]);\n form.appendChild(hiddenField);\n }\n }\n document.body.appendChild(form);\n form.submit();\n },\n randomString: function (length) {\n if (typeof length == 'undefined') {\n length = 32;\n }\n var chars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var maxPos = chars.length;\n var str = '';\n for (var i = 0; i < length; i++) {\n str += chars.charAt(Math.floor(Math.random() * maxPos));\n }\n return str;\n },\n redirectTo: function (url, channel) {\n if (callbacks.shouldReturnUrlByCallback(channel)) {\n callbacks.triggerUrlReturnCallback(null, url);\n return;\n }\n if (typeof window === 'undefined') {\n console.log('Not a browser, redirect url: ' + url);\n return;\n }\n window.location.href = url;\n },\n inWeixin: function () {\n if (typeof navigator === 'undefined') {\n return false;\n }\n var ua = navigator.userAgent.toLowerCase();\n return ua.indexOf('micromessenger') !== -1;\n },\n inAlipay: function () {\n if (typeof navigator === 'undefined') {\n return false;\n }\n var ua = navigator.userAgent.toLowerCase();\n return ua.indexOf('alipayclient') !== -1;\n },\n inWxLite: function() {\n if(typeof wx === 'undefined') {\n return false;\n }\n return wx.miniProgram || wx.requestPayment;\n },\n inAlipayLite: function() {\n if(typeof my === 'undefined') {\n return false;\n }\n return my.tradePay;\n },\n documentReady: function (fn) {\n if (typeof document === 'undefined') {\n fn();\n return;\n }\n if (document.readyState != 'loading') {\n fn();\n } else {\n document.addEventListener('DOMContentLoaded', fn);\n }\n },\n loadUrlJs: function (sid, jsurl, callback) {\n var nodeHead = document.getElementsByTagName('head')[0];\n var nodeScript = null;\n if (document.getElementById(sid) == null) {\n nodeScript = document.createElement('script');\n nodeScript.setAttribute('type', 'text/javascript');\n nodeScript.setAttribute('src', jsurl);\n nodeScript.setAttribute('id', sid);\n nodeScript.async = true;\n if (callback != null) {\n nodeScript.onload = nodeScript.onreadystatechange = function () {\n if (nodeScript.ready) {\n return false;\n }\n if (!nodeScript.readyState || nodeScript.readyState == 'loaded'\n || nodeScript.readyState == 'complete') {\n nodeScript.ready = true;\n callback();\n }\n };\n }\n nodeHead.appendChild(nodeScript);\n } else {\n if (callback != null) {\n callback();\n }\n }\n }\n};\n});\n\nvar init = {\n init: function() {\n var self = this;\n utils_1.documentReady(function(){\n try {\n (!(utils_1.inWxLite() || utils_1.inAlipayLite())) && self.initPuid();\n } catch (e){}\n });\n },\n initPuid: function() {\n if (typeof window === 'undefined' || typeof localStorage === 'undefined'\n || localStorage === null) {\n return;\n }\n var puid = localStorage.getItem('pingpp_uid');\n if (puid === null) {\n puid = utils_1.randomString();\n try {\n localStorage.setItem('pingpp_uid', puid);\n } catch (e) {\n }\n }\n stash.puid = puid;\n }\n};\n\nvar hasOwn$n = {}.hasOwnProperty;\nvar testmode = {\n PINGPP_MOCK_URL: 'http://sissi.pingxx.com/mock.php',\n runTestMode: function (charge) {\n var params = {\n 'ch_id': charge.id,\n 'scheme': 'http',\n 'channel': charge.channel\n };\n if (hasOwn$n.call(charge, 'order_no')) {\n params.order_no = charge.order_no;\n } else if (hasOwn$n.call(charge, 'orderNo')) {\n params.order_no = charge.orderNo;\n }\n if (hasOwn$n.call(charge, 'time_expire')) {\n params.time_expire = charge.time_expire;\n } else if (hasOwn$n.call(charge, 'timeExpire')) {\n params.time_expire = charge.timeExpire;\n }\n if (hasOwn$n.call(charge, 'extra')) {\n params.extra = encodeURIComponent(JSON.stringify(charge.extra));\n }\n utils_1.redirectTo(\n this.PINGPP_MOCK_URL + '?' + utils_1.stringifyData(params),\n charge.channel\n );\n }\n};\n\nvar hasOwn$m = {}.hasOwnProperty;\nvar alipay = {\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n if (credential || hasOwn$m.call(credential, 'orderInfo')) {\n this.callpay(credential.orderInfo);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_alipay'));\n }\n },\n alipayLiteEnabled: function () {\n return typeof my !== 'undefined' && my.tradePay;\n },\n callpay: function (orderStr) {\n var self = this;\n if (this.alipayLiteEnabled()) {\n return this.alipayLitePay(orderStr);\n }\n if (typeof navigator !== 'undefined'\n && /AlipayClient/.test(navigator.userAgent || navigator.swuserAgent)) {\n return this.waitAlipayJSBridgde(function () {\n self.alipayJsBridgePay(orderStr);\n });\n }\n var errmsg = '请在支付宝小程序或者支付宝应用内中打开';\n console.log(errmsg);\n callbacks.innerCallback('fail', callbacks.error(errmsg));\n return;\n },\n waitAlipayJSBridgde: function (callback) {\n if (window.AlipayJSBridge) {\n callback && callback();\n } else {\n document.addEventListener('AlipayJSBridgeReady', callback, false);\n }\n },\n alipayJsBridgePay: function (orderStr) {\n AlipayJSBridge.call('tradePay', {\n orderStr: orderStr\n }, this.alipayResultHandler);\n },\n alipayLitePay: function (orderStr) {\n var tradePayParams = {};\n tradePayParams.orderStr = orderStr;\n tradePayParams.complete = this.alipayResultHandler;\n my.tradePay(tradePayParams);\n },\n alipayResultHandler: function (res) {\n var extra = {\n resultCode: res.resultCode\n };\n if (hasOwn$m.call(res, 'memo')) {\n extra.memo = res.memo;\n }\n if (hasOwn$m.call(res, 'result')) {\n extra.result = res.result;\n }\n if (res.resultCode == '9000') {\n callbacks.innerCallback('success', callbacks.error('', extra));\n } else if (res.resultCode == '6001') {\n callbacks.innerCallback('cancel', callbacks.error('用户取消支付', extra));\n } else {\n callbacks.innerCallback('fail', callbacks.error('支付失败', extra));\n }\n },\n runTestMode: function (charge) {\n var path = '/charges/' + charge.id;\n my.httpRequest({\n url: this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n success: function(res) {\n if (res.data == 'success') {\n callbacks.innerCallback('success');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail'));\n }\n },\n fail:function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n }\n });\n }\n};\n\nvar alipay_lite = {\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n handleCharge: function (charge) {\n var trade_no = charge.credential[charge.channel];\n if (trade_no) {\n this.callpay(trade_no);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_alipay_lite'));\n }\n },\n alipayLiteEnabled: function () {\n return typeof my !== 'undefined' && my.tradePay;\n },\n callpay: function (tradeNO) {\n if (!this.alipayLiteEnabled()) {\n console.log('请在支付宝小程序中打开');\n return;\n }\n var alipay_lite = {};\n alipay_lite.tradeNO = tradeNO;\n alipay_lite.complete = function (res) {\n if (res.resultCode == 9000) {\n callbacks.innerCallback('success');\n } else if (res.resultCode == 6001) {\n callbacks.innerCallback('cancel', callbacks.error('用户取消支付'));\n } else {\n callbacks.innerCallback('fail', callbacks.error('支付失败'));\n }\n };\n my.tradePay(alipay_lite);\n },\n runTestMode: function (charge) {\n var path = '/charges/' + charge.id;\n my.httpRequest({\n url: this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n success: function(res) {\n if (res.data == 'success') {\n callbacks.innerCallback('success');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail'));\n }\n },\n fail:function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n }\n });\n }\n};\n\nvar hasOwn$l = {}.hasOwnProperty;\nvar alipay_pc_direct = {\n ALIPAY_PC_DIRECT_URL: 'https://mapi.alipay.com/gateway.do',\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL = this.ALIPAY_PC_DIRECT_URL;\n if (hasOwn$l.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n }\n if (!hasOwn$l.call(credential, '_input_charset')) {\n if(hasOwn$l.call(credential, 'service')\n && credential.service === 'create_direct_pay_by_user') {\n credential._input_charset = 'utf-8';\n }\n }\n var query = utils_1.stringifyData(credential, channel, true);\n utils_1.redirectTo(baseURL + '?' + query, channel);\n }\n};\n\nvar hasOwn$k = {}.hasOwnProperty;\nvar alipay_qr = {\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n if (hasOwn$k.call(credential, 'transaction_no')) {\n this.tradePay(credential.transaction_no);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_transaction_no'));\n }\n },\n ready: function (callback) {\n if (window.AlipayJSBridge) {\n callback && callback();\n } else {\n document.addEventListener('AlipayJSBridgeReady', callback, false);\n }\n },\n tradePay: function (tradeNO) {\n this.ready(function () {\n AlipayJSBridge.call('tradePay', {\n tradeNO: tradeNO\n }, function (data) {\n if ('9000' == data.resultCode) {\n callbacks.innerCallback('success');\n } else if('6001' == data.resultCode) {\n callbacks.innerCallback('cancel', callbacks.error(data.result));\n } else {\n callbacks.innerCallback('fail',\n callbacks.error(data.result));\n }\n });\n });\n }\n};\n\nvar hasOwn$j = {}.hasOwnProperty;\nvar redirect_base = {\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var targetURL;\n if (typeof credential === 'string') {\n targetURL = credential;\n } else if (hasOwn$j.call(credential, 'url')) {\n targetURL = credential.url;\n } else {\n callbacks.innerCallback('fail', callbacks.error('invalid_credential',\n 'credential format is incorrect'));\n return;\n }\n utils_1.redirectTo(targetURL, charge.channel);\n }\n};\n\nvar alipay_qr_lakala = {\n handleCharge: function(charge) {\n redirect_base.handleCharge(charge);\n }\n};\n\nvar hasOwn$i = {}.hasOwnProperty;\nvar alipay_wap = {\n ALIPAY_WAP_URL_OLD: 'https://wappaygw.alipay.com/service/rest.htm',\n ALIPAY_WAP_URL: 'https://mapi.alipay.com/gateway.do',\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL = this.ALIPAY_WAP_URL;\n if (hasOwn$i.call(credential, 'req_data')) {\n baseURL = this.ALIPAY_WAP_URL_OLD;\n } else if (hasOwn$i.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n }\n if (!hasOwn$i.call(credential, '_input_charset')) {\n if ((hasOwn$i.call(credential, 'service')\n && credential.service === 'alipay.wap.create.direct.pay.by.user')\n || hasOwn$i.call(credential, 'req_data')\n ) {\n credential._input_charset = 'utf-8';\n }\n }\n var query = utils_1.stringifyData(credential, channel, true);\n var targetURL = baseURL + '?' + query;\n var ap = mods_1.getExtraModule('ap');\n if (utils_1.inWeixin() && typeof ap !== 'undefined') {\n ap.pay(targetURL);\n } else {\n utils_1.redirectTo(targetURL, channel);\n }\n }\n};\n\nvar alipay_wap_lakala = {\n handleCharge: function(charge) {\n redirect_base.handleCharge(charge);\n }\n};\n\nvar hasOwn$h = {}.hasOwnProperty;\nvar bfb_wap = {\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n if (!hasOwn$h.call(credential, 'url')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field:url'));\n return;\n }\n utils_1.redirectTo(credential.url + '?' +\n utils_1.stringifyData(credential, channel), channel);\n }\n};\n\nvar hasOwn$g = {}.hasOwnProperty;\nvar cb_alipay_pc_direct = {\n ALIPAY_PC_DIRECT_URL: 'https://intlmapi.alipay.com/gateway.do',\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL = this.ALIPAY_PC_DIRECT_URL;\n if (hasOwn$g.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n }\n if (!hasOwn$g.call(credential, '_input_charset')) {\n if(hasOwn$g.call(credential, 'service')\n && credential.service === 'create_forex_trade') {\n credential._input_charset = 'utf-8';\n }\n }\n var query = utils_1.stringifyData(credential, channel, true);\n utils_1.redirectTo(baseURL + '?' + query, channel);\n }\n};\n\nvar hasOwn$f = {}.hasOwnProperty;\nvar cb_alipay_wap = {\n ALIPAY_WAP_URL: 'https://intlmapi.alipay.com/gateway.do',\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL = this.ALIPAY_WAP_URL;\n if (hasOwn$f.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n }\n if (!hasOwn$f.call(credential, '_input_charset')) {\n if ((hasOwn$f.call(credential, 'service')\n && credential.service === 'create_forex_trade_wap')\n ) {\n credential._input_charset = 'utf-8';\n }\n }\n var query = utils_1.stringifyData(credential, channel, true);\n var targetURL = baseURL + '?' + query;\n var ap = mods_1.getExtraModule('ap');\n if (utils_1.inWeixin() && typeof ap !== 'undefined') {\n ap.pay(targetURL);\n } else {\n utils_1.redirectTo(targetURL, channel);\n }\n }\n};\n\nvar hasOwn$e = {}.hasOwnProperty;\nvar cb_wx_pub = {\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var fields = [\n 'appId', 'timeStamp', 'nonceStr', 'package', 'signType', 'paySign'\n ];\n for (var k = 0; k < fields.length; k++) {\n if (!hasOwn$e.call(credential, fields[k])) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_' + fields[k]));\n return;\n }\n }\n stash.jsApiParameters = credential;\n this.callpay();\n },\n callpay: function() {\n var self = this;\n var wx_jssdk = mods_1.getExtraModule('wx_jssdk');\n if (typeof wx_jssdk !== 'undefined' && wx_jssdk.jssdkEnabled()) {\n wx_jssdk.callpay();\n } else if (typeof WeixinJSBridge == 'undefined') {\n var eventCallback = function() {\n self.jsApiCall();\n };\n if (document.addEventListener) {\n document.addEventListener('WeixinJSBridgeReady',\n eventCallback, false);\n } else if (document.attachEvent) {\n document.attachEvent('WeixinJSBridgeReady', eventCallback);\n document.attachEvent('onWeixinJSBridgeReady', eventCallback);\n }\n } else {\n this.jsApiCall();\n }\n },\n jsApiCall: function() {\n if (hasOwn$e.call(stash, 'jsApiParameters')) {\n WeixinJSBridge.invoke(\n 'getBrandWCPayRequest',\n stash.jsApiParameters,\n function(res) {\n delete stash.jsApiParameters;\n if (res.err_msg == 'get_brand_wcpay_request:ok') {\n callbacks.innerCallback('success');\n } else if (res.err_msg == 'get_brand_wcpay_request:cancel') {\n callbacks.innerCallback('cancel');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('wx_result_fail', res.err_msg));\n }\n }\n );\n }\n },\n runTestMode: function(charge) {\n var dopay = confirm('模拟付款?');\n if (dopay) {\n var path = '/charges/' + charge.id;\n utils_1.request(this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n 'GET', null,\n function(data, status) {\n if (status >= 200 && status < 400 && data == 'success') {\n callbacks.innerCallback('success');\n } else {\n var extra = 'http_code:' + status + ';response:' + data;\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail', extra));\n }\n },\n function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n });\n }\n }\n};\n\nvar ccb_qr = {\n handleCharge: function(charge) {\n redirect_base.handleCharge(charge);\n }\n};\n\nvar hasOwn$d = {}.hasOwnProperty;\nvar ccb_wap = {\n CCB_WAP_URL_BASE: 'https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain?',\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n if (!hasOwn$d.call(credential, 'orderinfo')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field:orderinfo'));\n return;\n }\n var targetURL = this.CCB_WAP_URL_BASE + credential['orderinfo'];\n utils_1.redirectTo(targetURL, channel);\n }\n};\n\nvar hasOwn$c = {}.hasOwnProperty;\nvar cmb_pc_qr = {\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL;\n if (hasOwn$c.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n delete credential.channel_url;\n }\n utils_1.formSubmit(baseURL, 'post', credential);\n }\n};\n\nvar hasOwn$b = {}.hasOwnProperty;\nvar cmb_wallet = {\n CMB_WALLET_URL:\n 'https://netpay.cmbchina.com/netpayment/BaseHttp.dll?MB_EUserPay',\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var request_url = this.CMB_WALLET_URL;\n if (hasOwn$b.call(credential, 'ChannelUrl')) {\n request_url = credential.ChannelUrl;\n delete credential.ChannelUrl;\n }\n if (hasOwn$b.call(credential, 'channelVersion')) {\n delete credential.channelVersion;\n }\n utils_1.formSubmit(request_url, 'post', credential);\n }\n};\n\nvar coolcredit = {\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils_1.formSubmit(credential.request_url, 'post', credential.request_data);\n }\n};\n\nvar cp_b2b = {\n CP_B2B_URL: 'https://payment.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0',\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils_1.formSubmit(this.CP_B2B_URL, 'post', credential);\n }\n};\n\nvar hasOwn$a = {}.hasOwnProperty;\nvar wx_lite = {\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n var fields = [\n 'appId', 'timeStamp', 'nonceStr', 'package', 'signType', 'paySign'\n ];\n for (var k = 0; k < fields.length; k++) {\n if (!hasOwn$a.call(credential, fields[k])) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_' + fields[k]));\n return;\n }\n }\n stash.jsApiParameters = credential;\n this.callpay();\n },\n wxLiteEnabled: function () {\n return typeof wx !== 'undefined' && wx.requestPayment;\n },\n callpay: function () {\n if (!this.wxLiteEnabled()) {\n console.log('请在微信小程序中打开');\n return;\n }\n var wx_lite = stash.jsApiParameters;\n delete wx_lite.appId;\n wx_lite.complete = function (res) {\n if (res.errMsg === 'requestPayment:ok') {\n callbacks.innerCallback('success');\n }\n if (res.errMsg === 'requestPayment:cancel'\n || res.errMsg === 'requestPayment:fail cancel') {\n callbacks.innerCallback('cancel', callbacks.error('用户取消支付'));\n }\n if (res.err_code !== 'undefined' && res.err_desc !== 'undefined') {\n callbacks.innerCallback('fail', callbacks.error(res.err_desc, res));\n }\n };\n wx.requestPayment(wx_lite);\n },\n runTestMode: function (charge) {\n var path = '/charges/' + charge.id;\n wx.request({\n url: this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n success: function(res) {\n if (res.data == 'success') {\n callbacks.innerCallback('success');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail'));\n }\n },\n fail:function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n }\n });\n }\n};\n\nvar isv_lite = wx_lite;\n\nvar hasOwn$9 = {}.hasOwnProperty;\nvar isv_wap = {\n handleCharge: function (charge) {\n var extra = charge.extra;\n if (hasOwn$9.call(extra, 'pay_channel')) {\n var pay_channel = extra.pay_channel;\n if (pay_channel === 'wx' && !utils_1.inWeixin()) {\n callbacks.innerCallback('fail',\n callbacks.error('Not in the WeChat browser'));\n return;\n } else if (pay_channel === 'alipay' && !utils_1.inAlipay()) {\n callbacks.innerCallback('fail',\n callbacks.error('Not in the Alipay browser'));\n return;\n }\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'charge 格式不正确'));\n return;\n }\n redirect_base.handleCharge(charge);\n }\n};\n\nvar hasOwn$8 = {}.hasOwnProperty;\nvar jdpay_wap = {\n JDPAY_WAP_URL_OLD: 'https://m.jdpay.com/wepay/web/pay',\n JDPAY_H5_URL: 'https://h5pay.jd.com/jdpay/saveOrder',\n JDPAY_PC_URL: 'https://wepay.jd.com/jdpay/saveOrder',\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var request_url = this.JDPAY_H5_URL;\n if (hasOwn$8.call(credential, 'channelUrl')) {\n request_url = credential.channelUrl;\n delete credential.channelUrl;\n } else if (hasOwn$8.call(credential, 'merchantRemark')) {\n request_url = this.JDPAY_WAP_URL_OLD;\n }\n utils_1.formSubmit(request_url, 'post', credential);\n }\n};\n\nvar pab_pc = {\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var request_url = credential.channelUrl;\n delete credential.channelUrl;\n utils_1.formSubmit(request_url, 'post', credential);\n }\n};\n\nvar paypal = {\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils_1.redirectTo(credential, charge.channel);\n }\n};\n\nvar hasOwn$7 = {}.hasOwnProperty;\nvar qpay_pub = {\n SRC_URL: 'https://open.mobile.qq.com/sdk/qqapi.js?_bid=152',\n ID: 'mqq_api',\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n if (!hasOwn$7.call(credential, 'token_id')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_token_id'));\n return;\n }\n stash.tokenId = credential.token_id;\n utils_1.loadUrlJs(this.ID, this.SRC_URL, this.callpay);\n },\n callpay: function () {\n if (typeof mqq != 'undefined') {\n if (mqq.QQVersion == 0) {\n callbacks.innerCallback('fail',\n callbacks.error('Not in the QQ client'));\n delete stash.tokenId;\n return;\n }\n mqq.tenpay.pay({\n tokenId: stash.tokenId\n }, function (result) {\n if (result.resultCode == 0) {\n callbacks.innerCallback('success');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error(result.retmsg));\n }\n });\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('network_err'));\n }\n delete stash.tokenId;\n }\n};\n\nvar hasOwn$6 = {}.hasOwnProperty;\nvar upacp_b2b = {\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL;\n if (hasOwn$6.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n delete credential.channel_url;\n }\n utils_1.formSubmit(baseURL, 'post', credential);\n }\n};\n\nvar upacp_pc = {\n UPACP_PC_URL: 'https://gateway.95516.com/gateway/api/frontTransReq.do',\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils_1.formSubmit(this.UPACP_PC_URL, 'post', credential);\n }\n};\n\nvar upacp_wap = {\n UPACP_WAP_URL: 'https://gateway.95516.com/gateway/api/frontTransReq.do',\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils_1.formSubmit(this.UPACP_WAP_URL, 'post', credential);\n }\n};\n\nvar wx_lite_pab = wx_lite;\n\nvar hasOwn$5 = {}.hasOwnProperty;\nvar wx_pub = {\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var fields = [\n 'appId', 'timeStamp', 'nonceStr', 'package', 'signType', 'paySign'\n ];\n for (var k = 0; k < fields.length; k++) {\n if (!hasOwn$5.call(credential, fields[k])) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_' + fields[k]));\n return;\n }\n }\n stash.jsApiParameters = credential;\n this.callpay();\n },\n callpay: function() {\n var self = this;\n var wx_jssdk = mods_1.getExtraModule('wx_jssdk');\n if (typeof wx_jssdk !== 'undefined' && wx_jssdk.jssdkEnabled()) {\n wx_jssdk.callpay();\n } else if (typeof WeixinJSBridge == 'undefined') {\n var eventCallback = function() {\n self.jsApiCall();\n };\n if (document.addEventListener) {\n document.addEventListener('WeixinJSBridgeReady',\n eventCallback, false);\n } else if (document.attachEvent) {\n document.attachEvent('WeixinJSBridgeReady', eventCallback);\n document.attachEvent('onWeixinJSBridgeReady', eventCallback);\n }\n } else {\n this.jsApiCall();\n }\n },\n jsApiCall: function() {\n if (hasOwn$5.call(stash, 'jsApiParameters')) {\n WeixinJSBridge.invoke(\n 'getBrandWCPayRequest',\n stash.jsApiParameters,\n function(res) {\n delete stash.jsApiParameters;\n if (res.err_msg == 'get_brand_wcpay_request:ok') {\n callbacks.innerCallback('success');\n } else if (res.err_msg == 'get_brand_wcpay_request:cancel') {\n callbacks.innerCallback('cancel');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('wx_result_fail', res.err_msg));\n }\n }\n );\n }\n },\n runTestMode: function(charge) {\n var dopay = confirm('模拟付款?');\n if (dopay) {\n var path = '/charges/' + charge.id;\n utils_1.request(this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n 'GET', null,\n function(data, status) {\n if (status >= 200 && status < 400 && data == 'success') {\n callbacks.innerCallback('success');\n } else {\n var extra = 'http_code:' + status + ';response:' + data;\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail', extra));\n }\n },\n function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n });\n }\n }\n};\n\nvar wx_pub_hzbank = wx_pub;\n\nvar wx_pub_pab = wx_pub;\n\nvar hasOwn$4 = {}.hasOwnProperty;\nvar wx_wap = {\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n if (typeof credential === 'string') {\n utils_1.redirectTo(credential, charge.channel);\n } else if (typeof credential === 'object'\n && hasOwn$4.call(credential, 'url')\n ) {\n utils_1.redirectTo(credential.url, charge.channel);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'credential 格式不正确'));\n }\n }\n};\n\nvar hasOwn$3 = {}.hasOwnProperty;\nvar yeepay_wap = {\n YEEPAY_WAP_URL: 'https://ok.yeepay.com/paymobile/api/pay/request',\n YEEPAY_WAP_TEST_URL: 'http://mobiletest.yeepay.com/paymobile/api/pay/request',\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var fields = ['merchantaccount', 'encryptkey', 'data'];\n for (var k = 0; k < fields.length; k++) {\n if (!hasOwn$3.call(credential, fields[k])) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_' + fields[k]));\n return;\n }\n }\n var baseURL;\n if (hasOwn$3.call(credential, 'mode') && credential.mode == 'test') {\n baseURL = this.YEEPAY_WAP_TEST_URL;\n } else {\n baseURL = this.YEEPAY_WAP_URL;\n }\n utils_1.redirectTo(baseURL + '?' +\n utils_1.stringifyData(credential, channel, true), charge.channel);\n }\n};\n\nvar ap = createCommonjsModule(function (module) {\nvar hasOwn = {}.hasOwnProperty;\n(function() {\n var b = {};\n var a = {};\n a.PADCHAR = '=';\n a.ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n a.makeDOMException = function() {\n try {\n return new DOMException(DOMException.INVALID_CHARACTER_ERR);\n } catch (d) {\n var c = new Error('DOM Exception 5');\n c.code = c.number = 5;\n c.name = c.description = 'INVALID_CHARACTER_ERR';\n c.toString = function() {\n return 'Error: ' + c.name + ': ' + c.message;\n };\n return c;\n }\n };\n a.getbyte64 = function(e, d) {\n var c = a.ALPHA.indexOf(e.charAt(d));\n if (c === -1) {\n throw a.makeDOMException();\n }\n return c;\n };\n a.decode = function(f) {\n f = '' + f;\n var j = a.getbyte64;\n var h, e, g;\n var d = f.length;\n if (d === 0) {\n return f;\n }\n if (d % 4 !== 0) {\n throw a.makeDOMException();\n }\n h = 0;\n if (f.charAt(d - 1) === a.PADCHAR) {\n h = 1;\n if (f.charAt(d - 2) === a.PADCHAR) {\n h = 2;\n }\n d -= 4;\n }\n var c = [];\n for (e = 0; e < d; e += 4) {\n g = (j(f, e) << 18) |\n (j(f, e + 1) << 12) |\n (j(f, e + 2) << 6) |\n j(f, e + 3);\n c.push(String.fromCharCode(g >> 16, (g >> 8) & 255, g & 255));\n }\n switch (h) {\n case 1:\n g = (j(f, e) << 18) | (j(f, e + 1) << 12) | (j(f, e + 2) << 6);\n c.push(String.fromCharCode(g >> 16, (g >> 8) & 255));\n break;\n case 2:\n g = (j(f, e) << 18) | (j(f, e + 1) << 12);\n c.push(String.fromCharCode(g >> 16));\n break;\n }\n return c.join('');\n };\n a.getbyte = function(e, d) {\n var c = e.charCodeAt(d);\n if (c > 255) {\n throw a.makeDOMException();\n }\n return c;\n };\n a.encode = function(f) {\n if (arguments.length !== 1) {\n throw new SyntaxError('Not enough arguments');\n }\n var g = a.PADCHAR;\n var h = a.ALPHA;\n var k = a.getbyte;\n var e, j;\n var c = [];\n f = '' + f;\n var d = f.length - f.length % 3;\n if (f.length === 0) {\n return f;\n }\n for (e = 0; e < d; e += 3) {\n j = (k(f, e) << 16) | (k(f, e + 1) << 8) | k(f, e + 2);\n c.push(h.charAt(j >> 18));\n c.push(h.charAt((j >> 12) & 63));\n c.push(h.charAt((j >> 6) & 63));\n c.push(h.charAt(j & 63));\n }\n switch (f.length - d) {\n case 1:\n j = k(f, e) << 16;\n c.push(h.charAt(j >> 18) + h.charAt((j >> 12) & 63) + g + g);\n break;\n case 2:\n j = (k(f, e) << 16) | (k(f, e + 1) << 8);\n c.push(h.charAt(j >> 18) +\n h.charAt((j >> 12) & 63) +\n h.charAt((j >> 6) & 63) + g);\n break;\n }\n return c.join('');\n };\n b.url = 'pay.htm';\n b.pay = function(d) {\n var c = encodeURIComponent(a.encode(d));\n if (hasOwn.call(stash, 'APURL')) {\n b.url = stash.APURL;\n }\n location.href = b.url + '?goto=' + c;\n };\n b.decode = function(c) {\n return a.decode(decodeURIComponent(c));\n };\n module.exports = b;\n})();\n});\n\nvar hasOwn$2 = {}.hasOwnProperty;\nvar agreement = {\n signAgreement: function (agreement) {\n var agreementObj;\n if (typeof agreement === 'string') {\n try {\n agreementObj = JSON.parse(agreement);\n } catch (err) {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('json_decode_fail', err));\n return false;\n }\n } else {\n agreementObj = agreement;\n }\n if (typeof agreementObj === 'undefined') {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('json_decode_fail'));\n return false;\n }\n if (!hasOwn$2.call(agreementObj, 'object')\n || agreementObj.object !== 'agreement'\n || !hasOwn$2.call(agreementObj, 'channel')\n || !hasOwn$2.call(agreementObj, 'credential')\n || typeof agreementObj.credential !== 'object'\n ) {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('invalid_object'));\n return false;\n }\n if (!hasOwn$2.call(agreementObj.credential, agreementObj.channel)) {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('invalid_credential'));\n return false;\n }\n var credential = agreementObj.credential[agreementObj.channel];\n var urlToOpen;\n if (typeof credential === 'string') {\n urlToOpen = credential;\n } else if (hasOwn$2.call(credential, 'credential')\n && typeof credential.credential === 'string'\n ) {\n urlToOpen = credential.credential;\n }\n if (typeof urlToOpen === 'undefined') {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('invalid_credential'));\n return false;\n }\n if (agreementObj.channel.substring(0, 6) === 'alipay') {\n var url = new URL(urlToOpen);\n urlToOpen = 'http://d.alipay.com/i/index.htm?iframeSrc='\n + encodeURIComponent('alipays://platformapi/startapp?appId=60000157'\n +'&appClearTop=false&startMultApp=YES&sign_params='\n + encodeURIComponent(url.search.substring(1))\n );\n }\n setTimeout(function() {\n utils_1.redirectTo(urlToOpen);\n }, 0);\n return true;\n }\n};\n\nvar hasOwn$1 = {}.hasOwnProperty;\nvar mods = {};\nvar mods_1 = mods;\nmods.channels = {\n alipay: alipay,\n alipay_lite: alipay_lite,\n alipay_pc_direct: alipay_pc_direct,\n alipay_qr: alipay_qr,\n alipay_qr_lakala: alipay_qr_lakala,\n alipay_wap: alipay_wap,\n alipay_wap_lakala: alipay_wap_lakala,\n bfb_wap: bfb_wap,\n cb_alipay_pc_direct: cb_alipay_pc_direct,\n cb_alipay_wap: cb_alipay_wap,\n cb_wx_pub: cb_wx_pub,\n ccb_qr: ccb_qr,\n ccb_wap: ccb_wap,\n cmb_pc_qr: cmb_pc_qr,\n cmb_wallet: cmb_wallet,\n coolcredit: coolcredit,\n cp_b2b: cp_b2b,\n isv_lite: isv_lite,\n isv_wap: isv_wap,\n jdpay_wap: jdpay_wap,\n pab_pc: pab_pc,\n paypal: paypal,\n qpay_pub: qpay_pub,\n upacp_b2b: upacp_b2b,\n upacp_pc: upacp_pc,\n upacp_wap: upacp_wap,\n wx_lite: wx_lite,\n wx_lite_pab: wx_lite_pab,\n wx_pub: wx_pub,\n wx_pub_hzbank: wx_pub_hzbank,\n wx_pub_pab: wx_pub_pab,\n wx_wap: wx_wap,\n yeepay_wap: yeepay_wap\n};\nmods.extras = {\n ap: ap,\n agreement: agreement\n};\nmods.getChannelModule = function(channel) {\n if (hasOwn$1.call(mods.channels, channel)) {\n return mods.channels[channel];\n }\n return undefined;\n};\nmods.getExtraModule = function(name) {\n if (hasOwn$1.call(mods.extras, name)) {\n return mods.extras[name];\n }\n return undefined;\n};\n\nvar version = version$1.v;\nvar hasOwn = {}.hasOwnProperty;\nvar PingppSDK = function () {\n init.init();\n};\nPingppSDK.prototype.version = version;\nvar main = new PingppSDK();\nvar PingppError = errors.Error;\nPingppSDK.prototype.createPayment = function (\n chargeJSON, callback, signature, debug\n) {\n if (typeof callback === 'function') {\n callbacks.userCallback = callback;\n }\n try {\n payment_elements.init(chargeJSON);\n } catch (e) {\n if (e instanceof PingppError) {\n callbacks.innerCallback('fail',\n callbacks.error(e.message, e.extra));\n return;\n } else {\n throw e;\n }\n }\n if (!hasOwn.call(payment_elements, 'id')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'no_charge_id'));\n return;\n }\n if (!hasOwn.call(payment_elements, 'channel')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'no_channel'));\n return;\n }\n if (hasOwn.call(payment_elements, 'app')) {\n if (typeof payment_elements.app === 'string') {\n stash.app_id = payment_elements.app;\n } else if (typeof payment_elements.app === 'object' &&\n typeof payment_elements.app.id === 'string') {\n stash.app_id = payment_elements.app.id;\n }\n }\n var channel = payment_elements.channel;\n if (!hasOwn.call(payment_elements, 'credential')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'no_credential'));\n return;\n }\n if (payment_elements.paid && payment_elements.actual_amount === 0) {\n callbacks.innerCallback('success');\n return;\n }\n if (!payment_elements.credential) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'credential_is_undefined'));\n return;\n }\n if (!hasOwn.call(payment_elements.credential, channel)) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'credential_is_incorrect'));\n return;\n }\n if (!hasOwn.call(payment_elements, 'livemode')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'no_livemode_field'));\n return;\n }\n var channelModule = mods_1.getChannelModule(channel);\n if (typeof channelModule === 'undefined') {\n console.error('channel module \"' + channel + '\" is undefined');\n callbacks.innerCallback('fail',\n callbacks.error('invalid_channel',\n 'channel module \"' + channel + '\" is undefined')\n );\n return;\n }\n if (payment_elements.livemode === false) {\n if (hasOwn.call(channelModule, 'runTestMode')) {\n channelModule.runTestMode(payment_elements);\n } else {\n testmode.runTestMode(payment_elements);\n }\n return;\n }\n if (typeof signature != 'undefined') {\n stash.signature = signature;\n }\n if (typeof debug == 'boolean') {\n stash.debug = debug;\n }\n channelModule.handleCharge(payment_elements);\n};\nPingppSDK.prototype.setAPURL = function (url) {\n stash.APURL = url;\n};\nPingppSDK.prototype.setUrlReturnCallback = function (callback, channels) {\n if (typeof callback === 'function') {\n callbacks.urlReturnCallback = callback;\n } else {\n throw 'callback need to be a function';\n }\n if (typeof channels !== 'undefined') {\n if (Array.isArray(channels)) {\n callbacks.urlReturnChannels = channels;\n } else {\n throw 'channels need to be an array';\n }\n }\n};\nPingppSDK.prototype.signAgreement = function (agreement, callback) {\n if (typeof callback === 'function') {\n callbacks.userAgreementCallback = callback;\n }\n var module = mods_1.getExtraModule('agreement');\n if (typeof module === 'undefined') {\n console.error('module \"agreement\" is undefined');\n callbacks.innerCallback('fail',\n callbacks.error('invalid_module',\n 'module \"agreement\" is undefined')\n );\n return false;\n }\n return module.signAgreement(agreement);\n};\n\nfunction pingPay(payString) {\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-pingpp-begin', custom: { payString: payString } });\r\n return new Promise(function (resolve, reject) {\r\n main.createPayment(payString, function (result, err) {\r\n if (EPayResult[result] === EPayResult.success) {\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-pingpp-success', custom: { result: result } });\r\n resolve();\r\n return;\r\n }\r\n var title = '支付失败,用户非法操作';\r\n var error = EPayResult[result] || result;\r\n if (!result) {\r\n title = '支付失败,ping++内部错误';\r\n error = err;\r\n }\r\n reject(error);\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-pingpp-fail', custom: { title: title, error: error } });\r\n });\r\n });\r\n}\r\nfunction appPay(payString, payWay) {\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-app-begin', custom: { payString: payString } });\r\n return new Promise(function (resolve, reject) {\r\n Sailer[PAY_WAY[payWay] || payWay](getAppPayString(payString), function (result) {\r\n var _a = result.data, data = _a === void 0 ? 0 : _a;\r\n if (EPayResult.success === EPayResult[data]) {\r\n resolve();\r\n return;\r\n }\r\n reject(EPayResult[data] || EPayResult[0]);\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-app-fail', custom: { result: result } });\r\n }, function (d) {\r\n var res = (d && d.data) || 0;\r\n reject(EPayResult[res]);\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-app-sailer-fail', custom: { d: d } });\r\n });\r\n });\r\n}\r\nfunction wxAppPay(payStringJson) {\r\n var paramKeys = ['app_id', 'mch_id', 'prepay_id', 'nonce_str', 'time_stamp', 'sign'];\r\n var _a = getPaymentParams(payStringJson, paramKeys), appid = _a.app_id, partnerid = _a.mch_id, prepayid = _a.prepay_id, noncestr = _a.nonce_str, timestamp = _a.time_stamp, sign = _a.sign;\r\n return wxAppNativePay({ appid: appid, partnerid: partnerid, prepayid: prepayid, noncestr: noncestr, timestamp: timestamp, sign: sign });\r\n}\r\nfunction wxAppNativePay(payParams) {\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-wx-app-begin', custom: { payParams: payParams } });\r\n return new Promise(function (resolve, reject) {\r\n Sailer.wxsdkpay(payParams, function (result) {\r\n var _a = result.data, data = _a === void 0 ? 0 : _a;\r\n if (data === 2) {\r\n reject('请先安装微信');\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-wx-app-error', custom: { error: '请先安装微信' } });\r\n return;\r\n }\r\n if (EPayResult.success === EPayResult[data]) {\r\n resolve();\r\n return;\r\n }\r\n reject(EPayResult[data] || EPayResult[0]);\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-wx-app-error', custom: { error: 'app支付失败', result: result } });\r\n }, function (d) {\r\n var res = (d && d.data) || 0;\r\n reject(EPayResult[res]);\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-wx-app-sailer-fail', custom: { error: 'Sailer调用异常', d: d } });\r\n });\r\n });\r\n}\r\nfunction wxPay(payStringJson) {\r\n var paramKeys = ['app_id', 'nonce_str', 'package_value', 'sign', 'time_stamp', 'sign_type'];\r\n var _a = getPaymentParams(payStringJson, paramKeys), appId = _a.app_id, nonceStr = _a.nonce_str, packageValue = _a.package_value, timeStamp = _a.time_stamp, paySign = _a.sign, signType = _a.sign_type;\r\n return wxNativePay({\r\n appId: appId,\r\n package: packageValue,\r\n nonceStr: nonceStr,\r\n timeStamp: timeStamp,\r\n signType: signType,\r\n paySign: paySign\r\n });\r\n}\r\nfunction wxNativePay(payParams) {\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-wx-native-begin', custom: { payParams: payParams } });\r\n return new Promise(function (resolve, reject) {\r\n WeixinJSBridge.invoke('getBrandWCPayRequest', payParams, function (res) {\r\n if (res.err_msg == 'get_brand_wcpay_request:ok') {\r\n resolve();\r\n }\r\n else if (res.err_msg == 'get_brand_wcpay_request:fail') {\r\n reject(EPayResult.fail);\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-wx-native-fail', custom: { error: '微信原生支付失败', res: res } });\r\n }\r\n });\r\n });\r\n}\r\nfunction wxMiniPay(payString) {\r\n var paramKeys = ['timeStamp', 'nonceStr', 'packageValue', 'sign', 'signType'];\r\n var _a = getPaymentParams(payString, paramKeys), timeStamp = _a.timeStamp, nonceStr = _a.nonceStr, packageValue = _a.packageValue, paySign = _a.sign, signType = _a.signType;\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-wx-mini-begin', custom: { payString: payString } });\r\n return new Promise(function (resolve, reject) {\r\n wx.requestPayment({\r\n timeStamp: timeStamp,\r\n nonceStr: nonceStr,\r\n package: packageValue,\r\n signType: signType,\r\n paySign: paySign,\r\n success: function (res) {\r\n resolve();\r\n },\r\n fail: function (err) {\r\n reject(EPayResult.fail);\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-wx-mini-fail', custom: { error: '微信小程序支付失败', err: err } });\r\n }\r\n });\r\n });\r\n}\n\nvar PrePay = (function (_super) {\r\n __extends(PrePay, _super);\r\n function PrePay() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PrePay.prototype.getPayConfigs = function (tradeNo) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var payConfigs;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4, this.getPayConfigList(tradeNo, this.payUA)];\r\n case 1:\r\n payConfigs = _a.sent();\r\n if (env.inWechat) {\r\n payConfigs = payConfigs.filter(function (item) { return item.payClient !== 'alipay'; });\r\n }\r\n if (env.inAliApp) {\r\n payConfigs = payConfigs.filter(function (item) { return item.payClient !== 'wechat'; });\r\n }\r\n return [2, payConfigs.map(function (item) {\r\n return __assign(__assign({}, item), getPayClient(item.payClient));\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n PrePay.prototype.toPay = function (payConfig, payParam) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var tradeNo, _a, redirectUrl, configKey, bizOpenId, _b, payString, status_1, payStringJson, error_1;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n Telescope.trackLog({ trackId: 'checkout-sdk-to-pay', custom: { time: Date.now(), payParam: payParam, payConfig: payConfig } });\r\n tradeNo = payParam.tradeNo, _a = payParam.redirectUrl, redirectUrl = _a === void 0 ? '' : _a;\r\n this.tradeNo = tradeNo;\r\n this.redirectUrl = redirectUrl;\r\n if (!(env.inWechat && !this.options.needLogin)) return [3, 2];\r\n configKey = this.options.configKey;\r\n if (!configKey) {\r\n throw new CheckoutError('configKey参数为必传项');\r\n }\r\n this.options.bizToken = getQueryVariable('token');\r\n if (!this.options.bizToken && configKey) {\r\n return [2, baseOfWechat(configKey, payConfig.payWay)];\r\n }\r\n if (!this.options.bizToken) return [3, 2];\r\n ZYToast.setOnceConfig({ noToast: true });\r\n return [4, getNoLoginOpenId({\r\n bizToken: this.options.bizToken,\r\n bizId: this.options.bizId\r\n })];\r\n case 1:\r\n bizOpenId = (_c.sent()).data.bizOpenId;\r\n this.bizOpenId = bizOpenId;\r\n ZYToast.clearOnceConfig();\r\n _c.label = 2;\r\n case 2: return [4, this.getRedirectUrl(payConfig)];\r\n case 3:\r\n _c.sent();\r\n _c.label = 4;\r\n case 4:\r\n _c.trys.push([4, 6, , 7]);\r\n return [4, this.queryPayString(payConfig)];\r\n case 5:\r\n _b = _c.sent(), payString = _b.payString, status_1 = _b.status, payStringJson = _b.payStringJson;\r\n if (status_1 === 2) {\r\n this.adapter.replace(this.redirectUrl);\r\n return [2, ''];\r\n }\r\n return [2, this.callPayChannel(payString, payConfig, payStringJson || '')];\r\n case 6:\r\n error_1 = _c.sent();\r\n if (error_1 instanceof CheckoutError) {\r\n throw error_1;\r\n }\r\n throw new CheckoutError(error_1);\r\n case 7: return [2];\r\n }\r\n });\r\n });\r\n };\r\n PrePay.prototype.prePay = function (payParam) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var now, tradeNo, _a, redirectUrl, payWay_1, payConfigs, payConfigList, selectedPayConfig, error_2;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n now = Date.now();\r\n tradeNo = payParam.tradeNo, _a = payParam.redirectUrl, redirectUrl = _a === void 0 ? '' : _a;\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pre-pay', custom: { time: now, redirectUrl: redirectUrl, tradeNo: tradeNo } });\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n payWay_1 = this.options.payWay;\r\n return [4, this.getPayConfigs(tradeNo)];\r\n case 2:\r\n payConfigs = _b.sent();\r\n payConfigList = payConfigs.filter(function (el) { return payWay_1.includes(el.payWay); });\r\n if (!payConfigList || payConfigList.length === 0) {\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pre-pay', custom: { interval: Date.now() - now, title: '没有配置支付方式' } });\r\n return [2, Promise.reject('没有配置支付方式')];\r\n }\r\n selectedPayConfig = payConfigList[0];\r\n return [2, this.toPay(selectedPayConfig, payParam)];\r\n case 3:\r\n error_2 = _b.sent();\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pre-pay', custom: { redirectUrl: redirectUrl, interval: Date.now() - now, error: error_2 } });\r\n return [2, Promise.reject(error_2)];\r\n case 4: return [2];\r\n }\r\n });\r\n });\r\n };\r\n PrePay.prototype.toMiniPay = function (tradeNo) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, payChannel, payWay, configId, payString;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _b.trys.push([0, 7, , 8]);\r\n return [4, getPayConfig(tradeNo, 'mini')];\r\n case 1:\r\n _a = (_b.sent()).data[0], payChannel = _a.payChannel, payWay = _a.payWay, configId = _a.configId;\r\n return [4, getPayString({\r\n tradeNo: tradeNo,\r\n payChannel: payChannel,\r\n payWay: payWay,\r\n configId: configId,\r\n payUA: 'mini',\r\n bizOpenId: this.bizOpenId,\r\n redirectUrl: ''\r\n })];\r\n case 2:\r\n payString = (_b.sent()).data.payString;\r\n _b.label = 3;\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n return [4, wxMiniPay(payString)];\r\n case 4:\r\n _b.sent();\r\n return [2, Promise.resolve(tradeNo)];\r\n case 5:\r\n _b.sent();\r\n return [2, Promise.reject('PAY_ERROR')];\r\n case 6: return [3, 8];\r\n case 7:\r\n _b.sent();\r\n return [2, Promise.reject('BIZ_ERROR')];\r\n case 8: return [2];\r\n }\r\n });\r\n });\r\n };\r\n PrePay.prototype.getRedirectUrl = function (payConfig) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var now, callbackRedirectUrl, _a, successUrl, failUrl, domain, backEventType, bizId, needLogin, configRedirectUrl;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n now = Date.now();\r\n callbackRedirectUrl = '';\r\n if (env.inH5 && payConfig.payWay === EPingPayWay.wechatH5) {\r\n callbackRedirectUrl = window.location.href + \"&finishPay=true\";\r\n }\r\n else {\r\n _a = this.options, successUrl = _a.successUrl, failUrl = _a.failUrl, domain = _a.domain, backEventType = _a.backEventType, bizId = _a.bizId, needLogin = _a.needLogin;\r\n callbackRedirectUrl =\r\n this.redirectUrl ||\r\n callBackUrl(domain, {\r\n tradeNo: this.tradeNo,\r\n bizId: bizId,\r\n login: String(needLogin),\r\n successUrl: successUrl,\r\n backEventType: backEventType,\r\n failUrl: failUrl\r\n });\r\n }\r\n return [4, getRedirectUrl(callbackRedirectUrl)];\r\n case 1:\r\n configRedirectUrl = (_b.sent()).data;\r\n this.redirectUrl = configRedirectUrl;\r\n Telescope.trackLog({ trackId: 'checkout-sdk-redirect-url', custom: { redirectUrl: this.redirectUrl, time: Date.now(), interval: Date.now() - now } });\r\n return [2];\r\n }\r\n });\r\n });\r\n };\r\n PrePay.prototype.getPayQRCode = function (tradeNo, payWays) {\r\n if (payWays === void 0) { payWays = []; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var now, payConfigs, payConfigList, result, _i, payConfigList_1, item, payString, _a, channel, credential, error_5;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _b.trys.push([0, 7, , 8]);\r\n now = Date.now();\r\n return [4, this.getPayConfigList(tradeNo, 'native')];\r\n case 1:\r\n payConfigs = _b.sent();\r\n payConfigList = [];\r\n if (payWays && payWays.length > 0) {\r\n payConfigList.push.apply(payConfigList, payConfigs.filter(function (item) { return payWays.includes(item.payWay); }));\r\n }\r\n else {\r\n payConfigList.push.apply(payConfigList, payConfigs);\r\n }\r\n if (!(payConfigList && payConfigList.length > 0)) return [3, 6];\r\n result = {};\r\n _i = 0, payConfigList_1 = payConfigList;\r\n _b.label = 2;\r\n case 2:\r\n if (!(_i < payConfigList_1.length)) return [3, 5];\r\n item = payConfigList_1[_i];\r\n return [4, getPayString(__assign(__assign({}, item), { tradeNo: tradeNo, payUA: 'native', productId: tradeNo }))];\r\n case 3:\r\n payString = (_b.sent()).data.payString;\r\n _a = JSON.parse(payString), channel = _a.channel, credential = _a.credential;\r\n result[EQRCodePayWay[channel]] = credential[channel];\r\n _b.label = 4;\r\n case 4:\r\n _i++;\r\n return [3, 2];\r\n case 5:\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-qrCode', custom: { payWays: payWays, interval: Date.now() - now, result: result, payConfigList: payConfigList } });\r\n return [2, Promise.resolve(result)];\r\n case 6: return [2, Promise.resolve({})];\r\n case 7:\r\n error_5 = _b.sent();\r\n return [2, Promise.reject(error_5)];\r\n case 8: return [2];\r\n }\r\n });\r\n });\r\n };\r\n PrePay.prototype.getPayConfigList = function (tradeNo, payUA) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var now, _a, configList, message, error_6;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n now = Date.now();\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4, getPayConfig(tradeNo, payUA)];\r\n case 2:\r\n _a = _b.sent(), configList = _a.data, message = _a.message;\r\n if (!configList && message) {\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-config-error', custom: { message: message, time: Date.now() - now } });\r\n return [2, Promise.reject(new Error(message))];\r\n }\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-config', custom: { time: Date.now() - now, configList: __spreadArrays(configList) } });\r\n return [2, configList];\r\n case 3:\r\n error_6 = _b.sent();\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-config-error', custom: error_6 });\r\n return [2, Promise.reject(error_6)];\r\n case 4: return [2];\r\n }\r\n });\r\n });\r\n };\r\n PrePay.prototype.queryPayString = function (payConfig) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var now, payData, payString, status_2, payStringJson, error_7, code;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ZYToast.setOnceConfig({ noToast: true });\r\n now = Date.now();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4, getPayString(__assign(__assign({}, payConfig), { redirectUrl: this.redirectUrl, tradeNo: this.tradeNo, bizOpenId: this.bizOpenId, payUA: this.payUA }))];\r\n case 2:\r\n payData = (_a.sent()).data;\r\n payString = payData.payString, status_2 = payData.status, payStringJson = payData.payStringJson;\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-string', custom: { payString: payString, status: status_2, payStringJson: payStringJson, time: Date.now(), interval: Date.now() - now } });\r\n return [2, { payString: payString, status: status_2, payStringJson: payStringJson }];\r\n case 3:\r\n error_7 = _a.sent();\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-string-error', custom: error_7 });\r\n code = ['102002004', '102002005', '102002006'].indexOf(error_7.code) > -1 ? error_7.code : '';\r\n throw new CheckoutError(error_7.message, ERROR_TYPE.errorDialog, code);\r\n case 4: return [2];\r\n }\r\n });\r\n });\r\n };\r\n PrePay.prototype.callPayChannel = function (payString, _a, payStringJson) {\r\n var _this = this;\r\n var payWay = _a.payWay, payChannel = _a.payChannel;\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-begin', custom: { redirectUrl: this.redirectUrl, time: Date.now(), payWay: payWay, payChannel: payChannel, payString: payString, payStringJson: payStringJson } });\r\n var PayFunction;\r\n if (this.payUA === 'app') {\r\n PayFunction = payChannel !== 'pingxxpay' ? wxAppPay : appPay;\r\n }\r\n else {\r\n PayFunction = payChannel !== 'pingxxpay' ? wxPay : pingPay;\r\n }\r\n return new Promise(function (resolve, reject) {\r\n PayFunction(payChannel !== 'pingxxpay' ? payStringJson : payString, payWay)\r\n .then(function () {\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-success', custom: { redirectUrl: _this.redirectUrl, time: Date.now() } });\r\n _this.adapter.replace(_this.redirectUrl);\r\n resolve();\r\n })\r\n .catch(function (err) {\r\n Telescope.trackLog({ trackId: 'checkout-sdk-pay-error', custom: { err: err, time: Date.now() } });\r\n reject(err);\r\n });\r\n });\r\n };\r\n PrePay.prototype.getMallSassOrderDetail = function (params) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var res;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4, getMallSaasDetail(params)];\r\n case 1:\r\n res = _a.sent();\r\n if (res && res.pay_type_list && res.pay_type_list.length > 0) {\r\n res.pay_type_list = res.pay_type_list.map(function (item) {\r\n return __assign(__assign({}, item), getMallSassPayClient(item.id));\r\n });\r\n }\r\n return [2, res];\r\n }\r\n });\r\n });\r\n };\r\n PrePay.prototype.toMallPay = function (params) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var tradeType, payString, PayFunction;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Telescope.trackLog({ trackId: 'checkout-sdk-mall-pay-begin', custom: { time: Date.now() } });\r\n tradeType = getMallTradeType();\r\n return [4, getMallSaasPay(__assign(__assign({}, params), { tradeType: tradeType }))];\r\n case 1:\r\n payString = _a.sent();\r\n if (tradeType === EMallSassTradeType.APP) {\r\n PayFunction = wxAppNativePay;\r\n }\r\n else if (tradeType === EMallSassTradeType.OFFICIAL) {\r\n PayFunction = wxNativePay;\r\n }\r\n else {\r\n Telescope.trackLog({\r\n trackId: 'checkout-sdk-mall-pay-error',\r\n custom: { tradeType: tradeType, message: '商盟支付不支持在此环境下支付' }\r\n });\r\n return [2, Promise.reject('支付失败')];\r\n }\r\n return [2, new Promise(function (resolve, reject) {\r\n PayFunction(payString)\r\n .then(function () {\r\n Telescope.trackLog({ trackId: 'checkout-sdk-mall-pay-success', custom: { time: Date.now() } });\r\n resolve();\r\n })\r\n .catch(function (err) {\r\n Telescope.trackLog({ trackId: 'checkout-sdk-mall-pay-error', custom: err });\r\n reject(err);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n PrePay.prototype.toMallMiniPay = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2];\r\n });\r\n });\r\n };\r\n return PrePay;\r\n}(BaseConfig));\n\nvar index = new PrePay();\n\nexport default index;\nexport { EMallSassTradeType, EPayResult, EPingPayWay, EQRCodePayWay, ERROR_TYPE, EventTypeEnum, MALL_SASS_SUBMIT_PAY_OVER_TIME, PAY_WAY, ROUTE_PATH, adaptConfig, baseOfWechat, callBackUrl, getAppPayString, getCommonApi, getMallSaasDetail, getMallSaasPay, getMallSaasPayResult, getMallSassPayClient, getMallTradeType, getNoLoginOpenId, getOpenId, getPayClient, getPayConfig, getPayResult, getPayString, getPayUa, getPaymentParams, getQueryValues, getQueryVariable, getRedirectUrl, getTradeInfo, getUCLoginUrl, mallRequestResult, parseParam };\n/* follow me on Github! @cjinhuo */\n//# sourceMappingURL=pay.esm.js.map\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"@babel/runtime/regenerator\"),require(\"@zyf2e/capui-mobile\"),require(\"axios\"),require(\"qs\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"@babel/runtime/regenerator\",\"@zyf2e/capui-mobile\",\"axios\",\"qs\"],t):t((e=e||self).adapt={},e._regeneratorRuntime,e.capuiMobile,e.axios,e.qs)}(this,(function(e,t,n,r,o){\"use strict\";function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:\"/\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"/\",r=N.devEnv,o=\"https:\"===location.protocol?\"https:\":\"http:\",i=\"\".concat(o,\"//\").concat(e).concat(r?\".\".concat(r):\"\",\".91jkys.com\");return\"number\"!=typeof t?i+t:i+(t?\":\".concat(t):\"\")+n};var A=function(e,t,n,r,o){var i,a;document.cookie=\"\".concat(e,\"=\").concat(t).concat(n?\"; expires=\".concat((i=n,a=new Date,a.setTime(a.getTime()+60*i*60*1e3),a.toUTCString())):\"\").concat(r?\"; path=\".concat(r):\"\").concat(o?\"; domain=\".concat(o):\"\")},P=function(e,t){return/^\\/\\//.test(e)&&(e=(\"http:\"===location.protocol?\"http:\":\"https:\")+e),new Promise((function(t,n){try{var r=document.createElement(\"script\");r.readyState?r.onreadystatechange=function(){\"loaded\"!==r.readyState&&\"complete\"!==r.readyState||(r.onreadystatechange=null,t())}:r.onload=function(){t()},r.src=e,document.body.appendChild(r)}catch(e){n(e)}})).then((function(){t&&t()}))},C=function(e){return new Promise((function(t){setTimeout((function(){t()}),e)}))},T=function(e){for(var t=(window.location.search.substring(1)+\"&\"+window.location.hash.split(\"?\")[1]).split(\"&\"),n=0;nparseInt(r[s]))return!0;if(parseInt(n[s])=i},S=new(function(){function e(){l(this,e),h(this,\"toast\",void 0),h(this,\"onceConfig\",{})}var r,o,i;return p(e,[{key:\"open\",value:function(){var e=this.onceConfig.noToast;this.toast||e||(this.toast=n.Toast.loading({duration:0,forbidClick:!0,message:\"加载中...\"}),this.toast.open())}},{key:\"success\",value:(i=u(t.mark((function e(){var n;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.toast){e.next=2;break}return e.abrupt(\"return\");case 2:return(n=this.onceConfig.success)&&Object.assign(this.toast,a({type:\"text\"},n)),e.next=6,this.delayClose(!n);case 6:case\"end\":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:\"error\",value:(o=u(t.mark((function e(r){var o;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=r.message,!this.onceConfig.noToast){e.next=4;break}return e.abrupt(\"return\");case 4:return this.toast||(this.toast=n.Toast({})),this.toast.type=\"text\",this.toast.message=o,e.next=9,this.delayClose();case 9:case\"end\":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:\"delayClose\",value:(r=u(t.mark((function e(){var n,r,o,i=arguments;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=i.length>0&&void 0!==i[0]&&i[0],r=this.onceConfig,o=r.manual,r.noToast,!o){e.next=4;break}return e.abrupt(\"return\");case 4:if(n){e.next=7;break}return e.next=7,C(3e3);case 7:this.close();case 8:case\"end\":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:\"close\",value:function(){this.toast&&(this.toast.close(),this.toast.clear(),this.toast=void 0,this.clearOnceConfig())}},{key:\"setOnceConfig\",value:function(e){Object.assign(this.onceConfig,e)}},{key:\"clearOnceConfig\",value:function(){this.onceConfig={}}}]),e}());!function(e){e.UPDATE_APP_MESSAGE_SHARE_DATA=\"updateAppMessageShareData\",e.UPDATE_TIMELINE_SHARE_DATA=\"updateTimelineShareData\",e.ON_MENU_SHARE_TIMELINE=\"onMenuShareTimeline\",e.ON_MENU_SHARE_APP_MESSAGE=\"onMenuShareAppMessage\",e.ON_MENU_SHARE_QQ=\"onMenuShareQQ\",e.ON_MENU_SHARE_WEIBO=\"onMenuShareWeibo\",e.ON_MENU_SHARE_QZONE=\"onMenuShareQZone\",e.START_RECORD=\"startRecord\",e.STOP_RECORD=\"stopRecord\",e.ON_VOICE_RECORD_END=\"onVoiceRecordEnd\",e.PLAY_VOICE=\"playVoice\",e.PAUSE_VOICE=\"pauseVoice\",e.STOP_VOICE=\"stopVoice\",e.ON_VOICE_PLAY_END=\"onVoicePlayEnd\",e.UPLOAD_VOICE=\"uploadVoice\",e.DOWNLOAD_VOICE=\"downloadVoice\",e.CHOOSE_IMAGE=\"chooseImage\",e.PREVIEW_IMAGE=\"previewImage\",e.UPLOAD_IMAGE=\"uploadImage\",e.DOWNLOAD_IMAGE=\"downloadImage\",e.TRANSLATE_VOICE=\"translateVoice\",e.GET_NETWORK_TYPE=\"getNetworkType\",e.OPEN_LOCATION=\"openLocation\",e.GET_LOCATION=\"getLocation\",e.HIDE_OPTION_MENU=\"hideOptionMenu\",e.SHOW_OPTION_MENU=\"showOptionMenu\",e.HIDE_MENU_ITEMS=\"hideMenuItems\",e.SHOW_MENU_ITEMS=\"showMenuItems\",e.HIDE_ALL_NON_BASE_MENU_ITEM=\"hideAllNonBaseMenuItem\",e.SHOW_ALL_NON_BASE_MENU_ITEM=\"showAllNonBaseMenuItem\",e.CLOSE_WINDOW=\"closeWindow\",e.SCAN_QR_CODE=\"scanQRCode\",e.CHOOSE_WX_PAY=\"chooseWXPay\",e.OPEN_PRODUCT_SPECIFIC_VIEW=\"openProductSpecificView\",e.ADD_CARD=\"addCard\",e.CHOOSE_CARD=\"chooseCard\",e.OPEN_CARD=\"openCard\"}(e.WX_FUNCTION_ENUM||(e.WX_FUNCTION_ENUM={}));var M=function(e){switch(e){case\"INTERNET_HOSPITAL\":return{h5LoginUrl:\"\",wechatLoginApi:k(\"api\",\"/share-login-center/weChat/login?bizId=INTERNET_HOSPITAL&role=2&isNeedCheckMobileBind=true\"),jkysWechatURL:\"\".concat(k(\"apigw\",\"\"),\"/api/login/1.0/wx_config?bizId=INTERNET_HOSPITAL\")};default:return{h5LoginUrl:k(\"static\",\"/collection/login2/dist/index.html#/login?existVoiceCode=true&redirect=\"),wechatLoginApi:k(\"jkys-wechat\",\"/v3/wechat/relogin\"),jkysWechatURL:\"\".concat(k(\"jkys-wechat\",\"/v3\"),\"/wechat/shareConfig\")}}},U=function(){function t(n){return l(this,t),h(this,\"config\",a(a({bizId:\"\",oldBaseURL:k(\"api\"),baseURL:k(\"apigw\",\"/api\"),loginKey:\"login\",cookieHost:\".91jkys.com\",wechatDebug:!1,jkysWechatURL:\"\",openTagList:[],wechatAPIList:[e.WX_FUNCTION_ENUM.UPDATE_APP_MESSAGE_SHARE_DATA,e.WX_FUNCTION_ENUM.UPDATE_TIMELINE_SHARE_DATA,e.WX_FUNCTION_ENUM.SHOW_OPTION_MENU,e.WX_FUNCTION_ENUM.HIDE_OPTION_MENU,e.WX_FUNCTION_ENUM.HIDE_ALL_NON_BASE_MENU_ITEM,e.WX_FUNCTION_ENUM.SHOW_ALL_NON_BASE_MENU_ITEM,e.WX_FUNCTION_ENUM.GET_LOCATION,e.WX_FUNCTION_ENUM.CLOSE_WINDOW],wxConfig:null},M(\"\")),{},{wechatMiniProgramLoginUrl:\"/pages/login/select\",checkOpenIdType:\"\",jumpWechatMPLogin:!1,customWebPageLoginUrl:\"\",customHeaders:null,loginTelescopeParams:null,customAppLoginSuccessCb:null})),t.instance||(t.instance=this),n&&t.instance.setConfig(n),t.instance}return p(t,[{key:\"getConfig\",value:function(){return this.config}},{key:\"setConfig\",value:function(e){var t=e.bizId?M(e.bizId):{};this.config=a(a(a({},this.config),t),e)}}]),t}();h(U,\"instance\",void 0);var x,L=N.inAPP;window.MPLoginTimes=0,function(e){e.LOGIN_REQUIRED=\"LOGIN_REQUIRED\",e.INVALID_TOKEN=\"INVALID_TOKEN\",e[e.UNAUTHORIZED=401]=\"UNAUTHORIZED\",e.ECONNABORTED=\"ECONNABORTED\",e.ACCOUNT_EXCEPTION=\"ACCOUNT_EXCEPTION\",e.DIALOG=\"DIALOG_ERROR\"}(x||(x={}));var R=function(){function e(t,n){var r=this;return l(this,e),h(this,\"axios\",void 0),h(this,\"post\",(function(){var e;return(e=r.axios).post.apply(e,arguments)})),h(this,\"put\",(function(){var e;return(e=r.axios).put.apply(e,arguments)})),h(this,\"get\",(function(){var e;return(e=r.axios).get.apply(e,arguments)})),h(this,\"delete\",(function(){var e;return(e=r.axios).delete.apply(e,arguments)})),e.instance||(e.instance=this),t&&n&&e.instance.init(t,n),e.instance}return p(e,[{key:\"init\",value:function(e,o){var i=(new U).getConfig(),s=i.baseURL,c=i.customHeaders;this.axios=r.create({baseURL:s,timeout:3e4,withCredentials:!L,headers:a({\"Content-Type\":\"application/json\"},c)}),this.axios.interceptors.request.use(function(){var n=u(t.mark((function n(r){var o,i;return t.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(S.open(),!L){t.next=7;break}return t.next=4,e();case 4:o=t.sent,i=o.token,Object.assign(r.headers,{token:i});case 7:return t.abrupt(\"return\",r);case 8:case\"end\":return t.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}(),(function(e){return Promise.reject(e)})),this.axios.interceptors.response.use(function(){var e=u(t.mark((function e(r){var i,a,s,c,u,l,f;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=r.data,S.success(),a=i.ok,s=i.result,c=i.error,!a){e.next=6;break}return window.MPLoginTimes=0,e.abrupt(\"return\",void 0===s?i:s);case 6:if(!c){e.next=34;break}if(u=c.message,l=void 0===u?\"服务器开小差了,请稍后再试\":u,(f=c.code)!==x.ACCOUNT_EXCEPTION){e.next=19;break}return S.close(),e.prev=10,e.next=13,n.Dialog.confirm({title:\"您的账号异常\",message:l,confirmButtonText:\"拨打\"});case 13:location.href=\"tel:\".concat(c.serviceTel),e.next=18;break;case 16:e.prev=16,e.t0=e.catch(10);case 18:return e.abrupt(\"return\",Promise.reject(c));case 19:if(\"401\"!==f&&f!==x.INVALID_TOKEN&&f!==x.LOGIN_REQUIRED){e.next=23;break}return window.MPLoginTimes=window.MPLoginTimes+1,o(),e.abrupt(\"return\",Promise.reject(c));case 23:if(f!==x.DIALOG){e.next=32;break}return e.prev=24,e.next=27,n.Dialog.alert({title:\"提示\",message:l});case 27:e.next=31;break;case 29:e.prev=29,e.t1=e.catch(24);case 31:return e.abrupt(\"return\",Promise.reject(c));case 32:return S.error(new Error(l)),e.abrupt(\"return\",Promise.reject(c));case 34:return e.abrupt(\"return\",Promise.reject(i));case 35:case\"end\":return e.stop()}}),e,null,[[10,16],[24,29]])})));return function(t){return e.apply(this,arguments)}}(),(function(e){var t=e.response,n=e.code;try{if(\"Error: Network Error\"===String(e)&&/INTERNET_HOSPITAL/.test((new U).getConfig().jkysWechatURL))throw o(),new Error(\"请登录\");if(t&&t.status===x.UNAUTHORIZED)throw window.MPLoginTimes=window.MPLoginTimes+1,o(),new Error(\"请登录\");throw n===x.ECONNABORTED?new Error(\"服务器开小差了,请稍后再试\"):new Error(\"请求失败\")}catch(t){return S.error(t),Promise.reject(a(a({},e),{},{message:t.message}))}}))}}]),e}();h(R,\"instance\",void 0);var D,W=new R,j=(new U).getConfig().oldBaseURL,H=N.inAPP;!function(e){e.LOGIN_REQUIRED=\"LOGIN_REQUIRED\",e.INVALID_TOKEN=\"INVALID_TOKEN\",e[e.UNAUTHORIZED=401]=\"UNAUTHORIZED\",e.ECONNABORTED=\"ECONNABORTED\",e.ACCOUNT_EXCEPTION=\"ACCOUNT_EXCEPTION\"}(D||(D={}));var B=function(){function e(t){return l(this,e),h(this,\"axios\",void 0),h(this,\"post\",void 0),h(this,\"put\",void 0),e.instance||(e.instance=this),t&&e.instance.init(t),e.instance}return p(e,[{key:\"init\",value:function(e){this.axios=r.create({baseURL:j,timeout:3e4,withCredentials:!H,headers:{\"Content-Type\":\"application/json\"}}),this.axios.interceptors.request.use((function(e){return S.open(),H&&Object.assign(e,{headers:{token:localStorage.getItem(\"USER_TOKEN\")||\"\"}}),e}),(function(e){return Promise.reject(e)})),this.axios.interceptors.response.use((function(e){return S.success(),Promise.resolve(e.data)}),(function(t){if(t&&t.response&&401===t.response.status)return S.error(new Error(\"重新登录\")),e(),!1;try{if(!(t&&t.response&&t.response.data))throw t&&t.code===D.ECONNABORTED?new Error(\"服务器开小差了,请稍后再试\"):t&&\"401\"===t.code||t.code===D.INVALID_TOKEN||t.code===D.LOGIN_REQUIRED?(e(),new Error(\"请登录\")):new Error(\"请求失败\");var n=t.response.data.errorMessage||t.response.data.message;n&&S.error(new Error(n))}catch(e){S.error(t)}return Promise.reject(t)})),this.post=this.axios.post,this.put=this.axios.put}},{key:\"get\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.get(e,a(a({},n),{},{params:t}))}},{key:\"delete\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.axios.delete(e,a(a({},n),{},{params:t}))}}]),e}();h(B,\"instance\",void 0);var V,G=new B,Q=function(){function e(){var t=this;l(this,e),h(this,\"config\",new U),h(this,\"axios\",W),h(this,\"qs\",o),h(this,\"axiosOld\",G),h(this,\"userInfo\",{uid:-1e3,uuid:\"\",token:\"\",appver:\"\",name:\"\",sex:void 0,avatar:\"\",nickname:\"\",mobile:\"\"}),h(this,\"uploadInput\",void 0),h(this,\"getUserInfo\",(function(){return t.isLogin()?t.getLoginUserInfo():Promise.resolve(t.userInfo)}))}var n,i;return p(e,[{key:\"setTitle\",value:function(e){document.title=e}},{key:\"hideNavBar\",value:function(){this.doNothing()}},{key:\"hideAllNonBaseMenuItem\",value:function(){this.doNothing()}},{key:\"showAllNonBaseMenuItem\",value:function(){this.doNothing()}},{key:\"hideOptionMenu\",value:function(){this.doNothing()}},{key:\"showOptionMenu\",value:function(){this.doNothing()}},{key:\"isLogin\",value:function(){var e,t,n=this.config.getConfig().loginKey;return\"true\"===(e=n,t=null,document.cookie.split(\"; \").some((function(n){var r=O(n.split(\"=\"),2),o=r[0],i=r[1];return o===e&&(t=unescape(i),!0)})),t)}},{key:\"onLogin\",value:function(e,t){this.doNothing()}},{key:\"login\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:location.href,t=arguments.length>1?arguments[1]:void 0;this.isLogin()||this.reLogin(e,t)}},{key:\"getLoginUserInfo\",value:(i=u(t.mark((function e(n){var o,i,s,c,u;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=this.config.getConfig(),i=o.baseURL,e.next=3,r.get(\"composite_user/1.0/user_info\",{baseURL:i,timeout:3e4,withCredentials:!0});case 3:return s=e.sent,c=s.data,u=a(a({},this.userInfo),c),n&&n(u),e.abrupt(\"return\",u);case 8:case\"end\":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:\"openShare\",value:function(e){return Promise.resolve(this.doNothing())}},{key:\"goIM\",value:function(e,t){\"replace\"!==t?this.redirect(\"\".concat(location.protocol,\"//static\").concat(N.devEnv?\".\".concat(N.devEnv):\"\",\".91jkys.com/f2e/customer-h5-im/#/chat/chatCore?\").concat(this.qs.stringify(a(a({},e),{},{to:e.toId})))):this.replace(\"\".concat(location.protocol,\"//static\").concat(N.devEnv?\".\".concat(N.devEnv):\"\",\".91jkys.com/f2e/customer-h5-im/#/chat/chatCore?\").concat(this.qs.stringify(a(a({},e),{},{to:e.toId}))))}},{key:\"redirect\",value:function(e,t){location.href=e}},{key:\"replace\",value:function(e){location.replace(e)}},{key:\"goBack\",value:function(e){e&&this.replace(e),this.forceGoBack()}},{key:\"forceGoBack\",value:function(){history.length>1?history.back():this.closeWebview()}},{key:\"setStatusBarStyle\",value:function(e){this.doNothing()}},{key:\"doNothing\",value:function(){}},{key:\"creatUpload\",value:function(){if(!this.uploadInput){var e=document.createElement(\"input\");e.type=\"file\",e.style.display=\"none\",document.body.appendChild(e),this.uploadInput=e}}},{key:\"startUpload\",value:function(){var e=this;return new Promise((function(t,n){e.creatUpload(),e.uploadInput.addEventListener(\"change\",(function(){try{var r=Array.from(e.uploadInput.files||[]);if(r.some((function(e){return!/[jpg|jpeg|png]$/i.test(e.name)})))throw new Error(\"只支持png,jpg图片格式\");if(r.some((function(e){return e.size>10485760})))throw new Error(\"单张图片不能超过10m\");t(r)}catch(e){n(e)}})),e.uploadInput.click()}))}},{key:\"upload\",value:function(){var e=new FormData;e.append(\"action\",\"fileUpload\");var t=this.uploadInput.files;return t&&e.append(\"file\",t[0]),this.axios.post(\"spider-fileupload/1.0/upload\",e)}},{key:\"setHeaderColor\",value:function(e,t){this.doNothing()}},{key:\"onPageShow\",value:function(e,t){this.doNothing()}},{key:\"openCamera\",value:function(){return this.doNothing(),Promise.resolve(\"\")}},{key:\"chooseSingleImage\",value:function(){return this.doNothing(),Promise.resolve({url:\"\"})}},{key:\"getPaddingTop\",value:function(){return 0}},{key:\"isMiniProgram\",value:function(){return!1}},{key:\"checkOpenId\",value:(n=u(t.mark((function e(){return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case\"end\":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)})},{key:\"goDoctorDetailPage\",value:function(e){e&&this.open(\"\".concat(location.protocol,\"//static\").concat(N.devEnv?\".\".concat(N.devEnv):\"\",\".91jkys.com/f2e/patient-clinic/#/specialist-detail/\").concat(e))}},{key:\"setLoginTelescopeParams\",value:function(){var e=this.config.getConfig().loginTelescopeParams;e&&sessionStorage.setItem(\"LOGIN_TELESCOPE_PARAMS\",JSON.stringify(e))}}]),e}();!function(e){e.UPDATE_APP_MESSAGE_SHARE_DATA=\"updateAppMessageShareData\",e.UPDATE_TIMELINE_SHARE_DATA=\"updateTimelineShareData\",e.ON_MENU_SHARE_TIMELINE=\"onMenuShareTimeline\",e.ON_MENU_SHARE_APP_MESSAGE=\"onMenuShareAppMessage\",e.ON_MENU_SHARE_QQ=\"onMenuShareQQ\",e.ON_MENU_SHARE_WEIBO=\"onMenuShareWeibo\",e.ON_MENU_SHARE_QZONE=\"onMenuShareQZone\",e.START_RECORD=\"startRecord\",e.STOP_RECORD=\"stopRecord\",e.ON_VOICE_RECORD_END=\"onVoiceRecordEnd\",e.PLAY_VOICE=\"playVoice\",e.PAUSE_VOICE=\"pauseVoice\",e.STOP_VOICE=\"stopVoice\",e.ON_VOICE_PLAY_END=\"onVoicePlayEnd\",e.UPLOAD_VOICE=\"uploadVoice\",e.DOWNLOAD_VOICE=\"downloadVoice\",e.CHOOSE_IMAGE=\"chooseImage\",e.PREVIEW_IMAGE=\"previewImage\",e.UPLOAD_IMAGE=\"uploadImage\",e.DOWNLOAD_IMAGE=\"downloadImage\",e.TRANSLATE_VOICE=\"translateVoice\",e.GET_NETWORK_TYPE=\"getNetworkType\",e.OPEN_LOCATION=\"openLocation\",e.GET_LOCATION=\"getLocation\",e.HIDE_OPTION_MENU=\"hideOptionMenu\",e.SHOW_OPTION_MENU=\"showOptionMenu\",e.HIDE_MENU_ITEMS=\"hideMenuItems\",e.SHOW_MENU_ITEMS=\"showMenuItems\",e.HIDE_ALL_NON_BASE_MENU_ITEM=\"hideAllNonBaseMenuItem\",e.SHOW_ALL_NON_BASE_MENU_ITEM=\"showAllNonBaseMenuItem\",e.CLOSE_WINDOW=\"closeWindow\",e.SCAN_QR_CODE=\"scanQRCode\",e.CHOOSE_WX_PAY=\"chooseWXPay\",e.OPEN_PRODUCT_SPECIFIC_VIEW=\"openProductSpecificView\",e.ADD_CARD=\"addCard\",e.CHOOSE_CARD=\"chooseCard\",e.OPEN_CARD=\"openCard\"}(V||(V={}));var Z=function(e){d(E,e);var o,i,c,f,g,v=y(E);function E(){var e;l(this,E);for(var n=arguments.length,r=new Array(n),o=0;o0&&void 0!==f[0]?f[0]:location.href.replace(/&from=singlemessage/,\"\"),o=e.config.getConfig(),i=o.wechatMiniProgramLoginUrl,a=o.loginTelescopeParams,!(E.inWechatMiniProgram&&window.MPLoginTimes<=1)){t.next=7;break}return s=\"/pages/common/webview?url=\".concat(encodeURIComponent(window.location.href)),c=a?\"&LOGIN_TELESCOPE_PARAMS=\".concat(encodeURIComponent(JSON.stringify(a))):\"\",wx.miniProgram.redirectTo({url:\"\".concat(i,\"?redirect=\").concat(encodeURIComponent(s)).concat(c)}),t.abrupt(\"return\");case 7:if(E.inWechatMiniProgram){t.next=14;break}if(u=e.config.getConfig(),!(l=u.customWebPageLoginUrl)){t.next=12;break}return location.href=l,t.abrupt(\"return\");case 12:return t.next=14,e.loginHandlerInWechat(r);case 14:case\"end\":return t.stop()}}),n)})))),e}return p(E,[{key:\"hideOptionMenu\",value:function(){this.wx.hideOptionMenu()}},{key:\"showOptionMenu\",value:function(){this.wx.showOptionMenu()}},{key:\"hideAllNonBaseMenuItem\",value:function(){this.wx.hideAllNonBaseMenuItem()}},{key:\"showAllNonBaseMenuItem\",value:function(){this.wx.showAllNonBaseMenuItem()}},{key:\"loginHandlerInWechat\",value:(g=u(t.mark((function e(){var n,o,i,a,s,c,u,l=arguments;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=l.length>0&&void 0!==l[0]?l[0]:location.href.replace(/&from=singlemessage/,\"\"),o=this.config.getConfig(),i=o.cookieHost,a=o.wechatLoginApi,s=o.wxConfig,A(\"re_url\",encodeURIComponent(n),1,\"/\",i),!/bizId/.test(a)){e.next=6;break}return window.location.replace(\"\".concat(a,\"&redirectUrl=\").concat(encodeURIComponent(n),\"&thirdAppId=\").concat(s.appId)),e.abrupt(\"return\");case 6:return e.next=8,r.get(a,{params:{returnUrl:!0},timeout:3e4,withCredentials:!0});case 8:c=e.sent,u=c.data,location.href=u.url;case 11:case\"end\":return e.stop()}}),e,this)}))),function(){return g.apply(this,arguments)})},{key:\"setShareConfig\",value:function(e,t,n){var r=e.title,o=void 0===r?\"\":r,i=e.content,a=void 0===i?\"\":i,s=e.link,c=void 0===s?\"\":s,u=e.imageUrl,l=void 0===u?\"\":u,f=e.trackId,p=void 0===f?\"\":f,h=e.isNeedLogin,d=void 0===h?1:h;if(this.wx.updateAppMessageShareData({title:o,desc:a,link:c,imgUrl:l,success:t,cancel:n}),this.wx.updateTimelineShareData({title:o,desc:a,link:c,imgUrl:l,success:t,cancel:n}),N.inWechatMiniProgram){var g={title:o||a,imageUrl:l,pageUrl:location.href,shareUrl:encodeURIComponent(c),isNeedLogin:d};p&&(g.trackId=p),window.wx.miniProgram.postMessage({data:g})}return Promise.resolve()}},{key:\"getLocation\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"wgs84\";return new Promise((function(n,r){e.wx.getLocation({type:t,success:function(e){\"getLocation:ok\"===e.errMsg?n(e):r()},fail:function(e){r(e)}})}))}},{key:\"closeWebview\",value:function(){this.wx.closeWindow()}},{key:\"open\",value:function(e){this.redirect(e)}},{key:\"setQueryToLocal\",value:(f=u(t.mark((function e(){var n;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=T(\"curChannelInDisableList\"),window.sessionStorage.setItem(\"curChannelInDisableList\",n);case 2:case\"end\":return e.stop()}}),e)}))),function(){return f.apply(this,arguments)})},{key:\"setMiniProgramH5UserToken\",value:(c=u(t.mark((function e(){var n,o,i,a,s;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=location.host.indexOf(\"91jkys.com\")>-1,o=T(\"user_token\"),i=T(\"logout\"),a=this.config.getConfig(),s=a.baseURL,localStorage.setItem(\"mp_token\",o),!n||!o){e.next=10;break}return e.next=8,r.post(\"composite_login/1.0/set_cookie\",{token:o},{baseURL:s,timeout:3e4,withCredentials:!0});case 8:e.next=13;break;case 10:if(!i){e.next=13;break}return e.next=13,r.post(\"composite_login/1.0/set_cookie\",{token:\"null\"},{baseURL:s,timeout:3e4,withCredentials:!0});case 13:case\"end\":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:\"isMiniProgram\",value:function(){return E.inWechatMiniProgram}},{key:\"checkOpenId\",value:(i=u(t.mark((function e(){var o,i,a,s,c,u,l,f;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=k(\"apigw\",\"/api/composite_user/1.0/existOpenid\"),i=E.instance.config.getConfig(),a=i.checkOpenIdType,e.prev=2,e.next=5,r.get(o,{params:{type:a},timeout:3e4,withCredentials:!0});case 5:if(s=e.sent,(c=s.data).ok&&c.result){e.next=10;break}return e.next=10,this.loginHandlerInWechat();case 10:e.next=20;break;case 12:if(e.prev=12,e.t0=e.catch(2),u=e.t0.response,l=u.data,f=u.status,(l.error||{}).message&&n.Toast(l.error.message),401!==f){e.next=20;break}return e.next=20,this.loginHandlerInWechat();case 20:case\"end\":return e.stop()}}),e,this,[[2,12]])}))),function(){return i.apply(this,arguments)})},{key:\"setIsInZyjkMiniFlag\",value:function(){location.href.indexOf(\"inZyjkMini\")>-1&&sessionStorage.setItem(\"inZyjkMini\",\"1\")}},{key:\"getIsInZyjkMiniFlag\",value:function(){return!!sessionStorage.getItem(\"inZyjkMini\")}}],[{key:\"getInstance\",value:(o=u(t.mark((function e(){var n,o,i,c;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=new U,o=n.getConfig(),e.prev=2,\"object\"===(\"undefined\"==typeof wx?\"undefined\":s(wx))){e.next=6;break}return e.next=6,P(\"//static.91jkys.com/attachment/20210316204652605_db936fce9cf540e89ae70226ea953f44.js\");case 6:return e.next=8,r.get(o.jkysWechatURL,{params:{url:location.href.split(\"#\")[0]},timeout:3e4,withCredentials:!0});case 8:if(i=e.sent,0===(c=i.data).errcode||c.ok){e.next=12;break}throw new Error(\"接口返回微信配置信息错误\");case 12:if(c.ok&&(c=c.result.data||c.result),!wx){e.next=18;break}return wx.config(a(a({},c),{},{debug:!1,jsApiList:o.wechatAPIList,openTagList:o.openTagList})),n.setConfig({wxConfig:c}),e.next=18,new Promise((function(e){wx.ready(u(t.mark((function n(){return t.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return E.instance||(E.instance=new E),E.instance.wx=wx,n.prev=2,n.next=5,new Promise((function(e){wx.miniProgram.getEnv(function(){var n=u(t.mark((function n(r){return t.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(E.inWechatMiniProgram=Boolean(r.miniprogram),!E.inWechatMiniProgram){t.next=8;break}return E.instance.setIsInZyjkMiniFlag(),t.next=5,E.instance.setMiniProgramH5UserToken();case 5:e(null),t.next=12;break;case 8:if(!o.checkOpenIdType){t.next=11;break}return t.next=11,E.instance.checkOpenId();case 11:e(null);case 12:return t.next=14,E.instance.setQueryToLocal();case 14:case\"end\":return t.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}())}));case 5:n.next=12;break;case 7:if(n.prev=7,n.t0=n.catch(2),!o.checkOpenIdType){n.next=12;break}return n.next=12,E.instance.checkOpenId();case 12:e(void 0);case 13:case\"end\":return n.stop()}}),n,null,[[2,7]])}))))}));case 18:e.next=23;break;case 20:e.prev=20,e.t0=e.catch(2),console.error(e.t0);case 23:return e.abrupt(\"return\",E.instance);case 24:case\"end\":return e.stop()}}),e,null,[[2,20]])}))),function(){return o.apply(this,arguments)})}]),E}(Q);h(Z,\"instance\",void 0),h(Z,\"inWechatMiniProgram\",void 0);var q=function(e){d(o,e);var n,r=y(o);function o(){var e;return l(this,o),h(m(e=r.call(this)),\"reLogin\",u(t.mark((function n(){var r,o,i,a,s,c,u=arguments;return t.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=u.length>0&&void 0!==u[0]?u[0]:location.href,o=e.config.getConfig(),!(i=o.customWebPageLoginUrl)){t.next=5;break}return location.href=i,t.abrupt(\"return\");case 5:e.setLoginTelescopeParams(),a=encodeURIComponent(r),s=e.config.getConfig(),c=s.h5LoginUrl,location.replace(c+a);case 9:case\"end\":return t.stop()}}),n)})))),o.instance||(o.instance=m(e)),E(e,o.instance)}return p(o,[{key:\"setShareConfig\",value:function(){return Promise.resolve(this.doNothing())}},{key:\"getLocation\",value:function(){return navigator.geolocation?new Promise((function(e,t){navigator.geolocation.getCurrentPosition((function(t){var n=t.coords;e(n)}),(function(){t(new Error(\"无法获取到地理位置\"))}))})):Promise.reject(new Error(\"此浏览器不支持获取地理位置\"))}},{key:\"closeWebview\",value:function(){window.close()}},{key:\"open\",value:function(e){window.open(e)}},{key:\"checkOpenId\",value:(n=u(t.mark((function e(){return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case\"end\":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)})}]),o}(Q);h(q,\"instance\",void 0);var X=function(e){d(i,e);var n,r,o=y(i);function i(){var e;l(this,i);for(var t=arguments.length,n=new Array(t),r=0;r0&&void 0!==arguments[0]?arguments[0]:location.href,n=arguments.length>1?arguments[1]:void 0;return new Promise((function(r){e.sailer.callLogin(\"\",(function(){e.onLogin((function(){var n=e.config.getConfig().customAppLoginSuccessCb;if(n)n();else if(t)if(t===location.href){var o=e.sailer.getUserInfo().appver;e.sailer.reload&&b(o,\"6.0.0\")?e.sailer.reload():location.reload()}else e.redirect(t);r()}),!0)}),n)}))})),e}return p(i,[{key:\"getLocation\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"wgs84\";return new Promise((function(n,r){e.sailer.getLocation(t,(function(e){var t=e.data;return n(t)}),r)}))}},{key:\"redirect\",value:function(e,t){this.sailer.redirect(e,t)}},{key:\"open\",value:function(e,t){this.sailer.open(e,t)}},{key:\"replace\",value:function(e){this.sailer.replace(e)}},{key:\"onLogin\",value:function(e,t){var n=this,r=function(){t&&(n.sailer.off(\"login\",r),r=void 0),e()};this.sailer.on(\"login\",r)}},{key:\"isLogin\",value:function(){return this.sailer.getUserInfo().uid>0}},{key:\"getLoginUserInfo\",value:function(){return Promise.resolve(a(a({},this.userInfo),this.sailer.getUserInfo()))}},{key:\"setShareConfig\",value:function(e){var t=this;return new Promise((function(n,r){t.sailer.configNavBar({action:\"openShare\",text:\"分享\",param:a(a({},e),{},{link:e.link,desc:e.content})},n,r)}))}},{key:\"openShare\",value:function(e){var t=this;return new Promise((function(n,r){t.sailer.openShare(a(a({},e),{},{link:e.link,desc:e.content}),n,r)}))}},{key:\"setTitle\",value:function(e){window.document.title=e,this.sailer.setH5Title(e)}},{key:\"hideNavBar\",value:function(){this.sailer.hideNavBar()}},{key:\"forceGoBack\",value:function(){this.sailer.callNativeBack()}},{key:\"goIM\",value:function(e){1==+e.customerTypeId?this.open(\"native://page-customer-service-im-service:\".concat(JSON.stringify(e))):3==+e.customerTypeId?this.open(\"native://page-customer-service-im-adviser:\".concat(JSON.stringify(e))):4==+e.customerTypeId?this.open(\"native://page-customer-service-im-health-manage:\".concat(JSON.stringify(e))):this.open(\"native://page-customer-service-im:\".concat(JSON.stringify(e)))}},{key:\"closeWebview\",value:function(){this.sailer.closeBrowser()}},{key:\"setHeaderColor\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{r:255,g:255,b:255,a:255};this.sailer.setHeaderColor(JSON.stringify({backgroundColor:e,foregroundColor:t}))}},{key:\"onPageShow\",value:function(e,t){var n=this,r=function(){t&&(n.sailer.off(\"onPageShow\",r),r=void 0),e()};this.sailer.on(\"onPageShow\",r)}},{key:\"setStatusBarStyle\",value:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e){this.sailer.setStatusBarStyle(e)}))},{key:\"chooseSingleImage\",value:function(){var e=this;return new Promise((function(t,n){e.sailer.chooseSingleImage(\"\",(function(e){var n=e.data;return t(n)}),n)}))}},{key:\"getPaddingTop\",value:function(){return 0^this.sailer.getPaddingTop()}},{key:\"checkOpenId\",value:(r=u(t.mark((function e(){return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case\"end\":return e.stop()}}),e)}))),function(){return r.apply(this,arguments)})},{key:\"goDoctorDetailPage\",value:function(e){e&&this.open(\"native://page-doctor:\".concat(JSON.stringify({doctorId:e})))}}],[{key:\"getInstance\",value:(n=u(t.mark((function e(){return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(\"return\",new Promise((function(e){Sailer.ready(e)})).then((function(){return i.instance||(i.instance=new i),i.instance.sailer=Sailer,i.instance})));case 1:case\"end\":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)})}]),i}(Q);h(X,\"instance\",void 0);var F=new U,z=N.inAPP,K=N.inWechat,Y=N.inIframe;function J(){return(J=u(t.mark((function e(n){var r,o,i,a,s;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n&&F.setConfig(n),r=function(){return Promise.resolve(new q)},K&&!Y?r=Z.getInstance:z&&(r=X.getInstance),e.next=5,r();case 5:o=e.sent,i=o.getUserInfo,a=o.reLogin,s=o.isMiniProgram,N.inWechatMiniProgram=s(),new R(i,a),new B(a);case 12:case\"end\":return e.stop()}}),e)})))).apply(this,arguments)}var $=F;e.ZYToast=S,e.axios=W,e.axiosLegacy=G,e.config=$,e.env=N,e.getAdapter=function(){var e=new q;return K&&!Y?e=Z.instance:z&&(e=X.instance),e},e.initAdapter=function(e){return J.apply(this,arguments)},Object.defineProperty(e,\"__esModule\",{value:!0})}));\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\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 defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\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 (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var encodedPrefix = encodeDotInKeys ? prefix.replace(/\\./g, '%2E') : prefix;\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjustedPrefix + '[]';\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n var arrayFormat;\n if (opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = defaults.arrayFormat;\n }\n\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\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 generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.allowEmptyArrays,\n options.strictNullHandling,\n options.skipNulls,\n options.encodeDotInKeys,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","import { isDef, inBrowser } from '..';\nimport { isNumeric } from '../validate/number';\nexport function addUnit(value) {\n if (!isDef(value)) {\n return undefined;\n }\n\n value = String(value);\n return isNumeric(value) ? value + \"px\" : value;\n} // cache\n\nvar rootFontSize;\n\nfunction getRootFontSize() {\n if (!rootFontSize) {\n var doc = document.documentElement;\n var fontSize = doc.style.fontSize || window.getComputedStyle(doc).fontSize;\n rootFontSize = parseFloat(fontSize);\n }\n\n return rootFontSize;\n}\n\nfunction convertRem(value) {\n value = value.replace(/rem/g, '');\n return +value * getRootFontSize();\n}\n\nfunction convertVw(value) {\n value = value.replace(/vw/g, '');\n return +value * window.innerWidth / 100;\n}\n\nfunction convertVh(value) {\n value = value.replace(/vh/g, '');\n return +value * window.innerHeight / 100;\n}\n\nexport function unitToPx(value) {\n if (typeof value === 'number') {\n return value;\n }\n\n if (inBrowser) {\n if (value.indexOf('rem') !== -1) {\n return convertRem(value);\n }\n\n if (value.indexOf('vw') !== -1) {\n return convertVw(value);\n }\n\n if (value.indexOf('vh') !== -1) {\n return convertVh(value);\n }\n }\n\n return parseFloat(value);\n}","export default {\n name: '姓名',\n tel: '电话',\n save: '保存',\n confirm: '确认',\n cancel: '取消',\n assist: '辅助',\n delete: '删除',\n complete: '完成',\n loading: '加载中...',\n telEmpty: '请填写电话',\n nameEmpty: '请填写姓名',\n nameInvalid: '请输入正确的姓名',\n confirmDelete: '确定要删除吗',\n telInvalid: '请输入正确的手机号',\n vanCalendar: {\n end: '结束',\n start: '开始',\n title: '日期选择',\n confirm: '确定',\n startEnd: '开始/结束',\n weekdays: ['日', '一', '二', '三', '四', '五', '六'],\n monthTitle: function monthTitle(year, month) {\n return year + \"\\u5E74\" + month + \"\\u6708\";\n },\n rangePrompt: function rangePrompt(maxRange) {\n return \"\\u9009\\u62E9\\u5929\\u6570\\u4E0D\\u80FD\\u8D85\\u8FC7 \" + maxRange + \" \\u5929\";\n }\n },\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 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 replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.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: Format.RFC1738,\n RFC3986: Format.RFC3986\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","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\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 while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (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\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 /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (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 (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && 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, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\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 = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var j = 0; j < string.length; j += limit) {\n var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n var arr = [];\n\n for (var i = 0; i < segment.length; ++i) {\n var c = segment.charCodeAt(i);\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 || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n arr[arr.length] = hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n out += arr.join('');\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 compactQueue(queue);\n\n return value;\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 || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n"],"sourceRoot":""}