{"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/vant/es/grid-item/index.js","webpack:///./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","webpack:///./node_modules/vant/es/grid/index.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/vant/es/utils/router.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/utils/constant.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/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/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/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","_createNamespace","createComponent","bem","mixins","dot","Boolean","text","icon","iconPrefix","info","Number","badge","computed","_this$parent","square","gutter","columnNum","percent","flexBasis","paddingTop","gutterValue","paddingRight","index","marginTop","contentStyle","_this$parent2","right","bottom","height","onClick","$emit","$router","genIcon","_this$badge","h","$createElement","iconSlot","slots","iconSize","getText","textSlot","genContent","slot","render","_this$parent3","center","border","direction","clickable","surround","_extends","assign","a","b","c","d","hasOwnProperty","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","reduce","indexOf","Array","f","g","mergeFn","type","default","paddingLeft","create","getDistance","touches","Math","sqrt","pow","clientX","clientY","instance","src","show","active","minZoom","maxZoom","rootWidth","rootHeight","data","scale","moveX","moveY","moving","zooming","imageRatio","displayWidth","displayHeight","vertical","rootRatio","imageStyle","transitionDuration","offsetX","offsetY","transform","maxMoveX","max","maxMoveY","val","resetScale","bindTouchEvent","setScale","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","imageSlots","loading","skipToggleEvent","resize","className","closeable","asyncClose","overlayStyle","showIndicators","images","loop","overlay","transition","showIndex","swipeDuration","startPosition","overlayClass","closeIcon","closeOnPopstate","closeIconPosition","doubleClickTimer","value","setActive","$nextTick","swipe","swipeTo","immediate","url","getBoundingClientRect","rect","width","emitClose","emitScale","genIndex","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","size","lazyRender","activeIndicator","maxActive","count","prevActive","nextActive","$listeners","getDirection","x","y","TouchMixin","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","showError","showLoading","errorIcon","loadingIcon","error","overflow","borderRadius","created","$Lazyload","onLazyLoaded","onLazyLoadError","beforeDestroy","_ref2","onError","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","isRedundantNavigation","err","message","route","router","config","promise","catch","location","href","functionalRoute","context","routeProps","$","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","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","uid","BindEventMixin","unbind","activated","deactivated","zIndex","lockCount","stack","find","vm","filter","item","remove","splice","customStyle","mountOverlay","click","closeOnClickOverlay","onClickOverlay","updateOverlay","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","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","object","path","_result$key","isEmpty","reset","mode","leftIcon","wrapable","background","scrollable","delay","wrapWidth","contentWidth","onClickIcon","onTransitionEnd","startTimer","_this2$$refs","wrap","content","barStyle","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","RED","BORDER","BORDER_TOP","BORDER_LEFT","BORDER_BOTTOM","BORDER_SURROUND","BORDER_TOP_BOTTOM","BORDER_UNSET_TOP_BOTTOM","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","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","cellProps","isLink","required","titleStyle","titleClass","valueClass","labelClass","arrowDirection","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","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","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","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","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","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","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-0e78b4ee.a639679e.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}","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});","\"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}","/**\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};","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);","// 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 _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};","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});","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 } 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":""}