{"version":3,"sources":["webpack:///./node_modules/_vant@2.12.54@vant/es/loading/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/create/bem.js","webpack:///./node_modules/_vant@2.12.54@vant/es/mixins/slots.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/create/component.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/deep-assign.js","webpack:///./node_modules/_vant@2.12.54@vant/es/locale/lang/zh-CN.js","webpack:///./node_modules/_vant@2.12.54@vant/es/locale/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/create/i18n.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/create/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/dropdown-item/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/tab/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/cell/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/radio-group/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/constant.js","webpack:///./node_modules/_vant@2.12.54@vant/es/radio/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/search/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/picker/shared.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/vnodes.js","webpack:///./node_modules/_vant@2.12.54@vant/es/form/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/popover/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/checkbox/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/cell-group/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/icon/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/swipe-item/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/dom/event.js","webpack:///./node_modules/_vant@2.12.54@vant/es/mixins/relation.js","webpack:///./node_modules/_vant@2.12.54@vant/es/form/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/mixins/click-outside.js","webpack:///./node_modules/_vant@2.12.54@vant/es/field/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/dom/reset-scroll.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/validate/system.js","webpack:///./node_modules/_vant@2.12.54@vant/es/field/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/functional.js","webpack:///./node_modules/_vant@2.12.54@vant/es/datetime-picker/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/dialog/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/deep-clone.js","webpack:///./node_modules/_vant@2.12.54@vant/es/picker/PickerColumn.js","webpack:///./node_modules/_vant@2.12.54@vant/es/picker/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/mixins/touch.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/dom/style.js","webpack:///./node_modules/_vant@2.12.54@vant/es/checkbox/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/mixins/popup/context.js","webpack:///./node_modules/_vant@2.12.54@vant/es/overlay/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/mixins/popup/overlay.js","webpack:///./node_modules/_vant@2.12.54@vant/es/mixins/close-on-popstate.js","webpack:///./node_modules/_vant@2.12.54@vant/es/mixins/popup/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/datetime-picker/utils.js","webpack:///./node_modules/_vant@2.12.54@vant/es/datetime-picker/shared.js","webpack:///./node_modules/_vant@2.12.54@vant/es/datetime-picker/TimePicker.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/validate/date.js","webpack:///./node_modules/_vant@2.12.54@vant/es/datetime-picker/DatePicker.js","webpack:///./node_modules/_vant@2.12.54@vant/es/datetime-picker/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/dropdown-menu/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/dom/scroll.js","webpack:///./node_modules/_vant@2.12.54@vant/es/toast/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/button/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/cell/shared.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/format/string.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/router.js","webpack:///./node_modules/_vant@2.12.54@vant/es/button/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/format/unit.js","webpack:///./node_modules/_vant@2.12.54@vant/es/popup/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/picker/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/checkbox-group/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/tab/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/swipe/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/radio-group/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/tabs/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/popover/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/swipe-item/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/cell-group/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/swipe/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/dropdown-item/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/dialog/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/goods-action/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/goods-action-button/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/dialog/Dialog.js","webpack:///./node_modules/_vant@2.12.54@vant/es/dropdown-menu/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/toast/lock-click.js","webpack:///./node_modules/_vant@2.12.54@vant/es/toast/Toast.js","webpack:///./node_modules/_vant@2.12.54@vant/es/toast/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/mixins/portal.js","webpack:///./node_modules/_vant@2.12.54@vant/es/search/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/mixins/checkbox.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/validate/number.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/dom/node.js","webpack:///./node_modules/_vant@2.12.54@vant/es/tabs/Title.js","webpack:///./node_modules/_vant@2.12.54@vant/es/sticky/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/tabs/Content.js","webpack:///./node_modules/_vant@2.12.54@vant/es/tabs/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/interceptor.js","webpack:///./node_modules/_vant@2.12.54@vant/es/tabs/utils.js","webpack:///./node_modules/_vant@2.12.54@vant/es/checkbox-group/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/loading/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/mixins/bind-event.js","webpack:///./node_modules/_vant@2.12.54@vant/es/mixins/field.js","webpack:///./node_modules/_vant@2.12.54@vant/es/icon/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/dom/raf.js","webpack:///./node_modules/_vant@2.12.54@vant/es/popup/style/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/utils/format/number.js","webpack:///./node_modules/_vant@2.12.54@vant/es/info/index.js","webpack:///./node_modules/_vant@2.12.54@vant/es/radio/index.js"],"names":["createBEM","name","el","mods","gen","Array","isArray","reduce","ret","item","Object","keys","key","SlotsMixin","methods","slots","props","$slots","this","scopedSlot","$scopedSlots","install","Vue","component","transformFunctionComponent","pure","functional","model","render","h","context","scopedSlots","data","forEach","unifySlots","createComponent","sfc","mixins","push","prototype","hasOwnProperty","proto","defineReactive","util","tel","save","confirm","cancel","delete","complete","loading","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","_count","vanCouponList","empty","exchange","close","enable","disabled","placeholder","vanAddressEdit","area","postal","areaEmpty","addressEmpty","postalEmpty","defaultAddress","telPlaceholder","namePlaceholder","areaPlaceholder","vanAddressEditDetail","vanAddressList","add","$vantMessages","$vantLang","createI18N","prefix","path","messages","locale","message","_len","arguments","length","args","_key","apply","createNamespace","_createNamespace","bem","dot","Boolean","Number","String","info","badge","titleStyle","titleClass","inited","computed","computedName","_this$name","index","isActive","active","parent","currentName","watch","setLine","scrollIntoView","val","_this","lazyRender","$nextTick","$emit","slotContent","animated","show","scrollspy","Content","inactive","value","Cell","ctx","_props$clickable","icon","size","isLink","showTitle","Label","labelClass","clickable","classes","center","required","borderless","border","event","iconPrefix","Title","default","alone","valueClass","Value","rightIconSlot","arrowDirection","RightIcon","extra","BORDER","BORDER_TOP","BORDER_LEFT","BORDER_BOTTOM","BORDER_SURROUND","BORDER_TOP_BOTTOM","BORDER_UNSET_TOP_BOTTOM","t","Search","fieldData","attrs","on","listeners","keypress","keyCode","inheritData","undefined","showAction","background","left","shape","leftIcon","rightIcon","clearable","clearTrigger","action","actionText","Action","type","DEFAULT_ITEM_HEIGHT","pickerProps","readonly","itemHeight","showToolbar","cancelButtonText","confirmButtonText","allowHtml","visibleItemCount","swipeDuration","sortChildren","children","componentOptions","$vnode","vnodes","result","traverse","vnode","componentInstance","$children","map","flattenVNodes","sort","a","b","indexOf","colon","labelWidth","labelAlign","inputAlign","scrollToError","validateFirst","errorMessageAlign","submitOnEnter","validateTrigger","showError","showErrorMessage","provide","vanForm","fields","getFieldsByNames","names","filter","field","validateSeq","Promise","resolve","reject","errors","promise","then","validate","error","validateFields","_this2","all","validateField","matched","resetValidation","scrollToField","options","some","$el","addField","removeField","getValues","form","formValue","onSubmit","preventDefault","submit","_this3","values","catch","method","trigger","overlay","offset","theme","actions","placement","getContainer","Function","closeOnClickAction","mounted","updateLocation","beforeDestroy","popper","window","removeEventListener","destroy","createPopper","$refs","wrapper","popover","modifiers","adaptive","gpuAcceleration","addEventListener","setOptions","renderAction","$createElement","text","className","onClickAction","onToggle","onClickWrapper","onTouchstart","stopPropagation","onClickOutside","onOpen","onOpened","onClose","onClosed","role","checked","get","set","setParentValue","toggle","clearTimeout","toggleTask","setTimeout","slice","max","splice","CellGroup","_ref","Group","inset","LEGACY_MAP","medel","Icon","_props$badge","correctName","imageIcon","isImage","tag","classPrefix","color","fontSize","style","_this$parent","vertical","transform","shouldRender","activeIndicator","maxActive","prevActive","loop","nextActive","$listeners","supportsPassive","opts","defineProperty","e","target","handler","passive","capture","off","isStopPropagation","cancelable","ChildrenMixin","_parent","_inject","_computed","indexKey","inject","disableBindRelation","bindRelation","concat","ParentMixin","ClickOutsideMixin","config","closeOnClickOutside","clickOutsideHandler","contains","document","test","navigator","userAgent","toLowerCase","create","inheritAttrs","vanField","rules","autosize","formatter","maxlength","errorMessage","showWordLimit","formatTrigger","focused","validateFailed","validateMessage","updateValue","validateWithTrigger","adjustSize","showClear","getProp","hasValue","blur","onBlur","focus","onFocus","input","onInput","click","onClickInput","onKeypress","labelStyle","width","runValidator","rule","returnVal","validator","isEmptyValue","runSyncRule","pattern","getRuleMessage","runRules","defaultTrigger","isNumber","composing","onClick","onClickLeftIcon","onClickRightIcon","onClear","scrollTop","height","scrollHeight","_this$autosize","maxHeight","minHeight","Math","min","genInput","inputSlot","inputProps","ref","class","domProps","$attrs","directives","inputMode","inputType","genLeftIcon","genRightIcon","genWordLimit","genMessage","genLabel","_bem","inheritKey","mapInheritKey","nativeOn","inherit","inheritListeners","obj","emit","eventName","listener","mount","Component","instance","createElement","$props","body","appendChild","deepClone","to","getElementTranslateY","element","getComputedStyle","webkitTransform","translateY","split","isOptionDisabled","option","supportMousewheel","mousewheelTimer","valueKey","defaultIndex","initialOptions","duration","currentIndex","created","$parent","setIndex","bindTouchEvent","onMouseWheel","destroyed","baseOffset","JSON","stringify","onTouchStart","touchStart","moving","startOffset","transitionEndTrigger","touchStartTime","Date","now","momentumOffset","onTouchMove","touchMove","direction","deltaY","onTouchEnd","distance","abs","momentum","getIndexByOffset","onTransitionEnd","stopMomentum","onClickItem","adjustIndex","i","_i","getOptionText","emitChange","setValue","getValue","round","speed","genOptions","_this4","optionStyle","_domProps","tabindex","selected","childData","wrapperStyle","transitionDuration","transitionProperty","columns","toolbarPosition","formattedColumns","itemPxHeight","unit","dataType","firstColumn","immediate","format","formatCascade","formatted","cursor","_cursor$defaultIndex","getColumnValue","getColumnIndex","getIndexes","onCascadeChange","columnIndex","indexes","setColumnValues","onChange","getColumn","column","setColumnValue","setColumnIndex","optionIndex","getColumnValues","child","setValues","setIndexes","genTitle","titleSlot","genCancel","genConfirm","genToolbar","genColumns","wrapHeight","frameStyle","columnsStyle","maskStyle","backgroundSize","genColumnItems","_this5","_item$defaultIndex","PickerColumn","TouchMixin","resetTouchStatus","startX","touches","clientX","startY","clientY","touch","deltaX","offsetX","offsetY","x","y","isHidden","hidden","display","parentHidden","offsetParent","position","zIndex","lockCount","stack","find","vm","remove","preventTouchMove","Overlay","customStyle","animationDuration","lockScroll","defaultConfig","updateOverlay","parentNode","insertBefore","openOverlay","closeOnClickOverlay","onClickOverlay","mountOverlay","closeOverlay","CloseOnPopstateMixin","bind","isBind","handlePopstate","closeOnPopstate","bindStatus","onPopstate","shouldReopen","$isServer","popupMixinProps","transitionAppear","overlayStyle","overlayClass","PopupMixin","afterPortal","vanPopup","onReopenCallback","skipToggleEvent","open","activated","opened","removeLock","deactivated","renderOverlay","addLock","callback","classList","offsetHeight","status","parseInt","updateZIndex","onReopen","getTrueValue","getMonthEndDay","getDate","sharedProps","columnsOrder","TimePickerMixin","innerValue","formatValue","originColumns","ranges","rangeArr","range","n","iteratee","times","oldVal","updateColumnValue","updateInnerValue","getPicker","picker","getProxiedPicker","proxy","fn","onConfirm","onCancel","minHour","maxHour","minMinute","maxMinute","_this$innerValue$spli","hour","minute","_this$innerValue$spli2","_value$split","_this$getPicker$getIn","hourIndex","minuteIndex","_this$originColumns","hourColumn","minuteColumn","pair","isDate","toString","call","getTime","currentYear","getFullYear","minDate","maxDate","valueOf","_this$getBoundary","getBoundary","maxYear","maxMonth","_this$getBoundary2","minYear","minMonth","dateMethods","day","dateColumns","minDateVal","maxDateVal","unshift","dates","_dateColumns$filter$","_ref2","boundary","date","getMonth","getHours","getMinutes","maxDay","TimePicker","DatePicker","root","isWindow","overflowScrollReg","getScroller","node","tagName","nodeType","overflowY","getScrollTop","top","pageYOffset","setScrollTop","scrollTo","scrollX","getRootScrollTop","documentElement","setRootScrollTop","getElementTop","scroller","getBoundingClientRect","getVisibleHeight","innerHeight","getVisibleTop","cellProps","camelizeRE","camelize","str","replace","_","c","toUpperCase","padZero","num","targetLength","route","router","url","err","isRedundantNavigation","location","href","functionalRoute","$router","routeProps","Button","plain","hairline","loadingText","iconPosition","borderColor","content","block","square","renderIcon","loadingSize","loadingType","nativeType","rootFontSize","addUnit","convertRem","doc","parseFloat","getRootFontSize","unitToPx","innerWidth","convertVw","convertVh","closeable","transition","safeAreaInsetBottom","closeIcon","closeIconPosition","beforeCreate","createEmitter","onClickCloseIcon","isCenter","transitionName","iconSize","checkedColor","toggleAll","_options","skipDisabled","inBrowser","isServer","noop","isDef","isFunction","isObject","isPromise","object","_result$key","resize","onVisibilityChange","initialize","clear","autoplay","indicatorColor","touchable","initialSwipe","showIndicators","rect","swiping","computedWidth","computedHeight","_autoplay","autoPlay","maxCount","ceil","minOffset","delta","trackSize","isCorrectDirection","expect","trackStyle","mainAxis","crossAxis","indicatorStyle","backgroundColor","track","timer","offsetWidth","getTargetOffset","swipe","correctPosition","move","pace","getTargetActive","targetActive","currentPosition","targetOffset","_ref$pace","_ref$offset","outRightBound","outLeftBound","swipeTo","targetIndex","genIndicator","slot","_value","showPopup","showWrapper","displayTitle","match","bindScroll","updateOffset","onScroll","activeColor","Options","bottom","$$v","unfit","isFirst","$options","isLast","first","last","beforeClose","messageAlign","cancelButtonColor","confirmButtonColor","showCancelButton","showConfirmButton","handleAction","state","_this2$$refs$dialog","dialog","onKeydown","Enter","Escape","genRoundButtons","genButtons","multiple","genContent","hasTitle","messageSlot","isolated","$destroy","extend","propsData","$on","currentOptions","defaultOptions","alert","setDefaultOptions","resetDefaultOptions","use","$dialog","barStyle","bar","toggleItem","Titles","down","forbidClick","closeOnClick","toggleClickable","onAfterEnter","onAfterLeave","genIcon","mask","defaultOptionsMap","queue","parseOptions","createInstance","toast","transformOptions","shift","allowMultiple","$toast","PortalMixin","_temp","portal","container","selector","querySelector","CheckboxMixin","labelPosition","labelDisabled","bindGroup","isDisabled","iconStyle","iconClicked","Children","isNumeric","isNaN","removeNode","removeChild","scrollable","inactiveColor","isCard","titleColor","genText","Text","ellipsis","observer","offsetTop","fixed","offsetTopPx","isFixed","IntersectionObserver","entries","intersectionRatio","topToPageTop","emitScrollEvent","bottomToPageTop","distanceToBottom","swipeable","touchstart","touchmove","touchend","touchcancel","genChildren","prop","sticky","lineWidth","lineHeight","beforeChange","titleActiveColor","titleInactiveColor","swipeThreshold","lineStyle","navStyle","activeTab","scrollOffset","tabHeight","setCurrentIndexByName","stickyFixed","init","wrap","shouldAnimate","titles","offsetLeft","borderRadius","tab","setCurrentIndex","newIndex","findAvailableTab","newTab","newName","shouldEmitChange","diff","_this$children$index","interceptor","done","callInterceptor","scrollToCurrentContent","nav","from","scrollLeft","frames","animate","raf","scrollLeftTo","onSticktScroll","params","_this6","_this7","current","isDown","step","scrollTopTo","getCurrentIndexOnScroll","_this8","Nav","_item$badge","Wrap","LoadingIcon","Spin","LoadingText","_props$textColor","textSize","textColor","Loading","uid","BindEventMixin","unbind","FieldMixin","global","iRaf","requestAnimationFrame","curr","ms","id","cancelAnimationFrame","doubleRaf","trimExtraChar","_char","regExp","formatNumber","allowDot","allowMinus","Info","showInfo","currentValue"],"mappings":"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","file":"js/npm._vant2.12.54@vant.c52d2db0.js","sourcesContent":["import '../../style/base.css';\nimport '../index.css';","/**\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 { 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 { get, isFunction } from '..';\nimport { camelize } from '../format/string';\nimport locale from '../../locale';\nexport function createI18N(name) {\n var prefix = camelize(name) + '.';\n return function (path) {\n var messages = locale.messages();\n var message = get(messages, prefix + path) || get(messages, path);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return isFunction(message) ? message.apply(void 0, args) : message;\n };\n}","import { createBEM } from './bem';\nimport { createComponent } from './component';\nimport { createI18N } from './i18n';\nexport function createNamespace(name) {\n name = 'van-' + name;\n return [createComponent(name), createBEM(name), createI18N(name)];\n}","import '../../style/base.css';\nimport '../../overlay/index.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../../cell/index.css';\nimport '../../popup/index.css';\nimport '../index.css';","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 _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 '../../style/base.css';\nimport '../index.css';","// 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 '../../style/base.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../index.css';","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);","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};","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 } 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 { createPopper as _createPopper, offsetModifier } from '@vant/popperjs';\nimport { createNamespace, isServer } 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 if (!isServer) {\n window.removeEventListener('animationend', this.updateLocation);\n window.removeEventListener('transitionend', this.updateLocation);\n }\n\n this.popper.destroy();\n this.popper = null;\n }\n },\n methods: {\n createPopper: function createPopper() {\n var popper = _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 if (!isServer) {\n window.addEventListener('animationend', this.updateLocation);\n window.addEventListener('transitionend', this.updateLocation);\n }\n\n return popper;\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 } 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 _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 _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, addUnit } from '../utils';\nimport { inherit } from '../utils/functional'; // Components\n\nimport Info from '../info'; // Types\n\nvar _createNamespace = createNamespace('icon'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction isImage(name) {\n return name ? name.indexOf('/') !== -1 : false;\n} // compatible with legacy usage, should be removed in next major version\n\n\nvar LEGACY_MAP = {\n medel: 'medal',\n 'medel-o': 'medal-o',\n 'calender-o': 'calendar-o'\n};\n\nfunction correctName(name) {\n return name && LEGACY_MAP[name] || name;\n}\n\nfunction Icon(h, props, slots, ctx) {\n var _props$badge;\n\n var name = correctName(props.name);\n var imageIcon = isImage(name);\n\n if (process.env.NODE_ENV === 'development' && props.info) {\n console.warn('[Vant] Icon: \"info\" prop is deprecated, use \"badge\" prop instead.');\n }\n\n return h(props.tag, _mergeJSXProps([{\n \"class\": [props.classPrefix, imageIcon ? '' : props.classPrefix + \"-\" + name],\n \"style\": {\n color: props.color,\n fontSize: addUnit(props.size)\n }\n }, inherit(ctx, true)]), [slots.default && slots.default(), imageIcon && h(\"img\", {\n \"class\": bem('image'),\n \"attrs\": {\n \"src\": name\n }\n }), h(Info, {\n \"attrs\": {\n \"dot\": props.dot,\n \"info\": (_props$badge = props.badge) != null ? _props$badge : props.info\n }\n })]);\n}\n\nIcon.props = {\n dot: Boolean,\n name: String,\n size: [Number, String],\n // @deprecated\n // should be removed in next major version\n info: [Number, String],\n badge: [Number, String],\n color: String,\n tag: {\n type: String,\n default: 'i'\n },\n classPrefix: {\n type: String,\n default: bem()\n }\n};\nexport default createComponent(Icon);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { 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 { isServer } from '..';\n// eslint-disable-next-line import/no-mutable-exports\nexport var supportsPassive = false;\n\nif (!isServer) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n // eslint-disable-next-line getter-return\n get: function get() {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n });\n window.addEventListener('test-passive', null, opts); // eslint-disable-next-line no-empty\n } catch (e) {}\n}\n\nexport function on(target, event, handler, passive) {\n if (passive === void 0) {\n passive = false;\n }\n\n if (!isServer) {\n target.addEventListener(event, handler, supportsPassive ? {\n capture: false,\n passive: passive\n } : false);\n }\n}\nexport function off(target, event, handler) {\n if (!isServer) {\n target.removeEventListener(event, handler);\n }\n}\nexport function stopPropagation(event) {\n event.stopPropagation();\n}\nexport function preventDefault(event, isStopPropagation) {\n /* istanbul ignore else */\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n\n if (isStopPropagation) {\n stopPropagation(event);\n }\n}","import { 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 '../../style/base.css';\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};","import '../../style/base.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../../cell/index.css';\nimport '../index.css';","/**\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 { 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}","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});","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}","import '../../style/base.css';\nimport '../../loading/index.css';\nimport '../../picker/index.css';","import '../../style/base.css';\nimport '../../overlay/index.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../../popup/index.css';\nimport '../../loading/index.css';\nimport '../../button/index.css';\nimport '../../goods-action-button/index.css';\nimport '../../goods-action/index.css';\nimport '../index.css';","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 { 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};","export function isHidden(el) {\n var style = window.getComputedStyle(el);\n var hidden = style.display === 'none'; // offsetParent returns null in the following situations:\n // 1. The element or its parent element has the display property set to none.\n // 2. The element has the position property set to fixed\n\n var parentHidden = el.offsetParent === null && style.position !== 'fixed';\n return hidden || parentHidden;\n}","import '../../style/base.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../index.css';","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 _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 _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}","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 _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});","import { isNaN } from './number';\nexport function isDate(val) {\n return Object.prototype.toString.call(val) === '[object Date]' && !isNaN(val.getTime());\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});","import '../../style/base.css';\nimport '../index.css';","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 '../../style/base.css';\nimport '../../overlay/index.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../../popup/index.css';\nimport '../../loading/index.css';\nimport '../index.css';","import '../../style/base.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../../loading/index.css';\nimport '../index.css';","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};","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}","/**\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};","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 { 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 { 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 '../../style/base.css';\nimport '../../loading/index.css';\nimport '../index.css';","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 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 '../../style/base.css';\nimport '../index.css';","// 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});","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 '../../style/base.css';\nimport '../../info/index.css';\nimport '../../sticky/index.css';\nimport '../index.css';","import '../../style/base.css';\nimport '../../overlay/index.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../../popup/index.css';\nimport '../index.css';","import '../../style/base.css';\nimport '../index.css';","import '../../style/base.css';\nimport '../index.css';","import '../../style/base.css';\nimport '../index.css';","// 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});","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});","// 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 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;","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 '../../style/base.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../../cell/index.css';\nimport '../../field/index.css';\nimport '../index.css';","/**\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};","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}","export function removeNode(el) {\n var parent = el.parentNode;\n\n if (parent) {\n parent.removeChild(el);\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 { 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 { 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 '../../style/base.css';\nimport '../index.css';","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);","/**\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 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};","import '../../style/base.css';\nimport '../../info/index.css';\nimport '../index.css';","/**\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}","import '../../style/base.css';\nimport '../../overlay/index.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../index.css';","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}","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace, isDef } from '../utils';\nimport { inherit } from '../utils/functional'; // Types\n\nvar _createNamespace = createNamespace('info'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Info(h, props, slots, ctx) {\n var dot = props.dot,\n info = props.info;\n var showInfo = isDef(info) && info !== '';\n\n if (!dot && !showInfo) {\n return;\n }\n\n return h(\"div\", _mergeJSXProps([{\n \"class\": bem({\n dot: dot\n })\n }, inherit(ctx, true)]), [dot ? '' : props.info]);\n}\n\nInfo.props = {\n dot: Boolean,\n info: [Number, String]\n};\nexport default createComponent(Info);","import { 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});"],"sourceRoot":""}