{"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","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","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","RangeError","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.ae378593.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 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 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 === '' ? [] : [].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, just add whatever is left\n\n if (segment) {\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 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,a=arguments;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=a.length>0&&void 0!==a[0]&&a[0],r=this.onceConfig,o=r.manual,i=r.noToast,!o&&!i){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":""}