{"version":3,"sources":["webpack:///./node_modules/vant/es/utils/dom/style.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/vant/es/utils/dom/node.js","webpack:///./node_modules/vant/es/utils/dom/event.js","webpack:///./node_modules/vant/es/mixins/portal.js","webpack:///./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","webpack:///./node_modules/vant/es/image-preview/shared.js","webpack:///./node_modules/vant/es/image-preview/ImagePreviewItem.js","webpack:///./node_modules/vant/es/image-preview/index.js","webpack:///./node_modules/vant/es/image-preview/ImagePreview.js","webpack:///./node_modules/vant/es/swipe-item/index.js","webpack:///./node_modules/vant/es/mixins/touch.js","webpack:///./node_modules/vant/es/utils/deep-assign.js","webpack:///./node_modules/vant/es/locale/lang/zh-CN.js","webpack:///./node_modules/vant/es/locale/index.js","webpack:///./node_modules/vant/es/image/index.js","webpack:///./node_modules/vant/es/utils/dom/raf.js","webpack:///./node_modules/vant/es/utils/format/number.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/vant/es/loading/index.js","webpack:///./node_modules/vant/es/swipe/index.js","webpack:///./node_modules/vant/es/mixins/bind-event.js","webpack:///./node_modules/vant/es/mixins/popup/context.js","webpack:///./node_modules/vant/es/mixins/popup/overlay.js","webpack:///./node_modules/vant/es/mixins/close-on-popstate.js","webpack:///./node_modules/vant/es/mixins/popup/index.js","webpack:///./node_modules/vant/es/utils/format/string.js","webpack:///./node_modules/vant/es/overlay/index.js","webpack:///./node_modules/vant/es/info/index.js","webpack:///./node_modules/vant/es/utils/validate/number.js","webpack:///./node_modules/vant/es/mixins/relation.js","webpack:///./node_modules/vant/es/divider/index.js","webpack:///./node_modules/vant/es/utils/index.js","webpack:///./node_modules/vant/es/notice-bar/index.js","webpack:///./node_modules/vant/es/utils/dom/scroll.js","webpack:///./node_modules/vant/es/icon/index.js","webpack:///./node_modules/vant/es/action-sheet/index.js","webpack:///./node_modules/vant/es/utils/validate/mobile.js","webpack:///./node_modules/vant/es/picker/shared.js","webpack:///./node_modules/vant/es/utils/constant.js","webpack:///./node_modules/vant/es/utils/deep-clone.js","webpack:///./node_modules/vant/es/picker/PickerColumn.js","webpack:///./node_modules/vant/es/picker/index.js","webpack:///./node_modules/vant/es/area/index.js","webpack:///./node_modules/vant/es/utils/router.js","webpack:///./node_modules/vant/es/cell/shared.js","webpack:///./node_modules/vant/es/cell/index.js","webpack:///./node_modules/vant/es/utils/validate/system.js","webpack:///./node_modules/vant/es/utils/dom/reset-scroll.js","webpack:///./node_modules/vant/es/field/index.js","webpack:///./node_modules/vant/es/toast/lock-click.js","webpack:///./node_modules/vant/es/toast/Toast.js","webpack:///./node_modules/vant/es/toast/index.js","webpack:///./node_modules/vant/es/button/index.js","webpack:///./node_modules/vant/es/dialog/index.js","webpack:///./node_modules/vant/es/goods-action/index.js","webpack:///./node_modules/vant/es/goods-action-button/index.js","webpack:///./node_modules/vant/es/dialog/Dialog.js","webpack:///./node_modules/vant/es/address-edit/Detail.js","webpack:///./node_modules/vant/es/switch/shared.js","webpack:///./node_modules/vant/es/mixins/field.js","webpack:///./node_modules/vant/es/switch/index.js","webpack:///./node_modules/vant/es/address-edit/index.js","webpack:///./node_modules/vant/es/radio-group/index.js","webpack:///./node_modules/vant/es/tag/index.js","webpack:///./node_modules/vant/es/mixins/checkbox.js","webpack:///./node_modules/vant/es/radio/index.js","webpack:///./node_modules/vant/es/address-list/Item.js","webpack:///./node_modules/vant/es/address-list/index.js","webpack:///./node_modules/vant/es/badge/index.js","webpack:///./node_modules/vant/es/utils/validate/date.js","webpack:///./node_modules/vant/es/calendar/utils.js","webpack:///./node_modules/vant/es/datetime-picker/utils.js","webpack:///./node_modules/vant/es/calendar/components/Month.js","webpack:///./node_modules/vant/es/calendar/components/Header.js","webpack:///./node_modules/vant/es/calendar/index.js","webpack:///./node_modules/vant/es/card/index.js","webpack:///./node_modules/vant/es/tab/index.js","webpack:///./node_modules/vant/es/tabs/utils.js","webpack:///./node_modules/vant/es/utils/interceptor.js","webpack:///./node_modules/vant/es/tabs/Title.js","webpack:///./node_modules/vant/es/sticky/index.js","webpack:///./node_modules/vant/es/tabs/Content.js","webpack:///./node_modules/vant/es/tabs/index.js","webpack:///./node_modules/vant/es/cascader/index.js","webpack:///./node_modules/vant/es/cell-group/index.js","webpack:///./node_modules/vant/es/checkbox/index.js","webpack:///./node_modules/vant/es/checkbox-group/index.js","webpack:///./node_modules/vant/es/circle/index.js","webpack:///./node_modules/vant/es/col/index.js","webpack:///./node_modules/vant/es/collapse/index.js","webpack:///./node_modules/vant/es/collapse-item/index.js","webpack:///./node_modules/vant/es/contact-card/index.js","webpack:///./node_modules/vant/es/contact-edit/index.js","webpack:///./node_modules/vant/es/contact-list/index.js","webpack:///./node_modules/vant/es/count-down/utils.js","webpack:///./node_modules/vant/es/count-down/index.js","webpack:///./node_modules/vant/es/coupon/index.js","webpack:///./node_modules/vant/es/coupon-cell/index.js","webpack:///./node_modules/vant/es/coupon-list/index.js","webpack:///./node_modules/vant/es/datetime-picker/shared.js","webpack:///./node_modules/vant/es/datetime-picker/TimePicker.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/construct.js","webpack:///./node_modules/vant/es/datetime-picker/DatePicker.js","webpack:///./node_modules/vant/es/datetime-picker/index.js","webpack:///./node_modules/vant/es/dropdown-item/index.js","webpack:///./node_modules/vant/es/mixins/click-outside.js","webpack:///./node_modules/vant/es/dropdown-menu/index.js","webpack:///./node_modules/vant/es/empty/Network.js","webpack:///./node_modules/vant/es/empty/index.js","webpack:///./node_modules/vant/es/form/index.js","webpack:///./node_modules/vant/es/goods-action-icon/index.js","webpack:///./node_modules/vant/es/grid/index.js","webpack:///./node_modules/vant/es/grid-item/index.js","webpack:///./node_modules/vant/es/index-anchor/index.js","webpack:///./node_modules/vant/es/index-bar/index.js","webpack:///./node_modules/vant/es/list/index.js","webpack:///./node_modules/vant/es/nav-bar/index.js","webpack:///./node_modules/vant/es/number-keyboard/DeleteIcon.js","webpack:///./node_modules/vant/es/number-keyboard/CollapseIcon.js","webpack:///./node_modules/vant/es/number-keyboard/Key.js","webpack:///./node_modules/vant/es/number-keyboard/index.js","webpack:///./node_modules/vant/es/pagination/index.js","webpack:///./node_modules/vant/es/panel/index.js","webpack:///./node_modules/vant/es/password-input/index.js","webpack:///./node_modules/@vant/popperjs/dist/esm/index.js","webpack:///./node_modules/vant/es/popover/index.js","webpack:///./node_modules/vant/es/progress/index.js","webpack:///./node_modules/vant/es/pull-refresh/index.js","webpack:///./node_modules/vant/es/rate/index.js","webpack:///./node_modules/vant/es/row/index.js","webpack:///./node_modules/vant/es/search/index.js","webpack:///./node_modules/vant/es/share-sheet/index.js","webpack:///./node_modules/vant/es/sidebar/index.js","webpack:///./node_modules/vant/es/sidebar-item/index.js","webpack:///./node_modules/vant/es/skeleton/index.js","webpack:///./node_modules/vant/es/sku/lang.js","webpack:///./node_modules/vant/es/sku/constants.js","webpack:///./node_modules/vant/es/sku/utils/sku-helper.js","webpack:///./node_modules/vant/es/sku/components/SkuHeader.js","webpack:///./node_modules/vant/es/sku/components/SkuHeaderItem.js","webpack:///./node_modules/vant/es/sku/components/SkuRow.js","webpack:///./node_modules/vant/es/sku/components/SkuRowItem.js","webpack:///./node_modules/vant/es/sku/components/SkuRowPropItem.js","webpack:///./node_modules/vant/es/stepper/index.js","webpack:///./node_modules/vant/es/sku/components/SkuStepper.js","webpack:///./node_modules/vant/es/utils/validate/email.js","webpack:///./node_modules/vant/es/uploader/utils.js","webpack:///./node_modules/vant/es/uploader/index.js","webpack:///./node_modules/vant/es/sku/components/SkuImgUploader.js","webpack:///./node_modules/vant/es/sku/utils/time-helper.js","webpack:///./node_modules/vant/es/sku/components/SkuDateTimeField.js","webpack:///./node_modules/vant/es/sku/components/SkuMessages.js","webpack:///./node_modules/vant/es/sku/components/SkuActions.js","webpack:///./node_modules/vant/es/sku/Sku.js","webpack:///./node_modules/vant/es/sku/index.js","webpack:///./node_modules/vant/es/slider/index.js","webpack:///./node_modules/vant/es/step/index.js","webpack:///./node_modules/vant/es/steps/index.js","webpack:///./node_modules/vant/es/submit-bar/index.js","webpack:///./node_modules/vant/es/swipe-cell/index.js","webpack:///./node_modules/vant/es/switch-cell/index.js","webpack:///./node_modules/vant/es/tabbar/index.js","webpack:///./node_modules/vant/es/tabbar-item/index.js","webpack:///./node_modules/vant/es/tree-select/index.js","webpack:///./node_modules/vant/es/index.js","webpack:///./node_modules/vant/es/utils/functional.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/vant/es/utils/create/bem.js","webpack:///./node_modules/vant/es/mixins/slots.js","webpack:///./node_modules/vant/es/utils/create/component.js","webpack:///./node_modules/vant/es/utils/create/i18n.js","webpack:///./node_modules/vant/es/utils/create/index.js","webpack:///./node_modules/vant/es/utils/vnodes.js","webpack:///./node_modules/vant/es/popup/index.js","webpack:///./node_modules/vant/es/utils/format/unit.js","webpack:///./node_modules/vant/es/notify/Notify.js","webpack:///./node_modules/vant/es/notify/index.js","webpack:///./node_modules/core-js/modules/es.reflect.to-string-tag.js"],"names":["isHidden","el","style","window","getComputedStyle","hidden","display","parentHidden","offsetParent","position","global","uncurryThis","aCallable","isObject","hasOwn","arraySlice","NATIVE_BIND","Function","concat","join","factories","construct","C","argsLength","args","list","i","module","exports","bind","that","F","this","Prototype","prototype","partArgs","arguments","boundFunction","length","apply","removeNode","parent","parentNode","removeChild","supportsPassive","opts","Object","defineProperty","get","addEventListener","e","on","target","event","handler","passive","capture","off","removeEventListener","stopPropagation","preventDefault","isStopPropagation","cancelable","getElement","selector","document","querySelector","PortalMixin","_temp","_ref","ref","afterPortal","props","getContainer","String","watch","mounted","portal","methods","container","$refs","$el","$parent","appendChild","call","_extends","assign","a","b","c","d","hasOwnProperty","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","reduce","indexOf","Array","f","g","h","mergeFn","_createNamespace","create","createComponent","bem","getDistance","touches","Math","sqrt","pow","clientX","clientY","instance","mixins","src","show","Boolean","active","Number","minZoom","maxZoom","rootWidth","rootHeight","data","scale","moveX","moveY","moving","zooming","imageRatio","displayWidth","displayHeight","computed","vertical","rootRatio","imageStyle","transitionDuration","offsetX","offsetY","transform","maxMoveX","max","maxMoveY","val","resetScale","bindTouchEvent","setScale","$emit","index","toggleScale","onTouchStart","_this$offsetX","touchStart","touchStartTime","Date","fingerNum","startMoveX","startMoveY","startScale","startDistance","onTouchMove","touchMove","deltaX","deltaY","distance","onTouchEnd","checkTap","resetTouchStatus","_this","_this$offsetX2","_this$offsetY","deltaTime","TAP_TIME","TAP_OFFSET","doubleTapTimer","clearTimeout","setTimeout","onLoad","_event$target","naturalWidth","naturalHeight","render","imageSlots","loading","skipToggleEvent","resize","className","closeable","asyncClose","overlayStyle","showIndicators","images","type","default","loop","overlay","transition","showIndex","swipeDuration","startPosition","overlayClass","closeIcon","closeOnPopstate","closeIconPosition","doubleClickTimer","value","setActive","$nextTick","swipe","swipeTo","immediate","url","getBoundingClientRect","rect","width","height","emitClose","emitScale","genIndex","$createElement","slots","genCover","cover","genImages","_this2","map","image","ImagePreviewItem","genClose","onClosed","options","shouldRender","name","defaultConfig","onClose","onChange","extend","createElement","body","$on","onScale","isArray","$once","$off","Component","install","use","offset","inited","_this$parent","size","lazyRender","activeIndicator","maxActive","count","prevActive","nextActive","$listeners","getDirection","x","y","TouchMixin","direction","startX","startY","touch","abs","LOCK_DIRECTION_DISTANCE","assignKey","to","from","key","deepAssign","keys","forEach","tel","save","confirm","cancel","delete","complete","telEmpty","nameEmpty","nameInvalid","confirmDelete","telInvalid","vanCalendar","end","start","title","startEnd","weekdays","monthTitle","year","month","rangePrompt","maxRange","vanCascader","select","vanContactCard","addText","vanContactList","vanPagination","prev","next","vanPullRefresh","pulling","loosing","vanSubmitBar","label","vanCoupon","unlimited","discount","_discount","condition","_condition","vanCouponCell","tips","_count","vanCouponList","empty","exchange","close","enable","disabled","placeholder","vanAddressEdit","area","postal","areaEmpty","addressEmpty","postalEmpty","defaultAddress","telPlaceholder","namePlaceholder","areaPlaceholder","vanAddressEditDetail","vanAddressList","add","proto","defineReactive","util","messages","$vantMessages","$vantLang","lang","_this$add","fit","alt","round","radius","lazyLoad","iconPrefix","showError","showLoading","errorIcon","loadingIcon","error","overflow","borderRadius","created","$Lazyload","onLazyLoaded","onLazyLoadError","beforeDestroy","_ref2","onError","onClick","genPlaceholder","genImage","imgData","class","attrs","objectFit","now","fallback","fn","curr","ms","id","root","iRaf","requestAnimationFrame","iCancel","cancelAnimationFrame","raf","doubleRaf","cancelRaf","range","num","min","trimExtraChar","_char","regExp","prefix","slice","match","replace","formatNumber","allowDot","allowMinus","split","addNumber","num1","num2","cardinal","$","getBuiltIn","aConstructor","anObject","fails","nativeConstruct","ObjectPrototype","push","NEW_TARGET_BUG","ARGS_BUG","FORCED","stat","forced","sham","Target","newTarget","$args","result","LoadingIcon","Spin","LoadingText","_props$textColor","fontSize","textSize","color","textColor","Loading","ctx","iconSize","isBind","onVisibilityChange","initialize","clear","autoplay","indicatorColor","duration","touchable","initialSwipe","swiping","computedWidth","computedHeight","children","_autoplay","autoPlay","maxCount","ceil","minOffset","delta","trackSize","isCorrectDirection","expect","trackStyle","mainAxis","crossAxis","indicatorStyle","backgroundColor","track","timer","offsetWidth","offsetHeight","getTargetOffset","correctPosition","move","speed","shouldSwipe","pace","emitChange","getTargetActive","targetActive","currentPosition","targetOffset","_ref$pace","_ref$offset","outRightBound","outLeftBound","_this3","targetIndex","_this4","genIndicator","_this5","slot","uid","BindEventMixin","unbind","activated","deactivated","context","zIndex","lockCount","stack","find","vm","filter","item","remove","splice","customStyle","mountOverlay","click","closeOnClickOverlay","onClickOverlay","updateOverlay","config","insertBefore","openOverlay","closeOverlay","removeOverlay","CloseOnPopstateMixin","handlePopstate","bindStatus","onPopstate","shouldReopen","$isServer","action","popupMixinProps","transitionAppear","lockScroll","PopupMixin","provide","vanPopup","onReopenCallback","open","opened","removeLock","undefined","renderOverlay","addLock","callback","classList","scrollHeight","scrollTop","status","parseInt","updateZIndex","onReopen","camelizeRE","camelize","str","_","toUpperCase","padZero","targetLength","preventTouchMove","Overlay","animationDuration","Info","dot","info","showInfo","isNumeric","test","isNaN","ChildrenMixin","_parent","_inject","_computed","indexKey","inject","disableBindRelation","bindRelation","ParentMixin","Divider","_bem","borderColor","dashed","hairline","contentPosition","inBrowser","isServer","noop","isDef","isFunction","isPromise","then","catch","object","path","_result$key","isEmpty","reset","text","mode","leftIcon","wrapable","background","scrollable","delay","wrapWidth","contentWidth","onClickIcon","onTransitionEnd","startTimer","_this2$$refs","wrap","content","barStyle","contentStyle","LeftIcon","RightIcon","iconName","isWindow","overflowScrollReg","getScroller","node","tagName","nodeType","_window$getComputedSt","overflowY","getScrollTop","top","pageYOffset","setScrollTop","scrollTo","scrollX","getRootScrollTop","documentElement","setRootScrollTop","getElementTop","scroller","getVisibleHeight","innerHeight","getVisibleTop","isImage","LEGACY_MAP","medel","correctName","Icon","_props$badge","imageIcon","tag","classPrefix","badge","ActionSheet","cancelText","onCancel","Header","Option","onClickOption","closeOnClickAction","nextTick","OptionContent","subname","CancelText","Description","description","safeAreaInsetBottom","actions","popup","isMobile","DEFAULT_ITEM_HEIGHT","pickerProps","readonly","itemHeight","showToolbar","cancelButtonText","confirmButtonText","allowHtml","visibleItemCount","RED","BORDER","BORDER_TOP","BORDER_LEFT","BORDER_BOTTOM","BORDER_SURROUND","BORDER_TOP_BOTTOM","BORDER_UNSET_TOP_BOTTOM","deepClone","obj","DEFAULT_DURATION","MOMENTUM_LIMIT_TIME","MOMENTUM_LIMIT_DISTANCE","getElementTranslateY","element","webkitTransform","translateY","isOptionDisabled","option","supportMousewheel","mousewheelTimer","valueKey","defaultIndex","initialOptions","currentIndex","setIndex","onMouseWheel","destroyed","baseOffset","setOptions","JSON","stringify","wrapper","startOffset","transitionEndTrigger","momentumOffset","allowMomentum","momentum","getIndexByOffset","stopMomentum","onClickItem","adjustIndex","_i","getOptionText","trigger","setValue","getValue","genOptions","optionStyle","_domProps","role","tabindex","selected","childData","domProps","wrapperStyle","transitionProperty","t","columns","toolbarPosition","formattedColumns","itemPxHeight","unit","dataType","firstColumn","values","format","formatCascade","formatted","cursor","_cursor$defaultIndex","_cursor","emit","getColumnValue","getColumnIndex","getValues","getIndexes","onCascadeChange","columnIndex","indexes","setColumnValues","getColumn","column","setColumnValue","setColumnIndex","optionIndex","getColumnValues","child","setValues","setIndexes","genTitle","titleSlot","genCancel","genConfirm","genToolbar","genColumns","wrapHeight","frameStyle","columnsStyle","maskStyle","backgroundSize","genColumnItems","_item$defaultIndex","PickerColumn","$scopedSlots","PLACEHOLDER_CODE","isOverseaCode","code","pickSlots","$slots","scopedSlots","areaList","columnsNum","columnsPlaceholder","province","province_list","city","city_list","county","county_list","displayColumns","placeholderMap","deep","getList","listCode","codeFill","unshift","getIndex","compareNum","parseOutputValues","parse","picker","parsedValues","onConfirm","getDefaultCode","countyCodes","cityCodes","getArea","country","names","validValues","change","isRedundantNavigation","err","message","route","router","promise","location","href","functionalRoute","$router","routeProps","cellProps","icon","center","isLink","required","titleStyle","titleClass","valueClass","labelClass","arrowDirection","border","clickable","Cell","_props$clickable","showTitle","Label","showLabel","Title","Value","showValue","alone","rightIconSlot","classes","borderless","extra","isAndroid","navigator","userAgent","toLowerCase","isIOS","resetScroll","inheritAttrs","vanField","vanForm","rules","autosize","rightIcon","clearable","formatter","maxlength","labelWidth","labelAlign","inputAlign","errorMessage","errorMessageAlign","showWordLimit","colon","clearTrigger","formatTrigger","focused","validateFailed","validateMessage","updateValue","resetValidation","validateWithTrigger","adjustSize","addField","removeField","showClear","getProp","hasValue","listeners","blur","onBlur","focus","onFocus","input","onInput","onClickInput","keypress","onKeypress","labelStyle","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","genMessage","showErrorMessage","genLabel","lockClick","lock","loadingType","forbidClick","closeOnClick","toggleClickable","onAfterEnter","onOpened","onAfterLeave","genIcon","hasIcon","defaultOptions","mask","defaultOptionsMap","queue","currentOptions","parseOptions","isInDocument","contains","createInstance","toast","transformOptions","$destroy","method","all","shift","setDefaultOptions","resetDefaultOptions","allowMultiple","$toast","Button","plain","loadingText","iconPosition","onTouchstart","block","square","renderIcon","loadingSize","renderContent","nativeType","unfit","isFirst","$options","isLast","first","last","theme","beforeClose","messageAlign","cancelButtonColor","confirmButtonColor","showCancelButton","showConfirmButton","handleAction","state","_this2$$refs$dialog","dialog","onKeydown","onEventType","Enter","Escape","genRoundButtons","genButtons","multiple","genContent","hasTitle","messageSlot","isolated","initInstance","propsData","reject","alert","$dialog","android","detailRows","searchResult","detailMaxlength","showSearchResult","shouldShowSearchResult","onSelect","express","address","trim","onFinish","field","genFinish","genSearchResult","switchProps","activeColor","inactiveColor","activeValue","inactiveValue","FieldMixin","checked","newValue","genLoading","defaultData","areaCode","postalCode","addressDetail","isDefault","isPostal","isSaving","isDeleting","showDelete","showPostal","telMaxlength","showSetDefault","saveButtonText","deleteButtonText","showArea","showDetail","disableArea","addressInfo","telValidator","postalValidator","areaColumnsPlaceholder","showAreaPopup","detailFocused","errorInfo","areaListLoaded","areaText","_this$data","arr","hideBottomFields","setAreaCode","onChangeDetail","onAreaConfirm","some","assignAreaValues","detail","onSave","items","isValid","every","msg","getErrorMessage","onDelete","setAddressDetail","onDetailBlur","genSetDefaultCell","$$v","$set","Detail","checkedColor","_value","Tag","_style","mark","CloseIcon","labelPosition","labelDisabled","shape","bindGroup","isDisabled","iconStyle","iconClicked","toggle","Children","currentValue","set","AddressItem","switchable","genTag","defaultTagText","bottom","AddressList","genList","List","DisabledList","disabledList","disabledText","addButtonText","hasContent","renderBadge","fixed","isDate","toString","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","n","iteratee","getTrueValue","getMonthEndDay","minDate","maxDate","showMark","rowHeight","currentDate","allowSameDay","showSubtitle","showMonthTitle","firstDayOfWeek","visible","rowHeightWithUnit","realDay","getDay","totalDay","placeholders","rows","day","days","getDayType","bottomInfo","getBottomInfo","getHeight","_this$$el","scrollIntoView","_this$$refs","getMultipleDayType","isSelected","prevDay","nextDay","prevSelected","nextSelected","getRangeDayType","_this$currentDate","startDay","endDay","compareToStart","compareToEnd","getDayStyle","marginLeft","genMark","genDays","genDay","genTopInfo","topInfo","genBottomInfo","subtitle","genSubtitle","genWeekDays","renderWeekDays","confirmText","defaultDate","confirmDisabledText","poppable","showConfirm","getInitialDate","months","setMonth","buttonDisabled","dayOffset","_this$vanPopup","init","onScroll","bodyHeight","floor","scrollToDate","targetDate","displayed","defaultVal","heights","heightSum","currentMonth","visibleRange","showed","onClickDay","selectedIndex","dateItem","equal","_currentDate$splice","unselectedDate","togglePopup","valid","checkRange","genMonth","Month","genFooterContent","genFooter","genCalendar","_attrs","createListener","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","computedName","_this$name","isActive","currentName","setLine","slotContent","animated","scrollspy","Content","inactive","scrollLeftTo","scrollLeft","frames","animate","scrollTopTo","current","isDown","step","callInterceptor","interceptor","done","isCard","titleColor","genText","Text","ellipsis","observer","offsetTop","offsetTopPx","isFixed","IntersectionObserver","entries","intersectionRatio","topToPageTop","emitScrollEvent","bottomToPageTop","distanceToBottom","MIN_SWIPE_DISTANCE","swipeable","touchstart","touchmove","touchend","touchcancel","genChildren","model","prop","sticky","lineWidth","lineHeight","beforeChange","titleActiveColor","titleInactiveColor","swipeThreshold","lineStyle","navStyle","activeTab","scrollOffset","tabHeight","setCurrentIndexByName","stickyFixed","shouldAnimate","titles","left","offsetLeft","matched","tab","setCurrentIndex","newIndex","findAvailableTab","newTab","newName","shouldEmitChange","diff","_this$children$index","scrollToCurrentContent","nav","onSticktScroll","params","_this6","_this7","getCurrentIndexOnScroll","_this8","Nav","_item$badge","Wrap","fieldNames","showHeader","tabs","textKey","_this$fieldNames","_this$fieldNames2","childrenKey","_this$fieldNames3","_tab$selectedOption","selectedOption","updateTabs","getSelectedOptionsByValue","selectedOptions","optionsCursor","tabIndex","nextTab","eventParams","renderHeader","renderOptions","renderOption","renderTab","unselected","renderTabs","CellGroup","Group","inset","setParentValue","toggleTask","toggleAll","_options","skipDisabled","PERIMETER","rate","getPath","clockwise","viewBoxSize","sweepFlag","layerColor","strokeLinecap","fill","strokeWidth","beforeCreate","layerStyle","stroke","hoverStyle","gradient","strokeDasharray","LinearGradient","Stops","sort","parseFloat","startTime","startRate","endRate","increase","rafId","progress","toFixed","span","spaces","_spaces$index","right","paddingLeft","paddingRight","accordion","switch","expanded","activeName","CELL_SLOTS","_expanded","contentHeight","titleSlots","$props","ContactCard","editable","defaultContact","isEdit","setDefaultLabel","contactInfo","getErrorMessageByKey","ContactList","nodes","SECOND","MINUTE","HOUR","DAY","parseTimeData","time","hours","minutes","seconds","milliseconds","parseFormat","timeData","charAt","isSameSecond","time1","time2","millisecond","autoStart","remain","formattedTime","keepAlivePaused","counting","tick","pause","endTime","microTick","macroTick","setRemain","getRemain","formatTimeStamp","timeStamp","formatDiscount","formatAmount","amount","coupon","chosen","validPeriod","_this$coupon","startAt","endAt","customValidPeriod","faceAmount","valueDesc","unitDesc","denominations","conditionMessage","originCondition","reason","coupons","chosenCoupon","CouponCell","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","oldVal","updateColumnValue","updateInnerValue","getPicker","getProxiedPicker","proxy","minHour","maxHour","minMinute","maxMinute","_this$innerValue$spli","hour","minute","_this$innerValue$spli2","_value$split","_this$getPicker$getIn","hourIndex","minuteIndex","_this$originColumns","hourColumn","minuteColumn","pair","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_isNativeReflectConstruct","Reflect","Proxy","valueOf","_construct","Parent","Class","isNativeReflectConstruct","Constructor","currentYear","_this$getBoundary","getBoundary","maxYear","maxMonth","_this$getBoundary2","minYear","minMonth","dateMethods","dateColumns","minDateVal","maxDateVal","_dateColumns$filter$","boundary","getHours","getMinutes","maxDay","TimePicker","DatePicker","showPopup","showWrapper","displayTitle","bindScroll","createEmitter","eventName","onOpen","updateOffset","onClickWrapper","Options","closeOnClickOutside","clickOutsideHandler","bar","toggleItem","onClickOutside","Titles","down","genStop","opacity","PRESETS","imageSize","genImageContent","Network","genDescription","genBottom","scrollToError","validateFirst","fields","getFieldsByNames","validateSeq","errors","validateFields","validateField","scrollToField","form","onSubmit","submit","iconClass","_this$badge","gutter","columnNum","percent","flexBasis","paddingTop","gutterValue","marginTop","_this$parent2","iconSlot","getText","textSlot","_this$parent3","surround","anchorStyle","highlightColor","getRect","scrollerRect","elRect","genAlphabet","indexList","charCodeOfA","charCodeAt","fromCharCode","stickyOffsetTop","activeAnchorIndex","sidebarStyle","highlightStyle","getScrollerRect","rects","getActiveAnchorIndex","activeItemTop","prevHeight","reachTop","scrollToElement","_event$touches$","elementFromPoint","dataset","touchActiveIndex","Indexes","check","finished","errorText","finishedText","immediateCheck","innerLoading","updated","scrollerHeight","isReachEdge","placeholderRect","clickErrorText","genFinishedText","genErrorText","Placeholder","leftText","rightText","leftArrow","safeAreaInsetTop","setHeight","navBar","genLeft","leftSlot","genRight","rightSlot","genNavBar","hasLeft","onClickLeft","hasRight","onClickRight","wider","large","isExtra","isDelete","CollapseIcon","hideOnClickOutside","randomKeyOrder","closeButtonLoading","extraKey","MAX_VALUE","showDeleteKey","genCustomKeys","genDefaultKeys","genBasicKeys","random","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","visibility","getWindow","ownerDocument","defaultView","getWindowScroll","win","pageXOffset","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","getHTMLElementScroll","getNodeScroll","getNodeName","nodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","scroll","offsets","clientLeft","clientTop","getLayoutRect","clientRect","getParentNode","assignedSlot","host","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","perspective","contain","willChange","getOffsetParent","auto","basePlacements","placements","acc","placement","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","order","modifiers","Map","visited","Set","modifier","requires","requiresIfExists","dep","has","depModifier","orderModifiers","orderedModifiers","phase","debounce","pending","getBasePlacement","mergeByName","merged","existing","getVariation","getMainAxisFromPlacement","computeOffsets","reference","basePlacement","variation","commonX","commonY","len","DEFAULT_OPTIONS","strategy","areValidElements","_len","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","popper","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","cleanupModifierEffects","scrollParents","contextElement","m","enabled","runModifierEffects","update","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","destroy","_ref3","_ref3$options","effect","cleanupFn","noopFn","onFirstUpdate","_options$scroll","_options$resize","eventListeners","popperOffsets","popperOffsets$1","unsetSides","roundOffsetsByDPR","dpr","devicePixelRatio","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","computeStyles","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","computeStyles$1","applyStyles","removeAttribute","setAttribute","effect$1","initialStyles","margin","styleProperties","property","attribute","applyStyles$1","distanceAndSkiddingToXY","invertDistance","skidding","_options$offset","_data$state$placement","offset$1","updateLocation","createPopper","popover","renderAction","onClickAction","onToggle","pivotText","pivotColor","trackColor","percentage","showPivot","pivotWidth","progressWidth","pivot","pivotStyle","portionStyle","DEFAULT_HEAD_HEIGHT","TEXT_STATUS","successText","pullingText","loosingText","pullDistance","successDuration","headHeight","headStyle","setStatus","showSuccessTip","scrollEl","checkPullStart","ceiling","ease","isLoading","genStatus","getRateStatus","allowHalf","voidColor","disabledColor","voidIcon","sizeWithUnit","gutterWithUnit","score","getScoreByPosition","genStar","isFull","isVoid","full","align","justify","groups","totalSpan","group","averagePadding","flex","Search","Action","showAction","actionText","fieldData","inheritData","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","comma","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","v","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","k","is_multiple","centerItem","selectSkuId","_this$children","_this$$refs2","disableSoldoutSku","choosable","onPreviewImg","choosed","LONG_PRESS_START_TIME","LONG_PRESS_INTERVAL","value1","value2","integer","allowEmpty","inputWidth","buttonSize","asyncChange","disablePlus","disableMinus","disableInput","decimalLength","Infinity","defaultValue","showPlus","showMinus","showInput","longPress","_this$value","minusDisabled","plusDisabled","inputStyle","buttonStyle","longPressStep","longPressTimer","isLongPress","onMousedown","createListeners","namespace","skuStockNum","selectedNum","stepperTitle","disableStepperInput","customStepperConfig","hideQuotaText","quotaUsed","startSaleNum","currentNum","limitType","intValue","stepperMinLimit","stepperLimit","limit","checkState","quotaText","_this$customStepperCo","textArr","setCurrentNum","onOverLimit","handleStepperChange","isEmail","reg","toArray","file","resultType","reader","FileReader","onload","readAsDataURL","readAsText","isOversize","files","IMAGE_REGEXP","isImageUrl","isImageFile","uploadText","beforeDelete","previewSize","previewOptions","accept","fileList","deletable","showUpload","previewFullImage","imageFit","uploadIcon","previewSizeWithUnit","urls","URL","revokeObjectURL","getDetail","response","resetInput","readFile","contents","onAfterRead","validFiles","oversizeFiles","isValidFiles","_file$beforeDelete","deleteFile","onClickUpload","onPreviewImage","imageFiles","imageContents","createObjectURL","imagePreview","closeImagePreview","chooseFile","genPreviewMask","MaskIcon","showMessage","genPreviewItem","_item$deletable","_item$previewSize","_item$imageFit","deleteAble","DeleteIcon","PreviewCoverContent","PreviewCover","Preview","genPreviewList","genUpload","Input","uploadImg","customUpload","afterReadFile","onOversize","stringToDate","timeString","dateToString","showDatePicker","word","messageConfig","goodsId","messageValues","resetMessageValues","_messageConfig$initia","initialMessages","getType","getMessages","getCartMessages","getPlaceholder","validateMessages","textType","getFormatter","getExtraDesc","extraDesc","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","is_necessary","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","_item$v","isHasConfigPrice","propValues","propValue","centerInitialSku","getSkuMessages","skuMessages","getSkuCartMessages","validateSkuMessages","validateSku","_extends3","_extends4","pos","indexImage","handleOverLimit","onBuyOrAddCart","getSkuData","cartMessages","skuRows","slotsProps","SkuHeaderItem","skuTreeItem","SkuRow","SkuRowItem","SkuRowPropItem","Stepper","SkuStepper","Messages","SkuMessages","Actions","Sku","skuHelper","skuConstants","constants","isSameValue","oldValue","barHeight","dragStatus","scope","wrapper0","wrapper1","startValue","middle","handleOverlap","reverse","_wrapperStyle","_barStyle","calcMainAxis","calcOffset","renderButton","getClassName","getRefName","renderButtonContent","circleContainerStyle","genCircle","activeIcon","finishIcon","inactiveIcon","finishIconSlot","inactiveIconSlot","onClickStep","SubmitBar","tip","tipIcon","decimalStr","textAlign","suffixLabel","Tip","button","buttonType","buttonText","buttonColor","THRESHOLD","leftWidth","rightWidth","dragging","computedLeftWidth","getWidthByRef","computedRightWidth","isPrevent","threshold","getClickHandler","stop","genLeftPart","genRightPart","SwitchCell","cellSize","tabbar","setActiveItem","nameMatched","triggerChange","afterChange","genTabbar","routeMode","$route","r","pathMatched","TreeSelect","activeId","selectedIcon","mainActiveIndex","selectedItem","subItems","isMultiple","isActiveItem","Navs","newActiveId","version","Vue","components","component","inheritKey","mapInheritKey","nativeOn","inherit","inheritListeners","listener","mount","source","gen","mods","ret","createBEM","SlotsMixin","scopedSlot","unifySlots","transformFunctionComponent","pure","functional","sfc","createI18N","locale","createNamespace","flattenVNodes","vnodes","traverse","vnode","componentInstance","$children","$vnode","sortChildren","componentOptions","onClickCloseIcon","isCenter","transitionName","rootFontSize","addUnit","getRootFontSize","doc","convertRem","convertVw","innerWidth","convertVh","unitToPx","Notify","$notify","setToStringTag"],"mappings":"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","file":"js/chunk-21768089.df917704.js","sourcesContent":["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}","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar Function = global.Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = NATIVE_BIND ? Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","export function removeNode(el) {\n var parent = el.parentNode;\n\n if (parent) {\n parent.removeChild(el);\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}","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}","\"use strict\";function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c 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 active: 'resetScale',\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 scale = range(scale, +this.minZoom, +this.maxZoom);\n\n if (scale !== this.scale) {\n this.scale = scale;\n this.$emit('scale', {\n scale: this.scale,\n index: this.active\n });\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.fingerNum = touches.length;\n this.startMoveX = this.moveX;\n this.startMoveY = this.moveY;\n this.moving = this.fingerNum === 1 && this.scale !== 1;\n this.zooming = this.fingerNum === 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 if (this.fingerNum > 1) {\n return;\n }\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 = 5;\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 transition: 'van-fade',\n getContainer: 'body',\n overlayStyle: null,\n startPosition: 0,\n swipeDuration: 300,\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 overlayStyle: Object,\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 transition: {\n type: String,\n default: 'van-fade'\n },\n showIndex: {\n type: Boolean,\n default: true\n },\n swipeDuration: {\n type: [Number, String],\n default: 300\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 genImages: function genImages() {\n var _this2 = 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\": _this2.value,\n \"active\": _this2.active,\n \"maxZoom\": _this2.maxZoom,\n \"minZoom\": _this2.minZoom,\n \"rootWidth\": _this2.rootWidth,\n \"rootHeight\": _this2.rootHeight\n },\n \"on\": {\n \"scale\": _this2.emitScale,\n \"close\": _this2.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 return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition\n },\n \"on\": {\n \"afterLeave\": this.onClosed\n }\n }, [this.shouldRender ? 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()]) : null]);\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\n if (size) {\n style[vertical ? 'height' : 'width'] = size + \"px\";\n }\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});","import { on } from '../utils/dom/event';\n\nfunction getDirection(x, y) {\n if (x > y) {\n return 'horizontal';\n }\n\n if (y > x) {\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]; // safari back will set clientX to negative number\n\n this.deltaX = touch.clientX < 0 ? 0 : 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); // lock direction when distance is greater than a certain value\n\n var LOCK_DIRECTION_DISTANCE = 10;\n\n if (!this.direction || this.offsetX < LOCK_DIRECTION_DISTANCE && this.offsetY < LOCK_DIRECTION_DISTANCE) {\n this.direction = getDirection(this.offsetX, this.offsetY);\n }\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/vant-ui/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};","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}","export default {\n name: '姓名',\n tel: '电话',\n save: '保存',\n confirm: '确认',\n cancel: '取消',\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 vanCascader: {\n select: '请选择'\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};","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) {\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});","/**\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}","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 var prefix = '';\n\n if (index === -1) {\n return value;\n }\n\n if (_char === '-' && index !== 0) {\n return value.slice(0, index);\n }\n\n if (_char === '.' && value.match(/^(\\.|-\\.)/)) {\n prefix = index ? '-0' : '0';\n }\n\n return prefix + 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} // add num and avoid float number\n\nexport function addNumber(num1, num2) {\n var cardinal = Math.pow(10, 10);\n return Math.round((num1 + num2) * cardinal) / cardinal;\n}","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\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 _props$textColor;\n\n var style = {\n fontSize: addUnit(props.textSize),\n color: (_props$textColor = props.textColor) != null ? _props$textColor : props.color\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 textColor: String,\n type: {\n type: String,\n default: 'circular'\n }\n};\nexport default createComponent(Loading);","// 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 },\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 style = {\n transitionDuration: (this.swiping ? 0 : this.duration) + \"ms\",\n transform: \"translate\" + (this.vertical ? 'Y' : 'X') + \"(\" + this.offset + \"px)\"\n };\n\n if (this.size) {\n var mainAxis = this.vertical ? 'height' : 'width';\n var crossAxis = this.vertical ? 'width' : 'height';\n style[mainAxis] = this.trackSize + \"px\";\n style[crossAxis] = this[crossAxis] ? this[crossAxis] + \"px\" : '';\n }\n\n return style;\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 = {\n width: this.$el.offsetWidth,\n height: this.$el.offsetHeight\n };\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(_ref) {\n var _ref$pace = _ref.pace,\n pace = _ref$pace === void 0 ? 0 : _ref$pace,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? 0 : _ref$offset,\n emitChange = _ref.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()\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});","/**\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}","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 remove: function remove(vm) {\n var item = this.find(vm);\n if (!item) return;\n item.vm = null;\n item.overlay = null;\n var index = this.stack.indexOf(item);\n this.stack.splice(index, 1);\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 context.remove(vm);\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 provide: function provide() {\n return {\n vanPopup: this\n };\n },\n props: popupMixinProps,\n data: function data() {\n this.onReopenCallback = [];\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 this.onReopenCallback.forEach(function (callback) {\n callback();\n });\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 onReopen: function onReopen(callback) {\n this.onReopenCallback.push(callback);\n }\n }\n };\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}","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);","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);","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}","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 _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 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 = isObject(result) ? (_result$key = result[key]) != null ? _result$key : '' : '';\n });\n return result;\n}\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @function isEmpty\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n\nexport function isEmpty(value) {\n if (value == null) {\n return true;\n }\n\n if (typeof value !== 'object') {\n return true;\n }\n\n return Object.keys(value).length === 0;\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.reset);\n })],\n inject: {\n vanPopup: {\n default: null\n }\n },\n props: {\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: null\n },\n delay: {\n type: [Number, String],\n default: 1\n },\n speed: {\n type: [Number, String],\n default: 60\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: 'reset',\n text: {\n handler: 'reset',\n immediate: true\n }\n },\n created: function created() {\n // https://github.com/vant-ui/vant/issues/8634\n if (this.vanPopup) {\n this.vanPopup.onReopen(this.reset);\n }\n },\n activated: function activated() {\n this.reset();\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 // not an exposed-api, but may used by some users\n start: function start() {\n this.reset();\n },\n // @exposed-api\n reset: function reset() {\n var _this2 = this;\n\n var delay = isDef(this.delay) ? this.delay * 1000 : 0;\n this.offset = 0;\n this.duration = 0;\n this.wrapWidth = 0;\n this.contentWidth = 0;\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 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 \"class\": bem('left-icon'),\n \"attrs\": {\n \"name\": leftIcon\n }\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 = 'cross';\n } else if (mode === 'link') {\n iconName = 'arrow';\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});","function isWindow(val) {\n return val === window;\n} // get nearest scroll element\n// https://github.com/vant-ui/vant/issues/3823\n\n\nvar overflowScrollReg = /scroll|auto|overlay/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 _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 _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport Vue from 'vue'; // Utils\n\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 if (props.closeOnClickAction) {\n emit(ctx, 'input', false);\n }\n\n Vue.nextTick(function () {\n emit(ctx, 'select', item, index);\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 },\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'; // 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 { isDef } from './index';\nexport function deepClone(obj) {\n if (!isDef(obj)) {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (item) {\n return deepClone(item);\n });\n }\n\n if (typeof obj === 'object') {\n var to = {};\n Object.keys(obj).forEach(function (key) {\n to[key] = deepClone(obj[key]);\n });\n return to;\n }\n\n return obj;\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, inBrowser, isObject } from '../utils';\nimport { range } from '../utils/format/number';\nimport { preventDefault, on, off } from '../utils/dom/event';\nimport { TouchMixin } from '../mixins/touch';\nvar DEFAULT_DURATION = 200; // 惯性滑动思路:\n// 在手指离开屏幕时,如果和上一次 move 时的间隔小于 `MOMENTUM_LIMIT_TIME` 且 move\n// 距离大于 `MOMENTUM_LIMIT_DISTANCE` 时,执行惯性滑动\n\nexport var MOMENTUM_LIMIT_TIME = 300;\nexport var 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} // use standard WheelEvent:\n// https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent\n\n\nvar supportMousewheel = inBrowser && 'onwheel' in window;\nvar mousewheelTimer = null;\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 if (supportMousewheel) {\n on(this.$el, 'wheel', this.onMouseWheel, false);\n }\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 if (supportMousewheel) {\n off(this.$el, 'wheel');\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 onMouseWheel: function onMouseWheel(event) {\n var _this2 = this;\n\n if (this.readonly) {\n return;\n }\n\n preventDefault(event, true); // simply combine touchstart and touchmove\n\n var translateY = getElementTranslateY(this.$refs.wrapper);\n this.startOffset = Math.min(0, translateY - this.baseOffset);\n this.momentumOffset = this.startOffset;\n this.transitionEndTrigger = null; // directly use deltaY, see https://caniuse.com/?search=deltaY\n // use deltaY to detect direction for not special setting device\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event\n\n var deltaY = event.deltaY;\n\n if (this.startOffset === 0 && deltaY < 0) {\n return;\n } // get offset\n // if necessary, can adjust distance value to make scrolling smoother\n\n\n var distance = -deltaY;\n this.offset = range(this.startOffset + distance, -(this.count * this.itemHeight), this.itemHeight);\n\n if (mousewheelTimer) {\n clearTimeout(mousewheelTimer);\n }\n\n mousewheelTimer = setTimeout(function () {\n _this2.onTouchEnd();\n\n _this2.touchStartTime = 0;\n }, MOMENTUM_LIMIT_TIME);\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 _this3 = this;\n\n index = this.adjustIndex(index) || 0;\n var offset = -index * this.itemHeight;\n\n var trigger = function trigger() {\n if (index !== _this3.currentIndex) {\n _this3.currentIndex = index;\n\n if (emitChange) {\n _this3.$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 _this4 = 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 = _this4.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 === _this4.currentIndex\n })],\n on: {\n click: function click() {\n _this4.onClickItem(index);\n }\n }\n };\n var childData = {\n class: 'van-ellipsis',\n domProps: (_domProps = {}, _domProps[_this4.allowHtml ? 'innerHTML' : 'textContent'] = text, _domProps)\n };\n return h(\"li\", _mergeJSXProps([{}, data]), [_this4.slots('option', option) || h(\"div\", _mergeJSXProps2([{}, 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/vant-ui/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/vant-ui/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 icon: String,\n size: String,\n center: Boolean,\n isLink: Boolean,\n required: 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 clickable: {\n type: Boolean,\n default: null\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 _props$clickable;\n\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 var showTitle = slots.title || isDef(title);\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 return h(\"div\", {\n \"class\": [bem('title'), props.titleClass],\n \"style\": props.titleStyle\n }, [slots.title ? slots.title() : h(\"span\", [title]), Label()]);\n }\n }\n\n function Value() {\n var showValue = slots.default || isDef(value);\n\n if (showValue) {\n return h(\"div\", {\n \"class\": [bem('value', {\n alone: !showTitle\n }), props.valueClass]\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 RightIcon() {\n var rightIconSlot = slots['right-icon'];\n\n if (rightIconSlot) {\n return rightIconSlot();\n }\n\n if (isLink) {\n var arrowDirection = props.arrowDirection;\n return h(Icon, {\n \"class\": bem('right-icon'),\n \"attrs\": {\n \"name\": arrowDirection ? \"arrow-\" + arrowDirection : 'arrow'\n }\n });\n }\n }\n\n function onClick(event) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n }\n\n var clickable = (_props$clickable = props.clickable) != null ? _props$clickable : isLink;\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)]), [LeftIcon(), Title(), Value(), RightIcon(), slots.extra == null ? void 0 : slots.extra()]);\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 { getRootScrollTop, setRootScrollTop } from '../utils/dom/scroll';\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: {\n type: Boolean,\n default: null\n },\n readonly: {\n type: Boolean,\n default: null\n },\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 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 var readonly = this.getProp('readonly');\n\n if (this.clearable && !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\n if (rules.length) {\n this.validate(rules);\n }\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/vant-ui/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); // https://github.com/vant-ui/vant/issues/9715\n\n this.$nextTick(this.adjustSize); // readonly not work in legacy mobile safari\n\n /* istanbul ignore if */\n\n if (this.getProp('readonly')) {\n this.blur();\n }\n },\n onBlur: function onBlur(event) {\n if (this.getProp('readonly')) {\n return;\n }\n\n this.focused = false;\n this.updateValue(this.value, 'onBlur');\n this.$emit('blur', event);\n this.validateWithTrigger('onBlur');\n this.$nextTick(this.adjustSize);\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 var scrollTop = getRootScrollTop();\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'; // https://github.com/vant-ui/vant/issues/9178\n\n setRootScrollTop(scrollTop);\n }\n },\n genInput: function genInput() {\n var h = this.$createElement;\n var type = this.type;\n var disabled = this.getProp('disabled');\n var readonly = this.getProp('readonly');\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: disabled,\n readonly: 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([{}, inputProps]));\n }\n\n var inputType = type;\n var inputMode; // type=\"number\" is weird in iOS, and can't prevent dot in Android\n // so use inputmode to set keyboard in modern browsers\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 \"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 return h(\"div\", {\n \"class\": bem('word-limit')\n }, [h(\"span\", {\n \"class\": bem('word-num')\n }, [count]), \"/\", this.maxlength]);\n }\n },\n genMessage: function genMessage() {\n var h = this.$createElement;\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\n if (this.slots('label')) {\n return [this.slots('label'), colon];\n }\n\n if (this.label) {\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 disabled = this.getProp('disabled');\n var labelAlign = this.getProp('labelAlign');\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 disabled: 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\": \"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 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 var hasIcon = icon || type === 'success' || type === 'fail';\n\n if (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 (!isDef(message) || message === '') {\n return;\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],\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 } 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 iconPosition = props.iconPosition;\n var style = {};\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 (props.loading) {\n event.preventDefault();\n }\n\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 }]), (_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 (slots.icon) {\n return h(\"div\", {\n \"class\": bem('icon')\n }, [slots.icon()]);\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 iconPosition: {\n type: String,\n default: 'left'\n }\n});\nexport default createComponent(Button);","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 showConfirmButton: true,\n showCancelButton: false,\n closeOnPopstate: true,\n closeOnClickOverlay: false,\n callback: function callback(action) {\n instance[action === 'confirm' ? 'resolve' : 'reject'](action);\n }\n};\nDialog.alert = Dialog;\n\nDialog.confirm = function (options) {\n return Dialog(_extends({\n showCancelButton: true\n }, options));\n};\n\nDialog.close = function () {\n if (instance) {\n instance.value = false;\n }\n};\n\nDialog.setDefaultOptions = function (options) {\n _extends(Dialog.currentOptions, options);\n};\n\nDialog.resetDefaultOptions = function () {\n Dialog.currentOptions = _extends({}, Dialog.defaultOptions);\n};\n\nDialog.resetDefaultOptions();\n\nDialog.install = function () {\n Vue.use(VanDialog);\n};\n\nDialog.Component = VanDialog;\nVue.prototype.$dialog = Dialog;\nexport default Dialog;","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 { 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, noop } from '../utils';\nimport { BORDER_TOP, BORDER_LEFT } from '../utils/constant';\nimport { PopupMixin } from '../mixins/popup';\nimport Button from '../button';\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 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 }\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 });\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 var _this2 = this;\n\n this.$emit('opened');\n this.$nextTick(function () {\n var _this2$$refs$dialog;\n\n (_this2$$refs$dialog = _this2.$refs.dialog) == null ? void 0 : _this2$$refs$dialog.focus();\n });\n },\n onClosed: function onClosed() {\n this.$emit('closed');\n },\n onKeydown: function onKeydown(event) {\n var _this3 = this;\n\n if (event.key === 'Escape' || event.key === 'Enter') {\n // skip keyboard events of child elements\n if (event.target !== this.$refs.dialog) {\n return;\n }\n\n var onEventType = {\n Enter: this.showConfirmButton ? function () {\n return _this3.handleAction('confirm');\n } : noop,\n Escape: this.showCancelButton ? function () {\n return _this3.handleAction('cancel');\n } : noop\n };\n onEventType[event.key]();\n this.$emit('keydown', event);\n }\n },\n genRoundButtons: function genRoundButtons() {\n var _this4 = 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 _this4.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 _this4.handleAction('confirm');\n }\n }\n })]);\n },\n genButtons: function genButtons() {\n var _this5 = this,\n _ref;\n\n var h = this.$createElement;\n var multiple = this.showCancelButton && this.showConfirmButton;\n return h(\"div\", {\n \"class\": [BORDER_TOP, bem('footer')]\n }, [this.showCancelButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.cancel,\n \"text\": this.cancelButtonText || t('cancel'),\n \"nativeType\": \"button\"\n },\n \"class\": bem('cancel'),\n \"style\": {\n color: this.cancelButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this5.handleAction('cancel');\n }\n }\n }), this.showConfirmButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.confirm,\n \"text\": this.confirmButtonText || t('confirm'),\n \"nativeType\": \"button\"\n },\n \"class\": [bem('confirm'), (_ref = {}, _ref[BORDER_LEFT] = multiple, _ref)],\n \"style\": {\n color: this.confirmButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this5.handleAction('confirm');\n }\n }\n })]);\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 h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n var message = this.message;\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 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 \"tabIndex\": 0\n },\n \"class\": [bem([this.theme]), this.className],\n \"style\": {\n width: addUnit(this.width)\n },\n \"ref\": \"dialog\",\n \"on\": {\n \"keydown\": this.onKeydown\n }\n }, [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 textColor = props.textColor;\n var key = plain ? 'color' : 'backgroundColor';\n var style = (_style = {}, _style[key] = color, _style);\n\n if (plain) {\n style.color = textColor || color;\n style.borderColor = color;\n } else {\n style.color = textColor;\n style.background = color;\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 == null ? void 0 : 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 _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\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 (slots.tag) {\n return slots.tag(_extends({}, props.data));\n }\n\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 tag: slots.tag\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 { 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 { 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 if (n < 0) {\n return [];\n }\n\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 { 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 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 var _this$$el;\n\n return ((_this$$el = this.$el) == null ? void 0 : _this$$el.getBoundingClientRect().height) || 0;\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 genTopInfo: function genTopInfo(item) {\n var h = this.$createElement;\n var slot = this.$scopedSlots['top-info'];\n\n if (item.topInfo || slot) {\n return h(\"div\", {\n \"class\": bem('top-info')\n }, [slot ? slot(item) : item.topInfo]);\n }\n },\n genBottomInfo: function genBottomInfo(item) {\n var h = this.$createElement;\n var slot = this.$scopedSlots['bottom-info'];\n\n if (item.bottomInfo || slot) {\n return h(\"div\", {\n \"class\": bem('bottom-info')\n }, [slot ? slot(item) : item.bottomInfo]);\n }\n },\n genDay: function genDay(item, index) {\n var _this2 = this;\n\n var h = this.$createElement;\n var type = item.type;\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 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'),\n \"style\": {\n width: this.rowHeightWithUnit,\n height: this.rowHeightWithUnit,\n background: this.color\n }\n }, [this.genTopInfo(item), item.text, this.genBottomInfo(item)])]);\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 }, [this.genTopInfo(item), item.text, this.genBottomInfo(item)]);\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 },\n inject: {\n vanPopup: {\n default: null\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 value: 'init',\n type: function type() {\n this.reset();\n },\n defaultDate: function defaultDate(val) {\n this.currentDate = val;\n this.scrollIntoView();\n }\n },\n mounted: function mounted() {\n var _this$vanPopup;\n\n this.init(); // https://github.com/vant-ui/vant/issues/9845\n\n (_this$vanPopup = this.vanPopup) == null ? void 0 : _this$vanPopup.$on('opened', this.onScroll);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.init();\n },\n methods: {\n // @exposed-api\n reset: function reset(date) {\n if (date === void 0) {\n date = this.getInitialDate();\n }\n\n this.currentDate = date;\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/vant-ui/vant/issues/5640\n _this.bodyHeight = Math.floor(_this.$refs.body.getBoundingClientRect().height);\n\n _this.onScroll();\n\n _this.scrollIntoView();\n });\n },\n // @exposed-api\n scrollToDate: function scrollToDate(targetDate) {\n var _this2 = this;\n\n raf(function () {\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 _this2.onScroll();\n });\n },\n // scroll to current month\n scrollIntoView: function scrollIntoView() {\n var currentDate = this.currentDate;\n\n if (currentDate) {\n var targetDate = this.type === 'single' ? currentDate : currentDate[0];\n this.scrollToDate(targetDate);\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 \"firstDayOfWeek\": this.dayOffset\n },\n \"scopedSlots\": {\n 'top-info': this.$scopedSlots['top-info'],\n 'bottom-info': this.$scopedSlots['bottom-info']\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[\"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 _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 _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 titleClass: 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 this.parent.scrollIntoView();\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});","import { raf } from '../utils/dom/raf';\nimport { getScrollTop, setScrollTop } from '../utils/dom/scroll';\nexport function scrollLeftTo(scroller, to, duration) {\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 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 { 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 watch: {\n fixed: function fixed(isFixed) {\n this.$emit('change', isFixed);\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 inject: {\n vanPopup: {\n default: null\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 },\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);\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 var _this2 = this;\n\n this.init(); // https://github.com/vant-ui/vant/issues/7959\n\n if (this.vanPopup) {\n this.vanPopup.onReopen(function () {\n _this2.setLine();\n });\n }\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 _this3 = this;\n\n this.$nextTick(function () {\n _this3.inited = true;\n _this3.tabHeight = getVisibleHeight(_this3.$refs.wrap);\n\n _this3.scrollIntoView(true);\n });\n },\n // update nav bar style\n setLine: function setLine() {\n var _this4 = this;\n\n var shouldAnimate = this.inited;\n this.$nextTick(function () {\n var titles = _this4.$refs.titles;\n\n if (!titles || !titles[_this4.currentIndex] || _this4.type !== 'line' || isHidden(_this4.$el)) {\n return;\n }\n\n var title = titles[_this4.currentIndex].$el;\n var lineWidth = _this4.lineWidth,\n lineHeight = _this4.lineHeight;\n var left = title.offsetLeft + title.offsetWidth / 2;\n var lineStyle = {\n width: addUnit(lineWidth),\n backgroundColor: _this4.color,\n transform: \"translateX(\" + left + \"px) translateX(-50%)\"\n };\n\n if (shouldAnimate) {\n lineStyle.transitionDuration = _this4.duration + \"s\";\n }\n\n if (isDef(lineHeight)) {\n var height = addUnit(lineHeight);\n lineStyle.height = height;\n lineStyle.borderRadius = height;\n }\n\n _this4.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 _this5 = 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 _this5.setCurrentIndex(index);\n\n _this5.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 _this6 = this;\n\n this.$nextTick(function () {\n _this6.setCurrentIndexByName(name);\n\n _this6.scrollToCurrentContent(true);\n });\n },\n scrollToCurrentContent: function scrollToCurrentContent(immediate) {\n var _this7 = 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 _this7.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 _this8 = 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\": _this8.color,\n \"isActive\": index === _this8.currentIndex,\n \"disabled\": item.disabled,\n \"scrollable\": scrollable,\n \"activeColor\": _this8.titleActiveColor,\n \"inactiveColor\": _this8.titleInactiveColor\n },\n \"style\": item.titleStyle,\n \"class\": item.titleClass,\n \"scopedSlots\": {\n default: function _default() {\n return item.slots('title');\n }\n },\n \"on\": {\n \"click\": function click() {\n _this8.onClick(item, index);\n }\n }\n });\n });\n var Wrap = h(\"div\", {\n \"ref\": \"wrap\",\n \"class\": [bem('wrap', {\n scrollable: scrollable\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});","import { createNamespace } from '../utils';\nimport Tab from '../tab';\nimport Tabs from '../tabs';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('cascader'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n props: {\n title: String,\n value: [Number, String],\n fieldNames: Object,\n placeholder: String,\n activeColor: String,\n options: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n closeable: {\n type: Boolean,\n default: true\n },\n showHeader: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n tabs: [],\n activeTab: 0\n };\n },\n computed: {\n textKey: function textKey() {\n var _this$fieldNames;\n\n return ((_this$fieldNames = this.fieldNames) == null ? void 0 : _this$fieldNames.text) || 'text';\n },\n valueKey: function valueKey() {\n var _this$fieldNames2;\n\n return ((_this$fieldNames2 = this.fieldNames) == null ? void 0 : _this$fieldNames2.value) || 'value';\n },\n childrenKey: function childrenKey() {\n var _this$fieldNames3;\n\n return ((_this$fieldNames3 = this.fieldNames) == null ? void 0 : _this$fieldNames3.children) || 'children';\n }\n },\n watch: {\n options: {\n deep: true,\n handler: 'updateTabs'\n },\n value: function value(_value) {\n var _this = this;\n\n if (_value || _value === 0) {\n var values = this.tabs.map(function (tab) {\n var _tab$selectedOption;\n\n return (_tab$selectedOption = tab.selectedOption) == null ? void 0 : _tab$selectedOption[_this.valueKey];\n });\n\n if (values.indexOf(_value) !== -1) {\n return;\n }\n }\n\n this.updateTabs();\n }\n },\n created: function created() {\n this.updateTabs();\n },\n methods: {\n getSelectedOptionsByValue: function getSelectedOptionsByValue(options, value) {\n for (var i = 0; i < options.length; i++) {\n var option = options[i];\n\n if (option[this.valueKey] === value) {\n return [option];\n }\n\n if (option[this.childrenKey]) {\n var selectedOptions = this.getSelectedOptionsByValue(option[this.childrenKey], value);\n\n if (selectedOptions) {\n return [option].concat(selectedOptions);\n }\n }\n }\n },\n updateTabs: function updateTabs() {\n var _this2 = this;\n\n if (this.value || this.value === 0) {\n var selectedOptions = this.getSelectedOptionsByValue(this.options, this.value);\n\n if (selectedOptions) {\n var optionsCursor = this.options;\n this.tabs = selectedOptions.map(function (option) {\n var tab = {\n options: optionsCursor,\n selectedOption: option\n };\n var next = optionsCursor.filter(function (item) {\n return item[_this2.valueKey] === option[_this2.valueKey];\n });\n\n if (next.length) {\n optionsCursor = next[0][_this2.childrenKey];\n }\n\n return tab;\n });\n\n if (optionsCursor) {\n this.tabs.push({\n options: optionsCursor,\n selectedOption: null\n });\n }\n\n this.$nextTick(function () {\n _this2.activeTab = _this2.tabs.length - 1;\n });\n return;\n }\n }\n\n this.tabs = [{\n options: this.options,\n selectedOption: null\n }];\n },\n onSelect: function onSelect(option, tabIndex) {\n var _this3 = this;\n\n this.tabs[tabIndex].selectedOption = option;\n\n if (this.tabs.length > tabIndex + 1) {\n this.tabs = this.tabs.slice(0, tabIndex + 1);\n }\n\n if (option[this.childrenKey]) {\n var nextTab = {\n options: option[this.childrenKey],\n selectedOption: null\n };\n\n if (this.tabs[tabIndex + 1]) {\n this.$set(this.tabs, tabIndex + 1, nextTab);\n } else {\n this.tabs.push(nextTab);\n }\n\n this.$nextTick(function () {\n _this3.activeTab++;\n });\n }\n\n var selectedOptions = this.tabs.map(function (tab) {\n return tab.selectedOption;\n }).filter(function (item) {\n return !!item;\n });\n var eventParams = {\n value: option[this.valueKey],\n tabIndex: tabIndex,\n selectedOptions: selectedOptions\n };\n this.$emit('input', option[this.valueKey]);\n this.$emit('change', eventParams);\n\n if (!option[this.childrenKey]) {\n this.$emit('finish', eventParams);\n }\n },\n onClose: function onClose() {\n this.$emit('close');\n },\n renderHeader: function renderHeader() {\n var h = this.$createElement;\n\n if (this.showHeader) {\n return h(\"div\", {\n \"class\": bem('header')\n }, [h(\"h2\", {\n \"class\": bem('title')\n }, [this.slots('title') || this.title]), this.closeable ? h(Icon, {\n \"attrs\": {\n \"name\": \"cross\"\n },\n \"class\": bem('close-icon'),\n \"on\": {\n \"click\": this.onClose\n }\n }) : null]);\n }\n },\n renderOptions: function renderOptions(options, selectedOption, tabIndex) {\n var _this4 = this;\n\n var h = this.$createElement;\n\n var renderOption = function renderOption(option) {\n var isSelected = selectedOption && option[_this4.valueKey] === selectedOption[_this4.valueKey];\n var Text = _this4.slots('option', {\n option: option,\n selected: isSelected\n }) || h(\"span\", [option[_this4.textKey]]);\n return h(\"li\", {\n \"class\": bem('option', {\n selected: isSelected\n }),\n \"style\": {\n color: isSelected ? _this4.activeColor : null\n },\n \"on\": {\n \"click\": function click() {\n _this4.onSelect(option, tabIndex);\n }\n }\n }, [Text, isSelected ? h(Icon, {\n \"attrs\": {\n \"name\": \"success\"\n },\n \"class\": bem('selected-icon')\n }) : null]);\n };\n\n return h(\"ul\", {\n \"class\": bem('options')\n }, [options.map(renderOption)]);\n },\n renderTab: function renderTab(item, tabIndex) {\n var h = this.$createElement;\n var options = item.options,\n selectedOption = item.selectedOption;\n var title = selectedOption ? selectedOption[this.textKey] : this.placeholder || t('select');\n return h(Tab, {\n \"attrs\": {\n \"title\": title,\n \"titleClass\": bem('tab', {\n unselected: !selectedOption\n })\n }\n }, [this.renderOptions(options, selectedOption, tabIndex)]);\n },\n renderTabs: function renderTabs() {\n var _this5 = this;\n\n var h = this.$createElement;\n return h(Tabs, {\n \"attrs\": {\n \"animated\": true,\n \"swipeable\": true,\n \"swipeThreshold\": 0,\n \"color\": this.activeColor\n },\n \"class\": bem('tabs'),\n \"model\": {\n value: _this5.activeTab,\n callback: function callback($$v) {\n _this5.activeTab = $$v;\n }\n }\n }, [this.tabs.map(this.renderTab)]);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem()\n }, [this.renderHeader(), this.renderTabs()]);\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_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({\n inset: props.inset\n }), (_ref = {}, _ref[BORDER_TOP_BOTTOM] = props.border, _ref)]\n }, inherit(ctx, true)]), [slots.default == null ? void 0 : slots.default()]);\n\n if (props.title || slots.title) {\n return h(\"div\", {\n \"key\": ctx.data.key\n }, [h(\"div\", {\n \"class\": bem('title', {\n inset: props.inset\n })\n }, [slots.title ? slots.title() : props.title]), Group]);\n }\n\n return Group;\n}\n\nCellGroup.props = {\n title: String,\n inset: Boolean,\n border: {\n type: Boolean,\n default: true\n }\n};\nexport default createComponent(CellGroup);","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 { 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(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === 'boolean') {\n options = {\n checked: options\n };\n }\n\n var _options = options,\n checked = _options.checked,\n skipDisabled = _options.skipDisabled;\n var children = this.children.filter(function (item) {\n if (item.disabled && skipDisabled) {\n return item.checked;\n }\n\n return checked != null ? checked : !item.checked;\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';\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 size: [Number, String],\n color: [String, Object],\n layerColor: String,\n strokeLinecap: String,\n value: {\n type: Number,\n default: 0\n },\n speed: {\n type: [Number, String],\n default: 0\n },\n fill: {\n type: String,\n default: 'none'\n },\n rate: {\n type: [Number, String],\n default: 100\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 return {\n fill: \"\" + this.fill,\n stroke: \"\" + this.layerColor,\n strokeWidth: this.strokeWidth + \"px\"\n };\n },\n hoverStyle: function hoverStyle() {\n var offset = PERIMETER * this.value / 100;\n return {\n stroke: \"\" + (this.gradient ? \"url(#\" + this.uid + \")\" : this.color),\n strokeWidth: +this.strokeWidth + 1 + \"px\",\n strokeLinecap: this.strokeLinecap,\n strokeDasharray: offset + \"px \" + PERIMETER + \"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('layer'),\n \"style\": this.layerStyle,\n \"attrs\": {\n \"d\": this.path\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": this.path\n },\n \"class\": bem('hover'),\n \"style\": this.hoverStyle\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 lazyRender: {\n type: Boolean,\n default: true\n },\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 || !this.lazyRender) {\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, inBrowser } 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 // should not start counting in server\n // see: https://github.com/vant-ui/vant/issues/7807\n if (!inBrowser) {\n return;\n }\n\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 formatTimeStamp(timeStamp) {\n // compatible when the timestamp is seconds\n if (timeStamp < Math.pow(10, 12)) {\n return timeStamp * 1000;\n }\n\n return +timeStamp;\n}\n\nfunction getDate(timeStamp) {\n var date = new Date(formatTimeStamp(timeStamp));\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 customValidPeriod = _this$coupon.customValidPeriod;\n return customValidPeriod || 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);","// 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://img01.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(), this.slots('list-footer')])]);\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(), this.slots('disabled-list-footer')])]);\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, oldVal) {\n if (!oldVal) {\n this.$emit('input', null);\n } else {\n this.$emit('input', val);\n }\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 getPicker: function getPicker() {\n return this.$refs.picker;\n },\n // https://github.com/vant-ui/vant/issues/10013\n getProxiedPicker: function getProxiedPicker() {\n var _this4 = this;\n\n var picker = this.$refs.picker;\n\n if (picker) {\n var proxy = function proxy(fn) {\n return function () {\n picker[fn].apply(picker, arguments);\n\n _this4.updateInnerValue();\n };\n };\n\n return _extends({}, picker, {\n setValues: proxy('setValues'),\n setIndexes: proxy('setIndexes'),\n setColumnIndex: proxy('setColumnIndex'),\n setColumnValue: proxy('setColumnValue')\n });\n }\n },\n onConfirm: function onConfirm() {\n this.$emit('input', this.innerValue);\n this.$emit('confirm', this.innerValue);\n },\n onCancel: function onCancel() {\n this.$emit('cancel');\n }\n },\n render: function render() {\n var _this5 = this;\n\n var h = arguments[0];\n var props = {};\n Object.keys(pickerProps).forEach(function (key) {\n props[key] = _this5[key];\n });\n return h(Picker, {\n \"ref\": \"picker\",\n \"attrs\": {\n \"columns\": this.columns,\n \"readonly\": this.readonly\n },\n \"scopedSlots\": this.$scopedSlots,\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: function minHour() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.updateInnerValue();\n });\n },\n maxHour: function maxHour(value) {\n var _this$innerValue$spli = this.innerValue.split(':'),\n hour = _this$innerValue$spli[0],\n minute = _this$innerValue$spli[1];\n\n if (hour >= value) {\n this.innerValue = this.formatValue(value + \":\" + minute);\n this.updateColumnValue();\n } else {\n this.updateInnerValue();\n }\n },\n minMinute: 'updateInnerValue',\n maxMinute: function maxMinute(value) {\n var _this$innerValue$spli2 = this.innerValue.split(':'),\n hour = _this$innerValue$spli2[0],\n minute = _this$innerValue$spli2[1];\n\n if (minute >= value) {\n this.innerValue = this.formatValue(hour + \":\" + value);\n this.updateColumnValue();\n } else {\n this.updateInnerValue();\n }\n },\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 _this2 = this;\n\n this.updateInnerValue();\n this.$nextTick(function () {\n _this2.$nextTick(function () {\n // https://github.com/vant-ui/vant/issues/9775\n _this2.updateInnerValue();\n\n _this2.$emit('change', picker);\n });\n });\n },\n updateColumnValue: function updateColumnValue() {\n var _this3 = 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 _this3.getPicker().setValues(values);\n });\n }\n }\n});","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import _construct from \"@babel/runtime/helpers/esm/construct\";\nimport _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: function minDate() {\n var _this = this;\n\n this.$nextTick(function () {\n _this.updateInnerValue();\n });\n },\n maxDate: function maxDate(value) {\n if (this.innerValue.valueOf() >= value.valueOf()) {\n this.innerValue = value;\n } else {\n this.updateInnerValue();\n }\n },\n value: function value(val) {\n val = this.formatValue(val);\n\n if (val && 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 ? this.innerValue : this.minDate),\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 ? this.innerValue : this.minDate),\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 var _this2 = this;\n\n if (!isDate(value)) {\n return null;\n }\n\n var minDate = new Date(this.minDate);\n var maxDate = new Date(this.maxDate);\n var dateMethods = {\n year: 'getFullYear',\n month: 'getMonth',\n day: 'getDate',\n hour: 'getHours',\n minute: 'getMinutes'\n };\n\n if (this.originColumns) {\n var dateColumns = this.originColumns.map(function (_ref, index) {\n var type = _ref.type,\n values = _ref.values;\n var range = _this2.ranges[index].range;\n var minDateVal = minDate[dateMethods[type]]();\n var maxDateVal = maxDate[dateMethods[type]]();\n var min = type === 'month' ? +values[0] - 1 : +values[0];\n var max = type === 'month' ? +values[values.length - 1] - 1 : +values[values.length - 1];\n return {\n type: type,\n values: [minDateVal < range[0] ? Math.max(minDateVal, min) : min || minDateVal, maxDateVal > range[1] ? Math.min(maxDateVal, max) : max || maxDateVal]\n };\n });\n\n if (this.type === 'month-day') {\n var year = (this.innerValue || this.minDate).getFullYear();\n dateColumns.unshift({\n type: 'year',\n values: [year, year]\n });\n }\n\n var dates = Object.keys(dateMethods).map(function (type) {\n var _dateColumns$filter$;\n\n return (_dateColumns$filter$ = dateColumns.filter(function (item) {\n return item.type === type;\n })[0]) == null ? void 0 : _dateColumns$filter$.values;\n }).filter(function (item) {\n return item;\n });\n minDate = _construct(Date, dates.map(function (val) {\n return getTrueValue(val[0]);\n }));\n maxDate = _construct(Date, dates.map(function (val) {\n return getTrueValue(val[1]);\n }));\n }\n\n value = Math.max(value, minDate.getTime());\n value = Math.min(value, maxDate.getTime());\n return new Date(value);\n },\n getBoundary: function getBoundary(type, value) {\n var _ref2;\n\n var boundary = this[type + \"Date\"];\n var year = boundary.getFullYear();\n var month = 1;\n var date = 1;\n var hour = 0;\n var minute = 0;\n\n if (type === 'max') {\n month = 12;\n date = getMonthEndDay(value.getFullYear(), value.getMonth() + 1);\n hour = 23;\n minute = 59;\n }\n\n if (value.getFullYear() === year) {\n month = boundary.getMonth() + 1;\n\n if (value.getMonth() + 1 === month) {\n date = boundary.getDate();\n\n if (value.getDate() === date) {\n hour = boundary.getHours();\n\n if (value.getHours() === hour) {\n minute = boundary.getMinutes();\n }\n }\n }\n }\n\n return _ref2 = {}, _ref2[type + \"Year\"] = year, _ref2[type + \"Month\"] = month, _ref2[type + \"Date\"] = date, _ref2[type + \"Hour\"] = hour, _ref2[type + \"Minute\"] = minute, _ref2;\n },\n updateInnerValue: function updateInnerValue() {\n var _this3 = 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 _this3.originColumns.forEach(function (column, columnIndex) {\n if (type === column.type) {\n index = columnIndex;\n }\n });\n\n var values = _this3.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 || this.minDate).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 _this4 = this;\n\n this.updateInnerValue();\n this.$nextTick(function () {\n _this4.$nextTick(function () {\n // https://github.com/vant-ui/vant/issues/9775\n _this4.updateInnerValue();\n\n _this4.$emit('change', picker);\n });\n });\n },\n updateColumnValue: function updateColumnValue() {\n var _this5 = this;\n\n var value = this.innerValue ? this.innerValue : this.minDate;\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 _this5.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.getProxiedPicker();\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 \"scopedSlots\": this.$scopedSlots,\n \"props\": _extends({}, this.$props),\n \"on\": _extends({}, this.$listeners)\n });\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});","var prefix = 'van-empty-network-';\nexport 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\": prefix + \"1\",\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\": prefix + \"2\",\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\": prefix + \"3\",\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\": prefix + \"4\",\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\": prefix + \"5\",\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\": prefix + \"6\",\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\": prefix + \"7\",\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(#\" + prefix + \"1)\",\n \"transform\": \"matrix(-1 0 0 1 36 7)\"\n }\n }), h(\"path\", {\n \"attrs\": {\n \"d\": \"M121 8h22.231v14H152v77.37h-31V8z\",\n \"fill\": \"url(#\" + prefix + \"1)\",\n \"transform\": \"translate(2 7)\"\n }\n })]), h(\"path\", {\n \"attrs\": {\n \"fill\": \"url(#\" + prefix + \"7)\",\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(#\" + prefix + \"2)\",\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(#\" + prefix + \"3)\",\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(#\" + prefix + \"3)\",\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(#\" + prefix + \"4)\",\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(#\" + prefix + \"4)\",\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(#\" + prefix + \"5)\",\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(#\" + prefix + \"6)\",\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://img01.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 disabled: Boolean,\n readonly: 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 },\n provide: function provide() {\n return {\n vanForm: this\n };\n },\n data: function data() {\n return {\n fields: []\n };\n },\n methods: {\n getFieldsByNames: function getFieldsByNames(names) {\n if (names) {\n return this.fields.filter(function (field) {\n return names.indexOf(field.name) !== -1;\n });\n }\n\n return this.fields;\n },\n validateSeq: function validateSeq(names) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n var errors = [];\n\n var fields = _this.getFieldsByNames(names);\n\n 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 validateFields: function validateFields(names) {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n var fields = _this2.getFieldsByNames(names);\n\n Promise.all(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 && !Array.isArray(name)) {\n return this.validateField(name);\n }\n\n return this.validateFirst ? this.validateSeq(name) : this.validateFields(name);\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 if (name && !Array.isArray(name)) {\n name = [name];\n }\n\n var fields = this.getFieldsByNames(name);\n fields.forEach(function (item) {\n item.resetValidation();\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 \"name\": this.icon,\n \"badge\": info,\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';\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 scrollTo: function scrollTo(index) {\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 scrollToElement: function scrollToElement(element) {\n var index = element.dataset.index;\n this.scrollTo(index);\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});","// 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 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 }, [this.direction === 'down' ? this.slots() : Placeholder, this.genLoading(), this.genFinishedText(), this.genErrorText(), this.direction === 'up' ? this.slots() : Placeholder]);\n }\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 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 var _this = this;\n\n if (this.placeholder && this.fixed) {\n var setHeight = function setHeight() {\n _this.height = _this.$refs.navBar.getBoundingClientRect().height;\n };\n\n setHeight(); // https://github.com/vant-ui/vant/issues/10131\n\n setTimeout(setHeight, 100);\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 return h(\"div\", {\n \"ref\": \"navBar\",\n \"style\": {\n zIndex: this.zIndex\n },\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});","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/vant-ui/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 randomKeyOrder: Boolean,\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 if (this.randomKeyOrder) {\n keys.sort(function () {\n return Math.random() > 0.5 ? 1 : -1;\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);","function getBoundingClientRect(element) {\n var rect = element.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n y: rect.top\n };\n}\n\nfunction 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}\n\nfunction 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}\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\nfunction getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n\nfunction getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n\nfunction getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n\nfunction 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}\n\nfunction 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}\n\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction 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}\n\n// Composite means it takes into account transforms as well as layout.\n\nfunction getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement);\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\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);\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}\n\n// means it doesn't take into account transforms.\n\nfunction 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}\n\nfunction 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}\n\nfunction 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}\n\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\nfunction 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}\n\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\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 = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\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 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\nfunction 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}\n\nvar top = 'top';\nvar bottom = 'bottom';\nvar right = 'right';\nvar left = 'left';\nvar auto = 'auto';\nvar basePlacements = [top, bottom, right, left];\nvar start = 'start';\nvar end = 'end';\nvar 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\nvar beforeRead = 'beforeRead';\nvar read = 'read';\nvar afterRead = 'afterRead'; // pure-logic modifiers\n\nvar beforeMain = 'beforeMain';\nvar main = 'main';\nvar afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nvar beforeWrite = 'beforeWrite';\nvar write = 'write';\nvar afterWrite = 'afterWrite';\nvar modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];\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\nfunction 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}\n\nfunction 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}\n\nfunction format(str) {\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 [].concat(args).reduce(function (p, c) {\n return p.replace(/%s/, c);\n }, str);\n}\n\nvar INVALID_MODIFIER_ERROR = 'Popper: modifier \"%s\" provided an invalid %s property, expected %s but got %s';\nvar MISSING_DEPENDENCY_ERROR = 'Popper: modifier \"%s\" requires \"%s\", but \"%s\" modifier is not available';\nvar VALID_PROPERTIES = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options'];\nfunction validateModifiers(modifiers) {\n modifiers.forEach(function (modifier) {\n Object.keys(modifier).forEach(function (key) {\n switch (key) {\n case 'name':\n if (typeof modifier.name !== 'string') {\n console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '\"name\"', '\"string\"', \"\\\"\" + String(modifier.name) + \"\\\"\"));\n }\n\n break;\n\n case 'enabled':\n if (typeof modifier.enabled !== 'boolean') {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"enabled\"', '\"boolean\"', \"\\\"\" + String(modifier.enabled) + \"\\\"\"));\n }\n\n case 'phase':\n if (modifierPhases.indexOf(modifier.phase) < 0) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"phase\"', \"either \" + modifierPhases.join(', '), \"\\\"\" + String(modifier.phase) + \"\\\"\"));\n }\n\n break;\n\n case 'fn':\n if (typeof modifier.fn !== 'function') {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"fn\"', '\"function\"', \"\\\"\" + String(modifier.fn) + \"\\\"\"));\n }\n\n break;\n\n case 'effect':\n if (typeof modifier.effect !== 'function') {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"effect\"', '\"function\"', \"\\\"\" + String(modifier.fn) + \"\\\"\"));\n }\n\n break;\n\n case 'requires':\n if (!Array.isArray(modifier.requires)) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"requires\"', '\"array\"', \"\\\"\" + String(modifier.requires) + \"\\\"\"));\n }\n\n break;\n\n case 'requiresIfExists':\n if (!Array.isArray(modifier.requiresIfExists)) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"requiresIfExists\"', '\"array\"', \"\\\"\" + String(modifier.requiresIfExists) + \"\\\"\"));\n }\n\n break;\n\n case 'options':\n case 'data':\n break;\n\n default:\n console.error(\"PopperJS: an invalid property has been provided to the \\\"\" + modifier.name + \"\\\" modifier, valid properties are \" + VALID_PROPERTIES.map(function (s) {\n return \"\\\"\" + s + \"\\\"\";\n }).join(', ') + \"; but \\\"\" + key + \"\\\" was provided.\");\n }\n\n modifier.requires && modifier.requires.forEach(function (requirement) {\n if (modifiers.find(function (mod) {\n return mod.name === requirement;\n }) == null) {\n console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));\n }\n });\n });\n });\n}\n\nfunction uniqueBy(arr, fn) {\n var identifiers = new Set();\n return arr.filter(function (item) {\n var identifier = fn(item);\n\n if (!identifiers.has(identifier)) {\n identifiers.add(identifier);\n return true;\n }\n });\n}\n\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}\n\nfunction 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}\n\nvar round = Math.round;\n\nfunction getVariation(placement) {\n return placement.split('-')[1];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n\nfunction 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 }\n\n return offsets;\n}\n\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\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\nfunction 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(options) {\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 }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\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 if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\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 var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\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 if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\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 (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.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}\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\nvar eventListeners = {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name; // 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\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\nvar popperOffsets$1 = {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};\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) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(round(x * dpr) / dpr) || 0,\n y: round(round(y * dpr) / dpr) || 0\n };\n}\n\nfunction mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\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') {\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) {\n sideY = bottom; // $FlowFixMe[prop-missing]\n\n y -= offsetParent[heightProp] - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left) {\n sideX = right; // $FlowFixMe[prop-missing]\n\n x -= offsetParent[widthProp] - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\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) < 2 ? \"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(_ref4) {\n var state = _ref4.state,\n options = _ref4.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\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\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\nvar computeStyles$1 = {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};\n\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$1(_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\nvar applyStyles$1 = {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect$1,\n requires: ['computeStyles']\n};\n\nvar defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nfunction 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\nvar offset$1 = {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};\n\nexport { createPopper, offset$1 as offsetModifier };\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createPopper as _createPopper, offsetModifier } from '@vant/popperjs';\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';\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 trigger: String,\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 \"attrs\": {\n \"role\": \"menuitem\"\n },\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 onClickWrapper: function onClickWrapper() {\n if (this.trigger === 'click') {\n this.onToggle(!this.value);\n }\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 \"on\": {\n \"click\": this.onClickWrapper\n }\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 \"attrs\": {\n \"role\": \"menu\"\n }\n }, [this.slots('default') || this.actions.map(this.renderAction)])]), this.slots('reference')]);\n }\n});","import { createNamespace, addUnit } from '../utils';\nimport { BindEventMixin } from '../mixins/bind-event';\n\nvar _createNamespace = createNamespace('progress'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [BindEventMixin(function (bind) {\n bind(window, 'resize', this.resize, true);\n bind(window, 'orientationchange', this.resize, true);\n })],\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 = 50;\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 pullDistance: [Number, 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 if (this.headHeight !== DEFAULT_HEAD_HEIGHT) {\n return {\n height: this.headHeight + \"px\"\n };\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 pullDistance = +(this.pullDistance || this.headHeight);\n\n if (distance > pullDistance) {\n if (distance < pullDistance * 2) {\n distance = pullDistance + (distance - pullDistance) / 2;\n } else {\n distance = pullDistance * 1.5 + (distance - pullDistance * 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.pullDistance || 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 }, [text]));\n }\n\n if (status === 'loading') {\n nodes.push(h(Loading, {\n \"attrs\": {\n \"size\": \"16\"\n }\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 }, [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 shape: {\n type: String,\n default: 'square'\n },\n clearable: {\n type: Boolean,\n default: true\n },\n leftIcon: {\n type: String,\n default: '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', 'link', 'weibo', 'wechat', 'poster', 'qrcode', 'weapp-qrcode', 'wechat-moments'];\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 duration: 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://img01.yzcdn.cn/vant/share-sheet-\" + 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(function (item, index) {\n return _this2.genOptions(item, index !== 0);\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 && skuValues.length > 0) {\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 Icon from '../../icon';\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 disableSoldoutSku: 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://img01.yzcdn.cn/upload_files/2020/06/24/FmKWDg0bN9rMcTp9ne8MXiQWGtLn.png' : url;\n },\n choosable: function choosable() {\n if (!this.disableSoldoutSku) {\n return true;\n }\n\n return isSkuChoosable(this.skuList, this.selectedSku, {\n key: this.skuKeyStr,\n valueId: this.skuValue.id\n });\n }\n },\n methods: {\n onSelect: function onSelect() {\n if (this.choosable) {\n this.skuEventBus.$emit('sku:select', _extends({}, this.skuValue, {\n skuKeyStr: this.skuKeyStr\n }));\n }\n },\n 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 ? 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(Icon, {\n \"attrs\": {\n \"name\": \"enlarge\"\n },\n \"class\": classPrefix + \"-img-icon\",\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 { addNumber, 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}\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 showInput: {\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 } // prefer number type\n\n\n if (formatted === String(+formatted)) {\n formatted = +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(addNumber(+this.currentValue, diff));\n this.emitChange(value);\n this.$emit(type);\n },\n onFocus: function onFocus(event) {\n // readonly not work in legacy 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.emitChange(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 onMousedown: function onMousedown(event) {\n // fix mobile safari page scroll down issue\n // see: https://github.com/vant-ui/vant/issues/7690\n if (this.disableInput) {\n event.preventDefault();\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 \"directives\": [{\n name: \"show\",\n value: this.showInput\n }],\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 \"mousedown\": this.onMousedown\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-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/;\n return reg.test(value.trim());\n}","import { isFunction } from '../utils';\nexport 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(null);\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 if (file) {\n if (isFunction(maxSize)) {\n return maxSize(file);\n }\n\n return file.size > maxSize;\n }\n\n return false;\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 readonly: 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, Function],\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 created: function created() {\n this.urls = [];\n },\n beforeDestroy: function beforeDestroy() {\n this.urls.forEach(function (url) {\n return URL.revokeObjectURL(url);\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 (isOversize(item.file, _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 _file$beforeDelete,\n _this4 = this;\n\n var beforeDelete = (_file$beforeDelete = file.beforeDelete) != null ? _file$beforeDelete : this.beforeDelete;\n\n if (beforeDelete) {\n var response = 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 onClickUpload: function onClickUpload(event) {\n this.$emit('click-upload', event);\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 if (item.file && !item.url && item.status !== 'failed') {\n item.url = URL.createObjectURL(item.file);\n\n _this5.urls.push(item.url);\n }\n\n return 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 _item$deletable,\n _this6 = this,\n _item$previewSize,\n _item$imageFit;\n\n var h = this.$createElement;\n var deleteAble = (_item$deletable = item.deletable) != null ? _item$deletable : this.deletable;\n var showDelete = item.status !== 'uploading' && deleteAble;\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 previewSize = (_item$previewSize = item.previewSize) != null ? _item$previewSize : this.previewSize;\n var imageFit = (_item$imageFit = item.imageFit) != null ? _item$imageFit : this.imageFit;\n var Preview = isImageFile(item) ? h(Image, {\n \"attrs\": {\n \"fit\": imageFit,\n \"src\": item.content || item.url,\n \"width\": previewSize,\n \"height\": 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 = this.readonly ? null : 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 \"key\": \"input-wrapper\",\n \"on\": {\n \"click\": this.onClickUpload\n }\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 readonly: this.readonly\n }),\n \"style\": style,\n \"on\": {\n \"click\": this.onClickUpload\n }\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 customUpload: 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 onClickUpload: function onClickUpload() {\n var _this2 = this;\n\n if (this.customUpload) {\n this.customUpload().then(function (url) {\n _this2.fileList.push({\n url: url\n });\n\n _this2.$emit('input', url);\n });\n }\n }\n },\n render: function render() {\n var _this3 = this;\n\n var h = arguments[0];\n return h(Uploader, {\n \"attrs\": {\n \"maxCount\": 1,\n \"readonly\": !!this.customUpload,\n \"maxSize\": this.maxSize * 1024 * 1024,\n \"afterRead\": this.afterReadFile\n },\n \"on\": {\n \"oversize\": this.onOversize,\n \"delete\": this.onDelete,\n \"click-upload\": this.onClickUpload\n },\n \"model\": {\n value: _this3.fileList,\n callback: function callback($$v) {\n _this3.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 getExtraDesc: function getExtraDesc(message) {\n var h = this.$createElement;\n var extraDesc = message.extraDesc;\n\n if (extraDesc) {\n return h(\"div\", {\n \"class\": bem('extra-message')\n }, [extraDesc]);\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 \"customUpload\": this.messageConfig.customUpload\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(\"div\", {\n \"class\": bem('cell-block')\n }, [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 \"border\": false\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 }), this.getExtraDesc(message)]);\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, isEmpty } 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 disableSoldoutSku: {\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 },\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.filter(function (i) {\n return i.is_necessary !== false;\n }).some(function (i) {\n return (_this.selectedProp[i.k_id] || []).length === 0;\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.skuList, _this3.selectedSku, {\n key: key,\n valueId: valueId\n })) {\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 (selectedProp[item.k_id]) {\n _this3.selectedProp[item.k_id] = selectedProp[item.k_id];\n }\n });\n\n if (isEmpty(this.selectedProp)) {\n this.propList.forEach(function (item) {\n var _item$v;\n\n // 没有加价的属性,默认选中第一个\n if ((item == null ? void 0 : (_item$v = item.v) == null ? void 0 : _item$v.length) > 0) {\n var v = item.v,\n k_id = item.k_id;\n var isHasConfigPrice = v.some(function (i) {\n return +i.price !== 0;\n });\n\n if (!isHasConfigPrice) {\n _this3.selectedProp[k_id] = [v[0].id];\n }\n }\n });\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 disableSoldoutSku = this.disableSoldoutSku;\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 \"disableSoldoutSku\": disableSoldoutSku,\n \"largeImageMode\": skuTreeItem.largeImageMode\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 { range, addNumber } from '../utils/format/number';\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 var min = +this.min;\n var max = +this.max;\n var step = +this.step;\n value = range(value, min, max);\n var diff = Math.round((value - min) / step) * step;\n return addNumber(min, diff);\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 var current = isNumber ? _this.value[i] : _this.value;\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 var renderButtonContent = function renderButtonContent() {\n if (isNumber) {\n var slot = _this.slots(i === 0 ? 'left-button' : 'right-button', {\n value: current\n });\n\n if (slot) {\n return slot;\n }\n }\n\n if (_this.slots('button')) {\n return _this.slots('button');\n }\n\n return h(\"div\", {\n \"class\": bem('button'),\n \"style\": _this.buttonStyle\n });\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 }, [renderButtonContent()]);\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 var _this$parent = this.parent,\n activeColor = _this$parent.activeColor,\n inactiveColor = _this$parent.inactiveColor,\n center = _this$parent.center,\n direction = _this$parent.direction;\n var style = {\n background: this.status === 'finish' ? activeColor : inactiveColor\n };\n\n if (center && direction === 'vertical') {\n style.top = '50%';\n }\n\n return style;\n },\n circleContainerStyle: function circleContainerStyle() {\n if (this.parent.center && this.parent.direction === 'vertical') {\n return {\n top: '50%'\n };\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$parent2 = this.parent,\n activeIcon = _this$parent2.activeIcon,\n iconPrefix = _this$parent2.iconPrefix,\n activeColor = _this$parent2.activeColor,\n finishIcon = _this$parent2.finishIcon,\n inactiveIcon = _this$parent2.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 \"classPrefix\": iconPrefix\n }\n });\n }\n\n var finishIconSlot = this.slots('finish-icon');\n\n if (this.status === 'finish' && (finishIcon || finishIconSlot)) {\n return finishIconSlot || h(Icon, {\n \"class\": bem('icon', 'finish'),\n \"attrs\": {\n \"name\": finishIcon,\n \"color\": activeColor,\n \"classPrefix\": iconPrefix\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 \"classPrefix\": iconPrefix\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 \"style\": this.circleContainerStyle\n }, [this.genCircle()]), h(\"div\", {\n \"class\": bem('line'),\n \"style\": this.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 center: Boolean,\n iconPrefix: String,\n finishIcon: String,\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 _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 _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'; // 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://vant-ui.github.io/vant/v2/#/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 var _this = this;\n\n if (this.placeholder && this.fixed) {\n var setHeight = function setHeight() {\n _this.height = _this.$refs.tabbar.getBoundingClientRect().height;\n };\n\n setHeight(); // https://github.com/vant-ui/vant/issues/10131\n\n setTimeout(setHeight, 100);\n }\n },\n methods: {\n setActiveItem: function setActiveItem() {\n var _this2 = this;\n\n this.children.forEach(function (item, index) {\n item.nameMatched = item.name === _this2.value || index === _this2.value;\n });\n },\n triggerChange: function triggerChange(active, afterChange) {\n var _this3 = this;\n\n callInterceptor({\n interceptor: this.beforeChange,\n args: [active],\n done: function done() {\n _this3.$emit('input', active);\n\n _this3.$emit('change', active);\n\n afterChange();\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 nameMatched: false\n };\n },\n computed: {\n active: function active() {\n var routeMode = this.parent.route;\n\n if (routeMode && '$route' in this) {\n var to = this.to,\n $route = this.$route;\n var config = isObject(to) ? to : {\n path: to\n };\n return !!$route.matched.find(function (r) {\n // vue-router 3.x $route.matched[0].path is empty in / and its children paths\n var path = r.path === '' ? '/' : r.path;\n var pathMatched = config.path === path;\n var nameMatched = isDef(config.name) && config.name === r.name;\n return pathMatched || nameMatched;\n });\n }\n\n return this.nameMatched;\n }\n },\n methods: {\n onClick: function onClick(event) {\n var _this = this;\n\n if (!this.active) {\n this.parent.triggerChange(this.name || this.index, function () {\n route(_this.$router, _this);\n });\n }\n\n this.$emit('click', event);\n },\n genIcon: function genIcon() {\n var h = this.$createElement;\n var slot = this.slots('icon', {\n active: this.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.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(), 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 }, [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 Area from './area';\nimport Badge from './badge';\nimport Button from './button';\nimport Calendar from './calendar';\nimport Card from './card';\nimport Cascader from './cascader';\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 DatetimePicker from './datetime-picker';\nimport Dialog from './dialog';\nimport Divider from './divider';\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 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 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 Stepper from './stepper';\nimport Steps from './steps';\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 = '2.12.50';\n\nfunction install(Vue) {\n var components = [ActionSheet, AddressEdit, AddressList, Area, Badge, Button, Calendar, Card, Cascader, Cell, CellGroup, Checkbox, CheckboxGroup, Circle, Col, Collapse, CollapseItem, ContactCard, ContactEdit, ContactList, CountDown, Coupon, CouponCell, CouponList, DatetimePicker, Dialog, Divider, DropdownItem, DropdownMenu, Empty, Field, Form, GoodsAction, GoodsActionButton, GoodsActionIcon, Grid, GridItem, Icon, Image, ImagePreview, IndexAnchor, IndexBar, Info, List, Loading, Locale, NavBar, NoticeBar, Notify, NumberKeyboard, Overlay, Pagination, Panel, PasswordInput, Picker, Popover, Popup, Progress, PullRefresh, Radio, RadioGroup, Rate, Row, Search, ShareSheet, Sidebar, SidebarItem, Skeleton, Sku, Slider, Step, Stepper, Steps, 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, Area, Badge, Button, Calendar, Card, Cascader, Cell, CellGroup, Checkbox, CheckboxGroup, Circle, Col, Collapse, CollapseItem, ContactCard, ContactEdit, ContactList, CountDown, Coupon, CouponCell, CouponList, DatetimePicker, Dialog, Divider, DropdownItem, DropdownMenu, Empty, Field, Form, GoodsAction, GoodsActionButton, GoodsActionIcon, Grid, GridItem, Icon, Image, ImagePreview, IndexAnchor, IndexBar, Info, Lazyload, List, Loading, Locale, NavBar, NoticeBar, Notify, NumberKeyboard, Overlay, Pagination, Panel, PasswordInput, Picker, Popover, Popup, Progress, PullRefresh, Radio, RadioGroup, Rate, Row, Search, ShareSheet, Sidebar, SidebarItem, Skeleton, Sku, Slider, Step, Stepper, Steps, Sticky, SubmitBar, Swipe, SwipeCell, SwipeItem, Switch, SwitchCell, Tab, Tabbar, TabbarItem, Tabs, Tag, Toast, TreeSelect, Uploader };\nexport default {\n install: install,\n version: version\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nvar inheritKey = ['ref', 'key', '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 default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\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}","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 { 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 },\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 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['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 { 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}","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;","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(global.Reflect, 'Reflect', true);\n"],"sourceRoot":""}